diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..6da5056 Binary files /dev/null and b/.DS_Store differ diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4d333ba --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +/**/.idea/* +__pycache__/ + +# Splunk local meta file +local.meta + +# Splunk local folder +local +.DS_Store diff --git a/README.md b/README.md index c9a38f6..82a14cd 100644 --- a/README.md +++ b/README.md @@ -1 +1,237 @@ -# splunk-enterprise-add-on \ No newline at end of file +# TA-opencti-for-splunk-enterprise + +**Version 1.0.0** +**Author:** Filigran + +--- + +## Overview + +The **OpenCTI for Splunk Enterprise Add-on** provides a modular framework for integrating threat intelligence from [OpenCTI](https://www.opencti.io) into Splunk. +It enables analysts to collect, normalize, and enrich OpenCTI indicators and observables, making them searchable within Splunk Enterprise for correlation, detection, and incident response. + +--- + +## Key Features + +- Modular inputs for ingesting OpenCTI data via the OpenCTI API. +- Support for multiple object types (Indicators, Observables, Relationships, Sightings). +- Pre-configured eventtypes, tags, and alert actions. +- Custom REST endpoints for configuration and health-checks. +- Automatic reload triggers for modular input changes. + +--- + +## Installation + +1. **Copy or install the app** into `$SPLUNK_HOME/etc/apps/TA-opencti-for-splunk-enterprise`. +2. **Restart Splunk** (recommended) to ensure all REST handlers and modular inputs register correctly. +3. **Configure your OpenCTI connection** through **Settings → Data Inputs → OpenCTI for Splunk Enterprise**. + +--- + +## Configuration + +| Setting | Description | +| ----------------------- | ------------------------------------------------------- | +| **API URL** | Base URL of your OpenCTI instance. | +| **API Token** | Access token used for authentication. | +| **Collection Interval** | Frequency (in seconds) at which data is collected. | +| **Object Types** | Comma-separated list of OpenCTI entity types to ingest. | + +Configuration parameters are stored securely in `local/passwords.conf`. +Never ship credentials in `default/passwords.conf`. + +--- + +## Index Configuration + +If you plan to store OpenCTI data in a dedicated index, define one manually. + +### For on-prem installs + +Create the following stanza in `default/indexes.conf` or your deployment tooling: + +```ini +[opencti] +homePath = $SPLUNK_DB/opencti/db +coldPath = $SPLUNK_DB/opencti/colddb +thawedPath = $SPLUNK_DB/opencti/thaweddb +# frozenTimePeriodInSecs = 15552000 # optional retention (180 days) +``` + +--- + +## Splunk Enterprise Security Integration + +The add-on can expose OpenCTI indicators to the Splunk Enterprise Security (ES) Threat Intelligence Framework by populating an ES-compliant lookup called `opencti_threatintel`. + +At a high level: + +1. The modular input writes OpenCTI events into a Splunk index (for example, `opencti_stream`). +2. Normalization searches populate a catalog of indicators in the `opencti_indicators` KV store. +3. A scheduled search maps `opencti_indicators` into an ES-friendly lookup named `opencti_threatintel`. +4. ES is configured to treat `opencti_threatintel` as a threat intelligence source. + +> **Note:** The `opencti_threatintel` lookup can be defined either in this add-on **or** in the ES app (`SA-ThreatIntelligence`). +> A saved search running in the OpenCTI app can populate it as long as: +> +> - The lookup definition is shared **Global**, and +> - There is no other lookup with the same name shadowing it in the OpenCTI app. + +### Prerquisites + +- Splunk Enterprise Security installed on the search head where this add-on is installed. +- The OpenCTI modular input is configured and successfully ingesting data. +- The `opencti_indicators` KV store lookup is populated +- You have admin (or equivalent) permissions in Splunk and ES. + +### 1. Create the `opencti_threatintel` KV Store lookup + +1. In Splunk Web, go to **Settings ▸ Lookups ▸ Lookup definitions**. +2. Click **Add new** and create a KV Store lookup: + - **Destination app:** `SA-ThreatIntelligence` + - **Name:** `opencti_threatintel` + - **Type:** KV Store + - **KV store collection name:** `opencti_threatintel` + - **Fields:** \_key, threat_key, threat_match_value, threat_type, threat_description, threat_group, threat_category, threat_first_seen, threat_last_seen, threat_confidence, threat_weight +3. After saving, click on the **Permissions** link for the `opencti_threatintel` lookup definition: + - Set **Sharing** to **Global** so ES (in apps like `TA-opencti-for-splunk-enterprise`) can read it. + +> If you prefer to manage collections via config files, you can instead define this collection in `collections.conf` and the lookup in `transforms.conf`. + +--- + +### 2. Verify the `opencti_indicators` lookup + +The shipped searches in this add-on maintain a canonical indicator lookup in the `opencti_indicators` KV store. ES integration builds on top of this lookup. + +To verify it has data: + +1. Open **Search & Reporting**. +2. Run: + + ```spl + | inputlookup opencti_indicators + | head 10 + ``` + +3. You should see one row per OpenCTI indicator, with fields such as id, name, pattern, value, score, confidence, main_observable_type, etc. + +If this lookup is empty, review your OpenCTI inputs and the “Update OpenCTI Indicators Lookup” / “Nightly Rebuild OpenCTI Indicators Lookup” saved searches before proceeding. + +--- + +### 3. Enable the Update Enterprise Security Threat Intelligence saved search + +The OpenCTI add-on ships with a saved search called `Update Enterprise Security Threat Intelligence` that transforms the opencti_indicators catalog into the ES Threat Intelligence schema and writes it into the opencti_threatintel KV Store lookup. + +Saved search properties (default): + +- **Name:** `Update Enterprise Security Threat Intelligence` +- **App context:** TA-opencti-for-splunk-enterprise +- **Schedule:** _/5 _ \* \* \* (every 5 minutes) +- **Core SPL (conceptual):** + + - Reads from opencti_indicators via | inputlookup opencti_indicators + - Maps OpenCTI fields into ES fields: + +| ES field | Source OpenCTI field(s) | Notes | +| -------------------- | --------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | +| `threat_key` | `id` | Stable identifier for the indicator (OpenCTI ID). | +| `threat_match_value` | `value` | Actual indicator value (IP, domain, URL, hash, email, etc.). | +| `threat_type` | `main_observable_type`, `type` | Mapped to ES types such as `ip_intel`, `domain_intel`, `url_intel`, `file_intel`, `email_intel`, etc. | +| `threat_description` | `name` | Human-readable name/title of the indicator. | +| `threat_group` | `created_by` | Origin or owner of the indicator (e.g., group, organization, actor). | +| `threat_category` | `labels`, `attack_patterns`, `malware`, `vulnerabilities` | Combined, multi-valued category/tactic/context information. | +| `threat_first_seen` | `valid_from`, `created`, `created_at` | First time the indicator was observed or became valid. | +| `threat_last_seen` | `valid_until`, `modified`, `updated_at` | Last time the indicator was observed or considered valid. | +| `threat_confidence` | `confidence` | Numeric or ordinal confidence score from OpenCTI. | +| `threat_weight` | `score` | Severity/priority score used by ES for weighting during correlation. | + +To verify or adjust this saved search: + +1. In Splunk Web, go to **Settings ▸ Searches, reports, and alerts**. +2. Set App to TA-opencti-for-splunk-enterprise. +3. Locate `Update Enterprise Security Threat Intelligence` +4. Open the search: + - Confirm it begins with | inputlookup opencti_indicators. + - Confirm it ends with | outputlookup opencti_threatintel. +5. On the Schedule tab: + - Ensure the search is enabled. + - Adjust the schedule if needed (for example, to run less or more frequently based on your OpenCTI update cadence). 6. Save your changes. + +On each run, this search rebuilds the ES Threat Intelligence KV from the enriched opencti_indicators KV. + +--- + +### 4. Validate that opencti_threatintel is being populated + +After the `Update Enterprise Security Threat Intelligence` search has run at least once: + +1. Go to **Settings ▸ Lookups ▸ KV Store lookups** +2. Click Lookup contents for opencti_threatintel. +3. You should see rows of indicators with ES threat fields populated. + +Or from search: + +``` +| inputlookup opencti_threatintel +| head 20 +``` + +If you see no results: + +- Confirm the saved search `Update Enterprise Security Threat Intelligence` has run successfully (check Activity ▸ Jobs). +- Confirm opencti_indicators contains data. +- Check lookup permissions: +- opencti_indicators and opencti_threatintel must both be shared Global and readable by ES. + +--- + +### 5. Register opencti_threatintel as a Threat Intelligence source in ES + +Once opencti_threatintel contains data, register it as a threat intelligence source: + +1. In Splunk Enterprise Security, go to + **Configure ▸ Data Enrichment ▸ Threat Intelligence Management** (menu name may vary slightly by ES version). +2. Under Threat Intelligence Sources, add a new source: + **Type:** KV Store + **Name:** OpenCTI Threat Intelligence (or any clear label) + **Collection / Lookup:** `opencti_threatintel` +3. Enable the source. +4. Confirm that field mappings align with your lookup structure: + **Indicator value** → threat_match_value + **Type** → threat_type + **Description / group / category** → threat_description, threat_group, threat_category + **Temporal / scoring fields** → threat_first_seen, threat_last_seen, threat_confidence, threat_weight + +At this point, ES correlation searches and threat intel–aware dashboards can use opencti_threatintel as a live feed of indicators from OpenCTI. + +--- + +### 6. Troubleshooting + +No indicators appear in ES correlation searches + +- Check opencti_indicators: + +``` +| inputlookup opencti_indicators +| stats count +``` + +- Check the job history of `Update Enterprise Security Threat Intelligence` for errors. +- Confirm that opencti_threatintel has rows: + +``` +| inputlookup opencti_threatintel +| stats count +``` + +- Verify that ES has a Threat Intelligence source configured for opencti_threatintel. + +Permission or lookup issues +Ensure: - opencti_indicators KV Store lookup is shared Global. - opencti_threatintel KV Store lookup is defined in SA-ThreatIntelligence and shared Global. - Verify that the roles used by ES and the OpenCTI add-on have read/write access to these lookups. + +With these steps completed, OpenCTI becomes a first-class Threat Intelligence provider for Splunk Enterprise Security via the opencti_threatintel KV Store, maintained by the `Update Enterprise Security Threat Intelligence` saved search. diff --git a/TA-opencti-for-splunk-enterprise-1.0.0.tar.gz b/TA-opencti-for-splunk-enterprise-1.0.0.tar.gz new file mode 100644 index 0000000..ab2b7b5 Binary files /dev/null and b/TA-opencti-for-splunk-enterprise-1.0.0.tar.gz differ diff --git a/TA-opencti-for-splunk-enterprise/README.md b/TA-opencti-for-splunk-enterprise/README.md new file mode 100755 index 0000000..82a14cd --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/README.md @@ -0,0 +1,237 @@ +# TA-opencti-for-splunk-enterprise + +**Version 1.0.0** +**Author:** Filigran + +--- + +## Overview + +The **OpenCTI for Splunk Enterprise Add-on** provides a modular framework for integrating threat intelligence from [OpenCTI](https://www.opencti.io) into Splunk. +It enables analysts to collect, normalize, and enrich OpenCTI indicators and observables, making them searchable within Splunk Enterprise for correlation, detection, and incident response. + +--- + +## Key Features + +- Modular inputs for ingesting OpenCTI data via the OpenCTI API. +- Support for multiple object types (Indicators, Observables, Relationships, Sightings). +- Pre-configured eventtypes, tags, and alert actions. +- Custom REST endpoints for configuration and health-checks. +- Automatic reload triggers for modular input changes. + +--- + +## Installation + +1. **Copy or install the app** into `$SPLUNK_HOME/etc/apps/TA-opencti-for-splunk-enterprise`. +2. **Restart Splunk** (recommended) to ensure all REST handlers and modular inputs register correctly. +3. **Configure your OpenCTI connection** through **Settings → Data Inputs → OpenCTI for Splunk Enterprise**. + +--- + +## Configuration + +| Setting | Description | +| ----------------------- | ------------------------------------------------------- | +| **API URL** | Base URL of your OpenCTI instance. | +| **API Token** | Access token used for authentication. | +| **Collection Interval** | Frequency (in seconds) at which data is collected. | +| **Object Types** | Comma-separated list of OpenCTI entity types to ingest. | + +Configuration parameters are stored securely in `local/passwords.conf`. +Never ship credentials in `default/passwords.conf`. + +--- + +## Index Configuration + +If you plan to store OpenCTI data in a dedicated index, define one manually. + +### For on-prem installs + +Create the following stanza in `default/indexes.conf` or your deployment tooling: + +```ini +[opencti] +homePath = $SPLUNK_DB/opencti/db +coldPath = $SPLUNK_DB/opencti/colddb +thawedPath = $SPLUNK_DB/opencti/thaweddb +# frozenTimePeriodInSecs = 15552000 # optional retention (180 days) +``` + +--- + +## Splunk Enterprise Security Integration + +The add-on can expose OpenCTI indicators to the Splunk Enterprise Security (ES) Threat Intelligence Framework by populating an ES-compliant lookup called `opencti_threatintel`. + +At a high level: + +1. The modular input writes OpenCTI events into a Splunk index (for example, `opencti_stream`). +2. Normalization searches populate a catalog of indicators in the `opencti_indicators` KV store. +3. A scheduled search maps `opencti_indicators` into an ES-friendly lookup named `opencti_threatintel`. +4. ES is configured to treat `opencti_threatintel` as a threat intelligence source. + +> **Note:** The `opencti_threatintel` lookup can be defined either in this add-on **or** in the ES app (`SA-ThreatIntelligence`). +> A saved search running in the OpenCTI app can populate it as long as: +> +> - The lookup definition is shared **Global**, and +> - There is no other lookup with the same name shadowing it in the OpenCTI app. + +### Prerquisites + +- Splunk Enterprise Security installed on the search head where this add-on is installed. +- The OpenCTI modular input is configured and successfully ingesting data. +- The `opencti_indicators` KV store lookup is populated +- You have admin (or equivalent) permissions in Splunk and ES. + +### 1. Create the `opencti_threatintel` KV Store lookup + +1. In Splunk Web, go to **Settings ▸ Lookups ▸ Lookup definitions**. +2. Click **Add new** and create a KV Store lookup: + - **Destination app:** `SA-ThreatIntelligence` + - **Name:** `opencti_threatintel` + - **Type:** KV Store + - **KV store collection name:** `opencti_threatintel` + - **Fields:** \_key, threat_key, threat_match_value, threat_type, threat_description, threat_group, threat_category, threat_first_seen, threat_last_seen, threat_confidence, threat_weight +3. After saving, click on the **Permissions** link for the `opencti_threatintel` lookup definition: + - Set **Sharing** to **Global** so ES (in apps like `TA-opencti-for-splunk-enterprise`) can read it. + +> If you prefer to manage collections via config files, you can instead define this collection in `collections.conf` and the lookup in `transforms.conf`. + +--- + +### 2. Verify the `opencti_indicators` lookup + +The shipped searches in this add-on maintain a canonical indicator lookup in the `opencti_indicators` KV store. ES integration builds on top of this lookup. + +To verify it has data: + +1. Open **Search & Reporting**. +2. Run: + + ```spl + | inputlookup opencti_indicators + | head 10 + ``` + +3. You should see one row per OpenCTI indicator, with fields such as id, name, pattern, value, score, confidence, main_observable_type, etc. + +If this lookup is empty, review your OpenCTI inputs and the “Update OpenCTI Indicators Lookup” / “Nightly Rebuild OpenCTI Indicators Lookup” saved searches before proceeding. + +--- + +### 3. Enable the Update Enterprise Security Threat Intelligence saved search + +The OpenCTI add-on ships with a saved search called `Update Enterprise Security Threat Intelligence` that transforms the opencti_indicators catalog into the ES Threat Intelligence schema and writes it into the opencti_threatintel KV Store lookup. + +Saved search properties (default): + +- **Name:** `Update Enterprise Security Threat Intelligence` +- **App context:** TA-opencti-for-splunk-enterprise +- **Schedule:** _/5 _ \* \* \* (every 5 minutes) +- **Core SPL (conceptual):** + + - Reads from opencti_indicators via | inputlookup opencti_indicators + - Maps OpenCTI fields into ES fields: + +| ES field | Source OpenCTI field(s) | Notes | +| -------------------- | --------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | +| `threat_key` | `id` | Stable identifier for the indicator (OpenCTI ID). | +| `threat_match_value` | `value` | Actual indicator value (IP, domain, URL, hash, email, etc.). | +| `threat_type` | `main_observable_type`, `type` | Mapped to ES types such as `ip_intel`, `domain_intel`, `url_intel`, `file_intel`, `email_intel`, etc. | +| `threat_description` | `name` | Human-readable name/title of the indicator. | +| `threat_group` | `created_by` | Origin or owner of the indicator (e.g., group, organization, actor). | +| `threat_category` | `labels`, `attack_patterns`, `malware`, `vulnerabilities` | Combined, multi-valued category/tactic/context information. | +| `threat_first_seen` | `valid_from`, `created`, `created_at` | First time the indicator was observed or became valid. | +| `threat_last_seen` | `valid_until`, `modified`, `updated_at` | Last time the indicator was observed or considered valid. | +| `threat_confidence` | `confidence` | Numeric or ordinal confidence score from OpenCTI. | +| `threat_weight` | `score` | Severity/priority score used by ES for weighting during correlation. | + +To verify or adjust this saved search: + +1. In Splunk Web, go to **Settings ▸ Searches, reports, and alerts**. +2. Set App to TA-opencti-for-splunk-enterprise. +3. Locate `Update Enterprise Security Threat Intelligence` +4. Open the search: + - Confirm it begins with | inputlookup opencti_indicators. + - Confirm it ends with | outputlookup opencti_threatintel. +5. On the Schedule tab: + - Ensure the search is enabled. + - Adjust the schedule if needed (for example, to run less or more frequently based on your OpenCTI update cadence). 6. Save your changes. + +On each run, this search rebuilds the ES Threat Intelligence KV from the enriched opencti_indicators KV. + +--- + +### 4. Validate that opencti_threatintel is being populated + +After the `Update Enterprise Security Threat Intelligence` search has run at least once: + +1. Go to **Settings ▸ Lookups ▸ KV Store lookups** +2. Click Lookup contents for opencti_threatintel. +3. You should see rows of indicators with ES threat fields populated. + +Or from search: + +``` +| inputlookup opencti_threatintel +| head 20 +``` + +If you see no results: + +- Confirm the saved search `Update Enterprise Security Threat Intelligence` has run successfully (check Activity ▸ Jobs). +- Confirm opencti_indicators contains data. +- Check lookup permissions: +- opencti_indicators and opencti_threatintel must both be shared Global and readable by ES. + +--- + +### 5. Register opencti_threatintel as a Threat Intelligence source in ES + +Once opencti_threatintel contains data, register it as a threat intelligence source: + +1. In Splunk Enterprise Security, go to + **Configure ▸ Data Enrichment ▸ Threat Intelligence Management** (menu name may vary slightly by ES version). +2. Under Threat Intelligence Sources, add a new source: + **Type:** KV Store + **Name:** OpenCTI Threat Intelligence (or any clear label) + **Collection / Lookup:** `opencti_threatintel` +3. Enable the source. +4. Confirm that field mappings align with your lookup structure: + **Indicator value** → threat_match_value + **Type** → threat_type + **Description / group / category** → threat_description, threat_group, threat_category + **Temporal / scoring fields** → threat_first_seen, threat_last_seen, threat_confidence, threat_weight + +At this point, ES correlation searches and threat intel–aware dashboards can use opencti_threatintel as a live feed of indicators from OpenCTI. + +--- + +### 6. Troubleshooting + +No indicators appear in ES correlation searches + +- Check opencti_indicators: + +``` +| inputlookup opencti_indicators +| stats count +``` + +- Check the job history of `Update Enterprise Security Threat Intelligence` for errors. +- Confirm that opencti_threatintel has rows: + +``` +| inputlookup opencti_threatintel +| stats count +``` + +- Verify that ES has a Threat Intelligence source configured for opencti_threatintel. + +Permission or lookup issues +Ensure: - opencti_indicators KV Store lookup is shared Global. - opencti_threatintel KV Store lookup is defined in SA-ThreatIntelligence and shared Global. - Verify that the roles used by ES and the OpenCTI add-on have read/write access to these lookups. + +With these steps completed, OpenCTI becomes a first-class Threat Intelligence provider for Splunk Enterprise Security via the opencti_threatintel KV Store, maintained by the `Update Enterprise Security Threat Intelligence` saved search. diff --git a/TA-opencti-for-splunk-enterprise/README/addon_builder.conf.spec b/TA-opencti-for-splunk-enterprise/README/addon_builder.conf.spec new file mode 100755 index 0000000..80d47eb --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/README/addon_builder.conf.spec @@ -0,0 +1,4 @@ +[base] +builder_version = +builder_build = +is_edited = diff --git a/TA-opencti-for-splunk-enterprise/README/alert_actions.conf.spec b/TA-opencti-for-splunk-enterprise/README/alert_actions.conf.spec new file mode 100644 index 0000000..b5f9087 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/README/alert_actions.conf.spec @@ -0,0 +1,23 @@ + +[opencti_create_incident_response] +python.version = python3 +param.name = Name. +param.description = Description. +param.severity = Severity. +param.priority = Priority. +param.type = Type. +param.case_template = Case Template. +param.labels = Labels. +param.tlp = TLP. It's default value is tlp_amber. +param.observables_extraction = Observables Extraction. It's default value is disable. + +[opencti_create_incident] +python.version = python3 +param.name = Name. +param.description = Description. +param.type = Type. +param.severity = Severity. +param.labels = Labels. +param.tlp = TLP. It's default value is tlp_amber. +param.observables_extraction = Observables Extraction. It's default value is disable. + diff --git a/TA-opencti-for-splunk-enterprise/README/indexes.conf.example b/TA-opencti-for-splunk-enterprise/README/indexes.conf.example new file mode 100644 index 0000000..edc57b7 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/README/indexes.conf.example @@ -0,0 +1,4 @@ +[opencti_stream] +coldPath = $SPLUNK_DB/opencti_stream/colddb +homePath = $SPLUNK_DB/opencti_stream/db +thawedPath = $SPLUNK_DB/opencti_stream/thaweddb diff --git a/TA-opencti-for-splunk-enterprise/README/inputs.conf.spec b/TA-opencti-for-splunk-enterprise/README/inputs.conf.spec new file mode 100644 index 0000000..aa65346 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/README/inputs.conf.spec @@ -0,0 +1,4 @@ +[opencti_stream://] +stream_id = OpenCTI Stream Id to consume +import_from = The number of days to go back for the initial data collection. The start date is calculated on the basis of the current UTC time. +input_type = Choose where to store the data. • KV Store keeps structured data for lookups. • Index saves events for searching and alerting. \ No newline at end of file diff --git a/TA-opencti-for-splunk-enterprise/README/ta_opencti_for_splunk_enterprise_settings.conf.spec b/TA-opencti-for-splunk-enterprise/README/ta_opencti_for_splunk_enterprise_settings.conf.spec new file mode 100644 index 0000000..862d07f --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/README/ta_opencti_for_splunk_enterprise_settings.conf.spec @@ -0,0 +1,15 @@ +[proxy] +proxy_enabled = +proxy_type = +proxy_url = +proxy_port = +proxy_username = +proxy_password = +proxy_rdns = + +[logging] +loglevel = + +[additional_parameters] +opencti_url = +opencti_api_key = \ No newline at end of file diff --git a/TA-opencti-for-splunk-enterprise/TA-opencti-for-splunk-enterprise.aob_meta b/TA-opencti-for-splunk-enterprise/TA-opencti-for-splunk-enterprise.aob_meta new file mode 100644 index 0000000..0b85d27 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/TA-opencti-for-splunk-enterprise.aob_meta @@ -0,0 +1 @@ +{"alert_action_builder": {"modular_alerts": [{"description": "Create an Incident Response case in OpenCTI", "largeIcon": "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", "smallIcon": "iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAAXNSR0IArs4c6QAABFFJREFUWEftV2tTE1cYfvbSJJJQLuN0CJKsoCAlBATpWPrJioKXYbDWeun/6D/o537S6dRqZ/qlnU7HVu3Yy5RLrSK2igoJUXJBiVA7U6tA6YZsCHR2Tw6eDZvsQmHGD5xPu+fsvvuc533e8z7LYUt4ES/R4DYAmWRjgyEzueZkqMItYuLJ/LL3S4sFPJtKm8XV1reUiZj8c3mMXLHVdwwBVZSJeHy7EsP3FTTuH1/6+NzYdthtHLiKiA5QOl6N+GQKla2PdPOLE9V4Pp1GqW9saT7YI8G3wwZPy0NMGIDNydDXn7hx7LAL90JJNLXHtYCCwGF+fLt2XVQbw8zsgnYdvrYVl36axQcfPtXuVRb/DlZp17wngsXMwRLokVC/w4ZfBhJ4+70JQ5bzivrbc+U4csCJ4AMF/n0vmFJ3ro6SuhimZggoOtyvCfjjDgHDMhnsleCrseHqzQT2HDMGkzNl7AcoUwODc3ir67G2VLCJw78RwpTgjWAhg2mTg4McJfO2yihSKULNjUsetO5yoPe6jLaTk4bM0ElLZX/hrBtHD7lwJ5DEroMkfbwApMcJU5v9YxrI+O+Vy5gZ/NGL5no7fv5VRvv7+cFYYogip6AC9xU0ZITO84AqaHawaRrplVBXY0NffwJ7T+ROk+79lbSOrz5243inC/dGkmjqIEypVadWnzpEKYJ05kQY7pbgr80vYKPcWUoZ++LF8+Xo6nAiOKrA3/ZC6OwzVgW8JoDUIFTov92dw5udROh03PzOg91NDvT2y2g7Ya6ZbFArZihbU7eHknjjMEnfre+9aGmwo/uajP2nVg5mRaI2ovfCp24cPejSTnSBh3YC91yXsc+ktI1i0blVM0QDfHmmDCe7CrXb1aZp1VVmtDNa2urayKiC+hxCz8fKmgG6dcWLlkY7+vplPJtewLuHXGA1ZRXEmgCi1cRqhmrKqPqsgluVhmjXNqomeqIPhxQ0thufU2sqanoC5xPwF6fLcOpIIYZCSezMWJd1YSjUJ+H1ar2FYFuHoyqKpEI6/OXPytHZ7kQorMC31zpTllM2+IMXzX67zlyJApDKdHzKAGtHvjnnxjsH9C7BjClLgG5c9qC12aHr2qIIpB6RTl/qi4HnOTwNEGMmSBEsZJos1RTrp/6XhgLdEuprbTo/4yzgMRvepsVlLaoKKh0nnd9ZHYWcIOmjoIZCCnaaCD0vQ7SastsBtbCsr6a7LnqVx1SIgGW9ERV64IGCBsYOZ7OVExA9gVkPLAocUhmTX1gTw6xMvOuVz8vx0dkp9PTL2n2hk8fMKAHFeiQq9HwnuiEgVwGPf8LbcHUggT3M38FfgSpsLhF0O6euMZ1ehChFdRtWmRyfnMfW3Q+X5i+ed6Orw4Xiuhims34QNFZzOUYVFGWA/UqxmpKsQLZXOCgZQ88+W1LE4/m0/q9EXVfTagQmLyCz8lyvdUtlv14fN4q7AciM7ZeOof8A2nD7hBnmHjAAAAAASUVORK5CYII=", "label": "OpenCTI - Create Incident Response", "short_name": "opencti_create_incident_response", "parameters": [{"format_type": "text", "required": false, "name": "name", "label": "Name", "default_value": "", "help_string": "", "type": "", "value": ""}, {"format_type": "text", "required": false, "name": "description", "label": "Description", "default_value": "", "help_string": "", "type": "", "value": ""}, {"format_type": "text", "required": false, "name": "severity", "label": "Severity", "default_value": "", "help_string": "", "type": "", "value": ""}, {"format_type": "text", "required": false, "name": "priority", "label": "Priority", "default_value": "", "help_string": "", "type": "", "value": ""}, {"format_type": "text", "required": false, "name": "type", "label": "Type", "default_value": "", "help_string": "", "type": "", "value": ""}, {"format_type": "text", "required": false, "name": "case_template", "label": "Case Template", "default_value": "", "help_string": "", "type": "", "value": ""}, {"format_type": "text", "required": false, "name": "labels", "label": "Labels", "default_value": "", "help_string": "", "type": "", "value": ""}, {"format_type": "text", "required": false, "name": "tlp", "label": "TLP", "default_value": "tlp_amber", "help_string": "", "type": "", "value": "tlp_amber"}, {"format_type": "dropdownlist", "required": false, "name": "observables_extraction", "label": "Observables Extraction", "default_value": "disable", "help_string": "", "possible_values": {"Disable": "disable", "CIM Model": "cim_model", "Field Mapping": "field_mapping"}, "type": "", "value": "disable"}], "code": "\n# encoding = utf-8\n# Always put this line at the beginning of this file\nimport ta_opencti_add_on_declare\n\nimport os\nimport sys\n\nfrom alert_actions_base import ModularAlertBase\nimport modalert_opencti_create_incident_response_helper\n\nclass AlertActionWorkercreate_incident_response(ModularAlertBase):\n\n def __init__(self, ta_name, alert_name):\n super(AlertActionWorkercreate_incident_response, self).__init__(ta_name, alert_name)\n\n def validate_params(self):\n\n if not self.get_param(\"name\"):\n self.log_error('name is a mandatory parameter, but its value is None.')\n return False\n return True\n\n def process_event(self, *args, **kwargs):\n status = 0\n try:\n if not self.validate_params():\n return 3\n status = modalert_opencti_create_incident_response_helper.process_event(self, *args, **kwargs)\n except (AttributeError, TypeError) as ae:\n self.log_error(\"Error: {}. Please double check spelling and also verify that a compatible version of Splunk_SA_CIM is installed.\".format(str(ae)))\n return 4\n except Exception as e:\n msg = \"Unexpected error: {}.\"\n if e:\n self.log_error(msg.format(str(e)))\n else:\n import traceback\n self.log_error(msg.format(traceback.format_exc()))\n return 5\n return status\n\nif __name__ == \"__main__\":\n exitcode = AlertActionWorkercreate_incident_response(\"TA-opencti-for-splunk-enterprise\", \"opencti_create_incident_response\").run(sys.argv)\n sys.exit(exitcode)\n", "uuid": "db9d4188916444978858c9f0fcbc2ee7"}, {"description": "Create an Incident in OpenCTI", "largeIcon": "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", "smallIcon": "iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAAXNSR0IArs4c6QAABFFJREFUWEftV2tTE1cYfvbSJJJQLuN0CJKsoCAlBATpWPrJioKXYbDWeun/6D/o537S6dRqZ/qlnU7HVu3Yy5RLrSK2igoJUXJBiVA7U6tA6YZsCHR2Tw6eDZvsQmHGD5xPu+fsvvuc533e8z7LYUt4ES/R4DYAmWRjgyEzueZkqMItYuLJ/LL3S4sFPJtKm8XV1reUiZj8c3mMXLHVdwwBVZSJeHy7EsP3FTTuH1/6+NzYdthtHLiKiA5QOl6N+GQKla2PdPOLE9V4Pp1GqW9saT7YI8G3wwZPy0NMGIDNydDXn7hx7LAL90JJNLXHtYCCwGF+fLt2XVQbw8zsgnYdvrYVl36axQcfPtXuVRb/DlZp17wngsXMwRLokVC/w4ZfBhJ4+70JQ5bzivrbc+U4csCJ4AMF/n0vmFJ3ro6SuhimZggoOtyvCfjjDgHDMhnsleCrseHqzQT2HDMGkzNl7AcoUwODc3ir67G2VLCJw78RwpTgjWAhg2mTg4McJfO2yihSKULNjUsetO5yoPe6jLaTk4bM0ElLZX/hrBtHD7lwJ5DEroMkfbwApMcJU5v9YxrI+O+Vy5gZ/NGL5no7fv5VRvv7+cFYYogip6AC9xU0ZITO84AqaHawaRrplVBXY0NffwJ7T+ROk+79lbSOrz5243inC/dGkmjqIEypVadWnzpEKYJ05kQY7pbgr80vYKPcWUoZ++LF8+Xo6nAiOKrA3/ZC6OwzVgW8JoDUIFTov92dw5udROh03PzOg91NDvT2y2g7Ya6ZbFArZihbU7eHknjjMEnfre+9aGmwo/uajP2nVg5mRaI2ovfCp24cPejSTnSBh3YC91yXsc+ktI1i0blVM0QDfHmmDCe7CrXb1aZp1VVmtDNa2urayKiC+hxCz8fKmgG6dcWLlkY7+vplPJtewLuHXGA1ZRXEmgCi1cRqhmrKqPqsgluVhmjXNqomeqIPhxQ0thufU2sqanoC5xPwF6fLcOpIIYZCSezMWJd1YSjUJ+H1ar2FYFuHoyqKpEI6/OXPytHZ7kQorMC31zpTllM2+IMXzX67zlyJApDKdHzKAGtHvjnnxjsH9C7BjClLgG5c9qC12aHr2qIIpB6RTl/qi4HnOTwNEGMmSBEsZJos1RTrp/6XhgLdEuprbTo/4yzgMRvepsVlLaoKKh0nnd9ZHYWcIOmjoIZCCnaaCD0vQ7SastsBtbCsr6a7LnqVx1SIgGW9ERV64IGCBsYOZ7OVExA9gVkPLAocUhmTX1gTw6xMvOuVz8vx0dkp9PTL2n2hk8fMKAHFeiQq9HwnuiEgVwGPf8LbcHUggT3M38FfgSpsLhF0O6euMZ1ehChFdRtWmRyfnMfW3Q+X5i+ed6Orw4Xiuhims34QNFZzOUYVFGWA/UqxmpKsQLZXOCgZQ88+W1LE4/m0/q9EXVfTagQmLyCz8lyvdUtlv14fN4q7AciM7ZeOof8A2nD7hBnmHjAAAAAASUVORK5CYII=", "label": "OpenCTI - Create Incident", "short_name": "opencti_create_incident", "parameters": [{"format_type": "text", "required": false, "name": "name", "label": "Name", "default_value": "", "help_string": "", "type": "", "value": ""}, {"format_type": "text", "required": false, "name": "description", "label": "Description", "default_value": "", "help_string": "", "type": "", "value": ""}, {"format_type": "text", "required": false, "name": "type", "label": "Type", "default_value": "", "help_string": "", "type": "", "value": ""}, {"format_type": "text", "required": false, "name": "severity", "label": "Severity", "default_value": "", "help_string": "", "type": "", "value": ""}, {"format_type": "text", "required": false, "name": "labels", "label": "Labels", "default_value": "", "help_string": "", "type": "", "value": ""}, {"format_type": "text", "required": false, "name": "tlp", "label": "TLP", "default_value": "tlp_amber", "help_string": "", "type": "", "value": "tlp_amber"}, {"format_type": "dropdownlist", "required": false, "name": "observables_extraction", "label": "Observables Extraction", "default_value": "disable", "help_string": "", "possible_values": {"Disable": "disable", "CIM Model": "cim_model", "Field Mapping": "field_mapping"}, "type": "", "value": "disable"}], "code": "\n# encoding = utf-8\n# Always put this line at the beginning of this file\nimport ta_opencti_add_on_declare\n\nimport os\nimport sys\n\nfrom alert_actions_base import ModularAlertBase\nimport modalert_opencti_create_incident_helper\n\nclass AlertActionWorkercreate_incident(ModularAlertBase):\n\n def __init__(self, ta_name, alert_name):\n super(AlertActionWorkercreate_incident, self).__init__(ta_name, alert_name)\n\n def validate_params(self):\n\n if not self.get_param(\"name\"):\n self.log_error('name is a mandatory parameter, but its value is None.')\n return False\n\n return True\n\n def process_event(self, *args, **kwargs):\n status = 0\n try:\n if not self.validate_params():\n return 3\n status = modalert_opencti_create_incident_helper.process_event(self, *args, **kwargs)\n except (AttributeError, TypeError) as ae:\n self.log_error(\"Error: {}. Please double check spelling and also verify that a compatible version of Splunk_SA_CIM is installed.\".format(str(ae)))\n return 4\n except Exception as e:\n msg = \"Unexpected error: {}.\"\n if e:\n self.log_error(msg.format(str(e)))\n else:\n import traceback\n self.log_error(msg.format(traceback.format_exc()))\n return 5\n return status\n\nif __name__ == \"__main__\":\n exitcode = AlertActionWorkercreate_incident(\"TA-opencti-for-splunk-enterprise\", \"opencti_create_incident\").run(sys.argv)\n sys.exit(exitcode)\n", "uuid": "09e93533b0c74dc39919b7c1d6ec902c"}]}, "basic_builder": {"appname": "TA-opencti-for-splunk-enterprise", "friendly_name": "OpenCTI for Splunk Enterprise", "version": "1.0", "author": "Filigran", "description": "", "theme": "#001BDA", "large_icon": "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", "small_icon": "iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAAXNSR0IArs4c6QAABUxJREFUWEftV2tQlGUYPXthd1U2+iPuspuNk1ZEIgraVTOkwdCmJC5x1zC5ZImXqZn+iuZPERDtZiC3XWApQ7AimqkZmxQCsWKgpBnbHaBMjKWGXXaX5nnf3WWXWXY/iGn6wfPz22/f73znOc95zieCZmAK/6MSLQIK0I1FhgLJdVaGYtbJ0fODBTbb9BFymQgP3CdDb5/F69wVyyUYveOAddJ7PuiM7u8tsNunb5dKRYiKkKHzmvcZrjt8Aoq4X4beL+5FU4sZKQXD7tMM76oRt2UptqWacLVngl0PU0nRodOg72crduUOue99YqMCHXotKhvGsO+N39zX9WfUeHFHMKK332QvPLN8ApKIgdLiUBRkh0D/iRlprw7D4QBiIuVo12khkQDx6SZc7pxAUJAIhvfUuN5nxVsnbrHzY59cgtYqDW6P2rE12YSBQSvEYqCuXIWU55SobBxD7uERL+b8MuT68cyJUORlhqC5bRzJeUOwO4CoCDm+NmgxNQXEZ5jwTdcExCLA4exW3OaluFgZhj9G7XgqyYiffpkEvaD+rBqJzwYzxnYfHJlVSn6njB5UfjwU+VkhqDaYkX1gmAF5ZL0Cl2o07EGxqUa3HjZvWoLP6jQMzLYUE/oHrRCJgPMlKmQkKtkZOUWc7dkq4NjTgWXFy1GYczfqPuagSOjrHpKjQ69BkFSE7ZkmBC8T48K5MNy+Y8fWJCMGBidBAq4qWYG055V4v/5PpiV/YAhkQECuNyk/ForCnBA0XuTto1r/MIHSMqbkchF+v2VnjBEYqoazaiTtCMY53RhePjx7mzzZEgyIHlpWHIr87BDoLnChU/s2RsnRXqfFX3873AImVutPcwFXNXIwnqPvz4sEA/Ip9Pwh9iASOgFiApYANNpCBOwL2JwB0dufdgq9ptmMrNc5U6z/JOBTKmTsUqK6yYzsounf/LEyr5Z5/ok8pfQoF3rtR2bkHODmWVmiQvoLSnxQT2Y4wmxirjVnhjwfUH6Mg2pqHYcIQGJCMAOTe0SYgBekZTOZoukjn6I632TGnkPDggW84ICkEkBXoWbMUBlax5FaMASbxzL9z1pGAq4u5ZohZmjKiCnSVOZrcxezC/i8NESjXXmSTxMT8JsjbNJcQqfpoxUh1Hv+1ZQRM43vcJ/xJWCX0A1t40jaN+S2BKGtmzNDugruwOQzuw8Os9HesFbOdhTlG7KEcqej15OjF07nKSGgBAOSSinP8N1EEWLPId6mRzco8HmdhgGKSzPiao+FGWTF8VDkZfHdR2vGZhP2tSUIED2gpkzFtjbtppwi7jPRkXJ8qdeyLMQykQN4OtmIbmcSrHibWwKlhIz9woQeEBAt1Q9PqpCZqGRb+xVyYLtz0+u0EIl5eiShX6rWYNI2hdgUE679aGEp4NRRnhJqnFkokHv7D2hiHiFIwJRn9h7h2fjxGAXaqjWsZbEpRnx3nWdjCvUdOi3TFaXJK908d3sKnaLLvAOaW8AeSS96rRxfGe5hXxjx6UZc6fEO6o9FK/BpjYaSFrYkGpnQPRcyRZeX/AjdJ0Mk4NoyFZJ3KpmAKc/QW1F0JQFTPZNmwrdOBih7X+6aQFXDGPuNQFGUpdbGUcTttTCNueJwQ4sZ6ftHfArdJ6DIcBk621aitplGe3pRkrB3blvGUmFXL2dmzaogdLauZFkoJuGme7I3RSnQrtOgsWXcKy2S0Pem3YWYhF+ZzmbWrBoKXyNjny+ebksiXb0qCP03eER1VWS4HMZhG/vs8awHV8vQf8PqZY78DH7dVwWcMiFmtpD3LAIKxOYiQ4EY+ge765SToyuqtwAAAABJRU5ErkJggg==", "visible": true, "tab_version": "4.5.1", "tab_build_no": "0", "build_no": 2}, "data_input_builder": {"datainputs": [{"index": "default", "sourcetype": "opencti:stream", "interval": "30", "use_external_validation": true, "streaming_mode_xml": true, "name": "opencti_stream", "title": "OpenCTI Stream", "description": "This input collects real-time threat intelligence from the OpenCTI streaming API and ingests it into Splunk as events. Data includes indicators, threat actors, malware, attack patterns, and more, formatted as STIX 2.1 objects. Use this input to continuously enrich your Splunk environment with up-to-date threat context from your OpenCTI instance.", "type": "customized", "parameters": [{"name": "stream_id", "label": "Stream ID", "help_string": "OpenCTI Stream Id to consume", "required": false, "format_type": "text", "default_value": "", "placeholder": "", "type": "text", "value": "fc0e47a8-3275-416a-befd-7ccd9ae6c33e"}, {"name": "import_from", "label": "Import From (Days)", "help_string": "The number of days to go back for the initial data collection. The start date is calculated on the basis of the current UTC time.", "required": false, "format_type": "text", "default_value": "30", "placeholder": "", "type": "text", "value": "30"}, {"name": "input_type", "label": "Input Type", "help_string": "Choose where to store the data.\n\t\u2022\tKV Store keeps structured data for lookups.\n\t\u2022\tIndex saves events for searching and alerting.", "required": false, "possible_values": [{"value": "kvstore", "label": "KV Store"}, {"value": "index", "label": "Index"}], "format_type": "dropdownlist", "default_value": "kvstore", "placeholder": "", "type": "dropdownlist", "value": "Index"}], "data_inputs_options": [{"type": "customized_var", "name": "stream_id", "title": "Stream ID", "description": "OpenCTI Stream Id to consume", "required_on_edit": false, "required_on_create": false, "format_type": "text", "default_value": "", "placeholder": ""}, {"type": "customized_var", "name": "import_from", "title": "Import From (Days)", "description": "The number of days to go back for the initial data collection. The start date is calculated on the basis of the current UTC time.", "required_on_edit": false, "required_on_create": false, "format_type": "text", "default_value": "30", "placeholder": ""}, {"type": "customized_var", "name": "input_type", "title": "Input Type", "description": "Choose where to store the data.\n\t\u2022\tKV Store keeps structured data for lookups.\n\t\u2022\tIndex saves events for searching and alerting.", "required_on_edit": false, "required_on_create": false, "possible_values": [{"value": "kvstore", "label": "KV Store"}, {"value": "index", "label": "Index"}], "format_type": "dropdownlist", "default_value": "kvstore", "placeholder": ""}], "code": "# encoding = utf-8\nimport json\nimport sys\nfrom datetime import datetime, timezone, timedelta\n\nimport six\nimport splunklib.client as client\nfrom filigran_sseclient import SSEClient\nfrom stix2patterns.v21.pattern import Pattern\n\nfrom ta_opencti_add_on.constants import VERIFY_SSL, INDICATORS_KVSTORE_NAME\nfrom ta_opencti_add_on.utils import get_proxy_config\n\nSUPPORTED_TYPES = {\n \"email-addr\": {\"value\": \"email-addr\"},\n \"email-message\": {\"value\": \"email-message\"},\n \"ipv4-addr\": {\"value\": \"ipv4-addr\"},\n \"ipv6-addr\": {\"value\": \"ipv6-addr\"},\n \"domain-name\": {\"value\": \"domain-name\"},\n \"hostname\": {\"value\": \"hostname\"},\n \"url\": {\"value\": \"url\"},\n \"user-agent\": {\"value\": \"user-agent\"},\n \"file\": {\n \"hashes.MD5\": \"md5\",\n \"hashes.SHA-1\": \"sha1\",\n \"hashes.SHA-256\": \"sha256\",\n \"name\": \"filename\",\n },\n}\n\nMARKING_DEFs = {}\nIDENTITY_DEFs = {}\n\n\ndef date_now_z():\n return (\n datetime.utcnow()\n .replace(microsecond=0, tzinfo=timezone.utc)\n .isoformat()\n .replace(\"+00:00\", \"Z\")\n )\n\n\ndef validate_input(helper, definition):\n pass\n\n\ndef exist_in_kvstore(kv_store, key_id):\n try:\n kv_store.query_by_id(key_id)\n return True\n except:\n return False\n\n\ndef sanitize_key(key):\n return key.replace(\".\", \":\").replace(\"'\", \"\")\n\n\ndef parse_stix_pattern(stix_pattern):\n try:\n parsed_pattern = Pattern(stix_pattern)\n for observable_type, comparisons in six.iteritems(\n parsed_pattern.inspect().comparisons\n ):\n for data_path, data_operator, data_value in comparisons:\n if observable_type in SUPPORTED_TYPES:\n data_path = \".\".join(data_path)\n if (\n data_path in SUPPORTED_TYPES[observable_type]\n and data_operator == \"=\"\n ):\n return {\n \"type\": SUPPORTED_TYPES[observable_type][data_path],\n \"value\": data_value.strip(\"'\"),\n }\n except Exception as e:\n print(f\"[!] STIX pattern parse error: {e} | pattern = {stix_pattern}\")\n return None\n\n\ndef enrich_payload(splunk_helper, payload, msg_event):\n payload[\"stream_id\"] = splunk_helper.get_arg(\"stream_id\")\n payload[\"input_name\"] = splunk_helper.get_input_stanza_names()\n payload[\"event\"] = msg_event\n\n created_by_id = payload.get(\"created_by_ref\")\n if created_by_id:\n payload[\"created_by\"] = IDENTITY_DEFs.get(created_by_id)\n\n payload[\"markings\"] = []\n for marking_ref_id in payload.get(\"object_marking_refs\", []):\n marking_value = MARKING_DEFs.get(marking_ref_id)\n if marking_value:\n payload[\"markings\"].append(marking_value)\n\n parsed_stix = parse_stix_pattern(payload[\"pattern\"])\n if parsed_stix is None:\n return None\n payload[\"type\"] = parsed_stix[\"type\"]\n payload[\"value\"] = parsed_stix[\"value\"]\n\n if \"extensions\" in payload:\n for ext in payload[\"extensions\"].values():\n for attr in [\n \"id\",\n \"score\",\n \"created_at\",\n \"updated_at\",\n \"is_inferred\",\n \"detection\",\n \"main_observable_type\",\n ]:\n if attr in ext:\n payload[\"_key\" if attr == \"id\" else attr] = ext[attr]\n del payload[\"extensions\"]\n\n if \"external_references\" in payload:\n del payload[\"external_references\"]\n\n return payload\n\n\ndef enrich_generic_payload(splunk_helper, payload, msg_event):\n payload[\"stream_id\"] = splunk_helper.get_arg(\"stream_id\")\n payload[\"input_name\"] = splunk_helper.get_input_stanza_names()\n payload[\"event\"] = msg_event\n\n created_by_id = payload.get(\"created_by_ref\")\n if created_by_id:\n payload[\"created_by\"] = IDENTITY_DEFs.get(created_by_id)\n\n payload[\"markings\"] = []\n for marking_ref_id in payload.get(\"object_marking_refs\", []):\n marking_value = MARKING_DEFs.get(marking_ref_id)\n if marking_value:\n payload[\"markings\"].append(marking_value)\n\n if \"extensions\" in payload:\n for ext in payload[\"extensions\"].values():\n for attr in [\n \"id\",\n \"score\",\n \"created_at\",\n \"creator_ids\",\n \"updated_at\",\n \"is_inferred\",\n ]:\n if attr in ext:\n payload[\"_key\" if attr == \"id\" else attr] = ext[attr]\n\n if \"external_references\" in payload:\n del payload[\"external_references\"]\n\n return payload\n\n\ndef collect_events(helper, ew):\n helper.set_log_level(helper.log_level)\n helper.log_info(\"OpenCTI data input module start\")\n\n input_name = helper.get_input_stanza_names()\n input_type = helper.get_arg(\"input_type\").strip().lower()\n stream_id = helper.get_arg(\"stream_id\")\n target_index = helper.get_arg(\"index\")\n\n helper.log_info(f\"Selected input type: {input_type}\")\n helper.log_info(f\"Fetching data from OpenCTI stream.id: {stream_id}\")\n\n proxies = get_proxy_config(helper)\n opencti_url = helper.get_global_setting(\"opencti_url\")\n opencti_token = helper.get_global_setting(\"opencti_api_key\")\n #\n # Reset Checkpoint\n #\n helper.delete_check_point(helper.get_input_stanza_names())\n helper.log_warning(\"Checkpoint Reset\")\n #\n #\n state = helper.get_check_point(input_name)\n if state is None:\n import_from = helper.get_arg(\"import_from\")\n recover_until = datetime.utcnow().strftime(\"%Y-%m-%dT%H:%M:%SZ\")\n start_date = datetime.utcnow() - timedelta(days=int(import_from))\n start_timestamp = int(datetime.timestamp(start_date)) * 1000\n state = {\n \"start_from\": str(start_timestamp) + \"-0\",\n \"recover_until\": recover_until,\n }\n helper.log_info(f\"Initialized checkpoint state: {state}\")\n else:\n state = json.loads(state)\n\n live_stream_url = f\"{opencti_url}/stream/{stream_id}\"\n if \"recover_until\" in state:\n live_stream_url += f\"?recover={state['recover_until']}\"\n helper.log_debug(f\"Live stream URL: {live_stream_url}\")\n\n kvstore = None\n helper.log_debug(f\"Input Type: {input_type}\")\n if input_type == \"kvstore\":\n try:\n helper.log_debug(\"Initializing KV Store\")\n session_key = helper.context_meta.get(\"session_key\")\n if not session_key:\n raise ValueError(\"session_key not found in context_meta\")\n service = client.connect(token=session_key, app=\"TA-opencti-for-splunk-enterprise\")\n helper.log_info(\"Connected to Splunk KV Store\")\n kvstore = service.kvstore[INDICATORS_KVSTORE_NAME].data\n except Exception as e:\n helper.log_error(f\"Failed to connect to KV Store: {e}\")\n return\n\n try:\n messages = SSEClient(\n live_stream_url,\n state.get(\"start_from\"),\n headers={\n \"authorization\": f\"Bearer {opencti_token}\",\n \"listen-delete\": \"true\",\n \"no-dependencies\": \"true\",\n \"with-inferences\": \"true\",\n },\n verify=VERIFY_SSL,\n proxies=proxies,\n )\n\n for msg in messages:\n if msg.event not in [\"create\", \"update\", \"delete\"]:\n continue\n\n message_payload = json.loads(msg.data)\n data = message_payload.get(\"data\", {})\n entity_type = data.get(\"type\")\n\n if entity_type == \"identity\":\n IDENTITY_DEFs[data[\"id\"]] = data.get(\"name\", \"Unknown\")\n elif entity_type == \"marking-definition\":\n MARKING_DEFs[data[\"id\"]] = data.get(\"name\", \"Unknown\")\n\n parsed_stix = None\n if entity_type == \"indicator\" and data.get(\"pattern_type\") == \"stix\":\n parsed_stix = enrich_payload(helper, data, msg.event)\n else:\n parsed_stix = enrich_generic_payload(helper, data, msg.event)\n\n if parsed_stix is None:\n helper.log_error(f\"Could not enrich data for msg {msg.id}\")\n continue\n\n key = sanitize_key(data.get(\"id\", parsed_stix.get(\"_key\", msg.id)))\n indicator_value = data.get(\"value\")\n helper.log_info(f\"Processing {indicator_value}\")\n helper.log_debug(f\"{data}\")\n if (\n input_type == \"kvstore\"\n and entity_type == \"indicator\"\n and data.get(\"pattern_type\") == \"stix\"\n ):\n try:\n if msg.event == \"delete\":\n if exist_in_kvstore(kvstore, key):\n kvstore.data.delete_by_id(parsed_stix[\"_key\"])\n helper.log_info(f\"KV Store: Deleted {key}\")\n else:\n parsed_stix[\"added_at\"] = datetime.now(timezone.utc).strftime(\n \"%Y-%m-%dT%H:%M:%SZ\"\n )\n kvstore.batch_save(*[parsed_stix])\n helper.log_info(f\"KV Store: Inserted {key}\")\n except Exception as kv_ex:\n helper.log_error(f\"KV Store operation failed: {kv_ex}\")\n continue\n\n elif input_type == \"index\":\n # Set event_time from updated_at, if available and parseable\n event_time = parsed_stix.get(\"updated_at\")\n if event_time:\n try:\n event_time = datetime.strptime(\n event_time, \"%Y-%m-%dT%H:%M:%S.%fZ\"\n ).timestamp()\n except ValueError:\n helper.log_warning(\n f\"Unable to parse updated_at timestamp: {event_time}\"\n )\n event_time = None\n ew.write_event(\n helper.new_event(\n json.dumps(parsed_stix),\n time=event_time,\n host=None,\n index=target_index,\n source=\"opencti\",\n sourcetype=f\"opencti:{entity_type}\",\n done=True,\n unbroken=True,\n )\n )\n else:\n helper.log_warning(f\"Unknown input_type: {input_type}\")\n continue\n\n state[\"start_from\"] = msg.id\n helper.save_check_point(input_name, json.dumps(state))\n\n except Exception as ex:\n helper.log_error(f\"Error in stream processing loop: {ex}\")\n sys.excepthook(*sys.exc_info())\n\n", "customized_options": [{"name": "stream_id", "value": "fc0e47a8-3275-416a-befd-7ccd9ae6c33e"}, {"name": "import_from", "value": "30"}, {"name": "input_type", "value": "Index"}], "uuid": "6be75d4feb574871a1b76156e2e8ec02", "sample_count": "88449"}]}, "field_extraction_builder": {"opencti:stream": {"is_parsed": true, "data_format": "json"}, "opencti:indicator": {"is_parsed": true, "data_format": "json"}, "opencti:identity": {"data_format": "json"}, "opencti:marking-definition": {"data_format": "json"}}, "global_settings_builder": {"global_settings": {"proxy_settings": {"proxy_type": "http"}, "log_settings": {"log_level": "DEBUG"}, "customized_settings": [{"required": false, "name": "opencti_url", "label": "OpenCTI URL", "default_value": "", "placeholder": "", "help_string": "Enter the full URL of your OpenCTI platform (e.g., https://opencti.yourdomain.com). This is used to connect and pull threat intelligence data.", "type": "text", "format_type": "text", "value": "https://testing.octi.staging.filigran.io"}, {"required": false, "name": "opencti_api_key", "label": "OpenCTI API Key", "placeholder": "", "default_value": "", "help_string": "Enter your OpenCTI API token. This is used to authenticate and access the OpenCTI platform.", "type": "password", "format_type": "password", "value": ""}]}}, "sourcetype_builder": {"opencti:stream": {"metadata": {"event_count": 0, "data_input_name": "opencti_stream", "extractions_count": 0, "cims_count": 0}}, "opencti:indicator": {"metadata": {"event_count": 0, "data_input_name": null, "extractions_count": 0, "cims_count": 0}}}, "validation": {"validators": ["best_practice_validation", "data_model_mapping_validation", "field_extract_validation", "app_cert_validation"], "status": "job_finished", "validation_id": "v_1761838716_89", "progress": 1.0}} \ No newline at end of file diff --git a/TA-opencti-for-splunk-enterprise/aob_events_in_meta.json b/TA-opencti-for-splunk-enterprise/aob_events_in_meta.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/aob_events_in_meta.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/TA-opencti-for-splunk-enterprise/app.manifest b/TA-opencti-for-splunk-enterprise/app.manifest new file mode 100644 index 0000000..c17596b --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/app.manifest @@ -0,0 +1,59 @@ +{ + "schemaVersion": "2.0.0", + "info": { + "title": "OpenCTI for Splunk Enterprise", + "id": { + "group": null, + "name": "TA-opencti-for-splunk-enterprise", + "version": "1.0.0" + }, + "author": [ + { + "name": "Filigran", + "email": null, + "company": null + } + ], + "releaseDate": null, + "description": "OpenCTI Add-On for Splunk Enterprise", + "classification": { + "intendedAudience": null, + "categories": [], + "developmentStatus": null + }, + "commonInformationModels": null, + "license": { + "name": null, + "text": null, + "uri": null + }, + "privacyPolicy": { + "name": null, + "text": null, + "uri": null + }, + "releaseNotes": { + "name": null, + "text": null, + "uri": null + } + }, + "dependencies": { + }, + "tasks": [], + "inputGroups": { + }, + "incompatibleApps": { + }, + "platformRequirements": { + "splunk": { + "Enterprise": "*" + } + }, + "supportedDeployments": [ + "*" + ], + "targetWorkloads": [ + "*" + ] +} diff --git a/TA-opencti-for-splunk-enterprise/appserver/static/alert_opencti_create_incident.png b/TA-opencti-for-splunk-enterprise/appserver/static/alert_opencti_create_incident.png new file mode 100644 index 0000000..a925346 Binary files /dev/null and b/TA-opencti-for-splunk-enterprise/appserver/static/alert_opencti_create_incident.png differ diff --git a/TA-opencti-for-splunk-enterprise/appserver/static/alert_opencti_create_incident_response.png b/TA-opencti-for-splunk-enterprise/appserver/static/alert_opencti_create_incident_response.png new file mode 100644 index 0000000..a925346 Binary files /dev/null and b/TA-opencti-for-splunk-enterprise/appserver/static/alert_opencti_create_incident_response.png differ diff --git a/TA-opencti-for-splunk-enterprise/appserver/static/alerticon.png b/TA-opencti-for-splunk-enterprise/appserver/static/alerticon.png new file mode 100755 index 0000000..c7f9d26 Binary files /dev/null and b/TA-opencti-for-splunk-enterprise/appserver/static/alerticon.png differ diff --git a/TA-opencti-for-splunk-enterprise/appserver/static/js/build/394.de65465f6270b95d8111.js b/TA-opencti-for-splunk-enterprise/appserver/static/js/build/394.de65465f6270b95d8111.js new file mode 100755 index 0000000..eb8482c --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/appserver/static/js/build/394.de65465f6270b95d8111.js @@ -0,0 +1,2 @@ +(self.webpackChunk_splunk_ucc_ui_lib=self.webpackChunk_splunk_ucc_ui_lib||[]).push([[394],{7739:(e,t,n)=>{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{default:()=>p});const a=n(6540);var o=t.n(a);const l=n(4509);var i=t.n(l);const u=n(2283);var c=new Map;c.set("outlined",(function(){return o().createElement(o().Fragment,null,o().createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.94008 2C8.11165 2 7.44008 2.67157 7.44008 3.5V9H5.47861C4.11314 9 3.45783 10.676 4.46119 11.6022L10.9824 17.6218C11.557 18.1521 12.4426 18.1521 13.0172 17.6217L19.5384 11.6022C20.5417 10.676 19.8864 9 18.5209 9H16.5553V3.5C16.5553 2.67157 15.8838 2 15.0553 2H8.94008ZM9.44008 11V4H14.5553V11H17.2421L11.9998 15.8391L6.75743 11H9.44008Z"}),o().createElement("path",{d:"M4 20C3.44772 20 3 20.4477 3 21C3 21.5523 3.44772 22 4 22H20C20.5523 22 21 21.5523 21 21C21 20.4477 20.5523 20 20 20H4Z"}))})),c.set("filled",(function(){return o().createElement(o().Fragment,null,o().createElement("path",{d:"M7.44032 3.5C7.44032 2.67157 8.1119 2 8.94032 2H15.0556C15.884 2 16.5556 2.67157 16.5556 3.5V9H18.5212C19.8867 9 20.542 10.676 19.5386 11.6022L13.0174 17.6217C12.4429 18.1521 11.5572 18.1521 10.9826 17.6218L4.46143 11.6022C3.45808 10.676 4.11338 9 5.47885 9H7.44032V3.5Z"}),o().createElement("path",{d:"M3 21C3 20.4477 3.44772 20 4 20H20C20.5523 20 21 20.4477 21 21C21 21.5523 20.5523 22 20 22H4C3.44772 22 3 21.5523 3 21Z"}))}));var f=["default","outlined","filled"],s=function(e){return"default"===e||e&&!function(e){return f.indexOf(e)>=0}(e)?"outlined":e},m=function(e){var t=e.children,n=e.variant,r=function(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}(e,["children","variant"]),l=s(n),f="arrowbroadunderbardown-".concat(l),m=(0,a.useContext)(u.IconContext),p=c.get(l);if(m&&p){var d=m.toRender;if((0,m.addIcon)(f,p()),!d)return null}return o().createElement(i(),r,t,m?o().createElement("use",{href:"#".concat(f)}):!!p&&p())};m.defaultProps={variant:"default"};const p=m;e.exports=r})()},6394:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>le});var r=n(6540),a=n(259),o=n(5889),l=n.n(o),i=n(3700),u=n.n(i),c=n(2473),f=n.n(c),s=n(2568),m=n(3693),p=n(670),d=n(2677),b=n(6791),y=n(5556),v=n.n(y),g=n(6930);function h(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);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = r => {\n /******/ var t = r && r.__esModule ? \n /******/ () => r[\"default\"]\n /******/ : () => r\n /******/;\n e.d(t, {\n a: t\n });\n /******/ return t;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (r, t) => {\n /******/ for (var n in t) {\n /******/ if (e.o(t, n) && !e.o(r, n)) {\n /******/ Object.defineProperty(r, n, {\n enumerable: true,\n get: t[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var r = {};\n // ESM COMPAT FLAG\n e.r(r);\n // EXPORTS\n e.d(r, {\n default: () => /* binding */ C\n });\n // CONCATENATED MODULE: external \"react\"\n const t = require(\"react\");\n var n = e.n(t);\n // CONCATENATED MODULE: external \"@splunk/react-icons/SVG\"\n const a = require(\"@splunk/react-icons/SVG\");\n var o = e.n(a);\n // CONCATENATED MODULE: external \"@splunk/react-icons/IconProvider\"\n const l = require(\"@splunk/react-icons/IconProvider\");\n // CONCATENATED MODULE: ./src/icons/ArrowBroadUnderbarDown.tsx\n function u(e, r) {\n if (e == null) return {};\n var t = i(e, r);\n var n, a;\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n for (a = 0; a < o.length; a++) {\n n = o[a];\n if (r.indexOf(n) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(e, n)) continue;\n t[n] = e[n];\n }\n }\n return t;\n }\n function i(e, r) {\n if (e == null) return {};\n var t = {};\n var n = Object.keys(e);\n var a, o;\n for (o = 0; o < n.length; o++) {\n a = n[o];\n if (r.indexOf(a) >= 0) continue;\n t[a] = e[a];\n }\n return t;\n }\n var c = {\n variant: \"default\"\n };\n var d = new Map;\n d.set(\"outlined\", (function() {\n \n return n().createElement(n().Fragment, null, n().createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8.94008 2C8.11165 2 7.44008 2.67157 7.44008 3.5V9H5.47861C4.11314 9 3.45783 10.676 4.46119 11.6022L10.9824 17.6218C11.557 18.1521 12.4426 18.1521 13.0172 17.6217L19.5384 11.6022C20.5417 10.676 19.8864 9 18.5209 9H16.5553V3.5C16.5553 2.67157 15.8838 2 15.0553 2H8.94008ZM9.44008 11V4H14.5553V11H17.2421L11.9998 15.8391L6.75743 11H9.44008Z\"\n }), n().createElement(\"path\", {\n d: \"M4 20C3.44772 20 3 20.4477 3 21C3 21.5523 3.44772 22 4 22H20C20.5523 22 21 21.5523 21 21C21 20.4477 20.5523 20 20 20H4Z\"\n }));\n }));\n d.set(\"filled\", (function() {\n \n return n().createElement(n().Fragment, null, n().createElement(\"path\", {\n d: \"M7.44032 3.5C7.44032 2.67157 8.1119 2 8.94032 2H15.0556C15.884 2 16.5556 2.67157 16.5556 3.5V9H18.5212C19.8867 9 20.542 10.676 19.5386 11.6022L13.0174 17.6217C12.4429 18.1521 11.5572 18.1521 10.9826 17.6218L4.46143 11.6022C3.45808 10.676 4.11338 9 5.47885 9H7.44032V3.5Z\"\n }), n().createElement(\"path\", {\n d: \"M3 21C3 20.4477 3.44772 20 4 20H20C20.5523 20 21 20.4477 21 21C21 21.5523 20.5523 22 20 22H4C3.44772 22 3 21.5523 3 21Z\"\n }));\n }));\n var f = [ \"default\", \"outlined\", \"filled\" ];\n var v = function e(r) {\n return f.indexOf(r) >= 0;\n };\n var s = function e(r) {\n return r === \"default\" || r && !v(r) ? \"outlined\" : r;\n };\n /**\n * @description Download action used for downloading a file from network storage\n * @category Actions\n * @keywords arrow, bold, cloud storage\n * @variants outlined,filled\n */ var p = function e(r) {\n var a = r.children, i = r.variant, c = u(r, [ \"children\", \"variant\" ]);\n var f = s(i);\n var v = \"arrowbroadunderbardown-\".concat(f);\n var p = (0, t.useContext)(l.IconContext);\n var C = d.get(f);\n if (false) {}\n if (p && C) {\n var m = p.toRender, b = p.addIcon;\n b(v, C());\n if (!m) {\n return null;\n }\n }\n \n return n().createElement(o(), c, a, p ? n().createElement(\"use\", {\n href: \"#\".concat(v)\n }) : !!C && C());\n };\n p.defaultProps = c;\n /* harmony default export */ const C = p;\n module.exports = r;\n /******/})();","import React, { useEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport { getUnifiedConfigs } from '../../util/util';\nimport { getBuildDirPath } from '../../util/script';\n\nfunction CustomTab({ tab }) {\n const [loading, setLoading] = useState(true);\n const divRef = useRef(null);\n\n const globalConfig = getUnifiedConfigs();\n const appName = globalConfig.meta.name;\n\n const loadCustomTab = () =>\n new Promise((resolve) => {\n if (tab.customTab.type === 'external') {\n import(\n /* webpackIgnore: true */ `${getBuildDirPath()}/custom/${tab.customTab.src}.js`\n ).then((external) => {\n const Control = external.default;\n resolve(Control);\n });\n } else {\n __non_webpack_require__(\n [`app/${appName}/js/build/custom/${tab.customTab.src}`],\n (Control) => resolve(Control)\n );\n }\n });\n\n useEffect(() => {\n loadCustomTab().then((Control) => {\n const customControl = new Control(tab, divRef.current);\n customControl.render();\n setLoading(false);\n });\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n return (\n <>\n {loading && _('Loading...')}\n
\n \n );\n}\n\nCustomTab.propTypes = {\n tab: PropTypes.object.isRequired,\n};\n\nexport default CustomTab;\n","import React, { useRef, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { _ } from '@splunk/ui-utils/i18n';\nimport styled from 'styled-components';\nimport WaitSpinner from '@splunk/react-ui/WaitSpinner';\n\nimport BaseFormView from './BaseFormView';\nimport { StyledButton } from '../pages/EntryPageStyle';\nimport { axiosCallWrapper } from '../util/axiosCallWrapper';\nimport { MODE_CONFIG } from '../constants/modes';\nimport { WaitSpinnerWrapper } from './table/CustomTableStyle';\nimport { PAGE_CONF } from '../constants/pages';\n\nconst ButtonWrapper = styled.div`\n margin-left: 270px !important;\n width: 150px;\n`;\n\nfunction ConfigurationFormView({ serviceName }) {\n const form = useRef(); // nosemgrep: typescript.react.security.audit.react-no-refs.react-no-refs\n const [error, setError] = useState(null);\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [currentServiceState, setCurrentServiceState] = useState({});\n\n useEffect(() => {\n axiosCallWrapper({\n serviceName: `settings/${serviceName}`,\n handleError: true,\n callbackOnError: (err) => {\n setError(err);\n },\n }).then((response) => {\n setCurrentServiceState(response.data.entry[0].content);\n });\n }, [serviceName]);\n\n /**\n * @param event {React.MouseEvent}\n */\n const handleSubmit = (event) => {\n form.current.handleSubmit(event);\n };\n\n const handleFormSubmit = (set) => {\n setIsSubmitting(set);\n };\n\n if (error) {\n throw error;\n }\n\n // Ref is used here to call submit method of form only\n return Object.keys(currentServiceState).length ? (\n <>\n \n \n : _('Save')}\n onClick={handleSubmit}\n disabled={isSubmitting}\n />\n \n \n ) : (\n \n );\n}\n\nConfigurationFormView.propTypes = {\n serviceName: PropTypes.string.isRequired,\n};\n\nexport default ConfigurationFormView;\n","import React, { useState, memo, useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { TableContextProvider } from '../context/TableContext';\nimport TableWrapper from './table/TableWrapper';\nimport EntityModal from './EntityModal/EntityModal';\nimport EntityPage from './EntityPage/EntityPage';\nimport { MODE_CREATE, MODE_CLONE } from '../constants/modes';\nimport { PAGE_CONF } from '../constants/pages';\nimport { STYLE_PAGE } from '../constants/dialogStyles';\n\nfunction ConfigurationTable({ selectedTab, updateIsPageOpen }) {\n const [entity, setEntity] = useState({ open: false });\n\n const isConfigurationPageStyle = selectedTab.style === STYLE_PAGE;\n\n useEffect(() => {\n if (isConfigurationPageStyle) {\n updateIsPageOpen(!!entity.open);\n }\n }, [entity]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const handleRequestOpen = () => {\n setEntity({\n ...entity,\n open: true,\n mode: MODE_CREATE,\n formLabel: `Add ${selectedTab.title}`,\n });\n };\n\n // handle close request for modal style dialog\n const handleModalDialogClose = () => {\n setEntity({ ...entity, open: false });\n };\n\n // generate modal style dialog\n const generateModalDialog = () => (\n \n );\n\n // handle clone/edit request per row from table for page style dialog\n const handleOpenPageStyleDialog = (row, mode) => {\n setEntity({\n ...entity,\n open: true,\n stanzaName: row.name,\n formLabel:\n mode === MODE_CLONE ? `Clone ${selectedTab.title}` : `Update ${selectedTab.title}`,\n mode,\n });\n };\n\n // handle close request for page style dialog\n const handlePageDialogClose = () => {\n setEntity({ ...entity, open: false });\n };\n\n // generate page style dialog\n const generatePageDialog = () => (\n \n );\n\n const getTableWrapper = () => (\n \n handleRequestOpen()}\n handleOpenPageStyleDialog={handleOpenPageStyleDialog}\n />\n
\n );\n\n return (\n \n {isConfigurationPageStyle && entity.open && generatePageDialog()}\n {getTableWrapper()}\n {!isConfigurationPageStyle && entity.open && generateModalDialog()}\n \n );\n}\n\nConfigurationTable.propTypes = {\n selectedTab: PropTypes.object,\n updateIsPageOpen: PropTypes.func,\n};\n\nexport default memo(ConfigurationTable);\n","import React, { ReactElement } from 'react';\nimport Button from '@splunk/react-ui/Button';\n\ninterface DownloadButtonProps {\n // needs to be same domain if not it will just open link\n fileUrl: string;\n fileNameAfterDownload: string;\n children: ReactElement | ReactElement[] | string;\n}\n\nfunction DownloadButton(props: DownloadButtonProps) {\n return (\n \n {props.children}\n \n );\n}\n\nexport default DownloadButton;\n","import React from 'react';\nimport Icon from '@splunk/react-icons/ArrowBroadUnderbarDown';\nimport { getBuildDirPath } from '../../util/script';\nimport DownloadButton from './DownloadButton';\n\nfunction OpenApiDownloadButton() {\n return (\n
\n \n \n OpenAPI.json\n \n
\n );\n}\n\nexport default OpenApiDownloadButton;\n","import React, { useState, useCallback, useEffect } from 'react';\n\nimport { _ } from '@splunk/ui-utils/i18n';\nimport TabBar from '@splunk/react-ui/TabBar';\nimport ToastMessages from '@splunk/react-toast-notifications/ToastMessages';\nimport ColumnLayout from '@splunk/react-ui/ColumnLayout';\nimport styled from 'styled-components';\n\nimport useQuery from '../../hooks/useQuery';\nimport { getUnifiedConfigs } from '../../util/util';\nimport { TitleComponent, SubTitleComponent } from '../Input/InputPageStyle';\nimport ErrorBoundary from '../../components/ErrorBoundary/ErrorBoundary';\nimport CustomTab from '../../components/CustomTab/CustomTab';\nimport ConfigurationFormView from '../../components/ConfigurationFormView';\nimport ConfigurationTable from '../../components/ConfigurationTable';\nimport OpenApiDownloadButton from '../../components/DownloadButton/OpenApiDownloadBtn';\nimport SubDescription from '../../components/SubDescription/SubDescription';\n\nconst Row = styled(ColumnLayout.Row)`\n padding: 5px 0px;\n\n .dropdown {\n text-align: right;\n }\n\n .input_button {\n text-align: right;\n margin-right: 0px;\n }\n`;\n\nfunction ConfigurationPage() {\n const unifiedConfigs = getUnifiedConfigs();\n const { title, description, subDescription, tabs } = unifiedConfigs.pages.configuration;\n const permittedTabNames = tabs.map((tab) => tab.name);\n\n const [activeTabId, setActiveTabId] = useState(tabs[0].name);\n const [isPageOpen, setIsPageOpen] = useState(false);\n\n const query = useQuery();\n\n // Run initially and when query is updated to set active tab based on initial URL\n // or while navigating browser history\n useEffect(() => {\n // Only change active tab when provided tab in query is specified in globalConfig\n // and if the current active tab is not same as provided in query\n if (\n query &&\n permittedTabNames.includes(query.get('tab')) &&\n query.get('tab') !== activeTabId\n ) {\n setActiveTabId(query.get('tab'));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleChange = useCallback(\n (e, { selectedTabId }) => {\n setActiveTabId(selectedTabId);\n setIsPageOpen(false);\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [activeTabId]\n );\n\n const updateIsPageOpen = (data) => {\n setIsPageOpen(data);\n };\n\n const getCustomTab = (tab) => React.createElement(CustomTab, { tab });\n\n const getTabContent = (tab) => {\n let TabComponent;\n if (tab?.customTab) {\n TabComponent = getCustomTab(tab);\n } else {\n TabComponent = tab?.table ? (\n \n ) : (\n \n );\n }\n\n return (\n \n {TabComponent}\n \n );\n };\n\n return (\n \n
\n \n \n \n {_(title)}\n {_(description || '')}\n \n \n \n \n \n \n \n \n {tabs.map((tab) => (\n \n ))}\n \n
\n {tabs.map((tab) => getTabContent(tab))}\n \n
\n );\n}\n\nexport default ConfigurationPage;\n"],"names":["e","r","t","__esModule","d","a","n","o","Object","defineProperty","enumerable","get","prototype","hasOwnProperty","call","Symbol","toStringTag","value","default","C","l","Map","set","createElement","Fragment","fillRule","clipRule","f","s","indexOf","v","p","children","i","variant","c","keys","length","getOwnPropertySymbols","propertyIsEnumerable","u","concat","useContext","IconContext","m","toRender","b","addIcon","href","defaultProps","module","exports","CustomTab","_ref","tab","_useState2","useState","loading","setLoading","divRef","useRef","appName","getUnifiedConfigs","meta","name","useEffect","Promise","resolve","customTab","type","import","getBuildDirPath","src","then","external","Control","__non_webpack_require__","current","render","React","_","ref","style","visibility","propTypes","PropTypes","isRequired","ButtonWrapper","styled","div","_templateObject","ConfigurationFormView","serviceName","form","_slicedToArray","error","setError","_useState4","isSubmitting","setIsSubmitting","_useState6","currentServiceState","setCurrentServiceState","axiosCallWrapper","handleError","callbackOnError","err","response","data","entry","content","BaseFormView","page","PAGE_CONF","stanzaName","mode","MODE_CONFIG","handleFormSubmit","StyledButton","className","appearance","label","WaitSpinner","onClick","event","handleSubmit","disabled","WaitSpinnerWrapper","size","ConfigurationTable","selectedTab","updateIsPageOpen","open","entity","setEntity","isConfigurationPageStyle","STYLE_PAGE","TableContextProvider","EntityPage","handleRequestClose","_objectSpread","formLabel","display","TableWrapper","handleRequestModalOpen","MODE_CREATE","title","handleOpenPageStyleDialog","row","MODE_CLONE","EntityModal","memo","props","Button","target","to","fileUrl","download","fileNameAfterDownload","DownloadButton","replace","Icon","Row","ColumnLayout","_taggedTemplateLiteral","_unifiedConfigs$pages","pages","configuration","description","subDescription","tabs","permittedTabNames","map","activeTabId","setActiveTabId","isPageOpen","setIsPageOpen","query","useQuery","includes","handleChange","useCallback","selectedTabId","ErrorBoundary","gutter","span","TitleComponent","SubTitleComponent","SubDescription","textAlignLast","OpenApiDownloadButton","TabBar","onChange","key","tabId","TabComponent","getCustomTab","table","id","getTabContent","ToastMessages","position"],"sourceRoot":""} \ No newline at end of file diff --git a/TA-opencti-for-splunk-enterprise/appserver/static/js/build/394.licenses.txt b/TA-opencti-for-splunk-enterprise/appserver/static/js/build/394.licenses.txt new file mode 100755 index 0000000..5d2bc18 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/appserver/static/js/build/394.licenses.txt @@ -0,0 +1,204 @@ +@splunk/react-icons +Apache-2.0 + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/TA-opencti-for-splunk-enterprise/appserver/static/js/build/518.38647c7f4d5e18fa5385.js b/TA-opencti-for-splunk-enterprise/appserver/static/js/build/518.38647c7f4d5e18fa5385.js new file mode 100755 index 0000000..e8e4b59 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/appserver/static/js/build/518.38647c7f4d5e18fa5385.js @@ -0,0 +1,2 @@ +(self.webpackChunk_splunk_ucc_ui_lib=self.webpackChunk_splunk_ucc_ui_lib||[]).push([[518],{118:(e,t,n)=>{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{default:()=>f});const o=n(6540);var i=t.n(o);const a=n(4509);var l=t.n(a);const c=n(2283);var s=new Map;s.set("outlined",(function(){return i().createElement(i().Fragment,null,i().createElement("path",{d:"M6.55086 12.3369C6.16033 11.9464 5.52717 11.9464 5.13664 12.3369C4.74612 12.7275 4.74612 13.3606 5.13664 13.7512L10.9391 19.5536C11.5249 20.1394 12.4746 20.1394 13.0604 19.5536L18.8628 13.7512C19.2534 13.3606 19.2534 12.7275 18.8628 12.3369C18.4723 11.9464 17.8391 11.9464 17.4486 12.3369L13 16.7855V5.00234C13 4.45006 12.5523 4.00234 12 4.00234C11.4477 4.00234 11 4.45006 11 5.00234V16.7861L6.55086 12.3369Z"}))}));var u=["default","outlined"],p=function(e){return"default"===e||e&&!function(e){return u.indexOf(e)>=0}(e)?"outlined":e},d=function(e){var t=e.children,n=e.variant,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=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}(e,["children","variant"]),a=p(n),u="arrowdown-".concat(a),d=(0,o.useContext)(c.IconContext),f=s.get(a);if(d&&f){var h=d.toRender;if((0,d.addIcon)(u,f()),!h)return null}return i().createElement(l(),r,t,d?i().createElement("use",{href:"#".concat(u)}):!!f&&f())};d.defaultProps={variant:"default"};const f=d;e.exports=r})()},6199:(e,t,n)=>{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{default:()=>f});const o=n(6540);var i=t.n(o);const a=n(4509);var l=t.n(a);const c=n(2283);var s=new Map;s.set("outlined",(function(){return i().createElement(i().Fragment,null,i().createElement("path",{d:"M6.55135 11.6631C6.16082 12.0536 5.52766 12.0536 5.13713 11.6631C4.74661 11.2725 4.74661 10.6394 5.13713 10.2488L10.9396 4.44642C11.5253 3.86064 12.4751 3.86063 13.0609 4.44642L18.8633 10.2488C19.2538 10.6394 19.2538 11.2725 18.8633 11.6631C18.4728 12.0536 17.8396 12.0536 17.4491 11.6631L13 7.21397V19.0009C13 19.5532 12.5523 20.0009 12 20.0009C11.4477 20.0009 11 19.5532 11 19.0009V7.21441L6.55135 11.6631Z"}))}));var u=["default","outlined"],p=function(e){return"default"===e||e&&!function(e){return u.indexOf(e)>=0}(e)?"outlined":e},d=function(e){var t=e.children,n=e.variant,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=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}(e,["children","variant"]),a=p(n),u="arrowup-".concat(a),d=(0,o.useContext)(c.IconContext),f=s.get(a);if(d&&f){var h=d.toRender;if((0,d.addIcon)(u,f()),!h)return null}return i().createElement(l(),r,t,d?i().createElement("use",{href:"#".concat(u)}):!!f&&f())};d.defaultProps={variant:"default"};const f=d;e.exports=r})()},4411:(e,t,n)=>{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{default:()=>f});const o=n(6540);var i=t.n(o);const a=n(4509);var l=t.n(a);const c=n(2283);var s=new Map;s.set("outlined",(function(){return i().createElement(i().Fragment,null,i().createElement("path",{d:"M11 6.9142L8.20711 9.70709C7.81658 10.0976 7.18342 10.0976 6.79289 9.70709C6.40237 9.31657 6.40237 8.6834 6.79289 8.29288L10.9393 4.14643C11.5251 3.56064 12.4749 3.56065 13.0607 4.14643L17.2071 8.29288C17.5976 8.6834 17.5976 9.31657 17.2071 9.70709C16.8166 10.0976 16.1834 10.0976 15.7929 9.70709L13 6.9142V17.0858L15.7929 14.2929C16.1834 13.9024 16.8166 13.9024 17.2071 14.2929C17.5976 14.6834 17.5976 15.3166 17.2071 15.7071L13.0607 19.8535C12.4749 20.4393 11.5251 20.4393 10.9393 19.8535L6.79289 15.7071C6.40237 15.3166 6.40237 14.6834 6.79289 14.2929C7.18342 13.9024 7.81658 13.9024 8.20711 14.2929L11 17.0858V6.9142Z"}))}));var u=["default","outlined"],p=function(e){return"default"===e||e&&!function(e){return u.indexOf(e)>=0}(e)?"outlined":e},d=function(e){var t=e.children,n=e.variant,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=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}(e,["children","variant"]),a=p(n),u="arrowupdown-".concat(a),d=(0,o.useContext)(c.IconContext),f=s.get(a);if(d&&f){var h=d.toRender;if((0,d.addIcon)(u,f()),!h)return null}return i().createElement(l(),r,t,d?i().createElement("use",{href:"#".concat(u)}):!!f&&f())};d.defaultProps={variant:"default"};const f=d;e.exports=r})()},3397:(e,t,n)=>{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{default:()=>f});const o=n(6540);var i=t.n(o);const a=n(4509);var l=t.n(a);const c=n(2283);var s=new Map;s.set("outlined",(function(){return i().createElement(i().Fragment,null,i().createElement("path",{d:"M16.4984 14.0001C16.9311 14.0001 17.1595 14.5124 16.8703 14.8343L12.3694 19.8426C12.1707 20.0637 11.8242 20.0637 11.6256 19.8425L7.12732 14.8342C6.83823 14.5123 7.06667 14.0001 7.49931 14.0001L16.4984 14.0001Z"}),i().createElement("path",{d:"M16.4984 9.99999C16.9311 9.99999 17.1595 9.48762 16.8703 9.16578L12.3694 4.15743C12.1707 3.93633 11.8242 3.93638 11.6256 4.15754L7.12732 9.16591C6.83822 9.48778 7.06667 10 7.49931 10L16.4984 9.99999Z"}))}));var u=["default","outlined"],p=function(e){return"default"===e||e&&!function(e){return u.indexOf(e)>=0}(e)?"outlined":e},d=function(e){var t=e.children,n=e.variant,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=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}(e,["children","variant"]),a=p(n),u="caretssmallupdown-".concat(a),d=(0,o.useContext)(c.IconContext),f=s.get(a);if(d&&f){var h=d.toRender;if((0,d.addIcon)(u,f()),!h)return null}return i().createElement(l(),r,t,d?i().createElement("use",{href:"#".concat(u)}):!!f&&f())};d.defaultProps={variant:"default"};const f=d;e.exports=r})()},6198:(e,t,n)=>{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{default:()=>f});const o=n(6540);var i=t.n(o);const a=n(4509);var l=t.n(a);const c=n(2283);var s=new Map;s.set("outlined",(function(){return i().createElement(i().Fragment,null,i().createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M20.7071 5.59294C21.0977 5.98347 21.0977 6.61663 20.7071 7.00716L10.1447 17.5695C9.55896 18.1553 8.60922 18.1553 8.02343 17.5695L3.29289 12.839C2.90237 12.4485 2.90237 11.8153 3.29289 11.4248C3.68342 11.0343 4.31658 11.0343 4.70711 11.4248L9.08409 15.8018L19.2929 5.59294C19.6835 5.20242 20.3166 5.20242 20.7071 5.59294Z"}))}));var u=["default","outlined"],p=function(e){return"default"===e||e&&!function(e){return u.indexOf(e)>=0}(e)?"outlined":e},d=function(e){var t=e.children,n=e.variant,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=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}(e,["children","variant"]),a=p(n),u="checkmark-".concat(a),d=(0,o.useContext)(c.IconContext),f=s.get(a);if(d&&f){var h=d.toRender;if((0,d.addIcon)(u,f()),!h)return null}return i().createElement(l(),r,t,d?i().createElement("use",{href:"#".concat(u)}):!!f&&f())};d.defaultProps={variant:"default"};const f=d;e.exports=r})()},4065:(e,t,n)=>{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{default:()=>f});const o=n(6540);var i=t.n(o);const a=n(4509);var l=t.n(a);const c=n(2283);var s=new Map;s.set("outlined",(function(){return i().createElement(i().Fragment,null,i().createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M9.21419 12L15.5144 5.69985C15.9049 5.30933 15.9049 4.67616 15.5144 4.28564C15.1238 3.89511 14.4907 3.89511 14.1002 4.28564L7.44642 10.9394C6.86063 11.5252 6.86064 12.4749 7.44642 13.0607L14.1002 19.7144C14.4907 20.105 15.1238 20.105 15.5144 19.7144C15.9049 19.3239 15.9049 18.6907 15.5144 18.3002L9.21419 12Z"}))}));var u=["default","outlined"],p=function(e){return"default"===e||e&&!function(e){return u.indexOf(e)>=0}(e)?"outlined":e},d=function(e){var t=e.children,n=e.variant,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=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}(e,["children","variant"]),a=p(n),u="chevronleft-".concat(a),d=(0,o.useContext)(c.IconContext),f=s.get(a);if(d&&f){var h=d.toRender;if((0,d.addIcon)(u,f()),!h)return null}return i().createElement(l(),r,t,d?i().createElement("use",{href:"#".concat(u)}):!!f&&f())};d.defaultProps={variant:"default"};const f=d;e.exports=r})()},632:(e,t,n)=>{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{default:()=>f});const o=n(6540);var i=t.n(o);const a=n(4509);var l=t.n(a);const c=n(2283);var s=new Map;s.set("outlined",(function(){return i().createElement(i().Fragment,null,i().createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M14.7858 11.9999L8.48564 5.69972C8.09512 5.3092 8.09512 4.67603 8.48564 4.28551C8.87617 3.89499 9.50933 3.89499 9.89986 4.28551L16.5536 10.9393C17.1394 11.525 17.1394 12.4748 16.5536 13.0606L9.9012 19.713C9.51067 20.1035 8.87751 20.1035 8.48698 19.713C8.09646 19.3224 8.09646 18.6893 8.48698 18.2988L14.7858 11.9999Z"}))}));var u=["default","outlined"],p=function(e){return"default"===e||e&&!function(e){return u.indexOf(e)>=0}(e)?"outlined":e},d=function(e){var t=e.children,n=e.variant,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=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}(e,["children","variant"]),a=p(n),u="chevronright-".concat(a),d=(0,o.useContext)(c.IconContext),f=s.get(a);if(d&&f){var h=d.toRender;if((0,d.addIcon)(u,f()),!h)return null}return i().createElement(l(),r,t,d?i().createElement("use",{href:"#".concat(u)}):!!f&&f())};d.defaultProps={variant:"default"};const f=d;e.exports=r})()},4711:(e,t,n)=>{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{default:()=>f});const o=n(6540);var i=t.n(o);const a=n(4509);var l=t.n(a);const c=n(2283);var s=new Map;s.set("outlined",(function(){return i().createElement(i().Fragment,null,i().createElement("path",{d:"M6.28933 12.0001C6.28933 11.0964 5.5567 10.3637 4.65297 10.3637C3.74923 10.3637 3.0166 11.0964 3.0166 12.0001C3.0166 12.9038 3.74923 13.6365 4.65297 13.6365C5.5567 13.6365 6.28933 12.9038 6.28933 12.0001Z"}),i().createElement("path",{d:"M12.0166 10.3637C12.9204 10.3637 13.653 11.0964 13.653 12.0001C13.653 12.9038 12.9204 13.6365 12.0166 13.6365C11.1129 13.6365 10.3802 12.9038 10.3802 12.0001C10.3802 11.0964 11.1129 10.3637 12.0166 10.3637Z"}),i().createElement("path",{d:"M19.3803 10.3637C20.284 10.3637 21.0166 11.0964 21.0166 12.0001C21.0166 12.9038 20.284 13.6365 19.3803 13.6365C18.4765 13.6365 17.7439 12.9038 17.7439 12.0001C17.7439 11.0964 18.4765 10.3637 19.3803 10.3637Z"}))}));var u=["default","outlined"],p=function(e){return"default"===e||e&&!function(e){return u.indexOf(e)>=0}(e)?"outlined":e},d=function(e){var t=e.children,n=e.variant,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=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}(e,["children","variant"]),a=p(n),u="dotsthreehorizontal-".concat(a),d=(0,o.useContext)(c.IconContext),f=s.get(a);if(d&&f){var h=d.toRender;if((0,d.addIcon)(u,f()),!h)return null}return i().createElement(l(),r,t,d?i().createElement("use",{href:"#".concat(u)}):!!f&&f())};d.defaultProps={variant:"default"};const f=d;e.exports=r})()},4845:(e,t,n)=>{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{default:()=>f});const o=n(6540);var i=t.n(o);const a=n(4509);var l=t.n(a);const c=n(2283);var s=new Map;s.set("outlined",(function(){return i().createElement(i().Fragment,null,i().createElement("path",{d:"M12.0167 6.27273C12.9205 6.27273 13.6531 5.5401 13.6531 4.63636C13.6531 3.73263 12.9205 3 12.0167 3C11.113 3 10.3804 3.73263 10.3804 4.63636C10.3804 5.5401 11.113 6.27273 12.0167 6.27273Z"}),i().createElement("path",{d:"M13.6531 12C13.6531 12.9038 12.9205 13.6364 12.0167 13.6364C11.113 13.6364 10.3804 12.9038 10.3804 12C10.3804 11.0963 11.113 10.3636 12.0167 10.3636C12.9205 10.3636 13.6531 11.0963 13.6531 12Z"}),i().createElement("path",{d:"M13.6531 19.3637C13.6531 20.2674 12.9205 21 12.0167 21C11.113 21 10.3804 20.2674 10.3804 19.3637C10.3804 18.4599 11.113 17.7273 12.0167 17.7273C12.9205 17.7273 13.6531 18.4599 13.6531 19.3637Z"}))}));var u=["default","outlined"],p=function(e){return"default"===e||e&&!function(e){return u.indexOf(e)>=0}(e)?"outlined":e},d=function(e){var t=e.children,n=e.variant,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=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}(e,["children","variant"]),a=p(n),u="dotsthreevertical-".concat(a),d=(0,o.useContext)(c.IconContext),f=s.get(a);if(d&&f){var h=d.toRender;if((0,d.addIcon)(u,f()),!h)return null}return i().createElement(l(),r,t,d?i().createElement("use",{href:"#".concat(u)}):!!f&&f())};d.defaultProps={variant:"default"};const f=d;e.exports=r})()},787:(e,t,n)=>{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{default:()=>f});const o=n(6540);var i=t.n(o);const a=n(4509);var l=t.n(a);const c=n(2283);var s=new Map;s.set("outlined",(function(){return i().createElement(i().Fragment,null,i().createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M15.0509 16.4635C13.7888 17.4283 12.2113 18.0015 10.5 18.0015C6.35786 18.0015 3 14.6436 3 10.5015C3 6.35933 6.35786 3.00146 10.5 3.00146C14.6421 3.00146 18 6.35933 18 10.5015C18 12.2112 17.4279 13.7873 16.4647 15.0489L20.7077 19.292C21.0983 19.6825 21.0983 20.3156 20.7077 20.7062C20.3172 21.0967 19.6841 21.0967 19.2935 20.7062L15.0509 16.4635ZM16 10.5015C16 13.539 13.5376 16.0015 10.5 16.0015C7.46243 16.0015 5 13.539 5 10.5015C5 7.4639 7.46243 5.00146 10.5 5.00146C13.5376 5.00146 16 7.4639 16 10.5015Z"}))})),s.set("filled",(function(){return i().createElement(i().Fragment,null,i().createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M15.0509 16.4635C13.7888 17.4283 12.2113 18.0015 10.5 18.0015C6.35786 18.0015 3 14.6436 3 10.5015C3 6.35933 6.35786 3.00146 10.5 3.00146C14.6421 3.00146 18 6.35933 18 10.5015C18 12.2112 17.4279 13.7873 16.4647 15.0489L20.7077 19.292C21.0983 19.6825 21.0983 20.3156 20.7077 20.7062C20.3172 21.0967 19.6841 21.0967 19.2935 20.7062L15.0509 16.4635Z"}))}));var u=["default","outlined","filled"],p=function(e){return"default"===e||e&&!function(e){return u.indexOf(e)>=0}(e)?"outlined":e},d=function(e){var t=e.children,n=e.variant,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=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}(e,["children","variant"]),a=p(n),u="magnifier-".concat(a),d=(0,o.useContext)(c.IconContext),f=s.get(a);if(d&&f){var h=d.toRender;if((0,d.addIcon)(u,f()),!h)return null}return i().createElement(l(),r,t,d?i().createElement("use",{href:"#".concat(u)}):!!f&&f())};d.defaultProps={variant:"default"};const f=d;e.exports=r})()},426:(e,t,n)=>{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{default:()=>f});const o=n(6540);var i=t.n(o);const a=n(4509);var l=t.n(a);const c=n(2283);var s=new Map;s.set("outlined",(function(){return i().createElement(i().Fragment,null,i().createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M19.7105 4.29767C18.2127 2.79671 15.781 2.79622 14.2826 4.29658L3.35126 15.2421C3.12978 15.4639 3.00537 15.7645 3.00537 16.0779V19.4971C3.00537 20.3255 3.67694 20.9971 4.50537 20.9971H7.9244C8.23791 20.9971 8.53861 20.8726 8.76044 20.6511L19.7059 9.71982C21.204 8.22363 21.2061 5.7964 19.7105 4.29767ZM15.6978 5.70988C16.4147 4.99201 17.5781 4.99225 18.2948 5.7104C19.0104 6.42748 19.0094 7.58882 18.2926 8.30469L17.5306 9.06565L14.9368 6.47182L15.6978 5.70988ZM13.5235 7.88695L5.00537 16.4161V18.9971H7.58634L16.1155 10.4789L13.5235 7.88695Z"}))})),s.set("filled",(function(){return i().createElement(i().Fragment,null,i().createElement("path",{d:"M14.2828 4.29703C15.781 2.79651 18.2127 2.79687 19.7105 4.29782C21.2061 5.79655 21.2039 8.2238 19.7056 9.71982L18.9363 10.4879L13.8379 5.38276L13.5178 5.06314L14.2828 4.29703Z"}),i().createElement("path",{d:"M3.4442 15.1493L12.1143 6.47093L13.5291 7.88447L13.5241 7.8895L17.5301 11.886L17.5264 11.8873L17.5296 11.8904L8.85336 20.5584C8.5721 20.8394 8.19078 20.9972 7.79321 20.9972H4.50537C3.67694 20.9972 3.00537 20.3257 3.00537 19.4972V16.2094C3.00537 15.8118 3.16321 15.4305 3.4442 15.1493Z"}))}));var u=["default","outlined","filled"],p=function(e){return"default"===e||e&&!function(e){return u.indexOf(e)>=0}(e)?"outlined":e},d=function(e){var t=e.children,n=e.variant,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=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}(e,["children","variant"]),a=p(n),u="pencil-".concat(a),d=(0,o.useContext)(c.IconContext),f=s.get(a);if(d&&f){var h=d.toRender;if((0,d.addIcon)(u,f()),!h)return null}return i().createElement(l(),r,t,d?i().createElement("use",{href:"#".concat(u)}):!!f&&f())};d.defaultProps={variant:"default"};const f=d;e.exports=r})()},8291:(e,t,n)=>{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{default:()=>u});const o=n(6540);var i=t.n(o);const a=n(259),l=n(6844);var c=t.n(l);function s(){return s=Object.assign||function(e){for(var t=1;t{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{default:()=>u});const o=n(6540);var i=t.n(o);const a=n(259),l=n(6844);var c=t.n(l);function s(){return s=Object.assign||function(e){for(var t=1;t{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{default:()=>u});const o=n(6540);var i=t.n(o);const a=n(259),l=n(6844);var c=t.n(l);function s(){return s=Object.assign||function(e){for(var t=1;t{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{default:()=>u});const o=n(6540);var i=t.n(o);const a=n(259),l=n(6844);var c=t.n(l);function s(){return s=Object.assign||function(e){for(var t=1;t{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{default:()=>u});const o=n(6540);var i=t.n(o);const a=n(259),l=n(6844);var c=t.n(l);function s(){return s=Object.assign||function(e){for(var t=1;t{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{default:()=>u});const o=n(6540);var i=t.n(o);const a=n(259),l=n(6844);var c=t.n(l);function s(){return s=Object.assign||function(e){for(var t=1;t{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{default:()=>u});const o=n(6540);var i=t.n(o);const a=n(259),l=n(6844);var c=t.n(l);function s(){return s=Object.assign||function(e){for(var t=1;t{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{default:()=>u});const o=n(6540);var i=t.n(o);const a=n(259),l=n(6844);var c=t.n(l);function s(){return s=Object.assign||function(e){for(var t=1;t{(()=>{"use strict";var t={679:(e,t,r)=>{r.d(t,{default:()=>A});var o=r(497),i=r.n(o),a=r(23),l=r.n(a);const c=n(4839);var s=r.n(c);const u=n(4214),p=n(8587);var d=r.n(p);const f=n(6212);var h=r.n(f);const v=n(9053);var b=r.n(v);const m=n(8623);var y=r.n(m);const g=n(1198);var x=r.n(g),w=r(535),O=r(874),C="24px",S=function(e){var t=e.children;return i().createElement("svg",{viewBox:"0 0 24 24",width:C,height:C,xmlns:"http://www.w3.org/2000/svg"},t)};S.propTypes={children:l().node.isRequired};var k=function(e){var t=e.type,n="prisma"===x()().family?function(e){switch(e){case w.TOAST_TYPES.SUCCESS:return i().createElement(S,null,i().createElement("path",{fillRule:"evenodd",d:"M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12ZM16.8738 8.62627C17.2643 9.01679 17.2643 9.64996 16.8738 10.0405L11.5853 15.329C10.9996 15.9147 10.0499 15.9148 9.46414 15.3291L7.12637 12.9921C6.73579 12.6016 6.7357 11.9684 7.12616 11.5779C7.51663 11.1873 8.1498 11.1872 8.54038 11.5776L10.5246 13.5613L15.4596 8.62627C15.8501 8.23574 16.4833 8.23574 16.8738 8.62627Z",fill:"currentColor"}));case w.TOAST_TYPES.INFO:return i().createElement(S,null,i().createElement("path",{fillRule:"evenodd",d:"M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12ZM11.0001 16.0094V11.9999C11.0001 11.4476 11.4478 10.9999 12.0001 10.9999C12.5524 10.9999 13.0001 11.4476 13.0001 11.9999V16.0094C13.0001 16.5617 12.5524 17.0094 12.0001 17.0094C11.4478 17.0094 11.0001 16.5617 11.0001 16.0094ZM12 6.9999C12.6628 6.9999 13.2 7.53716 13.2 8.1999C13.2 8.86264 12.6628 9.3999 12 9.3999C11.3373 9.3999 10.8 8.86264 10.8 8.1999C10.8 7.53716 11.3373 6.9999 12 6.9999Z",fill:"currentColor"}));case w.TOAST_TYPES.ERROR:return i().createElement(S,null,i().createElement("path",{fillRule:"evenodd",d:"M22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22C17.5228 22 22 17.5228 22 12ZM11.0001 7.9906V12.0001C11.0001 12.5524 11.4478 13.0001 12.0001 13.0001C12.5524 13.0001 13.0001 12.5524 13.0001 12.0001V7.9906C13.0001 7.43832 12.5524 6.9906 12.0001 6.9906C11.4478 6.9906 11.0001 7.43832 11.0001 7.9906ZM12.0001 17.0001C12.6628 17.0001 13.2001 16.4628 13.2001 15.8001C13.2001 15.1374 12.6628 14.6001 12.0001 14.6001C11.3373 14.6001 10.8001 15.1374 10.8001 15.8001C10.8001 16.4628 11.3373 17.0001 12.0001 17.0001Z",fill:"currentColor"}));case w.TOAST_TYPES.WARNING:return i().createElement(S,null,i().createElement("path",{fillRule:"evenodd",d:"M10.6827 2.82369C11.2341 1.72544 12.7659 1.72544 13.3173 2.82369L21.8338 19.7867C22.3412 20.7973 21.6254 22 20.5165 22H3.48349C2.37462 22 1.65878 20.7973 2.16616 19.7867L10.6827 2.82369ZM11.0002 13.6618V11.0133C11.0002 10.461 11.4479 10.0133 12.0002 10.0133C12.5525 10.0133 13.0002 10.461 13.0002 11.0133V13.6618C13.0002 14.2141 12.5525 14.6618 12.0002 14.6618C11.4479 14.6618 11.0002 14.2141 11.0002 13.6618ZM13.2002 16.9347C13.2002 17.5975 12.6629 18.1347 12.0002 18.1347C11.3374 18.1347 10.8002 17.5975 10.8002 16.9347C10.8002 16.272 11.3374 15.7347 12.0002 15.7347C12.6629 15.7347 13.2002 16.272 13.2002 16.9347Z",fill:"currentColor"}));default:return i().createElement(S,null,i().createElement("path",{fillRule:"evenodd",d:"M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12ZM11.0001 16.0094V11.9999C11.0001 11.4476 11.4478 10.9999 12.0001 10.9999C12.5524 10.9999 13.0001 11.4476 13.0001 11.9999V16.0094C13.0001 16.5617 12.5524 17.0094 12.0001 17.0094C11.4478 17.0094 11.0001 16.5617 11.0001 16.0094ZM12 6.9999C12.6628 6.9999 13.2 7.53716 13.2 8.1999C13.2 8.86264 12.6628 9.3999 12 9.3999C11.3373 9.3999 10.8 8.86264 10.8 8.1999C10.8 7.53716 11.3373 6.9999 12 6.9999Z",fill:"currentColor"}))}}(t):function(e){switch(e){case w.TOAST_TYPES.SUCCESS:return i().createElement(h(),{size:C});case w.TOAST_TYPES.INFO:return i().createElement(d(),{size:C});case w.TOAST_TYPES.ERROR:return i().createElement(b(),{size:"26px"});case w.TOAST_TYPES.WARNING:return i().createElement(y(),{size:C});default:return i().createElement(d(),{size:C})}}(t);return i().createElement(O.xL,{role:"img","data-test":t,"aria-label":"".concat(t," toast icon"),$type:t},n)};k.propTypes={type:l().string.isRequired};const E=k;function j(e){return j="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},j(e)}function _(){return _=Object.assign||function(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}(e,["title","type","action","message","onFocus","onBlur","onRequestHide"])),u=i().createElement(E,{type:n}),p=i().createElement(O.g5,{"data-test":"toast-message","aria-label":o,lang:navigator.language||navigator.userLanguage,title:o},o),d=r?i().createElement(O.lj,_({"data-test":"toast-action",tabIndex:0,onClick:this.onActionClick,onFocus:a,onBlur:l,onKeyDown:this.handleActionButtonKeyDown,type:"button"},r.props),r.label):null,f=i().createElement("div",{role:"button","data-test":"toast-dismiss",style:{position:"absolute",top:"13px",right:"12px",color:"#818d99",cursor:"pointer"},tabIndex:0,focusable:"true",onClick:this.requestHide,onFocus:a,onBlur:l,onKeyDown:this.handleCloseKeyDown},i().createElement(s(),{size:"12px"})),h=i().createElement("div",{style:t?{position:"absolute",top:"13px",right:"12px",color:"#818d99",cursor:"pointer"}:{display:"inline-block",marginTop:"5px",marginRight:"12px",float:"right",color:"#818d99",cursor:"pointer"}},i().createElement(s(),{size:"12px"})),v=i().createElement(O.OF,{role:"group","aria-label":"Toast content"},t&&i().createElement(O.TL,{"data-test":"toast-message-title",$type:n},t),p," ",h," ",d," ",f);return i().createElement(O.f5,_({role:"group","data-test":"toast","aria-label":"Toast container",onMouseEnter:this.onMouseEnter,onMouseLeave:this.onMouseLeave,$type:n},c),u,v)}}]),n}(i().Component);M.propTypes={message:l().string.isRequired,type:l().string.isRequired,autoDismiss:l().bool,dismissOnActionClick:l().bool,action:l().shape({label:l().oneOfType([l().string,l().node]).isRequired,callback:l().func.isRequired,props:l().object}),title:l().string,timeout:l().number,onRequestHide:l().func,onFocus:l().func,onBlur:l().func},M.defaultProps={title:"",autoDismiss:!0,dismissOnActionClick:!0,onRequestHide:function(){},onFocus:function(){},onBlur:function(){}};const A=M},535:(e,t,n)=>{n.d(t,{TOAST_POSITIONS:()=>o,TOAST_TYPES:()=>r});var r={INFO:"info",WARNING:"warning",SUCCESS:"success",ERROR:"error"},o={TOP_LEFT:"top-left",TOP_CENTER:"top-center",TOP_RIGHT:"top-right",BOTTOM_LEFT:"bottom-left",BOTTOM_CENTER:"bottom-center",BOTTOM_RIGHT:"bottom-right"}},874:(e,t,r)=>{r.d(t,{lj:()=>N,ye:()=>$,xL:()=>A,ZW:()=>W,g5:()=>M,TL:()=>K,f5:()=>D,OF:()=>L});const o=n(2568);var i=r.n(o);const a=n(2922);var l=r.n(a);const c=n(8967);var s,u,p,d=r(535);function f(){var e=T(["\n color: ",";\n "]);return f=function(){return e},e}function h(){var e=T(["\n ",";\n ",";\n font-size: 14px;\n margin-left: 12px;\n margin-right: 12px;\n ","\n box-sizing: content-box;\n"]);return h=function(){return e},e}function v(){var e=T(["\n ","\n position: fixed;\n z-index: ",";\n ",";\n"]);return v=function(){return e},e}function b(){var e=T(["\n bottom: 16px;\n left: 50%;\n margin-left: calc(-1 * "," / 2);\n"]);return b=function(){return e},e}function m(){var e=T(["\n bottom: 16px;\n right: 16px;\n"]);return m=function(){return e},e}function y(){var e=T(["\n bottom: 16px;\n left: 16px;\n"]);return y=function(){return e},e}function g(){var e=T(["\n top: 16px;\n left: 16px;\n"]);return g=function(){return e},e}function x(){var e=T(["\n top: 16px;\n right: 16px;\n"]);return x=function(){return e},e}function w(){var e=T(["\n top: 16px;\n left: 50%;\n margin-left: calc(-1 * "," / 2);\n"]);return w=function(){return e},e}function O(){var e=T(["\n width: ",";\n\n & > div:not(:nth-last-child(1)) {\n margin-bottom: 16px;\n }\n"]);return O=function(){return e},e}function C(){var e=T(["\n display: block;\n position: relative;\n float: right;\n margin: 3px 12px 12px 0;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n width: auto;\n color: ",";\n padding: 1px 0 2px;\n border: none;\n font-size: 14px;\n line-height: 20px;\n cursor: pointer;\n max-width: calc(100% - 24px);\n background-color: ",";\n box-sizing: content-box;\n"]);return C=function(){return e},e}function S(){var e=T(["\n overflow-y: auto;\n overflow-x: hidden;\n margin-left: 47px;\n width: 453px;\n padding-top: 8px;\n box-sizing: content-box;\n"]);return S=function(){return e},e}function k(){var e=T(["\n border-radius: "," 0 0 ",";\n "]);return k=function(){return e},e}function E(){var e=T(["\n width: 36px;\n height: 100%;\n display: flex;\n position: absolute;\n align-items: center;\n padding-left: 11px;\n background: ",";\n color: ",";\n ","\n box-sizing: content-box;\n"]);return E=function(){return e},e}function j(){var e=T(["\n display: inline-block;\n height: 100%;\n padding-top: 5px;\n margin-left: 12px;\n margin-right: 12px;\n max-width: 404px;\n hyphens: auto;\n text-overflow: ellipsis;\n padding-bottom: ",";\n box-sizing: content-box;\n"]);return j=function(){return e},e}function _(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function P(){var e=T(["\n border: 1px solid\n ",";\n "]);return P=function(){return e},e}function I(){var e=T(["\n width: ",";\n min-height: 46px;\n position: relative;\n background-color: ",";\n box-shadow: ",";\n ",";\n border-radius: ",";\n box-sizing: content-box;\n"]);return I=function(){return e},e}function T(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var R="500px",D=i().div(I(),R,(0,c.pick)({enterprise:c.variables.backgroundColor,prisma:c.variables.backgroundColorPopup}),(0,c.pick)({enterprise:c.variables.overlayShadow,prisma:c.variables.embossShadow}),(0,c.pick)({enterprise:(0,o.css)(P(),(0,c.pickVariant)("$type",(s={},_(s,d.TOAST_TYPES.INFO,c.variables.cat1Color),_(s,d.TOAST_TYPES.WARNING,c.variables.warningColor),_(s,d.TOAST_TYPES.SUCCESS,c.variables.successColor),_(s,d.TOAST_TYPES.ERROR,c.variables.errorColor),s)))}),c.variables.borderRadius),M=i().div(j(),(function(e){return e.action?null:"13px"})),A=i().div(E(),(0,c.pick)({enterprise:(0,c.pickVariant)("$type",(u={},_(u,d.TOAST_TYPES.INFO,c.variables.cat1Color),_(u,d.TOAST_TYPES.WARNING,c.variables.warningColor),_(u,d.TOAST_TYPES.SUCCESS,c.variables.successColor),_(u,d.TOAST_TYPES.ERROR,c.variables.errorColor),u)),prisma:(0,c.pickVariant)("$type",(p={},_(p,d.TOAST_TYPES.INFO,c.variables.contentColorActive),_(p,d.TOAST_TYPES.WARNING,c.variables.accentColorWarning),_(p,d.TOAST_TYPES.SUCCESS,c.variables.accentColorPositive),_(p,d.TOAST_TYPES.ERROR,c.variables.accentColorNegative),p))}),(0,c.pick)({enterprise:c.variables.white,prisma:c.variables.contentColorInverted}),(0,c.pick)({prisma:(0,o.css)(k(),c.variables.borderRadius,c.variables.borderRadius)})),L=i().div(S()),N=i().button(C(),c.variables.linkColor,(0,c.pick)({enterprise:c.variables.backgroundColor,prisma:"transparent"})),$=i()(l())(O(),R),B=(0,o.css)(w(),R),V=(0,o.css)(x()),H=(0,o.css)(g()),F=(0,o.css)(y()),z=(0,o.css)(m()),q=(0,o.css)(b(),R),W=i().div(v(),c.mixins.reset("block"),c.variables.zindexToastMessages,(function(e){switch(e.position){case d.TOAST_POSITIONS.TOP_LEFT:return H;case d.TOAST_POSITIONS.TOP_CENTER:return B;case d.TOAST_POSITIONS.TOP_RIGHT:return V;case d.TOAST_POSITIONS.BOTTOM_LEFT:return F;case d.TOAST_POSITIONS.BOTTOM_CENTER:return q;case d.TOAST_POSITIONS.BOTTOM_RIGHT:return z;default:return B}})),K=i().p(h(),c.mixins.reset("block"),c.mixins.typography("title5"),(0,c.pick)({prisma:(0,o.css)(f(),(0,c.pickVariant)("$type",{info:c.variables.contentColorActive,warning:c.variables.accentColorWarning,error:c.variables.accentColorNegative,success:c.variables.accentColorPositive}))}))},23:e=>{e.exports=n(5556)},497:e=>{e.exports=n(6540)}},r={};function o(e){var n=r[e];if(void 0!==n)return n.exports;var i=r[e]={exports:{}};return t[e](i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};(()=>{o.r(i),o.d(i,{default:()=>A});var e=o(497),t=o.n(e),r=o(23),a=o.n(r);const l=n(5449);var c=o.n(l);const s=n(7218);var u=o.n(s);const p=n(4123);var d=o.n(p);const f=n(4790);var h=o.n(f);const v=n(3139);var b=o.n(v);const m=n(9095);var y=o(679),g=o(874),x=o(535);function w(e){return w="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},w(e)}function O(){return O=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&t.focusedToast!==n[0]?{focusedToast:n[0]}:null}))})),P(j(o),"handleRequestHide",(function(e){o.setState((function(t){var n=t.focusedToast||e;return{toasts:t.toasts.filter((function(e){return n.id!==e.id})),focusedToast:null}}))})),P(j(o),"renderLayer",(function(){var e=o.props,n=e.position,r=e.animationDuration,i=-1!==n.indexOf("top"),a=i?I:T;return t().createElement(g.ZW,{ref:o.handleModalMount,position:n,"data-test":"toast-messages",role:"group","aria-label":"Toast messages container",tabIndex:-1,onKeyDown:o.handleModalKeyDown},t().createElement(g.ye,{enterAnimation:a,appearAnimation:a,leaveAnimation:"fade",duration:u()(r)?200:r,easing:"cubic-bezier(0.25, 0.46, 0.45, 0.94)",verticalAlignment:i?"top":"bottom"},o.state.toasts.map((function(e){var n=e.id,r=e.title,i=e.message,a=e.type,l=e.autoDismiss,c=e.dismissOnActionClick,s=e.action,u=e.timeOut,p=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=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}(e,["id","title","message","type","autoDismiss","dismissOnActionClick","action","timeOut"]);return t().createElement(y.default,O({key:n,title:r,message:i,type:a,autoDismiss:l,dismissOnActionClick:c,action:s,timeout:u,onRequestHide:function(){return o.handleRequestHide(e)},onFocus:function(){return o.handleToastFocus(n)},onBlur:function(){return o.handleToastBlur()}},p))}))))})),o.state={toasts:e.toasts||[],focusedToast:null},o}return function(e,t,n){t&&k(e.prototype,t)}(r,[{key:"componentDidMount",value:function(){b().addCreateListener(this.handleToastCreate)}},{key:"componentWillUnmount",value:function(){this.setState({toasts:[],focusedToast:null}),b().removeCreateListener(this.handleToastCreate)}},{key:"handleToastBlur",value:function(){this.state.focusedToast&&this.setState({focusedToast:null})}},{key:"render",value:function(){var e=this,n=-1!==this.props.position.indexOf("top")?0:Math.max(this.state.toasts.length-1,0),r=this.state.toasts.length>0;return this.props.escapeToCloseToasts?t().createElement(h(),{closeReasons:["escapeKey"],render:this.renderLayer,onRequestClose:function(){return e.handleRequestHide(e.state.toasts[n])},open:r},r&&this.renderLayer()):this.renderLayer()}}]),r}(t().Component);R.propTypes={position:a().oneOf(d()(x.TOAST_POSITIONS)).isRequired,animationDuration:a().number,toasts:a().arrayOf(a().object),escapeToCloseToasts:a().bool},R.defaultProps={escapeToCloseToasts:!0};const D=R;var M=function(e){return t().createElement(D,{position:e.position})};M.propTypes={position:a().oneOf(["top-left","top-center","top-right","bottom-left","bottom-center","bottom-right"])},M.defaultProps={position:"top-center"};const A=M})(),e.exports=i})()},2351:(e,t,n)=>{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{default:()=>d});const o=n(6540);var i=t.n(o);const a=n(5556);var l=t.n(a);const c=n(9687);var s=t.n(c),u={children:l().node,target:l().oneOfType([l().object,l().string]),eventType:l().any,listener:l().func,options:l().oneOfType([l().object,l().bool])};function p(e){var t=e.children,n=e.target,r=e.eventType,o=e.listener,a=e.options;return s()(n,r,o,a),i().createElement(i().Fragment,null,t||null)}p.propTypes=u;const d=p;e.exports=r})()},4790:(e,t,n)=>{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})}};t.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),t.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),t.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};t.r(r),t.d(r,{LayerContext:()=>g,LayerStackContext:()=>y,LayerStackGlobalProvider:()=>w,default:()=>N});const o=n(6540);var i=t.n(o);const a=n(961),l=n(5556);var c=t.n(l);const s=n(8988);var u=t.n(s);const p=n(4869);var d=t.n(p);const f=n(6934);var h=t.n(f);const v=n(4214),b=n(2351);var m=t.n(b),y=i().createContext([]),g=i().createContext({}),x={children:c().node,name:c().string,scope:c().object,separateStackingContexts:c().bool};function w(e){var n=e.children,r=e.name,o=void 0===r?"__splunkui_layer_instances__":r,a=e.scope,l=void 0===a?"undefined"!=typeof window?window:t.g:a,c=e.separateStackingContexts,s=void 0!==c&&c;return l[o]||(l[o]=[]),i().createElement(y.Provider,{value:l[o]},i().createElement(g.Provider,{value:{separateStackingContexts:s}},n))}w.propTypes=x;const O=n(2568);var C=t.n(O);const S=n(8967);var k=C().div.withConfig({displayName:"LayerStyles__StyledLayer",componentId:"ii6psl-0"})(["",""],(function(e){return e.$separateStackingContexts&&(0,O.css)(["isolation:isolate;z-index:",";"],S.variables.zindexLayer)})),E={body:{appendChild:function(){return[]}},addEventListener:function(){},removeEventListener:function(){},activeElement:{blur:function(){},nodeName:""},querySelector:function(){return null},querySelectorAll:function(){return[]},getElementById:function(){return null},createEvent:function(){return{initEvent:function(){}}},createElement:function(){return{children:[],childNodes:[],style:{},setAttribute:function(){},getElementsByTagName:function(){return[]}}},createElementNS:function(){return{}},importNode:function(){return null},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""}};function j(e){return j="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},j(e)}function _(e,t){for(var n=0;n{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{default:()=>v});const o=n(6540);var i=t.n(o);const a=n(5556);var l=t.n(a);const c=n(2568);var s=t.n(c);const u=n(8967);var p=s().a.withConfig({displayName:"AnchorStyles__StyledAnchor",componentId:"sc-1m9yzet-0"})(["",";color:inherit;font-size:inherit;font-family:inherit;font-weight:inherit;line-height:inherit;text-decoration:inherit;text-rendering:inherit;text-transform:inherit;cursor:pointer;margin:1px;&:hover::after{content:' #';opacity:0.5;}&:focus,&:active{box-shadow:",";&::after{content:' #';opacity:0.5;}}"],u.mixins.reset("inline"),u.variables.focusShadow);function d(){return d=Object.assign||function(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}(e,["children","elementRef","name"]);return i().createElement(p,d({"data-test":"anchor",ref:n},o,{name:r,href:"#".concat(r)}),t)}h.propTypes=f;const v=h;e.exports=r})()},3590:(e,t,n)=>{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{default:()=>m});const o=n(6540);var i=t.n(o);const a=n(5556);var l=t.n(a);const c=n(2568);var s=t.n(c);const u=n(7596);var p=t.n(u);const d=n(8967);var f=s()(p()).withConfig({displayName:"ButtonGroupStyles__StyledBox",componentId:"sc-14fs2xs-0"})(["position:relative;[data-inline] + &{margin-left:",";}"],(0,d.pick)({enterprise:d.variables.spacingHalf,prisma:d.variables.spacingSmall}));function h(){return h=Object.assign||function(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}(e,["children"]),r=o.Children.toArray(t).filter(o.isValidElement).map((function(e,t,n){var r=n.length;return(0,o.cloneElement)(e,{prepend:t>0,append:t{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{Body:()=>m,Footer:()=>O,Header:()=>K,default:()=>fe});const o=n(6540);var i=t.n(o);const a=n(5556);var l=t.n(a);const c=n(2568);var s=t.n(c);const u=n(7596);var p=t.n(u);const d=n(8967);var f=s()(p()).withConfig({displayName:"BodyStyles__StyledBox",componentId:"sc-1130udp-0"})(["flex:1 1 auto;overflow:auto;height:100%;",";",""],(function(e){return e.$inset?(0,c.css)(["",""],(0,d.pick)({enterprise:(0,c.css)(["padding:",";&:not(:first-child){padding-top:0;}"],d.variables.spacing),prisma:{comfortable:(0,c.css)(["padding:12px 24px;&:first-child{padding-top:28px;}&:last-child{padding-bottom:28px;}"]),compact:(0,c.css)(["padding:8px 24px;&:first-child{padding-top:20px;}&:last-child{padding-bottom:20px;}"])}})):(0,c.css)(["padding:0;"])}),(0,d.pick)({prisma:{comfortable:(0,c.css)(["border-radius:",";color:",";"],d.variables.borderRadius,d.variables.contentColorMuted),compact:(0,c.css)(["border-radius:",";color:",";"],d.variables.borderRadius,d.variables.contentColorMuted)}}));function h(){return h=Object.assign||function(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}(e,["children","inset"]);return i().createElement(f,h({"data-test":"body",$inset:r},o),t)}b.propTypes=v;const m=b;var y=s()(p()).withConfig({displayName:"FooterStyles__StyledBox",componentId:"sc-1yu3r4s-0"})(["",";text-align:right;color:",";",""],(0,d.pick)({enterprise:(0,c.css)(["padding:",";&:first-child{border-top:none;}"],d.variables.spacing),prisma:{comfortable:(0,c.css)(["padding:24px;"]),compact:"padding: 18px 24px"}}),d.variables.contentColorMuted,(function(e){return e.$showTopBorder&&(0,d.pick)({enterprise:(0,c.css)(["border-top:1px solid ",";"],d.variables.gray92)})}));function g(){return g=Object.assign||function(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}(e,["children","showBorder"]);return i().createElement(y,g({"data-test":"footer",$showTopBorder:r},o),t)}w.propTypes=x;const O=w,C=n(259),S=n(4845);var k=t.n(S);const E=n(8448);var j=t.n(E);const _=n(9336);var P=t.n(_);const I=n(3592);var T=t.n(I);const R=n(8546);var D=t.n(R);const M=n(181);var A=t.n(M),L=s().div.withConfig({displayName:"HeaderStyles__StyledTitle",componentId:"eqi6uk-0"})([""," "," margin:0;overflow-wrap:break-word;padding:0;"],d.mixins.reset("block"),(0,d.pick)({enterprise:(0,c.css)(["font-weight:",";font-size:",";line-height:1.2;"],d.variables.fontWeightSemiBold,d.variables.fontSizeLarge),prisma:(0,c.css)(["font-weight:",";color:",";"],d.variables.fontWeightBold,d.variables.contentColorActive)})),N=s().div.withConfig({displayName:"HeaderStyles__StyledSubtitle",componentId:"eqi6uk-1"})([""," "," margin:0;overflow-wrap:break-word;padding:0;font-weight:normal;"],d.mixins.reset("block"),(0,d.pick)({enterprise:(0,c.css)(["font-size:",";color:",";"],d.variables.fontSizeSmall,d.variables.textGray),prisma:(0,c.css)(["color:",";"],d.variables.contentColorDefault)})),$=s().div.withConfig({displayName:"HeaderStyles__StyledTitleContainer",componentId:"eqi6uk-2"})([""," flex:0 1 auto;"," &:not(:last-child){margin-right:",";}"],d.mixins.reset("block"),(function(e){return e.$truncateTitle&&(0,c.css)(["overflow:hidden;& > ",",& > ","{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}"],L,N)}),(0,d.pick)({enterprise:d.variables.spacingHalf,prisma:d.variables.spacingSmall})),B=s().div.withConfig({displayName:"HeaderStyles__StyledActionContainer",componentId:"eqi6uk-3"})([""," align-items:center;display:flex;flex:0 0 auto;justify-content:space-between;",";"],d.mixins.reset("block"),(0,d.pick)({prisma:{comfortable:(0,c.css)(["margin-right:-12px;margin-top:-4px;"]),compact:(0,c.css)(["margin-right:-12px;margin-top:0;"])}})),V=s()(A()).withConfig({displayName:"HeaderStyles__StyledSecondaryAction",componentId:"eqi6uk-4"})(["margin-left:10px;"]),H=s()(p()).withConfig({displayName:"HeaderStyles__StyledBox",componentId:"eqi6uk-5"})(["align-items:start;display:flex;flex:0 0 auto;justify-content:space-between;position:relative;min-height:30px;"," "," >:not(","):not(","){flex:1 0 auto;}"],(0,d.pick)({enterprise:(0,c.css)(["padding:",";"],d.variables.spacing),prisma:{comfortable:(0,c.css)(["padding:16px 24px;&:last-child{padding-bottom:32px;}"]),compact:(0,c.css)(["padding:12px 24px;&:last-child{padding-bottom:24px;}"])}}),(0,d.pick)({prisma:(0,c.css)(["border-top-left-radius:",";border-top-right-radius:",";"],d.variables.borderRadius,d.variables.borderRadius)}),$,B);function F(){return F=Object.assign||function(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}(e,["actionPrimary","actionsSecondary","anchor","children","subtitle","title","truncateTitle"]),p="prisma"===(0,d.useSplunkTheme)().family?"right":"below";return i().createElement(H,F({"data-test":"header"},u),(l||a)&&i().createElement($,{$truncateTitle:s},l&&i().createElement(L,null,r?i().createElement(P(),{name:r},l):l),a&&i().createElement(N,null,a)),o,(t||n)&&i().createElement(B,null,t,n&&i().createElement(T(),{defaultPlacement:p,toggle:i().createElement(q,null)},n)))}W.propTypes=z;const K=W,U=n(9137);var G=t.n(U),Z="0.2s",Y=s().div.withConfig({displayName:"CardStyles__Styled",componentId:"ola3x0-0"})(["",";flex-direction:column;align-items:stretch;min-width:100px;flex:1;vertical-align:top;"," transition:height ",",width ",",min-width ",",max-width ",",margin ",",box-shadow ",",border-color ",";"," &[data-clickable='true']{cursor:pointer;"," &:hover{","}&:focus{","}}"],d.mixins.reset("inline-flex"),(0,d.pick)({enterprise:(0,c.css)(["background-color:",";border:1px solid transparent;"],d.variables.backgroundColor),prisma:(0,c.css)(["background-color:",";border-radius:",";box-shadow:",";"],d.variables.backgroundColorSection,d.variables.borderRadius,d.variables.embossShadow)}),Z,Z,Z,Z,Z,Z,Z,(function(e){return e.$cardHasBorder&&(0,d.pick)({enterprise:(0,c.css)(["border-color:",";"],d.variables.borderLightColor)})}),(function(e){return e.$selected&&(0,d.pick)({enterprise:(0,c.css)(["border-color:",";"],d.variables.focusColor),prisma:(0,c.css)(["background-color:",";"],d.mixins.overlayColors(d.variables.backgroundColorSection,d.variables.interactiveColorOverlaySelected))})}),(0,d.pick)({enterprise:(0,c.css)(["box-shadow:",";"],d.variables.overlayShadow),prisma:(0,c.css)(["box-shadow:",";background-color:",";"],d.variables.embossShadow,d.mixins.overlayColors(d.variables.backgroundColorSection,d.variables.interactiveColorOverlayHover))}),(0,d.pick)({enterprise:(0,c.css)(["box-shadow:",";"],d.variables.focusShadow),prisma:(0,c.css)(["box-shadow:",";background-color:",";"],d.variables.embossShadow,d.mixins.overlayColors(d.variables.backgroundColorSection,d.variables.interactiveColorOverlayHover))})),X=Y.withComponent(G()),Q=s().div.withConfig({displayName:"CardStyles__StyledFirefoxFlexHack",componentId:"ola3x0-1"})(["display:flex;flex:1 1 auto;flex-direction:column;align-items:stretch;justify-content:stretch;height:100%;",""],(0,d.pick)({prisma:(0,c.css)(["border-radius:",";"],d.variables.borderRadius)}));function J(e){return J="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},J(e)}function ee(){return ee=Object.assign||function(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 ue={children:l().node,elementRef:l().oneOfType([l().func,l().object]),margin:l().number,maxWidth:l().oneOfType([l().number,l().string]),minWidth:l().oneOfType([l().number,l().string]),onClick:l().func,openInNewContext:l().bool,selected:l().bool,showBorder:l().bool,to:l().string,value:l().any};function pe(e){var t=e.margin,n=e.maxWidth,r=e.minWidth,o=e.selected,i=e.showBorder,a=e.style,l=se(e,["margin","maxWidth","minWidth","selected","showBorder","style"]),c=function(e){for(var t=1;t{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{default:()=>N});const o=n(6540);var i=t.n(o);const a=n(6620);var l=t.n(a);const c=n(5556);var s=t.n(c);const u=n(6283);var p=t.n(u);const d=n(4839);var f=t.n(d);const h=n(259),v=n(4548),b=n(8967),m=n(2568);var y=t.n(m);const g=n(9137);var x=t.n(g),w=y().div.withConfig({displayName:"ChipStyles__StyledBasic",componentId:"sc-1sd3tsh-0"})(["",";background-color:",";border:1px solid transparent;flex:0 1 auto;max-width:calc(100% - 3px);border-radius:2px;",";"," "," ",""],b.mixins.reset("inline-flex"),(0,b.pickVariant)("$appearance",{default:{enterprise:{dark:b.variables.gray45,light:b.variables.gray92},prisma:b.variables.neutral100},info:{enterprise:b.variables.infoColorL30},success:{enterprise:b.variables.successColorL30},warning:{enterprise:b.variables.warningColorL30},error:{enterprise:b.variables.errorColorL30,prisma:b.variables.accentColorNegative},outline:{prisma:"transparent"},custom:function(e){return e.$backgroundColor}}),(function(e){return"outline"===e.$appearance&&(0,m.css)(["border-color:",";"],b.variables.interactiveColorBorder)}),(0,b.pick)({enterprise:(0,m.css)(["color:",";line-height:",";margin:0 2px 2px 0;"],b.variables.textGray,b.variables.lineHeight),prisma:(0,m.css)(["color:",";line-height:16px;margin:1px;"],(function(e){return"error"===e.$appearance?b.variables.contentColorInverted:b.variables.contentColorDefault}))}),(0,b.pick)({enterprise:{comfortable:(0,m.css)(["height:calc("," - 6px);padding:4px 7px;"],b.variables.inputHeight),compact:(0,m.css)(["height:calc("," - 6px);padding:2px 4px;"],b.variables.inputHeight)},prisma:{comfortable:(0,m.css)(["height:calc("," - 8px);padding:7px 7px;font-size:",";"],b.variables.inputHeight,b.variables.fontSizeSmall),compact:(0,m.css)(["height:calc("," - 8px);padding:3px 7px;font-size:",";"],b.variables.inputHeight,b.variables.fontSizeSmall)}}),(function(e){return e.$disabled&&(0,m.css)(["background-color:",";"],(0,b.pickVariant)("$appearance",{default:{enterprise:{dark:"rgba(0, 0, 0, 0.15)",light:"rgba(0, 0, 0, 0.05)"},prisma:b.variables.interactiveColorBackgroundDisabled},info:{enterprise:b.mixins.colorWithAlpha(b.variables.infoColorL10,.3)},success:{enterprise:b.mixins.colorWithAlpha(b.variables.successColorL10,.3)},warning:{enterprise:b.mixins.colorWithAlpha(b.variables.warningColorL10,.3)},error:{enterprise:b.mixins.colorWithAlpha(b.variables.errorColorL10,.3),prisma:b.variables.interactiveColorBackgroundDisabled},outline:{prisma:b.variables.interactiveColorBackgroundDisabled},custom:{enterprise:{dark:"rgba(0, 0, 0, 0.15)",light:"rgba(0, 0, 0, 0.05)"},prisma:b.variables.interactiveColorBackgroundDisabled}}))})),O=y()(w).withConfig({displayName:"ChipStyles__Styled",componentId:"sc-1sd3tsh-1"})(["align-items:center;"]),C=y().div.withConfig({displayName:"ChipStyles__StyledInner",componentId:"sc-1sd3tsh-2"})(["",";"],(0,b.pick)({enterprise:(0,m.css)(["display:flex;max-width:100%;"]),prisma:(0,m.css)(["display:grid;max-width:100%;height:16px;column-gap:",";",";"],(0,b.pick)({prisma:{compact:b.variables.spacingXSmall,comfortable:b.variables.spacingSmall}}),(function(e){var t=e.$icon,n=e.$removable,r=(0,m.css)(["grid-template-columns:1fr;"]);return t&&n?r=(0,m.css)(["grid-template-columns:0fr 1fr 0fr;"]):t?r=(0,m.css)(["grid-template-columns:0fr 1fr;"]):n&&(r=(0,m.css)(["grid-template-columns:1fr 0fr;"])),r}))})),S=y().div.withConfig({displayName:"ChipStyles__StyledIcon",componentId:"sc-1sd3tsh-3"})(["",";margin-right:",";color:",";"],(0,b.pick)({prisma:{compact:(0,m.css)(["font-size:14px;display:inline-flex;svg{height:16px;vertical-align:baseline;}"]),comfortable:(0,m.css)(["font-size:18px;display:inline-flex;align-self:center;svg{height:16px;vertical-align:baseline;}"])},enterprise:(0,m.css)(["flex:0 0 auto;"])}),(0,b.pick)({enterprise:"3px"}),(0,b.pickVariant)("$disabled",{true:b.variables.contentColorDisabled,false:{enterprise:function(e){return e.$foregroundColor||b.variables.contentColorDefault},prisma:function(e){var t=e.$foregroundColor,n=e.$appearance;return t||("error"===n?b.variables.contentColorInverted:b.variables.contentColorDefault)}}})),k=y().div.withConfig({displayName:"ChipStyles__StyledLabel",componentId:"sc-1sd3tsh-4"})([""," ",";color:",";"],b.mixins.ellipsis(),(0,b.pick)({enterprise:(0,m.css)(["flex:0 1 auto;"])}),(0,b.pickVariant)("$disabled",{true:b.variables.contentColorDisabled,false:{enterprise:function(e){var t=e.$appearance;return e.$foregroundColor||("default"===t||"outline"===t?b.variables.contentColorDefault:b.variables.gray30)},prisma:function(e){var t=e.$appearance;return e.$foregroundColor||("error"===t?b.variables.contentColorInverted:b.variables.contentColorActive)}}})),E=y().span.withConfig({displayName:"ChipStyles__StyledRemove",componentId:"sc-1sd3tsh-5"})(["",";"],(0,b.pick)({enterprise:(0,m.css)(["flex:0 0 auto;padding-left:",";font-size:",";color:",";"],b.variables.spacingQuarter,(0,b.pick)({compact:"9px",comfortable:"10.5px"}),(0,b.pickVariant)("$disabled",{true:b.variables.contentColorDisabled,false:{enterprise:function(e){var t=e.$foregroundColor,n=e.$appearance;return t||("default"===n||"outline"===n?b.variables.textGray:b.variables.gray30)}}})),prisma:(0,m.css)(["font-size:",";display:flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:12px;font-size:9px;color:",";"],(0,b.pick)({compact:"9px",comfortable:"10.5px"}),(function(e){var t=e.$disabled,n=e.$foregroundColor;return t?b.variables.contentColorDisabled:n||"inherit"}))})),j=y()(w.withComponent(x())).withConfig({displayName:"ChipStyles__StyledClickable",componentId:"sc-1sd3tsh-6"})(["flex:0 1 auto;line-height:16px;cursor:pointer;&:focus{",";}&:not([disabled]):hover{",";}",";"],(0,b.pick)({enterprise:(0,m.css)(["box-shadow:",";color:",";"],b.variables.focusShadow,b.variables.linkColor),prisma:(0,m.css)(["color:",";","{background-color:",";box-shadow:0 0 0 3px ",";}"],b.variables.contentColorActive,E,b.variables.interactiveColorOverlayHover,b.variables.focusColor)}),(0,b.pick)({enterprise:(0,m.css)(["background-color:",";","{color:",";}"],(0,b.pickVariant)("$appearance",{default:{dark:b.variables.gray30,light:b.variables.gray96},info:b.variables.infoColorL20,success:b.variables.successColorL20,warning:b.variables.warningColorL20,error:b.variables.errorColorL20,custom:{dark:b.variables.gray30,light:b.variables.gray96}}),E,(function(e){return e.$foregroundColor||b.variables.linkColor})),prisma:(0,m.css)(["color:",";","{background-color:",";",";}"],b.variables.contentColorActive,E,b.variables.interactiveColorOverlayHover,(function(e){return"error"===e.$appearance&&(0,m.css)(["color:",";"],b.variables.contentColorInverted)}))}),(0,b.pick)({prisma:(0,m.css)(["&:not([disabled]):active ","{background-color:",";}"],E,b.variables.interactiveColorOverlayActive)}));function _(){return _=Object.assign||function(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 R={appearance:s().oneOf(["info","success","warning","error","outline"]),backgroundColor:s().string,children:s().node.isRequired,disabled:s().bool,elementRef:s().oneOfType([s().func,s().object]),foregroundColor:s().string,icon:s().node,onRequestRemove:s().func,value:s().any};function D(e){var t=e.appearance,n=e.backgroundColor,r=e.disabled,o=e.foregroundColor,i=e.icon,a=T(e,["appearance","backgroundColor","disabled","foregroundColor","icon"]),l=o&&(0,v.isCSSColor)(o)?o:void 0,c=n&&(0,v.isCSSColor)(n)?n:void 0;return[{"data-test":"chip",$appearance:t||(c?"custom":"default"),$backgroundColor:c,$foregroundColor:l,disabled:r,icon:i},a]}function M(e){var t=P(D(e),2),n=t[0],r=t[1],a=n.$appearance,c=n.$foregroundColor,s=n.disabled,u=n.icon,d=T(n,["$appearance","$foregroundColor","disabled","icon"]),v=r.children,m=r.elementRef,y=r.onRequestRemove,g=r.value,x=T(r,["children","elementRef","onRequestRemove","value"]),w=(0,b.useSplunkTheme)().isEnterprise,O=(0,o.useCallback)((function(e){y(e,{value:g})}),[y,g]);return i().createElement(j,_({$appearance:a,$disabled:s,$foregroundColor:c,"data-test-value":g,disabled:s,elementRef:m,onClick:O},d,l()(x,Object.keys(R))),i().createElement(C,{$icon:!!u,$removable:!0},u&&i().createElement(S,{$appearance:a,$disabled:s,$foregroundColor:c},u),i().createElement(k,{"data-test":"label",$appearance:a,$disabled:s,$foregroundColor:c},v),i().createElement(E,{$appearance:a,$disabled:s,$foregroundColor:c},w?i().createElement(f(),{"data-test":"cross",hideDefaultTooltip:!0,screenReaderText:(0,h._)("Remove"),size:.85}):i().createElement(p(),{"aria-label":(0,h._)("Remove"),"data-test":"cross",height:"20px",width:"20px"}))))}function A(e){var t=P(D(e),2),n=t[0],r=t[1],o=n.$appearance,a=n.$foregroundColor,c=n.disabled,s=n.icon,u=T(n,["$appearance","$foregroundColor","disabled","icon"]),p=r.children,d=r.elementRef,f=T(r,["children","elementRef"]);return i().createElement(O,_({$appearance:o,$disabled:c,ref:d},u,l()(f,Object.keys(R))),i().createElement(C,{$icon:!!s,$removable:!1},s&&i().createElement(S,{$appearance:o,$disabled:c,$foregroundColor:a},s),i().createElement(k,{"data-test":"label",$appearance:o,$disabled:c,$foregroundColor:a},p)))}function L(e){return function(e){return!!e.onRequestRemove}(e)?i().createElement(M,e):i().createElement(A,e)}L.propTypes=R,L.defaultProps={disabled:!1};const N=L;e.exports=r})()},6771:(e,t,n)=>{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{default:()=>Y});const o=n(6540);var i=t.n(o);const a=n(5556);var l=t.n(a);const c=n(7521);var s=t.n(c);const u=n(9453);var p=t.n(u);const d=n(6620);var f=t.n(d);const h=n(7478),v=n(7198);var b=t.n(v);const m=n(2568);var y=t.n(m);const g=n(7596);var x=t.n(g);const w=n(9137);var O=t.n(w);const C=n(8967);var S=y()(x()).withConfig({displayName:"CollapsiblePanelStyles__StyledBox",componentId:"sc-1phikbp-0"})(["display:flex;flex-direction:column;min-height:",";",";& + &{margin-top:",";}"],(0,C.pick)({enterprise:(0,m.css)(["calc("," + 12px)"],C.variables.lineHeight),prisma:{comfortable:"56px",compact:"48px"}}),(0,C.pick)({prisma:(0,m.css)(["background-color:",";"],C.variables.backgroundColorSection)}),(0,C.pick)({enterprise:"2px",prisma:"1px"})),k=y().span.withConfig({displayName:"CollapsiblePanelStyles__StyledIcon",componentId:"sc-1phikbp-1"})(["position:absolute;left:",";transition:transform ",";",";"],(0,C.pick)({enterprise:"12px",prisma:"20px"}),(0,C.pick)({enterprise:"300ms",prisma:"200ms"}),(0,C.pick)({prisma:(0,m.css)(["color:",";display:flex;top:",";[disabled] > &{color:inherit;}"],C.variables.contentColorDefault,(0,C.pick)({comfortable:"20px",compact:"16px"}))})),E=y().div.withConfig({displayName:"CollapsiblePanelStyles__StyledTitleWithActions",componentId:"sc-1phikbp-2"})(["flex-shrink:0;border-bottom:0;position:relative;padding:",";transition:background-color 0.2s,border 0.2s,box-shadow 0.2s;color:",";"," ",""],(0,C.pick)({enterprise:(0,m.css)([""," "," "," 30px"],C.variables.spacingXSmall,C.variables.spacingSmall,C.variables.spacingXSmall),prisma:{comfortable:"8px 10px 8px 52px",compact:"8px 10px 8px 52px"}}),(0,C.pick)({enterprise:C.variables.textColor,prisma:C.variables.contentColorActive}),(0,C.pick)({prisma:(0,m.css)(["background-color:",";"],C.variables.interactiveColorBackground),enterprise:{dark:(0,m.css)(["background-color:",";"],C.variables.gray45),light:(0,m.css)(["background-color:",";"],C.variables.gray96)}}),(function(e){return e.$disabled&&(0,m.css)(["cursor:default;color:",";"],(0,C.pick)({enterprise:C.variables.contentColorDefault,prisma:C.variables.contentColorDisabled}))})),j=y()(O()).withConfig({displayName:"CollapsiblePanelStyles__StyledClickableIcon",componentId:"sc-1phikbp-3"})(["position:absolute;left:",";padding:",";top:8px;& > svg{transition:transform ",";}",";"," &:focus:not([disabled]),&:active:not([disabled]){color:",";box-shadow:",";}&:hover:not([disabled]){color:",";background-color:",";}"],(0,C.pick)({enterprise:"4px",prisma:"8px"}),(0,C.pick)({enterprise:{comfortable:"2px 8px",compact:"0px 8px"},prisma:{comfortable:"14px",compact:"8px"}}),(0,C.pick)({enterprise:"300ms",prisma:"200ms"}),(0,C.pick)({prisma:(0,m.css)(["color:",";display:flex;[disabled] > &{color:inherit;}"],C.variables.contentColorDefault)}),(0,C.pickVariant)("$open",{true:(0,m.css)(["& > svg{transform:rotate(90deg);}"])}),(0,C.pick)({enterprise:C.variables.textColor,prisma:C.variables.contentColorActive}),C.variables.focusShadowInset,(0,C.pick)({enterprise:C.variables.textColor,prisma:C.variables.contentColorActive}),(0,C.pick)({enterprise:{light:C.variables.gray92,dark:C.variables.gray30},prisma:C.mixins.overlayColors(C.variables.interactiveColorBackground,C.variables.interactiveColorOverlayHover)})),_=y()(O()).withConfig({displayName:"CollapsiblePanelStyles__StyledTitleClickable",componentId:"sc-1phikbp-4"})(["width:100%;flex-shrink:0;border-bottom:0;cursor:pointer;position:relative;display:block;transition:background-color 0.2s,border 0.2s,box-shadow 0.2s;padding:",";color:",";"," "," &[disabled]{cursor:default;color:",";}&:focus:not([disabled]),&:active:not([disabled]){color:",";box-shadow:",";}&:hover:not([disabled]){color:",";background-color:",";}"],(0,C.pick)({enterprise:"6px 30px",prisma:{comfortable:"18px 20px 18px 52px",compact:"14px 20px 14px 52px"}}),(0,C.pick)({enterprise:C.variables.textColor,prisma:C.variables.contentColorActive}),(0,C.pick)({prisma:(0,m.css)(["background-color:",";"],C.variables.interactiveColorBackground)}),(0,C.pickVariant)("$open",{true:(0,m.css)(["","{transform:rotate(90deg);}"],k),false:{enterprise:{dark:(0,m.css)(["background-color:",";"],C.variables.gray45),light:(0,m.css)(["background-color:",";"],C.variables.gray96)}}}),(0,C.pick)({enterprise:C.variables.contentColorDefault,prisma:C.variables.contentColorDisabled}),(0,C.pick)({enterprise:C.variables.textColor,prisma:C.variables.contentColorActive}),C.variables.focusShadowInset,(0,C.pick)({enterprise:C.variables.textColor,prisma:C.variables.contentColorActive}),(0,C.pick)({enterprise:{light:C.variables.gray92,dark:C.variables.gray30},prisma:C.mixins.overlayColors(C.variables.interactiveColorBackground,C.variables.interactiveColorOverlayHover)})),P=y().span.withConfig({displayName:"CollapsiblePanelStyles__StyledHeadingContent",componentId:"sc-1phikbp-5"})(["display:flex;justify-content:space-between;"," ",""],(0,C.pick)({prisma:(0,m.css)(["font-weight:",";"],C.variables.fontWeightSemiBold)}),(function(e){return e.$titleWithActions&&(0,m.css)(["min-height:",";"],(0,C.pick)({prisma:{comfortable:"40px",compact:"32px"}}))})),I=y().span.withConfig({displayName:"CollapsiblePanelStyles__StyledDescription",componentId:"sc-1phikbp-6"})(["font-size:",";margin-left:",";"],C.variables.fontSizeSmall,(0,C.pick)({enterprise:C.variables.spacingHalf,prisma:C.variables.spacingLarge}));const T=n(632);var R=t.n(T);const D=n(7232);var M=t.n(D);const A=n(259);var L={open:l().bool},N=function(e){var t=e.open,n=(0,C.useSplunkTheme)().isEnterprise,r=t?(0,A._)("Panel is open"):(0,A._)("Panel is closed");return n?i().createElement(M(),{hideDefaultTooltip:!0,screenReaderText:r}):i().createElement(R(),{"aria-label":r})};N.propTypes=L;const $=N;function B(e){return B="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},B(e)}function V(){return V=Object.assign||function(e){for(var t=1;t{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{Column:()=>x,Row:()=>E,default:()=>R});const o=n(6540);var i=t.n(o);const a=n(5556);var l=t.n(a);const c=n(1198);var s=t.n(c);const u=n(127);var p=t.n(u);const d=n(2568);var f=t.n(d);const h=n(8967);var v=f().div.withConfig({displayName:"ColumnStyles__Styled",componentId:"sc-1pchz98-0"})(["",";"],h.mixins.reset("block"));function b(e,t){if(null==e)throw new Error(null!=t?t:"Unexpected undefined or null")}function m(){return m=Object.assign||function(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}(e,["children","elementRef","gutter","span","isFirstChild","isLastChild","style"]),d=r?"calc((100% - ".concat(11*r,"px) * ").concat(a/12," + (").concat(r,"px * ").concat(a-1,"))"):"".concat(100/12*a,"%");b(r);var f={marginLeft:l?void 0:r/2,marginRight:c?void 0:r/2,flex:"".concat(a," ").concat(a," auto"),width:d};return i().createElement(v,m({"data-test":"column",ref:n,style:p()({},s,f)},u),t)}g.propTypes=y;const x=g;var w=f().div.withConfig({displayName:"RowStyles__Styled",componentId:"sc-121ntds-0"})(["",";flex-flow:row nowrap;&[data-align-items='start']{align-items:flex-start;}&[data-align-items='end']{align-items:flex-end;}&[data-align-items='center']{align-items:center;}&[data-align-items='stretch']{align-items:stretch;}"],h.mixins.reset("flex")),O=f().div.withConfig({displayName:"RowStyles__StyledDivider",componentId:"sc-121ntds-1"})(["border-left:1px solid ",";flex:0 0 1;align-self:stretch;"],(0,h.pick)({prisma:h.variables.neutral200,enterprise:{light:h.variables.gray92,dark:h.variables.gray60}}));function C(){return C=Object.assign||function(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}(e,["alignItems","children","divider","elementRef","gutter","isFirstChild","isLastChild","style"]),h=(0,o.useCallback)((function(e,t){return(0,o.cloneElement)(e,{gutter:c,isFirstChild:0===t,isLastChild:t===o.Children.count(r)-1})}),[r,c]),v=(0,o.useCallback)((function(e,t,n,r){return e.push(t),a&&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}(e,["children","divider","elementRef","gutter"]),u=s()(),p=u.family,d=u.density,f=(0,o.useCallback)((function(e,n){var i=0===n,a=n===o.Children.count(t)-1,c=l;return void 0===c&&("prisma"===p?"compact"===d?c=16:"comfortable"===d&&(c=24):"enterprise"===p&&(c=30)),(0,o.cloneElement)(e,{gutter:c,divider:"vertical"===r,isFirstChild:i,isLastChild:a})}),[t,d,r,p,l]),h=(0,o.useCallback)((function(e,t,n,o){return e.push(t),"horizontal"===r&&n{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{Divider:()=>S.Divider,Heading:()=>S.Heading,Option:()=>V,default:()=>te});const o=n(6540);var i=t.n(o);const a=n(5556);var l=t.n(a);const c=n(3005);var s=t.n(c);const u=n(7521);var p=t.n(u);const d=n(6537);var f=t.n(d);const h=n(6620);var v=t.n(h);const b=n(8524);var m=t.n(b);const y=n(5265);var g=t.n(y);const x=n(6789),w=n(7478),O=n(259),C=n(4214),S=n(6646),k=n(9728);var E=t.n(k);const j=n(436);var _=t.n(j);const P=n(5338);var I=t.n(P);function T(e){return T="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},T(e)}function R(){return R=Object.assign||function(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}(t,["value","label"]),a=void 0===r?n:r;return i().createElement(S.Item,R({ref:function(t){e.item=t},"data-test":"option","data-test-value":n},o,{onClick:this.handleClick,role:"option","aria-selected":!1}),a)}}]),n}(o.PureComponent);N(B,"propTypes",$),N(B,"defaultProps",{active:!1,descriptionPosition:"bottom",disabled:!1,truncate:!1});const V=B;function H(e,t){e&&("function"==typeof e?e(t):e.current=t)}function F(e){return F="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},F(e)}function z(){return z=Object.assign||function(e){for(var t=1;ta&&ni&&r0)&&(0,x.keywordLocations)(i,k)||void 0;return n?(e.props.disabled||(r.activeValue=e.props.value),(0,o.cloneElement)(e,{ref:r.handleActiveOptionMount,id:r.activeItemId,onClick:r.handleSelectOption,matchRanges:a||l,active:!0})):(0,o.cloneElement)(e,{onClick:r.handleSelectOption,matchRanges:a||l})}));var E=W({style:J({anchorWidth:t,maxHeight:n,menuStyle:u}),controlledExternally:!0,onScrollBottom:d?r.handleScrollBottom:void 0,isLoading:s},m()(r.props,"className","noOptionsMessage","footerMessage","animateLoading","loadingMessage","onScroll"));return f?i().createElement(j.VirtualizedResultsMenu,z({virtualization:f},E),r.options):i().createElement(_(),E,r.options)})),r.state={activeIndex:0,anchor:null,typedValue:void 0,open:!1,value:e.defaultValue||""},r.controlledExternally=p()(e,"value"),r.popoverId=(0,w.createDOMID)("popover"),r.activeItemId=(0,w.createDOMID)("active-item"),r}return function(e,t,n){t&&K(e.prototype,t)}(n,[{key:"componentDidUpdate",value:function(e,t){this.previousActiveIndex=t.activeIndex}},{key:"getValue",value:function(){return this.isControlled()?this.props.value:this.state.value}},{key:"getDisplayValue",value:function(){var e=this.getValue(),t=this.state.typedValue,n=o.Children.toArray(this.props.children).filter(o.isValidElement),r=!t&&n.find((function(t){return void 0!==t.props.label&&t.props.value===e}));return r?null==r?void 0:r.props.label:e}},{key:"open",value:function(){var e=this;this.setState({open:!0,activeIndex:0},(function(){var t,n;null===(t=(n=e.props).onOpen)||void 0===t||t.call(n)}))}},{key:"close",value:function(){var e=this;this.setState({open:!1},(function(){var t,n;e.previousActiveIndex=null,null===(t=(n=e.props).onClose)||void 0===t||t.call(n)}))}},{key:"focus",value:function(){var e;null===(e=this.textInput)||void 0===e||e.focus()}},{key:"isControlled",value:function(){return this.controlledExternally}},{key:"render",value:function(){var e=this.props.defaultPlacement,t=this.state,n=t.anchor,r=t.open,o=this.getValue(),a=this.getDisplayValue();return i().createElement(I(),z({autoCapitalize:"off",autoComplete:"off",autoCorrect:"off",spellCheck:!1,canClear:!0,"data-test":"combo-box"},v()(this.props,"animateLoading","className","controlledFilter","defaultValue","footerMessage","isLoadingOptions","loadingMessage","menuStyle","noOptionsMessage","onClose","onOpen","onScroll","onScrollBottom","spellCheck"),{"data-test-popover-id":this.popoverId,"data-test-label":a,"data-test-value":o,"data-test-open":r&&!!n,onFocus:this.handleInputFocus,onClick:this.handleInputClick,onChange:this.handleChange,onKeyDown:this.handleInputKeyDown,inputRef:this.handleInputMount,elementRef:this.handleAnchorMount,role:"combobox",value:a,"aria-activedescendant":this.activeItemId,"aria-expanded":r,"aria-haspopup":!0,"aria-label":(0,O._)("Value input"),"aria-controls":r?this.popoverId:void 0}),i().createElement(E(),{anchor:n,autoCloseWhenOffScreen:!0,canCoverAnchor:!1,defaultPlacement:e,id:this.popoverId,onRequestClose:this.handleRequestClose,open:r&&!!n,repositionMode:"flip"},this.renderMenu))}}]),n}(o.Component);Y(ee,"propTypes",X),Y(ee,"defaultProps",Q),Y(ee,"Option",V),Y(ee,"Divider",S.Divider),Y(ee,"Heading",S.Heading);const te=ee;e.exports=r})()},7801:(e,t,n)=>{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{ControlGroupContext:()=>T,default:()=>K});const o=n(6540);var i=t.n(o);const a=n(5556);var l=t.n(a);const c=n(3578);var s=t.n(c);const u=n(7338);var p=t.n(u);const d=n(8967),f=n(7478),h=n(7596);var v=t.n(h);const b=n(4345);var m=t.n(b);const y=n(2568);var g=t.n(y);const x=n(8546);var w=t.n(x),O=g()(v()).withConfig({displayName:"ControlGroupStyles__StyledBox",componentId:"wjnyif-0"})([""," "," max-width:600px;margin-bottom:",";"," color:",";",""],d.mixins.reset("block"),d.mixins.clearfix(),(0,d.pick)({enterprise:(0,y.css)(["calc("," * 0.75)"],d.variables.spacing),prisma:{comfortable:"16px",compact:"12px"}}),(0,d.pick)({prisma:{comfortable:(0,y.css)(["&:first-child{margin-top:",";}&:last-child{margin-bottom:",";}"],d.variables.spacingMedium,d.variables.spacingMedium),compact:(0,y.css)(["&:first-child{margin-top:",";}&:last-child{margin-bottom:",";}"],d.variables.spacingSmall,d.variables.spacingSmall)}}),(0,d.pick)({enterprise:d.variables.textColor,prisma:d.variables.contentColorMuted}),(function(e){return e.$error&&(0,y.css)(["color:",";"],(0,d.pick)({enterprise:{light:d.variables.errorColorD10,dark:d.variables.errorColorL20},prisma:d.variables.accentColorNegative}))})),C=g()(v()).withConfig({displayName:"ControlGroupStyles__StyledControlsStackBox",componentId:"wjnyif-1"})(["flex-direction:column;"]),S=g().div.withConfig({displayName:"ControlGroupStyles__StyledLabelWrapper",componentId:"wjnyif-2"})(["display:inline-flex;align-items:center;"," ",""],(0,d.pick)({enterprise:(0,y.css)(["justify-content:flex-end;"])}),(function(e){return"top"===e.$labelPosition?(0,y.css)(["",""],(0,d.pick)({prisma:(0,y.css)(["height:24px;padding-bottom:",";"],d.variables.spacingXSmall)})):(0,y.css)(["",""],(0,d.pick)({prisma:(0,y.css)(["min-height:",";"],d.variables.inputHeight)}))})),k=g()(S).withConfig({displayName:"ControlGroupStyles__StyledLabelWrapperLeft",componentId:"wjnyif-3"})(["float:left;"]),E=g().label.withConfig({displayName:"ControlGroupStyles__StyledLabel",componentId:"wjnyif-4"})(["padding:",";word-wrap:break-word;color:inherit;text-align:",";"],(0,d.pick)({enterprise:{comfortable:"6px 0",compact:"4px 0"}}),(0,d.pick)({enterprise:"right",prisma:"left"})),j=g()(w()).withConfig({displayName:"ControlGroupStyles__StyledTooltip",componentId:"wjnyif-5"})(["",""],(function(e){return"top"===e.$labelPosition&&(0,y.css)(["button{","}"],(0,d.pick)({prisma:(0,y.css)(["svg{width:20px;height:20px;}padding:4px;"])}))})),_=g().div.withConfig({displayName:"ControlGroupStyles__StyledHelp",componentId:"wjnyif-6"})(["",";font-size:",";color:",";margin-top:",";",""],d.mixins.reset("block"),d.variables.fontSizeSmall,d.variables.contentColorMuted,(0,d.pick)({enterprise:"2px",prisma:"4px"}),(function(e){return e.$error&&(0,y.css)(["color:inherit;"])})),P=g().div.withConfig({displayName:"ControlGroupStyles__StyledErrorText",componentId:"wjnyif-7"})(["",";font-size:",";[aria-invalid] > &{color:inherit;}",""],d.mixins.reset("block"),d.variables.fontSizeSmall,(function(e){return!e.$help&&(0,y.css)(["margin-top:",";"],(0,d.pick)({enterprise:"2px",prisma:"4px"}))})),I=g().span.withConfig({displayName:"ControlGroupStyles__StyledAsterisk",componentId:"wjnyif-8"})(["color:inherit;margin-right:2px;"]);const T=i().createContext({});function R(e){return R="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},R(e)}function D(){return D=Object.assign||function(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}(t,["children","controlsLayout","error","help","hideLabel","label","labelFor","labelPosition","labelWidth","required","size","splunkTheme","tooltip","tooltipDefaultPlacement"]),R=y.isPrisma,M=y.isCompact,L=o.Children.toArray(n).filter(o.isValidElement),N=L.length,$=w,B=L.map((function(t,n){var i={key:t.key||n};if("fillJoin"===r&&(n>0&&(i.prepend=!0),n1&&(i.inline=!0),"stack"===r&&(i.inline=!1,n{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{Description:()=>v,Term:()=>w,default:()=>E});const o=n(6540);var i=t.n(o);const a=n(5556);var l=t.n(a);const c=n(2568);var s=t.n(c);const u=n(8967);var p=s().dd.withConfig({displayName:"DescriptionStyles__Styled",componentId:"sc-1jglixb-0"})(["",";",";min-height:",";padding-left:5px;"],u.mixins.reset("block"),(0,u.pick)({prisma:u.mixins.typography("body",{color:"active"}),enterprise:u.mixins.typography("body")}),u.variables.lineHeight);function d(){return d=Object.assign||function(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}(e,["children","elementRef"]);return i().createElement(p,d({"data-test":"description",ref:n},r),t)}h.propTypes=f;const v=h;var b=s().dl.withConfig({displayName:"DefinitionListStyles__Styled",componentId:"sc-1pqfrgm-0"})(["",";",";"],u.mixins.reset("block"),u.mixins.typography("body")),m=s().dt.withConfig({displayName:"TermStyles__Styled",componentId:"sc-1ao97j9-0"})(["",";"," float:left;width:120px;overflow:hidden;overflow-x:hidden;white-space:nowrap;word-wrap:normal;",""],u.mixins.reset("block"),(0,u.pick)({prisma:u.mixins.typography("body",{color:"muted"}),enterprise:u.mixins.typography("body")}),(0,u.pick)({enterprise:(0,c.css)(["&::after{content:'","';}"]," ".concat(".".repeat(100)))}));function y(){return y=Object.assign||function(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}(e,["children","elementRef"]);return i().createElement(m,y({"data-test":"term",ref:n},r),t)}x.propTypes=g;const w=x;function O(){return O=Object.assign||function(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}(e,["children","elementRef","termWidth"]);return i().createElement(b,O({"data-test":"definition-list",ref:n},a),S({children:t,termWidth:o}))}k.propTypes=C,k.Description=v,k.Term=w;const E=k;e.exports=r})()},9683:(e,t,n)=>{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{Item:()=>oe,default:()=>Pe});const o=n(6540);var i=t.n(o);const a=n(5556);var l=t.n(a);const c=n(3346);var s=t.n(c);const u=n(6620);var p=t.n(u);const d=n(3422);var f=t.n(d);const h=n(9608);var v=t.n(h);const b=n(8973);var m=t.n(b);const y=n(8967),g=n(259),x=n(7478),w=n(5625);var O=t.n(w);const C=n(6283);var S=t.n(C);const k=n(4839);var E=t.n(k);const j=n(8374);var _=t.n(j);const P=n(376);var I=(0,o.createContext)({disabled:!1});I.displayName="File";const T=I,R=n(1850);var D=t.n(R);function M(){return M=Object.assign||function(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}(e,["disabled","error","itemId","name","index","uploadPercentage"]),d=(0,y.useSplunkTheme)(),f=d.isPrisma,h=d.isEnterprise,v=d.isCompact?"20px":"24px",b=(0,o.useContext)(I).onRequestRemove;function m(e){e.preventDefault(),null==b||b({itemId:a,name:l,index:s})}var x=(0,o.useContext)(I).onRequestRetry,w=(0,o.useContext)(I).disabled,C=(0,P.sprintf)((0,g._)('Remove "%(filename)s"'),{filename:l}),k=(0,P.sprintf)((0,g._)('Retry "%(filename)s"'),{filename:l}),j=(0,P.sprintf)((0,g._)('Uploading "%(filename)s"'),{filename:l}),T=(0,g._)("Remove"),R=i().createElement("span",null,i().createElement("span",{style:{paddingRight:"4px"}},(0,g._)("Uploading ")),i().createElement(J,null,u,"%")),D=f&&!O()(u)&&u>0?R:l,M=void 0!==t?t:w;return i().createElement(i().Fragment,null,i().createElement(U,te({"data-test":"item","data-test-disabled":M,"data-test-error":r},p,{flex:!0,$error:r,$disabled:M}),f&&O()(u)&&i().createElement(Q,{"data-test":"paper-clip",$disabled:M},i().createElement(A,{"aria-hidden":"true"})),i().createElement(X,{"data-test":"label",$error:r,$disabled:M},D),f&&x&&r&&i().createElement(Z,{"data-test":"retry",onClick:function(e){e.preventDefault(),null==x||x({itemId:a,name:l,index:s})},"aria-label":k},i().createElement(N,{screenReaderText:(0,g._)("Retry")})),!M&&(f&&O()(u)&&!r?i().createElement(Y,{"data-test":"remove",onClick:m,"aria-label":C},i().createElement(B,{screenReaderText:(0,g._)("Remove")})):i().createElement(Z,{"data-test":"remove",$error:r,onClick:m,"aria-label":C},h?i().createElement(E(),{hideDefaultTooltip:!0,screenReaderText:T}):i().createElement(S(),{"aria-label":T,height:v,width:v}))),!O()(u)&&u>0&&(f?i().createElement(ee,{$uploadPercentage:u,"aria-label":j,role:"progressbar","aria-valuenow":u,"aria-valuemin":0,"aria-valuemax":100}):i().createElement(_(),{style:{position:"absolute",left:0,top:0,right:0,zIndex:1},percentage:u,"aria-label":j}))),f&&r&&i().createElement(G,null,(0,g._)("Something went wrong.")))}re.propTypes=ne;const oe=re;function ie(){return ie=Object.assign||function(e){for(var t=1;t0){var n,r,o=Array.from(e);null===(n=(r=this.props).onRequestAdd)||void 0===n||n.call(r,this.props.allowMultiple?o:[o[0]],{name:t})}else{var i,a;null===(i=(a=this.props).onRequestAdd)||void 0===i||i.call(a,[],{name:t})}this.inputCount+=1}},{key:"render",value:function(){var e=this.props,t=e.accept,n=e.allowMultiple,r=e.children,a=e.disabled,l=e.dropAnywhere,c=e.error,s=e.fullscreen,u=e.help,d=e.name,h=e.onRequestRemove,b=e.onRequestRetry,y=e.required,x=e.splunkTheme,w=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=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}(e,["accept","allowMultiple","children","disabled","dropAnywhere","error","fullscreen","help","name","onRequestRemove","onRequestRetry","required","splunkTheme"]),O=x.isPrisma,C=0,S=o.Children.toArray(r).filter(o.isValidElement).map((function(e,t){return C+=1,(0,o.cloneElement)(e,{index:t,key:e.key||e.props.itemId||"item-".concat(t)})})),k=s||l,E=k||a,j=k&&!a,_=s?ye:me,P=s?fe:de,I=s?ue:se,R=!E&&(this.state.dragOver||!1),D=v()(t)&&f()(t.split(",").join(", ")),M=null;return this.props.supportsMessage?M=i().createElement(he,{"data-test":"file-supports"},this.props.supportsMessage):O&&!a&&(M=t?i().createElement(he,{"data-test":"file-supports"},(0,g._)("Supports ".concat(D))):i().createElement(he,{"data-test":"file-supports"},(0,g._)("Supports all file types"))),i().createElement(_,xe({onDragOver:E?void 0:this.handleDragOver,onDragLeave:E?void 0:this.handleDragLeave,onDrop:E?void 0:this.handleDrop,$disabled:a,$dragOver:R,$error:c,$fileCount:C,"data-test":"file","data-test-disabled":a,"data-test-error":c},p()(w,"onRequestAdd","onRequestRemove")),i().createElement(P,{$disabled:a,$dragOver:R,$error:c},!a&&!O&&i().createElement(I,{$dragOver:R,$error:c})," ",i().createElement("span",{"data-test":"file-label"},!k&&!a&&(0,g._)("Drop your file here or"),j&&(0,g._)("Drop your file anywhere or")," ",0===C&&a&&(0,g._)("No files selected"),i().createElement(pe,{htmlFor:this.inputId,"data-test":"file-link","data-focused":this.state.focusedInput||null},i().createElement(le,{accept:t,"data-test":"file-input",disabled:a,id:this.inputId,key:"file-input-".concat(this.inputCount),multiple:n||void 0,onBlur:this.handleInputBlur,onChange:this.handleInputChange,onFocus:this.handleInputFocus,required:y,type:"file"}),!a&&(0,g._)("upload file…"))),M),!a&&u&&i().createElement(ve,{"data-test":"help"},u),j&&this.state.dragOver&&i().createElement(be,{"data-test":"file-window-drop",onDragLeave:this.handleDragLeave}),j&&i().createElement(i().Fragment,null,i().createElement(m(),{target:window,eventType:"dragover",listener:this.handleDragOver}),i().createElement(m(),{target:window,eventType:"drop",listener:this.handleDrop})),i().createElement(T.Provider,{value:{disabled:a,onRequestRemove:h?function(e){null==h||h({event:e,index:e.index,filename:e.name,itemId:e.itemId,name:d})}:void 0,onRequestRetry:b?function(e){null==b||b({event:e,filename:e.name,index:e.index,itemId:e.itemId,name:d})}:void 0}},S))}}]),n}(o.Component);ke(je,"propTypes",Ee),ke(je,"defaultProps",{allowMultiple:!1,disabled:!1,dropAnywhere:!1,error:!1}),ke(je,"Item",oe);var _e=(0,y.withSplunkTheme)(je);_e.propTypes=je.propTypes,_e.Item=oe;const Pe=_e;e.exports=r})()},9643:(e,t,n)=>{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{default:()=>m});const o=n(6540);var i=t.n(o);const a=n(5556);var l=t.n(a);const c=n(2568);var s=t.n(c);const u=n(8967);var p=s().h2.withConfig({displayName:"HeadingStyles__StyledHeading",componentId:"sc-15s3yx3-0"})(["",";color:",";margin:1.414em 0 0.4em;text-rendering:optimizelegibility;"," ",""],(function(e){var t=e.$variant;return"title4"===t?(0,u.pickVariant)("$isSection",{true:{enterprise:{compact:u.mixins.typography("title4",{weight:"semiBold"}),comfortable:u.mixins.typography("title4",{size:14,weight:"semiBold"})},prisma:u.mixins.typography("title4",{color:"default",size:14})},false:{enterprise:{compact:u.mixins.typography("title4"),comfortable:u.mixins.typography("title4",{size:14})},prisma:u.mixins.typography("title4")}}):u.mixins.typography(t)}),(0,u.pick)({prisma:(0,u.pickVariant)("$variant",{title5:u.mixins.typography("title5",{color:"default"})})}),(0,u.pickVariant)("$isSection",{true:{enterprise:{dark:(0,c.css)(["color:",";"],u.variables.gray80),light:(0,c.css)(["color:",";"],u.variables.gray45)}}}),(function(e){return e.$isSection&&(0,c.css)(["margin:0.707em 0 0.2em;"])}));function d(){return d=Object.assign||function(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}(e,["children","elementRef","level","variant"]),c=h[o],s=a||v[c];return i().createElement(p,d({$isSection:function(e){return"s"===e.toString().charAt(0)}(o),"data-test":"heading",ref:n,as:c,$variant:s},l),t)}b.propTypes=f;const m=b;e.exports=r})()},6646:(e,t,n)=>{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{Divider:()=>O,Heading:()=>A,Item:()=>Pe,MenuContext:()=>g,default:()=>Fe});const o=n(6540);var i=t.n(o);const a=n(5556);var l=t.n(a);const c=n(6620);var s=t.n(c);const u=n(9728),p=n(9095),d=n(4214),f=n(9214);var h=t.n(f);const v=n(2568);var b=t.n(v);const m=n(8967);var y=b().div.withConfig({displayName:"DividerStyles__Styled",componentId:"l3zfh3-0"})(["border-top:1px solid ",";",""],(0,m.pick)({enterprise:m.variables.borderColor,prisma:m.variables.neutral200}),(0,m.pick)({prisma:{comfortable:(0,v.css)(["margin:8px 0;"]),compact:(0,v.css)(["margin:6px 0;"])}})),g=(0,o.createContext)({role:"menu"});function x(){return x=Object.assign||function(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}(e,["children","title","outerStyle"]),l=(0,o.useContext)(g).role,c="prisma"===E()().family?i().createElement(_,R({as:n?"h4":"h5",style:r,"data-test":"heading"},a),t):i().createElement(S(),R({style:I(I({},r),{},{margin:0}),level:n?4:"ss","data-test":"heading"},a),t);return i().createElement(j,{"aria-hidden":"listbox"===l},c)}M.propTypes=D,M.filterConsecutive=!0,M.filterLast=!0,M.as="Heading";const A=M,L=n(9608);var N=t.n(L);const $=n(632);var B=t.n($);const V=n(6198);var H=t.n(V);const F=n(8291);var z=t.n(F);const q=n(7232);var W=t.n(q);const K=n(9137);var U=t.n(K);const G=n(3997);var Z=t.n(G),Y=(0,v.css)(["color:",";font-size:",";line-height:",";overflow:inherit;white-space:inherit;text-overflow:inherit;"],(0,m.pick)({prisma:m.variables.contentColorDefault,enterprise:m.variables.textGray}),m.variables.fontSizeSmall,(0,m.pick)({prisma:"16px"})),X=b().span.withConfig({displayName:"ItemStyles__StyledItemDescriptionBottom",componentId:"sc-4kc053-0"})(["",";display:block;"],Y),Q=b().span.withConfig({displayName:"ItemStyles__StyledItemDescriptionRight",componentId:"sc-4kc053-1"})(["",";float:right;padding-left:",";max-width:50%;text-align:right;box-sizing:border-box;"],Y,m.variables.spacing),J=b().div.withConfig({displayName:"ItemStyles__StyledItemSelectedIcon",componentId:"sc-4kc053-2"})(["position:absolute;"," color:",";"],(0,m.pick)({prisma:(0,v.css)(["right:16px;"]),enterprise:(0,v.css)(["top:5px;right:3px;left:8px;"])}),(0,m.pick)({prisma:m.variables.contentColorActive,enterprise:m.variables.accentColorL10})),ee=b().span.withConfig({displayName:"ItemStyles__StyledItemIcon",componentId:"sc-4kc053-3"})(["flex:0 0 auto;padding-right:",";min-width:10px;display:inline-block;text-align:center;vertical-align:",";",""],(0,m.pick)({prisma:"8px",enterprise:"3px"}),(0,m.pick)({prisma:"initial",enterprise:"middle"}),(0,m.pick)({prisma:(0,v.css)(["color:",";display:inline-flex;align-items:center;min-width:20px;min-height:20px;& > svg{width:20px;height:20px;}"],m.variables.contentColorMuted),enterprise:(0,v.css)(["transform:translateY(-1px);"])})),te=b()(U()).withConfig({displayName:"ItemStyles__StyledClickable",componentId:"sc-4kc053-4"})(["display:block;position:relative;cursor:pointer;color:",";word-wrap:break-word;max-width:100%;width:100%;padding:",";"," "," "," &:not([disabled]){&:hover{background:",";","}&:focus{outline:0;box-shadow:",";","}"," ","}&[disabled]{color:",";cursor:not-allowed;",",","{color:inherit;}","{cursor:not-allowed;color:",";}","}",""],(0,m.pick)({prisma:m.variables.contentColorActive,enterprise:{dark:m.variables.gray96,light:m.variables.gray22}}),(0,m.pick)({prisma:{comfortable:"10px 16px",compact:"6px 16px"},enterprise:"6px 10px"}),(function(e){var t=e.$isSelectable,n=e.$selectableAppearance;return t&&(0,m.pick)({prisma:(0,v.css)(["padding-right:44px;",""],(function(){return"checkbox"===n&&"padding-left: 42px;"})),enterprise:(0,v.css)(["padding-right:10px;padding-left:",";"],(function(){return"checkbox"===n?"32px":"28px"}))})}),(function(e){var t=e.$active,n=e.$preventFocus;return t&&!n&&(0,v.css)(["box-shadow:",";"],m.variables.focusShadowInset)}),(function(e){return e.$active&&(0,v.css)(["background:",";font-weight:",";"],(0,m.pick)({enterprise:{light:m.variables.gray92,dark:m.variables.gray22},prisma:m.variables.neutral100}),m.variables.fontWeightBold)}),(0,m.pick)({prisma:m.variables.interactiveColorOverlayHover,enterprise:m.variables.backgroundColorHover}),(function(e){return e.$selected&&(0,m.pick)({prisma:(0,v.css)(["background:",";"],m.mixins.overlayColors(m.variables.interactiveColorOverlaySelected,m.variables.interactiveColorOverlayHover))})}),m.variables.focusShadowInset,(0,m.pick)({prisma:(0,v.css)(["background:",";"],m.variables.interactiveColorOverlayHover)}),(0,m.pick)({prisma:(0,v.css)(["&:active{background:",";}"],m.variables.interactiveColorOverlayActive)}),(function(e){return e.$selected&&(0,m.pick)({prisma:(0,v.css)(["background:",";&:active{background:",";}"],m.variables.interactiveColorOverlaySelected,m.mixins.overlayColors(m.variables.interactiveColorOverlaySelected,m.variables.interactiveColorOverlayActive))})}),(0,m.pick)({enterprise:{light:m.variables.gray45,dark:m.variables.contentColorDisabled},prisma:m.variables.contentColorDisabled}),X,Q,J,(0,m.pick)({prisma:m.variables.contentColorDisabled,enterprise:m.variables.gray80}),(0,m.pick)({prisma:(0,v.css)(["& > * > ","{color:",";}"],ee,m.variables.contentColorDisabled)}),(function(e){return e.$selected&&(0,m.pick)({prisma:(0,v.css)(["","{color:",";}"],ee,m.variables.contentColorActive)})})),ne=b()(Z()).withConfig({displayName:"ItemStyles__StyledSwitch",componentId:"sc-4kc053-5"})(["position:absolute;left:",";top:",";"],(0,m.pick)({prisma:"16px",enterprise:"8px"}),(0,m.pick)({prisma:"0px",enterprise:{comfortable:"-1px",compact:"2px"}})),re=b().span.withConfig({displayName:"ItemStyles__StyledInnerWrapper",componentId:"sc-4kc053-6"})(["display:flex;align-items:flex-start;"]),oe=b().span.withConfig({displayName:"ItemStyles__StyledTitleAndDescriptionWrapper",componentId:"sc-4kc053-7"})(["max-width:100%;width:100%;align-self:center;word-break:break-word;white-space:normal;",""],(function(e){return e.$truncate&&(0,v.css)(["white-space:nowrap;overflow:hidden;text-overflow:ellipsis;"])})),ie=b().div.withConfig({displayName:"ItemStyles__StyledLabel",componentId:"sc-4kc053-8"})(["overflow:inherit;white-space:inherit;text-overflow:inherit;max-width:100%;min-height:20px;",""],(function(e){return e.$truncate&&(0,v.css)(["display:block;clear:both;"])})),ae=b().span.withConfig({displayName:"ItemStyles__StyledMatch",componentId:"sc-4kc053-9"})(["border-bottom:1px solid ",";"],(0,m.pick)({prisma:m.variables.contentColorActive,enterprise:{dark:m.variables.gray96,light:m.variables.gray45}})),le=b().span.withConfig({displayName:"ItemStyles__StyledSubmenu",componentId:"sc-4kc053-10"})(["float:right;padding-left:",";color:",";",""],m.variables.spacingSmall,(0,m.pick)({prisma:"inherit",enterprise:m.variables.textGray}),(0,m.pick)({prisma:(0,v.css)(["& > svg{width:20px;height:20px;}"])}));const ce=n(5378);var se=t.n(ce);const ue=n(5088);var pe=t.n(ue),de=(0,n(259)._)("Open externally"),fe=(0,v.css)(["width:0.8em;height:0.8em;vertical-align:baseline;"]),he=b()(pe()).withConfig({displayName:"External__StyledEnterprise",componentId:"sc-1turs2s-0"})([""," margin:0 0 0 3px;"],fe),ve=b()(se()).withConfig({displayName:"External__StyledPrisma",componentId:"sc-1turs2s-1"})([""," margin:0 0 0 4px;"],fe);const be=function(){var e=(0,m.useSplunkTheme)(),t=e.isEnterprise,n=e.isCompact?"20px":"24px";return t?i().createElement(he,{screenReaderText:de}):i().createElement(ve,{"aria-label":de,height:n,width:n},i().createElement("title",null,de))};function me(e,t){e&&("function"==typeof e?e(t):e.current=t)}function ye(e){return ye="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},ye(e)}function ge(){return ge=Object.assign||function(e){for(var t=1;te.offsetTop&&(t.scrollTop=e.offsetTop))}}(this.el)}},{key:"renderLabel",value:function(){var e=this.props,t=e.children,n=e.matchRanges;if(!n||!N()(t))return t;var r=[];return r.push(t.substring(0,n[0].start)),n.forEach((function(e,o){r.push(i().createElement(ae,{key:o,"data-test":"match"},t.substring(e.start,e.end))),o=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}(e,["active","children","hasSubmenu","selectable","selectableAppearance","selected","icon","description","disabled","onClick","preventFocus","role","splunkTheme","to","truncate","descriptionPosition","openInNewContext"]),w=v.isEnterprise,O=v.isPrisma,C=o||l,S={nonselectable:"menuitem",checkmark:"menuitemradio",checkbox:"menuitemcheckbox"}[C?a:"nonselectable"],k={"aria-haspopup":!!r||void 0,"aria-checked":!("checkmark"!==a||!l)||void 0},E=O?"right":"left",j=u&&"right"===y&&"right"!==E,_=u&&!j,P=l&&"checkmark"===a&&i().createElement(J,null,O?i().createElement(H(),{inline:!0,height:"16",width:"16"}):i().createElement(z(),{hideDefaultTooltip:!0,inline:!0,screenReaderText:null,size:.85}));return i().createElement(te,ge({$isSelectable:C,$selectableAppearance:a,$selected:l,$active:t,$preventFocus:f,"data-test-selected":C?l:null,"data-test":"item","data-has-icon":!!c,disabled:p,onClick:d,onFocus:this.handleFocus,onMouseDown:function(e){f&&e.preventDefault()},role:h||S,to:b,title:m&&N()(n)?n:void 0,openInNewContext:g},k,s()(x,"onFocus"),{elementRef:this.handleMount}),"left"===E&&P,o&&"checkbox"===a&&i().createElement(ne,{interactive:!1,selected:l,selectedLabel:"Selected",value:"menu-item"}),r&&i().createElement(le,null,w?i().createElement(W(),{hideDefaultTooltip:!0,screenReaderText:null}):i().createElement(B(),null)),j&&i().createElement(Q,{"data-test":"description"},u),i().createElement(re,null,c&&i().createElement(ee,null,c),i().createElement(oe,{$truncate:m},i().createElement(ie,{$truncate:m,"data-test":"label"},this.renderLabel(),g&&i().createElement(be,null)),_&&i().createElement(X,{"data-test":"description"},u)),"right"===E&&P))}}]),n}(o.Component);ke(je,"propTypes",Ee),ke(je,"defaultProps",{active:!1,descriptionPosition:"bottom",disabled:!1,hasSubmenu:!1,openInNewContext:!1,preventFocus:!1,selectable:!1,selectableAppearance:"checkmark",selected:!1,truncate:!1}),ke(je,"as",void 0);var _e=(0,m.withSplunkTheme)(je);_e.propTypes=je.propTypes,_e.as="Item";const Pe=_e,Ie=n(3707);var Te=t.n(Ie),Re=(0,v.css)(["border-top:1px solid ",";"],(0,m.pick)({enterprise:m.variables.gray60,prisma:m.variables.neutral200})),De=b().div.withConfig({displayName:"MenuStyles__Styled",componentId:"sc-1olffp9-0"})(["",";background-color:",";border-radius:",";min-width:60px;overflow:auto;position:relative;"," &:focus{outline:0;box-shadow:",";","}& + &{","}"],m.mixins.reset("block"),(0,m.pick)({enterprise:m.variables.backgroundColor,prisma:m.variables.backgroundColorPopup}),m.variables.borderRadius,(0,m.pick)({prisma:(0,v.css)(["padding:8px 0;"])}),m.variables.focusShadowInset,(0,m.pick)({prisma:(0,v.css)(["background:",";"],m.variables.interactiveColorOverlayHover)}),Re),Me=b()(De.withComponent(Te())).withConfig({displayName:"MenuStyles__StyledScroll",componentId:"sc-1olffp9-1"})([""," + &,& + ","{","}"],De,De,Re);function Ae(e,t,n){for(var r=0;r0;r-=1){var o,i=(r+n)%e.length;if(!0!==(null===(o=e[i].current)||void 0===o?void 0:o.props.disabled))return e[i]}return e[t]}function Ne(){return Ne=Object.assign||function(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}(e,["children","controlledExternally","elementRef","onDownKeyPress","onEndKeyPress","onHomeKeyPress","onUpKeyPress","retainFocus","stopScrollPropagation"]),y=(0,o.useContext)(g).role,x=void 0===y?"menu":y,w=(0,o.useContext)(u.PopoverContext).retainFocus,O=h()(),C=!0;null!=v?C=v:null!=w&&(C=w);var S=i().useRef(0),k=[],E=i().useRef(null),j=i().useRef(!1),_=(0,o.useRef)(k);_.current=k;var P,I=0,T=!1,R=!1,D=!1,M=(0,o.useCallback)((function(e){var t,n=e.e,r=e.data,o=e.userCallback,i=e.defaultCallback;if(o){var a=o(n,r);if("number"==typeof a[0]){t={current:null};var l=$e(a,2);S.current=l[0],j.current=l[1]}else{var c=$e(a,2);t=c[0],j.current=c[1],S.current=Math.max(0,r.itemRefs.indexOf(t))}}else t=i();return t}),[]),A=(0,o.useCallback)((function(e,t){var n,r=t.itemKey;null!=r&&(S.current=r,E.current=j.current?null:null===(n=_.current[S.current])||void 0===n?void 0:n.current)}),[]),L=o.Children.toArray(t).filter(o.isValidElement).reduce((function(e,t,r,o){if("Divider"===t.type.as&&0===e.length)return e;if(("Heading"===t.type.as||"Divider"===t.type.as)&&!t.props.title&&t.type.filterConsecutive&&o.length>r+1){var a=o[r+1];if("Heading"===a.type.as||"Divider"===a.type.as)return e}if(("Divider"===t.type.as||"Heading"===t.type.as)&&r===o.length-1)return e;if("Divider"!==t.type.as&&"Heading"!==t.type.as&&"string"!=typeof t.type){var l=i().createRef(),c=k.length;k.push(l),null!=P||"disabled"in t.props&&t.props.disabled||(P=I),S.current===I&&"disabled"in t.props&&t.props.disabled&&(T=!0),"selected"in t.props&&t.props.selected&&(R=!0,"disabled"in t.props&&!t.props.disabled&&(D=!0));var s=n||S.current!==I?-1:void 0;return e.push(i().cloneElement(t,{itemKey:I,onFocus:A,preventFocus:n,ref:function(e){if(me(t.ref,e),me(l,e),e)if(e===E.current)S.current=c;else if(j.current&&c===S.current){var n;null===(n=function(e){var t,n,r,o;return e.el?e.el:(null===(t=e.c)||void 0===t?void 0:t.el)?e.c.el:(null===(n=e.c)||void 0===n||null===(r=n.c)||void 0===r?void 0:r.el)?e.c.c.el:(null===(o=e.item)||void 0===o?void 0:o.el)?e.item.el:null}(e))||void 0===n||n.focus(),j.current=!1}},tabIndex:s})),I+=1,e}return e.push(t),e}),[]);P===S.current||R&&!D||!T||null==P||(S.current=P,O());var N={"data-test":"menu",onKeyDown:function(e){var t,n,r,o=(0,d.keycode)(e.nativeEvent),i=S.current;"down"===o||C&&(0,p.isTabKey)(e)?t=M({e,data:{itemRefs:k,focusedItemKey:i},userCallback:a,defaultCallback:function(){return Ae(k,i,i+1)}}):"up"===o||C&&(0,p.isTabKey)(e)&&e.shiftKey?t=M({e,data:{itemRefs:k,focusedItemKey:i},userCallback:f,defaultCallback:function(){return Le(k,i,i-1)}}):"home"===o?t=M({e,data:{itemRefs:k,focusedItemKey:i},userCallback:c,defaultCallback:function(){return Ae(k,i,0)}}):"end"===o&&(t=M({e,data:{itemRefs:k,focusedItemKey:i},userCallback:l,defaultCallback:function(){return Le(k,i,k.length-1)}})),null!=t&&(null===(n=t.current)||void 0===n||null===(r=n.focus)||void 0===r||r.call(n),e.preventDefault(),E.current=j.current?null:t.current)},role:x,tabIndex:null!=P||n?void 0:0};return b?i().createElement(Me,Ne({},N,{elementRef:r,stopScrollPropagation:!0},s()(m,"tagName")),L):i().createElement(De,Ne({},N,{ref:r},m),L)}He.propTypes=Ve,He.defaultProps={stopScrollPropagation:!1},He.Item=Pe,He.Divider=O,He.Heading=A;const Fe=He;e.exports=r})()},128:(e,t,n)=>{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{Divider:()=>f.Divider,Heading:()=>f.Heading,Option:()=>D,default:()=>In});const o=n(6540);var i=t.n(o);const a=n(5556);var l=t.n(a);const c=n(7521);var s=t.n(c);const u=n(6620);var p=t.n(u);const d=n(259),f=n(6646);function h(e){return h="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},h(e)}function v(){return v=Object.assign||function(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}(e,["value","children","label","multiple"]);return i().createElement(f.Item,v({"aria-selected":this.props.selected,"data-test-value":t,"data-test":"option",ref:this.handleMount},a,{selectable:!0,selectableAppearance:o?"checkbox":void 0,onClick:this.handleClick,role:"option",value:t.toString()}),n||r)}}]),n}(o.PureComponent);x(O,"propTypes",w),x(O,"defaultProps",{descriptionPosition:"bottom",disabled:!1,multiple:!1,selected:!1,truncate:!1}),x(O,"type",f.Item);const C=O;function S(e){return S="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},S(e)}function k(){return k=Object.assign||function(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}(e,["compact"]);return i().createElement(C,k({},n,{multiple:t,ref:this.handleMount}),this.props.children||this.props.label)}}]),n}(o.PureComponent);I(R,"propTypes",T),I(R,"defaultProps",{compact:!1,descriptionPosition:"bottom",disabled:!1,selected:!1,truncate:!1});const D=R,M=n(6561);var A=t.n(M);const L=n(3578);var N=t.n(L);const $=n(645);var B=t.n($);const V=n(8988);var H=t.n(V);const F=n(5625);var z=t.n(F);const q=n(9453);var W=t.n(q);const K=n(6537);var U=t.n(K);const G=n(8524);var Z=t.n(G);const Y=n(4180);var X=t.n(Y);const Q=n(3769);var J=t.n(Q);const ee=n(7478),te=n(3592);var ne=t.n(te);const re=n(4214),oe=n(6789),ie=n(9421);var ae=t.n(ie);const le=n(436);var ce=t.n(le);const se=n(5338);var ue=t.n(se);const pe=n(149);var de=t.n(pe);const fe=n(5208);var he=t.n(fe);const ve=n(8967),be=function(){return(0,ve.useSplunkTheme)().isEnterprise?i().createElement(he(),{screenReaderText:null,hideDefaultTooltip:!0,size:.5}):i().createElement(de(),null)},me=n(8911);var ye=t.n(me);const ge=n(787);var xe=t.n(ge);const we=function(){var e=(0,ve.useSplunkTheme)(),t=e.isEnterprise,n=e.isCompact,r=(0,d._)("Search"),o=n?"20px":"24px";return t?i().createElement(ye(),{role:"presentation",size:"16px",screenReaderText:r,hideDefaultTooltip:!0}):i().createElement(xe(),{role:"presentation","aria-label":r,width:o,height:o})},Oe=n(2568);var Ce=t.n(Oe);const Se=n(9137);var ke=t.n(Se);const Ee=n(3997);var je=t.n(Ee),_e=(0,Oe.css)(["color:",";font-size:",";line-height:",";overflow:inherit;white-space:inherit;text-overflow:inherit;"],(0,ve.pick)({prisma:ve.variables.contentColorDefault,enterprise:ve.variables.textGray}),ve.variables.fontSizeSmall,(0,ve.pick)({prisma:"16px"})),Pe=Ce().span.withConfig({displayName:"ItemStyles__StyledItemDescriptionBottom",componentId:"sc-4kc053-0"})(["",";display:block;"],_e),Ie=Ce().span.withConfig({displayName:"ItemStyles__StyledItemDescriptionRight",componentId:"sc-4kc053-1"})(["",";float:right;padding-left:",";max-width:50%;text-align:right;box-sizing:border-box;"],_e,ve.variables.spacing),Te=Ce().div.withConfig({displayName:"ItemStyles__StyledItemSelectedIcon",componentId:"sc-4kc053-2"})(["position:absolute;"," color:",";"],(0,ve.pick)({prisma:(0,Oe.css)(["right:16px;"]),enterprise:(0,Oe.css)(["top:5px;right:3px;left:8px;"])}),(0,ve.pick)({prisma:ve.variables.contentColorActive,enterprise:ve.variables.accentColorL10})),Re=Ce().span.withConfig({displayName:"ItemStyles__StyledItemIcon",componentId:"sc-4kc053-3"})(["flex:0 0 auto;padding-right:",";min-width:10px;display:inline-block;text-align:center;vertical-align:",";",""],(0,ve.pick)({prisma:"8px",enterprise:"3px"}),(0,ve.pick)({prisma:"initial",enterprise:"middle"}),(0,ve.pick)({prisma:(0,Oe.css)(["color:",";display:inline-flex;align-items:center;min-width:20px;min-height:20px;& > svg{width:20px;height:20px;}"],ve.variables.contentColorMuted),enterprise:(0,Oe.css)(["transform:translateY(-1px);"])})),De=(Ce()(ke()).withConfig({displayName:"ItemStyles__StyledClickable",componentId:"sc-4kc053-4"})(["display:block;position:relative;cursor:pointer;color:",";word-wrap:break-word;max-width:100%;width:100%;padding:",";"," "," "," &:not([disabled]){&:hover{background:",";","}&:focus{outline:0;box-shadow:",";","}"," ","}&[disabled]{color:",";cursor:not-allowed;",",","{color:inherit;}","{cursor:not-allowed;color:",";}","}",""],(0,ve.pick)({prisma:ve.variables.contentColorActive,enterprise:{dark:ve.variables.gray96,light:ve.variables.gray22}}),(0,ve.pick)({prisma:{comfortable:"10px 16px",compact:"6px 16px"},enterprise:"6px 10px"}),(function(e){var t=e.$isSelectable,n=e.$selectableAppearance;return t&&(0,ve.pick)({prisma:(0,Oe.css)(["padding-right:44px;",""],(function(){return"checkbox"===n&&"padding-left: 42px;"})),enterprise:(0,Oe.css)(["padding-right:10px;padding-left:",";"],(function(){return"checkbox"===n?"32px":"28px"}))})}),(function(e){var t=e.$active,n=e.$preventFocus;return t&&!n&&(0,Oe.css)(["box-shadow:",";"],ve.variables.focusShadowInset)}),(function(e){return e.$active&&(0,Oe.css)(["background:",";font-weight:",";"],(0,ve.pick)({enterprise:{light:ve.variables.gray92,dark:ve.variables.gray22},prisma:ve.variables.neutral100}),ve.variables.fontWeightBold)}),(0,ve.pick)({prisma:ve.variables.interactiveColorOverlayHover,enterprise:ve.variables.backgroundColorHover}),(function(e){return e.$selected&&(0,ve.pick)({prisma:(0,Oe.css)(["background:",";"],ve.mixins.overlayColors(ve.variables.interactiveColorOverlaySelected,ve.variables.interactiveColorOverlayHover))})}),ve.variables.focusShadowInset,(0,ve.pick)({prisma:(0,Oe.css)(["background:",";"],ve.variables.interactiveColorOverlayHover)}),(0,ve.pick)({prisma:(0,Oe.css)(["&:active{background:",";}"],ve.variables.interactiveColorOverlayActive)}),(function(e){return e.$selected&&(0,ve.pick)({prisma:(0,Oe.css)(["background:",";&:active{background:",";}"],ve.variables.interactiveColorOverlaySelected,ve.mixins.overlayColors(ve.variables.interactiveColorOverlaySelected,ve.variables.interactiveColorOverlayActive))})}),(0,ve.pick)({enterprise:{light:ve.variables.gray45,dark:ve.variables.contentColorDisabled},prisma:ve.variables.contentColorDisabled}),Pe,Ie,Te,(0,ve.pick)({prisma:ve.variables.contentColorDisabled,enterprise:ve.variables.gray80}),(0,ve.pick)({prisma:(0,Oe.css)(["& > * > ","{color:",";}"],Re,ve.variables.contentColorDisabled)}),(function(e){return e.$selected&&(0,ve.pick)({prisma:(0,Oe.css)(["","{color:",";}"],Re,ve.variables.contentColorActive)})})),Ce()(je()).withConfig({displayName:"ItemStyles__StyledSwitch",componentId:"sc-4kc053-5"})(["position:absolute;left:",";top:",";"],(0,ve.pick)({prisma:"16px",enterprise:"8px"}),(0,ve.pick)({prisma:"0px",enterprise:{comfortable:"-1px",compact:"2px"}}))),Me=Ce().span.withConfig({displayName:"ItemStyles__StyledInnerWrapper",componentId:"sc-4kc053-6"})(["display:flex;align-items:flex-start;"]),Ae=Ce().span.withConfig({displayName:"ItemStyles__StyledTitleAndDescriptionWrapper",componentId:"sc-4kc053-7"})(["max-width:100%;width:100%;align-self:center;word-break:break-word;white-space:normal;",""],(function(e){return e.$truncate&&(0,Oe.css)(["white-space:nowrap;overflow:hidden;text-overflow:ellipsis;"])})),Le=Ce().div.withConfig({displayName:"ItemStyles__StyledLabel",componentId:"sc-4kc053-8"})(["overflow:inherit;white-space:inherit;text-overflow:inherit;max-width:100%;min-height:20px;",""],(function(e){return e.$truncate&&(0,Oe.css)(["display:block;clear:both;"])})),Ne=(Ce().span.withConfig({displayName:"ItemStyles__StyledMatch",componentId:"sc-4kc053-9"})(["border-bottom:1px solid ",";"],(0,ve.pick)({prisma:ve.variables.contentColorActive,enterprise:{dark:ve.variables.gray96,light:ve.variables.gray45}})),Ce().span.withConfig({displayName:"ItemStyles__StyledSubmenu",componentId:"sc-4kc053-10"})(["float:right;padding-left:",";color:",";",""],ve.variables.spacingSmall,(0,ve.pick)({prisma:"inherit",enterprise:ve.variables.textGray}),(0,ve.pick)({prisma:(0,Oe.css)(["& > svg{width:20px;height:20px;}"])})),Ce()(Le).withConfig({displayName:"SelectAllOptionStyles__StyledSelectAllLabel",componentId:"y6bn08-0"})(["font-weight:",";"],ve.variables.fontWeightBold)),$e=Ce()(C).withConfig({displayName:"SelectAllOptionStyles__StyledSelectAllOption",componentId:"y6bn08-1"})(["padding-inline-start:",";box-shadow:none;"],(0,ve.pick)({prisma:"42px;",enterprise:"32px;"})),Be={active:l().bool,elementRef:l().oneOfType([l().func,l().object]),id:l().string,onClick:l().func,selectAllLabel:l().string,totalCount:l().number,changedToggle:l().bool,selected:l().oneOf([!1,!0,"some"])},Ve=i().forwardRef((function(e,t){var n=e.active,r=e.id,o=e.onClick,a=e.selectAllLabel,l=e.totalCount,c=e.changedToggle,s=e.selected,u=c?" (".concat(null==l?void 0:l.toString(),")"):"";return i().createElement($e,{label:a,value:"selectAll",key:"selectAll",onClick:o,"data-test":"select-all","aria-keyshortcuts":"Control+A",id:r,active:n,ref:t,tabIndex:-1},i().createElement(De,{interactive:!1,selected:"some"===s?"some":s,key:"main-checkbox",value:"main-checkbox",appearance:"checkbox","aria-label":!s&&(0,d._)("No options selected")||"some"===s&&(0,d._)("Some options selected")||(0,d._)("All options selected"),"data-test":"select-all-switch",selectedLabel:!0===s?(0,d._)("All options selected"):(0,d._)("Option selected"),unselectedLabel:!0===s?(0,d._)("No options selected"):(0,d._)("Option unselected"),someSelectedLabel:(0,d._)("Some options selected")}),i().createElement(Ie,{"data-test":"description"},"".concat(u," Ctrl-a")),i().createElement(Me,null,i().createElement(Ae,{$truncate:!1},i().createElement(Ne,{$truncate:!1},a))))}));Ve.propTypes=Be;const He=Ve,Fe=n(181);var ze=t.n(Fe),qe=Ce()(ze()).withConfig({displayName:"SelectBaseStyles__StyledButton",componentId:"sc-16cj7sk-0"})(["&[data-inline]{width:",";}",""],(function(e){return e.$multiple?"400px":"auto"}),(function(e){return!e.$multiple&&"flex-grow: 0;"})),We=Ce().span.withConfig({displayName:"SelectBaseStyles__StyledLinkIcon",componentId:"sc-16cj7sk-1"})(["padding-right:2px;"]),Ke=Ce().span.withConfig({displayName:"SelectBaseStyles__StyledLinkCaret",componentId:"sc-16cj7sk-2"})(["padding-left:2px;"]),Ue=Ce().div.withConfig({displayName:"SelectBaseStyles__StyledFilter",componentId:"sc-16cj7sk-3"})(["padding:",";min-width:160px;"],(0,ve.pick)({enterprise:"8px",prisma:"10px 16px"})),Ge=Ce().span.withConfig({displayName:"SelectBaseStyles__StyledSearchIconWrapper",componentId:"sc-16cj7sk-4"})(["color:",";pointer-events:none;padding:",";"],(0,ve.pick)({enterprise:{light:ve.variables.gray60,dark:ve.variables.white},prisma:ve.variables.contentColorMuted}),(0,ve.pick)({comfortable:"0 8px",compact:"0 6px"})),Ze=Ce().span.withConfig({displayName:"SelectBaseStyles__StyledCount",componentId:"sc-16cj7sk-5"})(["padding-right:",";"],(0,ve.pick)({enterprise:ve.variables.spacingQuarter,prisma:ve.variables.spacingXSmall})),Ye=Ce()(ae()).withConfig({displayName:"SelectBaseStyles__StyledControlsLink",componentId:"sc-16cj7sk-6"})(["margin-right:20px;",";"],(function(e){return e.$disabled&&(0,Oe.css)(["color:",";"],ve.variables.contentColorDisabled)})),Xe=Ce().div.withConfig({displayName:"SelectBaseStyles__StyledToggleAllControls",componentId:"sc-16cj7sk-7"})(["padding:",";",""],(0,ve.pick)({enterprise:"5px 8px",prisma:"10px 16px"}),(0,ve.pickVariant)("$placement",{above:{enterprise:(0,Oe.css)(["border-top:",";"],ve.variables.border),prisma:(0,Oe.css)(["border-top:1px solid ",";"],ve.variables.neutral200)},below:{enterprise:(0,Oe.css)(["border-bottom:",";"],ve.variables.border),prisma:(0,Oe.css)(["border-bottom:1px solid ",";"],ve.variables.neutral200)}})),Qe=function(e,t){return e?e.label.charAt(t).toLowerCase():""},Je=function(e,t){if(!e.length)return e;var n=null,r=!1,o=e.filter((function(e){var o=Qe(e,t.index);if(o===t.value)return r=!0,!0;if(!r){var i=Qe(n,t.index);i?o>t.value?(io)&&(n=e):o>i&&(n=e):n=e}return!1}));return 0===o.length&&n?[n]:o},et={document:{body:{appendChild:function(){return[]}},addEventListener:function(){},removeEventListener:function(){},activeElement:{blur:function(){},nodeName:""},querySelector:function(){return null},querySelectorAll:function(){return[]},getElementById:function(){return null},createEvent:function(){return{initEvent:function(){}}},createElement:function(){return{children:[],childNodes:[],style:{},setAttribute:function(){},getElementsByTagName:function(){return[]}}},createElementNS:function(){return{}},importNode:function(){return null},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""}},navigator:{userAgent:""},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""},history:{replaceState:function(){},pushState:function(){},go:function(){},back:function(){}},CustomEvent:function(){return this},addEventListener:function(){},removeEventListener:function(){},getComputedStyle:function(){return{getPropertyValue:function(){return""}}},Image:function(){},Date:function(){},screen:{},setTimeout:function(){},clearTimeout:function(){},matchMedia:function(){return{}},requestAnimationFrame:function(e){return"undefined"==typeof setTimeout?(e(),null):setTimeout(e,0)},cancelAnimationFrame:function(e){"undefined"!=typeof setTimeout&&clearTimeout(e)}};function tt(){return tt=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n1&&(i.index=r.matchCharacter.index+1,o=Je(r.currentMatchOptions,i));else{if(" "===n)return void r.resetMatches();o=Je(r.availableMatchOptions,i)}if(o.length){var a=0;if(0===i.index&&o.length>1){var l=o.indexOf(r.availableMatchOptions[t]);l>=0&&(a=l===o.length-1?0:l+1)}var c,s=o[a],u=r.optionRefsByKey[xt(s.value,s.label)];null!=u&&(null===(c=u.focus)||void 0===c||c.call(u))}r.currentMatchOptions=o,r.matchCharacter=i,r.matchTimeout&&clearTimeout(r.matchTimeout),r.matchTimeout=setTimeout(r.resetMatches,500),e.preventDefault(),e.stopPropagation()}})),ft(ct(r),"handleTextChange",(function(e,t){var n,o,i=t.value;r.setState({filterKeyword:i,open:!0,activeIndex:0}),null===(n=(o=r.props).onFilterChange)||void 0===n||n.call(o,e,{keyword:i})})),ft(ct(r),"handleTextFocus",(function(){r.setState({textHasFocus:!0})})),ft(ct(r),"handleTextBlur",(function(){r.setState({textHasFocus:!1})})),ft(ct(r),"handleRequestOpen",(function(e){var t={open:!0,topValues:r.getTopValues()};r.props.multiple&&(t.filterKeyword="");var n=r.state.filterKeyword;r.setState(t,(function(){var t,o,i,a,l;null===(t=(o=r.props).onOpen)||void 0===t||t.call(o),r.firstSelectedEnabledOption&&!r.hasFilter()?r.firstSelectedEnabledOption.focus():r.setState({activeIndex:null!==(i=r.firstSelectedOptionIndex)&&void 0!==i?i:0}),n!==r.state.filterKeyword&&(null===(a=(l=r.props).onFilterChange)||void 0===a||a.call(l,e,{keyword:r.state.filterKeyword}))}))})),ft(ct(r),"handleRequestClose",(function(){r.setState({open:!1,activeIndex:0},(function(){var e,t;r.previousActiveIndex=null,null===(e=(t=r.props).onClose)||void 0===e||e.call(t)}))})),ft(ct(r),"handleScrollBottom",(function(e){var t,n;r.state.open&&!r.props.isLoadingOptions&&(null===(t=(n=r.props).onScrollBottom)||void 0===t||t.call(n,e))})),ft(ct(r),"handleActiveOptionMount",(function(e){r.previousActiveIndex!==r.state.activeIndex&&(null==e||e.scrollIntoViewIfNeeded())})),ft(ct(r),"handleOptionMount",(function(e,t,n){n&&(r.firstSelectedEnabledOption=e),null==e?delete r.optionRefsByKey[t]:r.optionRefsByKey[t]=e})),ft(ct(r),"createToggle",(function(){var e,t,a,l=r.props,c=l.toggle,s=l.appearance,u=l.children,f=l.describedBy,h=l.disabled,v=l.elementRef,b=l.error,m=l.inline,y=l.labelledBy,g=l.labelText,x=l.multiple,w=l.placeholder,O=l.prefixLabel,C=l.required,S=l.suffixLabel,k=null!==(e=r.getCurrentValues())&&void 0!==e?e:[],E=o.Children.toArray(u),j=k.reduce((function(e,n,r,o){var i=N()(E,(function(e){return gt(e)&&e.props.value===n}));return i?(e.push(i.props.children||i.props.label),x||1!==k.length||(t=i.props.icon)):x&&e.push(n),r0&&(a=r.wrapLabel({prefixLabel:O,label:a,suffixLabel:S})),(0===a.length||!x&&a.every((function(e){return""===e})))&&(a=bt(w));var _=a;a.length>1&&(_=r.wrapLabel({prefixLabel:O,label:["".concat(k.length," items selected")],suffixLabel:S}));var P=dt({"aria-describedby":f,"aria-label":"".concat(g?"".concat(g,", "):"").concat(_),"aria-labelledby":g?void 0:y,"aria-multiselectable":x||void 0,"aria-required":C,"data-select-appearance":s,"data-test":x?"multiselect":"select",disabled:h,elementRef:v,error:b},p()(r.props,W()(n.propTypes)));if(x)P["data-test-values"]=JSON.stringify(k);else{var I=function(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var n=[],r=!0,o=!1,i=void 0;try{for(var a,l=e[Symbol.iterator]();!(r=(a=l.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){o=!0,i=e}finally{try{r||null==l.return||l.return()}finally{if(o)throw i}}return n}}(e,t)||rt(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.")}()}(k,1)[0];P["data-test-value"]=I}return c?(0,o.cloneElement)(c,P):"link"===s?i().createElement(ae(),tt({},P,{"data-select-appearance":"link"}),!!t&&i().createElement(We,null,t),a||w,i().createElement(Ke,null,i().createElement(be,null))):i().createElement(qe,tt({},P,{$multiple:x,appearance:s,label:a,error:b,icon:t,inline:m,isMenu:!0,"aria-haspopup":"listbox","aria-owns":r.menuId,onClick:r.props.onClick},Z()(r.props,n.invalidLinkAppearanceProps)),!!k.length&&x&&i().createElement(Ze,{"data-role":"count"},"(",k.length,")"))})),ft(ct(r),"createChildren",(function(){var e,t=r.state,n=t.filterKeyword,a=t.textHasFocus,l=t.topValues,c=r.props,s=c.allowKeyMatching,u=c.allowNewValues,p=c.filter,h=c.multiple,v=c.selectAllAppearance,b=c.showSelectedValuesFirst,m=c.isLoadingOptions,y=c.onScrollBottom,g=r.getCurrentValues();r.availableOptionCount=0,r.firstSelectedOptionIndex=void 0,r.selectedOptionCount=0,r.activeValue=void 0,r.availableMatchOptions=[];var x,w=0,O=!1,S="immediately"===b?r.getTopValues():l,k=o.Children.toArray(r.props.children).reduce((function(t,n,a){if(!gt(n))return t.push(n),t;n.props.value===r.state.filterKeyword&&(e=!0);var l=g&&g.indexOf(n.props.value)>=0,c=!!l&&!n.props.disabled&&!x,u=s&&!h&&!p&&!m&&!y,d=xt(n.props.value,n.props.label),v=-1;!u||n.props.disabled||n.props.hidden||(r.availableMatchOptions.push({label:n.props.label,value:n.props.value}),v=r.availableMatchOptions.length-1);var b=(0,o.cloneElement)(n,{key:n.key||a,onClick:r.handleMenuOptionClick,onKeyDown:u?function(e){return r.handleMenuOptionKeyDown(e,v)}:void 0,selected:l,multiple:h,role:"option",ref:function(e){return r.handleOptionMount(e,d,c)}});return c&&(x=!0),S&&S.indexOf(n.props.value)>=0?(0===w&&(t.splice(w,0,i().createElement(f.Divider,{key:"topDivider"})),O=!0),t.splice(w,0,b),w+=1):t.push(b),t}),[]);h&&B()(g,(function(t){if(!N()(k,(function(e){return gt(e)&&e.props&&e.props.value===t}))){t===r.state.filterKeyword&&(e=!0);var n=S&&S.indexOf(t)>=0,o=S.length;0===w&&(k.splice(0,0,i().createElement(f.Divider,{key:"topDivider"})),w+=1,O=!0),k.splice(n?0:o+1,0,i().createElement(C,{label:String(t),value:t,key:"missing-value-".concat(t),onClick:r.handleMenuOptionClick,multiple:h,selected:!0})),n&&(w+=1)}}));var E="controlled"===p,j=(0,oe.stringToKeywords)(n);if(k=E?k:k.filter((function(e){return!gt(e)||(0,oe.testPhrase)(e.props.label,j)})).map((function(e){if(!gt(e))return e;var t=j&&(0,oe.keywordLocations)(e.props.label,j);return(0,o.cloneElement)(e,{matchRanges:t||void 0})})),u&&!e&&n){var _=O?w+1:w;k.splice(_,0,i().createElement(C,{label:"".concat(n," (new value)"),value:n,key:"newValue",multiple:h,onClick:r.handleMenuOptionClick}))}var P,I,T="checkbox"===v&&h&&k.length>1?1:0,R=!0;return k=k.reduce((function(e,t){if(!gt(t))return e.push(t),e;if(t.props&&t.props.hidden)return e;t.props.selected&&!t.props.disabled&&null==r.firstSelectedOptionIndex&&(r.firstSelectedOptionIndex=r.availableOptionCount);var n=T===r.state.activeIndex;if(T+=1,r.availableOptionCount+=1,r.selectedOptionCount+=t.props.selected?1:0,"newValue"===t.key||t.props.disabled||t.props.selected||(R=!1),!n||!a)return e.push(t),e;t.props.disabled||(r.activeValue=t.props.value);var i=(0,o.cloneElement)(t,{active:n,id:r.activeItemId,ref:r.handleActiveOptionMount});return e.push(i),e}),[]),r.optionSelection=(0===r.selectedOptionCount?"none":R&&"all")||"some","checkbox"===v&&h&&r.availableOptionCount>0&&(I="all"===r.optionSelection?""===n?(0,d._)("Clear all"):(0,d._)("Clear all matches"):""===n?(0,d._)("Select all"):(0,d._)("Select all matches"),0===r.state.activeIndex&&a&&(r.activeValue="selectAll"),k.unshift(i().createElement(He,{key:"selectAllOption",selected:"all"===r.optionSelection||"none"!==r.optionSelection&&"some",selectAllLabel:I,totalCount:null===(P=r.getCurrentValues())||void 0===P?void 0:P.length,changedToggle:!!r.props.toggle,onClick:"all"===r.optionSelection?r.handleClearAll:r.handleSelectAll,id:0===r.state.activeIndex?r.activeItemId:void 0,active:0===r.state.activeIndex,ref:r.handleActiveOptionMount,tabIndex:-1}),i().createElement(f.Divider,{key:"selectAllDivider"}))),r.displayedValues=k.reduce((function(e,t){return gt(t)&&e.push(t.props.value),e}),[]),k})),ft(ct(r),"wrapLabel",(function(e){var t=e.prefixLabel,n=e.label,r=e.suffixLabel,o=n;return t&&(o=["".concat(t,": ")].concat(o)),r&&(o=A()(o).concat(" ".concat(r))),o})),ft(ct(r),"handleDropdownMount",(function(e){r.dropdown=e})),r.state={activeIndex:0,filterKeyword:"",open:!1,textHasFocus:!1,topValues:[],values:e.defaultValues||[]},r.controlledExternally=s()(e,"values"),r.displayedValues=[],r.availableOptionCount=0,r.firstSelectedOptionIndex=void 0,r.selectedOptionCount=0,r.matchCharacter=null,r.matchTimeout=null,r.currentMatchOptions=[],r.availableMatchOptions=[],r.optionRefsByKey={},r.optionSelection="none",n.validateAppearance(e),r.menuId=(0,ee.createDOMID)("menu"),r.activeItemId=(0,ee.createDOMID)("active-item"),r}return at(n,null,[{key:"validateAppearance",value:function(e){}}]),at(n,[{key:"componentDidUpdate",value:function(e,t){n.validateAppearance(this.props),this.previousActiveIndex=t.activeIndex}},{key:"getCurrentValues",value:function(){var e=this.isControlled()?this.props.values:this.state.values;return this.props.multiple||null==e?e:e.slice(0,1)}},{key:"getTopValues",value:function(){var e;return this.props.multiple&&"never"!==this.props.showSelectedValuesFirst&&null!==(e=this.getCurrentValues())&&void 0!==e?e:[]}},{key:"isControlled",value:function(){return this.controlledExternally}},{key:"hasFilter",value:function(){return!!this.props.filter}},{key:"toggleValue",value:function(e,t){var n,r,o,i,a=null!==(n=this.getCurrentValues())&&void 0!==n?n:[],l=a.indexOf(t),c=this.props,s=c.name,u=c.multiple;i=u?l>=0?[].concat(nt(a.slice(0,l)),nt(a.slice(l+1))):a.concat([t]):[t];var p=!this.isControlled();p&&this.setState({values:i}),u?p&&this.setState({open:!0}):(this.handleRequestClose({reason:"contentClick"}),this.focus()),null===(r=(o=this.props).onChange)||void 0===r||r.call(o,e,{values:i,name:s,reason:"valueToggle"})}},{key:"focus",value:function(){var e;null===(e=this.dropdown)||void 0===e||e.focus()}},{key:"renderControls",value:function(e){var t=e.hasChildren,n=e.placement,r=this.state.filterKeyword,o=this.props,a=o.inputId,l=o.inputRef,c=o.multiple,s=o.selectAllAppearance,u=(0,d._)("Select all options".concat("all"===this.optionSelection?" disabled":"")),p=(0,d._)("Clear all options".concat("none"===this.optionSelection?" disabled":"")),f=i().createElement(Xe,{$placement:n,key:"selectAll"},i().createElement(Ye,{$disabled:"all"===this.optionSelection,"aria-label":u,onClick:this.handleSelectAll,"data-test":"select-all"},r?(0,d._)("Select all Matches"):(0,d._)("Select all")),i().createElement(Ye,{$disabled:"none"===this.optionSelection,"aria-label":p,onClick:this.handleClearAll,"data-test":"clear-all"},r?(0,d._)("Clear all Matches"):(0,d._)("Clear all")));return this.hasFilter()&&i().createElement("div",{key:"controls"},i().createElement(Ue,{key:"filter","data-test":"filter"},i().createElement(ue(),{value:r,autoCapitalize:"off",autoComplete:"off",autoCorrect:"off",spellCheck:!1,onChange:this.handleTextChange,onKeyDown:this.handleTextKeyDown,onFocus:this.handleTextFocus,onBlur:this.handleTextBlur,placeholder:(0,d._)("filter"),role:"combobox","aria-expanded":"true","aria-label":(0,d._)("Filter"),"aria-activedescendant":this.activeItemId,inputRef:l,inputId:a,canClear:!0,startAdornment:i().createElement(Ge,null,i().createElement(we,null))})),c&&t&&"buttongroup"===s&&f)}},{key:"render",value:function(){var e,t=this,n=this.props,r=n.children,a=n.defaultPlacement,l=n.inputId,c=n.multiple,s=n.repositionMode,u=n.virtualization,p=this.hasFilter(),d=null!==(e=this.getCurrentValues())&&void 0!==e?e:[],f=o.Children.toArray(r),h=d.some((function(e){var t=N()(f,(function(t){return gt(t)&&t.props.value===e}));return t&&!t.props.disabled})),v=this.createChildren(),b=this.createToggle();return i().createElement(ne(),{closeReasons:yt,inputId:l,toggle:b,onRequestOpen:this.handleRequestOpen,onRequestClose:this.handleRequestClose,open:this.state.open,openWithArrowKeys:!0,repositionMode:s,defaultPlacement:p?a:void 0,canCoverAnchor:("undefined"!=typeof window?window:et).innerHeight<500,ref:this.handleDropdownMount,retainFocus:!1,takeFocus:0===d.length||d.length>0&&!h||!!p},(function(e){var n=e.anchorWidth,r=e.maxHeight,o=e.placement,a=mt({anchorWidth:n,isMultiple:t.props.multiple,maxHeight:r,menuStyle:t.props.menuStyle}),l=d.length>0&&!h&&!t.hasFilter()?0:void 0,s=dt(dt({"aria-multiselectable":c||void 0,childrenStart:t.renderControls({placement:o,hasChildren:!!v.length}),controlledExternally:t.hasFilter(),placement:null!=o?o:void 0,onScrollBottom:t.props.onScrollBottom?t.handleScrollBottom:void 0,"data-test":"results-menu",isLoading:t.props.isLoadingOptions,id:t.menuId},Z()(t.props,"noOptionsMessage","footerMessage","animateLoading","loadingMessage","onScroll")),{},{style:a,tabIndex:l});return u?i().createElement(le.VirtualizedResultsMenu,tt({virtualization:u},s),v):i().createElement(ce(),s,v)}))}}]),n}(o.Component);ft(wt,"propTypes",ht),ft(wt,"defaultProps",vt),ft(wt,"Option",C),ft(wt,"Divider",f.Divider),ft(wt,"Heading",f.Heading),ft(wt,"invalidLinkAppearanceProps",["append","error","prepend"]);const Ot=wt;function Ct(e){return Ct="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},Ct(e)}function St(){return St=Object.assign||function(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}(t,["defaultValues","children","controlledFilter","filter","values"]);e=null!=l?l:!a||"controlled";var u={children:o.Children.toArray(r).map((function(e){return gt(e)?i().createElement(C,St({},e.props,{multiple:!0})):e})),filter:e};return null!=n&&(u.defaultValues=n),null!=c&&(u.values=c),i().createElement(Ot,St({},s,u,{multiple:!0}))}}]),n}(o.Component);_t(Tt,"propTypes",Pt),_t(Tt,"defaultProps",It),_t(Tt,"Option",D),_t(Tt,"Divider",f.Divider),_t(Tt,"Heading",f.Heading);const Rt=Tt,Dt=n(5449);var Mt=t.n(Dt);const At=n(3005);var Lt=t.n(At);const Nt=n(7069);var $t=t.n(Nt);const Bt=n(9608);var Vt=t.n(Bt);const Ht=n(4869);var Ft=t.n(Ht);const zt=n(3421);var qt=t.n(zt);const Wt=n(3319);var Kt=t.n(Wt);const Ut=n(9728);var Gt=t.n(Ut);const Zt=n(4345);var Yt=t.n(Zt);const Xt=n(7596);var Qt=t.n(Xt),Jt=Ce()(Qt()).withConfig({displayName:"NormalStyles__StyledBox",componentId:"sc-1uwwpco-0"})(["border-radius:",";align-items:",";flex-wrap:wrap;min-height:",";max-height:300px;overflow-y:auto;border:1px solid ",";padding:",";"," "," "," "," "," &[data-inline]{width:400px;}[data-inline='true'] + &{margin-left:","}"],ve.variables.borderRadius,(0,ve.pick)({enterprise:"flex-start",prisma:"center"}),ve.variables.inputHeight,(0,ve.pick)({enterprise:{light:ve.variables.gray60,dark:ve.variables.borderColor},prisma:ve.variables.interactiveColorBorder}),(0,ve.pick)({enterprise:"2px 0 0 2px",prisma:"2px"}),(0,ve.pick)({enterprise:{light:(0,Oe.css)(["background-color:",";"],ve.variables.white),dark:(0,Oe.css)(["background-color:",";"],ve.variables.gray22)}}),(function(e){return e.$hasfocus&&(0,ve.pick)({enterprise:(0,Oe.css)(["box-shadow:",";"],ve.variables.focusShadow),prisma:(0,Oe.css)(["border-color:",";"],ve.variables.focusColor)})}),(function(e){return e.$error&&(0,Oe.css)(["border-color:",";color:",";"],ve.variables.accentColorNegative,ve.variables.accentColorNegative)}),(function(e){var t=e.$disabled,n=e.$hasfocus;return t?(0,ve.pick)({enterprise:{light:(0,Oe.css)(["background-color:",";border-color:",";cursor:not-allowed;"],ve.variables.gray96,ve.variables.gray92),dark:(0,Oe.css)(["background-color:",";border-color:",";cursor:not-allowed;"],ve.variables.gray22,ve.variables.gray30)},prisma:(0,Oe.css)(["border-color:",";cursor:not-allowed;"],ve.variables.interactiveColorBorderDisabled)}):!n&&(0,Oe.css)(["&:hover{border-color:",";}"],(0,ve.pick)({enterprise:ve.variables.borderColor,prisma:ve.variables.interactiveColorBorderHover}))}),(function(e){return e.$popoverOpen&&(0,Oe.css)(["position:relative;z-index:calc("," - 2);"],ve.variables.zindexFixedNavbar)}),(0,ve.pick)({enterprise:ve.variables.spacingHalf,prisma:ve.variables.spacingSmall})),en=Ce().div.withConfig({displayName:"NormalStyles__StyledInputWrapper",componentId:"sc-1uwwpco-1"})(["flex:1 0 auto;max-width:100%;"]),tn=Ce().input.withConfig({displayName:"NormalStyles__StyledInput",componentId:"sc-1uwwpco-2"})(["",";min-width:100%;max-width:100%;line-height:12px;",""],ve.mixins.reset("block"),(0,ve.pick)({enterprise:{comfortable:(0,Oe.css)(["padding:",";"],ve.variables.spacingQuarter),compact:(0,Oe.css)(["padding:3px;"])},prisma:{comfortable:(0,Oe.css)(["padding:7px 10px;"]),compact:(0,Oe.css)(["padding:3px;"])}})),nn=Ce().div.withConfig({displayName:"NormalStyles__StyledOverlay",componentId:"sc-1uwwpco-3"})(["",""],(function(e){return e.$popoveropen&&(0,Oe.css)(["position:fixed;top:0;left:0;width:100%;height:100%;z-index:calc("," - 2);"],ve.variables.zindexFixedNavbar)}));function rn(e,t){e&&("function"==typeof e?e(t):e.current=t)}function on(e){return on="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},on(e)}function an(e,t){(null==t||t>e.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}(n,["allowNewValues","children","controlledFilter","defaultPlacement","describedBy","disabled","error","inline","inputId","labelledBy","placeholder","required","repositionMode","useClickawayOverlay"]),C=cn(cn({},qt()(O,(function(e,t){return"role"===t||0===t.indexOf("aria-")}))),{},{"aria-describedby":u,"aria-labelledby":m,"aria-invalid":h||void 0}),S=cn({},qt()(O,(function(e,t){return"aria-label"===t||"aria-describedby"===t}))),k=null!==(e=this.getCurrentValues())&&void 0!==e?e:[],E=k.slice(0),j=k.indexOf(this.state.filterKeyword)>=0;k&&k.length&&o.Children.toArray(a).filter(o.isValidElement).filter((function(e){return e.type===D})).forEach((function(e){if(e.type===D){var t=k.indexOf(e.props.value);-1!==t&&(E[t]=e)}}));var _=(0,oe.stringToKeywords)(this.state.filterKeyword),P=l?o.Children.toArray(a):o.Children.toArray(a).filter((function(e){return!$t()(e,["props","label"],!1)||(0,oe.testPhrase)(e.props.label,_)}));this.availableOptionCount=0,this.activeValue=void 0,this.children=o.Children.map(P,(function(e,n){if(!e.props||!s()(e.props,"value"))return e;var r=e;if(r.props.value===t.state.filterKeyword&&(j=!0),k.indexOf(r.props.value)>=0)return null;var i=r.props,a=i.children,c=i.label,u=i.matchRanges,p=void 0===a||Vt()(a),d=p&&!l&&!u&&_&&(0,oe.keywordLocations)(c,_);return(0,o.cloneElement)(r,{key:n,onClick:t.handleMenuOptionClick,matchRanges:p&&(u||d)||void 0})})).filter((function(e){return null!==e})),r&&!j&&this.state.filterKeyword&&this.children.unshift(i().createElement(D,{label:"".concat(this.state.filterKeyword),description:(0,d._)("(New value)"),descriptionPosition:"right",value:this.state.filterKeyword,key:"newValue",onClick:this.handleMenuOptionClick})),this.state.open&&(this.children=o.Children.map(this.children,(function(e){if(!e.props||!s()(e.props,"value"))return e;var n=e,r=t.availableOptionCount===t.state.activeIndex;return t.availableOptionCount+=1,r?(n.props.disabled||(t.activeValue=n.props.value),(0,o.cloneElement)(n,{active:r,id:t.activeItemId,ref:t.handleActiveOptionMount})):n})));var I=mn("".concat(.8*this.state.filterKeyword.length,"em"));return i().createElement(i().Fragment,null,i().createElement(Jt,sn({key:"control","data-test-values":JSON.stringify(k),inline:v,$hasfocus:this.state.hasFocus},p().apply(void 0,[O,"animateLoading","controlledFilter","defaultValues","footerMessage","inputRef","isLoadingOptions","labelledBy","menuStyle","noOptionsMessage","onChange","onFilterChange","onScroll","onScrollBottom","onClose","onOpen","values","useClickawayOverlay"].concat(function(e){return function(e){if(Array.isArray(e))return an(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return an(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)?an(e,t):void 0}}(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.")}()}(W()(C)))),{onClick:f?void 0:this.handleClick,$disabled:f,$error:h,"data-test-popover-id":this.popoverId,$popoverOpen:this.state.open,flex:!0,elementRef:this.handleMount,role:"listbox","aria-disabled":f||void 0,"aria-labelledby":m,"aria-invalid":h,"aria-multiselectable":"true"},S),this.renderButtons(E),!f&&i().createElement(en,{role:"combobox","aria-owns":this.state.open?this.popoverId:void 0,"aria-haspopup":!0,"aria-expanded":this.state.open,"aria-controls":this.state.open?this.popoverId:void 0},i().createElement(tn,sn({"data-test":"textbox",id:b,ref:this.handleInputMount,onBlur:this.handleInputBlur,onFocus:this.handleInputFocus,onChange:this.handleInputChange,onKeyDown:this.handleInputKeyDown,value:this.state.filterKeyword,autoCapitalize:"off",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",style:I,placeholder:k.length?"":y,required:g,"aria-activedescendant":this.state.open&&this.availableOptionCount>0?this.activeItemId:void 0},C))),!f&&i().createElement(Gt(),{open:this.state.open&&!!this.state.el,autoCloseWhenOffScreen:!0,anchor:this.state.el,onRequestClose:this.handleRequestClose,canCoverAnchor:!1,defaultPlacement:c,repositionMode:x,id:this.popoverId},this.renderMenu)),i().createElement(Yt(),{role:"status","aria-live":"polite"},this.state.loadingMoreMessage),w&&this.state.open?i().createElement(nn,{key:"overlay",$popoveropen:this.state.open,"data-test":"overlay"}):null)}}]),n}(o.Component);hn(gn,"propTypes",vn),hn(gn,"defaultProps",bn),hn(gn,"Option",D),hn(gn,"Divider",f.Divider),hn(gn,"Heading",f.Heading);const xn=gn;function wn(e){return wn="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},wn(e)}function On(){return On=Object.assign||function(e){for(var t=1;t{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{default:()=>Q});const o=n(6540);var i=t.n(o);const a=n(5556);var l=t.n(a);const c=n(7521);var s=t.n(c);const u=n(7338);var p=t.n(u);const d=n(9608);var f=t.n(d);const h=n(6620);var v=t.n(h);const b=n(8967),m=n(4214),y=n(259),g=n(1850);var x=t.n(g);function w(){return w=Object.assign||function(e){for(var t=1;t=0)&&e.preventDefault(),(0,m.isDecimal)(e.nativeEvent,{locale:r.props.locale})&&(r.props.roundTo<=0||r.state.stringValue.indexOf(r.props.locale)>=0)&&e.preventDefault()),"up"===(0,m.keycode)(e.nativeEvent)?(r.increment(e,r.props.step),e.preventDefault()):"down"===(0,m.keycode)(e.nativeEvent)&&(r.increment(e,-r.props.step),e.preventDefault()),null===(t=(n=r.props).onKeyDown)||void 0===t||t.call(n,e)})),G(K(r),"handleKeyUp",(function(e){var t,n;"enter"===(0,m.keycode)(e.nativeEvent)&&r.updateString(),null===(t=(n=r.props).onKeyUp)||void 0===t||t.call(n,e)})),G(K(r),"handleIncrement",(function(e){r.increment(e,r.props.step)})),G(K(r),"handleDecrement",(function(e){r.increment(e,-r.props.step)})),r.controlledExternally=s()(e,"value");var o=r.isControlled()?e.value:e.defaultValue;return r.state={value:r.isControlled()?void 0:o,prevValueProp:r.isControlled()?o:void 0,stringValue:n.numberToString(o,e)},s()(e,"useSyntheticPlaceholder")&&console.warn("The 'Number' prop 'useSyntheticPlaceholder' has been marked for deprecation."),n.validatePrependAppend(r.props.append,r.props.prepend),r}return q(n,null,[{key:"getDecimalSeparator",value:function(e){return new Intl.NumberFormat(e.replace("_","-")).format(1.2).indexOf(",")>-1?",":"."}},{key:"validatePrependAppend",value:function(e,t){}},{key:"stringToNumber",value:function(e,t){var r=e;if(f()(r)&&""!==r){r="."===n.getDecimalSeparator(t.locale)?r.replace(/^[^\d.-]/,""):r.replace(/^[^\d,-]/,"").replace(",",".");var o=n.limitValue(parseFloat(r),t);return p()(o)?o:void 0}}},{key:"numberToString",value:function(e,t){return void 0!==e&&p()(e)?"."===n.getDecimalSeparator(t.locale)?e.toString():e.toString().replace(".",","):""}},{key:"limitValue",value:function(e,t){var n=t.min,r=t.max,o=t.roundTo,i=e;if(!p()(e))return i;void 0!==n&&p()(n)&&(i=Math.max(n,i)),void 0!==r&&p()(r)&&(i=Math.min(r,i));var a=Math.pow(10,o);return Math.round(i*a)/a}}]),q(n,[{key:"componentDidUpdate",value:function(e){n.validatePrependAppend(this.props.append,this.props.prepend)}},{key:"getValue",value:function(){return this.isControlled()?this.props.value:this.state.value}},{key:"setValueFromString",value:function(e,t){var r=this,o=n.stringToNumber(t,this.props),i=this.props.name;this.setState({value:this.isControlled()?void 0:o,stringValue:t},(function(){var t,n;r.getValue()===o&&r.isControlled()||null===(t=(n=r.props).onChange)||void 0===t||t.call(n,e,{value:o,name:i})}))}},{key:"setValue",value:function(e,t){var r=this,o=this.props.name;this.setState({value:this.isControlled()?void 0:t,stringValue:n.numberToString(t,this.props)},(function(){var n,i;r.getValue()===t&&r.isControlled()||null===(n=(i=r.props).onChange)||void 0===n||n.call(i,e,{value:t,name:o})}))}},{key:"focus",value:function(e){this.text&&this.text.focus(e)}},{key:"isControlled",value:function(){return this.controlledExternally}},{key:"updateString",value:function(){var e=this.getValue();this.setState({stringValue:n.numberToString(e,this.props)})}},{key:"increment",value:function(e,t){var r,o=n.stringToNumber(this.state.stringValue,this.props);r=void 0!==o&&p()(o)?o+t:void 0!==this.props.defaultValue&&p()(this.props.defaultValue)?this.props.defaultValue+t:t>0?this.props.max||this.props.step:this.props.min||0,this.setValue(e,n.limitValue(r,this.props))}},{key:"preventNegativeNumbers",value:function(){return void 0!==this.props.min&&p()(this.props.min)&&this.props.min>=0}},{key:"render",value:function(){var e=this,t=this.props,n=t.append,r=t.describedBy,o=t.disabled,a=t.error,l=t.hideStepButtons,c=t.inline,s=t.value,u=void 0===s?this.state.value:s,d=t.max,f=t.min,h=t.prepend,b=t.splunkTheme,m=v()(this.props,["defaultValue","hideStepButtons","max","min","roundTo","spellCheck","step"]),g=b.isPrisma,x=g?{}:{append:n,prepend:!n,error:a,inline:!1},w=void 0!==u&&p()(u)&&void 0!==d&&p()(d)&&u>=d,C=void 0!==u&&p()(u)&&void 0!==f&&p()(f)&&u<=f,S=i().createElement(O,{width:"6px",height:"4px",screenReaderText:(0,y._)("Increment")}),k=F({"data-test":"increment",disabled:o||w,onClick:this.handleIncrement,tabIndex:-1},x),E=g?i().createElement(N,k,S):i().createElement(M,k,S),j=i().createElement(O,{width:"6px",height:"4px",screenReaderText:(0,y._)("Decrement"),style:{transform:"rotateX(180deg)"}}),_=F({"data-test":"decrement",disabled:o||C,onClick:this.handleDecrement,tabIndex:-1},x),P=g?i().createElement($,_,j):i().createElement(A,_,j),I=n&&!h,D=(!o||g)&&I&&!l&&i().createElement(R,{$isAppend:I},E,P),L=(!o||g)&&!I&&!l&&i().createElement(R,{$isAppend:I},E,P);return i().createElement(T,V({autoCapitalize:"off",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"data-test":"number",ref:function(t){e.text=t}},m,{inline:c,onChange:this.handleInputChange,onBlur:this.handleInputBlur,onKeyDown:this.handleKeyDown,onKeyUp:this.handleKeyUp,value:this.state.stringValue,"aria-describedby":r,error:a,"data-test-value":u,startAdornment:D,endAdornment:L}))}}]),n}(o.Component);G(Y,"propTypes",Z),G(Y,"defaultProps",{append:!1,disabled:!1,error:!1,hideStepButtons:!1,inline:!1,locale:"en-US",placeholder:"",prepend:!1,roundTo:5,step:1}),G(Y,"getDerivedStateFromProps",(function(e,t){if(s()(e,"value")&&e.value!==t.prevValueProp){var n=Y.stringToNumber(t.stringValue,e);return e.value!==n?{prevValueProp:e.value,stringValue:Y.numberToString(e.value,e)}:{prevValueProp:e.value}}return null}));var X=(0,b.withSplunkTheme)(Y);X.propTypes=Y.propTypes;const Q=X;e.exports=r})()},4762:(e,t,n)=>{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{default:()=>ee});const o=n(6540);var i=t.n(o);const a=n(5556);var l=t.n(a);const c=n(7596);var s=t.n(c);const u=n(8967),p=n(376),d=n(259),f=n(4711);var h=t.n(f);const v=n(2568);var b=t.n(v),m=b().span.withConfig({displayName:"PageSeparatorStyles__StyledEllipsisWrapper",componentId:"j50fqf-0"})(["display:flex;align-items:center;margin:",";color:",";"],(0,u.pick)({enterprise:"0px 11px",prisma:"0px 20px"}),u.variables.contentColorActive);const y=function(){var e="enterprise"===(0,u.useSplunkTheme)().family?i().createElement("span",{role:"separator"},"…"):i().createElement(h(),null);return i().createElement(m,{role:"separator"},e)},g=n(9453);var x=t.n(g);const w=n(6620);var O=t.n(w);const C=n(2759);var S=t.n(C),k=b()(S()).withConfig({displayName:"ButtonStyles__StyledButtonSimple",componentId:"sc-1neztq7-0"})(["min-width:",";min-height:",";text-align:center;flex-shrink:0;",""],u.variables.inputHeight,u.variables.inputHeight,(0,u.pick)({enterprise:{comfortable:(0,v.css)(["padding:",";"],u.variables.spacingQuarter),compact:(0,v.css)(["padding:3px;"])},prisma:(0,v.css)(["padding:",";"," & + &{margin-left:8px;}"],(0,u.pick)({comfortable:"5px 8px",compact:"4px"}),(function(e){return e.selected&&(0,v.css)(["font-weight:",";"],u.variables.fontWeightBold)}))})),E=b().div.withConfig({displayName:"ButtonStyles__StyledPrevNext",componentId:"sc-1neztq7-1"})(["padding:",";white-space:nowrap;"],(0,u.pick)({enterprise:"0 3px",prisma:"0 8px"}));function j(e){return j="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},j(e)}function _(){return _=Object.assign||function(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}(e,["onChange","current","alwaysShowLastPageLink","numPageLinks","totalPages"]),m=(0,u.useSplunkTheme)().isEnterprise,g=Math.min(h,v),x=Math.ceil(g/2),w=Math.ceil(v-g/2),O=[];if(v<=1)return null;a<=x+1?n=(t=1)+Math.min(v,g)-1:a>x&&ax&&v>g&&1!==t&&(O.push(i().createElement(L,{label:"1",key:"first",onClick:r,page:1,"aria-label":(0,d._)("Go to first page")})),O.push(i().createElement(y,{"data-test":"page",key:"prevEllipsis"})));for(var C=t;C<=n;C+=1){var S=C===a;O.push(i().createElement(L,{label:String(C),selected:S,onClick:r,page:C,key:C,"aria-label":S?(0,d._)("Current page"):(0,p.sprintf)((0,d._)("Go to page %(pageNumber)d"),{pageNumber:C})}))}return a<=w&&v>g&&n!==v&&(O.push(i().createElement(y,{"data-test":"page",key:"nextEllipsis"})),c&&O.push(i().createElement(L,{"data-test":"last",label:String(v),key:"last",onClick:r,page:v,"aria-label":(0,d._)("Go to last page")}))),O.push(i().createElement(L,{"data-test":"next",disabled:a===v,onClick:r,page:a+1,key:"next","aria-label":(0,d._)("Go to next page")},(0,d._)("Next"),m?i().createElement(K,{hideDefaultTooltip:!0,screenReaderText:null}):i().createElement(Y,{$disabled:a===v}))),i().createElement(s(),X({"data-test":"paginator","data-test-current":a,flex:!0,inline:!0,role:"navigation","aria-label":(0,d._)("Pagination navigation")},b),O)}J.propTypes=Q;const ee=J;e.exports=r})()},8374:(e,t,n)=>{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{default:()=>P});const o=n(6540);var i=t.n(o);const a=n(5556);var l=t.n(a);const c=n(5468);var s=t.n(c);const u=n(4995),p=n(2568);var d=t.n(p);const f=n(6535);var h=t.n(f);const v=n(8546);var b=t.n(v);const m=n(7596);var y=t.n(m);const g=n(8967);var x=d()(y()).withConfig({displayName:"ProgressStyles__StyledBox",componentId:"csowex-0"})(["background-color:",";"],(0,g.pick)({enterprise:g.variables.transparent,prisma:g.variables.neutral200})),w=d()(b()).withConfig({displayName:"ProgressStyles__StyledTooltip",componentId:"csowex-1"})(["background-color:",";height:",";position:relative;overflow:hidden;padding-left:",";",";"],(0,g.pick)({enterprise:g.variables.accentColorD10,prisma:(0,g.pickVariant)("$type",{info:g.variables.interactiveColorPrimary,success:g.variables.accentColorPositive,warning:g.variables.accentColorWarning,error:g.variables.accentColorNegative})}),(0,g.pick)({enterprise:"3px",prisma:"4px"}),(0,g.pick)({enterprise:g.variables.spacingHalf,prisma:"10px"}),(function(e){return e.$animated&&(0,p.css)(["transition:width 300ms;"])})),O=(0,p.keyframes)(["from{opacity:0;}to{opacity:1;}"]),C=(0,p.keyframes)(["from{background-position:130%;}to{background-position:-30%;}"]),S=d().div.withConfig({displayName:"ProgressStyles__StyledPuck",componentId:"csowex-2"})(["height:",";width:",";position:absolute;right:0;top:0;background:",";",""],(0,g.pick)({enterprise:"3px",prisma:"4px"}),(0,g.pick)({enterprise:"300px",prisma:"100%"}),(0,g.pick)({enterprise:(0,p.css)(["linear-gradient( 90deg,",",",",40%,",",80%,"," )"],g.variables.accentColorD10,g.variables.accentColorL10,g.variables.accentColorL40,g.variables.accentColorL40),prisma:function(e){var t=e.$animated,n=(0,g.pickVariant)("$type",{info:g.variables.interactiveColorPrimary,success:g.variables.accentColorPositive,warning:g.variables.accentColorWarning,error:g.variables.accentColorNegative});if(t){var r=(0,g.pickVariant)("$type",{info:g.variables.statusColorInfo,success:g.variables.statusColorNormal,warning:g.variables.statusColorMedium,error:g.variables.statusColorHigh});return(0,p.css)(["radial-gradient(circle at center,",","," 30%);"],r,n)}return n}}),(function(e){return e.$animated&&(0,g.pick)({enterprise:(0,p.css)(["animation-duration:1500ms;animation-name:",";animation-iteration-count:infinite;animation-direction:alternate;"],O),prisma:function(){var t=(0,g.pickVariant)("$type",{info:g.variables.statusColorInfo,success:g.variables.statusColorNormal,warning:g.variables.statusColorMedium,error:g.variables.statusColorHigh})(e);return(0,p.css)(["background-size:200% 100%;animation:"," 1500ms infinite cubic-bezier(0.33,0,0.67,1);&::after{content:'';display:block;width:60px;background:linear-gradient( to right,rgba(255,255,255,0),"," 70%,rgba(255,255,255,0.75) );height:100%;position:absolute;right:0;}"],C,h()(t(e)).setAlpha(.75).toRgbString())}})}));function k(){return k=Object.assign||function(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}(e,["percentage","tooltip","type"]),c=function(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var n=[],r=!0,o=!1,i=void 0;try{for(var a,l=e[Symbol.iterator]();!(r=(a=l.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){o=!0,i=e}finally{try{r||null==l.return||l.return()}finally{if(o)throw i}}return n}}(e,t)||function(e,t){if(e){if("string"==typeof e)return E(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)?E(e,t):void 0}}(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.")}()}((0,o.useState)(!1),2),p=c[0],d=c[1],f="on"===(0,u.useAnimationToggle)(),h=(0,o.useCallback)((function(){d(!0)}),[]),v=(0,o.useCallback)((function(){d(!1)}),[]),b=n||"".concat(t,"%");return i().createElement(x,k({$animated:f,"data-test":"progress",onMouseEnter:h,onMouseLeave:v},l),s()(t)&&i().createElement(w,{inline:!1,open:p,content:b,style:{width:"".concat(t,"%")},role:"progressbar","aria-valuenow":t,"aria-valuemin":0,"aria-valuemax":100,$animated:f,$type:a},i().createElement(S,{$animated:f,$type:a})))}_.propTypes=j;const P=_;e.exports=r})()},4601:(e,t,n)=>{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{Option:()=>P,default:()=>q});const o=n(6540);var i=t.n(o);const a=n(5556);var l=t.n(a);const c=n(7521);var s=t.n(c);const u=n(6620);var p=t.n(u);const d=n(4214),f=n(8967),h=n(181);var v=t.n(h);const b=n(2568);var m=t.n(b);const y=n(9137);var g=t.n(y),x=m()(g()).withConfig({displayName:"OptionStyles__StyledClickable",componentId:"fyq77p-0"})(["border-radius:3px;flex:1 1 auto;display:flex;justify-content:center;align-items:center;color:",";padding:2px 12px;height:calc("," - 6px);position:relative;gap:",";& + &{margin-left:2px;}"," "," &:focus{color:",";box-shadow:",";z-index:2;&:active{background-color:",";}}"," ",""],f.variables.contentColorDefault,f.variables.inputHeight,f.variables.spacingXSmall,(function(e){return e.$selected&&(0,b.css)(["color:",";background-color:",";box-shadow:",";"],f.variables.contentColorActive,(0,f.pick)({dark:f.variables.interactiveColorOverlaySelected,light:f.variables.white}),f.variables.embossShadow)}),(function(e){var t=e.$selected,n=e.disabled;return t&&n&&(0,b.css)(["background-color:",";"],f.variables.backgroundColorPage)}),f.variables.contentColorActive,f.variables.focusShadow,f.variables.interactiveColorOverlayActive,(function(e){var t=e.$selected,n=e.disabled;return!t&&!n&&(0,b.css)(["&:hover{color:",";background-color:",";}&:active{background-color:",";}"],f.variables.contentColorActive,f.variables.interactiveColorOverlayHover,f.variables.interactiveColorOverlayActive)}),(function(e){return e.disabled&&(0,b.css)(["color:",";"],f.variables.contentColorDisabled)})),w=m().div.withConfig({displayName:"OptionStyles__StyledIcon",componentId:"fyq77p-1"})(["flex:0 0 auto;margin-top:-2px;font-size:15px;"]),O=m().div.withConfig({displayName:"OptionStyles__StyledLabel",componentId:"fyq77p-2"})([""," flex:0 1 auto;",""],f.mixins.ellipsis,(0,f.pick)({enterprise:(0,b.css)(["&:not(:first-child){margin-left:",";}"],f.variables.spacingXSmall)})),C=m().div.withConfig({displayName:"OptionStyles__StyledAdornment",componentId:"fyq77p-3"})(["flex:0 0 auto;",""],(0,f.pick)({enterprise:(0,b.css)(["&:not(:first-child){margin-left:",";}"],f.variables.spacingXSmall)})),S=(0,o.createContext)({});S.displayName="RadioBar";const k=S;function E(){return E=Object.assign||function(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}(e,["disabled","icon","label","selected","startAdornment","endAdornment","value"]),p=(0,o.useContext)(k),d=p.onClick,f=p.appearance,h=p.error,b=p.onKeyDown,m=p.firstValue,y=p.selectedValue,g=-1;y?s===y&&(g=0):s===m&&(g=0);var S=g;return"prisma"===f?i().createElement(x,E({"data-test":"option","data-test-value":s},u,{onClick:a?void 0:function(e){return null==d?void 0:d(e,{value:s,label:r})},role:"radio","aria-checked":a,$selected:a,tabIndex:S,disabled:t,onKeyDown:function(e){return null==b?void 0:b(e,{value:s,label:r})}}),n&&i().createElement(w,null,n),l&&i().createElement(C,null,l),r&&i().createElement(O,null,r),c&&i().createElement(C,null,c)):i().createElement(v(),E({"data-test":"option","data-test-value":s,appearance:f,disabled:t,icon:n,selected:a,value:s,error:h},u,{onClick:a?void 0:function(e){return null==d?void 0:d(e,{value:s,label:r})},role:"radio","aria-checked":a,tabIndex:S,onKeyDown:function(e){return null==b?void 0:b(e,{value:s,label:r})}}),l&&i().createElement(C,null,l),r&&i().createElement(O,null,r),c&&i().createElement(C,null,c))}_.propTypes=j;const P=_,I=n(7596);var T=t.n(I),R=m()(T()).withConfig({displayName:"RadioBarStyles__StyledRadioBar",componentId:"gg1b79-0"})(["height:",";"," [data-inline] + &{margin-left:",";}"],f.variables.inputHeight,(0,f.pick)({prisma:(0,b.css)(["padding:2px;border-radius:",";border:1px solid ",";background:",";"],f.variables.borderRadius,(function(e){return e.$error?f.variables.accentColorNegative:"transparent"}),(function(e){return e.$disabled?f.variables.interactiveColorBackgroundDisabled:f.variables.interactiveColorBackground}))}),(0,f.pick)({enterprise:f.variables.spacingHalf,prisma:f.variables.spacingSmall}));function D(e){return D="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},D(e)}function M(){return M=Object.assign||function(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}(t,["appearance","children","describedBy","error","labelledBy","splunkTheme","value","required"]),h=this.isControlled()?u:this.state.value,v=s.isPrisma,b=!0;this.filteredValues=[];var m=o.Children.toArray(r).filter(o.isValidElement).map((function(t,n,r){var i=r.length;return e.filteredValues.push(t.props.value),t.props&&!t.props.disabled&&(b=!1),(0,o.cloneElement)(t,{selected:t.props.value===h,key:t.key||n,append:n0})})),y=this.filteredValues[0],g=null==u||this.filteredValues.includes(h),x={appearance:v?"prisma":n,onClick:this.handleClick,error:!v&&l,onKeyDown:this.handleOnKeyDown,firstValue:y,selectedValue:g?h:void 0};return i().createElement(R,M({flex:!0,$disabled:b,$error:l,"data-test":"radio-bar","data-test-value":h,role:"radiogroup","aria-labelledby":c,"aria-describedby":a,"aria-required":d},p()(f,"onChange")),i().createElement(k.Provider,{value:x},m))}}]),n}(o.Component);V(F,"propTypes",H),V(F,"defaultProps",{appearance:"default",error:!1,inline:!1}),V(F,"Option",P);var z=(0,f.withSplunkTheme)(F);z.propTypes=F.propTypes,z.Option=P;const q=z;e.exports=r})()},436:(e,t,n)=>{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{VirtualizedResultsMenu:()=>fe,default:()=>F});const o=n(6540);var i=t.n(o);const a=n(5556);var l=t.n(a);const c=n(9453);var s=t.n(c);const u=n(6537);var p=t.n(u);const d=n(6620);var f=t.n(d);const h=n(259),v=n(2679),b=n(6646);var m=t.n(b);const y=n(2568);var g=t.n(y);const x=n(4379);var w=t.n(x);const O=n(8967);var C=g().div.withConfig({displayName:"ResultsMenuStyles__Styled",componentId:"avbhl8-0"})(["",";flex-direction:column;max-height:calc(100vh - 20px);",""],O.mixins.reset("flex"),(0,O.pick)({prisma:(0,y.css)(["border-radius:",";background-color:",";"],O.variables.borderRadius,O.variables.backgroundColorPopup)})),S=g().div.withConfig({displayName:"ResultsMenuStyles__StyledFooter",componentId:"avbhl8-1"})(["padding:",";color:",";",""],(0,O.pick)({prisma:{comfortable:"10px 16px",compact:"6px 16px"},enterprise:"6px 10px"}),(0,O.pick)({prisma:O.variables.contentColorMuted,enterprise:O.variables.textGray}),(function(e){return"above"===e.$placement?(0,O.pick)({prisma:(0,y.css)(["border-bottom:1px solid ",";"],O.variables.neutral200),enterprise:(0,y.css)(["border-bottom:",";"],O.variables.border)}):(0,O.pick)({prisma:(0,y.css)(["border-top:1px solid ",";"],O.variables.neutral200),enterprise:(0,y.css)(["border-top:",";"],O.variables.border)})})),k=g().li.withConfig({displayName:"ResultsMenuStyles__StyledLoading",componentId:"avbhl8-2"})(["",";padding:",";gap:",";"],O.mixins.reset("flex"),(0,O.pick)({prisma:{comfortable:"10px 16px",compact:"6px 16px"},enterprise:"6px 10px"}),O.variables.spacingXSmall),E=g()(m()).withConfig({displayName:"ResultsMenuStyles__StyledMenu",componentId:"avbhl8-3"})(["overflow:auto;flex-direction:column;"]),j=g()(w()).withConfig({displayName:"ResultsMenuStyles__StyledWait",componentId:"avbhl8-4"})(["flex:0 0 auto;"]),_=g().div.withConfig({displayName:"ResultsMenuStyles__StyledLoadingMessage",componentId:"avbhl8-5"})(["flex:1 0 0;color:",";"],(0,O.pick)({prisma:O.variables.contentColorMuted,enterprise:O.variables.textGray}));function P(e,t){e&&("function"==typeof e?e(t):e.current=t)}function I(e){return I="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},I(e)}function T(){return T=Object.assign||function(e){for(var t=1;t=o&&r.handleScrollBottom(e)}null===(t=(n=r.props).onScroll)||void 0===t||t.call(n,e)})),L(M(r),"handleWheelMenu",(function(e){e.stopPropagation(),document.documentElement.scrollTop=r.state.windowTop})),L(M(r),"handleScrollBottomOnFullMenu",(function(){var e=o.Children.count(r.props.children),t=r.state.childrenCount;r.checkFullHeight()&&r.handleScrollBottom(null),null!=t&&e!==t&&r.setState({numberOfItemsLoaded:e-(null!=t?t:0),scrollBottomTriggered:!1}),e!==t&&r.setState({childrenCount:e})})),r.state={containerEl:null,menuEl:null,numberOfItemsLoaded:0,scrollBottomTriggered:!1,windowTop:0},r.scrollBottomOffset=400,r.itemMinHeight=28,r}return function(e,t,n){t&&R(e.prototype,t)}(n,[{key:"componentDidUpdate",value:function(){var e,t,n=this.state,r=n.containerEl,o=n.menuEl;v.isIE11&&r&&o&&(null===(e=this.props)||void 0===e?void 0:e.onScrollBottom)&&(null===(t=this.props)||void 0===t?void 0:t.children)&&this.handleScrollBottomOnFullMenu()}},{key:"handleScrollBottom",value:function(e){var t,n;this.state.scrollBottomTriggered||(this.setState({scrollBottomTriggered:!0}),null===(t=(n=this.props).onScrollBottom)||void 0===t||t.call(n,e))}},{key:"checkFullHeight",value:function(){var e=this.state.menuEl;return e&&e.scrollHeight===e.offsetHeight}},{key:"renderFooterMessage",value:function(){return this.props.footerMessage&&!!o.Children.toArray(this.props.children).length&&i().createElement(S,{$placement:this.props.placement,"data-test":"footer-message",key:"footer"},this.props.footerMessage)}},{key:"render",value:function(){var e=this.props,t=e.animateLoading,r=e.children,a=e.controlledExternally,l=e.childrenStart,c=e.isLoading,u=e.loadingMessage,p=e.noOptionsMessage,d=e.onDownKeyPress,h=e.onEndKeyPress,v=e.onHomeKeyPress,y=e.onScrollBottom,g=e.onUpKeyPress,x=e.placement,w=e.style,O=e.tabIndex,S=f()(this.props,s()(n.propTypes)),P=o.Children.toArray(r).filter(o.isValidElement).some((function(e){var t=e.type;return!(t===b.Divider&&t.filterFirst||(t===b.Divider||t===b.Heading)&&(t.filterLast||t.filterConsecutive))})),I=this.checkFullHeight(),R=V(this.state.scrollBottomTriggered&&this.state.numberOfItemsLoaded*this.itemMinHeight||0);return i().createElement(C,T({key:"wrapper",ref:this.handleMount,onWheel:y?this.handleWheelMenu:void 0,onMouseEnter:y?this.handleMouseEnter:void 0,onMouseLeave:y?this.handleMouseLeave:void 0},f()(S,"tabIndex"),{style:w}),"above"!==x&&l,"above"===x&&this.renderFooterMessage(),i().createElement(b.MenuContext.Provider,{value:B},i().createElement(E,{key:"menu",controlledExternally:a,elementRef:this.handleMenuMount,onDownKeyPress:d,onEndKeyPress:h,onHomeKeyPress:v,onScroll:this.handleScroll,onUpKeyPress:g,stopScrollPropagation:!0,tabIndex:O},!P&&p&&!c&&i().createElement(m().Item,{"data-test":"no-results-message",disabled:!0},p),r,y&&!I&&i().createElement("div",{"data-test":"results-menu-bottom-spacer",style:R}),c&&i().createElement(k,null,t&&i().createElement(j,null),i().createElement(_,null,u)))),"above"!==x&&this.renderFooterMessage(),"above"===x&&l)}}]),n}(o.Component);L(H,"propTypes",N),L(H,"defaultProps",$);const F=H;var z={result:[]},q=function(e,t){return z.children===e&&z.groupSize===t||(z.children=e,z.groupSize=t,z.result=t<=1?[o.Children.toArray(e)]:o.Children.toArray(e).reduce((function(e,n,r){var o=Math.floor(r/t);return Array.isArray(e[o])||(e[o]=[]),e[o].push(n),e}),[])),z.result};const W=n(7478);function K(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0&&n3&&void 0!==arguments[3]?arguments[3]:{},o=r.trackFirstElement,a=r.trackLastElement;if(!Array.isArray(e))return[];var l=Z(e,Math.floor(e.length/2)),c=o&&Z(e,0),s=a&&Z(e,e.length-1);return e.map((function(e,r){return r===l||r===c||r===s?i().createElement(G,{key:(0,W.createGUID)(),onMount:t,onUnmount:n},e):e}))};function X(e,t,n){for(var r=0;r0;r-=1){var o,i=(r+n)%e.length;if(!0!==(null===(o=e[i].current)||void 0===o?void 0:o.props.disabled))return e[i]}return e[t]}function J(){return J=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);nr?r:o,!1]};function pe(e){var t=e.virtualization,n=e.elementRef,r=e.children,a=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=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}(e,["virtualization","elementRef","children"]),l=te((0,o.useState)(t),2),c=l[0],s=l[1],u=te((0,o.useState)((function(){return q(r,c)})),1)[0],p=(0,o.useRef)(u),d=(0,o.useRef)(0),f=(0,o.useRef)(),h=(0,o.useRef)(ce),v=(0,o.useRef)(ce),b=(0,o.useCallback)((function(){var e,t=p.current,n=void 0===t?[]:t,r=d.current,o=function(e){return function(t){var n;t&&(e.current.push(t),null===(n=f.current)||void 0===n||n.observe(t))}},i=function(e){var t;if(e){var n=v.current.indexOf(e);n>=0&&v.current.splice(n,1);var r=h.current.indexOf(e);r&&h.current.splice(r,1),null===(t=f.current)||void 0===t||t.unobserve(e)}};return[].concat(ee(Y(n[r-1],o(v),i,{trackFirstElement:!0})),ee(null!==(e=n[r])&&void 0!==e?e:[]),ee(Y(n[r+1],o(h),i,{trackLastElement:!0})))}),[]),m=te((0,o.useState)(b),2),y=m[0],g=m[1],x=(0,o.useCallback)((function(e){var t=d.current;d.current=Math.max(0,Math.min(e,p.current.length-1)),t!==d.current&&g(b)}),[b]),w=(0,o.useCallback)((function(e){var t;P(n,e),null===(t=f.current)||void 0===t||t.disconnect(),e&&(v.current=[],h.current=[],f.current=new IntersectionObserver((function(t){var n,r,o=d.current,i=e.firstElementChild;if(i&&i.scrollHeight1&&t.some((function(e){return e.isIntersecting})))s((function(e){return e+10}));else{var a=!1;t.forEach((function(e){!a&&e.isIntersecting&&(v.current.includes(e.target)?(a=!0,x(o-1)):h.current.includes(e.target)&&(a=!0,x(o+1)))}))}}),{root:e}))}),[n,x]),O=(0,o.useCallback)((function(e,t){var n,r,o=t.itemRefs,i=p.current.length-1;if(d.current===i)return[Q(o,o.length-1,o.length-1),!0];x(i);var a=null!==(n=p.current[i-1].length)&&void 0!==n?n:0,l=p.current[i].length,c=Math.max(a+l-1,0);return[Z([].concat(ee(null!==(r=p.current[i-1])&&void 0!==r?r:[]),ee(p.current[i])),c),!0]}),[x]),C=(0,o.useCallback)((function(e,t){var n=t.itemRefs;return 0===d.current?[X(n,0,0),!0]:(x(0),[0,!0])}),[x]);return(0,o.useEffect)((function(){s((function(e){return t}))}),[t]),(0,o.useEffect)((function(){p.current=q(r,c),g(b)}),[r,c,b]),(0,o.useEffect)((function(){return function(){var e;return null===(e=f.current)||void 0===e?void 0:e.disconnect()}}),[]),i().createElement(F,J({elementRef:w},a,{onEndKeyPress:O,onHomeKeyPress:C,onUpKeyPress:ue,onDownKeyPress:se}),y)}pe.propTypes=le,pe.defaultProps={virtualization:0};var de={document:{body:{appendChild:function(){return[]}},addEventListener:function(){},removeEventListener:function(){},activeElement:{blur:function(){},nodeName:""},querySelector:function(){return null},querySelectorAll:function(){return[]},getElementById:function(){return null},createEvent:function(){return{initEvent:function(){}}},createElement:function(){return{children:[],childNodes:[],style:{},setAttribute:function(){},getElementsByTagName:function(){return[]}}},createElementNS:function(){return{}},importNode:function(){return null},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""}},navigator:{userAgent:""},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""},history:{replaceState:function(){},pushState:function(){},go:function(){},back:function(){}},CustomEvent:function(){return this},addEventListener:function(){},removeEventListener:function(){},getComputedStyle:function(){return{getPropertyValue:function(){return""}}},Image:function(){},Date:function(){},screen:{},setTimeout:function(){},clearTimeout:function(){},matchMedia:function(){return{}},requestAnimationFrame:function(e){return"undefined"==typeof setTimeout?(e(),null):setTimeout(e,0)},cancelAnimationFrame:function(e){"undefined"!=typeof setTimeout&&clearTimeout(e)}};const fe="IntersectionObserver"in("undefined"!=typeof window?window:de)?pe:F;e.exports=r})()},3707:(e,t,n)=>{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{default:()=>F});const o=n(6540);var i=t.n(o);const a=n(5556);var l=t.n(a);const c=n(7338);var s=t.n(c);const u=n(6991),p=n(2568);var d=t.n(p);const f=n(8967),h=n(9453);var v=t.n(h);const b=n(6620);var m=t.n(b);const y=n(6529),g=n(8973);var x=t.n(g);const w=n(5474);function O(e){return O="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},O(e)}function C(){return C=Object.assign||function(e){for(var t=1;tn&&(t.scrollLeft=n,e.stopPropagation(),e.preventDefault())}if(t.clientHeight!==t.scrollHeight){if(e.deltaY<0&&t.scrollTopo&&(t.scrollTop=o,e.stopPropagation(),e.preventDefault())}}})),_(E(r),"handleMount",(function(e){r.setState({containerEl:e}),function(e,t){e&&("function"==typeof e?e(t):e.current=t)}(r.props.elementRef,e)})),_(E(r),"handleMouseEnter",(function(){r.defaultWindowOverflowX=document.body.style.overflowX,r.defaultWindowOverflowY=document.body.style.overflowY,document.body.style.overflowX="hidden",document.body.style.overflowY="hidden"})),_(E(r),"handleMouseLeave",(function(){document.body.style.overflowX=r.defaultWindowOverflowX,document.body.style.overflowY=r.defaultWindowOverflowY})),r.state={containerEl:null},r}return function(e,t,n){t&&S(e.prototype,t)}(n,[{key:"componentDidUpdate",value:function(e,t){var n,r;this.state.containerEl&&(t.containerEl||(this.state.containerEl.scrollTop=this.props.defaultTop,this.state.containerEl.scrollLeft=this.props.defaultLeft),s()(this.props.top)&&(this.state.containerEl.scrollTop=(null===(n=this.props.top)||void 0===n?void 0:n.get())||0),s()(this.props.left)&&(this.state.containerEl.scrollLeft=(null===(r=this.props.left)||void 0===r?void 0:r.get())||0))}},{key:"render",value:function(){var e=this.props,t=e.children,r=e.onScroll,o=e.stopScrollPropagation,a=e.top,l=e.left,c=this.state.containerEl,s=y.animated[this.props.tagName];return i().createElement(i().Fragment,null,i().createElement(s,C({},m()(this.props,v()(n.propTypes)),{ref:this.handleMount,onMouseEnter:"window"===o?this.handleMouseEnter:void 0,onMouseLeave:"window"===o?this.handleMouseLeave:void 0,onScroll:r,scrollTop:a,scrollLeft:l}),i().createElement(w.ScrollContainerProvider,{value:c},t)),!0===o&&c&&i().createElement(x(),{target:c,eventType:"wheel",listener:this.handleWheel,options:{passive:!1}}))}}]),n}(o.Component);_(I,"propTypes",P),_(I,"defaultProps",{defaultLeft:0,defaultTop:0,tagName:"div"});const T=I;var R=d()(T).withConfig({displayName:"ScrollStyles__StyledInner",componentId:"sc-1xspttf-0"})(["",";overflow:auto;overflow-y:auto;overflow-x:hidden;"],f.mixins.reset("block"));function D(e){return D="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},D(e)}function M(){return M=Object.assign||function(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}(t,["children","elementRef","left","top","onScrollComplete"]));return i().createElement(R,M({"data-test":"scroll"},c,{key:"inner",top:s()(l)?e.top:void 0,left:s()(a)?e.left:void 0,elementRef:o,onScroll:r.handleScroll}),n)})),r.state={currentLeft:0,currentTop:0},r}return function(e,t,n){t&&A(e.prototype,t)}(n,[{key:"render",value:function(){var e=this.props,t=e.left,n=e.top,r=this.state,o=r.currentLeft,a=r.currentTop,l={};return s()(t)?l.left=t:l.left=o,s()(n)?l.top=n:l.top=a,i().createElement(u.Spring,{from:{left:0,top:0},to:l,onRest:this.handleRest,config:{precision:10}},this.renderInner)}}]),n}(o.Component);B(H,"propTypes",V),B(H,"defaultProps",{stopScrollPropagation:!1,tagName:"div"});const F=H;e.exports=r})()},7149:(e,t,n)=>{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{Divider:()=>M.Divider,Heading:()=>M.Heading,Option:()=>Ot,default:()=>Rt});const o=n(6540);var i=t.n(o);const a=n(5556);var l=t.n(a);const c=n(7521);var s=t.n(c);const u=n(259),p=n(6561);var d=t.n(p);const f=n(3578);var h=t.n(f);const v=n(645);var b=t.n(v);const m=n(8988);var y=t.n(m);const g=n(5625);var x=t.n(g);const w=n(9453);var O=t.n(w);const C=n(6537);var S=t.n(C);const k=n(6620);var E=t.n(k);const j=n(8524);var _=t.n(j);const P=n(4180);var I=t.n(P);const T=n(3769);var R=t.n(T);const D=n(7478),M=n(6646),A=n(3592);var L=t.n(A);const N=n(4214),$=n(6789),B=n(9421);var V=t.n(B);const H=n(436);var F=t.n(H);const z=n(5338);var q=t.n(z);const W=n(149);var K=t.n(W);const U=n(5208);var G=t.n(U);const Z=n(8967),Y=function(){return(0,Z.useSplunkTheme)().isEnterprise?i().createElement(G(),{screenReaderText:null,hideDefaultTooltip:!0,size:.5}):i().createElement(K(),null)},X=n(8911);var Q=t.n(X);const J=n(787);var ee=t.n(J);const te=function(){var e=(0,Z.useSplunkTheme)(),t=e.isEnterprise,n=e.isCompact,r=(0,u._)("Search"),o=n?"20px":"24px";return t?i().createElement(Q(),{role:"presentation",size:"16px",screenReaderText:r,hideDefaultTooltip:!0}):i().createElement(ee(),{role:"presentation","aria-label":r,width:o,height:o})};function ne(e){return ne="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},ne(e)}function re(){return re=Object.assign||function(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}(e,["value","children","label","multiple"]);return i().createElement(M.Item,re({"aria-selected":this.props.selected,"data-test-value":t,"data-test":"option",ref:this.handleMount},a,{selectable:!0,selectableAppearance:o?"checkbox":void 0,onClick:this.handleClick,role:"option",value:t.toString()}),n||r)}}]),n}(o.PureComponent);ce(ue,"propTypes",se),ce(ue,"defaultProps",{descriptionPosition:"bottom",disabled:!1,multiple:!1,selected:!1,truncate:!1}),ce(ue,"type",M.Item);const pe=ue,de=n(2568);var fe=t.n(de);const he=n(9137);var ve=t.n(he);const be=n(3997);var me=t.n(be),ye=(0,de.css)(["color:",";font-size:",";line-height:",";overflow:inherit;white-space:inherit;text-overflow:inherit;"],(0,Z.pick)({prisma:Z.variables.contentColorDefault,enterprise:Z.variables.textGray}),Z.variables.fontSizeSmall,(0,Z.pick)({prisma:"16px"})),ge=fe().span.withConfig({displayName:"ItemStyles__StyledItemDescriptionBottom",componentId:"sc-4kc053-0"})(["",";display:block;"],ye),xe=fe().span.withConfig({displayName:"ItemStyles__StyledItemDescriptionRight",componentId:"sc-4kc053-1"})(["",";float:right;padding-left:",";max-width:50%;text-align:right;box-sizing:border-box;"],ye,Z.variables.spacing),we=fe().div.withConfig({displayName:"ItemStyles__StyledItemSelectedIcon",componentId:"sc-4kc053-2"})(["position:absolute;"," color:",";"],(0,Z.pick)({prisma:(0,de.css)(["right:16px;"]),enterprise:(0,de.css)(["top:5px;right:3px;left:8px;"])}),(0,Z.pick)({prisma:Z.variables.contentColorActive,enterprise:Z.variables.accentColorL10})),Oe=fe().span.withConfig({displayName:"ItemStyles__StyledItemIcon",componentId:"sc-4kc053-3"})(["flex:0 0 auto;padding-right:",";min-width:10px;display:inline-block;text-align:center;vertical-align:",";",""],(0,Z.pick)({prisma:"8px",enterprise:"3px"}),(0,Z.pick)({prisma:"initial",enterprise:"middle"}),(0,Z.pick)({prisma:(0,de.css)(["color:",";display:inline-flex;align-items:center;min-width:20px;min-height:20px;& > svg{width:20px;height:20px;}"],Z.variables.contentColorMuted),enterprise:(0,de.css)(["transform:translateY(-1px);"])})),Ce=(fe()(ve()).withConfig({displayName:"ItemStyles__StyledClickable",componentId:"sc-4kc053-4"})(["display:block;position:relative;cursor:pointer;color:",";word-wrap:break-word;max-width:100%;width:100%;padding:",";"," "," "," &:not([disabled]){&:hover{background:",";","}&:focus{outline:0;box-shadow:",";","}"," ","}&[disabled]{color:",";cursor:not-allowed;",",","{color:inherit;}","{cursor:not-allowed;color:",";}","}",""],(0,Z.pick)({prisma:Z.variables.contentColorActive,enterprise:{dark:Z.variables.gray96,light:Z.variables.gray22}}),(0,Z.pick)({prisma:{comfortable:"10px 16px",compact:"6px 16px"},enterprise:"6px 10px"}),(function(e){var t=e.$isSelectable,n=e.$selectableAppearance;return t&&(0,Z.pick)({prisma:(0,de.css)(["padding-right:44px;",""],(function(){return"checkbox"===n&&"padding-left: 42px;"})),enterprise:(0,de.css)(["padding-right:10px;padding-left:",";"],(function(){return"checkbox"===n?"32px":"28px"}))})}),(function(e){var t=e.$active,n=e.$preventFocus;return t&&!n&&(0,de.css)(["box-shadow:",";"],Z.variables.focusShadowInset)}),(function(e){return e.$active&&(0,de.css)(["background:",";font-weight:",";"],(0,Z.pick)({enterprise:{light:Z.variables.gray92,dark:Z.variables.gray22},prisma:Z.variables.neutral100}),Z.variables.fontWeightBold)}),(0,Z.pick)({prisma:Z.variables.interactiveColorOverlayHover,enterprise:Z.variables.backgroundColorHover}),(function(e){return e.$selected&&(0,Z.pick)({prisma:(0,de.css)(["background:",";"],Z.mixins.overlayColors(Z.variables.interactiveColorOverlaySelected,Z.variables.interactiveColorOverlayHover))})}),Z.variables.focusShadowInset,(0,Z.pick)({prisma:(0,de.css)(["background:",";"],Z.variables.interactiveColorOverlayHover)}),(0,Z.pick)({prisma:(0,de.css)(["&:active{background:",";}"],Z.variables.interactiveColorOverlayActive)}),(function(e){return e.$selected&&(0,Z.pick)({prisma:(0,de.css)(["background:",";&:active{background:",";}"],Z.variables.interactiveColorOverlaySelected,Z.mixins.overlayColors(Z.variables.interactiveColorOverlaySelected,Z.variables.interactiveColorOverlayActive))})}),(0,Z.pick)({enterprise:{light:Z.variables.gray45,dark:Z.variables.contentColorDisabled},prisma:Z.variables.contentColorDisabled}),ge,xe,we,(0,Z.pick)({prisma:Z.variables.contentColorDisabled,enterprise:Z.variables.gray80}),(0,Z.pick)({prisma:(0,de.css)(["& > * > ","{color:",";}"],Oe,Z.variables.contentColorDisabled)}),(function(e){return e.$selected&&(0,Z.pick)({prisma:(0,de.css)(["","{color:",";}"],Oe,Z.variables.contentColorActive)})})),fe()(me()).withConfig({displayName:"ItemStyles__StyledSwitch",componentId:"sc-4kc053-5"})(["position:absolute;left:",";top:",";"],(0,Z.pick)({prisma:"16px",enterprise:"8px"}),(0,Z.pick)({prisma:"0px",enterprise:{comfortable:"-1px",compact:"2px"}}))),Se=fe().span.withConfig({displayName:"ItemStyles__StyledInnerWrapper",componentId:"sc-4kc053-6"})(["display:flex;align-items:flex-start;"]),ke=fe().span.withConfig({displayName:"ItemStyles__StyledTitleAndDescriptionWrapper",componentId:"sc-4kc053-7"})(["max-width:100%;width:100%;align-self:center;word-break:break-word;white-space:normal;",""],(function(e){return e.$truncate&&(0,de.css)(["white-space:nowrap;overflow:hidden;text-overflow:ellipsis;"])})),Ee=fe().div.withConfig({displayName:"ItemStyles__StyledLabel",componentId:"sc-4kc053-8"})(["overflow:inherit;white-space:inherit;text-overflow:inherit;max-width:100%;min-height:20px;",""],(function(e){return e.$truncate&&(0,de.css)(["display:block;clear:both;"])})),je=(fe().span.withConfig({displayName:"ItemStyles__StyledMatch",componentId:"sc-4kc053-9"})(["border-bottom:1px solid ",";"],(0,Z.pick)({prisma:Z.variables.contentColorActive,enterprise:{dark:Z.variables.gray96,light:Z.variables.gray45}})),fe().span.withConfig({displayName:"ItemStyles__StyledSubmenu",componentId:"sc-4kc053-10"})(["float:right;padding-left:",";color:",";",""],Z.variables.spacingSmall,(0,Z.pick)({prisma:"inherit",enterprise:Z.variables.textGray}),(0,Z.pick)({prisma:(0,de.css)(["& > svg{width:20px;height:20px;}"])})),fe()(Ee).withConfig({displayName:"SelectAllOptionStyles__StyledSelectAllLabel",componentId:"y6bn08-0"})(["font-weight:",";"],Z.variables.fontWeightBold)),_e=fe()(pe).withConfig({displayName:"SelectAllOptionStyles__StyledSelectAllOption",componentId:"y6bn08-1"})(["padding-inline-start:",";box-shadow:none;"],(0,Z.pick)({prisma:"42px;",enterprise:"32px;"})),Pe={active:l().bool,elementRef:l().oneOfType([l().func,l().object]),id:l().string,onClick:l().func,selectAllLabel:l().string,totalCount:l().number,changedToggle:l().bool,selected:l().oneOf([!1,!0,"some"])},Ie=i().forwardRef((function(e,t){var n=e.active,r=e.id,o=e.onClick,a=e.selectAllLabel,l=e.totalCount,c=e.changedToggle,s=e.selected,p=c?" (".concat(null==l?void 0:l.toString(),")"):"";return i().createElement(_e,{label:a,value:"selectAll",key:"selectAll",onClick:o,"data-test":"select-all","aria-keyshortcuts":"Control+A",id:r,active:n,ref:t,tabIndex:-1},i().createElement(Ce,{interactive:!1,selected:"some"===s?"some":s,key:"main-checkbox",value:"main-checkbox",appearance:"checkbox","aria-label":!s&&(0,u._)("No options selected")||"some"===s&&(0,u._)("Some options selected")||(0,u._)("All options selected"),"data-test":"select-all-switch",selectedLabel:!0===s?(0,u._)("All options selected"):(0,u._)("Option selected"),unselectedLabel:!0===s?(0,u._)("No options selected"):(0,u._)("Option unselected"),someSelectedLabel:(0,u._)("Some options selected")}),i().createElement(xe,{"data-test":"description"},"".concat(p," Ctrl-a")),i().createElement(Se,null,i().createElement(ke,{$truncate:!1},i().createElement(je,{$truncate:!1},a))))}));Ie.propTypes=Pe;const Te=Ie,Re=n(181);var De=t.n(Re),Me=fe()(De()).withConfig({displayName:"SelectBaseStyles__StyledButton",componentId:"sc-16cj7sk-0"})(["&[data-inline]{width:",";}",""],(function(e){return e.$multiple?"400px":"auto"}),(function(e){return!e.$multiple&&"flex-grow: 0;"})),Ae=fe().span.withConfig({displayName:"SelectBaseStyles__StyledLinkIcon",componentId:"sc-16cj7sk-1"})(["padding-right:2px;"]),Le=fe().span.withConfig({displayName:"SelectBaseStyles__StyledLinkCaret",componentId:"sc-16cj7sk-2"})(["padding-left:2px;"]),Ne=fe().div.withConfig({displayName:"SelectBaseStyles__StyledFilter",componentId:"sc-16cj7sk-3"})(["padding:",";min-width:160px;"],(0,Z.pick)({enterprise:"8px",prisma:"10px 16px"})),$e=fe().span.withConfig({displayName:"SelectBaseStyles__StyledSearchIconWrapper",componentId:"sc-16cj7sk-4"})(["color:",";pointer-events:none;padding:",";"],(0,Z.pick)({enterprise:{light:Z.variables.gray60,dark:Z.variables.white},prisma:Z.variables.contentColorMuted}),(0,Z.pick)({comfortable:"0 8px",compact:"0 6px"})),Be=fe().span.withConfig({displayName:"SelectBaseStyles__StyledCount",componentId:"sc-16cj7sk-5"})(["padding-right:",";"],(0,Z.pick)({enterprise:Z.variables.spacingQuarter,prisma:Z.variables.spacingXSmall})),Ve=fe()(V()).withConfig({displayName:"SelectBaseStyles__StyledControlsLink",componentId:"sc-16cj7sk-6"})(["margin-right:20px;",";"],(function(e){return e.$disabled&&(0,de.css)(["color:",";"],Z.variables.contentColorDisabled)})),He=fe().div.withConfig({displayName:"SelectBaseStyles__StyledToggleAllControls",componentId:"sc-16cj7sk-7"})(["padding:",";",""],(0,Z.pick)({enterprise:"5px 8px",prisma:"10px 16px"}),(0,Z.pickVariant)("$placement",{above:{enterprise:(0,de.css)(["border-top:",";"],Z.variables.border),prisma:(0,de.css)(["border-top:1px solid ",";"],Z.variables.neutral200)},below:{enterprise:(0,de.css)(["border-bottom:",";"],Z.variables.border),prisma:(0,de.css)(["border-bottom:1px solid ",";"],Z.variables.neutral200)}})),Fe=function(e,t){return e?e.label.charAt(t).toLowerCase():""},ze=function(e,t){if(!e.length)return e;var n=null,r=!1,o=e.filter((function(e){var o=Fe(e,t.index);if(o===t.value)return r=!0,!0;if(!r){var i=Fe(n,t.index);i?o>t.value?(io)&&(n=e):o>i&&(n=e):n=e}return!1}));return 0===o.length&&n?[n]:o},qe={document:{body:{appendChild:function(){return[]}},addEventListener:function(){},removeEventListener:function(){},activeElement:{blur:function(){},nodeName:""},querySelector:function(){return null},querySelectorAll:function(){return[]},getElementById:function(){return null},createEvent:function(){return{initEvent:function(){}}},createElement:function(){return{children:[],childNodes:[],style:{},setAttribute:function(){},getElementsByTagName:function(){return[]}}},createElementNS:function(){return{}},importNode:function(){return null},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""}},navigator:{userAgent:""},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""},history:{replaceState:function(){},pushState:function(){},go:function(){},back:function(){}},CustomEvent:function(){return this},addEventListener:function(){},removeEventListener:function(){},getComputedStyle:function(){return{getPropertyValue:function(){return""}}},Image:function(){},Date:function(){},screen:{},setTimeout:function(){},clearTimeout:function(){},matchMedia:function(){return{}},requestAnimationFrame:function(e){return"undefined"==typeof setTimeout?(e(),null):setTimeout(e,0)},cancelAnimationFrame:function(e){"undefined"!=typeof setTimeout&&clearTimeout(e)}};function We(){return We=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n1&&(i.index=r.matchCharacter.index+1,o=ze(r.currentMatchOptions,i));else{if(" "===n)return void r.resetMatches();o=ze(r.availableMatchOptions,i)}if(o.length){var a=0;if(0===i.index&&o.length>1){var l=o.indexOf(r.availableMatchOptions[t]);l>=0&&(a=l===o.length-1?0:l+1)}var c,s=o[a],u=r.optionRefsByKey[ut(s.value,s.label)];null!=u&&(null===(c=u.focus)||void 0===c||c.call(u))}r.currentMatchOptions=o,r.matchCharacter=i,r.matchTimeout&&clearTimeout(r.matchTimeout),r.matchTimeout=setTimeout(r.resetMatches,500),e.preventDefault(),e.stopPropagation()}})),rt(Qe(r),"handleTextChange",(function(e,t){var n,o,i=t.value;r.setState({filterKeyword:i,open:!0,activeIndex:0}),null===(n=(o=r.props).onFilterChange)||void 0===n||n.call(o,e,{keyword:i})})),rt(Qe(r),"handleTextFocus",(function(){r.setState({textHasFocus:!0})})),rt(Qe(r),"handleTextBlur",(function(){r.setState({textHasFocus:!1})})),rt(Qe(r),"handleRequestOpen",(function(e){var t={open:!0,topValues:r.getTopValues()};r.props.multiple&&(t.filterKeyword="");var n=r.state.filterKeyword;r.setState(t,(function(){var t,o,i,a,l;null===(t=(o=r.props).onOpen)||void 0===t||t.call(o),r.firstSelectedEnabledOption&&!r.hasFilter()?r.firstSelectedEnabledOption.focus():r.setState({activeIndex:null!==(i=r.firstSelectedOptionIndex)&&void 0!==i?i:0}),n!==r.state.filterKeyword&&(null===(a=(l=r.props).onFilterChange)||void 0===a||a.call(l,e,{keyword:r.state.filterKeyword}))}))})),rt(Qe(r),"handleRequestClose",(function(){r.setState({open:!1,activeIndex:0},(function(){var e,t;r.previousActiveIndex=null,null===(e=(t=r.props).onClose)||void 0===e||e.call(t)}))})),rt(Qe(r),"handleScrollBottom",(function(e){var t,n;r.state.open&&!r.props.isLoadingOptions&&(null===(t=(n=r.props).onScrollBottom)||void 0===t||t.call(n,e))})),rt(Qe(r),"handleActiveOptionMount",(function(e){r.previousActiveIndex!==r.state.activeIndex&&(null==e||e.scrollIntoViewIfNeeded())})),rt(Qe(r),"handleOptionMount",(function(e,t,n){n&&(r.firstSelectedEnabledOption=e),null==e?delete r.optionRefsByKey[t]:r.optionRefsByKey[t]=e})),rt(Qe(r),"createToggle",(function(){var e,t,a,l=r.props,c=l.toggle,s=l.appearance,p=l.children,d=l.describedBy,f=l.disabled,v=l.elementRef,b=l.error,m=l.inline,y=l.labelledBy,g=l.labelText,x=l.multiple,w=l.placeholder,C=l.prefixLabel,S=l.required,k=l.suffixLabel,j=null!==(e=r.getCurrentValues())&&void 0!==e?e:[],P=o.Children.toArray(p),I=j.reduce((function(e,n,r,o){var i=h()(P,(function(e){return st(e)&&e.props.value===n}));return i?(e.push(i.props.children||i.props.label),x||1!==j.length||(t=i.props.icon)):x&&e.push(n),r0&&(a=r.wrapLabel({prefixLabel:C,label:a,suffixLabel:k})),(0===a.length||!x&&a.every((function(e){return""===e})))&&(a=at(w));var T=a;a.length>1&&(T=r.wrapLabel({prefixLabel:C,label:["".concat(j.length," items selected")],suffixLabel:k}));var R=nt({"aria-describedby":d,"aria-label":"".concat(g?"".concat(g,", "):"").concat(T),"aria-labelledby":g?void 0:y,"aria-multiselectable":x||void 0,"aria-required":S,"data-select-appearance":s,"data-test":x?"multiselect":"select",disabled:f,elementRef:v,error:b},E()(r.props,O()(n.propTypes)));if(x)R["data-test-values"]=JSON.stringify(j);else{var D=function(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var n=[],r=!0,o=!1,i=void 0;try{for(var a,l=e[Symbol.iterator]();!(r=(a=l.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){o=!0,i=e}finally{try{r||null==l.return||l.return()}finally{if(o)throw i}}return n}}(e,t)||Ue(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.")}()}(j,1)[0];R["data-test-value"]=D}return c?(0,o.cloneElement)(c,R):"link"===s?i().createElement(V(),We({},R,{"data-select-appearance":"link"}),!!t&&i().createElement(Ae,null,t),a||w,i().createElement(Le,null,i().createElement(Y,null))):i().createElement(Me,We({},R,{$multiple:x,appearance:s,label:a,error:b,icon:t,inline:m,isMenu:!0,"aria-haspopup":"listbox","aria-owns":r.menuId,onClick:r.props.onClick},_()(r.props,n.invalidLinkAppearanceProps)),!!j.length&&x&&i().createElement(Be,{"data-role":"count"},"(",j.length,")"))})),rt(Qe(r),"createChildren",(function(){var e,t=r.state,n=t.filterKeyword,a=t.textHasFocus,l=t.topValues,c=r.props,s=c.allowKeyMatching,p=c.allowNewValues,d=c.filter,f=c.multiple,v=c.selectAllAppearance,m=c.showSelectedValuesFirst,y=c.isLoadingOptions,g=c.onScrollBottom,x=r.getCurrentValues();r.availableOptionCount=0,r.firstSelectedOptionIndex=void 0,r.selectedOptionCount=0,r.activeValue=void 0,r.availableMatchOptions=[];var w,O=0,C=!1,S="immediately"===m?r.getTopValues():l,k=o.Children.toArray(r.props.children).reduce((function(t,n,a){if(!st(n))return t.push(n),t;n.props.value===r.state.filterKeyword&&(e=!0);var l=x&&x.indexOf(n.props.value)>=0,c=!!l&&!n.props.disabled&&!w,u=s&&!f&&!d&&!y&&!g,p=ut(n.props.value,n.props.label),h=-1;!u||n.props.disabled||n.props.hidden||(r.availableMatchOptions.push({label:n.props.label,value:n.props.value}),h=r.availableMatchOptions.length-1);var v=(0,o.cloneElement)(n,{key:n.key||a,onClick:r.handleMenuOptionClick,onKeyDown:u?function(e){return r.handleMenuOptionKeyDown(e,h)}:void 0,selected:l,multiple:f,role:"option",ref:function(e){return r.handleOptionMount(e,p,c)}});return c&&(w=!0),S&&S.indexOf(n.props.value)>=0?(0===O&&(t.splice(O,0,i().createElement(M.Divider,{key:"topDivider"})),C=!0),t.splice(O,0,v),O+=1):t.push(v),t}),[]);f&&b()(x,(function(t){if(!h()(k,(function(e){return st(e)&&e.props&&e.props.value===t}))){t===r.state.filterKeyword&&(e=!0);var n=S&&S.indexOf(t)>=0,o=S.length;0===O&&(k.splice(0,0,i().createElement(M.Divider,{key:"topDivider"})),O+=1,C=!0),k.splice(n?0:o+1,0,i().createElement(pe,{label:String(t),value:t,key:"missing-value-".concat(t),onClick:r.handleMenuOptionClick,multiple:f,selected:!0})),n&&(O+=1)}}));var E="controlled"===d,j=(0,$.stringToKeywords)(n);if(k=E?k:k.filter((function(e){return!st(e)||(0,$.testPhrase)(e.props.label,j)})).map((function(e){if(!st(e))return e;var t=j&&(0,$.keywordLocations)(e.props.label,j);return(0,o.cloneElement)(e,{matchRanges:t||void 0})})),p&&!e&&n){var _=C?O+1:O;k.splice(_,0,i().createElement(pe,{label:"".concat(n," (new value)"),value:n,key:"newValue",multiple:f,onClick:r.handleMenuOptionClick}))}var P,I,T="checkbox"===v&&f&&k.length>1?1:0,R=!0;return k=k.reduce((function(e,t){if(!st(t))return e.push(t),e;if(t.props&&t.props.hidden)return e;t.props.selected&&!t.props.disabled&&null==r.firstSelectedOptionIndex&&(r.firstSelectedOptionIndex=r.availableOptionCount);var n=T===r.state.activeIndex;if(T+=1,r.availableOptionCount+=1,r.selectedOptionCount+=t.props.selected?1:0,"newValue"===t.key||t.props.disabled||t.props.selected||(R=!1),!n||!a)return e.push(t),e;t.props.disabled||(r.activeValue=t.props.value);var i=(0,o.cloneElement)(t,{active:n,id:r.activeItemId,ref:r.handleActiveOptionMount});return e.push(i),e}),[]),r.optionSelection=(0===r.selectedOptionCount?"none":R&&"all")||"some","checkbox"===v&&f&&r.availableOptionCount>0&&(I="all"===r.optionSelection?""===n?(0,u._)("Clear all"):(0,u._)("Clear all matches"):""===n?(0,u._)("Select all"):(0,u._)("Select all matches"),0===r.state.activeIndex&&a&&(r.activeValue="selectAll"),k.unshift(i().createElement(Te,{key:"selectAllOption",selected:"all"===r.optionSelection||"none"!==r.optionSelection&&"some",selectAllLabel:I,totalCount:null===(P=r.getCurrentValues())||void 0===P?void 0:P.length,changedToggle:!!r.props.toggle,onClick:"all"===r.optionSelection?r.handleClearAll:r.handleSelectAll,id:0===r.state.activeIndex?r.activeItemId:void 0,active:0===r.state.activeIndex,ref:r.handleActiveOptionMount,tabIndex:-1}),i().createElement(M.Divider,{key:"selectAllDivider"}))),r.displayedValues=k.reduce((function(e,t){return st(t)&&e.push(t.props.value),e}),[]),k})),rt(Qe(r),"wrapLabel",(function(e){var t=e.prefixLabel,n=e.label,r=e.suffixLabel,o=n;return t&&(o=["".concat(t,": ")].concat(o)),r&&(o=d()(o).concat(" ".concat(r))),o})),rt(Qe(r),"handleDropdownMount",(function(e){r.dropdown=e})),r.state={activeIndex:0,filterKeyword:"",open:!1,textHasFocus:!1,topValues:[],values:e.defaultValues||[]},r.controlledExternally=s()(e,"values"),r.displayedValues=[],r.availableOptionCount=0,r.firstSelectedOptionIndex=void 0,r.selectedOptionCount=0,r.matchCharacter=null,r.matchTimeout=null,r.currentMatchOptions=[],r.availableMatchOptions=[],r.optionRefsByKey={},r.optionSelection="none",n.validateAppearance(e),r.menuId=(0,D.createDOMID)("menu"),r.activeItemId=(0,D.createDOMID)("active-item"),r}return Ye(n,null,[{key:"validateAppearance",value:function(e){}}]),Ye(n,[{key:"componentDidUpdate",value:function(e,t){n.validateAppearance(this.props),this.previousActiveIndex=t.activeIndex}},{key:"getCurrentValues",value:function(){var e=this.isControlled()?this.props.values:this.state.values;return this.props.multiple||null==e?e:e.slice(0,1)}},{key:"getTopValues",value:function(){var e;return this.props.multiple&&"never"!==this.props.showSelectedValuesFirst&&null!==(e=this.getCurrentValues())&&void 0!==e?e:[]}},{key:"isControlled",value:function(){return this.controlledExternally}},{key:"hasFilter",value:function(){return!!this.props.filter}},{key:"toggleValue",value:function(e,t){var n,r,o,i,a=null!==(n=this.getCurrentValues())&&void 0!==n?n:[],l=a.indexOf(t),c=this.props,s=c.name,u=c.multiple;i=u?l>=0?[].concat(Ke(a.slice(0,l)),Ke(a.slice(l+1))):a.concat([t]):[t];var p=!this.isControlled();p&&this.setState({values:i}),u?p&&this.setState({open:!0}):(this.handleRequestClose({reason:"contentClick"}),this.focus()),null===(r=(o=this.props).onChange)||void 0===r||r.call(o,e,{values:i,name:s,reason:"valueToggle"})}},{key:"focus",value:function(){var e;null===(e=this.dropdown)||void 0===e||e.focus()}},{key:"renderControls",value:function(e){var t=e.hasChildren,n=e.placement,r=this.state.filterKeyword,o=this.props,a=o.inputId,l=o.inputRef,c=o.multiple,s=o.selectAllAppearance,p=(0,u._)("Select all options".concat("all"===this.optionSelection?" disabled":"")),d=(0,u._)("Clear all options".concat("none"===this.optionSelection?" disabled":"")),f=i().createElement(He,{$placement:n,key:"selectAll"},i().createElement(Ve,{$disabled:"all"===this.optionSelection,"aria-label":p,onClick:this.handleSelectAll,"data-test":"select-all"},r?(0,u._)("Select all Matches"):(0,u._)("Select all")),i().createElement(Ve,{$disabled:"none"===this.optionSelection,"aria-label":d,onClick:this.handleClearAll,"data-test":"clear-all"},r?(0,u._)("Clear all Matches"):(0,u._)("Clear all")));return this.hasFilter()&&i().createElement("div",{key:"controls"},i().createElement(Ne,{key:"filter","data-test":"filter"},i().createElement(q(),{value:r,autoCapitalize:"off",autoComplete:"off",autoCorrect:"off",spellCheck:!1,onChange:this.handleTextChange,onKeyDown:this.handleTextKeyDown,onFocus:this.handleTextFocus,onBlur:this.handleTextBlur,placeholder:(0,u._)("filter"),role:"combobox","aria-expanded":"true","aria-label":(0,u._)("Filter"),"aria-activedescendant":this.activeItemId,inputRef:l,inputId:a,canClear:!0,startAdornment:i().createElement($e,null,i().createElement(te,null))})),c&&t&&"buttongroup"===s&&f)}},{key:"render",value:function(){var e,t=this,n=this.props,r=n.children,a=n.defaultPlacement,l=n.inputId,c=n.multiple,s=n.repositionMode,u=n.virtualization,p=this.hasFilter(),d=null!==(e=this.getCurrentValues())&&void 0!==e?e:[],f=o.Children.toArray(r),v=d.some((function(e){var t=h()(f,(function(t){return st(t)&&t.props.value===e}));return t&&!t.props.disabled})),b=this.createChildren(),m=this.createToggle();return i().createElement(L(),{closeReasons:ct,inputId:l,toggle:m,onRequestOpen:this.handleRequestOpen,onRequestClose:this.handleRequestClose,open:this.state.open,openWithArrowKeys:!0,repositionMode:s,defaultPlacement:p?a:void 0,canCoverAnchor:("undefined"!=typeof window?window:qe).innerHeight<500,ref:this.handleDropdownMount,retainFocus:!1,takeFocus:0===d.length||d.length>0&&!v||!!p},(function(e){var n=e.anchorWidth,r=e.maxHeight,o=e.placement,a=lt({anchorWidth:n,isMultiple:t.props.multiple,maxHeight:r,menuStyle:t.props.menuStyle}),l=d.length>0&&!v&&!t.hasFilter()?0:void 0,s=nt(nt({"aria-multiselectable":c||void 0,childrenStart:t.renderControls({placement:o,hasChildren:!!b.length}),controlledExternally:t.hasFilter(),placement:null!=o?o:void 0,onScrollBottom:t.props.onScrollBottom?t.handleScrollBottom:void 0,"data-test":"results-menu",isLoading:t.props.isLoadingOptions,id:t.menuId},_()(t.props,"noOptionsMessage","footerMessage","animateLoading","loadingMessage","onScroll")),{},{style:a,tabIndex:l});return u?i().createElement(H.VirtualizedResultsMenu,We({virtualization:u},s),b):i().createElement(F(),s,b)}))}}]),n}(o.Component);rt(pt,"propTypes",ot),rt(pt,"defaultProps",it),rt(pt,"Option",pe),rt(pt,"Divider",M.Divider),rt(pt,"Heading",M.Heading),rt(pt,"invalidLinkAppearanceProps",["append","error","prepend"]);const dt=pt;function ft(e){return ft="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},ft(e)}function ht(){return ht=Object.assign||function(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}(e,["defaultValue","onChange","value"]),o={onChange:function(e,n){var r=n.name,o=n.values;null==t||t(e,{name:r,value:o[0]})}};return s()(this.props,"value")?o.values=null!=n?[n]:[]:null!=this.state.defaultValues&&(o.defaultValues=this.state.defaultValues),i().createElement(dt,St({},r,o,{multiple:!1}))}}]),n}(o.Component);_t(Tt,"propTypes",Pt),_t(Tt,"defaultProps",It),_t(Tt,"Option",Ot),_t(Tt,"Heading",M.Heading),_t(Tt,"Divider",M.Divider);const Rt=Tt;e.exports=r})()},8798:(e,t,n)=>{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{default:()=>m});const o=n(6540);var i=t.n(o);const a=n(5556);var l=t.n(a);const c=n(2568);var s=t.n(c);const u=n(7596);var p=t.n(u);const d=n(8967);var f=s()(p()).withConfig({displayName:"StaticContentStyles__StyledBox",componentId:"sxqyrp-0"})(["",";position:relative;margin:0;font-weight:",";word-wrap:break-word;min-height:",";padding:",";[data-inline] + &[data-inline]{margin-left:",";}"],d.mixins.reset("flex"),d.variables.fontWeightSemiBold,d.variables.inputHeight,(0,d.pick)({enterprise:{comfortable:"6px 7px",compact:"4px 5px"},prisma:{comfortable:"10px 0",compact:"6px 0"}}),(0,d.pick)({enterprise:d.variables.spacingQuarter,prisma:d.variables.spacingLarge}));function h(){return h=Object.assign||function(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}(e,["children","inline","size"]);return i().createElement(f,h({"data-test":"static-content","data-size":a,inline:r},l),t)}b.propTypes=v;const m=b;e.exports=r})()},3997:(e,t,n)=>{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{default:()=>K});const o=n(6540);var i=t.n(o);const a=n(5556);var l=t.n(a);const c=n(4995);var s=t.n(c);const u=n(4345);var p=t.n(u);const d=n(7478),f=n(8291);var h=t.n(f);const v=n(8967);function b(){return"enterprise"===(0,v.useSplunkTheme)().family?i().createElement(h(),{inline:!1,size:"12px",screenReaderText:null,hideDefaultTooltip:!0,style:{marginTop:"1px"}}):i().createElement("svg",{width:"12",height:"12",viewBox:"-1 -2 11 10",style:{display:"block"},xmlns:"http://www.w3.org/2000/svg"},i().createElement("path",{d:"M8.70711 0.292893C9.09763 0.683417 9.09763 1.31658 8.70711 1.70711L4.32132 6.0929C3.73559 6.67862 2.78596 6.67869 2.20015 6.09305L0.292997 4.18646C-0.0975845 3.79599 -0.0976776 3.16282 0.292789 2.77224C0.683256 2.38166 1.31642 2.38157 1.707 2.77203L3.26061 4.32518L7.29289 0.292893C7.68342 -0.0976311 8.31658 -0.0976311 8.70711 0.292893Z",fill:"currentColor"}))}const m=n(2568);var y=t.n(m);const g=n(7596);var x=t.n(g);const w=n(9137);var O=t.n(w),C="18px",S="20px",k=y()(x()).withConfig({displayName:"SwitchStyles__StyledBox",componentId:"sc-844ieu-0"})(["display:inline;position:relative;color:",";flex-shrink:0;padding:",";[data-inline] + &{margin-left:",";}"],(0,v.pickVariant)("$switchState",{error:{enterprise:v.variables.errorColor,prisma:v.variables.accentColorNegative},disabled:{enterprise:v.variables.textDisabledColor,prisma:v.variables.contentColorDisabled}}),(0,v.pick)({enterprise:(0,m.css)(["calc(("," - ",") / 2) 0"],v.variables.inputHeight,C),prisma:{compact:"6px 0",comfortable:"10px 0"}}),(0,v.pick)({enterprise:v.variables.spacingHalf,prisma:v.variables.spacingSmall})),E=y()(O()).withConfig({displayName:"SwitchStyles__StyledCheckboxClickable",componentId:"sc-844ieu-1"})([""," position:relative;width:",";height:",";line-height:",";padding:2px;border-radius:2px;cursor:pointer;flex:0 0 auto;border:",";color:",";"," &:focus{box-shadow:",";}"," "," &[disabled]{cursor:not-allowed;border-color:",";","}"],v.mixins.reset("inline"),C,C,C,(0,v.pick)({enterprise:(0,v.pick)({light:(0,m.css)(["1px solid ",""],v.variables.gray45),dark:(0,m.css)(["1px solid ",""],v.variables.gray80)}),prisma:(0,m.css)(["2px solid ",""],v.variables.contentColorMuted)}),(0,v.pick)({enterprise:(0,v.pick)({light:v.variables.gray45,dark:v.variables.gray80}),prisma:v.variables.white}),(0,v.pick)({prisma:(0,m.css)(["top:1px;padding:1px;border-radius:3px;"," ",""],(function(e){return e.$interactive&&(0,m.css)(["&:not([disabled]):not(:focus):hover{box-shadow:0 0 0 2px ",",0 0 0 5px ",";}"],v.variables.backgroundColorPage,v.variables.interactiveColorOverlayHover)}),(function(e){return!e.$selected&&(0,m.css)(["&:not([disabled]):not(:focus):hover{border-color:",";}"],v.variables.contentColorDefault)}))}),v.variables.focusShadow,(function(e){return e.$selected&&(0,m.css)(["&:not([disabled]){border-color:",";background-color:",";}"],(0,v.pick)({enterprise:{light:v.variables.gray45,dark:v.variables.gray80},prisma:v.variables.interactiveColorPrimary}),(0,v.pick)({enterprise:"#none",prisma:(0,m.css)(["",";"],v.variables.interactiveColorPrimary)}))}),(function(e){return e.$error&&(0,v.pick)({enterprise:(0,v.pick)({light:(0,m.css)(["&:not([disabled]){border-color:",";color:",";","}"],v.variables.errorColorL30,v.variables.errorColor,(function(e){return e.$selected&&(0,m.css)(["border-color:",";"],v.variables.errorColor)})),dark:(0,m.css)(["border-color:",";}"],v.variables.errorColor)}),prisma:(0,m.css)(["&:not([disabled]){border-color:",";","}"],v.variables.accentColorNegative,(function(e){return e.$selected&&(0,m.css)(["background-color:",";"],v.variables.accentColorNegative)}))})}),(0,v.pick)({enterprise:{light:v.variables.borderColor,dark:v.variables.gray45},prisma:v.variables.contentColorDisabled}),(function(e){return e.$selected&&(0,v.pick)({prisma:(0,m.css)(["border-color:transparent;background-color:",";"],v.variables.interactiveColorBackgroundDisabled)})})),j=E.withComponent("span"),_=y().div.withConfig({displayName:"SwitchStyles__StyledSome",componentId:"sc-844ieu-2"})(["display:block;margin:",";height:",";width:",";background:currentColor;border-radius:1px;"],(0,v.pick)({enterprise:"2px",prisma:"5px 2px"}),(0,v.pick)({enterprise:(0,m.css)(["calc("," - 10px);"],C),prisma:"2px"}),(0,v.pick)({enterprise:(0,m.css)(["calc("," - 10px);"],C),prisma:"8px"})),P=y().div.withConfig({displayName:"SwitchStyles__StyledIndicator",componentId:"sc-844ieu-3"})(["background-color:",";border-color:",";box-sizing:border-box;border-radius:50%;border-width:1px;position:absolute;left:-1px;top:-1px;",";"," "," ",""],(0,v.pick)({enterprise:{light:v.variables.gray98,dark:v.variables.gray80},prisma:v.variables.white}),(0,v.pick)({enterprise:{light:v.variables.gray60,dark:v.variables.borderColor},prisma:v.variables.transparent}),(function(e){var t=e.$delay;return t&&(0,m.css)(["transition:left ",";"],t)}),(0,v.pick)({enterprise:(0,m.css)(["width:",";height:",";border-style:solid;"],C,C),prisma:(0,m.css)(["height:16px;width:16px;margin:2px;border-style:none;box-shadow:",";"],v.variables.embossShadow)}),(function(e){return e.$disabled&&(0,m.css)(["border-color:",";border-style:solid;background-color:",";"],(0,v.pick)({enterprise:{light:v.mixins.colorWithAlpha(v.variables.borderLightColor,.8),dark:v.variables.gray22},prisma:v.variables.transparent}),(0,v.pick)({enterprise:{dark:v.variables.gray45},prisma:v.mixins.colorWithAlpha(v.variables.white,.3)}))}),(function(e){return e.$selected&&(0,m.css)(["left:",";"],(0,v.pick)({enterprise:(0,m.css)(["calc(100% - "," + 1px)"],C),prisma:(0,m.css)(["calc(100% - "," + 1px)"],S)}))})),I=y().div.withConfig({displayName:"SwitchStyles__StyledToggleOutline",componentId:"sc-844ieu-4"})(["position:absolute;border:1px solid transparent;",";border-radius:",";top:-1px;right:-1px;bottom:-1px;left:-1px;z-index:1;"," ",""],(function(e){var t=e.$delay;return t&&(0,m.css)(["transition:border-color ",";"],t)}),(0,v.pick)({enterprise:(0,m.css)(["calc("," * 0.5)"],C),prisma:"15px"}),(0,v.pick)({prisma:(0,m.css)(["margin:-6px;"])}),(function(e){return e.$error&&(0,m.css)(["border-color:",";"],(0,v.pick)({enterprise:v.variables.errorColor,prisma:v.variables.transparent}))})),T=y()(O()).withConfig({displayName:"SwitchStyles__StyledToggleClickable",componentId:"sc-844ieu-5"})(["position:relative;"," border-radius:",";transition:background-color ",";flex:0 0 auto;border:1px solid ",";"," &:not([disabled]){&:focus{outline:0;box-shadow:",";","}&:hover ","{background-color:",";}&:hover ","{background-color:",";}};&[disabled]{border:1px solid ",";background-color:",";"," ","}",";",""],(0,v.pick)({enterprise:(0,v.pick)({light:(0,m.css)(["width:calc("," * 2);background-color:",";height:",";"],C,v.variables.gray98,C),dark:(0,m.css)(["width:calc("," * 2);background-color:",";height:",";"],C,v.variables.gray45,C)}),prisma:(0,m.css)(["width:32px;background-color:",";height:",";top:1px;"],v.variables.contentColorMuted,S)}),C,(function(e){return e.$delay}),(0,v.pick)({enterprise:{light:v.variables.gray60,dark:v.variables.borderColor},prisma:v.variables.transparent}),(0,v.pick)({enterprise:(0,m.css)(["box-shadow:inset 0 2px 0 rgba(0,0,0,0.1);"])}),(0,v.pick)({enterprise:(0,m.css)(["",",inset 0 2px 0 rgba(0,0,0,0.1);"],v.variables.focusShadow),prisma:v.variables.focusShadow}),(0,v.pick)({enterprise:(0,m.css)(["> ","{border-color:",";}"],I,v.mixins.colorWithAlpha(v.variables.focusColor,.8))}),P,(0,v.pick)({enterprise:(0,v.pick)({light:v.variables.gray96,dark:"#b1bcc7"}),prisma:v.variables.white}),I,(0,v.pick)({prisma:v.variables.interactiveColorOverlayHover}),(0,v.pick)({enterprise:{light:v.variables.borderLightColor,dark:v.variables.borderColor},prisma:v.variables.transparent}),(0,v.pick)({enterprise:{light:v.variables.gray96,dark:v.variables.gray30},prisma:v.variables.interactiveColorBackgroundDisabled}),(0,v.pick)({enterprise:(0,m.css)(["box-shadow:inset 0 2px 0 rgba(0,0,0,0.06);"])}),(function(e){return e.$selected&&(0,m.css)(["border-color:transparent;background-color:",";"],(0,v.pick)({enterprise:(0,v.pick)({light:v.variables.accentColorL40,dark:v.variables.accentColorD20}),prisma:v.mixins.colorWithAlpha(v.variables.interactiveColorPrimary,.7)}))}),(function(e){return e.$selected&&(0,m.css)(["border-color:",";background-color:",";",""],(0,v.pick)({enterprise:v.variables.accentColorL10,prisma:v.variables.transparent}),(0,v.pick)({enterprise:v.variables.accentColorL10,prisma:v.variables.interactiveColorPrimary}),(0,v.pick)({prisma:(0,m.css)(["box-shadow:",";"],v.variables.embossShadow)}))}),(function(e){return e.$error&&(0,m.css)(["border-color:",";",";"],(0,v.pick)({enterprise:v.variables.errorColor,prisma:v.variables.transparent}),(0,v.pick)({prisma:(0,m.css)(["background-color:",";"],v.variables.accentColorNegative)}))})),R=T.withComponent("span"),D=y().label.withConfig({displayName:"SwitchStyles__StyledLabel",componentId:"sc-844ieu-6"})([""," flex:1 1 auto;padding-left:",";color:inherit;",";"],v.mixins.reset("inline-block"),(0,v.pick)({enterprise:(0,m.css)(["",";"],v.variables.spacingQuarter),prisma:"8px"}),(function(e){return!e.$disabled&&(0,m.css)(["cursor:pointer;"])}));function M(e){return M="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},M(e)}function A(){return A=Object.assign||function(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}(t,["appearance","children","disabled","error","id","inline","interactive","labelledBy","onClick","required","selected","selectedLabel","someSelectedLabel","unselectedLabel","value"]),w=d,O=l;r&&(w=this.labelId,O=l||this.clickableId);var C={true:v,false:y,some:m},S={disabled:o,$interactive:u,$error:a,$selected:"some"===h||h,"aria-labelledby":u?w:void 0,"aria-checked":u?"some"===h?"mixed":h:void 0,"aria-invalid":!!a||void 0,"aria-required":f,id:O,ref:function(t){e.toggle=t},onClick:o||!u?void 0:this.handleContainerClick,"data-test":"button","data-selected":h},E=z[n],j=q[n],T=function(e){return function(){var t=i().createElement(i().Fragment,null,i().createElement(P,{$delay:e,$disabled:o,$error:!o&&a,$selected:h}),i().createElement(I,{$delay:e,$error:!o&&a}));return u?i().createElement(E,A({role:"switch"},S,{$delay:e}),t):i().createElement(j,A({},S,{$delay:e}),t)}},R=(o?"disabled":a&&"error")||null,M=!!v||!!m||!!y;return i().createElement(k,A({flex:!0,inline:c,"data-test":"switch","data-test-selected":h,"data-test-value":g,"data-test-error":!!a||void 0,"data-error":!!a||void 0,"data-disabled":!!o||void 0,$switchState:R},x),"toggle"===n&&i().createElement(s(),{on:T("200ms"),off:T()}),"toggle"!==n&&function(){var e=i().createElement(i().Fragment,null,!0===h&&"checkbox"===n&&i().createElement(b,null),"some"===h&&"checkbox"===n&&i().createElement(_,null));return u?i().createElement(E,A({"data-clickable":!0,role:n},S),e):i().createElement(j,S,e)}(),u&&M&&i().createElement(p(),null,C["".concat(h)]),r&&i().createElement(D,{$disabled:o,"data-test":"label",id:w,htmlFor:O,"data-disabled":o||null},r))}}]),n}(o.Component);H(W,"propTypes",F),H(W,"defaultProps",{appearance:"checkbox",disabled:!1,error:!1,inline:!1,interactive:!0,selected:!1});const K=W;e.exports=r})()},5889:(e,t,n)=>{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{Tab:()=>$,default:()=>q});const o=n(6540);var i=t.n(o);const a=n(5556);var l=t.n(a);const c=n(4214),s=n(2568);var u=t.n(s);const p=n(8967);var d=u().div.withConfig({displayName:"TabBarStyles__Styled",componentId:"sc-1t85fen-0"})([""," position:relative;&::before{content:'';display:block;position:absolute;left:0;top:0;right:0;bottom:0;border:0 solid ",";}",";"],p.mixins.reset("flex"),(0,p.pick)({enterprise:p.variables.borderLightColor,prisma:p.variables.neutral200}),(0,p.pickVariant)("$layout",{horizontal:{prisma:(0,p.pickVariant)("$withUnderline",{true:(0,s.css)(["&::before{border-bottom-width:1px;}"])}),enterprise:(0,s.css)(["&::before{border-bottom-width:1px;}"])},vertical:(0,s.css)(["display:inline-block;&::before{border-right-width:1px;}"])}));const f=n(9728);var h=t.n(f);const v=n(4345);var b=t.n(v);const m=n(7478),y=n(9137);var g=t.n(y),x=u()(g()).withConfig({displayName:"TabStyles__StyledClickable",componentId:"sc-1ry8mzj-0"})(["flex:0 1 auto;display:block;position:relative;line-height:",";text-align:center;white-space:nowrap;color:",";&::after{display:block;content:attr(data-title);font-weight:",";height:0;color:transparent;overflow:hidden;visibility:hidden;}",";&[aria-selected='true']{cursor:default;","}&[aria-selected='false']{box-shadow:none;font-weight:",";&:hover:not([disabled]){","}}&:focus{box-shadow:",";","}"],(0,p.pick)({enterprise:"24px",prisma:"20px"}),p.variables.contentColorDefault,p.variables.fontWeightBold,(0,p.pickVariant)("$layout",{horizontal:(0,s.css)(["padding:",";margin-bottom:1px;"],(0,p.pick)({enterprise:"3px 20px",prisma:{comfortable:"0 20px",compact:"0 16px"}})),vertical:{enterprise:(0,s.css)(["width:100%;text-align:left;right:1px;padding:10px 20px;",""],(function(e){return e.$icon&&(0,s.css)(["text-align:center;"])})),prisma:(0,s.css)(["width:100%;right:1px;padding:",";"],(0,p.pick)({comfortable:"0 20px",compact:"0 16px"}))}}),(0,p.pick)({enterprise:(0,s.css)(["font-weight:",";"],p.variables.fontWeightBold),prisma:(0,s.css)(["color:",";font-weight:",";"],p.variables.contentColorActive,p.variables.fontWeightBold)}),(0,p.pick)({enterprise:"normal",prisma:p.variables.fontWeightSemiBold}),(0,p.pick)({prisma:(0,s.css)(["color:",";"],p.variables.contentColorActive)}),p.variables.focusShadowInset,(0,p.pick)({prisma:(0,s.css)(["color:",";"],p.variables.contentColorActive)})),w=u().div.withConfig({displayName:"TabStyles__StyledUnderline",componentId:"sc-1ry8mzj-1"})(["position:absolute;"," ",";[aria-selected='true'] > &&{background-color:",";",";}",":hover:not([disabled]) > &&{",";}"],(0,p.pick)({enterprise:(0,s.css)(["background:",";"],p.variables.borderLightColor)}),(0,p.pickVariant)("$layout",{horizontal:(0,s.css)(["height:0;box-sizing:border-box;width:",";"," transition:height 0.2s;"],(0,p.pick)({enterprise:(0,s.css)(["calc(100% - 20px * 2)"]),prisma:{comfortable:(0,s.css)(["calc(100% - 20px * 2)"]),compact:(0,s.css)(["calc(100% - 16px * 2)"])}}),(0,p.pick)({enterprise:(0,s.css)(["bottom:-1px;"])})),vertical:{enterprise:(0,s.css)(["width:0;height:calc(100% - 10px * 2);top:10px;right:-1px;transition:width 0.2s;"]),prisma:(0,s.css)(["width:1px;height:calc(100% - 10px * 2);top:10px;right:-1px;transition:width 0.2s;box-sizing:border-box;"])}}),(0,p.pick)({enterprise:p.variables.accentColor,prisma:p.variables.contentColorActive}),(0,p.pickVariant)("$layout",{horizontal:{enterprise:(0,s.css)(["height:3px;"]),prisma:(0,p.pickVariant)("$withUnderline",{true:(0,s.css)(["height:1px;"])})},vertical:{enterprise:(0,s.css)(["width:3px;"]),prisma:(0,s.css)(["width:1px;"])}}),x,(0,p.pickVariant)("$layout",{horizontal:{enterprise:(0,s.css)(["height:3px;"])},vertical:{enterprise:(0,s.css)(["width:3px;"])}})),O=u().span.withConfig({displayName:"TabStyles__StyledIcon",componentId:"sc-1ry8mzj-2"})(["",";"],(0,p.pickVariant)("$iconSize",{inline:(0,s.css)([""," text-align:left;padding-right:",";> svg{transform:translateY(-1px);}"],(0,p.pick)({prisma:(0,s.css)(["display:inline-block;width:16px;height:16px;"])}),(0,p.pick)({enterprise:"0.4em",prisma:"8px"})),small:(0,s.css)(["font-size:24px;height:24px;text-align:center;display:block;padding:4px 0;"]),large:(0,s.css)(["font-size:48px;height:48px;text-align:center;display:block;padding:8px 0 0;"])})),C=u().div.withConfig({displayName:"TabStyles__StyledLabel",componentId:"sc-1ry8mzj-3"})(["overflow:hidden;text-overflow:ellipsis;min-width:10px;margin:",";"],(0,p.pick)({enterprise:"0",prisma:{comfortable:"16px 0",compact:"10px 0"}})),S=u().span.withConfig({displayName:"TabStyles__StyledCount",componentId:"sc-1ry8mzj-4"})(["display:inline-block;border-radius:18px;color:",";font-size:",";line-height:10px;padding:",";margin-inline-start:",";"," &[disabled]{background:",";color:",";}"],p.variables.contentColorDefault,(0,p.pick)({enterprise:"inherit",prisma:"10px"}),(0,p.pick)({enterprise:"0.4em 0.3em",prisma:"0.4em 0.6em"}),(0,p.pick)({enterprise:"0",prisma:"0.3em"}),(0,p.pick)({enterprise:(0,s.css)(["&::before{content:'(';}&::after{content:')';}"]),prisma:(0,s.css)(["background:",";"],p.variables.neutral100)}),p.variables.interactiveColorBackgroundDisabled,p.variables.contentColorDisabled),k=u().div.withConfig({displayName:"TabStyles__StyledTooltipContent",componentId:"sc-1ry8mzj-5"})(["padding:8px;font-size:",";"],p.variables.fontSizeSmall),E=(0,o.createContext)({});E.displayName="TabBar";const j=E;function _(e){return _="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},_(e)}function P(){return P=Object.assign||function(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}(t,["active","ariaControls","count","disabled","icon","label","tabId","maxCount","splunkTheme","to","tooltip"]),m=this.state,y=m.anchor,g=m.open,E=this.context,j=E.appearance,_=E.disabled,I=E.iconSize,T=E.layout,R=E.width,D=v.style,M=_||a||!1,A=I||"inline",L=T||"horizontal",N=R?{width:R}:D,$=p.isEnterprise,B=c?c.toString():"",V=0===o||o?"".concat(null==o?void 0:o.toString()):"";if($){var H=V?"(".concat(V,")  "):"";e="".concat(B," ").concat(H)}else e="".concat(B,"    ").concat(V);return i().createElement(x,P({"aria-controls":r,"aria-selected":n,"aria-labelledby":this.ariaId,"data-test":"tab","data-test-tab-id":s,"data-test-popover-id":f?this.popoverId:void 0,$layout:L,$icon:!(!l||"inline"===A)||void 0,disabled:M,elementRef:this.handleMount,style:N},v,{onClick:this.handleClick,onFocus:this.handleFocus,onMouseEnter:this.handleTooltipOpen,onBlur:this.handleTooltipClose,onMouseLeave:this.handleTooltipClose,role:"tab",tabIndex:n?void 0:-1,"data-title":e,to:d}),i().createElement(C,{"data-test":"label",$withUnderline:"navigation"===j},l&&i().createElement(O,{$iconSize:A},l),c,(0===o||o)&&i().createElement(i().Fragment,null,i().createElement(b(),null," "),i().createElement(S,{"data-test":"count",disabled:M},u?function(e,t){return e>t?"".concat(t,"+"):e}(o,u):o))),i().createElement(w,{$layout:L,$withUnderline:"navigation"===j}),!a&&f&&i().createElement(h(),{role:"tooltip",anchor:y,animationConfig:{tension:400},appearance:"inverted",closeReasons:["offScreen","escapeKey"],defaultPlacement:"vertical"===L?"right":"above",id:this.popoverId,open:!!y&&g,align:"center"},i().createElement(k,null,f)),f&&i().createElement(b(),{"aria-hidden":"true",id:this.ariaId},f))}}]),n}(o.Component);M(L,"propTypes",A),M(L,"defaultProps",{active:!1}),M(L,"contextType",j);var N=(0,p.withSplunkTheme)(L);N.propTypes=L.propTypes;const $=N;function B(e,t,n){for(var r=0;r0;r-=1){var o,i=(r+n)%e.length;if(!0!==(null===(o=e[i].current)||void 0===o?void 0:o.props.disabled))return e[i]}return e[t]}function H(){return H=Object.assign||function(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}(e,["activeTabId","autoActivate","appearance","children","disabled","elementRef","iconSize","layout","onChange","tabWidth"]),x=(0,o.useRef)(0),w=[],O=(0,o.useMemo)((function(){return"vertical"===b?"down":"right"}),[b]),C=(0,o.useMemo)((function(){return"vertical"===b?"up":"left"}),[b]),S=0,k=o.Children.toArray(l).filter(o.isValidElement).map((function(e){if("string"==typeof e.type||e.type.name!==$.name)return e;var n=i().createRef();w.push(n);var r={active:t===e.props.tabId,tabKey:S,ref:n};return S+=1,(0,o.cloneElement)(e,r)})),E=y&&y>50?y:null;return i().createElement(d,H({"data-tab-layout":b,"data-test-active-tab-id":t,"data-test":"tab-bar",role:"tablist",ref:p,$layout:b,$withUnderline:"navigation"===a,onKeyDown:function(e){var t,n,r=(0,c.keycode)(e.nativeEvent);r===O?t=B(w,x.current,x.current+1):r===C?t=V(w,x.current,x.current-1):"home"===r?t=B(w,x.current,0):"end"===r&&(t=V(w,x.current,w.length-1)),null!=t&&(null===(n=t.current)||void 0===n||n.focus(),e.preventDefault())}},g),i().createElement(j.Provider,{value:{appearance:a,disabled:u,iconSize:h,layout:b,onClick:function(e,t){null==m||m(e,{selectedTabId:t.tabId})},onFocus:function(e,t){var r=t.tabKey;null!=r&&(x.current=r),n&&(null==m||m(e,{selectedTabId:t.tabId}))},width:E}},k))}z.propTypes=F,z.Tab=$;const q=z;e.exports=r})()},2529:(e,t,n)=>{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{Body:()=>Y,Caption:()=>ae,Cell:()=>me,Head:()=>Hn,HeadCell:()=>kt,HeadDropdownCell:()=>lr,Row:()=>jn,default:()=>Mr});const o=n(6540);var i=t.n(o);const a=n(5556);var l=t.n(a);const c=n(7527);var s=t.n(c);const u=n(7521);var p=t.n(u);const d=n(3704);var f=t.n(d);const h=n(8897);var v=t.n(h);n(5468);const b=n(6620);var m=t.n(b);const y=n(1285);var g=t.n(y);const x=n(5532);var w=t.n(x);const O=n(8973);var C=t.n(O);const S=n(4214),k=n(5474),E=n(2980);var j=t.n(E);const _=n(8988);var P=t.n(_);const I=n(3769);var T=t.n(I);const R=n(2568);var D=t.n(R);const M=n(8967);var A=D().tbody.withConfig({displayName:"BodyStyles__Styled",componentId:"sc-1k5p6pq-0"})([""," z-index:0;"],M.mixins.reset("table-row-group"));function L(e,t){e&&("function"==typeof e?e(t):e.current=t)}var N={body:{appendChild:function(){return[]}},addEventListener:function(){},removeEventListener:function(){},activeElement:{blur:function(){},nodeName:""},querySelector:function(){return null},querySelectorAll:function(){return[]},getElementById:function(){return null},createEvent:function(){return{initEvent:function(){}}},createElement:function(){return{children:[],childNodes:[],style:{},setAttribute:function(){},getElementsByTagName:function(){return[]}}},createElementNS:function(){return{}},importNode:function(){return null},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""}};function $(){return"undefined"!=typeof document?document:N}var B={document:N,navigator:{userAgent:""},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""},history:{replaceState:function(){},pushState:function(){},go:function(){},back:function(){}},CustomEvent:function(){return this},addEventListener:function(){},removeEventListener:function(){},getComputedStyle:function(){return{getPropertyValue:function(){return""}}},Image:function(){},Date:function(){},screen:{},setTimeout:function(){},clearTimeout:function(){},matchMedia:function(){return{}},requestAnimationFrame:function(e){return"undefined"==typeof setTimeout?(e(),null):setTimeout(e,0)},cancelAnimationFrame:function(e){"undefined"!=typeof setTimeout&&clearTimeout(e)}};function V(){return"undefined"!=typeof window?window:B}function H(e){return H="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},H(e)}function F(){return F=Object.assign||function(e){for(var t=1;tt.top&&nt?r+1:r}},{key:"updateDragPositionImpl",value:function(e){this.setState({dragPosition:e})}},{key:"updateScrollPosition",value:function(e){var t,n,r=this.rect;(null===(t=this.el)||void 0===t||null===(n=t.parentElement)||void 0===n?void 0:n.parentElement)&&r&&void 0!==this.rowHeight&&e=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}(n,["actions","children","movableColumns","onRequestMoveRow","rowExpansion","primaryColumnIndex","stripeRows"]),f=[],h=this.calculateGuideIndex(),v=null===(e=this.state.dragDataId)||void 0===e?void 0:e.toString(),b=o.Children.toArray(a).filter(o.isValidElement);return b.forEach((function(e,n){var i="none";if(h===b.length&&n+1===b.length?i="after":h===n&&(i="before"),e){var a=e.key,d=p?n%2?"even":"odd":"none",m="controlled"===s?e.props.expanded:P()(t.state.expanded,a);f.push((0,o.cloneElement)(e,{index:n,showRowGuideline:i,stripe:d,actions:r,expanded:m,expandable:"none"!==s,draggable:!!c,movableColumns:l,primaryColumnIndex:u,onExpansion:function(n){t.handleRowExpansion(n,a,e.props.onExpansion)},onRequestMoveRow:c?t.onRequestMoveRow:void 0,onDragStart:c?t.handleDragStart:void 0,key:e.key||e.props.dataId||n,dataId:e.key||e.props.dataId||n,activeElementId:v})),m&&e.props.expansionRow&&o.Children.forEach(e.props.expansionRow,(function(e,t){return f.push((0,o.cloneElement)(e,{key:"".concat(a,"-expansion-").concat(t),stripe:d,movableColumns:l,onRequestMoveRow:c,"data-expansion-row":"true"}))}))}})),0===f.length?null:i().createElement(A,F({"data-test":"body"},d,{ref:this.handleMount}),f)}}]),n}(o.Component);U(Z,"splunkUiType","Table.Body"),U(Z,"propTypes",G),U(Z,"defaultProps",{actions:!1,rowExpansion:"none",stripeRows:!1});const Y=Z;var X=D().div.withConfig({displayName:"TableStyles__Styled",componentId:"sc-1cmfss7-0"})(["",";max-width:100%;position:relative;z-index:1;@media print{max-height:none !important;}"],M.mixins.reset("block")),Q=D().div.withConfig({displayName:"TableStyles__StyledTableContainer",componentId:"sc-1cmfss7-1"})(["overflow:auto;&::before{content:'';width:100%;height:0;top:0;position:absolute;}"]),J=D().table.withConfig({displayName:"TableStyles__StyledTable",componentId:"sc-1cmfss7-2"})(["",";position:relative;border-collapse:collapse;border-spacing:0;min-width:100%;z-index:0;&[data-fixed-column='true']{table-layout:fixed;min-width:0;width:0;}"," @media print{width:100%;max-width:100%;table-layout:auto;}"],M.mixins.reset("table"),(function(e){return e.$resizableFillLayout&&(0,R.css)(["width:100%;min-width:100%;table-layout:fixed;"])})),ee=D().div.withConfig({displayName:"TableStyles__StyledDockedScrollbar",componentId:"sc-1cmfss7-3"})(["position:fixed;bottom:0;overflow:auto;z-index:calc("," + 1);"],M.variables.zindexFixedNavbar),te=D().div.withConfig({displayName:"TableStyles__StyledDockedScrollbarContent",componentId:"sc-1cmfss7-4"})(["height:1px;"]),ne=D().caption.withConfig({displayName:"TableStyles__StyledTableCaption",componentId:"sc-1cmfss7-5"})(["padding:",";font-size:",";caption-side:",";"],(0,M.pick)({enterprise:"".concat(M.variables.spacingQuarter," 0"),prisma:"5px 0"}),M.variables.fontSizeLarge,(function(e){return e.side}));function re(){return re=Object.assign||function(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}(e,["children","side"]);return i().createElement(ne,re({"data-test":"caption",side:r},o),t)}ie.propTypes=oe,ie.splunkUiType="Table.Caption";const ae=ie;var le=D().td.withConfig({displayName:"CellStyles__Styled",componentId:"sc-1955xk2-0"})([""," padding:",";border-left:0 solid transparent;border-right:0 solid transparent;word-wrap:break-word;line-height:",";vertical-align:top;"," "," "," "," "," "," [data-expansion-row='true'] > &:first-child{padding-top:8px;}[data-expansion-row='true'] > &:last-child{padding-bottom:14px;}[data-has-movable-columns='true'] > &:not([data-movable-column='false']){","}"],M.mixins.reset("table-cell"),(0,M.pick)({enterprise:"6px 12px",prisma:{comfortable:"14px 8px",compact:"6px 8px"}}),M.variables.lineHeight,(0,M.pickVariant)("$align",{center:(0,R.css)(["text-align:center;"]),left:(0,R.css)(["text-align:left;"]),right:(0,R.css)(["text-align:right;"])}),(0,M.pickVariant)("$variant",{expand:{enterprise:(0,R.css)(["padding:6px 0 0 0;"]),prisma:{comfortable:(0,R.css)(["padding:12px 0 0 0;"]),compact:(0,R.css)(["padding:4px 0 0 0;"])}},actions:{prisma:{comfortable:(0,R.css)(["padding:4px 8px;"]),compact:(0,R.css)(["padding:0 8px 0 0;"])}},toggle:{prisma:{comfortable:(0,R.css)(["padding:10px 0 0 0;"]),compact:(0,R.css)(["padding:6px 0 0 0;"])}}}),(0,M.pickVariant)("$appearance",{rowLink:{enterprise:(0,R.css)(["color:",";*:hover > &&{cursor:pointer;}"],M.variables.linkColor),prisma:(0,R.css)(["color:",";*:hover > &&{cursor:pointer;}"],M.variables.contentColorDefault)},link:{enterprise:(0,R.css)(["color:",";&:hover{cursor:pointer;color:{dark:variables.accentColorL20,light:variables.linkColor,};box-shadow:",";}&:focus{color:{dark:variables.accentColorL20,light:variables.focusColor,};box-shadow:",";}"],M.variables.linkColor,M.variables.focusShadowInset,M.variables.focusShadowInset)}}),(function(e){return e.$clickable&&(0,R.css)(["cursor:pointer;&:hover{background-color:",";color:",";}&:focus{box-shadow:",";color:",";}&:active{background:",";}"],(0,M.pick)({enterprise:{light:M.variables.accentColorL50,dark:M.variables.accentColorD50},prisma:M.variables.interactiveColorOverlayHover}),(0,M.pick)({prisma:M.variables.contentColorDefault}),M.variables.focusShadowInset,(0,M.pick)({prisma:M.variables.contentColorDefault}),(0,M.pick)({prisma:M.variables.interactiveColorOverlayActive}))}),(function(e){return e.$expanded&&(0,R.css)(["background-color:",";"],(0,M.pick)({prisma:M.variables.interactiveColorOverlaySelected}))}),(function(e){return e.$disabled&&(0,R.css)(["color:",";"],(0,M.pick)({prisma:M.variables.contentColorDisabled}))}),(0,M.pick)({enterprise:(0,R.css)(["padding-left:29px;&:first-child{padding-left:28px;}"])}));function ce(e){return ce="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},ce(e)}function se(){return se=Object.assign||function(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}(e,["align","appearance","children","disabled","elementRef","onClick","onKeyDown","variant"]),s=void 0!==a,u=s?"link":"data";return i().createElement(le,se({"data-test":"cell",$align:t,$appearance:n||u,$clickable:!!s||void 0,$disabled:!!o,$variant:l,onClick:this.handleClick,onKeyDown:this.handleKeyDown,ref:this.handleMount,tabIndex:s?0:void 0},c),r)}}]),n}(o.Component);he(be,"splunkUiType","Table.Cell"),he(be,"propTypes",ve),he(be,"defaultProps",{align:"left"});const me=be,ye=n(9453);var ge=t.n(ye);const xe=n(9608);var we=t.n(xe);const Oe=n(1233);var Ce=t.n(Oe);const Se=n(118);var ke=t.n(Se);const Ee=n(6199);var je=t.n(Ee);const _e=n(4411);var Pe=t.n(_e);const Ie=n(149);var Te=t.n(Ie);const Re=n(3397);var De=t.n(Re);const Me=n(5208);var Ae=t.n(Me);const Le=n(259),Ne=n(4345);var $e=t.n(Ne),Be=D().div.withConfig({displayName:"HeadInnerStyles__StyledDragContainer",componentId:"sc-1sa0wng-0"})(["position:absolute;cursor:move;top:0;"," padding:",";"],(0,M.pick)({enterprise:(0,R.css)(["left:0;"]),prisma:(0,R.css)(["right:0;"])}),(0,M.pick)({enterprise:"9px 12px",prisma:{comfortable:"17px 4px 14px",compact:"9px 4px 6px"}})),Ve=D().span.withConfig({displayName:"HeadInnerStyles__StyledMenuIcon",componentId:"sc-1sa0wng-1"})([""," color:",";position:relative;"],(0,M.pick)({prisma:(0,R.css)(["display:inline-flex;"]),enterprise:(0,R.css)(["padding-left:4px;"])}),(0,M.pick)({enterprise:M.variables.textGray,prisma:M.variables.contentColorDefault})),He=D().span.withConfig({displayName:"HeadInnerStyles__StyledLabel",componentId:"sc-1sa0wng-2"})(["flex:0 1 auto;position:relative;word-wrap:break-word;word-break:break-word;"," "," "," "," "," + &{margin-left:",";}"],(0,M.pick)({enterprise:function(e){return"right"!==e.$align&&(0,R.css)(["display:flex;justify-content:space-between;"])},prisma:(0,R.css)(["display:flex;"])}),(0,M.pickVariant)("$truncate",{true:(0,R.css)(["overflow:hidden;text-overflow:ellipsis;white-space:nowrap;"])}),(0,M.pickVariant)("$fill",{true:(0,R.css)(["flex:1 0 0px;"])}),(0,M.pickVariant)("$align",{right:(0,R.css)(["& > &{text-align:right;}"]),left:(0,R.css)(["& > &{text-align:left;}"]),center:(0,R.css)(["& > &{text-align:center;}"])}),Be,(0,M.pick)({enterprise:"12px"})),Fe=D().div.withConfig({displayName:"HeadInnerStyles__Styled",componentId:"sc-1sa0wng-3"})([""," ",";position:relative;font-size:",";",";line-height:",";justify-content:",";padding:",";"," "," "," &[data-helper]{background-color:",";position:absolute;left:-10000px;top:-10000px;box-shadow:",";box-sizing:border-box;background-repeat:repeat-x;",";}@media print{background-image:none;}"],M.mixins.reset("flex"),M.mixins.clearfix(),(0,M.pick)({enterprise:"inherit",prisma:"12px"}),(0,M.pick)({prisma:(0,R.css)(["font-weight:bold;"])}),(0,M.pick)({enterprise:M.variables.lineHeight,prisma:"16px"}),(0,M.pickVariant)("$align",{center:"center",left:"flex-start",right:"flex-end"}),(0,M.pick)({enterprise:"6px 12px",prisma:{comfortable:"16px 10px",compact:"8px"}}),(function(e){return e.$hasActionsHead&&(0,R.css)(["padding:0;"])}),(function(e){return e.$dragging&&(0,R.css)(["opacity:0;"])}),(function(e){return e.$draggable&&(0,R.css)(["padding-left:",";-webkit-user-drag:element;user-select:none;"],(0,M.pick)({enterprise:"16px"}))}),(0,M.pick)({enterprise:{light:M.variables.accentColorL50,dark:M.variables.accentColorD50},prisma:M.mixins.overlayColors(M.variables.interactiveColorBackground,M.variables.interactiveColorOverlaySelected)}),(0,M.pick)({enterprise:M.variables.overlayShadow,prisma:M.variables.dragShadow}),(0,M.pick)({enterprise:(0,R.css)(["border:1px solid ",";"],M.variables.borderColor)})),ze=D().span.withConfig({displayName:"HeadInnerStyles__StyledSortIcon",componentId:"sc-1sa0wng-4"})(["flex:0 0 auto;",";"," color:",";",""],(0,M.pick)({enterprise:(0,R.css)(["right:0;"]),prisma:(0,R.css)(["left:0;"])}),(0,M.pick)({prisma:(0,R.css)(["margin-right:4px;"])}),(0,M.pick)({enterprise:{light:M.variables.textGray,dark:M.variables.gray80}}),(function(e){return e.$sorted&&(0,R.css)(["color:",";"],(0,M.pick)({enterprise:M.variables.accentColor,prisma:M.variables.contentColorDefault}))})),qe=D().button.withConfig({displayName:"HeadInnerStyles__StyledResize",componentId:"sc-1sa0wng-5"})(["",";position:absolute;right:-5px;width:9px;top:0;bottom:0;z-index:1;cursor:col-resize;th:last-child > "," > &{right:0;width:5px;}&::-moz-focus-inner{border:0;padding:0;}&:focus{outline:none;&::before{content:'';position:absolute;background:",";box-shadow:",";left:4px;width:1px;top:0;bottom:0;}}"],M.mixins.reset("block"),Fe,M.variables.focusColor,M.variables.focusShadow),We=D()(De()).withConfig({displayName:"HeadInnerStyles__StyledCaretDown",componentId:"sc-1sa0wng-6"})(["path:last-child{fill:transparent;}"]),Ke=D()(De()).withConfig({displayName:"HeadInnerStyles__StyledCaretUp",componentId:"sc-1sa0wng-7"})(["path:first-child{fill:transparent;}"]),Ue=D().th.withConfig({displayName:"HeadCellStyles__Styled",componentId:"sc-1hj81sa-0"})(["",";background-color:",";box-sizing:content-box;text-align:left;vertical-align:",";& + &{border-left:1px solid ",";}"," "," "," ",""],M.mixins.reset("table-cell"),(0,M.pick)({enterprise:{light:M.variables.gray92,dark:M.variables.black},prisma:M.variables.interactiveColorBackground}),(function(e){return e.$variant?"middle":"top"}),(0,M.pick)({enterprise:M.variables.backgroundColor,prisma:M.variables.backgroundColorPage}),(function(e){var t=e.$isFixed,n=e.$zIndex;return t&&(0,R.css)(["position:sticky;top:0;z-index:",";&:not(:first-child)::before{content:'';height:100%;position:absolute;top:0;bottom:0;box-shadow:-1px 0 0 0 ",";width:2px;border:0;left:0;margin-right:-2px;color:transparent;}&:not(:last-child)::after{content:'';height:100%;position:absolute;top:0;bottom:0;box-shadow:1px 0 0 0 ",";width:2px;border:0;right:0;margin-left:-2px;color:transparent;}"],n,(0,M.pick)({enterprise:M.variables.backgroundColor,prisma:M.variables.backgroundColorPage}),(0,M.pick)({enterprise:M.variables.backgroundColor,prisma:M.variables.backgroundColorPage}))}),(function(e){return e.$clickable&&(0,R.css)(["cursor:pointer;&:focus{box-shadow:",";outline:none;& > ","{color:",";background-color:",";}}&:hover{outline:none;& > ","{color:",";background-color:",";}}&:active{& > ","{background-color:",";}}"],M.variables.focusShadowInset,Fe,(0,M.pick)({enterprise:{light:M.variables.accentColorD10,dark:M.variables.linkColorHover}}),(0,M.pick)({prisma:M.variables.interactiveColorOverlaySelected}),Fe,(0,M.pick)({enterprise:{light:M.variables.accentColorD10,dark:M.variables.linkColorHover}}),(0,M.pick)({prisma:M.variables.interactiveColorOverlayHover}),Fe,(0,M.pick)({prisma:M.variables.interactiveColorOverlayActive}))}),(function(e){return e.$dragging&&(0,R.css)(["background-color:",";&:focus{box-shadow:none;}"],(0,M.pick)({enterprise:{light:M.variables.gray80,dark:M.variables.gray20},prisma:M.mixins.overlayColors(M.variables.backgroundColorPage,M.variables.interactiveColorOverlayDrag)}))}),(0,M.pickVariant)("$variant",{actions:(0,R.css)(["& > ","{padding-right:8px;}"],Fe),info:(0,R.css)(["& > ","{",";}"],Fe,(0,M.pick)({enterprise:(0,R.css)(["padding-top:7px;"]),prisma:{comfortable:(0,R.css)(["padding:16px 12px;"]),compact:(0,R.css)(["padding:6px 12px;"])}})),toggleAll:(0,R.css)(["& > ","{padding-top:",";}"],Fe,(0,M.pick)({prisma:{comfortable:"14px",compact:"7px"}}))})),Ge=D().div.withConfig({displayName:"HeadCellStyles__StyledGuideLine",componentId:"sc-1hj81sa-1"})([""," width:1px;position:absolute;background-color:",";height:100%;top:0;z-index:1;",""],M.mixins.reset("block"),(0,M.pick)({enterprise:M.variables.linkColor,prisma:M.variables.interactiveColorPrimary}),(0,M.pickVariant)("$position",{before:(0,R.css)(["float:left;",":not(:first-child) > &{margin-left:-1px;}"],Ue),after:(0,R.css)(["right:0;"])})),Ze=D().td.withConfig({displayName:"RowDragCellStyles__Styled",componentId:"sc-9kbaj2-0"})([""," box-sizing:content-box;touch-action:none;width:",";& + &{border-left:",";}&:focus{box-shadow:",";outline:none;}&:hover{background-color:",";outline:none;}&:active{background-color:",";}",""],M.mixins.reset("table-cell"),(0,M.pick)({enterprise:"32px",prisma:"36px"}),(0,M.pick)({enterprise:"1px solid ".concat(M.variables.backgroundColor),prisma:"1px solid ".concat(M.variables.interactiveColorBorder)}),M.variables.focusShadowInset,(0,M.pick)({enterprise:{light:M.variables.accentColorL50,dark:M.variables.accentColorD50},prisma:M.variables.interactiveColorOverlayHover}),(0,M.pick)({prisma:M.variables.interactiveColorOverlayActive}),(function(e){return e.$dragging&&(0,R.css)(["&:active{background-color:",";}"],(0,M.pick)({prisma:M.mixins.overlayColors(M.variables.backgroundColorPage,M.variables.interactiveColorOverlayDrag)}))})),Ye=D().div.withConfig({displayName:"RowDragCellStyles__StyledGuideLine",componentId:"sc-9kbaj2-1"})([""," width:100%;height:1px;position:absolute;left:0;z-index:1;",""],M.mixins.reset("block"),(0,M.pickVariant)("$position",{before:(0,R.css)(["&::before{content:' ';border-top:1px solid;border-color:",";width:100%;height:1px;top:0;position:absolute;}"],(0,M.pick)({enterprise:M.variables.linkColor,prisma:M.variables.interactiveColorPrimary})),after:(0,R.css)(["&::after{bottom:0;background-color:",";}"],(0,M.pick)({enterprise:M.variables.linkColor,prisma:M.variables.interactiveColorPrimary}))})),Xe=D().div.withConfig({displayName:"RowDragCellStyles__StyledDrag",componentId:"sc-9kbaj2-2"})([""," ",";justify-content:center;cursor:move;"," "," &[data-helper]{background-color:",";position:absolute;left:-10000px;top:-10000px;box-shadow:",";box-sizing:border-box;background-repeat:repeat-x;",";}@media print{background-image:none;}"],M.mixins.reset("flex"),M.mixins.clearfix(),(function(e){return e.$dragging&&(0,R.css)(["opacity:0;"])}),(function(e){return e.$draggable&&(0,R.css)(["padding:",";-webkit-user-drag:element;user-select:none;"],(0,M.pick)({enterprise:"9px 0",prisma:{comfortable:"16px 17px 15px",compact:"9px 17px 6px"}}))}),(0,M.pick)({enterprise:{light:M.variables.accentColorL50,dark:M.variables.accentColorD50},prisma:M.mixins.overlayColors(M.variables.interactiveColorBackground,M.variables.interactiveColorOverlaySelected)}),(0,M.pick)({enterprise:M.variables.overlayShadow,prisma:M.variables.dragShadow}),(0,M.pick)({enterprise:(0,R.css)(["border:1px solid ",";"],M.variables.borderColor)})),Qe=D().div.withConfig({displayName:"DragHandleStyles__StyledDrag",componentId:"sc-9eqfn5-0"})(["display:block;cursor:move;background:",";",""],M.variables.draggableBackground,(0,M.pick)({enterprise:(0,R.css)(["width:7px;height:14px;"]),prisma:(0,R.css)(["width:6px;height:20px;margin-top:-3px;opacity:0;",":focus &,",":hover &,"," &,[data-helper] &{opacity:1;}"],Ue,Ue,Ze)})),Je={screenReaderContent:l().string};function et(e){var t=e.screenReaderContent;return i().createElement(Qe,null,i().createElement($e(),null,t))}et.propTypes=Je;const tt=et;function nt(){return nt=Object.assign||function(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}(e,["index","columnId","id","width","onDragEnd","onAutosizeColumn","align","label","hasActionsHead","isMenu","onDragStart","onRequestResize","resizable","sortDir","truncate"]),T=(0,M.useSplunkTheme)().isEnterprise,R=(0,Le._)("Click to open menu"),D=rt((0,o.useState)(),2),A=D[0],L=D[1],N=rt((0,o.useState)(!1),2),B=N[0],H=N[1],F=rt((0,o.useState)(!1),2),z=F[0],q=F[1],W=rt((0,o.useState)(0),2),K=W[0],U=W[1],G=rt((0,o.useState)(0),2),Z=G[0],Y=G[1],X=(0,o.useRef)(null);if((0,o.useEffect)((function(){return function(){return null==A?void 0:A.remove()}}),[A]),void 0!==j&<.has(j)&&(n=(T?st:ut)[j],r=ct[j]),"auto"===s){var Q,J=X.current,ee=null==J||null===(Q=J.parentElement)||void 0===Q?void 0:Q.getBoundingClientRect();t=null==ee?void 0:ee.width}else t=s;var te=!!x,ne=V();return i().createElement(Fe,nt({draggable:te||void 0,onDragStart:te?function(e){var t,n=$(),r=X.current;if(e.dataTransfer.setDragImage&&(null==r?void 0:r.parentElement)){var o=r.parentElement.getBoundingClientRect(),i=r.cloneNode(!0);i.style.width="".concat(o.width,"px"),i.style.height="".concat(o.height,"px"),i.setAttribute("data-helper","true"),n.body.appendChild(i),e.dataTransfer.setDragImage(i,e.clientX-o.left,e.clientY-o.top),q(!0),L(i)}e.dataTransfer.effectAllowed="move",e.dataTransfer.setData("text",null!==(t=null==r?void 0:r.textContent)&&void 0!==t?t:""),null==x||x(a,l)}:void 0,onDragEnd:te?function(){L(void 0),q(!1),null==u||u()}:void 0,ref:X,$hasActionsHead:!!b,$align:f,$draggable:te,$dragging:!!z},m()(I,[].concat(function(e){return function(e){if(Array.isArray(e))return it(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||ot(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.")}()}(Object.keys(pt.propTypes)),["id"]))),B&&i().createElement(i().Fragment,null,i().createElement(C(),{target:ne,eventType:"mouseup",listener:function(){H(!1)}}),i().createElement(C(),{target:ne,eventType:"mousemove",listener:function(e){var t=K-e.clientX,n=Math.max(Z-t,16);void 0!==a&&(null==w||w(e,{index:a,columnId:l,id:c,width:n}))}})),w&&k&&i().createElement(qe,{onMouseDown:function(e){if("auto"===s){var n,r=X.current,o=null==r||null===(n=r.parentElement)||void 0===n?void 0:n.getBoundingClientRect();t=null==o?void 0:o.width}else t=s;void 0!==t&&(e.preventDefault(),U(e.clientX),Y(t||0),H(!0))},onDoubleClick:function(e){void 0!==a&&(null==p||p(e,{index:a,columnId:l}))},onKeyDown:function(e){var n=(0,S.keycode)(e.nativeEvent);if(void 0!==w&&void 0!==a){if("auto"===s){var r,o=X.current,i=null==o||null===(r=o.parentElement)||void 0===r?void 0:r.getBoundingClientRect();t=null==i?void 0:i.width}else t=s;if(void 0!==t){if("left"===n){e.preventDefault();var u=Math.max(t-10,20);w(e,{index:a,columnId:l,id:c,width:u})}"right"===n&&(e.preventDefault(),w(e,{index:a,columnId:l,id:c,width:t+10}))}}},"data-test":"resize"}),te&&i().createElement(Be,null,i().createElement(tt,{screenReaderContent:(0,Le._)("Press left or right arrow key to reorder the columns.")})),i().createElement(He,{$align:f,$truncate:P,$fill:g},h,g&&i().createElement(Ve,null,T?i().createElement(Ae(),{"data-test":"caret-down",screenReaderText:R,hideDefaultTooltip:!0,size:.5}):i().createElement(Te(),{"data-test":"caret-down","aria-label":R}))),j&&i().createElement(ze,{$sorted:"none"!==j},void 0!==n&&(T?i().createElement(n,{inline:!0,"aria-hidden":!1,"aria-label":r,viewBox:"-8 0 24 24"}):i().createElement(n,{inline:!0,"aria-hidden":!1,"aria-label":r}))))}pt.propTypes=at;const dt=pt;var ft=(0,o.createContext)({});ft.displayName="Table";const ht=ft;function vt(e){return vt="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},vt(e)}function bt(){return bt=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n0?null==a||a({fromIndex:o,toIndex:o-1,columnId:n}):"right"===(0,S.keycode)(e.nativeEvent)&&void 0!==o&&(null==a||a({fromIndex:o,toIndex:o+1,columnId:n}))),void 0!==o&&(null==i||i(e,{index:o,columnId:n}))})),Ot(xt(r),"handleDragStart",(function(e,t){var n,o;r.setState({isDragging:!0}),null===(n=(o=r.props).onDragStart)||void 0===n||n.call(o,e,t)})),Ot(xt(r),"handleDragEnd",(function(){r.setState({isDragging:!1})})),Ot(xt(r),"sortDirAriaMapping",{asc:"ascending",desc:"descending",none:"none"}),r.state={isDragging:!1},r}return function(e,t,n){t&&yt(e.prototype,t)}(n,[{key:"render",value:function(){var e=this.props,t=e.align,r=e.children,o=e.columnId,a=e.elementRef,l=e.hasActionsHead,c=e.id,s=e.index,u=e.onAutosizeColumn,p=e.onClick,d=e.onDragStart,f=e.onRequestResize,h=e.onSort,v=e.resizable,b=e.showGuideline,y=e.sortDir,g=e.style,x=e.variant,w=e.truncate,O=e.visible,C=e.width,S=e.zIndex,k=!!d,E=!!h&&!!y,j=void 0!==p,_=Ce()(g,{width:C}),P=!l&&w,I=this.context.headType;return i().createElement(Ue,bt({style:_,ref:a,"aria-sort":h&&(this.sortDirAriaMapping[y]||"none"),"data-test":"head-cell","data-test-label":we()(r)?r:void 0,"data-test-sort-dir":h&&y,id:O?c:void 0,onClick:h||j?this.handleClick:void 0,tabIndex:O&&(k||h||j)?0:void 0,$dragging:this.state.isDragging||void 0,$clickable:k||E||j,$variant:x,$zIndex:S,$isFixed:"fixed"===I},m()(this.props,[].concat(function(e){return function(e){if(Array.isArray(e))return mt(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return mt(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)?mt(e,t):void 0}}(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.")}()}(Object.keys(n.propTypes)),["id","style"])),{onKeyDown:k||h||j?this.handleKeyDown:void 0}),i().createElement(dt,{label:r,align:t,columnId:o,hasActionsHead:l,id:c,index:s,resizable:O&&v,onDragStart:d?this.handleDragStart:void 0,onDragEnd:d?this.handleDragEnd:void 0,onAutosizeColumn:u,onRequestResize:f,sortDir:h&&y,truncate:P,width:C}),"none"!==b&&i().createElement(Ge,{$position:b}))}}]),n}(o.Component);Ot(St,"splunkUiType","Table.HeadCell"),Ot(St,"propTypes",Ct),Ot(St,"defaultProps",{align:"left",resizable:!0,showGuideline:"none",sortDir:"none",truncate:!0,visible:!0,zIndex:1}),Ot(St,"contextType",ht);const kt=St,Et=n(85);var jt=t.n(Et);const _t=n(632);var Pt=t.n(_t);function It(){var e=(0,M.useSplunkTheme)().isEnterprise,t=(0,Le._)("More Information");return e?i().createElement(jt(),{hideDefaultTooltip:!0,screenReaderText:t}):i().createElement(Pt(),{"aria-label":t,height:"16px",width:"16px"})}const Tt=n(4845);var Rt=t.n(Tt);const Dt=n(181);var Mt=t.n(Dt);const At=n(3592);var Lt=t.n(At);const Nt=n(8546);var $t=t.n(Nt);const Bt=n(376),Vt=n(7232);var Ht=t.n(Vt);function Ft(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 zt(e){for(var t=1;t0?null==n||n({fromIndex:o,toIndex:o-1,dataId:i}):"down"===l&&void 0!==o&&(null==n||n({fromIndex:o,toIndex:o+1,dataId:i})),void 0!==o&&(null==a||a(e,{index:o,dataId:i}))})),r.state={isDragging:!1},r}return function(e,t,n){t&&Zt(e.prototype,t)}(n,[{key:"componentDidMount",value:function(){var e,t,n=this.props;n.dataId===n.activeElementId&&(null===(e=this.el)||void 0===e||null===(t=e.parentElement)||void 0===t||t.focus())}},{key:"componentWillUnmount",value:function(){this.cleanupDrag()}},{key:"cleanupDrag",value:function(){var e;this.cloneEl&&(this.cloneEl.remove?this.cloneEl.remove():null===(e=this.cloneEl.parentNode)||void 0===e||e.removeChild(this.cloneEl),this.cloneEl=void 0)}},{key:"render",value:function(){var e=this.props,t=e.showRowGuideline,n=e.rowSpan;return i().createElement(Ze,{$align:"center","data-test":"drag",$dragging:this.state.isDragging,tabIndex:0,rowSpan:n,onKeyDown:this.handleKeyDown},"none"!==t&&i().createElement(Ye,{$position:t}),i().createElement(Xe,{draggable:!0,$draggable:!0,$dragging:this.state.isDragging||void 0,onDragStart:this.handleDragStart,onDragEnd:this.handleDragEnd,ref:this.handleMount},i().createElement(tt,{screenReaderContent:(0,Le._)("Press up or down arrow key to reorder the columns.")})))}}]),n}(o.Component);Jt(tn,"propTypes",en),Jt(tn,"defaultProps",{showRowGuideline:"none"});const nn=tn;var rn=D().tr.withConfig({displayName:"RowStyles__StyledStripeNone",componentId:"f0igqq-0"})([""," background-color:",";",";@media print{background-color:none;}"," ",""],M.mixins.reset("table-row"),(0,M.pick)({prisma:M.variables.transparent}),(function(e){return e.$clickable&&(0,R.css)(["cursor:pointer;&:hover{background-color:",";}&:focus{box-shadow:",";}"],(0,M.pick)({enterprise:{light:M.variables.accentColorL50,dark:M.variables.accentColorD50},prisma:M.variables.interactiveColorOverlayHover}),M.variables.focusShadowInset)}),(function(e){var t=e.disabled,n=e.$expandable;return!t&&!n&&(0,R.css)(["&:not([data-expansion-row='true']){&:hover{background-color:",";}}"],(0,M.pick)({prisma:M.variables.interactiveColorOverlayHover}))}),(function(e){return e.disabled&&(0,R.css)(["color:",";"],(0,M.pick)({prisma:M.variables.contentColorDisabled}))})),on=D()(rn).withConfig({displayName:"RowStyles__StyledStripeOdd",componentId:"f0igqq-1"})(["background-color:",";"],(0,M.pick)({enterprise:{dark:M.variables.gray22},prisma:M.variables.transparent})),an=D()(rn).withConfig({displayName:"RowStyles__StyledStripeEven",componentId:"f0igqq-2"})(["background-color:",";"],(0,M.pick)({enterprise:{light:M.variables.gray96,dark:M.variables.gray20},prisma:M.variables.transparent})),ln=D()(me).withConfig({displayName:"RowStyles__StyledCellSelectionDisabled",componentId:"f0igqq-3"})(["&&{cursor:not-allowed;}"]),cn=D()(me).withConfig({displayName:"RowStyles__StyledCellExpansionDisabled",componentId:"f0igqq-4"})(["width:",";"],(0,M.pick)({enterprise:"35px",prisma:"40px"}));const sn=n(3997);var un=t.n(sn),pn=D()(un()).withConfig({displayName:"ToggleStyles__StyledSwitch",componentId:"sc-1x3ikch-0"})(["margin:",";justify-content:center;"],(0,M.pickVariant)("$allRows",{true:{enterprise:"-6px 0",prisma:"-10px 0"},false:"-6px 0"}));function dn(){return dn=Object.assign||function(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}(e,["allRows","disabled","selected"]),c=n?(0,Le._)("No rows selected"):(0,Le._)("Row unselected");return"some"===a?c=(0,Le._)("Some rows selected"):a&&(c=n?(0,Le._)("All rows selected"):(0,Le._)("Row selected")),i().createElement(pn,dn({$allRows:n},l,{interactive:!1,disabled:r,value:"",selected:a,"aria-label":c,selectedLabel:n?(0,Le._)("All rows selected"):(0,Le._)("Row selected"),unselectedLabel:n?(0,Le._)("No rows selected"):(0,Le._)("Row unselected"),someSelectedLabel:(0,Le._)("Some rows selected")}))}hn.propTypes=fn;const vn=hn;function bn(e){return bn="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},bn(e)}function mn(e,t){for(var n=0;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}(n,["actions","actionPrimary","actionsSecondary","activeElementId","children","dataId","disabled","draggable","elementRef","expandable","expanded","expansionRow","index","movableColumns","onClick","onDragStart","onExpansion","onRequestMoveRow","onRequestToggle","primaryColumnIndex","rowScreenReaderText","selected","showRowGuideline","stripe"]),P=g?o.Children.toArray(s).filter(o.isValidElement).map((function(e){return(0,o.cloneElement)(e,{appearance:"rowLink",disabled:p})})):o.Children.toArray(s).map((function(e){return(0,o.cloneElement)(e,{disabled:p})}));if(S)t=S;else if(null===(e=P[C])||void 0===e?void 0:e.props.children){var I;t="".concat(null===(I=P[C])||void 0===I?void 0:I.props.children)}else{var T;t="".concat(null===(T=P[0])||void 0===T?void 0:T.props.children)}var R=(0,Bt.sprintf)((0,Le._)("%(selected)s"),{selected:k?"selected":"unselected"}),D=Cn[j],M=p?ln:me,A=h?o.Children.count(v)+1:void 0,L=y?"false":void 0,N=i().createElement(kn,null);return i().createElement(D,On({"data-test":"row","data-test-selected":O?k:void 0,$clickable:!!g,"data-has-movable-columns":y?"true":void 0,disabled:!!p,$expandable:!!f,ref:this.handleMount,tabIndex:g?0:void 0},m()(_,"data"),{onClick:g?this.handleClick:void 0,onKeyDown:this.handleKeyDown,$rowSelected:!(!O||!k)}),d&&i().createElement(nn,{activeElementId:c,dataId:u,"data-movable-column":L,index:b,onRequestMoveRow:w,onDragStart:x,rowSpan:A,showRowGuideline:E}),O&&i().createElement(M,{"aria-label":(0,Bt.sprintf)((0,Le._)("%(rowLabelValue)s %(selectedString)s"),{rowLabelValue:t,selectedString:R}),appearance:g?"rowLink":"data","data-test":"toggle",variant:"toggle","data-movable-column":L,onClick:this.handleToggle,rowSpan:A,role:"checkbox","aria-checked":k},i().createElement(vn,{disabled:p,selected:k})),f&&v&&i().createElement(me,{align:"center",appearance:"data","aria-expanded":h,"aria-label":(0,Le._)("Expandable row"),"data-movable-column":L,"data-test":"expand",expand:h,onClick:this.handleExpansion,rowSpan:A,variant:"expand"},i().createElement(Ut,{expanded:h})),f&&!v&&i().createElement(cn,{variant:"expand","data-movable-column":L}),P,r&&!a&&!l&&i().createElement(me,{align:"right",appearance:p?"data":"rowLink","data-test":"row-actions",variant:"actions","data-movable-column":L}),(a||l)&&i().createElement(me,{align:"right",appearance:"rowLink","data-test":"row-actions",variant:"actions","data-movable-column":L},a&&this.renderActionPrimary(),l&&i().createElement(Lt(),{toggle:N},this.renderActionsSecondary())))}}]),n}(o.Component);wn(En,"splunkUiType","Table.Row"),wn(En,"propTypes",Sn),wn(En,"defaultProps",{stripe:"none",primaryColumnIndex:0});const jn=En;var _n=D().thead.withConfig({displayName:"HeadStyles__Styled",componentId:"iap21t-0"})(["",";"],M.mixins.reset("table-header-group")),Pn=D()(kt).withConfig({displayName:"HeadStyles__StyledToggleAll",componentId:"iap21t-1"})(["width:",";"],(0,M.pick)({enterprise:"42px",prisma:"40px"})),In=D()(kt).withConfig({displayName:"HeadStyles__StyledInfo",componentId:"iap21t-2"})(["width:",";"],(0,M.pick)({enterprise:"32px",prisma:"40px"})),Tn=D()(kt).withConfig({displayName:"HeadStyles__StyledDragRow",componentId:"iap21t-3"})(["width:",";"],(0,M.pick)({enterprise:"32px",prisma:"40px"}));function Rn(e){return Rn="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},Rn(e)}function Dn(){return Dn=Object.assign||function(e){for(var t=1;t=p.length)null==s||s(e,t);else{var d=p[i],f=a-d;if(f<=0)a>=c?null==s||s(e,t):null==s||s(e,{columnId:n,id:o,index:i,width:c});else{var h=[],v=0,b=!0;if(r.providedWidths.length!==p.length)return void(null==s||s(e,t));if(r.providedWidths.forEach((function(e,t){"auto"===e&&(v+=1,h.push(t))})),v>0){var m=f/v;if(h.every((function(e){return!(e=c?null==s||s(e,t):null==s||s(e,{columnId:n,id:o,index:i,width:d+(w-c)})}else null==s||s(e,t)}}})),$n(Ln(r),"handleMount",(function(e){r.el=e,L(r.props.elementRef,e)})),$n(Ln(r),"handleDragStart",(function(e,t){var n,o,i=V();r.setState({dragColumnId:t}),i.addEventListener("dragend",r.handleDragEnd),null===(n=(o=r.props).onDragStart)||void 0===n||n.call(o,{dragIndex:e})})),$n(Ln(r),"handleDragEnd",(function(){var e,t,n=r.state.dragColumnId,o=r.props.dragIndex,i=r.calculateGuideIndex(),a=void 0!==o&&ot.left&&io?s+1:s}},{key:"cleanupDrag",value:function(){V().removeEventListener("dragend",this.handleDragEnd),this.cells=void 0}},{key:"render",value:function(){var e=this,t=this.props,r=t.actions,a=t.actionsColumnWidth,l=t.children,c=t.hasDragColumn,s=t.hasInfoColumn,u=t.onAutosizeColumn,p=t.onRequestMoveColumn,d=t.onRequestResizeColumn,f=t.onRequestToggleAllRows,h=t.rowSelection,v=this.context,b=v.headType,y=v.resizableFillLayout,g=this.calculateGuideIndex(),x=o.Children.toArray(l).filter(o.isValidElement),w=x.length+(r.length||a?1:0),O=[],C=x.map((function(t,n,r){var i="none";return g===r.length&&n+1===r.length?i="after":g===n&&(i="before"),O.push(t.props.width),(0,o.cloneElement)(t,{index:n,showGuideline:i,onRequestResize:y?e.manageResize:d,onDragStart:p?e.handleDragStart:void 0,onRequestMoveColumn:p?e.onRequestMoveColumn:void 0,onAutosizeColumn:u,key:t.key||t.props.columnId||n,zIndex:w-n})}));this.providedWidths=O;var S=void 0===h?void 0:{all:!0,none:!1,some:"some"}[h],k="some"===S?"mixed":S,E=a||48,j="fixed"===b?"fixed-head":"head";return i().createElement(_n,Dn({ref:this.handleMount,"data-test":j},m()(this.props,ge()(n.propTypes))),i().createElement(jn,null,c&&i().createElement(Tn,{key:"drag_rows_head_cell","data-test":"drag-rows-head-cell",align:"center",resizable:!1,zIndex:w+3}),f&&i().createElement(Pn,{key:"toggle_all","data-test":"toggle-all",resizable:!1,align:"center",onClick:f,variant:"toggleAll",truncate:!1,role:"checkbox","aria-checked":k,zIndex:w+2},i().createElement(vn,{selected:S,allRows:!0})),s&&i().createElement(In,{key:"more_info_head_cell","data-test":"more-info-head-cell",align:"center",resizable:!1,variant:"info",zIndex:w+1},i().createElement(It,null)),C,r.length>0&&i().createElement(kt,{hasActionsHead:!0,key:"actions_head_cell","data-test":"actions-head-cell",align:"right",resizable:!1,width:E,style:{minWidth:E},variant:"actions",zIndex:1},r),0===r.length&&a&&i().createElement(kt,{key:"actions_head_cell","data-test":"actions-head-cell",align:"right",resizable:!1,width:a,style:{minWidth:a},variant:"actions",zIndex:1}," ")))}}],[{key:"validateChildrenWidth",value:function(e){}}]),n}(o.Component);$n(Vn,"contextType",ht),$n(Vn,"splunkUiType","Table.Head"),$n(Vn,"propTypes",Bn),$n(Vn,"defaultProps",{cellMinWidth:60,actions:[]});const Hn=Vn,Fn=n(7338);var zn=t.n(Fn);const qn=n(6401);var Wn=t.n(qn);const Kn=n(7478),Un=n(9728);var Gn=t.n(Un);function Zn(e){return Zn="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},Zn(e)}function Yn(){return Yn=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n0?null==a||a({fromIndex:o,toIndex:o-1,columnId:n}):"right"===(0,S.keycode)(e.nativeEvent)&&void 0!==o&&(null==a||a({fromIndex:o,toIndex:o+1,columnId:n}))),void 0!==o&&(null==i||i(e,{index:o,columnId:n}))})),nr(er(r),"handleContentClick",(function(e){r.handleRequestClose({reason:"contentClick",event:e})})),nr(er(r),"handleDragStart",(function(e,t){var n,o;r.setState({isDragging:!0}),null===(n=(o=r.props).onDragStart)||void 0===n||n.call(o,e,t)})),nr(er(r),"handleDragEnd",(function(){r.setState({isDragging:!1})})),r.state={el:null,isDragging:!1,open:!1},r.controlledExternally=p()(e,"open"),r.popoverId=(0,Kn.createDOMID)("popover"),r.cellId=(0,Kn.createDOMID)("cellId"),r}return function(e,t,n){t&&Qn(e.prototype,t)}(n,[{key:"componentDidUpdate",value:function(e){e.visible&&!this.props.visible&&this.handleRequestClose({reason:"offScreen"})}},{key:"focus",value:function(){var e;null===(e=this.state.el)||void 0===e||e.focus()}},{key:"isOpen",value:function(){return this.isControlled()?this.props.open:this.state.open}},{key:"isControlled",value:function(){return this.controlledExternally}},{key:"render",value:function(){var e,t=this,r=this.props,o=r.align,a=r.canCoverHead,l=r.children,c=r.closeReasons,s=r.columnId,u=r.defaultPlacement,p=r.id,d=r.index,f=r.label,h=r.onAutosizeColumn,v=r.onDragStart,b=r.onRequestResize,y=r.repositionMode,g=r.resizable,x=r.retainFocus,w=r.showGuideline,O=r.style,C=r.takeFocus,S=r.truncate,k=r.variant,E=r.visible,j=r.width,_=r.zIndex,I=this.state,T=I.el,R=I.clientX,D=p||this.cellId,M=this.context.headType;return i().createElement(Ue,Yn({style:Ce()(O,{width:j}),"data-test":"head-cell",$dragging:this.state.isDragging||void 0,$clickable:!0,$variant:k,id:E?D:void 0,tabIndex:E?0:void 0,ref:this.handleMount},m()(this.props,[].concat(function(e){return function(e){if(Array.isArray(e))return Xn(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return Xn(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)?Xn(e,t):void 0}}(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.")}()}(Object.keys(n.propTypes)),["id","style"])),{onClick:this.handleClick,onKeyDown:this.handleKeyDown,"aria-haspopup":!0,"aria-owns":this.popoverId,"aria-expanded":this.isOpen(),$isFixed:"fixed"===M,$zIndex:_}),i().createElement(dt,{label:f,align:o,columnId:s,id:p,index:d,isMenu:!0,resizable:E&&g,onDragStart:v?this.handleDragStart:void 0,onDragEnd:v?this.handleDragEnd:void 0,onAutosizeColumn:h,onRequestResize:b,truncate:S,width:j}),"none"!==w&&i().createElement(Ge,{$position:w}),i().createElement(Gn(),{align:"center",open:!!T&&this.isOpen(),autoCloseWhenOffScreen:P()(c,"offScreen"),anchor:T,canCoverAnchor:a,retainFocus:x,defaultPlacement:u,onRequestClose:this.handleRequestClose,repositionMode:y,id:this.popoverId,"aria-labelledby":p||this.cellId,takeFocus:C,pointTo:void 0!==R&&zn()(R)?{x:R-(null!==(e=null==T?void 0:T.getBoundingClientRect().left)&&void 0!==e?e:0)}:void 0},Wn()(l)?function(){return i().createElement("div",{onClick:t.handleContentClick},l.apply(void 0,arguments))}:i().createElement("div",{onClick:this.handleContentClick},l)))}}]),n}(o.Component);nr(ar,"splunkUiType","Table.HeadDropdownCell"),nr(ar,"possibleCloseReasons",rr),nr(ar,"propTypes",or),nr(ar,"defaultProps",ir),nr(ar,"contextType",ht);const lr=ar,cr=n(3005);var sr=t.n(cr),ur=D()(J).withConfig({displayName:"HeadTableStyles__Styled",componentId:"g85wgf-0"})(["min-width:0;table-layout:fixed;"]),pr=D().div.withConfig({displayName:"HeadTableStyles__StyledDockedContainer",componentId:"g85wgf-1"})(["overflow:hidden;position:fixed;box-shadow:",";z-index:",";@media print{display:none;}"],(0,M.pick)({enterprise:M.variables.overlayShadow,prisma:"none"}),M.variables.zindexFixedNavbar),dr=D()(pr).withConfig({displayName:"HeadTableStyles__StyledFixedContainer",componentId:"g85wgf-2"})(["position:absolute;box-shadow:none;z-index:1;"]);function fr(e){return fr="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},fr(e)}function hr(){return hr=Object.assign||function(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}(e,["cellWidths","elementRef","hasDragColumn","hasRowExpansion","hasRowSelection","headType","horizontalOffset","isFixedColumn","tableStyle","tableWidth","tHead","top","width"]),y="docked"===c?pr:dr,g=0;a&&(g+=1),l&&(g+=1),r&&(g+=1);var x=u?o.Children.toArray(f.props.children):o.Children.toArray(f.props.children).filter(o.isValidElement).map((function(e,n){return(0,o.cloneElement)(e,{style:sr()({},e.props.style,{width:t[n+g]})})})),w=(0,o.cloneElement)(f,{ref:this.handleHeadMount,"data-test":"".concat(c,"-head")},x);return i().createElement(y,{style:{top:h,width:v},ref:n},i().createElement(ur,hr({"data-test":"".concat(c,"-head-table"),"data-fixed-column":u?"true":void 0,style:sr()({},p,{marginLeft:s,width:u?void 0:d})},m()(b,"dragIndex")),w))}}]),n}(o.Component);gr(wr,"propTypes",xr),gr(wr,"defaultProps",{horizontalOffset:0});const Or=wr;function Cr(e){return Cr="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},Cr(e)}function Sr(){return Sr=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n-1)return{target:"headCell",index:i};var a=null===(n=e.getEl())||void 0===n?void 0:n.querySelectorAll("[data-test=resize]"),l=f()(a,r.activeElement);return l>-1?{target:"resizeButton",index:l}:void 0}}},{key:"getOffset",value:function(e){var t=V(),n=e.getBoundingClientRect();return{top:n.top+t.pageYOffset,left:n.left+t.pageXOffset}}},{key:"applyHeadFocusState",value:function(e,t){var n,r,o,i,a=t.target,l=t.index;if("headCell"===a)o=null==e||null===(i=e.getEl())||void 0===i?void 0:i.children[0].children[l];else if("resizeButton"===a){var c;o=null==e||null===(c=e.getEl())||void 0===c?void 0:c.querySelectorAll("[data-test=resize]")[l]}null===(n=o)||void 0===n||null===(r=n.focus)||void 0===r||r.call(n)}}]),jr(n,[{key:"componentDidUpdate",value:function(e){var t=this.head,n=this.headTable;if(t&&n){var r=t.getCellWidths();v()(this.state.cellWidths,r)||this.updateDockedHeadState()}"inline"===e.headType&&"inline"!==this.props.headType&&this.updateDockedHeadState()}},{key:"shouldComponentUpdate",value:function(e,t){return!!this.props.dockScrollBar||!v()(this.props,e)||!v()(this.state,t)}},{key:"componentDidMount",value:function(){this.updateDockedHeadState()}},{key:"componentWillUnmount",value:function(){this.handleScroll.cancel(),this.handleResize.cancel(),this.cleanupDrag()}},{key:"createHead",value:function(e){var t=this.props,n=t.actions,r=t.actionsColumnWidth,i=t.onRequestMoveColumn,a=t.onRequestMoveRow,l=t.onRequestResizeColumn,c=t.onRequestToggleAllRows,s=t.rowExpansion,u=t.rowSelection,p=this.state.dragIndex,d=o.Children.toArray(e.props.children).filter(o.isValidElement),f=n.filter(o.isValidElement);return(0,o.cloneElement)(e,{actions:f,actionsColumnWidth:r,dragIndex:p,dragPosition:this.state.dragPosition,hasInfoColumn:"none"!==s,hasDragColumn:!!a,onAutosizeColumn:this.handleAutosizeColumn,onDragStart:i?this.handleDragStart:void 0,onRequestMoveColumn:i,onRequestResizeColumn:l,onRequestToggleAllRows:c,ref:this.handleHeadMount,rowSelection:u},d)}},{key:"createBody",value:function(e){var t=this.props.actions.filter(o.isValidElement);return(0,o.cloneElement)(e,{actions:t.length>0,movableColumns:!!this.props.onRequestMoveColumn,onRequestMoveRow:this.props.onRequestMoveRow,primaryColumnIndex:this.props.primaryColumnIndex,rowExpansion:this.props.rowExpansion,stripeRows:this.props.stripeRows})}},{key:"isInline",value:function(){return"inline"===this.props.headType}},{key:"headerIsDocked",value:function(){return"docked"===this.props.headType}},{key:"isFixed",value:function(){return"fixed"===this.props.headType}},{key:"showDockedHeader",value:function(){var e=V();if(!(this.headerIsDocked()&&this.table&&this.head&&this.tableContainer))return!1;var t=this.props.dockOffset,r=n.getOffset(this.tableContainer).top;return e.pageYOffset>=r-t}},{key:"showDockedScrollBar",value:function(){var e=V();if(!this.props.dockScrollBar||!this.table||!this.tableContainer)return!1;var t=this.tableContainer.getBoundingClientRect();return t.bottom>e.innerHeight&&t.top{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{default:()=>me});const o=n(6540);var i=t.n(o);const a=n(5556);var l=t.n(a);const c=n(7521);var s=t.n(c);const u=n(9453);var p=t.n(u);const d=n(6620);var f=t.n(d);const h=n(3421);var v=t.n(h);const b=n(7801),m=n(6283);var y=t.n(m);const g=n(4839);var x=t.n(g);const w=n(8911);var O=t.n(w);const C=n(787);var S=t.n(C);const k=n(4345);var E=t.n(k);const j=n(671);var _=t.n(j);const P=n(8967),I=n(2390),T=n(259),R=n(1850);var D=t.n(R);function M(){return M=Object.assign||function(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}(e,["append","autoCapitalize","autoComplete","autoCorrect","autoFocus","children","className","classNamePrivate","disabled","describedBy","elementRef","error","inline","inputClassName","inputId","labelledBy","multiline","maxLength","name","passwordVisibilityToggle","placeholder","prepend","required","spellCheck","tabIndex","title","type","useSyntheticPlaceholder"]),N=le(le({role:"textbox"},v()(L,(function(e,t){return"role"===t||0===t.indexOf("aria-")}))),{},{"aria-describedby":d,"aria-labelledby":x,"aria-invalid":b||void 0}),$=f()(L,["inputRef","onBlur","onChange","onFocus","onKeyDown","onSelect","onInputClick","rowsMax","rowsMin"].concat(function(e){return function(e){if(Array.isArray(e))return ie(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return ie(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)?ie(e,t):void 0}}(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.")}()}(p()(N)))),B=this.getDisplayValue(),V={className:(0,I.toClassName)(c,y),$append:t||void 0,$error:b,$prepend:j||void 0},H=this.state.hideVisibility?"password":"text",F=S?H:M,z=le(le({},N),{},{"data-test":"textbox",autoCapitalize:n,autoComplete:r,autoCorrect:o,autoFocus:a,id:g,maxLength:O,placeholder:k&&!A?k:void 0,name:C,onChange:this.handleInputChange,onKeyDown:this.handleInputKeyDown,onSelect:this.handleInputSelect,onClick:this.handleInputClick,onFocus:this.handleInputFocus,onBlur:this.handleInputBlur,ref:this.handleInputMount,required:P,spellCheck:T,style:{height:this.state.height},title:D,tabIndex:R,type:F,value:B,$error:b}),q=A&&k&&!B,W="password"===M||S?void 0:B,K="time"===M,U=!!this.renderEndAdornment(),X=!!this.renderStartAdornment();return w?i().createElement(_(),this.props):i().createElement(G,oe({tabIndex:-1,$isTimeInput:K,className:(0,I.toClassName)(c,s),"data-test":"text","data-test-value":W,elementRef:h,flex:!0,inline:m},$),this.renderStartAdornment(),i().createElement(Z,oe({$hasEndAdornment:U,$hasStartAdornment:X,disabled:u},V),X&&i().createElement(ee,{$width:this.state.startAdornmentWidth}),u?i().createElement(Y,oe({className:(0,I.toClassName)(c,s),"data-test":"textbox",disabled:!0,readOnly:!0,type:F,value:B,placeholder:k&&!A?k:void 0},N)):i().createElement(Y,oe({},z,{onClick:this.handleInputClick})),q&&i().createElement(E(),null,k),q&&i().createElement(Q,{$endAdornmentWidth:this.state.endAdornmentWidth,$hasBothAdornment:X&&U,$hasEndAdornment:U,$hasStartAdornment:X,$startAdornmentWidth:this.state.startAdornmentWidth,"aria-hidden":!0,"data-role":"placeholder"},k),l,U&&i().createElement(te,{$width:this.state.endAdornmentWidth})),this.renderEndAdornment())}}]),n}(o.Component);fe(ve,"propTypes",he),fe(ve,"defaultProps",{appearance:"default",append:!1,autoFocus:!1,canClear:!1,disabled:!1,error:!1,inline:!1,multiline:!1,placeholder:"",prepend:!1,rowsMax:8,rowsMin:2,tabIndex:0,type:"text",passwordVisibilityToggle:!1}),fe(ve,"componentType","Text"),fe(ve,"contextType",b.ControlGroupContext);var be=(0,P.withSplunkTheme)(ve);be.propTypes=ve.propTypes,be.componentType=ve.componentType;const me=be;e.exports=r})()},671:(e,t,n)=>{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{default:()=>fe});const o=n(6540);var i=t.n(o);const a=n(5556);var l=t.n(a);const c=n(5449);var s=t.n(c);const u=n(7521);var p=t.n(u);const d=n(9453);var f=t.n(d);const h=n(605);var v=t.n(h);const b=n(6620);var m=t.n(b);const y=n(3421);var g=t.n(y);const x=n(1285);var w=t.n(x);const O=n(7801),C=n(6283);var S=t.n(C);const k=n(4839);var E=t.n(k);const j=n(8911);var _=t.n(j);const P=n(8973);var I=t.n(P);const T=n(787);var R=t.n(T);const D=n(2390),M=n(8967),A=n(259),L=n(2568);var N=t.n(L);const $=n(7596);var B=t.n($);const V=n(181);var H=t.n(V),F=(0,L.css)(["cursor:not-allowed;color:",";&::placeholder{color:",";}"],(0,M.pick)({enterprise:M.variables.textDisabledColor,prisma:M.variables.contentColorDisabled}),(0,M.pick)({enterprise:M.variables.textDisabledColor,prisma:M.variables.contentColorDisabled})),z=(0,L.css)(["border-radius:",";cursor:pointer;font-size:0.83333em;flex-grow:0;",";&:not([disabled]){color:",";}"],(0,M.pick)({enterprise:M.variables.borderRadius,prisma:"50%"}),(0,M.pick)({enterprise:(0,L.css)(["width:",";height:",";"],M.variables.inputHeight,M.variables.inputHeight),prisma:{comfortable:(0,L.css)(["width:26px;min-width:26px;min-height:26px;margin:8px;padding:0;"]),compact:(0,L.css)(["width:22px;min-width:22px;min-height:22px;margin:8px;padding:0;"])}}),(0,M.pick)({enterprise:{light:M.variables.gray60,dark:M.variables.white},prisma:M.variables.contentColorMuted})),q=N()(H()).withConfig({displayName:"TextAreaStyles__StyledClearButton",componentId:"gfy8yp-0"})(["display:none;visibility:hidden;",""],z),W=N().span.withConfig({displayName:"TextAreaStyles__StyledSearchIconWrapper",componentId:"gfy8yp-1"})(["",";color:",";pointer-events:none;padding:",";",""],M.mixins.reset("inline-block"),(0,M.pick)({enterprise:{light:M.variables.gray60,dark:M.variables.white},prisma:M.variables.contentColorMuted}),(0,M.pick)({comfortable:"0 8px",compact:"0 6px"}),(function(e){return e.$disabled&&(0,L.css)(["",""],(0,M.pick)({enterprise:(0,L.css)(["color:",";"],M.variables.textDisabledColor),prisma:(0,L.css)(["color:",";"],M.variables.contentColorDisabled)}))})),K=N()(B()).withConfig({displayName:"TextAreaStyles__StyledBox",componentId:"gfy8yp-2"})(["display:flex;justify-content:space-between;flex-grow:1;flex-shrink:1;position:relative;&[data-inline]{width:230px;flex-basis:230px;[data-inline] + &{margin-left:",";}}&:focus-within:not([disabled]){","{","}","{visibility:visible;display:block;}}"],(0,M.pick)({enterprise:M.variables.spacingHalf,prisma:M.variables.spacingSmall}),W,(0,M.pick)({enterprise:(0,L.css)(["display:none;"])}),q),U=N().span.withConfig({displayName:"TextAreaStyles__StyledTextAreaWrapper",componentId:"gfy8yp-3"})([""," flex-grow:1;min-height:",";position:relative;overflow:hidden;border:1px solid ",";border-radius:",";box-sizing:border-box;background-color:",";box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);padding:",";"," "," &:hover:not([disabled]){border-color:",";}&:focus-within:not([disabled]){","}"," "," "," ",""],M.mixins.reset("inline-flex"),M.variables.inputHeight,(0,M.pick)({enterprise:{light:M.variables.gray60,dark:M.variables.gray20},prisma:M.variables.interactiveColorBorder}),M.variables.borderRadius,(0,M.pick)({enterprise:{light:M.variables.white,dark:M.variables.gray22},prisma:M.variables.transparent}),(0,M.pick)({enterprise:"0px 0px 0px 10px",prisma:"0px 12px"}),(function(e){return e.$hasEndAdornment&&(0,L.css)(["padding-right:0;"])}),(function(e){return e.$hasStartAdornment&&(0,L.css)(["padding-left:0;"])}),(0,M.pick)({enterprise:{light:M.variables.gray60,dark:M.variables.gray20},prisma:M.variables.interactiveColorBorderHover}),(0,M.pick)({enterprise:(0,L.css)(["box-shadow:",";color:",";"],M.variables.focusShadow,M.variables.textColor),prisma:(0,L.css)(["border-color:",";color:",";"],M.variables.interactiveColorPrimary,M.variables.contentColorActive)}),(function(e){return e.$error&&(0,L.css)(["&,&:hover:not([disabled]){border-color:",";}&:focus-within:not([disabled]){","}"],(0,M.pick)({enterprise:M.variables.errorColor,prisma:M.variables.accentColorNegative}),(0,M.pick)({enterprise:(0,L.css)(["box-shadow:",";color:",";"],M.variables.focusShadow,M.variables.textColor),prisma:(0,L.css)(["border-color:",";color:",";"],M.variables.interactiveColorPrimary,M.variables.contentColorActive)}))}),(function(e){return e.$append&&(0,L.css)(["margin-right:-1px;border-top-right-radius:0;border-bottom-right-radius:0;border-right:none;"])}),(function(e){return e.$prepend&&(0,L.css)(["border-top-left-radius:0;border-bottom-left-radius:0;"])}),(function(e){return e.disabled&&(0,L.css)([""," box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);"],(0,M.pick)({enterprise:{light:(0,L.css)(["background-color:",";border-color:",";"],M.variables.gray96,M.variables.gray92),dark:(0,L.css)(["background-color:",";border-color:",";"],M.variables.gray22,M.variables.gray30)},prisma:(0,L.css)(["border-color:",";"],M.variables.interactiveColorBorderDisabled)}))})),G=N().textarea.withConfig({displayName:"TextAreaStyles__StyledTextArea",componentId:"gfy8yp-4"})(["",";outline-style:none;border:0;background:transparent;color:",";flex-grow:1;font-family:",";font-size:inherit;line-height:inherit;padding-top:",";padding-bottom:",";padding-right:",";position:relative;resize:none;overflow:auto;white-space:pre-wrap;&::placeholder{color:",";opacity:1;}"," ",""],M.mixins.reset("inline-flex"),(0,M.pick)({enterprise:M.variables.textColor,prisma:M.variables.contentColorActive}),M.variables.sansFontFamily,(0,M.pick)({enterprise:{comfortable:M.variables.spacingQuarter,compact:"3px"},prisma:{comfortable:M.variables.spacingSmall,compact:"5px"}}),(0,M.pick)({enterprise:{comfortable:M.variables.spacingQuarter,compact:"3px"},prisma:{comfortable:M.variables.spacingSmall,compact:"5px"}}),(0,M.pick)({enterprise:"10px",prisma:"14px"}),M.variables.contentColorMuted,(function(e){return e.$error&&(0,L.css)(["&,&:hover{color:",";}"],(0,M.pick)({enterprise:{light:M.variables.errorColorD10,dark:M.variables.errorColorL20},prisma:M.variables.contentColorActive}))}),(function(e){return e.disabled&&F})),Z=(N()(H()).withConfig({displayName:"TextAreaStyles__StyledVisibilityToggle",componentId:"gfy8yp-5"})(["",""],z),N().span.withConfig({displayName:"TextAreaStyles__StyledPlaceholder",componentId:"gfy8yp-6"})(["pointer-events:none;color:",";position:absolute;overflow:hidden;font-size:inherit;line-height:inherit;height:",";margin-right:",";",";",";",""],(0,M.pick)({enterprise:M.variables.textGray,prisma:M.variables.contentColorMuted}),M.variables.lineHeight,(0,M.pick)({enterprise:"10px",prisma:"14px"}),(function(e){var t=e.$hasStartAdornment,n=e.$startAdornmentWidth;return t&&(n?(0,L.css)(["margin-left:","px;"],n):(0,L.css)(["margin-left:",";"],(0,M.pick)({enterprise:{comfortable:"30px",compact:"26px"},prisma:{comfortable:"38px",compact:"30px"}})))}),(function(e){var t=e.$hasEndAdornment,n=e.$endAdornmentWidth;return t&&(n?(0,L.css)(["max-width:calc( 100% - "," - ","px );"],(0,M.pick)({enterprise:"10px",prisma:"14px"}),n):(0,L.css)(["max-width:calc( 100% - "," - "," );"],(0,M.pick)({enterprise:"10px",prisma:"14px"}),(0,M.pick)({enterprise:{comfortable:"30px",compact:"26px"},prisma:{comfortable:"38px",compact:"30px"}})))}),(function(e){var t=e.$hasBothAdornment,n=e.$endAdornmentWidth,r=e.$startAdornmentWidth;return t&&(0,L.css)(["max-width:calc(100% - ","px - ","px);"],r,n)})),(0,L.css)(["display:inline-flex;align-items:center;justify-content:center;height:",";pointer-events:none;"],(0,M.pick)({enterprise:{comfortable:"30px",compact:"26px"},prisma:{comfortable:"38px",compact:"30px"}}))),Y=N().div.withConfig({displayName:"TextAreaStyles__StyledStartAdornmentHolder",componentId:"gfy8yp-7"})([""," ",";"],Z,(function(e){var t=e.$width;return t?(0,L.css)(["min-width:","px;"],t):(0,L.css)(["min-width:",";"],(0,M.pick)({enterprise:{comfortable:"30px",compact:"26px"},prisma:{comfortable:"38px",compact:"30px"}}))})),X=N().div.withConfig({displayName:"TextAreaStyles__StyledEndAdornmentHolder",componentId:"gfy8yp-8"})([""," ",";"],Z,(function(e){var t=e.$width;return t?(0,L.css)(["min-width:","px;"],t):(0,L.css)(["min-width:",";"],(0,M.pick)({enterprise:{comfortable:"30px",compact:"26px"},prisma:{comfortable:"38px",compact:"30px"}}))})),Q=N().div.withConfig({displayName:"TextAreaStyles__StyledAdornment",componentId:"gfy8yp-9"})(["display:inline-flex;align-items:center;justify-content:center;position:absolute;pointer-events:none;z-index:1;height:",";color:",";",";",";",""],(0,M.pick)({enterprise:{comfortable:"30px",compact:"26px"},prisma:{comfortable:"38px",compact:"30px"}}),(0,M.pick)({enterprise:{light:M.variables.gray60,dark:M.variables.white},prisma:M.variables.contentColorMuted}),(function(e){return"start"===e.$position?(0,L.css)(["top:1px;left:1px;"]):(0,L.css)(["top:1px;right:1px;"])}),(function(e){return e.disabled&&F}),(0,M.pick)({enterprise:(0,L.css)(["margin-left:-1px;margin-right:-1px;"])}));function J(e){return J="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},J(e)}function ee(){return ee=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=r){var f=n*l+c+s+u+p+1;d=Math.min(f,d)}var h=r*l+c+s+u+p+1;if(t!==(d=Math.max(h,d)))return d}return!1}({height:r.state.height,rowsMax:r.props.rowsMax,rowsMin:r.props.rowsMin,shadow:r.shadow});!1!==e&&r.setState({height:e})})),se(le(r),"renderEndAdornment",(function(){var e,t=r.props,n=t.appearance,o=t.endAdornment,a=t.disabled,l=t.canClear,c=t.splunkTheme,s=c.isPrisma,u=c.isEnterprise,p=c.isCompact?"20px":"24px",d={ref:function(e){r.endAdornment=e},disabled:a,$position:"end"};if(o)return i().createElement(Q,d,o);var f=null===(e=r.context.labelAttrs)||void 0===e?void 0:e.text,h=f?(0,A._)("Clear ".concat(f," text field")):(0,A._)("Clear text field");return s||"search"!==n?r.getDisplayValue()&&(s&&"search"===n||l)?i().createElement(Q,d,!a&&i().createElement(q,{"data-test":"clear",appearance:"secondary",onClick:r.handleClear,icon:i().createElement(S(),{"aria-label":h,inline:!1,width:p,height:p})})):void 0:i().createElement(Q,d,i().createElement(q,{appearance:"pill","data-test":"clear",inline:!1,icon:i().createElement(E(),{size:1,screenReaderText:h}),onClick:r.handleClear}),i().createElement(W,{$disabled:a},u?i().createElement(_(),{hideDefaultTooltip:!0,inline:!1,screenReaderText:null,size:"16px"}):i().createElement(R(),{height:p,width:p})))})),se(le(r),"renderStartAdornment",(function(){var e=r.props,t=e.appearance,n=e.startAdornment,o=e.splunkTheme,a=e.disabled,l=o.isPrisma,c=o.isCompact?"20px":"24px",s={ref:function(e){r.startAdornment=e},disabled:a,$position:"start"};return n?i().createElement(Q,s,n):l&&"search"===t?i().createElement(Q,s,i().createElement(W,{$disabled:a},i().createElement(R(),{"aria-label":"Search",height:c,width:c}))):void 0})),se(le(r),"getDisplayValue",(function(){return r.isControlled()?r.props.value:r.state.value})),r.controlledExternally=p()(e,"value"),r.state={value:e.defaultValue||""},n.validateRows(e),r.handleResize=w()(r.handleResize,100),r}return ie(n,null,[{key:"validateRows",value:function(e){e.rowsMin,e.rowsMax}}]),ie(n,[{key:"componentDidMount",value:function(){s()(this.syncHeightWithShadow),this.getAdornmentWidth()}},{key:"componentDidUpdate",value:function(e){this.syncHeightWithShadow(),n.validateRows(this.props),this.getAdornmentWidth()}},{key:"isControlled",value:function(){return this.controlledExternally}},{key:"blur",value:function(){var e;null===(e=this.input)||void 0===e||e.blur()}},{key:"focus",value:function(){var e;null===(e=this.input)||void 0===e||e.focus()}},{key:"select",value:function(){var e;null===(e=this.input)||void 0===e||e.select()}},{key:"render",value:function(){var e=this,t=this.props,n=t.append,r=t.autoCapitalize,o=t.autoComplete,a=t.autoCorrect,l=t.autoFocus,c=t.children,s=t.className,u=t.classNamePrivate,p=t.disabled,d=t.describedBy,h=t.elementRef,b=t.error,y=t.inline,x=t.inputClassName,w=t.inputId,O=t.labelledBy,C=t.maxLength,S=t.name,k=t.placeholder,E=t.prepend,j=t.required,_=t.spellCheck,P=t.tabIndex,T=t.title,R=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=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}(t,["append","autoCapitalize","autoComplete","autoCorrect","autoFocus","children","className","classNamePrivate","disabled","describedBy","elementRef","error","inline","inputClassName","inputId","labelledBy","maxLength","name","placeholder","prepend","required","spellCheck","tabIndex","title"]),M=re(re({},g()(R,(function(e,t){return"role"===t||0===t.indexOf("aria-")}))),{},{"aria-describedby":d,"aria-labelledby":O,"aria-invalid":b||void 0,"aria-multiline":!0}),A=m()(R,["inputRef","onBlur","onChange","onFocus","onKeyDown","onSelect","onInputClick","rowsMax","rowsMin"].concat(function(e){return function(e){if(Array.isArray(e))return te(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return te(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)?te(e,t):void 0}}(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.")}()}(f()(M)))),L=this.getDisplayValue(),N={className:(0,D.toClassName)(s,x),$append:n||void 0,$error:b,$prepend:E||void 0},$=re(re({},M),{},{"data-test":"textbox",autoCapitalize:r,autoComplete:o,autoCorrect:a,autoFocus:l,id:w,maxLength:C,placeholder:k,name:S,onChange:this.handleInputChange,onKeyDown:this.handleInputKeyDown,onSelect:this.handleInputSelect,onClick:this.handleInputClick,onFocus:this.handleInputFocus,onBlur:this.handleInputBlur,ref:this.handleInputMount,role:"textbox",required:j,spellCheck:_,style:{height:this.state.height},title:T,tabIndex:P,value:L,$error:b}),B=!!this.renderEndAdornment(),V=!!this.renderStartAdornment();return i().createElement(K,ee({tabIndex:-1,className:(0,D.toClassName)(s,u),"data-test":"text","data-test-value":L,elementRef:h,flex:!0,inline:y},A),this.renderStartAdornment(),i().createElement(U,ee({$hasEndAdornment:B,$hasStartAdornment:V,disabled:p},N),V&&i().createElement(Y,{$width:this.state.startAdornmentWidth}),i().createElement(G,{"aria-hidden":"true",onChange:v(),onClick:this.handleInputClick,style:{width:"100%",position:"absolute",overflow:"hidden",left:-1e4,top:-1e4},tabIndex:-1,ref:function(t){e.shadow=t},value:L}),p?i().createElement(G,ee({as:"textarea",className:(0,D.toClassName)(s,u),"data-multiline":"true","data-test":"text",disabled:!0,readOnly:!0,style:{height:this.state.height},value:L,placeholder:k,ref:function(t){e.shadow=t}},M)):i().createElement(G,ee({as:"textarea"},$,{onClick:this.handleInputClick})),i().createElement(I(),{target:window,eventType:"resize",listener:this.handleResize}),c,B&&i().createElement(X,{$width:this.state.endAdornmentWidth})),this.renderEndAdornment())}}]),n}(o.Component);se(pe,"propTypes",ue),se(pe,"defaultProps",{appearance:"default",append:!1,autoFocus:!1,canClear:!1,disabled:!1,error:!1,inline:!1,placeholder:"",prepend:!1,rowsMax:8,rowsMin:2,tabIndex:0}),se(pe,"componentType","TextArea"),se(pe,"contextType",O.ControlGroupContext);var de=(0,M.withSplunkTheme)(pe);de.propTypes=pe.propTypes,de.componentType=pe.componentType;const fe=de;e.exports=r})()},8546:(e,t,n)=>{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{default:()=>q});const o=n(6540);var i=t.n(o);const a=n(5556);var l=t.n(a);const c=n(7521);var s=t.n(c);const u=n(1285);var p=t.n(u);const d=n(9728);var f=t.n(d);const h=n(4345);var v=t.n(h);const b=n(8967),m=n(7478),y=n(259),g=n(1850);var x=t.n(g);function w(){return w=Object.assign||function(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:"mouseLeaveToggle";(null==e.relatedTarget||e.relatedTarget!==r.state.popoverEl&&e.relatedTarget!==r.state.popoverOuterEl)&&r.handleRequestClose(e,{reason:t})})),V($(r),"handleMouseLeavePopover",(function(e){r.handleMouseLeave(e,"mouseLeavePopover")})),V($(r),"handleMouseLeaveHitArea",(function(e){r.handleMouseLeave(e,"mouseLeaveHitArea")})),V($(r),"handleMouseMoveHitAreaImpl",(function(e){r.handleRequestClose(e,{reason:"mouseStopHitArea"})})),V($(r),"handleMouseMoveHitArea",p()(r.handleMouseMoveHitAreaImpl,10)),V($(r),"handleClick",(function(e){"notOnClick"!==r.props.closeWhen&&r.handleRequestClose(e,{reason:"toggleClick"})})),V($(r),"handleFocus",(function(e){r.handleRequestOpen(e,{reason:"focusToggle"})})),V($(r),"handleBlur",(function(e){r.handleRequestClose(e,{reason:"blurToggle"})})),V($(r),"handlePopoverOnRequestClose",(function(e){r.handleRequestClose(null,e)})),V($(r),"handleRequestClose",(function(e,t){var n=r.props.closeDelay;void 0!==r.timeout&&clearTimeout(r.timeout),r.timeout=setTimeout((function(){var n,o;r.isControlled()||r.setState({open:!1}),null===(n=(o=r.props).onRequestClose)||void 0===n||n.call(o,e,t)}),n)})),V($(r),"handleRequestOpen",(function(e,t){var n=r.props.openDelay,o="number"==typeof n?n:"primary"===n?300:750;void 0!==r.timeout&&clearTimeout(r.timeout),r.timeout=setTimeout((function(){var n,o,i=r.isOpen();r.isControlled()||r.setState({open:!0}),i||null===(n=(o=r.props).onRequestOpen)||void 0===n||n.call(o,e,t)}),o)})),r.controlledExternally=s()(e,"open"),r.popoverId=(0,m.createDOMID)("popover"),r.ariaId=(0,m.createDOMID)("aria-id"),r.state={anchorEl:null,open:!1,popoverEl:null,popoverOuterEl:null,hitAreaEl:null},r}return function(e,t,n){t&&L(e.prototype,t)}(n,[{key:"componentDidUpdate",value:function(){}},{key:"componentWillUnmount",value:function(){void 0!==this.timeout&&clearTimeout(this.timeout)}},{key:"isControlled",value:function(){return this.controlledExternally}},{key:"isOpen",value:function(){var e=!!this.props.content;return this.state.anchorEl&&this.isControlled()?this.props.open:e&&this.state.open}},{key:"render",value:function(){var e,t=this.props,n=t.appearance,r=t.children,a=t.content,l=t.defaultPlacement,c=t.elementRef,s=t.inline,u=(t.onRequestClose,t.onRequestOpen,t.splunkTheme),p=t.contentRelationship,d=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=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}(t,["appearance","children","content","defaultPlacement","elementRef","inline","onRequestClose","onRequestOpen","splunkTheme","contentRelationship"]),h=this.state.anchorEl,b=!!a,m=this.isOpen(),g=s?P:_,x=s?T:I,w=u.isPrisma,C=w?"below":"above";return"label"===p?e={labelledBy:this.ariaId,"aria-labelledby":this.ariaId}:"description"===p&&(e={describedBy:this.ariaId,"aria-describedby":this.ariaId}),i().createElement(g,A({"data-test":"tooltip","data-test-open":m,"data-test-popover-id":this.popoverId,ref:c},d),i().createElement(x,{onClick:this.handleClick,onFocus:this.handleFocus,onBlur:this.handleBlur,ref:this.handleMount,"data-test":"toggle"},b&&(0,o.isValidElement)(r)?(0,o.cloneElement)(r,e):r,b&&!r&&i().createElement(D,{"aria-describedby":this.ariaId},w?i().createElement(O,{hideDefaultTooltip:!0,screenReaderText:(0,y._)("More info"),style:{height:"22px",width:"22px"}}):i().createElement(i().Fragment,null,i().createElement("span",{"aria-hidden":"true"},"?"),i().createElement(v(),null,(0,y._)("More info")))),b&&i().createElement(v(),{"aria-hidden":"true",id:this.ariaId},a)),i().createElement(f(),{role:"tooltip",align:"center",anchor:h,animationConfig:{tension:400},appearance:n,closeReasons:["offScreen","escapeKey"],defaultPlacement:"theme"===l?C:l,id:this.popoverId,open:m,onRequestClose:this.handlePopoverOnRequestClose,elementRef:this.handlePopoverMount,hitAreaRef:this.handleHitAreaMount,outerRef:this.handlePopoverOuterMount},i().createElement(R,{$isLabel:"label"===p},a)))}}]),n}(o.Component);V(F,"propTypes",H),V(F,"defaultProps",{appearance:"inverted",closeDelay:300,closeWhen:"default",contentRelationship:"description",defaultPlacement:"theme",inline:!0,openDelay:"primary"});var z=(0,b.withSplunkTheme)(F);z.propTypes=F.propTypes;const q=z;e.exports=r})()},7198:(e,t,n)=>{(()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{default:()=>R});const o=n(6540);var i=t.n(o);const a=n(5556);var l=t.n(a);const c=n(9453);var s=t.n(c);const u=n(6620);var p=t.n(u);const d=n(6991),f=n(9095),h=n(2390),v=n(6529),b=n(2568);var m=t.n(b);const y=n(8967);var g=m()(v.animated.div).withConfig({displayName:"TransitionOpenStyles__Styled",componentId:"sc-1x58s0g-0"})(["",";",";"],y.mixins.reset("block"),(function(e){return e.$hideOverflow&&(0,b.css)(["overflow:hidden;"])})),x=m()(v.animated.div).withConfig({displayName:"TransitionOpenStyles__StyledInner",componentId:"sc-1x58s0g-1"})(["",";",";width:100%;"],y.mixins.reset("table"),y.mixins.clearfix());function w(e){return w="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},w(e)}function O(){return O=Object.assign||function(e){for(var t=1;t{(()=>{"use strict";var t={d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{default:()=>a});const o=n(6540);function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n{"use strict";function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.stringToKeywords=a,t.testPhrase=l,t.keywordLocationsAll=c,t.keywordLocations=function(e,t){var n=c(e,t);if(!n||n.length!==t.length)return!1;var r=n[0],o=r.start,i=r.end,a=[];function l(){a.push({start:o,end:i})}return n.slice(1).forEach((function(e){e.start>i?(l(),o=e.start,i=e.end):e.end>i&&(i=e.end)})),l(),a},t.filterByKeywords=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(e){return e},r=a(t);return e.filter((function(e){return l(n(e),r)}))};var r=i(n(8988)),o=i(n(9608));function i(e){return e&&e.__esModule?e:{default:e}}function a(e){return(0,o.default)(e)?(e.match(/(?:[^\s"]+|"[^"]*")+/g)||[]).map((function(e){return e.replace(/^"(.*)"$/,"$1").toLowerCase()})):[]}function l(e,t){if(!(0,o.default)(e))return!1;var n=e.toLowerCase();return t.every((function(e){return(0,r.default)(n,e)}))}function c(e,t){if(!(0,o.default)(e)||!t||!t.length)return!1;var n=e.toLowerCase();return t.reduce((function(e,t){var r=n.indexOf(t);return r>=0&&e.push({keyword:t,start:r,end:r+t.length}),e}),[]).sort((function(e,t){return e.start!==t.start?e.start>t.start?1:-1:e.end>t.end?1:-1}))}},376:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.sprintf=c,t.abbreviateNumber=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"en-us",n=(0,o.default)(e);return n<=1e3?n.toLocaleString(t):n<1e4?c((0,i._)("%sK"),(0,a.roundToDecimal)(n/1e3,-2).toLocaleString(t)):n<1e5?c((0,i._)("%sK"),(0,a.roundToDecimal)(n/1e3,-1).toLocaleString(t)):n<999500?c((0,i._)("%sK"),(0,a.roundToDecimal)(n/1e3,0).toLocaleString(t)):n<1e7?c((0,i._)("%sM"),(0,a.roundToDecimal)(n/1e6,-2).toLocaleString(t)):n<1e8?c((0,i._)("%sM"),(0,a.roundToDecimal)(n/1e6,-1).toLocaleString(t)):n<9995e5?c((0,i._)("%sM"),(0,a.roundToDecimal)(n/1e6,0).toLocaleString(t)):c((0,i._)("%sB"),n<1e10?(0,a.roundToDecimal)(n/1e9,-2).toLocaleString(t):n<1e11?(0,a.roundToDecimal)(n/1e9,-1).toLocaleString(t):(0,a.roundToDecimal)(n/1e9,0).toLocaleString(t))},t.bytesToFileSize=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"en-us",n=(e||0)/1024;if(n<0)throw new RangeError("bytes must be >= 0");if(0===Math.floor(n))return c((0,i._)("%s B"),e.toLocaleString(t));var r=n/1024;if(0===Math.floor(r))return c((0,i._)("%s KB"),(0,a.roundToDecimal)(n,-2).toLocaleString(t));var o=r/1024;if(0===Math.floor(o))return c((0,i._)("%s MB"),(0,a.roundToDecimal)(r,-2).toLocaleString(t));var l=o/1024;return 0===Math.floor(l)?c((0,i._)("%s GB"),(0,a.roundToDecimal)(o,-2).toLocaleString(t)):c((0,i._)("%s TB"),(0,a.roundToDecimal)(l,-2).toLocaleString(t))},t.smartTrim=function(e,t){var n=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).precomposed,r=void 0!==n&&n;if(!e||t<1||e.length<=t)return e;var o=r?"…":"...";if(1===t)return"".concat(e[0]).concat(o);var i=Math.ceil(e.length/2),a=e.length-t,l=Math.ceil(a/2),c=a-l;return"".concat(e.substring(0,i-l)).concat(o).concat(e.substring(i+c))};var r,o=(r=n(6565))&&r.__esModule?r:{default:r},i=n(259),a=n(4185),l=n(2145);function c(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.strictParseFloat=function(e){return a.test(e)?parseFloat(e):NaN},t.roundToDecimal=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return(0,o.default)(e,-1*t)},t.floorPowerOfTen=function(e){return Math.pow(10,Math.floor(Math.log(e)/Math.LN10))},t.isLessThanMinSafeInt=function(e){return!!(0,r.default)(e)&&e<=l},t.isGreaterThanMaxSafeInt=function(e){return!!(0,r.default)(e)&&e>=c};var r=i(n(5468)),o=i(n(5945));function i(e){return e&&e.__esModule?e:{default:e}}var a=/(^[-+]?[0-9]*[.]?[0-9]*$)|(^[-+]?[0-9][.]?[0-9]*e[-+]?[0-9][0-9]*$)/i,l=-9007199254740991,c=9007199254740991},2145:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.sprintfFormat=s,t.sprintfParse=p;var r=i(n(7521)),o=i(n(7058));function i(e){return e&&e.__esModule?e:{default:e}}function a(e){return a="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},a(e)}var l={notType:/[^T]/,notPrimitive:/[^v]/,number:/[diefg]/,numericArg:/[bcdiefguxX]/,json:/[j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,keyAccess:/^\.([a-z_][a-z_\d]*)/i,indexAccess:/^\[(\d+)\]/,sign:/^[+-]/};function c(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r=0),u.type){case"b":n=parseInt(n,10).toString(2);break;case"c":n=String.fromCharCode(parseInt(n,10));break;case"d":case"i":n=parseInt(n,10);break;case"j":n=JSON.stringify(n,null,u.width?parseInt(u.width,10):0);break;case"e":n=u.precision?parseFloat(n).toExponential(u.precision):parseFloat(n).toExponential();break;case"f":n=u.precision?parseFloat(n).toFixed(u.precision):parseFloat(n);break;case"g":n=u.precision?String(Number(n.toPrecision(u.precision))):parseFloat(n);break;case"o":n=(parseInt(n,10)>>>0).toString(8);break;case"s":n=String(n),n=u.precision?n.substring(0,u.precision):n;break;case"t":n=String(!!n),n=u.precision?n.substring(0,u.precision):n;break;case"T":n=Object.prototype.toString.call(n).slice(8,-1).toLowerCase(),n=u.precision?n.substring(0,u.precision):n;break;case"u":n=parseInt(n,10)>>>0;break;case"v":n=n.valueOf(),n=u.precision?n.substring(0,u.precision):n;break;case"x":n=(parseInt(n,10)>>>0).toString(16);break;case"X":n=(parseInt(n,10)>>>0).toString(16).toUpperCase()}l.json.test(u.type)?y+=n:(!l.number.test(u.type)||h&&!u.sign?v="":(v=h?"+":"-",n=n.toString().replace(l.sign,"")),d=u.padChar?"0"===u.padChar?"0":u.padChar.charAt(1):" ",f=u.width-(v+n).length,p=u.width&&f>0?(0,o.default)(d,f):"",y+=u.align?v+n+p:"0"===d?v+p+n:p+v+n)}return y}var u=Object.create(null);function p(e){if(u[e])return u[e];for(var t,n=e,r=0,o=[];n;){if(null!==(t=l.text.exec(n)))o.push(t[0]);else if(null!==(t=l.modulo.exec(n)))o.push("%");else{if(null===(t=l.placeholder.exec(n)))throw new SyntaxError("[sprintf] unexpected placeholder");if(t[2]){r|=1;var i=t[2],a=[],c=[];if(null===(a=l.key.exec(i)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(c.push(a[1]);""!==(i=i.substring(a[0].length));)if(null!==(a=l.keyAccess.exec(i)))c.push(a[1]);else{if(null===(a=l.indexAccess.exec(i)))throw new SyntaxError("[sprintf] failed to parse named argument key");c.push(a[1])}t[2]=c}else r|=2;if(3===r)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");o.push({placeholder:t[0],paramNo:t[1],keys:t[2],sign:t[3],padChar:t[4],align:t[5],width:t[6],precision:t[7],type:t[8]})}n=n.substring(t[0].length)}return u[e]=o,u[e]}},2679:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isIE11=function(){return!!navigator.userAgent.match(/Trident\/7\./)}},6894:(e,t)=>{"use strict";function n(e){return"object"!=typeof e||"toString"in e?e:Object.prototype.toString.call(e).slice(8,-1)}Object.defineProperty(t,"__esModule",{value:!0});var r="object"==typeof process&&!0;function o(e,t){if(!e){if(r)throw new Error("Invariant failed");throw new Error(t())}}t.invariant=o;var i=Object.prototype.hasOwnProperty,a=Array.prototype.splice,l=Object.prototype.toString;function c(e){return l.call(e).slice(8,-1)}var s=Object.assign||function(e,t){return u(t).forEach((function(n){i.call(t,n)&&(e[n]=t[n])})),e},u="function"==typeof Object.getOwnPropertySymbols?function(e){return Object.keys(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.keys(e)};function p(e){return Array.isArray(e)?s(e.constructor(e.length),e):"Map"===c(e)?new Map(e):"Set"===c(e)?new Set(e):e&&"object"==typeof e?s(Object.create(Object.getPrototypeOf(e)),e):e}var d=function(){function e(){this.commands=s({},f),this.update=this.update.bind(this),this.update.extend=this.extend=this.extend.bind(this),this.update.isEquals=function(e,t){return e===t},this.update.newContext=function(){return(new e).update}}return Object.defineProperty(e.prototype,"isEquals",{get:function(){return this.update.isEquals},set:function(e){this.update.isEquals=e},enumerable:!0,configurable:!0}),e.prototype.extend=function(e,t){this.commands[e]=t},e.prototype.update=function(e,t){var n=this,r="function"==typeof t?{$apply:t}:t;Array.isArray(e)&&Array.isArray(r)||o(!Array.isArray(r),(function(){return"update(): You provided an invalid spec to update(). The spec may not contain an array except as the value of $set, $push, $unshift, $splice or any custom command allowing an array value."})),o("object"==typeof r&&null!==r,(function(){return"update(): You provided an invalid spec to update(). The spec and every included key path must be plain objects containing one of the following commands: "+Object.keys(n.commands).join(", ")+"."}));var a=e;return u(r).forEach((function(t){if(i.call(n.commands,t)){var o=e===a;a=n.commands[t](r[t],a,r,e),o&&n.isEquals(a,e)&&(a=e)}else{var l="Map"===c(e)?n.update(e.get(t),r[t]):n.update(e[t],r[t]),s="Map"===c(a)?a.get(t):a[t];n.isEquals(l,s)&&(void 0!==l||i.call(e,t))||(a===e&&(a=p(e)),"Map"===c(a)?a.set(t,l):a[t]=l)}})),a},e}();t.Context=d;var f={$push:function(e,t,n){return v(t,n,"$push"),e.length?t.concat(e):t},$unshift:function(e,t,n){return v(t,n,"$unshift"),e.length?e.concat(t):t},$splice:function(e,t,r,i){return function(e,t){o(Array.isArray(e),(function(){return"Expected $splice target to be an array; got "+n(e)})),m(t.$splice)}(t,r),e.forEach((function(e){m(e),t===i&&e.length&&(t=p(i)),a.apply(t,e)})),t},$set:function(e,t,n){return function(e){o(1===Object.keys(e).length,(function(){return"Cannot have more than one key in an object with $set"}))}(n),e},$toggle:function(e,t){b(e,"$toggle");var n=e.length?p(t):t;return e.forEach((function(e){n[e]=!t[e]})),n},$unset:function(e,t,n,r){return b(e,"$unset"),e.forEach((function(e){Object.hasOwnProperty.call(t,e)&&(t===r&&(t=p(r)),delete t[e])})),t},$add:function(e,t,n,r){return y(t,"$add"),b(e,"$add"),"Map"===c(t)?e.forEach((function(e){var n=e[0],o=e[1];t===r&&t.get(n)!==o&&(t=p(r)),t.set(n,o)})):e.forEach((function(e){t!==r||t.has(e)||(t=p(r)),t.add(e)})),t},$remove:function(e,t,n,r){return y(t,"$remove"),b(e,"$remove"),e.forEach((function(e){t===r&&t.has(e)&&(t=p(r)),t.delete(e)})),t},$merge:function(e,t,r,i){var a,l;return a=t,o((l=e)&&"object"==typeof l,(function(){return"update(): $merge expects a spec of type 'object'; got "+n(l)})),o(a&&"object"==typeof a,(function(){return"update(): $merge expects a target of type 'object'; got "+n(a)})),u(e).forEach((function(n){e[n]!==t[n]&&(t===i&&(t=p(i)),t[n]=e[n])})),t},$apply:function(e,t){var r;return o("function"==typeof(r=e),(function(){return"update(): expected spec of $apply to be a function; got "+n(r)+"."})),e(t)}},h=new d;function v(e,t,r){o(Array.isArray(e),(function(){return"update(): expected target of "+n(r)+" to be an array; got "+n(e)+"."})),b(t[r],r)}function b(e,t){o(Array.isArray(e),(function(){return"update(): expected spec of "+n(t)+" to be an array; got "+n(e)+". Did you forget to wrap your parameter in an array?"}))}function m(e){o(Array.isArray(e),(function(){return"update(): expected spec of $splice to be an array of arrays; got "+n(e)+". Did you forget to wrap your parameters in an array?"}))}function y(e,t){var r=c(e);o("Map"===r||"Set"===r,(function(){return"update(): "+n(t)+" expects a target of type Set or Map; got "+n(r)}))}t.isEquals=h.update.isEquals,t.extend=h.extend,t.default=h.update,t.default.default=e.exports=s(t.default,t)},4602:e=>{e.exports=function(e,t){for(var n=null==e?0:e.length;n--&&!1!==t(e[n],n,e););return e}},1550:(e,t,n)=>{var r=n(8866),o=n(7086),i=n(4813),a=n(8449),l=n(9258),c=n(750);e.exports=function(e,t,n,s){var u=-1,p=o,d=!0,f=e.length,h=[],v=t.length;if(!f)return h;n&&(t=a(t,l(n))),s?(p=i,d=!1):t.length>=200&&(p=c,d=!1,t=new r(t));e:for(;++u{var r=n(9352),o=n(736)(r,!0);e.exports=o},9352:(e,t,n)=>{var r=n(8158),o=n(9453);e.exports=function(e,t){return e&&r(e,t,o)}},8158:(e,t,n)=>{var r=n(5758)(!0);e.exports=r},6116:(e,t,n)=>{var r=n(4837),o=n(6266);e.exports=function(e,t){return r(e,t,(function(t,n){return o(e,n)}))}},4837:(e,t,n)=>{var r=n(8517),o=n(5857),i=n(2624);e.exports=function(e,t,n){for(var a=-1,l=t.length,c={};++a{var t=Math.floor;e.exports=function(e,n){var r="";if(!e||n<1||n>9007199254740991)return r;do{n%2&&(r+=e),(n=t(n/2))&&(e+=e)}while(n);return r}},5857:(e,t,n)=>{var r=n(2752),o=n(2624),i=n(7566),a=n(1002),l=n(7574);e.exports=function(e,t,n,c){if(!a(e))return e;for(var s=-1,u=(t=o(t,e)).length,p=u-1,d=e;null!=d&&++s{var r=n(1912);e.exports=function(e,t){var n;return r(e,(function(e,r,o){return!(n=t(e,r,o))})),!!n}},3340:(e,t,n)=>{var r=n(8866),o=n(7086),i=n(4813),a=n(750),l=n(5466),c=n(5585);e.exports=function(e,t,n){var s=-1,u=o,p=e.length,d=!0,f=[],h=f;if(n)d=!1,u=i;else if(p>=200){var v=t?null:l(e);if(v)return c(v);d=!1,u=a,h=new r}else h=t?[]:f;e:for(;++s{var r=n(1227);e.exports=function(e){return"function"==typeof e?e:r}},6591:(e,t,n)=>{var r=n(6732),o=n(5831),i=n(9453);e.exports=function(e){return function(t,n,a){var l=Object(t);if(!o(t)){var c=r(n,3);t=i(t),n=function(e){return c(l[e],e,l)}}var s=e(t,n,a);return s>-1?l[c?t[s]:s]:void 0}}},8658:(e,t,n)=>{var r=n(7668),o=n(4072),i=n(6565),a=n(4537),l=r.isFinite,c=Math.min;e.exports=function(e){var t=Math[e];return function(e,n){if(e=i(e),(n=null==n?0:c(o(n),292))&&l(e)){var r=(a(e)+"e").split("e"),s=t(r[0]+"e"+(+r[1]+n));return+((r=(a(s)+"e").split("e"))[0]+"e"+(+r[1]-n))}return t(e)}}},5466:(e,t,n)=>{var r=n(1458),o=n(605),i=n(5585),a=r&&1/i(new r([,-0]))[1]==1/0?function(e){return new r(e)}:o;e.exports=a},344:(e,t,n)=>{var r=n(6202),o=n(9486),i=n(8830),a=o((function(e,t){r(t,i(t),e)}));e.exports=a},6561:(e,t,n)=>{var r=n(2816);e.exports=function(){if(!arguments.length)return[];var e=arguments[0];return r(e)?e:[e]}},127:(e,t,n)=>{var r=n(7963),o=n(7175),i=n(5933),a=n(8830),l=Object.prototype,c=l.hasOwnProperty,s=r((function(e,t){e=Object(e);var n=-1,r=t.length,s=r>2?t[2]:void 0;for(s&&i(t[0],t[1],s)&&(r=1);++n{e.exports=n(344)},3578:(e,t,n)=>{var r=n(6591)(n(2980));e.exports=r},2980:(e,t,n)=>{var r=n(6556),o=n(6732),i=n(4072),a=Math.max;e.exports=function(e,t,n){var l=null==e?0:e.length;if(!l)return-1;var c=null==n?0:i(n);return c<0&&(c=a(l+c,0)),r(e,o(t,3),c)}},7527:(e,t,n)=>{var r=n(2730),o=n(1912),i=n(3795),a=n(2816);e.exports=function(e,t){return(a(e)?r:o)(e,i(t))}},645:(e,t,n)=>{var r=n(4602),o=n(2364),i=n(3795),a=n(2816);e.exports=function(e,t){return(a(e)?r:o)(e,i(t))}},3704:(e,t,n)=>{var r=n(8784),o=n(4072),i=Math.max;e.exports=function(e,t,n){var a=null==e?0:e.length;if(!a)return-1;var l=null==n?0:o(n);return l<0&&(l=i(a+l,0)),r(e,t,l)}},8897:(e,t,n)=>{var r=n(6153);e.exports=function(e,t){return r(e,t)}},7218:e=>{e.exports=function(e){return null==e}},5468:(e,t,n)=>{var r=n(261),o=n(6357);e.exports=function(e){return"number"==typeof e||o(e)&&"[object Number]"==r(e)}},605:e=>{e.exports=function(){}},8524:(e,t,n)=>{var r=n(6116),o=n(5789)((function(e,t){return null==e?{}:r(e,t)}));e.exports=o},3421:(e,t,n)=>{var r=n(8449),o=n(6732),i=n(4837),a=n(9148);e.exports=function(e,t){if(null==e)return{};var n=r(a(e),(function(e){return[e]}));return t=o(t),i(e,n,(function(e,n){return t(e,n[0])}))}},7058:(e,t,n)=>{var r=n(4810),o=n(5933),i=n(4072),a=n(4537);e.exports=function(e,t,n){return t=(n?o(e,t,n):void 0===t)?1:i(t),r(a(e),t)}},5945:(e,t,n)=>{var r=n(8658)("round");e.exports=r},5265:(e,t,n)=>{var r=n(2479),o=n(6732),i=n(6953),a=n(2816),l=n(5933);e.exports=function(e,t,n){var c=a(e)?r:i;return n&&l(e,t,n)&&(t=void 0),c(e,o(t,3))}},3422:(e,t,n)=>{var r=n(4537);e.exports=function(e){return r(e).toUpperCase()}},4180:(e,t,n)=>{var r=n(3340);e.exports=function(e){return e&&e.length?r(e):[]}},3769:(e,t,n)=>{var r=n(1550),o=n(7963),i=n(3956),a=o((function(e,t){return i(e)?r(e,t):[]}));e.exports=a},2922:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>I});var r=n(6540),o=n(961);function i(e){var t=!1;return function(){t||(console.warn(e),t=!0)}}i("\n>> Error, via react-flip-move <<\n\nYou provided a stateless functional component as a child to . Unfortunately, SFCs aren't supported, because Flip Move needs access to the backing instances via refs, and SFCs don't have a public instance that holds that info.\n\nPlease wrap your components in a native element (eg.
), or a non-functional component.\n"),i("\n>> Error, via react-flip-move <<\n\nYou provided a primitive (text or number) node as a child to . Flip Move needs containers with unique keys to move children around.\n\nPlease wrap your value in a native element (eg. ), or a component.\n");var a,l,c=i("\n>> Warning, via react-flip-move <<\n\nWhen using \"wrapperless\" mode (by supplying 'typeName' of 'null'), strange things happen when the direct parent has the default \"static\" position.\n\nFlipMove has added 'position: relative' to this node, to ensure Flip Move animates correctly.\n\nTo avoid seeing this warning, simply apply a non-static position to that parent node.\n"),s=i("\n>> Warning, via react-flip-move <<\n\nOne or more of Flip Move's child elements have the html attribute 'disabled' set to true.\n\nPlease note that this will cause animations to break in Internet Explorer 11 and below. Either remove the disabled attribute or set 'animation' to false.\n"),u={elevator:{from:{transform:"scale(0)",opacity:"0"},to:{transform:"",opacity:""}},fade:{from:{opacity:"0"},to:{opacity:""}},accordionVertical:{from:{transform:"scaleY(0)",transformOrigin:"center top"},to:{transform:"",transformOrigin:"center top"}},accordionHorizontal:{from:{transform:"scaleX(0)",transformOrigin:"left center"},to:{transform:"",transformOrigin:"left center"}},none:null},p={elevator:{from:{transform:"scale(1)",opacity:"1"},to:{transform:"scale(0)",opacity:"0"}},fade:{from:{opacity:"1"},to:{opacity:"0"}},accordionVertical:{from:{transform:"scaleY(1)",transformOrigin:"center top"},to:{transform:"scaleY(0)",transformOrigin:"center top"}},accordionHorizontal:{from:{transform:"scaleX(1)",transformOrigin:"left center"},to:{transform:"scaleX(0)",transformOrigin:"left center"}},none:null},d=u,f="elevator",h=function(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:[],n={};return Object.keys(e).forEach((function(r){-1===t.indexOf(r)&&(n[r]=e[r])})),n}(this.props,n);return r.style=g({position:"relative"},r.style),t.delegated=r,t},n.prototype.convertTimingProp=function(e){var t=this.props[e],r="number"==typeof t?t:parseInt(t,10);return isNaN(r)?n.defaultProps[e]:r},n.prototype.convertAnimationProp=function(e,t){switch(void 0===e?"undefined":m(e)){case"boolean":return t[e?f:"none"];case"string":return-1===Object.keys(t).indexOf(e)?t[f]:t[e];default:return e}},n.prototype.render=function(){return r.createElement(e,this.convertProps(this.props))},n}(r.Component),t.defaultProps={easing:"ease-in-out",duration:350,delay:0,staggerDurationBy:0,staggerDelayBy:0,typeName:"div",enterAnimation:f,leaveAnimation:f,disableAllAnimations:!1,getPosition:function(e){return e.getBoundingClientRect()},maintainContainerHeight:!1,verticalAlignment:"top"},n}function C(e){var t=e.domNode,n=e.styles;Object.keys(n).forEach((function(e){t.style.setProperty(b(e),n[e])}))}var S=function(e){var t=e.childDomNode,n={top:0,left:0,right:0,bottom:0,height:0,width:0},r=e.childBoundingBox||n,o=e.parentBoundingBox||n,i=(0,e.getPosition)(t),a=i.top-o.top,l=i.left-o.left;return[r.left-l,r.top-a]},k=function(e,t){var n=t.delay,r=t.duration,o=t.staggerDurationBy,i=t.staggerDelayBy,a=t.easing;return n+=e*i,r+=e*o,["transform","opacity"].map((function(e){return e+" "+r+"ms "+a+" "+n+"ms"})).join(", ")},E=function(){var e={transition:"transitionend","-o-transition":"oTransitionEnd","-moz-transition":"transitionend","-webkit-transition":"webkitTransitionEnd"};if("undefined"==typeof document)return"";var t=document.createElement("fakeelement"),n=h((function(e){return void 0!==t.style.getPropertyValue(e)}),Object.keys(e));return n?e[n]:""}(),j=!E;function _(e){return e.key||""}function P(e){return r.Children.toArray(e)}const I=O(function(e){function t(){var n,r;y(this,t);for(var i=arguments.length,a=Array(i),l=0;l0?a+"px":"0"}})}}({domNode:this.heightPlaceholderData.domNode,parentData:this.parentData,getPosition:o})),this.state.children.forEach((function(t){var n=e.getChildData(_(t)).domNode;n&&(t.entering||t.leaving||C({domNode:n,styles:{transition:""}}))}))},t.prototype.UNSAFE_componentWillReceiveProps=function(e){this.updateBoundingBoxCaches();var t=P(e.children);this.setState({children:this.isAnimationDisabled(e)?t.map((function(e){return g({},e,{element:e})})):this.calculateNextSetOfChildren(t)})},t.prototype.animateChild=function(e,t,n){var r=this,o=this.getChildData(_(e)).domNode;o&&(C({domNode:o,styles:n}),this.props.onStart&&this.props.onStart(e,o),requestAnimationFrame((function(){requestAnimationFrame((function(){var n={transition:k(t,r.props),transform:"",opacity:""};e.appearing&&r.props.appearAnimation?n=g({},n,r.props.appearAnimation.to):e.entering&&r.props.enterAnimation?n=g({},n,r.props.enterAnimation.to):e.leaving&&r.props.leaveAnimation&&(n=g({},n,r.props.leaveAnimation.to)),C({domNode:o,styles:n})}))})),this.bindTransitionEndHandler(e))},t.prototype.bindTransitionEndHandler=function(e){var t=this,n=this.getChildData(_(e)).domNode;n&&n.addEventListener(E,(function r(o){o.target===n&&(n.style.transition="",t.triggerFinishHooks(e,n),n.removeEventListener(E,r),e.leaving&&t.removeChildData(_(e)))}))},t.prototype.triggerFinishHooks=function(e,t){var n=this;if(this.props.onFinish&&this.props.onFinish(e,t),this.remainingAnimations-=1,0===this.remainingAnimations){var r=this.state.children.filter((function(e){return!e.leaving})).map((function(e){return g({},e,{element:e.element,appearing:!1,entering:!1})}));this.setState({children:r},(function(){"function"==typeof n.props.onFinishAll&&n.callChildrenHook(n.props.onFinishAll),n.childrenToAnimate=[]})),this.heightPlaceholderData.domNode&&(this.heightPlaceholderData.domNode.style.height="0")}},t.prototype.callChildrenHook=function(e){var t=this,n=[],r=[];this.childrenToAnimate.forEach((function(e){var o=t.findChildByKey(e);o&&(n.push(o),t.hasChildData(e)&&r.push(t.getChildData(e).domNode))})),e(n,r)},t.prototype.updateBoundingBoxCaches=function(){var e=this,t=this.parentData.domNode;if(t){this.parentData.boundingBox=this.props.getPosition(t);var n=[];this.state.children.forEach((function(r){var o,i,a,l,c,s,u,p,d,f,h,v=_(r);if(v)if(e.hasChildData(v)){var b=e.getChildData(v);b.domNode&&r?n.push((o={childDomNode:b.domNode,parentDomNode:t,getPosition:e.props.getPosition},i=o.childDomNode,l=(a=o.getPosition)(o.parentDomNode),c=a(i),s=c.top,u=c.left,p=c.right,d=c.bottom,f=c.width,h=c.height,{top:s-l.top,left:u-l.left,right:l.right-p,bottom:l.bottom-d,width:f,height:h})):n.push(null)}else n.push(null);else n.push(null)})),this.state.children.forEach((function(t,r){var o=_(t),i=n[r];o&&e.setChildData(o,{boundingBox:i})}))}},t.prototype.computeInitialStyles=function(e){if(e.appearing)return this.props.appearAnimation?this.props.appearAnimation.from:{};if(e.entering)return this.props.enterAnimation?g({position:"",top:"",left:"",right:"",bottom:""},this.props.enterAnimation.from):{};if(e.leaving)return this.props.leaveAnimation?this.props.leaveAnimation.from:{};var t=this.getChildData(_(e)),n=t.domNode,r=t.boundingBox,o=this.parentData.boundingBox;if(!n)return{};var i=S({childDomNode:n,childBoundingBox:r,parentBoundingBox:o,getPosition:this.props.getPosition});return{transform:"translate("+i[0]+"px, "+i[1]+"px)"}},t.prototype.isAnimationDisabled=function(e){return j||e.disableAllAnimations||0===e.duration&&0===e.delay&&0===e.staggerDurationBy&&0===e.staggerDelayBy},t.prototype.findChildByKey=function(e){return h((function(t){return _(t)===e}),this.state.children)},t.prototype.hasChildData=function(e){return Object.prototype.hasOwnProperty.call(this.childrenData,e)},t.prototype.getChildData=function(e){return this.hasChildData(e)?this.childrenData[e]:{}},t.prototype.setChildData=function(e,t){this.childrenData[e]=g({},this.getChildData(e),t)},t.prototype.removeChildData=function(e){delete this.childrenData[e],this.setState((function(t){return g({},t,{children:t.children.filter((function(t){return t.element.key!==e}))})}))},t.prototype.createHeightPlaceholder=function(){var e=this,t=this.props.typeName,n="ul"===t||"ol"===t?"li":"div";return(0,r.createElement)(n,{key:"height-placeholder",ref:function(t){e.heightPlaceholderData.domNode=t},style:{visibility:"hidden",height:0}})},t.prototype.childrenWithRefs=function(){var e=this;return this.state.children.map((function(t){return(0,r.cloneElement)(t.element,{ref:function(n){if(n){var r=function(e){if("undefined"==typeof HTMLElement)return null;if(e instanceof HTMLElement)return e;var t=(0,o.findDOMNode)(e);return t&&t.nodeType===Node.TEXT_NODE?null:t}(n);e.setChildData(_(t),{domNode:r})}}})}))},t.prototype.render=function(){var e=this,t=this.props,n=t.typeName,o=t.delegated,i=t.leaveAnimation,a=t.maintainContainerHeight,l=this.childrenWithRefs();if(i&&a&&l.push(this.createHeightPlaceholder()),!n)return l;var c=g({},o,{children:l,ref:function(t){e.parentData.domNode=t}});return(0,r.createElement)(n,c)},t}(r.Component))},5532:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>pe,withResizeDetector:()=>ue});var r=n(6540),o=n(5556),i=n.n(o),a=function(){if("undefined"!=typeof Map)return Map;function e(e,t){var n=-1;return e.some((function(e,r){return e[0]===t&&(n=r,!0)})),n}return function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(t){var n=e(this.__entries__,t),r=this.__entries__[n];return r&&r[1]},t.prototype.set=function(t,n){var r=e(this.__entries__,t);~r?this.__entries__[r][1]=n:this.__entries__.push([t,n])},t.prototype.delete=function(t){var n=this.__entries__,r=e(n,t);~r&&n.splice(r,1)},t.prototype.has=function(t){return!!~e(this.__entries__,t)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(e,t){void 0===t&&(t=null);for(var n=0,r=this.__entries__;n0},e.prototype.connect_=function(){l&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),p?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){l&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(e){var t=e.propertyName,n=void 0===t?"":t;u.some((function(e){return!!~n.indexOf(e)}))&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),f=function(e,t){for(var n=0,r=Object.keys(t);n0},e}(),S="undefined"!=typeof WeakMap?new WeakMap:new a,k=function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=d.getInstance(),r=new C(t,n,this);S.set(this,r)};["observe","unobserve","disconnect"].forEach((function(e){k.prototype[e]=function(){var t;return(t=S.get(this))[e].apply(t,arguments)}}));const E=void 0!==c.ResizeObserver?c.ResizeObserver:k,j=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)},_="object"==typeof global&&global&&global.Object===Object&&global;var P="object"==typeof self&&self&&self.Object===Object&&self;const I=_||P||Function("return this")(),T=function(){return I.Date.now()};var R=/\s/;var D=/^\s+/;const M=function(e){return e?e.slice(0,function(e){for(var t=e.length;t--&&R.test(e.charAt(t)););return t}(e)+1).replace(D,""):e},A=I.Symbol;var L=Object.prototype,N=L.hasOwnProperty,$=L.toString,B=A?A.toStringTag:void 0;var V=Object.prototype.toString;var H=A?A.toStringTag:void 0;const F=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":H&&H in Object(e)?function(e){var t=N.call(e,B),n=e[B];try{e[B]=void 0;var r=!0}catch(e){}var o=$.call(e);return r&&(t?e[B]=n:delete e[B]),o}(e):function(e){return V.call(e)}(e)};var z=/^[-+]0x[0-9a-f]+$/i,q=/^0b[01]+$/i,W=/^0o[0-7]+$/i,K=parseInt;const U=function(e){if("number"==typeof e)return e;if(function(e){return"symbol"==typeof e||function(e){return null!=e&&"object"==typeof e}(e)&&"[object Symbol]"==F(e)}(e))return NaN;if(j(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=j(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=M(e);var n=q.test(e);return n||W.test(e)?K(e.slice(2),n?2:8):z.test(e)?NaN:+e};var G=Math.max,Z=Math.min;const Y=function(e,t,n){var r,o,i,a,l,c,s=0,u=!1,p=!1,d=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function f(t){var n=r,i=o;return r=o=void 0,s=t,a=e.apply(i,n)}function h(e){var n=e-c;return void 0===c||n>=t||n<0||p&&e-s>=i}function v(){var e=T();if(h(e))return b(e);l=setTimeout(v,function(e){var n=t-(e-c);return p?Z(n,i-(e-s)):n}(e))}function b(e){return l=void 0,d&&r?f(e):(r=o=void 0,a)}function m(){var e=T(),n=h(e);if(r=arguments,o=this,c=e,n){if(void 0===l)return function(e){return s=e,l=setTimeout(v,t),u?f(e):a}(c);if(p)return clearTimeout(l),l=setTimeout(v,t),f(c)}return void 0===l&&(l=setTimeout(v,t)),a}return t=U(t)||0,j(n)&&(u=!!n.leading,i=(p="maxWait"in n)?G(U(n.maxWait)||0,t):i,d="trailing"in n?!!n.trailing:d),m.cancel=function(){void 0!==l&&clearTimeout(l),s=0,r=c=o=l=void 0},m.flush=function(){return void 0===l?a:b(T())},m};function X(e){return X="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},X(e)}function Q(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function J(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:{handleWidth:!0,handleHeight:!0};return function(n){function o(){return Q(this,o),te(this,ne(o).apply(this,arguments))}return re(o,n),ee(o,[{key:"render",value:function(){return r.createElement(se,t,r.createElement(e,this.props))}}]),o}(r.Component)};const pe=se},3829:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});const r={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};let o;const i=new Uint8Array(16);function a(){if(!o&&(o="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!o))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return o(i)}const l=[];for(let e=0;e<256;++e)l.push((e+256).toString(16).slice(1));const c=function(e,t,n){if(r.randomUUID&&!t&&!e)return r.randomUUID();const o=(e=e||{}).random||(e.rng||a)();if(o[6]=15&o[6]|64,o[8]=63&o[8]|128,t){n=n||0;for(let e=0;e<16;++e)t[n+e]=o[e];return t}return function(e,t=0){return l[e[t+0]]+l[e[t+1]]+l[e[t+2]]+l[e[t+3]]+"-"+l[e[t+4]]+l[e[t+5]]+"-"+l[e[t+6]]+l[e[t+7]]+"-"+l[e[t+8]]+l[e[t+9]]+"-"+l[e[t+10]]+l[e[t+11]]+l[e[t+12]]+l[e[t+13]]+l[e[t+14]]+l[e[t+15]]}(o)}}}]); +//# sourceMappingURL=518.38647c7f4d5e18fa5385.js.map \ No newline at end of file diff --git a/TA-opencti-for-splunk-enterprise/appserver/static/js/build/518.38647c7f4d5e18fa5385.js.map b/TA-opencti-for-splunk-enterprise/appserver/static/js/build/518.38647c7f4d5e18fa5385.js.map new file mode 100755 index 0000000..1d7c69f --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/appserver/static/js/build/518.38647c7f4d5e18fa5385.js.map @@ -0,0 +1 @@ +{"version":3,"file":"518.38647c7f4d5e18fa5385.js","mappings":"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","sources":["webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-icons/ArrowDown.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-icons/ArrowUp.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-icons/ArrowUpDown.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-icons/CaretsSmallUpDown.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-icons/Checkmark.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-icons/ChevronLeft.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-icons/ChevronRight.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-icons/DotsThreeHorizontal.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-icons/DotsThreeVertical.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-icons/Magnifier.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-icons/Pencil.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-icons/enterprise/Check.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-icons/enterprise/ChevronLeft.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-icons/enterprise/ChevronRight.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-icons/enterprise/Clone.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-icons/enterprise/Info.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-icons/enterprise/MoreVertical.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-icons/enterprise/Search.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-icons/enterprise/Trash.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-toast-notifications/ToastMessages.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-toast-notifications/node_modules/@splunk/react-ui/EventListener.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-toast-notifications/node_modules/@splunk/react-ui/Layer.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-ui/Anchor.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-ui/ButtonGroup.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-ui/Card.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-ui/Chip.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-ui/CollapsiblePanel.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-ui/ColumnLayout.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-ui/ComboBox.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-ui/ControlGroup.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-ui/DefinitionList.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-ui/File.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-ui/Heading.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-ui/Menu.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-ui/Multiselect.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-ui/Number.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-ui/Paginator.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-ui/Progress.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-ui/RadioBar.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-ui/ResultsMenu.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-ui/Scroll.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-ui/Select.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-ui/StaticContent.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-ui/Switch.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-ui/TabBar.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-ui/Table.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-ui/Text.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-ui/TextArea.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-ui/Tooltip.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-ui/TransitionOpen.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-ui/useForceUpdate.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/ui-utils/color.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/ui-utils/filter.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/ui-utils/format.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/ui-utils/math.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/ui-utils/sprintf.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/ui-utils/userAgent.js","webpack://@splunk/ucc_ui_lib/./node_modules/immutability-helper/index.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_baseDifference.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_baseEachRight.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_baseForOwnRight.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_baseForRight.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_basePick.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_basePickBy.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_baseSet.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_baseSome.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_baseUniq.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_castFunction.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_createFind.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_createRound.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_createSet.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/assignIn.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/castArray.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/defaults.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/extend.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/find.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/findIndex.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/forEach.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/forEachRight.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/indexOf.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/isEqual.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/isNumber.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/pick.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/pickBy.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/repeat.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/round.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/some.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/toUpper.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/uniq.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/without.js","webpack://@splunk/ucc_ui_lib/./node_modules/react-flip-move/dist/react-flip-move.es.js","webpack://@splunk/ucc_ui_lib/./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","webpack://@splunk/ucc_ui_lib/./node_modules/react-resize-detector/lib/esm/index.js","webpack://@splunk/ucc_ui_lib/./node_modules/uuid/dist/esm-browser/native.js","webpack://@splunk/ucc_ui_lib/./node_modules/uuid/dist/esm-browser/rng.js","webpack://@splunk/ucc_ui_lib/./node_modules/uuid/dist/esm-browser/stringify.js","webpack://@splunk/ucc_ui_lib/./node_modules/uuid/dist/esm-browser/v4.js"],"sourcesContent":["/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = r => {\n /******/ var t = r && r.__esModule ? \n /******/ () => r[\"default\"]\n /******/ : () => r\n /******/;\n e.d(t, {\n a: t\n });\n /******/ return t;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (r, t) => {\n /******/ for (var n in t) {\n /******/ if (e.o(t, n) && !e.o(r, n)) {\n /******/ Object.defineProperty(r, n, {\n enumerable: true,\n get: t[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var r = {};\n // ESM COMPAT FLAG\n e.r(r);\n // EXPORTS\n e.d(r, {\n default: () => /* binding */ y\n });\n // CONCATENATED MODULE: external \"react\"\n const t = require(\"react\");\n var n = e.n(t);\n // CONCATENATED MODULE: external \"@splunk/react-icons/SVG\"\n const a = require(\"@splunk/react-icons/SVG\");\n var o = e.n(a);\n // CONCATENATED MODULE: external \"@splunk/react-icons/IconProvider\"\n const u = require(\"@splunk/react-icons/IconProvider\");\n // CONCATENATED MODULE: ./src/icons/ArrowDown.tsx\n function i(e, r) {\n if (e == null) return {};\n var t = l(e, r);\n var n, a;\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n for (a = 0; a < o.length; a++) {\n n = o[a];\n if (r.indexOf(n) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(e, n)) continue;\n t[n] = e[n];\n }\n }\n return t;\n }\n function l(e, r) {\n if (e == null) return {};\n var t = {};\n var n = Object.keys(e);\n var a, o;\n for (o = 0; o < n.length; o++) {\n a = n[o];\n if (r.indexOf(a) >= 0) continue;\n t[a] = e[a];\n }\n return t;\n }\n var c = {\n variant: \"default\"\n };\n var f = new Map;\n f.set(\"outlined\", (function() {\n \n return n().createElement(n().Fragment, null, n().createElement(\"path\", {\n d: \"M6.55086 12.3369C6.16033 11.9464 5.52717 11.9464 5.13664 12.3369C4.74612 12.7275 4.74612 13.3606 5.13664 13.7512L10.9391 19.5536C11.5249 20.1394 12.4746 20.1394 13.0604 19.5536L18.8628 13.7512C19.2534 13.3606 19.2534 12.7275 18.8628 12.3369C18.4723 11.9464 17.8391 11.9464 17.4486 12.3369L13 16.7855V5.00234C13 4.45006 12.5523 4.00234 12 4.00234C11.4477 4.00234 11 4.45006 11 5.00234V16.7861L6.55086 12.3369Z\"\n }));\n }));\n var d = [ \"default\", \"outlined\" ];\n var v = function e(r) {\n return d.indexOf(r) >= 0;\n };\n var s = function e(r) {\n return r === \"default\" || r && !v(r) ? \"outlined\" : r;\n };\n /**\n * @description Table Sort Ascent/descent, Up/Down, multi-use\n * @category Navigation\n * @keywords arrow up/down, ascent/descent\n * @variants outlined\n */ var p = function e(r) {\n var a = r.children, l = r.variant, c = i(r, [ \"children\", \"variant\" ]);\n var d = s(l);\n var v = \"arrowdown-\".concat(d);\n var p = (0, t.useContext)(u.IconContext);\n var y = f.get(d);\n if (false) {}\n if (p && y) {\n var b = p.toRender, O = p.addIcon;\n O(v, y());\n if (!b) {\n return null;\n }\n }\n \n return n().createElement(o(), c, a, p ? n().createElement(\"use\", {\n href: \"#\".concat(v)\n }) : !!y && y());\n };\n p.defaultProps = c;\n /* harmony default export */ const y = p;\n module.exports = r;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = r => {\n /******/ var t = r && r.__esModule ? \n /******/ () => r[\"default\"]\n /******/ : () => r\n /******/;\n e.d(t, {\n a: t\n });\n /******/ return t;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (r, t) => {\n /******/ for (var n in t) {\n /******/ if (e.o(t, n) && !e.o(r, n)) {\n /******/ Object.defineProperty(r, n, {\n enumerable: true,\n get: t[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var r = {};\n // ESM COMPAT FLAG\n e.r(r);\n // EXPORTS\n e.d(r, {\n default: () => /* binding */ y\n });\n // CONCATENATED MODULE: external \"react\"\n const t = require(\"react\");\n var n = e.n(t);\n // CONCATENATED MODULE: external \"@splunk/react-icons/SVG\"\n const a = require(\"@splunk/react-icons/SVG\");\n var o = e.n(a);\n // CONCATENATED MODULE: external \"@splunk/react-icons/IconProvider\"\n const u = require(\"@splunk/react-icons/IconProvider\");\n // CONCATENATED MODULE: ./src/icons/ArrowUp.tsx\n function i(e, r) {\n if (e == null) return {};\n var t = l(e, r);\n var n, a;\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n for (a = 0; a < o.length; a++) {\n n = o[a];\n if (r.indexOf(n) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(e, n)) continue;\n t[n] = e[n];\n }\n }\n return t;\n }\n function l(e, r) {\n if (e == null) return {};\n var t = {};\n var n = Object.keys(e);\n var a, o;\n for (o = 0; o < n.length; o++) {\n a = n[o];\n if (r.indexOf(a) >= 0) continue;\n t[a] = e[a];\n }\n return t;\n }\n var c = {\n variant: \"default\"\n };\n var f = new Map;\n f.set(\"outlined\", (function() {\n \n return n().createElement(n().Fragment, null, n().createElement(\"path\", {\n d: \"M6.55135 11.6631C6.16082 12.0536 5.52766 12.0536 5.13713 11.6631C4.74661 11.2725 4.74661 10.6394 5.13713 10.2488L10.9396 4.44642C11.5253 3.86064 12.4751 3.86063 13.0609 4.44642L18.8633 10.2488C19.2538 10.6394 19.2538 11.2725 18.8633 11.6631C18.4728 12.0536 17.8396 12.0536 17.4491 11.6631L13 7.21397V19.0009C13 19.5532 12.5523 20.0009 12 20.0009C11.4477 20.0009 11 19.5532 11 19.0009V7.21441L6.55135 11.6631Z\"\n }));\n }));\n var d = [ \"default\", \"outlined\" ];\n var v = function e(r) {\n return d.indexOf(r) >= 0;\n };\n var s = function e(r) {\n return r === \"default\" || r && !v(r) ? \"outlined\" : r;\n };\n /**\n * @description Table Sort Ascent/descent, Up/Down, multi-use\n * @category Navigation\n * @keywords arrow up/down, ascent/descent\n * @variants outlined\n */ var p = function e(r) {\n var a = r.children, l = r.variant, c = i(r, [ \"children\", \"variant\" ]);\n var d = s(l);\n var v = \"arrowup-\".concat(d);\n var p = (0, t.useContext)(u.IconContext);\n var y = f.get(d);\n if (false) {}\n if (p && y) {\n var b = p.toRender, O = p.addIcon;\n O(v, y());\n if (!b) {\n return null;\n }\n }\n \n return n().createElement(o(), c, a, p ? n().createElement(\"use\", {\n href: \"#\".concat(v)\n }) : !!y && y());\n };\n p.defaultProps = c;\n /* harmony default export */ const y = p;\n module.exports = r;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = r => {\n /******/ var t = r && r.__esModule ? \n /******/ () => r[\"default\"]\n /******/ : () => r\n /******/;\n e.d(t, {\n a: t\n });\n /******/ return t;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (r, t) => {\n /******/ for (var n in t) {\n /******/ if (e.o(t, n) && !e.o(r, n)) {\n /******/ Object.defineProperty(r, n, {\n enumerable: true,\n get: t[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var r = {};\n // ESM COMPAT FLAG\n e.r(r);\n // EXPORTS\n e.d(r, {\n default: () => /* binding */ y\n });\n // CONCATENATED MODULE: external \"react\"\n const t = require(\"react\");\n var n = e.n(t);\n // CONCATENATED MODULE: external \"@splunk/react-icons/SVG\"\n const a = require(\"@splunk/react-icons/SVG\");\n var o = e.n(a);\n // CONCATENATED MODULE: external \"@splunk/react-icons/IconProvider\"\n const u = require(\"@splunk/react-icons/IconProvider\");\n // CONCATENATED MODULE: ./src/icons/ArrowUpDown.tsx\n function i(e, r) {\n if (e == null) return {};\n var t = l(e, r);\n var n, a;\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n for (a = 0; a < o.length; a++) {\n n = o[a];\n if (r.indexOf(n) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(e, n)) continue;\n t[n] = e[n];\n }\n }\n return t;\n }\n function l(e, r) {\n if (e == null) return {};\n var t = {};\n var n = Object.keys(e);\n var a, o;\n for (o = 0; o < n.length; o++) {\n a = n[o];\n if (r.indexOf(a) >= 0) continue;\n t[a] = e[a];\n }\n return t;\n }\n var c = {\n variant: \"default\"\n };\n var f = new Map;\n f.set(\"outlined\", (function() {\n \n return n().createElement(n().Fragment, null, n().createElement(\"path\", {\n d: \"M11 6.9142L8.20711 9.70709C7.81658 10.0976 7.18342 10.0976 6.79289 9.70709C6.40237 9.31657 6.40237 8.6834 6.79289 8.29288L10.9393 4.14643C11.5251 3.56064 12.4749 3.56065 13.0607 4.14643L17.2071 8.29288C17.5976 8.6834 17.5976 9.31657 17.2071 9.70709C16.8166 10.0976 16.1834 10.0976 15.7929 9.70709L13 6.9142V17.0858L15.7929 14.2929C16.1834 13.9024 16.8166 13.9024 17.2071 14.2929C17.5976 14.6834 17.5976 15.3166 17.2071 15.7071L13.0607 19.8535C12.4749 20.4393 11.5251 20.4393 10.9393 19.8535L6.79289 15.7071C6.40237 15.3166 6.40237 14.6834 6.79289 14.2929C7.18342 13.9024 7.81658 13.9024 8.20711 14.2929L11 17.0858V6.9142Z\"\n }));\n }));\n var d = [ \"default\", \"outlined\" ];\n var v = function e(r) {\n return d.indexOf(r) >= 0;\n };\n var s = function e(r) {\n return r === \"default\" || r && !v(r) ? \"outlined\" : r;\n };\n /**\n * @description Sort action which shows sortable status at field label on table header, swap up/down\n * @category Controls\n * @keywords arrows, ascent/descent, up/down, reverse\n * @variants outlined\n */ var p = function e(r) {\n var a = r.children, l = r.variant, c = i(r, [ \"children\", \"variant\" ]);\n var d = s(l);\n var v = \"arrowupdown-\".concat(d);\n var p = (0, t.useContext)(u.IconContext);\n var y = f.get(d);\n if (false) {}\n if (p && y) {\n var b = p.toRender, O = p.addIcon;\n O(v, y());\n if (!b) {\n return null;\n }\n }\n \n return n().createElement(o(), c, a, p ? n().createElement(\"use\", {\n href: \"#\".concat(v)\n }) : !!y && y());\n };\n p.defaultProps = c;\n /* harmony default export */ const y = p;\n module.exports = r;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = r => {\n /******/ var t = r && r.__esModule ? \n /******/ () => r[\"default\"]\n /******/ : () => r\n /******/;\n e.d(t, {\n a: t\n });\n /******/ return t;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (r, t) => {\n /******/ for (var n in t) {\n /******/ if (e.o(t, n) && !e.o(r, n)) {\n /******/ Object.defineProperty(r, n, {\n enumerable: true,\n get: t[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var r = {};\n // ESM COMPAT FLAG\n e.r(r);\n // EXPORTS\n e.d(r, {\n default: () => /* binding */ y\n });\n // CONCATENATED MODULE: external \"react\"\n const t = require(\"react\");\n var n = e.n(t);\n // CONCATENATED MODULE: external \"@splunk/react-icons/SVG\"\n const a = require(\"@splunk/react-icons/SVG\");\n var o = e.n(a);\n // CONCATENATED MODULE: external \"@splunk/react-icons/IconProvider\"\n const u = require(\"@splunk/react-icons/IconProvider\");\n // CONCATENATED MODULE: ./src/icons/CaretsSmallUpDown.tsx\n function l(e, r) {\n if (e == null) return {};\n var t = i(e, r);\n var n, a;\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n for (a = 0; a < o.length; a++) {\n n = o[a];\n if (r.indexOf(n) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(e, n)) continue;\n t[n] = e[n];\n }\n }\n return t;\n }\n function i(e, r) {\n if (e == null) return {};\n var t = {};\n var n = Object.keys(e);\n var a, o;\n for (o = 0; o < n.length; o++) {\n a = n[o];\n if (r.indexOf(a) >= 0) continue;\n t[a] = e[a];\n }\n return t;\n }\n var c = {\n variant: \"default\"\n };\n var f = new Map;\n f.set(\"outlined\", (function() {\n \n return n().createElement(n().Fragment, null, n().createElement(\"path\", {\n d: \"M16.4984 14.0001C16.9311 14.0001 17.1595 14.5124 16.8703 14.8343L12.3694 19.8426C12.1707 20.0637 11.8242 20.0637 11.6256 19.8425L7.12732 14.8342C6.83823 14.5123 7.06667 14.0001 7.49931 14.0001L16.4984 14.0001Z\"\n }), n().createElement(\"path\", {\n d: \"M16.4984 9.99999C16.9311 9.99999 17.1595 9.48762 16.8703 9.16578L12.3694 4.15743C12.1707 3.93633 11.8242 3.93638 11.6256 4.15754L7.12732 9.16591C6.83822 9.48778 7.06667 10 7.49931 10L16.4984 9.99999Z\"\n }));\n }));\n var d = [ \"default\", \"outlined\" ];\n var v = function e(r) {\n return d.indexOf(r) >= 0;\n };\n var s = function e(r) {\n return r === \"default\" || r && !v(r) ? \"outlined\" : r;\n };\n /**\n * @description Enterprise Table Sort, Increase/decrease\n * @category Controls\n * @keywords arrow, ascent/descent, up/down\n * @variants outlined\n */ var p = function e(r) {\n var a = r.children, i = r.variant, c = l(r, [ \"children\", \"variant\" ]);\n var d = s(i);\n var v = \"caretssmallupdown-\".concat(d);\n var p = (0, t.useContext)(u.IconContext);\n var y = f.get(d);\n if (false) {}\n if (p && y) {\n var b = p.toRender, m = p.addIcon;\n m(v, y());\n if (!b) {\n return null;\n }\n }\n \n return n().createElement(o(), c, a, p ? n().createElement(\"use\", {\n href: \"#\".concat(v)\n }) : !!y && y());\n };\n p.defaultProps = c;\n /* harmony default export */ const y = p;\n module.exports = r;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = r => {\n /******/ var t = r && r.__esModule ? \n /******/ () => r[\"default\"]\n /******/ : () => r\n /******/;\n e.d(t, {\n a: t\n });\n /******/ return t;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (r, t) => {\n /******/ for (var n in t) {\n /******/ if (e.o(t, n) && !e.o(r, n)) {\n /******/ Object.defineProperty(r, n, {\n enumerable: true,\n get: t[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var r = {};\n // ESM COMPAT FLAG\n e.r(r);\n // EXPORTS\n e.d(r, {\n default: () => /* binding */ y\n });\n // CONCATENATED MODULE: external \"react\"\n const t = require(\"react\");\n var n = e.n(t);\n // CONCATENATED MODULE: external \"@splunk/react-icons/SVG\"\n const a = require(\"@splunk/react-icons/SVG\");\n var o = e.n(a);\n // CONCATENATED MODULE: external \"@splunk/react-icons/IconProvider\"\n const u = require(\"@splunk/react-icons/IconProvider\");\n // CONCATENATED MODULE: ./src/icons/Checkmark.tsx\n function l(e, r) {\n if (e == null) return {};\n var t = i(e, r);\n var n, a;\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n for (a = 0; a < o.length; a++) {\n n = o[a];\n if (r.indexOf(n) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(e, n)) continue;\n t[n] = e[n];\n }\n }\n return t;\n }\n function i(e, r) {\n if (e == null) return {};\n var t = {};\n var n = Object.keys(e);\n var a, o;\n for (o = 0; o < n.length; o++) {\n a = n[o];\n if (r.indexOf(a) >= 0) continue;\n t[a] = e[a];\n }\n return t;\n }\n var c = {\n variant: \"default\"\n };\n var f = new Map;\n f.set(\"outlined\", (function() {\n \n return n().createElement(n().Fragment, null, n().createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M20.7071 5.59294C21.0977 5.98347 21.0977 6.61663 20.7071 7.00716L10.1447 17.5695C9.55896 18.1553 8.60922 18.1553 8.02343 17.5695L3.29289 12.839C2.90237 12.4485 2.90237 11.8153 3.29289 11.4248C3.68342 11.0343 4.31658 11.0343 4.70711 11.4248L9.08409 15.8018L19.2929 5.59294C19.6835 5.20242 20.3166 5.20242 20.7071 5.59294Z\"\n }));\n }));\n var d = [ \"default\", \"outlined\" ];\n var v = function e(r) {\n return d.indexOf(r) >= 0;\n };\n var s = function e(r) {\n return r === \"default\" || r && !v(r) ? \"outlined\" : r;\n };\n /**\n * @description Checkmark represents selected or done status\n * @category Actions\n * @keywords status, selected, severity, check, done, sovled\n * @variants outlined\n */ var p = function e(r) {\n var a = r.children, i = r.variant, c = l(r, [ \"children\", \"variant\" ]);\n var d = s(i);\n var v = \"checkmark-\".concat(d);\n var p = (0, t.useContext)(u.IconContext);\n var y = f.get(d);\n if (false) {}\n if (p && y) {\n var b = p.toRender, m = p.addIcon;\n m(v, y());\n if (!b) {\n return null;\n }\n }\n \n return n().createElement(o(), c, a, p ? n().createElement(\"use\", {\n href: \"#\".concat(v)\n }) : !!y && y());\n };\n p.defaultProps = c;\n /* harmony default export */ const y = p;\n module.exports = r;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = r => {\n /******/ var t = r && r.__esModule ? \n /******/ () => r[\"default\"]\n /******/ : () => r\n /******/;\n e.d(t, {\n a: t\n });\n /******/ return t;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (r, t) => {\n /******/ for (var n in t) {\n /******/ if (e.o(t, n) && !e.o(r, n)) {\n /******/ Object.defineProperty(r, n, {\n enumerable: true,\n get: t[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var r = {};\n // ESM COMPAT FLAG\n e.r(r);\n // EXPORTS\n e.d(r, {\n default: () => /* binding */ y\n });\n // CONCATENATED MODULE: external \"react\"\n const t = require(\"react\");\n var n = e.n(t);\n // CONCATENATED MODULE: external \"@splunk/react-icons/SVG\"\n const o = require(\"@splunk/react-icons/SVG\");\n var a = e.n(o);\n // CONCATENATED MODULE: external \"@splunk/react-icons/IconProvider\"\n const u = require(\"@splunk/react-icons/IconProvider\");\n // CONCATENATED MODULE: ./src/icons/ChevronLeft.tsx\n function l(e, r) {\n if (e == null) return {};\n var t = i(e, r);\n var n, o;\n if (Object.getOwnPropertySymbols) {\n var a = Object.getOwnPropertySymbols(e);\n for (o = 0; o < a.length; o++) {\n n = a[o];\n if (r.indexOf(n) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(e, n)) continue;\n t[n] = e[n];\n }\n }\n return t;\n }\n function i(e, r) {\n if (e == null) return {};\n var t = {};\n var n = Object.keys(e);\n var o, a;\n for (a = 0; a < n.length; a++) {\n o = n[a];\n if (r.indexOf(o) >= 0) continue;\n t[o] = e[o];\n }\n return t;\n }\n var c = {\n variant: \"default\"\n };\n var f = new Map;\n f.set(\"outlined\", (function() {\n \n return n().createElement(n().Fragment, null, n().createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M9.21419 12L15.5144 5.69985C15.9049 5.30933 15.9049 4.67616 15.5144 4.28564C15.1238 3.89511 14.4907 3.89511 14.1002 4.28564L7.44642 10.9394C6.86063 11.5252 6.86064 12.4749 7.44642 13.0607L14.1002 19.7144C14.4907 20.105 15.1238 20.105 15.5144 19.7144C15.9049 19.3239 15.9049 18.6907 15.5144 18.3002L9.21419 12Z\"\n }));\n }));\n var d = [ \"default\", \"outlined\" ];\n var v = function e(r) {\n return d.indexOf(r) >= 0;\n };\n var s = function e(r) {\n return r === \"default\" || r && !v(r) ? \"outlined\" : r;\n };\n /**\n * @description Used for transition in a component like a Paginator\n * @category Navigation\n * @keywords arrow, open/close, prev/next, left/right\n * @variants outlined\n */ var p = function e(r) {\n var o = r.children, i = r.variant, c = l(r, [ \"children\", \"variant\" ]);\n var d = s(i);\n var v = \"chevronleft-\".concat(d);\n var p = (0, t.useContext)(u.IconContext);\n var y = f.get(d);\n if (false) {}\n if (p && y) {\n var b = p.toRender, O = p.addIcon;\n O(v, y());\n if (!b) {\n return null;\n }\n }\n \n return n().createElement(a(), c, o, p ? n().createElement(\"use\", {\n href: \"#\".concat(v)\n }) : !!y && y());\n };\n p.defaultProps = c;\n /* harmony default export */ const y = p;\n module.exports = r;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = r => {\n /******/ var t = r && r.__esModule ? \n /******/ () => r[\"default\"]\n /******/ : () => r\n /******/;\n e.d(t, {\n a: t\n });\n /******/ return t;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (r, t) => {\n /******/ for (var n in t) {\n /******/ if (e.o(t, n) && !e.o(r, n)) {\n /******/ Object.defineProperty(r, n, {\n enumerable: true,\n get: t[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var r = {};\n // ESM COMPAT FLAG\n e.r(r);\n // EXPORTS\n e.d(r, {\n default: () => /* binding */ y\n });\n // CONCATENATED MODULE: external \"react\"\n const t = require(\"react\");\n var n = e.n(t);\n // CONCATENATED MODULE: external \"@splunk/react-icons/SVG\"\n const o = require(\"@splunk/react-icons/SVG\");\n var a = e.n(o);\n // CONCATENATED MODULE: external \"@splunk/react-icons/IconProvider\"\n const u = require(\"@splunk/react-icons/IconProvider\");\n // CONCATENATED MODULE: ./src/icons/ChevronRight.tsx\n function l(e, r) {\n if (e == null) return {};\n var t = i(e, r);\n var n, o;\n if (Object.getOwnPropertySymbols) {\n var a = Object.getOwnPropertySymbols(e);\n for (o = 0; o < a.length; o++) {\n n = a[o];\n if (r.indexOf(n) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(e, n)) continue;\n t[n] = e[n];\n }\n }\n return t;\n }\n function i(e, r) {\n if (e == null) return {};\n var t = {};\n var n = Object.keys(e);\n var o, a;\n for (a = 0; a < n.length; a++) {\n o = n[a];\n if (r.indexOf(o) >= 0) continue;\n t[o] = e[o];\n }\n return t;\n }\n var c = {\n variant: \"default\"\n };\n var f = new Map;\n f.set(\"outlined\", (function() {\n \n return n().createElement(n().Fragment, null, n().createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M14.7858 11.9999L8.48564 5.69972C8.09512 5.3092 8.09512 4.67603 8.48564 4.28551C8.87617 3.89499 9.50933 3.89499 9.89986 4.28551L16.5536 10.9393C17.1394 11.525 17.1394 12.4748 16.5536 13.0606L9.9012 19.713C9.51067 20.1035 8.87751 20.1035 8.48698 19.713C8.09646 19.3224 8.09646 18.6893 8.48698 18.2988L14.7858 11.9999Z\"\n }));\n }));\n var d = [ \"default\", \"outlined\" ];\n var v = function e(r) {\n return d.indexOf(r) >= 0;\n };\n var s = function e(r) {\n return r === \"default\" || r && !v(r) ? \"outlined\" : r;\n };\n /**\n * @description Used for transition in a component. Collapsed accordion menu, click to expand\n * @category Navigation\n * @keywords arrow, open/close, expand/collapse\n * @variants outlined\n */ var p = function e(r) {\n var o = r.children, i = r.variant, c = l(r, [ \"children\", \"variant\" ]);\n var d = s(i);\n var v = \"chevronright-\".concat(d);\n var p = (0, t.useContext)(u.IconContext);\n var y = f.get(d);\n if (false) {}\n if (p && y) {\n var b = p.toRender, O = p.addIcon;\n O(v, y());\n if (!b) {\n return null;\n }\n }\n \n return n().createElement(a(), c, o, p ? n().createElement(\"use\", {\n href: \"#\".concat(v)\n }) : !!y && y());\n };\n p.defaultProps = c;\n /* harmony default export */ const y = p;\n module.exports = r;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = r => {\n /******/ var t = r && r.__esModule ? \n /******/ () => r[\"default\"]\n /******/ : () => r\n /******/;\n e.d(t, {\n a: t\n });\n /******/ return t;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (r, t) => {\n /******/ for (var n in t) {\n /******/ if (e.o(t, n) && !e.o(r, n)) {\n /******/ Object.defineProperty(r, n, {\n enumerable: true,\n get: t[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var r = {};\n // ESM COMPAT FLAG\n e.r(r);\n // EXPORTS\n e.d(r, {\n default: () => /* binding */ y\n });\n // CONCATENATED MODULE: external \"react\"\n const t = require(\"react\");\n var n = e.n(t);\n // CONCATENATED MODULE: external \"@splunk/react-icons/SVG\"\n const a = require(\"@splunk/react-icons/SVG\");\n var o = e.n(a);\n // CONCATENATED MODULE: external \"@splunk/react-icons/IconProvider\"\n const u = require(\"@splunk/react-icons/IconProvider\");\n // CONCATENATED MODULE: ./src/icons/DotsThreeHorizontal.tsx\n function l(e, r) {\n if (e == null) return {};\n var t = i(e, r);\n var n, a;\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n for (a = 0; a < o.length; a++) {\n n = o[a];\n if (r.indexOf(n) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(e, n)) continue;\n t[n] = e[n];\n }\n }\n return t;\n }\n function i(e, r) {\n if (e == null) return {};\n var t = {};\n var n = Object.keys(e);\n var a, o;\n for (o = 0; o < n.length; o++) {\n a = n[o];\n if (r.indexOf(a) >= 0) continue;\n t[a] = e[a];\n }\n return t;\n }\n var c = {\n variant: \"default\"\n };\n var f = new Map;\n f.set(\"outlined\", (function() {\n \n return n().createElement(n().Fragment, null, n().createElement(\"path\", {\n d: \"M6.28933 12.0001C6.28933 11.0964 5.5567 10.3637 4.65297 10.3637C3.74923 10.3637 3.0166 11.0964 3.0166 12.0001C3.0166 12.9038 3.74923 13.6365 4.65297 13.6365C5.5567 13.6365 6.28933 12.9038 6.28933 12.0001Z\"\n }), n().createElement(\"path\", {\n d: \"M12.0166 10.3637C12.9204 10.3637 13.653 11.0964 13.653 12.0001C13.653 12.9038 12.9204 13.6365 12.0166 13.6365C11.1129 13.6365 10.3802 12.9038 10.3802 12.0001C10.3802 11.0964 11.1129 10.3637 12.0166 10.3637Z\"\n }), n().createElement(\"path\", {\n d: \"M19.3803 10.3637C20.284 10.3637 21.0166 11.0964 21.0166 12.0001C21.0166 12.9038 20.284 13.6365 19.3803 13.6365C18.4765 13.6365 17.7439 12.9038 17.7439 12.0001C17.7439 11.0964 18.4765 10.3637 19.3803 10.3637Z\"\n }));\n }));\n var d = [ \"default\", \"outlined\" ];\n var v = function e(r) {\n return d.indexOf(r) >= 0;\n };\n var s = function e(r) {\n return r === \"default\" || r && !v(r) ? \"outlined\" : r;\n };\n /**\n * @description More options for horizontal menu\n * @category Navigation\n * @keywords menu, options, more\n * @variants outlined\n */ var p = function e(r) {\n var a = r.children, i = r.variant, c = l(r, [ \"children\", \"variant\" ]);\n var d = s(i);\n var v = \"dotsthreehorizontal-\".concat(d);\n var p = (0, t.useContext)(u.IconContext);\n var y = f.get(d);\n if (false) {}\n if (p && y) {\n var b = p.toRender, m = p.addIcon;\n m(v, y());\n if (!b) {\n return null;\n }\n }\n \n return n().createElement(o(), c, a, p ? n().createElement(\"use\", {\n href: \"#\".concat(v)\n }) : !!y && y());\n };\n p.defaultProps = c;\n /* harmony default export */ const y = p;\n module.exports = r;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = r => {\n /******/ var t = r && r.__esModule ? \n /******/ () => r[\"default\"]\n /******/ : () => r\n /******/;\n e.d(t, {\n a: t\n });\n /******/ return t;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (r, t) => {\n /******/ for (var n in t) {\n /******/ if (e.o(t, n) && !e.o(r, n)) {\n /******/ Object.defineProperty(r, n, {\n enumerable: true,\n get: t[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var r = {};\n // ESM COMPAT FLAG\n e.r(r);\n // EXPORTS\n e.d(r, {\n default: () => /* binding */ y\n });\n // CONCATENATED MODULE: external \"react\"\n const t = require(\"react\");\n var n = e.n(t);\n // CONCATENATED MODULE: external \"@splunk/react-icons/SVG\"\n const a = require(\"@splunk/react-icons/SVG\");\n var o = e.n(a);\n // CONCATENATED MODULE: external \"@splunk/react-icons/IconProvider\"\n const u = require(\"@splunk/react-icons/IconProvider\");\n // CONCATENATED MODULE: ./src/icons/DotsThreeVertical.tsx\n function l(e, r) {\n if (e == null) return {};\n var t = i(e, r);\n var n, a;\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n for (a = 0; a < o.length; a++) {\n n = o[a];\n if (r.indexOf(n) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(e, n)) continue;\n t[n] = e[n];\n }\n }\n return t;\n }\n function i(e, r) {\n if (e == null) return {};\n var t = {};\n var n = Object.keys(e);\n var a, o;\n for (o = 0; o < n.length; o++) {\n a = n[o];\n if (r.indexOf(a) >= 0) continue;\n t[a] = e[a];\n }\n return t;\n }\n var c = {\n variant: \"default\"\n };\n var f = new Map;\n f.set(\"outlined\", (function() {\n \n return n().createElement(n().Fragment, null, n().createElement(\"path\", {\n d: \"M12.0167 6.27273C12.9205 6.27273 13.6531 5.5401 13.6531 4.63636C13.6531 3.73263 12.9205 3 12.0167 3C11.113 3 10.3804 3.73263 10.3804 4.63636C10.3804 5.5401 11.113 6.27273 12.0167 6.27273Z\"\n }), n().createElement(\"path\", {\n d: \"M13.6531 12C13.6531 12.9038 12.9205 13.6364 12.0167 13.6364C11.113 13.6364 10.3804 12.9038 10.3804 12C10.3804 11.0963 11.113 10.3636 12.0167 10.3636C12.9205 10.3636 13.6531 11.0963 13.6531 12Z\"\n }), n().createElement(\"path\", {\n d: \"M13.6531 19.3637C13.6531 20.2674 12.9205 21 12.0167 21C11.113 21 10.3804 20.2674 10.3804 19.3637C10.3804 18.4599 11.113 17.7273 12.0167 17.7273C12.9205 17.7273 13.6531 18.4599 13.6531 19.3637Z\"\n }));\n }));\n var d = [ \"default\", \"outlined\" ];\n var v = function e(r) {\n return d.indexOf(r) >= 0;\n };\n var s = function e(r) {\n return r === \"default\" || r && !v(r) ? \"outlined\" : r;\n };\n /**\n * @description More options for vertical menu\n * @category Navigation\n * @keywords menu, options, more\n * @variants outlined\n */ var p = function e(r) {\n var a = r.children, i = r.variant, c = l(r, [ \"children\", \"variant\" ]);\n var d = s(i);\n var v = \"dotsthreevertical-\".concat(d);\n var p = (0, t.useContext)(u.IconContext);\n var y = f.get(d);\n if (false) {}\n if (p && y) {\n var b = p.toRender, m = p.addIcon;\n m(v, y());\n if (!b) {\n return null;\n }\n }\n \n return n().createElement(o(), c, a, p ? n().createElement(\"use\", {\n href: \"#\".concat(v)\n }) : !!y && y());\n };\n p.defaultProps = c;\n /* harmony default export */ const y = p;\n module.exports = r;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = r => {\n /******/ var t = r && r.__esModule ? \n /******/ () => r[\"default\"]\n /******/ : () => r\n /******/;\n e.d(t, {\n a: t\n });\n /******/ return t;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (r, t) => {\n /******/ for (var n in t) {\n /******/ if (e.o(t, n) && !e.o(r, n)) {\n /******/ Object.defineProperty(r, n, {\n enumerable: true,\n get: t[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var r = {};\n // ESM COMPAT FLAG\n e.r(r);\n // EXPORTS\n e.d(r, {\n default: () => /* binding */ C\n });\n // CONCATENATED MODULE: external \"react\"\n const t = require(\"react\");\n var n = e.n(t);\n // CONCATENATED MODULE: external \"@splunk/react-icons/SVG\"\n const a = require(\"@splunk/react-icons/SVG\");\n var l = e.n(a);\n // CONCATENATED MODULE: external \"@splunk/react-icons/IconProvider\"\n const o = require(\"@splunk/react-icons/IconProvider\");\n // CONCATENATED MODULE: ./src/icons/Magnifier.tsx\n function u(e, r) {\n if (e == null) return {};\n var t = i(e, r);\n var n, a;\n if (Object.getOwnPropertySymbols) {\n var l = Object.getOwnPropertySymbols(e);\n for (a = 0; a < l.length; a++) {\n n = l[a];\n if (r.indexOf(n) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(e, n)) continue;\n t[n] = e[n];\n }\n }\n return t;\n }\n function i(e, r) {\n if (e == null) return {};\n var t = {};\n var n = Object.keys(e);\n var a, l;\n for (l = 0; l < n.length; l++) {\n a = n[l];\n if (r.indexOf(a) >= 0) continue;\n t[a] = e[a];\n }\n return t;\n }\n var c = {\n variant: \"default\"\n };\n var d = new Map;\n d.set(\"outlined\", (function() {\n \n return n().createElement(n().Fragment, null, n().createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M15.0509 16.4635C13.7888 17.4283 12.2113 18.0015 10.5 18.0015C6.35786 18.0015 3 14.6436 3 10.5015C3 6.35933 6.35786 3.00146 10.5 3.00146C14.6421 3.00146 18 6.35933 18 10.5015C18 12.2112 17.4279 13.7873 16.4647 15.0489L20.7077 19.292C21.0983 19.6825 21.0983 20.3156 20.7077 20.7062C20.3172 21.0967 19.6841 21.0967 19.2935 20.7062L15.0509 16.4635ZM16 10.5015C16 13.539 13.5376 16.0015 10.5 16.0015C7.46243 16.0015 5 13.539 5 10.5015C5 7.4639 7.46243 5.00146 10.5 5.00146C13.5376 5.00146 16 7.4639 16 10.5015Z\"\n }));\n }));\n d.set(\"filled\", (function() {\n \n return n().createElement(n().Fragment, null, n().createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M15.0509 16.4635C13.7888 17.4283 12.2113 18.0015 10.5 18.0015C6.35786 18.0015 3 14.6436 3 10.5015C3 6.35933 6.35786 3.00146 10.5 3.00146C14.6421 3.00146 18 6.35933 18 10.5015C18 12.2112 17.4279 13.7873 16.4647 15.0489L20.7077 19.292C21.0983 19.6825 21.0983 20.3156 20.7077 20.7062C20.3172 21.0967 19.6841 21.0967 19.2935 20.7062L15.0509 16.4635Z\"\n }));\n }));\n var f = [ \"default\", \"outlined\", \"filled\" ];\n var v = function e(r) {\n return f.indexOf(r) >= 0;\n };\n var s = function e(r) {\n return r === \"default\" || r && !v(r) ? \"outlined\" : r;\n };\n /**\n * @description Search represents an action for searching\n * @category Actions\n * @keywords search, action, reporting, keyword\n * @variants outlined,filled\n */ var p = function e(r) {\n var a = r.children, i = r.variant, c = u(r, [ \"children\", \"variant\" ]);\n var f = s(i);\n var v = \"magnifier-\".concat(f);\n var p = (0, t.useContext)(o.IconContext);\n var C = d.get(f);\n if (false) {}\n if (p && C) {\n var m = p.toRender, y = p.addIcon;\n y(v, C());\n if (!m) {\n return null;\n }\n }\n \n return n().createElement(l(), c, a, p ? n().createElement(\"use\", {\n href: \"#\".concat(v)\n }) : !!C && C());\n };\n p.defaultProps = c;\n /* harmony default export */ const C = p;\n module.exports = r;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = r => {\n /******/ var t = r && r.__esModule ? \n /******/ () => r[\"default\"]\n /******/ : () => r\n /******/;\n e.d(t, {\n a: t\n });\n /******/ return t;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (r, t) => {\n /******/ for (var n in t) {\n /******/ if (e.o(t, n) && !e.o(r, n)) {\n /******/ Object.defineProperty(r, n, {\n enumerable: true,\n get: t[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var r = {};\n // ESM COMPAT FLAG\n e.r(r);\n // EXPORTS\n e.d(r, {\n default: () => /* binding */ L\n });\n // CONCATENATED MODULE: external \"react\"\n const t = require(\"react\");\n var n = e.n(t);\n // CONCATENATED MODULE: external \"@splunk/react-icons/SVG\"\n const a = require(\"@splunk/react-icons/SVG\");\n var o = e.n(a);\n // CONCATENATED MODULE: external \"@splunk/react-icons/IconProvider\"\n const l = require(\"@splunk/react-icons/IconProvider\");\n // CONCATENATED MODULE: ./src/icons/Pencil.tsx\n function u(e, r) {\n if (e == null) return {};\n var t = i(e, r);\n var n, a;\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n for (a = 0; a < o.length; a++) {\n n = o[a];\n if (r.indexOf(n) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(e, n)) continue;\n t[n] = e[n];\n }\n }\n return t;\n }\n function i(e, r) {\n if (e == null) return {};\n var t = {};\n var n = Object.keys(e);\n var a, o;\n for (o = 0; o < n.length; o++) {\n a = n[o];\n if (r.indexOf(a) >= 0) continue;\n t[a] = e[a];\n }\n return t;\n }\n var c = {\n variant: \"default\"\n };\n var f = new Map;\n f.set(\"outlined\", (function() {\n \n return n().createElement(n().Fragment, null, n().createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M19.7105 4.29767C18.2127 2.79671 15.781 2.79622 14.2826 4.29658L3.35126 15.2421C3.12978 15.4639 3.00537 15.7645 3.00537 16.0779V19.4971C3.00537 20.3255 3.67694 20.9971 4.50537 20.9971H7.9244C8.23791 20.9971 8.53861 20.8726 8.76044 20.6511L19.7059 9.71982C21.204 8.22363 21.2061 5.7964 19.7105 4.29767ZM15.6978 5.70988C16.4147 4.99201 17.5781 4.99225 18.2948 5.7104C19.0104 6.42748 19.0094 7.58882 18.2926 8.30469L17.5306 9.06565L14.9368 6.47182L15.6978 5.70988ZM13.5235 7.88695L5.00537 16.4161V18.9971H7.58634L16.1155 10.4789L13.5235 7.88695Z\"\n }));\n }));\n f.set(\"filled\", (function() {\n \n return n().createElement(n().Fragment, null, n().createElement(\"path\", {\n d: \"M14.2828 4.29703C15.781 2.79651 18.2127 2.79687 19.7105 4.29782C21.2061 5.79655 21.2039 8.2238 19.7056 9.71982L18.9363 10.4879L13.8379 5.38276L13.5178 5.06314L14.2828 4.29703Z\"\n }), n().createElement(\"path\", {\n d: \"M3.4442 15.1493L12.1143 6.47093L13.5291 7.88447L13.5241 7.8895L17.5301 11.886L17.5264 11.8873L17.5296 11.8904L8.85336 20.5584C8.5721 20.8394 8.19078 20.9972 7.79321 20.9972H4.50537C3.67694 20.9972 3.00537 20.3257 3.00537 19.4972V16.2094C3.00537 15.8118 3.16321 15.4305 3.4442 15.1493Z\"\n }));\n }));\n var d = [ \"default\", \"outlined\", \"filled\" ];\n var v = function e(r) {\n return d.indexOf(r) >= 0;\n };\n var s = function e(r) {\n return r === \"default\" || r && !v(r) ? \"outlined\" : r;\n };\n /**\n * @description Edit, Rename, Draw represents common edit or text input action\n * @category Actions\n * @keywords action, rename, write, signature\n * @variants outlined,filled\n */ var p = function e(r) {\n var a = r.children, i = r.variant, c = u(r, [ \"children\", \"variant\" ]);\n var d = s(i);\n var v = \"pencil-\".concat(d);\n var p = (0, t.useContext)(l.IconContext);\n var L = f.get(d);\n if (false) {}\n if (p && L) {\n var m = p.toRender, y = p.addIcon;\n y(v, L());\n if (!m) {\n return null;\n }\n }\n \n return n().createElement(o(), c, a, p ? n().createElement(\"use\", {\n href: \"#\".concat(v)\n }) : !!L && L());\n };\n p.defaultProps = c;\n /* harmony default export */ const L = p;\n module.exports = r;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = r => {\n /******/ var t = r && r.__esModule ? \n /******/ () => r[\"default\"]\n /******/ : () => r\n /******/;\n e.d(t, {\n a: t\n });\n /******/ return t;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (r, t) => {\n /******/ for (var n in t) {\n /******/ if (e.o(t, n) && !e.o(r, n)) {\n /******/ Object.defineProperty(r, n, {\n enumerable: true,\n get: t[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var r = {};\n // ESM COMPAT FLAG\n e.r(r);\n // EXPORTS\n e.d(r, {\n default: () => /* binding */ i\n });\n // CONCATENATED MODULE: external \"react\"\n const t = require(\"react\");\n var n = e.n(t);\n // CONCATENATED MODULE: external \"@splunk/ui-utils/i18n\"\n const o = require(\"@splunk/ui-utils/i18n\");\n // CONCATENATED MODULE: external \"@splunk/react-icons/SVGInternal\"\n const a = require(\"@splunk/react-icons/SVGInternal\");\n var u = e.n(a);\n // CONCATENATED MODULE: ./src/enterprise/Check.tsx\n function l() {\n l = Object.assign || function(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = arguments[r];\n for (var n in t) {\n if (Object.prototype.hasOwnProperty.call(t, n)) {\n e[n] = t[n];\n }\n }\n }\n return e;\n };\n return l.apply(this, arguments);\n }\n /* eslint-disable max-len */ function i(e) {\n \n return n().createElement(u(), l({\n screenReaderText: (0, o._)(\"Check\")\n }, e), n().createElement(\"path\", {\n d: \"M536.3 1278.364L1500 121.514 1354.11.283 513.7 1010.212l-391.44-319.52L0 837.61\"\n }));\n }\n module.exports = r;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = r => {\n /******/ var t = r && r.__esModule ? \n /******/ () => r[\"default\"]\n /******/ : () => r\n /******/;\n e.d(t, {\n a: t\n });\n /******/ return t;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (r, t) => {\n /******/ for (var n in t) {\n /******/ if (e.o(t, n) && !e.o(r, n)) {\n /******/ Object.defineProperty(r, n, {\n enumerable: true,\n get: t[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var r = {};\n // ESM COMPAT FLAG\n e.r(r);\n // EXPORTS\n e.d(r, {\n default: () => /* binding */ i\n });\n // CONCATENATED MODULE: external \"react\"\n const t = require(\"react\");\n var n = e.n(t);\n // CONCATENATED MODULE: external \"@splunk/ui-utils/i18n\"\n const o = require(\"@splunk/ui-utils/i18n\");\n // CONCATENATED MODULE: external \"@splunk/react-icons/SVGInternal\"\n const a = require(\"@splunk/react-icons/SVGInternal\");\n var u = e.n(a);\n // CONCATENATED MODULE: ./src/enterprise/ChevronLeft.tsx\n function l() {\n l = Object.assign || function(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = arguments[r];\n for (var n in t) {\n if (Object.prototype.hasOwnProperty.call(t, n)) {\n e[n] = t[n];\n }\n }\n }\n return e;\n };\n return l.apply(this, arguments);\n }\n function i(e) {\n \n return n().createElement(u(), l({\n screenReaderText: (0, o._)(\"Chevron Left\"),\n viewBox: \"0 0 885 1500\"\n }, e), n().createElement(\"path\", {\n d: \"M751.027 1500L0 750 750 0l134.59 134.59L269.177 750l615.41 615.41\"\n }));\n }\n module.exports = r;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = r => {\n /******/ var t = r && r.__esModule ? \n /******/ () => r[\"default\"]\n /******/ : () => r\n /******/;\n e.d(t, {\n a: t\n });\n /******/ return t;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (r, t) => {\n /******/ for (var n in t) {\n /******/ if (e.o(t, n) && !e.o(r, n)) {\n /******/ Object.defineProperty(r, n, {\n enumerable: true,\n get: t[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var r = {};\n // ESM COMPAT FLAG\n e.r(r);\n // EXPORTS\n e.d(r, {\n default: () => /* binding */ l\n });\n // CONCATENATED MODULE: external \"react\"\n const t = require(\"react\");\n var n = e.n(t);\n // CONCATENATED MODULE: external \"@splunk/ui-utils/i18n\"\n const o = require(\"@splunk/ui-utils/i18n\");\n // CONCATENATED MODULE: external \"@splunk/react-icons/SVGInternal\"\n const a = require(\"@splunk/react-icons/SVGInternal\");\n var u = e.n(a);\n // CONCATENATED MODULE: ./src/enterprise/ChevronRight.tsx\n function i() {\n i = Object.assign || function(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = arguments[r];\n for (var n in t) {\n if (Object.prototype.hasOwnProperty.call(t, n)) {\n e[n] = t[n];\n }\n }\n }\n return e;\n };\n return i.apply(this, arguments);\n }\n function l(e) {\n \n return n().createElement(u(), i({\n screenReaderText: (0, o._)(\"Chevron Right\"),\n viewBox: \"0 0 885 1500\"\n }, e), n().createElement(\"path\", {\n d: \"M134.59 0l750 750-751.028 750L0 1365.41 615.41 750 0 134.59\"\n }));\n }\n module.exports = r;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = r => {\n /******/ var t = r && r.__esModule ? \n /******/ () => r[\"default\"]\n /******/ : () => r\n /******/;\n e.d(t, {\n a: t\n });\n /******/ return t;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (r, t) => {\n /******/ for (var n in t) {\n /******/ if (e.o(t, n) && !e.o(r, n)) {\n /******/ Object.defineProperty(r, n, {\n enumerable: true,\n get: t[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var r = {};\n // ESM COMPAT FLAG\n e.r(r);\n // EXPORTS\n e.d(r, {\n default: () => /* binding */ i\n });\n // CONCATENATED MODULE: external \"react\"\n const t = require(\"react\");\n var n = e.n(t);\n // CONCATENATED MODULE: external \"@splunk/ui-utils/i18n\"\n const o = require(\"@splunk/ui-utils/i18n\");\n // CONCATENATED MODULE: external \"@splunk/react-icons/SVGInternal\"\n const a = require(\"@splunk/react-icons/SVGInternal\");\n var u = e.n(a);\n // CONCATENATED MODULE: ./src/enterprise/Clone.tsx\n function l() {\n l = Object.assign || function(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = arguments[r];\n for (var n in t) {\n if (Object.prototype.hasOwnProperty.call(t, n)) {\n e[n] = t[n];\n }\n }\n }\n return e;\n };\n return l.apply(this, arguments);\n }\n /* eslint-disable max-len */ function i(e) {\n \n return n().createElement(u(), l({\n screenReaderText: (0, o._)(\"Clone\")\n }, e), n().createElement(\"path\", {\n d: \"M189.04 1310.96H1125V1500H0V375h189.04v935.96zM375 0h1125v1125H375V0zm935.96 935.96V189.04H564.04v746.92h746.92z\"\n }));\n }\n module.exports = r;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = r => {\n /******/ var t = r && r.__esModule ? \n /******/ () => r[\"default\"]\n /******/ : () => r\n /******/;\n e.d(t, {\n a: t\n });\n /******/ return t;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (r, t) => {\n /******/ for (var n in t) {\n /******/ if (e.o(t, n) && !e.o(r, n)) {\n /******/ Object.defineProperty(r, n, {\n enumerable: true,\n get: t[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var r = {};\n // ESM COMPAT FLAG\n e.r(r);\n // EXPORTS\n e.d(r, {\n default: () => /* binding */ i\n });\n // CONCATENATED MODULE: external \"react\"\n const t = require(\"react\");\n var n = e.n(t);\n // CONCATENATED MODULE: external \"@splunk/ui-utils/i18n\"\n const o = require(\"@splunk/ui-utils/i18n\");\n // CONCATENATED MODULE: external \"@splunk/react-icons/SVGInternal\"\n const a = require(\"@splunk/react-icons/SVGInternal\");\n var u = e.n(a);\n // CONCATENATED MODULE: ./src/enterprise/Info.tsx\n function c() {\n c = Object.assign || function(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = arguments[r];\n for (var n in t) {\n if (Object.prototype.hasOwnProperty.call(t, n)) {\n e[n] = t[n];\n }\n }\n }\n return e;\n };\n return c.apply(this, arguments);\n }\n /* eslint-disable max-len */ function i(e) {\n \n return n().createElement(u(), c({\n screenReaderText: (0, o._)(\"Info\"),\n viewBox: \"0 0 750 1500\"\n }, e), n().createElement(\"path\", {\n d: \"M187.5 562.5h375v750H750V1500H0v-187.5h187.5V750H0V562.5h187.5z\"\n }), n().createElement(\"circle\", {\n cx: \"375\",\n cy: \"187.5\",\n r: \"187.5\"\n }));\n }\n module.exports = r;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = r => {\n /******/ var t = r && r.__esModule ? \n /******/ () => r[\"default\"]\n /******/ : () => r\n /******/;\n e.d(t, {\n a: t\n });\n /******/ return t;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (r, t) => {\n /******/ for (var n in t) {\n /******/ if (e.o(t, n) && !e.o(r, n)) {\n /******/ Object.defineProperty(r, n, {\n enumerable: true,\n get: t[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var r = {};\n // ESM COMPAT FLAG\n e.r(r);\n // EXPORTS\n e.d(r, {\n default: () => /* binding */ c\n });\n // CONCATENATED MODULE: external \"react\"\n const t = require(\"react\");\n var n = e.n(t);\n // CONCATENATED MODULE: external \"@splunk/ui-utils/i18n\"\n const o = require(\"@splunk/ui-utils/i18n\");\n // CONCATENATED MODULE: external \"@splunk/react-icons/SVGInternal\"\n const a = require(\"@splunk/react-icons/SVGInternal\");\n var u = e.n(a);\n // CONCATENATED MODULE: ./src/enterprise/MoreVertical.tsx\n function i() {\n i = Object.assign || function(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = arguments[r];\n for (var n in t) {\n if (Object.prototype.hasOwnProperty.call(t, n)) {\n e[n] = t[n];\n }\n }\n }\n return e;\n };\n return i.apply(this, arguments);\n }\n function c(e) {\n \n return n().createElement(u(), i({\n screenReaderText: (0, o._)(\"More\"),\n viewBox: \"0 0 32 32\"\n }, e), n().createElement(\"path\", {\n d: \"M16,3c1.7,0,3,1.3,3,3s-1.3,3-3,3s-3-1.3-3-3S14.3,3,16,3z M16,13c1.7,0,3,1.3,3,3s-1.3,3-3,3s-3-1.3-3-3S14.3,13,16,13zM16,23c1.7,0,3,1.3,3,3s-1.3,3-3,3s-3-1.3-3-3S14.3,23,16,23z\"\n }));\n }\n module.exports = r;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = r => {\n /******/ var t = r && r.__esModule ? \n /******/ () => r[\"default\"]\n /******/ : () => r\n /******/;\n e.d(t, {\n a: t\n });\n /******/ return t;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (r, t) => {\n /******/ for (var n in t) {\n /******/ if (e.o(t, n) && !e.o(r, n)) {\n /******/ Object.defineProperty(r, n, {\n enumerable: true,\n get: t[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var r = {};\n // ESM COMPAT FLAG\n e.r(r);\n // EXPORTS\n e.d(r, {\n default: () => /* binding */ u\n });\n // CONCATENATED MODULE: external \"react\"\n const t = require(\"react\");\n var n = e.n(t);\n // CONCATENATED MODULE: external \"@splunk/ui-utils/i18n\"\n const o = require(\"@splunk/ui-utils/i18n\");\n // CONCATENATED MODULE: external \"@splunk/react-icons/SVGInternal\"\n const a = require(\"@splunk/react-icons/SVGInternal\");\n var c = e.n(a);\n // CONCATENATED MODULE: ./src/enterprise/Search.tsx\n function l() {\n l = Object.assign || function(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = arguments[r];\n for (var n in t) {\n if (Object.prototype.hasOwnProperty.call(t, n)) {\n e[n] = t[n];\n }\n }\n }\n return e;\n };\n return l.apply(this, arguments);\n }\n /* eslint-disable max-len */ function u(e) {\n \n return n().createElement(c(), l({\n screenReaderText: (0, o._)(\"Search\")\n }, e), n().createElement(\"path\", {\n d: \"M1476.69 1268.412l-340.795-340.795c56.048-92.285 88.43-200.177 88.43-314.948C1224.324 277.195 947.634.506 612.16.506S0 277.197 0 612.67c0 335.472 276.69 612.16 612.162 612.16 114.77 0 222.663-32.385 314.948-88.43l340.795 340.796c30.406 30.405 75 30.405 105.406 0l103.38-103.378c30.405-30.406 30.405-75 0-105.406zM156.08 612.67c0-248.312 207.77-456.082 456.082-456.082 248.31 0 456.08 207.77 456.08 456.08 0 248.312-207.77 456.082-456.08 456.082-248.31 0-456.08-207.77-456.08-456.08z\"\n }));\n }\n module.exports = r;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = r => {\n /******/ var t = r && r.__esModule ? \n /******/ () => r[\"default\"]\n /******/ : () => r\n /******/;\n e.d(t, {\n a: t\n });\n /******/ return t;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (r, t) => {\n /******/ for (var n in t) {\n /******/ if (e.o(t, n) && !e.o(r, n)) {\n /******/ Object.defineProperty(r, n, {\n enumerable: true,\n get: t[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var r = {};\n // ESM COMPAT FLAG\n e.r(r);\n // EXPORTS\n e.d(r, {\n default: () => /* binding */ c\n });\n // CONCATENATED MODULE: external \"react\"\n const t = require(\"react\");\n var n = e.n(t);\n // CONCATENATED MODULE: external \"@splunk/ui-utils/i18n\"\n const o = require(\"@splunk/ui-utils/i18n\");\n // CONCATENATED MODULE: external \"@splunk/react-icons/SVGInternal\"\n const a = require(\"@splunk/react-icons/SVGInternal\");\n var u = e.n(a);\n // CONCATENATED MODULE: ./src/enterprise/Trash.tsx\n function i() {\n i = Object.assign || function(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = arguments[r];\n for (var n in t) {\n if (Object.prototype.hasOwnProperty.call(t, n)) {\n e[n] = t[n];\n }\n }\n }\n return e;\n };\n return i.apply(this, arguments);\n }\n /* eslint-disable max-len */ function c(e) {\n \n return n().createElement(u(), i({\n screenReaderText: (0, o._)(\"Trash\"),\n viewBox: \"0 0 1350 1500\"\n }, e), n().createElement(\"path\", {\n d: \"M1273.973 150H900V76.027C900 31.85 868.15 0 823.973 0H526.027C481.85 0 450 31.85 450 76.027V150H76.027C31.85 150 0 181.85 0 225v150h1350V226.027c0-44.178-31.85-76.027-76.027-76.027zM150 523.973v900c0 44.178 31.85 76.027 76.027 76.027h897.946c44.178 0 76.027-31.85 76.027-76.027v-900H150z\"\n }));\n }\n module.exports = r;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ var e = {\n /***/ 679: \n /***/ (e, t, n) => {\n // EXPORTS\n n.d(t, {\n default: () => /* binding */ V\n });\n // EXTERNAL MODULE: external \"react\"\n var r = n(497);\n var o = n.n(r);\n // EXTERNAL MODULE: external \"prop-types\"\n var i = n(23);\n var a = n.n(i);\n // CONCATENATED MODULE: external \"@splunk/react-icons/enterprise/Close\"\n const s = require(\"@splunk/react-icons/enterprise/Close\");\n var u = n.n(s);\n // CONCATENATED MODULE: external \"@splunk/ui-utils/keyboard\"\n const c = require(\"@splunk/ui-utils/keyboard\");\n // CONCATENATED MODULE: external \"@splunk/react-icons/enterprise/InfoCircle\"\n const l = require(\"@splunk/react-icons/enterprise/InfoCircle\");\n var f = n.n(l);\n // CONCATENATED MODULE: external \"@splunk/react-icons/enterprise/Success\"\n const p = require(\"@splunk/react-icons/enterprise/Success\");\n var d = n.n(p);\n // CONCATENATED MODULE: external \"@splunk/react-icons/enterprise/Error\"\n const v = require(\"@splunk/react-icons/enterprise/Error\");\n var b = n.n(v);\n // CONCATENATED MODULE: external \"@splunk/react-icons/enterprise/Warning\"\n const m = require(\"@splunk/react-icons/enterprise/Warning\");\n var y = n.n(m);\n // CONCATENATED MODULE: external \"@splunk/themes/useSplunkTheme\"\n const T = require(\"@splunk/themes/useSplunkTheme\");\n var h = n.n(T);\n // EXTERNAL MODULE: ./src/ToastConstants.js\n var O = n(535);\n // EXTERNAL MODULE: ./src/ToastStyles.js + 3 modules\n var C = n(874);\n // CONCATENATED MODULE: ./src/ToastIcon.jsx\n var g = \"24px\";\n var S = \"26px\";\n // this icon renders smaller than intended\n var x = function e(t) {\n switch (t) {\n case O.TOAST_TYPES.SUCCESS:\n \n return o().createElement(d(), {\n size: g\n });\n\n case O.TOAST_TYPES.INFO:\n \n return o().createElement(f(), {\n size: g\n });\n\n case O.TOAST_TYPES.ERROR:\n \n return o().createElement(b(), {\n size: S\n });\n\n case O.TOAST_TYPES.WARNING:\n \n return o().createElement(y(), {\n size: g\n });\n\n default:\n \n return o().createElement(f(), {\n size: g\n });\n }\n };\n var E = function e(t) {\n var n = t.children;\n \n return o().createElement(\"svg\", {\n viewBox: \"0 0 24 24\",\n width: g,\n height: g,\n xmlns: \"http://www.w3.org/2000/svg\"\n }, n);\n };\n E.propTypes = {\n children: a().node.isRequired\n };\n var w = function e(t) {\n switch (t) {\n case O.TOAST_TYPES.SUCCESS:\n \n return o().createElement(E, null, o().createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12ZM16.8738 8.62627C17.2643 9.01679 17.2643 9.64996 16.8738 10.0405L11.5853 15.329C10.9996 15.9147 10.0499 15.9148 9.46414 15.3291L7.12637 12.9921C6.73579 12.6016 6.7357 11.9684 7.12616 11.5779C7.51663 11.1873 8.1498 11.1872 8.54038 11.5776L10.5246 13.5613L15.4596 8.62627C15.8501 8.23574 16.4833 8.23574 16.8738 8.62627Z\",\n fill: \"currentColor\"\n }));\n\n case O.TOAST_TYPES.INFO:\n \n return o().createElement(E, null, o().createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12ZM11.0001 16.0094V11.9999C11.0001 11.4476 11.4478 10.9999 12.0001 10.9999C12.5524 10.9999 13.0001 11.4476 13.0001 11.9999V16.0094C13.0001 16.5617 12.5524 17.0094 12.0001 17.0094C11.4478 17.0094 11.0001 16.5617 11.0001 16.0094ZM12 6.9999C12.6628 6.9999 13.2 7.53716 13.2 8.1999C13.2 8.86264 12.6628 9.3999 12 9.3999C11.3373 9.3999 10.8 8.86264 10.8 8.1999C10.8 7.53716 11.3373 6.9999 12 6.9999Z\",\n fill: \"currentColor\"\n }));\n\n case O.TOAST_TYPES.ERROR:\n \n return o().createElement(E, null, o().createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22C17.5228 22 22 17.5228 22 12ZM11.0001 7.9906V12.0001C11.0001 12.5524 11.4478 13.0001 12.0001 13.0001C12.5524 13.0001 13.0001 12.5524 13.0001 12.0001V7.9906C13.0001 7.43832 12.5524 6.9906 12.0001 6.9906C11.4478 6.9906 11.0001 7.43832 11.0001 7.9906ZM12.0001 17.0001C12.6628 17.0001 13.2001 16.4628 13.2001 15.8001C13.2001 15.1374 12.6628 14.6001 12.0001 14.6001C11.3373 14.6001 10.8001 15.1374 10.8001 15.8001C10.8001 16.4628 11.3373 17.0001 12.0001 17.0001Z\",\n fill: \"currentColor\"\n }));\n\n case O.TOAST_TYPES.WARNING:\n \n return o().createElement(E, null, o().createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M10.6827 2.82369C11.2341 1.72544 12.7659 1.72544 13.3173 2.82369L21.8338 19.7867C22.3412 20.7973 21.6254 22 20.5165 22H3.48349C2.37462 22 1.65878 20.7973 2.16616 19.7867L10.6827 2.82369ZM11.0002 13.6618V11.0133C11.0002 10.461 11.4479 10.0133 12.0002 10.0133C12.5525 10.0133 13.0002 10.461 13.0002 11.0133V13.6618C13.0002 14.2141 12.5525 14.6618 12.0002 14.6618C11.4479 14.6618 11.0002 14.2141 11.0002 13.6618ZM13.2002 16.9347C13.2002 17.5975 12.6629 18.1347 12.0002 18.1347C11.3374 18.1347 10.8002 17.5975 10.8002 16.9347C10.8002 16.272 11.3374 15.7347 12.0002 15.7347C12.6629 15.7347 13.2002 16.272 13.2002 16.9347Z\",\n fill: \"currentColor\"\n }));\n\n default:\n \n return o().createElement(E, null, o().createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12ZM11.0001 16.0094V11.9999C11.0001 11.4476 11.4478 10.9999 12.0001 10.9999C12.5524 10.9999 13.0001 11.4476 13.0001 11.9999V16.0094C13.0001 16.5617 12.5524 17.0094 12.0001 17.0094C11.4478 17.0094 11.0001 16.5617 11.0001 16.0094ZM12 6.9999C12.6628 6.9999 13.2 7.53716 13.2 8.1999C13.2 8.86264 12.6628 9.3999 12 9.3999C11.3373 9.3999 10.8 8.86264 10.8 8.1999C10.8 7.53716 11.3373 6.9999 12 6.9999Z\",\n fill: \"currentColor\"\n }));\n }\n };\n var R = function e(t) {\n var n = t.type;\n var r = h()(), i = r.family;\n var a = i === \"prisma\" ? w(n) : x(n);\n \n return o().createElement(C /* StyledIcon */ .xL, {\n role: \"img\",\n \"data-test\": n,\n \"aria-label\": \"\".concat(n, \" toast icon\"),\n $type: n\n }, a);\n };\n R.propTypes = {\n type: a().string.isRequired\n };\n /* harmony default export */ const P = R;\n // CONCATENATED MODULE: ./src/Toast.jsx\n function k(e) {\n \"@babel/helpers - typeof\";\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n k = function e(t) {\n return typeof t;\n };\n } else {\n k = function e(t) {\n return t && typeof Symbol === \"function\" && t.constructor === Symbol && t !== Symbol.prototype ? \"symbol\" : typeof t;\n };\n }\n return k(e);\n }\n function A() {\n A = Object.assign || function(e) {\n for (var t = 1; t < arguments.length; t++) {\n var n = arguments[t];\n for (var r in n) {\n if (Object.prototype.hasOwnProperty.call(n, r)) {\n e[r] = n[r];\n }\n }\n }\n return e;\n };\n return A.apply(this, arguments);\n }\n function _(e, t) {\n if (e == null) return {};\n var n = I(e, t);\n var r, o;\n if (Object.getOwnPropertySymbols) {\n var i = Object.getOwnPropertySymbols(e);\n for (o = 0; o < i.length; o++) {\n r = i[o];\n if (t.indexOf(r) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(e, r)) continue;\n n[r] = e[r];\n }\n }\n return n;\n }\n function I(e, t) {\n if (e == null) return {};\n var n = {};\n var r = Object.keys(e);\n var o, i;\n for (i = 0; i < r.length; i++) {\n o = r[i];\n if (t.indexOf(o) >= 0) continue;\n n[o] = e[o];\n }\n return n;\n }\n function j(e, t) {\n if (!(e instanceof t)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function q(e, t) {\n for (var n = 0; n < t.length; n++) {\n var r = t[n];\n r.enumerable = r.enumerable || false;\n r.configurable = true;\n if (\"value\" in r) r.writable = true;\n Object.defineProperty(e, r.key, r);\n }\n }\n function M(e, t, n) {\n if (t) q(e.prototype, t);\n if (n) q(e, n);\n return e;\n }\n function N(e, t) {\n if (typeof t !== \"function\" && t !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n e.prototype = Object.create(t && t.prototype, {\n constructor: {\n value: e,\n writable: true,\n configurable: true\n }\n });\n if (t) Y(e, t);\n }\n function Y(e, t) {\n Y = Object.setPrototypeOf || function e(t, n) {\n t.__proto__ = n;\n return t;\n };\n return Y(e, t);\n }\n function D(e) {\n var t = z();\n return function n() {\n var r = H(e), o;\n if (t) {\n var i = H(this).constructor;\n o = Reflect.construct(r, arguments, i);\n } else {\n o = r.apply(this, arguments);\n }\n return L(this, o);\n };\n }\n function L(e, t) {\n if (t && (k(t) === \"object\" || typeof t === \"function\")) {\n return t;\n }\n return F(e);\n }\n function F(e) {\n if (e === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return e;\n }\n function z() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], (function() {})));\n return true;\n } catch (e) {\n return false;\n }\n }\n function H(e) {\n H = Object.setPrototypeOf ? Object.getPrototypeOf : function e(t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n };\n return H(e);\n }\n function B(e, t, n) {\n if (t in e) {\n Object.defineProperty(e, t, {\n value: n,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n e[t] = n;\n }\n return e;\n }\n /* eslint-disable jsx-a11y/no-noninteractive-tabindex */ var Z = 5e3;\n /**\n * The Toaster component leverages the function returned from `makeCreateToast(Toaster)`\n * which we refer to as `createToast`. This function expects a set of props as parameters\n * which are defined as follows:\n */ var W = function(e) {\n N(n, e);\n var t = D(n);\n function n() {\n var e;\n j(this, n);\n for (var r = arguments.length, o = new Array(r), i = 0; i < r; i++) {\n o[i] = arguments[i];\n }\n e = t.call.apply(t, [ this ].concat(o));\n B(F(e), \"onMouseEnter\", (function() {\n if (e.props.autoDismiss) {\n e.pause();\n }\n }));\n B(F(e), \"onMouseLeave\", (function() {\n if (e.props.autoDismiss) {\n e.resume();\n }\n }));\n B(F(e), \"onActionClick\", (function(t) {\n e.fulfillActionCallback(t);\n }));\n B(F(e), \"handleCloseKeyDown\", (function(t) {\n if (t.keyCode === (0, c.keycode)(\"enter\")) {\n e.requestHide();\n }\n }));\n B(F(e), \"handleActionButtonKeyDown\", (function(t) {\n if (t.keyCode === (0, c.keycode)(\"enter\")) {\n e.fulfillActionCallback(t);\n }\n }));\n B(F(e), \"isValidToastType\", (function(e) {\n switch (e) {\n case O.TOAST_TYPES.SUCCESS:\n case O.TOAST_TYPES.INFO:\n case O.TOAST_TYPES.ERROR:\n case O.TOAST_TYPES.WARNING:\n return true;\n\n default:\n return false;\n }\n }));\n B(F(e), \"Timer\", (function(t, n) {\n var r = n;\n var o = n;\n e.pause = function() {\n window.clearTimeout(e.timerId);\n o -= new Date - r;\n };\n e.resume = function() {\n r = new Date;\n return window.setTimeout((function() {\n t();\n }), o);\n };\n return e.resume();\n }));\n B(F(e), \"requestHide\", (function() {\n var t = e.props.onRequestHide;\n t();\n }));\n return e;\n }\n M(n, [ {\n key: \"componentDidMount\",\n value: function e() {\n if (this.props.autoDismiss) {\n var t = this.props.timeout || Z;\n this.timerId = this.Timer(this.requestHide, t);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function e() {\n if (this.props.autoDismiss && this.timerId) {\n window.clearTimeout(this.timerId);\n }\n }\n }, {\n key: \"fulfillActionCallback\",\n value: function e(t) {\n var n = this.props, r = n.dismissOnActionClick, o = n.action;\n o.callback(t);\n if (r) {\n this.requestHide();\n }\n }\n }, {\n key: \"render\",\n value: function e() {\n var t = this.props, n = t.title, r = t.type, i = t.action, a = t.message, s = t.onFocus, c = t.onBlur, l = t.onRequestHide, f = _(t, [ \"title\", \"type\", \"action\", \"message\", \"onFocus\", \"onBlur\", \"onRequestHide\" ]);\n if (false) {}\n var p = o().createElement(P, {\n type: r\n });\n var d = o().createElement(C /* StyledMessage */ .g5, {\n \"data-test\": \"toast-message\",\n \"aria-label\": a,\n lang: navigator.language || navigator.userLanguage,\n title: a\n }, a);\n var v = i ? o().createElement(C /* StyledActionButton */ .lj, A({\n \"data-test\": \"toast-action\",\n tabIndex: 0,\n onClick: this.onActionClick,\n onFocus: s,\n onBlur: c,\n onKeyDown: this.handleActionButtonKeyDown,\n type: \"button\"\n }, i.props), i.label) : null;\n // TODO: The close icon is incorrect for Prisma SUI-2388\n // Must be absolute positioned to ensure proper tabIndex order.\n var b = o().createElement(\"div\", {\n role: \"button\",\n \"data-test\": \"toast-dismiss\",\n style: {\n position: \"absolute\",\n top: \"13px\",\n right: \"12px\",\n color: \"#818d99\",\n cursor: \"pointer\"\n },\n tabIndex: 0,\n focusable: \"true\",\n onClick: this.requestHide,\n onFocus: s,\n onBlur: c,\n onKeyDown: this.handleCloseKeyDown\n }, o().createElement(u(), {\n size: \"12px\"\n }));\n // Placed in-line beneath absolutely positioned dismiss button to ensure\n // proper wrapping of action button.\n var m = o().createElement(\"div\", {\n style: // if title is defined, use the absolute position to align\n // with the icon above.\n n ? {\n position: \"absolute\",\n top: \"13px\",\n right: \"12px\",\n color: \"#818d99\",\n cursor: \"pointer\"\n } : {\n display: \"inline-block\",\n marginTop: \"5px\",\n marginRight: \"12px\",\n float: \"right\",\n color: \"#818d99\",\n cursor: \"pointer\"\n }\n }, o().createElement(u(), {\n size: \"12px\"\n }));\n var y = o().createElement(C /* StyledToastContent */ .OF, {\n role: \"group\",\n \"aria-label\": \"Toast content\"\n }, n && o().createElement(C /* StyledMessageTitle */ .TL, {\n \"data-test\": \"toast-message-title\",\n $type: r\n }, n), d, \" \", m, \" \", v, \" \", b);\n \n return o().createElement(C /* StyledToast */ .f5, A({\n role: \"group\",\n \"data-test\": \"toast\",\n \"aria-label\": \"Toast container\",\n onMouseEnter: this.onMouseEnter,\n onMouseLeave: this.onMouseLeave,\n $type: r\n }, f), p, y);\n }\n } ]);\n return n;\n }(o().Component);\n W.propTypes = {\n /**\n * The message to be shown in the toast.\n */\n message: a().string.isRequired,\n /**\n * The type of toast. These types are pre-defined in `ToastConstants.js` as `TOAST_TYPES`.\n * If an unknown toast type is sent to `ToastMessages`, it will default to `TOAST_TYPES.INFO` and show warnings to the developer.\n * We do not enforce `TOAST_TYPES` in props because if multiple apps use the same `ToastMessages` container where\n * one of these versions have a newer version `Toaster` with perhaps new types, we do not want to show nothing,\n * but rather show the message and default to `TOAST_TYPES.INFO`.\n */\n type: a().string.isRequired,\n /**\n * Whether the toast message should automatically dismiss after 5 seconds.\n */\n autoDismiss: a().bool,\n /**\n * Whether the toast message should automatically dismiss after an action is clicked.\n */\n dismissOnActionClick: a().bool,\n /**\n * An actionable button that has a required label and callback function.\n * `props` can optionally be added to pass any additional props to the button.\n */\n action: a().shape({\n label: a().oneOfType([ a().string, a().node ]).isRequired,\n callback: a().func.isRequired,\n props: a().object\n }),\n /**\n * The message title to be shown in the toast.\n */\n title: a().string,\n /**\n * Internally controlled props\n */\n /**\n * Time (ms) before the toast will dismiss\n */\n /** @private */\n timeout: a().number,\n /**\n * Callback for when a toast is dismissed\n */\n /** @private */\n onRequestHide: a().func,\n /**\n * Callback for when a toast focused\n */\n /** @private */\n onFocus: a().func,\n /**\n * Callback for when a toast unfocused\n */\n /** @private */\n onBlur: a().func\n };\n W.defaultProps = {\n title: \"\",\n autoDismiss: true,\n dismissOnActionClick: true,\n onRequestHide: function e() {},\n onFocus: function e() {},\n onBlur: function e() {}\n };\n /* harmony default export */ const V = W;\n /***/ },\n /***/ 535: \n /***/ (e, t, n) => {\n /* harmony export */ n.d(t, {\n /* harmony export */ TOAST_POSITIONS: () => /* binding */ o\n /* harmony export */ ,\n TOAST_TYPES: () => /* binding */ r\n /* harmony export */ });\n var r = {\n INFO: \"info\",\n WARNING: \"warning\",\n SUCCESS: \"success\",\n ERROR: \"error\"\n };\n var o = {\n TOP_LEFT: \"top-left\",\n TOP_CENTER: \"top-center\",\n TOP_RIGHT: \"top-right\",\n BOTTOM_LEFT: \"bottom-left\",\n BOTTOM_CENTER: \"bottom-center\",\n BOTTOM_RIGHT: \"bottom-right\"\n };\n /***/ },\n /***/ 874: \n /***/ (e, t, n) => {\n // EXPORTS\n n.d(t, {\n lj: () => /* binding */ N,\n ye: () => /* binding */ Y,\n xL: () => /* binding */ q,\n ZW: () => /* binding */ Z,\n g5: () => /* binding */ j,\n TL: () => /* binding */ W,\n f5: () => /* binding */ I,\n OF: () => /* binding */ M\n });\n // CONCATENATED MODULE: external \"styled-components\"\n const r = require(\"styled-components\");\n var o = n.n(r);\n // CONCATENATED MODULE: external \"react-flip-move\"\n const i = require(\"react-flip-move\");\n var a = n.n(i);\n // CONCATENATED MODULE: external \"@splunk/themes\"\n const s = require(\"@splunk/themes\");\n // EXTERNAL MODULE: ./src/ToastConstants.js\n var u = n(535);\n // CONCATENATED MODULE: ./src/ToastStyles.js\n var c, l, f;\n function p() {\n var e = A([ \"\\n color: \", \";\\n \" ]);\n p = function t() {\n return e;\n };\n return e;\n }\n function d() {\n var e = A([ \"\\n \", \";\\n \", \";\\n font-size: 14px;\\n margin-left: 12px;\\n margin-right: 12px;\\n \", \"\\n box-sizing: content-box;\\n\" ]);\n d = function t() {\n return e;\n };\n return e;\n }\n function v() {\n var e = A([ \"\\n \", \"\\n position: fixed;\\n z-index: \", \";\\n \", \";\\n\" ]);\n v = function t() {\n return e;\n };\n return e;\n }\n function b() {\n var e = A([ \"\\n bottom: 16px;\\n left: 50%;\\n margin-left: calc(-1 * \", \" / 2);\\n\" ]);\n b = function t() {\n return e;\n };\n return e;\n }\n function m() {\n var e = A([ \"\\n bottom: 16px;\\n right: 16px;\\n\" ]);\n m = function t() {\n return e;\n };\n return e;\n }\n function y() {\n var e = A([ \"\\n bottom: 16px;\\n left: 16px;\\n\" ]);\n y = function t() {\n return e;\n };\n return e;\n }\n function T() {\n var e = A([ \"\\n top: 16px;\\n left: 16px;\\n\" ]);\n T = function t() {\n return e;\n };\n return e;\n }\n function h() {\n var e = A([ \"\\n top: 16px;\\n right: 16px;\\n\" ]);\n h = function t() {\n return e;\n };\n return e;\n }\n function O() {\n var e = A([ \"\\n top: 16px;\\n left: 50%;\\n margin-left: calc(-1 * \", \" / 2);\\n\" ]);\n O = function t() {\n return e;\n };\n return e;\n }\n function C() {\n var e = A([ \"\\n width: \", \";\\n\\n & > div:not(:nth-last-child(1)) {\\n margin-bottom: 16px;\\n }\\n\" ]);\n C = function t() {\n return e;\n };\n return e;\n }\n function g() {\n var e = A([ \"\\n display: block;\\n position: relative;\\n float: right;\\n margin: 3px 12px 12px 0;\\n overflow: hidden;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n width: auto;\\n color: \", \";\\n padding: 1px 0 2px;\\n border: none;\\n font-size: 14px;\\n line-height: 20px;\\n cursor: pointer;\\n max-width: calc(100% - 24px);\\n background-color: \", \";\\n box-sizing: content-box;\\n\" ]);\n g = function t() {\n return e;\n };\n return e;\n }\n function S() {\n var e = A([ \"\\n overflow-y: auto;\\n overflow-x: hidden;\\n margin-left: 47px;\\n width: 453px;\\n padding-top: 8px;\\n box-sizing: content-box;\\n\" ]);\n S = function t() {\n return e;\n };\n return e;\n }\n function x() {\n var e = A([ \"\\n border-radius: \", \" 0 0 \", \";\\n \" ]);\n x = function t() {\n return e;\n };\n return e;\n }\n function E() {\n var e = A([ \"\\n width: 36px;\\n height: 100%;\\n display: flex;\\n position: absolute;\\n align-items: center;\\n padding-left: 11px;\\n background: \", \";\\n color: \", \";\\n \", \"\\n box-sizing: content-box;\\n\" ]);\n E = function t() {\n return e;\n };\n return e;\n }\n function w() {\n var e = A([ \"\\n display: inline-block;\\n height: 100%;\\n padding-top: 5px;\\n margin-left: 12px;\\n margin-right: 12px;\\n max-width: 404px;\\n hyphens: auto;\\n text-overflow: ellipsis;\\n padding-bottom: \", \";\\n box-sizing: content-box;\\n\" ]);\n w = function t() {\n return e;\n };\n return e;\n }\n function R(e, t, n) {\n if (t in e) {\n Object.defineProperty(e, t, {\n value: n,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n e[t] = n;\n }\n return e;\n }\n function P() {\n var e = A([ \"\\n border: 1px solid\\n \", \";\\n \" ]);\n P = function t() {\n return e;\n };\n return e;\n }\n function k() {\n var e = A([ \"\\n width: \", \";\\n min-height: 46px;\\n position: relative;\\n background-color: \", \";\\n box-shadow: \", \";\\n \", \";\\n border-radius: \", \";\\n box-sizing: content-box;\\n\" ]);\n k = function t() {\n return e;\n };\n return e;\n }\n function A(e, t) {\n if (!t) {\n t = e.slice(0);\n }\n return Object.freeze(Object.defineProperties(e, {\n raw: {\n value: Object.freeze(t)\n }\n }));\n }\n var _ = \"500px\";\n var I = o().div(k(), _, (0, s.pick)({\n enterprise: s.variables.backgroundColor,\n prisma: s.variables.backgroundColorPopup\n }), (0, s.pick)({\n enterprise: s.variables.overlayShadow,\n prisma: s.variables.embossShadow\n }), (0, s.pick)({\n enterprise: (0, r.css)(P(), (0, s.pickVariant)(\"$type\", (c = {}, R(c, u.TOAST_TYPES.INFO, s.variables.cat1Color), \n R(c, u.TOAST_TYPES.WARNING, s.variables.warningColor), R(c, u.TOAST_TYPES.SUCCESS, s.variables.successColor), \n R(c, u.TOAST_TYPES.ERROR, s.variables.errorColor), c)))\n }), s.variables.borderRadius);\n var j = o().div(w(), (function(e) {\n return e.action ? null : \"13px\";\n }));\n var q = o().div(E(), (0, s.pick)({\n enterprise: (0, s.pickVariant)(\"$type\", (l = {}, R(l, u.TOAST_TYPES.INFO, s.variables.cat1Color), \n R(l, u.TOAST_TYPES.WARNING, s.variables.warningColor), R(l, u.TOAST_TYPES.SUCCESS, s.variables.successColor), \n R(l, u.TOAST_TYPES.ERROR, s.variables.errorColor), l)),\n prisma: (0, s.pickVariant)(\"$type\", (f = {}, R(f, u.TOAST_TYPES.INFO, s.variables.contentColorActive), \n R(f, u.TOAST_TYPES.WARNING, s.variables.accentColorWarning), R(f, u.TOAST_TYPES.SUCCESS, s.variables.accentColorPositive), \n R(f, u.TOAST_TYPES.ERROR, s.variables.accentColorNegative), f))\n }), (0, s.pick)({\n enterprise: s.variables.white,\n prisma: s.variables.contentColorInverted\n }), (0, s.pick)({\n prisma: (0, r.css)(x(), s.variables.borderRadius, s.variables.borderRadius)\n }));\n var M = o().div(S());\n var N = o().button(g(), s.variables.linkColor, (0, s.pick)({\n enterprise: s.variables.backgroundColor,\n prisma: \"transparent\"\n }));\n var Y = o()(a())(C(), _);\n var D = (0, r.css)(O(), _);\n var L = (0, r.css)(h());\n var F = (0, r.css)(T());\n var z = (0, r.css)(y());\n var H = (0, r.css)(m());\n var B = (0, r.css)(b(), _);\n var Z = o().div(v(), s.mixins.reset(\"block\"), s.variables.zindexToastMessages, (function(e) {\n switch (e.position) {\n case u.TOAST_POSITIONS.TOP_LEFT:\n return F;\n\n case u.TOAST_POSITIONS.TOP_CENTER:\n return D;\n\n case u.TOAST_POSITIONS.TOP_RIGHT:\n return L;\n\n case u.TOAST_POSITIONS.BOTTOM_LEFT:\n return z;\n\n case u.TOAST_POSITIONS.BOTTOM_CENTER:\n return B;\n\n case u.TOAST_POSITIONS.BOTTOM_RIGHT:\n return H;\n\n default:\n return D;\n }\n }));\n var W = o().p(d(), s.mixins.reset(\"block\"), s.mixins.typography(\"title5\"), (0, s.pick)({\n prisma: (0, r.css)(p(), (0, s.pickVariant)(\"$type\", {\n info: s.variables.contentColorActive,\n warning: s.variables.accentColorWarning,\n error: s.variables.accentColorNegative,\n success: s.variables.accentColorPositive\n }))\n }));\n /***/ },\n /***/ 23: \n /***/ e => {\n e.exports = require(\"prop-types\");\n /***/ },\n /***/ 497: \n /***/ e => {\n e.exports = require(\"react\");\n /***/\n /******/ }\n };\n /************************************************************************/\n /******/ // The module cache\n /******/ var t = {};\n /******/\n /******/ // The require function\n /******/ function n(r) {\n /******/ // Check if module is in cache\n /******/ var o = t[r];\n /******/ if (o !== undefined) {\n /******/ return o.exports;\n /******/ }\n /******/ // Create a new module (and put it into the cache)\n /******/ var i = t[r] = {\n /******/ // no module.id needed\n /******/ // no module.loaded needed\n /******/ exports: {}\n /******/ };\n /******/\n /******/ // Execute the module function\n /******/ e[r](i, i.exports, n);\n /******/\n /******/ // Return the exports of the module\n /******/ return i.exports;\n /******/ }\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ n.n = e => {\n /******/ var t = e && e.__esModule ? \n /******/ () => e[\"default\"]\n /******/ : () => e\n /******/;\n n.d(t, {\n a: t\n });\n /******/ return t;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ n.d = (e, t) => {\n /******/ for (var r in t) {\n /******/ if (n.o(t, r) && !n.o(e, r)) {\n /******/ Object.defineProperty(e, r, {\n enumerable: true,\n get: t[r]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ n.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ n.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var r = {};\n // This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.\n (() => {\n // ESM COMPAT FLAG\n n.r(r);\n // EXPORTS\n n.d(r, {\n default: () => /* binding */ G\n });\n // EXTERNAL MODULE: external \"react\"\n var e = n(497);\n var t = n.n(e);\n // EXTERNAL MODULE: external \"prop-types\"\n var o = n(23);\n var i = n.n(o);\n // CONCATENATED MODULE: external \"lodash/defer\"\n const a = require(\"lodash/defer\");\n var s = n.n(a);\n // CONCATENATED MODULE: external \"lodash/isNil\"\n const u = require(\"lodash/isNil\");\n var c = n.n(u);\n // CONCATENATED MODULE: external \"lodash/values\"\n const l = require(\"lodash/values\");\n var f = n.n(l);\n // CONCATENATED MODULE: external \"@splunk/react-ui/Layer\"\n const p = require(\"@splunk/react-ui/Layer\");\n var d = n.n(p);\n // CONCATENATED MODULE: external \"@splunk/react-toast-notifications/Toaster\"\n const v = require(\"@splunk/react-toast-notifications/Toaster\");\n var b = n.n(v);\n // CONCATENATED MODULE: external \"@splunk/ui-utils/focus\"\n const m = require(\"@splunk/ui-utils/focus\");\n // EXTERNAL MODULE: ./src/Toast.jsx + 8 modules\n var y = n(679);\n // EXTERNAL MODULE: ./src/ToastStyles.js + 3 modules\n var T = n(874);\n // EXTERNAL MODULE: ./src/ToastConstants.js\n var h = n(535);\n // CONCATENATED MODULE: ./src/ToastMessagesInternal.jsx\n function O(e) {\n \"@babel/helpers - typeof\";\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n O = function e(t) {\n return typeof t;\n };\n } else {\n O = function e(t) {\n return t && typeof Symbol === \"function\" && t.constructor === Symbol && t !== Symbol.prototype ? \"symbol\" : typeof t;\n };\n }\n return O(e);\n }\n function C() {\n C = Object.assign || function(e) {\n for (var t = 1; t < arguments.length; t++) {\n var n = arguments[t];\n for (var r in n) {\n if (Object.prototype.hasOwnProperty.call(n, r)) {\n e[r] = n[r];\n }\n }\n }\n return e;\n };\n return C.apply(this, arguments);\n }\n function g(e, t) {\n if (e == null) return {};\n var n = S(e, t);\n var r, o;\n if (Object.getOwnPropertySymbols) {\n var i = Object.getOwnPropertySymbols(e);\n for (o = 0; o < i.length; o++) {\n r = i[o];\n if (t.indexOf(r) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(e, r)) continue;\n n[r] = e[r];\n }\n }\n return n;\n }\n function S(e, t) {\n if (e == null) return {};\n var n = {};\n var r = Object.keys(e);\n var o, i;\n for (i = 0; i < r.length; i++) {\n o = r[i];\n if (t.indexOf(o) >= 0) continue;\n n[o] = e[o];\n }\n return n;\n }\n function x(e) {\n return P(e) || R(e) || w(e) || E();\n }\n function E() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n function w(e, t) {\n if (!e) return;\n if (typeof e === \"string\") return k(e, t);\n var n = Object.prototype.toString.call(e).slice(8, -1);\n if (n === \"Object\" && e.constructor) n = e.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(e);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return k(e, t);\n }\n function R(e) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(e)) return Array.from(e);\n }\n function P(e) {\n if (Array.isArray(e)) return k(e);\n }\n function k(e, t) {\n if (t == null || t > e.length) t = e.length;\n for (var n = 0, r = new Array(t); n < t; n++) {\n r[n] = e[n];\n }\n return r;\n }\n function A(e, t) {\n if (!(e instanceof t)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _(e, t) {\n for (var n = 0; n < t.length; n++) {\n var r = t[n];\n r.enumerable = r.enumerable || false;\n r.configurable = true;\n if (\"value\" in r) r.writable = true;\n Object.defineProperty(e, r.key, r);\n }\n }\n function I(e, t, n) {\n if (t) _(e.prototype, t);\n if (n) _(e, n);\n return e;\n }\n function j(e, t) {\n if (typeof t !== \"function\" && t !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n e.prototype = Object.create(t && t.prototype, {\n constructor: {\n value: e,\n writable: true,\n configurable: true\n }\n });\n if (t) q(e, t);\n }\n function q(e, t) {\n q = Object.setPrototypeOf || function e(t, n) {\n t.__proto__ = n;\n return t;\n };\n return q(e, t);\n }\n function M(e) {\n var t = D();\n return function n() {\n var r = L(e), o;\n if (t) {\n var i = L(this).constructor;\n o = Reflect.construct(r, arguments, i);\n } else {\n o = r.apply(this, arguments);\n }\n return N(this, o);\n };\n }\n function N(e, t) {\n if (t && (O(t) === \"object\" || typeof t === \"function\")) {\n return t;\n }\n return Y(e);\n }\n function Y(e) {\n if (e === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return e;\n }\n function D() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], (function() {})));\n return true;\n } catch (e) {\n return false;\n }\n }\n function L(e) {\n L = Object.setPrototypeOf ? Object.getPrototypeOf : function e(t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n };\n return L(e);\n }\n function F(e, t, n) {\n if (t in e) {\n Object.defineProperty(e, t, {\n value: n,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n e[t] = n;\n }\n return e;\n }\n var z = 200;\n var H = {\n from: {\n transform: \"translateY(-100%)\",\n opacity: \"0\"\n },\n to: {\n transform: \"translateY(0)\",\n opacity: \"\"\n }\n };\n var B = {\n from: {\n transform: \"translateY(100%)\",\n opacity: \"0\"\n },\n to: {\n transform: \"translateY(0)\",\n opacity: \"\"\n }\n };\n /**\n * An internal component responsible for displaying and managing toast messages.\n */ var Z = function(e) {\n j(r, e);\n var n = M(r);\n function r(e) {\n var o;\n A(this, r);\n o = n.call(this, e);\n F(Y(o), \"handleModalMount\", (function(e) {\n o.el = e;\n if (e) {\n s()(m.takeFocus, e, \"container\");\n }\n }));\n F(Y(o), \"handleModalKeyDown\", (function(e) {\n (0, m.handleTab)(o.el, e);\n }));\n F(Y(o), \"handleToastCreate\", (function(e) {\n var t = o.props.position;\n var n = t.indexOf(\"top\") !== -1;\n o.setState((function(t) {\n if (n) {\n return {\n toasts: [ e ].concat(x(t.toasts))\n };\n }\n return {\n toasts: [].concat(x(t.toasts), [ e ])\n };\n }));\n }));\n F(Y(o), \"handleToastFocus\", (function(e) {\n o.setState((function(t) {\n var n = t.toasts.filter((function(t) {\n return t.id === e;\n }));\n if (n.length > 0 && t.focusedToast !== n[0]) {\n return {\n focusedToast: n[0]\n };\n }\n return null;\n }));\n }));\n F(Y(o), \"handleRequestHide\", (function(e) {\n o.setState((function(t) {\n var n = t.focusedToast || e;\n return {\n toasts: t.toasts.filter((function(e) {\n return n.id !== e.id;\n })),\n focusedToast: null\n };\n }));\n }));\n F(Y(o), \"renderLayer\", (function() {\n var e = o.props, n = e.position, r = e.animationDuration;\n var i = n.indexOf(\"top\") !== -1;\n var a = i ? H : B;\n \n return t().createElement(T /* StyledLayer */ .ZW, {\n ref: o.handleModalMount,\n position: n,\n \"data-test\": \"toast-messages\",\n role: \"group\",\n \"aria-label\": \"Toast messages container\",\n tabIndex: -1,\n onKeyDown: o.handleModalKeyDown\n }, t().createElement(T /* StyledFlipMove */ .ye, {\n enterAnimation: a,\n appearAnimation: a,\n leaveAnimation: \"fade\",\n duration: c()(r) ? z : r,\n easing: \"cubic-bezier(0.25, 0.46, 0.45, 0.94)\",\n verticalAlignment: i ? \"top\" : \"bottom\"\n }, o.state.toasts.map((function(e) {\n var n = e.id, r = e.title, i = e.message, a = e.type, s = e.autoDismiss, u = e.dismissOnActionClick, c = e.action, l = e.timeOut, f = g(e, [ \"id\", \"title\", \"message\", \"type\", \"autoDismiss\", \"dismissOnActionClick\", \"action\", \"timeOut\" ]);\n \n return t().createElement(y[\"default\"], C({\n key: n,\n title: r,\n message: i,\n type: a,\n autoDismiss: s,\n dismissOnActionClick: u,\n action: c,\n timeout: l,\n onRequestHide: function t() {\n return o.handleRequestHide(e);\n },\n onFocus: function e() {\n return o.handleToastFocus(n);\n },\n onBlur: function e() {\n return o.handleToastBlur();\n }\n }, f));\n }))));\n }));\n o.state = {\n toasts: e.toasts || [],\n focusedToast: null\n };\n return o;\n }\n I(r, [ {\n key: \"componentDidMount\",\n value: function e() {\n b().addCreateListener(this.handleToastCreate);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function e() {\n this.setState({\n toasts: [],\n focusedToast: null\n });\n b().removeCreateListener(this.handleToastCreate);\n }\n }, {\n key: \"handleToastBlur\",\n value: function e() {\n if (this.state.focusedToast) {\n this.setState({\n focusedToast: null\n });\n }\n }\n }, {\n key: \"render\",\n value: function e() {\n var n = this;\n var r = this.props.position;\n var o = r.indexOf(\"top\") !== -1;\n var i = o ? 0 : Math.max(this.state.toasts.length - 1, 0);\n var a = this.state.toasts.length > 0;\n return this.props.escapeToCloseToasts ? t().createElement(d(), {\n closeReasons: [ \"escapeKey\" ],\n render: this.renderLayer,\n onRequestClose: function e() {\n return n.handleRequestHide(n.state.toasts[i]);\n },\n open: a\n }, a && this.renderLayer()) : this.renderLayer();\n }\n } ]);\n return r;\n }(t().Component);\n Z.propTypes = {\n /**\n * The static position on the screen that toasts will display.\n */\n /** @private */\n position: i().oneOf(f()(h.TOAST_POSITIONS)).isRequired,\n /**\n * Duration (ms) that a toast will take to animate (in and out).\n */\n /** @private */\n animationDuration: i().number,\n /**\n * An array of all currently active Toast objects.\n */\n /** @private */\n toasts: i().arrayOf(i().object),\n /**\n * Whether or not clicking the escape key will close the most recent\n * toast message.\n */\n /** @private */\n escapeToCloseToasts: i().bool\n };\n Z.defaultProps = {\n escapeToCloseToasts: true\n };\n /* harmony default export */ const W = Z;\n // CONCATENATED MODULE: ./src/ToastMessages.jsx\n /**\n * This component is a singleton that is responsible for displaying posted toast notifications.\n * Because it is a singleton, only create one instance within an app.\n */\n var V = function e(n) {\n \n return t().createElement(W, {\n position: n.position\n });\n };\n V.propTypes = {\n /**\n * The static position on the screen that toasts will display.\n */\n position: i().oneOf([ \"top-left\", \"top-center\", \"top-right\", \"bottom-left\", \"bottom-center\", \"bottom-right\" ])\n };\n V.defaultProps = {\n position: \"top-center\"\n };\n /* harmony default export */ const G = V;\n })();\n module.exports = r;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = r => {\n /******/ var t = r && r.__esModule ? \n /******/ () => r[\"default\"]\n /******/ : () => r\n /******/;\n e.d(t, {\n a: t\n });\n /******/ return t;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (r, t) => {\n /******/ for (var n in t) {\n /******/ if (e.o(t, n) && !e.o(r, n)) {\n /******/ Object.defineProperty(r, n, {\n enumerable: true,\n get: t[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var r = {};\n // ESM COMPAT FLAG\n e.r(r);\n // EXPORTS\n e.d(r, {\n default: () => /* reexport */ s\n });\n // CONCATENATED MODULE: external \"react\"\n const t = require(\"react\");\n var n = e.n(t);\n // CONCATENATED MODULE: external \"prop-types\"\n const o = require(\"prop-types\");\n var a = e.n(o);\n // CONCATENATED MODULE: external \"use-typed-event-listener\"\n const l = require(\"use-typed-event-listener\");\n var u = e.n(l);\n // CONCATENATED MODULE: ./src/EventListener/EventListener.tsx\n /**\n * This is a private component.\n * Please see the Readme file for more information.\n */\n var i = {\n children: a().node,\n target: a().oneOfType([ a().object, a().string ]),\n eventType: a().any,\n listener: a().func,\n options: a().oneOfType([ a().object, a().bool ])\n };\n function p(e) {\n var r = e.children, t = e.target, o = e.eventType, a = e.listener, l = e.options;\n u()(t, o, a, l);\n \n return n().createElement(n().Fragment, null, r || null);\n }\n p.propTypes = i;\n /* harmony default export */ const s = p;\n // CONCATENATED MODULE: ./src/EventListener/index.ts\n module.exports = r;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = t => {\n /******/ var n = t && t.__esModule ? \n /******/ () => t[\"default\"]\n /******/ : () => t\n /******/;\n e.d(n, {\n a: n\n });\n /******/ return n;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (t, n) => {\n /******/ for (var r in n) {\n /******/ if (e.o(n, r) && !e.o(t, r)) {\n /******/ Object.defineProperty(t, r, {\n enumerable: true,\n get: n[r]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/global */\n /******/ (() => {\n /******/ e.g = function() {\n /******/ if (typeof globalThis === \"object\") return globalThis;\n /******/ try {\n /******/ return this || new Function(\"return this\")();\n /******/ } catch (e) {\n /******/ if (typeof window === \"object\") return window;\n /******/ }\n /******/ }();\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var t = {};\n // ESM COMPAT FLAG\n e.r(t);\n // EXPORTS\n e.d(t, {\n LayerContext: () => /* reexport */ m,\n LayerStackContext: () => /* reexport */ h,\n LayerStackGlobalProvider: () => /* reexport */ k,\n default: () => /* reexport */ F\n });\n // CONCATENATED MODULE: external \"react\"\n const n = require(\"react\");\n var r = e.n(n);\n // CONCATENATED MODULE: external \"react-dom\"\n const o = require(\"react-dom\");\n // CONCATENATED MODULE: external \"prop-types\"\n const i = require(\"prop-types\");\n var a = e.n(i);\n // CONCATENATED MODULE: external \"lodash/includes\"\n const c = require(\"lodash/includes\");\n var u = e.n(c);\n // CONCATENATED MODULE: external \"lodash/last\"\n const l = require(\"lodash/last\");\n var s = e.n(l);\n // CONCATENATED MODULE: external \"lodash/pull\"\n const f = require(\"lodash/pull\");\n var p = e.n(f);\n // CONCATENATED MODULE: external \"@splunk/ui-utils/keyboard\"\n const y = require(\"@splunk/ui-utils/keyboard\");\n // CONCATENATED MODULE: external \"@splunk/react-ui/EventListener\"\n const d = require(\"@splunk/react-ui/EventListener\");\n var v = e.n(d);\n // CONCATENATED MODULE: ./src/Layer/LayerStack.tsx\n /**\n * `LayerStackContext` is used to manage the array that `Layer` (and components that\n * depend on it, such as `Modal`) uses to determine the order of open layers.\n * @public\n */\n var h = r().createContext([]);\n var m = r().createContext({});\n var b = {\n children: a().node,\n name: a().string,\n scope: a().object,\n separateStackingContexts: a().bool\n };\n /* global global */\n /**\n * A `LayerStackContext` provider that stores a shared layer stack using a global variable.\n * Applications should only use this provider if there's a known need to support multiple\n * instances of this library on the same page.\n */ function k(t) {\n var n = t.children, o = t.name, i = o === void 0 ? \"__splunkui_layer_instances__\" : o, a = t.scope, c = a === void 0 ? typeof window !== \"undefined\" ? window : e.g : a, u = t.separateStackingContexts, l = u === void 0 ? false : u;\n if (!c[i]) {\n c[i] = [];\n // eslint-disable-line no-param-reassign\n }\n \n return r().createElement(h.Provider, {\n value: c[i]\n }, r().createElement(m.Provider, {\n value: {\n separateStackingContexts: l\n }\n }, n));\n }\n k.propTypes = b;\n // CONCATENATED MODULE: external \"styled-components\"\n const w = require(\"styled-components\");\n var g = e.n(w);\n // CONCATENATED MODULE: external \"@splunk/themes\"\n const C = require(\"@splunk/themes\");\n // CONCATENATED MODULE: ./src/Layer/LayerStyles.ts\n var S = g().div.withConfig({\n displayName: \"LayerStyles__StyledLayer\",\n componentId: \"ii6psl-0\"\n })([ \"\", \"\" ], (function(e) {\n var t = e.$separateStackingContexts;\n return t && (0, w.css)([ \"isolation:isolate;z-index:\", \";\" ], C.variables.zindexLayer);\n }));\n // CONCATENATED MODULE: ./src/utils/ssrDocument.ts\n /* eslint-disable @typescript-eslint/no-empty-function */\n var E = {\n body: {\n appendChild: function e() {\n return [];\n }\n },\n addEventListener: function e() {},\n removeEventListener: function e() {},\n activeElement: {\n blur: function e() {},\n nodeName: \"\"\n },\n querySelector: function e() {\n return null;\n },\n querySelectorAll: function e() {\n return [];\n },\n getElementById: function e() {\n return null;\n },\n createEvent: function e() {\n return {\n initEvent: function e() {}\n };\n },\n createElement: function e() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function e() {},\n getElementsByTagName: function e() {\n return [];\n }\n };\n },\n createElementNS: function e() {\n return {};\n },\n importNode: function e() {\n return null;\n },\n location: {\n hash: \"\",\n host: \"\",\n hostname: \"\",\n href: \"\",\n origin: \"\",\n pathname: \"\",\n protocol: \"\",\n search: \"\"\n }\n };\n function O() {\n var e = typeof document !== \"undefined\" ? document : E;\n return e;\n }\n // CONCATENATED MODULE: ./src/Layer/Layer.tsx\n function L(e) {\n \"@babel/helpers - typeof\";\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n L = function e(t) {\n return typeof t;\n };\n } else {\n L = function e(t) {\n return t && typeof Symbol === \"function\" && t.constructor === Symbol && t !== Symbol.prototype ? \"symbol\" : typeof t;\n };\n }\n return L(e);\n }\n function _(e, t) {\n if (!(e instanceof t)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function x(e, t) {\n for (var n = 0; n < t.length; n++) {\n var r = t[n];\n r.enumerable = r.enumerable || false;\n r.configurable = true;\n if (\"value\" in r) r.writable = true;\n Object.defineProperty(e, r.key, r);\n }\n }\n function P(e, t, n) {\n if (t) x(e.prototype, t);\n if (n) x(e, n);\n return e;\n }\n function j(e, t) {\n if (typeof t !== \"function\" && t !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n e.prototype = Object.create(t && t.prototype, {\n constructor: {\n value: e,\n writable: true,\n configurable: true\n }\n });\n if (t) q(e, t);\n }\n function q(e, t) {\n q = Object.setPrototypeOf || function e(t, n) {\n t.__proto__ = n;\n return t;\n };\n return q(e, t);\n }\n function T(e) {\n var t = A();\n return function n() {\n var r = K(e), o;\n if (t) {\n var i = K(this).constructor;\n o = Reflect.construct(r, arguments, i);\n } else {\n o = r.apply(this, arguments);\n }\n return R(this, o);\n };\n }\n function R(e, t) {\n if (t && (L(t) === \"object\" || typeof t === \"function\")) {\n return t;\n }\n return D(e);\n }\n function D(e) {\n if (e === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return e;\n }\n function A() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], (function() {})));\n return true;\n } catch (e) {\n return false;\n }\n }\n function K(e) {\n K = Object.setPrototypeOf ? Object.getPrototypeOf : function e(t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n };\n return K(e);\n }\n function M(e, t, n) {\n if (t in e) {\n Object.defineProperty(e, t, {\n value: n,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n e[t] = n;\n }\n return e;\n }\n /** @public */ var N = [ \"clickAway\", \"escapeKey\" ];\n var W = {\n children: a().node,\n closeReasons: a().arrayOf(a().oneOf(N)),\n onRequestClose: a().func,\n open: a().bool\n };\n var z = {\n closeReasons: N,\n open: false\n };\n var B = function(e) {\n j(n, e);\n var t = T(n);\n // @docs-props-type LayerPropsBase\n // eslint-disable-next-line react/sort-comp\n // LayerStackContext (an array) keeps track of the current instances of Layer. This is\n // used by Layer#handleKeyDown to determine if the escapeKey event should be handled by\n // the current instance. Only the topmost Layer instance should honor the escapeKey.\n // TODO: enable once this is sorted out within the babel/ts ecosystem\n // declare context: React.ContextType;\n function n(e) {\n var r;\n _(this, n);\n r = t.call(this, e);\n M(D(r), \"layerClickEvent\", null);\n M(D(r), \"handleClickOnLayer\", (function(e) {\n var t = e.nativeEvent;\n r.layerClickEvent = t;\n }));\n M(D(r), \"handleClickOnWindow\", (function(e) {\n var t, n;\n // clicks inside the layer should not be considered clickAways\n if (!r.props.open || !u()(r.props.closeReasons, \"clickAway\") || r.layerClickEvent === e) {\n return;\n }\n (t = (n = r.props).onRequestClose) === null || t === void 0 ? void 0 : t.call(n, {\n event: e,\n reason: \"clickAway\"\n });\n }));\n M(D(r), \"handleKeyDownOnWindow\", (function(e) {\n if (r.props.open && (0, y.keycode)(e) === \"esc\" && s()(r.getLayerStack()) === D(r) && u()(r.props.closeReasons, \"escapeKey\")) {\n var t, n;\n (t = (n = r.props).onRequestClose) === null || t === void 0 ? void 0 : t.call(n, {\n event: e,\n reason: \"escapeKey\"\n });\n }\n }));\n var o = O();\n if (!n.layerContainer) {\n n.layerContainer = o.createElement(\"div\");\n n.layerContainer.setAttribute(\"data-test\", \"layer-container\");\n o.body.appendChild(n.layerContainer);\n }\n return r;\n }\n P(n, [ {\n key: \"componentDidMount\",\n value: function e() {\n if (this.props.open) {\n this.getLayerStack().push(this);\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function e(t) {\n if (!t.open && this.props.open) {\n this.getLayerStack().push(this);\n } else if (t.open && !this.props.open) {\n p()(this.getLayerStack(), this);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function e() {\n p()(this.getLayerStack(), this);\n }\n }, {\n key: \"getLayerStack\",\n value: function e() {\n return this.context;\n }\n }, {\n key: \"render\",\n value: function e() {\n var t = this;\n var i = this.props, a = i.children, c = i.open;\n if (c) {\n var u = (0, o.createPortal)( r().createElement(m.Consumer, null, (function(e) {\n var n = e.separateStackingContexts, o = n === void 0 ? false : n;\n \n return r().createElement(S, {\n $separateStackingContexts: o,\n \"data-test\": \"layer\",\n onMouseDown: t.handleClickOnLayer,\n onTouchStart: t.handleClickOnLayer\n }, a);\n })), n.layerContainer);\n \n return r().createElement(r().Fragment, null, r().createElement(v(), {\n target: window,\n eventType: \"keydown\",\n listener: this.handleKeyDownOnWindow,\n key: \"eventListenerKeydown\"\n }), r().createElement(v(), {\n target: window,\n eventType: \"mousedown\",\n listener: this.handleClickOnWindow,\n key: \"eventListenerMouseDown\"\n }), r().createElement(v(), {\n target: window,\n eventType: \"touchstart\",\n listener: this.handleClickOnWindow,\n key: \"eventListenerTouchStart\",\n options: {\n passive: true\n }\n }), u);\n }\n return null;\n }\n } ]);\n return n;\n }(n.Component);\n M(B, \"layerContainer\", null);\n M(B, \"possibleCloseReasons\", N);\n M(B, \"propTypes\", W);\n M(B, \"defaultProps\", z);\n M(B, \"contextType\", h);\n /* harmony default export */ const F = B;\n // CONCATENATED MODULE: ./src/Layer/index.ts\n module.exports = t;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = t => {\n /******/ var r = t && t.__esModule ? \n /******/ () => t[\"default\"]\n /******/ : () => t\n /******/;\n e.d(r, {\n a: r\n });\n /******/ return r;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (t, r) => {\n /******/ for (var n in r) {\n /******/ if (e.o(r, n) && !e.o(t, n)) {\n /******/ Object.defineProperty(t, n, {\n enumerable: true,\n get: r[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var t = {};\n // ESM COMPAT FLAG\n e.r(t);\n // EXPORTS\n e.d(t, {\n default: () => /* reexport */ h\n });\n // CONCATENATED MODULE: external \"react\"\n const r = require(\"react\");\n var n = e.n(r);\n // CONCATENATED MODULE: external \"prop-types\"\n const o = require(\"prop-types\");\n var i = e.n(o);\n // CONCATENATED MODULE: external \"styled-components\"\n const a = require(\"styled-components\");\n var c = e.n(a);\n // CONCATENATED MODULE: external \"@splunk/themes\"\n const l = require(\"@splunk/themes\");\n // CONCATENATED MODULE: ./src/Anchor/AnchorStyles.ts\n // TODO: name is deprecated, it's only defined here to satisfy ts - remove/replace\n var f = c().a.withConfig({\n displayName: \"AnchorStyles__StyledAnchor\",\n componentId: \"sc-1m9yzet-0\"\n })([ \"\", \";color:inherit;font-size:inherit;font-family:inherit;font-weight:inherit;line-height:inherit;text-decoration:inherit;text-rendering:inherit;text-transform:inherit;cursor:pointer;margin:1px;&:hover::after{content:' #';opacity:0.5;}&:focus,&:active{box-shadow:\", \";&::after{content:' #';opacity:0.5;}}\" ], l.mixins.reset(\"inline\"), l.variables.focusShadow);\n // CONCATENATED MODULE: ./src/Anchor/Anchor.tsx\n function u() {\n u = Object.assign || function(e) {\n for (var t = 1; t < arguments.length; t++) {\n var r = arguments[t];\n for (var n in r) {\n if (Object.prototype.hasOwnProperty.call(r, n)) {\n e[n] = r[n];\n }\n }\n }\n return e;\n };\n return u.apply(this, arguments);\n }\n function s(e, t) {\n if (e == null) return {};\n var r = p(e, t);\n var n, o;\n if (Object.getOwnPropertySymbols) {\n var i = Object.getOwnPropertySymbols(e);\n for (o = 0; o < i.length; o++) {\n n = i[o];\n if (t.indexOf(n) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(e, n)) continue;\n r[n] = e[n];\n }\n }\n return r;\n }\n function p(e, t) {\n if (e == null) return {};\n var r = {};\n var n = Object.keys(e);\n var o, i;\n for (i = 0; i < n.length; i++) {\n o = n[i];\n if (t.indexOf(o) >= 0) continue;\n r[o] = e[o];\n }\n return r;\n }\n var d = {\n children: i().node,\n elementRef: i().oneOfType([ i().func, i().object ]),\n name: i().string.isRequired\n };\n /**\n * `Anchor` is a utility component used to add a fragment link to an element.\n */ function y(e) {\n var t = e.children, r = e.elementRef, o = e.name, i = s(e, [ \"children\", \"elementRef\", \"name\" ]);\n // @docs-props-type AnchorPropsBase\n \n return n().createElement(f, u({\n \"data-test\": \"anchor\",\n ref: r\n }, i, {\n name: o,\n href: \"#\".concat(o)\n }), t);\n }\n y.propTypes = d;\n /* harmony default export */ const h = y;\n // CONCATENATED MODULE: ./src/Anchor/index.ts\n module.exports = t;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = r => {\n /******/ var t = r && r.__esModule ? \n /******/ () => r[\"default\"]\n /******/ : () => r\n /******/;\n e.d(t, {\n a: t\n });\n /******/ return t;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (r, t) => {\n /******/ for (var n in t) {\n /******/ if (e.o(t, n) && !e.o(r, n)) {\n /******/ Object.defineProperty(r, n, {\n enumerable: true,\n get: t[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var r = {};\n // ESM COMPAT FLAG\n e.r(r);\n // EXPORTS\n e.d(r, {\n default: () => /* reexport */ m\n });\n // CONCATENATED MODULE: external \"react\"\n const t = require(\"react\");\n var n = e.n(t);\n // CONCATENATED MODULE: external \"prop-types\"\n const o = require(\"prop-types\");\n var i = e.n(o);\n // CONCATENATED MODULE: external \"styled-components\"\n const a = require(\"styled-components\");\n var l = e.n(a);\n // CONCATENATED MODULE: external \"@splunk/react-ui/Box\"\n const u = require(\"@splunk/react-ui/Box\");\n var p = e.n(u);\n // CONCATENATED MODULE: external \"@splunk/themes\"\n const c = require(\"@splunk/themes\");\n // CONCATENATED MODULE: ./src/ButtonGroup/ButtonGroupStyles.ts\n var s = l()(p()).withConfig({\n displayName: \"ButtonGroupStyles__StyledBox\",\n componentId: \"sc-14fs2xs-0\"\n })([ \"position:relative;[data-inline] + &{margin-left:\", \";}\" ], (0, c.pick)({\n enterprise: c.variables.spacingHalf,\n prisma: c.variables.spacingSmall\n }));\n // CONCATENATED MODULE: ./src/ButtonGroup/ButtonGroup.tsx\n function f() {\n f = Object.assign || function(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = arguments[r];\n for (var n in t) {\n if (Object.prototype.hasOwnProperty.call(t, n)) {\n e[n] = t[n];\n }\n }\n }\n return e;\n };\n return f.apply(this, arguments);\n }\n function d(e, r) {\n if (e == null) return {};\n var t = v(e, r);\n var n, o;\n if (Object.getOwnPropertySymbols) {\n var i = Object.getOwnPropertySymbols(e);\n for (o = 0; o < i.length; o++) {\n n = i[o];\n if (r.indexOf(n) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(e, n)) continue;\n t[n] = e[n];\n }\n }\n return t;\n }\n function v(e, r) {\n if (e == null) return {};\n var t = {};\n var n = Object.keys(e);\n var o, i;\n for (i = 0; i < n.length; i++) {\n o = n[i];\n if (r.indexOf(o) >= 0) continue;\n t[o] = e[o];\n }\n return t;\n }\n var y = {\n children: i().node,\n elementRef: i().oneOfType([ i().func, i().object ]),\n /** @private */\n flex: i().bool\n };\n function b(e) {\n var r = e.children, o = d(e, [ \"children\" ]);\n // @docs-props-type ButtonGroupPropsBase\n var i = t.Children.toArray(r).filter(t.isValidElement).map((function(e, r, n) {\n var o = n.length;\n \n return (0, t.cloneElement)(e, {\n prepend: r > 0,\n append: r < o - 1,\n inline: false,\n role: e.props && e.props.role || \"menuitem\"\n });\n }));\n \n return n().createElement(s, f({\n inline: true,\n flex: true,\n \"data-test\": \"button-group\",\n role: \"menubar\"\n }, o), i);\n }\n b.propTypes = y;\n /* harmony default export */ const m = b;\n // CONCATENATED MODULE: ./src/ButtonGroup/index.ts\n module.exports = r;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = r => {\n /******/ var t = r && r.__esModule ? \n /******/ () => r[\"default\"]\n /******/ : () => r\n /******/;\n e.d(t, {\n a: t\n });\n /******/ return t;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (r, t) => {\n /******/ for (var n in t) {\n /******/ if (e.o(t, n) && !e.o(r, n)) {\n /******/ Object.defineProperty(r, n, {\n enumerable: true,\n get: t[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var r = {};\n // ESM COMPAT FLAG\n e.r(r);\n // EXPORTS\n e.d(r, {\n Body: () => /* reexport */ m,\n Footer: () => /* reexport */ S,\n Header: () => /* reexport */ Q,\n default: () => /* reexport */ Be\n });\n // CONCATENATED MODULE: external \"react\"\n const t = require(\"react\");\n var n = e.n(t);\n // CONCATENATED MODULE: external \"prop-types\"\n const o = require(\"prop-types\");\n var i = e.n(o);\n // CONCATENATED MODULE: external \"styled-components\"\n const a = require(\"styled-components\");\n var l = e.n(a);\n // CONCATENATED MODULE: external \"@splunk/react-ui/Box\"\n const c = require(\"@splunk/react-ui/Box\");\n var s = e.n(c);\n // CONCATENATED MODULE: external \"@splunk/themes\"\n const u = require(\"@splunk/themes\");\n // CONCATENATED MODULE: ./src/Card/BodyStyles.ts\n var p = l()(s()).withConfig({\n displayName: \"BodyStyles__StyledBox\",\n componentId: \"sc-1130udp-0\"\n })([ \"flex:1 1 auto;overflow:auto;height:100%;\", \";\", \"\" ], (function(e) {\n var r = e.$inset;\n return r ? (0, a.css)([ \"\", \"\" ], (0, u.pick)({\n enterprise: (0, a.css)([ \"padding:\", \";&:not(:first-child){padding-top:0;}\" ], u.variables.spacing),\n prisma: {\n comfortable: (0, a.css)([ \"padding:12px 24px;&:first-child{padding-top:28px;}&:last-child{padding-bottom:28px;}\" ]),\n compact: (0, a.css)([ \"padding:8px 24px;&:first-child{padding-top:20px;}&:last-child{padding-bottom:20px;}\" ])\n }\n })) : (0, a.css)([ \"padding:0;\" ]);\n }), (0, u.pick)({\n prisma: {\n comfortable: (0, a.css)([ \"border-radius:\", \";color:\", \";\" ], u.variables.borderRadius, u.variables.contentColorMuted),\n compact: (0, a.css)([ \"border-radius:\", \";color:\", \";\" ], u.variables.borderRadius, u.variables.contentColorMuted)\n }\n }));\n // CONCATENATED MODULE: ./src/Card/Body.tsx\n function d() {\n d = Object.assign || function(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = arguments[r];\n for (var n in t) {\n if (Object.prototype.hasOwnProperty.call(t, n)) {\n e[n] = t[n];\n }\n }\n }\n return e;\n };\n return d.apply(this, arguments);\n }\n function f(e, r) {\n if (e == null) return {};\n var t = b(e, r);\n var n, o;\n if (Object.getOwnPropertySymbols) {\n var i = Object.getOwnPropertySymbols(e);\n for (o = 0; o < i.length; o++) {\n n = i[o];\n if (r.indexOf(n) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(e, n)) continue;\n t[n] = e[n];\n }\n }\n return t;\n }\n function b(e, r) {\n if (e == null) return {};\n var t = {};\n var n = Object.keys(e);\n var o, i;\n for (i = 0; i < n.length; i++) {\n o = n[i];\n if (r.indexOf(o) >= 0) continue;\n t[o] = e[o];\n }\n return t;\n }\n var v = {\n children: i().node,\n elementRef: i().oneOfType([ i().func, i().object ]),\n inset: i().bool\n };\n /**\n * A styled container for `Card` body content.\n */ function y(e) {\n var r = e.children, t = e.inset, o = t === void 0 ? true : t, i = f(e, [ \"children\", \"inset\" ]);\n // @docs-props-type BodyPropsBase\n \n return n().createElement(p, d({\n \"data-test\": \"body\",\n $inset: o\n }, i), r);\n }\n y.propTypes = v;\n /* harmony default export */ const m = y;\n // CONCATENATED MODULE: ./src/Card/FooterStyles.ts\n var h = l()(s()).withConfig({\n displayName: \"FooterStyles__StyledBox\",\n componentId: \"sc-1yu3r4s-0\"\n })([ \"\", \";text-align:right;color:\", \";\", \"\" ], (0, u.pick)({\n enterprise: (0, a.css)([ \"padding:\", \";&:first-child{border-top:none;}\" ], u.variables.spacing),\n prisma: {\n comfortable: (0, a.css)([ \"padding:24px;\" ]),\n compact: \"padding: 18px 24px\"\n }\n }), u.variables.contentColorMuted, (function(e) {\n var r = e.$showTopBorder;\n return r && (0, u.pick)({\n enterprise: (0, a.css)([ \"border-top:1px solid \", \";\" ], u.variables.gray92)\n });\n }));\n // CONCATENATED MODULE: ./src/Card/Footer.tsx\n function g() {\n g = Object.assign || function(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = arguments[r];\n for (var n in t) {\n if (Object.prototype.hasOwnProperty.call(t, n)) {\n e[n] = t[n];\n }\n }\n }\n return e;\n };\n return g.apply(this, arguments);\n }\n function w(e, r) {\n if (e == null) return {};\n var t = O(e, r);\n var n, o;\n if (Object.getOwnPropertySymbols) {\n var i = Object.getOwnPropertySymbols(e);\n for (o = 0; o < i.length; o++) {\n n = i[o];\n if (r.indexOf(n) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(e, n)) continue;\n t[n] = e[n];\n }\n }\n return t;\n }\n function O(e, r) {\n if (e == null) return {};\n var t = {};\n var n = Object.keys(e);\n var o, i;\n for (i = 0; i < n.length; i++) {\n o = n[i];\n if (r.indexOf(o) >= 0) continue;\n t[o] = e[o];\n }\n return t;\n }\n var x = {\n children: i().node,\n elementRef: i().oneOfType([ i().func, i().object ]),\n showBorder: i().bool\n };\n /**\n * A styled container for `Card` footer content.\n */ function k(e) {\n var r = e.children, t = e.showBorder, o = t === void 0 ? true : t, i = w(e, [ \"children\", \"showBorder\" ]);\n // @docs-props-type FooterPropsBase\n \n return n().createElement(h, g({\n \"data-test\": \"footer\",\n $showTopBorder: o\n }, i), r);\n }\n k.propTypes = x;\n /* harmony default export */ const S = k;\n // CONCATENATED MODULE: external \"@splunk/ui-utils/i18n\"\n const j = require(\"@splunk/ui-utils/i18n\");\n // CONCATENATED MODULE: external \"@splunk/react-icons/DotsThreeVertical\"\n const C = require(\"@splunk/react-icons/DotsThreeVertical\");\n var P = e.n(C);\n // CONCATENATED MODULE: external \"@splunk/react-icons/enterprise/MoreVertical\"\n const _ = require(\"@splunk/react-icons/enterprise/MoreVertical\");\n var T = e.n(_);\n // CONCATENATED MODULE: external \"@splunk/react-ui/Anchor\"\n const E = require(\"@splunk/react-ui/Anchor\");\n var B = e.n(E);\n // CONCATENATED MODULE: external \"@splunk/react-ui/Dropdown\"\n const R = require(\"@splunk/react-ui/Dropdown\");\n var I = e.n(R);\n // CONCATENATED MODULE: external \"@splunk/react-ui/Tooltip\"\n const q = require(\"@splunk/react-ui/Tooltip\");\n var H = e.n(q);\n // CONCATENATED MODULE: external \"@splunk/react-ui/Button\"\n const N = require(\"@splunk/react-ui/Button\");\n var $ = e.n(N);\n // CONCATENATED MODULE: ./src/Card/HeaderStyles.ts\n var A = l().div.withConfig({\n displayName: \"HeaderStyles__StyledTitle\",\n componentId: \"eqi6uk-0\"\n })([ \"\", \" \", \" margin:0;overflow-wrap:break-word;padding:0;\" ], u.mixins.reset(\"block\"), (0, \n u.pick)({\n enterprise: (0, a.css)([ \"font-weight:\", \";font-size:\", \";line-height:1.2;\" ], u.variables.fontWeightSemiBold, u.variables.fontSizeLarge),\n prisma: (0, a.css)([ \"font-weight:\", \";color:\", \";\" ], u.variables.fontWeightBold, u.variables.contentColorActive)\n }));\n var W = l().div.withConfig({\n displayName: \"HeaderStyles__StyledSubtitle\",\n componentId: \"eqi6uk-1\"\n })([ \"\", \" \", \" margin:0;overflow-wrap:break-word;padding:0;font-weight:normal;\" ], u.mixins.reset(\"block\"), (0, \n u.pick)({\n enterprise: (0, a.css)([ \"font-size:\", \";color:\", \";\" ], u.variables.fontSizeSmall, u.variables.textGray),\n prisma: (0, a.css)([ \"color:\", \";\" ], u.variables.contentColorDefault)\n }));\n var D = l().div.withConfig({\n displayName: \"HeaderStyles__StyledTitleContainer\",\n componentId: \"eqi6uk-2\"\n })([ \"\", \" flex:0 1 auto;\", \" &:not(:last-child){margin-right:\", \";}\" ], u.mixins.reset(\"block\"), (function(e) {\n var r = e.$truncateTitle;\n return r && (0, a.css)([ \"overflow:hidden;& > \", \",& > \", \"{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}\" ], \n /* sc-sel */\n A, \n /* sc-sel */\n W);\n }), (0, u.pick)({\n enterprise: u.variables.spacingHalf,\n prisma: u.variables.spacingSmall\n }));\n var M = l().div.withConfig({\n displayName: \"HeaderStyles__StyledActionContainer\",\n componentId: \"eqi6uk-3\"\n })([ \"\", \" align-items:center;display:flex;flex:0 0 auto;justify-content:space-between;\", \";\" ], u.mixins.reset(\"block\"), (0, \n u.pick)({\n prisma: {\n comfortable: (0, a.css)([ \"margin-right:-12px;margin-top:-4px;\" ]),\n compact: (0, a.css)([ \"margin-right:-12px;margin-top:0;\" ])\n }\n }));\n var F = l()($()).withConfig({\n displayName: \"HeaderStyles__StyledSecondaryAction\",\n componentId: \"eqi6uk-4\"\n })([ \"margin-left:10px;\" ]);\n var z = l()(s()).withConfig({\n displayName: \"HeaderStyles__StyledBox\",\n componentId: \"eqi6uk-5\"\n })([ \"align-items:start;display:flex;flex:0 0 auto;justify-content:space-between;position:relative;min-height:30px;\", \" \", \" >:not(\", \"):not(\", \"){flex:1 0 auto;}\" ], (0, \n u.pick)({\n enterprise: (0, a.css)([ \"padding:\", \";\" ], u.variables.spacing),\n prisma: {\n comfortable: (0, a.css)([ \"padding:16px 24px;&:last-child{padding-bottom:32px;}\" ]),\n compact: (0, a.css)([ \"padding:12px 24px;&:last-child{padding-bottom:24px;}\" ])\n }\n }), (0, u.pick)({\n prisma: (0, a.css)([ \"border-top-left-radius:\", \";border-top-right-radius:\", \";\" ], u.variables.borderRadius, u.variables.borderRadius)\n }), \n /* sc-sel */\n D, \n /* sc-sel */\n M);\n // CONCATENATED MODULE: ./src/Card/Header.tsx\n function L(e, r) {\n if (e == null) return {};\n var t = V(e, r);\n var n, o;\n if (Object.getOwnPropertySymbols) {\n var i = Object.getOwnPropertySymbols(e);\n for (o = 0; o < i.length; o++) {\n n = i[o];\n if (r.indexOf(n) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(e, n)) continue;\n t[n] = e[n];\n }\n }\n return t;\n }\n function V(e, r) {\n if (e == null) return {};\n var t = {};\n var n = Object.keys(e);\n var o, i;\n for (i = 0; i < n.length; i++) {\n o = n[i];\n if (r.indexOf(o) >= 0) continue;\n t[o] = e[o];\n }\n return t;\n }\n function G() {\n G = Object.assign || function(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = arguments[r];\n for (var n in t) {\n if (Object.prototype.hasOwnProperty.call(t, n)) {\n e[n] = t[n];\n }\n }\n }\n return e;\n };\n return G.apply(this, arguments);\n }\n var U = {\n actionPrimary: i().node,\n actionsSecondary: i().node,\n anchor: i().string,\n children: i().node,\n elementRef: i().oneOfType([ i().func, i().object ]),\n subtitle: i().node,\n title: i().node,\n truncateTitle: i().bool\n };\n // `forwardRef` is used to enable focus on toggle when Dropdown is closing\n var J = n().forwardRef((function(e, r) {\n var t = (0, u.useSplunkTheme)(), o = t.family, i = t.isCompact;\n var a = i ? \"20px\" : \"24px\";\n var l = o === \"prisma\" ? n().createElement(P(), {\n height: a,\n width: a\n }) : n().createElement(T(), null);\n \n return n().createElement(H(), G({\n content: (0, j._)(\"Actions\"),\n contentRelationship: \"label\"\n }, e), n().createElement(F, {\n appearance: \"secondary\",\n \"data-test\": \"actions-secondary-toggle\",\n icon: l,\n elementRef: r\n }));\n }));\n /**\n * A styled container for `Card` header content.\n */ function K(e) {\n var r = e.actionPrimary, t = e.actionsSecondary, o = e.anchor, i = e.children, a = e.subtitle, l = e.title, c = e.truncateTitle, s = c === void 0 ? true : c, p = L(e, [ \"actionPrimary\", \"actionsSecondary\", \"anchor\", \"children\", \"subtitle\", \"title\", \"truncateTitle\" ]);\n // @docs-props-type HeaderPropsBase\n var d = (0, u.useSplunkTheme)(), f = d.family;\n var b = f === \"prisma\" ? \"right\" : \"below\";\n \n return n().createElement(z, G({\n \"data-test\": \"header\"\n }, p), (l || a) && n().createElement(D, {\n $truncateTitle: s\n }, l && n().createElement(A, null, o ? n().createElement(B(), {\n name: o\n }, l) : l), a && n().createElement(W, null, a)), i, (r || t) && n().createElement(M, null, r, t && n().createElement(I(), {\n defaultPlacement: b,\n toggle: n().createElement(J, null)\n }, t)));\n }\n K.propTypes = U;\n /* harmony default export */ const Q = K;\n // CONCATENATED MODULE: external \"@splunk/react-ui/Clickable\"\n const X = require(\"@splunk/react-ui/Clickable\");\n var Y = e.n(X);\n // CONCATENATED MODULE: ./src/Card/CardStyles.ts\n var Z = \"0.2s\";\n var ee = l().div.withConfig({\n displayName: \"CardStyles__Styled\",\n componentId: \"ola3x0-0\"\n })([ \"\", \";flex-direction:column;align-items:stretch;min-width:100px;flex:1;vertical-align:top;\", \" transition:height \", \",width \", \",min-width \", \",max-width \", \",margin \", \",box-shadow \", \",border-color \", \";\", \" &[data-clickable='true']{cursor:pointer;\", \" &:hover{\", \"}&:focus{\", \"}}\" ], u.mixins.reset(\"inline-flex\"), (0, \n u.pick)({\n enterprise: (0, a.css)([ \"background-color:\", \";border:1px solid transparent;\" ], u.variables.backgroundColor),\n prisma: (0, a.css)([ \"background-color:\", \";border-radius:\", \";box-shadow:\", \";\" ], u.variables.backgroundColorSection, u.variables.borderRadius, u.variables.embossShadow)\n }), Z, Z, Z, Z, Z, Z, Z, (function(e) {\n var r = e.$cardHasBorder;\n return r && (0, u.pick)({\n enterprise: (0, a.css)([ \"border-color:\", \";\" ], u.variables.borderLightColor)\n });\n }), (function(e) {\n var r = e.$selected;\n return r && (0, u.pick)({\n enterprise: (0, a.css)([ \"border-color:\", \";\" ], u.variables.focusColor),\n prisma: (0, a.css)([ \"background-color:\", \";\" ], u.mixins.overlayColors(u.variables.backgroundColorSection, u.variables.interactiveColorOverlaySelected))\n });\n }), (0, u.pick)({\n enterprise: (0, a.css)([ \"box-shadow:\", \";\" ], u.variables.overlayShadow),\n prisma: (0, a.css)([ \"box-shadow:\", \";background-color:\", \";\" ], u.variables.embossShadow, u.mixins.overlayColors(u.variables.backgroundColorSection, u.variables.interactiveColorOverlayHover))\n }), (0, u.pick)({\n enterprise: (0, a.css)([ \"box-shadow:\", \";\" ], u.variables.focusShadow),\n prisma: (0, a.css)([ \"box-shadow:\", \";background-color:\", \";\" ], u.variables.embossShadow, u.mixins.overlayColors(u.variables.backgroundColorSection, u.variables.interactiveColorOverlayHover))\n }));\n var re = ee.withComponent(Y());\n /* A child element we add to
\n \n \n );\n}\n\nexport default InputPage;\n"],"names":["CustomMenu","_Component","props","_this","_classCallCheck","_defineProperty","_assertThisInitialized","_callSuper","newValue","handleChange","Promise","resolve","type","import","concat","getBuildDirPath","fileName","then","external","Control","appName","getUnifiedConfigs","meta","name","__non_webpack_require__","state","loading","shouldRender","_inherits","key","value","_this2","unifiedConfigs","_unifiedConfigs$pages","pages","inputs","services","customMenuField","menu","groupsMenu","this","setState","loadCustomMenu","customControl","el","setValue","render","nextProps","nextState","_this3","React","_","ref","style","visibility","Component","propTypes","PropTypes","isRequired","prefix","invariant","condition","message","Error","CustomSubTitle","styled","span","_templateObject","variables","brandColorD20","fontSizeSmall","ROOT_GROUP_NAME","MenuInput","_ref","handleRequestOpen","_useState2","_slicedToArray","useState","activePanelId","setActivePanelId","_useState4","slidingPanelsTransition","setSlidingPanelsTransition","_useState6","openDropDown","setOpenDropDown","_useState8","isSubMenu","setIsSubMenu","undefined","closeReasons","toggle","StyledButton","appearance","id","label","i18n","isMenu","useEffect","handleRequestDropDownClose","_ref2","reason","includes","handleRequestDropDownOpen","handleChangeCustomMenu","val","service","input","serviceName","getInputMenu","useMemo","servicesGroup","forEach","group","_services$find3","groupServices","groupName","_services$find","_services$find2","push","hasSubmenu","title","find","subTitle","groupTitle","map","Object","keys","groupsName","SlidingPanels","panelId","Menu","icon","ChevronLeft","onClick","serviceItems","getSlidingsPanels","makeSingleSelectDropDown","Dropdown","open","onRequestClose","onRequestOpen","transition","width","makeInputButton","getFormattedMessage","src","length","makeCustomMenu","Row","ColumnLayout","_taggedTemplateLiteral","entity","setEntity","table","description","subDescription","isTabs","activeTabId","setActiveTabId","selectedTab","x","PERMITTED_MODES","MODE_CLONE","MODE_CREATE","MODE_EDIT","permittedTabNames","navigate","useNavigate","query","useQuery","setServiceEntity","setActiveTab","useLocation","search","get","stanzaName","_objectSpread","isInputPageStyle","mode","formLabel","serviceTitle","STYLE_PAGE","set","inputQueryValue","toString","handleOpenPageStyleDialog","row","onTabChange","useCallback","e","selectedTabId","ErrorBoundary","TableContextProvider","EntityPage","handleRequestClose","page","PAGE_INPUT","display","gutter","className","TitleComponent","SubTitleComponent","SubDescription","TabBar","onChange","tabId","TableWrapper","handleRequestModalOpen","displayActionBtnAllRows","ToastMessages","position","EntityModal"],"sourceRoot":""} \ No newline at end of file diff --git a/TA-opencti-for-splunk-enterprise/appserver/static/js/build/ArrowBroadUnderbarDown.75wc1VCJ.js b/TA-opencti-for-splunk-enterprise/appserver/static/js/build/ArrowBroadUnderbarDown.75wc1VCJ.js new file mode 100644 index 0000000..4fd62eb --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/appserver/static/js/build/ArrowBroadUnderbarDown.75wc1VCJ.js @@ -0,0 +1,2 @@ +import{r as V}from"./entry_page.js";import{g as j,h as L}from"./ErrorBoundary.BRI7mTT2.js";var v={exports:{}},C;function Z(){return C||(C=1,(()=>{var a={};a.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return a.d(r,{a:r}),r},a.d=(e,r)=>{for(var t in r)a.o(r,t)&&!a.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},a.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),a.r=e=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var c={};a.r(c),a.d(c,{default:()=>x});const s=V();var o=a.n(s);const b=j(),y=L();var w=a.n(y);function H(e,r){if(e==null)return{};var t,n,l=g(e,r);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(n=0;n=0},E=function(r){return r==="default"||r&&!O(r)?"outlined":r},M=function(r){var t=r.children,n=r.variant,l=n===void 0?"default":n,u=H(r,["children","variant"]),p=E(l),m="arrowbroadunderbardown-".concat(p),i=(0,s.useContext)(b.IconContext),d=f.get(p);if(i&&d){var P=i.toRender,S=i.addIcon;if(S(m,d()),!P)return null}return o().createElement(w(),u,t,i?o().createElement("use",{href:"#".concat(m)}):!!d&&d())};const x=M;v.exports=c})()),v.exports}export{Z as r}; +//# sourceMappingURL=ArrowBroadUnderbarDown.75wc1VCJ.js.map diff --git a/TA-opencti-for-splunk-enterprise/appserver/static/js/build/ChevronLeft.CoS9PBTv.js b/TA-opencti-for-splunk-enterprise/appserver/static/js/build/ChevronLeft.CoS9PBTv.js new file mode 100644 index 0000000..1a17db7 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/appserver/static/js/build/ChevronLeft.CoS9PBTv.js @@ -0,0 +1,2 @@ +import{r as E}from"./entry_page.js";import{g as M,h as R}from"./ErrorBoundary.BRI7mTT2.js";var d={exports:{}},y;function T(){return y||(y=1,(()=>{var o={};o.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return o.d(r,{a:r}),r},o.d=(e,r)=>{for(var t in r)o.o(r,t)&&!o.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},o.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),o.r=e=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var c={};o.r(c),o.d(c,{default:()=>j});const v=E();var a=o.n(v);const b=M(),h=R();var g=o.n(h);function O(e,r){if(e==null)return{};var t,n,u=C(e,r);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0},S=function(r){return r==="default"||r&&!P(r)?"outlined":r},L=function(r){var t=r.children,n=r.variant,u=n===void 0?"default":n,l=O(r,["children","variant"]),p=S(u),m="chevronleft-".concat(p),i=(0,v.useContext)(b.IconContext),f=s.get(p);if(i&&f){var q=i.toRender,w=i.addIcon;if(w(m,f()),!q)return null}return a().createElement(g(),l,t,i?a().createElement("use",{href:"#".concat(m)}):!!f&&f())};const j=L;d.exports=c})()),d.exports}export{T as r}; +//# sourceMappingURL=ChevronLeft.CoS9PBTv.js.map diff --git a/TA-opencti-for-splunk-enterprise/appserver/static/js/build/ConfigurationPage.CKrnHsan.js b/TA-opencti-for-splunk-enterprise/appserver/static/js/build/ConfigurationPage.CKrnHsan.js new file mode 100644 index 0000000..f7560df --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/appserver/static/js/build/ConfigurationPage.CKrnHsan.js @@ -0,0 +1,26 @@ +import{l as a,C as P,m as w,p as e,q as x,_ as B,o as v,x as N,y as L,z as j,U as q,W as I,t as h,k as M,B as F,n as $,R as z}from"./entry_page.js";import{P as V,B as W,l as G,k as H,T as Q,E as Y,h as J,j as K,b as S,M as X,m as Z,u as ee,s as te,a as ne,d as oe,C as y,e as se,S as ae,f as re,g as _,i as ie}from"./usePlatform.CIF6KydG.js";import{L as le,E as ce}from"./ErrorBoundary.BRI7mTT2.js";import{P as T}from"./toUpper.CHnQCSWs.js";import{r as ue}from"./ArrowBroadUnderbarDown.75wc1VCJ.js";import"./Search.BeAZnac9.js";const de=({tab:t})=>{const d=a.useContext(P),[o,p]=a.useState(!0),l=a.useRef(null),c=w().meta.name,m=()=>new Promise(r=>{const u=t?.customTab?.src?d?.[t?.customTab?.src]:void 0;if(u?.type==="tab"){const s=u.component;r(s)}else t.customTab?.type==="external"?B(()=>import(`${v()}/custom/${t.customTab.src}.js`),[],import.meta.url).then(s=>{const i=s.default;r(i)}):require([`app/${c}/js/build/custom/${t.customTab.src}`],s=>{r(s)})});return a.useEffect(()=>{m().then(r=>{l.current&&(new r(t,l.current).render(),p(!1))})},[]),e.jsxs(e.Fragment,{children:[o&&x._("Loading..."),e.jsx("div",{ref:l,style:{visibility:o?"hidden":"visible"}})]})},pe=h.div` + margin-left: 270px !important; + width: 150px; +`;function D({serviceName:t}){const d=a.useRef(),[o,p]=a.useState(null),[l,g]=a.useState(!1),[c,m]=a.useState({});a.useEffect(()=>{const s=new AbortController;return N({endpointUrl:L(`settings/${encodeURIComponent(t)}`),handleError:!0,signal:s.signal,callbackOnError:i=>{s.signal.aborted||p(i)}}).catch(i=>{if(s.signal.aborted)return null;throw i}).then(i=>{i&&m(i.entry[0].content)}),()=>{s.abort()}},[t]);const r=s=>{d.current.handleSubmit(s)},u=s=>{g(s)};if(o)throw o;return Object.keys(c).length?e.jsxs(e.Fragment,{children:[e.jsx(P.Consumer,{children:s=>e.jsx(V.Consumer,{children:i=>e.jsx(W,{ref:d,page:j,stanzaName:t,serviceName:"settings",mode:G,currentServiceState:c,handleFormSubmit:u,pageContext:i,customComponentContext:s})})}),e.jsx(pe,{children:e.jsx(q,{className:"saveBtn",label:x._("Save"),onClick:r,loading:l})})]}):e.jsx(I,{size:"medium"})}D.propTypes={serviceName:T.string.isRequired};function A({selectedTab:t,updateIsPageOpen:d}){const[o,p]=a.useState({open:!1}),l=t.style===H;a.useEffect(()=>{l&&d(!!o.open)},[d,l,o]);const g=()=>{p({...o,open:!0,mode:S,formLabel:t.formTitle?`Add ${t.formTitle}`:`Add ${t.title}`})},c=()=>{p({...o,open:!1})},m=()=>e.jsx(K,{page:j,open:o.open,handleRequestClose:c,returnFocus:()=>{},serviceName:t.name,mode:S,formLabel:o.formLabel}),r=(b,E)=>{const f=t?.formTitle||t.title;p({...o,open:!0,stanzaName:b.name,formLabel:E===X?`Clone ${f}`:`Update ${f}`,mode:E})},u=()=>{p({...o,open:!1})},s=()=>e.jsx(Y,{open:o.open,handleRequestClose:u,serviceName:t.name,stanzaName:o.stanzaName,mode:o.mode,formLabel:o.formLabel,page:j}),i=()=>e.jsx("div",{style:l&&o.open?{display:"none"}:{display:"block"},children:e.jsx(J,{page:j,serviceName:t.name,handleRequestModalOpen:()=>g(),handleOpenPageStyleDialog:r})});return e.jsxs(Q,{value:null,children:[l&&o.open&&s(),i(),!l&&o.open&&m()]})}A.propTypes={selectedTab:T.object,updateIsPageOpen:T.func};const me=a.memo(A);var fe=ue();const ge=M(fe);function Ce(t){return e.jsx(F,{target:"_blank",to:t.fileUrl,download:t.fileNameAfterDownload,"data-test":"downloadButton",icon:e.jsx(ge,{}),children:t.children})}const xe=v().replace("js/build","openapi.json");function he(){return e.jsx(Ce,{fileUrl:xe,fileNameAfterDownload:"openapi.json",children:"OpenAPI.json"})}const be=h(Z.Typography)` + font-size: 0.8em; +`,je=()=>{const t=w();if(t?.meta?.hideUCCVersion)return null;const d=t?.meta?._uccVersion??null;return e.jsxs(be,{as:"span",title:"Splunk Add-On UCC framework is a framework to generate UI-based Splunk add-ons. It includes UI, REST handlers, Modular inputs, OAuth and Alert action templates.","data-test":"ucc-credit",children:["Made with"," ",e.jsx(le,{to:"https://splunk.github.io/addonfactory-ucc-generator/",openInNewContext:!0,children:"UCC"})," ",d]})},ye=h.div` + display: inline-flex; + align-items: center; + justify-content: end; + flex-wrap: wrap; + gap: 0.4rem; +`,Ee=h(y.Row)` + padding: 5px 0px; + + .dropdown { + text-align: right; + } + + .input_button { + text-align: right; + margin-right: 0px; + } +`,Te=h(_)` + flex-wrap: wrap; +`;function Ae(){const t=w();$(t.pages.configuration,"Configuration page not found in global config");const{title:d,description:o,subDescription:p,tabs:l}=t.pages.configuration,g=ee(t,"configuration"),c=l.filter(n=>!te(n.hideForPlatform,g)),m=a.useMemo(()=>c.map(n=>n.name),[c]),r=a.useRef(!1),[u,s]=a.useState(c[0].name),[i,b]=a.useState(!1),f=ne()?.get("tab");a.useEffect(()=>{f&&m.includes(f)&&f!==u&&s(f)},[f,m,u]),a.useEffect(()=>(r.current=!0,()=>{r.current=!1}),[]);const O=a.useCallback((n,{selectedTabId:C})=>{r.current&&C&&(s(C),b(!1))},[]),R=n=>{r.current&&b(n)},k=n=>z.createElement(de,{tab:n}),U=n=>{let C;return n?.customTab?C=k(n):C=n?.table?e.jsx(me,{selectedTab:n,updateIsPageOpen:R},n.name):e.jsx(D,{serviceName:n.name},n.name),e.jsx("div",{style:n.name!==u?{display:"none"}:{display:"block"},id:`${n.name}Tab`,children:C},n.name)};return e.jsx(ce,{children:e.jsxs(oe,{platform:g,children:[e.jsxs("div",{style:i?{display:"none"}:{display:"block"},children:[e.jsx(y,{gutter:8,children:e.jsxs(Ee,{children:[e.jsxs(y.Column,{span:9,children:[e.jsx(se,{children:x._(d)}),e.jsx(ae,{children:x._(o||"")}),e.jsx(re,{text:p?.text||"",links:p?.links})]}),e.jsx(y.Column,{span:3,style:{textAlignLast:"right"},children:e.jsxs(ye,{children:[e.jsx(je,{}),e.jsx(he,{})]})})]})}),e.jsx(Te,{activeTabId:u,onChange:O,children:c.map(n=>e.jsx(_.Tab,{label:x._(n.title),tabId:n.name},n.name))})]}),c.map(n=>U(n)),e.jsx(ie,{position:"top-right"})]})})}export{Ae as default}; +//# sourceMappingURL=ConfigurationPage.CKrnHsan.js.map diff --git a/TA-opencti-for-splunk-enterprise/appserver/static/js/build/ErrorBoundary.BRI7mTT2.js b/TA-opencti-for-splunk-enterprise/appserver/static/js/build/ErrorBoundary.BRI7mTT2.js new file mode 100644 index 0000000..a993c60 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/appserver/static/js/build/ErrorBoundary.BRI7mTT2.js @@ -0,0 +1,125 @@ +import{r as Te,a4 as Cr,a5 as jr,a3 as gt,a6 as kr,i as bt,a as st,aa as Br,g as ct,d as Pt,al as Pr,ap as Er,ah as Tr,ac as er,am as Et,a1 as _r,a8 as Dr,aF as Lr,H as zr,I as Nr,k as ft,ax as Hr,c as Ir,f as Vr,aS as Fr,aT as Wr,j as Gr,h as Mr,aO as Ur,aU as Xr,aV as Rr,ak as Kr,t as ze,v as H,aW as Zr,R as Yr,aK as Qr,p as se,q as Ct,aX as nr,m as Jr}from"./entry_page.js";var _t={exports:{}},It={exports:{}},or;function qr(){return or||(or=1,(()=>{var t={};t.n=S=>{var s=S&&S.__esModule?()=>S.default:()=>S;return t.d(s,{a:s}),s},t.d=(S,s)=>{for(var y in s)t.o(s,y)&&!t.o(S,y)&&Object.defineProperty(S,y,{enumerable:!0,get:s[y]})},t.o=(S,s)=>Object.prototype.hasOwnProperty.call(S,s),t.r=S=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(S,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(S,"__esModule",{value:!0})};var q={};t.r(q),t.d(q,{default:()=>ae});const O=Te();var p=t.n(O);const E=Cr();var r=t.n(E);const w=jr();function k(S,s){if(S==null)return{};var y,o,h=F(S,s);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(S);for(o=0;o=0},X=function(s){return s==="default"||s&&!_(s)?"outlined":s},oe=function(s){var y=s.children,o=s.variant,h=o===void 0?"default":o,m=k(s,["children","variant"]),b=X(h),I="dotsthreevertical-".concat(b),T=(0,O.useContext)(w.IconContext),N=n.get(b);if(T&&N){var Y=T.toRender,x=T.addIcon;if(x(I,N()),!Y)return null}return p().createElement(r(),m,y,T?p().createElement("use",{href:"#".concat(I)}):!!N&&N())};const ae=oe;It.exports=q})()),It.exports}var Mt={exports:{}},ar;function $r(){return ar||(ar=1,(()=>{var t={};t.n=n=>{var i=n&&n.__esModule?()=>n.default:()=>n;return t.d(i,{a:i}),i},t.d=(n,i)=>{for(var _ in i)t.o(i,_)&&!t.o(n,_)&&Object.defineProperty(n,_,{enumerable:!0,get:i[_]})},t.o=(n,i)=>Object.prototype.hasOwnProperty.call(n,i),t.r=n=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})};var q={};t.r(q),t.d(q,{default:()=>F});const O=Te();var p=t.n(O);const E=gt(),r=kr();var w=t.n(r);function k(){return k=Object.assign?Object.assign.bind():function(n){for(var i=1;i{var t={};t.n=u=>{var g=u&&u.__esModule?()=>u.default:()=>u;return t.d(g,{a:g}),g},t.d=(u,g)=>{for(var M in g)t.o(g,M)&&!t.o(u,M)&&Object.defineProperty(u,M,{enumerable:!0,get:g[M]})},t.o=(u,g)=>Object.prototype.hasOwnProperty.call(u,g),t.r=u=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(u,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(u,"__esModule",{value:!0})};var q={};t.r(q),t.d(q,{Tab:()=>V,default:()=>ye});const O=Te();var p=t.n(O);const E=st();var r=t.n(E);const w=Br(),k=ct;var F=t.n(k);const n=bt();var i=F().div.withConfig({displayName:"TabBarStyles__Styled",componentId:"sc-1t85fen-0"})([""," position:relative;&::before{content:'';display:block;position:absolute;left:0;top:0;right:0;bottom:0;border:0 solid ",";}",";"],n.mixins.reset("flex"),(0,n.pick)({enterprise:n.variables.borderLightColor,prisma:n.variables.neutral200}),(0,n.pickVariant)("$layout",{horizontal:{prisma:(0,n.pickVariant)("$withUnderline",{true:(0,k.css)(["&::before{border-bottom-width:1px;}"])}),enterprise:(0,k.css)(["&::before{border-bottom-width:1px;}"])},vertical:(0,k.css)(["display:inline-block;&::before{border-right-width:1px;}"])}));const _=Pt();var X=t.n(_);const oe=gt(),ae=qr();var S=t.n(ae);const s=Pr();var y=t.n(s);const o=$r();var h=t.n(o);const m=Er();var b=t.n(m);const I=Tr();var T=t.n(I);const N=er(),Y=Et();var x=t.n(Y),ce=(0,n.pick)({prisma:(0,k.css)(["color:",";"],n.variables.contentColorActive)}),me=(0,n.pickVariant)("$layout",{horizontal:{enterprise:(0,k.css)(["height:3px;"])},vertical:{enterprise:(0,k.css)(["width:3px;"])}}),J=F()(x()).withConfig({displayName:"TabStyles__StyledClickable",componentId:"sc-1ry8mzj-0"})(["flex:0 1 auto;display:flow-root;position:relative;line-height:",";text-align:center;white-space:nowrap;color:",";&::after{display:block;content:attr(data-title);font-weight:",";height:0;color:transparent;overflow:hidden;visibility:hidden;}",";&[aria-selected='true']{cursor:default;","}&[aria-selected='false']{box-shadow:none;font-weight:",";&:hover:not([disabled]){","}&[aria-haspopup='true']{","}}&:focus{box-shadow:",";","}"],(0,n.pick)({enterprise:"24px",prisma:"20px"}),n.variables.contentColorDefault,n.variables.fontWeightBold,(0,n.pickVariant)("$layout",{horizontal:(0,k.css)(["padding:",";margin-bottom:1px;"],(0,n.pick)({enterprise:(0,n.pickVariant)("$hasMenu",{true:"3px 4px 3px 16px",false:"3px 20px"}),prisma:{comfortable:(0,n.pickVariant)("$hasMenu",{true:"0px 8px 0px 16px",false:"0px 20px"}),compact:(0,n.pickVariant)("$hasMenu",{true:"0px 8px 0px 12px",false:"0 16px"})}})),vertical:{enterprise:(0,k.css)(["width:100%;text-align:left;right:1px;padding:10px 20px;",""],function(u){var g=u.$icon;return g&&(0,k.css)(["text-align:center;"])}),prisma:(0,k.css)(["width:100%;right:1px;padding:",";"],(0,n.pick)({comfortable:"0 20px",compact:"0 16px"}))}}),(0,n.pick)({enterprise:(0,k.css)(["font-weight:",";"],n.variables.fontWeightBold),prisma:(0,k.css)(["color:",";font-weight:",";"],n.variables.contentColorActive,n.variables.fontWeightBold)}),(0,n.pick)({enterprise:"normal",prisma:n.variables.fontWeightSemiBold}),ce,ce,n.variables.focusShadowInset,(0,n.pick)({prisma:(0,k.css)(["color:",";"],n.variables.contentColorActive)})),pe=F().div.withConfig({displayName:"TabStyles__StyledUnderline",componentId:"sc-1ry8mzj-1"})(["position:absolute;"," ",";[aria-selected='true'] > &&{background-color:",";",";}",":hover:not([disabled]) > &&{",";}[aria-selected='false'][aria-haspopup='true'] > &&{","}"],(0,n.pick)({enterprise:(0,k.css)(["background:",";"],n.variables.borderLightColor)}),(0,n.pickVariant)("$layout",{horizontal:(0,k.css)(["height:0;box-sizing:border-box;width:",";"," transition:height 0.2s;"],(0,n.pick)({enterprise:"calc(100% - 20px * 2)",prisma:{comfortable:"calc(100% - 20px * 2)",compact:"calc(100% - 16px * 2)"}}),(0,n.pick)({enterprise:(0,k.css)(["bottom:-1px;"])})),vertical:{enterprise:(0,k.css)(["width:0;height:calc(100% - 10px * 2);top:10px;right:-1px;transition:width 0.2s;"]),prisma:(0,k.css)(["width:1px;height:calc(100% - 10px * 2);top:10px;right:-1px;transition:width 0.2s;box-sizing:border-box;"])}}),(0,n.pick)({enterprise:n.variables.accentColor,prisma:n.variables.contentColorActive}),(0,n.pickVariant)("$layout",{horizontal:{enterprise:(0,k.css)(["height:3px;"]),prisma:(0,n.pickVariant)("$withUnderline",{true:(0,k.css)(["height:1px;"])})},vertical:{enterprise:(0,k.css)(["width:3px;"]),prisma:(0,k.css)(["width:1px;"])}}),J,me,me),xe=F().span.withConfig({displayName:"TabStyles__StyledMenu",componentId:"sc-1ry8mzj-2"})(["display:inline-block;> svg{transform:translateY(-1px);}border-radius:",";cursor:pointer;"," &:hover{","}","[aria-haspopup='true'] &,",":hover &,",":focus &{visibility:visible;}"],n.variables.borderRadius,(0,n.pickVariant)("$active",{false:(0,k.css)(["visibility:hidden;"])}),(0,n.pick)({enterprise:(0,k.css)(["color:",";background-color:",";border-color:",";"],(0,n.pick)({light:n.variables.linkColor,dark:n.variables.white}),n.variables.backgroundColorHover,(0,n.pick)({light:n.variables.gray60,dark:n.variables.borderColor})),prisma:(0,k.css)(["background-color:",";border-color:",";box-shadow:",";"],n.variables.interactiveColorOverlayHover,n.variables.interactiveColorBorderHover,n.variables.hoverShadow)}),J,J,J),Ce=F().span.withConfig({displayName:"TabStyles__StyledIcon",componentId:"sc-1ry8mzj-3"})([""," ",";"],(0,n.pickVariant)("$iconPosition",{above:(0,k.css)(["display:block;text-align:center;"]),left:(0,k.css)(["text-align:left;padding-right:",";> svg{transform:translateY(-1px);}"],(0,n.pick)({enterprise:"0.4em",prisma:"8px"}))}),(0,n.pickVariant)("$iconSize",{inline:(0,k.css)(["",""],(0,n.pick)({prisma:(0,k.css)(["display:inline-block;width:16px;height:16px;"])})),small:(0,k.css)(["font-size:24px;height:24px;padding:4px 0;"]),large:(0,k.css)(["font-size:48px;height:48px;padding:8px 0 0;"])})),de=F().div.withConfig({displayName:"TabStyles__StyledLabelAndMenuContainer",componentId:"sc-1ry8mzj-4"})(["display:flex;align-items:center;justify-content:center;gap:8px;"]),Ke=F().div.withConfig({displayName:"TabStyles__StyledLabel",componentId:"sc-1ry8mzj-5"})(["overflow:hidden;text-overflow:ellipsis;min-width:10px;margin:",";"],(0,n.pick)({enterprise:"0",prisma:{comfortable:"16px 0",compact:"10px 0"}})),Ne=F().span.withConfig({displayName:"TabStyles__StyledCount",componentId:"sc-1ry8mzj-6"})(["display:inline-block;border-radius:18px;color:",";font-size:",";line-height:10px;padding:",";margin-inline-start:",";"," &[disabled]{color:",";}"],n.variables.contentColorDefault,(0,n.pick)({enterprise:"inherit",prisma:"10px"}),(0,n.pick)({enterprise:"0.4em 0.3em",prisma:"0.4em 0.6em"}),(0,n.pick)({enterprise:"0",prisma:"0.3em"}),(0,n.pick)({enterprise:(0,k.css)(["&::before{content:'(';}&::after{content:')';}"]),prisma:(0,k.css)(["background:",";"],n.variables.neutral100)}),n.variables.contentColorDisabled),_e=F().div.withConfig({displayName:"TabStyles__StyledTooltipContent",componentId:"sc-1ry8mzj-7"})(["padding:8px;font-size:",";"],n.variables.fontSizeSmall),He=function(){},Re=(0,O.createContext)({onMenuOpen:He,onMenuClose:He,isMenuOpen:!1});Re.displayName="TabBar";const Ze=Re;var $=function(g,M){return g>M?"".concat(M,"+"):g};function R(u,g){u&&(typeof u=="function"?u(g):u.current=g)}function W(u){"@babel/helpers - typeof";return W=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(g){return typeof g}:function(g){return g&&typeof Symbol=="function"&&g.constructor===Symbol&&g!==Symbol.prototype?"symbol":typeof g},W(u)}function K(){return K=Object.assign?Object.assign.bind():function(u){for(var g=1;g0;D-=1){var A,ie=(D+M)%u.length;if(((A=u[ie].current)===null||A===void 0?void 0:A.props.disabled)!==!0)return u[ie]}return u[g]}function Oe(){return Oe=Object.assign?Object.assign.bind():function(u){for(var g=1;gu.length)&&(g=u.length);for(var M=0,D=Array(g);MSe?G:null,Tt=(0,O.useCallback)(function(Pe){if(!Pe.nativeEvent.metaKey){var be=(0,w.keycode)(Pe.nativeEvent),Le;if(be===ot?Le=v(Ie.current,ne,ne+1):be===it?Le=L(Ie.current,ne,ne-1):be==="home"?Le=v(Ie.current,ne,0):be==="end"?Le=L(Ie.current,ne,Ie.current.length-1):l==="horizontal"&&Pe.shiftKey&&be==="f10"?we(function(Ot){if(Ot){var St,wt=Ie.current[ne];wt==null||(St=wt.current)===null||St===void 0||St.focus()}return!Ot}):l==="horizontal"&&be==="down"&&we(!0),Le!=null){var lt;(lt=Le.current)===null||lt===void 0||lt.focus(),Pe.preventDefault()}}},[ne,l,ot,it]),xt=(0,O.useCallback)(function(Pe){Pe.stopPropagation(),we(!0)},[]),jt=(0,O.useCallback)(function(Pe){var be=Pe.event;be?.stopPropagation(),we(!1)},[]),kt=(0,O.useMemo)(function(){return{appearance:A,disabled:f,iconPosition:Me,iconSize:pt,layout:l,onClick:ht,onFocus:mt,width:yt,onMenuOpen:xt,onMenuClose:jt,isMenuOpen:ve,focusedTabKey:ne}},[A,f,ne,Me,pt,ve,l,jt,xt,ht,mt,yt]);return p().createElement(i,Oe({"data-tab-layout":l,"data-test-active-tab-id":g,"data-test":"tab-bar",role:"tablist",ref:j,$layout:l,$withUnderline:A==="navigation",onKeyDown:Tt},U),p().createElement(Ze.Provider,{value:kt},vt))}et.propTypes=Je,et.Tab=V;const ye=et;_t.exports=q})()),_t.exports}var Rt={exports:{}},lr;function en(){return lr||(lr=1,(()=>{var t={};t.n=o=>{var h=o&&o.__esModule?()=>o.default:()=>o;return t.d(h,{a:h}),h},t.d=(o,h)=>{for(var m in h)t.o(h,m)&&!t.o(o,m)&&Object.defineProperty(o,m,{enumerable:!0,get:h[m]})},t.o=(o,h)=>Object.prototype.hasOwnProperty.call(o,h),t.r=o=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(o,"__esModule",{value:!0})};var q={};t.r(q),t.d(q,{default:()=>y});const O=Te();var p=t.n(O);const E=st();var r=t.n(E);const w=ct;var k=t.n(w);const F=bt();var n=k().h2.withConfig({displayName:"HeadingStyles__StyledHeading",componentId:"sc-15s3yx3-0"})(["",";color:",";margin:1.414em 0 0.4em;text-rendering:optimizelegibility;"," ",""],function(o){var h=o.$variant;return h==="title4"?(0,F.pickVariant)("$isSection",{true:{enterprise:{compact:F.mixins.typography("title4",{weight:"semiBold"}),comfortable:F.mixins.typography("title4",{size:14,weight:"semiBold"})},prisma:F.mixins.typography("title4",{color:"default",size:14})},false:{enterprise:{compact:F.mixins.typography("title4"),comfortable:F.mixins.typography("title4",{size:14})},prisma:F.mixins.typography("title4")}}):F.mixins.typography(h)},(0,F.pick)({prisma:(0,F.pickVariant)("$variant",{title5:F.mixins.typography("title5",{color:"default"})})}),(0,F.pickVariant)("$isSection",{true:{enterprise:{dark:(0,w.css)(["color:",";"],F.variables.gray80),light:(0,w.css)(["color:",";"],F.variables.gray45)}}}),function(o){var h=o.$isSection;return h&&(0,w.css)(["margin:0.707em 0 0.2em;"])});function i(){return i=Object.assign?Object.assign.bind():function(o){for(var h=1;h{var t={};t.n=S=>{var s=S&&S.__esModule?()=>S.default:()=>S;return t.d(s,{a:s}),s},t.d=(S,s)=>{for(var y in s)t.o(s,y)&&!t.o(S,y)&&Object.defineProperty(S,y,{enumerable:!0,get:s[y]})},t.o=(S,s)=>Object.prototype.hasOwnProperty.call(S,s),t.r=S=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(S,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(S,"__esModule",{value:!0})};var q={};t.r(q),t.d(q,{default:()=>ae});const O=Te();var p=t.n(O);const E=Cr();var r=t.n(E);const w=jr();function k(S,s){if(S==null)return{};var y,o,h=F(S,s);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(S);for(o=0;o=0},X=function(s){return s==="default"||s&&!_(s)?"outlined":s},oe=function(s){var y=s.children,o=s.variant,h=o===void 0?"default":o,m=k(s,["children","variant"]),b=X(h),I="chevronright-".concat(b),T=(0,O.useContext)(w.IconContext),N=n.get(b);if(T&&N){var Y=T.toRender,x=T.addIcon;if(x(I,N()),!Y)return null}return p().createElement(r(),m,y,T?p().createElement("use",{href:"#".concat(I)}):!!N&&N())};const ae=oe;qt.exports=q})()),qt.exports}var $t={exports:{}},cr;function rn(){return cr||(cr=1,(()=>{var t={};t.n=n=>{var i=n&&n.__esModule?()=>n.default:()=>n;return t.d(i,{a:i}),i},t.d=(n,i)=>{for(var _ in i)t.o(i,_)&&!t.o(n,_)&&Object.defineProperty(n,_,{enumerable:!0,get:i[_]})},t.o=(n,i)=>Object.prototype.hasOwnProperty.call(n,i),t.r=n=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})};var q={};t.r(q),t.d(q,{default:()=>F});const O=Te();var p=t.n(O);const E=gt(),r=kr();var w=t.n(r);function k(){return k=Object.assign?Object.assign.bind():function(n){for(var i=1;i{var t={42519:(E,r,w)=>{w.d(r,{default:()=>m});var k=w(99497),F=w.n(k),n=w(80023),i=w.n(n);const _=ct;var X=w.n(_);function oe(){return oe=Object.assign?Object.assign.bind():function(b){for(var I=1;I{E.exports=st()},99497:E=>{E.exports=Te()}},q={};function O(E){var r=q[E];if(r!==void 0)return r.exports;var w=q[E]={exports:{}};return t[E](w,w.exports,O),w.exports}O.n=E=>{var r=E&&E.__esModule?()=>E.default:()=>E;return O.d(r,{a:r}),r},O.d=(E,r)=>{for(var w in r)O.o(r,w)&&!O.o(E,w)&&Object.defineProperty(E,w,{enumerable:!0,get:r[w]})},O.o=(E,r)=>Object.prototype.hasOwnProperty.call(E,r),O.r=E=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(E,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(E,"__esModule",{value:!0})};var p={};(()=>{O.r(p),O.d(p,{IconContext:()=>o,IconProvider:()=>h,default:()=>m});var E=O(99497),r=O.n(E),w=O(80023),k=O.n(w),F=O(42519);function n(b,I){return ae(b)||oe(b,I)||_(b,I)||i()}function i(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _(b,I){if(b){if(typeof b=="string")return X(b,I);var T={}.toString.call(b).slice(8,-1);return T==="Object"&&b.constructor&&(T=b.constructor.name),T==="Map"||T==="Set"?Array.from(b):T==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(T)?X(b,I):void 0}}function X(b,I){(I==null||I>b.length)&&(I=b.length);for(var T=0,N=Array(I);T{var t={80023:E=>{E.exports=st()},99497:E=>{E.exports=Te()}},q={};function O(E){var r=q[E];if(r!==void 0)return r.exports;var w=q[E]={exports:{}};return t[E](w,w.exports,O),w.exports}O.n=E=>{var r=E&&E.__esModule?()=>E.default:()=>E;return O.d(r,{a:r}),r},O.d=(E,r)=>{for(var w in r)O.o(r,w)&&!O.o(E,w)&&Object.defineProperty(E,w,{enumerable:!0,get:r[w]})},O.o=(E,r)=>Object.prototype.hasOwnProperty.call(E,r),O.r=E=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(E,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(E,"__esModule",{value:!0})};var p={};(()=>{O.r(p),O.d(p,{default:()=>y});var E=O(99497),r=O.n(E),w=O(80023),k=O.n(w);const F=ct;var n=O.n(F);function i(){return i=Object.assign?Object.assign.bind():function(o){for(var h=1;h{var t={9497:E=>{E.exports=Te()}},q={};function O(E){var r=q[E];if(r!==void 0)return r.exports;var w=q[E]={exports:{}};return t[E](w,w.exports,O),w.exports}O.d=(E,r)=>{for(var w in r)O.o(r,w)&&!O.o(E,w)&&Object.defineProperty(E,w,{enumerable:!0,get:r[w]})},O.o=(E,r)=>Object.prototype.hasOwnProperty.call(E,r),O.r=E=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(E,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(E,"__esModule",{value:!0})};var p={};(()=>{O.r(p),O.d(p,{default:()=>w});var E=O(9497);function r(k){var F=(0,E.useRef)();return(0,E.useEffect)(function(){F.current=k},[k]),F.current}const w=r})(),Dt.exports=p})()),Dt.exports}var Lt={exports:{}},fr;function ln(){return fr||(fr=1,(()=>{var t={};t.n=P=>{var C=P&&P.__esModule?()=>P.default:()=>P;return t.d(C,{a:C}),C},t.d=(P,C)=>{for(var z in C)t.o(C,z)&&!t.o(P,z)&&Object.defineProperty(P,z,{enumerable:!0,get:C[z]})},t.o=(P,C)=>Object.prototype.hasOwnProperty.call(P,C),t.r=P=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(P,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(P,"__esModule",{value:!0})};var q={};t.r(q),t.d(q,{default:()=>Ye});const O=Te();var p=t.n(O);const E=st();var r=t.n(E);const w=_r();var k=t.n(w);const F=Pt();var n=t.n(F);const i=Dr();var _=t.n(i);const X=Er();var oe=t.n(X);const ae=Tr();var S=t.n(ae);const s=bt(),y=er(),o=gt();function h(P,C){P&&(typeof P=="function"?P(C):P.current=C)}const m=Lr();var b=t.n(m);function I(){return I=Object.assign?Object.assign.bind():function(P){for(var C=1;C1&&arguments[1]!==void 0?arguments[1]:"mouseLeaveToggle";(L.relatedTarget==null||L.relatedTarget!==v.state.popoverEl&&L.relatedTarget!==v.state.popoverOuterEl)&&v.handleRequestClose(L,{reason:Oe})}),te(ee(v),"handleMouseLeavePopover",function(L){v.handleMouseLeave(L,"mouseLeavePopover")}),te(ee(v),"handleMouseLeaveHitArea",function(L){v.handleMouseLeave(L,"mouseLeaveHitArea")}),te(ee(v),"handleMouseMoveHitAreaImpl",function(L){v.handleRequestClose(L,{reason:"mouseStopHitArea"})}),te(ee(v),"handleMouseMoveHitArea",_()(v.handleMouseMoveHitAreaImpl,10)),te(ee(v),"handleClick",function(L){v.props.closeWhen!=="notOnClick"&&v.handleRequestClose(L,{reason:"toggleClick"})}),te(ee(v),"handleFocus",function(L){v.handleRequestOpen(L,{reason:"focusToggle"})}),te(ee(v),"handleBlur",function(L){v.handleRequestClose(L,{reason:"blurToggle"})}),te(ee(v),"handlePopoverOnRequestClose",function(L){v.handleRequestClose(null,L)}),te(ee(v),"handleRequestClose",function(L,Oe){var Ee=v.props.closeDelay;v.timeout!==void 0&&clearTimeout(v.timeout),v.timeout=setTimeout(function(){var Ge,$e;v.isControlled()||v.setState({open:!1}),(Ge=($e=v.props).onRequestClose)===null||Ge===void 0||Ge.call($e,L,Oe)},Ee)}),te(ee(v),"handleRequestOpen",function(L,Oe){var Ee=v.props.openDelay,Ge=Ee==="primary"?300:750,$e=typeof Ee=="number"?Ee:Ge;v.timeout!==void 0&&clearTimeout(v.timeout),v.timeout=setTimeout(function(){var Ue=v.isOpen();if(v.isControlled()||v.setState({open:!0}),!Ue){var Qe,Ae;(Qe=(Ae=v.props).onRequestOpen)===null||Qe===void 0||Qe.call(Ae,L,Oe)}},$e)}),te(ee(v),"handleRenderPropAnchorMount",function(L){var Oe=v.props.elementRef;v.handleMount(L),h(Oe,L)}),v.controlledExternally=k()(V,"open"),v.popoverId=(0,y.createDOMID)("popover"),v.ariaId=(0,y.createDOMID)("aria-id"),v.state={anchorEl:null,open:!1,popoverEl:null,popoverOuterEl:null,hitAreaEl:null},v}return Z(z,[{key:"componentDidUpdate",value:function(){}},{key:"componentWillUnmount",value:function(){this.timeout!==void 0&&clearTimeout(this.timeout)}},{key:"isControlled",value:function(){return this.controlledExternally}},{key:"isOpen",value:function(){var v=!!this.props.content;return this.state.anchorEl&&this.isControlled()?this.props.open:v&&this.state.open}},{key:"createAnchor",value:function(){var v=this.props,L=v.children,Oe=v.inline,Ee=v.renderAnchor,Ge=v.splunkTheme;if(Ee){var $e,Ue,Qe={onBlur:this.handleBlur,onFocus:this.handleFocus,onClick:this.handleClick,elementRef:this.handleRenderPropAnchorMount,"data-test":"toggle"};if(this.props.contentRelationship==="label"){var Ae,at;return(Ae=(at=this.props).renderAnchor)===null||Ae===void 0?void 0:Ae.call(at,R(R({},n()(Qe,"describedBy","aria-describedby")),{},{"aria-labelledby":this.ariaId,labelledBy:this.ariaId}))}return($e=(Ue=this.props).renderAnchor)===null||$e===void 0?void 0:$e.call(Ue,R(R({},n()(Qe,"labelledBy","aria-labelledBy")),{},{"aria-describedby":this.ariaId,describedBy:this.ariaId}))}var ut=Oe?de:Ce,Se;if((0,O.isValidElement)(L)){var Je;this.props.contentRelationship==="label"?Je={labelledBy:this.ariaId,"aria-labelledby":this.ariaId}:Je={describedBy:this.ariaId,"aria-describedby":this.ariaId},Se=(0,O.cloneElement)(L,Je)}else if(L)Se=L;else{var et=Ge.isEnterprise;Se=p().createElement(Ne,{"aria-describedby":this.ariaId},et?p().createElement(p().Fragment,null,p().createElement("span",{"aria-hidden":"true"},"?"),p().createElement(S(),null,(0,o._)("More info"))):p().createElement(N,{hideDefaultTooltip:!0,screenReaderText:(0,o._)("More info"),style:{height:"22px",width:"22px"}}))}return p().createElement(ut,{onClick:this.handleClick,onFocus:this.handleFocus,onBlur:this.handleBlur,ref:this.handleMount,"data-test":"toggle"},Se)}},{key:"render",value:function(){var v=this.props,L=v.appearance,Oe=v.content,Ee=v.defaultPlacement,Ge=v.elementRef,$e=v.inline;v.onRequestClose,v.onRequestOpen;var Ue=v.splunkTheme,Qe=v.contentRelationship,Ae=v.renderAnchor,at=Re(v,["appearance","content","defaultPlacement","elementRef","inline","onRequestClose","onRequestOpen","splunkTheme","contentRelationship","renderAnchor"]),ut=this.state.anchorEl,Se=!!Oe,Je=this.isOpen(),et=$e?xe:pe,ye=Ue.isEnterprise,u=ye?"above":"below",g=L;L===void 0&&(g=ye?"inverted":"normal");var M=this.createAnchor(),D=Se&&p().createElement(S(),{"aria-hidden":"true",id:this.ariaId},Oe),A=p().createElement(oe(),{role:"tooltip",align:"center",anchor:ut,animationConfig:{tension:400},appearance:g,closeReasons:["offScreen","escapeKey"],defaultPlacement:Ee==="theme"?u:Ee,id:this.popoverId,open:Je,onRequestClose:this.handlePopoverOnRequestClose,elementRef:this.handlePopoverMount,hitAreaRef:this.handleHitAreaMount,outerRef:this.handlePopoverOuterMount},p().createElement(Ke,{$isLabel:Qe==="label"},Oe));return Ae?p().createElement(p().Fragment,null,M,D,A):p().createElement(et,He({"data-test":"tooltip","data-test-open":Je,"data-test-popover-id":this.popoverId,ref:Ge},at),M,D,A)}}]),z}(O.Component);te(nt,"propTypes",Fe),te(nt,"defaultProps",ge);var We=(0,s.withSplunkTheme)(nt);We.propTypes=nt.propTypes;const Ye=We;Lt.exports=q})()),Lt.exports}var zt={exports:{}},Nt={exports:{}},vr;function sn(){return vr||(vr=1,(()=>{var t={};t.n=m=>{var b=m&&m.__esModule?()=>m.default:()=>m;return t.d(b,{a:b}),b},t.d=(m,b)=>{for(var I in b)t.o(b,I)&&!t.o(m,I)&&Object.defineProperty(m,I,{enumerable:!0,get:b[I]})},t.o=(m,b)=>Object.prototype.hasOwnProperty.call(m,b),t.r=m=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(m,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(m,"__esModule",{value:!0})};var q={};t.r(q),t.d(q,{default:()=>h});const O=Te();var p=t.n(O);const E=zr();var r=t.n(E);const w=Nr();var k=t.n(w);const F=st();var n=t.n(F);const i=ct;var _=t.n(i);function X(){return X=Object.assign?Object.assign.bind():function(m){for(var b=1;b{var t={};t.n=y=>{var o=y&&y.__esModule?()=>y.default:()=>y;return t.d(o,{a:o}),o},t.d=(y,o)=>{for(var h in o)t.o(o,h)&&!t.o(y,h)&&Object.defineProperty(y,h,{enumerable:!0,get:o[h]})},t.o=(y,o)=>Object.prototype.hasOwnProperty.call(y,o),t.r=y=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(y,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(y,"__esModule",{value:!0})};var q={};t.r(q),t.d(q,{default:()=>s});const O=Te();var p=t.n(O);const E=st();var r=t.n(E);const w=ct;var k=t.n(w);const F=sn();var n=t.n(F);function i(){return i=Object.assign?Object.assign.bind():function(y){for(var o=1;o{var t={};t.n=$=>{var R=$&&$.__esModule?()=>$.default:()=>$;return t.d(R,{a:R}),R},t.d=($,R)=>{for(var W in R)t.o(R,W)&&!t.o($,W)&&Object.defineProperty($,W,{enumerable:!0,get:R[W]})},t.o=($,R)=>Object.prototype.hasOwnProperty.call($,R),t.r=$=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty($,Symbol.toStringTag,{value:"Module"}),Object.defineProperty($,"__esModule",{value:!0})};var q={};t.r(q),t.d(q,{default:()=>Ze});const O=Te();var p=t.n(O);const E=st();var r=t.n(E);const w=Ir();var k=t.n(w);const F=Pt();var n=t.n(F);const i=Vr(),_=Fr(),X=Wr(),oe=Gr,ae=ct;var S=t.n(ae);const s=bt();var y=S()(oe.animated.div).withConfig({displayName:"TransitionOpenStyles__Styled",componentId:"sc-1x58s0g-0"})(["",";",";"],s.mixins.reset("block"),function($){var R=$.$hideOverflow;return R&&(0,ae.css)(["overflow:hidden;"])}),o=S()(oe.animated.div).withConfig({displayName:"TransitionOpenStyles__StyledInner",componentId:"sc-1x58s0g-1"})(["",";",";width:100%;"],s.mixins.reset("table"),s.mixins.clearfix());function h($){"@babel/helpers - typeof";return h=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(R){return typeof R}:function(R){return R&&typeof Symbol=="function"&&R.constructor===Symbol&&R!==Symbol.prototype?"symbol":typeof R},h($)}function m(){return m=Object.assign?Object.assign.bind():function($){for(var R=1;R{var t={};t.n=c=>{var f=c&&c.__esModule?()=>c.default:()=>c;return t.d(f,{a:f}),f},t.d=(c,f)=>{for(var j in f)t.o(f,j)&&!t.o(c,j)&&Object.defineProperty(c,j,{enumerable:!0,get:f[j]})},t.o=(c,f)=>Object.prototype.hasOwnProperty.call(c,f),t.r=c=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(c,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(c,"__esModule",{value:!0})};var q={};t.r(q),t.d(q,{SingleOpenPanelGroup:()=>V,default:()=>ie});const O=Te();var p=t.n(O);const E=_r();var r=t.n(E);const w=Ir();var k=t.n(w);const F=Pt();var n=t.n(F);const i=st();var _=t.n(i);const X=pn();var oe=t.n(X);const ae=er(),S=gt(),s=an();var y=t.n(s);const o=ct;var h=t.n(o);const m=Mr();var b=t.n(m);const I=Ur();var T=t.n(I);const N=Et();var Y=t.n(N);const x=bt(),ce=tn();var me=t.n(ce);const J=rn();var pe=t.n(J),xe={className:_().string},Ce=function(f){var j=f.className,B=(0,x.useSplunkTheme)(),e=B.isEnterprise;return e?p().createElement(pe(),{className:j,hideDefaultTooltip:!0,screenReaderText:null}):p().createElement(me(),{className:j})};Ce.propTypes=xe;const de=Ce;var Ke=h()(b()).withConfig({displayName:"CollapsiblePanelStyles__StyledBox",componentId:"sc-1phikbp-0"})(["display:flex;flex-direction:column;flex-shrink:1;",";",";& + &{margin-top:",";}"],(0,x.pick)({enterprise:(0,o.css)(["min-height:calc("," + 12px);"],x.variables.lineHeight),prisma:{comfortable:(0,o.css)(["min-height:56px;"]),compact:(0,o.css)(["min-height:48px;"])}}),(0,x.pick)({prisma:(0,o.css)(["background-color:",";"],x.variables.backgroundColorSection)}),(0,x.pick)({enterprise:"2px",prisma:"1px"})),Ne=h()(b()).withConfig({displayName:"CollapsiblePanelStyles__StyledSingleOpenPanelGroupBox",componentId:"sc-1phikbp-1"})(["",";flex-direction:column;margin-bottom:0;",""],x.mixins.reset("flex"),(0,x.pick)({enterprise:(0,o.css)(["background:",";"],x.variables.backgroundColor)})),_e=(0,o.css)(["min-width:",";"],(0,x.pick)({enterprise:"20px",prisma:"35px"})),He=h().span.withConfig({displayName:"CollapsiblePanelStyles__StyledIconWrapper",componentId:"sc-1phikbp-2"})(["display:inline-block;flex:0 auto;",""],_e),Re=h().div.withConfig({displayName:"CollapsiblePanelStyles__StyledTitleWithActions",componentId:"sc-1phikbp-3"})(["display:flex;flex-shrink:0;border-bottom:0;position:relative;padding:",";transition:background-color 0.2s,border 0.2s,box-shadow 0.2s;color:",";"," ",""],(0,x.pick)({enterprise:(0,o.css)([""," "," "," ",""],x.variables.spacingXSmall,x.variables.spacingSmall,x.variables.spacingXSmall,x.variables.spacingXSmall),prisma:{comfortable:"8px 10px 8px 11px",compact:"8px 10px 8px 11px"}}),(0,x.pick)({enterprise:x.variables.textColor,prisma:x.variables.contentColorActive}),(0,x.pick)({prisma:(0,o.css)(["background-color:",";"],x.variables.interactiveColorBackground),enterprise:{dark:(0,o.css)(["background-color:",";"],x.variables.gray45),light:(0,o.css)(["background-color:",";"],x.variables.gray96)}}),function(c){var f=c.$disabled;return f&&(0,o.css)(["cursor:default;color:",";"],(0,x.pick)({enterprise:x.variables.contentColorDefault,prisma:x.variables.contentColorDisabled}))}),Ze=h()(T()).withConfig({displayName:"CollapsiblePanelStyles__StyledToggleButton",componentId:"sc-1phikbp-4"})(["flex:0 auto;padding:0;",""],_e),$=h()(Y()).withConfig({displayName:"CollapsiblePanelStyles__StyledTitleClickable",componentId:"sc-1phikbp-5"})(["width:100%;flex-shrink:0;border-bottom:0;cursor:pointer;position:relative;display:flex;transition:background-color 0.2s,border 0.2s,box-shadow 0.2s;padding:",";color:",";"," "," &[disabled]{cursor:default;color:",";}&:focus:not([disabled]),&:active:not([disabled]){color:",";box-shadow:",";z-index:1;}&:hover:not([disabled]){color:",";background-color:",";}"],(0,x.pick)({enterprise:"6px 30px 6px 5px",prisma:{comfortable:"18px 20px 18px 11px",compact:"14px 20px 14px 11px"}}),(0,x.pick)({enterprise:x.variables.textColor,prisma:x.variables.contentColorActive}),(0,x.pick)({prisma:(0,o.css)(["background-color:",";"],x.variables.interactiveColorBackground)}),(0,x.pickVariant)("$open",{false:{enterprise:{dark:(0,o.css)(["background-color:",";"],x.variables.gray45),light:(0,o.css)(["background-color:",";"],x.variables.gray96)}}}),(0,x.pick)({enterprise:x.variables.contentColorDefault,prisma:x.variables.contentColorDisabled}),(0,x.pick)({enterprise:x.variables.textColor,prisma:x.variables.contentColorActive}),x.variables.focusShadowInset,(0,x.pick)({enterprise:x.variables.textColor,prisma:x.variables.contentColorActive}),(0,x.pick)({enterprise:{light:x.variables.gray92,dark:x.variables.gray30},prisma:x.mixins.overlayColors(x.variables.interactiveColorBackground,x.variables.interactiveColorOverlayHover)})),R=h().span.withConfig({displayName:"CollapsiblePanelStyles__StyledHeadingContent",componentId:"sc-1phikbp-6"})(["display:flex;justify-content:space-between;margin-left:",";flex:1 1 auto;"," ",""],(0,x.pick)({enterprise:"5px",prisma:"6px"}),(0,x.pick)({prisma:(0,o.css)(["font-weight:",";"],x.variables.fontWeightSemiBold)}),function(c){var f=c.$titleWithActions;return f&&(0,o.css)(["min-height:",";"],(0,x.pick)({prisma:{comfortable:x.variables.spacingXXXLarge,compact:x.variables.spacingXXLarge}}))}),W=h().span.withConfig({displayName:"CollapsiblePanelStyles__StyledHeadingActions",componentId:"sc-1phikbp-7"})(["min-height:",";flex:1 0 auto;"],(0,x.pick)({prisma:{comfortable:x.variables.spacingXXXLarge,compact:x.variables.spacingXXLarge}})),K=h().span.withConfig({displayName:"CollapsiblePanelStyles__StyledDescription",componentId:"sc-1phikbp-8"})(["font-size:",";margin-left:",";"],x.variables.fontSizeSmall,(0,x.pick)({enterprise:x.variables.spacingSmall,prisma:x.variables.spacingLarge})),Z=h().div.withConfig({displayName:"CollapsiblePanelStyles__StyledInsetWrapper",componentId:"sc-1phikbp-9"})(["",";padding:",";"],x.mixins.reset("block"),(0,x.pickVariant)("$inset",{true:(0,x.pick)({enterprise:{compact:x.variables.spacingXSmall,comfortable:x.variables.spacingSmall},prisma:{compact:x.variables.spacingMedium,comfortable:x.variables.spacingXLarge}}),false:0})),le=h()(de).withConfig({displayName:"CollapsiblePanelStyles__StyledExpandPanelIcon",componentId:"sc-1phikbp-10"})(["transition:transform ",";",";"," width:100%;vertical-align:",";"],(0,x.pick)({enterprise:"300ms",prisma:"200ms"}),(0,x.pick)({enterprise:(0,o.css)(["[disabled] &{color:",";}"],(0,x.pick)({dark:x.variables.contentColorDefault,light:x.variables.contentColorDisabled})),prisma:(0,o.css)(["color:",";[disabled] &{color:inherit;}"],x.variables.contentColorDefault)}),function(c){var f=c.open;return f&&(0,o.css)(["transform:rotate(90deg);"])},(0,x.pick)({enterprise:"baseline",prisma:"text-bottom"})),he=(0,O.createContext)({});const je=he;function fe(){return fe=Object.assign?Object.assign.bind():function(c){for(var f=1;fc.length)&&(f=c.length);for(var j=0,B=Array(f);j{var t={};t.n=n=>{var i=n&&n.__esModule?()=>n.default:()=>n;return t.d(i,{a:i}),i},t.d=(n,i)=>{for(var _ in i)t.o(i,_)&&!t.o(n,_)&&Object.defineProperty(n,_,{enumerable:!0,get:i[_]})},t.o=(n,i)=>Object.prototype.hasOwnProperty.call(n,i),t.r=n=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})};var q={};t.r(q),t.d(q,{default:()=>F});const O=Te();var p=t.n(O);const E=Ar();var r=t.n(E);const w=Rr();function k(){return k=Object.assign?Object.assign.bind():function(n){for(var i=1;i{var t={};t.n=S=>{var s=S&&S.__esModule?()=>S.default:()=>S;return t.d(s,{a:s}),s},t.d=(S,s)=>{for(var y in s)t.o(s,y)&&!t.o(S,y)&&Object.defineProperty(S,y,{enumerable:!0,get:s[y]})},t.o=(S,s)=>Object.prototype.hasOwnProperty.call(S,s),t.r=S=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(S,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(S,"__esModule",{value:!0})};var q={};t.r(q),t.d(q,{default:()=>ae});const O=Te();var p=t.n(O);const E=nn(),r=on();var w=t.n(r);function k(S,s){if(S==null)return{};var y,o,h=F(S,s);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(S);for(o=0;o=0},X=function(s){return s==="default"||s&&!_(s)?"outlined":s},oe=function(s){var y=s.children,o=s.variant,h=o===void 0?"default":o,m=k(s,["children","variant"]),b=X(h),I="file-".concat(b),T=(0,O.useContext)(E.IconContext),N=n.get(b);if(T&&N){var Y=T.toRender,x=T.addIcon;if(x(I,N()),!Y)return null}return p().createElement(w(),m,y,T?p().createElement("use",{href:"#".concat(I)}):!!N&&N())};const ae=oe;Wt.exports=q})()),Wt.exports}var gn=yn();const xn=ft(gn);var On=en();const Sn=ft(On);var Gt={exports:{}},Ut={exports:{}},Or;function wn(){return Or||(Or=1,(()=>{var t={};t.n=s=>{var y=s&&s.__esModule?()=>s.default:()=>s;return t.d(y,{a:y}),y},t.d=(s,y)=>{for(var o in y)t.o(y,o)&&!t.o(s,o)&&Object.defineProperty(s,o,{enumerable:!0,get:y[o]})},t.o=(s,y)=>Object.prototype.hasOwnProperty.call(s,y),t.r=s=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(s,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(s,"__esModule",{value:!0})};var q={};t.r(q),t.d(q,{default:()=>S});const O=Te();var p=t.n(O);const E=st();var r=t.n(E);const w=ct;var k=t.n(w);const F=bt();var n=k().a.withConfig({displayName:"AnchorStyles__StyledAnchor",componentId:"sc-1m9yzet-0"})(["",";color:inherit;font-size:inherit;font-family:inherit;font-weight:inherit;line-height:inherit;text-decoration:inherit;text-rendering:inherit;text-transform:inherit;cursor:pointer;margin:1px;&:hover::after{content:' #';opacity:0.5;}&:focus,&:active{box-shadow:",";&::after{content:' #';opacity:0.5;}}"],F.mixins.reset("inline"),F.variables.focusShadow);function i(){return i=Object.assign?Object.assign.bind():function(s){for(var y=1;y{var t={};t.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return t.d(a,{a}),a},t.d=(e,a)=>{for(var l in a)t.o(a,l)&&!t.o(e,l)&&Object.defineProperty(e,l,{enumerable:!0,get:a[l]})},t.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),t.r=e=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var q={};t.r(q),t.d(q,{Body:()=>y,Footer:()=>N,Header:()=>qe,default:()=>B});const O=Te();var p=t.n(O);const E=st();var r=t.n(E);const w=ct;var k=t.n(w);const F=Mr();var n=t.n(F);const i=bt();var _=k()(n()).withConfig({displayName:"BodyStyles__StyledBox",componentId:"sc-1130udp-0"})(["flex:1 1 auto;overflow:auto;height:100%;",";",""],function(e){var a=e.$inset;return a?(0,w.css)(["",""],(0,i.pick)({enterprise:(0,w.css)(["padding:",";&:not(:first-child){padding-top:0;}"],i.variables.spacingLarge),prisma:{comfortable:(0,w.css)(["padding:12px 24px;&:first-child{padding-top:28px;}&:last-child{padding-bottom:28px;}"]),compact:(0,w.css)(["padding:8px 24px;&:first-child{padding-top:20px;}&:last-child{padding-bottom:20px;}"])}})):(0,w.css)(["padding:0;"])},(0,i.pick)({prisma:{comfortable:(0,w.css)(["border-radius:",";color:",";"],i.variables.borderRadius,i.variables.contentColorMuted),compact:(0,w.css)(["border-radius:",";color:",";"],i.variables.borderRadius,i.variables.contentColorMuted)}}));function X(){return X=Object.assign?Object.assign.bind():function(e){for(var a=1;a ",",& > ","{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}"],Re,Ze)},i.variables.spacingSmall),R=k().div.withConfig({displayName:"HeaderStyles__StyledActionContainer",componentId:"eqi6uk-3"})([""," align-items:center;display:flex;flex:0 0 auto;justify-content:space-between;",";"],i.mixins.reset("block"),(0,i.pick)({prisma:{comfortable:(0,w.css)(["margin-right:-12px;margin-top:-4px;"]),compact:(0,w.css)(["margin-right:-12px;margin-top:0;"])}})),W=k()(He()).withConfig({displayName:"HeaderStyles__StyledSecondaryAction",componentId:"eqi6uk-4"})(["margin-left:10px;"]),K=k()(n()).withConfig({displayName:"HeaderStyles__StyledBox",componentId:"eqi6uk-5"})(["align-items:start;display:flex;flex:0 0 auto;justify-content:space-between;position:relative;min-height:30px;"," "," >:not(","):not(","){flex:1 0 auto;}"],(0,i.pick)({enterprise:(0,w.css)(["padding:",";"],i.variables.spacingLarge),prisma:{comfortable:(0,w.css)(["padding:16px 24px;&:last-child{padding-bottom:32px;}"]),compact:(0,w.css)(["padding:12px 24px;&:last-child{padding-bottom:24px;}"])}}),(0,i.pick)({prisma:(0,w.css)(["border-top-left-radius:",";border-top-right-radius:",";"],i.variables.borderRadius,i.variables.borderRadius)}),$,R);function Z(e,a){if(e==null)return{};var l,d,G=le(e,a);if(Object.getOwnPropertySymbols){var U=Object.getOwnPropertySymbols(e);for(d=0;de.length)&&(a=e.length);for(var l=0,d=Array(a);l{var t={};t.n=n=>{var i=n&&n.__esModule?()=>n.default:()=>n;return t.d(i,{a:i}),i},t.d=(n,i)=>{for(var _ in i)t.o(i,_)&&!t.o(n,_)&&Object.defineProperty(n,_,{enumerable:!0,get:i[_]})},t.o=(n,i)=>Object.prototype.hasOwnProperty.call(n,i),t.r=n=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})};var q={};t.r(q),t.d(q,{default:()=>F});const O=Te();var p=t.n(O);const E=Ar();var r=t.n(E);const w=Rr();function k(){return k=Object.assign?Object.assign.bind():function(n){for(var i=1;i{const q=Jr().pages.inputs?.services.map(p=>p.name);return!q||q?.length===0?Ct.gettext(""):`(scheme IN (${q?.join("*, ")})`};class Wn extends Yr.Component{constructor(q){super(q),this.state={error:null}}static getDerivedStateFromError(q){return{error:q}}componentDidCatch(q){this.setState({error:q}),console.error(q)}render(){if(this.state.error){const q=Qr(this.state?.error);return se.jsx(_n,{children:se.jsxs(In,{children:[se.jsxs(Mn,{children:[se.jsxs("div",{children:[se.jsx(Rn,{}),se.jsx(qn,{children:Ct.gettext("Something went wrong")})]}),se.jsx(zn,{children:Ct.gettext("An unexpected error occurred while loading this component")})]}),se.jsxs($n,{children:[q&&se.jsx(An,{defaultOpen:!0,title:Ct.gettext("Error Details"),children:se.jsx(Bn,{children:q})}),se.jsxs(Dn,{children:[se.jsx(Ln,{children:Ct.gettext("Troubleshooting Resources")}),se.jsxs(Kt,{children:[se.jsx(Zt,{children:se.jsx(gr,{})}),se.jsxs(Yt,{children:[se.jsx(Qt,{to:nr({q:`index = _internal source=*splunkd* +( + (component=ModularInputs stderr) + OR component=ExecProcessor ${Nn()}) +) +OR component="PersistentScript"`}).toString(),target:"_blank",openInNewContext:!0,rel:"noopener noreferrer",children:"Error Splunk Search"}),se.jsx(Jt,{children:"Find errors related to your current Technical Add-on inputs and configuration"})]})]}),se.jsxs(Kt,{children:[se.jsx(Zt,{children:se.jsx(xn,{})}),se.jsxs(Yt,{children:[se.jsx(Qt,{to:"https://splunk.github.io/addonfactory-ucc-generator/troubleshooting/",target:"_blank",openInNewContext:!0,rel:"noopener noreferrer",children:"UCC Troubleshooting Guide"}),se.jsx(Jt,{children:"Comprehensive documentation with step-by-step troubleshooting instructions"})]})]}),se.jsxs(Kt,{children:[se.jsx(Zt,{children:se.jsx(gr,{})}),se.jsxs(Yt,{children:[se.jsx(Qt,{to:nr({q:"index = _internal source=*splunkd* ERROR"}).toString(),target:"_blank",openInNewContext:!0,rel:"noopener noreferrer",children:"Search All Splunk Errors"}),se.jsx(Jt,{children:"Search across your entire Splunk instance for related issues"})]})]})]})]})]})})}return this.props.children}}export{vn as C,Wn as E,Sn as H,un as L,an as a,ln as b,tn as c,qr as d,rn as e,en as f,nn as g,on as h,Ar as i,sn as j,kn as k,mn as l,dt as p,Fn as r}; +//# sourceMappingURL=ErrorBoundary.BRI7mTT2.js.map diff --git a/TA-opencti-for-splunk-enterprise/appserver/static/js/build/InputPage.DwL2BDFf.js b/TA-opencti-for-splunk-enterprise/appserver/static/js/build/InputPage.DwL2BDFf.js new file mode 100644 index 0000000..316a470 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/appserver/static/js/build/InputPage.DwL2BDFf.js @@ -0,0 +1,20 @@ +var ut=Object.defineProperty;var ct=(o,m,l)=>m in o?ut(o,m,{enumerable:!0,configurable:!0,writable:!0,value:l}):o[m]=l;var Q=(o,m,l)=>ct(o,typeof m!="symbol"?m+"":m,l);import{r as pt,a as ft,b as dt,c as mt,d as vt,e as gt,f as ht,g as yt,h as bt,i as Pt,j as St,k as Ue,l as P,m as fe,n as Pe,_ as jt,o as Ct,p as i,q as z,C as xt,U as _e,s as Ot,R as Me,v as Ne,t as Fe,u as wt,w as Et,P as ce}from"./entry_page.js";import{P as Tt,s as Se,u as It,a as _t,M as De,b as Y,c as Mt,d as Nt,T as Dt,C as pe,e as Rt,S as kt,f as qt,g as Re,h as ke,i as At,E as Lt,j as Ut,k as Ft}from"./usePlatform.CIF6KydG.js";import{P as $t}from"./toUpper.CHnQCSWs.js";import{M as oe,D as Bt}from"./Menu.BEgRSmJU.js";import{r as Wt}from"./ChevronLeft.CoS9PBTv.js";import{E as Vt}from"./ErrorBoundary.BRI7mTT2.js";import"./Search.BeAZnac9.js";var be={exports:{}},qe;function zt(){return qe||(qe=1,(()=>{var o={};o.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return o.d(e,{a:e}),e},o.d=(t,e)=>{for(var n in e)o.o(e,n)&&!o.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},o.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),o.r=t=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var m={};o.r(m),o.d(m,{Panel:()=>Ce,default:()=>at});const l=pt();var g=o.n(l);const b=ft();var s=o.n(b);const w=dt();var T=o.n(w);const A=mt();var M=o.n(A);const C=vt();var I=o.n(C);const j=gt();var N=o.n(j);const x=St,S=ht(),J=yt;var D=o.n(J);const f=bt();var Z=o.n(f);const G=Pt();var L=D()((0,x.animated)(Z())).withConfig({displayName:"SlidingPanelsStyles__StyledBox",componentId:"su6isq-0"})(["overflow:hidden;position:relative;"]),ee=D()(x.animated.div).withConfig({displayName:"SlidingPanelsStyles__Styled",componentId:"su6isq-1"})(["",";",";"],G.mixins.reset("block"),G.mixins.clearfix());function te(t,e){t&&(typeof t=="function"?t(e):t.current=e)}function E(t){"@babel/helpers - typeof";return E=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},E(t)}function U(){return U=Object.assign?Object.assign.bind():function(t){for(var e=1;e{this.props.handleChange(l)});Q(this,"loadCustomMenu",()=>new Promise(l=>{const g=this.customComponentContext?.[this.props.fileName];if(g?.type==="menu"){const b=g.component;l(b)}else if(this.props.type==="external")jt(()=>import(`${Ct()}/custom/${this.props.fileName}.js`),[],import.meta.url).then(b=>{const s=b.default;l(s)}).catch(b=>{console.error(`[Custom Menu] Error loading custom menu ${b.message}`)});else{const s=fe().meta.name;require([`app/${s}/js/build/custom/${this.props.fileName}`],w=>{l(w)})}}));this.state={loading:!0},this.shouldRender=!0,this.customComponentContext=l.customComponentContext}componentDidMount(){const l=fe();if(l.pages.inputs===void 0)return;const g="groupsMenu"in l.pages.inputs?l.pages.inputs.groupsMenu:void 0,b="menu"in l.pages.inputs?l.pages.inputs.menu:void 0,{services:s}=l.pages.inputs;this.setState({loading:!0}),this.loadCustomMenu().then(w=>{Pe(this.el!==void 0,"Element should be defined");const T=new w(l,this.el,this.setValue);s&&b&&!g&&T.render(),this.setState({loading:!1})})}shouldComponentUpdate(l,g){return!g.loading&&this.shouldRender?(this.shouldRender=!1,!0):!1}render(){return i.jsxs(i.Fragment,{children:[this.state.loading&&z._("Loading..."),i.jsx("span",{ref:l=>{l&&(this.el=l)},style:{visibility:this.state.loading?"hidden":"visible"}})]})}}function Kt(){const o=P.useContext(Tt);if(!o)throw new Error("usePageContext must be used within ");return o}const Qt=Fe.span` + color: ${Ne.brandColorD20}; + font-size: ${Ne.fontSizeSmall}; + font-weight: 500; +`,q="main_panel";function $e({handleRequestOpen:o}){const m=P.useContext(xt),[l,g]=P.useState(q),[b,s]=P.useState("forward"),[w,T]=P.useState(!1),[A,M]=P.useState(!0),{pages:C}=fe(),I=Kt(),{inputs:j}=C;Pe(j);const N="groupsMenu"in j?j.groupsMenu:void 0,x="menu"in j?j.menu:void 0,[S,J]=P.useState(j.services);P.useEffect(()=>{J(j.services.filter(c=>!Se(c.hideForPlatform,I.platform)))},[j.services,I.platform]);const D=["clickAway","escapeKey","offScreen","toggleClick"],f=i.jsx(_e,{id:"addInputBtn",label:z._("Create New Input"),isMenu:!0});P.useEffect(()=>{A||(T(!1),M(!0))},[A]);const Z=({reason:c})=>{T(!D.includes(c))},G=()=>{T(!0)},L=c=>{const{service:p,input:v}=c;o({serviceName:p,input:v})},ee=(c,p)=>c.map(v=>v?.hasSubmenu?i.jsx(oe.Item,{hasSubmenu:!0,onClick:()=>{g(v.name),s("forward")},children:v.title},v.name):i.jsxs(oe.Item,{onClick:()=>{o({serviceName:v.name,groupName:p}),M(!1)},children:[v.title,i.jsxs(Qt,{children:[" ",v.subTitle]})]},v.name)),te=()=>i.jsxs(i.Fragment,{children:[i.jsx(oe.Item,{startAdornment:i.jsx(Ht,{}),onClick:()=>{g(q),s("backward")},children:"Back"}),i.jsx(oe.Divider,{})]}),E=c=>Object.keys(c).map(p=>i.jsx(Ae.Panel,{panelId:p,children:i.jsxs(oe,{children:[p!==q&&te(),ee(c[p],p)]})},p)),U=P.useMemo(()=>{const c={[q]:[]};return N?N.forEach(p=>{if(p?.groupServices)c[p.groupName]=[],p.groupServices.forEach(v=>{const O=S.find(F=>F.name===v);O&&c[p.groupName].push({name:v,hasSubmenu:!1,title:O?.title||"",subTitle:O?.subTitle})}),c[p.groupName].length>0&&c[q].push({name:p.groupName,title:p.groupTitle,hasSubmenu:!0});else{const v=S.find(O=>O.name===p.groupName);v&&c[q].push({name:p.groupName,title:p.groupTitle,subTitle:v?.subTitle,hasSubmenu:!1})}}):c[q]=S.map(p=>({name:p.name,title:p.title,subTitle:p.subTitle,hasSubmenu:!1})),E(c)},[S]),X=()=>i.jsx(Bt,{toggle:f,open:w,onRequestClose:Z,onRequestOpen:G,children:i.jsx(Ae,{activePanelId:l,transition:b,style:{width:"210px"},children:U})}),H=()=>i.jsx(_e,{label:Ot(100),id:"addInputBtn",onClick:()=>{o({serviceName:S[0].name})}}),u=c=>i.jsx(i.Fragment,{children:Me.createElement(Le,{fileName:c.src,type:c.type,handleChange:L,customComponentContext:m})}),y=c=>i.jsxs(i.Fragment,{children:[Me.createElement(Le,{fileName:c.src,type:c.type,handleChange:L,customComponentContext:m}),S.length===1?H():X()]});return S&&!x?.src?S.length===1?H():X():S&&x?.src&&N?y(x):(Pe(x),u(x))}$e.propTypes={handleRequestOpen:$t.func};const Yt=Fe(pe.Row)` + padding: 5px 0px; + + .title_menu_column { + width: auto !important; + } + + .page_subtitle { + min-height: 20px; + } + + .dropdown { + text-align: right; + } +`;function Jt(o){return o!==void 0&&"description"in o}function Zt(o){return o!==void 0&&"table"in o}function un(){const[o,m]=P.useState({open:!1}),l=fe(),g=It(l,"inputs"),b=l.pages.inputs;let s=[],w,T,A,M;b&&(Zt(b)?({services:s,title:w,table:T,description:A,subDescription:M}=b,s=s.filter(u=>!Se(u.hideForPlatform,g))):({services:s,title:w}=b,s=s.filter(u=>!Se(u.hideForPlatform,g))));const C=!T,[I,j]=P.useState(s[0].name),N=s.find(u=>u.name===I),x=Jt(N),S=[De,Y,Mt],J=s.map(u=>u.name),D=wt(),f=_t();P.useEffect(()=>{Z(),G()},[Et().search]);const Z=()=>{const u=s.find(y=>y.name===f.get("service"));f&&u&&S.includes(f.get("action")||"")&&!o.open?f.get("action")!==Y&&o.stanzaName?m({...o,open:!0,isInputPageStyle:!0,serviceName:f.get("service")||"",mode:f.get("action")||""}):m({...o,open:!0,isInputPageStyle:!0,serviceName:f.get("service")||"",formLabel:`Create ${u?.title}`,mode:Y}):(!f.get("service")||!f.get("action"))&&o.open&&o.isInputPageStyle&&m({...o,open:!1})},G=()=>{f&&J.includes(f.get("service")||"")&&j(f.get("service")||"")},L=({serviceName:u,groupName:y,input:c})=>{const p=s.find($=>$.name===u),v=p?.title,O=p?.formTitle,F=p?.style===Ft;if(m({...o,open:!0,serviceName:u,mode:Y,formLabel:O?`Add ${O}`:`Add ${v}`,isInputPageStyle:F,groupName:y}),F){f.set("service",u),f.set("action",Y);const B=c||(y&&y!==q?y:null)||u;B?f.set("input",B):f.delete("input"),D({search:f.toString()})}},ee=()=>{m({...o,open:!1})},te=()=>o.serviceName&&i.jsx(Ut,{page:ce,open:o.open,handleRequestClose:ee,returnFocus:()=>{},serviceName:o.serviceName,mode:Y,formLabel:o.formLabel,groupName:o.groupName}),E=(u,y)=>{const c=s.find(v=>v.name===u.serviceName),p=c?.formTitle||c?.title;m({...o,open:!0,isInputPageStyle:!0,serviceName:u.serviceName,stanzaName:u.name,formLabel:y===De?`Clone ${p}`:`Update ${p}`,mode:y}),f.set("service",u.serviceName),f.set("action",y),D({search:f.toString()})},U=()=>{m({...o,open:!1}),C||f.delete("service"),f.delete("action"),D({search:f.toString()})},X=()=>o.serviceName&&o.mode?i.jsx(Lt,{handleRequestClose:U,serviceName:o.serviceName,stanzaName:o.stanzaName,mode:o.mode,formLabel:o.formLabel,page:ce,groupName:o.groupName}):null,H=P.useCallback((u,{selectedTabId:y})=>{y&&(j(y),f.delete("action"),f.set("service",y),D({search:f.toString()}))},[I]);return i.jsx(Vt,{children:i.jsx(Nt,{platform:g,children:i.jsxs(Dt,{children:[o.isInputPageStyle&&o.open?X():null,i.jsxs("div",{style:o.isInputPageStyle&&o.open?{display:"none"}:{display:"block"},children:[i.jsx(pe,{gutter:8,children:i.jsxs(Yt,{children:[i.jsxs(pe.Column,{className:C?"title_menu_column":"",span:9,children:[i.jsx(Rt,{children:C?z._(N?.title||""):z._(w||"")}),i.jsx(kt,{className:C?"pageSubtitle":void 0,children:C?z._(x?N?.description:""):z._(A||"")}),i.jsx(qt,{text:M?.text||"",links:M?.links})]}),i.jsx(pe.Column,{className:C?"title_menu_column":"dropdown",span:3,children:!C&&i.jsx($e,{handleRequestOpen:L})})]})}),C?i.jsxs(i.Fragment,{children:[i.jsx(Re,{activeTabId:I,onChange:H,children:s.map(u=>i.jsx(Re.Tab,{label:z._(u.title),tabId:u.name},u.name))}),s.map(u=>i.jsx("div",{style:u.name!==I?{display:"none"}:{display:"block"},id:`${u.name}Tab`,children:i.jsx(ke,{page:ce,serviceName:u.name,handleRequestModalOpen:()=>L({serviceName:u.name}),handleOpenPageStyleDialog:E})},u.name))]}):i.jsx(ke,{page:ce,handleOpenPageStyleDialog:E,displayActionBtnAllRows:!0}),i.jsx(At,{position:"top-right"}),!o.isInputPageStyle&&o.open?te():null]})]})})})}export{un as default}; +//# sourceMappingURL=InputPage.DwL2BDFf.js.map diff --git a/TA-opencti-for-splunk-enterprise/appserver/static/js/build/Menu.BEgRSmJU.js b/TA-opencti-for-splunk-enterprise/appserver/static/js/build/Menu.BEgRSmJU.js new file mode 100644 index 0000000..69f6e37 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/appserver/static/js/build/Menu.BEgRSmJU.js @@ -0,0 +1,2 @@ +import{k as r,al as o}from"./entry_page.js";import{d as e}from"./Search.BeAZnac9.js";var s=o();const n=r(s);var t=e();const u=r(t);export{n as D,u as M}; +//# sourceMappingURL=Menu.BEgRSmJU.js.map diff --git a/TA-opencti-for-splunk-enterprise/appserver/static/js/build/Search.BeAZnac9.js b/TA-opencti-for-splunk-enterprise/appserver/static/js/build/Search.BeAZnac9.js new file mode 100644 index 0000000..7f3f7d6 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/appserver/static/js/build/Search.BeAZnac9.js @@ -0,0 +1,10 @@ +import{r as Br,a4 as nt,a5 as ot,a3 as Yr,a6 as Kt,a as Gr,aC as fn,ah as at,ac as it,i as Jr,g as Qr,h as lt,am as Gt,an as Ut,f as vn,c as st,d as et,a9 as Xt,ab as mn,j as bn,ap as Zt,aa as kt,aS as Yt,aj as hn,G as yn,I as gn,b0 as xn,b1 as wn,av as Sn,X as Cn,a1 as Pt,a8 as On,aT as Jt,az as Qt,aA as en,ak as rn,aw as tn,b2 as kn,k as Pn}from"./entry_page.js";import{M as jn,J as nn,t as En,F as In}from"./toUpper.CHnQCSWs.js";import{f as Tn,c as _n,e as Mn,b as An,a as Rn}from"./ErrorBoundary.BRI7mTT2.js";var dt={exports:{}},pt={exports:{}},_t;function Ln(){return _t||(_t=1,(()=>{var l={};l.n=n=>{var y=n&&n.__esModule?()=>n.default:()=>n;return l.d(y,{a:y}),y},l.d=(n,y)=>{for(var B in y)l.o(y,B)&&!l.o(n,B)&&Object.defineProperty(n,B,{enumerable:!0,get:y[B]})},l.o=(n,y)=>Object.prototype.hasOwnProperty.call(n,y),l.r=n=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})};var le={};l.r(le),l.d(le,{default:()=>Ke});const R=Br();var d=l.n(R);const j=nt();var t=l.n(j);const re=ot();function G(n,y){if(n==null)return{};var B,W,ce=Te(n,y);if(Object.getOwnPropertySymbols){var ye=Object.getOwnPropertySymbols(n);for(W=0;W=0},ue=function(y){return y==="default"||y&&!H(y)?"outlined":y},h=function(y){var B=y.children,W=y.variant,ce=W===void 0?"default":W,ye=G(y,["children","variant"]),Z=ue(ce),Y="checkmark-".concat(Z),C=(0,R.useContext)(re.IconContext),ne=U.get(Z);if(C&&ne){var Le=C.toRender,Ge=C.addIcon;if(Ge(Y,ne()),!Le)return null}return d().createElement(t(),ye,B,C?d().createElement("use",{href:"#".concat(Y)}):!!ne&&ne())};const Ke=h;pt.exports=le})()),pt.exports}var ft={exports:{}},Mt;function on(){return Mt||(Mt=1,(()=>{var l={};l.n=U=>{var N=U&&U.__esModule?()=>U.default:()=>U;return l.d(N,{a:N}),N},l.d=(U,N)=>{for(var H in N)l.o(N,H)&&!l.o(U,H)&&Object.defineProperty(U,H,{enumerable:!0,get:N[H]})},l.o=(U,N)=>Object.prototype.hasOwnProperty.call(U,N),l.r=U=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(U,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(U,"__esModule",{value:!0})};var le={};l.r(le),l.d(le,{default:()=>Te});const R=Br();var d=l.n(R);const j=Yr(),t=Kt();var re=l.n(t);function G(){return G=Object.assign?Object.assign.bind():function(U){for(var N=1;N{var l={};l.n=k=>{var T=k&&k.__esModule?()=>k.default:()=>k;return l.d(T,{a:T}),T},l.d=(k,T)=>{for(var u in T)l.o(T,u)&&!l.o(k,u)&&Object.defineProperty(k,u,{enumerable:!0,get:T[u]})},l.o=(k,T)=>Object.prototype.hasOwnProperty.call(k,T),l.r=k=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(k,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(k,"__esModule",{value:!0})};var le={};l.r(le),l.d(le,{default:()=>Rr});const R=Br();var d=l.n(R);const j=Gr();var t=l.n(j);const re=fn();var G=l.n(re);const Te=at();var U=l.n(Te);const N=it(),H=on();var ue=l.n(H);const h=Jr();function Ke(){var k=(0,h.useSplunkTheme)(),T=k.family;return T==="enterprise"?d().createElement(ue(),{inline:!1,size:"12px",screenReaderText:null,hideDefaultTooltip:!0,style:{marginTop:"1px"}}):d().createElement("svg",{width:"12",height:"12",viewBox:"-1 -2 11 10",style:{display:"block"},xmlns:"http://www.w3.org/2000/svg"},d().createElement("path",{d:"M8.70711 0.292893C9.09763 0.683417 9.09763 1.31658 8.70711 1.70711L4.32132 6.0929C3.73559 6.67862 2.78596 6.67869 2.20015 6.09305L0.292997 4.18646C-0.0975845 3.79599 -0.0976776 3.16282 0.292789 2.77224C0.683256 2.38166 1.31642 2.38157 1.707 2.77203L3.26061 4.32518L7.29289 0.292893C7.68342 -0.0976311 8.31658 -0.0976311 8.70711 0.292893Z",fill:"currentColor"}))}const n=Qr;var y=l.n(n);const B=lt();var W=l.n(B);const ce=Gt();var ye=l.n(ce),Z="18px",Y="20px",C=y()(W()).withConfig({displayName:"SwitchStyles__StyledBox",componentId:"sc-844ieu-0"})(["display:inline;position:relative;color:",";flex-shrink:0;",";[data-inline] + &{margin-left:",";}"],(0,h.pickVariant)("$switchState",{error:{enterprise:h.variables.errorColor,prisma:h.variables.accentColorNegative},disabled:{enterprise:h.variables.textDisabledColor,prisma:h.variables.contentColorDisabled}}),(0,h.pick)({enterprise:(0,n.css)(["padding:calc(("," - ",") / 2) 0;"],h.variables.inputHeight,Z),prisma:{compact:(0,n.css)(["padding:6px 0;"]),comfortable:(0,n.css)(["padding:10px 0;"])}}),h.variables.spacingSmall),ne=(0,n.css)([""," position:relative;width:",";height:",";line-height:",";padding:2px;border-radius:2px;cursor:pointer;flex:0 0 auto;border-color:",";border-style:solid;border-width:",";color:",";"," &:not([disabled]){&:focus{box-shadow:",";}","}&[disabled]{cursor:not-allowed;border-color:",";","}"],h.mixins.reset("inline"),Z,Z,Z,(0,h.pick)({enterprise:(0,h.pick)({light:h.variables.gray45,dark:h.variables.gray80}),prisma:h.variables.contentColorMuted}),(0,h.pick)({enterprise:"1px",prisma:"2px"}),(0,h.pick)({enterprise:(0,h.pick)({light:h.variables.gray45,dark:h.variables.gray80}),prisma:h.variables.white}),(0,h.pick)({prisma:(0,n.css)(["top:1px;padding:1px;border-radius:3px;",""],function(k){var T=k.$interactive;return T&&(0,n.css)(["&:not([disabled]):not(:focus):hover{box-shadow:0 0 0 2px ",",0 0 0 5px ",";}"],h.variables.backgroundColorPage,h.variables.interactiveColorOverlayHover)})}),h.variables.focusShadow,function(k){var T=k.$error,u=k.$selected;return u&&!T?(0,h.pick)({prisma:(0,n.css)(["background-color:",";border-color:",";"],h.variables.interactiveColorPrimary,h.variables.interactiveColorPrimary)}):!u&&T?(0,n.css)(["border-color:",";"],(0,h.pick)({enterprise:{light:h.variables.errorColorL30,dark:h.variables.accentColorNegative},prisma:h.variables.accentColorNegative})):u&&T?(0,n.css)(["border-color:",";",""],h.variables.accentColorNegative,(0,h.pick)({enterprise:(0,n.css)(["color:",";"],h.variables.accentColorNegative),prisma:(0,n.css)(["background-color:",";"],h.variables.accentColorNegative)})):(0,h.pick)({prisma:(0,n.css)(["&:hover{border-color:",";}"],h.variables.contentColorDefault)})},(0,h.pick)({enterprise:{light:h.variables.borderColor,dark:h.variables.gray45},prisma:h.variables.contentColorDisabled}),function(k){var T=k.$selected;return T&&(0,h.pick)({prisma:(0,n.css)(["border-color:transparent;background-color:",";"],h.variables.interactiveColorBackgroundDisabled)})}),Le=y()(ye()).withConfig({displayName:"SwitchStyles__StyledCheckboxClickable",componentId:"sc-844ieu-1"})(["",""],ne),Ge=y().span.withConfig({displayName:"SwitchStyles__StyledCheckboxSpan",componentId:"sc-844ieu-2"})(["",""],ne),$=y().div.withConfig({displayName:"SwitchStyles__StyledSome",componentId:"sc-844ieu-3"})(["display:block;margin:",";"," background:currentColor;border-radius:1px;"],(0,h.pick)({enterprise:"2px",prisma:"5px 2px"}),(0,h.pick)({enterprise:(0,n.css)(["height:calc("," - 10px);width:calc("," - 10px);"],Z,Z),prisma:(0,n.css)(["height:2px;width:8px;"])})),tr=y().div.withConfig({displayName:"SwitchStyles__StyledIndicator",componentId:"sc-844ieu-4"})(["background-color:",";border-color:",";box-sizing:border-box;border-radius:50%;border-width:1px;position:absolute;left:-1px;top:-1px;",";"," "," ",""],(0,h.pick)({enterprise:{light:h.variables.gray98,dark:h.variables.gray80},prisma:h.variables.white}),(0,h.pick)({enterprise:{light:h.variables.gray60,dark:h.variables.borderColor},prisma:h.variables.transparent}),function(k){var T=k.$delay;return T&&(0,n.css)(["transition:left ",";"],T)},(0,h.pick)({enterprise:(0,n.css)(["width:",";height:",";border-style:solid;"],Z,Z),prisma:(0,n.css)(["height:16px;width:16px;margin:2px;border-style:none;box-shadow:",";"],h.variables.embossShadow)}),function(k){var T=k.$disabled;return T&&(0,n.css)(["border-color:",";border-style:solid;background-color:",";"],(0,h.pick)({enterprise:{light:h.mixins.colorWithAlpha(h.variables.borderLightColor,.8),dark:h.variables.gray22},prisma:h.variables.transparent}),(0,h.pick)({enterprise:{dark:h.variables.gray45},prisma:h.mixins.colorWithAlpha(h.variables.white,.3)}))},function(k){var T=k.$selected;return T&&(0,n.css)(["",";"],(0,h.pick)({enterprise:(0,n.css)(["left:calc(100% - "," + 1px);"],Z),prisma:(0,n.css)(["left:calc(100% - "," + 1px);"],Y)}))}),Ue=y().div.withConfig({displayName:"SwitchStyles__StyledToggleOutline",componentId:"sc-844ieu-5"})(["position:absolute;border:1px solid transparent;",";",";top:-1px;right:-1px;bottom:-1px;left:-1px;z-index:1;"," ",""],function(k){var T=k.$delay;return T&&(0,n.css)(["transition:border-color ",";"],T)},(0,h.pick)({enterprise:(0,n.css)(["border-radius:calc("," * 0.5);"],Z),prisma:"border-radius: 15px"}),(0,h.pick)({prisma:(0,n.css)(["margin:-6px;"])}),function(k){var T=k.$error;return T&&(0,n.css)(["border-color:",";"],(0,h.pick)({enterprise:h.variables.errorColor,prisma:h.variables.transparent}))}),ae=(0,n.css)(["position:relative;"," border-radius:",";transition:background-color ",";flex:0 0 auto;border:1px solid ",";"," &:not([disabled]){&:focus{outline:0;",";","}&:hover ","{background-color:",";}&:hover ","{background-color:",";}}&[disabled]{cursor:not-allowed;border:1px solid ",";background-color:",";"," ","}",";",""],(0,h.pick)({enterprise:(0,h.pick)({light:(0,n.css)(["width:calc("," * 2);background-color:",";height:",";"],Z,h.variables.gray98,Z),dark:(0,n.css)(["width:calc("," * 2);background-color:",";height:",";"],Z,h.variables.gray45,Z)}),prisma:(0,n.css)(["width:32px;background-color:",";height:",";top:1px;"],h.variables.contentColorMuted,Y)}),Z,function(k){return k.$delay},(0,h.pick)({enterprise:{light:h.variables.gray60,dark:h.variables.borderColor},prisma:h.variables.transparent}),(0,h.pick)({enterprise:(0,n.css)(["box-shadow:inset 0 2px 0 rgba(0,0,0,0.1);"])}),(0,h.pick)({enterprise:(0,n.css)(["box-shadow:",",inset 0 2px 0 rgba(0,0,0,0.1);"],h.variables.focusShadow),prisma:(0,n.css)(["box-shadow:",";"],h.variables.focusShadow)}),(0,h.pick)({enterprise:(0,n.css)(["> ","{border-color:",";}"],Ue,h.mixins.colorWithAlpha(h.variables.focusColor,.8))}),tr,(0,h.pick)({enterprise:(0,h.pick)({light:h.variables.gray96,dark:"#b1bcc7"}),prisma:h.variables.white}),Ue,(0,h.pick)({prisma:h.variables.interactiveColorOverlayHover}),(0,h.pick)({enterprise:{light:h.variables.borderLightColor,dark:h.variables.borderColor},prisma:h.variables.transparent}),(0,h.pick)({enterprise:{light:h.variables.gray96,dark:h.variables.gray30},prisma:h.variables.interactiveColorBackgroundDisabled}),(0,h.pick)({enterprise:(0,n.css)(["box-shadow:inset 0 2px 0 rgba(0,0,0,0.06);"])}),function(k){var T=k.$selected;return T&&(0,n.css)(["border-color:transparent;background-color:",";"],(0,h.pick)({enterprise:(0,h.pick)({light:h.variables.accentColorL40,dark:h.variables.accentColorD20}),prisma:h.mixins.colorWithAlpha(h.variables.interactiveColorPrimary,.7)}))},function(k){var T=k.$selected;return T&&(0,n.css)(["border-color:",";background-color:",";",""],(0,h.pick)({enterprise:h.variables.accentColorL10,prisma:h.variables.transparent}),(0,h.pick)({enterprise:h.variables.accentColorL10,prisma:h.variables.interactiveColorPrimary}),(0,h.pick)({prisma:(0,n.css)(["box-shadow:",";"],h.variables.embossShadow)}))},function(k){var T=k.$error;return T&&(0,n.css)(["border-color:",";",";"],(0,h.pick)({enterprise:h.variables.errorColor,prisma:h.variables.transparent}),(0,h.pick)({prisma:(0,n.css)(["background-color:",";"],h.variables.accentColorNegative)}))}),De=y()(ye()).withConfig({displayName:"SwitchStyles__StyledToggleClickable",componentId:"sc-844ieu-6"})(["",""],ae),ir=y().span.withConfig({displayName:"SwitchStyles__StyledToggleSpan",componentId:"sc-844ieu-7"})(["",""],ae),wr=y().label.withConfig({displayName:"SwitchStyles__StyledLabel",componentId:"sc-844ieu-8"})([""," flex:1 1 auto;padding-left:",";color:inherit;",";"],h.mixins.reset("inline-block"),(0,h.pick)({enterprise:(0,n.css)(["",";"],h.variables.spacingXSmall),prisma:"8px"}),function(k){var T=k.$disabled;return!T&&(0,n.css)(["cursor:pointer;"])});function lr(k){"@babel/helpers - typeof";return lr=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(T){return typeof T}:function(T){return T&&typeof Symbol=="function"&&T.constructor===Symbol&&T!==Symbol.prototype?"symbol":typeof T},lr(k)}function fr(){return fr=Object.assign?Object.assign.bind():function(k){for(var T=1;T{var l={1558:(j,t,re)=>{re.d(t,{default:()=>U});var G=re(9497);function Te(N){var H=(0,G.useRef)();return(0,G.useEffect)(function(){H.current=N},[N]),H.current}const U=Te},9497:j=>{j.exports=Br()}},le={};function R(j){var t=le[j];if(t!==void 0)return t.exports;var re=le[j]={exports:{}};return l[j](re,re.exports,R),re.exports}R.n=j=>{var t=j&&j.__esModule?()=>j.default:()=>j;return R.d(t,{a:t}),t},R.d=(j,t)=>{for(var re in t)R.o(t,re)&&!R.o(j,re)&&Object.defineProperty(j,re,{enumerable:!0,get:t[re]})},R.o=(j,t)=>Object.prototype.hasOwnProperty.call(j,t),R.r=j=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(j,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(j,"__esModule",{value:!0})};var d={};(()=>{R.r(d),R.d(d,{default:()=>T});var j=R(9497),t=R.n(j);const re=Gr();var G=R.n(re);const Te=Ut();var U=R.n(Te);const N=vn(),H=Qr;var ue=R.n(H);const h=Jr(),Ke=st();var n=R.n(Ke);const y=et();var B=R.n(y);const W=bn,ce=Xt();var ye=R.n(ce);const Z=mn();function Y(u,w){u&&(typeof u=="function"?u(w):u.current=w)}var C=R(1558);function ne(){return ne=Object.assign?Object.assign.bind():function(u){for(var w=1;wu.length)&&(w=u.length);for(var M=0,D=Array(w);MV&&(I.scrollLeft=V,p.stopPropagation(),p.preventDefault())}if(I.clientHeight!==I.scrollHeight){if(p.deltaY<0&&I.scrollTopg&&(I.scrollTop=g,p.stopPropagation(),p.preventDefault())}}},[Ee]),jr=(0,j.useCallback)(function(p){Cr(p),Y(m,p)},[m]),br=(0,j.useCallback)(function(){Ce(document.body.style.overflowX),Ne(document.body.style.overflowY),document.body.style.overflowX="hidden",document.body.style.overflowY="hidden"},[]),Or=(0,j.useCallback)(function(){document.body.style.overflowX=ve,document.body.style.overflowY=je},[ve,je]),v=W.animated[i];return t().createElement(t().Fragment,null,t().createElement(v,ne({},B()(S,n()(wr)),{ref:jr,onMouseEnter:F==="window"?br:void 0,onMouseLeave:F==="window"?Or:void 0,onScroll:L,scrollTop:b,scrollLeft:x}),t().createElement(Z.ScrollContainerProvider,{value:Ee},w)),F===!0&&Ee&&t().createElement(ye(),{target:Ee,eventType:"wheel",listener:Qe,options:lr}))}fr.propTypes=wr;const Pr=fr;var Er=ue()(Pr).withConfig({displayName:"ScrollStyles__StyledInner",componentId:"sc-1xspttf-0"})(["",";overflow:auto;overflow-y:auto;overflow-x:hidden;"],h.mixins.reset("block"));function te(u){"@babel/helpers - typeof";return te=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(w){return typeof w}:function(w){return w&&typeof Symbol=="function"&&w.constructor===Symbol&&w!==Symbol.prototype?"symbol":typeof w},te(u)}function ke(){return ke=Object.assign?Object.assign.bind():function(u){for(var w=1;w{var l={};l.n=c=>{var f=c&&c.__esModule?()=>c.default:()=>c;return l.d(f,{a:f}),f},l.d=(c,f)=>{for(var O in f)l.o(f,O)&&!l.o(c,O)&&Object.defineProperty(c,O,{enumerable:!0,get:f[O]})},l.o=(c,f)=>Object.prototype.hasOwnProperty.call(c,f),l.r=c=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(c,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(c,"__esModule",{value:!0})};var le={};l.r(le),l.d(le,{Divider:()=>Y,Heading:()=>xr,Item:()=>se,MenuContext:()=>W,default:()=>Ir});const R=Br();var d=l.n(R);const j=Gr();var t=l.n(j);const re=et();var G=l.n(re);const Te=Zt(),U=kt(),N=Yt(),H=Qr;var ue=l.n(H);const h=hn();var Ke=l.n(h);const n=Jr();var y=ue()(Ke()).withConfig({displayName:"DividerStyles__Styled",componentId:"l3zfh3-0"})(["",""],(0,n.pick)({prisma:{comfortable:(0,H.css)(["margin:8px 0;"]),compact:(0,H.css)(["margin:6px 0;"])}})),B=(0,R.createContext)({role:"menu",preventFocus:!1});const W=B;function ce(){return ce=Object.assign?Object.assign.bind():function(c){for(var f=1;f svg{width:20px;height:20px;}"],n.variables.contentColorMuted),enterprise:(0,H.css)(["transform:translateY(-1px);"])})),Q=ue()(Sr()).withConfig({displayName:"ItemStyles__StyledClickable",componentId:"sc-4kc053-4"})(["display:block;position:relative;cursor:pointer;color:",";word-wrap:break-word;max-width:100%;width:100%;padding:",";"," "," "," &:not([disabled],[aria-disabled='true']){&:hover{background:",";","}"," ","}&:focus{outline:0;box-shadow:",";","}&[disabled],&[aria-disabled='true']{color:",";",",","{color:inherit;}","{color:",";}","}",""],(0,n.pick)({prisma:n.variables.contentColorActive,enterprise:{dark:n.variables.gray96,light:n.variables.gray22}}),(0,n.pick)({prisma:{comfortable:"10px 16px",compact:"6px 16px"},enterprise:"6px 10px"}),function(c){var f=c.$isSelectable,O=c.$selectableAppearance;return f&&(0,n.pick)({prisma:(0,H.css)(["padding-right:44px;",""],function(){return O==="checkbox"&&"padding-left: 42px;"}),enterprise:(0,H.css)(["padding-right:10px;padding-left:",";"],function(){return O==="checkbox"?"32px":"28px"})})},function(c){var f=c.$active,O=c.$preventFocus;return f&&!O&&(0,H.css)(["box-shadow:",";"],n.variables.focusShadowInset)},function(c){var f=c.$active;return f&&(0,H.css)(["background:",";font-weight:",";"],(0,n.pick)({enterprise:{light:n.variables.gray92,dark:n.variables.gray22},prisma:n.variables.neutral100}),n.variables.fontWeightBold)},(0,n.pick)({prisma:n.variables.interactiveColorOverlayHover,enterprise:n.variables.backgroundColorHover}),function(c){var f=c.$selected;return f&&(0,n.pick)({prisma:(0,H.css)(["background:",";"],n.mixins.overlayColors(n.variables.interactiveColorOverlaySelected,n.variables.interactiveColorOverlayHover))})},(0,n.pick)({prisma:(0,H.css)(["&:active{background:",";}"],n.variables.interactiveColorOverlayActive)}),function(c){var f=c.$selected;return f&&(0,n.pick)({prisma:(0,H.css)(["background:",";&:active{background:",";}"],n.variables.interactiveColorOverlaySelected,n.mixins.overlayColors(n.variables.interactiveColorOverlaySelected,n.variables.interactiveColorOverlayActive))})},n.variables.focusShadowInset,(0,n.pick)({prisma:(0,H.css)(["background:",";"],n.variables.interactiveColorOverlayHover)}),(0,n.pick)({enterprise:{light:n.variables.gray45,dark:n.variables.contentColorDisabled},prisma:n.variables.contentColorDisabled}),u,w,M,(0,n.pick)({prisma:n.variables.contentColorDisabled,enterprise:n.variables.gray80}),(0,n.pick)({prisma:(0,H.css)(["& > * > ","{color:",";}"],D,n.variables.contentColorDisabled)}),function(c){var f=c.$selected;return f&&(0,n.pick)({prisma:(0,H.css)(["","{color:",";}"],D,n.variables.contentColorActive)})}),de=ue()(k()).withConfig({displayName:"ItemStyles__StyledSwitch",componentId:"sc-4kc053-5"})(["position:absolute;left:",";top:",";"],(0,n.pick)({prisma:"16px",enterprise:"8px"}),(0,n.pick)({prisma:"0px",enterprise:{comfortable:"-1px",compact:"2px"}})),m=ue().span.withConfig({displayName:"ItemStyles__StyledInnerWrapper",componentId:"sc-4kc053-6"})(["display:flex;align-items:flex-start;"]),x=ue().span.withConfig({displayName:"ItemStyles__StyledTitleAndDescriptionWrapper",componentId:"sc-4kc053-7"})(["display:flex;flex-wrap:wrap;flex-direction:column;max-width:100%;width:100%;align-self:center;word-break:break-word;white-space:normal;",""],function(c){var f=c.$truncate;return f&&(0,H.css)(["white-space:nowrap;overflow:hidden;text-overflow:ellipsis;"])}),L=ue().div.withConfig({displayName:"ItemStyles__StyledLabel",componentId:"sc-4kc053-8"})(["overflow:inherit;white-space:inherit;text-overflow:inherit;max-width:100%;min-height:20px;",""],function(c){var f=c.$truncate;return f&&(0,H.css)(["display:block;clear:both;"])}),F=ue().span.withConfig({displayName:"ItemStyles__StyledMatch",componentId:"sc-4kc053-9"})(["border-bottom:1px solid ",";"],(0,n.pick)({prisma:n.variables.contentColorActive,enterprise:{dark:n.variables.gray96,light:n.variables.gray45}})),q=ue().span.withConfig({displayName:"ItemStyles__StyledSubmenu",componentId:"sc-4kc053-10"})(["float:right;padding-left:",";color:",";",""],n.variables.spacingSmall,(0,n.pick)({prisma:"inherit",enterprise:n.variables.textGray}),(0,n.pick)({prisma:(0,H.css)(["& > svg{width:20px;height:20px;}"])}));const i=xn();var b=l.n(i);const S=wn();var E=l.n(S),oe=(0,H.css)(["width:0.8em;height:0.8em;vertical-align:baseline;"]),ve=ue()(E()).withConfig({displayName:"External__StyledEnterprise",componentId:"sc-1turs2s-0"})([""," margin:0 0 0 3px;"],oe),Ce=ue()(b()).withConfig({displayName:"External__StyledPrisma",componentId:"sc-1turs2s-1"})([""," margin:0 0 0 4px;"],oe);function Me(){var c=(0,n.useSplunkTheme)(),f=c.isEnterprise,O=c.isCompact,A=O?"20px":"24px";return f?d().createElement(ve,{screenReaderText:null}):d().createElement(Ce,{height:A,width:A})}const ie=Me;function je(c,f){c&&(typeof c=="function"?c(f):c.current=f)}var Ne=function(f){if(f){var O=f.offsetParent;O&&(O.scrollTop+O.clientHeightf.offsetTop&&(O.scrollTop=f.offsetTop))}};function pe(c){"@babel/helpers - typeof";return pe=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(f){return typeof f}:function(f){return f&&typeof Symbol=="function"&&f.constructor===Symbol&&f!==Symbol.prototype?"symbol":typeof f},pe(c)}function fe(){return fe=Object.assign?Object.assign.bind():function(c){for(var f=1;fWr+1){var $r=qr[Wr+1];if($r.type.as==="Heading"||$r.type.as==="Divider")return He}return(pr.type.as==="Divider"||pr.type.as==="Heading")&&Wr===qr.length-1||He.push(pr),He},[]),er=(0,R.useCallback)(function(He){Oe.current=He,je(O,He)},[O]),we=ar(qe),Re=(0,R.useCallback)(function(He){if(!He.nativeEvent.metaKey){var pr=Dr(He),Wr=pr==="tab"||pr==="tabShift",qr=pr==="enter";!qr&&(we.enableTab||!Wr)&&He.preventDefault();var $r=Oe.current,Hr=[];$r&&(Hr=(0,N.getSortedTabbableElements)($r,{ignoreTabIndex:!0}));var Vr=He?.target instanceof Element?He.target:null,Ur=$r?.querySelector(":focus"),zr=Vr||Ur,Kr=zr?Hr.indexOf(zr):-1;(0,N.handleFocus)(pr,Hr,Kr,we)}},[we]),rr=function(){return{role:"menu",preventFocus:A==="never"}},Nr=A==="normal"||A==="never"?void 0:Re,Tr={"data-test":"menu",onKeyDown:Nr,role:ee};return ge?d().createElement(ur,dr({},Tr,{elementRef:er,stopScrollPropagation:!0},G()(Ie,"tagName")),Xe):d().createElement(hr,dr({},Tr,{ref:er},Ie),d().createElement(W.Provider,{value:rr()},Xe))}yr.propTypes=kr,yr.Item=se,yr.Divider=Y,yr.Heading=xr;const Ir=yr;dt.exports=le})()),dt.exports}var bt={exports:{}},Dt;function ln(){return Dt||(Dt=1,(()=>{var l={};l.n=m=>{var x=m&&m.__esModule?()=>m.default:()=>m;return l.d(x,{a:x}),x},l.d=(m,x)=>{for(var L in x)l.o(x,L)&&!l.o(m,L)&&Object.defineProperty(m,L,{enumerable:!0,get:x[L]})},l.o=(m,x)=>Object.prototype.hasOwnProperty.call(m,x),l.r=m=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(m,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(m,"__esModule",{value:!0})};var le={};l.r(le),l.d(le,{ControlGroupContext:()=>ae,default:()=>de});const R=Br();var d=l.n(R);const j=Gr();var t=l.n(j);const re=Sn();var G=l.n(re);const Te=Ut();var U=l.n(Te);const N=Jr(),H=it(),ue=lt();var h=l.n(ue);const Ke=at();var n=l.n(Ke);const y=Qr;var B=l.n(y);const W=An();var ce=l.n(W),ye=B()(h()).withConfig({displayName:"ControlGroupStyles__StyledBox",componentId:"wjnyif-0"})([""," "," max-width:600px;margin-bottom:",";"," color:",";",""],N.mixins.reset("block"),N.mixins.clearfix(),(0,N.pick)({enterprise:N.variables.spacingMedium,prisma:{comfortable:N.variables.spacingLarge,compact:N.variables.spacingMedium}}),(0,N.pick)({prisma:{comfortable:(0,y.css)(["&:first-child{margin-top:",";}&:last-child{margin-bottom:",";}"],N.variables.spacingMedium,N.variables.spacingMedium),compact:(0,y.css)(["&:first-child{margin-top:",";}&:last-child{margin-bottom:",";}"],N.variables.spacingSmall,N.variables.spacingSmall)}}),(0,N.pick)({enterprise:N.variables.textColor,prisma:N.variables.contentColorMuted}),function(m){var x=m.$error;return x&&(0,y.css)(["color:",";"],(0,N.pick)({enterprise:{light:N.variables.errorColorD10,dark:N.variables.errorColorL20},prisma:N.variables.accentColorNegative}))}),Z=B()(h()).withConfig({displayName:"ControlGroupStyles__StyledControlsStackBox",componentId:"wjnyif-1"})(["flex-direction:column;"]),Y=B().div.withConfig({displayName:"ControlGroupStyles__StyledLabelWrapper",componentId:"wjnyif-2"})(["display:inline-flex;align-items:center;"," ",""],(0,N.pick)({enterprise:(0,y.css)(["justify-content:flex-end;"])}),function(m){var x=m.$labelPosition;return x==="top"?(0,y.css)(["",""],(0,N.pick)({prisma:(0,y.css)(["height:24px;padding-bottom:",";"],N.variables.spacingXSmall)})):(0,y.css)(["",""],(0,N.pick)({prisma:(0,y.css)(["min-height:",";"],N.variables.inputHeight)}))}),C=B()(Y).withConfig({displayName:"ControlGroupStyles__StyledLabelWrapperLeft",componentId:"wjnyif-3"})(["float:left;"]),ne=B().label.withConfig({displayName:"ControlGroupStyles__StyledLabel",componentId:"wjnyif-4"})(["padding:",";word-wrap:break-word;color:inherit;text-align:",";"],(0,N.pick)({enterprise:{comfortable:"6px 0",compact:"4px 0"}}),(0,N.pick)({enterprise:"right",prisma:"left"})),Le=B()(ce()).withConfig({displayName:"ControlGroupStyles__StyledTooltip",componentId:"wjnyif-5"})(["",""],function(m){var x=m.$labelPosition;return x==="top"&&(0,y.css)(["button{","}"],(0,N.pick)({prisma:(0,y.css)(["svg{width:20px;height:20px;}padding:4px;"])}))}),Ge=B().div.withConfig({displayName:"ControlGroupStyles__StyledHelp",componentId:"wjnyif-6"})(["",";font-size:",";color:",";margin-top:",";",""],N.mixins.reset("block"),N.variables.fontSizeSmall,N.variables.contentColorMuted,(0,N.pick)({enterprise:"2px",prisma:"4px"}),function(m){var x=m.$error;return x&&(0,y.css)(["color:inherit;"])}),$=B().div.withConfig({displayName:"ControlGroupStyles__StyledErrorText",componentId:"wjnyif-7"})(["",";font-size:",";[aria-invalid] > &{color:inherit;}",""],N.mixins.reset("block"),N.variables.fontSizeSmall,function(m){var x=m.$help;return!x&&(0,y.css)(["margin-top:",";"],(0,N.pick)({enterprise:"2px",prisma:"4px"}))}),tr=B().span.withConfig({displayName:"ControlGroupStyles__StyledAsterisk",componentId:"wjnyif-8"})(["color:inherit;margin-right:2px;"]),Ue=d().createContext({});const ae=Ue;function De(m){"@babel/helpers - typeof";return De=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(x){return typeof x}:function(x){return x&&typeof Symbol=="function"&&x.constructor===Symbol&&x!==Symbol.prototype?"symbol":typeof x},De(m)}function ir(){return ir=Object.assign?Object.assign.bind():function(m){for(var x=1;xm.length)&&(x=m.length);for(var L=0,F=Array(x);L0&&(J.prepend=!0),se1&&(J.inline=!0),S==="stack"&&(J.inline=!1,se{var l={};l.n=U=>{var N=U&&U.__esModule?()=>U.default:()=>U;return l.d(N,{a:N}),N},l.d=(U,N)=>{for(var H in N)l.o(N,H)&&!l.o(U,H)&&Object.defineProperty(U,H,{enumerable:!0,get:N[H]})},l.o=(U,N)=>Object.prototype.hasOwnProperty.call(U,N),l.r=U=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(U,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(U,"__esModule",{value:!0})};var le={};l.r(le),l.d(le,{default:()=>Te});const R=Br();var d=l.n(R);const j=Yr(),t=Kt();var re=l.n(t);function G(){return G=Object.assign?Object.assign.bind():function(U){for(var N=1;N{var l={};l.n=n=>{var y=n&&n.__esModule?()=>n.default:()=>n;return l.d(y,{a:y}),y},l.d=(n,y)=>{for(var B in y)l.o(y,B)&&!l.o(n,B)&&Object.defineProperty(n,B,{enumerable:!0,get:y[B]})},l.o=(n,y)=>Object.prototype.hasOwnProperty.call(n,y),l.r=n=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})};var le={};l.r(le),l.d(le,{default:()=>Ke});const R=Br();var d=l.n(R);const j=nt();var t=l.n(j);const re=ot();function G(n,y){if(n==null)return{};var B,W,ce=Te(n,y);if(Object.getOwnPropertySymbols){var ye=Object.getOwnPropertySymbols(n);for(W=0;W=0},ue=function(y){return y==="default"||y&&!H(y)?"outlined":y},h=function(y){var B=y.children,W=y.variant,ce=W===void 0?"default":W,ye=G(y,["children","variant"]),Z=ue(ce),Y="magnifier-".concat(Z),C=(0,R.useContext)(re.IconContext),ne=U.get(Z);if(C&&ne){var Le=C.toRender,Ge=C.addIcon;if(Ge(Y,ne()),!Le)return null}return d().createElement(t(),ye,B,C?d().createElement("use",{href:"#".concat(Y)}):!!ne&&ne())};const Ke=h;gt.exports=le})()),gt.exports}var xt={exports:{}},Bt;function Nn(){return Bt||(Bt=1,(()=>{var l={};l.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return l.d(r,{a:r}),r},l.d=(e,r)=>{for(var o in r)l.o(r,o)&&!l.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},l.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),l.r=e=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var le={};l.r(le),l.d(le,{default:()=>g});const R=Br();var d=l.n(R);const j=Gr();var t=l.n(j);const re=Cn();var G=l.n(re);const Te=Pt();var U=l.n(Te);const N=st();var H=l.n(N);const ue=jn();var h=l.n(ue);const Ke=et();var n=l.n(Ke);const y=nn();var B=l.n(y);const W=On();var ce=l.n(W);const ye=ln(),Z=Xt();var Y=l.n(Z);const C=Jr(),ne=Yr(),Le=Jt(),Ge=Qt();var $=l.n(Ge);const tr=en();var Ue=l.n(tr);const ae=Qr;var De=l.n(ae);const ir=lt();var wr=l.n(ir);const lr=rn();var fr=l.n(lr),Pr=De()(fr()).withConfig({displayName:"TextAreaStyles__StyledClearButton",componentId:"gfy8yp-0"})(["display:none;visibility:hidden;border-radius:",";cursor:pointer;font-size:0.83333em;flex-grow:0;",";&:not([disabled]){color:",";}"],(0,C.pick)({enterprise:C.variables.borderRadius,prisma:"50%"}),(0,C.pick)({enterprise:(0,ae.css)(["width:",";height:",";"],C.variables.inputHeight,C.variables.inputHeight),prisma:{comfortable:(0,ae.css)(["width:26px;min-width:26px;min-height:26px;margin:8px;padding:0;"]),compact:(0,ae.css)(["width:22px;min-width:22px;min-height:22px;margin:8px;padding:0;"])}}),(0,C.pick)({enterprise:{light:C.variables.gray60,dark:C.variables.white},prisma:C.variables.contentColorMuted})),Er=De().span.withConfig({displayName:"TextAreaStyles__StyledSearchIconWrapper",componentId:"gfy8yp-1"})(["",";color:",";pointer-events:none;padding:",";",""],C.mixins.reset("inline-block"),(0,C.pick)({enterprise:{light:C.variables.gray60,dark:C.variables.white},prisma:C.variables.contentColorMuted}),(0,C.pick)({comfortable:"0 8px",compact:"0 6px"}),function(e){var r=e.$disabled;return r&&(0,ae.css)(["",""],(0,C.pick)({enterprise:(0,ae.css)(["color:",";"],C.variables.textDisabledColor),prisma:(0,ae.css)(["color:",";"],C.variables.contentColorDisabled)}))}),te="230px",ke=De()(wr()).withConfig({displayName:"TextAreaStyles__StyledBox",componentId:"gfy8yp-2"})(["display:flex;justify-content:space-between;flex-grow:1;flex-shrink:1;position:relative;&[data-inline]{width:",";flex-basis:",";[data-inline] + &{margin-left:",";}}&:focus-within:not([disabled]){"," ","{visibility:visible;display:block;}}"],te,te,C.variables.spacingSmall,(0,C.pick)({enterprise:(0,ae.css)(["","{display:none;}"],Er)}),Pr),xr=(0,C.pick)({prisma:"12px",enterprise:"10px"}),$e=(0,C.pick)({prisma:"12px",enterprise:"0"}),sr=De().span.withConfig({displayName:"TextAreaStyles__StyledTextAreaWrapper",componentId:"gfy8yp-3"})([""," flex-grow:1;min-height:",";position:relative;overflow:hidden;border:1px solid ",";border-radius:",";box-sizing:border-box;background-color:",";box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);align-items:center;padding:0 "," 0 ",";"," "," &:hover:not([disabled]){border-color:",";}&:focus-within:not([disabled]){box-shadow:",";color:",";}"," "," "," ",""],C.mixins.reset("inline-flex"),C.variables.inputHeight,(0,C.pick)({enterprise:{light:C.variables.borderColorStrong,dark:C.variables.borderColorWeak},prisma:C.variables.interactiveColorBorder}),C.variables.borderRadius,(0,C.pick)({enterprise:{light:C.variables.white,dark:C.variables.gray22},prisma:C.variables.transparent}),$e,xr,function(e){var r=e.$hasEndAdornment;return r&&(0,ae.css)(["padding-right:0;"])},function(e){var r=e.$hasStartAdornment;return r&&(0,ae.css)(["padding-left:0;"])},(0,C.pick)({enterprise:{light:C.variables.borderColorStrong,dark:C.variables.borderColorWeak},prisma:C.variables.interactiveColorBorderHover}),C.variables.focusShadow,C.variables.contentColorActive,function(e){var r=e.$error;return r&&(0,ae.css)(["&,&:hover:not([disabled]){border-color:",";}&:focus-within:not([disabled]){box-shadow:",";color:",";}"],C.variables.accentColorNegative,C.variables.focusShadow,C.variables.contentColorActive)},function(e){var r=e.$append;return r&&(0,ae.css)(["margin-right:-1px;border-top-right-radius:0;border-bottom-right-radius:0;border-right:none;"])},function(e){var r=e.$prepend;return r&&(0,ae.css)(["border-top-left-radius:0;border-bottom-left-radius:0;"])},function(e){var r=e.disabled;return r&&(0,ae.css)([""," box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);"],(0,C.pick)({enterprise:{light:(0,ae.css)(["background-color:",";border-color:",";"],C.variables.gray96,C.variables.gray92),dark:(0,ae.css)(["background-color:",";border-color:",";"],C.variables.gray22,C.variables.gray30)},prisma:(0,ae.css)(["border-color:",";"],C.variables.interactiveColorBorderDisabled)}))}),vr=De().textarea.withConfig({displayName:"TextAreaStyles__StyledTextArea",componentId:"gfy8yp-4"})(["",";outline-style:none;border:0;background:transparent;color:",";flex-grow:1;font-family:",";font-size:inherit;line-height:inherit;padding-top:",";padding-bottom:",";padding-right:",";position:relative;resize:none;overflow:auto;white-space:pre-wrap;"," &::placeholder{color:",";opacity:1;}"," ",""],C.mixins.reset("inline-flex"),C.variables.contentColorActive,C.variables.sansFontFamily,(0,C.pick)({enterprise:{comfortable:C.variables.spacingXSmall,compact:"3px"},prisma:{comfortable:C.variables.spacingSmall,compact:"5px"}}),(0,C.pick)({enterprise:{comfortable:C.variables.spacingXSmall,compact:"3px"},prisma:{comfortable:C.variables.spacingSmall,compact:"5px"}}),(0,C.pick)({enterprise:"10px",prisma:"14px"}),function(e){var r=e.$rowsMin;return r&&(0,ae.css)(["height:calc( "," + ("," * ",") + "," );"],C.variables.inputHeight,r-1,C.variables.lineHeight,r>1?"-3px":"-2px")},C.variables.contentColorMuted,function(e){var r=e.$error;return r&&(0,ae.css)(["color:",";"],(0,C.pick)({enterprise:{light:C.variables.errorColorD10,dark:C.variables.errorColorL20},prisma:C.variables.contentColorActive}))},function(e){var r=e.disabled;return r&&(0,ae.css)(["cursor:not-allowed;color:",";&::placeholder{color:",";}"],C.variables.contentColorDisabled,C.variables.contentColorDisabled)}),Ve=De()(vr).withConfig({displayName:"TextAreaStyles__StyledTextAreaShadow",componentId:"gfy8yp-5"})(["position:absolute;overflow:hidden;left:-10000px;top:-10000px;visibility:hidden;pointer-events:none;",""],function(e){var r=e.$startAdornmentWidth,o=e.$endAdornmentWidth,s=r?"".concat(r,"px"):xr,a=o?"".concat(o,"px"):$e;return(0,ae.css)(["width:calc(100% - "," - ",");"],s,a)}),Ze=(0,C.pick)({enterprise:{comfortable:"30px",compact:"26px"},prisma:{comfortable:"38px",compact:"30px"}}),mr=(0,C.pick)({enterprise:"10px",prisma:"14px"});De().span.withConfig({displayName:"TextAreaStyles__StyledPlaceholder",componentId:"gfy8yp-6"})(["pointer-events:none;color:",";position:absolute;overflow:hidden;height:",";margin-right:",";",";",";",""],(0,C.pick)({enterprise:C.variables.textGray,prisma:C.variables.contentColorMuted}),C.variables.lineHeight,mr,function(e){var r=e.$hasStartAdornment,o=e.$startAdornmentWidth;return r&&(o?(0,ae.css)(["margin-left:","px;"],o):(0,ae.css)(["margin-left:",";"],Ze))},function(e){var r=e.$hasEndAdornment,o=e.$endAdornmentWidth;return r&&(o?(0,ae.css)(["max-width:calc(100% - "," - ","px);"],mr,o):(0,ae.css)(["max-width:calc(100% - "," - ",");"],mr,Ze))},function(e){var r=e.$hasBothAdornment,o=e.$endAdornmentWidth,s=e.$startAdornmentWidth;return r&&(0,ae.css)(["max-width:calc(100% - ","px - ","px);"],s,o)});var Fe=De().div.withConfig({displayName:"TextAreaStyles__StyledAdornmentSpacer",componentId:"gfy8yp-7"})(["display:inline-flex;align-items:center;justify-content:center;height:",";pointer-events:none;",";"],Ze,function(e){var r=e.$width;return r?(0,ae.css)(["min-width:","px;"],r):(0,ae.css)(["min-width:",";"],Ze)}),Ye=De().div.withConfig({displayName:"TextAreaStyles__StyledAdornment",componentId:"gfy8yp-8"})(["display:inline-flex;align-items:center;justify-content:center;position:absolute;pointer-events:none;z-index:1;height:",";color:",";"," ",";",""],Ze,(0,C.pick)({enterprise:{light:C.variables.gray60,dark:C.variables.white},prisma:C.variables.contentColorMuted}),(0,C.pickVariant)("$position",{start:(0,ae.css)(["top:1px;left:1px;"]),end:(0,ae.css)(["top:1px;right:1px;"])}),function(e){var r=e.disabled;return r&&(0,ae.css)(["cursor:not-allowed;color:",";"],C.variables.contentColorDisabled)},(0,C.pick)({enterprise:(0,ae.css)(["margin-left:-1px;margin-right:-1px;"])}));function nr(){return nr=Object.assign?Object.assign.bind():function(e){for(var r=1;r=s){var Ae=o*z+K+se+J+be+1;he=Math.min(Ae,he)}var hr=s*z+K+se+J+be+1;if(he=Math.max(hr,he),r!==he)return he}return!1}var k={body:{appendChild:function(){return[]}},addEventListener:function(){},removeEventListener:function(){},activeElement:{blur:function(){},nodeName:""},querySelector:function(){return null},querySelectorAll:function(){return[]},getElementById:function(){return null},createEvent:function(){return{initEvent:function(){}}},createElement:function(){return{children:[],childNodes:[],style:{},setAttribute:function(){},getElementsByTagName:function(){return[]}}},createElementNS:function(){return{}},importNode:function(){return null},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""}},T={document:k,navigator:{userAgent:""},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""},history:{replaceState:function(){},pushState:function(){},go:function(){},back:function(){}},CustomEvent:function(){return this},addEventListener:function(){},removeEventListener:function(){},getComputedStyle:function(){return{getPropertyValue:function(){return""}}},Image:function(){},Date:function(){},screen:{},setTimeout:function(){},clearTimeout:function(){},matchMedia:function(){return{}},requestAnimationFrame:function(r){return typeof setTimeout>"u"?(r(),null):setTimeout(r,0)},cancelAnimationFrame:function(r){typeof setTimeout>"u"||clearTimeout(r)}};function u(){var e=typeof window<"u"?window:T;return e}var w=u();const M=w;function D(e,r){e&&(typeof e=="function"?e(r):e.current=r)}function Q(e){"@babel/helpers - typeof";return Q=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(r){return typeof r}:function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},Q(e)}function de(){return de=Object.assign?Object.assign.bind():function(e){for(var r=1;re.length)&&(r=e.length);for(var o=0,s=Array(r);o{var l={};l.n=n=>{var y=n&&n.__esModule?()=>n.default:()=>n;return l.d(y,{a:y}),y},l.d=(n,y)=>{for(var B in y)l.o(y,B)&&!l.o(n,B)&&Object.defineProperty(n,B,{enumerable:!0,get:y[B]})},l.o=(n,y)=>Object.prototype.hasOwnProperty.call(n,y),l.r=n=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})};var le={};l.r(le),l.d(le,{default:()=>Ke});const R=Br();var d=l.n(R);const j=nt();var t=l.n(j);const re=ot();function G(n,y){if(n==null)return{};var B,W,ce=Te(n,y);if(Object.getOwnPropertySymbols){var ye=Object.getOwnPropertySymbols(n);for(W=0;W=0},ue=function(y){return y==="default"||y&&!H(y)?"outlined":y},h=function(y){var B=y.children,W=y.variant,ce=W===void 0?"default":W,ye=G(y,["children","variant"]),Z=ue(ce),Y="eyeslashed-".concat(Z),C=(0,R.useContext)(re.IconContext),ne=U.get(Z);if(C&&ne){var Le=C.toRender,Ge=C.addIcon;if(Ge(Y,ne()),!Le)return null}return d().createElement(t(),ye,B,C?d().createElement("use",{href:"#".concat(Y)}):!!ne&&ne())};const Ke=h;wt.exports=le})()),wt.exports}var St={exports:{}},Ft;function qn(){return Ft||(Ft=1,(()=>{var l={};l.n=n=>{var y=n&&n.__esModule?()=>n.default:()=>n;return l.d(y,{a:y}),y},l.d=(n,y)=>{for(var B in y)l.o(y,B)&&!l.o(n,B)&&Object.defineProperty(n,B,{enumerable:!0,get:y[B]})},l.o=(n,y)=>Object.prototype.hasOwnProperty.call(n,y),l.r=n=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})};var le={};l.r(le),l.d(le,{default:()=>Ke});const R=Br();var d=l.n(R);const j=nt();var t=l.n(j);const re=ot();function G(n,y){if(n==null)return{};var B,W,ce=Te(n,y);if(Object.getOwnPropertySymbols){var ye=Object.getOwnPropertySymbols(n);for(W=0;W=0},ue=function(y){return y==="default"||y&&!H(y)?"outlined":y},h=function(y){var B=y.children,W=y.variant,ce=W===void 0?"default":W,ye=G(y,["children","variant"]),Z=ue(ce),Y="eye-".concat(Z),C=(0,R.useContext)(re.IconContext),ne=U.get(Z);if(C&&ne){var Le=C.toRender,Ge=C.addIcon;if(Ge(Y,ne()),!Le)return null}return d().createElement(t(),ye,B,C?d().createElement("use",{href:"#".concat(Y)}):!!ne&&ne())};const Ke=h;St.exports=le})()),St.exports}var Wt;function Fn(){return Wt||(Wt=1,(()=>{var l={};l.n=v=>{var p=v&&v.__esModule?()=>v.default:()=>v;return l.d(p,{a:p}),p},l.d=(v,p)=>{for(var I in p)l.o(p,I)&&!l.o(v,I)&&Object.defineProperty(v,I,{enumerable:!0,get:p[I]})},l.o=(v,p)=>Object.prototype.hasOwnProperty.call(v,p),l.r=v=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(v,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(v,"__esModule",{value:!0})};var le={};l.r(le),l.d(le,{default:()=>Or});const R=Br();var d=l.n(R);const j=Gr();var t=l.n(j);const re=Pt();var G=l.n(re);const Te=st();var U=l.n(Te);const N=et();var H=l.n(N);const ue=nn();var h=l.n(ue);const Ke=ln(),n=Qt();var y=l.n(n);const B=en();var W=l.n(B);const ce=sn();var ye=l.n(ce);const Z=cn();var Y=l.n(Z);const C=at();var ne=l.n(C);const Le=Nn();var Ge=l.n(Le);const $=Jr(),tr=Jt(),Ue=Yr(),ae=Bn();var De=l.n(ae);function ir(){var v=(0,$.useSplunkTheme)(),p=v.family,I=v.density,V=I==="compact"?"20":"24",g="1.2em",e=p==="prisma"?V:g;return d().createElement(De(),{width:e,height:e})}const wr=ir,lr=qn();var fr=l.n(lr);function Pr(){var v=(0,$.useSplunkTheme)(),p=v.family,I=v.density,V=I==="compact"?"20":"24",g="1.2em",e=p==="prisma"?V:g;return d().createElement(fr(),{width:e,height:e})}const Er=Pr,te=Qr;var ke=l.n(te);const xr=lt();var $e=l.n(xr);const sr=rn();var vr=l.n(sr),Ve=(0,te.css)(["&,&[type]{cursor:not-allowed;color:",";&::placeholder{color:",";}}"],(0,$.pick)({enterprise:$.variables.textDisabledColor,prisma:$.variables.contentColorDisabled}),(0,$.pick)({enterprise:$.variables.textDisabledColor,prisma:$.variables.contentColorDisabled})),Ze=(0,te.css)(["border-color:",";box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);",""],$.variables.interactiveColorBorderDisabled,(0,$.pick)({enterprise:(0,te.css)(["background-color:",";"],$.variables.interactiveColorBackgroundDisabled)})),mr=(0,te.css)(["border-radius:",";cursor:pointer;font-size:0.83333em;flex-grow:0;",";&:not([disabled]){color:",";}"],(0,$.pick)({enterprise:$.variables.borderRadius,prisma:"50%"}),(0,$.pick)({enterprise:(0,te.css)(["width:",";height:",";"],$.variables.inputHeight,$.variables.inputHeight),prisma:{comfortable:(0,te.css)(["width:26px;min-width:26px;min-height:26px;margin:8px;padding:0;"]),compact:(0,te.css)(["width:22px;min-width:22px;min-height:22px;margin:8px;padding:0;"])}}),(0,$.pick)({enterprise:{light:$.variables.gray60,dark:$.variables.white},prisma:$.variables.contentColorMuted})),Fe=ke()(vr()).withConfig({displayName:"TextStyles__StyledClearButton",componentId:"eg7n6t-0"})(["display:none;visibility:hidden;",""],mr),Ye=ke().span.withConfig({displayName:"TextStyles__StyledSearchIconWrapper",componentId:"eg7n6t-1"})(["",";color:",";pointer-events:none;padding:",";",""],$.mixins.reset("inline-block"),(0,$.pick)({enterprise:{light:$.variables.gray60,dark:$.variables.white},prisma:$.variables.contentColorMuted}),(0,$.pick)({comfortable:"0 8px",compact:"0 6px"}),function(v){var p=v.$disabled;return p&&(0,te.css)(["",""],(0,$.pick)({enterprise:(0,te.css)(["color:",";"],$.variables.textDisabledColor),prisma:(0,te.css)(["color:",";"],$.variables.contentColorDisabled)}))}),nr=ke()($e()).withConfig({displayName:"TextStyles__StyledBox",componentId:"eg7n6t-2"})(["display:flex;justify-content:space-between;flex-grow:1;flex-shrink:1;position:relative;&[data-inline]{width:230px;flex-basis:230px;[data-inline] + &{margin-left:",";}}&:focus-within:not([disabled]){","{","}","{visibility:visible;display:block;}}",""],$.variables.spacingSmall,Ye,(0,$.pick)({enterprise:(0,te.css)(["display:none;"])}),Fe,function(v){var p=v.$isTimeInput;return p&&(0,te.css)(["@media screen and (min--moz-device-pixel-ratio:0){","{display:none;}}"],Fe)}),Pe=ke().span.withConfig({displayName:"TextStyles__StyledInputWrapper",componentId:"eg7n6t-3"})(["",";cursor:text;flex-grow:1;min-height:",";position:relative;overflow:hidden;border:1px solid ",";border-radius:",";box-sizing:border-box;background-color:",";box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);padding:",";align-items:center;"," "," "," "," "," "," ",""],$.mixins.reset("inline-flex"),$.variables.inputHeight,(0,$.pick)({prisma:$.variables.interactiveColorBorder,enterprise:{light:$.variables.interactiveColorBorder,dark:$.variables.borderColorWeak}}),$.variables.borderRadius,(0,$.pick)({enterprise:{light:$.variables.white,dark:$.variables.gray22},prisma:$.variables.transparent}),(0,$.pick)({enterprise:"0 10px",prisma:"0 12px"}),function(v){var p=v.$hasEndAdornment;return p&&(0,te.css)(["padding-right:0;"])},function(v){var p=v.$hasStartAdornment;return p&&(0,te.css)(["padding-left:0;"])},function(v){var p=v.$isDisabled;return!p&&(0,te.css)(["&:focus-within{box-shadow:",";color:",";}"],$.variables.focusShadow,$.variables.contentColorActive)},function(v){var p=v.$isDisabled,I=v.$isDimmed;return p||I?Ze:(0,te.css)(["&:hover{border-color:",";}"],(0,$.pick)({enterprise:{light:$.variables.interactiveColorBorderHover,dark:$.variables.borderColorWeak},prisma:$.variables.interactiveColorBorderHover}))},function(v){var p=v.$error;return p&&(0,te.css)(["&,&:hover{border-color:",";}"],$.variables.accentColorNegative)},function(v){var p=v.$append;return p&&(0,te.css)(["margin-right:-1px;border-top-right-radius:0;border-bottom-right-radius:0;border-right:none;"])},function(v){var p=v.$prepend;return p&&(0,te.css)(["border-top-left-radius:0;border-bottom-left-radius:0;"])}),Je=ke().input.withConfig({displayName:"TextStyles__StyledInput",componentId:"eg7n6t-4"})(["",";&,&[type]{outline-style:none;border:0;background:transparent;color:",";flex-grow:1;font-family:",";font-size:inherit;line-height:inherit;&[type='time']{&::-webkit-calendar-picker-indicator{display:none;}height:",";@media screen and (min--moz-device-pixel-ratio:0){padding-right:",";}}position:relative;&::placeholder{color:",";opacity:1;}"," &[disabled],&[aria-disabled='true']{","}}"],$.mixins.reset("inline-flex"),(0,$.pick)({enterprise:$.variables.textColor,prisma:$.variables.contentColorActive}),$.variables.sansFontFamily,(0,$.pick)({enterprise:"20px",prisma:{comfortable:"24px",compact:"20px"}}),(0,$.pick)({enterprise:$.variables.spacingSmall,prisma:"14px"}),$.variables.contentColorMuted,function(v){var p=v.$error;return p&&(0,te.css)(["&,&:hover{color:",";}"],(0,$.pick)({enterprise:{light:$.variables.errorColorD10,dark:$.variables.errorColorL20},prisma:$.variables.contentColorActive}))},Ve),cr=ke()(vr()).withConfig({displayName:"TextStyles__StyledVisibilityToggle",componentId:"eg7n6t-5"})(["",""],mr),_e=ke().span.withConfig({displayName:"TextStyles__StyledPlaceholder",componentId:"eg7n6t-6"})(["pointer-events:none;color:",";position:absolute;overflow:hidden;font-size:inherit;line-height:inherit;height:",";margin-right:",";",";",";",""],(0,$.pick)({enterprise:$.variables.textGray,prisma:$.variables.contentColorMuted}),$.variables.lineHeight,(0,$.pick)({enterprise:"10px",prisma:"14px"}),function(v){var p=v.$hasStartAdornment,I=v.$startAdornmentWidth;return p&&(I?(0,te.css)(["margin-left:","px;"],I):(0,te.css)(["margin-left:",";"],(0,$.pick)({enterprise:{comfortable:"30px",compact:"26px"},prisma:{comfortable:"38px",compact:"30px"}})))},function(v){var p=v.$hasEndAdornment,I=v.$endAdornmentWidth;return p&&(I?(0,te.css)(["max-width:calc( 100% - "," - ","px );"],(0,$.pick)({enterprise:"10px",prisma:"14px"}),I):(0,te.css)(["max-width:calc( 100% - "," - "," );"],(0,$.pick)({enterprise:"10px",prisma:"14px"}),(0,$.pick)({enterprise:{comfortable:"30px",compact:"26px"},prisma:{comfortable:"38px",compact:"30px"}})))},function(v){var p=v.$hasBothAdornment,I=v.$endAdornmentWidth,V=v.$startAdornmentWidth;return p&&(0,te.css)(["max-width:calc(100% - ","px - ","px);"],V,I)}),or=(0,te.css)(["display:inline-flex;align-items:center;justify-content:center;height:",";pointer-events:none;"],(0,$.pick)({enterprise:{comfortable:"30px",compact:"26px"},prisma:{comfortable:"38px",compact:"30px"}})),Sr=ke().div.withConfig({displayName:"TextStyles__StyledStartAdornmentHolder",componentId:"eg7n6t-7"})([""," ",";"],or,function(v){var p=v.$width;return p?(0,te.css)(["min-width:","px;"],p):(0,te.css)(["min-width:",";"],(0,$.pick)({enterprise:{comfortable:"30px",compact:"26px"},prisma:{comfortable:"38px",compact:"30px"}}))}),Rr=ke().div.withConfig({displayName:"TextStyles__StyledEndAdornmentHolder",componentId:"eg7n6t-8"})([""," ",";"],or,function(v){var p=v.$width;return p?(0,te.css)(["min-width:","px;"],p):(0,te.css)(["min-width:",";"],(0,$.pick)({enterprise:{comfortable:"30px",compact:"26px"},prisma:{comfortable:"38px",compact:"30px"}}))}),k=ke().div.withConfig({displayName:"TextStyles__StyledAdornment",componentId:"eg7n6t-9"})(["display:inline-flex;align-items:center;justify-content:center;position:absolute;pointer-events:none;z-index:1;height:",";color:",";",";",";",""],(0,$.pick)({enterprise:{comfortable:"30px",compact:"26px"},prisma:{comfortable:"38px",compact:"30px"}}),(0,$.pick)({enterprise:{light:$.variables.gray60,dark:$.variables.white},prisma:$.variables.contentColorMuted}),function(v){var p=v.$position;return p==="start"?(0,te.css)(["top:1px;left:1px;"]):(0,te.css)(["top:1px;right:1px;"])},function(v){var p=v.disabled;return p&&Ve},(0,$.pick)({enterprise:(0,te.css)(["margin-left:-1px;margin-right:-1px;"])}));function T(v,p){v&&(typeof v=="function"?v(p):v.current=p)}function u(v){"@babel/helpers - typeof";return u=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(p){return typeof p}:function(p){return p&&typeof Symbol=="function"&&p.constructor===Symbol&&p!==Symbol.prototype?"symbol":typeof p},u(v)}function w(v){return de(v)||Q(v)||D(v)||M()}function M(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function D(v,p){if(v){if(typeof v=="string")return m(v,p);var I={}.toString.call(v).slice(8,-1);return I==="Object"&&v.constructor&&(I=v.constructor.name),I==="Map"||I==="Set"?Array.from(v):I==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(I)?m(v,p):void 0}}function Q(v){if(typeof Symbol<"u"&&v[Symbol.iterator]!=null||v["@@iterator"]!=null)return Array.from(v)}function de(v){if(Array.isArray(v))return m(v)}function m(v,p){(p==null||p>v.length)&&(p=v.length);for(var I=0,V=Array(p);I{var l={6165:(j,t,re)=>{re.d(t,{default:()=>ye});var G=re(9497),Te=re.n(G),U=re(23),N=re.n(U),H=re(232),ue=re.n(H),h=re(3563),Ke=ue().span.withConfig({displayName:"ScreenReaderContentStyles__Styled",componentId:"sc-1lnohwp-0"})(["",";"],h.mixins.screenReaderContent());function n(){return n=Object.assign?Object.assign.bind():function(Z){for(var Y=1;Y{j.exports=Jr()},23:j=>{j.exports=Gr()},9497:j=>{j.exports=Br()},232:j=>{j.exports=Qr}},le={};function R(j){var t=le[j];if(t!==void 0)return t.exports;var re=le[j]={exports:{}};return l[j](re,re.exports,R),re.exports}R.n=j=>{var t=j&&j.__esModule?()=>j.default:()=>j;return R.d(t,{a:t}),t},R.d=(j,t)=>{for(var re in t)R.o(t,re)&&!R.o(j,re)&&Object.defineProperty(j,re,{enumerable:!0,get:t[re]})},R.o=(j,t)=>Object.prototype.hasOwnProperty.call(j,t),R.r=j=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(j,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(j,"__esModule",{value:!0})};var d={};(()=>{R.r(d),R.d(d,{VirtualizedResultsMenu:()=>g,default:()=>Je});var j=R(9497),t=R.n(j),re=R(23),G=R.n(re);const Te=st();var U=R.n(Te);const N=tn();var H=R.n(N);const ue=et();var h=R.n(ue);const Ke=Yr(),n=Wn(),y=an();var B=R.n(y),W=R(232),ce=R.n(W);const ye=kn();var Z=R.n(ye),Y=R(3563),C=ce().div.withConfig({displayName:"ResultsMenuStyles__Styled",componentId:"avbhl8-0"})(["",";flex-direction:column;max-height:calc(100vh - 20px);",""],Y.mixins.reset("flex"),(0,Y.pick)({prisma:(0,W.css)(["border-radius:",";background-color:",";"],Y.variables.borderRadius,Y.variables.backgroundColorPopup)})),ne=ce().div.withConfig({displayName:"ResultsMenuStyles__StyledFooter",componentId:"avbhl8-1"})(["padding:",";color:",";",""],(0,Y.pick)({prisma:{comfortable:"10px 16px",compact:"6px 16px"},enterprise:"6px 10px"}),(0,Y.pick)({prisma:Y.variables.contentColorMuted,enterprise:Y.variables.textGray}),function(e){var r=e.$placement;return r==="above"?(0,Y.pick)({prisma:(0,W.css)(["border-bottom:1px solid ",";"],Y.variables.neutral200),enterprise:(0,W.css)(["border-bottom:",";"],Y.variables.border)}):(0,Y.pick)({prisma:(0,W.css)(["border-top:1px solid ",";"],Y.variables.neutral200),enterprise:(0,W.css)(["border-top:",";"],Y.variables.border)})}),Le=ce().li.withConfig({displayName:"ResultsMenuStyles__StyledLoading",componentId:"avbhl8-2"})(["",";padding:",";gap:",";"],Y.mixins.reset("flex"),(0,Y.pick)({prisma:{comfortable:"10px 16px",compact:"6px 16px"},enterprise:"6px 10px"}),Y.variables.spacingXSmall),Ge=ce()(B()).withConfig({displayName:"ResultsMenuStyles__StyledMenu",componentId:"avbhl8-3"})(["overflow:auto;flex-direction:column;",""],function(e){var r=e.$removeBottomRadius;return r&&(0,W.css)(["border-bottom-left-radius:0;border-bottom-right-radius:0;"])}),$=ce()(B().Item).withConfig({displayName:"ResultsMenuStyles__StyledNoOptions",componentId:"avbhl8-4"})(["&[disabled],&[aria-disabled='true']{color:",";}"],Y.variables.contentColorDefault),tr=ce()(Z()).withConfig({displayName:"ResultsMenuStyles__StyledWait",componentId:"avbhl8-5"})(["flex:0 0 auto;"]),Ue=ce().div.withConfig({displayName:"ResultsMenuStyles__StyledLoadingMessage",componentId:"avbhl8-6"})(["flex:1 0 0;color:",";"],(0,Y.pick)({prisma:Y.variables.contentColorMuted,enterprise:Y.variables.textGray}));function ae(e,r){e&&(typeof e=="function"?e(r):e.current=r)}var De=R(6165);function ir(e){"@babel/helpers - typeof";return ir=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(r){return typeof r}:function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},ir(e)}function wr(){return wr=Object.assign?Object.assign.bind():function(e){for(var r=1;r=K&&a.handleScrollBottom(P)}(_=(z=a.props).onScroll)===null||_===void 0||_.call(z,P)}),Ve($e(a),"handleWheelMenu",function(P){P.stopPropagation(),document.documentElement.scrollTop=a.state.windowTop}),Ve($e(a),"handleScrollBottomOnFullMenu",function(){var P=j.Children.count(a.props.children),_=a.state.childrenCount;a.checkFullHeight()&&a.handleScrollBottom(null),_!=null&&P!==_&&a.setState({numberOfItemsLoaded:P-(_??0),scrollBottomTriggered:!1}),P!==_&&a.setState({childrenCount:P})}),Ve($e(a),"createMenuContextValue",function(){return{role:"listbox",preventFocus:a.props.focusMode==="never"}}),a.state={containerEl:null,menuEl:null,numberOfItemsLoaded:0,scrollBottomTriggered:!1,windowTop:0},a.scrollBottomOffset=400,a.itemMinHeight=28,a}return Pr(o,[{key:"componentDidUpdate",value:function(){var a,P,_=this.state,z=_.containerEl,K=_.menuEl;!n.isIE11||!z||!K||!((a=this.props)===null||a===void 0)&&a.onScrollBottom&&(!((P=this.props)===null||P===void 0)&&P.children)&&this.handleScrollBottomOnFullMenu()}},{key:"handleScrollBottom",value:function(a){if(!this.state.scrollBottomTriggered){var P,_;this.setState({scrollBottomTriggered:!0}),(P=(_=this.props).onScrollBottom)===null||P===void 0||P.call(_,a)}}},{key:"checkFullHeight",value:function(){var a=this.state.menuEl;return a&&a.scrollHeight===a.offsetHeight}},{key:"renderFooterMessage",value:function(){return this.props.footerMessage&&!!j.Children.toArray(this.props.children).length&&t().createElement(ne,{$placement:this.props.placement,"data-test":"footer-message",key:"footer"},this.props.footerMessage)}},{key:"render",value:function(){var a=this.props,P=a.animateLoading,_=a.children,z=a.childrenStart,K=a.focusMode,se=a.isLoading,J=a.loadingMessage,be=a.noOptionsMessage,he=a.onScrollBottom,Ae=a.placement,hr=a.style,ur=a.tabIndex,dr=a.menuId,Mr=a["aria-multiselectable"],Lr=h()(this.props,U()(o.propTypes)),kr=j.Children.toArray(_).filter(j.isValidElement).some(function(Ir){var c=Ir.type;return!(c.as==="Divider"&&c.filterFirst||(c.as==="Divider"||c.as==="Heading")&&(c.filterLast||c.filterConsecutive))}),ar=this.checkFullHeight(),Dr=nr(this.state.scrollBottomTriggered&&this.state.numberOfItemsLoaded*this.itemMinHeight||0),yr=!kr&&!!be&&!se;return t().createElement(C,wr({"data-test":"results-menu",key:"wrapper",ref:this.handleMount,onWheel:he?this.handleWheelMenu:void 0,onMouseEnter:he?this.handleMouseEnter:void 0,onMouseLeave:he?this.handleMouseLeave:void 0},h()(Lr,"tabIndex","aria-multiselectable","menuId"),{style:hr}),Ae!=="above"&&z,Ae==="above"&&this.renderFooterMessage(),t().createElement(y.MenuContext.Provider,{value:this.createMenuContextValue()},t().createElement(Ge,{key:"menu",elementRef:this.handleMenuMount,onScroll:this.handleScroll,stopScrollPropagation:!0,tabIndex:ur,"aria-multiselectable":Mr,id:dr,focusMode:K,$removeBottomRadius:!!this.props.footerMessage&&Ae!=="above"},yr&&t().createElement($,{"data-test":"no-results-message",disabled:!0},be),_,he&&!ar&&t().createElement("div",{"data-test":"results-menu-bottom-spacer",style:Dr}),se&&t().createElement(Le,null,P&&t().createElement(tr,null),t().createElement(Ue,null,J)))),t().createElement(De.default,{"aria-live":"polite"},yr&&be),Ae!=="above"&&this.renderFooterMessage(),Ae==="above"&&z)}}]),o}(j.Component);Ve(Pe,"propTypes",Fe),Ve(Pe,"defaultProps",Ye);const Je=Pe,cr=kt(),_e=Yt();var or={result:[]},Sr=function(r,o){return or.children===r&&or.groupSize===o||(or.children=r,or.groupSize=o,o<=1?or.result=[j.Children.toArray(r)]:or.result=j.Children.toArray(r).reduce(function(s,a,P){var _=Math.floor(P/o);return Array.isArray(s[_])||(s[_]=[]),s[_].push(a),s},[])),or.result};const Rr=it();var k=function(r){var o,s,a,P;return r.el?r.el:!((o=r.c)===null||o===void 0)&&o.el?r.c.el:!((s=r.c)===null||s===void 0||(a=s.c)===null||a===void 0)&&a.el?r.c.c.el:!((P=r.item)===null||P===void 0)&&P.el?r.item.el:null};function T(e,r){return Q(e)||D(e,r)||w(e,r)||u()}function u(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function w(e,r){if(e){if(typeof e=="string")return M(e,r);var o={}.toString.call(e).slice(8,-1);return o==="Object"&&e.constructor&&(o=e.constructor.name),o==="Map"||o==="Set"?Array.from(e):o==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?M(e,r):void 0}}function M(e,r){(r==null||r>e.length)&&(r=e.length);for(var o=0,s=Array(r);o=0&&s3&&arguments[3]!==void 0?arguments[3]:{},P=a.trackFirstElement,_=a.trackLastElement;if(!Array.isArray(r))return[];var z=x(r,Math.floor(r.length/2)),K=P&&x(r,0),se=_&&x(r,r.length-1);return r.map(function(J,be){return be===z||be===K||be===se?t().createElement(m,{key:(0,Rr.createGUID)(),onMount:o,onUnmount:s},J):J})};function F(e){"@babel/helpers - typeof";return F=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(r){return typeof r}:function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},F(e)}function q(){return q=Object.assign?Object.assign.bind():function(e){for(var r=1;re.length)&&(r=e.length);for(var o=0,s=Array(r);o=0&&c.current.splice(rr,1);var Nr=Ir.current.indexOf(we);Nr&&Ir.current.splice(Nr,1),(Re=yr.current)===null||Re===void 0||Re.unobserve(we)}};return[].concat(i(L(ze[Oe-1],qe(c),Xe,{trackFirstElement:!0})),i((ee=ze[Oe])!==null&&ee!==void 0?ee:[]),i(L(ze[Oe+1],qe(Ir),Xe,{trackLastElement:!0})))},[]),O=(0,j.useState)(f),A=oe(O,2),X=A[0],ge=A[1],Ie=(0,j.useCallback)(function(ee){var xe=ar.current;ar.current=Math.max(0,Math.min(ee,kr.current.length-1)),xe!==ar.current&&ge(f)},[f]),We=(0,j.useCallback)(function(ee){var xe;ae(s,ee),Dr.current=ee,(xe=yr.current)===null||xe===void 0||xe.disconnect(),ee&&(c.current=[],Ir.current=[],yr.current=new IntersectionObserver(function(ze){var Oe,qe=ar.current,Xe=ee.firstElementChild;if(Xe&&Xe.scrollHeight1&&ze.some(function(Re){return Re.isIntersecting})){be(function(Re){return Re+10});return}var we=!1;ze.forEach(function(Re){we||!Re.isIntersecting||(c.current.includes(Re.target)?(we=!0,Ie(qe-1)):Ir.current.includes(Re.target)&&(we=!0,Ie(qe+1)))})},{root:ee}))},[s,Ie]),Be=(0,j.useCallback)(function(ee){var xe=Dr.current;if(xe){ee.preventDefault();var ze=(0,cr.keycode)(ee);if(ze==="home"){var Oe=ar.current===0;if(Oe){var qe,Xe=(0,_e.getSortedTabbableElements)(xe,{ignoreTabIndex:!0}),er=Xe[0];er==null||(qe=er.focus)===null||qe===void 0||qe.call(er)}else he.current=!0,Ie(0);return}var we=kr.current.length-1;if(ze==="end"){var Re=ar.current===we;if(Re){var rr,Nr=(0,_e.getSortedTabbableElements)(xe,{ignoreTabIndex:!0}),Tr=Nr[Nr.length-1];Tr==null||(rr=Tr.focus)===null||rr===void 0||rr.call(Tr)}else Ae.current=!0,Ie(we);return}var He=(0,_e.getSortedTabbableElements)(xe,{ignoreTabIndex:!0}),pr=ee?.target instanceof Element?ee.target:null,Wr=xe?.querySelector(":focus"),qr=pr||Wr,$r=qr?He.indexOf(qr):-1;(0,_e.handleFocus)(ze,He,$r,{enableLoop:!1,orientation:"vertical",enableTab:!1,enableHomeEnd:!1})}},[Ie]);return(0,j.useEffect)(function(){be(function(ee){return o})},[o]),(0,j.useEffect)(function(){kr.current=Sr(ur,J),ge(f)},[ur,J,f]),(0,j.useEffect)(function(){return function(){var ee;return(ee=yr.current)===null||ee===void 0?void 0:ee.disconnect()}},[]),(0,j.useEffect)(function(){if(_!=="never"){var ee=Dr.current;return ee&&ee.addEventListener("keydown",Be),function(){ee?.removeEventListener("keydown",Be)}}},[Be,_]),t().createElement(Je,q({elementRef:We,focusMode:_},z),X)}Or.propTypes=jr;var v={body:{appendChild:function(){return[]}},addEventListener:function(){},removeEventListener:function(){},activeElement:{blur:function(){},nodeName:""},querySelector:function(){return null},querySelectorAll:function(){return[]},getElementById:function(){return null},createEvent:function(){return{initEvent:function(){}}},createElement:function(){return{children:[],childNodes:[],style:{},setAttribute:function(){},getElementsByTagName:function(){return[]}}},createElementNS:function(){return{}},importNode:function(){return null},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""}},p={document:v,navigator:{userAgent:""},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""},history:{replaceState:function(){},pushState:function(){},go:function(){},back:function(){}},CustomEvent:function(){return this},addEventListener:function(){},removeEventListener:function(){},getComputedStyle:function(){return{getPropertyValue:function(){return""}}},Image:function(){},Date:function(){},screen:{},setTimeout:function(){},clearTimeout:function(){},matchMedia:function(){return{}},requestAnimationFrame:function(r){return typeof setTimeout>"u"?(r(),null):setTimeout(r,0)},cancelAnimationFrame:function(r){typeof setTimeout>"u"||clearTimeout(r)}};function I(){var e=typeof window<"u"?window:p;return e}var V="IntersectionObserver"in I()?Or:Je;const g=V})(),Ct.exports=d})()),Ct.exports}var Ot={exports:{}},zt;function Vn(){return zt||(zt=1,(()=>{var l={};l.n=i=>{var b=i&&i.__esModule?()=>i.default:()=>i;return l.d(b,{a:b}),b},l.d=(i,b)=>{for(var S in b)l.o(b,S)&&!l.o(i,S)&&Object.defineProperty(i,S,{enumerable:!0,get:b[S]})},l.o=(i,b)=>Object.prototype.hasOwnProperty.call(i,b),l.r=i=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(i,"__esModule",{value:!0})};var le={};l.r(le),l.d(le,{Divider:()=>ce.Divider,Heading:()=>ce.Heading,Option:()=>Ye,default:()=>q});const R=Br();var d=l.n(R);const j=Gr();var t=l.n(j);const re=En();var G=l.n(re);const Te=Pt();var U=l.n(Te);const N=tn();var H=l.n(N);const ue=et();var h=l.n(ue);const Ke=In();var n=l.n(Ke);const y=it(),B=Yr(),W=kt(),ce=an(),ye=Rn();var Z=l.n(ye);const Y=Zt();var C=l.n(Y);const ne=Hn();var Le=l.n(ne);const Ge=Fn();var $=l.n(Ge);function tr(i){"@babel/helpers - typeof";return tr=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(b){return typeof b}:function(b){return b&&typeof Symbol=="function"&&b.constructor===Symbol&&b!==Symbol.prototype?"symbol":typeof b},tr(i)}function Ue(){return Ue=Object.assign?Object.assign.bind():function(i){for(var b=1;bi.length)&&(b=i.length);for(var S=0,E=Array(b);SCe&&Sve&&E-1?Ie:void 0,"aria-expanded":K?ur&&!!Be.current:void 0,"aria-controls":Xr?ge:void 0};return d().createElement($(),Je({"data-test":"search"},h()(z,"onScroll"),{appearance:"search",autoCapitalize:"off",autoComplete:"off",autoCorrect:"off","data-test-popover-id":X,"data-test-label":Kr,"data-test-value":zr,"data-test-open":Xr,describedBy:Ce,disabled:ie,elementRef:Xe,error:pe,inline:Cr,inputRef:er,labelledBy:br,name:I,onFocus:He,onClick:$r,onChange:pr,onKeyDown:qr,placeholder:P,spellCheck:!1,value:Kr,role:rt},ct),d().createElement(C(),{anchor:function(){return Be.current}(),autoCloseWhenOffScreen:!0,canCoverAnchor:!1,defaultPlacement:oe,id:X,onRequestClose:Hr,open:Xr,repositionMode:"flip"},Ur))}F.propTypes=m,F.Option=Ye,F.Divider=ce.Divider,F.Heading=ce.Heading;const q=F;Ot.exports=le})()),Ot.exports}var zn=Vn();const Zn=Pn(zn);export{Zn as S,ln as a,Fn as b,Nn as c,an as d,Hn as e,sn as f,cn as g,Dn as r}; +//# sourceMappingURL=Search.BeAZnac9.js.map diff --git a/TA-opencti-for-splunk-enterprise/appserver/static/js/build/assets/EnterpriseViewOnlyPreset-BIUalaRY.css b/TA-opencti-for-splunk-enterprise/appserver/static/js/build/assets/EnterpriseViewOnlyPreset-BIUalaRY.css new file mode 100644 index 0000000..39b5a98 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/appserver/static/js/build/assets/EnterpriseViewOnlyPreset-BIUalaRY.css @@ -0,0 +1 @@ +.maplibregl-map{font:12px/20px Helvetica Neue,Arial,Helvetica,sans-serif;overflow:hidden;position:relative;-webkit-tap-highlight-color:rgb(0 0 0/0)}.maplibregl-canvas{left:0;position:absolute;top:0}.maplibregl-map:fullscreen{height:100%;width:100%}.maplibregl-ctrl-group button.maplibregl-ctrl-compass{touch-action:none}.maplibregl-canvas-container.maplibregl-interactive,.maplibregl-ctrl-group button.maplibregl-ctrl-compass{cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none}.maplibregl-canvas-container.maplibregl-interactive.maplibregl-track-pointer{cursor:pointer}.maplibregl-canvas-container.maplibregl-interactive:active,.maplibregl-ctrl-group button.maplibregl-ctrl-compass:active{cursor:grabbing}.maplibregl-canvas-container.maplibregl-touch-zoom-rotate,.maplibregl-canvas-container.maplibregl-touch-zoom-rotate .maplibregl-canvas{touch-action:pan-x pan-y}.maplibregl-canvas-container.maplibregl-touch-drag-pan,.maplibregl-canvas-container.maplibregl-touch-drag-pan .maplibregl-canvas{touch-action:pinch-zoom}.maplibregl-canvas-container.maplibregl-touch-zoom-rotate.maplibregl-touch-drag-pan,.maplibregl-canvas-container.maplibregl-touch-zoom-rotate.maplibregl-touch-drag-pan .maplibregl-canvas{touch-action:none}.maplibregl-canvas-container.maplibregl-touch-drag-pan.maplibregl-cooperative-gestures,.maplibregl-canvas-container.maplibregl-touch-drag-pan.maplibregl-cooperative-gestures .maplibregl-canvas{touch-action:pan-x pan-y}.maplibregl-ctrl-bottom-left,.maplibregl-ctrl-bottom-right,.maplibregl-ctrl-top-left,.maplibregl-ctrl-top-right{pointer-events:none;position:absolute;z-index:2}.maplibregl-ctrl-top-left{left:0;top:0}.maplibregl-ctrl-top-right{right:0;top:0}.maplibregl-ctrl-bottom-left{bottom:0;left:0}.maplibregl-ctrl-bottom-right{bottom:0;right:0}.maplibregl-ctrl{clear:both;pointer-events:auto;transform:translate(0)}.maplibregl-ctrl-top-left .maplibregl-ctrl{float:left;margin:10px 0 0 10px}.maplibregl-ctrl-top-right .maplibregl-ctrl{float:right;margin:10px 10px 0 0}.maplibregl-ctrl-bottom-left .maplibregl-ctrl{float:left;margin:0 0 10px 10px}.maplibregl-ctrl-bottom-right .maplibregl-ctrl{float:right;margin:0 10px 10px 0}.maplibregl-ctrl-group{background:#fff;border-radius:4px}.maplibregl-ctrl-group:not(:empty){box-shadow:0 0 0 2px #0000001a}@media (forced-colors:active){.maplibregl-ctrl-group:not(:empty){box-shadow:0 0 0 2px ButtonText}}.maplibregl-ctrl-group button{background-color:transparent;border:0;box-sizing:border-box;cursor:pointer;display:block;height:29px;outline:none;padding:0;width:29px}.maplibregl-ctrl-group button+button{border-top:1px solid #ddd}.maplibregl-ctrl button .maplibregl-ctrl-icon{background-position:50%;background-repeat:no-repeat;display:block;height:100%;width:100%}@media (forced-colors:active){.maplibregl-ctrl-icon{background-color:transparent}.maplibregl-ctrl-group button+button{border-top:1px solid ButtonText}}.maplibregl-ctrl button::-moz-focus-inner{border:0;padding:0}.maplibregl-ctrl-attrib-button:focus,.maplibregl-ctrl-group button:focus{box-shadow:0 0 2px 2px #0096ff}.maplibregl-ctrl button:disabled{cursor:not-allowed}.maplibregl-ctrl button:disabled .maplibregl-ctrl-icon{opacity:.25}@media (hover:hover){.maplibregl-ctrl button:not(:disabled):hover{background-color:#0000000d}}.maplibregl-ctrl button:not(:disabled):active{background-color:#0000000d}.maplibregl-ctrl-group button:focus:focus-visible{box-shadow:0 0 2px 2px #0096ff}.maplibregl-ctrl-group button:focus:not(:focus-visible){box-shadow:none}.maplibregl-ctrl-group button:focus:first-child{border-radius:4px 4px 0 0}.maplibregl-ctrl-group button:focus:last-child{border-radius:0 0 4px 4px}.maplibregl-ctrl-group button:focus:only-child{border-radius:inherit}.maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5'/%3E%3C/svg%3E")}@media (forced-colors:active){.maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5'/%3E%3C/svg%3E")}}@media (forced-colors:active) and (prefers-color-scheme:light){.maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5'/%3E%3C/svg%3E")}}.maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z'/%3E%3C/svg%3E")}@media (forced-colors:active){.maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z'/%3E%3C/svg%3E")}}@media (forced-colors:active) and (prefers-color-scheme:light){.maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z'/%3E%3C/svg%3E")}}.maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8z'/%3E%3Cpath fill='%23ccc' d='m10.5 16 4 8 4-8z'/%3E%3C/svg%3E")}@media (forced-colors:active){.maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8z'/%3E%3Cpath fill='%23ccc' d='m10.5 16 4 8 4-8z'/%3E%3C/svg%3E")}}@media (forced-colors:active) and (prefers-color-scheme:light){.maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8z'/%3E%3Cpath fill='%23ccc' d='m10.5 16 4 8 4-8z'/%3E%3C/svg%3E")}}.maplibregl-ctrl button.maplibregl-ctrl-globe .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' fill='none' stroke='%23333' viewBox='0 0 22 22'%3E%3Ccircle cx='11' cy='11' r='8.5'/%3E%3Cpath d='M17.5 11c0 4.819-3.02 8.5-6.5 8.5S4.5 15.819 4.5 11 7.52 2.5 11 2.5s6.5 3.681 6.5 8.5Z'/%3E%3Cpath d='M13.5 11c0 2.447-.331 4.64-.853 6.206-.262.785-.562 1.384-.872 1.777-.314.399-.58.517-.775.517s-.461-.118-.775-.517c-.31-.393-.61-.992-.872-1.777C8.831 15.64 8.5 13.446 8.5 11s.331-4.64.853-6.206c.262-.785.562-1.384.872-1.777.314-.399.58-.517.775-.517s.461.118.775.517c.31.393.61.992.872 1.777.522 1.565.853 3.76.853 6.206Z'/%3E%3Cpath d='M11 7.5c-1.909 0-3.622-.166-4.845-.428-.616-.132-1.08-.283-1.379-.434a1.3 1.3 0 0 1-.224-.138q.07-.058.224-.138c.299-.151.763-.302 1.379-.434C7.378 5.666 9.091 5.5 11 5.5s3.622.166 4.845.428c.616.132 1.08.283 1.379.434.105.053.177.1.224.138q-.07.058-.224.138c-.299.151-.763.302-1.379.434-1.223.262-2.936.428-4.845.428ZM4.486 6.436ZM11 16.5c-1.909 0-3.622-.166-4.845-.428-.616-.132-1.08-.283-1.379-.434a1.3 1.3 0 0 1-.224-.138 1.3 1.3 0 0 1 .224-.138c.299-.151.763-.302 1.379-.434C7.378 14.666 9.091 14.5 11 14.5s3.622.166 4.845.428c.616.132 1.08.283 1.379.434.105.053.177.1.224.138a1.3 1.3 0 0 1-.224.138c-.299.151-.763.302-1.379.434-1.223.262-2.936.428-4.845.428Zm-6.514-1.064ZM11 12.5c-2.46 0-4.672-.222-6.255-.574-.796-.177-1.406-.38-1.805-.59a1.5 1.5 0 0 1-.39-.272.3.3 0 0 1-.047-.064.3.3 0 0 1 .048-.064c.066-.073.189-.167.389-.272.399-.21 1.009-.413 1.805-.59C6.328 9.722 8.54 9.5 11 9.5s4.672.222 6.256.574c.795.177 1.405.38 1.804.59.2.105.323.2.39.272a.3.3 0 0 1 .047.064.3.3 0 0 1-.048.064 1.4 1.4 0 0 1-.389.272c-.399.21-1.009.413-1.804.59-1.584.352-3.796.574-6.256.574Zm-8.501-1.51v.002zm0 .018v.002zm17.002.002v-.002zm0-.018v-.002z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-globe-enabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' fill='none' stroke='%2333b5e5' viewBox='0 0 22 22'%3E%3Ccircle cx='11' cy='11' r='8.5'/%3E%3Cpath d='M17.5 11c0 4.819-3.02 8.5-6.5 8.5S4.5 15.819 4.5 11 7.52 2.5 11 2.5s6.5 3.681 6.5 8.5Z'/%3E%3Cpath d='M13.5 11c0 2.447-.331 4.64-.853 6.206-.262.785-.562 1.384-.872 1.777-.314.399-.58.517-.775.517s-.461-.118-.775-.517c-.31-.393-.61-.992-.872-1.777C8.831 15.64 8.5 13.446 8.5 11s.331-4.64.853-6.206c.262-.785.562-1.384.872-1.777.314-.399.58-.517.775-.517s.461.118.775.517c.31.393.61.992.872 1.777.522 1.565.853 3.76.853 6.206Z'/%3E%3Cpath d='M11 7.5c-1.909 0-3.622-.166-4.845-.428-.616-.132-1.08-.283-1.379-.434a1.3 1.3 0 0 1-.224-.138q.07-.058.224-.138c.299-.151.763-.302 1.379-.434C7.378 5.666 9.091 5.5 11 5.5s3.622.166 4.845.428c.616.132 1.08.283 1.379.434.105.053.177.1.224.138q-.07.058-.224.138c-.299.151-.763.302-1.379.434-1.223.262-2.936.428-4.845.428ZM4.486 6.436ZM11 16.5c-1.909 0-3.622-.166-4.845-.428-.616-.132-1.08-.283-1.379-.434a1.3 1.3 0 0 1-.224-.138 1.3 1.3 0 0 1 .224-.138c.299-.151.763-.302 1.379-.434C7.378 14.666 9.091 14.5 11 14.5s3.622.166 4.845.428c.616.132 1.08.283 1.379.434.105.053.177.1.224.138a1.3 1.3 0 0 1-.224.138c-.299.151-.763.302-1.379.434-1.223.262-2.936.428-4.845.428Zm-6.514-1.064ZM11 12.5c-2.46 0-4.672-.222-6.255-.574-.796-.177-1.406-.38-1.805-.59a1.5 1.5 0 0 1-.39-.272.3.3 0 0 1-.047-.064.3.3 0 0 1 .048-.064c.066-.073.189-.167.389-.272.399-.21 1.009-.413 1.805-.59C6.328 9.722 8.54 9.5 11 9.5s4.672.222 6.256.574c.795.177 1.405.38 1.804.59.2.105.323.2.39.272a.3.3 0 0 1 .047.064.3.3 0 0 1-.048.064 1.4 1.4 0 0 1-.389.272c-.399.21-1.009.413-1.804.59-1.584.352-3.796.574-6.256.574Zm-8.501-1.51v.002zm0 .018v.002zm17.002.002v-.002zm0-.018v-.002z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-terrain .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' fill='%23333' viewBox='0 0 22 22'%3E%3Cpath d='m1.754 13.406 4.453-4.851 3.09 3.09 3.281 3.277.969-.969-3.309-3.312 3.844-4.121 6.148 6.886h1.082v-.855l-7.207-8.07-4.84 5.187L6.169 6.57l-5.48 5.965v.871ZM.688 16.844h20.625v1.375H.688Zm0 0'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-terrain-enabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' fill='%2333b5e5' viewBox='0 0 22 22'%3E%3Cpath d='m1.754 13.406 4.453-4.851 3.09 3.09 3.281 3.277.969-.969-3.309-3.312 3.844-4.121 6.148 6.886h1.082v-.855l-7.207-8.07-4.84 5.187L6.169 6.57l-5.48 5.965v.871ZM.688 16.844h20.625v1.375H.688Zm0 0'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23aaa' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath fill='red' d='m14 5 1 1-9 9-1-1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active-error .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e58978' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background-error .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e54e33' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-waiting .maplibregl-ctrl-icon{animation:maplibregl-spin 2s linear infinite}@media (forced-colors:active){.maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23999' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath fill='red' d='m14 5 1 1-9 9-1-1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active-error .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e58978' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background-error .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e54e33' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")}}@media (forced-colors:active) and (prefers-color-scheme:light){.maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23666' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath fill='red' d='m14 5 1 1-9 9-1-1z'/%3E%3C/svg%3E")}}@keyframes maplibregl-spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}a.maplibregl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='23' fill='none'%3E%3Cpath fill='%23000' fill-opacity='.4' fill-rule='evenodd' d='M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.25 1.25 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.25 1.25 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5 5 0 0 1 .314-.787l.009-.016a4.6 4.6 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.6 4.6 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4q.47.48.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.42 2.42 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.45 2.45 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675q.318.302.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.8 4.8 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.4 3.4 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.25 1.25 0 0 1 .689 1.004 4.7 4.7 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528q-.001.515-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.8 5.8 0 0 1-.548-2.512q0-.429.053-.843a1.3 1.3 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.8 4.8 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.5 4.5 0 0 1-1.935-.424 1.25 1.25 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.4 2.4 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.7 4.7 0 0 1-1.782 1.884 4.77 4.77 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.5 4.5 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a5 5 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.25 1.25 0 0 1-1.115.676h-.098a1.25 1.25 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15q.493-.356.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267q-.133-.329-.526-.658l-.032-.028a3.2 3.2 0 0 0-.668-.428l-.27-.12a3.3 3.3 0 0 0-1.235-.23q-1.136-.001-1.974.493a3.36 3.36 0 0 0-1.3 1.382q-.445.89-.444 2.074 0 1.2.51 2.107a3.8 3.8 0 0 0 1.382 1.381 3.9 3.9 0 0 0 1.893.477q.795 0 1.455-.33zm-2.789-5.38q-.576.675-.575 1.762 0 1.102.559 1.794.576.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.2 2.2 0 0 0 .468-.29l.178-.161a2.2 2.2 0 0 0 .397-.561q.244-.5.244-1.15v-.115q0-.708-.296-1.267l-.043-.077a2.2 2.2 0 0 0-.633-.709l-.13-.086-.047-.028a2.1 2.1 0 0 0-1.073-.285q-1.052 0-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.96.96 0 0 0-.353-.389.85.85 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.6 2.6 0 0 0 .331.423q.319.33.755.548l.173.074q.65.255 1.49.255 1.02 0 1.844-.493a3.45 3.45 0 0 0 1.316-1.4q.493-.904.493-2.089 0-1.909-.988-2.913-.988-1.02-2.584-1.02-.898 0-1.575.347a3 3 0 0 0-.415.262l-.199.166a3.4 3.4 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138q.206.29.48.5l.155.11.053.034q.51.296 1.119.297 1.07 0 1.645-.675.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.435 0-.835.16a2 2 0 0 0-.284.136 2 2 0 0 0-.363.254 2.2 2.2 0 0 0-.46.569l-.082.162a2.6 2.6 0 0 0-.213 1.072v.115q0 .707.296 1.267l.135.211zm.964-.818a1.1 1.1 0 0 0 .367.385.94.94 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a1 1 0 0 0-.503.135l-.012.007a.86.86 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.4 1.4 0 0 0 .14.66zm15.7-6.222q.347-.346.346-.856a1.05 1.05 0 0 0-.345-.79 1.18 1.18 0 0 0-.84-.329q-.51 0-.855.33a1.05 1.05 0 0 0-.346.79q0 .51.346.855.345.346.856.346.51 0 .839-.346zm4.337 9.314.033-1.332q.191.403.59.747l.098.081a4 4 0 0 0 .316.224l.223.122a3.2 3.2 0 0 0 1.44.322 3.8 3.8 0 0 0 1.875-.477 3.5 3.5 0 0 0 1.382-1.366q.527-.89.526-2.09 0-1.184-.444-2.073a3.24 3.24 0 0 0-1.283-1.399q-.823-.51-1.942-.51a3.5 3.5 0 0 0-1.527.344l-.086.043-.165.09a3 3 0 0 0-.33.214q-.432.315-.656.707a2 2 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.5 2.5 0 0 0 .566.7q.117.098.245.18l.144.08a2.1 2.1 0 0 0 .975.232q1.07 0 1.645-.675.576-.69.576-1.778 0-1.102-.576-1.777-.56-.691-1.645-.692a2.2 2.2 0 0 0-1.015.235q-.22.113-.415.282l-.15.142a2.1 2.1 0 0 0-.42.594q-.223.479-.223 1.1v.115q0 .705.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.87.87 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.1 1.1 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013q.345-.13.724-.14l.069-.002q.493 0 .642.099l.247-1.794q-.196-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2 2 0 0 0-.411.148 2.2 2.2 0 0 0-.4.249 2.5 2.5 0 0 0-.485.499 2.7 2.7 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884q0-.546.159-.943a1.5 1.5 0 0 1 .466-.636 2.5 2.5 0 0 1 .399-.253 2 2 0 0 1 .224-.099zm9.784 2.656.05-.922q0-1.743-.856-2.698-.838-.97-2.584-.97-1.119-.001-2.007.493a3.46 3.46 0 0 0-1.4 1.382q-.493.906-.493 2.106 0 1.07.428 1.975.428.89 1.332 1.432.906.526 2.255.526.973 0 1.668-.185l.044-.012.135-.04q.613-.184.984-.421l-.542-1.267q-.3.162-.642.274l-.297.087q-.51.131-1.3.131-.954 0-1.497-.444a1.6 1.6 0 0 1-.192-.193q-.366-.44-.512-1.234l-.004-.021zm-5.427-1.256-.003.022h3.752v-.138q-.011-.727-.288-1.118a1 1 0 0 0-.156-.176q-.46-.428-1.316-.428-.986 0-1.494.604-.379.45-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z'/%3E%3Cpath fill='%23fff' d='m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81q-1.02 0-1.893-.478a3.8 3.8 0 0 1-1.381-1.382q-.51-.906-.51-2.106 0-1.185.444-2.074a3.36 3.36 0 0 1 1.3-1.382q.839-.494 1.974-.494a3.3 3.3 0 0 1 1.234.231 3.3 3.3 0 0 1 .97.575q.396.33.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332q-.279.593-1.02 1.053a3.17 3.17 0 0 1-1.662.444zm.296-1.482q.938 0 1.58-.642.642-.66.642-1.711v-.115q0-.708-.296-1.267a2.2 2.2 0 0 0-.807-.872 2.1 2.1 0 0 0-1.119-.313q-1.053 0-1.629.692-.575.675-.575 1.76 0 1.103.559 1.795.577.675 1.645.675zm6.521-6.237h1.711v1.4q.906-1.597 2.83-1.597 1.596 0 2.584 1.02.988 1.005.988 2.914 0 1.185-.493 2.09a3.46 3.46 0 0 1-1.316 1.399 3.5 3.5 0 0 1-1.844.493q-.954 0-1.662-.329a2.67 2.67 0 0 1-1.086-.97l.017 5.134h-1.728zm4.048 6.22q1.07 0 1.645-.674.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.592 0-1.12.296-.51.28-.822.823-.296.527-.296 1.234v.115q0 .708.296 1.267.313.543.823.855.51.296 1.119.297z'/%3E%3Cpath fill='%23e1e3e9' d='M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.16 1.16 0 0 1-.856-.346 1.17 1.17 0 0 1-.346-.856 1.05 1.05 0 0 1 .346-.79q.346-.329.856-.329.494 0 .839.33a1.05 1.05 0 0 1 .345.79 1.16 1.16 0 0 1-.345.855q-.33.346-.84.346zm7.875 9.133a3.17 3.17 0 0 1-1.662-.444q-.723-.46-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283q.279-.658 1.086-1.119a3.5 3.5 0 0 1 1.778-.477q1.119 0 1.942.51a3.24 3.24 0 0 1 1.283 1.4q.445.888.444 2.072 0 1.201-.526 2.09a3.5 3.5 0 0 1-1.382 1.366 3.8 3.8 0 0 1-1.876.477zm-.296-1.481q1.069 0 1.645-.675.577-.69.577-1.778 0-1.102-.577-1.776-.56-.691-1.645-.692a2.12 2.12 0 0 0-1.58.659q-.642.641-.642 1.694v.115q0 .71.296 1.267a2.4 2.4 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481q.263-.757.856-1.217a2.14 2.14 0 0 1 1.349-.46q.527 0 .724.098l-.247 1.794q-.149-.099-.642-.099-.774 0-1.416.494-.626.493-.626 1.58v3.883h-1.777V9.242zm9.534 7.718q-1.35 0-2.255-.526-.904-.543-1.332-1.432a4.6 4.6 0 0 1-.428-1.975q0-1.2.493-2.106a3.46 3.46 0 0 1 1.4-1.382q.889-.495 2.007-.494 1.744 0 2.584.97.855.956.856 2.7 0 .444-.05.92h-5.43q.18 1.005.708 1.45.542.443 1.497.443.79 0 1.3-.131a4 4 0 0 0 .938-.362l.542 1.267q-.411.263-1.119.46-.708.198-1.711.197zm1.596-4.558q.016-1.02-.444-1.432-.46-.428-1.316-.428-1.728 0-1.991 1.86z'/%3E%3Cpath d='M5.074 15.948a.484.657 0 0 0-.486.659v1.84a.484.657 0 0 0 .486.659h4.101a.484.657 0 0 0 .486-.659v-1.84a.484.657 0 0 0-.486-.659zm3.56 1.16H5.617v.838h3.017z' style='fill:%23fff;fill-rule:evenodd;stroke-width:1.03600001'/%3E%3Cg style='stroke-width:1.12603545'%3E%3Cpath d='M-9.408-1.416c-3.833-.025-7.056 2.912-7.08 6.615-.02 3.08 1.653 4.832 3.107 6.268.903.892 1.721 1.74 2.32 2.902l-.525-.004c-.543-.003-.992.304-1.24.639a1.87 1.87 0 0 0-.362 1.121l-.011 1.877c-.003.402.104.787.347 1.125.244.338.688.653 1.23.656l4.142.028c.542.003.99-.306 1.238-.641a1.87 1.87 0 0 0 .363-1.121l.012-1.875a1.87 1.87 0 0 0-.348-1.127c-.243-.338-.688-.653-1.23-.656l-.518-.004c.597-1.145 1.425-1.983 2.348-2.87 1.473-1.414 3.18-3.149 3.2-6.226-.016-3.59-2.923-6.684-6.993-6.707m-.006 1.1v.002c3.274.02 5.92 2.532 5.9 5.6-.017 2.706-1.39 4.026-2.863 5.44-1.034.994-2.118 2.033-2.814 3.633-.018.041-.052.055-.075.065q-.013.004-.02.01a.34.34 0 0 1-.226.084.34.34 0 0 1-.224-.086l-.092-.077c-.699-1.615-1.768-2.669-2.781-3.67-1.454-1.435-2.797-2.762-2.78-5.478.02-3.067 2.7-5.545 5.975-5.523m-.02 2.826c-1.62-.01-2.944 1.315-2.955 2.96-.01 1.646 1.295 2.988 2.916 2.999h.002c1.621.01 2.943-1.316 2.953-2.961.011-1.646-1.294-2.988-2.916-2.998m-.005 1.1c1.017.006 1.829.83 1.822 1.89s-.83 1.874-1.848 1.867c-1.018-.006-1.829-.83-1.822-1.89s.83-1.874 1.848-1.868m-2.155 11.857 4.14.025c.271.002.49.305.487.676l-.013 1.875c-.003.37-.224.67-.495.668l-4.14-.025c-.27-.002-.487-.306-.485-.676l.012-1.875c.003-.37.224-.67.494-.668' style='color:%23000;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:%23000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:%23000;solid-opacity:1;vector-effect:none;fill:%23000;fill-opacity:.4;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-9.415-.316C-12.69-.338-15.37 2.14-15.39 5.207c-.017 2.716 1.326 4.041 2.78 5.477 1.013 1 2.081 2.055 2.78 3.67l.092.076a.34.34 0 0 0 .225.086.34.34 0 0 0 .227-.083l.019-.01c.022-.009.057-.024.074-.064.697-1.6 1.78-2.64 2.814-3.634 1.473-1.414 2.847-2.733 2.864-5.44.02-3.067-2.627-5.58-5.901-5.601m-.057 8.784c1.621.011 2.944-1.315 2.955-2.96.01-1.646-1.295-2.988-2.916-2.999-1.622-.01-2.945 1.315-2.955 2.96s1.295 2.989 2.916 3' style='clip-rule:evenodd;fill:%23e1e3e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-11.594 15.465c-.27-.002-.492.297-.494.668l-.012 1.876c-.003.371.214.673.485.675l4.14.027c.271.002.492-.298.495-.668l.012-1.877c.003-.37-.215-.672-.485-.674z' style='clip-rule:evenodd;fill:%23fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3C/g%3E%3C/svg%3E");background-repeat:no-repeat;cursor:pointer;display:block;height:23px;margin:0 0 -4px -4px;overflow:hidden;width:88px}a.maplibregl-ctrl-logo.maplibregl-compact{width:14px}@media (forced-colors:active){a.maplibregl-ctrl-logo{background-color:transparent;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='23' fill='none'%3E%3Cpath fill='%23000' fill-opacity='.4' fill-rule='evenodd' d='M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.25 1.25 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.25 1.25 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5 5 0 0 1 .314-.787l.009-.016a4.6 4.6 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.6 4.6 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4q.47.48.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.42 2.42 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.45 2.45 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675q.318.302.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.8 4.8 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.4 3.4 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.25 1.25 0 0 1 .689 1.004 4.7 4.7 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528q-.001.515-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.8 5.8 0 0 1-.548-2.512q0-.429.053-.843a1.3 1.3 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.8 4.8 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.5 4.5 0 0 1-1.935-.424 1.25 1.25 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.4 2.4 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.7 4.7 0 0 1-1.782 1.884 4.77 4.77 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.5 4.5 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a5 5 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.25 1.25 0 0 1-1.115.676h-.098a1.25 1.25 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15q.493-.356.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267q-.133-.329-.526-.658l-.032-.028a3.2 3.2 0 0 0-.668-.428l-.27-.12a3.3 3.3 0 0 0-1.235-.23q-1.136-.001-1.974.493a3.36 3.36 0 0 0-1.3 1.382q-.445.89-.444 2.074 0 1.2.51 2.107a3.8 3.8 0 0 0 1.382 1.381 3.9 3.9 0 0 0 1.893.477q.795 0 1.455-.33zm-2.789-5.38q-.576.675-.575 1.762 0 1.102.559 1.794.576.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.2 2.2 0 0 0 .468-.29l.178-.161a2.2 2.2 0 0 0 .397-.561q.244-.5.244-1.15v-.115q0-.708-.296-1.267l-.043-.077a2.2 2.2 0 0 0-.633-.709l-.13-.086-.047-.028a2.1 2.1 0 0 0-1.073-.285q-1.052 0-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.96.96 0 0 0-.353-.389.85.85 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.6 2.6 0 0 0 .331.423q.319.33.755.548l.173.074q.65.255 1.49.255 1.02 0 1.844-.493a3.45 3.45 0 0 0 1.316-1.4q.493-.904.493-2.089 0-1.909-.988-2.913-.988-1.02-2.584-1.02-.898 0-1.575.347a3 3 0 0 0-.415.262l-.199.166a3.4 3.4 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138q.206.29.48.5l.155.11.053.034q.51.296 1.119.297 1.07 0 1.645-.675.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.435 0-.835.16a2 2 0 0 0-.284.136 2 2 0 0 0-.363.254 2.2 2.2 0 0 0-.46.569l-.082.162a2.6 2.6 0 0 0-.213 1.072v.115q0 .707.296 1.267l.135.211zm.964-.818a1.1 1.1 0 0 0 .367.385.94.94 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a1 1 0 0 0-.503.135l-.012.007a.86.86 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.4 1.4 0 0 0 .14.66zm15.7-6.222q.347-.346.346-.856a1.05 1.05 0 0 0-.345-.79 1.18 1.18 0 0 0-.84-.329q-.51 0-.855.33a1.05 1.05 0 0 0-.346.79q0 .51.346.855.345.346.856.346.51 0 .839-.346zm4.337 9.314.033-1.332q.191.403.59.747l.098.081a4 4 0 0 0 .316.224l.223.122a3.2 3.2 0 0 0 1.44.322 3.8 3.8 0 0 0 1.875-.477 3.5 3.5 0 0 0 1.382-1.366q.527-.89.526-2.09 0-1.184-.444-2.073a3.24 3.24 0 0 0-1.283-1.399q-.823-.51-1.942-.51a3.5 3.5 0 0 0-1.527.344l-.086.043-.165.09a3 3 0 0 0-.33.214q-.432.315-.656.707a2 2 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.5 2.5 0 0 0 .566.7q.117.098.245.18l.144.08a2.1 2.1 0 0 0 .975.232q1.07 0 1.645-.675.576-.69.576-1.778 0-1.102-.576-1.777-.56-.691-1.645-.692a2.2 2.2 0 0 0-1.015.235q-.22.113-.415.282l-.15.142a2.1 2.1 0 0 0-.42.594q-.223.479-.223 1.1v.115q0 .705.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.87.87 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.1 1.1 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013q.345-.13.724-.14l.069-.002q.493 0 .642.099l.247-1.794q-.196-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2 2 0 0 0-.411.148 2.2 2.2 0 0 0-.4.249 2.5 2.5 0 0 0-.485.499 2.7 2.7 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884q0-.546.159-.943a1.5 1.5 0 0 1 .466-.636 2.5 2.5 0 0 1 .399-.253 2 2 0 0 1 .224-.099zm9.784 2.656.05-.922q0-1.743-.856-2.698-.838-.97-2.584-.97-1.119-.001-2.007.493a3.46 3.46 0 0 0-1.4 1.382q-.493.906-.493 2.106 0 1.07.428 1.975.428.89 1.332 1.432.906.526 2.255.526.973 0 1.668-.185l.044-.012.135-.04q.613-.184.984-.421l-.542-1.267q-.3.162-.642.274l-.297.087q-.51.131-1.3.131-.954 0-1.497-.444a1.6 1.6 0 0 1-.192-.193q-.366-.44-.512-1.234l-.004-.021zm-5.427-1.256-.003.022h3.752v-.138q-.011-.727-.288-1.118a1 1 0 0 0-.156-.176q-.46-.428-1.316-.428-.986 0-1.494.604-.379.45-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z'/%3E%3Cpath fill='%23fff' d='m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81q-1.02 0-1.893-.478a3.8 3.8 0 0 1-1.381-1.382q-.51-.906-.51-2.106 0-1.185.444-2.074a3.36 3.36 0 0 1 1.3-1.382q.839-.494 1.974-.494a3.3 3.3 0 0 1 1.234.231 3.3 3.3 0 0 1 .97.575q.396.33.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332q-.279.593-1.02 1.053a3.17 3.17 0 0 1-1.662.444zm.296-1.482q.938 0 1.58-.642.642-.66.642-1.711v-.115q0-.708-.296-1.267a2.2 2.2 0 0 0-.807-.872 2.1 2.1 0 0 0-1.119-.313q-1.053 0-1.629.692-.575.675-.575 1.76 0 1.103.559 1.795.577.675 1.645.675zm6.521-6.237h1.711v1.4q.906-1.597 2.83-1.597 1.596 0 2.584 1.02.988 1.005.988 2.914 0 1.185-.493 2.09a3.46 3.46 0 0 1-1.316 1.399 3.5 3.5 0 0 1-1.844.493q-.954 0-1.662-.329a2.67 2.67 0 0 1-1.086-.97l.017 5.134h-1.728zm4.048 6.22q1.07 0 1.645-.674.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.592 0-1.12.296-.51.28-.822.823-.296.527-.296 1.234v.115q0 .708.296 1.267.313.543.823.855.51.296 1.119.297z'/%3E%3Cpath fill='%23e1e3e9' d='M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.16 1.16 0 0 1-.856-.346 1.17 1.17 0 0 1-.346-.856 1.05 1.05 0 0 1 .346-.79q.346-.329.856-.329.494 0 .839.33a1.05 1.05 0 0 1 .345.79 1.16 1.16 0 0 1-.345.855q-.33.346-.84.346zm7.875 9.133a3.17 3.17 0 0 1-1.662-.444q-.723-.46-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283q.279-.658 1.086-1.119a3.5 3.5 0 0 1 1.778-.477q1.119 0 1.942.51a3.24 3.24 0 0 1 1.283 1.4q.445.888.444 2.072 0 1.201-.526 2.09a3.5 3.5 0 0 1-1.382 1.366 3.8 3.8 0 0 1-1.876.477zm-.296-1.481q1.069 0 1.645-.675.577-.69.577-1.778 0-1.102-.577-1.776-.56-.691-1.645-.692a2.12 2.12 0 0 0-1.58.659q-.642.641-.642 1.694v.115q0 .71.296 1.267a2.4 2.4 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481q.263-.757.856-1.217a2.14 2.14 0 0 1 1.349-.46q.527 0 .724.098l-.247 1.794q-.149-.099-.642-.099-.774 0-1.416.494-.626.493-.626 1.58v3.883h-1.777V9.242zm9.534 7.718q-1.35 0-2.255-.526-.904-.543-1.332-1.432a4.6 4.6 0 0 1-.428-1.975q0-1.2.493-2.106a3.46 3.46 0 0 1 1.4-1.382q.889-.495 2.007-.494 1.744 0 2.584.97.855.956.856 2.7 0 .444-.05.92h-5.43q.18 1.005.708 1.45.542.443 1.497.443.79 0 1.3-.131a4 4 0 0 0 .938-.362l.542 1.267q-.411.263-1.119.46-.708.198-1.711.197zm1.596-4.558q.016-1.02-.444-1.432-.46-.428-1.316-.428-1.728 0-1.991 1.86z'/%3E%3Cpath d='M5.074 15.948a.484.657 0 0 0-.486.659v1.84a.484.657 0 0 0 .486.659h4.101a.484.657 0 0 0 .486-.659v-1.84a.484.657 0 0 0-.486-.659zm3.56 1.16H5.617v.838h3.017z' style='fill:%23fff;fill-rule:evenodd;stroke-width:1.03600001'/%3E%3Cg style='stroke-width:1.12603545'%3E%3Cpath d='M-9.408-1.416c-3.833-.025-7.056 2.912-7.08 6.615-.02 3.08 1.653 4.832 3.107 6.268.903.892 1.721 1.74 2.32 2.902l-.525-.004c-.543-.003-.992.304-1.24.639a1.87 1.87 0 0 0-.362 1.121l-.011 1.877c-.003.402.104.787.347 1.125.244.338.688.653 1.23.656l4.142.028c.542.003.99-.306 1.238-.641a1.87 1.87 0 0 0 .363-1.121l.012-1.875a1.87 1.87 0 0 0-.348-1.127c-.243-.338-.688-.653-1.23-.656l-.518-.004c.597-1.145 1.425-1.983 2.348-2.87 1.473-1.414 3.18-3.149 3.2-6.226-.016-3.59-2.923-6.684-6.993-6.707m-.006 1.1v.002c3.274.02 5.92 2.532 5.9 5.6-.017 2.706-1.39 4.026-2.863 5.44-1.034.994-2.118 2.033-2.814 3.633-.018.041-.052.055-.075.065q-.013.004-.02.01a.34.34 0 0 1-.226.084.34.34 0 0 1-.224-.086l-.092-.077c-.699-1.615-1.768-2.669-2.781-3.67-1.454-1.435-2.797-2.762-2.78-5.478.02-3.067 2.7-5.545 5.975-5.523m-.02 2.826c-1.62-.01-2.944 1.315-2.955 2.96-.01 1.646 1.295 2.988 2.916 2.999h.002c1.621.01 2.943-1.316 2.953-2.961.011-1.646-1.294-2.988-2.916-2.998m-.005 1.1c1.017.006 1.829.83 1.822 1.89s-.83 1.874-1.848 1.867c-1.018-.006-1.829-.83-1.822-1.89s.83-1.874 1.848-1.868m-2.155 11.857 4.14.025c.271.002.49.305.487.676l-.013 1.875c-.003.37-.224.67-.495.668l-4.14-.025c-.27-.002-.487-.306-.485-.676l.012-1.875c.003-.37.224-.67.494-.668' style='color:%23000;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:%23000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:%23000;solid-opacity:1;vector-effect:none;fill:%23000;fill-opacity:.4;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-9.415-.316C-12.69-.338-15.37 2.14-15.39 5.207c-.017 2.716 1.326 4.041 2.78 5.477 1.013 1 2.081 2.055 2.78 3.67l.092.076a.34.34 0 0 0 .225.086.34.34 0 0 0 .227-.083l.019-.01c.022-.009.057-.024.074-.064.697-1.6 1.78-2.64 2.814-3.634 1.473-1.414 2.847-2.733 2.864-5.44.02-3.067-2.627-5.58-5.901-5.601m-.057 8.784c1.621.011 2.944-1.315 2.955-2.96.01-1.646-1.295-2.988-2.916-2.999-1.622-.01-2.945 1.315-2.955 2.96s1.295 2.989 2.916 3' style='clip-rule:evenodd;fill:%23e1e3e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-11.594 15.465c-.27-.002-.492.297-.494.668l-.012 1.876c-.003.371.214.673.485.675l4.14.027c.271.002.492-.298.495-.668l.012-1.877c.003-.37-.215-.672-.485-.674z' style='clip-rule:evenodd;fill:%23fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3C/g%3E%3C/svg%3E")}}@media (forced-colors:active) and (prefers-color-scheme:light){a.maplibregl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='23' fill='none'%3E%3Cpath fill='%23000' fill-opacity='.4' fill-rule='evenodd' d='M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.25 1.25 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.25 1.25 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5 5 0 0 1 .314-.787l.009-.016a4.6 4.6 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.6 4.6 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4q.47.48.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.42 2.42 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.45 2.45 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675q.318.302.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.8 4.8 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.4 3.4 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.25 1.25 0 0 1 .689 1.004 4.7 4.7 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528q-.001.515-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.8 5.8 0 0 1-.548-2.512q0-.429.053-.843a1.3 1.3 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.8 4.8 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.5 4.5 0 0 1-1.935-.424 1.25 1.25 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.4 2.4 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.7 4.7 0 0 1-1.782 1.884 4.77 4.77 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.5 4.5 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a5 5 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.25 1.25 0 0 1-1.115.676h-.098a1.25 1.25 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15q.493-.356.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267q-.133-.329-.526-.658l-.032-.028a3.2 3.2 0 0 0-.668-.428l-.27-.12a3.3 3.3 0 0 0-1.235-.23q-1.136-.001-1.974.493a3.36 3.36 0 0 0-1.3 1.382q-.445.89-.444 2.074 0 1.2.51 2.107a3.8 3.8 0 0 0 1.382 1.381 3.9 3.9 0 0 0 1.893.477q.795 0 1.455-.33zm-2.789-5.38q-.576.675-.575 1.762 0 1.102.559 1.794.576.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.2 2.2 0 0 0 .468-.29l.178-.161a2.2 2.2 0 0 0 .397-.561q.244-.5.244-1.15v-.115q0-.708-.296-1.267l-.043-.077a2.2 2.2 0 0 0-.633-.709l-.13-.086-.047-.028a2.1 2.1 0 0 0-1.073-.285q-1.052 0-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.96.96 0 0 0-.353-.389.85.85 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.6 2.6 0 0 0 .331.423q.319.33.755.548l.173.074q.65.255 1.49.255 1.02 0 1.844-.493a3.45 3.45 0 0 0 1.316-1.4q.493-.904.493-2.089 0-1.909-.988-2.913-.988-1.02-2.584-1.02-.898 0-1.575.347a3 3 0 0 0-.415.262l-.199.166a3.4 3.4 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138q.206.29.48.5l.155.11.053.034q.51.296 1.119.297 1.07 0 1.645-.675.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.435 0-.835.16a2 2 0 0 0-.284.136 2 2 0 0 0-.363.254 2.2 2.2 0 0 0-.46.569l-.082.162a2.6 2.6 0 0 0-.213 1.072v.115q0 .707.296 1.267l.135.211zm.964-.818a1.1 1.1 0 0 0 .367.385.94.94 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a1 1 0 0 0-.503.135l-.012.007a.86.86 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.4 1.4 0 0 0 .14.66zm15.7-6.222q.347-.346.346-.856a1.05 1.05 0 0 0-.345-.79 1.18 1.18 0 0 0-.84-.329q-.51 0-.855.33a1.05 1.05 0 0 0-.346.79q0 .51.346.855.345.346.856.346.51 0 .839-.346zm4.337 9.314.033-1.332q.191.403.59.747l.098.081a4 4 0 0 0 .316.224l.223.122a3.2 3.2 0 0 0 1.44.322 3.8 3.8 0 0 0 1.875-.477 3.5 3.5 0 0 0 1.382-1.366q.527-.89.526-2.09 0-1.184-.444-2.073a3.24 3.24 0 0 0-1.283-1.399q-.823-.51-1.942-.51a3.5 3.5 0 0 0-1.527.344l-.086.043-.165.09a3 3 0 0 0-.33.214q-.432.315-.656.707a2 2 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.5 2.5 0 0 0 .566.7q.117.098.245.18l.144.08a2.1 2.1 0 0 0 .975.232q1.07 0 1.645-.675.576-.69.576-1.778 0-1.102-.576-1.777-.56-.691-1.645-.692a2.2 2.2 0 0 0-1.015.235q-.22.113-.415.282l-.15.142a2.1 2.1 0 0 0-.42.594q-.223.479-.223 1.1v.115q0 .705.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.87.87 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.1 1.1 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013q.345-.13.724-.14l.069-.002q.493 0 .642.099l.247-1.794q-.196-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2 2 0 0 0-.411.148 2.2 2.2 0 0 0-.4.249 2.5 2.5 0 0 0-.485.499 2.7 2.7 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884q0-.546.159-.943a1.5 1.5 0 0 1 .466-.636 2.5 2.5 0 0 1 .399-.253 2 2 0 0 1 .224-.099zm9.784 2.656.05-.922q0-1.743-.856-2.698-.838-.97-2.584-.97-1.119-.001-2.007.493a3.46 3.46 0 0 0-1.4 1.382q-.493.906-.493 2.106 0 1.07.428 1.975.428.89 1.332 1.432.906.526 2.255.526.973 0 1.668-.185l.044-.012.135-.04q.613-.184.984-.421l-.542-1.267q-.3.162-.642.274l-.297.087q-.51.131-1.3.131-.954 0-1.497-.444a1.6 1.6 0 0 1-.192-.193q-.366-.44-.512-1.234l-.004-.021zm-5.427-1.256-.003.022h3.752v-.138q-.011-.727-.288-1.118a1 1 0 0 0-.156-.176q-.46-.428-1.316-.428-.986 0-1.494.604-.379.45-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z'/%3E%3Cpath fill='%23fff' d='m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81q-1.02 0-1.893-.478a3.8 3.8 0 0 1-1.381-1.382q-.51-.906-.51-2.106 0-1.185.444-2.074a3.36 3.36 0 0 1 1.3-1.382q.839-.494 1.974-.494a3.3 3.3 0 0 1 1.234.231 3.3 3.3 0 0 1 .97.575q.396.33.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332q-.279.593-1.02 1.053a3.17 3.17 0 0 1-1.662.444zm.296-1.482q.938 0 1.58-.642.642-.66.642-1.711v-.115q0-.708-.296-1.267a2.2 2.2 0 0 0-.807-.872 2.1 2.1 0 0 0-1.119-.313q-1.053 0-1.629.692-.575.675-.575 1.76 0 1.103.559 1.795.577.675 1.645.675zm6.521-6.237h1.711v1.4q.906-1.597 2.83-1.597 1.596 0 2.584 1.02.988 1.005.988 2.914 0 1.185-.493 2.09a3.46 3.46 0 0 1-1.316 1.399 3.5 3.5 0 0 1-1.844.493q-.954 0-1.662-.329a2.67 2.67 0 0 1-1.086-.97l.017 5.134h-1.728zm4.048 6.22q1.07 0 1.645-.674.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.592 0-1.12.296-.51.28-.822.823-.296.527-.296 1.234v.115q0 .708.296 1.267.313.543.823.855.51.296 1.119.297z'/%3E%3Cpath fill='%23e1e3e9' d='M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.16 1.16 0 0 1-.856-.346 1.17 1.17 0 0 1-.346-.856 1.05 1.05 0 0 1 .346-.79q.346-.329.856-.329.494 0 .839.33a1.05 1.05 0 0 1 .345.79 1.16 1.16 0 0 1-.345.855q-.33.346-.84.346zm7.875 9.133a3.17 3.17 0 0 1-1.662-.444q-.723-.46-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283q.279-.658 1.086-1.119a3.5 3.5 0 0 1 1.778-.477q1.119 0 1.942.51a3.24 3.24 0 0 1 1.283 1.4q.445.888.444 2.072 0 1.201-.526 2.09a3.5 3.5 0 0 1-1.382 1.366 3.8 3.8 0 0 1-1.876.477zm-.296-1.481q1.069 0 1.645-.675.577-.69.577-1.778 0-1.102-.577-1.776-.56-.691-1.645-.692a2.12 2.12 0 0 0-1.58.659q-.642.641-.642 1.694v.115q0 .71.296 1.267a2.4 2.4 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481q.263-.757.856-1.217a2.14 2.14 0 0 1 1.349-.46q.527 0 .724.098l-.247 1.794q-.149-.099-.642-.099-.774 0-1.416.494-.626.493-.626 1.58v3.883h-1.777V9.242zm9.534 7.718q-1.35 0-2.255-.526-.904-.543-1.332-1.432a4.6 4.6 0 0 1-.428-1.975q0-1.2.493-2.106a3.46 3.46 0 0 1 1.4-1.382q.889-.495 2.007-.494 1.744 0 2.584.97.855.956.856 2.7 0 .444-.05.92h-5.43q.18 1.005.708 1.45.542.443 1.497.443.79 0 1.3-.131a4 4 0 0 0 .938-.362l.542 1.267q-.411.263-1.119.46-.708.198-1.711.197zm1.596-4.558q.016-1.02-.444-1.432-.46-.428-1.316-.428-1.728 0-1.991 1.86z'/%3E%3Cpath d='M5.074 15.948a.484.657 0 0 0-.486.659v1.84a.484.657 0 0 0 .486.659h4.101a.484.657 0 0 0 .486-.659v-1.84a.484.657 0 0 0-.486-.659zm3.56 1.16H5.617v.838h3.017z' style='fill:%23fff;fill-rule:evenodd;stroke-width:1.03600001'/%3E%3Cg style='stroke-width:1.12603545'%3E%3Cpath d='M-9.408-1.416c-3.833-.025-7.056 2.912-7.08 6.615-.02 3.08 1.653 4.832 3.107 6.268.903.892 1.721 1.74 2.32 2.902l-.525-.004c-.543-.003-.992.304-1.24.639a1.87 1.87 0 0 0-.362 1.121l-.011 1.877c-.003.402.104.787.347 1.125.244.338.688.653 1.23.656l4.142.028c.542.003.99-.306 1.238-.641a1.87 1.87 0 0 0 .363-1.121l.012-1.875a1.87 1.87 0 0 0-.348-1.127c-.243-.338-.688-.653-1.23-.656l-.518-.004c.597-1.145 1.425-1.983 2.348-2.87 1.473-1.414 3.18-3.149 3.2-6.226-.016-3.59-2.923-6.684-6.993-6.707m-.006 1.1v.002c3.274.02 5.92 2.532 5.9 5.6-.017 2.706-1.39 4.026-2.863 5.44-1.034.994-2.118 2.033-2.814 3.633-.018.041-.052.055-.075.065q-.013.004-.02.01a.34.34 0 0 1-.226.084.34.34 0 0 1-.224-.086l-.092-.077c-.699-1.615-1.768-2.669-2.781-3.67-1.454-1.435-2.797-2.762-2.78-5.478.02-3.067 2.7-5.545 5.975-5.523m-.02 2.826c-1.62-.01-2.944 1.315-2.955 2.96-.01 1.646 1.295 2.988 2.916 2.999h.002c1.621.01 2.943-1.316 2.953-2.961.011-1.646-1.294-2.988-2.916-2.998m-.005 1.1c1.017.006 1.829.83 1.822 1.89s-.83 1.874-1.848 1.867c-1.018-.006-1.829-.83-1.822-1.89s.83-1.874 1.848-1.868m-2.155 11.857 4.14.025c.271.002.49.305.487.676l-.013 1.875c-.003.37-.224.67-.495.668l-4.14-.025c-.27-.002-.487-.306-.485-.676l.012-1.875c.003-.37.224-.67.494-.668' style='color:%23000;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:%23000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:%23000;solid-opacity:1;vector-effect:none;fill:%23000;fill-opacity:.4;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-9.415-.316C-12.69-.338-15.37 2.14-15.39 5.207c-.017 2.716 1.326 4.041 2.78 5.477 1.013 1 2.081 2.055 2.78 3.67l.092.076a.34.34 0 0 0 .225.086.34.34 0 0 0 .227-.083l.019-.01c.022-.009.057-.024.074-.064.697-1.6 1.78-2.64 2.814-3.634 1.473-1.414 2.847-2.733 2.864-5.44.02-3.067-2.627-5.58-5.901-5.601m-.057 8.784c1.621.011 2.944-1.315 2.955-2.96.01-1.646-1.295-2.988-2.916-2.999-1.622-.01-2.945 1.315-2.955 2.96s1.295 2.989 2.916 3' style='clip-rule:evenodd;fill:%23e1e3e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-11.594 15.465c-.27-.002-.492.297-.494.668l-.012 1.876c-.003.371.214.673.485.675l4.14.027c.271.002.492-.298.495-.668l.012-1.877c.003-.37-.215-.672-.485-.674z' style='clip-rule:evenodd;fill:%23fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3C/g%3E%3C/svg%3E")}}.maplibregl-ctrl.maplibregl-ctrl-attrib{background-color:#ffffff80;margin:0;padding:0 5px}@media screen{.maplibregl-ctrl-attrib.maplibregl-compact{background-color:#fff;border-radius:12px;box-sizing:content-box;color:#000;margin:10px;min-height:20px;padding:2px 24px 2px 0;position:relative}.maplibregl-ctrl-attrib.maplibregl-compact-show{padding:2px 28px 2px 8px;visibility:visible}.maplibregl-ctrl-bottom-left>.maplibregl-ctrl-attrib.maplibregl-compact-show,.maplibregl-ctrl-top-left>.maplibregl-ctrl-attrib.maplibregl-compact-show{border-radius:12px;padding:2px 8px 2px 28px}.maplibregl-ctrl-attrib.maplibregl-compact .maplibregl-ctrl-attrib-inner{display:none}.maplibregl-ctrl-attrib-button{background-color:#ffffff80;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill-rule='evenodd' viewBox='0 0 20 20'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E");border:0;border-radius:12px;box-sizing:border-box;cursor:pointer;display:none;height:24px;outline:none;position:absolute;right:0;top:0;width:24px}.maplibregl-ctrl-attrib summary.maplibregl-ctrl-attrib-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;list-style:none}.maplibregl-ctrl-attrib summary.maplibregl-ctrl-attrib-button::-webkit-details-marker{display:none}.maplibregl-ctrl-bottom-left .maplibregl-ctrl-attrib-button,.maplibregl-ctrl-top-left .maplibregl-ctrl-attrib-button{left:0}.maplibregl-ctrl-attrib.maplibregl-compact .maplibregl-ctrl-attrib-button,.maplibregl-ctrl-attrib.maplibregl-compact-show .maplibregl-ctrl-attrib-inner{display:block}.maplibregl-ctrl-attrib.maplibregl-compact-show .maplibregl-ctrl-attrib-button{background-color:#0000000d}.maplibregl-ctrl-bottom-right>.maplibregl-ctrl-attrib.maplibregl-compact:after{bottom:0;right:0}.maplibregl-ctrl-top-right>.maplibregl-ctrl-attrib.maplibregl-compact:after{right:0;top:0}.maplibregl-ctrl-top-left>.maplibregl-ctrl-attrib.maplibregl-compact:after{left:0;top:0}.maplibregl-ctrl-bottom-left>.maplibregl-ctrl-attrib.maplibregl-compact:after{bottom:0;left:0}}@media screen and (forced-colors:active){.maplibregl-ctrl-attrib.maplibregl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='%23fff' fill-rule='evenodd' viewBox='0 0 20 20'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}@media screen and (forced-colors:active) and (prefers-color-scheme:light){.maplibregl-ctrl-attrib.maplibregl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill-rule='evenodd' viewBox='0 0 20 20'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}.maplibregl-ctrl-attrib a{color:#000000bf;text-decoration:none}.maplibregl-ctrl-attrib a:hover{color:inherit;text-decoration:underline}.maplibregl-attrib-empty{display:none}.maplibregl-ctrl-scale{background-color:#ffffffbf;border:2px solid #333;border-top:#333;box-sizing:border-box;color:#333;font-size:10px;padding:0 5px}.maplibregl-popup{display:flex;left:0;pointer-events:none;position:absolute;top:0;will-change:transform}.maplibregl-popup-anchor-top,.maplibregl-popup-anchor-top-left,.maplibregl-popup-anchor-top-right{flex-direction:column}.maplibregl-popup-anchor-bottom,.maplibregl-popup-anchor-bottom-left,.maplibregl-popup-anchor-bottom-right{flex-direction:column-reverse}.maplibregl-popup-anchor-left{flex-direction:row}.maplibregl-popup-anchor-right{flex-direction:row-reverse}.maplibregl-popup-tip{border:10px solid transparent;height:0;width:0;z-index:1}.maplibregl-popup-anchor-top .maplibregl-popup-tip{align-self:center;border-bottom-color:#fff;border-top:none}.maplibregl-popup-anchor-top-left .maplibregl-popup-tip{align-self:flex-start;border-bottom-color:#fff;border-left:none;border-top:none}.maplibregl-popup-anchor-top-right .maplibregl-popup-tip{align-self:flex-end;border-bottom-color:#fff;border-right:none;border-top:none}.maplibregl-popup-anchor-bottom .maplibregl-popup-tip{align-self:center;border-bottom:none;border-top-color:#fff}.maplibregl-popup-anchor-bottom-left .maplibregl-popup-tip{align-self:flex-start;border-bottom:none;border-left:none;border-top-color:#fff}.maplibregl-popup-anchor-bottom-right .maplibregl-popup-tip{align-self:flex-end;border-bottom:none;border-right:none;border-top-color:#fff}.maplibregl-popup-anchor-left .maplibregl-popup-tip{align-self:center;border-left:none;border-right-color:#fff}.maplibregl-popup-anchor-right .maplibregl-popup-tip{align-self:center;border-left-color:#fff;border-right:none}.maplibregl-popup-close-button{background-color:transparent;border:0;border-radius:0 3px 0 0;cursor:pointer;position:absolute;right:0;top:0}.maplibregl-popup-close-button:hover{background-color:#0000000d}.maplibregl-popup-content{background:#fff;border-radius:3px;box-shadow:0 1px 2px #0000001a;padding:15px 10px;pointer-events:auto;position:relative}.maplibregl-popup-anchor-top-left .maplibregl-popup-content{border-top-left-radius:0}.maplibregl-popup-anchor-top-right .maplibregl-popup-content{border-top-right-radius:0}.maplibregl-popup-anchor-bottom-left .maplibregl-popup-content{border-bottom-left-radius:0}.maplibregl-popup-anchor-bottom-right .maplibregl-popup-content{border-bottom-right-radius:0}.maplibregl-popup-track-pointer{display:none}.maplibregl-popup-track-pointer *{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.maplibregl-map:hover .maplibregl-popup-track-pointer{display:flex}.maplibregl-map:active .maplibregl-popup-track-pointer{display:none}.maplibregl-marker{left:0;position:absolute;top:0;transition:opacity .2s;will-change:transform}.maplibregl-user-location-dot,.maplibregl-user-location-dot:before{background-color:#1da1f2;border-radius:50%;height:15px;width:15px}.maplibregl-user-location-dot:before{animation:maplibregl-user-location-dot-pulse 2s infinite;content:"";position:absolute}.maplibregl-user-location-dot:after{border:2px solid #fff;border-radius:50%;box-shadow:0 0 3px #00000059;box-sizing:border-box;content:"";height:19px;left:-2px;position:absolute;top:-2px;width:19px}@keyframes maplibregl-user-location-dot-pulse{0%{opacity:1;transform:scale(1)}70%{opacity:0;transform:scale(3)}to{opacity:0;transform:scale(1)}}.maplibregl-user-location-dot-stale{background-color:#aaa}.maplibregl-user-location-dot-stale:after{display:none}.maplibregl-user-location-accuracy-circle{background-color:#1da1f233;border-radius:100%;height:1px;width:1px}.maplibregl-crosshair,.maplibregl-crosshair .maplibregl-interactive,.maplibregl-crosshair .maplibregl-interactive:active{cursor:crosshair}.maplibregl-boxzoom{background:#fff;border:2px dotted #202020;height:0;left:0;opacity:.5;position:absolute;top:0;width:0}.maplibregl-cooperative-gesture-screen{align-items:center;background:#0006;color:#fff;display:flex;font-size:1.4em;inset:0;justify-content:center;line-height:1.2;opacity:0;padding:1rem;pointer-events:none;position:absolute;transition:opacity 1s ease 1s;z-index:99999}.maplibregl-cooperative-gesture-screen.maplibregl-show{opacity:1;transition:opacity .05s}.maplibregl-cooperative-gesture-screen .maplibregl-mobile-message{display:none}@media (hover:none),(pointer:coarse){.maplibregl-cooperative-gesture-screen .maplibregl-desktop-message{display:none}.maplibregl-cooperative-gesture-screen .maplibregl-mobile-message{display:block}}.maplibregl-pseudo-fullscreen{height:100%!important;left:0!important;position:fixed!important;top:0!important;width:100%!important;z-index:99999}.uplot,.uplot *,.uplot *:before,.uplot *:after{box-sizing:border-box}.uplot{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";line-height:1.5;width:min-content}.u-title{text-align:center;font-size:18px;font-weight:700}.u-wrap{position:relative;user-select:none}.u-over,.u-under{position:absolute}.u-under{overflow:hidden}.uplot canvas{display:block;position:relative;width:100%;height:100%}.u-axis{position:absolute}.u-legend{font-size:14px;margin:auto;text-align:center}.u-inline{display:block}.u-inline *{display:inline-block}.u-inline tr{margin-right:16px}.u-legend th{font-weight:600}.u-legend th>*{vertical-align:middle;display:inline-block}.u-legend .u-marker{width:1em;height:1em;margin-right:4px;background-clip:padding-box!important}.u-inline.u-live th:after{content:":";vertical-align:middle}.u-inline:not(.u-live) .u-value{display:none}.u-series>*{padding:4px}.u-series th{cursor:pointer}.u-legend .u-off>*{opacity:.3}.u-select{background:#00000012;position:absolute;pointer-events:none}.u-cursor-x,.u-cursor-y{position:absolute;left:0;top:0;pointer-events:none;will-change:transform}.u-hz .u-cursor-x,.u-vt .u-cursor-y{height:100%;border-right:1px dashed #607D8B}.u-hz .u-cursor-y,.u-vt .u-cursor-x{width:100%;border-bottom:1px dashed #607D8B}.u-cursor-pt{position:absolute;top:0;left:0;border-radius:50%;border:0 solid;pointer-events:none;will-change:transform;background-clip:padding-box!important}.u-axis.u-off,.u-select.u-off,.u-cursor-x.u-off,.u-cursor-y.u-off,.u-cursor-pt.u-off{display:none} diff --git a/TA-opencti-for-splunk-enterprise/appserver/static/js/build/entry_page.js b/TA-opencti-for-splunk-enterprise/appserver/static/js/build/entry_page.js new file mode 100755 index 0000000..289a731 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/appserver/static/js/build/entry_page.js @@ -0,0 +1,559 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./InputPage.DwL2BDFf.js","./usePlatform.CIF6KydG.js","./ErrorBoundary.BRI7mTT2.js","./toUpper.CHnQCSWs.js","./Search.BeAZnac9.js","./Menu.BEgRSmJU.js","./ChevronLeft.CoS9PBTv.js","./ConfigurationPage.CKrnHsan.js","./ArrowBroadUnderbarDown.75wc1VCJ.js","./Dashboard.DashboardPage.BTVyoMca.js"])))=>i.map(i=>d[i]); +var HX=Object.defineProperty;var KX=(e,r,t)=>r in e?HX(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[r]=t;var a3=(e,r,t)=>KX(e,typeof r!="symbol"?r+"":r,t);function GX(e,r){for(var t=0;tn[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}const ZX="modulepreload",YX=function(e,r){return new URL(e,r).href},u3={},MT=function(r,t,n){let a=Promise.resolve();if(t&&t.length>0){let c=function(f){return Promise.all(f.map(h=>Promise.resolve(h).then(m=>({status:"fulfilled",value:m}),m=>({status:"rejected",reason:m}))))};const i=document.getElementsByTagName("link"),u=document.querySelector("meta[property=csp-nonce]"),s=u?.nonce||u?.getAttribute("nonce");a=c(t.map(f=>{if(f=YX(f,n),f in u3)return;u3[f]=!0;const h=f.endsWith(".css"),m=h?'[rel="stylesheet"]':"";if(!!n)for(let v=i.length-1;v>=0;v--){const b=i[v];if(b.href===f&&(!h||b.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${f}"]${m}`))return;const S=document.createElement("link");if(S.rel=h?"stylesheet":ZX,h||(S.as="script"),S.crossOrigin="",S.href=f,s&&S.setAttribute("nonce",s),document.head.appendChild(S),h)return new Promise((v,b)=>{S.addEventListener("load",v),S.addEventListener("error",()=>b(new Error(`Unable to preload CSS for ${f}`)))})}))}function o(i){const u=new Event("vite:preloadError",{cancelable:!0});if(u.payload=i,window.dispatchEvent(u),!u.defaultPrevented)throw i}return a.then(i=>{for(const u of i||[])u.status==="rejected"&&o(u.reason);return r().catch(o)})};var ca=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Xi(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function Xg(e){if(Object.prototype.hasOwnProperty.call(e,"__esModule"))return e;var r=e.default;if(typeof r=="function"){var t=function n(){var a=!1;try{a=this instanceof n}catch{}return a?Reflect.construct(r,arguments,this.constructor):r.apply(this,arguments)};t.prototype=r.prototype}else t={};return Object.defineProperty(t,"__esModule",{value:!0}),Object.keys(e).forEach(function(n){var a=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,a.get?a:{enumerable:!0,get:function(){return e[n]}})}),t}var Wy={exports:{}},af={},Uy={exports:{}},_t={};/* +object-assign +(c) Sindre Sorhus +@license MIT +*/var Vy,s3;function wz(){if(s3)return Vy;s3=1;var e=Object.getOwnPropertySymbols,r=Object.prototype.hasOwnProperty,t=Object.prototype.propertyIsEnumerable;function n(o){if(o==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(o)}function a(){try{if(!Object.assign)return!1;var o=new String("abc");if(o[5]="de",Object.getOwnPropertyNames(o)[0]==="5")return!1;for(var i={},u=0;u<10;u++)i["_"+String.fromCharCode(u)]=u;var s=Object.getOwnPropertyNames(i).map(function(f){return i[f]});if(s.join("")!=="0123456789")return!1;var c={};return"abcdefghijklmnopqrst".split("").forEach(function(f){c[f]=f}),Object.keys(Object.assign({},c)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}return Vy=a()?Object.assign:function(o,i){for(var u,s=n(o),c,f=1;fU.length&&U.push(Y)}function ne(Y,X,J,I){var W=typeof Y;(W==="undefined"||W==="boolean")&&(Y=null);var D=!1;if(Y===null)D=!0;else switch(W){case"string":case"number":D=!0;break;case"object":switch(Y.$$typeof){case t:case n:D=!0}}if(D)return J(I,Y,X===""?"."+Oe(Y,0):X),1;if(D=0,X=X===""?".":X+":",Array.isArray(Y))for(var M=0;M"u"||typeof MessageChannel!="function"){var i=null,u=null,s=function(){if(i!==null)try{var oe=e.unstable_now();i(!0,oe),i=null}catch(Y){throw setTimeout(s,0),Y}},c=Date.now();e.unstable_now=function(){return Date.now()-c},r=function(oe){i!==null?setTimeout(r,0,oe):(i=oe,setTimeout(s,0))},t=function(oe,Y){u=setTimeout(oe,Y)},n=function(){clearTimeout(u)},a=function(){return!1},o=e.unstable_forceFrameRate=function(){}}else{var f=window.performance,h=window.Date,m=window.setTimeout,x=window.clearTimeout;if(typeof console<"u"){var S=window.cancelAnimationFrame;typeof window.requestAnimationFrame!="function"&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),typeof S!="function"&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills")}if(typeof f=="object"&&typeof f.now=="function")e.unstable_now=function(){return f.now()};else{var v=h.now();e.unstable_now=function(){return h.now()-v}}var b=!1,_=null,w=-1,O=5,C=0;a=function(){return e.unstable_now()>=C},o=function(){},e.unstable_forceFrameRate=function(oe){0>oe||125>>1,I=oe[J];if(I!==void 0&&0N(D,X))F!==void 0&&0>N(F,D)?(oe[J]=F,oe[M]=X,J=M):(oe[J]=D,oe[W]=X,J=W);else if(F!==void 0&&0>N(F,X))oe[J]=F,oe[M]=X,J=M;else break e}}return Y}return null}function N(oe,Y){var X=oe.sortIndex-Y.sortIndex;return X!==0?X:oe.id-Y.id}var $=[],B=[],U=1,V=null,te=3,ne=!1,ce=!1,Oe=!1;function fe(oe){for(var Y=j(B);Y!==null;){if(Y.callback===null)L(B);else if(Y.startTime<=oe)L(B),Y.sortIndex=Y.expirationTime,P($,Y);else break;Y=j(B)}}function ve(oe){if(Oe=!1,fe(oe),!ce)if(j($)!==null)ce=!0,r(Re);else{var Y=j(B);Y!==null&&t(ve,Y.startTime-oe)}}function Re(oe,Y){ce=!1,Oe&&(Oe=!1,n()),ne=!0;var X=te;try{for(fe(Y),V=j($);V!==null&&(!(V.expirationTime>Y)||oe&&!a());){var J=V.callback;if(J!==null){V.callback=null,te=V.priorityLevel;var I=J(V.expirationTime<=Y);Y=e.unstable_now(),typeof I=="function"?V.callback=I:V===j($)&&L($),fe(Y)}else L($);V=j($)}if(V!==null)var W=!0;else{var D=j(B);D!==null&&t(ve,D.startTime-Y),W=!1}return W}finally{V=null,te=X,ne=!1}}function me(oe){switch(oe){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1e4;default:return 5e3}}var Ce=o;e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(oe){oe.callback=null},e.unstable_continueExecution=function(){ce||ne||(ce=!0,r(Re))},e.unstable_getCurrentPriorityLevel=function(){return te},e.unstable_getFirstCallbackNode=function(){return j($)},e.unstable_next=function(oe){switch(te){case 1:case 2:case 3:var Y=3;break;default:Y=te}var X=te;te=Y;try{return oe()}finally{te=X}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=Ce,e.unstable_runWithPriority=function(oe,Y){switch(oe){case 1:case 2:case 3:case 4:case 5:break;default:oe=3}var X=te;te=oe;try{return Y()}finally{te=X}},e.unstable_scheduleCallback=function(oe,Y,X){var J=e.unstable_now();if(typeof X=="object"&&X!==null){var I=X.delay;I=typeof I=="number"&&0J?(oe.sortIndex=I,P(B,oe),j($)===null&&oe===j(B)&&(Oe?n():Oe=!0,t(ve,I-J))):(oe.sortIndex=X,P($,oe),ce||ne||(ce=!0,r(Re))),oe},e.unstable_shouldYield=function(){var oe=e.unstable_now();fe(oe);var Y=j($);return Y!==V&&V!==null&&Y!==null&&Y.callback!==null&&Y.startTime<=oe&&Y.expirationTime"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),N=null,$=null,B=null;function U(l){if(l=x(l)){if(typeof N!="function")throw Error(n(280));var p=l.stateNode;p&&(p=m(p),N(l.stateNode,l.type,p))}}function V(l){$?B?B.push(l):B=[l]:$=l}function te(){if($){var l=$,p=B;if(B=$=null,U(l),p)for(l=0;l"u"||W(l,p,y,T))return!0;if(T)return!1;if(y!==null)switch(y.type){case 3:return!p;case 4:return p===!1;case 5:return isNaN(p);case 6:return isNaN(p)||1>p}return!1}function M(l,p,y,T,R,H){this.acceptsBooleans=p===2||p===3||p===4,this.attributeName=T,this.attributeNamespace=R,this.mustUseProperty=y,this.propertyName=l,this.type=p,this.sanitizeURL=H}var F={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(l){F[l]=new M(l,0,!1,l,null,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(l){var p=l[0];F[p]=new M(p,1,!1,l[1],null,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(l){F[l]=new M(l,2,!1,l.toLowerCase(),null,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(l){F[l]=new M(l,2,!1,l,null,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(l){F[l]=new M(l,3,!1,l.toLowerCase(),null,!1)}),["checked","multiple","muted","selected"].forEach(function(l){F[l]=new M(l,3,!0,l,null,!1)}),["capture","download"].forEach(function(l){F[l]=new M(l,4,!1,l,null,!1)}),["cols","rows","size","span"].forEach(function(l){F[l]=new M(l,6,!1,l,null,!1)}),["rowSpan","start"].forEach(function(l){F[l]=new M(l,5,!1,l.toLowerCase(),null,!1)});var K=/[\-:]([a-z])/g;function ee(l){return l[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(l){var p=l.replace(K,ee);F[p]=new M(p,1,!1,l,null,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(l){var p=l.replace(K,ee);F[p]=new M(p,1,!1,l,"http://www.w3.org/1999/xlink",!1)}),["xml:base","xml:lang","xml:space"].forEach(function(l){var p=l.replace(K,ee);F[p]=new M(p,1,!1,l,"http://www.w3.org/XML/1998/namespace",!1)}),["tabIndex","crossOrigin"].forEach(function(l){F[l]=new M(l,1,!1,l.toLowerCase(),null,!1)}),F.xlinkHref=new M("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0),["src","href","action","formAction"].forEach(function(l){F[l]=new M(l,1,!1,l.toLowerCase(),null,!0)});var ie=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;ie.hasOwnProperty("ReactCurrentDispatcher")||(ie.ReactCurrentDispatcher={current:null}),ie.hasOwnProperty("ReactCurrentBatchConfig")||(ie.ReactCurrentBatchConfig={suspense:null});function ke(l,p,y,T){var R=F.hasOwnProperty(p)?F[p]:null,H=R!==null?R.type===0:T?!1:!(!(2=y.length))throw Error(n(93));y=y[0]}p=y}p==null&&(p=""),y=p}l._wrapperState={initialValue:vt(y)}}function eo(l,p){var y=vt(p.value),T=vt(p.defaultValue);y!=null&&(y=""+y,y!==l.value&&(l.value=y),p.defaultValue==null&&l.defaultValue!==y&&(l.defaultValue=y)),T!=null&&(l.defaultValue=""+T)}function ro(l){var p=l.textContent;p===l._wrapperState.initialValue&&p!==""&&p!==null&&(l.value=p)}var St={html:"http://www.w3.org/1999/xhtml",svg:"http://www.w3.org/2000/svg"};function go(l){switch(l){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function to(l,p){return l==null||l==="http://www.w3.org/1999/xhtml"?go(p):l==="http://www.w3.org/2000/svg"&&p==="foreignObject"?"http://www.w3.org/1999/xhtml":l}var mo,va=function(l){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(p,y,T,R){MSApp.execUnsafeLocalFunction(function(){return l(p,y,T,R)})}:l}(function(l,p){if(l.namespaceURI!==St.svg||"innerHTML"in l)l.innerHTML=p;else{for(mo=mo||document.createElement("div"),mo.innerHTML=""+p.valueOf().toString()+"",p=mo.firstChild;l.firstChild;)l.removeChild(l.firstChild);for(;p.firstChild;)l.appendChild(p.firstChild)}});function En(l,p){if(p){var y=l.firstChild;if(y&&y===l.lastChild&&y.nodeType===3){y.nodeValue=p;return}}l.textContent=p}function Ai(l,p){var y={};return y[l.toLowerCase()]=p.toLowerCase(),y["Webkit"+l]="webkit"+p,y["Moz"+l]="moz"+p,y}var he={animationend:Ai("Animation","AnimationEnd"),animationiteration:Ai("Animation","AnimationIteration"),animationstart:Ai("Animation","AnimationStart"),transitionend:Ai("Transition","TransitionEnd")},qe={},$e={};L&&($e=document.createElement("div").style,"AnimationEvent"in window||(delete he.animationend.animation,delete he.animationiteration.animation,delete he.animationstart.animation),"TransitionEvent"in window||delete he.transitionend.transition);function Qe(l){if(qe[l])return qe[l];if(!he[l])return l;var p=he[l],y;for(y in p)if(p.hasOwnProperty(y)&&y in $e)return qe[l]=p[y];return l}var ur=Qe("animationend"),pr=Qe("animationiteration"),ut=Qe("animationstart"),Qr=Qe("transitionend"),Fr="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),On=new(typeof WeakMap=="function"?WeakMap:Map);function Ft(l){var p=On.get(l);return p===void 0&&(p=new Map,On.set(l,p)),p}function _n(l){var p=l,y=l;if(l.alternate)for(;p.return;)p=p.return;else{l=p;do p=l,(p.effectTag&1026)!==0&&(y=p.return),l=p.return;while(l)}return p.tag===3?y:null}function yo(l){if(l.tag===13){var p=l.memoizedState;if(p===null&&(l=l.alternate,l!==null&&(p=l.memoizedState)),p!==null)return p.dehydrated}return null}function Ka(l){if(_n(l)!==l)throw Error(n(188))}function Ga(l){var p=l.alternate;if(!p){if(p=_n(l),p===null)throw Error(n(188));return p!==l?null:l}for(var y=l,T=p;;){var R=y.return;if(R===null)break;var H=R.alternate;if(H===null){if(T=R.return,T!==null){y=T;continue}break}if(R.child===H.child){for(H=R.child;H;){if(H===y)return Ka(R),l;if(H===T)return Ka(R),p;H=H.sibling}throw Error(n(188))}if(y.return!==T.return)y=R,T=H;else{for(var Z=!1,ae=R.child;ae;){if(ae===y){Z=!0,y=R,T=H;break}if(ae===T){Z=!0,T=R,y=H;break}ae=ae.sibling}if(!Z){for(ae=H.child;ae;){if(ae===y){Z=!0,y=H,T=R;break}if(ae===T){Z=!0,T=H,y=R;break}ae=ae.sibling}if(!Z)throw Error(n(189))}}if(y.alternate!==T)throw Error(n(190))}if(y.tag!==3)throw Error(n(188));return y.stateNode.current===y?l:p}function _o(l){if(l=Ga(l),!l)return null;for(var p=l;;){if(p.tag===5||p.tag===6)return p;if(p.child)p.child.return=p,p=p.child;else{if(p===l)break;for(;!p.sibling;){if(!p.return||p.return===l)return null;p=p.return}p.sibling.return=p.return,p=p.sibling}}return null}function ba(l,p){if(p==null)throw Error(n(30));return l==null?p:Array.isArray(l)?Array.isArray(p)?(l.push.apply(l,p),l):(l.push(p),l):Array.isArray(p)?[l].concat(p):[l,p]}function ga(l,p,y){Array.isArray(l)?l.forEach(p,y):l&&p.call(y,l)}var Za=null;function Kc(l){if(l){var p=l._dispatchListeners,y=l._dispatchInstances;if(Array.isArray(p))for(var T=0;Tre.length&&re.push(l)}function pe(l,p,y,T){if(re.length){var R=re.pop();return R.topLevelType=l,R.eventSystemFlags=T,R.nativeEvent=p,R.targetInst=y,R}return{topLevelType:l,eventSystemFlags:T,nativeEvent:p,targetInst:y,ancestors:[]}}function We(l){var p=l.targetInst,y=p;do{if(!y){l.ancestors.push(y);break}var T=y;if(T.tag===3)T=T.stateNode.containerInfo;else{for(;T.return;)T=T.return;T=T.tag!==3?null:T.stateNode.containerInfo}if(!T)break;p=y.tag,p!==5&&p!==6||l.ancestors.push(y),y=Nu(T)}while(y);for(y=0;y"u")return null;try{return l.activeElement||l.body}catch{return l.body}}function Yn(l){for(;l&&l.firstChild;)l=l.firstChild;return l}function Zv(l,p){var y=Yn(l);l=0;for(var T;y;){if(y.nodeType===3){if(T=l+y.textContent.length,l<=p&&T>=p)return{node:y,offset:p-l};l=T}e:{for(;y;){if(y.nextSibling){y=y.nextSibling;break e}y=y.parentNode}y=void 0}y=Yn(y)}}function di(l,p){return l&&p?l===p?!0:l&&l.nodeType===3?!1:p&&p.nodeType===3?di(l,p.parentNode):"contains"in l?l.contains(p):l.compareDocumentPosition?!!(l.compareDocumentPosition(p)&16):!1:!1}function Yv(){for(var l=window,p=el();p instanceof l.HTMLIFrameElement;){try{var y=typeof p.contentWindow.location.href=="string"}catch{y=!1}if(y)l=p.contentWindow;else break;p=el(l.document)}return p}function rl(l){var p=l&&l.nodeName&&l.nodeName.toLowerCase();return p&&(p==="input"&&(l.type==="text"||l.type==="search"||l.type==="tel"||l.type==="url"||l.type==="password")||p==="textarea"||l.contentEditable==="true")}var Go="$",As="/$",Rs="$?",Et="$!",xo=null,js=null;function Xv(l,p){switch(l){case"button":case"input":case"select":case"textarea":return!!p.autoFocus}return!1}function qs(l,p){return l==="textarea"||l==="option"||l==="noscript"||typeof p.children=="string"||typeof p.children=="number"||typeof p.dangerouslySetInnerHTML=="object"&&p.dangerouslySetInnerHTML!==null&&p.dangerouslySetInnerHTML.__html!=null}var Hf=typeof setTimeout=="function"?setTimeout:void 0,ey=typeof clearTimeout=="function"?clearTimeout:void 0;function Mu(l){for(;l!=null;l=l.nextSibling){var p=l.nodeType;if(p===1||p===3)break}return l}function Kf(l){l=l.previousSibling;for(var p=0;l;){if(l.nodeType===8){var y=l.data;if(y===Go||y===Et||y===Rs){if(p===0)return l;p--}else y===As&&p++}l=l.previousSibling}return null}var $u=Math.random().toString(36).slice(2),pi="__reactInternalInstance$"+$u,tl="__reactEventHandlers$"+$u,Fu="__reactContainere$"+$u;function Nu(l){var p=l[pi];if(p)return p;for(var y=l.parentNode;y;){if(p=y[Fu]||y[pi]){if(y=p.alternate,p.child!==null||y!==null&&y.child!==null)for(l=Kf(l);l!==null;){if(y=l[pi])return y;l=Kf(l)}return p}l=y,y=l.parentNode}return null}function eu(l){return l=l[pi]||l[Fu],!l||l.tag!==5&&l.tag!==6&&l.tag!==13&&l.tag!==3?null:l}function Zo(l){if(l.tag===5||l.tag===6)return l.stateNode;throw Error(n(33))}function nl(l){return l[tl]||null}function Yo(l){do l=l.return;while(l&&l.tag!==5);return l||null}function il(l,p){var y=l.stateNode;if(!y)return null;var T=m(y);if(!T)return null;y=T[p];e:switch(p){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(T=!T.disabled)||(l=l.type,T=!(l==="button"||l==="input"||l==="select"||l==="textarea")),l=!T;break e;default:l=!1}if(l)return null;if(y&&typeof y!="function")throw Error(n(231,p,typeof y));return y}function ol(l,p,y){(p=il(l,y.dispatchConfig.phasedRegistrationNames[p]))&&(y._dispatchListeners=ba(y._dispatchListeners,p),y._dispatchInstances=ba(y._dispatchInstances,l))}function ry(l){if(l&&l.dispatchConfig.phasedRegistrationNames){for(var p=l._targetInst,y=[];p;)y.push(p),p=Yo(p);for(p=y.length;0this.eventPool.length&&this.eventPool.push(l)}function Jv(l){l.eventPool=[],l.getPooled=ty,l.release=Bu}var ny=vi.extend({data:null}),Gf=vi.extend({data:null}),eb=[9,13,27,32],Oo=L&&"CompositionEvent"in window,ya=null;L&&"documentMode"in document&&(ya=document.documentMode);var iy=L&&"TextEvent"in window&&!ya,rb=L&&(!Oo||ya&&8=ya),tb=" ",Xn={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["compositionend","keypress","textInput","paste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:"blur compositionend keydown keypress keyup mousedown".split(" ")},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:"blur compositionstart keydown keypress keyup mousedown".split(" ")},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:"blur compositionupdate keydown keypress keyup mousedown".split(" ")}},qi=!1;function Zf(l,p){switch(l){case"keyup":return eb.indexOf(p.keyCode)!==-1;case"keydown":return p.keyCode!==229;case"keypress":case"mousedown":case"blur":return!0;default:return!1}}function nb(l){return l=l.detail,typeof l=="object"&&"data"in l?l.data:null}var zu=!1;function oy(l,p){switch(l){case"compositionend":return nb(p);case"keypress":return p.which!==32?null:(qi=!0,tb);case"textInput":return l=p.data,l===tb&&qi?null:l;default:return null}}function ay(l,p){if(zu)return l==="compositionend"||!Oo&&Zf(l,p)?(l=Qv(),Ds=ul=ji=null,zu=!1,l):null;switch(l){case"paste":return null;case"keypress":if(!(p.ctrlKey||p.altKey||p.metaKey)||p.ctrlKey&&p.altKey){if(p.char&&1=document.documentMode,wa={select:{phasedRegistrationNames:{bubbled:"onSelect",captured:"onSelectCapture"},dependencies:"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange".split(" ")}},Xo=null,Yf=null,Fs=null,Xf=!1;function Ns(l,p){var y=p.window===p?p.document:p.nodeType===9?p:p.ownerDocument;return Xf||Xo==null||Xo!==el(y)?null:(y=Xo,"selectionStart"in y&&rl(y)?y={start:y.selectionStart,end:y.selectionEnd}:(y=(y.ownerDocument&&y.ownerDocument.defaultView||window).getSelection(),y={anchorNode:y.anchorNode,anchorOffset:y.anchorOffset,focusNode:y.focusNode,focusOffset:y.focusOffset}),Fs&&Ku(Fs,y)?null:(Fs=y,l=vi.getPooled(wa.select,Yf,l,p),l.type="select",l.target=Xo,ma(l),l))}var vl={eventTypes:wa,extractEvents:function(l,p,y,T,R,H){if(R=H||(T.window===T?T.document:T.nodeType===9?T:T.ownerDocument),!(H=!R)){e:{R=Ft(R),H=P.onSelect;for(var Z=0;Zio||(l.current=zs[io],zs[io]=null,io--)}function jt(l,p){io++,zs[io]=l.current,l.current=p}var oo={},Qt={current:oo},Qn={current:!1},ru=oo;function Gu(l,p){var y=l.type.contextTypes;if(!y)return oo;var T=l.stateNode;if(T&&T.__reactInternalMemoizedUnmaskedChildContext===p)return T.__reactInternalMemoizedMaskedChildContext;var R={},H;for(H in y)R[H]=p[H];return T&&(l=l.stateNode,l.__reactInternalMemoizedUnmaskedChildContext=p,l.__reactInternalMemoizedMaskedChildContext=R),R}function Jn(l){return l=l.childContextTypes,l!=null}function gl(){mt(Qn),mt(Qt)}function Ws(l,p,y){if(Qt.current!==oo)throw Error(n(168));jt(Qt,p),jt(Qn,y)}function Zu(l,p,y){var T=l.stateNode;if(l=p.childContextTypes,typeof T.getChildContext!="function")return y;T=T.getChildContext();for(var R in T)if(!(R in l))throw Error(n(108,Ir(p)||"Unknown",R));return r({},y,{},T)}function Us(l){return l=(l=l.stateNode)&&l.__reactInternalMemoizedMergedChildContext||oo,ru=Qt.current,jt(Qt,l),jt(Qn,Qn.current),!0}function G(l,p,y){var T=l.stateNode;if(!T)throw Error(n(169));y?(l=Zu(l,p,ru),T.__reactInternalMemoizedMergedChildContext=l,mt(Qn),mt(Qt),jt(Qt,l)):mt(Qn),jt(Qn,y)}var Yu=t.unstable_runWithPriority,Xu=t.unstable_scheduleCallback,gi=t.unstable_cancelCallback,Zr=t.unstable_requestPaint,ed=t.unstable_now,vy=t.unstable_getCurrentPriorityLevel,ml=t.unstable_ImmediatePriority,Sa=t.unstable_UserBlockingPriority,db=t.unstable_NormalPriority,pb=t.unstable_LowPriority,hb=t.unstable_IdlePriority,vb={},by=t.unstable_shouldYield,Qo=Zr!==void 0?Zr:function(){},Jo=null,yl=null,rd=!1,bb=ed(),Ii=1e4>bb?ed:function(){return ed()-bb};function Li(){switch(vy()){case ml:return 99;case Sa:return 98;case db:return 97;case pb:return 96;case hb:return 95;default:throw Error(n(332))}}function gb(l){switch(l){case 99:return ml;case 98:return Sa;case 97:return db;case 96:return pb;case 95:return hb;default:throw Error(n(332))}}function xa(l,p){return l=gb(l),Yu(l,p)}function mb(l,p,y){return l=gb(l),Xu(l,p,y)}function yb(l){return Jo===null?(Jo=[l],yl=Xu(ml,Oa)):Jo.push(l),vb}function Co(){if(yl!==null){var l=yl;yl=null,gi(l)}Oa()}function Oa(){if(!rd&&Jo!==null){rd=!0;var l=0;try{var p=Jo;xa(99,function(){for(;l=p&&(co=!0),l.firstContext=null)}function Mi(l,p){if(Sl!==l&&p!==!1&&p!==0)if((typeof p!="number"||p===1073741823)&&(Sl=l,p=1073741823),p={context:l,observedBits:p,next:null},Qu===null){if(wl===null)throw Error(n(308));Qu=p,wl.dependencies={expirationTime:0,firstContext:p,responders:null}}else Qu=Qu.next=p;return l._currentValue}var Ca=!1;function Vs(l){l.updateQueue={baseState:l.memoizedState,baseQueue:null,shared:{pending:null},effects:null}}function nu(l,p){l=l.updateQueue,p.updateQueue===l&&(p.updateQueue={baseState:l.baseState,baseQueue:l.baseQueue,shared:l.shared,effects:l.effects})}function uo(l,p){return l={expirationTime:l,suspenseConfig:p,tag:0,payload:null,callback:null,next:null},l.next=l}function ka(l,p){if(l=l.updateQueue,l!==null){l=l.shared;var y=l.pending;y===null?p.next=p:(p.next=y.next,y.next=p),l.pending=p}}function od(l,p){var y=l.alternate;y!==null&&nu(y,l),l=l.updateQueue,y=l.baseQueue,y===null?(l.baseQueue=p.next=p,p.next=p):(p.next=y.next,y.next=p)}function Hs(l,p,y,T){var R=l.updateQueue;Ca=!1;var H=R.baseQueue,Z=R.shared.pending;if(Z!==null){if(H!==null){var ae=H.next;H.next=Z.next,Z.next=ae}H=Z,R.shared.pending=null,ae=l.alternate,ae!==null&&(ae=ae.updateQueue,ae!==null&&(ae.baseQueue=Z))}if(H!==null){ae=H.next;var Ie=R.baseState,Le=0,fr=null,dr=null,Yr=null;if(ae!==null){var ct=ae;do{if(Z=ct.expirationTime,ZLe&&(Le=Z)}else{Yr!==null&&(Yr=Yr.next={expirationTime:1073741823,suspenseConfig:ct.suspenseConfig,tag:ct.tag,payload:ct.payload,callback:ct.callback,next:null}),Ed(Z,ct.suspenseConfig);e:{var kn=l,Ae=ct;switch(Z=p,Wi=y,Ae.tag){case 1:if(kn=Ae.payload,typeof kn=="function"){Ie=kn.call(Wi,Ie,Z);break e}Ie=kn;break e;case 3:kn.effectTag=kn.effectTag&-4097|64;case 0:if(kn=Ae.payload,Z=typeof kn=="function"?kn.call(Wi,Ie,Z):kn,Z==null)break e;Ie=r({},Ie,Z);break e;case 2:Ca=!0}}ct.callback!==null&&(l.effectTag|=32,Z=R.effects,Z===null?R.effects=[ct]:Z.push(ct))}if(ct=ct.next,ct===null||ct===ae){if(Z=R.shared.pending,Z===null)break;ct=H.next=Z.next,Z.next=ae,R.baseQueue=H=Z,R.shared.pending=null}}while(!0)}Yr===null?fr=Ie:Yr.next=dr,R.baseState=fr,R.baseQueue=Yr,lc(Le),l.expirationTime=Le,l.memoizedState=Ie}}function ko(l,p,y){if(l=p.effects,p.effects=null,l!==null)for(p=0;prt?(Dt=Cr,Cr=null):Dt=Cr.sibling;var zr=Yr(Ae,Cr,Me[rt],ir);if(zr===null){Cr===null&&(Cr=Dt);break}l&&Cr&&zr.alternate===null&&p(Ae,Cr),we=H(zr,we,rt),hr===null?sr=zr:hr.sibling=zr,hr=zr,Cr=Dt}if(rt===Me.length)return y(Ae,Cr),sr;if(Cr===null){for(;rtrt?(Dt=Cr,Cr=null):Dt=Cr.sibling;var La=Yr(Ae,Cr,zr.value,ir);if(La===null){Cr===null&&(Cr=Dt);break}l&&Cr&&La.alternate===null&&p(Ae,Cr),we=H(La,we,rt),hr===null?sr=La:hr.sibling=La,hr=La,Cr=Dt}if(zr.done)return y(Ae,Cr),sr;if(Cr===null){for(;!zr.done;rt++,zr=Me.next())zr=dr(Ae,zr.value,ir),zr!==null&&(we=H(zr,we,rt),hr===null?sr=zr:hr.sibling=zr,hr=zr);return sr}for(Cr=T(Ae,Cr);!zr.done;rt++,zr=Me.next())zr=ct(Cr,Ae,rt,zr.value,ir),zr!==null&&(l&&zr.alternate!==null&&Cr.delete(zr.key===null?rt:zr.key),we=H(zr,we,rt),hr===null?sr=zr:hr.sibling=zr,hr=zr);return l&&Cr.forEach(function(Py){return p(Ae,Py)}),sr}return function(Ae,we,Me,ir){var sr=typeof Me=="object"&&Me!==null&&Me.type===Ze&&Me.key===null;sr&&(Me=Me.props.children);var hr=typeof Me=="object"&&Me!==null;if(hr)switch(Me.$$typeof){case ge:e:{for(hr=Me.key,sr=we;sr!==null;){if(sr.key===hr){switch(sr.tag){case 7:if(Me.type===Ze){y(Ae,sr.sibling),we=R(sr,Me.props.children),we.return=Ae,Ae=we;break e}break;default:if(sr.elementType===Me.type){y(Ae,sr.sibling),we=R(sr,Me.props),we.ref=Gs(Ae,sr,Me),we.return=Ae,Ae=we;break e}}y(Ae,sr);break}else p(Ae,sr);sr=sr.sibling}Me.type===Ze?(we=oa(Me.props.children,Ae.mode,ir,Me.key),we.return=Ae,Ae=we):(ir=Ql(Me.type,Me.key,Me.props,null,Ae.mode,ir),ir.ref=Gs(Ae,we,Me),ir.return=Ae,Ae=ir)}return Z(Ae);case ye:e:{for(sr=Me.key;we!==null;){if(we.key===sr)if(we.tag===4&&we.stateNode.containerInfo===Me.containerInfo&&we.stateNode.implementation===Me.implementation){y(Ae,we.sibling),we=R(we,Me.children||[]),we.return=Ae,Ae=we;break e}else{y(Ae,we);break}else p(Ae,we);we=we.sibling}we=ef(Me,Ae.mode,ir),we.return=Ae,Ae=we}return Z(Ae)}if(typeof Me=="string"||typeof Me=="number")return Me=""+Me,we!==null&&we.tag===6?(y(Ae,we.sibling),we=R(we,Me),we.return=Ae,Ae=we):(y(Ae,we),we=Jl(Me,Ae.mode,ir),we.return=Ae,Ae=we),Z(Ae);if(Ks(Me))return Wi(Ae,we,Me,ir);if(br(Me))return kn(Ae,we,Me,ir);if(hr&&ou(Ae,Me),typeof Me>"u"&&!sr)switch(Ae.tag){case 1:case 0:throw Ae=Ae.type,Error(n(152,Ae.displayName||Ae.name||"Component"))}return y(Ae,we)}}var au=_b(!0),pn=_b(!1),uu={},so={current:uu},ri={current:uu},su={current:uu};function Eo(l){if(l===uu)throw Error(n(174));return l}function ea(l,p){switch(jt(su,p),jt(ri,l),jt(so,uu),l=p.nodeType,l){case 9:case 11:p=(p=p.documentElement)?p.namespaceURI:to(null,"");break;default:l=l===8?p.parentNode:p,p=l.namespaceURI||null,l=l.tagName,p=to(p,l)}mt(so),jt(so,p)}function cu(){mt(so),mt(ri),mt(su)}function qn(l){Eo(su.current);var p=Eo(so.current),y=to(p,l.type);p!==y&&(jt(ri,l),jt(so,y))}function Zs(l){ri.current===l&&(mt(so),mt(ri))}var Zt={current:0};function Ol(l){for(var p=l;p!==null;){if(p.tag===13){var y=p.memoizedState;if(y!==null&&(y=y.dehydrated,y===null||y.data===Rs||y.data===Et))return p}else if(p.tag===19&&p.memoizedProps.revealOrder!==void 0){if((p.effectTag&64)!==0)return p}else if(p.child!==null){p.child.return=p,p=p.child;continue}if(p===l)break;for(;p.sibling===null;){if(p.return===null||p.return===l)return null;p=p.return}p.sibling.return=p.return,p=p.sibling}return null}function sd(l,p){return{responder:l,props:p}}var es=ie.ReactCurrentDispatcher,$i=ie.ReactCurrentBatchConfig,Fi=0,an=null,Dn=null,In=null,Ea=!1;function mi(){throw Error(n(321))}function cd(l,p){if(p===null)return!1;for(var y=0;yH))throw Error(n(301));H+=1,In=Dn=null,p.updateQueue=null,es.current=gy,l=y(T,R)}while(p.expirationTime===Fi)}if(es.current=ql,p=Dn!==null&&Dn.next!==null,Fi=0,In=Dn=an=null,Ea=!1,p)throw Error(n(300));return l}function lu(){var l={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return In===null?an.memoizedState=In=l:In=In.next=l,In}function rs(){if(Dn===null){var l=an.alternate;l=l!==null?l.memoizedState:null}else l=Dn.next;var p=In===null?an.memoizedState:In.next;if(p!==null)In=p,Dn=l;else{if(l===null)throw Error(n(310));Dn=l,l={memoizedState:Dn.memoizedState,baseState:Dn.baseState,baseQueue:Dn.baseQueue,queue:Dn.queue,next:null},In===null?an.memoizedState=In=l:In=In.next=l}return In}function fu(l,p){return typeof p=="function"?p(l):p}function Cl(l){var p=rs(),y=p.queue;if(y===null)throw Error(n(311));y.lastRenderedReducer=l;var T=Dn,R=T.baseQueue,H=y.pending;if(H!==null){if(R!==null){var Z=R.next;R.next=H.next,H.next=Z}T.baseQueue=R=H,y.pending=null}if(R!==null){R=R.next,T=T.baseState;var ae=Z=H=null,Ie=R;do{var Le=Ie.expirationTime;if(Lean.expirationTime&&(an.expirationTime=Le,lc(Le))}else ae!==null&&(ae=ae.next={expirationTime:1073741823,suspenseConfig:Ie.suspenseConfig,action:Ie.action,eagerReducer:Ie.eagerReducer,eagerState:Ie.eagerState,next:null}),Ed(Le,Ie.suspenseConfig),T=Ie.eagerReducer===l?Ie.eagerState:l(T,Ie.action);Ie=Ie.next}while(Ie!==null&&Ie!==R);ae===null?H=T:ae.next=Z,_a(T,p.memoizedState)||(co=!0),p.memoizedState=T,p.baseState=H,p.baseQueue=ae,y.lastRenderedState=T}return[p.memoizedState,y.dispatch]}function Xs(l){var p=rs(),y=p.queue;if(y===null)throw Error(n(311));y.lastRenderedReducer=l;var T=y.dispatch,R=y.pending,H=p.memoizedState;if(R!==null){y.pending=null;var Z=R=R.next;do H=l(H,Z.action),Z=Z.next;while(Z!==R);_a(H,p.memoizedState)||(co=!0),p.memoizedState=H,p.baseQueue===null&&(p.baseState=H),y.lastRenderedState=H}return[H,T]}function Qs(l){var p=lu();return typeof l=="function"&&(l=l()),p.memoizedState=p.baseState=l,l=p.queue={pending:null,dispatch:null,lastRenderedReducer:fu,lastRenderedState:l},l=l.dispatch=jl.bind(null,an,l),[p.memoizedState,l]}function ld(l,p,y,T){return l={tag:l,create:p,destroy:y,deps:T,next:null},p=an.updateQueue,p===null?(p={lastEffect:null},an.updateQueue=p,p.lastEffect=l.next=l):(y=p.lastEffect,y===null?p.lastEffect=l.next=l:(T=y.next,y.next=l,l.next=T,p.lastEffect=l)),l}function kl(){return rs().memoizedState}function Tl(l,p,y,T){var R=lu();an.effectTag|=l,R.memoizedState=ld(1|p,y,void 0,T===void 0?null:T)}function El(l,p,y,T){var R=rs();T=T===void 0?null:T;var H=void 0;if(Dn!==null){var Z=Dn.memoizedState;if(H=Z.destroy,T!==null&&cd(T,Z.deps)){ld(p,y,H,T);return}}an.effectTag|=l,R.memoizedState=ld(1|p,y,H,T)}function fd(l,p){return Tl(516,4,l,p)}function du(l,p){return El(516,4,l,p)}function wb(l,p){return El(4,2,l,p)}function dd(l,p){if(typeof p=="function")return l=l(),p(l),function(){p(null)};if(p!=null)return l=l(),p.current=l,function(){p.current=null}}function pd(l,p,y){return y=y!=null?y.concat([l]):null,El(4,2,dd.bind(null,p,l),y)}function hd(){}function vd(l,p){return lu().memoizedState=[l,p===void 0?null:p],l}function Pl(l,p){var y=rs();p=p===void 0?null:p;var T=y.memoizedState;return T!==null&&p!==null&&cd(p,T[1])?T[0]:(y.memoizedState=[l,p],l)}function Al(l,p){var y=rs();p=p===void 0?null:p;var T=y.memoizedState;return T!==null&&p!==null&&cd(p,T[1])?T[0]:(l=l(),y.memoizedState=[l,p],l)}function Rl(l,p,y){var T=Li();xa(98>T?98:T,function(){l(!0)}),xa(97<\/script>",l=l.removeChild(l.firstChild)):typeof T.is=="string"?l=Z.createElement(R,{is:T.is}):(l=Z.createElement(R),R==="select"&&(Z=l,T.multiple?Z.multiple=!0:T.size&&(Z.size=T.size))):l=Z.createElementNS(l,R),l[pi]=p,l[tl]=T,Fl(l,p,!1,!1),p.stateNode=l,Z=Jc(R,T),R){case"iframe":case"object":case"embed":zt("load",l),ae=T;break;case"video":case"audio":for(ae=0;aeT.tailExpiration&&1p)&&qa.set(l,p)))}}function Yl(l,p){l.expirationTimel?y:l,2>=l&&p!==l?0:l}function wi(l){if(l.lastExpiredTime!==0)l.callbackExpirationTime=1073741823,l.callbackPriority=99,l.callbackNode=yb(gu.bind(null,l));else{var p=os(l),y=l.callbackNode;if(p===0)y!==null&&(l.callbackNode=null,l.callbackExpirationTime=0,l.callbackPriority=90);else{var T=Sn();if(p===1073741823?T=99:p===1||p===2?T=95:(T=10*(1073741821-p)-10*(1073741821-T),T=0>=T?99:250>=T?98:5250>=T?97:95),y!==null){var R=l.callbackPriority;if(l.callbackExpirationTime===p&&R>=T)return;y!==vb&&gi(y)}l.callbackExpirationTime=p,l.callbackPriority=T,p=p===1073741823?yb(gu.bind(null,l)):mb(T,Lb.bind(null,l),{timeout:10*(1073741821-p)-Ii()}),l.callbackNode=p}}}function Lb(l,p){if(Zl=0,p)return p=Sn(),Id(l,p),wi(l),null;var y=os(l);if(y!==0){if(p=l.callbackNode,(Lr&(yi|jo))!==Jt)throw Error(n(327));if(yu(),l===_i&&y===Mn||mu(l,y),Er!==null){var T=Lr;Lr|=yi;var R=Nb();do try{Pd();break}catch(ae){Fb(l,ae)}while(!0);if(td(),Lr=T,Ul.current=R,un===Bi)throw p=ts,mu(l,y),Su(l,y),wi(l),p;if(Er===null)switch(R=l.finishedWork=l.current.alternate,l.finishedExpirationTime=y,T=un,_i=null,T){case Aa:case Bi:throw Error(n(345));case Cd:Id(l,2=y){l.lastPingedTime=y,mu(l,y);break}}if(H=os(l),H!==0&&H!==y)break;if(T!==0&&T!==y){l.lastPingedTime=T;break}l.timeoutHandle=Hf(Da.bind(null,l),R);break}Da(l);break;case Hl:if(Su(l,y),T=l.lastSuspendedTime,y===T&&(l.nextKnownPendingLevel=fc(R)),ns&&(R=l.lastPingedTime,R===0||R>=y)){l.lastPingedTime=y,mu(l,y);break}if(R=os(l),R!==0&&R!==y)break;if(T!==0&&T!==y){l.lastPingedTime=T;break}if(qo!==1073741823?T=10*(1073741821-qo)-Ii():zi===1073741823?T=0:(T=10*(1073741821-zi)-5e3,R=Ii(),y=10*(1073741821-y)-R,T=R-T,0>T&&(T=0),T=(120>T?120:480>T?480:1080>T?1080:1920>T?1920:3e3>T?3e3:4320>T?4320:1960*Wl(T/1960))-T,y=T?T=0:(R=Z.busyDelayMs|0,H=Ii()-(10*(1073741821-H)-(Z.timeoutMs|0||5e3)),T=H<=R?0:R+T-H),10 component higher in the tree to provide a loading indicator or placeholder to display.`+Kr(Z))}un!==Kl&&(un=Cd),ae=Nl(ae,Z),dr=H;do{switch(dr.tag){case 3:Ie=ae,dr.effectTag|=4096,dr.expirationTime=p;var sr=oc(dr,Ie,p);od(dr,sr);break e;case 1:Ie=ae;var hr=dr.type,Cr=dr.stateNode;if((dr.effectTag&64)===0&&(typeof hr.getDerivedStateFromError=="function"||Cr!==null&&typeof Cr.componentDidCatch=="function"&&(ja===null||!ja.has(Cr)))){dr.effectTag|=4096,dr.expirationTime=p;var rt=zl(dr,Ie,p);od(dr,rt);break e}}dr=dr.return}while(dr!==null)}Er=as(Er)}catch(Dt){p=Dt;continue}break}while(!0)}function Nb(){var l=Ul.current;return Ul.current=ql,l===null?ql:l}function Ed(l,p){lRa&&(Ra=l)}function _y(){for(;Er!==null;)Er=Ad(Er)}function Pd(){for(;Er!==null&&!by();)Er=Ad(Er)}function Ad(l){var p=Wb(l.alternate,l,Mn);return l.memoizedProps=l.pendingProps,p===null&&(p=as(l)),Od.current=null,p}function as(l){Er=l;do{var p=Er.alternate;if(l=Er.return,(Er.effectTag&2048)===0){if(p=Pb(p,Er,Mn),Mn===1||Er.childExpirationTime!==1){for(var y=0,T=Er.child;T!==null;){var R=T.expirationTime,H=T.childExpirationTime;R>y&&(y=R),H>y&&(y=H),T=T.sibling}Er.childExpirationTime=y}if(p!==null)return p;l!==null&&(l.effectTag&2048)===0&&(l.firstEffect===null&&(l.firstEffect=Er.firstEffect),Er.lastEffect!==null&&(l.lastEffect!==null&&(l.lastEffect.nextEffect=Er.firstEffect),l.lastEffect=Er.lastEffect),1l?p:l}function Da(l){var p=Li();return xa(99,Bb.bind(null,l,p)),null}function Bb(l,p){do yu();while(is!==null);if((Lr&(yi|jo))!==Jt)throw Error(n(327));var y=l.finishedWork,T=l.finishedExpirationTime;if(y===null)return null;if(l.finishedWork=null,l.finishedExpirationTime=0,y===l.current)throw Error(n(177));l.callbackNode=null,l.callbackExpirationTime=0,l.callbackPriority=90,l.nextKnownPendingLevel=0;var R=fc(y);if(l.firstPendingTime=R,T<=l.lastSuspendedTime?l.firstSuspendedTime=l.lastSuspendedTime=l.nextKnownPendingLevel=0:T<=l.firstSuspendedTime&&(l.firstSuspendedTime=T-1),T<=l.lastPingedTime&&(l.lastPingedTime=0),T<=l.lastExpiredTime&&(l.lastExpiredTime=0),l===_i&&(Er=_i=null,Mn=0),1ae&&(Le=ae,ae=Z,Z=Le),Le=Zv(ir,Z),fr=Zv(ir,ae),Le&&fr&&(hr.rangeCount!==1||hr.anchorNode!==Le.node||hr.anchorOffset!==Le.offset||hr.focusNode!==fr.node||hr.focusOffset!==fr.offset)&&(sr=sr.createRange(),sr.setStart(Le.node,Le.offset),hr.removeAllRanges(),Z>ae?(hr.addRange(sr),hr.extend(fr.node,fr.offset)):(sr.setEnd(fr.node,fr.offset),hr.addRange(sr)))))),sr=[],hr=ir;hr=hr.parentNode;)hr.nodeType===1&&sr.push({element:hr,left:hr.scrollLeft,top:hr.scrollTop});for(typeof ir.focus=="function"&&ir.focus(),ir=0;ir=y?na(l,p,y):(jt(Zt,Zt.current&1),p=Ao(l,p,y),p!==null?p.sibling:null);jt(Zt,Zt.current&1);break;case 19:if(T=p.childExpirationTime>=y,(l.effectTag&64)!==0){if(T)return md(l,p,y);p.effectTag|=64}if(R=p.memoizedState,R!==null&&(R.rendering=null,R.tail=null),jt(Zt,Zt.current),!T)return null}return Ao(l,p,y)}co=!1}}else co=!1;switch(p.expirationTime=0,p.tag){case 2:if(T=p.type,l!==null&&(l.alternate=null,p.alternate=null,p.effectTag|=2),l=p.pendingProps,R=Gu(p,Qt.current),tu(p,y),R=Ys(null,p,T,l,R,y),p.effectTag|=1,typeof R=="object"&&R!==null&&typeof R.render=="function"&&R.$$typeof===void 0){if(p.tag=1,p.memoizedState=null,p.updateQueue=null,Jn(T)){var H=!0;Us(p)}else H=!1;p.memoizedState=R.state!==null&&R.state!==void 0?R.state:null,Vs(p);var Z=T.getDerivedStateFromProps;typeof Z=="function"&&Un(p,T,Z,l),R.updater=xl,p.stateNode=R,R._reactInternalFiber=p,To(p,T,l,y),p=Ml(null,p,T,!0,H,y)}else p.tag=0,qt(null,p,R,y),p=p.child;return p;case 16:e:{if(R=p.elementType,l!==null&&(l.alternate=null,p.alternate=null,p.effectTag|=2),l=p.pendingProps,Tr(R),R._status!==1)throw R._result;switch(R=R._result,p.type=R,H=p.tag=Oy(R),l=ao(R,l),H){case 0:p=Il(null,p,R,l,y);break e;case 1:p=Ll(null,p,R,l,y);break e;case 11:p=ta(null,p,R,l,y);break e;case 14:p=Dl(null,p,R,ao(R.type,l),T,y);break e}throw Error(n(306,R,""))}return p;case 0:return T=p.type,R=p.pendingProps,R=p.elementType===T?R:ao(T,R),Il(l,p,T,R,y);case 1:return T=p.type,R=p.pendingProps,R=p.elementType===T?R:ao(T,R),Ll(l,p,T,R,y);case 3:if($l(p),T=p.updateQueue,l===null||T===null)throw Error(n(282));if(T=p.pendingProps,R=p.memoizedState,R=R!==null?R.element:null,nu(l,p),Hs(p,T,null,y),T=p.memoizedState.element,T===R)Js(),p=Ao(l,p,y);else{if((R=p.stateNode.hydrate)&&(Ni=Mu(p.stateNode.containerInfo.firstChild),ra=p,R=Pa=!0),R)for(y=pn(p,null,T,y),p.child=y;y;)y.effectTag=y.effectTag&-3|1024,y=y.sibling;else qt(l,p,T,y),Js();p=p.child}return p;case 5:return qn(p),l===null&&ti(p),T=p.type,R=p.pendingProps,H=l!==null?l.memoizedProps:null,Z=R.children,qs(T,R)?Z=null:H!==null&&qs(T,H)&&(p.effectTag|=16),ec(l,p),p.mode&4&&y!==1&&R.hidden?(p.expirationTime=p.childExpirationTime=1,p=null):(qt(l,p,Z,y),p=p.child),p;case 6:return l===null&&ti(p),null;case 13:return na(l,p,y);case 4:return ea(p,p.stateNode.containerInfo),T=p.pendingProps,l===null?p.child=au(p,null,T,y):qt(l,p,T,y),p.child;case 11:return T=p.type,R=p.pendingProps,R=p.elementType===T?R:ao(T,R),ta(l,p,T,R,y);case 7:return qt(l,p,p.pendingProps,y),p.child;case 8:return qt(l,p,p.pendingProps.children,y),p.child;case 12:return qt(l,p,p.pendingProps.children,y),p.child;case 10:e:{T=p.type._context,R=p.pendingProps,Z=p.memoizedProps,H=R.value;var ae=p.type._context;if(jt(ei,ae._currentValue),ae._currentValue=H,Z!==null)if(ae=Z.value,H=_a(ae,H)?0:(typeof T._calculateChangedBits=="function"?T._calculateChangedBits(ae,H):1073741823)|0,H===0){if(Z.children===R.children&&!Qn.current){p=Ao(l,p,y);break e}}else for(ae=p.child,ae!==null&&(ae.return=p);ae!==null;){var Ie=ae.dependencies;if(Ie!==null){Z=ae.child;for(var Le=Ie.firstContext;Le!==null;){if(Le.context===T&&(Le.observedBits&H)!==0){ae.tag===1&&(Le=uo(y,null),Le.tag=2,ka(ae,Le)),ae.expirationTime"u")return!1;var p=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(p.isDisabled||!p.supportsFiber)return!0;try{var y=p.inject(l);Rd=function(T){try{p.onCommitFiberRoot(y,T,void 0,(T.current.effectTag&64)===64)}catch{}},jd=function(T){try{p.onCommitFiberUnmount(y,T)}catch{}}}catch{}return!0}function xy(l,p,y,T){this.tag=l,this.key=y,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=p,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=T,this.effectTag=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childExpirationTime=this.expirationTime=0,this.alternate=null}function Lo(l,p,y,T){return new xy(l,p,y,T)}function qd(l){return l=l.prototype,!(!l||!l.isReactComponent)}function Oy(l){if(typeof l=="function")return qd(l)?1:0;if(l!=null){if(l=l.$$typeof,l===$r)return 11;if(l===Se)return 14}return 2}function wu(l,p){var y=l.alternate;return y===null?(y=Lo(l.tag,p,l.key,l.mode),y.elementType=l.elementType,y.type=l.type,y.stateNode=l.stateNode,y.alternate=l,l.alternate=y):(y.pendingProps=p,y.effectTag=0,y.nextEffect=null,y.firstEffect=null,y.lastEffect=null),y.childExpirationTime=l.childExpirationTime,y.expirationTime=l.expirationTime,y.child=l.child,y.memoizedProps=l.memoizedProps,y.memoizedState=l.memoizedState,y.updateQueue=l.updateQueue,p=l.dependencies,y.dependencies=p===null?null:{expirationTime:p.expirationTime,firstContext:p.firstContext,responders:p.responders},y.sibling=l.sibling,y.index=l.index,y.ref=l.ref,y}function Ql(l,p,y,T,R,H){var Z=2;if(T=l,typeof l=="function")qd(l)&&(Z=1);else if(typeof l=="string")Z=5;else e:switch(l){case Ze:return oa(y.children,R,H,p);case Hr:Z=8,R|=7;break;case Ve:Z=8,R|=1;break;case Be:return l=Lo(12,y,p,R|8),l.elementType=Be,l.type=Be,l.expirationTime=H,l;case de:return l=Lo(13,y,p,R),l.type=de,l.elementType=de,l.expirationTime=H,l;case Te:return l=Lo(19,y,p,R),l.elementType=Te,l.expirationTime=H,l;default:if(typeof l=="object"&&l!==null)switch(l.$$typeof){case Ge:Z=10;break e;case rr:Z=9;break e;case $r:Z=11;break e;case Se:Z=14;break e;case ze:Z=16,T=null;break e;case Je:Z=22;break e}throw Error(n(130,l==null?l:typeof l,""))}return p=Lo(Z,y,p,R),p.elementType=l,p.type=T,p.expirationTime=H,p}function oa(l,p,y,T){return l=Lo(7,l,T,p),l.expirationTime=y,l}function Jl(l,p,y){return l=Lo(6,l,null,p),l.expirationTime=y,l}function ef(l,p,y){return p=Lo(4,l.children!==null?l.children:[],l.key,p),p.expirationTime=y,p.stateNode={containerInfo:l.containerInfo,pendingChildren:null,implementation:l.implementation},p}function Cy(l,p,y){this.tag=p,this.current=null,this.containerInfo=l,this.pingCache=this.pendingChildren=null,this.finishedExpirationTime=0,this.finishedWork=null,this.timeoutHandle=-1,this.pendingContext=this.context=null,this.hydrate=y,this.callbackNode=null,this.callbackPriority=90,this.lastExpiredTime=this.lastPingedTime=this.nextKnownPendingLevel=this.lastSuspendedTime=this.firstSuspendedTime=this.firstPendingTime=0}function Ub(l,p){var y=l.firstSuspendedTime;return l=l.lastSuspendedTime,y!==0&&y>=p&&l<=p}function Su(l,p){var y=l.firstSuspendedTime,T=l.lastSuspendedTime;yp||y===0)&&(l.lastSuspendedTime=p),p<=l.lastPingedTime&&(l.lastPingedTime=0),p<=l.lastExpiredTime&&(l.lastExpiredTime=0)}function Dd(l,p){p>l.firstPendingTime&&(l.firstPendingTime=p);var y=l.firstSuspendedTime;y!==0&&(p>=y?l.firstSuspendedTime=l.lastSuspendedTime=l.nextKnownPendingLevel=0:p>=l.lastSuspendedTime&&(l.lastSuspendedTime=p+1),p>l.nextKnownPendingLevel&&(l.nextKnownPendingLevel=p))}function Id(l,p){var y=l.lastExpiredTime;(y===0||y>p)&&(l.lastExpiredTime=p)}function rf(l,p,y,T){var R=p.current,H=Sn(),Z=iu.suspense;H=en(H,R,Z);e:if(y){y=y._reactInternalFiber;r:{if(_n(y)!==y||y.tag!==1)throw Error(n(170));var ae=y;do{switch(ae.tag){case 3:ae=ae.stateNode.context;break r;case 1:if(Jn(ae.type)){ae=ae.stateNode.__reactInternalMemoizedMergedChildContext;break r}}ae=ae.return}while(ae!==null);throw Error(n(171))}if(y.tag===1){var Ie=y.type;if(Jn(Ie)){y=Zu(y,Ie,ae);break e}}y=ae}else y=oo;return p.context===null?p.context=y:p.pendingContext=y,p=uo(H,Z),p.payload={element:l},T=T===void 0?null:T,T!==null&&(p.callback=T),ka(R,p),Do(R,H),H}function Ld(l){if(l=l.current,!l.child)return null;switch(l.child.tag){case 5:return l.child.stateNode;default:return l.child.stateNode}}function Vb(l,p){l=l.memoizedState,l!==null&&l.dehydrated!==null&&l.retryTime"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(r){console.error(r)}}return e(),Ky.exports=nQ(),Ky.exports}function iQ(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Sz={exports:{}},yn=Sz.exports={},Ma,$a;function rT(){throw new Error("setTimeout has not been defined")}function tT(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?Ma=setTimeout:Ma=rT}catch{Ma=rT}try{typeof clearTimeout=="function"?$a=clearTimeout:$a=tT}catch{$a=tT}})();function xz(e){if(Ma===setTimeout)return setTimeout(e,0);if((Ma===rT||!Ma)&&setTimeout)return Ma=setTimeout,setTimeout(e,0);try{return Ma(e,0)}catch{try{return Ma.call(null,e,0)}catch{return Ma.call(this,e,0)}}}function oQ(e){if($a===clearTimeout)return clearTimeout(e);if(($a===tT||!$a)&&clearTimeout)return $a=clearTimeout,clearTimeout(e);try{return $a(e)}catch{try{return $a.call(null,e)}catch{return $a.call(this,e)}}}var Au=[],Sf=!1,Tc,Eg=-1;function aQ(){!Sf||!Tc||(Sf=!1,Tc.length?Au=Tc.concat(Au):Eg=-1,Au.length&&Oz())}function Oz(){if(!Sf){var e=xz(aQ);Sf=!0;for(var r=Au.length;r;){for(Tc=Au,Au=[];++Eg1)for(var t=1;tM)&&(ye=(Ge=Ge.replace(" ",":")).length),0Y&&(Y=(Ce=Ce.trim()).charCodeAt(0)),Y){case 38:return Ce.replace(_,"$1"+me.trim());case 58:return me.trim()+Ce.replace(_,"$1"+me.trim());default:if(0<1*oe&&0I.charCodeAt(8))break;case 115:X=X.replace(I,"-webkit-"+I)+";"+X;break;case 207:case 102:X=X.replace(I,"-webkit-"+(102oe.charCodeAt(0)&&(oe=oe.trim()),Re=oe,oe=[Re],01?r-1:0),n=1;n0?" Args: "+t.join(", "):""))}var wQ=function(){function e(t){this.groupSizes=new Uint32Array(512),this.length=512,this.tag=t}var r=e.prototype;return r.indexOfGroup=function(t){for(var n=0,a=0;a=this.groupSizes.length){for(var a=this.groupSizes,o=a.length,i=o;t>=i;)(i<<=1)<0&&la(16,""+t);this.groupSizes=new Uint32Array(i),this.groupSizes.set(a),this.length=i;for(var u=o;u=this.length||this.groupSizes[t]===0)return n;for(var a=this.groupSizes[t],o=this.indexOfGroup(t),i=o+a,u=o;u=rv&&(rv=r+1),Pg.set(e,r),Dg.set(r,e)},OQ="style["+vs+'][data-styled-version="5.3.11"]',CQ=new RegExp("^"+vs+'\\.g(\\d+)\\[id="([\\w\\d-]+)"\\].*?"([^"]*)'),kQ=function(e,r,t){for(var n,a=t.split(","),o=0,i=a.length;o=0;c--){var f=s[c];if(f&&f.nodeType===1&&f.hasAttribute(vs))return f}}(t),o=a!==void 0?a.nextSibling:null;n.setAttribute(vs,"active"),n.setAttribute("data-styled-version","5.3.11");var i=oT();return i&&n.setAttribute("nonce",i),t.insertBefore(n,o),n},EQ=function(){function e(t){var n=this.element=Az(t);n.appendChild(document.createTextNode("")),this.sheet=function(a){if(a.sheet)return a.sheet;for(var o=document.styleSheets,i=0,u=o.length;i=0){var a=document.createTextNode(n),o=this.nodes[t];return this.element.insertBefore(a,o||null),this.length++,!0}return!1},r.deleteRule=function(t){this.element.removeChild(this.nodes[t]),this.length--},r.getRule=function(t){return t0&&(h+=m+",")}),o+=""+c+f+'{content:"'+h+`"}/*!sc*/ +`}}}return o}(this)},e}(),jQ=/(a)(d)/gi,O3=function(e){return String.fromCharCode(e+(e>25?39:97))};function aT(e){var r,t="";for(r=Math.abs(e);r>52;r=r/52|0)t=O3(r%52)+t;return(O3(r%52)+t).replace(jQ,"$1-$2")}var yf=function(e,r){for(var t=r.length;t;)e=33*e^r.charCodeAt(--t);return e},Rz=function(e){return yf(5381,e)};function jz(e){for(var r=0;r>>0);if(!t.hasNameForId(a,u)){var s=n(i,"."+u,void 0,a);t.insertRules(a,u,s)}o.push(u),this.staticRulesId=u}else{for(var c=this.rules.length,f=yf(this.baseHash,n.hash),h="",m=0;m>>0);if(!t.hasNameForId(a,b)){var _=n(h,"."+b,void 0,a);t.insertRules(a,b,_)}o.push(b)}}return o.join(" ")},e}(),IQ=/^\s*\/\/.*$/gm,LQ=[":","[",".","#"];function qz(e){var r,t,n,a,o=e===void 0?ds:e,i=o.options,u=i===void 0?ds:i,s=o.plugins,c=s===void 0?qg:s,f=new dQ(u),h=[],m=function(v){function b(_){if(_)try{v(_+"}")}catch{}}return function(_,w,O,C,E,A,P,j,L,N){switch(_){case 1:if(L===0&&w.charCodeAt(0)===64)return v(w+";"),"";break;case 2:if(j===0)return w+"/*|*/";break;case 3:switch(j){case 102:case 112:return v(O[0]+w),"";default:return w+(N===0?"/*|*/":"")}case-2:w.split("/*|*/}").forEach(b)}}}(function(v){h.push(v)}),x=function(v,b,_){return b===0&&LQ.indexOf(_[t.length])!==-1||_.match(a)?v:"."+r};function S(v,b,_,w){w===void 0&&(w="&");var O=v.replace(IQ,""),C=b&&_?_+" "+b+" { "+O+" }":O;return r=w,t=b,n=new RegExp("\\"+t+"\\b","g"),a=new RegExp("(\\"+t+"\\b){2,}"),f(_||!b?"":b,C)}return f.use([].concat(c,[function(v,b,_){v===2&&_.length&&_[0].lastIndexOf(t)>0&&(_[0]=_[0].replace(n,x))},m,function(v){if(v===-2){var b=h;return h=[],b}}])),S.hash=c.length?c.reduce(function(v,b){return b.name||la(15),yf(v,b.name)},5381).toString():"",S}var Jg=bn.createContext(),MQ=Jg.Consumer,FT=bn.createContext(),Dz=(FT.Consumer,new kf),uT=qz();function NT(){return or.useContext(Jg)||Dz}function Iz(){return or.useContext(FT)||uT}function Lz(e){var r=or.useState(e.stylisPlugins),t=r[0],n=r[1],a=NT(),o=or.useMemo(function(){var u=a;return e.sheet?u=e.sheet:e.target&&(u=u.reconstructWithOptions({target:e.target},!1)),e.disableCSSOMInjection&&(u=u.reconstructWithOptions({useCSSOMInjection:!1})),u},[e.disableCSSOMInjection,e.sheet,e.target]),i=or.useMemo(function(){return qz({options:{prefix:!e.disableVendorPrefixes},plugins:t})},[e.disableVendorPrefixes,t]);return or.useEffect(function(){fQ(t,e.stylisPlugins)||n(e.stylisPlugins)},[e.stylisPlugins]),bn.createElement(Jg.Provider,{value:o},bn.createElement(FT.Provider,{value:i},e.children))}var Mz=function(){function e(r,t){var n=this;this.inject=function(a,o){o===void 0&&(o=uT);var i=n.name+o.hash;a.hasNameForId(n.id,i)||a.insertRules(n.id,i,o(n.rules,i,"@keyframes"))},this.toString=function(){return la(12,String(n.name))},this.name=r,this.id="sc-keyframes-"+r,this.rules=t}return e.prototype.getName=function(r){return r===void 0&&(r=uT),this.name+r.hash},e}(),$Q=/([A-Z])/,FQ=/([A-Z])/g,NQ=/^ms-/,BQ=function(e){return"-"+e.toLowerCase()};function C3(e){return $Q.test(e)?e.replace(FQ,BQ).replace(NQ,"-ms-"):e}var k3=function(e){return e==null||e===!1||e===""};function Ic(e,r,t,n){if(Array.isArray(e)){for(var a,o=[],i=0,u=e.length;i1?r-1:0),n=1;n?@[\\\]^`{|}~-]+/g,WQ=/(^-|-$)/g;function Jy(e){return e.replace(zQ,"-").replace(WQ,"")}var zT=function(e){return aT(Rz(e)>>>0)};function rg(e){return typeof e=="string"&&!0}var sT=function(e){return typeof e=="function"||typeof e=="object"&&e!==null&&!Array.isArray(e)},UQ=function(e){return e!=="__proto__"&&e!=="constructor"&&e!=="prototype"};function VQ(e,r,t){var n=e[t];sT(r)&&sT(n)?$z(n,r):e[t]=r}function $z(e){for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=0||(N[j]=A[j]);return N}(r,["componentId"]),E=O&&O+"-"+(rg(w)?w:Jy(iT(w)));return Fz(w,bo({},C,{attrs:m,componentId:E}),t)},Object.defineProperty(S,"defaultProps",{get:function(){return this._foldedDefaultProps},set:function(w){this._foldedDefaultProps=n?$z({},e.defaultProps,w):w}}),Object.defineProperty(S,"toString",{value:function(){return"."+S.styledComponentId}}),a&&Pz(S,e,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,shouldForwardProp:!0,styledComponentId:!0,target:!0,withComponent:!0}),S}var Yi=function(e){return function r(t,n,a){if(a===void 0&&(a=ds),!Ez.isValidElementType(n))return la(1,String(n));var o=function(){return t(n,a,em.apply(void 0,arguments))};return o.withConfig=function(i){return r(t,n,bo({},a,{},i))},o.attrs=function(i){return r(t,n,bo({},a,{attrs:Array.prototype.concat(a.attrs,i).filter(Boolean)}))},o}(Fz,e)};["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","marker","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","textPath","tspan"].forEach(function(e){Yi[e]=Yi(e)});var GQ=function(){function e(t,n){this.rules=t,this.componentId=n,this.isStatic=jz(t),kf.registerId(this.componentId+1)}var r=e.prototype;return r.createStyles=function(t,n,a,o){var i=o(Ic(this.rules,n,a,o).join(""),""),u=this.componentId+t;a.insertRules(u,u,i)},r.removeStyles=function(t,n){n.clearRules(this.componentId+t)},r.renderStyles=function(t,n,a,o){t>2&&kf.registerId(this.componentId+t),this.removeStyles(t,a),this.createStyles(t,n,a,o)},e}();function Nz(e){for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n1?r-1:0),n=1;n"+n+""},this.getStyleTags=function(){return t.sealed?la(2):t._emitSheetCSS()},this.getStyleElement=function(){var n;if(t.sealed)return la(2);var a=((n={})[vs]="",n["data-styled-version"]="5.3.11",n.dangerouslySetInnerHTML={__html:t.instance.toString()},n),o=oT();return o&&(a.nonce=o),[bn.createElement("style",bo({},a,{key:"sc-0-0"}))]},this.seal=function(){t.sealed=!0},this.instance=new kf({isServer:!0}),this.sealed=!1}var r=e.prototype;return r.collectStyles=function(t){return this.sealed?la(2):bn.createElement(Lz,{sheet:this.instance},t)},r.interleaveWithNodeStream=function(t){return la(3)},e}(),XQ=function(e){var r=bn.forwardRef(function(t,n){var a=or.useContext(bs),o=e.defaultProps,i=BT(t,a,o);return bn.createElement(e,bo({},t,{theme:i,ref:n}))});return Pz(r,e),r.displayName="WithTheme("+iT(e)+")",r},QQ=function(){return or.useContext(bs)},JQ={StyleSheet:kf,masterSheet:Dz};const eJ=Object.freeze(Object.defineProperty({__proto__:null,ServerStyleSheet:YQ,StyleSheetConsumer:MQ,StyleSheetContext:Jg,StyleSheetManager:Lz,ThemeConsumer:HQ,ThemeContext:bs,ThemeProvider:KQ,__PRIVATE__:JQ,createGlobalStyle:Nz,css:em,default:Yi,isStyledComponent:Qg,keyframes:ZQ,useTheme:QQ,version:mQ,withTheme:XQ},Symbol.toStringTag,{value:"Module"})),ft=Xg(eJ);var r0={},t0={},ku={},n0,E3;function Bz(){if(E3)return n0;E3=1;var e=typeof ca=="object"&&ca&&ca.Object===Object&&ca;return n0=e,n0}var i0,P3;function Bo(){if(P3)return i0;P3=1;var e=Bz(),r=typeof self=="object"&&self&&self.Object===Object&&self,t=e||r||Function("return this")();return i0=t,i0}var o0,A3;function qf(){if(A3)return o0;A3=1;var e=Bo(),r=e.Symbol;return o0=r,o0}var a0,R3;function rJ(){if(R3)return a0;R3=1;var e=qf(),r=Object.prototype,t=r.hasOwnProperty,n=r.toString,a=e?e.toStringTag:void 0;function o(i){var u=t.call(i,a),s=i[a];try{i[a]=void 0;var c=!0}catch{}var f=n.call(i);return c&&(u?i[a]=s:delete i[a]),f}return a0=o,a0}var u0,j3;function tJ(){if(j3)return u0;j3=1;var e=Object.prototype,r=e.toString;function t(n){return r.call(n)}return u0=t,u0}var s0,q3;function $c(){if(q3)return s0;q3=1;var e=qf(),r=rJ(),t=tJ(),n="[object Null]",a="[object Undefined]",o=e?e.toStringTag:void 0;function i(u){return u==null?u===void 0?a:n:o&&o in Object(u)?r(u):t(u)}return s0=i,s0}var c0,D3;function zo(){if(D3)return c0;D3=1;function e(r){var t=typeof r;return r!=null&&(t=="object"||t=="function")}return c0=e,c0}var l0,I3;function Cv(){if(I3)return l0;I3=1;var e=$c(),r=zo(),t="[object AsyncFunction]",n="[object Function]",a="[object GeneratorFunction]",o="[object Proxy]";function i(u){if(!r(u))return!1;var s=e(u);return s==n||s==a||s==t||s==o}return l0=i,l0}var f0,L3;function nJ(){if(L3)return f0;L3=1;var e=Bo(),r=e["__core-js_shared__"];return f0=r,f0}var d0,M3;function iJ(){if(M3)return d0;M3=1;var e=nJ(),r=function(){var n=/[^.]+$/.exec(e&&e.keys&&e.keys.IE_PROTO||"");return n?"Symbol(src)_1."+n:""}();function t(n){return!!r&&r in n}return d0=t,d0}var p0,$3;function zz(){if($3)return p0;$3=1;var e=Function.prototype,r=e.toString;function t(n){if(n!=null){try{return r.call(n)}catch{}try{return n+""}catch{}}return""}return p0=t,p0}var h0,F3;function oJ(){if(F3)return h0;F3=1;var e=Cv(),r=iJ(),t=zo(),n=zz(),a=/[\\^$.*+?()[\]{}|]/g,o=/^\[object .+?Constructor\]$/,i=Function.prototype,u=Object.prototype,s=i.toString,c=u.hasOwnProperty,f=RegExp("^"+s.call(c).replace(a,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function h(m){if(!t(m)||r(m))return!1;var x=e(m)?f:o;return x.test(n(m))}return h0=h,h0}var v0,N3;function aJ(){if(N3)return v0;N3=1;function e(r,t){return r?.[t]}return v0=e,v0}var b0,B3;function Fc(){if(B3)return b0;B3=1;var e=oJ(),r=aJ();function t(n,a){var o=r(n,a);return e(o)?o:void 0}return b0=t,b0}var g0,z3;function rm(){if(z3)return g0;z3=1;var e=Fc(),r=e(Object,"create");return g0=r,g0}var m0,W3;function uJ(){if(W3)return m0;W3=1;var e=rm();function r(){this.__data__=e?e(null):{},this.size=0}return m0=r,m0}var y0,U3;function sJ(){if(U3)return y0;U3=1;function e(r){var t=this.has(r)&&delete this.__data__[r];return this.size-=t?1:0,t}return y0=e,y0}var _0,V3;function cJ(){if(V3)return _0;V3=1;var e=rm(),r="__lodash_hash_undefined__",t=Object.prototype,n=t.hasOwnProperty;function a(o){var i=this.__data__;if(e){var u=i[o];return u===r?void 0:u}return n.call(i,o)?i[o]:void 0}return _0=a,_0}var w0,H3;function lJ(){if(H3)return w0;H3=1;var e=rm(),r=Object.prototype,t=r.hasOwnProperty;function n(a){var o=this.__data__;return e?o[a]!==void 0:t.call(o,a)}return w0=n,w0}var S0,K3;function fJ(){if(K3)return S0;K3=1;var e=rm(),r="__lodash_hash_undefined__";function t(n,a){var o=this.__data__;return this.size+=this.has(n)?0:1,o[n]=e&&a===void 0?r:a,this}return S0=t,S0}var x0,G3;function dJ(){if(G3)return x0;G3=1;var e=uJ(),r=sJ(),t=cJ(),n=lJ(),a=fJ();function o(i){var u=-1,s=i==null?0:i.length;for(this.clear();++u-1}return P0=r,P0}var A0,r5;function gJ(){if(r5)return A0;r5=1;var e=tm();function r(t,n){var a=this.__data__,o=e(a,t);return o<0?(++this.size,a.push([t,n])):a[o][1]=n,this}return A0=r,A0}var R0,t5;function nm(){if(t5)return R0;t5=1;var e=pJ(),r=hJ(),t=vJ(),n=bJ(),a=gJ();function o(i){var u=-1,s=i==null?0:i.length;for(this.clear();++u=0,K=!D&&F&&(W==="hex"||W==="hex6"||W==="hex3"||W==="hex4"||W==="hex8"||W==="name");return K?W==="name"&&this._a===0?this.toName():this.toRgbString():(W==="rgb"&&(M=this.toRgbString()),W==="prgb"&&(M=this.toPercentageRgbString()),(W==="hex"||W==="hex6")&&(M=this.toHexString()),W==="hex3"&&(M=this.toHexString(!0)),W==="hex4"&&(M=this.toHex8String(!0)),W==="hex8"&&(M=this.toHex8String()),W==="name"&&(M=this.toName()),W==="hsl"&&(M=this.toHslString()),W==="hsv"&&(M=this.toHsvString()),M||this.toHexString())},clone:function(){return o(this.toString())},_applyModification:function(W,D){var M=W.apply(null,[this].concat([].slice.call(D)));return this._r=M._r,this._g=M._g,this._b=M._b,this.setAlpha(M._a),this},lighten:function(){return this._applyModification(w,arguments)},brighten:function(){return this._applyModification(O,arguments)},darken:function(){return this._applyModification(C,arguments)},desaturate:function(){return this._applyModification(v,arguments)},saturate:function(){return this._applyModification(b,arguments)},greyscale:function(){return this._applyModification(_,arguments)},spin:function(){return this._applyModification(E,arguments)},_applyCombination:function(W,D){return W.apply(null,[this].concat([].slice.call(D)))},analogous:function(){return this._applyCombination(L,arguments)},complement:function(){return this._applyCombination(A,arguments)},monochromatic:function(){return this._applyCombination(N,arguments)},splitcomplement:function(){return this._applyCombination(j,arguments)},triad:function(){return this._applyCombination(P,[3])},tetrad:function(){return this._applyCombination(P,[4])}},o.fromRatio=function(I,W){if(t(I)=="object"){var D={};for(var M in I)I.hasOwnProperty(M)&&(M==="a"?D[M]=I[M]:D[M]=Re(I[M]));I=D}return o(I,W)};function i(I){var W={r:0,g:0,b:0},D=1,M=null,F=null,K=null,ee=!1,ie=!1;return typeof I=="string"&&(I=X(I)),t(I)=="object"&&(Y(I.r)&&Y(I.g)&&Y(I.b)?(W=u(I.r,I.g,I.b),ee=!0,ie=String(I.r).substr(-1)==="%"?"prgb":"rgb"):Y(I.h)&&Y(I.s)&&Y(I.v)?(M=Re(I.s),F=Re(I.v),W=h(I.h,M,F),ee=!0,ie="hsv"):Y(I.h)&&Y(I.s)&&Y(I.l)&&(M=Re(I.s),K=Re(I.l),W=c(I.h,M,K),ee=!0,ie="hsl"),I.hasOwnProperty("a")&&(D=I.a)),D=V(D),{ok:ee,format:I.format||ie,r:Math.min(255,Math.max(W.r,0)),g:Math.min(255,Math.max(W.g,0)),b:Math.min(255,Math.max(W.b,0)),a:D}}function u(I,W,D){return{r:te(I,255)*255,g:te(W,255)*255,b:te(D,255)*255}}function s(I,W,D){I=te(I,255),W=te(W,255),D=te(D,255);var M=Math.max(I,W,D),F=Math.min(I,W,D),K,ee,ie=(M+F)/2;if(M==F)K=ee=0;else{var ke=M-F;switch(ee=ie>.5?ke/(2-M-F):ke/(M+F),M){case I:K=(W-D)/ke+(W1&&(ge-=1),ge<1/6?_e+(Ke-_e)*6*ge:ge<1/2?Ke:ge<2/3?_e+(Ke-_e)*(2/3-ge)*6:_e}if(W===0)M=F=K=D;else{var ie=D<.5?D*(1+W):D+W-D*W,ke=2*D-ie;M=ee(ke,ie,I+1/3),F=ee(ke,ie,I),K=ee(ke,ie,I-1/3)}return{r:M*255,g:F*255,b:K*255}}function f(I,W,D){I=te(I,255),W=te(W,255),D=te(D,255);var M=Math.max(I,W,D),F=Math.min(I,W,D),K,ee,ie=M,ke=M-F;if(ee=M===0?0:ke/M,M==F)K=0;else{switch(M){case I:K=(W-D)/ke+(W>1)+720)%360;--W;)M.h=(M.h+F)%360,K.push(o(M));return K}function N(I,W){W=W||6;for(var D=o(I).toHsv(),M=D.h,F=D.s,K=D.v,ee=[],ie=1/W;W--;)ee.push(o({h:M,s:F,v:K})),K=(K+ie)%1;return ee}o.mix=function(I,W,D){D=D===0?0:D||50;var M=o(I).toRgb(),F=o(W).toRgb(),K=D/100,ee={r:(F.r-M.r)*K+M.r,g:(F.g-M.g)*K+M.g,b:(F.b-M.b)*K+M.b,a:(F.a-M.a)*K+M.a};return o(ee)},o.readability=function(I,W){var D=o(I),M=o(W);return(Math.max(D.getLuminance(),M.getLuminance())+.05)/(Math.min(D.getLuminance(),M.getLuminance())+.05)},o.isReadable=function(I,W,D){var M=o.readability(I,W),F,K;switch(K=!1,F=J(D),F.level+F.size){case"AAsmall":case"AAAlarge":K=M>=4.5;break;case"AAlarge":K=M>=3;break;case"AAAsmall":K=M>=7;break}return K},o.mostReadable=function(I,W,D){var M=null,F=0,K,ee,ie,ke;D=D||{},ee=D.includeFallbackColors,ie=D.level,ke=D.size;for(var _e=0;_eF&&(F=K,M=o(W[_e]));return o.isReadable(I,M,{level:ie,size:ke})||!ee?M:(D.includeFallbackColors=!1,o.mostReadable(I,["#fff","#000"],D))};var $=o.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},B=o.hexNames=U($);function U(I){var W={};for(var D in I)I.hasOwnProperty(D)&&(W[I[D]]=D);return W}function V(I){return I=parseFloat(I),(isNaN(I)||I<0||I>1)&&(I=1),I}function te(I,W){Oe(I)&&(I="100%");var D=fe(I);return I=Math.min(W,Math.max(0,parseFloat(I))),D&&(I=parseInt(I*W,10)/100),Math.abs(I-W)<1e-6?1:I%W/parseFloat(W)}function ne(I){return Math.min(1,Math.max(0,I))}function ce(I){return parseInt(I,16)}function Oe(I){return typeof I=="string"&&I.indexOf(".")!=-1&&parseFloat(I)===1}function fe(I){return typeof I=="string"&&I.indexOf("%")!=-1}function ve(I){return I.length==1?"0"+I:""+I}function Re(I){return I<=1&&(I=I*100+"%"),I}function me(I){return Math.round(parseFloat(I)*255).toString(16)}function Ce(I){return ce(I)/255}var oe=function(){var I="[-\\+]?\\d+%?",W="[-\\+]?\\d*\\.\\d+%?",D="(?:"+W+")|(?:"+I+")",M="[\\s|\\(]+("+D+")[,|\\s]+("+D+")[,|\\s]+("+D+")\\s*\\)?",F="[\\s|\\(]+("+D+")[,|\\s]+("+D+")[,|\\s]+("+D+")[,|\\s]+("+D+")\\s*\\)?";return{CSS_UNIT:new RegExp(D),rgb:new RegExp("rgb"+M),rgba:new RegExp("rgba"+F),hsl:new RegExp("hsl"+M),hsla:new RegExp("hsla"+F),hsv:new RegExp("hsv"+M),hsva:new RegExp("hsva"+F),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();function Y(I){return!!oe.CSS_UNIT.exec(I)}function X(I){I=I.replace(n,"").replace(a,"").toLowerCase();var W=!1;if($[I])I=$[I],W=!0;else if(I=="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var D;return(D=oe.rgb.exec(I))?{r:D[1],g:D[2],b:D[3]}:(D=oe.rgba.exec(I))?{r:D[1],g:D[2],b:D[3],a:D[4]}:(D=oe.hsl.exec(I))?{h:D[1],s:D[2],l:D[3]}:(D=oe.hsla.exec(I))?{h:D[1],s:D[2],l:D[3],a:D[4]}:(D=oe.hsv.exec(I))?{h:D[1],s:D[2],v:D[3]}:(D=oe.hsva.exec(I))?{h:D[1],s:D[2],v:D[3],a:D[4]}:(D=oe.hex8.exec(I))?{r:ce(D[1]),g:ce(D[2]),b:ce(D[3]),a:Ce(D[4]),format:W?"name":"hex8"}:(D=oe.hex6.exec(I))?{r:ce(D[1]),g:ce(D[2]),b:ce(D[3]),format:W?"name":"hex"}:(D=oe.hex4.exec(I))?{r:ce(D[1]+""+D[1]),g:ce(D[2]+""+D[2]),b:ce(D[3]+""+D[3]),a:Ce(D[4]+""+D[4]),format:W?"name":"hex8"}:(D=oe.hex3.exec(I))?{r:ce(D[1]+""+D[1]),g:ce(D[2]+""+D[2]),b:ce(D[3]+""+D[3]),format:W?"name":"hex"}:!1}function J(I){var W,D;return I=I||{level:"AA",size:"small"},W=(I.level||"AA").toUpperCase(),D=(I.size||"small").toLowerCase(),W!=="AA"&&W!=="AAA"&&(W="AA"),D!=="small"&&D!=="large"&&(D="small"),{level:W,size:D}}return o})}(Ag)),Ag.exports}var _5;function Uz(){return _5||(_5=1,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var r=t(_s());function t(A){return A&&A.__esModule?A:{default:A}}function n(A){"@babel/helpers - typeof";return n=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(P){return typeof P}:function(P){return P&&typeof Symbol=="function"&&P.constructor===Symbol&&P!==Symbol.prototype?"symbol":typeof P},n(A)}function a(A,P){var j=Object.keys(A);if(Object.getOwnPropertySymbols){var L=Object.getOwnPropertySymbols(A);P&&(L=L.filter(function(N){return Object.getOwnPropertyDescriptor(A,N).enumerable})),j.push.apply(j,L)}return j}function o(A){for(var P=1;P0&&arguments[0]!==void 0?arguments[0]:{},_=(0,a.addThemeDefaults)(b),w=_.family,O=_.colorScheme,C=_.density,E=w==="prisma",A=w==="enterprise",P=C==="comfortable",j=C==="compact",L=O==="dark",N=O==="light";return Object.freeze(s({colorScheme:O,density:C,family:w,isPrisma:E,isEnterprise:A,isComfortable:P,isCompact:j,isDark:L,isLight:N},w==="enterprise"?(0,t.default)({colorScheme:O,density:C}):(0,n.default)({colorScheme:O,density:C})))}var x=(0,r.default)(m,function(){var b=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},_=b.family,w=b.colorScheme,O=b.density;return"".concat(_).concat(w).concat(O)}),S=function(){var _,w;return(_=(w=x.cache).clear)===null||_===void 0?void 0:_.call(w)};e.clearGetThemeCache=S;var v=x;e.default=v}(z0)),z0}var E5;function ws(){if(E5)return ku;E5=1,Object.defineProperty(ku,"__esModule",{value:!0}),ku.clearCustomizedThemeCache=ku.getCustomizedTheme=ku.addThemeDefaults=void 0;var e=t(qu()),r=t(om());function t(u){return u&&u.__esModule?u:{default:u}}var n=function(){var s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},c=s.family,f=c===void 0?"prisma":c,h=s.colorScheme,m=h===void 0?"dark":h,x=s.density,S=x===void 0?"compact":x,v=s.isPrisma,b=v===void 0?!0:v,_=s.isEnterprise,w=_===void 0?!1:_,O=s.isComfortable,C=O===void 0?!1:O,E=s.isCompact,A=E===void 0?!0:E,P=s.isDark,j=P===void 0?!0:P,L=s.isLight,N=L===void 0?!1:L;return{family:f,colorScheme:m,density:S,isPrisma:b,isEnterprise:w,isComfortable:C,isCompact:A,isDark:j,isLight:N}};ku.addThemeDefaults=n;function a(u,s){var c=(0,r.default)(u);return s?s(c):c}var o=(0,e.default)(a,function(){var u=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},s=u.family,c=u.colorScheme,f=u.density,h=arguments.length>1?arguments[1]:void 0;return"".concat(s,"-").concat(c,"-").concat(f,"-").concat(!!h)});ku.getCustomizedTheme=o;var i=function(){var s,c;return(s=(c=o.cache).clear)===null||s===void 0?void 0:s.call(c)};return ku.clearCustomizedThemeCache=i,ku}var P5;function IJ(){return P5||(P5=1,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var r=ws();function t(a){var o,i=((o=a.theme)===null||o===void 0?void 0:o.splunkThemeV1)||{},u=i.family,s=i.colorScheme,c=i.density;return(0,r.addThemeDefaults)({family:u,colorScheme:s,density:c})}var n=t;e.default=n}(t0)),t0}var t1={},n1={},i1={},A5;function Nc(){return A5||(A5=1,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.clearVariablesCache=e.default=void 0;var r=a(qu()),t=a(om()),n=ws();function a(w){return w&&w.__esModule?w:{default:w}}function o(w){"@babel/helpers - typeof";return o=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(O){return typeof O}:function(O){return O&&typeof Symbol=="function"&&O.constructor===Symbol&&O!==Symbol.prototype?"symbol":typeof O},o(w)}function i(w,O){var C=Object.keys(w);if(Object.getOwnPropertySymbols){var E=Object.getOwnPropertySymbols(w);O&&(E=E.filter(function(A){return Object.getOwnPropertyDescriptor(w,A).enumerable})),C.push.apply(C,E)}return C}function u(w){for(var O=1;O * { + flex: 0 0 auto; + } + `]);return a=function(){return s},s}function o(s,c){return c||(c=s.slice(0)),Object.freeze(Object.defineProperties(s,{raw:{value:Object.freeze(c)}}))}function i(){return function(){return(0,r.css)(a(),t.default.spacingSmall)}}var u=i;e.default=u}(n1)),n1}var o1={},j5;function MJ(){return j5||(j5=1,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var r=ft,t=n(Nc());function n(v){return v&&v.__esModule?v:{default:v}}function a(v){"@babel/helpers - typeof";return a=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(b){return typeof b}:function(b){return b&&typeof Symbol=="function"&&b.constructor===Symbol&&b!==Symbol.prototype?"symbol":typeof b},a(v)}function o(){var v=i([` + /* TODO: should this also be a variable? */ + min-width: 34ch; + max-width: `,`; + + /* + * Word spacing: 0.16em + * Letter spacing (i.e., tracking): 0.12em + */ + + /* + * Style all block-level elements to be 1.5 margin-bottom by default + * wcag requirement 1.4.12 + */ + & *:is(`,`):not(:last-child) { + margin-block-end: 1lh; + } + + /* + * Separate h1 and h2 into individual rules to avoid ts-styled-plugin’s parser + * error on comma-separated, multi-line interpolations at the start of a selector. + */ + `,`:where(h1):not(:first-child){ + margin-block-start: 1lh; + } + + `,`:where(h2):not(:first-child) { + margin-block-start: 1lh; + } + + `,`:where(img) { + max-width: 100%; + } + + `,":where(ol), ",`:where(ul) { + padding-inline-start: 2rem; + } + `]);return o=function(){return v},v}function i(v,b){return b||(b=v.slice(0)),Object.freeze(Object.defineProperties(v,{raw:{value:Object.freeze(b)}}))}function u(v,b){var _=Object.keys(v);if(Object.getOwnPropertySymbols){var w=Object.getOwnPropertySymbols(v);b&&(w=w.filter(function(O){return Object.getOwnPropertyDescriptor(v,O).enumerable})),_.push.apply(_,w)}return _}function s(v){for(var b=1;b0&&arguments[0]!==void 0?arguments[0]:{},b=v.elementSelectors,_=s(s({},m),b),w=Array.from(new Set(Object.values(_))).join(",");return function(){return(0,r.css)(o(),t.default.lineLength,w,_.h1,_.h2,_.img,_.ol,_.ul)}}var S=x;e.default=S}(o1)),o1}var a1={},u1={},q5;function VT(){return q5||(q5=1,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.isInterpolationResult=a,e.default=e.getThemeVariant=void 0;var r=ws();function t(s){"@babel/helpers - typeof";return t=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(c){return typeof c}:function(c){return c&&typeof Symbol=="function"&&c.constructor===Symbol&&c!==Symbol.prototype?"symbol":typeof c},t(s)}var n={enterprise:"family",prisma:"family",light:"colorScheme",dark:"colorScheme",compact:"density",comfortable:"density"};function a(s){return t(s)!=="object"||Array.isArray(s)||s===null}var o=function s(c,f){var h=Object.keys(c).shift();if(!h)throw new Error("A pick tree cannot be empty.");var m=n[h];if(!m)throw new Error("Invalid pick tree key: ".concat(h));var x=f[m],S=c[x];return a(S)?S:s(S,f)};e.getThemeVariant=o;var i=function(c){return function(f){var h=f.theme,m=(0,r.addThemeDefaults)(h?.splunkThemeV1);return o(c,m)}},u=i;e.default=u}(u1)),u1}var D5;function Hz(){return D5||(D5=1,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.reset=e.pageBase=void 0;var r=ft,t=a(VT()),n=a(Nc());function a(h){return h&&h.__esModule?h:{default:h}}function o(){var h=u([` + /* Generic resets */ + animation: none 0s ease 0s 1 normal none running; + backface-visibility: visible; + background: transparent none repeat 0 0 / auto auto padding-box border-box scroll; + border: medium none currentColor; + border-collapse: separate; + border-image: none; + border-radius: 0; + border-spacing: 0; + bottom: auto; + box-shadow: none; + caption-side: top; + clear: none; + clip: auto; + color-scheme: `,`; + columns: auto; + column-count: auto; + column-fill: balance; + column-gap: normal; + column-rule: medium none currentColor; + column-span: 1; + column-width: auto; + content: normal; + counter-increment: none; + counter-reset: none; + empty-cells: show; + float: none; + font-style: normal; + font-variant: normal; + font-weight: normal; + font-stretch: normal; + height: auto; + hyphens: none; + left: auto; + letter-spacing: normal; + margin: 0; + max-height: none; + max-width: none; + min-height: 0; + min-width: 0; + opacity: 1; + orphans: 2; + overflow: visible; + overflow-x: visible; + overflow-y: visible; + padding: 0; + page-break-after: auto; + page-break-before: auto; + page-break-inside: auto; + perspective: none; + perspective-origin: 50% 50%; + pointer-events: auto; + position: static; + right: auto; + tab-size: 8; + table-layout: auto; + text-align: left; + text-align-last: auto; + text-decoration: none; + text-indent: 0; + text-shadow: none; + text-transform: none; + top: auto; + transform: none; + transform-origin: 50% 50% 0; + transform-style: flat; + transition: none 0s ease 0s; + user-select: auto; + vertical-align: baseline; + white-space: normal; + widows: 2; + width: auto; + word-spacing: normal; + z-index: auto; + /* Splunk-specific resets */ + border-width: 1px; + box-sizing: border-box; + color: `,`; + cursor: inherit; + `,` + font-family: `,`; + font-size: `,`; + line-height: `,`; + outline: medium none `,`; + visibility: inherit; + `]);return o=function(){return h},h}function i(){var h=u([` + background-color: `,`; + box-sizing: border-box; + color: `,`; + color-scheme: `,`; + font-family: `,`; + margin: 0; + `]);return i=function(){return h},h}function u(h,m){return m||(m=h.slice(0)),Object.freeze(Object.defineProperties(h,{raw:{value:Object.freeze(m)}}))}var s=function(){return function(){return(0,r.css)(i(),n.default.backgroundColorPage,n.default.contentColorDefault,(0,t.default)({dark:"dark",light:"light"}),n.default.fontFamily)}};e.pageBase=s;var c=function(){var m=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"inline",x=m!==null?"display: ".concat(m,";"):"";return function(){return(0,r.css)(o(),(0,t.default)({dark:"dark",light:"light"}),n.default.contentColorDefault,x,n.default.fontFamily,n.default.fontSize,n.default.lineHeight,n.default.focusColor)}};e.reset=c;var f={pageBase:s,reset:c};e.default=f}(a1)),a1}var s1={},c1,I5;function $J(){if(I5)return c1;I5=1;var e=nm();function r(){this.__data__=new e,this.size=0}return c1=r,c1}var l1,L5;function FJ(){if(L5)return l1;L5=1;function e(r){var t=this.__data__,n=t.delete(r);return this.size=t.size,n}return l1=e,l1}var f1,M5;function NJ(){if(M5)return f1;M5=1;function e(r){return this.__data__.get(r)}return f1=e,f1}var d1,$5;function BJ(){if($5)return d1;$5=1;function e(r){return this.__data__.has(r)}return d1=e,d1}var p1,F5;function zJ(){if(F5)return p1;F5=1;var e=nm(),r=WT(),t=UT(),n=200;function a(o,i){var u=this.__data__;if(u instanceof e){var s=u.__data__;if(!r||s.length-1&&t%1==0&&t<=e}return q1=r,q1}var D1,uA;function Du(){if(uA)return D1;uA=1;var e=Cv(),r=YT();function t(n){return n!=null&&r(n.length)&&!e(n)}return D1=t,D1}var I1,sA;function XT(){if(sA)return I1;sA=1;var e=Du(),r=Va();function t(n){return r(n)&&e(n)}return I1=t,I1}var Gh={exports:{}},L1,cA;function HJ(){if(cA)return L1;cA=1;function e(){return!1}return L1=e,L1}Gh.exports;var lA;function Ev(){return lA||(lA=1,function(e,r){var t=Bo(),n=HJ(),a=r&&!r.nodeType&&r,o=a&&!0&&e&&!e.nodeType&&e,i=o&&o.exports===a,u=i?t.Buffer:void 0,s=u?u.isBuffer:void 0,c=s||n;e.exports=c}(Gh,Gh.exports)),Gh.exports}var M1,fA;function rW(){if(fA)return M1;fA=1;var e=$c(),r=ZT(),t=Va(),n="[object Object]",a=Function.prototype,o=Object.prototype,i=a.toString,u=o.hasOwnProperty,s=i.call(Object);function c(f){if(!t(f)||e(f)!=n)return!1;var h=r(f);if(h===null)return!0;var m=u.call(h,"constructor")&&h.constructor;return typeof m=="function"&&m instanceof m&&i.call(m)==s}return M1=c,M1}var $1,dA;function KJ(){if(dA)return $1;dA=1;var e=$c(),r=YT(),t=Va(),n="[object Arguments]",a="[object Array]",o="[object Boolean]",i="[object Date]",u="[object Error]",s="[object Function]",c="[object Map]",f="[object Number]",h="[object Object]",m="[object RegExp]",x="[object Set]",S="[object String]",v="[object WeakMap]",b="[object ArrayBuffer]",_="[object DataView]",w="[object Float32Array]",O="[object Float64Array]",C="[object Int8Array]",E="[object Int16Array]",A="[object Int32Array]",P="[object Uint8Array]",j="[object Uint8ClampedArray]",L="[object Uint16Array]",N="[object Uint32Array]",$={};$[w]=$[O]=$[C]=$[E]=$[A]=$[P]=$[j]=$[L]=$[N]=!0,$[n]=$[a]=$[b]=$[o]=$[_]=$[i]=$[u]=$[s]=$[c]=$[f]=$[h]=$[m]=$[x]=$[S]=$[v]=!1;function B(U){return t(U)&&r(U.length)&&!!$[e(U)]}return $1=B,$1}var F1,pA;function Bc(){if(pA)return F1;pA=1;function e(r){return function(t){return r(t)}}return F1=e,F1}var Zh={exports:{}};Zh.exports;var hA;function QT(){return hA||(hA=1,function(e,r){var t=Bz(),n=r&&!r.nodeType&&r,a=n&&!0&&e&&!e.nodeType&&e,o=a&&a.exports===n,i=o&&t.process,u=function(){try{var s=a&&a.require&&a.require("util").types;return s||i&&i.binding&&i.binding("util")}catch{}}();e.exports=u}(Zh,Zh.exports)),Zh.exports}var N1,vA;function sm(){if(vA)return N1;vA=1;var e=KJ(),r=Bc(),t=QT(),n=t&&t.isTypedArray,a=n?r(n):e;return N1=a,N1}var B1,bA;function tW(){if(bA)return B1;bA=1;function e(r,t){if(!(t==="constructor"&&typeof r[t]=="function")&&t!="__proto__")return r[t]}return B1=e,B1}var z1,gA;function nW(){if(gA)return z1;gA=1;var e=HT(),r=kv(),t=Object.prototype,n=t.hasOwnProperty;function a(o,i,u){var s=o[i];(!(n.call(o,i)&&r(s,u))||u===void 0&&!(i in o))&&e(o,i,u)}return z1=a,z1}var W1,mA;function Df(){if(mA)return W1;mA=1;var e=nW(),r=HT();function t(n,a,o,i){var u=!o;o||(o={});for(var s=-1,c=a.length;++s-1&&n%1==0&&n0){if(++o>=e)return arguments[0]}else o=0;return a.apply(void 0,arguments)}}return i_=n,i_}var o_,DA;function aW(){if(DA)return o_;DA=1;var e=tee(),r=nee(),t=r(e);return o_=t,o_}var a_,IA;function If(){if(IA)return a_;IA=1;var e=cm(),r=oW(),t=aW();function n(a,o){return t(r(a,o,e),a+"")}return a_=n,a_}var u_,LA;function eE(){if(LA)return u_;LA=1;var e=kv(),r=Du(),t=JT(),n=zo();function a(o,i,u){if(!n(u))return!1;var s=typeof i;return(s=="number"?r(u)&&t(i,u.length):s=="string"&&i in u)?e(u[i],o):!1}return u_=a,u_}var s_,MA;function iee(){if(MA)return s_;MA=1;var e=If(),r=eE();function t(n){return e(function(a,o){var i=-1,u=o.length,s=u>1?o[u-1]:void 0,c=u>2?o[2]:void 0;for(s=n.length>3&&typeof s=="function"?(u--,s):void 0,c&&r(o[0],o[1],c)&&(s=u<3?void 0:s,u=1),a=Object(a);++i1&&(o=h(o),i=h(i),u=h(u)),{r:o,g:i,b:u}}({r:e.r+t,g:e.g+t,b:e.b+t})}function lW(e){return Math.max(e.r,e.g,e.b)-Math.min(e.r,e.g,e.b)}function fW(e,r){var t=["r","g","b"].sort(function(u,s){return e[u]-e[s]}),n=t[0],a=t[1],o=t[2],i={r:e.r,g:e.g,b:e.b};return i[o]>i[n]?(i[a]=(i[a]-i[n])*r/(i[o]-i[n]),i[o]=r):i[a]=i[o]=0,i[n]=0,i}function vee(e,r){return fm(fW(r,lW(e)),Tf(e))}function bee(e,r){return fm(fW(e,lW(r)),Tf(e))}function gee(e,r){return fm(r,Tf(e))}function mee(e,r){return fm(e,Tf(r))}function yee(e,r){return oi(e,r,Wo,aee)}function _ee(e,r){return oi(e,r,Wo,uW)}function wee(e,r){return oi(e,r,Wo,sW)}function See(e,r){return oi(e,r,Wo,uee)}function xee(e,r){return oi(e,r,Wo,see)}function Oee(e,r){return oi(e,r,Wo,cee)}function Cee(e,r){return oi(e,r,Wo,lee)}function kee(e,r){return oi(e,r,Wo,fee)}function Tee(e,r){return oi(e,r,Wo,cW)}function Eee(e,r){return oi(e,r,Wo,dee)}function Pee(e,r){return oi(e,r,Wo,pee)}function Aee(e,r){return oi(e,r,Wo,hee)}function Ree(e,r){return oi(e,r,lm,vee)}function jee(e,r){return oi(e,r,lm,bee)}function qee(e,r){return oi(e,r,lm,gee)}function Dee(e,r){return oi(e,r,lm,mee)}const Iee=Object.freeze(Object.defineProperty({__proto__:null,color:qee,colorBurn:kee,colorDodge:Cee,darken:xee,difference:Pee,exclusion:Aee,hardLight:Tee,hue:Ree,lighten:Oee,luminosity:Dee,multiply:_ee,normal:yee,overlay:See,saturation:jee,screen:wee,softLight:Eee},Symbol.toStringTag,{value:"Module"})),dW=Xg(Iee);var BA;function Lee(){return BA||(BA=1,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.clearfix=a,e.ellipsis=o,e.printWidth100Percent=i,e.printHide=u,e.printNoBackground=s,e.printWrapAll=c,e.screenReaderContent=f,e.skipLink=h,e.overlayColors=m,e.colorWithAlpha=x,e.default=void 0;var r=dW,t=n(_s());function n(v){return v&&v.__esModule?v:{default:v}}function a(){return{"&::after":{display:"table",content:'""',clear:"both"}}}function o(){return{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}}function i(){return{maxWidth:"100% !important",width:"100% !important",overflow:"hidden !important"}}function u(){return{display:"none !important"}}function s(){return{background:"none !important"}}function c(){return{wordBreak:"break-all !important",wordWrap:"break-word !important",overflowWrap:"break-word !important",whiteSpace:"normal !important"}}function f(){return{position:"absolute",overflow:"hidden",clip:"rect(0 0 0 0)",height:"1px",width:"1px",margin:"-1px",padding:0,border:0}}function h(){return{position:"absolute","&:not(:focus-within)":{overflow:"hidden",clipPath:"inset(50%)",height:"1px",width:"1px",padding:"0",border:"0",whiteSpace:"nowrap"}}}function m(v,b){return function(_){var w=typeof v=="function"?v(_):v,O=typeof b=="function"?b(_):b,C=(0,r.normal)((0,t.default)(w).toRgb(),(0,t.default)(O).toRgb());return(0,t.default)(C).toRgbString()}}function x(v,b){return function(_){var w=typeof v=="function"?v(_):v;return(0,t.default)(w).setAlpha(b).toRgbString()}}var S={clearfix:a,ellipsis:o,printWidth100Percent:i,printHide:u,printNoBackground:s,printWrapAll:c,screenReaderContent:f,skipLink:h,colorWithAlpha:x,overlayColors:m};e.default=S}(l_)),l_}var zA;function pW(){return zA||(zA=1,function(e){Object.defineProperty(e,"__esModule",{value:!0});var r={layout:!0,prose:!0,typography:!0};Object.defineProperty(e,"layout",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"prose",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,"typography",{enumerable:!0,get:function(){return o.default}}),e.default=void 0;var t=s(LJ());Object.keys(t).forEach(function(b){b==="default"||b==="__esModule"||Object.prototype.hasOwnProperty.call(r,b)||Object.defineProperty(e,b,{enumerable:!0,get:function(){return t[b]}})});var n=s(MJ());Object.keys(n).forEach(function(b){b==="default"||b==="__esModule"||Object.prototype.hasOwnProperty.call(r,b)||Object.defineProperty(e,b,{enumerable:!0,get:function(){return n[b]}})});var a=s(Hz());Object.keys(a).forEach(function(b){b==="default"||b==="__esModule"||Object.prototype.hasOwnProperty.call(r,b)||Object.defineProperty(e,b,{enumerable:!0,get:function(){return a[b]}})});var o=s(oee());Object.keys(o).forEach(function(b){b==="default"||b==="__esModule"||Object.prototype.hasOwnProperty.call(r,b)||Object.defineProperty(e,b,{enumerable:!0,get:function(){return o[b]}})});var i=s(Lee());Object.keys(i).forEach(function(b){b==="default"||b==="__esModule"||Object.prototype.hasOwnProperty.call(r,b)||Object.defineProperty(e,b,{enumerable:!0,get:function(){return i[b]}})});function u(b){if(typeof WeakMap!="function")return null;var _=new WeakMap,w=new WeakMap;return(u=function(C){return C?w:_})(b)}function s(b,_){if(b&&b.__esModule)return b;if(b===null||c(b)!="object"&&typeof b!="function")return{default:b};var w=u(_);if(w&&w.has(b))return w.get(b);var O={__proto__:null},C=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var E in b)if(E!=="default"&&{}.hasOwnProperty.call(b,E)){var A=C?Object.getOwnPropertyDescriptor(b,E):null;A&&(A.get||A.set)?Object.defineProperty(O,E,A):O[E]=b[E]}return O.default=b,w&&w.set(b,O),O}function c(b){"@babel/helpers - typeof";return c=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(_){return typeof _}:function(_){return _&&typeof Symbol=="function"&&_.constructor===Symbol&&_!==Symbol.prototype?"symbol":typeof _},c(b)}function f(b,_){var w=Object.keys(b);if(Object.getOwnPropertySymbols){var O=Object.getOwnPropertySymbols(b);_&&(O=O.filter(function(C){return Object.getOwnPropertyDescriptor(b,C).enumerable})),w.push.apply(w,O)}return w}function h(b){for(var _=1;_-1:!!h&&e(u,s,c)>-1}return U_=i,U_}var V_,S4;function aE(){if(S4)return V_;S4=1;function e(r){var t=r==null?0:r.length;return t?r[t-1]:void 0}return V_=e,V_}var H_,x4;function tre(){if(x4)return H_;x4=1;function e(r,t,n,a){for(var o=n-1,i=r.length;++o-1;)v!==s&&i.call(v,b,1),i.call(s,b,1);return s}return K_=u,K_}var G_,C4;function ire(){if(C4)return G_;C4=1;var e=nre();function r(t,n){return t&&t.length&&n&&n.length?e(t,n):t}return G_=r,G_}var Z_,k4;function gW(){if(k4)return Z_;k4=1;var e=If(),r=ire(),t=e(r);return Z_=t,Z_}var Y_={exports:{}},T4=Object.prototype.hasOwnProperty;function E4(e,r,t){for(t of e.keys())if(tv(t,r))return t}function tv(e,r){var t,n,a;if(e===r)return!0;if(e&&r&&(t=e.constructor)===r.constructor){if(t===Date)return e.getTime()===r.getTime();if(t===RegExp)return e.toString()===r.toString();if(t===Array){if((n=e.length)===r.length)for(;n--&&tv(e[n],r[n]););return n===-1}if(t===Set){if(e.size!==r.size)return!1;for(n of e)if(a=n,a&&typeof a=="object"&&(a=E4(r,a),!a)||!r.has(a))return!1;return!0}if(t===Map){if(e.size!==r.size)return!1;for(n of e)if(a=n[0],a&&typeof a=="object"&&(a=E4(r,a),!a)||!tv(n[1],r.get(a)))return!1;return!0}if(t===ArrayBuffer)e=new Uint8Array(e),r=new Uint8Array(r);else if(t===DataView){if((n=e.byteLength)===r.byteLength)for(;n--&&e.getInt8(n)===r.getInt8(n););return n===-1}if(ArrayBuffer.isView(e)){if((n=e.byteLength)===r.byteLength)for(;n--&&e[n]===r[n];);return n===-1}if(!t||typeof e=="object"){n=0;for(t in e)if(T4.call(e,t)&&++n&&!T4.call(r,t)||!(t in r)||!tv(e[t],r[t]))return!1;return Object.keys(r).length===n}}return e!==e&&r!==r}function ore(e){const r=bn.useRef(e),t=bn.useRef(0);return tv(e,r.current)||(r.current=e,t.current+=1),bn.useMemo(()=>r.current,[t.current])}function are(e,r){return bn.useMemo(e,ore(r))}function ure(e,r,t,n){const a=or.useRef(t);a.current=t;const o=are(()=>n,[n]);or.useEffect(()=>{if(!e)return;const i=u=>a.current.call(e,u);return e.addEventListener(r,i,o),()=>{e.removeEventListener(r,i,o)}},[e,r,o])}const sre=Object.freeze(Object.defineProperty({__proto__:null,default:ure},Symbol.toStringTag,{value:"Module"})),mW=Xg(sre);var P4;function cre(){return P4||(P4=1,(()=>{var e={};e.n=h=>{var m=h&&h.__esModule?()=>h.default:()=>h;return e.d(m,{a:m}),m},e.d=(h,m)=>{for(var x in m)e.o(m,x)&&!e.o(h,x)&&Object.defineProperty(h,x,{enumerable:!0,get:m[x]})},e.o=(h,m)=>Object.prototype.hasOwnProperty.call(h,m),e.r=h=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(h,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(h,"__esModule",{value:!0})};var r={};e.r(r),e.d(r,{default:()=>f});const t=Or();var n=e.n(t);const a=Wt();var o=e.n(a);const i=mW;var u=e.n(i),s={children:o().node,target:o().oneOfType([o().object,o().string]),eventType:o().any,listener:o().func,options:o().oneOfType([o().object,o().bool])};function c(h){var m=h.children,x=h.target,S=h.eventType,v=h.listener,b=h.options;return u()(x,S,v,b),n().createElement(n().Fragment,null,m||null)}c.propTypes=s;const f=c;Y_.exports=r})()),Y_.exports}var X_={exports:{}},A4;function lre(){return A4||(A4=1,(()=>{var e={9497:a=>{a.exports=Or()}},r={};function t(a){var o=r[a];if(o!==void 0)return o.exports;var i=r[a]={exports:{}};return e[a](i,i.exports,t),i.exports}t.d=(a,o)=>{for(var i in o)t.o(o,i)&&!t.o(a,i)&&Object.defineProperty(a,i,{enumerable:!0,get:o[i]})},t.o=(a,o)=>Object.prototype.hasOwnProperty.call(a,o),t.r=a=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(a,"__esModule",{value:!0})};var n={};(()=>{t.r(n),t.d(n,{default:()=>i});var a=t(9497);function o(u){var s=(0,a.useRef)();return(0,a.useEffect)(function(){s.current=u},[u]),s.current}const i=o})(),X_.exports=n})()),X_.exports}var zd={},R4;function fre(){if(R4)return zd;R4=1,Object.defineProperty(zd,"__esModule",{value:!0}),zd.createGUID=e,zd.createDOMID=r;function e(){var t="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";return t.replace(/[xy]/g,function(n){var a=Math.floor(Math.random()*16),o=n==="x"?a:a%4+8;return o.toString(16)})}function r(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"id";if(t.match(/^[a-zA-Z][\w-]*$/))return"".concat(t,"-").concat(e());throw new Error("createDOMID: Prefix must start with a letter and may only contain letters, digits, hyphens and underscores")}return zd}var j4;function dre(){return j4||(j4=1,(()=>{var e={};e.n=J=>{var I=J&&J.__esModule?()=>J.default:()=>J;return e.d(I,{a:I}),I},e.d=(J,I)=>{for(var W in I)e.o(I,W)&&!e.o(J,W)&&Object.defineProperty(J,W,{enumerable:!0,get:I[W]})},e.g=function(){if(typeof globalThis=="object")return globalThis;try{return this||new Function("return this")()}catch{if(typeof window=="object")return window}}(),e.o=(J,I)=>Object.prototype.hasOwnProperty.call(J,I),e.r=J=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(J,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(J,"__esModule",{value:!0})};var r={};e.r(r),e.d(r,{LayerContext:()=>O,LayerStackContext:()=>w,LayerStackGlobalProvider:()=>E,default:()=>X});const t=Or();var n=e.n(t);const a=Ov(),o=Wt();var i=e.n(o);const u=Av();var s=e.n(u);const c=aE();var f=e.n(c);const h=gW();var m=e.n(h);const x=cre();var S=e.n(x);const v=lre();var b=e.n(v);const _=fre();var w=n().createContext([]),O=n().createContext({}),C={children:i().node,name:i().string,scope:i().object,separateStackingContexts:i().bool};function E(J){var I=J.children,W=J.name,D=W===void 0?"__splunkui_layer_instances__":W,M=J.scope,F=M===void 0?typeof window<"u"?window:e.g:M,K=J.separateStackingContexts,ee=K===void 0?!1:K;F[D]||(F[D]=[]);var ie=(0,t.useMemo)(function(){return{separateStackingContexts:ee}},[ee]);return n().createElement(w.Provider,{value:F[D]},n().createElement(O.Provider,{value:ie},I))}E.propTypes=C;const A=ft;var P=e.n(A);const j=dm();var L=P().div.withConfig({displayName:"LayerStyles__StyledLayer",componentId:"ii6psl-0"})(["",""],function(J){var I=J.$separateStackingContexts;return I&&(0,A.css)(["isolation:isolate;position:relative;z-index:",";"],j.variables.zindexLayer)}),N={body:{appendChild:function(){return[]}},addEventListener:function(){},removeEventListener:function(){},activeElement:{blur:function(){},nodeName:""},querySelector:function(){return null},querySelectorAll:function(){return[]},getElementById:function(){return null},createEvent:function(){return{initEvent:function(){}}},createElement:function(){return{children:[],childNodes:[],style:{},setAttribute:function(){},getElementsByTagName:function(){return[]}}},createElementNS:function(){return{}},importNode:function(){return null},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""}};function $(){var J=typeof document<"u"?document:N;return J}var B={document:N,navigator:{userAgent:""},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""},history:{replaceState:function(){},pushState:function(){},go:function(){},back:function(){}},CustomEvent:function(){return this},addEventListener:function(){},removeEventListener:function(){},getComputedStyle:function(){return{getPropertyValue:function(){return""}}},Image:function(){},Date:function(){},screen:{},setTimeout:function(){},clearTimeout:function(){},matchMedia:function(){return{}},requestAnimationFrame:function(I){return typeof setTimeout>"u"?(I(),null):setTimeout(I,0)},cancelAnimationFrame:function(I){typeof setTimeout>"u"||clearTimeout(I)}};function U(){var J=typeof window<"u"?window:B;return J}var V=U();const te=V;function ne(J,I){return Re(J)||ve(J,I)||Oe(J,I)||ce()}function ce(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Oe(J,I){if(J){if(typeof J=="string")return fe(J,I);var W={}.toString.call(J).slice(8,-1);return W==="Object"&&J.constructor&&(W=J.constructor.name),W==="Map"||W==="Set"?Array.from(J):W==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(W)?fe(J,I):void 0}}function fe(J,I){(I==null||I>J.length)&&(I=J.length);for(var W=0,D=Array(I);W0&&c>s&&(c=s);for(var f=0;f=0?(x=h.substr(0,m),S=h.substr(m+1)):(x=h,S=""),v=decodeURIComponent(x),b=decodeURIComponent(S),e(i,v)?r(i[v])?i[v].push(b):i[v]=[i[v],b]:i[v]=b}return i};var r=Array.isArray||function(t){return Object.prototype.toString.call(t)==="[object Array]"};return Q_}var J_,D4;function hre(){if(D4)return J_;D4=1;var e=function(a){switch(typeof a){case"string":return a;case"boolean":return a?"true":"false";case"number":return isFinite(a)?a:"";default:return""}};J_=function(a,o,i,u){return o=o||"&",i=i||"=",a===null&&(a=void 0),typeof a=="object"?t(n(a),function(s){var c=encodeURIComponent(e(s))+i;return r(a[s])?t(a[s],function(f){return c+encodeURIComponent(e(f))}).join(o):c+encodeURIComponent(e(a[s]))}).join(o):u?encodeURIComponent(e(u))+i+encodeURIComponent(e(a)):""};var r=Array.isArray||function(a){return Object.prototype.toString.call(a)==="[object Array]"};function t(a,o){if(a.map)return a.map(o);for(var i=[],u=0;u"u")return null;var t=new RegExp("(^|; ?)".concat(r,"=([^;]+)")),n=null;try{var a=document.cookie.match(t);n=a?a[2]:null}catch{}return n}return ng}var H4;function lE(){if(H4)return lt;H4=1,Object.defineProperty(lt,"__esModule",{value:!0}),lt.getCSRFToken=i,lt.extractAppName=s,lt.versionLabel=lt.username=lt.splunkdPath=lt.serverTimezoneInfo=lt.rootPath=lt.portNumber=lt.locale=lt.config=lt.buildPushNumber=lt.buildNumber=lt.appBuild=lt.app=lt.isAvailable=lt.CSRFToken=void 0;var e=t(cE()),r=gre();function t(E){return E&&E.__esModule?E:{default:E}}var n=typeof window>"u"?ca:window;function a(E){return(0,e.default)(n,["$C",E])}var o=(0,r.getEntry)("splunkweb_csrf_token_".concat(a("MRSPARKLE_PORT_NUMBER")));lt.CSRFToken=o;function i(){return(0,r.getEntry)("splunkweb_csrf_token_".concat(a("MRSPARKLE_PORT_NUMBER")))}var u=!!a("SPLUNKD_PATH");lt.isAvailable=u;function s(){var E=arguments.length>0&&arguments[0]!==void 0?arguments[0]:(0,e.default)(n,["document","location","pathname"],""),A=E.match(/\w\w.\w\w\/(app|manager)\/([^/]+)/);return A?A[2]:void 0}var c=s();lt.app=c;var f=a("APP_BUILD");lt.appBuild=f;var h=a("BUILD_NUMBER");lt.buildNumber=h;var m=a("BUILD_PUSH_NUMBER");lt.buildPushNumber=m;var x=(0,e.default)(n,"$C");lt.config=x;var S=a("LOCALE");lt.locale=S;var v=a("MRSPARKLE_PORT_NUMBER");lt.portNumber=v;var b=a("MRSPARKLE_ROOT_PATH");lt.rootPath=b;var _=a("SERVER_ZONEINFO");lt.serverTimezoneInfo=_;var w=a("SPLUNKD_PATH");lt.splunkdPath=w;var O=a("USERNAME");lt.username=O;var C=a("VERSION_LABEL");return lt.versionLabel=C,lt}var K4;function jv(){if(K4)return ni;K4=1,Object.defineProperty(ni,"__esModule",{value:!0}),ni.withConfig=f,ni.insertCacheBuster=ni.createURL=ni.createStaticURL=ni.createRESTURL=ni.createDocsURL=ni.createAppDocsURL=void 0;var e=uE(),r=n(lE());function t(w){if(typeof WeakMap!="function")return null;var O=new WeakMap,C=new WeakMap;return(t=function(A){return A?C:O})(w)}function n(w,O){if(w&&w.__esModule)return w;if(w===null||a(w)!="object"&&typeof w!="function")return{default:w};var C=t(O);if(C&&C.has(w))return C.get(w);var E={__proto__:null},A=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var P in w)if(P!=="default"&&{}.hasOwnProperty.call(w,P)){var j=A?Object.getOwnPropertyDescriptor(w,P):null;j&&(j.get||j.set)?Object.defineProperty(E,P,j):E[P]=w[P]}return E.default=w,C&&C.set(w,E),E}function a(w){"@babel/helpers - typeof";return a=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(O){return typeof O}:function(O){return O&&typeof Symbol=="function"&&O.constructor===Symbol&&O!==Symbol.prototype?"symbol":typeof O},a(w)}function o(w,O){var C=Object.keys(w);if(Object.getOwnPropertySymbols){var E=Object.getOwnPropertySymbols(w);O&&(E=E.filter(function(A){return Object.getOwnPropertyDescriptor(w,A).enumerable})),C.push.apply(C,E)}return C}function i(w){for(var O=1;O1&&arguments[1]!==void 0?arguments[1]:{},Oe=i({appBuild:O,buildPushNumber:E,buildNumber:C},ce),fe=ne.match(/(^|\w\w-\w\w\/)static\//);if(!fe)return ne;var ve=fe.index+fe[0].length-1,Re=ne.match(/(^|\w\w-\w\w|)static\/app/),me=Re?":".concat(Oe.appBuild||0):"",Ce=Oe.buildPushNumber?".".concat(Oe.buildPushNumber):"",oe="/@".concat(Oe.buildNumber).concat(Ce).concat(me),Y=ne.substr(0,ve),X=ne.substr(ve);return"".concat(Y).concat(oe).concat(X)}function N(ne,ce){var Oe=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},fe=i({appBuild:O,buildPushNumber:E,buildNumber:C,rootPath:P,locale:A},Oe),ve=ne||"/",Re=ce?"?".concat((0,e.stringify)(ce)):"";return ve.charAt(0)!=="/"&&(ve="/".concat(ve)),ve="".concat(fe.rootPath||"","/").concat(fe.locale).concat(ve).concat(Re),L(ve,fe)}function $(ne){for(var ce=arguments.length,Oe=new Array(ce>1?ce-1:0),fe=1;fe1&&arguments[1]!==void 0?arguments[1]:{},Oe=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(/^http[s]?:\/\//.test(ne))return ne;var fe=Oe.splunkdPath||j||"";if(/^\/.*/.test(ne))return/^\/services/.test(ne)?"".concat(fe).concat(ne):ne;if(!ce.app&&!ce.owner)return"".concat(fe,"/services/").concat(ne);var ve;ce.sharing?ve="nobody":ce.owner?ve=encodeURIComponent(ce.owner):ve="-";var Re;return ce.sharing==="system"?Re="system":ce.app?Re=encodeURIComponent(ce.app):Re="-","".concat(fe,"/servicesNS/").concat(ve,"/").concat(Re,"/").concat(ne)}function U(ne,ce){return N("/help",ne,ce)}function V(ne,ce){return U({location:ne},ce)}function te(ne,ce,Oe){var fe=ce.appName,ve=ce.appVersion;return U({location:"[".concat(fe,":").concat(ve,"]").concat(ne)},Oe)}return{createAppDocsURL:te,createDocsURL:V,createRESTURL:B,createStaticURL:$,createURL:N,insertCacheBuster:L}}var h=f(r),m=h.createAppDocsURL,x=h.createDocsURL,S=h.createRESTURL,v=h.createStaticURL,b=h.createURL,_=h.insertCacheBuster;return ni.insertCacheBuster=_,ni.createURL=b,ni.createStaticURL=v,ni.createRESTURL=S,ni.createDocsURL=x,ni.createAppDocsURL=m,ni}var cw={exports:{}},G4;function mre(){return G4||(G4=1,(()=>{var e={3563:a=>{a.exports=dm()},23:a=>{a.exports=Wt()},9497:a=>{a.exports=Or()},232:a=>{a.exports=ft}},r={};function t(a){var o=r[a];if(o!==void 0)return o.exports;var i=r[a]={exports:{}};return e[a](i,i.exports,t),i.exports}t.n=a=>{var o=a&&a.__esModule?()=>a.default:()=>a;return t.d(o,{a:o}),o},t.d=(a,o)=>{for(var i in o)t.o(o,i)&&!t.o(a,i)&&Object.defineProperty(a,i,{enumerable:!0,get:o[i]})},t.o=(a,o)=>Object.prototype.hasOwnProperty.call(a,o),t.r=a=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(a,"__esModule",{value:!0})};var n={};(()=>{t.r(n),t.d(n,{default:()=>_});var a=t(9497),o=t.n(a),i=t(23),u=t.n(i),s=t(232),c=t.n(s),f=t(3563),h=c().span.withConfig({displayName:"ScreenReaderContentStyles__Styled",componentId:"sc-1lnohwp-0"})(["",";"],f.mixins.screenReaderContent());function m(){return m=Object.assign?Object.assign.bind():function(w){for(var O=1;O{var e={};e.n=ee=>{var ie=ee&&ee.__esModule?()=>ee.default:()=>ee;return e.d(ie,{a:ie}),ie},e.d=(ee,ie)=>{for(var ke in ie)e.o(ie,ke)&&!e.o(ee,ke)&&Object.defineProperty(ee,ke,{enumerable:!0,get:ie[ke]})},e.o=(ee,ie)=>Object.prototype.hasOwnProperty.call(ee,ie),e.r=ee=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(ee,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(ee,"__esModule",{value:!0})};var r={};e.r(r),e.d(r,{AppBar:()=>w,SplunkBar:()=>_,default:()=>K});const t=Ov(),n=ft;var a=e.n(n);const o=dm();function i(){var ee=m([` + animation-name: `,`; + animation-duration: 1.4s; + animation-iteration-count: infinite; + animation-fill-mode: both; + background-color: `,`; + width: 10px; + height: 10px; + border-radius: 5px; + display: inline-block; + margin-right: `,`; + + &:nth-child(2) { + animation-delay: 0.2s; + } + + &:nth-child(3) { + animation-delay: 0.4s; + } +`]);return i=function(){return ee},ee}function u(){var ee=m([` + color: `,`; + padding-top: 30vh; + text-align: center; + min-height: 400px; +`]);return u=function(){return ee},ee}function s(){var ee=m([` + background-color: `,`; + min-height: `,`px; +`]);return s=function(){return ee},ee}function c(){var ee=m([` + padding: 0; + background-color: `,`; + height: `,`px; +`]);return c=function(){return ee},ee}function f(){var ee=m([` + background-color: `,`; + position: fixed; + opacity: 1; + z-index: 10000; + top: 0; + bottom: 0; + left: 0; + right: 0; +`]);return f=function(){return ee},ee}function h(){var ee=m([` + 0% { + opacity: 0.2; + } + + 20% { + opacity: 1; + } + + 100% { + opacity: 0.2; + } +`]);return h=function(){return ee},ee}function m(ee,ie){return ie||(ie=ee.slice(0)),Object.freeze(Object.defineProperties(ee,{raw:{value:Object.freeze(ie)}}))}var x=45,S=34,v=(0,n.keyframes)(h()),b=a().div(f(),o.variables.backgroundColorPage),_=a().div(c(),(0,o.pick)({prisma:o.variables.backgroundColorSection,enterprise:o.variables.gray20}),S),w=a().div(s(),(0,o.pick)({prisma:o.variables.backgroundColorPopup,enterprise:o.variables.gray30}),x),O=a().div(u(),o.variables.contentColorInverted),C=a().div(i(),v,o.variables.neutral500,(0,o.pick)({prisma:o.variables.spacingMedium,enterprise:o.variables.spacingSmall}));const E=Or();var A=e.n(E);const P=hW();var j=e.n(P);const L=dre(),N=jv(),$=tE();var B=e.n($);const U=Wt();var V=e.n(U);const te=mre();var ne=e.n(te);const ce=yre();var Oe={hideAppBar:V().bool,hideChrome:V().bool,hideSplunkBar:V().bool,AppBarFallback:V().elementType,SplunkBarFallback:V().elementType};function fe(ee){var ie=ee.AppBarFallback,ke=ie===void 0?w:ie,_e=ee.hideAppBar,Ke=ee.hideChrome,ge=ee.hideSplunkBar,ye=ee.SplunkBarFallback,Ze=ye===void 0?_:ye;return A().createElement(b,null,!Ke&&!ge&&A().createElement(Ze,null),!Ke&&!_e&&A().createElement(ke,null),A().createElement(O,null,A().createElement(C,null),A().createElement(C,null),A().createElement(C,null),A().createElement(ne(),null,(0,ce._)("Loading"))))}fe.propTypes=Oe;const ve=fe;function Re(ee,ie){if(ee==null)return{};var ke,_e,Ke=me(ee,ie);if(Object.getOwnPropertySymbols){var ge=Object.getOwnPropertySymbols(ee);for(_e=0;_e2&&arguments[2]!==void 0?arguments[2]:{},_e=ke.loader,Ke=_e===void 0?"scriptjs":_e,ge=ee==="dark"?oe:Ce,ye=(0,N.createStaticURL)(ge);if(Ke==="scriptjs")j()(ye,function(){ie(window.__splunk_layout__)});else if(Ke==="requirejs")if(window.requirejs)window.requirejs([ye],ie);else throw new Error('Error in react-page: options.loader = "requirejs" was set but window.requirejs does not exist.');else throw new Error('Invalid options.loader configuration: must be "scriptjs" or "requirejs".')}function J(ee){var ie=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},ke=ie.hideSplunkBar,_e=ie.hideAppBar,Ke=ie.headerHeight,ge=ee.children[0],ye=ge&&getComputedStyle(ge).backgroundColor;if(!(ke||_e)){var Ze=ge?.offsetHeight,Ve=ee.children[1],Be=Ve&&getComputedStyle(Ve).backgroundColor,Ge=Math.round(Ze/Ke*100);return`linear-gradient( + `.concat(ye,` 0%, + `).concat(ye," ").concat(Ge,`%, + `).concat(Be," ").concat(Ge,`%, + `).concat(Be,` 100% + )`)}return ye}function I(ee,ie,ke){var _e=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,Ke=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{},ge=_e?A().createElement(L.LayerStackGlobalProvider,null,A().createElement(B(),Ke,ee)):A().createElement(B(),Ke,ee);return ie(ge,ke)}function W(ee,ie){var ke=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},_e=ke.useGlobalLayerStack,Ke=_e===void 0?!0:_e,ge=ke.pageTitle,ye=ke.theme,Ze=ye===void 0?"light":ye,Ve=ke.themeDensity,Be=ke.loader,Ge=Be===void 0?"scriptjs":Be,rr=Re(ke,["useGlobalLayerStack","pageTitle","theme","themeDensity","loader"]);ge&&(document.title=ge);var Hr=rr.hideChrome,$r=rr.themeFamily,de=$r===void 0?"enterprise":$r,Te=rr.hideAppBar,Se=rr.hideSplunkBar,ze=rr.SplunkBarFallback,Je=ze===void 0?_:ze,er=rr.AppBarFallback,br=er===void 0?w:er,Tr=rr.lazyLoadLayout,Ir=Tr===void 0?!1:Tr,Kr=rr.onLayoutComplete,vt=rr.onLayoutStart,dt=document.createElement("div"),at=document.createElement("div");vt?.({headerContainer:at,bodyContainer:dt});var Nt=Ze==="light"||Ze==="enterprise"?"light":"dark",Lt={family:de,colorScheme:Nt,density:Ve||(de==="prisma"?"compact":"comfortable")},Mt,ln;if(Ir){if(!Hr){document.body.appendChild(at),ln=ie(A().createElement(A().Fragment,null,!Se&&A().createElement(Je,null),!Te&&A().createElement(br,null)),at);var pt=at.offsetHeight,Ht=J(at,{hideSplunkBar:Se,hideAppBar:Te,headerHeight:pt,AppBarFallback:br,SplunkBarFallback:Je});at.style.height="".concat(pt,"px"),at.style.background="".concat(Ht)}document.body.appendChild(dt),Mt=I(ee,ie,dt,Ke,Lt)}else document.body.appendChild(dt),Mt=ie(A().createElement(B(),Lt,A().createElement(ve,rr)),dt);X(Ze,function(Bt){var $t;if(Bt?($t=Bt.create(rr).getContainerElement(),rr.layout==="fixed"&&((!$t.style.flex||$t.style.flex==="1 0 0px")&&($t.style.flex="1 0 0%"),$t.style.overflow||($t.style.overflow="hidden"),$t.style.width||($t.style.width="100vw"))):(console.error("Unable to load layout."),$t=document.createElement("div"),document.body.appendChild($t)),Ir){if(!Hr){ln.unmount(at);var Uo=document.querySelector(Y),si=(!Hr&&!Se?S:0)+(!Hr&&!Te?x:0);at.style.minHeight="".concat(si,"px"),at.style.height="auto",at.appendChild(Uo)}$t.appendChild(dt),Kr?.()}else setTimeout(function(){Mt.unmount(dt),Mt=I(ee,ie,dt,Ke,Lt),$t.appendChild(dt),Kr?.()},30)},{loader:Ge})}const D=W;var M=function(ie,ke){return(0,t.render)(ie,ke),{unmount:function(){return(0,t.unmountComponentAtNode)(ke)}}};function F(ee,ie){D(ee,M,ie)}const K=F;Hy.exports=r})()),Hy.exports}var wre=_re();const lw=Xi(wre);var sf={},X4;function Sre(){if(X4)return sf;X4=1,Object.defineProperty(sf,"__esModule",{value:!0}),sf.defaultTheme=o,sf.getUserTheme=i,sf.getThemeOptions=u;var e=t(hW()),r=jv();function t(s){return s&&s.__esModule?s:{default:s}}var n={enterprise:{family:"enterprise",colorScheme:"light",density:"comfortable"},enterpriseDark:{family:"enterprise",colorScheme:"dark",density:"comfortable"},light:{family:"enterprise",colorScheme:"light",density:"comfortable"},dark:{family:"enterprise",colorScheme:"dark",density:"comfortable"},prismaLight:{family:"prisma",colorScheme:"light",density:"comfortable"},prismaDark:{family:"prisma",colorScheme:"dark",density:"comfortable"},lite:{family:"enterprise",colorScheme:"light",density:"comfortable"}};function a(s){var c=(0,r.createStaticURL)("build/api/get_theme.js");(0,e.default)(c,function(){s(window.__get_theme__)})}function o(){var s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:typeof window<"u"?window:null;if(!s)return"enterprise";var c=s.__splunkd_partials__&&s.__splunkd_partials__["/services/server/info"]&&s.__splunkd_partials__["/services/server/info"].entry[0].content.product_type,f=s.__splunk_ui_theme__,h=s.$C&&s.$C.SPLUNK_UI_THEME;return f||h||c||"enterprise"}function i(){return new Promise(function(s){var c=function(h){if(h){h.getTheme().then(function(m){s(m)});return}s(o())};a(c)})}function u(s){return n[s]||n.enterprise}return sf}var xre=Sre();const Ore="inputs",Cre="configuration",kre="dashboard",qc={0:"Field {{args[0]}} is required",1:"Field {{args[0]}} must be a string",2:"{{args[0]}} {{args[1]}} is already in use",3:'"default", ".", "..", string started with "_" and string including any one of ["*", "\\", "[", "]", "(", ")", "?", ":"] are reserved value which cannot be used for field {{args[0]}}',5:"Field {{args[0]}} should be a positive number",6:"Field {{args[0]}} is required",7:"Field {{args[0]}} is not a valid regular expression",8:"Field {{args[0]}} should be within the range of [{{args[1]}} and {{args[2]}}]",9:"Field {{args[0]}} should be greater than or equal to {{args[1]}}",10:"Field {{args[0]}} should be less than or equal to {{args[1]}}",11:"{{args[0]}} is not a function",12:"{{args[0]}} is not a valid regular expression",13:"{{args[0]}} is not a valid number range",15:"Field {{args[0]}} does not match regular expression {{args[1]}}",16:"Field {{args[0]}} is not a number",17:"Length of {{args[0]}} should be greater than or equal to {{args[1]}}",18:"Length of {{args[0]}} should be less than or equal to {{args[1]}}",19:"Field {{args[0]}} is not a valid {{args[1]}}",20:"configuration file should be pure JSON",21:"duplicate {{args[0]}} keys are not allowed",22:"Field {{args[0]}} must be less than 1024 characters",23:`"name" field must be provided for {{args[0]}} 's entity in configuration file`,24:"The file must be in one of these formats: {{args[0]}}",25:"The file size should not exceed {{args[0]}} KB",26:"The file is invalid",27:"{{args[0]}} type is not present in supported File Types",28:"The file must be in {{args[0]}} format",29:"Field {{args[0]}} is not a integer",100:"Create New Input",101:"Delete Confirmation",102:'Are you sure you want to delete "{{args[0]}}" {{args[1]}}? Ensure that no input is configured with "{{args[0]}}" as this will stop data collection for that input.',103:'Are you sure you want to delete "{{args[0]}}" {{args[1]}}?',104:"Error Message",105:"Warning",106:"Input Type",107:"Items",108:"Saving",109:"Failed to load index",110:"Internal configuration file error. Something wrong within the package or installation step. Contact your administrator for support. Detail: {{args[0]}}",111:"URL",112:"email address",113:"IPV4 address",114:"date in ISO 8601 format",116:"Inputs",117:"Configuration",118:"configuration file not found",119:"Monitoring Dashboard",unknown:"An unknown error occurred"};var Tre=tE();const Ere=Xi(Tre);var wW=Ov();const Qme=Xi(wW);/** + * @remix-run/router v1.20.0 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function sv(){return sv=Object.assign?Object.assign.bind():function(e){for(var r=1;r"u")throw new Error(r)}function Are(){return Math.random().toString(36).substr(2,8)}function J4(e,r){return{usr:e.state,key:e.key,idx:r}}function fT(e,r,t,n){return t===void 0&&(t=null),sv({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof r=="string"?bm(r):r,{state:t,key:r&&r.key||n||Are()})}function SW(e){let{pathname:r="/",search:t="",hash:n=""}=e;return t&&t!=="?"&&(r+=t.charAt(0)==="?"?t:"?"+t),n&&n!=="#"&&(r+=n.charAt(0)==="#"?n:"#"+n),r}function bm(e){let r={};if(e){let t=e.indexOf("#");t>=0&&(r.hash=e.substr(t),e=e.substr(0,t));let n=e.indexOf("?");n>=0&&(r.search=e.substr(n),e=e.substr(0,n)),e&&(r.pathname=e)}return r}function Rre(e,r,t,n){n===void 0&&(n={});let{window:a=document.defaultView,v5Compat:o=!1}=n,i=a.history,u=Ec.Pop,s=null,c=f();c==null&&(c=0,i.replaceState(sv({},i.state,{idx:c}),""));function f(){return(i.state||{idx:null}).idx}function h(){u=Ec.Pop;let b=f(),_=b==null?null:b-c;c=b,s&&s({action:u,location:v.location,delta:_})}function m(b,_){u=Ec.Push;let w=fT(v.location,b,_);c=f()+1;let O=J4(w,c),C=v.createHref(w);try{i.pushState(O,"",C)}catch(E){if(E instanceof DOMException&&E.name==="DataCloneError")throw E;a.location.assign(C)}o&&s&&s({action:u,location:v.location,delta:1})}function x(b,_){u=Ec.Replace;let w=fT(v.location,b,_);c=f();let O=J4(w,c),C=v.createHref(w);i.replaceState(O,"",C),o&&s&&s({action:u,location:v.location,delta:0})}function S(b){let _=a.location.origin!=="null"?a.location.origin:a.location.href,w=typeof b=="string"?b:SW(b);return w=w.replace(/ $/,"%20"),Na(_,"No window.location.(origin|href) available to create URL for href: "+w),new URL(w,_)}let v={get action(){return u},get location(){return e(a,i)},listen(b){if(s)throw new Error("A history only accepts one active listener");return a.addEventListener(Q4,h),s=b,()=>{a.removeEventListener(Q4,h),s=null}},createHref(b){return r(a,b)},createURL:S,encodeLocation(b){let _=S(b);return{pathname:_.pathname,search:_.search,hash:_.hash}},push:m,replace:x,go(b){return i.go(b)}};return v}var eR;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(eR||(eR={}));function jre(e,r){if(r==="/")return e;if(!e.toLowerCase().startsWith(r.toLowerCase()))return null;let t=r.endsWith("/")?r.length-1:r.length,n=e.charAt(t);return n&&n!=="/"?null:e.slice(t)||"/"}function qre(e,r){r===void 0&&(r="/");let{pathname:t,search:n="",hash:a=""}=typeof e=="string"?bm(e):e;return{pathname:t?t.startsWith("/")?t:Dre(t,r):r,search:Fre(n),hash:Nre(a)}}function Dre(e,r){let t=r.replace(/\/+$/,"").split("/");return e.split("/").forEach(a=>{a===".."?t.length>1&&t.pop():a!=="."&&t.push(a)}),t.length>1?t.join("/"):"/"}function fw(e,r,t,n){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+r+"` field ["+JSON.stringify(n)+"]. Please separate it out to the ")+("`to."+t+"` field. Alternatively you may provide the full path as ")+'a string in and the router will parse it for you.'}function Ire(e){return e.filter((r,t)=>t===0||r.route.path&&r.route.path.length>0)}function Lre(e,r){let t=Ire(e);return r?t.map((n,a)=>a===t.length-1?n.pathname:n.pathnameBase):t.map(n=>n.pathnameBase)}function Mre(e,r,t,n){n===void 0&&(n=!1);let a;typeof e=="string"?a=bm(e):(a=sv({},e),Na(!a.pathname||!a.pathname.includes("?"),fw("?","pathname","search",a)),Na(!a.pathname||!a.pathname.includes("#"),fw("#","pathname","hash",a)),Na(!a.search||!a.search.includes("#"),fw("#","search","hash",a)));let o=e===""||a.pathname==="",i=o?"/":a.pathname,u;if(i==null)u=t;else{let h=r.length-1;if(!n&&i.startsWith("..")){let m=i.split("/");for(;m[0]==="..";)m.shift(),h-=1;a.pathname=m.join("/")}u=h>=0?r[h]:"/"}let s=qre(a,u),c=i&&i!=="/"&&i.endsWith("/"),f=(o||i===".")&&t.endsWith("/");return!s.pathname.endsWith("/")&&(c||f)&&(s.pathname+="/"),s}const $re=e=>e.join("/").replace(/\/\/+/g,"/"),Fre=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,Nre=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e,xW=["post","put","patch","delete"];new Set(xW);const Bre=["get",...xW];new Set(Bre);/** + * React Router v6.27.0 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function Ig(){return Ig=Object.assign?Object.assign.bind():function(e){for(var r=1;r{u.current=!0}),or.useCallback(function(c,f){if(f===void 0&&(f={}),!u.current)return;if(typeof c=="number"){n.go(c);return}let h=Mre(c,JSON.parse(i),o,f.relative==="path");e==null&&r!=="/"&&(h.pathname=h.pathname==="/"?r:$re([r,h.pathname])),(f.replace?n.replace:n.push)(h,f.state,f)},[r,n,i,o,e])}var TW=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(TW||{}),EW=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(EW||{});function Ure(e){let r=or.useContext(OW);return r||Na(!1),r}function Vre(e){let r=or.useContext(pE);return r||Na(!1),r}function Hre(e){let r=Vre(),t=r.matches[r.matches.length-1];return t.route.id||Na(!1),t.route.id}function Kre(){let{router:e}=Ure(TW.UseNavigateStable),r=Hre(EW.UseNavigateStable),t=or.useRef(!1);return kW(()=>{t.current=!0}),or.useCallback(function(a,o){o===void 0&&(o={}),t.current&&(typeof a=="number"?e.navigate(a):e.navigate(a,Ig({fromRouteId:r},o)))},[e,r])}function Gre(e){let{basename:r="/",children:t=null,location:n,navigationType:a=Ec.Pop,navigator:o,static:i=!1,future:u}=e;hE()&&Na(!1);let s=r.replace(/^\/*/,"/"),c=or.useMemo(()=>({basename:s,navigator:o,static:i,future:Ig({v7_relativeSplatPath:!1},u)}),[s,u,o,i]);typeof n=="string"&&(n=bm(n));let{pathname:f="/",search:h="",hash:m="",state:x=null,key:S="default"}=n,v=or.useMemo(()=>{let b=jre(f,s);return b==null?null:{location:{pathname:b,search:h,hash:m,state:x,key:S},navigationType:a}},[s,f,h,m,x,S,a]);return v==null?null:or.createElement(fE.Provider,{value:c},or.createElement(dE.Provider,{children:t,value:v}))}new Promise(()=>{});/** + * React Router DOM v6.27.0 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function dT(e){return e===void 0&&(e=""),new URLSearchParams(typeof e=="string"||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((r,t)=>{let n=e[t];return r.concat(Array.isArray(n)?n.map(a=>[t,a]):[[t,n]])},[]))}function Zre(e,r){let t=dT(e);return r&&r.forEach((n,a)=>{t.has(a)||r.getAll(a).forEach(o=>{t.append(a,o)})}),t}const Yre="6";try{window.__reactRouterVersion=Yre}catch{}const Xre="startTransition",rR=eQ[Xre];function Qre(e){let{basename:r,children:t,future:n,window:a}=e,o=or.useRef();o.current==null&&(o.current=Pre({window:a,v5Compat:!0}));let i=o.current,[u,s]=or.useState({action:i.action,location:i.location}),{v7_startTransition:c}=n||{},f=or.useCallback(h=>{c&&rR?rR(()=>s(h)):s(h)},[s,c]);return or.useLayoutEffect(()=>i.listen(f),[i,f]),or.createElement(Gre,{basename:r,children:t,location:u.location,navigationType:u.action,navigator:i,future:n})}var tR;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(tR||(tR={}));var nR;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(nR||(nR={}));function Jme(e){let r=or.useRef(dT(e)),t=or.useRef(!1),n=CW(),a=or.useMemo(()=>Zre(n.search,t.current?null:r.current),[n.search]),o=zre(),i=or.useCallback((u,s)=>{const c=dT(typeof u=="function"?u(a):u);t.current=!0,o("?"+c,s)},[o,a]);return[a,i]}var Jre=Nc();const Lg=Xi(Jre);var ete=pW();const rte=Xi(ete),tte=Yi.div` + ${rte.reset("inline")}; + display: flex; + flex-direction: column; + font-size: ${Lg.fontSizeLarge}; + line-height: 200%; + margin: calc(${Lg.spacing} * 1); + min-height: calc( + 100vh - 78px - 70px + ); // full height of screen subtracting header and footer height +`,nte=Nz` + body { + background-color: ${Lg.backgroundColorPage}; + min-width: 960px; + } + + /* Safari browser specific issue - https://stackoverflow.com/questions/21400182/safari-css-font-color-issue?noredirect=1&lq=1 */ + input[disabled], + textarea[disabled], + select[disabled='disabled'] { + -webkit-text-fill-color: #c3cbd4 + } +`,ite=Yi.div` + flex: 1; +`;var Yh={exports:{}};/** + * @license + * Lodash + * Copyright OpenJS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */var ote=Yh.exports,iR;function ate(){return iR||(iR=1,function(e,r){(function(){var t,n="4.17.21",a=200,o="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",i="Expected a function",u="Invalid `variable` option passed into `_.template`",s="__lodash_hash_undefined__",c=500,f="__lodash_placeholder__",h=1,m=2,x=4,S=1,v=2,b=1,_=2,w=4,O=8,C=16,E=32,A=64,P=128,j=256,L=512,N=30,$="...",B=800,U=16,V=1,te=2,ne=3,ce=1/0,Oe=9007199254740991,fe=17976931348623157e292,ve=NaN,Re=4294967295,me=Re-1,Ce=Re>>>1,oe=[["ary",P],["bind",b],["bindKey",_],["curry",O],["curryRight",C],["flip",L],["partial",E],["partialRight",A],["rearg",j]],Y="[object Arguments]",X="[object Array]",J="[object AsyncFunction]",I="[object Boolean]",W="[object Date]",D="[object DOMException]",M="[object Error]",F="[object Function]",K="[object GeneratorFunction]",ee="[object Map]",ie="[object Number]",ke="[object Null]",_e="[object Object]",Ke="[object Promise]",ge="[object Proxy]",ye="[object RegExp]",Ze="[object Set]",Ve="[object String]",Be="[object Symbol]",Ge="[object Undefined]",rr="[object WeakMap]",Hr="[object WeakSet]",$r="[object ArrayBuffer]",de="[object DataView]",Te="[object Float32Array]",Se="[object Float64Array]",ze="[object Int8Array]",Je="[object Int16Array]",er="[object Int32Array]",br="[object Uint8Array]",Tr="[object Uint8ClampedArray]",Ir="[object Uint16Array]",Kr="[object Uint32Array]",vt=/\b__p \+= '';/g,dt=/\b(__p \+=) '' \+/g,at=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Nt=/&(?:amp|lt|gt|quot|#39);/g,Lt=/[&<>"']/g,Mt=RegExp(Nt.source),ln=RegExp(Lt.source),pt=/<%-([\s\S]+?)%>/g,Ht=/<%([\s\S]+?)%>/g,Bt=/<%=([\s\S]+?)%>/g,$t=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Uo=/^\w*$/,si=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Zn=/[\\^$.*+?()[\]{}|]/g,Vo=RegExp(Zn.source),Rt=/^\s+/,eo=/\s/,ro=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,St=/\{\n\/\* \[wrapped with (.+)\] \*/,go=/,? & /,to=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,mo=/[()=,{}\[\]\/\s]/,va=/\\(\\)?/g,En=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Ai=/\w*$/,he=/^[-+]0x[0-9a-f]+$/i,qe=/^0b[01]+$/i,$e=/^\[object .+?Constructor\]$/,Qe=/^0o[0-7]+$/i,ur=/^(?:0|[1-9]\d*)$/,pr=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,ut=/($^)/,Qr=/['\n\r\u2028\u2029\\]/g,Fr="\\ud800-\\udfff",On="\\u0300-\\u036f",Ft="\\ufe20-\\ufe2f",_n="\\u20d0-\\u20ff",yo=On+Ft+_n,Ka="\\u2700-\\u27bf",Ga="a-z\\xdf-\\xf6\\xf8-\\xff",_o="\\xac\\xb1\\xd7\\xf7",ba="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",ga="\\u2000-\\u206f",Za=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Kc="A-Z\\xc0-\\xd6\\xd8-\\xde",no="\\ufe0e\\ufe0f",Ya=_o+ba+ga+Za,Lu="['’]",re="["+Fr+"]",se="["+Ya+"]",pe="["+yo+"]",We="\\d+",je="["+Ka+"]",tr="["+Ga+"]",ar="[^"+Fr+Ya+We+Ka+Ga+Kc+"]",mr="\\ud83c[\\udffb-\\udfff]",xr="(?:"+pe+"|"+mr+")",Dr="[^"+Fr+"]",Gr="(?:\\ud83c[\\udde6-\\uddff]){2}",kt="[\\ud800-\\udbff][\\udc00-\\udfff]",Jr="["+Kc+"]",Tt="\\u200d",nn="(?:"+tr+"|"+ar+")",xt="(?:"+Jr+"|"+ar+")",Kt="(?:"+Lu+"(?:d|ll|m|re|s|t|ve))?",gt="(?:"+Lu+"(?:D|LL|M|RE|S|T|VE))?",Cn=xr+"?",Bn="["+no+"]?",ci="(?:"+Tt+"(?:"+[Dr,Gr,kt].join("|")+")"+Bn+Cn+")*",on="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Xt="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Pn=Bn+Cn+ci,zn="(?:"+[je,Gr,kt].join("|")+")"+Pn,An="(?:"+[Dr+pe+"?",pe,Gr,kt,re].join("|")+")",Wn=RegExp(Lu,"g"),Rn=RegExp(pe,"g"),li=RegExp(mr+"(?="+mr+")|"+An+Pn,"g"),wo=RegExp([Jr+"?"+tr+"+"+Kt+"(?="+[se,Jr,"$"].join("|")+")",xt+"+"+gt+"(?="+[se,Jr+nn,"$"].join("|")+")",Jr+"?"+nn+"+"+Kt,Jr+"+"+gt,Xt,on,We,zn].join("|"),"g"),Ho=RegExp("["+Tt+Fr+yo+no+"]"),fi=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Xa=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Ko=-1,ht={};ht[Te]=ht[Se]=ht[ze]=ht[Je]=ht[er]=ht[br]=ht[Tr]=ht[Ir]=ht[Kr]=!0,ht[Y]=ht[X]=ht[$r]=ht[I]=ht[de]=ht[W]=ht[M]=ht[F]=ht[ee]=ht[ie]=ht[_e]=ht[ye]=ht[Ze]=ht[Ve]=ht[rr]=!1;var ot={};ot[Y]=ot[X]=ot[$r]=ot[de]=ot[I]=ot[W]=ot[Te]=ot[Se]=ot[ze]=ot[Je]=ot[er]=ot[ee]=ot[ie]=ot[_e]=ot[ye]=ot[Ze]=ot[Ve]=ot[Be]=ot[br]=ot[Tr]=ot[Ir]=ot[Kr]=!0,ot[M]=ot[F]=ot[rr]=!1;var Wf={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},Gc={"&":"&","<":"<",">":">",'"':""","'":"'"},Zc={"&":"&","<":"<",">":">",""":'"',"'":"'"},zt={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Es=parseFloat,Jm=parseInt,Gv=typeof ca=="object"&&ca&&ca.Object===Object&&ca,Yc=typeof self=="object"&&self&&self.Object===Object&&self,fn=Gv||Yc||Function("return this")(),Qa=r&&!r.nodeType&&r,Ja=Qa&&!0&&e&&!e.nodeType&&e,Uf=Ja&&Ja.exports===Qa,Xc=Uf&&Gv.process,Ri=function(){try{var be=Ja&&Ja.require&&Ja.require("util").types;return be||Xc&&Xc.binding&&Xc.binding("util")}catch{}}(),Qc=Ri&&Ri.isArrayBuffer,Jc=Ri&&Ri.isDate,Vf=Ri&&Ri.isMap,So=Ri&&Ri.isRegExp,Ps=Ri&&Ri.isSet,el=Ri&&Ri.isTypedArray;function Yn(be,Fe,De){switch(De.length){case 0:return be.call(Fe);case 1:return be.call(Fe,De[0]);case 2:return be.call(Fe,De[0],De[1]);case 3:return be.call(Fe,De[0],De[1],De[2])}return be.apply(Fe,De)}function Zv(be,Fe,De,lr){for(var Pr=-1,st=be==null?0:be.length;++Pr-1}function Rs(be,Fe,De){for(var lr=-1,Pr=be==null?0:be.length;++lr-1;);return De}function Ds(be,Fe){for(var De=be.length;De--&&pi(Fe,be[De],0)>-1;);return De}function Qv(be,Fe){for(var De=be.length,lr=0;De--;)be[De]===Fe&&++lr;return lr}var sl=Zo(Wf),cl=Zo(Gc);function vi(be){return"\\"+zt[be]}function ty(be,Fe){return be==null?t:be[Fe]}function Bu(be){return Ho.test(be)}function Jv(be){return fi.test(be)}function ny(be){for(var Fe,De=[];!(Fe=be.next()).done;)De.push(Fe.value);return De}function Gf(be){var Fe=-1,De=Array(be.size);return be.forEach(function(lr,Pr){De[++Fe]=[Pr,lr]}),De}function eb(be,Fe){return function(De){return be(Fe(De))}}function Oo(be,Fe){for(var De=-1,lr=be.length,Pr=0,st=[];++De-1}function Ii(d,g){var k=this.__data__,q=uo(k,d);return q<0?(++this.size,k.push([d,g])):k[q][1]=g,this}Qo.prototype.clear=Jo,Qo.prototype.delete=yl,Qo.prototype.get=rd,Qo.prototype.has=bb,Qo.prototype.set=Ii;function Li(d){var g=-1,k=d==null?0:d.length;for(this.clear();++g=g?d:g)),d}function Un(d,g,k,q,z,Q){var ue,le=g&h,xe=g&m,Ue=g&x;if(k&&(ue=z?k(d,q,z,Q):k(d)),ue!==t)return ue;if(!rn(d))return d;var He=Nr(d);if(He){if(ue=sc(d),!le)return Ln(d,ue)}else{var Ye=wn(d),cr=Ye==F||Ye==K;if(us(d))return Ao(d,le);if(Ye==_e||Ye==Y||cr&&!z){if(ue=xe||cr?{}:qa(d),!le)return xe?yy(d,Hs(ue,d)):Rb(d,od(ue,d))}else{if(!ot[Ye])return z?d:{};ue=cc(d,Ye,le)}}Q||(Q=new ei);var yr=Q.get(d);if(yr)return yr;Q.set(d,ue),VP(d)?d.forEach(function(Rr){ue.add(Un(Rr,g,k,Rr,d,Q))}):WP(d)&&d.forEach(function(Rr,Xr){ue.set(Xr,Un(Rr,g,k,Xr,d,Q))});var Ar=Ue?xe?un:Mn:xe?Vi:Fn,Vr=He?t:Ar(d);return di(Vr||d,function(Rr,Xr){Vr&&(Xr=Rr,Rr=d[Xr]),nu(ue,Xr,Un(Rr,g,k,Xr,d,Q))}),ue}function xl(d){var g=Fn(d);return function(k){return ad(k,d,g)}}function ad(d,g,k){var q=k.length;if(d==null)return!q;for(d=Ot(d);q--;){var z=k[q],Q=g[z],ue=d[z];if(ue===t&&!(z in d)||!Q(ue))return!1}return!0}function ud(d,g,k){if(typeof d!="function")throw new bi(i);return as(function(){d.apply(t,k)},g)}function Ju(d,g,k,q){var z=-1,Q=As,ue=!0,le=d.length,xe=[],Ue=g.length;if(!le)return xe;k&&(g=Et(g,hi(k))),q?(Q=Rs,ue=!1):g.length>=a&&(Q=ji,ue=!1,g=new Oa(g));e:for(;++zz?0:z+k),q=q===t||q>z?z:Ur(q),q<0&&(q+=z),q=k>q?0:KP(q);k0&&k(le)?g>1?pn(le,g-1,k,q,z):xo(z,le):q||(z[z.length]=le)}return z}var uu=_d(),so=_d(!0);function ri(d,g){return d&&uu(d,g,Fn)}function su(d,g){return d&&so(d,g,Fn)}function Eo(d,g){return Go(g,function(k){return xu(d[k])})}function ea(d,g){g=na(g,d);for(var k=0,q=g.length;d!=null&&kg}function Zt(d,g){return d!=null&&et.call(d,g)}function Ol(d,g){return d!=null&&g in Ot(d)}function sd(d,g,k){return d>=jn(g,k)&&d=120&&He.length>=120)?new Oa(ue&&He):t}He=d[0];var Ye=-1,cr=le[0];e:for(;++Ye-1;)le!==d&&hl.call(le,xe,1),hl.call(d,xe,1);return d}function Rl(d,g){for(var k=d?g.length:0,q=k-1;k--;){var z=g[k];if(k==q||z!==Q){var Q=z;Sn(z)?hl.call(d,z,1):Dl(d,z)}}return d}function jl(d,g){return d+vl(fb()*(g-d+1))}function ql(d,g,k,q){for(var z=-1,Q=dn(Ns((g-d)/(k||1)),0),ue=De(Q);Q--;)ue[q?Q:++z]=d,d+=k;return ue}function bd(d,g){var k="";if(!d||g<1||g>Oe)return k;do g%2&&(k+=d),g=vl(g/2),g&&(d+=d);while(g);return k}function Wr(d,g){return fc(Ed(d,g,Hi),d+"")}function gy(d){return tu(of(d))}function ra(d,g){var k=of(d);return Xl(k,Ta(g,0,k.length))}function Ni(d,g,k,q){if(!rn(d))return d;g=na(g,d);for(var z=-1,Q=g.length,ue=Q-1,le=d;le!=null&&++zz?0:z+g),k=k>z?z:k,k<0&&(k+=z),z=g>k?0:k-g>>>0,g>>>=0;for(var Q=De(z);++q>>1,ue=d[Q];ue!==null&&!lo(ue)&&(k?ue<=g:ue=a){var Ue=g?null:jo(d);if(Ue)return ya(Ue);ue=!1,z=ji,xe=new Oa}else xe=g?[]:le;e:for(;++q=q?d:ti(d,g,k)}var md=Yf||function(d){return fn.clearTimeout(d)};function Ao(d,g){if(g)return d.slice();var k=d.length,q=Hu?Hu(k):new d.constructor(k);return d.copy(q),q}function Fl(d){var g=new d.constructor(d.byteLength);return new Ms(g).set(new Ms(d)),g}function yd(d,g){var k=g?Fl(d.buffer):d.buffer;return new d.constructor(k,d.byteOffset,d.byteLength)}function Tb(d){var g=new d.constructor(d.source,Ai.exec(d));return g.lastIndex=d.lastIndex,g}function Eb(d){return Zu?Ot(Zu.call(d)):{}}function tc(d,g){var k=g?Fl(d.buffer):d.buffer;return new d.constructor(k,d.byteOffset,d.length)}function Pb(d,g){if(d!==g){var k=d!==t,q=d===null,z=d===d,Q=lo(d),ue=g!==t,le=g===null,xe=g===g,Ue=lo(g);if(!le&&!Ue&&!Q&&d>g||Q&&ue&&xe&&!le&&!Ue||q&&ue&&xe||!k&&xe||!z)return 1;if(!q&&!Q&&!Ue&&d=le)return xe;var Ue=k[q];return xe*(Ue=="desc"?-1:1)}}return d.index-g.index}function Nl(d,g,k,q){for(var z=-1,Q=d.length,ue=k.length,le=-1,xe=g.length,Ue=dn(Q-ue,0),He=De(xe+Ue),Ye=!q;++le1?k[z-1]:t,ue=z>2?k[2]:t;for(Q=d.length>3&&typeof Q=="function"?(z--,Q):t,ue&&en(k[0],k[1],ue)&&(Q=z<3?t:Q,z=1),g=Ot(g);++q-1?z[Q?g[ue]:ue]:t}}function Bl(d){return Er(function(g){var k=g.length,q=k,z=gi.prototype.thru;for(d&&g.reverse();q--;){var Q=g[q];if(typeof Q!="function")throw new bi(i);if(z&&!ue&&zi(Q)=="wrapper")var ue=new gi([],!0)}for(q=ue?q:k;++q1&&tt.reverse(),He&&xele))return!1;var Ue=Q.get(d),He=Q.get(g);if(Ue&&He)return Ue==g&&He==d;var Ye=-1,cr=!0,yr=k&v?new Oa:t;for(Q.set(d,g),Q.set(g,d);++Ye1?"& ":"")+g[q],g=g.join(k>2?", ":" "),d.replace(ro,`{ +/* [wrapped with `+g+`] */ +`)}function Zl(d){return Nr(d)||dc(d)||!!(Ku&&d&&d[Ku])}function Sn(d,g){var k=typeof d;return g=g??Oe,!!g&&(k=="number"||k!="symbol"&&ur.test(d))&&d>-1&&d%1==0&&d0){if(++g>=B)return arguments[0]}else g=0;return d.apply(t,arguments)}}function Xl(d,g){var k=-1,q=d.length,z=q-1;for(g=g===t?q:g;++k1?d[g-1]:t;return k=typeof k=="function"?(d.pop(),k):t,zr(d,k)});function jP(d){var g=G(d);return g.__chain__=!0,g}function IG(d,g){return g(d),d}function Hb(d,g){return g(d)}var LG=Er(function(d){var g=d.length,k=g?d[0]:0,q=this.__wrapped__,z=function(Q){return iu(Q,d)};return g>1||this.__actions__.length||!(q instanceof Zr)||!Sn(k)?this.thru(z):(q=q.slice(k,+k+(g?1:0)),q.__actions__.push({func:Hb,args:[z],thisArg:t}),new gi(q,this.__chain__).thru(function(Q){return g&&!Q.length&&Q.push(t),Q}))});function MG(){return jP(this)}function $G(){return new gi(this.value(),this.__chain__)}function FG(){this.__values__===t&&(this.__values__=HP(this.value()));var d=this.__index__>=this.__values__.length,g=d?t:this.__values__[this.__index__++];return{done:d,value:g}}function NG(){return this}function BG(d){for(var g,k=this;k instanceof Xu;){var q=zb(k);q.__index__=0,q.__values__=t,g?z.__wrapped__=q:g=q;var z=q;k=k.__wrapped__}return z.__wrapped__=d,g}function zG(){var d=this.__wrapped__;if(d instanceof Zr){var g=d;return this.__actions__.length&&(g=new Zr(this)),g=g.reverse(),g.__actions__.push({func:Hb,args:[T],thisArg:t}),new gi(g,this.__chain__)}return this.thru(T)}function WG(){return Il(this.__wrapped__,this.__actions__)}var UG=nc(function(d,g,k){et.call(d,k)?++d[k]:ko(d,k,1)});function VG(d,g,k){var q=Nr(d)?rl:Gs;return k&&en(d,g,k)&&(g=t),q(d,wr(g,3))}function HG(d,g){var k=Nr(d)?Go:au;return k(d,wr(g,3))}var KG=xd(oa),GG=xd(Jl);function ZG(d,g){return pn(Kb(d,g),1)}function YG(d,g){return pn(Kb(d,g),ce)}function XG(d,g,k){return k=k===t?1:Ur(k),pn(Kb(d,g),k)}function qP(d,g){var k=Nr(d)?di:To;return k(d,wr(g,3))}function DP(d,g){var k=Nr(d)?Yv:Ks;return k(d,wr(g,3))}var QG=nc(function(d,g,k){et.call(d,k)?d[k].push(g):ko(d,k,[g])});function JG(d,g,k,q){d=Ui(d)?d:of(d),k=k&&!q?Ur(k):0;var z=d.length;return k<0&&(k=dn(z+k,0)),Qb(d)?k<=z&&d.indexOf(g,k)>-1:!!z&&pi(d,g,k)>-1}var eZ=Wr(function(d,g,k){var q=-1,z=typeof g=="function",Q=Ui(d)?De(d.length):[];return To(d,function(ue){Q[++q]=z?Yn(g,ue,k):Fi(ue,g,k)}),Q}),rZ=nc(function(d,g,k){ko(d,k,g)});function Kb(d,g){var k=Nr(d)?Et:Tl;return k(d,wr(g,3))}function tZ(d,g,k,q){return d==null?[]:(Nr(g)||(g=g==null?[]:[g]),k=q?t:k,Nr(k)||(k=k==null?[]:[k]),pd(d,g,k))}var nZ=nc(function(d,g,k){d[k?0:1].push(g)},function(){return[[],[]]});function iZ(d,g,k){var q=Nr(d)?js:nl,z=arguments.length<3;return q(d,wr(g,4),k,z,To)}function oZ(d,g,k){var q=Nr(d)?Xv:nl,z=arguments.length<3;return q(d,wr(g,4),k,z,Ks)}function aZ(d,g){var k=Nr(d)?Go:au;return k(d,Yb(wr(g,3)))}function uZ(d){var g=Nr(d)?tu:gy;return g(d)}function sZ(d,g,k){(k?en(d,g,k):g===t)?g=1:g=Ur(g);var q=Nr(d)?Mi:ra;return q(d,g)}function cZ(d){var g=Nr(d)?Ca:xb;return g(d)}function lZ(d){if(d==null)return 0;if(Ui(d))return Qb(d)?Xn(d):d.length;var g=wn(d);return g==ee||g==Ze?d.size:Qs(d).length}function fZ(d,g,k){var q=Nr(d)?qs:Ob;return k&&en(d,g,k)&&(g=t),q(d,wr(g,3))}var dZ=Wr(function(d,g){if(d==null)return[];var k=g.length;return k>1&&en(d,g[0],g[1])?g=[]:k>2&&en(g[0],g[1],g[2])&&(g=[g[0]]),pd(d,pn(g,1),[])}),Gb=Fs||function(){return fn.Date.now()};function pZ(d,g){if(typeof g!="function")throw new bi(i);return d=Ur(d),function(){if(--d<1)return g.apply(this,arguments)}}function IP(d,g,k){return g=k?t:g,g=d&&g==null?d.length:g,Bi(d,P,t,t,t,t,g)}function LP(d,g){var k;if(typeof g!="function")throw new bi(i);return d=Ur(d),function(){return--d>0&&(k=g.apply(this,arguments)),d<=1&&(g=t),k}}var Ay=Wr(function(d,g,k){var q=b;if(k.length){var z=Oo(k,qo(Ay));q|=E}return Bi(d,q,g,k,z)}),MP=Wr(function(d,g,k){var q=b|_;if(k.length){var z=Oo(k,qo(MP));q|=E}return Bi(g,q,d,k,z)});function $P(d,g,k){g=k?t:g;var q=Bi(d,O,t,t,t,t,t,g);return q.placeholder=$P.placeholder,q}function FP(d,g,k){g=k?t:g;var q=Bi(d,C,t,t,t,t,t,g);return q.placeholder=FP.placeholder,q}function NP(d,g,k){var q,z,Q,ue,le,xe,Ue=0,He=!1,Ye=!1,cr=!0;if(typeof d!="function")throw new bi(i);g=Mo(g)||0,rn(k)&&(He=!!k.leading,Ye="maxWait"in k,Q=Ye?dn(Mo(k.maxWait)||0,g):Q,cr="trailing"in k?!!k.trailing:cr);function yr(vn){var ua=q,Cu=z;return q=z=t,Ue=vn,ue=d.apply(Cu,ua),ue}function Ar(vn){return Ue=vn,le=as(Xr,g),He?yr(vn):ue}function Vr(vn){var ua=vn-xe,Cu=vn-Ue,o3=g-ua;return Ye?jn(o3,Q-Cu):o3}function Rr(vn){var ua=vn-xe,Cu=vn-Ue;return xe===t||ua>=g||ua<0||Ye&&Cu>=Q}function Xr(){var vn=Gb();if(Rr(vn))return tt(vn);le=as(Xr,Vr(vn))}function tt(vn){return le=t,cr&&q?yr(vn):(q=z=t,ue)}function fo(){le!==t&&md(le),Ue=0,q=xe=z=le=t}function Si(){return le===t?ue:tt(Gb())}function po(){var vn=Gb(),ua=Rr(vn);if(q=arguments,z=this,xe=vn,ua){if(le===t)return Ar(xe);if(Ye)return md(le),le=as(Xr,g),yr(xe)}return le===t&&(le=as(Xr,g)),ue}return po.cancel=fo,po.flush=Si,po}var hZ=Wr(function(d,g){return ud(d,1,g)}),vZ=Wr(function(d,g,k){return ud(d,Mo(g)||0,k)});function bZ(d){return Bi(d,L)}function Zb(d,g){if(typeof d!="function"||g!=null&&typeof g!="function")throw new bi(i);var k=function(){var q=arguments,z=g?g.apply(this,q):q[0],Q=k.cache;if(Q.has(z))return Q.get(z);var ue=d.apply(this,q);return k.cache=Q.set(z,ue)||Q,ue};return k.cache=new(Zb.Cache||Li),k}Zb.Cache=Li;function Yb(d){if(typeof d!="function")throw new bi(i);return function(){var g=arguments;switch(g.length){case 0:return!d.call(this);case 1:return!d.call(this,g[0]);case 2:return!d.call(this,g[0],g[1]);case 3:return!d.call(this,g[0],g[1],g[2])}return!d.apply(this,g)}}function gZ(d){return LP(2,d)}var mZ=kb(function(d,g){g=g.length==1&&Nr(g[0])?Et(g[0],hi(wr())):Et(pn(g,1),hi(wr()));var k=g.length;return Wr(function(q){for(var z=-1,Q=jn(q.length,k);++z=g}),dc=an(function(){return arguments}())?an:function(d){return sn(d)&&et.call(d,"callee")&&!_a.call(d,"callee")},Nr=De.isArray,qZ=Qc?hi(Qc):Dn;function Ui(d){return d!=null&&Xb(d.length)&&!xu(d)}function hn(d){return sn(d)&&Ui(d)}function DZ(d){return d===!0||d===!1||sn(d)&&qn(d)==I}var us=ly||zy,IZ=Jc?hi(Jc):In;function LZ(d){return sn(d)&&d.nodeType===1&&!Nd(d)}function MZ(d){if(d==null)return!0;if(Ui(d)&&(Nr(d)||typeof d=="string"||typeof d.splice=="function"||us(d)||nf(d)||dc(d)))return!d.length;var g=wn(d);if(g==ee||g==Ze)return!d.size;if(gu(d))return!Qs(d).length;for(var k in d)if(et.call(d,k))return!1;return!0}function $Z(d,g){return Ea(d,g)}function FZ(d,g,k){k=typeof k=="function"?k:t;var q=k?k(d,g):t;return q===t?Ea(d,g,t,k):!!q}function jy(d){if(!sn(d))return!1;var g=qn(d);return g==M||g==D||typeof d.message=="string"&&typeof d.name=="string"&&!Nd(d)}function NZ(d){return typeof d=="number"&&lb(d)}function xu(d){if(!rn(d))return!1;var g=qn(d);return g==F||g==K||g==J||g==ge}function zP(d){return typeof d=="number"&&d==Ur(d)}function Xb(d){return typeof d=="number"&&d>-1&&d%1==0&&d<=Oe}function rn(d){var g=typeof d;return d!=null&&(g=="object"||g=="function")}function sn(d){return d!=null&&typeof d=="object"}var WP=Vf?hi(Vf):cd;function BZ(d,g){return d===g||Ys(d,g,ns(g))}function zZ(d,g,k){return k=typeof k=="function"?k:t,Ys(d,g,ns(g),k)}function WZ(d){return UP(d)&&d!=+d}function UZ(d){if(Lb(d))throw new Pr(o);return lu(d)}function VZ(d){return d===null}function HZ(d){return d==null}function UP(d){return typeof d=="number"||sn(d)&&qn(d)==ie}function Nd(d){if(!sn(d)||qn(d)!=_e)return!1;var g=pl(d);if(g===null)return!0;var k=et.call(g,"constructor")&&g.constructor;return typeof k=="function"&&k instanceof k&&dl.call(k)==ab}var qy=So?hi(So):rs;function KZ(d){return zP(d)&&d>=-Oe&&d<=Oe}var VP=Ps?hi(Ps):fu;function Qb(d){return typeof d=="string"||!Nr(d)&&sn(d)&&qn(d)==Ve}function lo(d){return typeof d=="symbol"||sn(d)&&qn(d)==Be}var nf=el?hi(el):Cl;function GZ(d){return d===t}function ZZ(d){return sn(d)&&wn(d)==rr}function YZ(d){return sn(d)&&qn(d)==Hr}var XZ=Jt(kl),QZ=Jt(function(d,g){return d<=g});function HP(d){if(!d)return[];if(Ui(d))return Qb(d)?qi(d):Ln(d);if($s&&d[$s])return ny(d[$s]());var g=wn(d),k=g==ee?Gf:g==Ze?ya:of;return k(d)}function Ou(d){if(!d)return d===0?d:0;if(d=Mo(d),d===ce||d===-ce){var g=d<0?-1:1;return g*fe}return d===d?d:0}function Ur(d){var g=Ou(d),k=g%1;return g===g?k?g-k:g:0}function KP(d){return d?Ta(Ur(d),0,Re):0}function Mo(d){if(typeof d=="number")return d;if(lo(d))return ve;if(rn(d)){var g=typeof d.valueOf=="function"?d.valueOf():d;d=rn(g)?g+"":g}if(typeof d!="string")return d===0?d:+d;d=al(d);var k=qe.test(d);return k||Qe.test(d)?Jm(d.slice(2),k?2:8):he.test(d)?ve:+d}function GP(d){return Ro(d,Vi(d))}function JZ(d){return d?Ta(Ur(d),-Oe,Oe):d===0?d:0}function yt(d){return d==null?"":qt(d)}var eY=hu(function(d,g){if(gu(g)||Ui(g)){Ro(g,Fn(g),d);return}for(var k in g)et.call(g,k)&&nu(d,k,g[k])}),ZP=hu(function(d,g){Ro(g,Vi(g),d)}),Jb=hu(function(d,g,k,q){Ro(g,Vi(g),d,q)}),rY=hu(function(d,g,k,q){Ro(g,Fn(g),d,q)}),tY=Er(iu);function nY(d,g){var k=Yu(d);return g==null?k:od(k,g)}var iY=Wr(function(d,g){d=Ot(d);var k=-1,q=g.length,z=q>2?g[2]:t;for(z&&en(g[0],g[1],z)&&(q=1);++k1),Q}),Ro(d,un(d),k),q&&(k=Un(k,h|m|x,Hl));for(var z=g.length;z--;)Dl(k,g[z]);return k});function SY(d,g){return XP(d,Yb(wr(g)))}var xY=Er(function(d,g){return d==null?{}:hd(d,g)});function XP(d,g){if(d==null)return{};var k=Et(un(d),function(q){return[q]});return g=wr(g),vd(d,k,function(q,z){return g(q,z[0])})}function OY(d,g,k){g=na(g,d);var q=-1,z=g.length;for(z||(z=1,d=t);++qg){var q=d;d=g,g=q}if(k||d%1||g%1){var z=fb();return jn(d+z*(g-d+Es("1e-"+((z+"").length-1))),g)}return jl(d,g)}var IY=vu(function(d,g,k){return g=g.toLowerCase(),d+(k?e3(g):g)});function e3(d){return Ly(yt(d).toLowerCase())}function r3(d){return d=yt(d),d&&d.replace(pr,sl).replace(Rn,"")}function LY(d,g,k){d=yt(d),g=qt(g);var q=d.length;k=k===t?q:Ta(Ur(k),0,q);var z=k;return k-=g.length,k>=0&&d.slice(k,z)==g}function MY(d){return d=yt(d),d&&ln.test(d)?d.replace(Lt,cl):d}function $Y(d){return d=yt(d),d&&Vo.test(d)?d.replace(Zn,"\\$&"):d}var FY=vu(function(d,g,k){return d+(k?"-":"")+g.toLowerCase()}),NY=vu(function(d,g,k){return d+(k?" ":"")+g.toLowerCase()}),BY=wd("toLowerCase");function zY(d,g,k){d=yt(d),g=Ur(g);var q=g?Xn(d):0;if(!g||q>=g)return d;var z=(g-q)/2;return Wl(vl(z),k)+d+Wl(Ns(z),k)}function WY(d,g,k){d=yt(d),g=Ur(g);var q=g?Xn(d):0;return g&&q>>0,k?(d=yt(d),d&&(typeof g=="string"||g!=null&&!qy(g))&&(g=qt(g),!g&&Bu(d))?Po(qi(d),0,k):d.split(g,k)):[]}var YY=vu(function(d,g,k){return d+(k?" ":"")+Ly(g)});function XY(d,g,k){return d=yt(d),k=k==null?0:Ta(Ur(k),0,d.length),g=qt(g),d.slice(k,k+g.length)==g}function QY(d,g,k){var q=G.templateSettings;k&&en(d,g,k)&&(g=t),d=yt(d),g=Jb({},g,q,Cd);var z=Jb({},g.imports,q.imports,Cd),Q=Fn(z),ue=ma(z,Q),le,xe,Ue=0,He=g.interpolate||ut,Ye="__p += '",cr=Is((g.escape||ut).source+"|"+He.source+"|"+(He===Bt?En:ut).source+"|"+(g.evaluate||ut).source+"|$","g"),yr="//# sourceURL="+(et.call(g,"sourceURL")?(g.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++Ko+"]")+` +`;d.replace(cr,function(Rr,Xr,tt,fo,Si,po){return tt||(tt=fo),Ye+=d.slice(Ue,po).replace(Qr,vi),Xr&&(le=!0,Ye+=`' + +__e(`+Xr+`) + +'`),Si&&(xe=!0,Ye+=`'; +`+Si+`; +__p += '`),tt&&(Ye+=`' + +((__t = (`+tt+`)) == null ? '' : __t) + +'`),Ue=po+Rr.length,Rr}),Ye+=`'; +`;var Ar=et.call(g,"variable")&&g.variable;if(!Ar)Ye=`with (obj) { +`+Ye+` +} +`;else if(mo.test(Ar))throw new Pr(u);Ye=(xe?Ye.replace(vt,""):Ye).replace(dt,"$1").replace(at,"$1;"),Ye="function("+(Ar||"obj")+`) { +`+(Ar?"":`obj || (obj = {}); +`)+"var __t, __p = ''"+(le?", __e = _.escape":"")+(xe?`, __j = Array.prototype.join; +function print() { __p += __j.call(arguments, '') } +`:`; +`)+Ye+`return __p +}`;var Vr=n3(function(){return st(Q,yr+"return "+Ye).apply(t,ue)});if(Vr.source=Ye,jy(Vr))throw Vr;return Vr}function JY(d){return yt(d).toLowerCase()}function eX(d){return yt(d).toUpperCase()}function rX(d,g,k){if(d=yt(d),d&&(k||g===t))return al(d);if(!d||!(g=qt(g)))return d;var q=qi(d),z=qi(g),Q=ul(q,z),ue=Ds(q,z)+1;return Po(q,Q,ue).join("")}function tX(d,g,k){if(d=yt(d),d&&(k||g===t))return d.slice(0,Zf(d)+1);if(!d||!(g=qt(g)))return d;var q=qi(d),z=Ds(q,qi(g))+1;return Po(q,0,z).join("")}function nX(d,g,k){if(d=yt(d),d&&(k||g===t))return d.replace(Rt,"");if(!d||!(g=qt(g)))return d;var q=qi(d),z=ul(q,qi(g));return Po(q,z).join("")}function iX(d,g){var k=N,q=$;if(rn(g)){var z="separator"in g?g.separator:z;k="length"in g?Ur(g.length):k,q="omission"in g?qt(g.omission):q}d=yt(d);var Q=d.length;if(Bu(d)){var ue=qi(d);Q=ue.length}if(k>=Q)return d;var le=k-Xn(q);if(le<1)return q;var xe=ue?Po(ue,0,le).join(""):d.slice(0,le);if(z===t)return xe+q;if(ue&&(le+=xe.length-le),qy(z)){if(d.slice(le).search(z)){var Ue,He=xe;for(z.global||(z=Is(z.source,yt(Ai.exec(z))+"g")),z.lastIndex=0;Ue=z.exec(He);)var Ye=Ue.index;xe=xe.slice(0,Ye===t?le:Ye)}}else if(d.indexOf(qt(z),le)!=le){var cr=xe.lastIndexOf(z);cr>-1&&(xe=xe.slice(0,cr))}return xe+q}function oX(d){return d=yt(d),d&&Mt.test(d)?d.replace(Nt,nb):d}var aX=vu(function(d,g,k){return d+(k?" ":"")+g.toUpperCase()}),Ly=wd("toUpperCase");function t3(d,g,k){return d=yt(d),g=k?t:g,g===t?Jv(d)?ay(d):Mu(d):d.match(g)||[]}var n3=Wr(function(d,g){try{return Yn(d,t,g)}catch(k){return jy(k)?k:new Pr(k)}}),uX=Er(function(d,g){return di(g,function(k){k=Io(k),ko(d,k,Ay(d[k],d))}),d});function sX(d){var g=d==null?0:d.length,k=wr();return d=g?Et(d,function(q){if(typeof q[1]!="function")throw new bi(i);return[k(q[0]),q[1]]}):[],Wr(function(q){for(var z=-1;++zOe)return[];var k=Re,q=jn(d,Re);g=wr(g),d-=Re;for(var z=ol(q,g);++k0||g<0)?new Zr(k):(d<0?k=k.takeRight(-d):d&&(k=k.drop(d)),g!==t&&(g=Ur(g),k=g<0?k.dropRight(-g):k.take(g-d)),k)},Zr.prototype.takeRightWhile=function(d){return this.reverse().takeWhile(d).reverse()},Zr.prototype.toArray=function(){return this.take(Re)},ri(Zr.prototype,function(d,g){var k=/^(?:filter|find|map|reject)|While$/.test(g),q=/^(?:head|last)$/.test(g),z=G[q?"take"+(g=="last"?"Right":""):g],Q=q||/^find/.test(g);z&&(G.prototype[g]=function(){var ue=this.__wrapped__,le=q?[1]:arguments,xe=ue instanceof Zr,Ue=le[0],He=xe||Nr(ue),Ye=function(Xr){var tt=z.apply(G,xo([Xr],le));return q&&cr?tt[0]:tt};He&&k&&typeof Ue=="function"&&Ue.length!=1&&(xe=He=!1);var cr=this.__chain__,yr=!!this.__actions__.length,Ar=Q&&!cr,Vr=xe&&!yr;if(!Q&&He){ue=Vr?ue:new Zr(this);var Rr=d.apply(ue,le);return Rr.__actions__.push({func:Hb,args:[Ye],thisArg:t}),new gi(Rr,cr)}return Ar&&Vr?d.apply(this,le):(Rr=this.thru(Ye),Ar?q?Rr.value()[0]:Rr.value():Rr)})}),di(["pop","push","shift","sort","splice","unshift"],function(d){var g=ll[d],k=/^(?:push|sort|unshift)$/.test(d)?"tap":"thru",q=/^(?:pop|shift)$/.test(d);G.prototype[d]=function(){var z=arguments;if(q&&!this.__chain__){var Q=this.value();return g.apply(Nr(Q)?Q:[],z)}return this[k](function(ue){return g.apply(Nr(ue)?ue:[],z)})}}),ri(Zr.prototype,function(d,g){var k=G[g];if(k){var q=k.name+"";et.call(Qt,q)||(Qt[q]=[]),Qt[q].push({name:g,func:k})}}),Qt[ic(t,_).name]=[{name:"wrapper",func:t}],Zr.prototype.clone=ed,Zr.prototype.reverse=vy,Zr.prototype.value=ml,G.prototype.at=LG,G.prototype.chain=MG,G.prototype.commit=$G,G.prototype.next=FG,G.prototype.plant=BG,G.prototype.reverse=zG,G.prototype.toJSON=G.prototype.valueOf=G.prototype.value=WG,G.prototype.first=G.prototype.head,$s&&(G.prototype[$s]=NG),G},Wu=uy();Ja?((Ja.exports=Wu)._=Wu,Qa._=Wu):fn._=Wu}).call(ote)}(Yh,Yh.exports)),Yh.exports}var ute=ate(),hc={},oR;function ste(){if(oR)return hc;oR=1,Object.defineProperty(hc,"__esModule",{value:!0}),hc.gettext=r,hc._=t,hc.setSharedTranslator=n,hc.resetSharedTranslator=a;var e;function r(){return e.apply(void 0,arguments)}function t(){return e.apply(void 0,arguments)}function n(o){e=o}function a(){n(typeof window<"u"&&window.gettext||function(o){return o})}return a(),hc}var PW=ste();class AW extends Error{constructor(t){super(t.message);a3(this,"response");this.response=t.response}}const Xh=(e,r)=>{let t=qc[e]||qc.unknown;return t=PW._(t),ute.template(t,{escape:/\{\{(.+?)\}\}/g})({args:r})},cte=e=>{try{if(e.startsWith("b'")||e.startsWith('b"')){const r=JSON.parse(e.slice(2,-1));return String(r.messages[0].text)}return e}catch{return e}},lte=e=>{try{const t=/.+"REST Error \[[\d]+\]:\s+.+\s+--\s+([\s\S]*)"\.\s*See splunkd\.log(\/python.log)? for more details\./.exec(e);if(t&&t[1])try{const n=JSON.parse(t[1]);return String(n.messages[0].text)}catch{return cte(t[1])}}catch{return e}return e},vE=e=>{if(e instanceof AW)return e.message;try{if(e&&typeof e=="object"&&"messages"in e&&Array.isArray(e.messages)&&e.messages.length>0&&"text"in e.messages[0]){const r=e.messages[0].text;return r?lte(r):qc.unknown}return qc.unknown}catch{return PW._("Error in processing the request")}};var dw={exports:{}},aR;function fte(){return aR||(aR=1,(()=>{var e={};e.d=(a,o)=>{for(var i in o)e.o(o,i)&&!e.o(a,i)&&Object.defineProperty(a,i,{enumerable:!0,get:o[i]})},e.o=(a,o)=>Object.prototype.hasOwnProperty.call(a,o),e.r=a=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(a,"__esModule",{value:!0})};var r={};e.r(r),e.d(r,{TOAST_POSITIONS:()=>n,TOAST_TYPES:()=>t});var t={INFO:"info",WARNING:"warning",SUCCESS:"success",ERROR:"error"},n={TOP_LEFT:"top-left",TOP_CENTER:"top-center",TOP_RIGHT:"top-right",BOTTOM_LEFT:"bottom-left",BOTTOM_CENTER:"bottom-center",BOTTOM_RIGHT:"bottom-right"};dw.exports=r})()),dw.exports}var ig=fte(),pw={exports:{}},Wd={},uR;function dte(){if(uR)return Wd;uR=1,Object.defineProperty(Wd,"__esModule",{value:!0}),Wd.createGUID=e,Wd.createDOMID=r;function e(){var t="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";return t.replace(/[xy]/g,function(n){var a=Math.floor(Math.random()*16),o=n==="x"?a:a%4+8;return o.toString(16)})}function r(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"id";if(t.match(/^[a-zA-Z][\w-]*$/))return"".concat(t,"-").concat(e());throw new Error("createDOMID: Prefix must start with a letter and may only contain letters, digits, hyphens and underscores")}return Wd}var og={exports:{}},sR;function pte(){if(sR)return og.exports;sR=1;var e=typeof Reflect=="object"?Reflect:null,r=e&&typeof e.apply=="function"?e.apply:function(E,A,P){return Function.prototype.apply.call(E,A,P)},t;e&&typeof e.ownKeys=="function"?t=e.ownKeys:Object.getOwnPropertySymbols?t=function(E){return Object.getOwnPropertyNames(E).concat(Object.getOwnPropertySymbols(E))}:t=function(E){return Object.getOwnPropertyNames(E)};function n(C){console&&console.warn&&console.warn(C)}var a=Number.isNaN||function(E){return E!==E};function o(){o.init.call(this)}og.exports=o,og.exports.once=_,o.EventEmitter=o,o.prototype._events=void 0,o.prototype._eventsCount=0,o.prototype._maxListeners=void 0;var i=10;function u(C){if(typeof C!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof C)}Object.defineProperty(o,"defaultMaxListeners",{enumerable:!0,get:function(){return i},set:function(C){if(typeof C!="number"||C<0||a(C))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+C+".");i=C}}),o.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},o.prototype.setMaxListeners=function(E){if(typeof E!="number"||E<0||a(E))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+E+".");return this._maxListeners=E,this};function s(C){return C._maxListeners===void 0?o.defaultMaxListeners:C._maxListeners}o.prototype.getMaxListeners=function(){return s(this)},o.prototype.emit=function(E){for(var A=[],P=1;P0&&(N=A[0]),N instanceof Error)throw N;var $=new Error("Unhandled error."+(N?" ("+N.message+")":""));throw $.context=N,$}var B=L[E];if(B===void 0)return!1;if(typeof B=="function")r(B,this,A);else for(var U=B.length,V=S(B,U),P=0;P0&&N.length>j&&!N.warned){N.warned=!0;var $=new Error("Possible EventEmitter memory leak detected. "+N.length+" "+String(E)+" listeners added. Use emitter.setMaxListeners() to increase limit");$.name="MaxListenersExceededWarning",$.emitter=C,$.type=E,$.count=N.length,n($)}return C}o.prototype.addListener=function(E,A){return c(this,E,A,!1)},o.prototype.on=o.prototype.addListener,o.prototype.prependListener=function(E,A){return c(this,E,A,!0)};function f(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function h(C,E,A){var P={fired:!1,wrapFn:void 0,target:C,type:E,listener:A},j=f.bind(P);return j.listener=A,P.wrapFn=j,j}o.prototype.once=function(E,A){return u(A),this.on(E,h(this,E,A)),this},o.prototype.prependOnceListener=function(E,A){return u(A),this.prependListener(E,h(this,E,A)),this},o.prototype.removeListener=function(E,A){var P,j,L,N,$;if(u(A),j=this._events,j===void 0)return this;if(P=j[E],P===void 0)return this;if(P===A||P.listener===A)--this._eventsCount===0?this._events=Object.create(null):(delete j[E],j.removeListener&&this.emit("removeListener",E,P.listener||A));else if(typeof P!="function"){for(L=-1,N=P.length-1;N>=0;N--)if(P[N]===A||P[N].listener===A){$=P[N].listener,L=N;break}if(L<0)return this;L===0?P.shift():v(P,L),P.length===1&&(j[E]=P[0]),j.removeListener!==void 0&&this.emit("removeListener",E,$||A)}return this},o.prototype.off=o.prototype.removeListener,o.prototype.removeAllListeners=function(E){var A,P,j;if(P=this._events,P===void 0)return this;if(P.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):P[E]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete P[E]),this;if(arguments.length===0){var L=Object.keys(P),N;for(j=0;j=0;j--)this.removeListener(E,A[j]);return this};function m(C,E,A){var P=C._events;if(P===void 0)return[];var j=P[E];return j===void 0?[]:typeof j=="function"?A?[j.listener||j]:[j]:A?b(j):S(j,j.length)}o.prototype.listeners=function(E){return m(this,E,!0)},o.prototype.rawListeners=function(E){return m(this,E,!1)},o.listenerCount=function(C,E){return typeof C.listenerCount=="function"?C.listenerCount(E):x.call(C,E)},o.prototype.listenerCount=x;function x(C){var E=this._events;if(E!==void 0){var A=E[C];if(typeof A=="function")return 1;if(A!==void 0)return A.length}return 0}o.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]};function S(C,E){for(var A=new Array(E),P=0;P{var e={};e.d=($,B)=>{for(var U in B)e.o(B,U)&&!e.o($,U)&&Object.defineProperty($,U,{enumerable:!0,get:B[U]})},e.o=($,B)=>Object.prototype.hasOwnProperty.call($,B),e.r=$=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty($,Symbol.toStringTag,{value:"Module"}),Object.defineProperty($,"__esModule",{value:!0})};var r={};e.r(r),e.d(r,{default:()=>N,makeCreateToast:()=>j});const t=dte(),n=pte();function a($){"@babel/helpers - typeof";return a=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(B){return typeof B}:function(B){return B&&typeof Symbol=="function"&&B.constructor===Symbol&&B!==Symbol.prototype?"symbol":typeof B},a($)}function o($,B){var U=Object.keys($);if(Object.getOwnPropertySymbols){var V=Object.getOwnPropertySymbols($);B&&(V=V.filter(function(te){return Object.getOwnPropertyDescriptor($,te).enumerable})),U.push.apply(U,V)}return U}function i($){for(var B=1;Bt?.Parent&&u instanceof t.Parent?!0:u?._zod?.traits?.has(e)}),Object.defineProperty(i,"name",{value:e}),i}class cv extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}const jW={};function gs(e){return jW}function bte(e){const r=Object.values(e).filter(n=>typeof n=="number");return Object.entries(e).filter(([n,a])=>r.indexOf(+n)===-1).map(([n,a])=>a)}function pT(e,r){return typeof r=="bigint"?r.toString():r}function bE(e){return{get value(){{const r=e();return Object.defineProperty(this,"value",{value:r}),r}}}}function gE(e){return e==null}function mE(e){const r=e.startsWith("^")?1:0,t=e.endsWith("$")?e.length-1:e.length;return e.slice(r,t)}function gte(e,r){const t=(e.toString().split(".")[1]||"").length,n=r.toString();let a=(n.split(".")[1]||"").length;if(a===0&&/\d?e-\d?/.test(n)){const s=n.match(/\d?e-(\d?)/);s?.[1]&&(a=Number.parseInt(s[1]))}const o=t>a?t:a,i=Number.parseInt(e.toFixed(o).replace(".","")),u=Number.parseInt(r.toFixed(o).replace(".",""));return i%u/10**o}const lR=Symbol("evaluating");function It(e,r,t){let n;Object.defineProperty(e,r,{get(){if(n!==lR)return n===void 0&&(n=lR,n=t()),n},set(a){Object.defineProperty(e,r,{value:a})},configurable:!0})}function zc(e,r,t){Object.defineProperty(e,r,{value:t,writable:!0,enumerable:!0,configurable:!0})}function Mf(...e){const r={};for(const t of e){const n=Object.getOwnPropertyDescriptors(t);Object.assign(r,n)}return Object.defineProperties({},r)}function fR(e){return JSON.stringify(e)}const qW="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function Mg(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}const mte=bE(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{const e=Function;return new e(""),!0}catch{return!1}});function $g(e){if(Mg(e)===!1)return!1;const r=e.constructor;if(r===void 0)return!0;const t=r.prototype;return!(Mg(t)===!1||Object.prototype.hasOwnProperty.call(t,"isPrototypeOf")===!1)}const yte=new Set(["string","number","symbol"]);function Ef(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Wc(e,r,t){const n=new e._zod.constr(r??e._zod.def);return(!r||t?.parent)&&(n._zod.parent=e),n}function _r(e){const r=e;if(!r)return{};if(typeof r=="string")return{error:()=>r};if(r?.message!==void 0){if(r?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");r.error=r.message}return delete r.message,typeof r.error=="string"?{...r,error:()=>r.error}:r}function _te(e){return Object.keys(e).filter(r=>e[r]._zod.optin==="optional"&&e[r]._zod.optout==="optional")}const wte={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function Ste(e,r){const t=e._zod.def,n=Mf(e._zod.def,{get shape(){const a={};for(const o in r){if(!(o in t.shape))throw new Error(`Unrecognized key: "${o}"`);r[o]&&(a[o]=t.shape[o])}return zc(this,"shape",a),a},checks:[]});return Wc(e,n)}function xte(e,r){const t=e._zod.def,n=Mf(e._zod.def,{get shape(){const a={...e._zod.def.shape};for(const o in r){if(!(o in t.shape))throw new Error(`Unrecognized key: "${o}"`);r[o]&&delete a[o]}return zc(this,"shape",a),a},checks:[]});return Wc(e,n)}function Ote(e,r){if(!$g(r))throw new Error("Invalid input to extend: expected a plain object");const t=Mf(e._zod.def,{get shape(){const n={...e._zod.def.shape,...r};return zc(this,"shape",n),n},checks:[]});return Wc(e,t)}function Cte(e,r){const t=Mf(e._zod.def,{get shape(){const n={...e._zod.def.shape,...r._zod.def.shape};return zc(this,"shape",n),n},get catchall(){return r._zod.def.catchall},checks:[]});return Wc(e,t)}function kte(e,r,t){const n=Mf(r._zod.def,{get shape(){const a=r._zod.def.shape,o={...a};if(t)for(const i in t){if(!(i in a))throw new Error(`Unrecognized key: "${i}"`);t[i]&&(o[i]=e?new e({type:"optional",innerType:a[i]}):a[i])}else for(const i in a)o[i]=e?new e({type:"optional",innerType:a[i]}):a[i];return zc(this,"shape",o),o},checks:[]});return Wc(r,n)}function Tte(e,r,t){const n=Mf(r._zod.def,{get shape(){const a=r._zod.def.shape,o={...a};if(t)for(const i in t){if(!(i in o))throw new Error(`Unrecognized key: "${i}"`);t[i]&&(o[i]=new e({type:"nonoptional",innerType:a[i]}))}else for(const i in a)o[i]=new e({type:"nonoptional",innerType:a[i]});return zc(this,"shape",o),o},checks:[]});return Wc(r,n)}function nv(e,r=0){for(let t=r;t{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function ag(e){return typeof e=="string"?e:e?.message}function ms(e,r,t){const n={...e,path:e.path??[]};if(!e.message){const a=ag(e.inst?._zod.def?.error?.(e))??ag(r?.error?.(e))??ag(t.customError?.(e))??ag(t.localeError?.(e))??"Invalid input";n.message=a}return delete n.inst,delete n.continue,r?.reportInput||delete n.input,n}function yE(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function lv(...e){const[r,t,n]=e;return typeof r=="string"?{message:r,code:"custom",input:t,inst:n}:{...r}}const DW=(e,r)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:r,enumerable:!1}),e.message=JSON.stringify(r,pT,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},IW=Ne("$ZodError",DW),LW=Ne("$ZodError",DW,{Parent:Error});function Ete(e,r=t=>t.message){const t={},n=[];for(const a of e.issues)a.path.length>0?(t[a.path[0]]=t[a.path[0]]||[],t[a.path[0]].push(r(a))):n.push(r(a));return{formErrors:n,fieldErrors:t}}function Pte(e,r){const t=r||function(o){return o.message},n={_errors:[]},a=o=>{for(const i of o.issues)if(i.code==="invalid_union"&&i.errors.length)i.errors.map(u=>a({issues:u}));else if(i.code==="invalid_key")a({issues:i.issues});else if(i.code==="invalid_element")a({issues:i.issues});else if(i.path.length===0)n._errors.push(t(i));else{let u=n,s=0;for(;s(r,t,n,a)=>{const o=n?Object.assign(n,{async:!1}):{async:!1},i=r._zod.run({value:t,issues:[]},o);if(i instanceof Promise)throw new cv;if(i.issues.length){const u=new(a?.Err??e)(i.issues.map(s=>ms(s,o,gs())));throw qW(u,a?.callee),u}return i.value},Rte=e=>async(r,t,n,a)=>{const o=n?Object.assign(n,{async:!0}):{async:!0};let i=r._zod.run({value:t,issues:[]},o);if(i instanceof Promise&&(i=await i),i.issues.length){const u=new(a?.Err??e)(i.issues.map(s=>ms(s,o,gs())));throw qW(u,a?.callee),u}return i.value},MW=e=>(r,t,n)=>{const a=n?{...n,async:!1}:{async:!1},o=r._zod.run({value:t,issues:[]},a);if(o instanceof Promise)throw new cv;return o.issues.length?{success:!1,error:new(e??IW)(o.issues.map(i=>ms(i,a,gs())))}:{success:!0,data:o.value}},jte=MW(LW),$W=e=>async(r,t,n)=>{const a=n?Object.assign(n,{async:!0}):{async:!0};let o=r._zod.run({value:t,issues:[]},a);return o instanceof Promise&&(o=await o),o.issues.length?{success:!1,error:new e(o.issues.map(i=>ms(i,a,gs())))}:{success:!0,data:o.value}},qte=$W(LW),Dte=/^[cC][^\s-]{8,}$/,Ite=/^[0-9a-z]+$/,Lte=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Mte=/^[0-9a-vA-V]{20}$/,$te=/^[A-Za-z0-9]{27}$/,Fte=/^[a-zA-Z0-9_-]{21}$/,Nte=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Bte=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,dR=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$/,zte=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Wte="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function Ute(){return new RegExp(Wte,"u")}const Vte=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Hte=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})$/,Kte=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,Gte=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Zte=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,FW=/^[A-Za-z0-9_-]*$/,Yte=/^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/,Xte=/^\+(?:[0-9]){6,14}[0-9]$/,NW="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",Qte=new RegExp(`^${NW}$`);function BW(e){const r="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${r}`:e.precision===0?`${r}:[0-5]\\d`:`${r}:[0-5]\\d\\.\\d{${e.precision}}`:`${r}(?::[0-5]\\d(?:\\.\\d+)?)?`}function Jte(e){return new RegExp(`^${BW(e)}$`)}function ene(e){const r=BW({precision:e.precision}),t=["Z"];e.local&&t.push(""),e.offset&&t.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const n=`${r}(?:${t.join("|")})`;return new RegExp(`^${NW}T(?:${n})$`)}const rne=e=>{const r=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${r}$`)},tne=/^\d+$/,nne=/^-?\d+(?:\.\d+)?/i,ine=/true|false/i,one=/undefined/i,ane=/^[^A-Z]*$/,une=/^[^a-z]*$/,Qi=Ne("$ZodCheck",(e,r)=>{var t;e._zod??(e._zod={}),e._zod.def=r,(t=e._zod).onattach??(t.onattach=[])}),zW={number:"number",bigint:"bigint",object:"date"},WW=Ne("$ZodCheckLessThan",(e,r)=>{Qi.init(e,r);const t=zW[typeof r.value];e._zod.onattach.push(n=>{const a=n._zod.bag,o=(r.inclusive?a.maximum:a.exclusiveMaximum)??Number.POSITIVE_INFINITY;r.value{(r.inclusive?n.value<=r.value:n.value{Qi.init(e,r);const t=zW[typeof r.value];e._zod.onattach.push(n=>{const a=n._zod.bag,o=(r.inclusive?a.minimum:a.exclusiveMinimum)??Number.NEGATIVE_INFINITY;r.value>o&&(r.inclusive?a.minimum=r.value:a.exclusiveMinimum=r.value)}),e._zod.check=n=>{(r.inclusive?n.value>=r.value:n.value>r.value)||n.issues.push({origin:t,code:"too_small",minimum:r.value,input:n.value,inclusive:r.inclusive,inst:e,continue:!r.abort})}}),sne=Ne("$ZodCheckMultipleOf",(e,r)=>{Qi.init(e,r),e._zod.onattach.push(t=>{var n;(n=t._zod.bag).multipleOf??(n.multipleOf=r.value)}),e._zod.check=t=>{if(typeof t.value!=typeof r.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof t.value=="bigint"?t.value%r.value===BigInt(0):gte(t.value,r.value)===0)||t.issues.push({origin:typeof t.value,code:"not_multiple_of",divisor:r.value,input:t.value,inst:e,continue:!r.abort})}}),cne=Ne("$ZodCheckNumberFormat",(e,r)=>{Qi.init(e,r),r.format=r.format||"float64";const t=r.format?.includes("int"),n=t?"int":"number",[a,o]=wte[r.format];e._zod.onattach.push(i=>{const u=i._zod.bag;u.format=r.format,u.minimum=a,u.maximum=o,t&&(u.pattern=tne)}),e._zod.check=i=>{const u=i.value;if(t){if(!Number.isInteger(u)){i.issues.push({expected:n,format:r.format,code:"invalid_type",continue:!1,input:u,inst:e});return}if(!Number.isSafeInteger(u)){u>0?i.issues.push({input:u,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,continue:!r.abort}):i.issues.push({input:u,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,continue:!r.abort});return}}uo&&i.issues.push({origin:"number",input:u,code:"too_big",maximum:o,inst:e})}}),lne=Ne("$ZodCheckMaxLength",(e,r)=>{var t;Qi.init(e,r),(t=e._zod.def).when??(t.when=n=>{const a=n.value;return!gE(a)&&a.length!==void 0}),e._zod.onattach.push(n=>{const a=n._zod.bag.maximum??Number.POSITIVE_INFINITY;r.maximum{const a=n.value;if(a.length<=r.maximum)return;const i=yE(a);n.issues.push({origin:i,code:"too_big",maximum:r.maximum,inclusive:!0,input:a,inst:e,continue:!r.abort})}}),fne=Ne("$ZodCheckMinLength",(e,r)=>{var t;Qi.init(e,r),(t=e._zod.def).when??(t.when=n=>{const a=n.value;return!gE(a)&&a.length!==void 0}),e._zod.onattach.push(n=>{const a=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;r.minimum>a&&(n._zod.bag.minimum=r.minimum)}),e._zod.check=n=>{const a=n.value;if(a.length>=r.minimum)return;const i=yE(a);n.issues.push({origin:i,code:"too_small",minimum:r.minimum,inclusive:!0,input:a,inst:e,continue:!r.abort})}}),dne=Ne("$ZodCheckLengthEquals",(e,r)=>{var t;Qi.init(e,r),(t=e._zod.def).when??(t.when=n=>{const a=n.value;return!gE(a)&&a.length!==void 0}),e._zod.onattach.push(n=>{const a=n._zod.bag;a.minimum=r.length,a.maximum=r.length,a.length=r.length}),e._zod.check=n=>{const a=n.value,o=a.length;if(o===r.length)return;const i=yE(a),u=o>r.length;n.issues.push({origin:i,...u?{code:"too_big",maximum:r.length}:{code:"too_small",minimum:r.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!r.abort})}}),gm=Ne("$ZodCheckStringFormat",(e,r)=>{var t,n;Qi.init(e,r),e._zod.onattach.push(a=>{const o=a._zod.bag;o.format=r.format,r.pattern&&(o.patterns??(o.patterns=new Set),o.patterns.add(r.pattern))}),r.pattern?(t=e._zod).check??(t.check=a=>{r.pattern.lastIndex=0,!r.pattern.test(a.value)&&a.issues.push({origin:"string",code:"invalid_format",format:r.format,input:a.value,...r.pattern?{pattern:r.pattern.toString()}:{},inst:e,continue:!r.abort})}):(n=e._zod).check??(n.check=()=>{})}),pne=Ne("$ZodCheckRegex",(e,r)=>{gm.init(e,r),e._zod.check=t=>{r.pattern.lastIndex=0,!r.pattern.test(t.value)&&t.issues.push({origin:"string",code:"invalid_format",format:"regex",input:t.value,pattern:r.pattern.toString(),inst:e,continue:!r.abort})}}),hne=Ne("$ZodCheckLowerCase",(e,r)=>{r.pattern??(r.pattern=ane),gm.init(e,r)}),vne=Ne("$ZodCheckUpperCase",(e,r)=>{r.pattern??(r.pattern=une),gm.init(e,r)}),bne=Ne("$ZodCheckIncludes",(e,r)=>{Qi.init(e,r);const t=Ef(r.includes),n=new RegExp(typeof r.position=="number"?`^.{${r.position}}${t}`:t);r.pattern=n,e._zod.onattach.push(a=>{const o=a._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(n)}),e._zod.check=a=>{a.value.includes(r.includes,r.position)||a.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:r.includes,input:a.value,inst:e,continue:!r.abort})}}),gne=Ne("$ZodCheckStartsWith",(e,r)=>{Qi.init(e,r);const t=new RegExp(`^${Ef(r.prefix)}.*`);r.pattern??(r.pattern=t),e._zod.onattach.push(n=>{const a=n._zod.bag;a.patterns??(a.patterns=new Set),a.patterns.add(t)}),e._zod.check=n=>{n.value.startsWith(r.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:r.prefix,input:n.value,inst:e,continue:!r.abort})}}),mne=Ne("$ZodCheckEndsWith",(e,r)=>{Qi.init(e,r);const t=new RegExp(`.*${Ef(r.suffix)}$`);r.pattern??(r.pattern=t),e._zod.onattach.push(n=>{const a=n._zod.bag;a.patterns??(a.patterns=new Set),a.patterns.add(t)}),e._zod.check=n=>{n.value.endsWith(r.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:r.suffix,input:n.value,inst:e,continue:!r.abort})}}),yne=Ne("$ZodCheckOverwrite",(e,r)=>{Qi.init(e,r),e._zod.check=t=>{t.value=r.tx(t.value)}});class _ne{constructor(r=[]){this.content=[],this.indent=0,this&&(this.args=r)}indented(r){this.indent+=1,r(this),this.indent-=1}write(r){if(typeof r=="function"){r(this,{execution:"sync"}),r(this,{execution:"async"});return}const n=r.split(` +`).filter(i=>i),a=Math.min(...n.map(i=>i.length-i.trimStart().length)),o=n.map(i=>i.slice(a)).map(i=>" ".repeat(this.indent*2)+i);for(const i of o)this.content.push(i)}compile(){const r=Function,t=this?.args,a=[...(this?.content??[""]).map(o=>` ${o}`)];return new r(...t,a.join(` +`))}}const wne={major:4,minor:0,patch:14},At=Ne("$ZodType",(e,r)=>{var t;e??(e={}),e._zod.def=r,e._zod.bag=e._zod.bag||{},e._zod.version=wne;const n=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&n.unshift(e);for(const a of n)for(const o of a._zod.onattach)o(e);if(n.length===0)(t=e._zod).deferred??(t.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{const a=(o,i,u)=>{let s=nv(o),c;for(const f of i){if(f._zod.def.when){if(!f._zod.def.when(o))continue}else if(s)continue;const h=o.issues.length,m=f._zod.check(o);if(m instanceof Promise&&u?.async===!1)throw new cv;if(c||m instanceof Promise)c=(c??Promise.resolve()).then(async()=>{await m,o.issues.length!==h&&(s||(s=nv(o,h)))});else{if(o.issues.length===h)continue;s||(s=nv(o,h))}}return c?c.then(()=>o):o};e._zod.run=(o,i)=>{const u=e._zod.parse(o,i);if(u instanceof Promise){if(i.async===!1)throw new cv;return u.then(s=>a(s,n,i))}return a(u,n,i)}}e["~standard"]={validate:a=>{try{const o=jte(e,a);return o.success?{value:o.data}:{issues:o.error?.issues}}catch{return qte(e,a).then(i=>i.success?{value:i.data}:{issues:i.error?.issues})}},vendor:"zod",version:1}}),_E=Ne("$ZodString",(e,r)=>{At.init(e,r),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??rne(e._zod.bag),e._zod.parse=(t,n)=>{if(r.coerce)try{t.value=String(t.value)}catch{}return typeof t.value=="string"||t.issues.push({expected:"string",code:"invalid_type",input:t.value,inst:e}),t}}),Yt=Ne("$ZodStringFormat",(e,r)=>{gm.init(e,r),_E.init(e,r)}),Sne=Ne("$ZodGUID",(e,r)=>{r.pattern??(r.pattern=Bte),Yt.init(e,r)}),xne=Ne("$ZodUUID",(e,r)=>{if(r.version){const n={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[r.version];if(n===void 0)throw new Error(`Invalid UUID version: "${r.version}"`);r.pattern??(r.pattern=dR(n))}else r.pattern??(r.pattern=dR());Yt.init(e,r)}),One=Ne("$ZodEmail",(e,r)=>{r.pattern??(r.pattern=zte),Yt.init(e,r)}),Cne=Ne("$ZodURL",(e,r)=>{Yt.init(e,r),e._zod.check=t=>{try{const n=t.value.trim(),a=new URL(n);r.hostname&&(r.hostname.lastIndex=0,r.hostname.test(a.hostname)||t.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:Yte.source,input:t.value,inst:e,continue:!r.abort})),r.protocol&&(r.protocol.lastIndex=0,r.protocol.test(a.protocol.endsWith(":")?a.protocol.slice(0,-1):a.protocol)||t.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:r.protocol.source,input:t.value,inst:e,continue:!r.abort})),r.normalize?t.value=a.href:t.value=n;return}catch{t.issues.push({code:"invalid_format",format:"url",input:t.value,inst:e,continue:!r.abort})}}}),kne=Ne("$ZodEmoji",(e,r)=>{r.pattern??(r.pattern=Ute()),Yt.init(e,r)}),Tne=Ne("$ZodNanoID",(e,r)=>{r.pattern??(r.pattern=Fte),Yt.init(e,r)}),Ene=Ne("$ZodCUID",(e,r)=>{r.pattern??(r.pattern=Dte),Yt.init(e,r)}),Pne=Ne("$ZodCUID2",(e,r)=>{r.pattern??(r.pattern=Ite),Yt.init(e,r)}),Ane=Ne("$ZodULID",(e,r)=>{r.pattern??(r.pattern=Lte),Yt.init(e,r)}),Rne=Ne("$ZodXID",(e,r)=>{r.pattern??(r.pattern=Mte),Yt.init(e,r)}),jne=Ne("$ZodKSUID",(e,r)=>{r.pattern??(r.pattern=$te),Yt.init(e,r)}),qne=Ne("$ZodISODateTime",(e,r)=>{r.pattern??(r.pattern=ene(r)),Yt.init(e,r)}),Dne=Ne("$ZodISODate",(e,r)=>{r.pattern??(r.pattern=Qte),Yt.init(e,r)}),Ine=Ne("$ZodISOTime",(e,r)=>{r.pattern??(r.pattern=Jte(r)),Yt.init(e,r)}),Lne=Ne("$ZodISODuration",(e,r)=>{r.pattern??(r.pattern=Nte),Yt.init(e,r)}),Mne=Ne("$ZodIPv4",(e,r)=>{r.pattern??(r.pattern=Vte),Yt.init(e,r),e._zod.onattach.push(t=>{const n=t._zod.bag;n.format="ipv4"})}),$ne=Ne("$ZodIPv6",(e,r)=>{r.pattern??(r.pattern=Hte),Yt.init(e,r),e._zod.onattach.push(t=>{const n=t._zod.bag;n.format="ipv6"}),e._zod.check=t=>{try{new URL(`http://[${t.value}]`)}catch{t.issues.push({code:"invalid_format",format:"ipv6",input:t.value,inst:e,continue:!r.abort})}}}),Fne=Ne("$ZodCIDRv4",(e,r)=>{r.pattern??(r.pattern=Kte),Yt.init(e,r)}),Nne=Ne("$ZodCIDRv6",(e,r)=>{r.pattern??(r.pattern=Gte),Yt.init(e,r),e._zod.check=t=>{const[n,a]=t.value.split("/");try{if(!a)throw new Error;const o=Number(a);if(`${o}`!==a)throw new Error;if(o<0||o>128)throw new Error;new URL(`http://[${n}]`)}catch{t.issues.push({code:"invalid_format",format:"cidrv6",input:t.value,inst:e,continue:!r.abort})}}});function VW(e){if(e==="")return!0;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}const Bne=Ne("$ZodBase64",(e,r)=>{r.pattern??(r.pattern=Zte),Yt.init(e,r),e._zod.onattach.push(t=>{t._zod.bag.contentEncoding="base64"}),e._zod.check=t=>{VW(t.value)||t.issues.push({code:"invalid_format",format:"base64",input:t.value,inst:e,continue:!r.abort})}});function zne(e){if(!FW.test(e))return!1;const r=e.replace(/[-_]/g,n=>n==="-"?"+":"/"),t=r.padEnd(Math.ceil(r.length/4)*4,"=");return VW(t)}const Wne=Ne("$ZodBase64URL",(e,r)=>{r.pattern??(r.pattern=FW),Yt.init(e,r),e._zod.onattach.push(t=>{t._zod.bag.contentEncoding="base64url"}),e._zod.check=t=>{zne(t.value)||t.issues.push({code:"invalid_format",format:"base64url",input:t.value,inst:e,continue:!r.abort})}}),Une=Ne("$ZodE164",(e,r)=>{r.pattern??(r.pattern=Xte),Yt.init(e,r)});function Vne(e,r=null){try{const t=e.split(".");if(t.length!==3)return!1;const[n]=t;if(!n)return!1;const a=JSON.parse(atob(n));return!("typ"in a&&a?.typ!=="JWT"||!a.alg||r&&(!("alg"in a)||a.alg!==r))}catch{return!1}}const Hne=Ne("$ZodJWT",(e,r)=>{Yt.init(e,r),e._zod.check=t=>{Vne(t.value,r.alg)||t.issues.push({code:"invalid_format",format:"jwt",input:t.value,inst:e,continue:!r.abort})}}),HW=Ne("$ZodNumber",(e,r)=>{At.init(e,r),e._zod.pattern=e._zod.bag.pattern??nne,e._zod.parse=(t,n)=>{if(r.coerce)try{t.value=Number(t.value)}catch{}const a=t.value;if(typeof a=="number"&&!Number.isNaN(a)&&Number.isFinite(a))return t;const o=typeof a=="number"?Number.isNaN(a)?"NaN":Number.isFinite(a)?void 0:"Infinity":void 0;return t.issues.push({expected:"number",code:"invalid_type",input:a,inst:e,...o?{received:o}:{}}),t}}),Kne=Ne("$ZodNumber",(e,r)=>{cne.init(e,r),HW.init(e,r)}),Gne=Ne("$ZodBoolean",(e,r)=>{At.init(e,r),e._zod.pattern=ine,e._zod.parse=(t,n)=>{if(r.coerce)try{t.value=!!t.value}catch{}const a=t.value;return typeof a=="boolean"||t.issues.push({expected:"boolean",code:"invalid_type",input:a,inst:e}),t}}),Zne=Ne("$ZodUndefined",(e,r)=>{At.init(e,r),e._zod.pattern=one,e._zod.values=new Set([void 0]),e._zod.optin="optional",e._zod.optout="optional",e._zod.parse=(t,n)=>{const a=t.value;return typeof a>"u"||t.issues.push({expected:"undefined",code:"invalid_type",input:a,inst:e}),t}}),Yne=Ne("$ZodAny",(e,r)=>{At.init(e,r),e._zod.parse=t=>t}),Xne=Ne("$ZodUnknown",(e,r)=>{At.init(e,r),e._zod.parse=t=>t}),Qne=Ne("$ZodNever",(e,r)=>{At.init(e,r),e._zod.parse=(t,n)=>(t.issues.push({expected:"never",code:"invalid_type",input:t.value,inst:e}),t)});function pR(e,r,t){e.issues.length&&r.issues.push(...Pc(t,e.issues)),r.value[t]=e.value}const Jne=Ne("$ZodArray",(e,r)=>{At.init(e,r),e._zod.parse=(t,n)=>{const a=t.value;if(!Array.isArray(a))return t.issues.push({expected:"array",code:"invalid_type",input:a,inst:e}),t;t.value=Array(a.length);const o=[];for(let i=0;ipR(c,t,i))):pR(s,t,i)}return o.length?Promise.all(o).then(()=>t):t}});function ug(e,r,t,n){e.issues.length&&r.issues.push(...Pc(t,e.issues)),e.value===void 0?t in n&&(r.value[t]=void 0):r.value[t]=e.value}const eie=Ne("$ZodObject",(e,r)=>{At.init(e,r);const t=bE(()=>{const h=Object.keys(r.shape);for(const x of h)if(!(r.shape[x]instanceof At))throw new Error(`Invalid element at key "${x}": expected a Zod schema`);const m=_te(r.shape);return{shape:r.shape,keys:h,keySet:new Set(h),numKeys:h.length,optionalKeys:new Set(m)}});It(e._zod,"propValues",()=>{const h=r.shape,m={};for(const x in h){const S=h[x]._zod;if(S.values){m[x]??(m[x]=new Set);for(const v of S.values)m[x].add(v)}}return m});const n=h=>{const m=new _ne(["shape","payload","ctx"]),x=t.value,S=w=>{const O=fR(w);return`shape[${O}]._zod.run({ value: input[${O}], issues: [] }, ctx)`};m.write("const input = payload.value;");const v=Object.create(null);let b=0;for(const w of x.keys)v[w]=`key_${b++}`;m.write("const newResult = {}");for(const w of x.keys){const O=v[w],C=fR(w);m.write(`const ${O} = ${S(w)};`),m.write(` + if (${O}.issues.length) { + payload.issues = payload.issues.concat(${O}.issues.map(iss => ({ + ...iss, + path: iss.path ? [${C}, ...iss.path] : [${C}] + }))); + } + + if (${O}.value === undefined) { + if (${C} in input) { + newResult[${C}] = undefined; + } + } else { + newResult[${C}] = ${O}.value; + } + `)}m.write("payload.value = newResult;"),m.write("return payload;");const _=m.compile();return(w,O)=>_(h,w,O)};let a;const o=Mg,i=!jW.jitless,s=i&&mte.value,c=r.catchall;let f;e._zod.parse=(h,m)=>{f??(f=t.value);const x=h.value;if(!o(x))return h.issues.push({expected:"object",code:"invalid_type",input:x,inst:e}),h;const S=[];if(i&&s&&m?.async===!1&&m.jitless!==!0)a||(a=n(r.shape)),h=a(h,m);else{h.value={};const O=f.shape;for(const C of f.keys){const A=O[C]._zod.run({value:x[C],issues:[]},m);A instanceof Promise?S.push(A.then(P=>ug(P,h,C,x))):ug(A,h,C,x)}}if(!c)return S.length?Promise.all(S).then(()=>h):h;const v=[],b=f.keySet,_=c._zod,w=_.def.type;for(const O of Object.keys(x)){if(b.has(O))continue;if(w==="never"){v.push(O);continue}const C=_.run({value:x[O],issues:[]},m);C instanceof Promise?S.push(C.then(E=>ug(E,h,O,x))):ug(C,h,O,x)}return v.length&&h.issues.push({code:"unrecognized_keys",keys:v,input:x,inst:e}),S.length?Promise.all(S).then(()=>h):h}});function hR(e,r,t,n){for(const o of e)if(o.issues.length===0)return r.value=o.value,r;const a=e.filter(o=>!nv(o));return a.length===1?(r.value=a[0].value,a[0]):(r.issues.push({code:"invalid_union",input:r.value,inst:t,errors:e.map(o=>o.issues.map(i=>ms(i,n,gs())))}),r)}const KW=Ne("$ZodUnion",(e,r)=>{At.init(e,r),It(e._zod,"optin",()=>r.options.some(a=>a._zod.optin==="optional")?"optional":void 0),It(e._zod,"optout",()=>r.options.some(a=>a._zod.optout==="optional")?"optional":void 0),It(e._zod,"values",()=>{if(r.options.every(a=>a._zod.values))return new Set(r.options.flatMap(a=>Array.from(a._zod.values)))}),It(e._zod,"pattern",()=>{if(r.options.every(a=>a._zod.pattern)){const a=r.options.map(o=>o._zod.pattern);return new RegExp(`^(${a.map(o=>mE(o.source)).join("|")})$`)}});const t=r.options.length===1,n=r.options[0]._zod.run;e._zod.parse=(a,o)=>{if(t)return n(a,o);let i=!1;const u=[];for(const s of r.options){const c=s._zod.run({value:a.value,issues:[]},o);if(c instanceof Promise)u.push(c),i=!0;else{if(c.issues.length===0)return c;u.push(c)}}return i?Promise.all(u).then(s=>hR(s,a,e,o)):hR(u,a,e,o)}}),rie=Ne("$ZodDiscriminatedUnion",(e,r)=>{KW.init(e,r);const t=e._zod.parse;It(e._zod,"propValues",()=>{const a={};for(const o of r.options){const i=o._zod.propValues;if(!i||Object.keys(i).length===0)throw new Error(`Invalid discriminated union option at index "${r.options.indexOf(o)}"`);for(const[u,s]of Object.entries(i)){a[u]||(a[u]=new Set);for(const c of s)a[u].add(c)}}return a});const n=bE(()=>{const a=r.options,o=new Map;for(const i of a){const u=i._zod.propValues?.[r.discriminator];if(!u||u.size===0)throw new Error(`Invalid discriminated union option at index "${r.options.indexOf(i)}"`);for(const s of u){if(o.has(s))throw new Error(`Duplicate discriminator value "${String(s)}"`);o.set(s,i)}}return o});e._zod.parse=(a,o)=>{const i=a.value;if(!Mg(i))return a.issues.push({code:"invalid_type",expected:"object",input:i,inst:e}),a;const u=n.value.get(i?.[r.discriminator]);return u?u._zod.run(a,o):r.unionFallback?t(a,o):(a.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:r.discriminator,input:i,path:[r.discriminator],inst:e}),a)}}),tie=Ne("$ZodIntersection",(e,r)=>{At.init(e,r),e._zod.parse=(t,n)=>{const a=t.value,o=r.left._zod.run({value:a,issues:[]},n),i=r.right._zod.run({value:a,issues:[]},n);return o instanceof Promise||i instanceof Promise?Promise.all([o,i]).then(([s,c])=>vR(t,s,c)):vR(t,o,i)}});function hT(e,r){if(e===r)return{valid:!0,data:e};if(e instanceof Date&&r instanceof Date&&+e==+r)return{valid:!0,data:e};if($g(e)&&$g(r)){const t=Object.keys(r),n=Object.keys(e).filter(o=>t.indexOf(o)!==-1),a={...e,...r};for(const o of n){const i=hT(e[o],r[o]);if(!i.valid)return{valid:!1,mergeErrorPath:[o,...i.mergeErrorPath]};a[o]=i.data}return{valid:!0,data:a}}if(Array.isArray(e)&&Array.isArray(r)){if(e.length!==r.length)return{valid:!1,mergeErrorPath:[]};const t=[];for(let n=0;n{At.init(e,r);const t=r.items,n=t.length-[...t].reverse().findIndex(a=>a._zod.optin!=="optional");e._zod.parse=(a,o)=>{const i=a.value;if(!Array.isArray(i))return a.issues.push({input:i,inst:e,expected:"tuple",code:"invalid_type"}),a;a.value=[];const u=[];if(!r.rest){const c=i.length>t.length,f=i.length=i.length&&s>=n)continue;const f=c._zod.run({value:i[s],issues:[]},o);f instanceof Promise?u.push(f.then(h=>sg(h,a,s))):sg(f,a,s)}if(r.rest){const c=i.slice(t.length);for(const f of c){s++;const h=r.rest._zod.run({value:f,issues:[]},o);h instanceof Promise?u.push(h.then(m=>sg(m,a,s))):sg(h,a,s)}}return u.length?Promise.all(u).then(()=>a):a}});function sg(e,r,t){e.issues.length&&r.issues.push(...Pc(t,e.issues)),r.value[t]=e.value}const iie=Ne("$ZodRecord",(e,r)=>{At.init(e,r),e._zod.parse=(t,n)=>{const a=t.value;if(!$g(a))return t.issues.push({expected:"record",code:"invalid_type",input:a,inst:e}),t;const o=[];if(r.keyType._zod.values){const i=r.keyType._zod.values;t.value={};for(const s of i)if(typeof s=="string"||typeof s=="number"||typeof s=="symbol"){const c=r.valueType._zod.run({value:a[s],issues:[]},n);c instanceof Promise?o.push(c.then(f=>{f.issues.length&&t.issues.push(...Pc(s,f.issues)),t.value[s]=f.value})):(c.issues.length&&t.issues.push(...Pc(s,c.issues)),t.value[s]=c.value)}let u;for(const s in a)i.has(s)||(u=u??[],u.push(s));u&&u.length>0&&t.issues.push({code:"unrecognized_keys",input:a,inst:e,keys:u})}else{t.value={};for(const i of Reflect.ownKeys(a)){if(i==="__proto__")continue;const u=r.keyType._zod.run({value:i,issues:[]},n);if(u instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(u.issues.length){t.issues.push({code:"invalid_key",origin:"record",issues:u.issues.map(c=>ms(c,n,gs())),input:i,path:[i],inst:e}),t.value[u.value]=u.value;continue}const s=r.valueType._zod.run({value:a[i],issues:[]},n);s instanceof Promise?o.push(s.then(c=>{c.issues.length&&t.issues.push(...Pc(i,c.issues)),t.value[u.value]=c.value})):(s.issues.length&&t.issues.push(...Pc(i,s.issues)),t.value[u.value]=s.value)}}return o.length?Promise.all(o).then(()=>t):t}}),oie=Ne("$ZodEnum",(e,r)=>{At.init(e,r);const t=bte(r.entries),n=new Set(t);e._zod.values=n,e._zod.pattern=new RegExp(`^(${t.filter(a=>yte.has(typeof a)).map(a=>typeof a=="string"?Ef(a):a.toString()).join("|")})$`),e._zod.parse=(a,o)=>{const i=a.value;return n.has(i)||a.issues.push({code:"invalid_value",values:t,input:i,inst:e}),a}}),aie=Ne("$ZodLiteral",(e,r)=>{if(At.init(e,r),r.values.length===0)throw new Error("Cannot create literal schema with no valid values");e._zod.values=new Set(r.values),e._zod.pattern=new RegExp(`^(${r.values.map(t=>typeof t=="string"?Ef(t):t?Ef(t.toString()):String(t)).join("|")})$`),e._zod.parse=(t,n)=>{const a=t.value;return e._zod.values.has(a)||t.issues.push({code:"invalid_value",values:r.values,input:a,inst:e}),t}}),uie=Ne("$ZodTransform",(e,r)=>{At.init(e,r),e._zod.parse=(t,n)=>{const a=r.transform(t.value,t);if(n.async)return(a instanceof Promise?a:Promise.resolve(a)).then(i=>(t.value=i,t));if(a instanceof Promise)throw new cv;return t.value=a,t}});function bR(e,r){return e.issues.length&&r===void 0?{issues:[],value:void 0}:e}const sie=Ne("$ZodOptional",(e,r)=>{At.init(e,r),e._zod.optin="optional",e._zod.optout="optional",It(e._zod,"values",()=>r.innerType._zod.values?new Set([...r.innerType._zod.values,void 0]):void 0),It(e._zod,"pattern",()=>{const t=r.innerType._zod.pattern;return t?new RegExp(`^(${mE(t.source)})?$`):void 0}),e._zod.parse=(t,n)=>{if(r.innerType._zod.optin==="optional"){const a=r.innerType._zod.run(t,n);return a instanceof Promise?a.then(o=>bR(o,t.value)):bR(a,t.value)}return t.value===void 0?t:r.innerType._zod.run(t,n)}}),cie=Ne("$ZodNullable",(e,r)=>{At.init(e,r),It(e._zod,"optin",()=>r.innerType._zod.optin),It(e._zod,"optout",()=>r.innerType._zod.optout),It(e._zod,"pattern",()=>{const t=r.innerType._zod.pattern;return t?new RegExp(`^(${mE(t.source)}|null)$`):void 0}),It(e._zod,"values",()=>r.innerType._zod.values?new Set([...r.innerType._zod.values,null]):void 0),e._zod.parse=(t,n)=>t.value===null?t:r.innerType._zod.run(t,n)}),lie=Ne("$ZodDefault",(e,r)=>{At.init(e,r),e._zod.optin="optional",It(e._zod,"values",()=>r.innerType._zod.values),e._zod.parse=(t,n)=>{if(t.value===void 0)return t.value=r.defaultValue,t;const a=r.innerType._zod.run(t,n);return a instanceof Promise?a.then(o=>gR(o,r)):gR(a,r)}});function gR(e,r){return e.value===void 0&&(e.value=r.defaultValue),e}const fie=Ne("$ZodPrefault",(e,r)=>{At.init(e,r),e._zod.optin="optional",It(e._zod,"values",()=>r.innerType._zod.values),e._zod.parse=(t,n)=>(t.value===void 0&&(t.value=r.defaultValue),r.innerType._zod.run(t,n))}),die=Ne("$ZodNonOptional",(e,r)=>{At.init(e,r),It(e._zod,"values",()=>{const t=r.innerType._zod.values;return t?new Set([...t].filter(n=>n!==void 0)):void 0}),e._zod.parse=(t,n)=>{const a=r.innerType._zod.run(t,n);return a instanceof Promise?a.then(o=>mR(o,e)):mR(a,e)}});function mR(e,r){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:r}),e}const pie=Ne("$ZodCatch",(e,r)=>{At.init(e,r),It(e._zod,"optin",()=>r.innerType._zod.optin),It(e._zod,"optout",()=>r.innerType._zod.optout),It(e._zod,"values",()=>r.innerType._zod.values),e._zod.parse=(t,n)=>{const a=r.innerType._zod.run(t,n);return a instanceof Promise?a.then(o=>(t.value=o.value,o.issues.length&&(t.value=r.catchValue({...t,error:{issues:o.issues.map(i=>ms(i,n,gs()))},input:t.value}),t.issues=[]),t)):(t.value=a.value,a.issues.length&&(t.value=r.catchValue({...t,error:{issues:a.issues.map(o=>ms(o,n,gs()))},input:t.value}),t.issues=[]),t)}}),hie=Ne("$ZodPipe",(e,r)=>{At.init(e,r),It(e._zod,"values",()=>r.in._zod.values),It(e._zod,"optin",()=>r.in._zod.optin),It(e._zod,"optout",()=>r.out._zod.optout),It(e._zod,"propValues",()=>r.in._zod.propValues),e._zod.parse=(t,n)=>{const a=r.in._zod.run(t,n);return a instanceof Promise?a.then(o=>yR(o,r,n)):yR(a,r,n)}});function yR(e,r,t){return e.issues.length?e:r.out._zod.run({value:e.value,issues:e.issues},t)}const vie=Ne("$ZodReadonly",(e,r)=>{At.init(e,r),It(e._zod,"propValues",()=>r.innerType._zod.propValues),It(e._zod,"values",()=>r.innerType._zod.values),It(e._zod,"optin",()=>r.innerType._zod.optin),It(e._zod,"optout",()=>r.innerType._zod.optout),e._zod.parse=(t,n)=>{const a=r.innerType._zod.run(t,n);return a instanceof Promise?a.then(_R):_R(a)}});function _R(e){return e.value=Object.freeze(e.value),e}const bie=Ne("$ZodCustom",(e,r)=>{Qi.init(e,r),At.init(e,r),e._zod.parse=(t,n)=>t,e._zod.check=t=>{const n=t.value,a=r.fn(n);if(a instanceof Promise)return a.then(o=>wR(o,t,n,e));wR(a,t,n,e)}});function wR(e,r,t,n){if(!e){const a={code:"custom",input:t,inst:n,path:[...n._zod.def.path??[]],continue:!n._zod.def.abort};n._zod.def.params&&(a.params=n._zod.def.params),r.issues.push(lv(a))}}class gie{constructor(){this._map=new Map,this._idmap=new Map}add(r,...t){const n=t[0];if(this._map.set(r,n),n&&typeof n=="object"&&"id"in n){if(this._idmap.has(n.id))throw new Error(`ID ${n.id} already exists in the registry`);this._idmap.set(n.id,r)}return this}clear(){return this._map=new Map,this._idmap=new Map,this}remove(r){const t=this._map.get(r);return t&&typeof t=="object"&&"id"in t&&this._idmap.delete(t.id),this._map.delete(r),this}get(r){const t=r._zod.parent;if(t){const n={...this.get(t)??{}};delete n.id;const a={...n,...this._map.get(r)};return Object.keys(a).length?a:void 0}return this._map.get(r)}has(r){return this._map.has(r)}}function mie(){return new gie}const cg=mie();function yie(e,r){return new e({type:"string",..._r(r)})}function _ie(e,r){return new e({type:"string",format:"email",check:"string_format",abort:!1,..._r(r)})}function SR(e,r){return new e({type:"string",format:"guid",check:"string_format",abort:!1,..._r(r)})}function wie(e,r){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,..._r(r)})}function Sie(e,r){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",..._r(r)})}function xie(e,r){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",..._r(r)})}function Oie(e,r){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",..._r(r)})}function Cie(e,r){return new e({type:"string",format:"url",check:"string_format",abort:!1,..._r(r)})}function kie(e,r){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,..._r(r)})}function Tie(e,r){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,..._r(r)})}function Eie(e,r){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,..._r(r)})}function Pie(e,r){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,..._r(r)})}function Aie(e,r){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,..._r(r)})}function Rie(e,r){return new e({type:"string",format:"xid",check:"string_format",abort:!1,..._r(r)})}function jie(e,r){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,..._r(r)})}function qie(e,r){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,..._r(r)})}function Die(e,r){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,..._r(r)})}function Iie(e,r){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,..._r(r)})}function Lie(e,r){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,..._r(r)})}function Mie(e,r){return new e({type:"string",format:"base64",check:"string_format",abort:!1,..._r(r)})}function $ie(e,r){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,..._r(r)})}function Fie(e,r){return new e({type:"string",format:"e164",check:"string_format",abort:!1,..._r(r)})}function Nie(e,r){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,..._r(r)})}function Bie(e,r){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,..._r(r)})}function zie(e,r){return new e({type:"string",format:"date",check:"string_format",..._r(r)})}function Wie(e,r){return new e({type:"string",format:"time",check:"string_format",precision:null,..._r(r)})}function Uie(e,r){return new e({type:"string",format:"duration",check:"string_format",..._r(r)})}function Vie(e,r){return new e({type:"number",checks:[],..._r(r)})}function Hie(e,r){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",..._r(r)})}function Kie(e,r){return new e({type:"boolean",..._r(r)})}function Gie(e,r){return new e({type:"undefined",..._r(r)})}function Zie(e){return new e({type:"any"})}function Yie(e){return new e({type:"unknown"})}function Xie(e,r){return new e({type:"never",..._r(r)})}function xR(e,r){return new WW({check:"less_than",..._r(r),value:e,inclusive:!1})}function hw(e,r){return new WW({check:"less_than",..._r(r),value:e,inclusive:!0})}function OR(e,r){return new UW({check:"greater_than",..._r(r),value:e,inclusive:!1})}function vw(e,r){return new UW({check:"greater_than",..._r(r),value:e,inclusive:!0})}function CR(e,r){return new sne({check:"multiple_of",..._r(r),value:e})}function GW(e,r){return new lne({check:"max_length",..._r(r),maximum:e})}function Fg(e,r){return new fne({check:"min_length",..._r(r),minimum:e})}function ZW(e,r){return new dne({check:"length_equals",..._r(r),length:e})}function Qie(e,r){return new pne({check:"string_format",format:"regex",..._r(r),pattern:e})}function Jie(e){return new hne({check:"string_format",format:"lowercase",..._r(e)})}function eoe(e){return new vne({check:"string_format",format:"uppercase",..._r(e)})}function roe(e,r){return new bne({check:"string_format",format:"includes",..._r(r),includes:e})}function toe(e,r){return new gne({check:"string_format",format:"starts_with",..._r(r),prefix:e})}function noe(e,r){return new mne({check:"string_format",format:"ends_with",..._r(r),suffix:e})}function qv(e){return new yne({check:"overwrite",tx:e})}function ioe(e){return qv(r=>r.normalize(e))}function ooe(){return qv(e=>e.trim())}function aoe(){return qv(e=>e.toLowerCase())}function uoe(){return qv(e=>e.toUpperCase())}function soe(e,r,t){return new e({type:"array",element:r,..._r(t)})}function coe(e,r,t){return new e({type:"custom",check:"custom",fn:r,..._r(t)})}function loe(e){const r=foe(t=>(t.addIssue=n=>{if(typeof n=="string")t.issues.push(lv(n,t.value,r._zod.def));else{const a=n;a.fatal&&(a.continue=!1),a.code??(a.code="custom"),a.input??(a.input=t.value),a.inst??(a.inst=r),a.continue??(a.continue=!r._zod.def.abort),t.issues.push(lv(a))}},e(t.value,t)));return r}function foe(e,r){const t=new Qi({check:"custom",..._r(r)});return t._zod.check=e,t}const doe=Ne("ZodISODateTime",(e,r)=>{qne.init(e,r),tn.init(e,r)});function poe(e){return Bie(doe,e)}const hoe=Ne("ZodISODate",(e,r)=>{Dne.init(e,r),tn.init(e,r)});function voe(e){return zie(hoe,e)}const boe=Ne("ZodISOTime",(e,r)=>{Ine.init(e,r),tn.init(e,r)});function goe(e){return Wie(boe,e)}const moe=Ne("ZodISODuration",(e,r)=>{Lne.init(e,r),tn.init(e,r)});function yoe(e){return Uie(moe,e)}const _oe=(e,r)=>{IW.init(e,r),e.name="ZodError",Object.defineProperties(e,{format:{value:t=>Pte(e,t)},flatten:{value:t=>Ete(e,t)},addIssue:{value:t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,pT,2)}},addIssues:{value:t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,pT,2)}},isEmpty:{get(){return e.issues.length===0}}})},mm=Ne("ZodError",_oe,{Parent:Error}),woe=Ate(mm),Soe=Rte(mm),xoe=MW(mm),Ooe=$W(mm),Ut=Ne("ZodType",(e,r)=>(At.init(e,r),e.def=r,Object.defineProperty(e,"_def",{value:r}),e.check=(...t)=>e.clone({...r,checks:[...r.checks??[],...t.map(n=>typeof n=="function"?{_zod:{check:n,def:{check:"custom"},onattach:[]}}:n)]}),e.clone=(t,n)=>Wc(e,t,n),e.brand=()=>e,e.register=(t,n)=>(t.add(e,n),e),e.parse=(t,n)=>woe(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>xoe(e,t,n),e.parseAsync=async(t,n)=>Soe(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>Ooe(e,t,n),e.spa=e.safeParseAsync,e.refine=(t,n)=>e.check(_ae(t,n)),e.superRefine=t=>e.check(wae(t)),e.overwrite=t=>e.check(qv(t)),e.optional=()=>PR(e),e.nullable=()=>AR(e),e.nullish=()=>PR(AR(e)),e.nonoptional=t=>pae(e,t),e.array=()=>Mr(e),e.or=t=>mn([e,t]),e.and=t=>tae(e,t),e.transform=t=>RR(e,uae(t)),e.default=t=>lae(e,t),e.prefault=t=>dae(e,t),e.catch=t=>vae(e,t),e.pipe=t=>RR(e,t),e.readonly=()=>mae(e),e.describe=t=>{const n=e.clone();return cg.add(n,{description:t}),n},Object.defineProperty(e,"description",{get(){return cg.get(e)?.description},configurable:!0}),e.meta=(...t)=>{if(t.length===0)return cg.get(e);const n=e.clone();return cg.add(n,t[0]),n},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),YW=Ne("_ZodString",(e,r)=>{_E.init(e,r),Ut.init(e,r);const t=e._zod.bag;e.format=t.format??null,e.minLength=t.minimum??null,e.maxLength=t.maximum??null,e.regex=(...n)=>e.check(Qie(...n)),e.includes=(...n)=>e.check(roe(...n)),e.startsWith=(...n)=>e.check(toe(...n)),e.endsWith=(...n)=>e.check(noe(...n)),e.min=(...n)=>e.check(Fg(...n)),e.max=(...n)=>e.check(GW(...n)),e.length=(...n)=>e.check(ZW(...n)),e.nonempty=(...n)=>e.check(Fg(1,...n)),e.lowercase=n=>e.check(Jie(n)),e.uppercase=n=>e.check(eoe(n)),e.trim=()=>e.check(ooe()),e.normalize=(...n)=>e.check(ioe(...n)),e.toLowerCase=()=>e.check(aoe()),e.toUpperCase=()=>e.check(uoe())}),Coe=Ne("ZodString",(e,r)=>{_E.init(e,r),YW.init(e,r),e.email=t=>e.check(_ie(koe,t)),e.url=t=>e.check(Cie(Toe,t)),e.jwt=t=>e.check(Nie(zoe,t)),e.emoji=t=>e.check(kie(Eoe,t)),e.guid=t=>e.check(SR(kR,t)),e.uuid=t=>e.check(wie(lg,t)),e.uuidv4=t=>e.check(Sie(lg,t)),e.uuidv6=t=>e.check(xie(lg,t)),e.uuidv7=t=>e.check(Oie(lg,t)),e.nanoid=t=>e.check(Tie(Poe,t)),e.guid=t=>e.check(SR(kR,t)),e.cuid=t=>e.check(Eie(Aoe,t)),e.cuid2=t=>e.check(Pie(Roe,t)),e.ulid=t=>e.check(Aie(joe,t)),e.base64=t=>e.check(Mie(Foe,t)),e.base64url=t=>e.check($ie(Noe,t)),e.xid=t=>e.check(Rie(qoe,t)),e.ksuid=t=>e.check(jie(Doe,t)),e.ipv4=t=>e.check(qie(Ioe,t)),e.ipv6=t=>e.check(Die(Loe,t)),e.cidrv4=t=>e.check(Iie(Moe,t)),e.cidrv6=t=>e.check(Lie($oe,t)),e.e164=t=>e.check(Fie(Boe,t)),e.datetime=t=>e.check(poe(t)),e.date=t=>e.check(voe(t)),e.time=t=>e.check(goe(t)),e.duration=t=>e.check(yoe(t))});function Ee(e){return yie(Coe,e)}const tn=Ne("ZodStringFormat",(e,r)=>{Yt.init(e,r),YW.init(e,r)}),koe=Ne("ZodEmail",(e,r)=>{One.init(e,r),tn.init(e,r)}),kR=Ne("ZodGUID",(e,r)=>{Sne.init(e,r),tn.init(e,r)}),lg=Ne("ZodUUID",(e,r)=>{xne.init(e,r),tn.init(e,r)}),Toe=Ne("ZodURL",(e,r)=>{Cne.init(e,r),tn.init(e,r)}),Eoe=Ne("ZodEmoji",(e,r)=>{kne.init(e,r),tn.init(e,r)}),Poe=Ne("ZodNanoID",(e,r)=>{Tne.init(e,r),tn.init(e,r)}),Aoe=Ne("ZodCUID",(e,r)=>{Ene.init(e,r),tn.init(e,r)}),Roe=Ne("ZodCUID2",(e,r)=>{Pne.init(e,r),tn.init(e,r)}),joe=Ne("ZodULID",(e,r)=>{Ane.init(e,r),tn.init(e,r)}),qoe=Ne("ZodXID",(e,r)=>{Rne.init(e,r),tn.init(e,r)}),Doe=Ne("ZodKSUID",(e,r)=>{jne.init(e,r),tn.init(e,r)}),Ioe=Ne("ZodIPv4",(e,r)=>{Mne.init(e,r),tn.init(e,r)}),Loe=Ne("ZodIPv6",(e,r)=>{$ne.init(e,r),tn.init(e,r)}),Moe=Ne("ZodCIDRv4",(e,r)=>{Fne.init(e,r),tn.init(e,r)}),$oe=Ne("ZodCIDRv6",(e,r)=>{Nne.init(e,r),tn.init(e,r)}),Foe=Ne("ZodBase64",(e,r)=>{Bne.init(e,r),tn.init(e,r)}),Noe=Ne("ZodBase64URL",(e,r)=>{Wne.init(e,r),tn.init(e,r)}),Boe=Ne("ZodE164",(e,r)=>{Une.init(e,r),tn.init(e,r)}),zoe=Ne("ZodJWT",(e,r)=>{Hne.init(e,r),tn.init(e,r)}),XW=Ne("ZodNumber",(e,r)=>{HW.init(e,r),Ut.init(e,r),e.gt=(n,a)=>e.check(OR(n,a)),e.gte=(n,a)=>e.check(vw(n,a)),e.min=(n,a)=>e.check(vw(n,a)),e.lt=(n,a)=>e.check(xR(n,a)),e.lte=(n,a)=>e.check(hw(n,a)),e.max=(n,a)=>e.check(hw(n,a)),e.int=n=>e.check(TR(n)),e.safe=n=>e.check(TR(n)),e.positive=n=>e.check(OR(0,n)),e.nonnegative=n=>e.check(vw(0,n)),e.negative=n=>e.check(xR(0,n)),e.nonpositive=n=>e.check(hw(0,n)),e.multipleOf=(n,a)=>e.check(CR(n,a)),e.step=(n,a)=>e.check(CR(n,a)),e.finite=()=>e;const t=e._zod.bag;e.minValue=Math.max(t.minimum??Number.NEGATIVE_INFINITY,t.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(t.maximum??Number.POSITIVE_INFINITY,t.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(t.format??"").includes("int")||Number.isSafeInteger(t.multipleOf??.5),e.isFinite=!0,e.format=t.format??null});function gn(e){return Vie(XW,e)}const Woe=Ne("ZodNumberFormat",(e,r)=>{Kne.init(e,r),XW.init(e,r)});function TR(e){return Hie(Woe,e)}const Uoe=Ne("ZodBoolean",(e,r)=>{Gne.init(e,r),Ut.init(e,r)});function qr(e){return Kie(Uoe,e)}const Voe=Ne("ZodUndefined",(e,r)=>{Zne.init(e,r),Ut.init(e,r)});function Hoe(e){return Gie(Voe,e)}const Koe=Ne("ZodAny",(e,r)=>{Yne.init(e,r),Ut.init(e,r)});function Goe(){return Zie(Koe)}const Zoe=Ne("ZodUnknown",(e,r)=>{Xne.init(e,r),Ut.init(e,r)});function ER(){return Yie(Zoe)}const Yoe=Ne("ZodNever",(e,r)=>{Qne.init(e,r),Ut.init(e,r)});function Xoe(e){return Xie(Yoe,e)}const Qoe=Ne("ZodArray",(e,r)=>{Jne.init(e,r),Ut.init(e,r),e.element=r.element,e.min=(t,n)=>e.check(Fg(t,n)),e.nonempty=t=>e.check(Fg(1,t)),e.max=(t,n)=>e.check(GW(t,n)),e.length=(t,n)=>e.check(ZW(t,n)),e.unwrap=()=>e.element});function Mr(e,r){return soe(Qoe,e,r)}const Joe=Ne("ZodObject",(e,r)=>{eie.init(e,r),Ut.init(e,r),It(e,"shape",()=>r.shape),e.keyof=()=>Ba(Object.keys(e._zod.def.shape)),e.catchall=t=>e.clone({...e._zod.def,catchall:t}),e.passthrough=()=>e.clone({...e._zod.def,catchall:ER()}),e.loose=()=>e.clone({...e._zod.def,catchall:ER()}),e.strict=()=>e.clone({...e._zod.def,catchall:Xoe()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=t=>Ote(e,t),e.merge=t=>Cte(e,t),e.pick=t=>Ste(e,t),e.omit=t=>xte(e,t),e.partial=(...t)=>kte(JW,e,t[0]),e.required=(...t)=>Tte(eU,e,t[0])});function gr(e,r){const t={type:"object",get shape(){return zc(this,"shape",{...e}),this.shape},..._r(r)};return new Joe(t)}const QW=Ne("ZodUnion",(e,r)=>{KW.init(e,r),Ut.init(e,r),e.options=r.options});function mn(e,r){return new QW({type:"union",options:e,..._r(r)})}const eae=Ne("ZodDiscriminatedUnion",(e,r)=>{QW.init(e,r),rie.init(e,r)});function wE(e,r,t){return new eae({type:"union",options:r,discriminator:e,..._r(t)})}const rae=Ne("ZodIntersection",(e,r)=>{tie.init(e,r),Ut.init(e,r)});function tae(e,r){return new rae({type:"intersection",left:e,right:r})}const nae=Ne("ZodTuple",(e,r)=>{nie.init(e,r),Ut.init(e,r),e.rest=t=>e.clone({...e._zod.def,rest:t})});function ym(e,r,t){const n=r instanceof At,a=n?t:r,o=n?r:null;return new nae({type:"tuple",items:e,rest:o,..._r(a)})}const iae=Ne("ZodRecord",(e,r)=>{iie.init(e,r),Ut.init(e,r),e.keyType=r.keyType,e.valueType=r.valueType});function Ac(e,r,t){return new iae({type:"record",keyType:e,valueType:r,..._r(t)})}const vT=Ne("ZodEnum",(e,r)=>{oie.init(e,r),Ut.init(e,r),e.enum=r.entries,e.options=Object.values(r.entries);const t=new Set(Object.keys(r.entries));e.extract=(n,a)=>{const o={};for(const i of n)if(t.has(i))o[i]=r.entries[i];else throw new Error(`Key ${i} not found in enum`);return new vT({...r,checks:[],..._r(a),entries:o})},e.exclude=(n,a)=>{const o={...r.entries};for(const i of n)if(t.has(i))delete o[i];else throw new Error(`Key ${i} not found in enum`);return new vT({...r,checks:[],..._r(a),entries:o})}});function Ba(e,r){const t=Array.isArray(e)?Object.fromEntries(e.map(n=>[n,n])):e;return new vT({type:"enum",entries:t,..._r(r)})}const oae=Ne("ZodLiteral",(e,r)=>{aie.init(e,r),Ut.init(e,r),e.values=new Set(r.values),Object.defineProperty(e,"value",{get(){if(r.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return r.values[0]}})});function Ct(e,r){return new oae({type:"literal",values:Array.isArray(e)?e:[e],..._r(r)})}const aae=Ne("ZodTransform",(e,r)=>{uie.init(e,r),Ut.init(e,r),e._zod.parse=(t,n)=>{t.addIssue=o=>{if(typeof o=="string")t.issues.push(lv(o,t.value,r));else{const i=o;i.fatal&&(i.continue=!1),i.code??(i.code="custom"),i.input??(i.input=t.value),i.inst??(i.inst=e),t.issues.push(lv(i))}};const a=r.transform(t.value,t);return a instanceof Promise?a.then(o=>(t.value=o,t)):(t.value=a,t)}});function uae(e){return new aae({type:"transform",transform:e})}const JW=Ne("ZodOptional",(e,r)=>{sie.init(e,r),Ut.init(e,r),e.unwrap=()=>e._zod.def.innerType});function PR(e){return new JW({type:"optional",innerType:e})}const sae=Ne("ZodNullable",(e,r)=>{cie.init(e,r),Ut.init(e,r),e.unwrap=()=>e._zod.def.innerType});function AR(e){return new sae({type:"nullable",innerType:e})}const cae=Ne("ZodDefault",(e,r)=>{lie.init(e,r),Ut.init(e,r),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function lae(e,r){return new cae({type:"default",innerType:e,get defaultValue(){return typeof r=="function"?r():r}})}const fae=Ne("ZodPrefault",(e,r)=>{fie.init(e,r),Ut.init(e,r),e.unwrap=()=>e._zod.def.innerType});function dae(e,r){return new fae({type:"prefault",innerType:e,get defaultValue(){return typeof r=="function"?r():r}})}const eU=Ne("ZodNonOptional",(e,r)=>{die.init(e,r),Ut.init(e,r),e.unwrap=()=>e._zod.def.innerType});function pae(e,r){return new eU({type:"nonoptional",innerType:e,..._r(r)})}const hae=Ne("ZodCatch",(e,r)=>{pie.init(e,r),Ut.init(e,r),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function vae(e,r){return new hae({type:"catch",innerType:e,catchValue:typeof r=="function"?r:()=>r})}const bae=Ne("ZodPipe",(e,r)=>{hie.init(e,r),Ut.init(e,r),e.in=r.in,e.out=r.out});function RR(e,r){return new bae({type:"pipe",in:e,out:r})}const gae=Ne("ZodReadonly",(e,r)=>{vie.init(e,r),Ut.init(e,r),e.unwrap=()=>e._zod.def.innerType});function mae(e){return new gae({type:"readonly",innerType:e})}const yae=Ne("ZodCustom",(e,r)=>{bie.init(e,r),Ut.init(e,r)});function _ae(e,r={}){return coe(yae,e,r)}function wae(e){return loe(e)}const Sae=gr({displayName:Ee(),name:Ee(),restRoot:Ee(),apiVersion:Ee().optional(),version:Ee(),schemaVersion:Ee().optional(),_uccVersion:Ee().optional(),hideUCCVersion:qr().optional(),checkForUpdates:qr().default(!0).optional(),searchViewDefault:qr().default(!1).optional(),isVisible:qr().default(!0).optional(),supportedThemes:Mr(Ee()).optional(),showFooter:qr().default(!0).optional()}).strict(),SE=gr({errorMsg:Ee().optional(),type:Ct("number"),range:ym([gn(),gn()]),isInteger:qr().optional()}),_m=gr({errorMsg:Ee().optional(),type:Ct("string"),minLength:gn().gte(0),maxLength:gn().gte(0)}),$f=gr({errorMsg:Ee().optional(),type:Ct("regex"),pattern:Ee()}),rU=gr({errorMsg:Ee().optional(),type:Ct("email")}),tU=gr({errorMsg:Ee().optional(),type:Ct("ipv4")}),nU=gr({errorMsg:Ee().optional(),type:Ct("url")}),iU=gr({errorMsg:Ee().optional(),type:Ct("date")});wE("type",[SE,_m,$f,rU,tU,nU,iU]);const wm=Ba(["cloud","enterprise"]),fv=gr({value:mn([gn(),Ee(),qr()]),label:Ee()}).strict(),oU=gr({text:Ee(),links:Mr(gr({slug:Ee(),link:Ee(),linkText:Ee()}).strict()).optional(),link:Ee().optional()}).strict(),Sm=mn([Ee(),oU]),xae=gr({markdownType:Ct("text"),text:Ee(),color:Ee().optional()}).strict(),Oae=gr({markdownType:Ct("hybrid"),text:Ee(),token:Ee(),linkText:Ee(),link:Ee()}).strict(),Cae=gr({markdownType:Ct("link"),text:Ee(),link:Ee()}).strict(),kae=gr({markdownType:Hoe().optional(),text:Ee()}).strict(),aU=gr({type:Ee(),field:Ee(),label:Ee(),help:Sm.optional(),tooltip:Ee().optional()}).strict(),pa=aU.extend({required:qr().default(!1).optional(),encrypted:qr().default(!1).optional()}).strict(),Iu=gr({display:qr().default(!0).optional(),disableonEdit:qr().default(!1).optional(),enable:qr().default(!0).optional(),requiredWhenVisible:qr().default(!1).optional(),hideForPlatform:wm.optional()}).strict(),Tae=mn([xae.strict(),Oae.strict(),Cae.strict(),kae.strict()]),Eae=gr({fieldValue:mn([gn(),Ee(),qr(),gr({pattern:Ee()})]).optional(),mode:Ba(["create","edit","config","clone"]).optional(),fieldsToModify:Mr(gr({fieldId:Ee(),display:qr().optional(),value:mn([gn(),Ee(),qr()]).optional(),disabled:qr().optional(),required:qr().optional(),help:Sm.optional(),label:Ee().optional(),markdownMessage:Tae.optional()}))}).strict(),xs=Mr(Eae).optional(),Dv=Mr(mn([SE.strict(),_m.strict(),$f.strict(),rU.strict(),tU.strict(),nU.strict(),iU.strict()])),Pae=gr({oauth_field:Ee().optional(),label:Ee(),field:Ee(),type:Ct("text").default("text").optional(),help:Sm.optional(),encrypted:qr().default(!1).optional(),required:qr().default(!1).optional(),defaultValue:mn([Ee(),gn(),qr()]).optional(),options:Iu.optional(),modifyFieldsOnValue:xs,validators:Dv.optional()}).strict(),Aae=gr({enable:qr().optional(),display:qr().optional(),disableonEdit:qr().optional(),hideForPlatform:wm.optional(),auth_type:Mr(mn([Ba(["basic","oauth","oauth_client_credentials"]),Ee()])),oauth_type_labels:gr({basic:Ee().optional(),oauth:Ee().optional(),oauth_client_credentials:Ee().optional()}).catchall(Ee()).optional(),auth_label:Ee().optional(),oauth_popup_width:gn().optional(),oauth_popup_height:gn().optional(),oauth_timeout:gn().optional(),auth_code_endpoint:Ee().optional(),access_token_endpoint:Ee().optional(),oauth_state_enabled:qr().optional(),auth_endpoint_token_access_type:Ee().optional()}),xE=mn([Ee(),gn(),qr()]),uU=gr({label:Ee().optional(),defaultValue:qr().optional()}).strict(),Rae=gr({isExpandable:qr().optional(),expand:qr().optional()}).strict(),sU=gr({label:Ee(),fields:Mr(Ee()),options:Rae.optional()}).strict(),cU=gr({type:Ct("helpLink"),field:Ee(),label:Ee().optional(),help:Sm.optional(),tooltip:Ee().optional(),required:Ct(!1).default(!1).optional(),options:oU.extend({hideForPlatform:wm.optional(),display:qr().default(!0).optional()})}).strict(),OE=pa.extend({type:Ct("text"),validators:Dv.optional(),defaultValue:xE.optional(),options:Iu.optional(),modifyFieldsOnValue:xs}).strict(),CE=pa.extend({type:Ct("textarea"),validators:Dv.optional(),defaultValue:Ee().optional(),options:Iu.extend({rowsMin:gn().optional(),rowsMax:gn().optional()}).optional(),modifyFieldsOnValue:xs}).strict(),kE=pa.extend({type:Ct("checkbox"),defaultValue:mn([gn(),qr()]).optional(),options:Iu.optional(),modifyFieldsOnValue:xs}).strict(),TE=pa.extend({type:Ct("radio"),defaultValue:Ee().optional(),options:Iu.extend({items:Mr(fv)}),modifyFieldsOnValue:xs}).strict(),jae=Mr(mn([fv,gr({label:Ee(),children:Mr(fv)}).strict()])),lU=Iu.extend({disableSearch:qr().default(!1).optional(),createSearchChoice:qr().default(!1).optional(),referenceName:Ee().optional(),endpointUrl:Ee().optional(),allowList:Ee().optional(),denyList:Ee().optional(),labelField:Ee().optional(),valueField:Ee().optional(),autoCompleteFields:jae.optional(),dependencies:Mr(Ee()).optional(),items:fv.array().optional(),hideClearBtn:qr().optional()}),EE=pa.extend({type:Ct("singleSelect"),validators:Dv.optional(),defaultValue:xE.optional(),options:lU,modifyFieldsOnValue:xs}).strict(),qae=lU.extend({delimiter:Ee().length(1).optional()}),fU=pa.extend({type:Ct("multipleSelect"),validators:Dv.optional(),defaultValue:Ee().optional(),options:qae,modifyFieldsOnValue:xs}).strict(),Dae=gr({field:Ee(),checkbox:uU.optional(),input:gr({defaultValue:gn().optional(),validators:ym([SE]).optional(),required:qr().optional()}).strict().optional()}).strict(),Iae=Iu.extend({delimiter:Ee().max(20).optional(),groups:Mr(sU).optional(),rows:Mr(Dae)}).strict(),dU=pa.extend({type:Ct("checkboxGroup"),validators:ym([$f]).optional(),defaultValue:mn([gn(),qr()]).optional(),options:Iae}).strict(),Lae=gr({field:Ee(),checkbox:uU.optional()}).strict(),Mae=Iu.extend({delimiter:Ee().max(20).optional(),groups:Mr(sU).optional(),rows:Mr(Lae)}).strict(),pU=pa.extend({type:Ct("checkboxTree"),validators:ym([$f]).optional(),defaultValue:mn([gn(),qr()]).optional(),options:Mae}).strict(),hU=pa.extend({type:Ct("file"),defaultValue:Ee().optional(),validators:Mr(mn([_m,$f])).optional(),options:Iu.extend({maxFileSize:gn().optional(),fileSupportMessage:Ee().optional(),supportedFileTypes:Mr(Ee()),useBase64Encoding:qr().default(!1).optional()}).optional(),modifyFieldsOnValue:xs}).strict(),$ae=pa.extend({type:Ct("custom"),options:gr({type:Ct("external"),src:Ee(),hideForPlatform:wm.optional()}).strict()}).strict(),Fae=aU.extend({type:Ct("singleSelectSplunkSearch"),defaultValue:xE.optional(),search:Ee().optional(),valueField:Ee().optional(),labelField:Ee().optional(),options:gr({items:Mr(fv)}).optional()}).strict();gr({type:Ct("index"),field:Ee(),label:Ee(),defaultValue:Ee().optional(),help:Goe().optional(),required:qr().optional()}).strict();gr({type:Ct("interval"),field:Ee(),label:Ee(),defaultValue:mn([gn(),Ee()]).optional(),options:gr({range:Mr(mn([Ee(),gn()]))}).optional(),help:Ee().optional(),tooltip:Ee().optional(),required:qr().optional()}).strict();const bw=mn([Pae,cU,OE,CE,EE,fU,kE,dU,pU,TE,hU]),Nae=Aae.extend({basic:Mr(bw).optional(),oauth:Mr(bw).optional(),oauth_client_credentials:Mr(bw).optional()}).passthrough(),Bae=pa.extend({type:Ct("oauth"),defaultValue:Ee().optional(),validators:Mr(mn([_m,$f])).optional(),options:Nae}).strict(),vU=wE("type",[cU.strict(),OE.strict(),CE.strict(),EE.strict(),fU.strict(),kE.strict(),dU.strict(),pU.strict(),TE.strict(),hU.strict(),Bae.strict(),$ae.strict()]),PE=gr({moreInfo:Mr(gr({field:Ee(),label:Ee(),mapping:Ac(Ee(),Ee()).optional()})).optional(),header:Mr(gr({field:Ee(),label:Ee(),mapping:Ac(Ee(),Ee()).optional(),customCell:Ac(Ee(),Ee()).optional()})),customRow:Ac(Ee(),Ee()).optional(),actions:Mr(Ba(["edit","delete","clone","search"]))}),bU=gr({saveValidator:Ee().optional()}).optional(),fg=gr({message:Ee(),alwaysDisplay:qr().default(!1).optional()}),gU=gr({create:fg.optional(),edit:fg.optional(),config:fg.optional(),clone:fg.optional()}).optional(),mU=Mr(gr({options:gr({isExpandable:qr().optional(),expand:qr().optional()}).optional(),label:Ee(),fields:Mr(Ee())})).optional(),zae=gr({entity:Mr(vU).optional(),name:Ee(),title:Ee(),options:bU,table:PE.extend({actions:Mr(Ba(["edit","delete","clone"]))}).optional(),style:Ba(["page","dialog"]).optional(),hook:Ac(Ee(),Ee()).optional(),conf:Ee().optional(),restHandlerName:Ee().optional(),restHandlerModule:Ee().optional(),restHandlerClass:Ee().optional(),customTab:Ac(Ee(),Ee()).optional(),warning:gU,hideForPlatform:Ba(["cloud","enterprise"]).optional(),groups:mU,formTitle:Ee().optional()}),AE=gr({name:Ee(),title:Ee(),subTitle:Ee().optional(),entity:Mr(vU),options:bU,groups:mU,style:Ba(["page","dialog"]).optional(),hook:Ac(Ee(),Ee()).optional(),conf:Ee().optional(),restHandlerName:Ee().optional(),restHandlerModule:Ee().optional(),restHandlerClass:Ee().optional(),warning:gU,inputHelperModule:Ee().optional(),disableNewInput:qr().optional(),hideForPlatform:Ba(["cloud","enterprise"]).optional(),formTitle:Ee().optional()}),yU=AE.extend({description:Ee().optional(),table:PE,useInputToggleConfirmation:qr().optional()}),Wae=gr({title:Ee(),services:Mr(yU),inputsUniqueAcrossSingleService:qr().default(!1).optional()}).strict(),_U=gr({text:Ee(),links:Mr(gr({slug:Ee(),link:Ee(),linkText:Ee()})).optional()}).optional(),Uae=gr({title:Ee(),description:Ee().optional(),subDescription:_U,menu:gr({type:Ct("external"),src:Ee()}).optional(),table:PE,groupsMenu:Mr(gr({groupName:Ee(),groupTitle:Ee(),groupServices:Mr(Ee()).optional()})).optional(),services:Mr(AE.strict()),hideFieldId:Ee().optional(),readonlyFieldId:Ee().optional(),useInputToggleConfirmation:qr().optional(),inputsUniqueAcrossSingleService:qr().default(!1).optional()}).strict(),Vae=mn([Wae,Uae]).optional();mn([yU,AE]);const Hae=gr({configuration:gr({title:Ee(),description:Ee().optional(),subDescription:_U,tabs:Mr(zae).min(1)}).strict().optional(),inputs:Vae,dashboard:gr({panels:Mr(gr({name:Ee()})).min(1),troubleshooting_url:Ee().optional(),settings:gr({custom_tab_name:Ee().optional()}).optional()}).optional()}).strict(),Kae=Mr(gr({name:Ee(),label:Ee(),description:Ee(),adaptiveResponse:gr({task:Mr(Ee()).min(1),supportsAdhoc:qr(),supportsCloud:qr(),subject:Mr(Ee()).min(1),category:Mr(Ee()).min(1),technology:Mr(gr({version:Mr(Ee()).min(1),product:Ee(),vendor:Ee()})).min(1),drilldownUri:Ee().optional(),sourcetype:Ee().optional()}).optional(),entity:Mr(wE("type",[OE,CE,EE,kE,TE,Fae])).optional()})).min(1).optional(),Gae=gr({meta:Sae,pages:Hae,alerts:Kae}),jR="Invariant failed";function qR(e,r){if(e)return;const t=r?`${jR}: ${r}`:jR;throw new Error(t)}let bT=null;function Zae(e){const r=Gae.safeParse(e);r.success||console.error("Invalid globalConfig.json",JSON.stringify(r.error.issues)),bT=e}function wU(){if(!bT)throw new Error("No GlobalConfig set");return bT}const Yae=RW.makeCreateToast(vte),Xae=(e,r,t=void 0)=>{let n;switch(r){case"success":n=ig.TOAST_TYPES.SUCCESS;break;case"error":n=ig.TOAST_TYPES.ERROR;break;case"warning":n=ig.TOAST_TYPES.ERROR;break;default:n=ig.TOAST_TYPES.INFO}Yae({type:n,message:e,autoDismiss:!0,dismissOnActionClick:!0,showAction:!!t,action:t||void 0})};function Qae(e,r){const t=new RegExp(r);return e.filter(n=>t.test(n.value))}function Jae(e,r){const t=new RegExp(r);return e.filter(n=>!t.test(n.value))}function eye(e,r,t,n,a){let o=e.map(i=>{const u=r?i.content?.[r]:i.name;qR(typeof u=="string",`Label not found for ${i.name}`);const s=t?i.content?.[t]:i.name;return qR(typeof s=="string",`Value not found for ${i.name}`),{label:u,value:s}});return n&&(o=Qae(o,n)),a&&(o=Jae(o,a)),o}/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */function SU(e){return typeof e>"u"||e===null}function eue(e){return typeof e=="object"&&e!==null}function rue(e){return Array.isArray(e)?e:SU(e)?[]:[e]}function tue(e,r){var t,n,a,o;if(r)for(o=Object.keys(r),t=0,n=o.length;tu&&(o=" ... ",r=n-u+o.length),t-n>u&&(i=" ...",t=n+u-i.length),{str:o+e.slice(r,t).replace(/\t/g,"→")+i,pos:n-r+o.length}}function mw(e,r){return Tn.repeat(" ",r-e.length)+e}function fue(e,r){if(r=Object.create(r||null),!e.buffer)return null;r.maxLength||(r.maxLength=79),typeof r.indent!="number"&&(r.indent=1),typeof r.linesBefore!="number"&&(r.linesBefore=3),typeof r.linesAfter!="number"&&(r.linesAfter=2);for(var t=/\r?\n|\r|\0/g,n=[0],a=[],o,i=-1;o=t.exec(e.buffer);)a.push(o.index),n.push(o.index+o[0].length),e.position<=o.index&&i<0&&(i=n.length-2);i<0&&(i=n.length-1);var u="",s,c,f=Math.min(e.line+r.linesAfter,a.length).toString().length,h=r.maxLength-(r.indent+f+3);for(s=1;s<=r.linesBefore&&!(i-s<0);s++)c=gw(e.buffer,n[i-s],a[i-s],e.position-(n[i]-n[i-s]),h),u=Tn.repeat(" ",r.indent)+mw((e.line-s+1).toString(),f)+" | "+c.str+` +`+u;for(c=gw(e.buffer,n[i],a[i],e.position,h),u+=Tn.repeat(" ",r.indent)+mw((e.line+1).toString(),f)+" | "+c.str+` +`,u+=Tn.repeat("-",r.indent+f+3+c.pos)+`^ +`,s=1;s<=r.linesAfter&&!(i+s>=a.length);s++)c=gw(e.buffer,n[i+s],a[i+s],e.position-(n[i]-n[i+s]),h),u+=Tn.repeat(" ",r.indent)+mw((e.line+s+1).toString(),f)+" | "+c.str+` +`;return u.replace(/\n$/,"")}var due=fue,pue=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],hue=["scalar","sequence","mapping"];function vue(e){var r={};return e!==null&&Object.keys(e).forEach(function(t){e[t].forEach(function(n){r[String(n)]=t})}),r}function bue(e,r){if(r=r||{},Object.keys(r).forEach(function(t){if(pue.indexOf(t)===-1)throw new ki('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.')}),this.options=r,this.tag=e,this.kind=r.kind||null,this.resolve=r.resolve||function(){return!0},this.construct=r.construct||function(t){return t},this.instanceOf=r.instanceOf||null,this.predicate=r.predicate||null,this.represent=r.represent||null,this.representName=r.representName||null,this.defaultStyle=r.defaultStyle||null,this.multi=r.multi||!1,this.styleAliases=vue(r.styleAliases||null),hue.indexOf(this.kind)===-1)throw new ki('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}var Vn=bue;function DR(e,r){var t=[];return e[r].forEach(function(n){var a=t.length;t.forEach(function(o,i){o.tag===n.tag&&o.kind===n.kind&&o.multi===n.multi&&(a=i)}),t[a]=n}),t}function gue(){var e={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}},r,t;function n(a){a.multi?(e.multi[a.kind].push(a),e.multi.fallback.push(a)):e[a.kind][a.tag]=e.fallback[a.tag]=a}for(r=0,t=arguments.length;r=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0o"+e.toString(8):"-0o"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),Aue=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function Rue(e){return!(e===null||!Aue.test(e)||e[e.length-1]==="_")}function jue(e){var r,t;return r=e.replace(/_/g,"").toLowerCase(),t=r[0]==="-"?-1:1,"+-".indexOf(r[0])>=0&&(r=r.slice(1)),r===".inf"?t===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:r===".nan"?NaN:t*parseFloat(r,10)}var que=/^[-+]?[0-9]+e/;function Due(e,r){var t;if(isNaN(e))switch(r){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(r){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(r){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(Tn.isNegativeZero(e))return"-0.0";return t=e.toString(10),que.test(t)?t.replace("e",".e"):t}function Iue(e){return Object.prototype.toString.call(e)==="[object Number]"&&(e%1!==0||Tn.isNegativeZero(e))}var jU=new Vn("tag:yaml.org,2002:float",{kind:"scalar",resolve:Rue,construct:jue,predicate:Iue,represent:Due,defaultStyle:"lowercase"}),qU=EU.extend({implicit:[PU,AU,RU,jU]}),DU=qU,IU=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),LU=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function Lue(e){return e===null?!1:IU.exec(e)!==null||LU.exec(e)!==null}function Mue(e){var r,t,n,a,o,i,u,s=0,c=null,f,h,m;if(r=IU.exec(e),r===null&&(r=LU.exec(e)),r===null)throw new Error("Date resolve error");if(t=+r[1],n=+r[2]-1,a=+r[3],!r[4])return new Date(Date.UTC(t,n,a));if(o=+r[4],i=+r[5],u=+r[6],r[7]){for(s=r[7].slice(0,3);s.length<3;)s+="0";s=+s}return r[9]&&(f=+r[10],h=+(r[11]||0),c=(f*60+h)*6e4,r[9]==="-"&&(c=-c)),m=new Date(Date.UTC(t,n,a,o,i,u,s)),c&&m.setTime(m.getTime()-c),m}function $ue(e){return e.toISOString()}var MU=new Vn("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:Lue,construct:Mue,instanceOf:Date,represent:$ue});function Fue(e){return e==="<<"||e===null}var $U=new Vn("tag:yaml.org,2002:merge",{kind:"scalar",resolve:Fue}),RE=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;function Nue(e){if(e===null)return!1;var r,t,n=0,a=e.length,o=RE;for(t=0;t64)){if(r<0)return!1;n+=6}return n%8===0}function Bue(e){var r,t,n=e.replace(/[\r\n=]/g,""),a=n.length,o=RE,i=0,u=[];for(r=0;r>16&255),u.push(i>>8&255),u.push(i&255)),i=i<<6|o.indexOf(n.charAt(r));return t=a%4*6,t===0?(u.push(i>>16&255),u.push(i>>8&255),u.push(i&255)):t===18?(u.push(i>>10&255),u.push(i>>2&255)):t===12&&u.push(i>>4&255),new Uint8Array(u)}function zue(e){var r="",t=0,n,a,o=e.length,i=RE;for(n=0;n>18&63],r+=i[t>>12&63],r+=i[t>>6&63],r+=i[t&63]),t=(t<<8)+e[n];return a=o%3,a===0?(r+=i[t>>18&63],r+=i[t>>12&63],r+=i[t>>6&63],r+=i[t&63]):a===2?(r+=i[t>>10&63],r+=i[t>>4&63],r+=i[t<<2&63],r+=i[64]):a===1&&(r+=i[t>>2&63],r+=i[t<<4&63],r+=i[64],r+=i[64]),r}function Wue(e){return Object.prototype.toString.call(e)==="[object Uint8Array]"}var FU=new Vn("tag:yaml.org,2002:binary",{kind:"scalar",resolve:Nue,construct:Bue,predicate:Wue,represent:zue}),Uue=Object.prototype.hasOwnProperty,Vue=Object.prototype.toString;function Hue(e){if(e===null)return!0;var r=[],t,n,a,o,i,u=e;for(t=0,n=u.length;t>10)+55296,(e-65536&1023)+56320)}var KU=new Array(256),GU=new Array(256);for(var cf=0;cf<256;cf++)KU[cf]=MR(cf)?1:0,GU[cf]=MR(cf);function sse(e,r){this.input=e,this.filename=r.filename||null,this.schema=r.schema||jE,this.onWarning=r.onWarning||null,this.legacy=r.legacy||!1,this.json=r.json||!1,this.listener=r.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function ZU(e,r){var t={name:e.filename,buffer:e.input.slice(0,-1),position:e.position,line:e.line,column:e.position-e.lineStart};return t.snippet=due(t),new ki(r,t)}function Sr(e,r){throw ZU(e,r)}function zg(e,r){e.onWarning&&e.onWarning.call(null,ZU(e,r))}var $R={YAML:function(r,t,n){var a,o,i;r.version!==null&&Sr(r,"duplication of %YAML directive"),n.length!==1&&Sr(r,"YAML directive accepts exactly one argument"),a=/^([0-9]+)\.([0-9]+)$/.exec(n[0]),a===null&&Sr(r,"ill-formed argument of the YAML directive"),o=parseInt(a[1],10),i=parseInt(a[2],10),o!==1&&Sr(r,"unacceptable YAML version of the document"),r.version=n[0],r.checkLineBreaks=i<2,i!==1&&i!==2&&zg(r,"unsupported YAML version of the document")},TAG:function(r,t,n){var a,o;n.length!==2&&Sr(r,"TAG directive accepts exactly two arguments"),a=n[0],o=n[1],VU.test(a)||Sr(r,"ill-formed tag handle (first argument) of the TAG directive"),ys.call(r.tagMap,a)&&Sr(r,'there is a previously declared suffix for "'+a+'" tag handle'),HU.test(o)||Sr(r,"ill-formed tag prefix (second argument) of the TAG directive");try{o=decodeURIComponent(o)}catch{Sr(r,"tag prefix is malformed: "+o)}r.tagMap[a]=o}};function ps(e,r,t,n){var a,o,i,u;if(r1&&(e.result+=Tn.repeat(` +`,r-1))}function cse(e,r,t){var n,a,o,i,u,s,c,f,h=e.kind,m=e.result,x;if(x=e.input.charCodeAt(e.position),Zi(x)||_f(x)||x===35||x===38||x===42||x===33||x===124||x===62||x===39||x===34||x===37||x===64||x===96||(x===63||x===45)&&(a=e.input.charCodeAt(e.position+1),Zi(a)||t&&_f(a)))return!1;for(e.kind="scalar",e.result="",o=i=e.position,u=!1;x!==0;){if(x===58){if(a=e.input.charCodeAt(e.position+1),Zi(a)||t&&_f(a))break}else if(x===35){if(n=e.input.charCodeAt(e.position-1),Zi(n))break}else{if(e.position===e.lineStart&&xm(e)||t&&_f(x))break;if(za(x))if(s=e.line,c=e.lineStart,f=e.lineIndent,xn(e,!1,-1),e.lineIndent>=r){u=!0,x=e.input.charCodeAt(e.position);continue}else{e.position=i,e.line=s,e.lineStart=c,e.lineIndent=f;break}}u&&(ps(e,o,i,!1),DE(e,e.line-s),o=i=e.position,u=!1),Dc(x)||(i=e.position+1),x=e.input.charCodeAt(++e.position)}return ps(e,o,i,!1),e.result?!0:(e.kind=h,e.result=m,!1)}function lse(e,r){var t,n,a;if(t=e.input.charCodeAt(e.position),t!==39)return!1;for(e.kind="scalar",e.result="",e.position++,n=a=e.position;(t=e.input.charCodeAt(e.position))!==0;)if(t===39)if(ps(e,n,e.position,!0),t=e.input.charCodeAt(++e.position),t===39)n=e.position,e.position++,a=e.position;else return!0;else za(t)?(ps(e,n,a,!0),DE(e,xn(e,!1,r)),n=a=e.position):e.position===e.lineStart&&xm(e)?Sr(e,"unexpected end of the document within a single quoted scalar"):(e.position++,a=e.position);Sr(e,"unexpected end of the stream within a single quoted scalar")}function fse(e,r){var t,n,a,o,i,u;if(u=e.input.charCodeAt(e.position),u!==34)return!1;for(e.kind="scalar",e.result="",e.position++,t=n=e.position;(u=e.input.charCodeAt(e.position))!==0;){if(u===34)return ps(e,t,e.position,!0),e.position++,!0;if(u===92){if(ps(e,t,e.position,!0),u=e.input.charCodeAt(++e.position),za(u))xn(e,!1,r);else if(u<256&&KU[u])e.result+=GU[u],e.position++;else if((i=ose(u))>0){for(a=i,o=0;a>0;a--)u=e.input.charCodeAt(++e.position),(i=ise(u))>=0?o=(o<<4)+i:Sr(e,"expected hexadecimal character");e.result+=use(o),e.position++}else Sr(e,"unknown escape sequence");t=n=e.position}else za(u)?(ps(e,t,n,!0),DE(e,xn(e,!1,r)),t=n=e.position):e.position===e.lineStart&&xm(e)?Sr(e,"unexpected end of the document within a double quoted scalar"):(e.position++,n=e.position)}Sr(e,"unexpected end of the stream within a double quoted scalar")}function dse(e,r){var t=!0,n,a,o,i=e.tag,u,s=e.anchor,c,f,h,m,x,S=Object.create(null),v,b,_,w;if(w=e.input.charCodeAt(e.position),w===91)f=93,x=!1,u=[];else if(w===123)f=125,x=!0,u={};else return!1;for(e.anchor!==null&&(e.anchorMap[e.anchor]=u),w=e.input.charCodeAt(++e.position);w!==0;){if(xn(e,!0,r),w=e.input.charCodeAt(e.position),w===f)return e.position++,e.tag=i,e.anchor=s,e.kind=x?"mapping":"sequence",e.result=u,!0;t?w===44&&Sr(e,"expected the node content, but found ','"):Sr(e,"missed comma between flow collection entries"),b=v=_=null,h=m=!1,w===63&&(c=e.input.charCodeAt(e.position+1),Zi(c)&&(h=m=!0,e.position++,xn(e,!0,r))),n=e.line,a=e.lineStart,o=e.position,Pf(e,r,Ng,!1,!0),b=e.tag,v=e.result,xn(e,!0,r),w=e.input.charCodeAt(e.position),(m||e.line===n)&&w===58&&(h=!0,w=e.input.charCodeAt(++e.position),xn(e,!0,r),Pf(e,r,Ng,!1,!0),_=e.result),x?wf(e,u,S,b,v,_,n,a,o):h?u.push(wf(e,null,S,b,v,_,n,a,o)):u.push(v),xn(e,!0,r),w=e.input.charCodeAt(e.position),w===44?(t=!0,w=e.input.charCodeAt(++e.position)):t=!1}Sr(e,"unexpected end of the stream within a flow collection")}function pse(e,r){var t,n,a=yw,o=!1,i=!1,u=r,s=0,c=!1,f,h;if(h=e.input.charCodeAt(e.position),h===124)n=!1;else if(h===62)n=!0;else return!1;for(e.kind="scalar",e.result="";h!==0;)if(h=e.input.charCodeAt(++e.position),h===43||h===45)yw===a?a=h===43?IR:ese:Sr(e,"repeat of a chomping mode identifier");else if((f=ase(h))>=0)f===0?Sr(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):i?Sr(e,"repeat of an indentation width identifier"):(u=r+f-1,i=!0);else break;if(Dc(h)){do h=e.input.charCodeAt(++e.position);while(Dc(h));if(h===35)do h=e.input.charCodeAt(++e.position);while(!za(h)&&h!==0)}for(;h!==0;){for(qE(e),e.lineIndent=0,h=e.input.charCodeAt(e.position);(!i||e.lineIndentu&&(u=e.lineIndent),za(h)){s++;continue}if(e.lineIndentr)&&s!==0)Sr(e,"bad indentation of a sequence entry");else if(e.lineIndentr)&&(b&&(i=e.line,u=e.lineStart,s=e.position),Pf(e,r,Bg,!0,a)&&(b?S=e.result:v=e.result),b||(wf(e,h,m,x,S,v,i,u,s),x=S=v=null),xn(e,!0,-1),w=e.input.charCodeAt(e.position)),(e.line===o||e.lineIndent>r)&&w!==0)Sr(e,"bad indentation of a mapping entry");else if(e.lineIndentr?s=1:e.lineIndent===r?s=0:e.lineIndentr?s=1:e.lineIndent===r?s=0:e.lineIndent tag; it should be "scalar", not "'+e.kind+'"'),h=0,m=e.implicitTypes.length;h"),e.result!==null&&S.kind!==e.kind&&Sr(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+S.kind+'", not "'+e.kind+'"'),S.resolve(e.result,e.tag)?(e.result=S.construct(e.result,e.tag),e.anchor!==null&&(e.anchorMap[e.anchor]=e.result)):Sr(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")}return e.listener!==null&&e.listener("close",e),e.tag!==null||e.anchor!==null||f}function mse(e){var r=e.position,t,n,a,o=!1,i;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap=Object.create(null),e.anchorMap=Object.create(null);(i=e.input.charCodeAt(e.position))!==0&&(xn(e,!0,-1),i=e.input.charCodeAt(e.position),!(e.lineIndent>0||i!==37));){for(o=!0,i=e.input.charCodeAt(++e.position),t=e.position;i!==0&&!Zi(i);)i=e.input.charCodeAt(++e.position);for(n=e.input.slice(t,e.position),a=[],n.length<1&&Sr(e,"directive name must not be less than one character in length");i!==0;){for(;Dc(i);)i=e.input.charCodeAt(++e.position);if(i===35){do i=e.input.charCodeAt(++e.position);while(i!==0&&!za(i));break}if(za(i))break;for(t=e.position;i!==0&&!Zi(i);)i=e.input.charCodeAt(++e.position);a.push(e.input.slice(t,e.position))}i!==0&&qE(e),ys.call($R,n)?$R[n](e,n,a):zg(e,'unknown document directive "'+n+'"')}if(xn(e,!0,-1),e.lineIndent===0&&e.input.charCodeAt(e.position)===45&&e.input.charCodeAt(e.position+1)===45&&e.input.charCodeAt(e.position+2)===45?(e.position+=3,xn(e,!0,-1)):o&&Sr(e,"directives end mark is expected"),Pf(e,e.lineIndent-1,Bg,!1,!0),xn(e,!0,-1),e.checkLineBreaks&&tse.test(e.input.slice(r,e.position))&&zg(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&xm(e)){e.input.charCodeAt(e.position)===46&&(e.position+=3,xn(e,!0,-1));return}if(e.position"u"&&(t=r,r=null);var n=YU(e,t);if(typeof r!="function")return n;for(var a=0,o=n.length;a=55296&&t<=56319&&r+1=56320&&n<=57343)?(t-55296)*1024+n-56320+65536:t}function oV(e){var r=/^\n* /;return r.test(e)}var aV=1,_T=2,uV=3,sV=4,mf=5;function Gse(e,r,t,n,a,o,i,u){var s,c=0,f=null,h=!1,m=!1,x=n!==-1,S=-1,v=Hse(Qh(e,0))&&Kse(Qh(e,e.length-1));if(r||i)for(s=0;s=65536?s+=2:s++){if(c=Qh(e,s),!vv(c))return mf;v=v&&WR(c,f,u),f=c}else{for(s=0;s=65536?s+=2:s++){if(c=Qh(e,s),c===pv)h=!0,x&&(m=m||s-S-1>n&&e[S+1]!==" ",S=s);else if(!vv(c))return mf;v=v&&WR(c,f,u),f=c}m=m||x&&s-S-1>n&&e[S+1]!==" "}return!h&&!m?v&&!i&&!a(e)?aV:o===hv?mf:_T:t>9&&oV(e)?mf:i?o===hv?mf:_T:m?sV:uV}function Zse(e,r,t,n,a){e.dump=function(){if(r.length===0)return e.quotingType===hv?'""':"''";if(!e.noCompatMode&&(Fse.indexOf(r)!==-1||Nse.test(r)))return e.quotingType===hv?'"'+r+'"':"'"+r+"'";var o=e.indent*Math.max(1,t),i=e.lineWidth===-1?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-o),u=n||e.flowLevel>-1&&t>=e.flowLevel;function s(c){return Vse(e,c)}switch(Gse(r,u,e.indent,i,s,e.quotingType,e.forceQuotes&&!n,a)){case aV:return r;case _T:return"'"+r.replace(/'/g,"''")+"'";case uV:return"|"+UR(r,e.indent)+VR(BR(r,o));case sV:return">"+UR(r,e.indent)+VR(BR(Yse(r,i),o));case mf:return'"'+Xse(r)+'"';default:throw new ki("impossible error: invalid scalar style")}}()}function UR(e,r){var t=oV(e)?String(r):"",n=e[e.length-1]===` +`,a=n&&(e[e.length-2]===` +`||e===` +`),o=a?"+":n?"":"-";return t+o+` +`}function VR(e){return e[e.length-1]===` +`?e.slice(0,-1):e}function Yse(e,r){for(var t=/(\n+)([^\n]*)/g,n=function(){var c=e.indexOf(` +`);return c=c!==-1?c:e.length,t.lastIndex=c,HR(e.slice(0,c),r)}(),a=e[0]===` +`||e[0]===" ",o,i;i=t.exec(e);){var u=i[1],s=i[2];o=s[0]===" ",n+=u+(!a&&!o&&s!==""?` +`:"")+HR(s,r),a=o}return n}function HR(e,r){if(e===""||e[0]===" ")return e;for(var t=/ [^ ]/g,n,a=0,o,i=0,u=0,s="";n=t.exec(e);)u=n.index,u-a>r&&(o=i>a?i:u,s+=` +`+e.slice(a,o),a=o+1),i=u;return s+=` +`,e.length-a>r&&i>a?s+=e.slice(a,i)+` +`+e.slice(i+1):s+=e.slice(a),s.slice(1)}function Xse(e){for(var r="",t=0,n,a=0;a=65536?a+=2:a++)t=Qh(e,a),n=ai[t],!n&&vv(t)?(r+=e[a],t>=65536&&(r+=e[a+1])):r+=n||zse(t);return r}function Qse(e,r,t){var n="",a=e.tag,o,i,u;for(o=0,i=t.length;o"u"&&Ru(e,r,null,!1,!1))&&(n!==""&&(n+=","+(e.condenseFlow?"":" ")),n+=e.dump);e.tag=a,e.dump="["+n+"]"}function KR(e,r,t,n){var a="",o=e.tag,i,u,s;for(i=0,u=t.length;i"u"&&Ru(e,r+1,null,!0,!0,!1,!0))&&((!n||a!=="")&&(a+=yT(e,r)),e.dump&&pv===e.dump.charCodeAt(0)?a+="-":a+="- ",a+=e.dump);e.tag=o,e.dump=a||"[]"}function Jse(e,r,t){var n="",a=e.tag,o=Object.keys(t),i,u,s,c,f;for(i=0,u=o.length;i1024&&(f+="? "),f+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),Ru(e,r,c,!1,!1)&&(f+=e.dump,n+=f));e.tag=a,e.dump="{"+n+"}"}function ece(e,r,t,n){var a="",o=e.tag,i=Object.keys(t),u,s,c,f,h,m;if(e.sortKeys===!0)i.sort();else if(typeof e.sortKeys=="function")i.sort(e.sortKeys);else if(e.sortKeys)throw new ki("sortKeys must be a boolean or a function");for(u=0,s=i.length;u1024,h&&(e.dump&&pv===e.dump.charCodeAt(0)?m+="?":m+="? "),m+=e.dump,h&&(m+=yT(e,r)),Ru(e,r+1,f,!0,h)&&(e.dump&&pv===e.dump.charCodeAt(0)?m+=":":m+=": ",m+=e.dump,a+=m));e.tag=o,e.dump=a||"{}"}function GR(e,r,t){var n,a,o,i,u,s;for(a=t?e.explicitTypes:e.implicitTypes,o=0,i=a.length;o tag resolver accepts not "'+s+'" style');e.dump=n}return!0}return!1}function Ru(e,r,t,n,a,o,i){e.tag=null,e.dump=t,GR(e,t,!1)||GR(e,t,!0);var u=QU.call(e.dump),s=n,c;n&&(n=e.flowLevel<0||e.flowLevel>r);var f=u==="[object Object]"||u==="[object Array]",h,m;if(f&&(h=e.duplicates.indexOf(t),m=h!==-1),(e.tag!==null&&e.tag!=="?"||m||e.indent!==2&&r>0)&&(a=!1),m&&e.usedDuplicates[h])e.dump="*ref_"+h;else{if(f&&m&&!e.usedDuplicates[h]&&(e.usedDuplicates[h]=!0),u==="[object Object]")n&&Object.keys(e.dump).length!==0?(ece(e,r,e.dump,a),m&&(e.dump="&ref_"+h+e.dump)):(Jse(e,r,e.dump),m&&(e.dump="&ref_"+h+" "+e.dump));else if(u==="[object Array]")n&&e.dump.length!==0?(e.noArrayIndent&&!i&&r>0?KR(e,r-1,e.dump,a):KR(e,r,e.dump,a),m&&(e.dump="&ref_"+h+e.dump)):(Qse(e,r,e.dump),m&&(e.dump="&ref_"+h+" "+e.dump));else if(u==="[object String]")e.tag!=="?"&&Zse(e,e.dump,r,o,s);else{if(u==="[object Undefined]")return!1;if(e.skipInvalid)return!1;throw new ki("unacceptable kind of an object to dump "+u)}e.tag!==null&&e.tag!=="?"&&(c=encodeURI(e.tag[0]==="!"?e.tag.slice(1):e.tag).replace(/!/g,"%21"),e.tag[0]==="!"?c="!"+c:c.slice(0,18)==="tag:yaml.org,2002:"?c="!!"+c.slice(18):c="!<"+c+">",e.dump=c+" "+e.dump)}return!0}function rce(e,r){var t=[],n=[],a,o;for(wT(e,t,n),a=0,o=n.length;ax))return!1;var v=h.get(i),b=h.get(u);if(v&&b)return v==u&&b==i;var _=-1,w=!0,O=s&a?new e:void 0;for(h.set(i,u),h.set(u,i);++_-1?s[c?o[f]:f]:void 0}}return tS=n,tS}var nS,j6;function zce(){if(j6)return nS;j6=1;var e=vW(),r=Ff(),t=oE(),n=Math.max;function a(o,i,u){var s=o==null?0:o.length;if(!s)return-1;var c=u==null?0:t(u);return c<0&&(c=n(s+c,0)),e(o,r(i,3),c)}return nS=a,nS}var iS,q6;function Wce(){if(q6)return iS;q6=1;var e=Bce(),r=zce(),t=e(r);return iS=t,iS}var D6;function zE(){if(D6)return Tu;D6=1,Object.defineProperty(Tu,"__esModule",{value:!0}),Tu.getDefaultFetchInit=o,Tu.findErrorMessage=i,Tu.handleResponse=u,Tu.handleError=s,Tu.defaultFetchInit=void 0;var e=n(Wce()),r=n(Av()),t=lE();function n(c){return c&&c.__esModule?c:{default:c}}var a={method:"GET",credentials:"include",headers:{"X-Splunk-Form-Key":t.CSRFToken,"X-Requested-With":"XMLHttpRequest","Content-Type":"application/x-www-form-urlencoded"}};Tu.defaultFetchInit=a;function o(){return{method:"GET",credentials:"include",headers:{"X-Splunk-Form-Key":(0,t.getCSRFToken)(),"X-Requested-With":"XMLHttpRequest","Content-Type":"application/x-www-form-urlencoded"}}}function i(){var c=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},f=c.messages;if(Array.isArray(f))return(0,e.default)(f,function(h){var m=h.type;return m==="ERROR"||m==="FATAL"||m==="risky_command"})}function u(c){return function(f){return(0,r.default)([].concat(c),f.status)?f.status===204?null:f.json():Promise.reject(f)}}function s(c){return function(f){var h=null;try{h=f.json()}catch{return Promise.reject(new Error(c))}return h.then(function(m){var x=i(m);return x?Promise.reject(new Error(x.text)):Promise.reject(new Error(c))})}}return Tu}var gV=zE(),Uce=lE(),Vce=jv();function rye(e){return`${wU().meta.restRoot}_${e}`}const Hce={output_mode:"json"};function WE(e,r){const t=new URL(Vce.createRESTURL(e,{app:Uce.app,owner:"nobody"}),window.location.origin);return Object.entries({...Hce,...r}).filter(([,n])=>n!=null).forEach(([n,a])=>t.searchParams.append(n,a.toString())),t}async function Kce(e){const r=await e.json(),t=vE(r);throw new AW({response:e,message:t})}async function UE(e,r,t,n){const a=gV.getDefaultFetchInit();try{const o=await fetch(e.toString(),{...a,...r});return o.ok||await Kce(o),await o.json()}catch(o){const i=o instanceof DOMException&&o.name==="AbortError";if(t&&!i){const u=vE(o);Xae(u,"error"),n&&n(o)}throw o}}async function mV({endpointUrl:e,params:r={},signal:t,handleError:n,callbackOnError:a}){const o=WE(e,r);return UE(o,{method:"GET",signal:t},n,a)}async function tye({endpointUrl:e,params:r={},body:t,signal:n,handleError:a,callbackOnError:o}){const i=WE(e,r),c={method:"POST",headers:{...gV.getDefaultFetchInit().headers,"Content-Type":"application/x-www-form-urlencoded"},signal:n,body:t};return UE(i,c,a,o)}async function nye({endpointUrl:e,params:r={},signal:t,handleError:n,callbackOnError:a}){const o=WE(e,r);return UE(o,{method:"DELETE",signal:t},n,a)}function yV(){const e=document.getElementsByTagName("script"),r=e.length;for(let t=0;tZce())}var oS={exports:{}},aS,I6;function Xce(){if(I6)return aS;I6=1;var e="Expected a function";function r(t,n,a){if(typeof t!="function")throw new TypeError(e);return setTimeout(function(){t.apply(void 0,a)},n)}return aS=r,aS}var uS,L6;function VE(){if(L6)return uS;L6=1;var e=Xce(),r=If(),t=r(function(n,a){return e(n,1,a)});return uS=t,uS}var sS,M6;function Qce(){if(M6)return sS;M6=1;function e(r,t){for(var n=-1,a=r==null?0:r.length;++no?0:o+t),n=n>o?o:n,n<0&&(n+=o),o=t>n?0:n-t>>>0,t>>>=0;for(var i=Array(o);++a0&&o(f)?a>1?t(f,a-1,o,i,u):e(u,f):i||(u[u.length]=f)}return u}return AS=t,AS}var RS,aj;function mle(){if(aj)return RS;aj=1;var e=HE();function r(t){var n=t==null?0:t.length;return n?e(t,1):[]}return RS=r,RS}var jS,uj;function yle(){if(uj)return jS;uj=1;var e=mle(),r=oW(),t=aW();function n(a){return t(r(a,void 0,e),a+"")}return jS=n,jS}var qS,sj;function Lv(){if(sj)return qS;sj=1;var e=Ss(),r=dle(),t=vle(),n=hm(),a=Df(),o=ble(),i=yle(),u=wV(),s=1,c=2,f=4,h=i(function(m,x){var S={};if(m==null)return S;var v=!1;x=e(x,function(_){return _=n(_,m),v||(v=_.length>1),_}),a(m,u(m),S),v&&(S=r(S,s|c|f,o));for(var b=x.length;b--;)t(S,x[b]);return S});return qS=h,qS}var DS={exports:{}},IS={exports:{}};let KE=$v();const Br=e=>Mv(e,KE);let GE=$v();Br.write=e=>Mv(e,GE);let ZE=$v();Br.onStart=e=>Mv(e,ZE);let SV=$v();Br.onFrame=e=>Mv(e,SV);let xV=$v();Br.onFinish=e=>Mv(e,xV);let xf=[];Br.setTimeout=(e,r)=>{let t=Br.now()+r,n=()=>{let o=xf.findIndex(i=>i.cancel==n);~o&&xf.splice(o,1),jc.count-=~o?1:0},a={time:t,handler:e,cancel:n};return xf.splice(OV(t),0,a),jc.count+=1,CV(),a};let OV=e=>~(~xf.findIndex(r=>r.time>e)||~xf.length);Br.cancel=e=>{KE.delete(e),GE.delete(e)};Br.sync=e=>{ST=!0,Br.batchedUpdates(e),ST=!1};Br.throttle=e=>{let r;function t(){try{e(...r)}finally{r=null}}function n(...a){r=a,Br.onStart(t)}return n.handler=e,n.cancel=()=>{ZE.delete(t),r=null},n};let YE=typeof window<"u"?window.requestAnimationFrame:()=>{};Br.use=e=>YE=e;Br.now=typeof performance<"u"?()=>performance.now():Date.now;Br.batchedUpdates=e=>e();Br.catch=console.error;Br.frameLoop="always";Br.advance=()=>{Br.frameLoop!=="demand"?console.warn("Cannot call the manual advancement of rafz whilst frameLoop is not set as demand"):TV()};let Rc=-1,ST=!1;function Mv(e,r){ST?(r.delete(e),e(0)):(r.add(e),CV())}function CV(){Rc<0&&(Rc=0,Br.frameLoop!=="demand"&&YE(kV))}function kV(){~Rc&&(YE(kV),Br.batchedUpdates(TV))}function TV(){let e=Rc;Rc=Br.now();let r=OV(Rc);r&&(EV(xf.splice(0,r),t=>t.handler()),jc.count-=r),ZE.flush(),KE.flush(e?Math.min(64,Rc-e):16.667),SV.flush(),GE.flush(),xV.flush()}function $v(){let e=new Set,r=e;return{add(t){jc.count+=r==e&&!e.has(t)?1:0,e.add(t)},delete(t){return jc.count-=r==e&&e.has(t)?1:0,e.delete(t)},flush(t){r.size&&(e=new Set,jc.count-=r.size,EV(r,n=>n(t)&&e.add(n)),jc.count+=e.size,r=e)}}}function EV(e,r){e.forEach(t=>{try{r(t)}catch(n){Br.catch(n)}})}const jc={count:0};function xT(){}const _le=(e,r,t)=>Object.defineProperty(e,r,{value:t,writable:!0,configurable:!0}),nr={arr:Array.isArray,obj:e=>!!e&&e.constructor.name==="Object",fun:e=>typeof e=="function",str:e=>typeof e=="string",num:e=>typeof e=="number",und:e=>e===void 0};function Pu(e,r){if(nr.arr(e)){if(!nr.arr(r)||e.length!==r.length)return!1;for(let t=0;te.forEach(r);function Wa(e,r,t){if(nr.arr(e)){for(let n=0;nnr.und(e)?[]:nr.arr(e)?e:[e];function iv(e,r){if(e.size){const t=Array.from(e);e.clear(),jr(t,r)}}const Jh=(e,...r)=>iv(e,t=>t(...r));let XE,PV,hs=null,AV=!1,QE=xT;const wle=e=>{e.to&&(PV=e.to),e.now&&(Br.now=e.now),e.colors!==void 0&&(hs=e.colors),e.skipAnimation!=null&&(AV=e.skipAnimation),e.createStringInterpolator&&(XE=e.createStringInterpolator),e.requestAnimationFrame&&Br.use(e.requestAnimationFrame),e.batchedUpdates&&(Br.batchedUpdates=e.batchedUpdates),e.willAdvance&&(QE=e.willAdvance),e.frameLoop&&(Br.frameLoop=e.frameLoop)};var Ua=Object.freeze({__proto__:null,get createStringInterpolator(){return XE},get to(){return PV},get colors(){return hs},get skipAnimation(){return AV},get willAdvance(){return QE},assign:wle});const ov=new Set;let No=[],LS=[],Vg=0;const Fv={get idle(){return!ov.size&&!No.length},start(e){Vg>e.priority?(ov.add(e),Br.onStart(Sle)):(RV(e),Br(OT))},advance:OT,sort(e){if(Vg)Br.onFrame(()=>Fv.sort(e));else{const r=No.indexOf(e);~r&&(No.splice(r,1),jV(e))}},clear(){No=[],ov.clear()}};function Sle(){ov.forEach(RV),ov.clear(),Br(OT)}function RV(e){No.includes(e)||jV(e)}function jV(e){No.splice(xle(No,r=>r.priority>e.priority),0,e)}function OT(e){const r=LS;for(let t=0;t0}function xle(e,r){const t=e.findIndex(r);return t<0?e.length:t}const Ole={transparent:0,aliceblue:4042850303,antiquewhite:4209760255,aqua:16777215,aquamarine:2147472639,azure:4043309055,beige:4126530815,bisque:4293182719,black:255,blanchedalmond:4293643775,blue:65535,blueviolet:2318131967,brown:2771004159,burlywood:3736635391,burntsienna:3934150143,cadetblue:1604231423,chartreuse:2147418367,chocolate:3530104575,coral:4286533887,cornflowerblue:1687547391,cornsilk:4294499583,crimson:3692313855,cyan:16777215,darkblue:35839,darkcyan:9145343,darkgoldenrod:3095792639,darkgray:2846468607,darkgreen:6553855,darkgrey:2846468607,darkkhaki:3182914559,darkmagenta:2332068863,darkolivegreen:1433087999,darkorange:4287365375,darkorchid:2570243327,darkred:2332033279,darksalmon:3918953215,darkseagreen:2411499519,darkslateblue:1211993087,darkslategray:793726975,darkslategrey:793726975,darkturquoise:13554175,darkviolet:2483082239,deeppink:4279538687,deepskyblue:12582911,dimgray:1768516095,dimgrey:1768516095,dodgerblue:512819199,firebrick:2988581631,floralwhite:4294635775,forestgreen:579543807,fuchsia:4278255615,gainsboro:3705462015,ghostwhite:4177068031,gold:4292280575,goldenrod:3668254975,gray:2155905279,green:8388863,greenyellow:2919182335,grey:2155905279,honeydew:4043305215,hotpink:4285117695,indianred:3445382399,indigo:1258324735,ivory:4294963455,khaki:4041641215,lavender:3873897215,lavenderblush:4293981695,lawngreen:2096890111,lemonchiffon:4294626815,lightblue:2916673279,lightcoral:4034953471,lightcyan:3774873599,lightgoldenrodyellow:4210742015,lightgray:3553874943,lightgreen:2431553791,lightgrey:3553874943,lightpink:4290167295,lightsalmon:4288707327,lightseagreen:548580095,lightskyblue:2278488831,lightslategray:2005441023,lightslategrey:2005441023,lightsteelblue:2965692159,lightyellow:4294959359,lime:16711935,limegreen:852308735,linen:4210091775,magenta:4278255615,maroon:2147483903,mediumaquamarine:1724754687,mediumblue:52735,mediumorchid:3126187007,mediumpurple:2473647103,mediumseagreen:1018393087,mediumslateblue:2070474495,mediumspringgreen:16423679,mediumturquoise:1221709055,mediumvioletred:3340076543,midnightblue:421097727,mintcream:4127193855,mistyrose:4293190143,moccasin:4293178879,navajowhite:4292783615,navy:33023,oldlace:4260751103,olive:2155872511,olivedrab:1804477439,orange:4289003775,orangered:4282712319,orchid:3664828159,palegoldenrod:4008225535,palegreen:2566625535,paleturquoise:2951671551,palevioletred:3681588223,papayawhip:4293907967,peachpuff:4292524543,peru:3448061951,pink:4290825215,plum:3718307327,powderblue:2967529215,purple:2147516671,rebeccapurple:1714657791,red:4278190335,rosybrown:3163525119,royalblue:1097458175,saddlebrown:2336560127,salmon:4202722047,sandybrown:4104413439,seagreen:780883967,seashell:4294307583,sienna:2689740287,silver:3233857791,skyblue:2278484991,slateblue:1784335871,slategray:1887473919,slategrey:1887473919,snow:4294638335,springgreen:16744447,steelblue:1182971135,tan:3535047935,teal:8421631,thistle:3636451583,tomato:4284696575,turquoise:1088475391,violet:4001558271,wheat:4125012991,white:4294967295,whitesmoke:4126537215,yellow:4294902015,yellowgreen:2597139199},fa="[-+]?\\d*\\.?\\d+",Hg=fa+"%";function Om(...e){return"\\(\\s*("+e.join(")\\s*,\\s*(")+")\\s*\\)"}const Cle=new RegExp("rgb"+Om(fa,fa,fa)),kle=new RegExp("rgba"+Om(fa,fa,fa,fa)),Tle=new RegExp("hsl"+Om(fa,Hg,Hg)),Ele=new RegExp("hsla"+Om(fa,Hg,Hg,fa)),Ple=/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,Ale=/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,Rle=/^#([0-9a-fA-F]{6})$/,jle=/^#([0-9a-fA-F]{8})$/;function qle(e){let r;return typeof e=="number"?e>>>0===e&&e>=0&&e<=4294967295?e:null:(r=Rle.exec(e))?parseInt(r[1]+"ff",16)>>>0:hs&&hs[e]!==void 0?hs[e]:(r=Cle.exec(e))?(lf(r[1])<<24|lf(r[2])<<16|lf(r[3])<<8|255)>>>0:(r=kle.exec(e))?(lf(r[1])<<24|lf(r[2])<<16|lf(r[3])<<8|fj(r[4]))>>>0:(r=Ple.exec(e))?parseInt(r[1]+r[1]+r[2]+r[2]+r[3]+r[3]+"ff",16)>>>0:(r=jle.exec(e))?parseInt(r[1],16)>>>0:(r=Ale.exec(e))?parseInt(r[1]+r[1]+r[2]+r[2]+r[3]+r[3]+r[4]+r[4],16)>>>0:(r=Tle.exec(e))?(cj(lj(r[1]),dg(r[2]),dg(r[3]))|255)>>>0:(r=Ele.exec(e))?(cj(lj(r[1]),dg(r[2]),dg(r[3]))|fj(r[4]))>>>0:null}function MS(e,r,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?e+(r-e)*6*t:t<1/2?r:t<2/3?e+(r-e)*(2/3-t)*6:e}function cj(e,r,t){const n=t<.5?t*(1+r):t+r-t*r,a=2*t-n,o=MS(a,n,e+1/3),i=MS(a,n,e),u=MS(a,n,e-1/3);return Math.round(o*255)<<24|Math.round(i*255)<<16|Math.round(u*255)<<8}function lf(e){const r=parseInt(e,10);return r<0?0:r>255?255:r}function lj(e){return(parseFloat(e)%360+360)%360/360}function fj(e){const r=parseFloat(e);return r<0?0:r>1?255:Math.round(r*255)}function dg(e){const r=parseFloat(e);return r<0?0:r>100?1:r/100}function dj(e){let r=qle(e);if(r===null)return e;r=r||0;let t=(r&4278190080)>>>24,n=(r&16711680)>>>16,a=(r&65280)>>>8,o=(r&255)/255;return`rgba(${t}, ${n}, ${a}, ${o})`}const Af=(e,r,t)=>{if(nr.fun(e))return e;if(nr.arr(e))return Af({range:e,output:r,extrapolate:t});if(nr.str(e.output[0]))return XE(e);const n=e,a=n.output,o=n.range||[0,1],i=n.extrapolateLeft||n.extrapolate||"extend",u=n.extrapolateRight||n.extrapolate||"extend",s=n.easing||(c=>c);return c=>{const f=Ile(c,o);return Dle(c,o[f],o[f+1],a[f],a[f+1],s,i,u,n.map)}};function Dle(e,r,t,n,a,o,i,u,s){let c=s?s(e):e;if(ct){if(u==="identity")return c;u==="clamp"&&(c=t)}return n===a?n:r===t?e<=r?n:a:(r===-1/0?c=-c:t===1/0?c=c-r:c=(c-r)/(t-r),c=o(c),n===-1/0?c=-c:a===1/0?c=c+n:c=c*(a-n)+n,c)}function Ile(e,r){for(var t=1;t=e);++t);return t-1}function CT(){return CT=Object.assign||function(e){for(var r=1;r!!(e&&e[Rf]),Gi=e=>e&&e[Rf]?e[Rf]():e,pj=e=>e[Lc]||null;function Lle(e,r){e.eventObserved?e.eventObserved(r):e(r)}function bv(e,r){let t=e[Lc];t&&t.forEach(n=>{Lle(n,r)})}class qV{constructor(r){if(this[Rf]=void 0,this[Lc]=void 0,!r&&!(r=this.get))throw Error("Unknown getter");Mle(this,r)}}const Mle=(e,r)=>DV(e,Rf,r);function Nf(e,r){if(e[Rf]){let t=e[Lc];t||DV(e,Lc,t=new Set),t.has(r)||(t.add(r),e.observerAdded&&e.observerAdded(t.size,r))}return r}function gv(e,r){let t=e[Lc];if(t&&t.has(r)){const n=t.size-1;n?t.delete(r):e[Lc]=null,e.observerRemoved&&e.observerRemoved(n,r)}}const DV=(e,r,t)=>Object.defineProperty(e,r,{value:t,writable:!0,configurable:!0}),hj=/[+\-]?(?:0|[1-9]\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,$le=/(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\((-?\d+%?[,\s]+){2,3}\s*[\d\.]+%?\))/gi;let $S;const Fle=/rgba\(([0-9\.-]+), ([0-9\.-]+), ([0-9\.-]+), ([0-9\.-]+)\)/gi,Nle=(e,r,t,n,a)=>`rgba(${Math.round(r)}, ${Math.round(t)}, ${Math.round(n)}, ${a})`,IV=e=>{$S||($S=hs?new RegExp(`(${Object.keys(hs).join("|")})(?!\\w)`,"g"):/^\b$/);const r=e.output.map(o=>Gi(o).replace($le,dj).replace($S,dj)),t=r.map(o=>o.match(hj).map(Number)),a=t[0].map((o,i)=>t.map(u=>{if(!(i in u))throw Error('The arity of each "output" value must be equal');return u[i]})).map(o=>Af(CT({},e,{output:o})));return o=>{let i=0;return r[0].replace(hj,()=>String(a[i++](o))).replace(Fle,Nle)}},JE="react-spring: ",LV=e=>{const r=e;let t=!1;if(typeof r!="function")throw new TypeError(`${JE}once requires a function parameter`);return(...n)=>{t||(r(...n),t=!0)}},Ble=LV(console.warn);function MV(){Ble(`${JE}The "interpolate" function is deprecated in v9 (use "to" instead)`)}const zle=LV(console.warn);function Wle(){zle(`${JE}Directly calling start instead of using the api object is deprecated in v9 (use ".start" instead), this will be removed in later 0.X.0 versions`)}function Cm(e){return nr.str(e)&&(e[0]=="#"||/\d/.test(e)||e in(hs||{}))}const km=e=>or.useEffect(e,Ule),Ule=[];function eP(){const e=or.useState()[1],r=or.useState(Vle)[0];return km(r.unmount),()=>{r.current&&e({})}}function Vle(){const e={current:!0,unmount:()=>()=>{e.current=!1}};return e}function Hle(e,r){const[t]=or.useState(()=>({inputs:r,result:e()})),n=or.useRef(),a=n.current;let o=a;return o?r&&o.inputs&&Kle(r,o.inputs)||(o={inputs:r,result:e()}):o=t,or.useEffect(()=>{n.current=o,a==t&&(t.inputs=t.result=void 0)},[o]),o.result}function Kle(e,r){if(e.length!==r.length)return!1;for(let t=0;t{r.current=e}),r.current}const fs=typeof window<"u"&&window.document&&window.document.createElement?or.useLayoutEffect:or.useEffect,mv=Symbol.for("Animated:node"),Gle=e=>!!e&&e[mv]===e,Fa=e=>e&&e[mv],rP=(e,r)=>_le(e,mv,r),Tm=e=>e&&e[mv]&&e[mv].getPayload();class $V{constructor(){this.payload=void 0,rP(this,this)}getPayload(){return this.payload||[]}}class Bf extends $V{constructor(r){super(),this.done=!0,this.elapsedTime=void 0,this.lastPosition=void 0,this.lastVelocity=void 0,this.v0=void 0,this.durationProgress=0,this._value=r,nr.num(this._value)&&(this.lastPosition=this._value)}static create(r){return new Bf(r)}getPayload(){return[this]}getValue(){return this._value}setValue(r,t){return nr.num(r)&&(this.lastPosition=r,t&&(r=Math.round(r/t)*t,this.done&&(this.lastPosition=r))),this._value===r?!1:(this._value=r,!0)}reset(){const{done:r}=this;this.done=!1,nr.num(this._value)&&(this.elapsedTime=0,this.durationProgress=0,this.lastPosition=this._value,r&&(this.lastVelocity=null),this.v0=null)}}class jf extends Bf{constructor(r){super(0),this._string=null,this._toString=void 0,this._toString=Af({output:[r,r]})}static create(r){return new jf(r)}getValue(){let r=this._string;return r??(this._string=this._toString(this._value))}setValue(r){if(nr.str(r)){if(r==this._string)return!1;this._string=r,this._value=1}else if(super.setValue(r))this._string=null;else return!1;return!0}reset(r){r&&(this._toString=Af({output:[this.getValue(),r]})),this._value=0,super.reset()}}const Kg={dependencies:null};class Em extends $V{constructor(r){super(),this.source=r,this.setValue(r)}getValue(r){const t={};return Wa(this.source,(n,a)=>{Gle(n)?t[a]=n.getValue(r):Fo(n)?t[a]=Gi(n):r||(t[a]=n)}),t}setValue(r){this.source=r,this.payload=this._makePayload(r)}reset(){this.payload&&jr(this.payload,r=>r.reset())}_makePayload(r){if(r){const t=new Set;return Wa(r,this._addToPayload,t),Array.from(t)}}_addToPayload(r){Kg.dependencies&&Fo(r)&&Kg.dependencies.add(r);const t=Tm(r);t&&jr(t,n=>this.add(n))}}class tP extends Em{constructor(r){super(r)}static create(r){return new tP(r)}getValue(){return this.source.map(r=>r.getValue())}setValue(r){const t=this.getPayload();return r.length==t.length?t.map((n,a)=>n.setValue(r[a])).some(Boolean):(super.setValue(r.map(Zle)),!0)}}function Zle(e){return(Cm(e)?jf:Bf).create(e)}function TT(e){const r=Fa(e);return r?r.constructor:nr.arr(e)?tP:Cm(e)?jf:Bf}function Gg(){return Gg=Object.assign||function(e){for(var r=1;r{const t=!nr.fun(e)||e.prototype&&e.prototype.isReactComponent;return or.forwardRef((n,a)=>{const o=or.useRef(null),i=t&&or.useCallback(S=>{o.current=Qle(a,S)},[a]),[u,s]=Xle(n,r),c=eP(),f=()=>{const S=o.current;if(t&&!S)return;(S?r.applyAnimatedValues(S,u.getValue(!0)):!1)===!1&&c()},h=new Yle(f,s),m=or.useRef();fs(()=>{const S=m.current;m.current=h,jr(s,v=>Nf(v,h)),S&&(jr(S.deps,v=>gv(v,S)),Br.cancel(S.update))}),or.useEffect(f,[]),km(()=>()=>{const S=m.current;jr(S.deps,v=>gv(v,S))});const x=r.getComponentProps(u.getValue());return or.createElement(e,Gg({},x,{ref:i}))})};class Yle{constructor(r,t){this.update=r,this.deps=t}eventObserved(r){r.type=="change"&&Br.write(this.update)}}function Xle(e,r){const t=new Set;return Kg.dependencies=t,e.style&&(e=Gg({},e,{style:r.createAnimatedStyle(e.style)})),e=new Em(e),Kg.dependencies=null,[e,t]}function Qle(e,r){return e&&(nr.fun(e)?e(r):e.current=r),r}const bj=Symbol.for("AnimatedComponent"),Jle=(e,{applyAnimatedValues:r=()=>!1,createAnimatedStyle:t=a=>new Em(a),getComponentProps:n=a=>a}={})=>{const a={applyAnimatedValues:r,createAnimatedStyle:t,getComponentProps:n},o=i=>{const u=gj(i)||"Anonymous";return nr.str(i)?i=o[i]||(o[i]=vj(i,a)):i=i[bj]||(i[bj]=vj(i,a)),i.displayName=`Animated(${u})`,i};return Wa(e,(i,u)=>{nr.arr(e)&&(u=gj(i)),o[u]=o(i)}),{animated:o}},gj=e=>nr.str(e)?e:e&&nr.str(e.displayName)?e.displayName:nr.fun(e)&&e.name||null;function cn(){return cn=Object.assign||function(e){for(var r=1;re===!0||!!(r&&e&&(nr.fun(e)?e(r):Ti(e).includes(r))),FV=(e,r)=>nr.obj(e)?r&&e[r]:e,NV=(e,r)=>e.default===!0?e[r]:e.default?e.default[r]:void 0,efe=e=>e,Pm=(e,r=efe)=>{let t=rfe;e.default&&e.default!==!0&&(e=e.default,t=Object.keys(e));const n={};for(const a of t){const o=r(e[a],a);nr.und(o)||(n[a]=o)}return n},rfe=["config","onProps","onStart","onChange","onPause","onResume","onRest"],tfe={config:1,from:1,to:1,ref:1,loop:1,reset:1,pause:1,cancel:1,reverse:1,immediate:1,default:1,delay:1,onProps:1,onStart:1,onChange:1,onPause:1,onResume:1,onRest:1,onResolve:1,items:1,trail:1,sort:1,expires:1,initial:1,enter:1,update:1,leave:1,children:1,onDestroyed:1,keys:1,callId:1,parentId:1};function nfe(e){const r={};let t=0;if(Wa(e,(n,a)=>{tfe[a]||(r[a]=n,t++)}),t)return r}function Am(e){const r=nfe(e);if(r){const t={to:r};return Wa(e,(n,a)=>a in r||(t[a]=n)),t}return cn({},e)}function yv(e){return e=Gi(e),nr.arr(e)?e.map(yv):Cm(e)?Ua.createStringInterpolator({range:[0,1],output:[e,e]})(1):e}function BV(e){for(const r in e)return!0;return!1}function ET(e){return nr.fun(e)||nr.arr(e)&&nr.obj(e[0])}function PT(e,r){var t;(t=e.ref)==null||t.delete(e),r?.delete(e)}function zV(e,r){if(r&&e.ref!==r){var t;(t=e.ref)==null||t.delete(e),r.add(e),e.ref=r}}function ife(e,r,t=1e3){fs(()=>{if(r){let n=0;jr(e,(a,o)=>{const i=a.current;if(i.length){let u=t*r[o];isNaN(u)?u=n:n=u,jr(i,s=>{jr(s.queue,c=>{const f=c.delay;c.delay=h=>u+Ci(f||0,h)}),s.start()})}})}else{let n=Promise.resolve();jr(e,a=>{const o=a.current;if(o.length){const i=o.map(u=>{const s=u.queue;return u.queue=[],s});n=n.then(()=>(jr(o,(u,s)=>jr(i[s]||[],c=>u.queue.push(c))),Promise.all(a.start())))}})}})}const WV={default:{tension:170,friction:26},gentle:{tension:120,friction:14},wobbly:{tension:180,friction:12},stiff:{tension:210,friction:20},slow:{tension:280,friction:60},molasses:{tension:280,friction:120}},ofe=e=>e,AT=cn({},WV.default,{mass:1,damping:1,easing:ofe,clamp:!1});class afe{constructor(){this.tension=void 0,this.friction=void 0,this.frequency=void 0,this.damping=void 0,this.mass=void 0,this.velocity=0,this.restVelocity=void 0,this.precision=void 0,this.progress=void 0,this.duration=void 0,this.easing=void 0,this.clamp=void 0,this.bounce=void 0,this.decay=void 0,this.round=void 0,Object.assign(this,AT)}}function ufe(e,r,t){t&&(t=cn({},t),mj(t,r),r=cn({},t,r)),mj(e,r),Object.assign(e,r);for(const i in AT)e[i]==null&&(e[i]=AT[i]);let{mass:n,frequency:a,damping:o}=e;return nr.und(a)||(a<.01&&(a=.01),o<0&&(o=0),e.tension=Math.pow(2*Math.PI/a,2)*n,e.friction=4*Math.PI*o*n/a),e}function mj(e,r){if(!nr.und(r.decay))e.duration=void 0;else{const t=!nr.und(r.tension)||!nr.und(r.friction);(t||!nr.und(r.frequency)||!nr.und(r.damping)||!nr.und(r.mass))&&(e.duration=void 0,e.decay=void 0),t&&(e.frequency=void 0)}}const yj=[];class sfe{constructor(){this.changed=!1,this.values=yj,this.toValues=null,this.fromValues=yj,this.to=void 0,this.from=void 0,this.config=new afe,this.immediate=!1}}function UV(e,{key:r,props:t,defaultProps:n,state:a,actions:o}){return new Promise((i,u)=>{var s;let c,f,h=av((s=t.cancel)!=null?s:n?.cancel,r);if(h)S();else{nr.und(t.pause)||(a.paused=av(t.pause,r));let v=n?.pause;v!==!0&&(v=a.paused||av(v,r)),c=Ci(t.delay||0,r),v?(a.resumeQueue.add(x),o.pause()):(o.resume(),x())}function m(){a.resumeQueue.add(x),a.timeouts.delete(f),f.cancel(),c=f.time-Br.now()}function x(){c>0?(f=Br.setTimeout(S,c),a.pauseQueue.add(m),a.timeouts.add(f)):S()}function S(){a.pauseQueue.delete(m),a.timeouts.delete(f),e<=(a.cancelId||0)&&(h=!0);try{o.start(cn({},t,{callId:e,cancel:h}),i)}catch(v){u(v)}}})}const nP=(e,r)=>r.length==1?r[0]:r.some(t=>t.cancelled)?Of(e.get()):r.every(t=>t.noop)?VV(e.get()):sa(e.get(),r.every(t=>t.finished)),VV=e=>({value:e,noop:!0,finished:!0,cancelled:!1}),sa=(e,r,t=!1)=>({value:e,finished:r,cancelled:t}),Of=e=>({value:e,cancelled:!0,finished:!1});function HV(e,r,t,n){const{callId:a,parentId:o,onRest:i}=r,{asyncTo:u,promise:s}=t;return!o&&e===u&&!r.reset?s:t.promise=(async()=>{t.asyncId=a,t.asyncTo=e;const c=Pm(r,(b,_)=>_==="onRest"?void 0:b);let f,h;const m=new Promise((b,_)=>(f=b,h=_)),x=b=>{const _=a<=(t.cancelId||0)&&Of(n)||a!==t.asyncId&&sa(n,!1);if(_)throw b.result=_,h(b),b},S=(b,_)=>{const w=new RT,O=new _j;return(async()=>{if(Ua.skipAnimation)throw _v(t),O.result=sa(n,!1),h(O),O;x(w);const C=nr.obj(b)?cn({},b):cn({},_,{to:b});C.parentId=a,Wa(c,(A,P)=>{nr.und(C[P])&&(C[P]=A)});const E=await n.start(C);return x(w),t.paused&&await new Promise(A=>{t.resumeQueue.add(A)}),E})()};let v;if(Ua.skipAnimation)return _v(t),sa(n,!1);try{let b;nr.arr(e)?b=(async _=>{for(const w of _)await S(w)})(e):b=Promise.resolve(e(S,n.stop.bind(n))),await Promise.all([b.then(f),m]),v=sa(n.get(),!0,!1)}catch(b){if(b instanceof RT)v=b.result;else if(b instanceof _j)v=b.result;else throw b}finally{a==t.asyncId&&(t.asyncId=o,t.asyncTo=o?u:void 0,t.promise=o?s:void 0)}return nr.fun(i)&&Br.batchedUpdates(()=>{i(v,n,n.item)}),v})()}function _v(e,r){iv(e.timeouts,t=>t.cancel()),e.pauseQueue.clear(),e.resumeQueue.clear(),e.asyncId=e.asyncTo=e.promise=void 0,r&&(e.cancelId=r)}class RT extends Error{constructor(){super("An async animation has been interrupted. You see this error because you forgot to use `await` or `.catch(...)` on its returned promise."),this.result=void 0}}class _j extends Error{constructor(){super("SkipAnimationSignal"),this.result=void 0}}const jT=e=>e instanceof Rm;let cfe=1;class Rm extends qV{constructor(...r){super(...r),this.id=cfe++,this.key=void 0,this._priority=0}get priority(){return this._priority}set priority(r){this._priority!=r&&(this._priority=r,this._onPriorityChange(r))}get(){const r=Fa(this);return r&&r.getValue()}to(...r){return Ua.to(this,r)}interpolate(...r){return MV(),Ua.to(this,r)}toJSON(){return this.get()}observerAdded(r){r==1&&this._attach()}observerRemoved(r){r==0&&this._detach()}_attach(){}_detach(){}_onChange(r,t=!1){bv(this,{type:"change",parent:this,value:r,idle:t})}_onPriorityChange(r){this.idle||Fv.sort(this),bv(this,{type:"priority",parent:this,priority:r})}}const Mc=Symbol.for("SpringPhase"),KV=1,qT=2,DT=4,FS=e=>(e[Mc]&KV)>0,ss=e=>(e[Mc]&qT)>0,Ud=e=>(e[Mc]&DT)>0,wj=(e,r)=>r?e[Mc]|=qT|KV:e[Mc]&=~qT,Sj=(e,r)=>r?e[Mc]|=DT:e[Mc]&=~DT;class GV extends Rm{constructor(r,t){if(super(),this.key=void 0,this.animation=new sfe,this.queue=void 0,this.defaultProps={},this._state={paused:!1,pauseQueue:new Set,resumeQueue:new Set,timeouts:new Set},this._pendingCalls=new Set,this._lastCallId=0,this._lastToId=0,this._memoizedDuration=0,!nr.und(r)||!nr.und(t)){const n=nr.obj(r)?cn({},r):cn({},t,{from:r});nr.und(n.default)&&(n.default=!0),this.start(n)}}get idle(){return!(ss(this)||this._state.asyncTo)||Ud(this)}get goal(){return Gi(this.animation.to)}get velocity(){const r=Fa(this);return r instanceof Bf?r.lastVelocity||0:r.getPayload().map(t=>t.lastVelocity||0)}get hasAnimated(){return FS(this)}get isAnimating(){return ss(this)}get isPaused(){return Ud(this)}advance(r){let t=!0,n=!1;const a=this.animation;let{config:o,toValues:i}=a;const u=Tm(a.to);!u&&Fo(a.to)&&(i=Ti(Gi(a.to))),a.values.forEach((f,h)=>{if(f.done)return;const m=f.constructor==jf?1:u?u[h].lastPosition:i[h];let x=a.immediate,S=m;if(!x){if(S=f.lastPosition,o.tension<=0){f.done=!0;return}let v=f.elapsedTime+=r;const b=a.fromValues[h],_=f.v0!=null?f.v0:f.v0=nr.arr(o.velocity)?o.velocity[h]:o.velocity;let w;if(nr.und(o.duration))if(o.decay){const O=o.decay===!0?.998:o.decay,C=Math.exp(-(1-O)*v);S=b+_/(1-O)*(1-C),x=Math.abs(f.lastPosition-S)<.1,w=_*C}else{w=f.lastVelocity==null?_:f.lastVelocity;const O=o.precision||(b==m?.005:Math.min(1,Math.abs(m-b)*.001)),C=o.restVelocity||O/10,E=o.clamp?0:o.bounce,A=!nr.und(E),P=b==m?f.v0>0:bC,!(!j&&(x=Math.abs(m-S)<=O,x)));++B){A&&(L=S==m||S>m==P,L&&(w=-w*E,S=m));const U=-o.tension*1e-6*(S-m),V=-o.friction*.001*w,te=(U+V)/o.mass;w=w+te*N,S=S+w*N}}else{let O=1;o.duration>0&&(this._memoizedDuration!==o.duration&&(this._memoizedDuration=o.duration,f.durationProgress>0&&(f.elapsedTime=o.duration*f.durationProgress,v=f.elapsedTime+=r)),O=(o.progress||0)+v/this._memoizedDuration,O=O>1?1:O<0?0:O,f.durationProgress=O),S=b+o.easing(O)*(m-b),w=(S-f.lastPosition)/r,x=O==1}f.lastVelocity=w,Number.isNaN(S)&&(console.warn("Got NaN while animating:",this),x=!0)}u&&!u[h].done&&(x=!1),x?f.done=!0:t=!1,f.setValue(S,o.round)&&(n=!0)});const s=Fa(this),c=s.getValue();if(t){const f=Gi(a.to);(c!==f||n)&&!o.decay?(s.setValue(f),this._onChange(f)):n&&o.decay&&this._onChange(c),this._stop()}else n&&this._onChange(c)}set(r){return Br.batchedUpdates(()=>{this._stop(),this._focus(r),this._set(r)}),this}pause(){this._update({pause:!0})}resume(){this._update({pause:!1})}finish(){if(ss(this)){const{to:r,config:t}=this.animation;Br.batchedUpdates(()=>{this._onStart(),t.decay||this._set(r,!1),this._stop()})}return this}update(r){return(this.queue||(this.queue=[])).push(r),this}start(r,t){let n;return nr.und(r)?(n=this.queue||[],this.queue=[]):n=[nr.obj(r)?r:cn({},t,{to:r})],Promise.all(n.map(a=>this._update(a))).then(a=>nP(this,a))}stop(r){const{to:t}=this.animation;return this._focus(this.get()),_v(this._state,r&&this._lastCallId),Br.batchedUpdates(()=>this._stop(t,r)),this}reset(){this._update({reset:!0})}eventObserved(r){r.type=="change"?this._start():r.type=="priority"&&(this.priority=r.priority+1)}_prepareNode(r){const t=this.key||"";let{to:n,from:a}=r;n=nr.obj(n)?n[t]:n,(n==null||ET(n))&&(n=void 0),a=nr.obj(a)?a[t]:a,a==null&&(a=void 0);const o={to:n,from:a};return FS(this)||(r.reverse&&([n,a]=[a,n]),a=Gi(a),nr.und(a)?Fa(this)||this._set(n):this._set(a)),o}_update(r,t){let n=cn({},r);const{key:a,defaultProps:o}=this;n.default&&Object.assign(o,Pm(n,(s,c)=>/^on/.test(c)?FV(s,a):s)),Oj(this,n,"onProps"),Hd(this,"onProps",n,this);const i=this._prepareNode(n);if(Object.isFrozen(this))throw Error("Cannot animate a `SpringValue` object that is frozen. Did you forget to pass your component to `animated(...)` before animating its props?");const u=this._state;return UV(++this._lastCallId,{key:a,props:n,defaultProps:o,state:u,actions:{pause:()=>{Ud(this)||(Sj(this,!0),Jh(u.pauseQueue),Hd(this,"onPause",sa(this,Vd(this,this.animation.to)),this))},resume:()=>{Ud(this)&&(Sj(this,!1),ss(this)&&this._resume(),Jh(u.resumeQueue),Hd(this,"onResume",sa(this,Vd(this,this.animation.to)),this))},start:this._merge.bind(this,i)}}).then(s=>{if(n.loop&&s.finished&&!(t&&s.noop)){const c=ZV(n);if(c)return this._update(c,!0)}return s})}_merge(r,t,n){if(t.cancel)return this.stop(!0),n(Of(this));const a=!nr.und(r.to),o=!nr.und(r.from);if(a||o)if(t.callId>this._lastToId)this._lastToId=t.callId;else return n(Of(this));const{key:i,defaultProps:u,animation:s}=this,{to:c,from:f}=s;let{to:h=c,from:m=f}=r;o&&!a&&(!t.default||nr.und(h))&&(h=m),t.reverse&&([h,m]=[m,h]);const x=!Pu(m,f);x&&(s.from=m),m=Gi(m);const S=!Pu(h,c);S&&this._focus(h);const v=ET(t.to),{config:b}=s,{decay:_,velocity:w}=b;(a||o)&&(b.velocity=0),t.config&&!v&&ufe(b,Ci(t.config,i),t.config!==u.config?Ci(u.config,i):void 0);let O=Fa(this);if(!O||nr.und(h))return n(sa(this,!0));const C=nr.und(t.reset)?o&&!t.default:!nr.und(m)&&av(t.reset,i),E=C?m:this.get(),A=yv(h),P=nr.num(A)||nr.arr(A)||Cm(A),j=!v&&(!P||av(u.immediate||t.immediate,i));if(S){const B=TT(h);if(B!==O.constructor)if(j)O=this._set(A);else throw Error(`Cannot animate between ${O.constructor.name} and ${B.name}, as the "to" prop suggests`)}const L=O.constructor;let N=Fo(h),$=!1;if(!N){const B=C||!FS(this)&&x;(S||B)&&($=Pu(yv(E),A),N=!$),(!Pu(s.immediate,j)&&!j||!Pu(b.decay,_)||!Pu(b.velocity,w))&&(N=!0)}if($&&ss(this)&&(s.changed&&!C?N=!0:N||this._stop(c)),!v&&((N||Fo(c))&&(s.values=O.getPayload(),s.toValues=Fo(h)?null:L==jf?[1]:Ti(A)),s.immediate!=j&&(s.immediate=j,!j&&!C&&this._set(c)),N)){const{onRest:B}=s;jr(ffe,V=>Oj(this,t,V));const U=sa(this,Vd(this,c));Jh(this._pendingCalls,U),this._pendingCalls.add(n),s.changed&&Br.batchedUpdates(()=>{s.changed=!C,B?.(U,this),C?Ci(u.onRest,U):s.onStart==null||s.onStart(U,this)})}C&&this._set(E),v?n(HV(t.to,t,this._state,this)):N?this._start():ss(this)&&!S?this._pendingCalls.add(n):n(VV(E))}_focus(r){const t=this.animation;r!==t.to&&(pj(this)&&this._detach(),t.to=r,pj(this)&&this._attach())}_attach(){let r=0;const{to:t}=this.animation;Fo(t)&&(Nf(t,this),jT(t)&&(r=t.priority+1)),this.priority=r}_detach(){const{to:r}=this.animation;Fo(r)&&gv(r,this)}_set(r,t=!0){const n=Gi(r);if(!nr.und(n)){const a=Fa(this);if(!a||!Pu(n,a.getValue())){const o=TT(n);!a||a.constructor!=o?rP(this,o.create(n)):a.setValue(n),a&&Br.batchedUpdates(()=>{this._onChange(n,t)})}}return Fa(this)}_onStart(){const r=this.animation;r.changed||(r.changed=!0,Hd(this,"onStart",sa(this,Vd(this,r.to)),this))}_onChange(r,t){t||(this._onStart(),Ci(this.animation.onChange,r,this)),Ci(this.defaultProps.onChange,r,this),super._onChange(r,t)}_start(){const r=this.animation;Fa(this).reset(Gi(r.to)),r.immediate||(r.fromValues=r.values.map(t=>t.lastPosition)),ss(this)||(wj(this,!0),Ud(this)||this._resume())}_resume(){Ua.skipAnimation?this.finish():Fv.start(this)}_stop(r,t){if(ss(this)){wj(this,!1);const n=this.animation;jr(n.values,o=>{o.done=!0}),n.toValues&&(n.onChange=n.onPause=n.onResume=void 0),bv(this,{type:"idle",parent:this});const a=t?Of(this.get()):sa(this.get(),Vd(this,r??n.to));Jh(this._pendingCalls,a),n.changed&&(n.changed=!1,Hd(this,"onRest",a,this))}}}function Vd(e,r){const t=yv(r),n=yv(e.get());return Pu(n,t)}function ZV(e,r=e.loop,t=e.to){let n=Ci(r);if(n){const a=n!==!0&&Am(n),o=(a||e).reverse,i=!a||a.reset;return wv(cn({},e,{loop:r,default:!1,pause:void 0,to:!o||ET(t)?t:void 0,from:i?e.from:void 0,reset:i},a))}}function wv(e){const{to:r,from:t}=e=Am(e),n=new Set;return nr.obj(r)&&xj(r,n),nr.obj(t)&&xj(t,n),e.keys=n.size?Array.from(n):null,e}function lfe(e){const r=wv(e);return nr.und(r.default)&&(r.default=Pm(r)),r}function xj(e,r){Wa(e,(t,n)=>t!=null&&r.add(n))}const ffe=["onStart","onRest","onChange","onPause","onResume"];function Oj(e,r,t){e.animation[t]=r[t]!==NV(r,t)?FV(r[t],e.key):void 0}function Hd(e,r,...t){var n,a,o,i;(n=(a=e.animation)[r])==null||n.call(a,...t),(o=(i=e.defaultProps)[r])==null||o.call(i,...t)}const dfe=["onStart","onChange","onRest"];let pfe=1;class iP{constructor(r,t){this.id=pfe++,this.springs={},this.queue=[],this.ref=void 0,this._flush=void 0,this._initialProps=void 0,this._lastAsyncId=0,this._active=new Set,this._changed=new Set,this._started=!1,this._item=void 0,this._state={paused:!1,pauseQueue:new Set,resumeQueue:new Set,timeouts:new Set},this._events={onStart:new Map,onChange:new Map,onRest:new Map},this._onFrame=this._onFrame.bind(this),t&&(this._flush=t),r&&this.start(cn({default:!0},r))}get idle(){return!this._state.asyncTo&&Object.values(this.springs).every(r=>r.idle)}get item(){return this._item}set item(r){this._item=r}get(){const r={};return this.each((t,n)=>r[n]=t.get()),r}set(r){for(const t in r){const n=r[t];nr.und(n)||this.springs[t].set(n)}}update(r){return r&&this.queue.push(wv(r)),this}start(r){let{queue:t}=this;return r?t=Ti(r).map(wv):this.queue=[],this._flush?this._flush(this,t):(eH(this,t),IT(this,t))}stop(r,t){if(r!==!!r&&(t=r),t){const n=this.springs;jr(Ti(t),a=>n[a].stop(!!r))}else _v(this._state,this._lastAsyncId),this.each(n=>n.stop(!!r));return this}pause(r){if(nr.und(r))this.start({pause:!0});else{const t=this.springs;jr(Ti(r),n=>t[n].pause())}return this}resume(r){if(nr.und(r))this.start({pause:!1});else{const t=this.springs;jr(Ti(r),n=>t[n].resume())}return this}each(r){Wa(this.springs,r)}_onFrame(){const{onStart:r,onChange:t,onRest:n}=this._events,a=this._active.size>0,o=this._changed.size>0;(a&&!this._started||o&&!this._started)&&(this._started=!0,iv(r,([s,c])=>{c.value=this.get(),s(c,this,this._item)}));const i=!a&&this._started,u=o||i&&n.size?this.get():null;o&&t.size&&iv(t,([s,c])=>{c.value=u,s(c,this,this._item)}),i&&(this._started=!1,iv(n,([s,c])=>{c.value=u,s(c,this,this._item)}))}eventObserved(r){if(r.type=="change")this._changed.add(r.parent),r.idle||this._active.add(r.parent);else if(r.type=="idle")this._active.delete(r.parent);else return;Br.onFrame(this._onFrame)}}function IT(e,r){return Promise.all(r.map(t=>YV(e,t))).then(t=>nP(e,t))}async function YV(e,r,t){const{keys:n,to:a,from:o,loop:i,onRest:u,onResolve:s}=r,c=nr.obj(r.default)&&r.default;i&&(r.loop=!1),a===!1&&(r.to=null),o===!1&&(r.from=null);const f=nr.arr(a)||nr.fun(a)?a:void 0;f?(r.to=void 0,r.onRest=void 0,c&&(c.onRest=void 0)):jr(dfe,v=>{const b=r[v];if(nr.fun(b)){const _=e._events[v];r[v]=({finished:w,cancelled:O})=>{const C=_.get(b);C?(w||(C.finished=!1),O&&(C.cancelled=!0)):_.set(b,{value:null,finished:w||!1,cancelled:O||!1})},c&&(c[v]=r[v])}});const h=e._state;r.pause===!h.paused?(h.paused=r.pause,Jh(r.pause?h.pauseQueue:h.resumeQueue)):h.paused&&(r.pause=!0);const m=(n||Object.keys(e.springs)).map(v=>e.springs[v].start(r)),x=r.cancel===!0||NV(r,"cancel")===!0;(f||x&&h.asyncId)&&m.push(UV(++e._lastAsyncId,{props:r,state:h,actions:{pause:xT,resume:xT,start(v,b){x?(_v(h,e._lastAsyncId),b(Of(e))):(v.onRest=u,b(HV(f,v,h,e)))}}})),h.paused&&await new Promise(v=>{h.resumeQueue.add(v)});const S=nP(e,await Promise.all(m));if(i&&S.finished&&!(t&&S.noop)){const v=ZV(r,i,a);if(v)return eH(e,[v]),YV(e,v,!0)}return s&&Br.batchedUpdates(()=>s(S,e,e.item)),S}function LT(e,r){const t=cn({},e.springs);return r&&jr(Ti(r),n=>{nr.und(n.keys)&&(n=wv(n)),nr.obj(n.to)||(n=cn({},n,{to:void 0})),JV(t,n,a=>QV(a))}),XV(e,t),t}function XV(e,r){Wa(r,(t,n)=>{e.springs[n]||(e.springs[n]=t,Nf(t,e))})}function QV(e,r){const t=new GV;return t.key=e,r&&Nf(t,r),t}function JV(e,r,t){r.keys&&jr(r.keys,n=>{(e[n]||(e[n]=t(n)))._prepareNode(r)})}function eH(e,r){jr(r,t=>{JV(e.springs,t,n=>QV(n,e))})}function jm(e,r){if(e==null)return{};var t={},n=Object.keys(e),a,o;for(o=0;o=0)&&(t[a]=e[a]);return t}const hfe=["children"],zf=e=>{let{children:r}=e,t=jm(e,hfe);const n=or.useContext(Zg),a=t.pause||!!n.pause,o=t.immediate||!!n.immediate;t=Hle(()=>({pause:a,immediate:o}),[a,o]);const{Provider:i}=Zg;return or.createElement(i,{value:t},r)},Zg=vfe(zf,{});zf.Provider=Zg.Provider;zf.Consumer=Zg.Consumer;function vfe(e,r){return Object.assign(e,or.createContext(r)),e.Provider._context=e,e.Consumer._context=e,e}const qm=()=>{const e=[],r=function(a){Wle();const o=[];return jr(e,(i,u)=>{if(nr.und(a))o.push(i.start());else{const s=t(a,i,u);s&&o.push(i.start(s))}}),o};r.current=e,r.add=function(n){e.includes(n)||e.push(n)},r.delete=function(n){const a=e.indexOf(n);~a&&e.splice(a,1)},r.pause=function(){return jr(e,n=>n.pause(...arguments)),this},r.resume=function(){return jr(e,n=>n.resume(...arguments)),this},r.set=function(n){jr(e,a=>a.set(n))},r.start=function(n){const a=[];return jr(e,(o,i)=>{if(nr.und(n))a.push(o.start());else{const u=this._getProps(n,o,i);u&&a.push(o.start(u))}}),a},r.stop=function(){return jr(e,n=>n.stop(...arguments)),this},r.update=function(n){return jr(e,(a,o)=>a.update(this._getProps(n,a,o))),this};const t=function(a,o,i){return nr.fun(a)?a(i,o):a};return r._getProps=t,r};function oP(e,r,t){const n=nr.fun(r)&&r;n&&!t&&(t=[]);const a=or.useMemo(()=>n||arguments.length==3?qm():void 0,[]),o=or.useRef(0),i=eP(),u=or.useMemo(()=>({ctrls:[],queue:[],flush(_,w){const O=LT(_,w);return o.current>0&&!u.queue.length&&!Object.keys(O).some(E=>!_.springs[E])?IT(_,w):new Promise(E=>{XV(_,O),u.queue.push(()=>{E(IT(_,w))}),i()})}}),[]),s=or.useRef([...u.ctrls]),c=[],f=kT(e)||0;or.useMemo(()=>{jr(s.current.slice(e,f),_=>{PT(_,a),_.stop(!0)}),s.current.length=e,h(f,e)},[e]),or.useMemo(()=>{h(0,Math.min(f,e))},t);function h(_,w){for(let O=_;OLT(_,c[w])),x=or.useContext(zf),S=kT(x),v=x!==S&&BV(x);fs(()=>{o.current++,u.ctrls=s.current;const{queue:_}=u;_.length&&(u.queue=[],jr(_,w=>w())),jr(s.current,(w,O)=>{a?.add(w),v&&w.start({default:x});const C=c[O];C&&(zV(w,C.ref),w.ref?w.queue.push(C):w.start(C))})}),km(()=>()=>{jr(u.ctrls,_=>_.stop(!0))});const b=m.map(_=>cn({},_));return a?[b,a]:b}function rH(e,r){const t=nr.fun(e),[[n],a]=oP(1,t?e:[e],t?r||[]:r);return t||arguments.length==2?[n,a]:n}const bfe=()=>qm(),gfe=()=>or.useState(bfe)[0];function tH(e,r,t){const n=nr.fun(r)&&r;n&&!t&&(t=[]);let a=!0;const o=oP(e,(u,s)=>{const c=n?n(u,s):r;return a=a&&c.reverse,c},t||[{}]),i=o[1];return fs(()=>{jr(i.current,(u,s)=>{const c=i.current[s+(a?1:-1)];c&&u.start({to:c.springs})})},t),n||arguments.length==3?(i._getProps=(u,s,c)=>{const f=nr.fun(u)?u(c,s):u;if(f){const h=i.current[c+(f.reverse?1:-1)];return h&&(f.to=h.springs),f}},o):o[0]}let Ki;(function(e){e.MOUNT="mount",e.ENTER="enter",e.UPDATE="update",e.LEAVE="leave"})(Ki||(Ki={}));function nH(e,r,t){const n=nr.fun(r)&&r,{reset:a,sort:o,trail:i=0,expires:u=!0,onDestroyed:s,ref:c,config:f}=n?n():r,h=or.useMemo(()=>n||arguments.length==3?qm():void 0,[]),m=Ti(e),x=[],S=or.useRef(null),v=a?null:S.current;fs(()=>{S.current=x}),km(()=>()=>jr(S.current,$=>{$.expired&&clearTimeout($.expirationId),PT($.ctrl,h),$.ctrl.stop(!0)}));const b=yfe(m,n?n():r,v),_=a&&S.current||[];fs(()=>jr(_,({ctrl:$,item:B,key:U})=>{PT($,h),Ci(s,B,U)}));const w=[];if(v&&jr(v,($,B)=>{$.expired?(clearTimeout($.expirationId),_.push($)):(B=w[B]=b.indexOf($.key),~B&&(x[B]=$))}),jr(m,($,B)=>{x[B]||(x[B]={key:b[B],item:$,phase:Ki.MOUNT,ctrl:new iP},x[B].ctrl.item=$)}),w.length){let $=-1;const{leave:B}=n?n():r;jr(w,(U,V)=>{const te=v[V];~U?($=x.indexOf(te),x[$]=cn({},te,{item:m[U]})):B&&x.splice(++$,0,te)})}nr.fun(o)&&x.sort(($,B)=>o($.item,B.item));let O=-i;const C=eP(),E=Pm(r),A=new Map;jr(x,($,B)=>{const U=$.key,V=$.phase,te=n?n():r;let ne,ce,Oe=Ci(te.delay||0,U);if(V==Ki.MOUNT)ne=te.enter,ce=Ki.ENTER;else{const me=b.indexOf(U)<0;if(V!=Ki.LEAVE)if(me)ne=te.leave,ce=Ki.LEAVE;else if(ne=te.update)ce=Ki.UPDATE;else return;else if(!me)ne=te.enter,ce=Ki.ENTER;else return}if(ne=Ci(ne,$.item,B),ne=nr.obj(ne)?Am(ne):{to:ne},!ne.config){const me=f||E.config;ne.config=Ci(me,$.item,B,ce)}O+=i;const fe=cn({},E,{delay:Oe+O,ref:c,immediate:te.immediate,reset:!1},ne);if(ce==Ki.ENTER&&nr.und(fe.from)){const me=n?n():r,Ce=nr.und(me.initial)||v?me.from:me.initial;fe.from=Ci(Ce,$.item,B)}const{onResolve:ve}=fe;fe.onResolve=me=>{Ci(ve,me);const Ce=S.current,oe=Ce.find(Y=>Y.key===U);if(oe&&!(me.cancelled&&oe.phase!=Ki.UPDATE)&&oe.ctrl.idle){const Y=Ce.every(X=>X.ctrl.idle);if(oe.phase==Ki.LEAVE){const X=Ci(u,oe.item);if(X!==!1){const J=X===!0?0:X;if(oe.expired=!0,!Y&&J>0){J<=2147483647&&(oe.expirationId=setTimeout(C,J));return}}}Y&&Ce.some(X=>X.expired)&&C()}};const Re=LT($.ctrl,fe);A.set($,{phase:ce,springs:Re,payload:fe})});const P=or.useContext(zf),j=kT(P),L=P!==j&&BV(P);fs(()=>{L&&jr(x,$=>{$.ctrl.start({default:P})})},[P]),fs(()=>{jr(A,({phase:$,payload:B},U)=>{const{ctrl:V}=U;U.phase=$,h?.add(V),L&&$==Ki.ENTER&&V.start({default:P}),B&&(zV(V,B.ref),V.ref?V.update(B):V.start(B))})},a?void 0:t);const N=$=>or.createElement(or.Fragment,null,x.map((B,U)=>{const{springs:V}=A.get(B)||B.ctrl,te=$(cn({},V),B.item,B,U);return te&&te.type?or.createElement(te.type,cn({},te.props,{key:nr.str(B.key)||nr.num(B.key)?B.key:B.ctrl.id,ref:te.ref})):te}));return h?[N,h]:N}let mfe=1;function yfe(e,{key:r,keys:t=r},n){if(t===null){const a=new Set;return e.map(o=>{const i=n&&n.find(u=>u.item===o&&u.phase!==Ki.LEAVE&&!a.has(u));return i?(a.add(i),i.key):mfe++})}return nr.und(t)?e:nr.fun(t)?e.map(t):Ti(t)}const _fe=["children"];function wfe(e){let{children:r}=e,t=jm(e,_fe);return r(rH(t))}const Sfe=["items","children"];function xfe(e){let{items:r,children:t}=e,n=jm(e,Sfe);const a=tH(r.length,n);return r.map((o,i)=>{const u=t(o,i);return nr.fun(u)?u(a[i]):u})}const Ofe=["items","children"];function Cfe(e){let{items:r,children:t}=e,n=jm(e,Ofe);return nH(r,n)(t)}class Dm extends Rm{constructor(r,t){super(),this.key=void 0,this.idle=!0,this.calc=void 0,this._active=new Set,this.source=r,this.calc=Af(...t);const n=this._get(),a=TT(n);rP(this,a.create(n))}advance(r){const t=this._get(),n=this.get();Pu(t,n)||(Fa(this).setValue(t),this._onChange(t,this.idle)),!this.idle&&Cj(this._active)&&NS(this)}_get(){const r=nr.arr(this.source)?this.source.map(Gi):Ti(Gi(this.source));return this.calc(...r)}_start(){this.idle&&!Cj(this._active)&&(this.idle=!1,jr(Tm(this),r=>{r.done=!1}),Ua.skipAnimation?(Br.batchedUpdates(()=>this.advance()),NS(this)):Fv.start(this))}_attach(){let r=1;jr(Ti(this.source),t=>{Fo(t)&&Nf(t,this),jT(t)&&(t.idle||this._active.add(t),r=Math.max(r,t.priority+1))}),this.priority=r,this._start()}_detach(){jr(Ti(this.source),r=>{Fo(r)&&gv(r,this)}),this._active.clear(),NS(this)}eventObserved(r){r.type=="change"?r.idle?this.advance():(this._active.add(r.parent),this._start()):r.type=="idle"?this._active.delete(r.parent):r.type=="priority"&&(this.priority=Ti(this.source).reduce((t,n)=>Math.max(t,(jT(n)?n.priority:0)+1),0))}}function kfe(e){return e.idle!==!1}function Cj(e){return!e.size||Array.from(e).every(kfe)}function NS(e){e.idle||(e.idle=!0,jr(Tm(e),r=>{r.done=!0}),bv(e,{type:"idle",parent:e}))}const Tfe=(e,...r)=>new Dm(e,r),Efe=(e,...r)=>(MV(),new Dm(e,r));Ua.assign({createStringInterpolator:IV,to:(e,r)=>new Dm(e,r)});const Pfe=Fv.advance;function aP(e,r){if(e==null)return{};var t={},n=Object.keys(e),a,o;for(o=0;o=0)&&(t[a]=e[a]);return t}const Afe=["style","children","scrollTop","scrollLeft"],iH=/^--/;function Rfe(e,r){return r==null||typeof r=="boolean"||r===""?"":typeof r=="number"&&r!==0&&!iH.test(e)&&!(uv.hasOwnProperty(e)&&uv[e])?r+"px":(""+r).trim()}const kj={};function jfe(e,r){if(!e.nodeType||!e.setAttribute)return!1;const t=e.nodeName==="filter"||e.parentNode&&e.parentNode.nodeName==="filter",n=r,{style:a,children:o,scrollTop:i,scrollLeft:u}=n,s=aP(n,Afe),c=Object.values(s),f=Object.keys(s).map(h=>t||e.hasAttribute(h)?h:kj[h]||(kj[h]=h.replace(/([A-Z])/g,m=>"-"+m.toLowerCase())));o!==void 0&&(e.textContent=o);for(let h in a)if(a.hasOwnProperty(h)){const m=Rfe(h,a[h]);iH.test(h)?e.style.setProperty(h,m):e.style[h]=m}f.forEach((h,m)=>{e.setAttribute(h,c[m])}),i!==void 0&&(e.scrollTop=i),u!==void 0&&(e.scrollLeft=u)}let uv={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0};const qfe=(e,r)=>e+r.charAt(0).toUpperCase()+r.substring(1),Dfe=["Webkit","Ms","Moz","O"];uv=Object.keys(uv).reduce((e,r)=>(Dfe.forEach(t=>e[qfe(t,r)]=e[r]),e),uv);const Ife=["x","y","z"],Lfe=/^(matrix|translate|scale|rotate|skew)/,Mfe=/^(translate)/,$fe=/^(rotate|skew)/,BS=(e,r)=>nr.num(e)&&e!==0?e+r:e,Rg=(e,r)=>nr.arr(e)?e.every(t=>Rg(t,r)):nr.num(e)?e===r:parseFloat(e)===r;class Ffe extends Em{constructor(r){let{x:t,y:n,z:a}=r,o=aP(r,Ife);const i=[],u=[];(t||n||a)&&(i.push([t||0,n||0,a||0]),u.push(s=>[`translate3d(${s.map(c=>BS(c,"px")).join(",")})`,Rg(s,0)])),Wa(o,(s,c)=>{if(c==="transform")i.push([s||""]),u.push(f=>[f,f===""]);else if(Lfe.test(c)){if(delete o[c],nr.und(s))return;const f=Mfe.test(c)?"px":$fe.test(c)?"deg":"";i.push(Ti(s)),u.push(c==="rotate3d"?([h,m,x,S])=>[`rotate3d(${h},${m},${x},${BS(S,f)})`,Rg(S,0)]:h=>[`${c}(${h.map(m=>BS(m,f)).join(",")})`,Rg(h,c.startsWith("scale")?1:0)])}}),i.length&&(o.transform=new Nfe(i,u)),super(o)}}class Nfe extends qV{constructor(r,t){super(),this._value=null,this.inputs=r,this.transforms=t}get(){return this._value||(this._value=this._get())}_get(){let r="",t=!0;return jr(this.inputs,(n,a)=>{const o=Gi(n[0]),[i,u]=this.transforms[a](nr.arr(o)?o:n.map(Gi));r+=" "+i,t=t&&u}),t?"none":r}observerAdded(r){r==1&&jr(this.inputs,t=>jr(t,n=>Fo(n)&&Nf(n,this)))}observerRemoved(r){r==0&&jr(this.inputs,t=>jr(t,n=>Fo(n)&&gv(n,this)))}eventObserved(r){r.type=="change"&&(this._value=null),bv(this,r)}}const Bfe=["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"],zfe=["scrollTop","scrollLeft"];Ua.assign({batchedUpdates:wW.unstable_batchedUpdates,createStringInterpolator:IV,colors:Ole});const Wfe=Jle(Bfe,{applyAnimatedValues:jfe,createAnimatedStyle:e=>new Ffe(e),getComponentProps:e=>aP(e,zfe)}),Tj=Wfe.animated,Ufe=Object.freeze(Object.defineProperty({__proto__:null,BailSignal:RT,Controller:iP,FrameValue:Rm,Globals:Ua,Interpolation:Dm,Spring:wfe,SpringContext:zf,SpringRef:qm,SpringValue:GV,Trail:xfe,Transition:Cfe,a:Tj,animated:Tj,config:WV,createInterpolator:Af,inferTo:Am,interpolate:Efe,to:Tfe,update:Pfe,useChain:ife,useSpring:rH,useSpringRef:gfe,useSprings:oP,useTrail:tH,useTransition:nH},Symbol.toStringTag,{value:"Module"})),Im=Xg(Ufe);var zS={exports:{}},Ej;function oH(){return Ej||(Ej=1,(()=>{var e={};e.n=C=>{var E=C&&C.__esModule?()=>C.default:()=>C;return e.d(E,{a:E}),E},e.d=(C,E)=>{for(var A in E)e.o(E,A)&&!e.o(C,A)&&Object.defineProperty(C,A,{enumerable:!0,get:E[A]})},e.o=(C,E)=>Object.prototype.hasOwnProperty.call(C,E),e.r=C=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(C,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(C,"__esModule",{value:!0})};var r={};e.r(r),e.d(r,{AnimationToggleContext:()=>i,AnimationToggleProvider:()=>O,default:()=>_,useAnimationToggle:()=>x});const t=Or();var n=e.n(t);const a=Wt();var o=e.n(a),i=n().createContext(!0);function u(C,E){return m(C)||h(C,E)||c(C,E)||s()}function s(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function c(C,E){if(C){if(typeof C=="string")return f(C,E);var A={}.toString.call(C).slice(8,-1);return A==="Object"&&C.constructor&&(A=C.constructor.name),A==="Map"||A==="Set"?Array.from(C):A==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(A)?f(C,E):void 0}}function f(C,E){(E==null||E>C.length)&&(E=C.length);for(var A=0,P=Array(E);A{var e={};e.d=(S,v)=>{for(var b in v)e.o(v,b)&&!e.o(S,b)&&Object.defineProperty(S,b,{enumerable:!0,get:v[b]})},e.o=(S,v)=>Object.prototype.hasOwnProperty.call(S,v),e.r=S=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(S,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(S,"__esModule",{value:!0})};var r={};e.r(r),e.d(r,{Spring:()=>m,Transition:()=>x});const t=Im,n=oH();function a(S){"@babel/helpers - typeof";return a=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(v){return typeof v}:function(v){return v&&typeof Symbol=="function"&&v.constructor===Symbol&&v!==Symbol.prototype?"symbol":typeof v},a(S)}function o(S,v){var b=Object.keys(S);if(Object.getOwnPropertySymbols){var _=Object.getOwnPropertySymbols(S);v&&(_=_.filter(function(w){return Object.getOwnPropertyDescriptor(S,w).enumerable})),b.push.apply(b,_)}return b}function i(S){for(var v=1;v{var e={};e.n=h=>{var m=h&&h.__esModule?()=>h.default:()=>h;return e.d(m,{a:m}),m},e.d=(h,m)=>{for(var x in m)e.o(m,x)&&!e.o(h,x)&&Object.defineProperty(h,x,{enumerable:!0,get:m[x]})},e.o=(h,m)=>Object.prototype.hasOwnProperty.call(h,m),e.r=h=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(h,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(h,"__esModule",{value:!0})};var r={};e.r(r),e.d(r,{default:()=>f});const t=Or();var n=e.n(t);const a=Wt();var o=e.n(a);const i=mW;var u=e.n(i),s={children:o().node,target:o().oneOfType([o().object,o().string]),eventType:o().any,listener:o().func,options:o().oneOfType([o().object,o().bool])};function c(h){var m=h.children,x=h.target,S=h.eventType,v=h.listener,b=h.options;return u()(x,S,v,b),n().createElement(n().Fragment,null,m||null)}c.propTypes=s;const f=c;US.exports=r})()),US.exports}var VS={},HS={},vc={},KS={},GS={},ZS={},Rj;function uP(){return Rj||(Rj=1,function(e){function r(te){"@babel/helpers - typeof";return r=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(ne){return typeof ne}:function(ne){return ne&&typeof Symbol=="function"&&ne.constructor===Symbol&&ne!==Symbol.prototype?"symbol":typeof ne},r(te)}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;function t(te,ne){var ce=Object.keys(te);if(Object.getOwnPropertySymbols){var Oe=Object.getOwnPropertySymbols(te);ne&&(Oe=Oe.filter(function(fe){return Object.getOwnPropertyDescriptor(te,fe).enumerable})),ce.push.apply(ce,Oe)}return ce}function n(te){for(var ne=1;ne0&&arguments[0]!==void 0?arguments[0]:{},_=(0,a.addThemeDefaults)(b),w=_.family,O=_.colorScheme,C=_.density,E=w==="prisma",A=w==="enterprise",P=C==="comfortable",j=C==="compact",L=O==="dark",N=O==="light";return Object.freeze(s({colorScheme:O,density:C,family:w,isPrisma:E,isEnterprise:A,isComfortable:P,isCompact:j,isDark:L,isLight:N},w==="enterprise"?(0,t.default)({colorScheme:O,density:C}):(0,n.default)({colorScheme:O,density:C})))}var x=(0,r.default)(m,function(){var b=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},_=b.family,w=b.colorScheme,O=b.density;return"".concat(_).concat(w).concat(O)}),S=function(){var _,w;return(_=(w=x.cache).clear)===null||_===void 0?void 0:_.call(w)};e.clearGetThemeCache=S;var v=x;e.default=v}(KS)),KS}var Vj;function Uc(){if(Vj)return vc;Vj=1,Object.defineProperty(vc,"__esModule",{value:!0}),vc.getCustomizedTheme=vc.addThemeDefaults=void 0;var e=t(qu()),r=t(sP());function t(i){return i&&i.__esModule?i:{default:i}}var n=function(){var u=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},s=u.family,c=s===void 0?"prisma":s,f=u.colorScheme,h=f===void 0?"dark":f,m=u.density,x=m===void 0?"comfortable":m,S=u.isPrisma,v=S===void 0?!0:S,b=u.isEnterprise,_=b===void 0?!1:b,w=u.isComfortable,O=w===void 0?!0:w,C=u.isCompact,E=C===void 0?!1:C,A=u.isDark,P=A===void 0?!0:A,j=u.isLight,L=j===void 0?!1:j;return{family:c,colorScheme:h,density:x,isPrisma:v,isEnterprise:_,isComfortable:O,isCompact:E,isDark:P,isLight:L}};vc.addThemeDefaults=n;function a(i,u){var s=(0,r.default)(i);return u?u(s):s}var o=(0,e.default)(a,function(){var i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},u=i.family,s=i.colorScheme,c=i.density,f=arguments.length>1?arguments[1]:void 0;return"".concat(u,"-").concat(s,"-").concat(c,"-").concat(!!f)});return vc.getCustomizedTheme=o,vc}var Hj;function Qfe(){return Hj||(Hj=1,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var r=Uc();function t(a){var o,i=((o=a.theme)===null||o===void 0?void 0:o.splunkThemeV1)||{},u=i.family,s=i.colorScheme,c=i.density;return(0,r.addThemeDefaults)({family:u,colorScheme:s,density:c})}var n=t;e.default=n}(HS)),HS}var ux={},sx={},cx={},Kj;function cP(){return Kj||(Kj=1,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.clearVariablesCache=e.default=void 0;var r=a(qu()),t=a(sP()),n=Uc();function a(w){return w&&w.__esModule?w:{default:w}}function o(w){"@babel/helpers - typeof";return o=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(O){return typeof O}:function(O){return O&&typeof Symbol=="function"&&O.constructor===Symbol&&O!==Symbol.prototype?"symbol":typeof O},o(w)}function i(w,O){var C=Object.keys(w);if(Object.getOwnPropertySymbols){var E=Object.getOwnPropertySymbols(w);O&&(E=E.filter(function(A){return Object.getOwnPropertyDescriptor(w,A).enumerable})),C.push.apply(C,E)}return C}function u(w){for(var O=1;O0&&arguments[0]!==void 0?arguments[0]:"inline";return function(){return(0,t.css)(u(),(0,o.default)({dark:"dark",light:"light"}),(0,o.default)({enterprise:a.default.textColor,prisma:a.default.contentColorDefault}),E,a.default.fontFamily,a.default.fontSize,a.default.lineHeight,a.default.focusColor)}};e.reset=c;function f(){return{"&::after":{display:"table",content:'""',clear:"both"}}}function h(){return{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}}function m(){return{maxWidth:"100% !important",width:"100% !important",overflow:"hidden !important"}}function x(){return{display:"none !important"}}function S(){return{background:"none !important"}}function v(){return{wordBreak:"break-all !important",wordWrap:"break-word !important",overflowWrap:"break-word !important",whiteSpace:"normal !important"}}function b(){return{position:"absolute",overflow:"hidden",clip:"rect(0 0 0 0)",height:"1px",width:"1px",margin:"-1px",padding:0,border:0}}function _(C,E){return function(A){var P=typeof C=="function"?C(A):C,j=typeof E=="function"?E(A):E,L=(0,n.normal)((0,r.default)(P).toRgb(),(0,r.default)(j).toRgb());return(0,r.default)(L).toRgbString()}}function w(C,E){return function(A){var P=typeof C=="function"?C(A):C;return(0,r.default)(P).setAlpha(E).toRgbString()}}var O={reset:c,clearfix:f,ellipsis:h,printWidth100Percent:m,printHide:x,printNoBackground:S,printWrapAll:v,screenReaderContent:b,colorWithAlpha:w,overlayColors:_};e.default=O}(sx)),sx}var fx={},Yj;function ede(){return Yj||(Yj=1,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.typographyVariants=e.default=void 0;var r=ft,t=o(rE()),n=o(cP()),a=o(Lm());function o(P){return P&&P.__esModule?P:{default:P}}function i(){var P=s([` + margin: 0; + padding: 0; + `]);return i=function(){return P},P}function u(){var P=s([` + `,` + + color: `,`; + font-family: `,`; + font-size: `,`; + font-weight: `,`; + line-height: `,`; + `]);return u=function(){return P},P}function s(P,j){return j||(j=P.slice(0)),Object.freeze(Object.defineProperties(P,{raw:{value:Object.freeze(j)}}))}function c(P,j){var L=Object.keys(P);if(Object.getOwnPropertySymbols){var N=Object.getOwnPropertySymbols(P);j&&(N=N.filter(function($){return Object.getOwnPropertyDescriptor(P,$).enumerable})),L.push.apply(L,N)}return L}function f(P){for(var j=1;j{var e={};e.n=F=>{var K=F&&F.__esModule?()=>F.default:()=>F;return e.d(K,{a:K}),K},e.d=(F,K)=>{for(var ee in K)e.o(K,ee)&&!e.o(F,ee)&&Object.defineProperty(F,ee,{enumerable:!0,get:K[ee]})},e.g=function(){if(typeof globalThis=="object")return globalThis;try{return this||new Function("return this")()}catch{if(typeof window=="object")return window}}(),e.o=(F,K)=>Object.prototype.hasOwnProperty.call(F,K),e.r=F=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(F,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(F,"__esModule",{value:!0})};var r={};e.r(r),e.d(r,{LayerContext:()=>b,LayerStackContext:()=>v,LayerStackGlobalProvider:()=>w,default:()=>M});const t=Or();var n=e.n(t);const a=Ov(),o=Wt();var i=e.n(o);const u=Av();var s=e.n(u);const c=aE();var f=e.n(c);const h=gW();var m=e.n(h);const x=uH();var S=e.n(x),v=n().createContext([]),b=n().createContext({}),_={children:i().node,name:i().string,scope:i().object,separateStackingContexts:i().bool};function w(F){var K=F.children,ee=F.name,ie=ee===void 0?"__splunkui_layer_instances__":ee,ke=F.scope,_e=ke===void 0?typeof window<"u"?window:e.g:ke,Ke=F.separateStackingContexts,ge=Ke===void 0?!1:Ke;_e[ie]||(_e[ie]=[]);var ye=(0,t.useMemo)(function(){return{separateStackingContexts:ge}},[ge]);return n().createElement(v.Provider,{value:_e[ie]},n().createElement(b.Provider,{value:ye},K))}w.propTypes=_;const O=ft;var C=e.n(O);const E=Ji();var A=C().div.withConfig({displayName:"LayerStyles__StyledLayer",componentId:"ii6psl-0"})(["",""],function(F){var K=F.$separateStackingContexts;return K&&(0,O.css)(["isolation:isolate;position:relative;z-index:",";"],E.variables.zindexLayer)}),P={body:{appendChild:function(){return[]}},addEventListener:function(){},removeEventListener:function(){},activeElement:{blur:function(){},nodeName:""},querySelector:function(){return null},querySelectorAll:function(){return[]},getElementById:function(){return null},createEvent:function(){return{initEvent:function(){}}},createElement:function(){return{children:[],childNodes:[],style:{},setAttribute:function(){},getElementsByTagName:function(){return[]}}},createElementNS:function(){return{}},importNode:function(){return null},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""}};function j(){var F=typeof document<"u"?document:P;return F}var L={document:P,navigator:{userAgent:""},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""},history:{replaceState:function(){},pushState:function(){},go:function(){},back:function(){}},CustomEvent:function(){return this},addEventListener:function(){},removeEventListener:function(){},getComputedStyle:function(){return{getPropertyValue:function(){return""}}},Image:function(){},Date:function(){},screen:{},setTimeout:function(){},clearTimeout:function(){},matchMedia:function(){return{}},requestAnimationFrame:function(K){return typeof setTimeout>"u"?(K(),null):setTimeout(K,0)},cancelAnimationFrame:function(K){typeof setTimeout>"u"||clearTimeout(K)}};function N(){var F=typeof window<"u"?window:L;return F}var $=N();const B=$;function U(F){"@babel/helpers - typeof";return U=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(K){return typeof K}:function(K){return K&&typeof Symbol=="function"&&K.constructor===Symbol&&K!==Symbol.prototype?"symbol":typeof K},U(F)}function V(F,K){if(!(F instanceof K))throw new TypeError("Cannot call a class as a function")}function te(F,K){for(var ee=0;ee{var e={};e.n=fe=>{var ve=fe&&fe.__esModule?()=>fe.default:()=>fe;return e.d(ve,{a:ve}),ve},e.d=(fe,ve)=>{for(var Re in ve)e.o(ve,Re)&&!e.o(fe,Re)&&Object.defineProperty(fe,Re,{enumerable:!0,get:ve[Re]})},e.o=(fe,ve)=>Object.prototype.hasOwnProperty.call(fe,ve),e.r=fe=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(fe,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(fe,"__esModule",{value:!0})};var r={};e.r(r),e.d(r,{default:()=>Oe});const t=Or();var n=e.n(t);const a=Wt();var o=e.n(a);const i=aH(),u=pH();var s=e.n(u);const c=ft;var f=e.n(c);const h=Im,m=Ji();var x=(0,c.css)(["",";position:fixed;top:0;right:0;bottom:0;left:0;"],m.mixins.reset("block")),S=f()(h.animated.div).withConfig({displayName:"ModalLayerStyles__StyledClickAwayOverlay",componentId:"sc-1sa3n1j-0"})(["",";background-color:",";z-index:",";"],x,m.variables.backgroundColorScrim,m.variables.zindexModalBackdrop);function v(fe){"@babel/helpers - typeof";return v=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(ve){return typeof ve}:function(ve){return ve&&typeof Symbol=="function"&&ve.constructor===Symbol&&ve!==Symbol.prototype?"symbol":typeof ve},v(fe)}function b(fe,ve){var Re=Object.keys(fe);if(Object.getOwnPropertySymbols){var me=Object.getOwnPropertySymbols(fe);ve&&(me=me.filter(function(Ce){return Object.getOwnPropertyDescriptor(fe,Ce).enumerable})),Re.push.apply(Re,me)}return Re}function _(fe){for(var ve=1;ven||u&&s&&f&&!c&&!h||o&&s&&f||!a&&f||!i)return 1;if(!o&&!u&&!h&&t=c)return f;var h=a[o];return f*(h=="desc"?-1:1)}}return t.index-n.index}return Cx=r,Cx}var kx,vq;function bde(){if(vq)return kx;vq=1;var e=Ss(),r=vm(),t=Ff(),n=dde(),a=pde(),o=Bc(),i=vde(),u=cm(),s=Hn();function c(f,h,m){h.length?h=e(h,function(v){return s(v)?function(b){return r(b,v.length===1?v[0]:v)}:v}):h=[u];var x=-1;h=e(h,o(t));var S=n(f,function(v,b,_){var w=e(h,function(O){return O(v)});return{criteria:w,index:++x,value:v}});return a(S,function(v,b){return i(v,b,m)})}return kx=c,kx}var Tx,bq;function gde(){if(bq)return Tx;bq=1;var e=HE(),r=bde(),t=If(),n=eE(),a=t(function(o,i){if(o==null)return[];var u=i.length;return u>1&&n(o,i[0],i[1])?i=[]:u>2&&n(i[0],i[1],i[2])&&(i=[i[0]]),r(o,e(i,1),[])});return Tx=a,Tx}var gq;function hH(){if(gq)return ii;gq=1,Object.defineProperty(ii,"__esModule",{value:!0}),ii.getSortedTabbableElements=f,ii.isTabKey=h,ii.handleTab=m,ii.takeFocus=x,ii.handleFocus=w,ii.updateTabIndex=ii.getNewIndex=ii.calculateIndex=ii.isHidden=void 0;var e=n(VE()),r=n(fde()),t=n(gde());function n(O){return O&&O.__esModule?O:{default:O}}var a=["a[href]","input:not([disabled])","select:not([disabled])","textarea:not([disabled])","button:not([disabled])","[contenteditable]"],o=a.concat(["[tabindex]"]),i=function(C){var E=window.getComputedStyle(C);return E.display!=="none"&&E.visibility!=="hidden"},u=function(C){return!C.hasAttribute("hidden")},s=function(C){var E=i(C),A=u(C);return E&&A},c=function(C){var E=C.getClientRects().length>0&&(C.offsetWidth===0||C.offsetHeight===0);return E||!s(C)};ii.isHidden=c;function f(O){var C=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},E=C.ignoreTabIndex,A=(E?a:o).join(", "),P=O.querySelectorAll(A),j=(0,r.default)(P,function(N){var $=E||N.tabIndex>=0;return!c(N)&&$||N===document.activeElement}),L=j.reduce(function(N,$){var B=N[N.length-1],U=B?.getAttribute("type")==="radio",V=$.getAttribute("type")==="radio",te=$.getAttribute("name")===B?.getAttribute("name");return U&&V&&te?$.checked&&(N.pop(),N.push($)):N.push($),N},[]);return(0,t.default)(L,function(N){return N.tabIndex>0?-1/N.tabIndex:0})}function h(O){return!(O.key!=="Tab"||O.metaKey||O.altKey||O.controlKey)}function m(O,C){if(!O.contains(document.activeElement)||!h(C))return null;var E=f(O);if(E.length===0)return document.activeElement===O?(C.preventDefault(),O):null;var A=C&&C.target||O.querySelector(":focus"),P=E.indexOf(A);return P===-1&&(P=C.shiftKey?0:E.length-1),C.shiftKey?E.unshift(E.pop()):E.push(E.shift()),C.preventDefault(),E[P].focus(),E[P]}function x(O){var C=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"first",E=O.querySelector(":focus");if(E)return E;if(C==="first"){var A=f(O)[0];if(A)return(0,e.default)(function(){return A.focus()}),A}return O.hasAttribute("tabIndex")?((0,e.default)(function(){return O.focus()}),O):null}var S=Object.freeze({NONE:"none",NEXT:"next",PREVIOUS:"previous"}),v=function(C){var E=C.itemsLength,A=C.currentIndex,P=C.direction,j=C.enableLoop;if(P===S.NONE||![S.NONE,S.NEXT,S.PREVIOUS].includes(P))return A;var L=P===S.NEXT?1:-1;if(!j){var N=A+L;return N>=E||N<0?A:N}return(A+L+E)%E};ii.calculateIndex=v;var b=function(C,E,A,P){var j=P.enableLoop,L=P.orientation,N=P.enableTab,$=P.enableHomeEnd;if(A<0||A>=E)return 0;if(C==="Home")return $?0:-1;if(C==="End")return $?E-1:-1;var B=S.NONE;return L==="horizontal"?(C==="ArrowLeft"&&(B=S.PREVIOUS),C==="ArrowRight"&&(B=S.NEXT)):L==="vertical"&&(C==="ArrowUp"&&(B=S.PREVIOUS),C==="ArrowDown"&&(B=S.NEXT)),N&&(C==="tabShift"&&(B=S.PREVIOUS),C==="Tab"&&(B=S.NEXT)),B!==S.NONE?v({itemsLength:E,currentIndex:A,direction:B,enableLoop:j}):-1};ii.getNewIndex=b;var _=function(C,E){E.forEach(function(A,P){return A.setAttribute("tabindex",P===C?"0":"-1")})};ii.updateTabIndex=_;function w(O,C,E){var A=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},P=A.enableLoop,j=P===void 0?!1:P,L=A.orientation,N=L===void 0?"horizontal":L,$=A.enableTab,B=$===void 0?!1:$,U=A.enableHomeEnd,V=U===void 0?!0:U,te=C.length;if(!B&&O==="Tab"){_(0,C);return}var ne=b(O,te,E,{enableLoop:j,orientation:N,enableTab:B,enableHomeEnd:V});if(ne>=0&&ne0&&arguments[0]!==void 0?arguments[0]:"id";if(t.match(/^[a-zA-Z][\w-]*$/))return"".concat(t,"-").concat(e());throw new Error("createDOMID: Prefix must start with a letter and may only contain letters, digits, hyphens and underscores")}return Kd}var Ex={exports:{}},yq;function bH(){return yq||(yq=1,(()=>{var e={};e.n=f=>{var h=f&&f.__esModule?()=>f.default:()=>f;return e.d(h,{a:h}),h},e.d=(f,h)=>{for(var m in h)e.o(h,m)&&!e.o(f,m)&&Object.defineProperty(f,m,{enumerable:!0,get:h[m]})},e.o=(f,h)=>Object.prototype.hasOwnProperty.call(f,h),e.r=f=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(f,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(f,"__esModule",{value:!0})};var r={};e.r(r),e.d(r,{ScrollContainerContext:()=>u,ScrollContainerProvider:()=>s,default:()=>c});const t=Or();var n=e.n(t),a={body:{appendChild:function(){return[]}},addEventListener:function(){},removeEventListener:function(){},activeElement:{blur:function(){},nodeName:""},querySelector:function(){return null},querySelectorAll:function(){return[]},getElementById:function(){return null},createEvent:function(){return{initEvent:function(){}}},createElement:function(){return{children:[],childNodes:[],style:{},setAttribute:function(){},getElementsByTagName:function(){return[]}}},createElementNS:function(){return{}},importNode:function(){return null},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""}},o={document:a,navigator:{userAgent:""},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""},history:{replaceState:function(){},pushState:function(){},go:function(){},back:function(){}},CustomEvent:function(){return this},addEventListener:function(){},removeEventListener:function(){},getComputedStyle:function(){return{getPropertyValue:function(){return""}}},Image:function(){},Date:function(){},screen:{},setTimeout:function(){},clearTimeout:function(){},matchMedia:function(){return{}},requestAnimationFrame:function(h){return typeof setTimeout>"u"?(h(),null):setTimeout(h,0)},cancelAnimationFrame:function(h){typeof setTimeout>"u"||clearTimeout(h)}};function i(){var f=typeof window<"u"?window:o;return f}var u=n().createContext(i()),s=u.Provider;const c=u;Ex.exports=r})()),Ex.exports}var Px={exports:{}},_q;function fP(){return _q||(_q=1,(()=>{var e={};e.n=b=>{var _=b&&b.__esModule?()=>b.default:()=>b;return e.d(_,{a:_}),_},e.d=(b,_)=>{for(var w in _)e.o(_,w)&&!e.o(b,w)&&Object.defineProperty(b,w,{enumerable:!0,get:_[w]})},e.o=(b,_)=>Object.prototype.hasOwnProperty.call(b,_),e.r=b=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(b,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(b,"__esModule",{value:!0})};var r={};e.r(r),e.d(r,{default:()=>v});const t=Or();var n=e.n(t);const a=Wt();var o=e.n(a);const i=ft;var u=e.n(i);const s=Ji();var c=u().div.withConfig({displayName:"BoxStyles__Styled",componentId:"sc-1h4b5f6-0"})(["",";align-items:stretch;align-content:stretch;flex-flow:row nowrap;flex-grow:0;flex-shrink:0;justify-content:flex-start;width:auto;max-width:100%;@media all and (-ms-high-contrast:none){max-width:calc(100% - 0.01px);}&[data-inline]{display:inline-block;vertical-align:middle;}&[data-flex]{display:flex;}&[data-flex][data-inline]{display:inline-flex;}"],s.mixins.reset("block"));function f(){return f=Object.assign?Object.assign.bind():function(b){for(var _=1;_{var e={};e.n=A=>{var P=A&&A.__esModule?()=>A.default:()=>A;return e.d(P,{a:P}),P},e.d=(A,P)=>{for(var j in P)e.o(P,j)&&!e.o(A,j)&&Object.defineProperty(A,j,{enumerable:!0,get:P[j]})},e.o=(A,P)=>Object.prototype.hasOwnProperty.call(A,P),e.r=A=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(A,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(A,"__esModule",{value:!0})};var r={};e.r(r),e.d(r,{default:()=>E});const t=Or();var n=e.n(t);const a=Wt();var o=e.n(a);const i=ft;var u=e.n(i);const s=Ji();var c=u().hr.withConfig({displayName:"DividerStyles__StyledRule",componentId:"gl6kyz-0"})(["",";",";border-color:",";"],s.mixins.reset("block"),(0,s.pickVariant)("$orientation",{horizontal:(0,i.css)(["border-top-style:solid;border-width:1px;"]),vertical:(0,i.css)(["display:inline;border-left-style:solid;border-width:1px;"])}),(0,s.pick)({enterprise:s.variables.borderColor,prisma:s.variables.neutral200}));function f(A){"@babel/helpers - typeof";return f=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(P){return typeof P}:function(P){return P&&typeof Symbol=="function"&&P.constructor===Symbol&&P!==Symbol.prototype?"symbol":typeof P},f(A)}function h(){return h=Object.assign?Object.assign.bind():function(A){for(var P=1;P{var e={80023:a=>{a.exports=Wt()},99497:a=>{a.exports=Or()}},r={};function t(a){var o=r[a];if(o!==void 0)return o.exports;var i=r[a]={exports:{}};return e[a](i,i.exports,t),i.exports}t.n=a=>{var o=a&&a.__esModule?()=>a.default:()=>a;return t.d(o,{a:o}),o},t.d=(a,o)=>{for(var i in o)t.o(o,i)&&!t.o(a,i)&&Object.defineProperty(a,i,{enumerable:!0,get:o[i]})},t.o=(a,o)=>Object.prototype.hasOwnProperty.call(a,o),t.r=a=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(a,"__esModule",{value:!0})};var n={};(()=>{t.r(n),t.d(n,{default:()=>_});var a=t(99497),o=t.n(a),i=t(80023),u=t.n(i);const s=ft;var c=t.n(s);function f(){return f=Object.assign?Object.assign.bind():function(w){for(var O=1;O{var e={42519:(a,o,i)=>{i.d(o,{default:()=>C});var u=i(99497),s=i.n(u),c=i(80023),f=i.n(c);const h=ft;var m=i.n(h);function x(){return x=Object.assign?Object.assign.bind():function(E){for(var A=1;A{a.exports=Wt()},99497:a=>{a.exports=Or()}},r={};function t(a){var o=r[a];if(o!==void 0)return o.exports;var i=r[a]={exports:{}};return e[a](i,i.exports,t),i.exports}t.n=a=>{var o=a&&a.__esModule?()=>a.default:()=>a;return t.d(o,{a:o}),o},t.d=(a,o)=>{for(var i in o)t.o(o,i)&&!t.o(a,i)&&Object.defineProperty(a,i,{enumerable:!0,get:o[i]})},t.o=(a,o)=>Object.prototype.hasOwnProperty.call(a,o),t.r=a=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(a,"__esModule",{value:!0})};var n={};(()=>{t.r(n),t.d(n,{IconContext:()=>w,IconProvider:()=>O,default:()=>C});var a=t(99497),o=t.n(a),i=t(80023),u=t.n(i),s=t(42519);function c(E,A){return S(E)||x(E,A)||h(E,A)||f()}function f(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function h(E,A){if(E){if(typeof E=="string")return m(E,A);var P={}.toString.call(E).slice(8,-1);return P==="Object"&&E.constructor&&(P=E.constructor.name),P==="Map"||P==="Set"?Array.from(E):P==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(P)?m(E,A):void 0}}function m(E,A){(A==null||A>E.length)&&(A=E.length);for(var P=0,j=Array(A);P{var e={};e.n=v=>{var b=v&&v.__esModule?()=>v.default:()=>v;return e.d(b,{a:b}),b},e.d=(v,b)=>{for(var _ in b)e.o(b,_)&&!e.o(v,_)&&Object.defineProperty(v,_,{enumerable:!0,get:b[_]})},e.o=(v,b)=>Object.prototype.hasOwnProperty.call(v,b),e.r=v=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(v,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(v,"__esModule",{value:!0})};var r={};e.r(r),e.d(r,{default:()=>S});const t=Or();var n=e.n(t);const a=Os();var o=e.n(a);const i=Cs();function u(v,b){if(v==null)return{};var _,w,O=s(v,b);if(Object.getOwnPropertySymbols){var C=Object.getOwnPropertySymbols(v);for(w=0;w=0},m=function(b){return b==="default"||b&&!h(b)?"outlined":b},x=function(b){var _=b.children,w=b.variant,O=w===void 0?"default":w,C=u(b,["children","variant"]),E=m(O),A="cross-".concat(E),P=(0,t.useContext)(i.IconContext),j=c.get(E);if(P&&j){var L=P.toRender,N=P.addIcon;if(N(A,j()),!L)return null}return n().createElement(o(),C,_,P?n().createElement("use",{href:"#".concat(A)}):!!j&&j())};const S=x;Rx.exports=r})()),Rx.exports}var Dx={exports:{}},bc={},Cq;function Ei(){if(Cq)return bc;Cq=1,Object.defineProperty(bc,"__esModule",{value:!0}),bc.gettext=r,bc._=t,bc.setSharedTranslator=n,bc.resetSharedTranslator=a;var e;function r(){return e.apply(void 0,arguments)}function t(){return e.apply(void 0,arguments)}function n(o){e=o}function a(){n(typeof window<"u"&&window.gettext||function(o){return o})}return a(),bc}var Ix={exports:{}},Lx={exports:{}},Mx={exports:{}},$x,kq;function gH(){if(kq)return $x;kq=1;function e(r){return r===void 0}return $x=e,$x}var Tq;function yde(){return Tq||(Tq=1,(()=>{var e={};e.n=C=>{var E=C&&C.__esModule?()=>C.default:()=>C;return e.d(E,{a:E}),E},e.d=(C,E)=>{for(var A in E)e.o(E,A)&&!e.o(C,A)&&Object.defineProperty(C,A,{enumerable:!0,get:E[A]})},e.o=(C,E)=>Object.prototype.hasOwnProperty.call(C,E),e.r=C=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(C,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(C,"__esModule",{value:!0})};var r={};e.r(r),e.d(r,{default:()=>O});const t=Or();var n=e.n(t);const a=Wt();var o=e.n(a);const i=gH();var u=e.n(i);const s=pm();var c=e.n(s);const f=ft;var h=e.n(f);function m(){return m=Object.assign?Object.assign.bind():function(C){for(var E=1;E{var e={};e.n=_=>{var w=_&&_.__esModule?()=>_.default:()=>_;return e.d(w,{a:w}),w},e.d=(_,w)=>{for(var O in w)e.o(w,O)&&!e.o(_,O)&&Object.defineProperty(_,O,{enumerable:!0,get:w[O]})},e.o=(_,w)=>Object.prototype.hasOwnProperty.call(_,w),e.r=_=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(_,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(_,"__esModule",{value:!0})};var r={};e.r(r),e.d(r,{default:()=>b});const t=Or();var n=e.n(t);const a=Wt();var o=e.n(a);const i=ft;var u=e.n(i);const s=yde();var c=e.n(s);function f(){return f=Object.assign?Object.assign.bind():function(_){for(var w=1;w{var e={};e.n=c=>{var f=c&&c.__esModule?()=>c.default:()=>c;return e.d(f,{a:f}),f},e.d=(c,f)=>{for(var h in f)e.o(f,h)&&!e.o(c,h)&&Object.defineProperty(c,h,{enumerable:!0,get:f[h]})},e.o=(c,f)=>Object.prototype.hasOwnProperty.call(c,f),e.r=c=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(c,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(c,"__esModule",{value:!0})};var r={};e.r(r),e.d(r,{default:()=>s});const t=Or();var n=e.n(t);const a=Ei(),o=Vc();var i=e.n(o);function u(){return u=Object.assign?Object.assign.bind():function(c){for(var f=1;f{var e={};e.n=c=>{var f=c&&c.__esModule?()=>c.default:()=>c;return e.d(f,{a:f}),f},e.d=(c,f)=>{for(var h in f)e.o(f,h)&&!e.o(c,h)&&Object.defineProperty(c,h,{enumerable:!0,get:f[h]})},e.o=(c,f)=>Object.prototype.hasOwnProperty.call(c,f),e.r=c=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(c,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(c,"__esModule",{value:!0})};var r={};e.r(r),e.d(r,{default:()=>s});const t=Or();var n=e.n(t);const a=Ei(),o=_de();var i=e.n(o);function u(){return u=Object.assign?Object.assign.bind():function(c){for(var f=1;f=0}return x>=48&&x<=57||x>=96&&x<=105}function u(h){var m=h.key,x=h.keyCode,S=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},v=S.locale,b=v===void 0?"en-US":v,_=new Intl.NumberFormat(b.replace("_","-")).format(1.2),w=_.indexOf(",")>-1?",":".";return o(m)?m===w||m==="Decimal":w==="."&&x===a("numpad .")?!0:x===a(w)}function s(h){var m=h.key,x=h.keyCode;return o(m)?m==="-"||m==="Subtract":x===a("numpad -")||x===a("-")}function c(h,m){return i(h)||u(h,m)||s(h)}function f(h){var m=h.key;if(o(m)){var x=["Add","Decimal","Divide","Multiply","Spacebar","Subtract"];return m.length===1||x.indexOf(m)>=0}}return Eu}var Vx={exports:{}},Hx,Lq;function yH(){if(Lq)return Hx;Lq=1;function e(r,t,n){return r===r&&(n!==void 0&&(r=r<=n?r:n),t!==void 0&&(r=r>=t?r:t)),r}return Hx=e,Hx}var Kx,Mq;function Ode(){if(Mq)return Kx;Mq=1;var e=yH(),r=iE();function t(n,a,o){return o===void 0&&(o=a,a=void 0),o!==void 0&&(o=r(o),o=o===o?o:0),a!==void 0&&(a=r(a),a=a===a?a:0),e(r(n),a,o)}return Kx=t,Kx}var Gx,$q;function Cde(){if($q)return Gx;$q=1;function e(r,t){for(var n=-1,a=r==null?0:r.length;++n-1}return Xx=r,Xx}var Qx,zq;function wH(){if(zq)return Qx;zq=1;function e(r,t,n){for(var a=-1,o=r==null?0:r.length;++a=120&&w.length>=120)?new e(S&&w):void 0}w=s[0];var O=-1,C=v[0];e:for(;++O=s||V<0||w&&te>=m}function j(){var U=r();if(P(U))return L(U);S=setTimeout(j,A(U))}function L(U){return S=void 0,O&&f?C(U):(f=h=void 0,x)}function N(){S!==void 0&&clearTimeout(S),b=0,f=v=h=S=void 0}function $(){return S===void 0?x:L(r())}function B(){var U=r(),V=P(U);if(f=arguments,h=this,v=U,V){if(S===void 0)return E(v);if(w)return clearTimeout(S),S=setTimeout(j,s),C(v)}return S===void 0&&(S=setTimeout(j,s)),x}return B.cancel=N,B.flush=$,B}return iO=i,iO}var oO,Zq;function Dde(){if(Zq)return oO;Zq=1;var e=qde(),r=zo(),t="Expected a function";function n(a,o,i){var u=!0,s=!0;if(typeof a!="function")throw new TypeError(t);return r(i)&&(u="leading"in i?!!i.leading:u,s="trailing"in i?!!i.trailing:s),e(a,o,{leading:u,maxWait:o,trailing:s})}return oO=n,oO}var Yq;function Ide(){return Yq||(Yq=1,(()=>{var e={};e.n=re=>{var se=re&&re.__esModule?()=>re.default:()=>re;return e.d(se,{a:se}),se},e.d=(re,se)=>{for(var pe in se)e.o(se,pe)&&!e.o(re,pe)&&Object.defineProperty(re,pe,{enumerable:!0,get:se[pe]})},e.o=(re,se)=>Object.prototype.hasOwnProperty.call(re,se),e.r=re=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(re,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(re,"__esModule",{value:!0})};var r={};e.r(r),e.d(r,{PopoverContext:()=>D,PopoverMenuContext:()=>K,PopoverProvider:()=>F,default:()=>Lu});const t=Or();var n=e.n(t);const a=Wt();var o=e.n(a);const i=Ov(),u=Ode();var s=e.n(u);const c=VE();var f=e.n(c);const h=Tde();var m=e.n(h);const x=Mm();var S=e.n(x);const v=Av();var b=e.n(v);const _=Ade();var w=e.n(_);const O=Rde();var C=e.n(O);const E=Cv();var A=e.n(E);const P=da();var j=e.n(P);const L=Lv();var N=e.n(L);const $=Dde();var B=e.n($);const U=Ji(),V=aH(),te=uH();var ne=e.n(te);const ce=pH();var Oe=e.n(ce);const fe=bH();var ve=e.n(fe);const Re=hH();function me(re){"@babel/helpers - typeof";return me=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(se){return typeof se}:function(se){return se&&typeof Symbol=="function"&&se.constructor===Symbol&&se!==Symbol.prototype?"symbol":typeof se},me(re)}function Ce(re,se){var pe=Object.keys(re);if(Object.getOwnPropertySymbols){var We=Object.getOwnPropertySymbols(re);se&&(We=We.filter(function(je){return Object.getOwnPropertyDescriptor(re,je).enumerable})),pe.push.apply(pe,We)}return pe}function oe(re){for(var se=1;seDr-pe.bottom?"above":"below":tr==="horizontal"&&(nn=pe.left>Gr-pe.right?"left":"right");var xt=nn,Kt=I({align:se,anchorPos:pe,outerContainerEl:ar,padding:mr,placement:xt}),gt=Kt.top,Cn=Kt.left,Bn="auto",ci=Gr,on=Dr,Xt=xt,Pn=pe.top-ar.offsetHeight>0,zn=pe.bottom+ar.offsetHeight0,Wn=pe.right+ar.offsetWidthDr-pe.bottom,li=(se==="edge"?pe.left+ar.offsetWidth-mr:pe.middle+ar.offsetWidth/2)>Gr,wo=(se==="edge"?pe.left-mr:pe.middle-ar.offsetWidth/2)<0,Ho=(se==="edge"?pe.top-mr:pe.top-ar.offsetHeight/2)<0,fi=(se==="edge"?pe.top+ar.offsetHeight-mr:pe.bottom+ar.offsetHeight/2)>Dr;if(Xt==="above"){if(!Pn&&Tt){if(zn)return W(oe(oe({},re),{},{placement:"below"}));if(Jr&&Wn)return W(oe(oe({},re),{},{placement:"right"}));if(Jr&&An)return W(oe(oe({},re),{},{placement:"left"}));je&&(Xt="misaligned",gt=0)}Xt!=="misaligned"&&(Bn=Dr-gt-ar.offsetHeight,We&&(Bn=Math.min(Bn,Dr-We.top)),gt="auto"),li?Cn=Math.max(Gr-ar.offsetWidth,0):wo&&(Cn=0),je||(on=pe.top)}if(Xt==="below"){if(!zn&&Tt){if(Pn&&Rn)return W(oe(oe({},re),{},{placement:"above"}));if(Jr&&Wn)return W(oe(oe({},re),{},{placement:"right"}));if(Jr&&An)return W(oe(oe({},re),{},{placement:"left"}));je&&(Xt="misaligned",gt=0)}We&&(gt=Math.min(gt,We.bottom)),li?Cn=Math.max(Gr-ar.offsetWidth,0):wo&&(Cn=0),je||(on=Dr-pe.bottom)}if(Xt==="left"){if(!An&&Tt){if(Wn)return W(oe(oe({},re),{},{placement:"right"}));if(Jr&&zn)return W(oe(oe({},re),{},{placement:"below"}));if(Jr&&Pn)return W(oe(oe({},re),{},{placement:"above"}));je&&(Xt="misaligned",gt=0)}Ho?gt=0:fi&&(gt=Math.max(Dr-ar.offsetHeight,0)),je||(ci=pe.left)}if(Xt==="right"){if(!Wn&&Tt){if(An)return W(oe(oe({},re),{},{placement:"left"}));if(Jr&&zn)return W(oe(oe({},re),{},{placement:"below"}));if(Jr&&Pn)return W(oe(oe({},re),{},{placement:"above"}));je&&(Xt="misaligned",gt=0)}Ho?gt=0:fi&&(gt=Math.max(Dr-ar.offsetHeight,0)),je||(ci=Gr-pe.left)}return{placement:Xt,maxHeight:on,maxWidth:ci,outerContainerStyle:{top:gt,left:Cn,bottom:Bn}}}var D=(0,t.createContext)({}),M={children:o().node,hideArrow:o().bool},F=function(se){var pe=se.children,We=se.hideArrow,je=(0,t.useMemo)(function(){return{hideArrow:We}},[We]);return n().createElement(D.Provider,{value:je},pe)};F.propTypes=M;var K=(0,t.createContext)({});const ee=Im,ie=ft;var ke=e.n(ie),_e=8,Ke=ke()(ee.animated.div).withConfig({displayName:"PopoverStyles__Styled",componentId:"sc-1nahsvw-0"})(["position:fixed;z-index:",";left:-300%;top:-300%;"],U.variables.zindexPopover),ge=(0,ie.css)(["",""],(0,U.pick)({light:"#27292e",dark:U.variables.white})),ye=ke().div.withConfig({displayName:"PopoverStyles__StyledBox",componentId:"sc-1nahsvw-1"})(["",";",";",";"],U.mixins.reset("block"),function(re){var se=re.$open;return!se&&(0,ie.css)(["pointer-events:none;"])},function(re){var se=re.$appearance;return se!=="none"&&(0,ie.css)(["padding:8px;"])}),Ze=ke().div.withConfig({displayName:"PopoverStyles__StyledContent",componentId:"sc-1nahsvw-2"})(["border-radius:",";background-color:",";color:",";",""],U.variables.borderRadius,(0,U.pickVariant)("$appearance",{normal:U.variables.backgroundColorPopup,inverted:{enterprise:{light:U.variables.gray20,dark:U.variables.white},prisma:ge}}),(0,U.pickVariant)("$appearance",{normal:U.variables.contentColorDefault,inverted:{enterprise:{light:U.variables.white,dark:U.variables.gray30},prisma:U.variables.contentColorInverted}}),(0,U.pickVariant)("$appearance",{normal:(0,ie.css)(["",";"],(0,U.pick)({enterprise:{light:(0,ie.css)(["box-shadow:0 2px 2px ",";border:",";"],U.mixins.colorWithAlpha(U.variables.gray20,.1),U.variables.border),dark:(0,ie.css)(["box-shadow:0 1px 2px #000;border:",";"],U.variables.border)},prisma:(0,ie.css)(["box-shadow:",";"],U.variables.overlayShadow)}))})),Ve=ke().div.withConfig({displayName:"PopoverStyles__StyledArrow",componentId:"sc-1nahsvw-3"})(["width:0;height:0;border-left:","px solid transparent;border-right:","px solid transparent;position:absolute;border-bottom-width:","px;border-bottom-style:solid;",";"],_e,_e,_e,function(re){var se=re.$appearance;return se!=="none"&&(0,ie.css)(["border-bottom-color:",";&::before{content:'';display:block;width:0;height:0;border-left:","px solid transparent;border-right:","px solid transparent;border-bottom:","px solid;border-bottom-color:",";position:absolute;top:1px;left:0;margin-left:-","px;}"],(0,U.pickVariant)("$appearance",{normal:{enterprise:{light:U.variables.borderColor,dark:U.variables.black},prisma:U.variables.backgroundColorPopup},inverted:{enterprise:{light:U.variables.gray20,dark:U.variables.white},prisma:ge}}),_e,_e,_e,(0,U.pickVariant)("$appearance",{normal:U.variables.backgroundColorPopup,inverted:{enterprise:{light:U.variables.gray20,dark:U.variables.white},prisma:ge}}),_e)}),Be=ke().svg.withConfig({displayName:"PopoverStyles__StyledHitArea",componentId:"sc-1nahsvw-4"})(["position:fixed;pointer-events:none;path{pointer-events:auto;stroke-width:0;stroke:transparent;fill:transparent;}"]);function Ge(re,se){return Te(re)||de(re,se)||Hr(re,se)||rr()}function rr(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Hr(re,se){if(re){if(typeof re=="string")return $r(re,se);var pe={}.toString.call(re).slice(8,-1);return pe==="Object"&&re.constructor&&(pe=re.constructor.name),pe==="Map"||pe==="Set"?Array.from(re):pe==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(pe)?$r(re,se):void 0}}function $r(re,se){(se==null||se>re.length)&&(se=re.length);for(var pe=0,We=Array(se);pe"u"?(se(),null):setTimeout(se,0)},cancelAnimationFrame:function(se){typeof setTimeout>"u"||clearTimeout(se)}};function Ir(){var re=typeof window<"u"?window:Tr;return re}function Kr(re){"@babel/helpers - typeof";return Kr=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(se){return typeof se}:function(se){return se&&typeof Symbol=="function"&&se.constructor===Symbol&&se!==Symbol.prototype?"symbol":typeof se},Kr(re)}function vt(re,se){var pe=Object.keys(re);if(Object.getOwnPropertySymbols){var We=Object.getOwnPropertySymbols(re);se&&(We=We.filter(function(je){return Object.getOwnPropertyDescriptor(re,je).enumerable})),pe.push.apply(pe,We)}return pe}function dt(re){for(var se=1;sere.length)&&(se=re.length);for(var pe=0,We=Array(se);pe2&&arguments[2]!==void 0?arguments[2]:1;return!!re&&!!se&&m()(re,function(We,je){return C()(We)?Math.abs(se[je]-We)<=pe:se[je]===We})}function ba(re){var se=re.anchorPos,pe=re.placement,We=re.outerContainerStyle,je=re.outerContainerEl;if(pe==="misaligned")return[{display:"none"}];var tr={display:"block"},ar=je.offsetHeight/2-22,mr=-(je.offsetHeight/2-15),xr=se.center-(We.top+je.offsetHeight/2)-_e/2,Dr=s()(xr,mr,ar),Gr=je.offsetWidth/2-26,kt=-(je.offsetWidth/2-11),Jr=se.middle-(We.left+je.offsetWidth/2)-_e,Tt=s()(Jr,kt,Gr),nn={left:{translateX:_e/2,translateY:Dr,rotate:90},right:{translateX:-_e/2,translateY:Dr,rotate:-90},above:{translateX:Tt,translateY:0,rotate:180},below:{translateX:Tt,translateY:0,rotate:0}},xt=nn[pe];tr.transform="translate(".concat(xt.translateX,"px, ").concat(xt.translateY,"px) rotate(").concat(xt.rotate,"deg)");var Kt={left:"right",right:"left",above:"bottom",below:"top"};tr[Kt[pe]]="1px";var gt={left:"top",right:"top",above:"left",below:"left"};return tr[gt[pe]]="50%",[tr,xt]}function ga(re){var se=re.anchorEl,pe=re.offsets,We=pe===void 0?!1:pe,je=re.pointTo,tr=pt(se,We),ar={width:Math.round(tr.width),height:Math.round(tr.height)},mr=je&&S()(je,"x"),xr=je&&S()(je,"y");return ar.left=mr?tr.left+(je?.x||0):tr.left,ar.top=xr?tr.top+(je?.y||0):tr.top,ar.right=mr?ar.left+ar.width:tr.left+ar.width||tr.right,ar.bottom=xr?ar.top+ar.height:tr.top+ar.height||tr.bottom,ar.middle=mr?ar.left:tr.left+(ar.right-tr.left)/2,ar.center=xr?ar.top:tr.top+(ar.bottom-tr.top)/2,ar}function Za(re){return re!==window&&re!==window.document}function Kc(re,se){var pe=Ir();return!!(re.top<0||re.top>pe.innerHeight||re.left<0||re.left>pe.innerWidth||se&&(re.height+re.topse.bottom||re.width+re.leftse.right))}var no=function(re){qe(pe,re);var se=Qe(pe);he(pe,null,[{key:"getDerivedStateFromProps",value:function(je,tr){return je.open!==tr.prevOpen?{animating:je.animation,prevOpen:je.open}:null}}]);function pe(We){var je;return En(this,pe),je=se.call(this,We),Fr(pr(je),"outerContainerEl",null),Fr(pr(je),"innerContainerEl",null),Fr(pr(je),"arrow",null),Fr(pr(je),"handleScroll",void 0),Fr(pr(je),"handleWindowScroll",void 0),Fr(pr(je),"allowAnimationUpdates",!0),Fr(pr(je),"setPlacement",function(tr){var ar=Ir();je.setState(function(mr){var xr=je.props,Dr=xr.align,Gr=xr.anchor,kt=xr.autoCloseWhenOffScreen,Jr=xr.canCoverAnchor,Tt=xr.defaultPlacement,nn=xr.open,xt=xr.pointTo,Kt=xr.repositionMode,gt=xr.splunkTheme,Cn=je.context||ar,Bn=gt.isPrisma;if(!nn||!je.outerContainerEl||!Gr||!mr.anchorEl)return null;var ci=ga({anchorEl:mr.anchorEl,pointTo:xt}),on=ga({anchorEl:mr.anchorEl,offsets:!0,pointTo:xt}),Xt=Za(Cn)?ga({anchorEl:Cn,pointTo:xt}):void 0;if(tr&&kt&&je.autoCloseWhenOffScreen(ci,Xt))return null;var Pn=8,zn=Bn?"edge":"center",An=W({align:Dr==="theme"?zn:Dr,anchorPos:on,scrollContainerPos:Xt,canCoverAnchor:Jr,defaultPlacement:Tt,repositionMode:Kt,outerContainerEl:je.outerContainerEl,padding:Pn,windowWidth:ar.innerWidth,windowHeight:ar.innerHeight}),Wn=An.placement,Rn=An.outerContainerStyle,li=An.maxHeight,wo=An.maxWidth,Ho=_o(on,mr.anchorPos)&&_o(Rn,mr.outerContainerStyle)&&Wn===mr.placement&&li===mr.maxHeight&&wo===mr.maxWidth,fi=!0,Xa={},Ko;if(je.arrow){var ht,ot,Wf=ba({anchorPos:on,outerContainerStyle:Rn,placement:Wn,outerContainerEl:je.outerContainerEl}),Gc=ro(Wf,2);Xa=Gc[0],Ko=Gc[1],fi=_o(N()(Xa,"transform"),N()(mr.arrowStyle,"transform"))&&_o((ht=Ko)!==null&&ht!==void 0?ht:{},(ot=mr.arrowStyleTransformMeta)!==null&&ot!==void 0?ot:{})}return Ho&&fi?null:{anchorPos:on,arrowStyle:Xa,arrowStyleTransformMeta:Ko,outerContainerStyle:Rn,placement:Wn,maxHeight:li,maxWidth:wo}})}),Fr(pr(je),"handleArrowMount",function(tr){je.arrow=tr}),Fr(pr(je),"handleNewAnchor",function(tr){var ar=je.props.pointTo,mr;tr&&!(tr instanceof HTMLElement)?mr=(0,i.findDOMNode)(tr):mr=tr??void 0;var xr=mr?ga({anchorEl:mr,pointTo:ar}):void 0;je.setState({anchorEl:mr,anchorPos:xr})}),Fr(pr(je),"handleInnerContainerMount",function(tr){je.innerContainerEl=tr,tr&&je.props.takeFocus&&f()(Re.takeFocus,tr),Ht(je.props.elementRef,tr)}),Fr(pr(je),"handleOuterContainerMount",function(tr){je.outerContainerEl=tr,Ht(je.props.outerRef,tr)}),Fr(pr(je),"handleTab",function(tr){if(je.innerContainerEl){if(je.props.retainFocus)(0,Re.handleTab)(je.innerContainerEl,tr);else if((0,Re.isTabKey)(tr)){var ar=(0,Re.getSortedTabbableElements)(je.innerContainerEl);if(ar.length>0){var mr=tr.shiftKey?ar[0]:ar[ar.length-1];mr===tr.target&&je.handleRequestClose({event:tr,reason:"tabKey"})}}}}),Fr(pr(je),"handleRequestClose",function(tr){je.props.open&&je.requestClose(tr)}),Fr(pr(je),"handleAnimationEnd",function(){je.allowAnimationUpdates&&je.setState({animating:!1})}),je.handleScroll=B()(je.setPlacement.bind(pr(je),!0),0),je.handleWindowScroll=B()(je.setPlacement.bind(pr(je),!0),0),je.setPlacement=B()(je.setPlacement,0,{leading:!1}),je.state={animating:!1,prevOpen:We.open},je}return he(pe,[{key:"componentDidMount",value:function(){this.handleNewAnchor(this.props.anchor)}},{key:"componentDidUpdate",value:function(je){je.anchor!==this.props.anchor&&this.handleNewAnchor(this.props.anchor),this.innerContainerEl&&(this.props.open||this.state.animating)&&(this.setPlacement(),!je.open&&this.props.open&&this.props.takeFocus&&(0,Re.takeFocus)(this.innerContainerEl))}},{key:"componentWillUnmount",value:function(){this.setPlacement.cancel(),this.handleScroll.cancel(),this.allowAnimationUpdates=!1}},{key:"shouldRenderArrow",value:function(je){var tr,ar=this.props,mr=ar.appearance,xr=ar.hideArrow,Dr=ar.splunkTheme,Gr=Dr.isPrisma,kt=(tr=xr??je)!==null&&tr!==void 0?tr:Gr;return mr!=="none"&&!kt}},{key:"autoCloseWhenOffScreen",value:function(je,tr){var ar=Kc(je,tr);return ar&&this.requestClose({reason:"offScreen"}),ar}},{key:"requestClose",value:function(je){if(b()(this.props.closeReasons,je.reason)){var tr,ar;(tr=(ar=this.props).onRequestClose)===null||tr===void 0||tr.call(ar,je)}}},{key:"render",value:function(){var je=this,tr=this.props,ar=tr.animation,mr=tr.animationConfig,xr=tr.appearance,Dr=tr.children,Gr=tr.closeReasons,kt=tr.hitAreaRef,Jr=tr.id,Tt=tr.open,nn=tr.retainFocus,xt=this.state,Kt=xt.anchorPos,gt=xt.animating,Cn=xt.arrowStyle,Bn=xt.outerContainerStyle,ci=xt.placement,on=this.state,Xt=on.maxHeight,Pn=on.maxWidth;xr!=="none"&&(C()(Xt)&&(Xt-=20),C()(Pn)&&(Pn-=20));var zn={anchorHeight:Kt?Kt.height:null,anchorWidth:Kt?Kt.width:null,placement:ci||null,maxHeight:Xt||null,maxWidth:Pn||null},An=ar?{opacity:Tt?1:0}:{opacity:1},Wn=Ir(),Rn=Tt||gt,li=this.context||Wn,wo=li!==Wn,Ho=Rn?[wo&&n().createElement(ne(),{target:li,eventType:"scroll",listener:this.handleScroll,options:Ga,key:"eventListener"}),n().createElement(ne(),{target:Wn,eventType:"resize",listener:this.setPlacement,key:"eventListenerOnWindowResize"}),n().createElement(ne(),{target:Wn,eventType:"scroll",listener:this.handleWindowScroll,options:Ga,key:"eventListenerOnWindowScroll"})]:[];return[].concat(Ho,[n().createElement(Oe(),{closeReasons:w()(Gr.filter(function(fi){return fi!=="offScreen"}),Oe().possibleCloseReasons),open:Rn,onRequestClose:this.handleRequestClose,key:"Layer"},Rn&&this.innerContainerEl&&kt&&n().createElement(er,{anchorRect:Kt,popoverEl:this.innerContainerEl,popoverPlacement:ci,ref:kt}),Rn&&n().createElement(V.Spring,{from:{opacity:ar?0:1},to:An,config:eo({tension:300,friction:20,clamp:!0},mr),onRest:this.handleAnimationEnd},function(fi){return n().createElement(D.Consumer,null,function(Xa){var Ko=Xa.hideArrow;return n().createElement(Ke,{"data-test":"outer-popover",style:eo(eo({},Bn),fi),ref:je.handleOuterContainerMount},n().createElement(ye,$t({$appearance:xr,$open:Tt,"data-test":"popover",ref:je.handleInnerContainerMount,id:Jr,onKeyDown:je.handleTab},N()(je.props,["anchor"].concat(Uo(j()(pe.propTypes))))),n().createElement(K.Provider,{value:{retainFocus:nn}},n().createElement(n().Fragment,null,xr==="none"&&Dr,je.shouldRenderArrow(Ko)&&n().createElement(Ve,{"data-test":"popover-arrow",$appearance:xr,ref:je.handleArrowMount,style:Cn}),xr!=="none"&&n().createElement(Ze,{$appearance:xr},A()(Dr)?Dr(zn):Dr)))))})}))])}}]),pe}(t.Component);Fr(no,"contextType",ve()),Fr(no,"defaultProps",Ka),Fr(no,"propTypes",yo);var Ya=(0,U.withSplunkTheme)(no);Ya.propTypes=no.propTypes;const Lu=Ya;Vx.exports=r})()),Vx.exports}var Xq;function hP(){return Xq||(Xq=1,(()=>{var e={};e.n=J=>{var I=J&&J.__esModule?()=>J.default:()=>J;return e.d(I,{a:I}),I},e.d=(J,I)=>{for(var W in I)e.o(I,W)&&!e.o(J,W)&&Object.defineProperty(J,W,{enumerable:!0,get:I[W]})},e.o=(J,I)=>Object.prototype.hasOwnProperty.call(J,I),e.r=J=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(J,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(J,"__esModule",{value:!0})};var r={};e.r(r),e.d(r,{default:()=>X,legacyRefMode:()=>oe});const t=Or();var n=e.n(t);const a=Wt();var o=e.n(a);const i=Mm();var u=e.n(i);const s=Av();var c=e.n(s);mH();const f=Cv();var h=e.n(f);const m=da();var x=e.n(m);const S=Lv();var v=e.n(S);const b=vH(),_=xde(),w=Ide();var O=e.n(w);function C(J,I){J&&(typeof J=="function"?J(I):J.current=I)}function E(J){"@babel/helpers - typeof";return E=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(I){return typeof I}:function(I){return I&&typeof Symbol=="function"&&I.constructor===Symbol&&I!==Symbol.prototype?"symbol":typeof I},E(J)}function A(J,I){var W=Object.keys(J);if(Object.getOwnPropertySymbols){var D=Object.getOwnPropertySymbols(J);I&&(D=D.filter(function(M){return Object.getOwnPropertyDescriptor(J,M).enumerable})),W.push.apply(W,D)}return W}function P(J){for(var I=1;I{var e={};e.n=D=>{var M=D&&D.__esModule?()=>D.default:()=>D;return e.d(M,{a:M}),M},e.d=(D,M)=>{for(var F in M)e.o(M,F)&&!e.o(D,F)&&Object.defineProperty(D,F,{enumerable:!0,get:M[F]})},e.o=(D,M)=>Object.prototype.hasOwnProperty.call(D,M),e.r=D=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(D,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(D,"__esModule",{value:!0})};var r={};e.r(r),e.d(r,{NavigationContext:()=>b,NavigationProvider:()=>_,default:()=>W,isInternalLink:()=>oe,isRootRelativeLink:()=>Ce});const t=Or();var n=e.n(t);const a=Wt();var o=e.n(a);Mm();const i=pm();var u=e.n(i);const s=Lv();var c=e.n(s);const f=hP(),h=ft;var m=e.n(h);const x=Ji();var S=m().a.withConfig({displayName:"ClickableStyles__StyledA",componentId:"sc-7al1vw-0"})([""," cursor:pointer;&[disabled],&[aria-disabled='true']{cursor:not-allowed;color:",";}&::-moz-focus-inner{border:0;padding:0;}"],x.mixins.reset("inline"),x.variables.contentColorDisabled),v={children:o().node,onClick:o().func,onLinkClick:o().func,prefix:o().string,transformUrl:o().func},b=n().createContext({});function _(D){var M=D.children,F=D.onClick,K=D.onLinkClick,ee=D.prefix,ie=D.transformUrl,ke=(0,t.useMemo)(function(){var _e;return ie!=null?_e=ie:ee!=null&&(_e=function(){var ge=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"",ye=arguments.length>1?arguments[1]:void 0,Ze=ye.isInternal,Ve=ye.isRootRelative;return ee!=null&&Ze&&Ve?"".concat(ee).concat(ge):ge}),{onClick:F,onLinkClick:K,transformUrl:_e}},[F,K,ee,ie]);return n().createElement(b.Provider,{value:ke},M)}_.propTypes=v;function w(D,M){D&&(typeof D=="function"?D(M):D.current=M)}function O(D){"@babel/helpers - typeof";return O=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(M){return typeof M}:function(M){return M&&typeof Symbol=="function"&&M.constructor===Symbol&&M!==Symbol.prototype?"symbol":typeof M},O(D)}function C(){return C=Object.assign?Object.assign.bind():function(D){for(var M=1;M{var e={};e.n=de=>{var Te=de&&de.__esModule?()=>de.default:()=>de;return e.d(Te,{a:Te}),Te},e.d=(de,Te)=>{for(var Se in Te)e.o(Te,Se)&&!e.o(de,Se)&&Object.defineProperty(de,Se,{enumerable:!0,get:Te[Se]})},e.o=(de,Te)=>Object.prototype.hasOwnProperty.call(de,Te),e.r=de=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(de,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(de,"__esModule",{value:!0})};var r={};e.r(r),e.d(r,{default:()=>$r});const t=Or();var n=e.n(t);const a=Wt();var o=e.n(a);const i=Ji(),u=ft;var s=e.n(u);const c=$m();var f=e.n(c);const h=rE();var m=e.n(h);function x(de){"@babel/helpers - typeof";return x=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(Te){return typeof Te}:function(Te){return Te&&typeof Symbol=="function"&&Te.constructor===Symbol&&Te!==Symbol.prototype?"symbol":typeof Te},x(de)}var S=["primary","secondary","destructive","subtle"];function v(de){var Te="transparent",Se="transparent",ze=(0,i.pick)({enterprise:{light:i.variables.gray96,dark:i.variables.gray30},prisma:i.variables.interactiveColorBackgroundDisabled}),Je=(0,i.pick)({enterprise:{dark:i.variables.gray22,light:i.variables.gray92},prisma:i.mixins.overlayColors(i.variables.interactiveColorBackgroundDisabled,i.variables.interactiveColorOverlaySelected)}),er="transparent",br="transparent",Tr,Ir,Kr=i.variables.contentColorActive,vt=i.variables.contentColorDisabled;switch(de){case"primary":{Te=(0,i.pick)({enterprise:"#1A8929",prisma:i.variables.interactiveColorPrimary}),Se=(0,i.pick)({enterprise:i.variables.brandColorD30,prisma:i.mixins.overlayColors(i.variables.interactiveColorPrimary,i.variables.interactiveColorOverlayActive)}),er=(0,i.pick)({enterprise:i.variables.brandColorD50,prisma:i.mixins.overlayColors(i.variables.interactiveColorPrimary,i.variables.interactiveColorOverlayHover)}),br=(0,i.pick)({enterprise:"#235823",prisma:i.mixins.overlayColors(i.variables.interactiveColorPrimary,i.variables.interactiveColorOverlaySelected)}),Kr=i.variables.contentColorInverted;break}case"destructive":{Te=i.variables.accentColorNegative,Se=(0,i.pick)({enterprise:i.variables.errorColorD40,prisma:i.mixins.overlayColors(i.variables.accentColorNegative,i.variables.interactiveColorOverlayActive)}),er=(0,i.pick)({enterprise:i.variables.errorColorD30,prisma:i.mixins.overlayColors(i.variables.accentColorNegative,i.variables.interactiveColorOverlayHover)}),br=(0,i.pick)({enterprise:i.variables.errorColorD30,prisma:i.mixins.overlayColors(i.variables.accentColorNegative,i.variables.interactiveColorOverlaySelected)}),Kr=i.variables.contentColorInverted;break}case"secondary":Tr=i.variables.interactiveColorBorder,Ir=i.variables.interactiveColorBorderDisabled,Te=(0,i.pick)({enterprise:{light:i.variables.gray98,dark:i.variables.gray45},prisma:i.variables.interactiveColorBackground}),Se=(0,i.pick)({enterprise:{light:i.variables.gray92,dark:i.variables.gray22},prisma:i.variables.interactiveColorOverlayActive}),er=(0,i.pick)({enterprise:{light:"#ebeeef",dark:i.variables.gray30},prisma:i.variables.interactiveColorOverlayHover}),br=(0,i.pick)({enterprise:{light:i.variables.gray92,dark:i.variables.gray22},prisma:i.variables.interactiveColorOverlaySelected});break;case"subtle":Kr=i.variables.interactiveColorPrimary,Se=(0,i.pick)({enterprise:{light:i.variables.gray92,dark:i.variables.gray22},prisma:i.variables.interactiveColorOverlayActive}),er=(0,i.pick)({enterprise:{light:i.variables.linkColor,dark:i.variables.white},prisma:i.variables.interactiveColorOverlayHover}),br=(0,i.pick)({enterprise:"transparent",prisma:i.variables.interactiveColorOverlaySelected});break}var dt={background:Te,backgroundActive:Se,backgroundDisabled:ze,backgroundDisabledSelected:Je,backgroundHover:er,backgroundSelected:br,borderColor:Tr,borderColorDisabled:Ir,color:Kr,colorDisabled:vt};return dt}function b(de,Te){var Se=typeof de=="string"&&S.includes(de)?de:void 0,ze={};Se&&Te!==void 0?ze=Te:Se===void 0&&x(de)==="object"&&Te===void 0&&(ze=de);var Je=v(Se),er=m()(Je,ze),br=er.background,Tr=er.backgroundActive,Ir=er.backgroundDisabled,Kr=er.backgroundDisabledSelected,vt=er.backgroundHover,dt=er.backgroundSelected,at=er.borderColor,Nt=er.borderColorDisabled,Lt=er.color,Mt=er.colorDisabled,ln=br!=null&&br!=="transparent";return function(){return(0,u.css)(["border-radius:",";",";"," "," cursor:pointer;position:relative;&:focus,&:hover{z-index:3;}&:not([disabled],[aria-disabled='true']){background-color:",";color:",";transition:background-color 0.2s,box-shadow 0.2s,text-decoration 0.2s;&:hover{background-color:",";}&:active{background-color:",";transition:none;}","}&:not([disabled]){&:focus{box-shadow:",";}}&[disabled],&[aria-disabled='true']{border-color:",";color:",";","}"],i.variables.borderRadius,function(){return at&&(0,u.css)(["border:1px solid ",";"],at)},function(pt){var Ht=pt.$append;return Ht&&(0,u.css)(["border-top-right-radius:0.1px;border-bottom-right-radius:0.1px;border-right:none;"])},function(pt){var Ht=pt.$prepend;return Ht&&(0,u.css)(["border-top-left-radius:0.1px;border-bottom-left-radius:0.1px;"])},br,Lt,vt,Tr,function(pt){var Ht=pt.$selected;return Ht&&(0,u.css)(["background-color:",";"],dt)},i.variables.focusShadow,Nt,Mt,function(pt){var Ht=pt.$selected;return ln&&(0,u.css)(["background-color:",";"],Ht?Kr:Ir)})}}const _=b;var w=(0,u.css)(["&:not([disabled],[aria-disabled='true']){&:focus{background-color:",";}&:hover{border-color:",";","}"," ","}"," &[disabled],&[aria-disabled='true']{","}"],i.variables.interactiveColorOverlayHover,i.variables.interactiveColorBorderHover,(0,i.pickVariant)("$variant",{secondary:(0,u.css)(["box-shadow:",";"],i.variables.hoverShadow),default:(0,u.css)(["box-shadow:",";"],i.variables.hoverShadow),subtle:(0,u.css)(["box-shadow:",";"],i.variables.hoverShadow)}),function(de){var Te=de.$selected;return Te&&(0,u.css)(["border-color:",";&:hover{background-color:",";}"],i.variables.interactiveColorBorderDisabled,i.mixins.overlayColors(i.variables.interactiveColorOverlaySelected,i.variables.interactiveColorOverlayHover))},function(de){var Te=de.$error;return Te&&(0,u.css)(["border-color:",";&:hover{border-color:",";}"],i.variables.accentColorNegative,i.variables.accentColorNegative)},(0,i.pickVariant)("$variant",{secondary:(0,u.css)([""," font-weight:",";"],_("subtle",{color:i.variables.contentColorActive}),i.variables.fontWeightSemiBold),subtle:(0,u.css)([""," font-weight:",";"],_("subtle",{color:i.variables.contentColorActive}),i.variables.fontWeightSemiBold),default:(0,u.css)([""," font-weight:",";"],_("secondary",{background:"transparent"}),i.variables.fontWeightSemiBold),toggle:(0,u.css)([""," font-weight:normal;"],_("secondary",{background:"transparent"}))}),function(de){var Te=de.$selected;return Te&&(0,u.css)(["background-color:",";"],i.mixins.overlayColors(i.variables.interactiveColorBackgroundDisabled,i.variables.interactiveColorOverlaySelected))}),O=(0,u.css)(["&:not([disabled],[aria-disabled='true']){&:focus{background-color:",";}&:hover{box-shadow:",";}}"," font-weight:",";"],(0,i.pickVariant)("$variant",{primary:i.mixins.overlayColors(i.variables.interactiveColorPrimary,i.variables.interactiveColorOverlayHover),destructive:i.mixins.overlayColors(i.variables.accentColorNegative,i.variables.interactiveColorOverlayHover),flat:i.mixins.overlayColors(i.variables.interactiveColorBackground,i.variables.interactiveColorOverlayHover)}),i.variables.hoverShadow,(0,i.pickVariant)("$variant",{primary:_("primary",{backgroundDisabled:i.mixins.overlayColors(i.variables.interactiveColorBackgroundDisabled,i.variables.interactiveColorOverlaySelected)}),destructive:_("destructive",{backgroundDisabled:i.mixins.overlayColors(i.variables.interactiveColorBackgroundDisabled,i.variables.interactiveColorOverlaySelected)}),flat:_({background:i.mixins.overlayColors(i.variables.interactiveColorBackground,i.variables.interactiveColorOverlaySelected),backgroundActive:i.mixins.overlayColors(i.variables.interactiveColorBackground,i.variables.interactiveColorOverlayActive),backgroundDisabled:i.mixins.overlayColors(i.variables.interactiveColorBackgroundDisabled,i.variables.interactiveColorOverlaySelected),backgroundHover:i.mixins.overlayColors(i.variables.interactiveColorBackground,i.variables.interactiveColorOverlayHover),backgroundSelected:i.mixins.overlayColors(i.variables.interactiveColorBackground,i.variables.interactiveColorOverlaySelected)})}),i.variables.fontWeightSemiBold),C="#1A8929",E="#235823",A=(0,u.css)(["border-radius:",";cursor:pointer;position:relative;&:focus{z-index:3;}"],i.variables.borderRadius),P=(0,u.css)([""," ",""],function(de){var Te=de.$append;return Te&&(0,u.css)(["border-top-right-radius:0;border-bottom-right-radius:0;border-right:none;"])},function(de){var Te=de.$prepend;return Te&&(0,u.css)(["border-top-left-radius:0;border-bottom-left-radius:0;"])}),j="inset 0 -1px 0 rgba(0, 0, 0, 0.1)",L="inset 0 1px 0 rgba(0, 0, 0, 0.1)",N=(0,u.css)(["",";border:1px solid;border-color:",";",";font-weight:",";&:not([disabled],[aria-disabled='true']){background-color:",";color:",";transition:background-image 0.2s,border 0.2s,box-shadow 0.2s,text-decoration 0.2s;",";"," &:hover{background-color:",";",";}&:active{transition:none;background-color:",";border-color:",";",";}&:focus{"," ","}}&:not([disabled]){&:focus{","}}&[disabled],&[aria-disabled='true']{color:",";background-color:",";border-color:",";","}"],A,(0,i.pick)({light:i.variables.gray60,dark:i.variables.borderColor}),P,(0,i.pickVariant)("$variant",{default:"normal",secondary:i.variables.fontWeightSemiBold}),(0,i.pick)({light:i.variables.gray98,dark:i.variables.gray45}),(0,i.pick)({light:i.variables.gray45,dark:i.variables.white}),(0,i.pick)({light:(0,u.css)(["box-shadow:",";"],j),dark:(0,u.css)(["box-shadow:inset 0 -1px 0 ",";"],i.variables.gray30)}),function(de){var Te=de.$selected;return Te&&(0,u.css)(["",";background-color:",";border-color:",";"],(0,i.pick)({light:(0,u.css)(["box-shadow:",";"],L),dark:(0,u.css)(["box-shadow:inset 0 1px 0 ",";"],i.variables.black)}),(0,i.pick)({light:i.variables.gray92,dark:i.variables.gray22}),(0,i.pick)({light:i.variables.gray60,dark:i.variables.gray20}))},(0,i.pick)({light:"#ebeeef",dark:i.variables.gray30}),(0,i.pick)({light:(0,u.css)(["box-shadow:",";"],j),dark:(0,u.css)(["box-shadow:inset 0 -1px 0 ",";"],i.variables.gray25)}),(0,i.pick)({light:i.variables.gray92,dark:i.variables.gray22}),(0,i.pick)({light:i.variables.gray60,dark:i.variables.gray20}),(0,i.pick)({dark:(0,u.css)(["box-shadow:inset 0 -1px 0 ",";"],i.variables.gray22)}),function(de){var Te=de.$append;return Te&&(0,i.pick)({light:(0,u.css)(["box-shadow:"," ",",inset -1px 0 0 ",";"],j,i.variables.focusShadow,i.variables.borderColor),dark:(0,u.css)(["box-shadow:inset 0 -1px 0 "," ",",inset -1px 0 0 ",";"],i.variables.gray30,i.variables.focusShadow,i.variables.borderColor)})},function(de){var Te=de.$append,Se=de.$selected;return Te&&Se&&(0,i.pick)({light:(0,u.css)(["box-shadow:",",",",",",inset -1px 0 0 ",";"],j,L,i.variables.focusShadow,i.variables.borderColor),dark:(0,u.css)(["box-shadow:inset 0 1px 0 ",",",",inset -1px 0 0 ",";"],i.variables.black,i.variables.focusShadow,i.variables.borderColor)})},(0,i.pick)({light:(0,u.css)(["box-shadow:",",",";"],j,i.variables.focusShadow),dark:(0,u.css)(["box-shadow:inset 0 -1px 0 ",",",";"],i.variables.gray30,i.variables.focusShadow)}),i.variables.textDisabledColor,(0,i.pick)({light:i.variables.gray96,dark:i.variables.gray30}),(0,i.pick)({light:i.variables.borderLightColor,dark:i.variables.gray30}),function(de){var Te=de.$selected;return Te&&(0,i.pick)({light:(0,u.css)(["box-shadow:",";background-color:",";border-color:",";"],L,i.variables.gray92,i.variables.gray80),dark:(0,u.css)(["box-shadow:inset 0 1px 0 ",";background-color:",";border-color:",";"],i.variables.black,i.variables.gray22,i.variables.gray20)})}),$="inset 0 -2px 0 rgba(0, 0, 0, 0.1)",B="inset 0 2px 0 rgba(0, 0, 0, 0.1)",U=(0,u.css)(["",";font-weight:",";"," &:not([disabled],[aria-disabled='true']){background-color:",";color:",";box-shadow:",";transition:background-image 0.2s,border 0.2s,box-shadow 0.2s,text-decoration 0.2s;"," "," &:hover{background-color:",";}&:active{background-color:",";transition:none;}&:focus{&:active{background-color:",";transition:none;}}}&:not([disabled]){&:focus{box-shadow:",",",";}}&[disabled],&[aria-disabled='true']{color:",";background-color:",";","}"],A,i.variables.fontWeightSemiBold,P,C,i.variables.white,$,function(de){var Te=de.$selected;return Te&&(0,u.css)(["box-shadow:",";background-color:",";"],B,E)},function(de){var Te=de.$prepend;return Te&&(0,u.css)(["border-left:1px solid ",";"],C)},i.variables.brandColorD50,i.variables.brandColorD30,i.variables.brandColorD30,$,i.variables.focusShadow,i.variables.brandColorL30,i.variables.brandColorL10,function(de){var Te=de.$selected;return Te&&(0,u.css)(["box-shadow:",";background-color:",";"],B,i.variables.brandColorD20)}),V=(0,u.css)(["",";font-weight:",";"," &:not([disabled],[aria-disabled='true']){background-color:",";color:",";box-shadow:",";transition:background-image 0.2s,border 0.2s,box-shadow 0.2s,text-decoration 0.2s;"," "," &:hover{background-color:",";}&:active{background-color:",";transition:none;}&:focus{&:active{background-color:",";transition:none;}}}&:not([disabled]){&:focus{box-shadow:",",",";}}&[disabled],&[aria-disabled='true']{color:",";background-color:",";","}"],A,i.variables.fontWeightSemiBold,P,i.variables.errorColorD10,i.variables.white,$,function(de){var Te=de.$selected;return Te&&(0,u.css)(["box-shadow:",";background-color:",";"],B,i.variables.errorColorD30)},function(de){var Te=de.$prepend;return Te&&(0,u.css)(["border-left:1px solid ",";"],i.variables.errorColorD30)},i.variables.errorColorD30,i.variables.errorColorD40,i.variables.errorColorD40,$,i.variables.focusShadow,i.variables.errorColorL10,i.variables.errorColorD10,function(de){var Te=de.$selected;return Te&&(0,u.css)(["box-shadow:",";background-color:",";"],B,i.variables.errorColorD40)}),te=(0,u.css)(["",";color:",";border:1px solid transparent;&:not([disabled],[aria-disabled='true']){transition:background-color 0.2s,border 0.2s,box-shadow 0.2s,text-decoration 0.2s;"," &:hover{color:",";background-color:",";border-color:",";}"," &:focus{color:",";}&:active,&[aria-expanded='true']{background-color:",";transition:none;}}&:not([disabled]){&:focus{box-shadow:",";}}&[disabled],&[aria-disabled='true']{color:",";","}"],A,(0,i.pick)({light:i.variables.gray45,dark:i.variables.white}),function(de){var Te=de.$selected;return Te&&(0,u.css)(["border-color:",";"],i.variables.accentColor)},(0,i.pick)({light:i.variables.linkColor,dark:i.variables.white}),i.variables.backgroundColorHover,(0,i.pick)({light:i.variables.gray60,dark:i.variables.borderColor}),function(de){var Te=de.$error;return Te&&(0,u.css)(["&,&:hover{color:",";}"],i.variables.errorColor)},(0,i.pick)({light:i.variables.linkColor,dark:i.variables.white}),(0,i.pick)({light:i.variables.gray92,dark:i.variables.gray22}),i.variables.focusShadow,i.variables.textDisabledColor,function(de){var Te=de.$selected;return Te&&(0,u.css)(["border-color:",";"],i.variables.borderLightColor)}),ne=s()(f()).withConfig({displayName:"ButtonSimpleStyles__StyledClickable",componentId:"vlarwe-0"})([""," ",""],function(de){var Te=de.to;return Te?(0,u.css)([""," align-items:center;justify-content:center;"],i.mixins.reset("flex")):(0,u.css)(["",""],i.mixins.reset("block"))},(0,i.pick)({enterprise:(0,i.pickVariant)("$variant",{primary:U,secondary:N,destructive:V,subtle:te,default:N,pill:te,toggle:N,flat:N}),prisma:(0,i.pickVariant)("$variant",{primary:O,secondary:w,destructive:O,subtle:w,default:w,toggle:w,flat:O,pill:w})}));function ce(de){"@babel/helpers - typeof";return ce=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(Te){return typeof Te}:function(Te){return Te&&typeof Symbol=="function"&&Te.constructor===Symbol&&Te!==Symbol.prototype?"symbol":typeof Te},ce(de)}function Oe(){return Oe=Object.assign?Object.assign.bind():function(de){for(var Te=1;Tede.length)&&(Te=de.length);for(var Se=0,ze=Array(Te);Se{var e={};e.n=he=>{var qe=he&&he.__esModule?()=>he.default:()=>he;return e.d(qe,{a:qe}),qe},e.d=(he,qe)=>{for(var $e in qe)e.o(qe,$e)&&!e.o(he,$e)&&Object.defineProperty(he,$e,{enumerable:!0,get:qe[$e]})},e.o=(he,qe)=>Object.prototype.hasOwnProperty.call(he,qe),e.r=he=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(he,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(he,"__esModule",{value:!0})};var r={};e.r(r),e.d(r,{Body:()=>ve,Footer:()=>M,Header:()=>Je,default:()=>Ai});const t=Or();var n=e.n(t);const a=Wt();var o=e.n(a);const i=VE();var u=e.n(i);const s=da();var c=e.n(s);const f=qu();var h=e.n(f);const m=Lv();var x=e.n(m);const S=ude();var v=e.n(S);const b=hH(),_=vH(),w=bH(),O=ft;var C=e.n(O);const E=fP();var A=e.n(E);const P=Ji();var j=C()(A()).withConfig({displayName:"BodyStyles__StyledBox",componentId:"lv54z7-0"})(["background-color:",";"," flex:0 1 auto;overflow:auto;"],(0,P.pick)({enterprise:P.variables.backgroundColor,prisma:P.variables.backgroundColorDialog}),(0,P.pick)({enterprise:{comfortable:(0,O.css)(["padding:28px;"]),compact:(0,O.css)(["padding:24px;"])},prisma:{comfortable:(0,O.css)(["padding:12px 24px;&:first-child{padding-top:36px;}&:last-child{padding-bottom:36px;}"]),compact:(0,O.css)(["padding:8px 24px;&:first-child{padding-top:26px;}&:last-child{padding-bottom:26px;}"])}}));function L(){return L=Object.assign?Object.assign.bind():function(he){for(var qe=1;qehe.length)&&(qe=he.length);for(var $e=0,Qe=Array(qe);$e button{min-width:80px;}"],(0,P.pick)({enterprise:P.variables.spacingLarge,prisma:{comfortable:"24px",compact:"18px 24px"}}),(0,P.pick)({enterprise:P.variables.backgroundColor,prisma:P.variables.backgroundColorDialog})),oe=(0,t.createContext)({});const Y=oe;function X(){return X=Object.assign?Object.assign.bind():function(he){for(var qe=1;qehe.length)&&(qe=he.length);for(var $e=0,Qe=Array(qe);$e{var e={};e.n=v=>{var b=v&&v.__esModule?()=>v.default:()=>v;return e.d(b,{a:b}),b},e.d=(v,b)=>{for(var _ in b)e.o(b,_)&&!e.o(v,_)&&Object.defineProperty(v,_,{enumerable:!0,get:b[_]})},e.o=(v,b)=>Object.prototype.hasOwnProperty.call(v,b),e.r=v=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(v,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(v,"__esModule",{value:!0})};var r={};e.r(r),e.d(r,{default:()=>S});const t=Or();var n=e.n(t);const a=Os();var o=e.n(a);const i=Cs();function u(v,b){if(v==null)return{};var _,w,O=s(v,b);if(Object.getOwnPropertySymbols){var C=Object.getOwnPropertySymbols(v);for(w=0;w=0},m=function(b){return b==="default"||b&&!h(b)?"outlined":b},x=function(b){var _=b.children,w=b.variant,O=w===void 0?"default":w,C=u(b,["children","variant"]),E=m(O),A="checkcircle-".concat(E),P=(0,t.useContext)(i.IconContext),j=c.get(E);if(P&&j){var L=P.toRender,N=P.addIcon;if(N(A,j()),!L)return null}return n().createElement(o(),C,_,P?n().createElement("use",{href:"#".concat(A)}):!!j&&j())};const S=x;uO.exports=r})()),uO.exports}var sO={exports:{}},t7;function OH(){return t7||(t7=1,(()=>{var e={};e.n=v=>{var b=v&&v.__esModule?()=>v.default:()=>v;return e.d(b,{a:b}),b},e.d=(v,b)=>{for(var _ in b)e.o(b,_)&&!e.o(v,_)&&Object.defineProperty(v,_,{enumerable:!0,get:b[_]})},e.o=(v,b)=>Object.prototype.hasOwnProperty.call(v,b),e.r=v=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(v,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(v,"__esModule",{value:!0})};var r={};e.r(r),e.d(r,{default:()=>S});const t=Or();var n=e.n(t);const a=Os();var o=e.n(a);const i=Cs();function u(v,b){if(v==null)return{};var _,w,O=s(v,b);if(Object.getOwnPropertySymbols){var C=Object.getOwnPropertySymbols(v);for(w=0;w=0},m=function(b){return b==="default"||b&&!h(b)?"outlined":b},x=function(b){var _=b.children,w=b.variant,O=w===void 0?"default":w,C=u(b,["children","variant"]),E=m(O),A="exclamationcircle-".concat(E),P=(0,t.useContext)(i.IconContext),j=c.get(E);if(P&&j){var L=P.toRender,N=P.addIcon;if(N(A,j()),!L)return null}return n().createElement(o(),C,_,P?n().createElement("use",{href:"#".concat(A)}):!!j&&j())};const S=x;sO.exports=r})()),sO.exports}var cO={exports:{}},n7;function CH(){return n7||(n7=1,(()=>{var e={};e.n=v=>{var b=v&&v.__esModule?()=>v.default:()=>v;return e.d(b,{a:b}),b},e.d=(v,b)=>{for(var _ in b)e.o(b,_)&&!e.o(v,_)&&Object.defineProperty(v,_,{enumerable:!0,get:b[_]})},e.o=(v,b)=>Object.prototype.hasOwnProperty.call(v,b),e.r=v=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(v,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(v,"__esModule",{value:!0})};var r={};e.r(r),e.d(r,{default:()=>S});const t=Or();var n=e.n(t);const a=Os();var o=e.n(a);const i=Cs();function u(v,b){if(v==null)return{};var _,w,O=s(v,b);if(Object.getOwnPropertySymbols){var C=Object.getOwnPropertySymbols(v);for(w=0;w=0},m=function(b){return b==="default"||b&&!h(b)?"outlined":b},x=function(b){var _=b.children,w=b.variant,O=w===void 0?"default":w,C=u(b,["children","variant"]),E=m(O),A="informationcircle-".concat(E),P=(0,t.useContext)(i.IconContext),j=c.get(E);if(P&&j){var L=P.toRender,N=P.addIcon;if(N(A,j()),!L)return null}return n().createElement(o(),C,_,P?n().createElement("use",{href:"#".concat(A)}):!!j&&j())};const S=x;cO.exports=r})()),cO.exports}var lO={exports:{}},i7;function kH(){return i7||(i7=1,(()=>{var e={};e.n=v=>{var b=v&&v.__esModule?()=>v.default:()=>v;return e.d(b,{a:b}),b},e.d=(v,b)=>{for(var _ in b)e.o(b,_)&&!e.o(v,_)&&Object.defineProperty(v,_,{enumerable:!0,get:b[_]})},e.o=(v,b)=>Object.prototype.hasOwnProperty.call(v,b),e.r=v=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(v,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(v,"__esModule",{value:!0})};var r={};e.r(r),e.d(r,{default:()=>S});const t=Or();var n=e.n(t);const a=Os();var o=e.n(a);const i=Cs();function u(v,b){if(v==null)return{};var _,w,O=s(v,b);if(Object.getOwnPropertySymbols){var C=Object.getOwnPropertySymbols(v);for(w=0;w=0},m=function(b){return b==="default"||b&&!h(b)?"outlined":b},x=function(b){var _=b.children,w=b.variant,O=w===void 0?"default":w,C=u(b,["children","variant"]),E=m(O),A="exclamationtriangle-".concat(E),P=(0,t.useContext)(i.IconContext),j=c.get(E);if(P&&j){var L=P.toRender,N=P.addIcon;if(N(A,j()),!L)return null}return n().createElement(o(),C,_,P?n().createElement("use",{href:"#".concat(A)}):!!j&&j())};const S=x;lO.exports=r})()),lO.exports}var fO={exports:{}},o7;function TH(){return o7||(o7=1,(()=>{var e={};e.n=c=>{var f=c&&c.__esModule?()=>c.default:()=>c;return e.d(f,{a:f}),f},e.d=(c,f)=>{for(var h in f)e.o(f,h)&&!e.o(c,h)&&Object.defineProperty(c,h,{enumerable:!0,get:f[h]})},e.o=(c,f)=>Object.prototype.hasOwnProperty.call(c,f),e.r=c=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(c,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(c,"__esModule",{value:!0})};var r={};e.r(r),e.d(r,{default:()=>s});const t=Or();var n=e.n(t);const a=Ei(),o=Vc();var i=e.n(o);function u(){return u=Object.assign?Object.assign.bind():function(c){for(var f=1;f{var e={};e.n=c=>{var f=c&&c.__esModule?()=>c.default:()=>c;return e.d(f,{a:f}),f},e.d=(c,f)=>{for(var h in f)e.o(f,h)&&!e.o(c,h)&&Object.defineProperty(c,h,{enumerable:!0,get:f[h]})},e.o=(c,f)=>Object.prototype.hasOwnProperty.call(c,f),e.r=c=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(c,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(c,"__esModule",{value:!0})};var r={};e.r(r),e.d(r,{default:()=>s});const t=Or();var n=e.n(t);const a=Ei(),o=Vc();var i=e.n(o);function u(){return u=Object.assign?Object.assign.bind():function(c){for(var f=1;f{var e={};e.n=c=>{var f=c&&c.__esModule?()=>c.default:()=>c;return e.d(f,{a:f}),f},e.d=(c,f)=>{for(var h in f)e.o(f,h)&&!e.o(c,h)&&Object.defineProperty(c,h,{enumerable:!0,get:f[h]})},e.o=(c,f)=>Object.prototype.hasOwnProperty.call(c,f),e.r=c=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(c,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(c,"__esModule",{value:!0})};var r={};e.r(r),e.d(r,{default:()=>s});const t=Or();var n=e.n(t);const a=Ei(),o=Vc();var i=e.n(o);function u(){return u=Object.assign?Object.assign.bind():function(c){for(var f=1;f{var e={};e.n=c=>{var f=c&&c.__esModule?()=>c.default:()=>c;return e.d(f,{a:f}),f},e.d=(c,f)=>{for(var h in f)e.o(f,h)&&!e.o(c,h)&&Object.defineProperty(c,h,{enumerable:!0,get:f[h]})},e.o=(c,f)=>Object.prototype.hasOwnProperty.call(c,f),e.r=c=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(c,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(c,"__esModule",{value:!0})};var r={};e.r(r),e.d(r,{default:()=>s});const t=Or();var n=e.n(t);const a=Ei(),o=Vc();var i=e.n(o);function u(){return u=Object.assign?Object.assign.bind():function(c){for(var f=1;f{var e={3563:a=>{a.exports=Ji()},23:a=>{a.exports=Wt()},9497:a=>{a.exports=Or()},232:a=>{a.exports=ft}},r={};function t(a){var o=r[a];if(o!==void 0)return o.exports;var i=r[a]={exports:{}};return e[a](i,i.exports,t),i.exports}t.n=a=>{var o=a&&a.__esModule?()=>a.default:()=>a;return t.d(o,{a:o}),o},t.d=(a,o)=>{for(var i in o)t.o(o,i)&&!t.o(a,i)&&Object.defineProperty(a,i,{enumerable:!0,get:o[i]})},t.o=(a,o)=>Object.prototype.hasOwnProperty.call(a,o),t.r=a=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(a,"__esModule",{value:!0})};var n={};(()=>{t.r(n),t.d(n,{default:()=>_});var a=t(9497),o=t.n(a),i=t(23),u=t.n(i),s=t(232),c=t.n(s),f=t(3563),h=c().span.withConfig({displayName:"ScreenReaderContentStyles__Styled",componentId:"sc-1lnohwp-0"})(["",";"],f.mixins.screenReaderContent());function m(){return m=Object.assign?Object.assign.bind():function(w){for(var O=1;O{var e={};e.n=Ve=>{var Be=Ve&&Ve.__esModule?()=>Ve.default:()=>Ve;return e.d(Be,{a:Be}),Be},e.d=(Ve,Be)=>{for(var Ge in Be)e.o(Be,Ge)&&!e.o(Ve,Ge)&&Object.defineProperty(Ve,Ge,{enumerable:!0,get:Be[Ge]})},e.o=(Ve,Be)=>Object.prototype.hasOwnProperty.call(Ve,Be),e.r=Ve=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(Ve,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(Ve,"__esModule",{value:!0})};var r={};e.r(r),e.d(r,{default:()=>Ze});const t=Or();var n=e.n(t);const a=Wt();var o=e.n(a);const i=dP();var u=e.n(i);const s=pP();var c=e.n(s);const f=Fm();var h=e.n(f);const m=Ji(),x=Ei(),S=ft;var v=e.n(S);const b=xH();var _=e.n(b);const w=OH();var O=e.n(w);const C=CH();var E=e.n(C);const A=kH();var P=e.n(A);const j=TH();var L=e.n(j);const N=EH();var $=e.n(N);const B=PH();var U=e.n(B);const V=AH();var te=e.n(V);const ne=fP();var ce=e.n(ne);const Oe=$m();var fe=e.n(Oe),ve=v().div.withConfig({displayName:"MessageBarStyles__MessageBarContent",componentId:"sc-1uyhzza-0"})(["",";color:inherit;padding:0 8px;text-align:center;margin-right:auto;& a,& button[data-test='link']{display:inline-block;color:inherit;text-decoration:underline;text-underline-position:under;padding:0 3px 2px 3px;&:not([disabled]):focus{border-radius:",";outline:0;",";}}"],m.mixins.reset("inline"),m.variables.borderRadius,(0,m.pick)({enterprise:{dark:(0,S.css)(["box-shadow:0 0 0 2px ",";"],m.variables.gray80),light:(0,S.css)(["box-shadow:0 0 0 2px ",";"],m.variables.gray25)},prisma:{light:(0,m.pickVariant)("$type",{info:(0,S.css)(["box-shadow:0 0 0 3px ",";"],m.variables.black),warning:(0,S.css)(["box-shadow:0 0 0 3px ",";"],m.variables.black),error:(0,S.css)(["box-shadow:0 0 0 3px ",";"],m.variables.white),success:(0,S.css)(["box-shadow:0 0 0 3px ",";"],m.variables.white)}),dark:(0,S.css)(["box-shadow:0 0 0 3px ",";"],m.variables.black)}})),Re=v()(fe()).withConfig({displayName:"MessageBarStyles__MessageBarCloseWrapper",componentId:"sc-1uyhzza-1"})(["",";border:1px solid transparent;border-radius:",";color:inherit;cursor:pointer;padding:",";"," &:hover,&:focus{background:",";border:1px solid;border-color:",";color:",";}&:active{",";}",""],m.mixins.reset("flex"),m.variables.borderRadius,(0,m.pick)({enterprise:m.variables.spacingXSmall,prisma:"3px"}),(0,m.pick)({enterprise:(0,S.css)(["margin-top:1px;"])}),(0,m.pick)({prisma:m.variables.interactiveColorOverlayHover,enterprise:{dark:m.variables.gray30,light:m.variables.gray92}}),(0,m.pick)({prisma:"inherit",enterprise:m.variables.gray80}),(0,m.pick)({enterprise:{dark:m.variables.gray96,light:m.variables.linkColor}}),(0,m.pick)({prisma:(0,S.css)(["background:",";"],m.variables.interactiveColorOverlayActive),enterprise:(0,S.css)(["box-shadow:",";"],m.variables.focusShadow)}),(0,m.pick)({prisma:(0,S.css)(["&:focus{border-radius:",";",";}"],m.variables.borderRadius,(0,m.pick)({light:(0,m.pickVariant)("$type",{info:(0,S.css)(["box-shadow:0 0 0 3px ",";"],m.variables.black),warning:(0,S.css)(["box-shadow:0 0 0 3px ",";"],m.variables.black),error:(0,S.css)(["box-shadow:0 0 0 3px ",";"],m.variables.white),success:(0,S.css)(["box-shadow:0 0 0 3px ",";"],m.variables.white)}),dark:(0,S.css)(["box-shadow:0 0 0 3px ",";"],m.variables.black)}))})),me=(0,S.css)(["margin-left:auto;"]),Ce=v()(_()).withConfig({displayName:"MessageBarStyles__StyledCheckCircleIcon",componentId:"sc-1uyhzza-2"})(["",""],me),oe=v()(O()).withConfig({displayName:"MessageBarStyles__StyledExclamationCircleIcon",componentId:"sc-1uyhzza-3"})(["",""],me),Y=v()(E()).withConfig({displayName:"MessageBarStyles__StyledInformationCircleIcon",componentId:"sc-1uyhzza-4"})(["",""],me),X=v()(P()).withConfig({displayName:"MessageBarStyles__StyledExclamationTriangleIcon",componentId:"sc-1uyhzza-5"})(["",""],me),J=v()(L()).withConfig({displayName:"MessageBarStyles__StyledEnterpriseErrorIcon",componentId:"sc-1uyhzza-6"})([""," color:",";"],me,m.variables.errorColor),I=v()($()).withConfig({displayName:"MessageBarStyles__StyledEnterpriseInfoCircleIcon",componentId:"sc-1uyhzza-7"})([""," color:",";"],me,m.variables.infoColor),W=v()(U()).withConfig({displayName:"MessageBarStyles__StyledEnterpriseSuccessIcon",componentId:"sc-1uyhzza-8"})([""," color:",";"],me,m.variables.successColor),D=v()(te()).withConfig({displayName:"MessageBarStyles__StyledEnterpriseWarningIcon",componentId:"sc-1uyhzza-9"})([""," color:",";"],me,m.variables.warningColor),M=v()(ce()).withConfig({displayName:"MessageBarStyles__MessageBarWrapper",componentId:"sc-1uyhzza-10"})(["",";display:flex;align-items:center;justify-content:center;min-height:40px;margin-bottom:",";",";word-wrap:break-word;color:",";",";"],m.mixins.reset("block"),m.variables.spacingSmall,function(Ve){var Be=Ve.$hasCloseButton;return Be?(0,S.css)(["",""],(0,m.pick)({prisma:(0,S.css)(["padding:0 8px 0 32px;"]),enterprise:(0,S.css)(["padding:0 8px 0 38px;"])})):(0,S.css)(["",""],(0,m.pick)({prisma:(0,S.css)(["padding:0 33px 0 32px;"]),enterprise:(0,S.css)(["padding:0 26px 0 32px;"])}))},(0,m.pick)({prisma:(0,m.pickVariant)("$type",{info:{light:m.variables.contentColorActive,dark:m.variables.contentColorInverted},success:m.variables.contentColorInverted,warning:m.variables.black,error:m.variables.contentColorInverted}),enterprise:{dark:m.variables.gray96,light:m.variables.gray25}}),(0,m.pickVariant)("$type",{info:(0,S.css)(["background-color:",";"],(0,m.pick)({prisma:{dark:m.variables.white,light:m.variables.neutral200},enterprise:{dark:m.mixins.colorWithAlpha(m.variables.infoColor,.5),light:m.variables.infoColorL50}})),success:(0,S.css)(["background-color:",";"],(0,m.pick)({prisma:m.variables.accentColorPositive,enterprise:{dark:m.mixins.colorWithAlpha(m.variables.successColor,.5),light:m.variables.successColorL50}})),warning:(0,S.css)(["background-color:",";"],(0,m.pick)({prisma:m.variables.accentColorWarning,enterprise:{dark:m.mixins.colorWithAlpha(m.variables.warningColor,.5),light:m.variables.warningColorL50}})),error:(0,S.css)(["background-color:",";"],(0,m.pick)({prisma:m.variables.accentColorNegative,enterprise:{dark:m.mixins.colorWithAlpha(m.variables.errorColor,.5),light:m.variables.errorColorL50}}))}));function F(){return F=Object.assign?Object.assign.bind():function(Ve){for(var Be=1;Be{var e={};e.n=v=>{var b=v&&v.__esModule?()=>v.default:()=>v;return e.d(b,{a:b}),b},e.d=(v,b)=>{for(var _ in b)e.o(b,_)&&!e.o(v,_)&&Object.defineProperty(v,_,{enumerable:!0,get:b[_]})},e.o=(v,b)=>Object.prototype.hasOwnProperty.call(v,b),e.r=v=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(v,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(v,"__esModule",{value:!0})};var r={};e.r(r),e.d(r,{default:()=>S});const t=Or();var n=e.n(t);const a=Os();var o=e.n(a);const i=Cs();function u(v,b){if(v==null)return{};var _,w,O=s(v,b);if(Object.getOwnPropertySymbols){var C=Object.getOwnPropertySymbols(v);for(w=0;w=0},m=function(b){return b==="default"||b&&!h(b)?"outlined":b},x=function(b){var _=b.children,w=b.variant,O=w===void 0?"default":w,C=u(b,["children","variant"]),E=m(O),A="arrowsquaretopright-".concat(E),P=(0,t.useContext)(i.IconContext),j=c.get(E);if(P&&j){var L=P.toRender,N=P.addIcon;if(N(A,j()),!L)return null}return n().createElement(o(),C,_,P?n().createElement("use",{href:"#".concat(A)}):!!j&&j())};const S=x;mO.exports=r})()),mO.exports}var yO={exports:{}},d7;function RH(){return d7||(d7=1,(()=>{var e={};e.n=c=>{var f=c&&c.__esModule?()=>c.default:()=>c;return e.d(f,{a:f}),f},e.d=(c,f)=>{for(var h in f)e.o(f,h)&&!e.o(c,h)&&Object.defineProperty(c,h,{enumerable:!0,get:f[h]})},e.o=(c,f)=>Object.prototype.hasOwnProperty.call(c,f),e.r=c=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(c,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(c,"__esModule",{value:!0})};var r={};e.r(r),e.d(r,{default:()=>s});const t=Or();var n=e.n(t);const a=Ei(),o=Vc();var i=e.n(o);function u(){return u=Object.assign?Object.assign.bind():function(c){for(var f=1;f{var e={};e.n=M=>{var F=M&&M.__esModule?()=>M.default:()=>M;return e.d(F,{a:F}),F},e.d=(M,F)=>{for(var K in F)e.o(F,K)&&!e.o(M,K)&&Object.defineProperty(M,K,{enumerable:!0,get:F[K]})},e.o=(M,F)=>Object.prototype.hasOwnProperty.call(M,F),e.r=M=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(M,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(M,"__esModule",{value:!0})};var r={};e.r(r),e.d(r,{default:()=>D});const t=Or();var n=e.n(t);const a=Wt();var o=e.n(a);const i=Fm();var u=e.n(i);const s=hP(),c=Ei(),f=ft;var h=e.n(f);const m=Fde();var x=e.n(m);const S=RH();var v=e.n(S);const b=Ji();var _=(0,f.css)(["width:0.8em;height:0.8em;vertical-align:baseline;"]),w=h()(v()).withConfig({displayName:"External__StyledEnterprise",componentId:"sc-13bdx45-0"})([""," margin:0 0 0 3px;"],_),O=h()(x()).withConfig({displayName:"External__StyledPrisma",componentId:"sc-13bdx45-1"})([""," margin:0 0 0 4px;"],_);function C(){var M=(0,b.useSplunkTheme)(),F=M.isEnterprise;return F?n().createElement(w,{screenReaderText:null}):n().createElement(O,null)}const E=C,A=$m();var P=e.n(A),j=h()(P()).withConfig({displayName:"LinkStyles__StyledClickable",componentId:"sc-1hhltcf-0"})(["",";color:",";text-decoration:none;font-size:inherit;font-weight:inherit;line-height:inherit;border-radius:",";&:not([disabled],[aria-disabled='true']){cursor:pointer;",";&:focus{box-shadow:",";outline:0;&:active{box-shadow:none;}}}&[disabled],&[aria-disabled='true']{color:",";}"],b.mixins.reset("inline"),(0,b.pick)({enterprise:b.variables.linkColor,prisma:b.variables.interactiveColorPrimary}),(0,b.pick)({enterprise:0,prisma:"1px"}),(0,b.pick)({enterprise:(0,f.css)(["&:hover{text-decoration:underline;}"]),prisma:(0,f.css)(["&:hover:not(:focus),&:active{text-decoration:underline;text-underline-position:under;}"])}),b.variables.focusShadow,b.variables.contentColorDisabled);function L(M){"@babel/helpers - typeof";return L=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(F){return typeof F}:function(F){return F&&typeof Symbol=="function"&&F.constructor===Symbol&&F!==Symbol.prototype?"symbol":typeof F},L(M)}function N(){return N=Object.assign?Object.assign.bind():function(M){for(var F=1;F{var e={};e.n=Se=>{var ze=Se&&Se.__esModule?()=>Se.default:()=>Se;return e.d(ze,{a:ze}),ze},e.d=(Se,ze)=>{for(var Je in ze)e.o(ze,Je)&&!e.o(Se,Je)&&Object.defineProperty(Se,Je,{enumerable:!0,get:ze[Je]})},e.o=(Se,ze)=>Object.prototype.hasOwnProperty.call(Se,ze),e.r=Se=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(Se,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(Se,"__esModule",{value:!0})};var r={};e.r(r),e.d(r,{Link:()=>Y,default:()=>Te});const t=Or();var n=e.n(t);const a=Wt();var o=e.n(a);const i=xH();var u=e.n(i);const s=dP();var c=e.n(s);const f=pP();var h=e.n(f);const m=OH();var x=e.n(m);const S=CH();var v=e.n(S);const b=kH();var _=e.n(b);const w=TH();var O=e.n(w);const C=EH();var E=e.n(C);const A=PH();var P=e.n(A);const j=AH();var L=e.n(j);const N=$de();var $=e.n(N);const B=Fm();var U=e.n(B);const V=Ji(),te=Ei(),ne=ft;var ce=e.n(ne);const Oe=Nde();var fe=e.n(Oe),ve=ce()(fe()).withConfig({displayName:"LinkStyles__StyledLink",componentId:"w06zjv-0"})([""]);function Re(Se,ze){if(Se==null)return{};var Je,er,br=me(Se,ze);if(Object.getOwnPropertySymbols){var Tr=Object.getOwnPropertySymbols(Se);for(er=0;er ","{left:",";}",""],ee,V.variables.spacingXSmall,(0,V.pickVariant)("$type",{info:(0,ne.css)(["",""],(0,V.pick)({light:(0,ne.css)(["background-color:",";border:1px solid ",";"],V.variables.infoColorL50,V.variables.infoColor),dark:(0,ne.css)(["background-color:",";"],V.mixins.colorWithAlpha(V.variables.infoColor,.5))})),success:(0,ne.css)(["",""],(0,V.pick)({light:(0,ne.css)(["background-color:",";border:1px solid ",";"],V.variables.successColorL50,V.variables.successColor),dark:(0,ne.css)(["background-color:",";"],V.mixins.colorWithAlpha(V.variables.successColor,.5))})),warning:(0,ne.css)(["",""],(0,V.pick)({light:(0,ne.css)(["background-color:",";border:1px solid ",";"],V.variables.warningColorL50,V.variables.warningColor),dark:(0,ne.css)(["background-color:",";"],V.mixins.colorWithAlpha(V.variables.warningColor,.5))})),error:(0,ne.css)(["",""],(0,V.pick)({light:(0,ne.css)(["background-color:",";border:1px solid ",";"],V.variables.errorColorL50,V.variables.errorColor),dark:(0,ne.css)(["background-color:",";"],V.mixins.colorWithAlpha(V.variables.errorColor,.5))}))})),prisma:(0,ne.css)(["",";box-shadow:",";& > ","{color:",";}"],function(Je){var er=Je.$type,br={info:V.variables.contentColorActive,success:V.variables.accentColorPositive,warning:V.variables.accentColorWarning,error:V.variables.accentColorNegative},Tr=br[er];return(0,ne.css)(["background:linear-gradient( to right,"," 0,"," ",","," ",","," 100% );"],Tr,Tr,V.variables.spacingXLarge,V.variables.backgroundColorPopup,V.variables.spacingXLarge,V.variables.backgroundColorPopup)},V.variables.embossShadow,ee,V.variables.backgroundColorPopup)})},(0,V.pick)({prisma:(0,ne.css)(["& ","{color:",";}"],D,(0,V.pickVariant)("$type",{info:V.variables.contentColorActive,warning:V.variables.accentColorWarning,error:V.variables.accentColorNegative,success:V.variables.accentColorPositive}))}));function ke(Se,ze){if(Se==null)return{};var Je,er,br=_e(Se,ze);if(Object.getOwnPropertySymbols){var Tr=Object.getOwnPropertySymbols(Se);for(er=0;ers.length)&&(c=s.length);for(var f=0,h=Array(c);f{var e={};e.n=v=>{var b=v&&v.__esModule?()=>v.default:()=>v;return e.d(b,{a:b}),b},e.d=(v,b)=>{for(var _ in b)e.o(b,_)&&!e.o(v,_)&&Object.defineProperty(v,_,{enumerable:!0,get:b[_]})},e.o=(v,b)=>Object.prototype.hasOwnProperty.call(v,b),e.r=v=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(v,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(v,"__esModule",{value:!0})};var r={};e.r(r),e.d(r,{default:()=>S});const t=Or();var n=e.n(t);const a=Os();var o=e.n(a);const i=Cs();function u(v,b){if(v==null)return{};var _,w,O=s(v,b);if(Object.getOwnPropertySymbols){var C=Object.getOwnPropertySymbols(v);for(w=0;w=0},m=function(b){return b==="default"||b&&!h(b)?"outlined":b},x=function(b){var _=b.children,w=b.variant,O=w===void 0?"default":w,C=u(b,["children","variant"]),E=m(O),A="caretsmalldown-".concat(E),P=(0,t.useContext)(i.IconContext),j=c.get(E);if(P&&j){var L=P.toRender,N=P.addIcon;if(N(A,j()),!L)return null}return n().createElement(o(),C,_,P?n().createElement("use",{href:"#".concat(A)}):!!j&&j())};const S=x;wO.exports=r})()),wO.exports}var SO={exports:{}},xO={exports:{}},g7;function Hde(){return g7||(g7=1,(()=>{var e={};e.n=c=>{var f=c&&c.__esModule?()=>c.default:()=>c;return e.d(f,{a:f}),f},e.d=(c,f)=>{for(var h in f)e.o(f,h)&&!e.o(c,h)&&Object.defineProperty(c,h,{enumerable:!0,get:f[h]})},e.o=(c,f)=>Object.prototype.hasOwnProperty.call(c,f),e.r=c=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(c,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(c,"__esModule",{value:!0})};var r={};e.r(r),e.d(r,{default:()=>s});const t=Or();var n=e.n(t);const a=Ei(),o=Vc();var i=e.n(o);function u(){return u=Object.assign?Object.assign.bind():function(c){for(var f=1;f{var e={};e.n=c=>{var f=c&&c.__esModule?()=>c.default:()=>c;return e.d(f,{a:f}),f},e.d=(c,f)=>{for(var h in f)e.o(f,h)&&!e.o(c,h)&&Object.defineProperty(c,h,{enumerable:!0,get:f[h]})},e.o=(c,f)=>Object.prototype.hasOwnProperty.call(c,f),e.r=c=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(c,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(c,"__esModule",{value:!0})};var r={};e.r(r),e.d(r,{default:()=>s});const t=Or();var n=e.n(t);const a=Ei(),o=Hde();var i=e.n(o);function u(){return u=Object.assign?Object.assign.bind():function(c){for(var f=1;f{var e={};e.n=v=>{var b=v&&v.__esModule?()=>v.default:()=>v;return e.d(b,{a:b}),b},e.d=(v,b)=>{for(var _ in b)e.o(b,_)&&!e.o(v,_)&&Object.defineProperty(v,_,{enumerable:!0,get:b[_]})},e.o=(v,b)=>Object.prototype.hasOwnProperty.call(v,b),e.r=v=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(v,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(v,"__esModule",{value:!0})};var r={};e.r(r),e.d(r,{default:()=>S});const t=Or();var n=e.n(t);const a=Os();var o=e.n(a);const i=Cs();function u(v,b){if(v==null)return{};var _,w,O=s(v,b);if(Object.getOwnPropertySymbols){var C=Object.getOwnPropertySymbols(v);for(w=0;w=0},m=function(b){return b==="default"||b&&!h(b)?"outlined":b},x=function(b){var _=b.children,w=b.variant,O=w===void 0?"default":w,C=u(b,["children","variant"]),E=m(O),A="arrowsquaretoprightinset-".concat(E),P=(0,t.useContext)(i.IconContext),j=c.get(E);if(P&&j){var L=P.toRender,N=P.addIcon;if(N(A,j()),!L)return null}return n().createElement(o(),C,_,P?n().createElement("use",{href:"#".concat(A)}):!!j&&j())};const S=x;OO.exports=r})()),OO.exports}var _7;function Zde(){return _7||(_7=1,(()=>{var e={};e.n=ge=>{var ye=ge&&ge.__esModule?()=>ge.default:()=>ge;return e.d(ye,{a:ye}),ye},e.d=(ge,ye)=>{for(var Ze in ye)e.o(ye,Ze)&&!e.o(ge,Ze)&&Object.defineProperty(ge,Ze,{enumerable:!0,get:ye[Ze]})},e.o=(ge,ye)=>Object.prototype.hasOwnProperty.call(ge,ye),e.r=ge=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(ge,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(ge,"__esModule",{value:!0})};var r={};e.r(r),e.d(r,{default:()=>Ke});const t=Or();var n=e.n(t);const a=Wt();var o=e.n(a);const i=pm();var u=e.n(i);const s=hP(),c=Fm();var f=e.n(c);const h=Ei(),m=Ude(),x=ft;var S=e.n(x);const v=SH();var b=e.n(v);const _=Ji();var w=S().span.withConfig({displayName:"ButtonStyles__StyledIcon",componentId:"eqxqs2-0"})(["display:flex;align-items:center;flex-shrink:0;font-size:",";",""],(0,_.pick)({enterprise:"inherit",prisma:{comfortable:"21px",compact:"16px"}}),(0,_.pickVariant)("$isStartIcon",{true:{enterprise:(0,x.css)(["padding-right:3px;"]),prisma:(0,x.css)(["padding-right:8px;"])}})),O=S()(b()).withConfig({displayName:"ButtonStyles__StyledButtonSimple",componentId:"eqxqs2-1"})(["vertical-align:middle;text-decoration:none;white-space:nowrap;flex-grow:1;min-width:0;max-width:100%;line-height:",";min-height:",";padding:",";"," "," &[data-inline]{:where(:not(a)){display:inline-block;}:where(a){display:inline-flex;}","}[data-inline] + &&[data-inline]{margin-bottom:0;","}"],_.variables.lineHeight,_.variables.inputHeight,(0,_.pick)({enterprise:{comfortable:"5px 14px",compact:"2px 14px"},prisma:{comfortable:function(ye){var Ze=ye.$hasPrismaIcon;return Ze?"7px 18px":"9px 18px"},compact:function(ye){var Ze=ye.$isMenu;return Ze?"5px 8px 5px 16px":"5px 16px"}}}),function(ge){var ye=ge.$inline,Ze=ge.append,Ve=ge.prepend;return!ye&&!Ze&&!Ve&&(0,x.css)(["width:100%;"])},function(ge){var ye=ge.$isIconOnly;return ye&&(0,x.css)(["box-sizing:border-box;",";width:",";min-width:",";"],(0,_.pick)({enterprise:{comfortable:(0,x.css)(["padding:0 5px;"]),compact:(0,x.css)(["padding:0 2px;"])},prisma:{comfortable:(0,x.css)(["padding:0 calc("," / 2 - 1px);"],_.variables.inputHeight),compact:(0,x.css)(["padding:0 calc("," / 2 - 1px);"],_.variables.inputHeight)}}),_.variables.inputHeight,_.variables.inputHeight)},function(ge){var ye=ge.$isIconOnly;return ye?null:(0,x.css)(["width:auto;"])},function(ge){var ye=ge.prepend;return!ye&&(0,x.css)(["margin-left:",";"],_.variables.spacingSmall)}),C=S().span.withConfig({displayName:"ButtonStyles__StyledContentWrapper",componentId:"eqxqs2-2"})(["display:flex;flex-direction:row;justify-content:center;align-items:center;flex:1 0 auto;max-width:100%;box-sizing:border-box;padding:",";"],(0,_.pick)({enterprise:function(ye){var Ze=ye.$error;return Ze?"1px":(0,_.pickVariant)("$appearance",{default:"0",secondary:"0",destructive:"1px",primary:"1px",pill:"0",toggle:"0",flat:"0",subtle:"0"})},prisma:(0,_.pickVariant)("$appearance",{default:0,secondary:"1px 0",primary:"1px 0",destructive:"1px 0",pill:"1px 0",toggle:"0",flat:"1px 0",subtle:"1px 0"})})),E=S().span.withConfig({displayName:"ButtonStyles__StyledLabel",componentId:"eqxqs2-3"})(["text-overflow:ellipsis;overflow:hidden;flex:0 1 auto;&:not(:last-child){padding-right:",";}",""],(0,_.pick)({enterprise:"3px",prisma:"10px"}),function(ge){var ye=ge.$isMenu;return ye&&(0,x.css)(["flex:1 1 auto;text-align:left;"])}),A=S().span.withConfig({displayName:"ButtonStyles__StyledCaretWrapper",componentId:"eqxqs2-4"})(["display:inline-flex;",""],(0,_.pickVariant)("$disabled",{false:{prisma:(0,_.pickVariant)("$primary",{true:(0,x.css)(["color:",";"],_.variables.contentColorInverted),false:(0,x.css)(["color:",";",":hover > * > &,",":active > * > &,{color:",";}"],_.variables.contentColorDefault,O,O,_.variables.contentColorDefault)})}}));const P=Vde();var j=e.n(P);const L=Kde();var N=e.n(L),$=function(){var ye=(0,_.useSplunkTheme)(),Ze=ye.isEnterprise,Ve=ye.isCompact,Be=Ve?"20px":"24px";return Ze?n().createElement(N(),{screenReaderText:null,hideDefaultTooltip:!0,size:.5}):n().createElement(j(),{height:Be,width:Be})};const B=$,U=Gde();var V=e.n(U);const te=RH();var ne=e.n(te);function ce(){var ge=(0,_.useSplunkTheme)(),ye=ge.isEnterprise;return ye?n().createElement(ne(),{screenReaderText:null}):n().createElement(V(),null)}const Oe=ce;function fe(ge){"@babel/helpers - typeof";return fe=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(ye){return typeof ye}:function(ye){return ye&&typeof Symbol=="function"&&ye.constructor===Symbol&&ye!==Symbol.prototype?"symbol":typeof ye},fe(ge)}function ve(){return ve=Object.assign?Object.assign.bind():function(ge){for(var ye=1;ye{var e={};e.n=$=>{var B=$&&$.__esModule?()=>$.default:()=>$;return e.d(B,{a:B}),B},e.d=($,B)=>{for(var U in B)e.o(B,U)&&!e.o($,U)&&Object.defineProperty($,U,{enumerable:!0,get:B[U]})},e.o=($,B)=>Object.prototype.hasOwnProperty.call($,B),e.r=$=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty($,Symbol.toStringTag,{value:"Module"}),Object.defineProperty($,"__esModule",{value:!0})};var r={};e.r(r),e.d(r,{default:()=>N});const t=Or();var n=e.n(t);const a=Wt();var o=e.n(a);const i=oH(),u=Ji(),s=Ei(),c=ft;var f=e.n(c),h=f().div.withConfig({displayName:"WaitSpinnerStyles__Styled",componentId:"sc-1nu971z-0"})(["",";align-items:center;"],u.mixins.reset("inline-flex")),m=(0,c.keyframes)(["100%{transform:rotate(360deg);}"]),x=(0,c.keyframes)(["0%{transform:scale(0);opacity:0;}100%{transform:scale(1);opacity:1;}"]),S="2.07s",v=f().svg.withConfig({displayName:"WaitSpinnerStyles__StyledSvg",componentId:"sc-1nu971z-1"})([""," ",""],(0,u.pickVariant)("$size",{small:{enterprise:(0,c.css)(["width:14px;height:14px;"]),prisma:(0,c.css)(["width:16px;height:16px;"])},medium:{enterprise:(0,c.css)(["width:19px;height:19px;"]),prisma:(0,c.css)(["width:24px;height:24px;"])},large:{enterprise:(0,c.css)(["width:28px;height:28px;"]),prisma:(0,c.css)(["width:40px;height:40px;"])}}),function($){var B=$.$animated;return B&&(0,u.pick)({enterprise:(0,c.css)(["transform-origin:center;animation:"," 1.2s steps(64) infinite;"],m),prisma:(0,c.css)(["animation:"," "," infinite linear,"," 500ms cubic-bezier(0.01,0,0,1);"],m,S,x)})}),b=(0,c.keyframes)(["0%{stroke-dasharray:110 10;stroke-dashoffset:-5.5;animation-timing-function:cubic-bezier(0.8,0,0.83,1);}50%{stroke-dasharray:26 94;stroke-dashoffset:-152;}100%{stroke-dasharray:110 10;stroke-dashoffset:-246.5;animation-timing-function:cubic-bezier(0.33,0,0.67,1);}"]),_=(0,c.keyframes)(["0%{stroke-dasharray:7 113;stroke-dashoffset:3;animation-timing-function:cubic-bezier(0.8,0,0.83,1);}50%{stroke-dasharray:90 30;stroke-dashoffset:-60;}100%{stroke-dasharray:7 113;stroke-dashoffset:-238;animation-timing-function:cubic-bezier(0.33,0,0.67,1);}"]),w=f().circle.withConfig({displayName:"WaitSpinnerStyles__StyledPrismaBasePath",componentId:"sc-1nu971z-2"})(["stroke:",";stroke-width:2;fill:transparent;"," stroke-dasharray:110 10;stroke-dashoffset:-5.5;"],u.variables.contentColorDisabled,function($){var B=$.$animated;return B&&(0,c.css)(["animation:"," "," infinite;animation-fill-mode:backwards;"],b,S)}),O=f().circle.withConfig({displayName:"WaitSpinnerStyles__StyledPrismaFillPath",componentId:"sc-1nu971z-3"})(["fill:transparent;stroke-width:2;stroke:",";stroke-dasharray:7 113;stroke-dashoffset:3;",""],(0,u.pickVariant)("$size",{small:u.variables.contentColorDefault,medium:u.variables.contentColorDefault,large:u.variables.interactiveColorPrimary}),function($){var B=$.$animated;return B&&(0,c.css)(["animation:"," "," infinite;"],_,S)}),C=f().circle.withConfig({displayName:"WaitSpinnerStyles__StyledEnterpriseCircle",componentId:"sc-1nu971z-4"})(["fill:transparent;stroke:",";stroke-width:2px;",""],(0,u.pick)({enterprise:{dark:u.variables.white,light:u.variables.gray60},prisma:u.variables.contentColorMuted}),(0,u.pick)({enterprise:(0,c.css)(["stroke-dasharray:34 19;"])}));function E(){return E=Object.assign?Object.assign.bind():function($){for(var B=1;Bbt.jsx(Jde,{...n,elementRef:a,icon:r?bt.jsx(qH,{}):n.icon,label:r?"":n.label,appearance:t||"primary",disabled:(e||r)&&"dimmed"})),rpe=Yi(jg)` + width: 600px; +`;function S7(e){const[r,t]=or.useState(e.open),n=()=>{t(!1)};return bt.jsxs(rpe,{returnFocus:e.returnFocus,open:r,onRequestClose:n,children:[bt.jsx(jg.Header,{onRequestClose:n,title:Xh(104)}),bt.jsx(jg.Body,{children:bt.jsx(Wde,{appearance:"fill",type:"error",children:e.message})}),bt.jsx(jg.Footer,{children:bt.jsx(epe,{onClick:n,label:"OK"})})]})}class tpe extends or.Component{constructor(r){super(r),this.state={appData:{app:"",custom_rest:"",nullStr:"NULL",stanzaPrefix:""},loading:!0,syntaxError:!1}}componentDidMount(){this.setState({loading:!0}),Yce().then(r=>{this.attachProperties(r)}).catch(r=>{r&&r.name==="SyntaxError"?this.setState({syntaxError:!0,loading:!1}):r&&r.response&&r.response.status===404?this.setState({fileNotFoundError:!0,loading:!1}):console.error("Error [configManager.js] [35]: ",r)})}attachProperties(r){const{meta:t}=r,n={app:t.name,custom_rest:t.restRoot,nullStr:"NULL",stanzaPrefix:t.restRoot};Zae(r),this.setState({appData:n,unifiedConfig:r,loading:!1})}renderComponents(){return this.state.syntaxError?bt.jsx(S7,{returnFocus:()=>{},message:Xh(110,[Xh(20)]),open:!0}):this.state.fileNotFoundError?bt.jsx(S7,{returnFocus:()=>{},message:Xh(110,[Xh(118)]),open:!0}):this.props.children(this.state)}render(){return!this.state.loading&&this.renderComponents()}}const iye=Yi(jH)` + margin: 0px 1px; + border: none; + display: flex; + justify-content: center; +`,npe=Yi(qH)` + position: fixed; + top: 50%; + left: 50%; +`;Yi.div` + text-align: left; +`;const oye=Yi.span` + button { + margin-left: 80px; + min-width: 100px; + } +`,aye=Yi.div` + font-size: ${Lg.fontSize}; + text-align: center; +`;var ev=dm(),kO={},TO,x7;function ipe(){if(x7)return TO;x7=1;function e(r){return r===null}return TO=e,TO}var Pt={},gc={},EO={},PO={},O7;function Pi(){if(O7)return PO;O7=1;var e=typeof window<"u"&&window,r=typeof self<"u"&&typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&self,t=typeof ca<"u"&&ca,n=e||t||r;return PO.root=n,function(){if(!n)throw new Error("RxJS could not find any global context (window, self, global)")}(),PO}var AO={},Gd={},RO={},C7;function Nm(){if(C7)return RO;C7=1;function e(r){return typeof r=="function"}return RO.isFunction=e,RO}var jO={},qO={},k7;function Ha(){return k7||(k7=1,qO.isArray=Array.isArray||function(e){return e&&typeof e.length=="number"}),qO}var DO={},T7;function DH(){if(T7)return DO;T7=1;function e(r){return r!=null&&typeof r=="object"}return DO.isObject=e,DO}var IO={},LO={},E7;function Kn(){return E7||(E7=1,LO.errorObject={e:{}}),LO}var P7;function ui(){if(P7)return IO;P7=1;var e=Kn(),r;function t(){try{return r.apply(this,arguments)}catch(a){return e.errorObject.e=a,e.errorObject}}function n(a){return r=a,t}return IO.tryCatch=n,IO}var Zd={},A7;function IH(){if(A7)return Zd;A7=1;var e=Zd&&Zd.__extends||function(t,n){for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);function o(){this.constructor=t}t.prototype=n===null?Object.create(n):(o.prototype=n.prototype,new o)},r=function(t){e(n,t);function n(a){t.call(this),this.errors=a;var o=Error.call(this,a?a.length+` errors occurred during unsubscription: + `+a.map(function(i,u){return u+1+") "+i.toString()}).join(` + `):"");this.name=o.name="UnsubscriptionError",this.stack=o.stack,this.message=o.message}return n}(Error);return Zd.UnsubscriptionError=r,Zd}var R7;function Nn(){if(R7)return jO;R7=1;var e=Ha(),r=DH(),t=Nm(),n=ui(),a=Kn(),o=IH(),i=function(){function s(c){this.closed=!1,this._parent=null,this._parents=null,this._subscriptions=null,c&&(this._unsubscribe=c)}return s.prototype.unsubscribe=function(){var c=!1,f;if(!this.closed){var h=this,m=h._parent,x=h._parents,S=h._unsubscribe,v=h._subscriptions;this.closed=!0,this._parent=null,this._parents=null,this._subscriptions=null;for(var b=-1,_=x?x.length:0;m;)m.remove(this),m=++b<_&&x[b]||null;if(t.isFunction(S)){var w=n.tryCatch(S).call(this);w===a.errorObject&&(c=!0,f=f||(a.errorObject.e instanceof o.UnsubscriptionError?u(a.errorObject.e.errors):[a.errorObject.e]))}if(e.isArray(v))for(b=-1,_=v.length;++b<_;){var O=v[b];if(r.isObject(O)){var w=n.tryCatch(O.unsubscribe).call(O);if(w===a.errorObject){c=!0,f=f||[];var C=a.errorObject.e;C instanceof o.UnsubscriptionError?f=f.concat(u(C.errors)):f.push(C)}}}if(c)throw new o.UnsubscriptionError(f)}},s.prototype.add=function(c){if(!c||c===s.EMPTY)return s.EMPTY;if(c===this)return this;var f=c;switch(typeof c){case"function":f=new s(c);case"object":if(f.closed||typeof f.unsubscribe!="function")return f;if(this.closed)return f.unsubscribe(),f;if(typeof f._addParent!="function"){var h=f;f=new s,f._subscriptions=[h]}break;default:throw new Error("unrecognized teardown "+c+" added to Subscription.")}var m=this._subscriptions||(this._subscriptions=[]);return m.push(f),f._addParent(this),f},s.prototype.remove=function(c){var f=this._subscriptions;if(f){var h=f.indexOf(c);h!==-1&&f.splice(h,1)}},s.prototype._addParent=function(c){var f=this,h=f._parent,m=f._parents;!h||h===c?this._parent=c:m?m.indexOf(c)===-1&&m.push(c):this._parents=[c]},s.EMPTY=function(c){return c.closed=!0,c}(new s),s}();jO.Subscription=i;function u(s){return s.reduce(function(c,f){return c.concat(f instanceof o.UnsubscriptionError?f.errors:f)},[])}return jO}var MO={},j7;function LH(){return j7||(j7=1,MO.empty={closed:!0,next:function(e){},error:function(e){throw e},complete:function(){}}),MO}var $O={},q7;function Bm(){return q7||(q7=1,function(e){var r=Pi(),t=r.root.Symbol;e.rxSubscriber=typeof t=="function"&&typeof t.for=="function"?t.for("rxSubscriber"):"@@rxSubscriber",e.$$rxSubscriber=e.rxSubscriber}($O)),$O}var D7;function kr(){if(D7)return Gd;D7=1;var e=Gd&&Gd.__extends||function(s,c){for(var f in c)c.hasOwnProperty(f)&&(s[f]=c[f]);function h(){this.constructor=s}s.prototype=c===null?Object.create(c):(h.prototype=c.prototype,new h)},r=Nm(),t=Nn(),n=LH(),a=Bm(),o=function(s){e(c,s);function c(f,h,m){switch(s.call(this),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=n.empty;break;case 1:if(!f){this.destination=n.empty;break}if(typeof f=="object"){if(u(f)){var x=f[a.rxSubscriber]();this.syncErrorThrowable=x.syncErrorThrowable,this.destination=x,x.add(this)}else this.syncErrorThrowable=!0,this.destination=new i(this,f);break}default:this.syncErrorThrowable=!0,this.destination=new i(this,f,h,m);break}}return c.prototype[a.rxSubscriber]=function(){return this},c.create=function(f,h,m){var x=new c(f,h,m);return x.syncErrorThrowable=!1,x},c.prototype.next=function(f){this.isStopped||this._next(f)},c.prototype.error=function(f){this.isStopped||(this.isStopped=!0,this._error(f))},c.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},c.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,s.prototype.unsubscribe.call(this))},c.prototype._next=function(f){this.destination.next(f)},c.prototype._error=function(f){this.destination.error(f),this.unsubscribe()},c.prototype._complete=function(){this.destination.complete(),this.unsubscribe()},c.prototype._unsubscribeAndRecycle=function(){var f=this,h=f._parent,m=f._parents;return this._parent=null,this._parents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parent=h,this._parents=m,this},c}(t.Subscription);Gd.Subscriber=o;var i=function(s){e(c,s);function c(f,h,m,x){s.call(this),this._parentSubscriber=f;var S,v=this;r.isFunction(h)?S=h:h&&(S=h.next,m=h.error,x=h.complete,h!==n.empty&&(v=Object.create(h),r.isFunction(v.unsubscribe)&&this.add(v.unsubscribe.bind(v)),v.unsubscribe=this.unsubscribe.bind(this))),this._context=v,this._next=S,this._error=m,this._complete=x}return c.prototype.next=function(f){if(!this.isStopped&&this._next){var h=this._parentSubscriber;h.syncErrorThrowable?this.__tryOrSetError(h,this._next,f)&&this.unsubscribe():this.__tryOrUnsub(this._next,f)}},c.prototype.error=function(f){if(!this.isStopped){var h=this._parentSubscriber;if(this._error)h.syncErrorThrowable?(this.__tryOrSetError(h,this._error,f),this.unsubscribe()):(this.__tryOrUnsub(this._error,f),this.unsubscribe());else if(h.syncErrorThrowable)h.syncErrorValue=f,h.syncErrorThrown=!0,this.unsubscribe();else throw this.unsubscribe(),f}},c.prototype.complete=function(){var f=this;if(!this.isStopped){var h=this._parentSubscriber;if(this._complete){var m=function(){return f._complete.call(f._context)};h.syncErrorThrowable?(this.__tryOrSetError(h,m),this.unsubscribe()):(this.__tryOrUnsub(m),this.unsubscribe())}else this.unsubscribe()}},c.prototype.__tryOrUnsub=function(f,h){try{f.call(this._context,h)}catch(m){throw this.unsubscribe(),m}},c.prototype.__tryOrSetError=function(f,h,m){try{h.call(this._context,m)}catch(x){return f.syncErrorValue=x,f.syncErrorThrown=!0,!0}return!1},c.prototype._unsubscribe=function(){var f=this._parentSubscriber;this._context=null,this._parentSubscriber=null,f.unsubscribe()},c}(o);function u(s){return s instanceof o||"syncErrorThrowable"in s&&s[a.rxSubscriber]}return Gd}var I7;function ope(){if(I7)return AO;I7=1;var e=kr(),r=Bm(),t=LH();function n(a,o,i){if(a){if(a instanceof e.Subscriber)return a;if(a[r.rxSubscriber])return a[r.rxSubscriber]()}return!a&&!o&&!i?new e.Subscriber(t.empty):new e.Subscriber(a,o,i)}return AO.toSubscriber=n,AO}var FO={},L7;function zm(){return L7||(L7=1,function(e){var r=Pi();function t(n){var a,o=n.Symbol;return typeof o=="function"?o.observable?a=o.observable:(a=o("observable"),o.observable=a):a="@@observable",a}e.getSymbolObservable=t,e.observable=t(r.root),e.$$observable=e.observable}(FO)),FO}var vg={},NO={},M7;function vP(){if(M7)return NO;M7=1;function e(){}return NO.noop=e,NO}var $7;function bP(){if($7)return vg;$7=1;var e=vP();function r(){for(var n=[],a=0;a1?new u(s,f):h===1?new t.ScalarObservable(s[0],f):new n.EmptyObservable(f)},u.dispatch=function(s){var c=s.array,f=s.index,h=s.count,m=s.subscriber;if(f>=h){m.complete();return}m.next(c[f]),!m.closed&&(s.index=f+1,this.schedule(s))},u.prototype._subscribe=function(s){var c=0,f=this.array,h=f.length,m=this.scheduler;if(m)return m.schedule(u.dispatch,0,{array:f,index:c,count:h,subscriber:s});for(var x=0;xs?s:x)}function f(m){return typeof m=="number"&&r.root.isFinite(m)}function h(m){var x=+m;return x===0||isNaN(x)?x:x<0?-1:1}return sp}var cp={},b9;function bpe(){if(b9)return cp;b9=1;var e=cp&&cp.__extends||function(o,i){for(var u in i)i.hasOwnProperty(u)&&(o[u]=i[u]);function s(){this.constructor=o}o.prototype=i===null?Object.create(i):(s.prototype=i.prototype,new s)},r=Pe(),t=gP(),n=ks(),a=function(o){e(i,o);function i(u,s){o.call(this),this.arrayLike=u,this.scheduler=s,!s&&u.length===1&&(this._isScalar=!0,this.value=u[0])}return i.create=function(u,s){var c=u.length;return c===0?new n.EmptyObservable:c===1?new t.ScalarObservable(u[0],s):new i(u,s)},i.dispatch=function(u){var s=u.arrayLike,c=u.index,f=u.length,h=u.subscriber;if(!h.closed){if(c>=f){h.complete();return}h.next(s[c]),u.index=c+1,this.schedule(u)}},i.prototype._subscribe=function(u){var s=0,c=this,f=c.arrayLike,h=c.scheduler,m=f.length;if(h)return h.schedule(i.dispatch,0,{arrayLike:f,index:s,length:m,subscriber:u});for(var x=0;x0?this._next(c.shift()):this.active===0&&this.hasCompleted&&this.destination.complete()},u}(t.OuterSubscriber);return yc.MergeMapSubscriber=o,yc}var r2={},S9;function UH(){if(S9)return r2;S9=1;function e(r){return r}return r2.identity=e,r2}var x9;function Km(){if(x9)return e2;x9=1;var e=Sv(),r=UH();function t(n){return n===void 0&&(n=Number.POSITIVE_INFINITY),e.mergeMap(r.identity,null,n)}return e2.mergeAll=t,e2}var O9;function mP(){if(O9)return JO;O9=1;var e=Km();function r(){return e.mergeAll(1)}return JO.concatAll=r,JO}var C9;function xv(){if(C9)return ZO;C9=1;var e=ha(),r=NH(),t=WH(),n=mP();function a(){for(var o=[],i=0;i=0}return f2.isNumeric=r,f2}var d2={},gp={},mp={},u8;function Bpe(){if(u8)return mp;u8=1;var e=mp&&mp.__extends||function(n,a){for(var o in a)a.hasOwnProperty(o)&&(n[o]=a[o]);function i(){this.constructor=n}n.prototype=a===null?Object.create(a):(i.prototype=a.prototype,new i)},r=Nn(),t=function(n){e(a,n);function a(o,i){n.call(this)}return a.prototype.schedule=function(o,i){return this},a}(r.Subscription);return mp.Action=t,mp}var s8;function Wv(){if(s8)return gp;s8=1;var e=gp&&gp.__extends||function(a,o){for(var i in o)o.hasOwnProperty(i)&&(a[i]=o[i]);function u(){this.constructor=a}a.prototype=o===null?Object.create(o):(u.prototype=o.prototype,new u)},r=Pi(),t=Bpe(),n=function(a){e(o,a);function o(i,u){a.call(this,i,u),this.scheduler=i,this.pending=!1,this.work=u}return o.prototype.schedule=function(i,u){if(u===void 0&&(u=0),this.closed)return this;this.state=i,this.pending=!0;var s=this.id,c=this.scheduler;return s!=null&&(this.id=this.recycleAsyncId(c,s,u)),this.delay=u,this.id=this.id||this.requestAsyncId(c,this.id,u),this},o.prototype.requestAsyncId=function(i,u,s){return s===void 0&&(s=0),r.root.setInterval(i.flush.bind(i,this),s)},o.prototype.recycleAsyncId=function(i,u,s){return s===void 0&&(s=0),s!==null&&this.delay===s&&this.pending===!1?u:r.root.clearInterval(u)&&void 0||void 0},o.prototype.execute=function(i,u){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;var s=this._execute(i,u);if(s)return s;this.pending===!1&&this.id!=null&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))},o.prototype._execute=function(i,u){var s=!1,c=void 0;try{this.work(i)}catch(f){s=!0,c=!!f&&f||new Error(f)}if(s)return this.unsubscribe(),c},o.prototype._unsubscribe=function(){var i=this.id,u=this.scheduler,s=u.actions,c=s.indexOf(this);this.work=null,this.state=null,this.pending=!1,this.scheduler=null,c!==-1&&s.splice(c,1),i!=null&&(this.id=this.recycleAsyncId(u,i,null)),this.delay=null},o}(t.Action);return gp.AsyncAction=n,gp}var yp={},p2={},c8;function zpe(){if(c8)return p2;c8=1;var e=function(){function r(t,n){n===void 0&&(n=r.now),this.SchedulerAction=t,this.now=n}return r.prototype.schedule=function(t,n,a){return n===void 0&&(n=0),new this.SchedulerAction(this,t).schedule(a,n)},r.now=Date.now?Date.now:function(){return+new Date},r}();return p2.Scheduler=e,p2}var l8;function Uv(){if(l8)return yp;l8=1;var e=yp&&yp.__extends||function(n,a){for(var o in a)a.hasOwnProperty(o)&&(n[o]=a[o]);function i(){this.constructor=n}n.prototype=a===null?Object.create(a):(i.prototype=a.prototype,new i)},r=zpe(),t=function(n){e(a,n);function a(){n.apply(this,arguments),this.actions=[],this.active=!1,this.scheduled=void 0}return a.prototype.flush=function(o){var i=this.actions;if(this.active){i.push(o);return}var u;this.active=!0;do if(u=o.execute(o.state,o.delay))break;while(o=i.shift());if(this.active=!1,u){for(;o=i.shift();)o.unsubscribe();throw u}},a}(r.Scheduler);return yp.AsyncScheduler=t,yp}var f8;function Vt(){if(f8)return d2;f8=1;var e=Wv(),r=Uv();return d2.async=new r.AsyncScheduler(e.AsyncAction),d2}var d8;function Wpe(){if(d8)return bp;d8=1;var e=bp&&bp.__extends||function(o,i){for(var u in i)i.hasOwnProperty(u)&&(o[u]=i[u]);function s(){this.constructor=o}o.prototype=i===null?Object.create(i):(s.prototype=i.prototype,new s)},r=zv(),t=Pe(),n=Vt(),a=function(o){e(i,o);function i(u,s){u===void 0&&(u=0),s===void 0&&(s=n.async),o.call(this),this.period=u,this.scheduler=s,(!r.isNumeric(u)||u<0)&&(this.period=0),(!s||typeof s.schedule!="function")&&(this.scheduler=n.async)}return i.create=function(u,s){return u===void 0&&(u=0),s===void 0&&(s=n.async),new i(u,s)},i.dispatch=function(u){var s=u.index,c=u.subscriber,f=u.period;c.next(s),!c.closed&&(u.index+=1,this.schedule(u,f))},i.prototype._subscribe=function(u){var s=0,c=this.period,f=this.scheduler;u.add(f.schedule(i.dispatch,c,{index:s,subscriber:u,period:c}))},i}(t.Observable);return bp.IntervalObservable=a,bp}var p8;function Upe(){if(p8)return l2;p8=1;var e=Wpe();return l2.interval=e.IntervalObservable.create,l2}var h8;function Vpe(){if(h8)return o8;h8=1;var e=Pe(),r=Upe();return e.Observable.interval=r.interval,o8}var v8={},h2={},b8;function Yg(){if(b8)return h2;b8=1;var e=Pe(),r=Ts(),t=ha(),n=Km();function a(){for(var o=[],i=0;i1&&typeof o[o.length-1]=="number"&&(u=o.pop())):typeof c=="number"&&(u=o.pop()),s===null&&o.length===1&&o[0]instanceof e.Observable?o[0]:n.mergeAll(u)(new r.ArrayObservable(o,s))}return h2.merge=a,h2}var g8;function Hpe(){if(g8)return v8;g8=1;var e=Pe(),r=Yg();return e.Observable.merge=r.merge,v8}var m8={},_c={},y8;function yP(){if(y8)return _c;y8=1;var e=_c&&_c.__extends||function(s,c){for(var f in c)c.hasOwnProperty(f)&&(s[f]=c[f]);function h(){this.constructor=s}s.prototype=c===null?Object.create(c):(h.prototype=c.prototype,new h)},r=Ha(),t=Ts(),n=nt(),a=it();function o(){for(var s=[],c=0;c=s){c.complete();return}c.next(i),!c.closed&&(o.index=u+1,o.start=i+1,this.schedule(o))},a.prototype._subscribe=function(o){var i=0,u=this.start,s=this._count,c=this.scheduler;if(c)return c.schedule(a.dispatch,0,{index:i,count:s,start:u,subscriber:o});do{if(i++>=s){o.complete();break}if(o.next(u++),o.closed)break}while(!0)},a}(r.Observable);return Sp.RangeObservable=t,Sp}var M8;function ihe(){if(M8)return m2;M8=1;var e=nhe();return m2.range=e.RangeObservable.create,m2}var $8;function ohe(){if($8)return I8;$8=1;var e=Pe(),r=ihe();return e.Observable.range=r.range,I8}var F8={},y2={},xp={},N8;function ahe(){if(N8)return xp;N8=1;var e=xp&&xp.__extends||function(i,u){for(var s in u)u.hasOwnProperty(s)&&(i[s]=u[s]);function c(){this.constructor=i}i.prototype=u===null?Object.create(u):(c.prototype=u.prototype,new c)},r=Pe(),t=it(),n=nt(),a=function(i){e(u,i);function u(s,c){i.call(this),this.resourceFactory=s,this.observableFactory=c}return u.create=function(s,c){return new u(s,c)},u.prototype._subscribe=function(s){var c=this,f=c.resourceFactory,h=c.observableFactory,m;try{return m=f(),new o(s,m,h)}catch(x){s.error(x)}},u}(r.Observable);xp.UsingObservable=a;var o=function(i){e(u,i);function u(s,c,f){i.call(this,s),this.resource=c,this.observableFactory=f,s.add(c),this.tryUse()}return u.prototype.tryUse=function(){try{var s=this.observableFactory.call(this,this.resource);s&&this.add(t.subscribeToResult(this,s))}catch(c){this._error(c)}},u}(n.OuterSubscriber);return xp}var B8;function uhe(){if(B8)return y2;B8=1;var e=ahe();return y2.using=e.UsingObservable.create,y2}var z8;function she(){if(z8)return F8;z8=1;var e=Pe(),r=uhe();return e.Observable.using=r.using,F8}var W8={},_2={},Op={},U8;function che(){if(U8)return Op;U8=1;var e=Op&&Op.__extends||function(n,a){for(var o in a)a.hasOwnProperty(o)&&(n[o]=a[o]);function i(){this.constructor=n}n.prototype=a===null?Object.create(a):(i.prototype=a.prototype,new i)},r=Pe(),t=function(n){e(a,n);function a(o,i){n.call(this),this.error=o,this.scheduler=i}return a.create=function(o,i){return new a(o,i)},a.dispatch=function(o){var i=o.error,u=o.subscriber;u.error(i)},a.prototype._subscribe=function(o){var i=this.error,u=this.scheduler;if(o.syncErrorThrowable=!0,u)return u.schedule(a.dispatch,0,{error:i,subscriber:o});o.error(i)},a}(r.Observable);return Op.ErrorObservable=t,Op}var V8;function lhe(){if(V8)return _2;V8=1;var e=che();return _2._throw=e.ErrorObservable.create,_2}var H8;function fhe(){if(H8)return W8;H8=1;var e=Pe(),r=lhe();return e.Observable.throw=r._throw,W8}var K8={},w2={},Cp={},S2={},G8;function Gm(){if(G8)return S2;G8=1;function e(r){return r instanceof Date&&!isNaN(+r)}return S2.isDate=e,S2}var Z8;function dhe(){if(Z8)return Cp;Z8=1;var e=Cp&&Cp.__extends||function(u,s){for(var c in s)s.hasOwnProperty(c)&&(u[c]=s[c]);function f(){this.constructor=u}u.prototype=s===null?Object.create(s):(f.prototype=s.prototype,new f)},r=zv(),t=Pe(),n=Vt(),a=ha(),o=Gm(),i=function(u){e(s,u);function s(c,f,h){c===void 0&&(c=0),u.call(this),this.period=-1,this.dueTime=0,r.isNumeric(f)?this.period=Number(f)<1&&1||Number(f):a.isScheduler(f)&&(h=f),a.isScheduler(h)||(h=n.async),this.scheduler=h,this.dueTime=o.isDate(c)?+c-this.scheduler.now():c}return s.create=function(c,f,h){return c===void 0&&(c=0),new s(c,f,h)},s.dispatch=function(c){var f=c.index,h=c.period,m=c.subscriber,x=this;if(m.next(f),!m.closed){if(h===-1)return m.complete();c.index=f+1,x.schedule(c,h)}},s.prototype._subscribe=function(c){var f=0,h=this,m=h.period,x=h.dueTime,S=h.scheduler;return S.schedule(s.dispatch,x,{index:f,period:m,subscriber:c})},s}(t.Observable);return Cp.TimerObservable=i,Cp}var Y8;function VH(){if(Y8)return w2;Y8=1;var e=dhe();return w2.timer=e.TimerObservable.create,w2}var X8;function phe(){if(X8)return K8;X8=1;var e=Pe(),r=VH();return e.Observable.timer=r.timer,K8}var Q8={},x2={},ls={},J8;function Zm(){if(J8)return ls;J8=1;var e=ls&&ls.__extends||function(S,v){for(var b in v)v.hasOwnProperty(b)&&(S[b]=v[b]);function _(){this.constructor=S}S.prototype=v===null?Object.create(v):(_.prototype=v.prototype,new _)},r=Ts(),t=Ha(),n=kr(),a=nt(),o=it(),i=Nv();function u(){for(var S=[],v=0;vthis.index},S.prototype.hasCompleted=function(){return this.array.length===this.index},S}(),x=function(S){e(v,S);function v(b,_,w){S.call(this,b),this.parent=_,this.observable=w,this.stillUnsubscribed=!0,this.buffer=[],this.isComplete=!1}return v.prototype[i.iterator]=function(){return this},v.prototype.next=function(){var b=this.buffer;return b.length===0&&this.isComplete?{value:null,done:!0}:{value:b.shift(),done:!1}},v.prototype.hasValue=function(){return this.buffer.length>0},v.prototype.hasCompleted=function(){return this.buffer.length===0&&this.isComplete},v.prototype.notifyComplete=function(){this.buffer.length>0?(this.isComplete=!0,this.parent.notifyInactive()):this.destination.complete()},v.prototype.notifyNext=function(b,_,w,O,C){this.buffer.push(_),this.parent.checkIterators()},v.prototype.subscribe=function(b,_){return o.subscribeToResult(this,this.observable,this,_)},v}(a.OuterSubscriber);return ls}var eD;function hhe(){if(eD)return x2;eD=1;var e=Zm();return x2.zip=e.zipStatic,x2}var rD;function vhe(){if(rD)return Q8;rD=1;var e=Pe(),r=hhe();return e.Observable.zip=r.zip,Q8}var tD={},O2={},xi={},df={},nD;function Vv(){if(nD)return df;nD=1;var e=df&&df.__extends||function(o,i){for(var u in i)i.hasOwnProperty(u)&&(o[u]=i[u]);function s(){this.constructor=o}o.prototype=i===null?Object.create(i):(s.prototype=i.prototype,new s)},r=kr();function t(o,i){return function(s){if(typeof o!="function")throw new TypeError("argument is not a function. Are you looking for `mapTo()`?");return s.lift(new n(o,i))}}df.map=t;var n=function(){function o(i,u){this.project=i,this.thisArg=u}return o.prototype.call=function(i,u){return u.subscribe(new a(i,this.project,this.thisArg))},o}();df.MapOperator=n;var a=function(o){e(i,o);function i(u,s,c){o.call(this,u),this.project=s,this.count=0,this.thisArg=c||this}return i.prototype._next=function(u){var s;try{s=this.project.call(this.thisArg,u,this.count++)}catch(c){this.destination.error(c);return}this.destination.next(s)},i}(r.Subscriber);return df}var iD;function HH(){if(iD)return xi;iD=1;var e=xi&&xi.__extends||function(A,P){for(var j in P)P.hasOwnProperty(j)&&(A[j]=P[j]);function L(){this.constructor=A}A.prototype=P===null?Object.create(P):(L.prototype=P.prototype,new L)},r=Pi(),t=ui(),n=Kn(),a=Pe(),o=kr(),i=Vv();function u(){if(r.root.XMLHttpRequest)return new r.root.XMLHttpRequest;if(r.root.XDomainRequest)return new r.root.XDomainRequest;throw new Error("CORS is not supported by your browser")}function s(){if(r.root.XMLHttpRequest)return new r.root.XMLHttpRequest;var A=void 0;try{for(var P=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"],j=0;j<3;j++)try{if(A=P[j],new r.root.ActiveXObject(A))break}catch{}return new r.root.ActiveXObject(A)}catch{throw new Error("XMLHttpRequest is not supported by your browser")}}function c(A,P){return P===void 0&&(P=null),new b({method:"GET",url:A,headers:P})}xi.ajaxGet=c;function f(A,P,j){return new b({method:"POST",url:A,body:P,headers:j})}xi.ajaxPost=f;function h(A,P){return new b({method:"DELETE",url:A,headers:P})}xi.ajaxDelete=h;function m(A,P,j){return new b({method:"PUT",url:A,body:P,headers:j})}xi.ajaxPut=m;function x(A,P,j){return new b({method:"PATCH",url:A,body:P,headers:j})}xi.ajaxPatch=x;var S=i.map(function(A,P){return A.response});function v(A,P){return S(new b({method:"GET",url:A,responseType:"json",headers:P}))}xi.ajaxGetJSON=v;var b=function(A){e(P,A);function P(j){A.call(this);var L={async:!0,createXHR:function(){return this.crossDomain?u.call(this):s()},crossDomain:!1,withCredentials:!1,headers:{},method:"GET",responseType:"json",timeout:0};if(typeof j=="string")L.url=j;else for(var N in j)j.hasOwnProperty(N)&&(L[N]=j[N]);this.request=L}return P.prototype._subscribe=function(j){return new _(j,this.request)},P.create=function(){var j=function(L){return new P(L)};return j.get=c,j.post=f,j.delete=h,j.put=m,j.patch=x,j.getJSON=v,j}(),P}(a.Observable);xi.AjaxObservable=b;var _=function(A){e(P,A);function P(j,L){A.call(this,j),this.request=L,this.done=!1;var N=L.headers=L.headers||{};!L.crossDomain&&!N["X-Requested-With"]&&(N["X-Requested-With"]="XMLHttpRequest"),!("Content-Type"in N)&&!(r.root.FormData&&L.body instanceof r.root.FormData)&&typeof L.body<"u"&&(N["Content-Type"]="application/x-www-form-urlencoded; charset=UTF-8"),L.body=this.serializeBody(L.body,L.headers["Content-Type"]),this.send()}return P.prototype.next=function(j){this.done=!0;var L=this,N=L.xhr,$=L.request,B=L.destination,U=new w(j,N,$);B.next(U)},P.prototype.send=function(){var j=this,L=j.request,N=j.request,$=N.user,B=N.method,U=N.url,V=N.async,te=N.password,ne=N.headers,ce=N.body,Oe=L.createXHR,fe=t.tryCatch(Oe).call(L);if(fe===n.errorObject)this.error(n.errorObject.e);else{this.xhr=fe,this.setupEvents(fe,L);var ve=void 0;if($?ve=t.tryCatch(fe.open).call(fe,B,U,V,$,te):ve=t.tryCatch(fe.open).call(fe,B,U,V),ve===n.errorObject)return this.error(n.errorObject.e),null;if(V&&(fe.timeout=L.timeout,fe.responseType=L.responseType),"withCredentials"in fe&&(fe.withCredentials=!!L.withCredentials),this.setHeaders(fe,ne),ve=ce?t.tryCatch(fe.send).call(fe,ce):t.tryCatch(fe.send).call(fe),ve===n.errorObject)return this.error(n.errorObject.e),null}return fe},P.prototype.serializeBody=function(j,L){if(!j||typeof j=="string")return j;if(r.root.FormData&&j instanceof r.root.FormData)return j;if(L){var N=L.indexOf(";");N!==-1&&(L=L.substring(0,N))}switch(L){case"application/x-www-form-urlencoded":return Object.keys(j).map(function($){return encodeURIComponent($)+"="+encodeURIComponent(j[$])}).join("&");case"application/json":return JSON.stringify(j);default:return j}},P.prototype.setHeaders=function(j,L){for(var N in L)L.hasOwnProperty(N)&&j.setRequestHeader(N,L[N])},P.prototype.setupEvents=function(j,L){var N=L.progressSubscriber;function $(te){var ne=$,ce=ne.subscriber,Oe=ne.progressSubscriber,fe=ne.request;Oe&&Oe.error(te),ce.error(new E(this,fe))}if(j.ontimeout=$,$.request=L,$.subscriber=this,$.progressSubscriber=N,j.upload&&"withCredentials"in j){if(N){var B;B=function(te){var ne=B.progressSubscriber;ne.next(te)},r.root.XDomainRequest?j.onprogress=B:j.upload.onprogress=B,B.progressSubscriber=N}var U;U=function(te){var ne=U,ce=ne.progressSubscriber,Oe=ne.subscriber,fe=ne.request;ce&&ce.error(te),Oe.error(new O("ajax error",this,fe))},j.onerror=U,U.request=L,U.subscriber=this,U.progressSubscriber=N}function V(te){var ne=V,ce=ne.subscriber,Oe=ne.progressSubscriber,fe=ne.request;if(this.readyState===4){var ve=this.status===1223?204:this.status,Re=this.responseType==="text"?this.response||this.responseText:this.response;ve===0&&(ve=Re?200:0),200<=ve&&ve<300?(Oe&&Oe.complete(),ce.next(te),ce.complete()):(Oe&&Oe.error(te),ce.error(new O("ajax error "+ve,this,fe)))}}j.onreadystatechange=V,V.subscriber=this,V.progressSubscriber=N,V.request=L},P.prototype.unsubscribe=function(){var j=this,L=j.done,N=j.xhr;!L&&N&&N.readyState!==4&&typeof N.abort=="function"&&N.abort(),A.prototype.unsubscribe.call(this)},P}(o.Subscriber);xi.AjaxSubscriber=_;var w=function(){function A(P,j,L){this.originalEvent=P,this.xhr=j,this.request=L,this.status=j.status,this.responseType=j.responseType||L.responseType,this.response=C(this.responseType,j)}return A}();xi.AjaxResponse=w;var O=function(A){e(P,A);function P(j,L,N){A.call(this,j),this.message=j,this.xhr=L,this.request=N,this.status=L.status,this.responseType=L.responseType||N.responseType,this.response=C(this.responseType,L)}return P}(Error);xi.AjaxError=O;function C(A,P){switch(A){case"json":return"response"in P?P.responseType?P.response:JSON.parse(P.response||P.responseText||"null"):JSON.parse(P.responseText||"null");case"xml":return P.responseXML;case"text":default:return"response"in P?P.response:P.responseText}}var E=function(A){e(P,A);function P(j,L){A.call(this,"ajax timeout",j,L)}return P}(O);return xi.AjaxTimeoutError=E,xi}var oD;function bhe(){if(oD)return O2;oD=1;var e=HH();return O2.ajax=e.AjaxObservable.create,O2}var aD;function ghe(){if(aD)return tD;aD=1;var e=Pe(),r=bhe();return e.Observable.ajax=r.ajax,tD}var uD={},C2={},kp={},Tp={},k2={},Ep={},sD;function mhe(){if(sD)return Ep;sD=1;var e=Ep&&Ep.__extends||function(n,a){for(var o in a)a.hasOwnProperty(o)&&(n[o]=a[o]);function i(){this.constructor=n}n.prototype=a===null?Object.create(a):(i.prototype=a.prototype,new i)},r=Wv(),t=function(n){e(a,n);function a(o,i){n.call(this,o,i),this.scheduler=o,this.work=i}return a.prototype.schedule=function(o,i){return i===void 0&&(i=0),i>0?n.prototype.schedule.call(this,o,i):(this.delay=i,this.state=o,this.scheduler.flush(this),this)},a.prototype.execute=function(o,i){return i>0||this.closed?n.prototype.execute.call(this,o,i):this._execute(o,i)},a.prototype.requestAsyncId=function(o,i,u){return u===void 0&&(u=0),u!==null&&u>0||u===null&&this.delay>0?n.prototype.requestAsyncId.call(this,o,i,u):o.flush(this)},a}(r.AsyncAction);return Ep.QueueAction=t,Ep}var Pp={},cD;function yhe(){if(cD)return Pp;cD=1;var e=Pp&&Pp.__extends||function(n,a){for(var o in a)a.hasOwnProperty(o)&&(n[o]=a[o]);function i(){this.constructor=n}n.prototype=a===null?Object.create(a):(i.prototype=a.prototype,new i)},r=Uv(),t=function(n){e(a,n);function a(){n.apply(this,arguments)}return a}(r.AsyncScheduler);return Pp.QueueScheduler=t,Pp}var lD;function KH(){if(lD)return k2;lD=1;var e=mhe(),r=yhe();return k2.queue=new r.QueueScheduler(e.QueueAction),k2}var fD;function Ym(){if(fD)return Tp;fD=1;var e=Tp&&Tp.__extends||function(c,f){for(var h in f)f.hasOwnProperty(h)&&(c[h]=f[h]);function m(){this.constructor=c}c.prototype=f===null?Object.create(f):(m.prototype=f.prototype,new m)},r=Gn(),t=KH(),n=Nn(),a=Hm(),o=Wm(),i=MH(),u=function(c){e(f,c);function f(h,m,x){h===void 0&&(h=Number.POSITIVE_INFINITY),m===void 0&&(m=Number.POSITIVE_INFINITY),c.call(this),this.scheduler=x,this._events=[],this._bufferSize=h<1?1:h,this._windowTime=m<1?1:m}return f.prototype.next=function(h){var m=this._getNow();this._events.push(new s(m,h)),this._trimBufferThenGetEvents(),c.prototype.next.call(this,h)},f.prototype._subscribe=function(h){var m=this._trimBufferThenGetEvents(),x=this.scheduler,S;if(this.closed)throw new o.ObjectUnsubscribedError;this.hasError||this.isStopped?S=n.Subscription.EMPTY:(this.observers.push(h),S=new i.SubjectSubscription(this,h)),x&&h.add(h=new a.ObserveOnSubscriber(h,x));for(var v=m.length,b=0;bm&&(b=Math.max(b,v-m)),b>0&&S.splice(0,b),S},f}(r.Subject);Tp.ReplaySubject=u;var s=function(){function c(f,h){this.time=f,this.value=h}return c}();return Tp}var Ap={},dD;function _he(){if(dD)return Ap;dD=1;var e=Pi();function r(n){for(var a=[],o=1;o0&&this.destination.next(s),i.prototype._complete.call(this)},u}(r.Subscriber),o=function(i){e(u,i);function u(s,c,f){i.call(this,s),this.bufferSize=c,this.startBufferEvery=f,this.buffers=[],this.count=0}return u.prototype._next=function(s){var c=this,f=c.bufferSize,h=c.startBufferEvery,m=c.buffers,x=c.count;this.count++,x%h===0&&m.push([]);for(var S=m.length;S--;){var v=m[S];v.push(s),v.length===f&&(m.splice(S,1),this.destination.next(v))}},u.prototype._complete=function(){for(var s=this,c=s.buffers,f=s.destination;c.length>0;){var h=c.shift();h.length>0&&f.next(h)}i.prototype._complete.call(this)},u}(r.Subscriber);return jp}var SD;function khe(){if(SD)return E2;SD=1;var e=ZH();function r(t,n){return n===void 0&&(n=null),e.bufferCount(t,n)(this)}return E2.bufferCount=r,E2}var xD;function The(){if(xD)return _D;xD=1;var e=Pe(),r=khe();return e.Observable.prototype.bufferCount=r.bufferCount,_D}var OD={},P2={},qp={},CD;function YH(){if(CD)return qp;CD=1;var e=qp&&qp.__extends||function(h,m){for(var x in m)m.hasOwnProperty(x)&&(h[x]=m[x]);function S(){this.constructor=h}h.prototype=m===null?Object.create(m):(S.prototype=m.prototype,new S)},r=Vt(),t=kr(),n=ha();function a(h){var m=arguments.length,x=r.async;n.isScheduler(arguments[arguments.length-1])&&(x=arguments[arguments.length-1],m--);var S=null;m>=2&&(S=arguments[1]);var v=Number.POSITIVE_INFINITY;return m>=3&&(v=arguments[2]),function(_){return _.lift(new o(h,S,v,x))}}qp.bufferTime=a;var o=function(){function h(m,x,S,v){this.bufferTimeSpan=m,this.bufferCreationInterval=x,this.maxBufferSize=S,this.scheduler=v}return h.prototype.call=function(m,x){return x.subscribe(new u(m,this.bufferTimeSpan,this.bufferCreationInterval,this.maxBufferSize,this.scheduler))},h}(),i=function(){function h(){this.buffer=[]}return h}(),u=function(h){e(m,h);function m(x,S,v,b,_){h.call(this,x),this.bufferTimeSpan=S,this.bufferCreationInterval=v,this.maxBufferSize=b,this.scheduler=_,this.contexts=[];var w=this.openContext();if(this.timespanOnly=v==null||v<0,this.timespanOnly){var O={subscriber:this,context:w,bufferTimeSpan:S};this.add(w.closeAction=_.schedule(s,S,O))}else{var C={subscriber:this,context:w},E={bufferTimeSpan:S,bufferCreationInterval:v,subscriber:this,scheduler:_};this.add(w.closeAction=_.schedule(f,S,C)),this.add(_.schedule(c,v,E))}}return m.prototype._next=function(x){for(var S=this.contexts,v=S.length,b,_=0;_0;){var b=S.shift();v.next(b.buffer)}h.prototype._complete.call(this)},m.prototype._unsubscribe=function(){this.contexts=null},m.prototype.onBufferFull=function(x){this.closeContext(x);var S=x.closeAction;if(S.unsubscribe(),this.remove(S),!this.closed&&this.timespanOnly){x=this.openContext();var v=this.bufferTimeSpan,b={subscriber:this,context:x,bufferTimeSpan:v};this.add(x.closeAction=this.scheduler.schedule(s,v,b))}},m.prototype.openContext=function(){var x=new i;return this.contexts.push(x),x},m.prototype.closeContext=function(x){this.destination.next(x.buffer);var S=this.contexts,v=S?S.indexOf(x):-1;v>=0&&S.splice(S.indexOf(x),1)},m}(t.Subscriber);function s(h){var m=h.subscriber,x=h.context;x&&m.closeContext(x),m.closed||(h.context=m.openContext(),h.context.closeAction=this.schedule(h,h.bufferTimeSpan))}function c(h){var m=h.bufferCreationInterval,x=h.bufferTimeSpan,S=h.subscriber,v=h.scheduler,b=S.openContext(),_=this;S.closed||(S.add(b.closeAction=v.schedule(f,x,{subscriber:S,context:b})),_.schedule(h,m))}function f(h){var m=h.subscriber,x=h.context;m.closeContext(x)}return qp}var kD;function Ehe(){if(kD)return P2;kD=1;var e=Vt(),r=ha(),t=YH();function n(a){var o=arguments.length,i=e.async;r.isScheduler(arguments[arguments.length-1])&&(i=arguments[arguments.length-1],o--);var u=null;o>=2&&(u=arguments[1]);var s=Number.POSITIVE_INFINITY;return o>=3&&(s=arguments[2]),t.bufferTime(a,u,s,i)(this)}return P2.bufferTime=n,P2}var TD;function Phe(){if(TD)return OD;TD=1;var e=Pe(),r=Ehe();return e.Observable.prototype.bufferTime=r.bufferTime,OD}var ED={},A2={},Dp={},PD;function XH(){if(PD)return Dp;PD=1;var e=Dp&&Dp.__extends||function(u,s){for(var c in s)s.hasOwnProperty(c)&&(u[c]=s[c]);function f(){this.constructor=u}u.prototype=s===null?Object.create(s):(f.prototype=s.prototype,new f)},r=Nn(),t=it(),n=nt();function a(u,s){return function(f){return f.lift(new o(u,s))}}Dp.bufferToggle=a;var o=function(){function u(s,c){this.openings=s,this.closingSelector=c}return u.prototype.call=function(s,c){return c.subscribe(new i(s,this.openings,this.closingSelector))},u}(),i=function(u){e(s,u);function s(c,f,h){u.call(this,c),this.openings=f,this.closingSelector=h,this.contexts=[],this.add(t.subscribeToResult(this,f))}return s.prototype._next=function(c){for(var f=this.contexts,h=f.length,m=0;m0;){var h=f.shift();h.subscription.unsubscribe(),h.buffer=null,h.subscription=null}this.contexts=null,u.prototype._error.call(this,c)},s.prototype._complete=function(){for(var c=this.contexts;c.length>0;){var f=c.shift();this.destination.next(f.buffer),f.subscription.unsubscribe(),f.buffer=null,f.subscription=null}this.contexts=null,u.prototype._complete.call(this)},s.prototype.notifyNext=function(c,f,h,m,x){c?this.closeBuffer(c):this.openBuffer(f)},s.prototype.notifyComplete=function(c){this.closeBuffer(c.context)},s.prototype.openBuffer=function(c){try{var f=this.closingSelector,h=f.call(this,c);h&&this.trySubscribe(h)}catch(m){this._error(m)}},s.prototype.closeBuffer=function(c){var f=this.contexts;if(f&&c){var h=c.buffer,m=c.subscription;this.destination.next(h),f.splice(f.indexOf(c),1),this.remove(m),m.unsubscribe()}},s.prototype.trySubscribe=function(c){var f=this.contexts,h=[],m=new r.Subscription,x={buffer:h,subscription:m};f.push(x);var S=t.subscribeToResult(this,c,x);!S||S.closed?this.closeBuffer(x):(S.context=x,this.add(S),m.add(S))},s}(n.OuterSubscriber);return Dp}var AD;function Ahe(){if(AD)return A2;AD=1;var e=XH();function r(t,n){return e.bufferToggle(t,n)(this)}return A2.bufferToggle=r,A2}var RD;function Rhe(){if(RD)return ED;RD=1;var e=Pe(),r=Ahe();return e.Observable.prototype.bufferToggle=r.bufferToggle,ED}var jD={},R2={},Ip={},qD;function QH(){if(qD)return Ip;qD=1;var e=Ip&&Ip.__extends||function(c,f){for(var h in f)f.hasOwnProperty(h)&&(c[h]=f[h]);function m(){this.constructor=c}c.prototype=f===null?Object.create(f):(m.prototype=f.prototype,new m)},r=Nn(),t=ui(),n=Kn(),a=nt(),o=it();function i(c){return function(f){return f.lift(new u(c))}}Ip.bufferWhen=i;var u=function(){function c(f){this.closingSelector=f}return c.prototype.call=function(f,h){return h.subscribe(new s(f,this.closingSelector))},c}(),s=function(c){e(f,c);function f(h,m){c.call(this,h),this.closingSelector=m,this.subscribing=!1,this.openBuffer()}return f.prototype._next=function(h){this.buffer.push(h)},f.prototype._complete=function(){var h=this.buffer;h&&this.destination.next(h),c.prototype._complete.call(this)},f.prototype._unsubscribe=function(){this.buffer=null,this.subscribing=!1},f.prototype.notifyNext=function(h,m,x,S,v){this.openBuffer()},f.prototype.notifyComplete=function(){this.subscribing?this.complete():this.openBuffer()},f.prototype.openBuffer=function(){var h=this.closingSubscription;h&&(this.remove(h),h.unsubscribe());var m=this.buffer;this.buffer&&this.destination.next(m),this.buffer=[];var x=t.tryCatch(this.closingSelector)();x===n.errorObject?this.error(n.errorObject.e):(h=new r.Subscription,this.closingSubscription=h,this.add(h),this.subscribing=!0,h.add(o.subscribeToResult(this,x)),this.subscribing=!1)},f}(a.OuterSubscriber);return Ip}var DD;function jhe(){if(DD)return R2;DD=1;var e=QH();function r(t){return e.bufferWhen(t)(this)}return R2.bufferWhen=r,R2}var ID;function qhe(){if(ID)return jD;ID=1;var e=Pe(),r=jhe();return e.Observable.prototype.bufferWhen=r.bufferWhen,jD}var LD={},j2={},Lp={},MD;function JH(){if(MD)return Lp;MD=1;var e=Lp&&Lp.__extends||function(i,u){for(var s in u)u.hasOwnProperty(s)&&(i[s]=u[s]);function c(){this.constructor=i}i.prototype=u===null?Object.create(u):(c.prototype=u.prototype,new c)},r=nt(),t=it();function n(i){return function(s){var c=new a(i),f=s.lift(c);return c.caught=f}}Lp.catchError=n;var a=function(){function i(u){this.selector=u}return i.prototype.call=function(u,s){return s.subscribe(new o(u,this.selector,this.caught))},i}(),o=function(i){e(u,i);function u(s,c,f){i.call(this,s),this.selector=c,this.caught=f}return u.prototype.error=function(s){if(!this.isStopped){var c=void 0;try{c=this.selector(s,this.caught)}catch(f){i.prototype.error.call(this,f);return}this._unsubscribeAndRecycle(),this.add(t.subscribeToResult(this,c))}},u}(r.OuterSubscriber);return Lp}var $D;function Dhe(){if($D)return j2;$D=1;var e=JH();function r(t){return e.catchError(t)(this)}return j2._catch=r,j2}var FD;function Ihe(){if(FD)return LD;FD=1;var e=Pe(),r=Dhe();return e.Observable.prototype.catch=r._catch,e.Observable.prototype._catch=r._catch,LD}var ND={},q2={},D2={},BD;function eK(){if(BD)return D2;BD=1;var e=Vm();function r(t){return function(n){return n.lift(new e.CombineLatestOperator(t))}}return D2.combineAll=r,D2}var zD;function Lhe(){if(zD)return q2;zD=1;var e=eK();function r(t){return e.combineAll(t)(this)}return q2.combineAll=r,q2}var WD;function Mhe(){if(WD)return ND;WD=1;var e=Pe(),r=Lhe();return e.Observable.prototype.combineAll=r.combineAll,ND}var UD={},I2={},VD;function $he(){if(VD)return I2;VD=1;var e=Vm();function r(){for(var t=[],n=0;n0&&x[0].time-S.now()<=0;)x.shift().notification.observe(v);if(x.length>0){var b=Math.max(0,x[0].time-S.now());this.schedule(h,b)}else this.unsubscribe(),m.active=!1},f.prototype._schedule=function(h){this.active=!0,this.add(h.schedule(f.dispatch,this.delay,{source:this,destination:this.destination,scheduler:h}))},f.prototype.scheduleNotification=function(h){if(this.errored!==!0){var m=this.scheduler,x=new s(m.now()+this.delay,h);this.queue.push(x),this.active===!1&&this._schedule(m)}},f.prototype._next=function(h){this.scheduleNotification(a.Notification.createNext(h))},f.prototype._error=function(h){this.errored=!0,this.queue=[],this.destination.error(h)},f.prototype._complete=function(){this.scheduleNotification(a.Notification.createComplete())},f}(n.Subscriber),s=function(){function c(f,h){this.time=f,this.notification=h}return c}();return zp}var AI;function ive(){if(AI)return H2;AI=1;var e=Vt(),r=uK();function t(n,a){return a===void 0&&(a=e.async),r.delay(n,a)(this)}return H2.delay=t,H2}var RI;function ove(){if(RI)return EI;RI=1;var e=Pe(),r=ive();return e.Observable.prototype.delay=r.delay,EI}var jI={},K2={},Wp={},qI;function sK(){if(qI)return Wp;qI=1;var e=Wp&&Wp.__extends||function(f,h){for(var m in h)h.hasOwnProperty(m)&&(f[m]=h[m]);function x(){this.constructor=f}f.prototype=h===null?Object.create(h):(x.prototype=h.prototype,new x)},r=kr(),t=Pe(),n=nt(),a=it();function o(f,h){return h?function(m){return new s(m,h).lift(new i(f))}:function(m){return m.lift(new i(f))}}Wp.delayWhen=o;var i=function(){function f(h){this.delayDurationSelector=h}return f.prototype.call=function(h,m){return m.subscribe(new u(h,this.delayDurationSelector))},f}(),u=function(f){e(h,f);function h(m,x){f.call(this,m),this.delayDurationSelector=x,this.completed=!1,this.delayNotifierSubscriptions=[],this.values=[]}return h.prototype.notifyNext=function(m,x,S,v,b){this.destination.next(m),this.removeSubscription(b),this.tryComplete()},h.prototype.notifyError=function(m,x){this._error(m)},h.prototype.notifyComplete=function(m){var x=this.removeSubscription(m);x&&this.destination.next(x),this.tryComplete()},h.prototype._next=function(m){try{var x=this.delayDurationSelector(m);x&&this.tryDelay(x,m)}catch(S){this.destination.error(S)}},h.prototype._complete=function(){this.completed=!0,this.tryComplete()},h.prototype.removeSubscription=function(m){m.unsubscribe();var x=this.delayNotifierSubscriptions.indexOf(m),S=null;return x!==-1&&(S=this.values[x],this.delayNotifierSubscriptions.splice(x,1),this.values.splice(x,1)),S},h.prototype.tryDelay=function(m,x){var S=a.subscribeToResult(this,m,x);S&&!S.closed&&(this.add(S),this.delayNotifierSubscriptions.push(S)),this.values.push(x)},h.prototype.tryComplete=function(){this.completed&&this.delayNotifierSubscriptions.length===0&&this.destination.complete()},h}(n.OuterSubscriber),s=function(f){e(h,f);function h(m,x){f.call(this),this.source=m,this.subscriptionDelay=x}return h.prototype._subscribe=function(m){this.subscriptionDelay.subscribe(new c(m,this.source))},h}(t.Observable),c=function(f){e(h,f);function h(m,x){f.call(this),this.parent=m,this.source=x,this.sourceSubscribed=!1}return h.prototype._next=function(m){this.subscribeToSource()},h.prototype._error=function(m){this.unsubscribe(),this.parent.error(m)},h.prototype._complete=function(){this.subscribeToSource()},h.prototype.subscribeToSource=function(){this.sourceSubscribed||(this.sourceSubscribed=!0,this.unsubscribe(),this.source.subscribe(this.parent))},h}(r.Subscriber);return Wp}var DI;function ave(){if(DI)return K2;DI=1;var e=sK();function r(t,n){return e.delayWhen(t,n)(this)}return K2.delayWhen=r,K2}var II;function uve(){if(II)return jI;II=1;var e=Pe(),r=ave();return e.Observable.prototype.delayWhen=r.delayWhen,jI}var LI={},G2={},pf={},mg={},MI;function sve(){if(MI)return mg;MI=1;var e=Pi();function r(){return function(){function t(){this._values=[]}return t.prototype.add=function(n){this.has(n)||this._values.push(n)},t.prototype.has=function(n){return this._values.indexOf(n)!==-1},Object.defineProperty(t.prototype,"size",{get:function(){return this._values.length},enumerable:!0,configurable:!0}),t.prototype.clear=function(){this._values.length=0},t}()}return mg.minimalSetImpl=r,mg.Set=e.root.Set||r(),mg}var $I;function cK(){if($I)return pf;$I=1;var e=pf&&pf.__extends||function(u,s){for(var c in s)s.hasOwnProperty(c)&&(u[c]=s[c]);function f(){this.constructor=u}u.prototype=s===null?Object.create(s):(f.prototype=s.prototype,new f)},r=nt(),t=it(),n=sve();function a(u,s){return function(c){return c.lift(new o(u,s))}}pf.distinct=a;var o=function(){function u(s,c){this.keySelector=s,this.flushes=c}return u.prototype.call=function(s,c){return c.subscribe(new i(s,this.keySelector,this.flushes))},u}(),i=function(u){e(s,u);function s(c,f,h){u.call(this,c),this.keySelector=f,this.values=new n.Set,h&&this.add(t.subscribeToResult(this,h))}return s.prototype.notifyNext=function(c,f,h,m,x){this.values.clear()},s.prototype.notifyError=function(c,f){this._error(c)},s.prototype._next=function(c){this.keySelector?this._useKeySelector(c):this._finalizeNext(c,c)},s.prototype._useKeySelector=function(c){var f,h=this.destination;try{f=this.keySelector(c)}catch(m){h.error(m);return}this._finalizeNext(f,c)},s.prototype._finalizeNext=function(c,f){var h=this.values;h.has(c)||(h.add(c),this.destination.next(f))},s}(r.OuterSubscriber);return pf.DistinctSubscriber=i,pf}var FI;function cve(){if(FI)return G2;FI=1;var e=cK();function r(t,n){return e.distinct(t,n)(this)}return G2.distinct=r,G2}var NI;function lve(){if(NI)return LI;NI=1;var e=Pe(),r=cve();return e.Observable.prototype.distinct=r.distinct,LI}var BI={},Z2={},Up={},zI;function xP(){if(zI)return Up;zI=1;var e=Up&&Up.__extends||function(u,s){for(var c in s)s.hasOwnProperty(c)&&(u[c]=s[c]);function f(){this.constructor=u}u.prototype=s===null?Object.create(s):(f.prototype=s.prototype,new f)},r=kr(),t=ui(),n=Kn();function a(u,s){return function(c){return c.lift(new o(u,s))}}Up.distinctUntilChanged=a;var o=function(){function u(s,c){this.compare=s,this.keySelector=c}return u.prototype.call=function(s,c){return c.subscribe(new i(s,this.compare,this.keySelector))},u}(),i=function(u){e(s,u);function s(c,f,h){u.call(this,c),this.keySelector=h,this.hasKey=!1,typeof f=="function"&&(this.compare=f)}return s.prototype.compare=function(c,f){return c===f},s.prototype._next=function(c){var f=this.keySelector,h=c;if(f&&(h=t.tryCatch(this.keySelector)(c),h===n.errorObject))return this.destination.error(n.errorObject.e);var m=!1;if(this.hasKey){if(m=t.tryCatch(this.compare)(this.key,h),m===n.errorObject)return this.destination.error(n.errorObject.e)}else this.hasKey=!0;m||(this.key=h,this.destination.next(c))},s}(r.Subscriber);return Up}var WI;function fve(){if(WI)return Z2;WI=1;var e=xP();function r(t,n){return e.distinctUntilChanged(t,n)(this)}return Z2.distinctUntilChanged=r,Z2}var UI;function dve(){if(UI)return BI;UI=1;var e=Pe(),r=fve();return e.Observable.prototype.distinctUntilChanged=r.distinctUntilChanged,BI}var VI={},Y2={},X2={},HI;function lK(){if(HI)return X2;HI=1;var e=xP();function r(t,n){return e.distinctUntilChanged(function(a,o){return n?n(a[t],o[t]):a[t]===o[t]})}return X2.distinctUntilKeyChanged=r,X2}var KI;function pve(){if(KI)return Y2;KI=1;var e=lK();function r(t,n){return e.distinctUntilKeyChanged(t,n)(this)}return Y2.distinctUntilKeyChanged=r,Y2}var GI;function hve(){if(GI)return VI;GI=1;var e=Pe(),r=pve();return e.Observable.prototype.distinctUntilKeyChanged=r.distinctUntilKeyChanged,VI}var ZI={},Q2={},Vp={},YI;function fK(){if(YI)return Vp;YI=1;var e=Vp&&Vp.__extends||function(o,i){for(var u in i)i.hasOwnProperty(u)&&(o[u]=i[u]);function s(){this.constructor=o}o.prototype=i===null?Object.create(i):(s.prototype=i.prototype,new s)},r=kr();function t(o,i,u){return function(c){return c.lift(new n(o,i,u))}}Vp.tap=t;var n=function(){function o(i,u,s){this.nextOrObserver=i,this.error=u,this.complete=s}return o.prototype.call=function(i,u){return u.subscribe(new a(i,this.nextOrObserver,this.error,this.complete))},o}(),a=function(o){e(i,o);function i(u,s,c,f){o.call(this,u);var h=new r.Subscriber(s,c,f);h.syncErrorThrowable=!0,this.add(h),this.safeSubscriber=h}return i.prototype._next=function(u){var s=this.safeSubscriber;s.next(u),s.syncErrorThrown?this.destination.error(s.syncErrorValue):this.destination.next(u)},i.prototype._error=function(u){var s=this.safeSubscriber;s.error(u),s.syncErrorThrown?this.destination.error(s.syncErrorValue):this.destination.error(u)},i.prototype._complete=function(){var u=this.safeSubscriber;u.complete(),u.syncErrorThrown?this.destination.error(u.syncErrorValue):this.destination.complete()},i}(r.Subscriber);return Vp}var XI;function vve(){if(XI)return Q2;XI=1;var e=fK();function r(t,n,a){return e.tap(t,n,a)(this)}return Q2._do=r,Q2}var QI;function bve(){if(QI)return ZI;QI=1;var e=Pe(),r=vve();return e.Observable.prototype.do=r._do,e.Observable.prototype._do=r._do,ZI}var JI={},J2={},Hp={},eL;function dK(){if(eL)return Hp;eL=1;var e=Hp&&Hp.__extends||function(i,u){for(var s in u)u.hasOwnProperty(s)&&(i[s]=u[s]);function c(){this.constructor=i}i.prototype=u===null?Object.create(u):(c.prototype=u.prototype,new c)},r=nt(),t=it();function n(){return function(i){return i.lift(new a)}}Hp.exhaust=n;var a=function(){function i(){}return i.prototype.call=function(u,s){return s.subscribe(new o(u))},i}(),o=function(i){e(u,i);function u(s){i.call(this,s),this.hasCompleted=!1,this.hasSubscription=!1}return u.prototype._next=function(s){this.hasSubscription||(this.hasSubscription=!0,this.add(t.subscribeToResult(this,s)))},u.prototype._complete=function(){this.hasCompleted=!0,this.hasSubscription||this.destination.complete()},u.prototype.notifyComplete=function(s){this.remove(s),this.hasSubscription=!1,this.hasCompleted&&this.destination.complete()},u}(r.OuterSubscriber);return Hp}var rL;function gve(){if(rL)return J2;rL=1;var e=dK();function r(){return e.exhaust()(this)}return J2.exhaust=r,J2}var tL;function mve(){if(tL)return JI;tL=1;var e=Pe(),r=gve();return e.Observable.prototype.exhaust=r.exhaust,JI}var nL={},eC={},Kp={},iL;function pK(){if(iL)return Kp;iL=1;var e=Kp&&Kp.__extends||function(i,u){for(var s in u)u.hasOwnProperty(s)&&(i[s]=u[s]);function c(){this.constructor=i}i.prototype=u===null?Object.create(u):(c.prototype=u.prototype,new c)},r=nt(),t=it();function n(i,u){return function(s){return s.lift(new a(i,u))}}Kp.exhaustMap=n;var a=function(){function i(u,s){this.project=u,this.resultSelector=s}return i.prototype.call=function(u,s){return s.subscribe(new o(u,this.project,this.resultSelector))},i}(),o=function(i){e(u,i);function u(s,c,f){i.call(this,s),this.project=c,this.resultSelector=f,this.hasSubscription=!1,this.hasCompleted=!1,this.index=0}return u.prototype._next=function(s){this.hasSubscription||this.tryNext(s)},u.prototype.tryNext=function(s){var c=this.index++,f=this.destination;try{var h=this.project(s,c);this.hasSubscription=!0,this.add(t.subscribeToResult(this,h,s,c))}catch(m){f.error(m)}},u.prototype._complete=function(){this.hasCompleted=!0,this.hasSubscription||this.destination.complete()},u.prototype.notifyNext=function(s,c,f,h,m){var x=this,S=x.resultSelector,v=x.destination;S?this.trySelectResult(s,c,f,h):v.next(c)},u.prototype.trySelectResult=function(s,c,f,h){var m=this,x=m.resultSelector,S=m.destination;try{var v=x(s,c,f,h);S.next(v)}catch(b){S.error(b)}},u.prototype.notifyError=function(s){this.destination.error(s)},u.prototype.notifyComplete=function(s){this.remove(s),this.hasSubscription=!1,this.hasCompleted&&this.destination.complete()},u}(r.OuterSubscriber);return Kp}var oL;function yve(){if(oL)return eC;oL=1;var e=pK();function r(t,n){return e.exhaustMap(t,n)(this)}return eC.exhaustMap=r,eC}var aL;function _ve(){if(aL)return nL;aL=1;var e=Pe(),r=yve();return e.Observable.prototype.exhaustMap=r.exhaustMap,nL}var uL={},rC={},wc={},sL;function hK(){if(sL)return wc;sL=1;var e=wc&&wc.__extends||function(s,c){for(var f in c)c.hasOwnProperty(f)&&(s[f]=c[f]);function h(){this.constructor=s}s.prototype=c===null?Object.create(c):(h.prototype=c.prototype,new h)},r=ui(),t=Kn(),n=nt(),a=it();function o(s,c,f){return c===void 0&&(c=Number.POSITIVE_INFINITY),f===void 0&&(f=void 0),c=(c||0)<1?Number.POSITIVE_INFINITY:c,function(h){return h.lift(new i(s,c,f))}}wc.expand=o;var i=function(){function s(c,f,h){this.project=c,this.concurrent=f,this.scheduler=h}return s.prototype.call=function(c,f){return f.subscribe(new u(c,this.project,this.concurrent,this.scheduler))},s}();wc.ExpandOperator=i;var u=function(s){e(c,s);function c(f,h,m,x){s.call(this,f),this.project=h,this.concurrent=m,this.scheduler=x,this.index=0,this.active=0,this.hasCompleted=!1,m0&&this._next(h.shift()),this.hasCompleted&&this.active===0&&this.destination.complete()},c}(n.OuterSubscriber);return wc.ExpandSubscriber=u,wc}var cL;function wve(){if(cL)return rC;cL=1;var e=hK();function r(t,n,a){return n===void 0&&(n=Number.POSITIVE_INFINITY),a===void 0&&(a=void 0),n=(n||0)<1?Number.POSITIVE_INFINITY:n,e.expand(t,n,a)(this)}return rC.expand=r,rC}var lL;function Sve(){if(lL)return uL;lL=1;var e=Pe(),r=wve();return e.Observable.prototype.expand=r.expand,uL}var fL={},tC={},Gp={},Zp={},dL;function Hv(){if(dL)return Zp;dL=1;var e=Zp&&Zp.__extends||function(t,n){for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);function o(){this.constructor=t}t.prototype=n===null?Object.create(n):(o.prototype=n.prototype,new o)},r=function(t){e(n,t);function n(){var a=t.call(this,"argument out of range");this.name=a.name="ArgumentOutOfRangeError",this.stack=a.stack,this.message=a.message}return n}(Error);return Zp.ArgumentOutOfRangeError=r,Zp}var pL;function vK(){if(pL)return Gp;pL=1;var e=Gp&&Gp.__extends||function(i,u){for(var s in u)u.hasOwnProperty(s)&&(i[s]=u[s]);function c(){this.constructor=i}i.prototype=u===null?Object.create(u):(c.prototype=u.prototype,new c)},r=kr(),t=Hv();function n(i,u){return function(s){return s.lift(new a(i,u))}}Gp.elementAt=n;var a=function(){function i(u,s){if(this.index=u,this.defaultValue=s,u<0)throw new t.ArgumentOutOfRangeError}return i.prototype.call=function(u,s){return s.subscribe(new o(u,this.index,this.defaultValue))},i}(),o=function(i){e(u,i);function u(s,c,f){i.call(this,s),this.index=c,this.defaultValue=f}return u.prototype._next=function(s){this.index--===0&&(this.destination.next(s),this.destination.complete())},u.prototype._complete=function(){var s=this.destination;this.index>=0&&(typeof this.defaultValue<"u"?s.next(this.defaultValue):s.error(new t.ArgumentOutOfRangeError)),s.complete()},u}(r.Subscriber);return Gp}var hL;function xve(){if(hL)return tC;hL=1;var e=vK();function r(t,n){return e.elementAt(t,n)(this)}return tC.elementAt=r,tC}var vL;function Ove(){if(vL)return fL;vL=1;var e=Pe(),r=xve();return e.Observable.prototype.elementAt=r.elementAt,fL}var bL={},nC={},Yp={},gL;function OP(){if(gL)return Yp;gL=1;var e=Yp&&Yp.__extends||function(o,i){for(var u in i)i.hasOwnProperty(u)&&(o[u]=i[u]);function s(){this.constructor=o}o.prototype=i===null?Object.create(i):(s.prototype=i.prototype,new s)},r=kr();function t(o,i){return function(s){return s.lift(new n(o,i))}}Yp.filter=t;var n=function(){function o(i,u){this.predicate=i,this.thisArg=u}return o.prototype.call=function(i,u){return u.subscribe(new a(i,this.predicate,this.thisArg))},o}(),a=function(o){e(i,o);function i(u,s,c){o.call(this,u),this.predicate=s,this.thisArg=c,this.count=0}return i.prototype._next=function(u){var s;try{s=this.predicate.call(this.thisArg,u,this.count++)}catch(c){this.destination.error(c);return}s&&this.destination.next(u)},i}(r.Subscriber);return Yp}var mL;function Cve(){if(mL)return nC;mL=1;var e=OP();function r(t,n){return e.filter(t,n)(this)}return nC.filter=r,nC}var yL;function kve(){if(yL)return bL;yL=1;var e=Pe(),r=Cve();return e.Observable.prototype.filter=r.filter,bL}var _L={},iC={},Xp={},wL;function bK(){if(wL)return Xp;wL=1;var e=Xp&&Xp.__extends||function(i,u){for(var s in u)u.hasOwnProperty(s)&&(i[s]=u[s]);function c(){this.constructor=i}i.prototype=u===null?Object.create(u):(c.prototype=u.prototype,new c)},r=kr(),t=Nn();function n(i){return function(u){return u.lift(new a(i))}}Xp.finalize=n;var a=function(){function i(u){this.callback=u}return i.prototype.call=function(u,s){return s.subscribe(new o(u,this.callback))},i}(),o=function(i){e(u,i);function u(s,c){i.call(this,s),this.add(new t.Subscription(c))}return u}(r.Subscriber);return Xp}var SL;function Tve(){if(SL)return iC;SL=1;var e=bK();function r(t){return e.finalize(t)(this)}return iC._finally=r,iC}var xL;function Eve(){if(xL)return _L;xL=1;var e=Pe(),r=Tve();return e.Observable.prototype.finally=r._finally,e.Observable.prototype._finally=r._finally,_L}var OL={},oC={},Sc={},CL;function CP(){if(CL)return Sc;CL=1;var e=Sc&&Sc.__extends||function(o,i){for(var u in i)i.hasOwnProperty(u)&&(o[u]=i[u]);function s(){this.constructor=o}o.prototype=i===null?Object.create(i):(s.prototype=i.prototype,new s)},r=kr();function t(o,i){if(typeof o!="function")throw new TypeError("predicate is not a function");return function(u){return u.lift(new n(o,u,!1,i))}}Sc.find=t;var n=function(){function o(i,u,s,c){this.predicate=i,this.source=u,this.yieldIndex=s,this.thisArg=c}return o.prototype.call=function(i,u){return u.subscribe(new a(i,this.predicate,this.source,this.yieldIndex,this.thisArg))},o}();Sc.FindValueOperator=n;var a=function(o){e(i,o);function i(u,s,c,f,h){o.call(this,u),this.predicate=s,this.source=c,this.yieldIndex=f,this.thisArg=h,this.index=0}return i.prototype.notifyComplete=function(u){var s=this.destination;s.next(u),s.complete()},i.prototype._next=function(u){var s=this,c=s.predicate,f=s.thisArg,h=this.index++;try{var m=c.call(f||this,u,h,this.source);m&&this.notifyComplete(this.yieldIndex?h:u)}catch(x){this.destination.error(x)}},i.prototype._complete=function(){this.notifyComplete(this.yieldIndex?-1:void 0)},i}(r.Subscriber);return Sc.FindValueSubscriber=a,Sc}var kL;function Pve(){if(kL)return oC;kL=1;var e=CP();function r(t,n){return e.find(t,n)(this)}return oC.find=r,oC}var TL;function Ave(){if(TL)return OL;TL=1;var e=Pe(),r=Pve();return e.Observable.prototype.find=r.find,OL}var EL={},aC={},uC={},PL;function gK(){if(PL)return uC;PL=1;var e=CP();function r(t,n){return function(a){return a.lift(new e.FindValueOperator(t,a,!0,n))}}return uC.findIndex=r,uC}var AL;function Rve(){if(AL)return aC;AL=1;var e=gK();function r(t,n){return e.findIndex(t,n)(this)}return aC.findIndex=r,aC}var RL;function jve(){if(RL)return EL;RL=1;var e=Pe(),r=Rve();return e.Observable.prototype.findIndex=r.findIndex,EL}var jL={},sC={},Qp={},Jp={},qL;function Xm(){if(qL)return Jp;qL=1;var e=Jp&&Jp.__extends||function(t,n){for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);function o(){this.constructor=t}t.prototype=n===null?Object.create(n):(o.prototype=n.prototype,new o)},r=function(t){e(n,t);function n(){var a=t.call(this,"no elements in sequence");this.name=a.name="EmptyError",this.stack=a.stack,this.message=a.message}return n}(Error);return Jp.EmptyError=r,Jp}var DL;function mK(){if(DL)return Qp;DL=1;var e=Qp&&Qp.__extends||function(i,u){for(var s in u)u.hasOwnProperty(s)&&(i[s]=u[s]);function c(){this.constructor=i}i.prototype=u===null?Object.create(u):(c.prototype=u.prototype,new c)},r=kr(),t=Xm();function n(i,u,s){return function(c){return c.lift(new a(i,u,s,c))}}Qp.first=n;var a=function(){function i(u,s,c,f){this.predicate=u,this.resultSelector=s,this.defaultValue=c,this.source=f}return i.prototype.call=function(u,s){return s.subscribe(new o(u,this.predicate,this.resultSelector,this.defaultValue,this.source))},i}(),o=function(i){e(u,i);function u(s,c,f,h,m){i.call(this,s),this.predicate=c,this.resultSelector=f,this.defaultValue=h,this.source=m,this.index=0,this.hasCompleted=!1,this._emitted=!1}return u.prototype._next=function(s){var c=this.index++;this.predicate?this._tryPredicate(s,c):this._emit(s,c)},u.prototype._tryPredicate=function(s,c){var f;try{f=this.predicate(s,c,this.source)}catch(h){this.destination.error(h);return}f&&this._emit(s,c)},u.prototype._emit=function(s,c){if(this.resultSelector){this._tryResultSelector(s,c);return}this._emitFinal(s)},u.prototype._tryResultSelector=function(s,c){var f;try{f=this.resultSelector(s,c)}catch(h){this.destination.error(h);return}this._emitFinal(f)},u.prototype._emitFinal=function(s){var c=this.destination;this._emitted||(this._emitted=!0,c.next(s),c.complete(),this.hasCompleted=!0)},u.prototype._complete=function(){var s=this.destination;!this.hasCompleted&&typeof this.defaultValue<"u"?(s.next(this.defaultValue),s.complete()):this.hasCompleted||s.error(new t.EmptyError)},u}(r.Subscriber);return Qp}var IL;function qve(){if(IL)return sC;IL=1;var e=mK();function r(t,n,a){return e.first(t,n,a)(this)}return sC.first=r,sC}var LL;function Dve(){if(LL)return jL;LL=1;var e=Pe(),r=qve();return e.Observable.prototype.first=r.first,jL}var ML={},yg={},hf={},cC={},lC={},$L;function Ive(){if($L)return lC;$L=1;var e=function(){function r(){this.size=0,this._values=[],this._keys=[]}return r.prototype.get=function(t){var n=this._keys.indexOf(t);return n===-1?void 0:this._values[n]},r.prototype.set=function(t,n){var a=this._keys.indexOf(t);return a===-1?(this._keys.push(t),this._values.push(n),this.size++):this._values[a]=n,this},r.prototype.delete=function(t){var n=this._keys.indexOf(t);return n===-1?!1:(this._values.splice(n,1),this._keys.splice(n,1),this.size--,!0)},r.prototype.clear=function(){this._keys.length=0,this._values.length=0,this.size=0},r.prototype.forEach=function(t,n){for(var a=0;a=2&&(u=!0),function(c){return c.lift(new n(o,i,u))}}uh.scan=t;var n=function(){function o(i,u,s){s===void 0&&(s=!1),this.accumulator=i,this.seed=u,this.hasSeed=s}return o.prototype.call=function(i,u){return u.subscribe(new a(i,this.accumulator,this.seed,this.hasSeed))},o}(),a=function(o){e(i,o);function i(u,s,c,f){o.call(this,u),this.accumulator=s,this._seed=c,this.hasSeed=f,this.index=0}return Object.defineProperty(i.prototype,"seed",{get:function(){return this._seed},set:function(u){this.hasSeed=!0,this._seed=u},enumerable:!0,configurable:!0}),i.prototype._next=function(u){if(!this.hasSeed)this.seed=u,this.destination.next(u);else return this._tryNext(u)},i.prototype._tryNext=function(u){var s=this.index++,c;try{c=this.accumulator(this.seed,u,s)}catch(f){this.destination.error(f)}this.seed=c,this.destination.next(c)},i}(r.Subscriber);return uh}var sh={},AM;function EP(){if(AM)return sh;AM=1;var e=sh&&sh.__extends||function(u,s){for(var c in s)s.hasOwnProperty(c)&&(u[c]=s[c]);function f(){this.constructor=u}u.prototype=s===null?Object.create(s):(f.prototype=s.prototype,new f)},r=kr(),t=Hv(),n=ks();function a(u){return function(c){return u===0?new n.EmptyObservable:c.lift(new o(u))}}sh.takeLast=a;var o=function(){function u(s){if(this.total=s,this.total<0)throw new t.ArgumentOutOfRangeError}return u.prototype.call=function(s,c){return c.subscribe(new i(s,this.total))},u}(),i=function(u){e(s,u);function s(c,f){u.call(this,c),this.total=f,this.ring=new Array,this.count=0}return s.prototype._next=function(c){var f=this.ring,h=this.total,m=this.count++;if(f.length0)for(var h=this.count>=this.total?this.total:this.count,m=this.ring,x=0;x=2?function(s){return n.pipe(e.scan(o,i),r.takeLast(1),t.defaultIfEmpty(i))(s)}:function(s){return n.pipe(e.scan(function(c,f,h){return o(c,f,h+1)}),r.takeLast(1))(s)}}return CC.reduce=a,CC}var jM;function TK(){if(jM)return OC;jM=1;var e=Kv();function r(t){var n=typeof t=="function"?function(a,o){return t(a,o)>0?a:o}:function(a,o){return a>o?a:o};return e.reduce(n)}return OC.max=r,OC}var qM;function abe(){if(qM)return xC;qM=1;var e=TK();function r(t){return e.max(t)(this)}return xC.max=r,xC}var DM;function ube(){if(DM)return EM;DM=1;var e=Pe(),r=abe();return e.Observable.prototype.max=r.max,EM}var IM={},_g={},wg={},LM;function EK(){if(LM)return wg;LM=1;var e=Yg(),r=Yg();wg.mergeStatic=r.merge;function t(){for(var n=[],a=0;a0?this._next(c.shift()):this.active===0&&this.hasCompleted&&this.destination.complete()},u}(r.OuterSubscriber);return xc.MergeMapToSubscriber=o,xc}var KM;function hbe(){if(KM)return EC;KM=1;var e=PK();function r(t,n,a){return a===void 0&&(a=Number.POSITIVE_INFINITY),e.mergeMapTo(t,n,a)(this)}return EC.mergeMapTo=r,EC}var GM;function vbe(){if(GM)return VM;GM=1;var e=Pe(),r=hbe();return e.Observable.prototype.flatMapTo=r.mergeMapTo,e.Observable.prototype.mergeMapTo=r.mergeMapTo,VM}var ZM={},PC={},Oc={},YM;function AK(){if(YM)return Oc;YM=1;var e=Oc&&Oc.__extends||function(s,c){for(var f in c)c.hasOwnProperty(f)&&(s[f]=c[f]);function h(){this.constructor=s}s.prototype=c===null?Object.create(c):(h.prototype=c.prototype,new h)},r=ui(),t=Kn(),n=it(),a=nt();function o(s,c,f){return f===void 0&&(f=Number.POSITIVE_INFINITY),function(h){return h.lift(new i(s,c,f))}}Oc.mergeScan=o;var i=function(){function s(c,f,h){this.accumulator=c,this.seed=f,this.concurrent=h}return s.prototype.call=function(c,f){return f.subscribe(new u(c,this.accumulator,this.seed,this.concurrent))},s}();Oc.MergeScanOperator=i;var u=function(s){e(c,s);function c(f,h,m,x){s.call(this,f),this.accumulator=h,this.acc=m,this.concurrent=x,this.hasValue=!1,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}return c.prototype._next=function(f){if(this.active0?this._next(h.shift()):this.active===0&&this.hasCompleted&&(this.hasValue===!1&&this.destination.next(this.acc),this.destination.complete())},c}(a.OuterSubscriber);return Oc.MergeScanSubscriber=u,Oc}var XM;function bbe(){if(XM)return PC;XM=1;var e=AK();function r(t,n,a){return a===void 0&&(a=Number.POSITIVE_INFINITY),e.mergeScan(t,n,a)(this)}return PC.mergeScan=r,PC}var QM;function gbe(){if(QM)return ZM;QM=1;var e=Pe(),r=bbe();return e.Observable.prototype.mergeScan=r.mergeScan,ZM}var JM={},AC={},RC={},e$;function RK(){if(e$)return RC;e$=1;var e=Kv();function r(t){var n=typeof t=="function"?function(a,o){return t(a,o)<0?a:o}:function(a,o){return a1){this.connection=null;return}var c=this.connection,f=u._connection;this.connection=null,f&&(!c||f===c)&&f.unsubscribe()},i}(r.Subscriber);return ch}var o$;function jK(){if(o$)return vf;o$=1;var e=vf&&vf.__extends||function(c,f){for(var h in f)f.hasOwnProperty(h)&&(c[h]=f[h]);function m(){this.constructor=c}c.prototype=f===null?Object.create(f):(m.prototype=f.prototype,new m)},r=Gn(),t=Pe(),n=kr(),a=Nn(),o=PP(),i=function(c){e(f,c);function f(h,m){c.call(this),this.source=h,this.subjectFactory=m,this._refCount=0,this._isComplete=!1}return f.prototype._subscribe=function(h){return this.getSubject().subscribe(h)},f.prototype.getSubject=function(){var h=this._subject;return(!h||h.isStopped)&&(this._subject=this.subjectFactory()),this._subject},f.prototype.connect=function(){var h=this._connection;return h||(this._isComplete=!1,h=this._connection=new a.Subscription,h.add(this.source.subscribe(new s(this.getSubject(),this))),h.closed?(this._connection=null,h=a.Subscription.EMPTY):this._connection=h),h},f.prototype.refCount=function(){return o.refCount()(this)},f}(t.Observable);vf.ConnectableObservable=i;var u=i.prototype;vf.connectableObservableDescriptor={operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:u._subscribe},_isComplete:{value:u._isComplete,writable:!0},getSubject:{value:u.getSubject},connect:{value:u.connect},refCount:{value:u.refCount}};var s=function(c){e(f,c);function f(h,m){c.call(this,h),this.connectable=m}return f.prototype._error=function(h){this._unsubscribe(),c.prototype._error.call(this,h)},f.prototype._complete=function(){this.connectable._isComplete=!0,this._unsubscribe(),c.prototype._complete.call(this)},f.prototype._unsubscribe=function(){var h=this.connectable;if(h){this.connectable=null;var m=h._connection;h._refCount=0,h._subject=null,h._connection=null,m&&m.unsubscribe()}},f}(r.SubjectSubscriber);return function(c){e(f,c);function f(h,m){c.call(this,h),this.connectable=m}return f.prototype._unsubscribe=function(){var h=this.connectable;if(!h){this.connection=null;return}this.connectable=null;var m=h._refCount;if(m<=0){this.connection=null;return}if(h._refCount=m-1,m>1){this.connection=null;return}var x=this.connection,S=h._connection;this.connection=null,S&&(!x||S===x)&&S.unsubscribe()},f}(n.Subscriber),vf}var a$;function Hc(){if(a$)return Sg;a$=1;var e=jK();function r(n,a){return function(i){var u;if(typeof n=="function"?u=n:u=function(){return n},typeof a=="function")return i.lift(new t(u,a));var s=Object.create(i,e.connectableObservableDescriptor);return s.source=i,s.subjectFactory=u,s}}Sg.multicast=r;var t=function(){function n(a,o){this.subjectFactory=a,this.selector=o}return n.prototype.call=function(a,o){var i=this.selector,u=this.subjectFactory(),s=i(u).subscribe(a);return s.add(o.subscribe(u)),s},n}();return Sg.MulticastOperator=t,Sg}var u$;function _be(){if(u$)return jC;u$=1;var e=Hc();function r(t,n){return e.multicast(t,n)(this)}return jC.multicast=r,jC}var s$;function wbe(){if(s$)return n$;s$=1;var e=Pe(),r=_be();return e.Observable.prototype.multicast=r.multicast,n$}var c$={},qC={},l$;function Sbe(){if(l$)return qC;l$=1;var e=Hm();function r(t,n){return n===void 0&&(n=0),e.observeOn(t,n)(this)}return qC.observeOn=r,qC}var f$;function xbe(){if(f$)return c$;f$=1;var e=Pe(),r=Sbe();return e.Observable.prototype.observeOn=r.observeOn,c$}var d$={},DC={},p$;function Obe(){if(p$)return DC;p$=1;var e=_P();function r(){for(var t=[],n=0;n=2?e.reduce(t,n)(this):e.reduce(t)(this)}return YC.reduce=r,YC}var X$;function Ube(){if(X$)return Z$;X$=1;var e=Pe(),r=Wbe();return e.Observable.prototype.reduce=r.reduce,Z$}var Q$={},XC={},dh={},J$;function zK(){if(J$)return dh;J$=1;var e=dh&&dh.__extends||function(i,u){for(var s in u)u.hasOwnProperty(s)&&(i[s]=u[s]);function c(){this.constructor=i}i.prototype=u===null?Object.create(u):(c.prototype=u.prototype,new c)},r=kr(),t=ks();function n(i){return i===void 0&&(i=-1),function(u){return i===0?new t.EmptyObservable:i<0?u.lift(new a(-1,u)):u.lift(new a(i-1,u))}}dh.repeat=n;var a=function(){function i(u,s){this.count=u,this.source=s}return i.prototype.call=function(u,s){return s.subscribe(new o(u,this.count,this.source))},i}(),o=function(i){e(u,i);function u(s,c,f){i.call(this,s),this.count=c,this.source=f}return u.prototype.complete=function(){if(!this.isStopped){var s=this,c=s.source,f=s.count;if(f===0)return i.prototype.complete.call(this);f>-1&&(this.count=f-1),c.subscribe(this._unsubscribeAndRecycle())}},u}(r.Subscriber);return dh}var eF;function Vbe(){if(eF)return XC;eF=1;var e=zK();function r(t){return t===void 0&&(t=-1),e.repeat(t)(this)}return XC.repeat=r,XC}var rF;function Hbe(){if(rF)return Q$;rF=1;var e=Pe(),r=Vbe();return e.Observable.prototype.repeat=r.repeat,Q$}var tF={},QC={},ph={},nF;function WK(){if(nF)return ph;nF=1;var e=ph&&ph.__extends||function(c,f){for(var h in f)f.hasOwnProperty(h)&&(c[h]=f[h]);function m(){this.constructor=c}c.prototype=f===null?Object.create(f):(m.prototype=f.prototype,new m)},r=Gn(),t=ui(),n=Kn(),a=nt(),o=it();function i(c){return function(f){return f.lift(new u(c))}}ph.repeatWhen=i;var u=function(){function c(f){this.notifier=f}return c.prototype.call=function(f,h){return h.subscribe(new s(f,this.notifier,h))},c}(),s=function(c){e(f,c);function f(h,m,x){c.call(this,h),this.notifier=m,this.source=x,this.sourceIsBeingSubscribedTo=!0}return f.prototype.notifyNext=function(h,m,x,S,v){this.sourceIsBeingSubscribedTo=!0,this.source.subscribe(this)},f.prototype.notifyComplete=function(h){if(this.sourceIsBeingSubscribedTo===!1)return c.prototype.complete.call(this)},f.prototype.complete=function(){if(this.sourceIsBeingSubscribedTo=!1,!this.isStopped){if(this.retries||this.subscribeToRetries(),!this.retriesSubscription||this.retriesSubscription.closed)return c.prototype.complete.call(this);this._unsubscribeAndRecycle(),this.notifications.next()}},f.prototype._unsubscribe=function(){var h=this,m=h.notifications,x=h.retriesSubscription;m&&(m.unsubscribe(),this.notifications=null),x&&(x.unsubscribe(),this.retriesSubscription=null),this.retries=null},f.prototype._unsubscribeAndRecycle=function(){var h=this,m=h.notifications,x=h.retries,S=h.retriesSubscription;return this.notifications=null,this.retries=null,this.retriesSubscription=null,c.prototype._unsubscribeAndRecycle.call(this),this.notifications=m,this.retries=x,this.retriesSubscription=S,this},f.prototype.subscribeToRetries=function(){this.notifications=new r.Subject;var h=t.tryCatch(this.notifier)(this.notifications);if(h===n.errorObject)return c.prototype.complete.call(this);this.retries=h,this.retriesSubscription=o.subscribeToResult(this,h)},f}(a.OuterSubscriber);return ph}var iF;function Kbe(){if(iF)return QC;iF=1;var e=WK();function r(t){return e.repeatWhen(t)(this)}return QC.repeatWhen=r,QC}var oF;function Gbe(){if(oF)return tF;oF=1;var e=Pe(),r=Kbe();return e.Observable.prototype.repeatWhen=r.repeatWhen,tF}var aF={},JC={},hh={},uF;function UK(){if(uF)return hh;uF=1;var e=hh&&hh.__extends||function(o,i){for(var u in i)i.hasOwnProperty(u)&&(o[u]=i[u]);function s(){this.constructor=o}o.prototype=i===null?Object.create(i):(s.prototype=i.prototype,new s)},r=kr();function t(o){return o===void 0&&(o=-1),function(i){return i.lift(new n(o,i))}}hh.retry=t;var n=function(){function o(i,u){this.count=i,this.source=u}return o.prototype.call=function(i,u){return u.subscribe(new a(i,this.count,this.source))},o}(),a=function(o){e(i,o);function i(u,s,c){o.call(this,u),this.count=s,this.source=c}return i.prototype.error=function(u){if(!this.isStopped){var s=this,c=s.source,f=s.count;if(f===0)return o.prototype.error.call(this,u);f>-1&&(this.count=f-1),c.subscribe(this._unsubscribeAndRecycle())}},i}(r.Subscriber);return hh}var sF;function Zbe(){if(sF)return JC;sF=1;var e=UK();function r(t){return t===void 0&&(t=-1),e.retry(t)(this)}return JC.retry=r,JC}var cF;function Ybe(){if(cF)return aF;cF=1;var e=Pe(),r=Zbe();return e.Observable.prototype.retry=r.retry,aF}var lF={},ek={},vh={},fF;function VK(){if(fF)return vh;fF=1;var e=vh&&vh.__extends||function(c,f){for(var h in f)f.hasOwnProperty(h)&&(c[h]=f[h]);function m(){this.constructor=c}c.prototype=f===null?Object.create(f):(m.prototype=f.prototype,new m)},r=Gn(),t=ui(),n=Kn(),a=nt(),o=it();function i(c){return function(f){return f.lift(new u(c,f))}}vh.retryWhen=i;var u=function(){function c(f,h){this.notifier=f,this.source=h}return c.prototype.call=function(f,h){return h.subscribe(new s(f,this.notifier,this.source))},c}(),s=function(c){e(f,c);function f(h,m,x){c.call(this,h),this.notifier=m,this.source=x}return f.prototype.error=function(h){if(!this.isStopped){var m=this.errors,x=this.retries,S=this.retriesSubscription;if(x)this.errors=null,this.retriesSubscription=null;else{if(m=new r.Subject,x=t.tryCatch(this.notifier)(m),x===n.errorObject)return c.prototype.error.call(this,n.errorObject.e);S=o.subscribeToResult(this,x)}this._unsubscribeAndRecycle(),this.errors=m,this.retries=x,this.retriesSubscription=S,m.next(h)}},f.prototype._unsubscribe=function(){var h=this,m=h.errors,x=h.retriesSubscription;m&&(m.unsubscribe(),this.errors=null),x&&(x.unsubscribe(),this.retriesSubscription=null),this.retries=null},f.prototype.notifyNext=function(h,m,x,S,v){var b=this,_=b.errors,w=b.retries,O=b.retriesSubscription;this.errors=null,this.retries=null,this.retriesSubscription=null,this._unsubscribeAndRecycle(),this.errors=_,this.retries=w,this.retriesSubscription=O,this.source.subscribe(this)},f}(a.OuterSubscriber);return vh}var dF;function Xbe(){if(dF)return ek;dF=1;var e=VK();function r(t){return e.retryWhen(t)(this)}return ek.retryWhen=r,ek}var pF;function Qbe(){if(pF)return lF;pF=1;var e=Pe(),r=Xbe();return e.Observable.prototype.retryWhen=r.retryWhen,lF}var hF={},rk={},bh={},vF;function HK(){if(vF)return bh;vF=1;var e=bh&&bh.__extends||function(i,u){for(var s in u)u.hasOwnProperty(s)&&(i[s]=u[s]);function c(){this.constructor=i}i.prototype=u===null?Object.create(u):(c.prototype=u.prototype,new c)},r=nt(),t=it();function n(i){return function(u){return u.lift(new a(i))}}bh.sample=n;var a=function(){function i(u){this.notifier=u}return i.prototype.call=function(u,s){var c=new o(u),f=s.subscribe(c);return f.add(t.subscribeToResult(c,this.notifier)),f},i}(),o=function(i){e(u,i);function u(){i.apply(this,arguments),this.hasValue=!1}return u.prototype._next=function(s){this.value=s,this.hasValue=!0},u.prototype.notifyNext=function(s,c,f,h,m){this.emitValue()},u.prototype.notifyComplete=function(){this.emitValue()},u.prototype.emitValue=function(){this.hasValue&&(this.hasValue=!1,this.destination.next(this.value))},u}(r.OuterSubscriber);return bh}var bF;function Jbe(){if(bF)return rk;bF=1;var e=HK();function r(t){return e.sample(t)(this)}return rk.sample=r,rk}var gF;function ege(){if(gF)return hF;gF=1;var e=Pe(),r=Jbe();return e.Observable.prototype.sample=r.sample,hF}var mF={},tk={},gh={},yF;function KK(){if(yF)return gh;yF=1;var e=gh&&gh.__extends||function(u,s){for(var c in s)s.hasOwnProperty(c)&&(u[c]=s[c]);function f(){this.constructor=u}u.prototype=s===null?Object.create(s):(f.prototype=s.prototype,new f)},r=kr(),t=Vt();function n(u,s){return s===void 0&&(s=t.async),function(c){return c.lift(new a(u,s))}}gh.sampleTime=n;var a=function(){function u(s,c){this.period=s,this.scheduler=c}return u.prototype.call=function(s,c){return c.subscribe(new o(s,this.period,this.scheduler))},u}(),o=function(u){e(s,u);function s(c,f,h){u.call(this,c),this.period=f,this.scheduler=h,this.hasValue=!1,this.add(h.schedule(i,f,{subscriber:this,period:f}))}return s.prototype._next=function(c){this.lastValue=c,this.hasValue=!0},s.prototype.notifyNext=function(){this.hasValue&&(this.hasValue=!1,this.destination.next(this.lastValue))},s}(r.Subscriber);function i(u){var s=u.subscriber,c=u.period;s.notifyNext(),this.schedule(u,c)}return gh}var _F;function rge(){if(_F)return tk;_F=1;var e=Vt(),r=KK();function t(n,a){return a===void 0&&(a=e.async),r.sampleTime(n,a)(this)}return tk.sampleTime=t,tk}var wF;function tge(){if(wF)return mF;wF=1;var e=Pe(),r=rge();return e.Observable.prototype.sampleTime=r.sampleTime,mF}var SF={},nk={},xF;function nge(){if(xF)return nk;xF=1;var e=TP();function r(t,n){return arguments.length>=2?e.scan(t,n)(this):e.scan(t)(this)}return nk.scan=r,nk}var OF;function ige(){if(OF)return SF;OF=1;var e=Pe(),r=nge();return e.Observable.prototype.scan=r.scan,SF}var CF={},ik={},Cc={},kF;function GK(){if(kF)return Cc;kF=1;var e=Cc&&Cc.__extends||function(s,c){for(var f in c)c.hasOwnProperty(f)&&(s[f]=c[f]);function h(){this.constructor=s}s.prototype=c===null?Object.create(c):(h.prototype=c.prototype,new h)},r=kr(),t=ui(),n=Kn();function a(s,c){return function(f){return f.lift(new o(s,c))}}Cc.sequenceEqual=a;var o=function(){function s(c,f){this.compareTo=c,this.comparor=f}return s.prototype.call=function(c,f){return f.subscribe(new i(c,this.compareTo,this.comparor))},s}();Cc.SequenceEqualOperator=o;var i=function(s){e(c,s);function c(f,h,m){s.call(this,f),this.compareTo=h,this.comparor=m,this._a=[],this._b=[],this._oneComplete=!1,this.add(h.subscribe(new u(f,this)))}return c.prototype._next=function(f){this._oneComplete&&this._b.length===0?this.emit(!1):(this._a.push(f),this.checkValues())},c.prototype._complete=function(){this._oneComplete?this.emit(this._a.length===0&&this._b.length===0):this._oneComplete=!0},c.prototype.checkValues=function(){for(var f=this,h=f._a,m=f._b,x=f.comparor;h.length>0&&m.length>0;){var S=h.shift(),v=m.shift(),b=!1;x?(b=t.tryCatch(x)(S,v),b===n.errorObject&&this.destination.error(n.errorObject.e)):b=S===v,b||this.emit(!1)}},c.prototype.emit=function(f){var h=this.destination;h.next(f),h.complete()},c.prototype.nextB=function(f){this._oneComplete&&this._a.length===0?this.emit(!1):(this._b.push(f),this.checkValues())},c}(r.Subscriber);Cc.SequenceEqualSubscriber=i;var u=function(s){e(c,s);function c(f,h){s.call(this,f),this.parent=h}return c.prototype._next=function(f){this.parent.nextB(f)},c.prototype._error=function(f){this.parent.error(f)},c.prototype._complete=function(){this.parent._complete()},c}(r.Subscriber);return Cc}var TF;function oge(){if(TF)return ik;TF=1;var e=GK();function r(t,n){return e.sequenceEqual(t,n)(this)}return ik.sequenceEqual=r,ik}var EF;function age(){if(EF)return CF;EF=1;var e=Pe(),r=oge();return e.Observable.prototype.sequenceEqual=r.sequenceEqual,CF}var PF={},ok={},ak={},AF;function ZK(){if(AF)return ak;AF=1;var e=Hc(),r=PP(),t=Gn();function n(){return new t.Subject}function a(){return function(o){return r.refCount()(e.multicast(n)(o))}}return ak.share=a,ak}var RF;function uge(){if(RF)return ok;RF=1;var e=ZK();function r(){return e.share()(this)}return ok.share=r,ok}var jF;function sge(){if(jF)return PF;jF=1;var e=Pe(),r=uge();return e.Observable.prototype.share=r.share,PF}var qF={},uk={},sk={},DF;function YK(){if(DF)return sk;DF=1;var e=Ym();function r(n,a,o){return function(i){return i.lift(t(n,a,o))}}sk.shareReplay=r;function t(n,a,o){var i,u=0,s,c=!1,f=!1;return function(m){u++,(!i||c)&&(c=!1,i=new e.ReplaySubject(n,a,o),s=m.subscribe({next:function(S){i.next(S)},error:function(S){c=!0,i.error(S)},complete:function(){f=!0,i.complete()}}));var x=i.subscribe(this);return function(){u--,x.unsubscribe(),s&&u===0&&f&&s.unsubscribe()}}}return sk}var IF;function cge(){if(IF)return uk;IF=1;var e=YK();function r(t,n,a){return e.shareReplay(t,n,a)(this)}return uk.shareReplay=r,uk}var LF;function lge(){if(LF)return qF;LF=1;var e=Pe(),r=cge();return e.Observable.prototype.shareReplay=r.shareReplay,qF}var MF={},ck={},mh={},$F;function XK(){if($F)return mh;$F=1;var e=mh&&mh.__extends||function(i,u){for(var s in u)u.hasOwnProperty(s)&&(i[s]=u[s]);function c(){this.constructor=i}i.prototype=u===null?Object.create(u):(c.prototype=u.prototype,new c)},r=kr(),t=Xm();function n(i){return function(u){return u.lift(new a(i,u))}}mh.single=n;var a=function(){function i(u,s){this.predicate=u,this.source=s}return i.prototype.call=function(u,s){return s.subscribe(new o(u,this.predicate,this.source))},i}(),o=function(i){e(u,i);function u(s,c,f){i.call(this,s),this.predicate=c,this.source=f,this.seenValue=!1,this.index=0}return u.prototype.applySingleValue=function(s){this.seenValue?this.destination.error("Sequence contains more than one element"):(this.seenValue=!0,this.singleValue=s)},u.prototype._next=function(s){var c=this.index++;this.predicate?this.tryNext(s,c):this.applySingleValue(s)},u.prototype.tryNext=function(s,c){try{this.predicate(s,c,this.source)&&this.applySingleValue(s)}catch(f){this.destination.error(f)}},u.prototype._complete=function(){var s=this.destination;this.index>0?(s.next(this.seenValue?this.singleValue:void 0),s.complete()):s.error(new t.EmptyError)},u}(r.Subscriber);return mh}var FF;function fge(){if(FF)return ck;FF=1;var e=XK();function r(t){return e.single(t)(this)}return ck.single=r,ck}var NF;function dge(){if(NF)return MF;NF=1;var e=Pe(),r=fge();return e.Observable.prototype.single=r.single,MF}var BF={},lk={},yh={},zF;function QK(){if(zF)return yh;zF=1;var e=yh&&yh.__extends||function(o,i){for(var u in i)i.hasOwnProperty(u)&&(o[u]=i[u]);function s(){this.constructor=o}o.prototype=i===null?Object.create(i):(s.prototype=i.prototype,new s)},r=kr();function t(o){return function(i){return i.lift(new n(o))}}yh.skip=t;var n=function(){function o(i){this.total=i}return o.prototype.call=function(i,u){return u.subscribe(new a(i,this.total))},o}(),a=function(o){e(i,o);function i(u,s){o.call(this,u),this.total=s,this.count=0}return i.prototype._next=function(u){++this.count>this.total&&this.destination.next(u)},i}(r.Subscriber);return yh}var WF;function pge(){if(WF)return lk;WF=1;var e=QK();function r(t){return e.skip(t)(this)}return lk.skip=r,lk}var UF;function hge(){if(UF)return BF;UF=1;var e=Pe(),r=pge();return e.Observable.prototype.skip=r.skip,BF}var VF={},fk={},_h={},HF;function JK(){if(HF)return _h;HF=1;var e=_h&&_h.__extends||function(i,u){for(var s in u)u.hasOwnProperty(s)&&(i[s]=u[s]);function c(){this.constructor=i}i.prototype=u===null?Object.create(u):(c.prototype=u.prototype,new c)},r=kr(),t=Hv();function n(i){return function(u){return u.lift(new a(i))}}_h.skipLast=n;var a=function(){function i(u){if(this._skipCount=u,this._skipCount<0)throw new t.ArgumentOutOfRangeError}return i.prototype.call=function(u,s){return this._skipCount===0?s.subscribe(new r.Subscriber(u)):s.subscribe(new o(u,this._skipCount))},i}(),o=function(i){e(u,i);function u(s,c){i.call(this,s),this._skipCount=c,this._count=0,this._ring=new Array(c)}return u.prototype._next=function(s){var c=this._skipCount,f=this._count++;if(f1?n.concat(new e.ArrayObservable(i,c),s):n.concat(new t.EmptyObservable(c),s)}}return vk.startWith=o,vk}var oN;function wge(){if(oN)return hk;oN=1;var e=tG();function r(){for(var t=[],n=0;n0?a.prototype.requestAsyncId.call(this,i,u,s):(i.actions.push(this),i.scheduled||(i.scheduled=r.Immediate.setImmediate(i.flush.bind(i,null))))},o.prototype.recycleAsyncId=function(i,u,s){if(s===void 0&&(s=0),s!==null&&s>0||s===null&&this.delay>0)return a.prototype.recycleAsyncId.call(this,i,u,s);i.actions.length===0&&(r.Immediate.clearImmediate(u),i.scheduled=void 0)},o}(t.AsyncAction);return Oh.AsapAction=n,Oh}var Ch={},lN;function Cge(){if(lN)return Ch;lN=1;var e=Ch&&Ch.__extends||function(n,a){for(var o in a)a.hasOwnProperty(o)&&(n[o]=a[o]);function i(){this.constructor=n}n.prototype=a===null?Object.create(a):(i.prototype=a.prototype,new i)},r=Uv(),t=function(n){e(a,n);function a(){n.apply(this,arguments)}return a.prototype.flush=function(o){this.active=!0,this.scheduled=void 0;var i=this.actions,u,s=-1,c=i.length;o=o||i.shift();do if(u=o.execute(o.state,o.delay))break;while(++s0?this.startWindowEvery:this.windowSize,f=this.destination,h=this.windowSize,m=this.windows,x=m.length,S=0;S=0&&v%c===0&&!this.closed&&m.shift().complete(),++this.count%c===0&&!this.closed){var b=new t.Subject;m.push(b),f.next(b)}},u.prototype._error=function(s){var c=this.windows;if(c)for(;c.length>0&&!this.closed;)c.shift().error(s);this.destination.error(s)},u.prototype._complete=function(){var s=this.windows;if(s)for(;s.length>0&&!this.closed;)s.shift().complete();this.destination.complete()},u.prototype._unsubscribe=function(){this.count=0,this.windows=null},u}(r.Subscriber);return Mh}var OB;function ome(){if(OB)return Ik;OB=1;var e=gG();function r(t,n){return n===void 0&&(n=0),e.windowCount(t,n)(this)}return Ik.windowCount=r,Ik}var CB;function ame(){if(CB)return SB;CB=1;var e=Pe(),r=ome();return e.Observable.prototype.windowCount=r.windowCount,SB}var kB={},Lk={},$h={},TB;function mG(){if(TB)return $h;TB=1;var e=$h&&$h.__extends||function(x,S){for(var v in S)S.hasOwnProperty(v)&&(x[v]=S[v]);function b(){this.constructor=x}x.prototype=S===null?Object.create(S):(b.prototype=S.prototype,new b)},r=Gn(),t=Vt(),n=kr(),a=zv(),o=ha();function i(x){var S=t.async,v=null,b=Number.POSITIVE_INFINITY;return o.isScheduler(arguments[3])&&(S=arguments[3]),o.isScheduler(arguments[2])?S=arguments[2]:a.isNumeric(arguments[2])&&(b=arguments[2]),o.isScheduler(arguments[1])?S=arguments[1]:a.isNumeric(arguments[1])&&(v=arguments[1]),function(w){return w.lift(new u(x,v,b,S))}}$h.windowTime=i;var u=function(){function x(S,v,b,_){this.windowTimeSpan=S,this.windowCreationInterval=v,this.maxWindowSize=b,this.scheduler=_}return x.prototype.call=function(S,v){return v.subscribe(new c(S,this.windowTimeSpan,this.windowCreationInterval,this.maxWindowSize,this.scheduler))},x}(),s=function(x){e(S,x);function S(){x.apply(this,arguments),this._numberOfNextedValues=0}return S.prototype.next=function(v){this._numberOfNextedValues++,x.prototype.next.call(this,v)},Object.defineProperty(S.prototype,"numberOfNextedValues",{get:function(){return this._numberOfNextedValues},enumerable:!0,configurable:!0}),S}(r.Subject),c=function(x){e(S,x);function S(v,b,_,w,O){x.call(this,v),this.destination=v,this.windowTimeSpan=b,this.windowCreationInterval=_,this.maxWindowSize=w,this.scheduler=O,this.windows=[];var C=this.openWindow();if(_!==null&&_>=0){var E={subscriber:this,window:C,context:null},A={windowTimeSpan:b,windowCreationInterval:_,subscriber:this,scheduler:O};this.add(O.schedule(m,b,E)),this.add(O.schedule(h,_,A))}else{var P={subscriber:this,window:C,windowTimeSpan:b};this.add(O.schedule(f,b,P))}}return S.prototype._next=function(v){for(var b=this.windows,_=b.length,w=0;w<_;w++){var O=b[w];O.closed||(O.next(v),O.numberOfNextedValues>=this.maxWindowSize&&this.closeWindow(O))}},S.prototype._error=function(v){for(var b=this.windows;b.length>0;)b.shift().error(v);this.destination.error(v)},S.prototype._complete=function(){for(var v=this.windows;v.length>0;){var b=v.shift();b.closed||b.complete()}this.destination.complete()},S.prototype.openWindow=function(){var v=new s;this.windows.push(v);var b=this.destination;return b.next(v),v},S.prototype.closeWindow=function(v){v.complete();var b=this.windows;b.splice(b.indexOf(v),1)},S}(n.Subscriber);function f(x){var S=x.subscriber,v=x.windowTimeSpan,b=x.window;b&&S.closeWindow(b),x.window=S.openWindow(),this.schedule(x,v)}function h(x){var S=x.windowTimeSpan,v=x.subscriber,b=x.scheduler,_=x.windowCreationInterval,w=v.openWindow(),O=this,C={action:O,subscription:null},E={subscriber:v,window:w,context:C};C.subscription=b.schedule(m,S,E),O.add(C.subscription),O.schedule(x,_)}function m(x){var S=x.subscriber,v=x.window,b=x.context;b&&b.action&&b.subscription&&b.action.remove(b.subscription),S.closeWindow(v)}return $h}var EB;function ume(){if(EB)return Lk;EB=1;var e=Vt(),r=zv(),t=ha(),n=mG();function a(o){var i=e.async,u=null,s=Number.POSITIVE_INFINITY;return t.isScheduler(arguments[3])&&(i=arguments[3]),t.isScheduler(arguments[2])?i=arguments[2]:r.isNumeric(arguments[2])&&(s=arguments[2]),t.isScheduler(arguments[1])?i=arguments[1]:r.isNumeric(arguments[1])&&(u=arguments[1]),n.windowTime(o,u,s,i)(this)}return Lk.windowTime=a,Lk}var PB;function sme(){if(PB)return kB;PB=1;var e=Pe(),r=ume();return e.Observable.prototype.windowTime=r.windowTime,kB}var AB={},Mk={},Fh={},RB;function yG(){if(RB)return Fh;RB=1;var e=Fh&&Fh.__extends||function(f,h){for(var m in h)h.hasOwnProperty(m)&&(f[m]=h[m]);function x(){this.constructor=f}f.prototype=h===null?Object.create(h):(x.prototype=h.prototype,new x)},r=Gn(),t=Nn(),n=ui(),a=Kn(),o=nt(),i=it();function u(f,h){return function(m){return m.lift(new s(f,h))}}Fh.windowToggle=u;var s=function(){function f(h,m){this.openings=h,this.closingSelector=m}return f.prototype.call=function(h,m){return m.subscribe(new c(h,this.openings,this.closingSelector))},f}(),c=function(f){e(h,f);function h(m,x,S){f.call(this,m),this.openings=x,this.closingSelector=S,this.contexts=[],this.add(this.openSubscription=i.subscribeToResult(this,x,x))}return h.prototype._next=function(m){var x=this.contexts;if(x)for(var S=x.length,v=0;v0){var S=x.indexOf(f);S!==-1&&x.splice(S,1)}},u.prototype.notifyComplete=function(){},u.prototype._next=function(s){if(this.toRespond.length===0){var c=[s].concat(this.values);this.project?this._tryProject(c):this.destination.next(c)}},u.prototype._tryProject=function(s){var c;try{c=this.project.apply(this,s)}catch(f){this.destination.error(f);return}this.destination.next(c)},u}(r.OuterSubscriber);return Bh}var NB;function pme(){if(NB)return Fk;NB=1;var e=wG();function r(){for(var t=[],n=0;ns.index?1:-1:u.delay>s.delay?1:-1},i}(r.AsyncAction);return gf.VirtualAction=a,gf}var rz;function wme(){if(rz)return zh;rz=1;var e=zh&&zh.__extends||function(c,f){for(var h in f)f.hasOwnProperty(h)&&(c[h]=f[h]);function m(){this.constructor=c}c.prototype=f===null?Object.create(f):(m.prototype=f.prototype,new m)},r=Pe(),t=Bv(),n=yme(),a=_me(),o=xG(),i=kG(),u=750,s=function(c){e(f,c);function f(h){c.call(this,i.VirtualAction,u),this.assertDeepEqual=h,this.hotObservables=[],this.coldObservables=[],this.flushTests=[]}return f.prototype.createTime=function(h){var m=h.indexOf("|");if(m===-1)throw new Error('marble diagram for time should have a completion marker "|"');return m*f.frameTimeFactor},f.prototype.createColdObservable=function(h,m,x){if(h.indexOf("^")!==-1)throw new Error('cold observable cannot have subscription offset "^"');if(h.indexOf("!")!==-1)throw new Error('cold observable cannot have unsubscription marker "!"');var S=f.parseMarbles(h,m,x),v=new n.ColdObservable(S,this);return this.coldObservables.push(v),v},f.prototype.createHotObservable=function(h,m,x){if(h.indexOf("!")!==-1)throw new Error('hot observable cannot have unsubscription marker "!"');var S=f.parseMarbles(h,m,x),v=new a.HotObservable(S,this);return this.hotObservables.push(v),v},f.prototype.materializeInnerObservable=function(h,m){var x=this,S=[];return h.subscribe(function(v){S.push({frame:x.frame-m,notification:t.Notification.createNext(v)})},function(v){S.push({frame:x.frame-m,notification:t.Notification.createError(v)})},function(){S.push({frame:x.frame-m,notification:t.Notification.createComplete()})}),S},f.prototype.expectObservable=function(h,m){var x=this;m===void 0&&(m=null);var S=[],v={actual:S,ready:!1},b=f.parseMarblesAsSubscriptions(m).unsubscribedFrame,_;return this.schedule(function(){_=h.subscribe(function(w){var O=w;w instanceof r.Observable&&(O=x.materializeInnerObservable(O,x.frame)),S.push({frame:x.frame,notification:t.Notification.createNext(O)})},function(w){S.push({frame:x.frame,notification:t.Notification.createError(w)})},function(){S.push({frame:x.frame,notification:t.Notification.createComplete()})})},0),b!==Number.POSITIVE_INFINITY&&this.schedule(function(){return _.unsubscribe()},b),this.flushTests.push(v),{toBe:function(w,O,C){v.ready=!0,v.expected=f.parseMarbles(w,O,C,!0)}}},f.prototype.expectSubscriptions=function(h){var m={actual:h,ready:!1};return this.flushTests.push(m),{toBe:function(x){var S=typeof x=="string"?[x]:x;m.ready=!0,m.expected=S.map(function(v){return f.parseMarblesAsSubscriptions(v)})}}},f.prototype.flush=function(){for(var h=this.hotObservables;h.length>0;)h.shift().setup();c.prototype.flush.call(this);for(var m=this.flushTests.filter(function(S){return S.ready});m.length>0;){var x=m.shift();this.assertDeepEqual(x.actual,x.expected)}},f.parseMarblesAsSubscriptions=function(h){if(typeof h!="string")return new o.SubscriptionLog(Number.POSITIVE_INFINITY);for(var m=h.length,x=-1,S=Number.POSITIVE_INFINITY,v=Number.POSITIVE_INFINITY,b=0;b-1?x:_;break;case"!":if(v!==Number.POSITIVE_INFINITY)throw new Error("found a second subscription point '^' in a subscription marble diagram. There can only be one.");v=x>-1?x:_;break;default:throw new Error("there can only be '^' and '!' markers in a subscription marble diagram. Found instead '"+w+"'.")}}return v<0?new o.SubscriptionLog(S):new o.SubscriptionLog(S,v)},f.parseMarbles=function(h,m,x,S){if(S===void 0&&(S=!1),h.indexOf("!")!==-1)throw new Error('conventional marble diagrams cannot have the unsubscription marker "!"');for(var v=h.length,b=[],_=h.indexOf("^"),w=_===-1?0:_*-this.frameTimeFactor,O=typeof m!="object"?function(L){return L}:function(L){return S&&m[L]instanceof n.ColdObservable?m[L].messages:m[L]},C=-1,E=0;E-1?C:A,notification:P})}return b},f}(i.VirtualTimeScheduler);return zh.TestScheduler=s,zh}var Hk={},Vh={},Tg={},tz;function Sme(){if(tz)return Tg;tz=1;var e=Pi(),r=function(){function t(n){n.requestAnimationFrame?(this.cancelAnimationFrame=n.cancelAnimationFrame.bind(n),this.requestAnimationFrame=n.requestAnimationFrame.bind(n)):n.mozRequestAnimationFrame?(this.cancelAnimationFrame=n.mozCancelAnimationFrame.bind(n),this.requestAnimationFrame=n.mozRequestAnimationFrame.bind(n)):n.webkitRequestAnimationFrame?(this.cancelAnimationFrame=n.webkitCancelAnimationFrame.bind(n),this.requestAnimationFrame=n.webkitRequestAnimationFrame.bind(n)):n.msRequestAnimationFrame?(this.cancelAnimationFrame=n.msCancelAnimationFrame.bind(n),this.requestAnimationFrame=n.msRequestAnimationFrame.bind(n)):n.oRequestAnimationFrame?(this.cancelAnimationFrame=n.oCancelAnimationFrame.bind(n),this.requestAnimationFrame=n.oRequestAnimationFrame.bind(n)):(this.cancelAnimationFrame=n.clearTimeout.bind(n),this.requestAnimationFrame=function(a){return n.setTimeout(a,1e3/60)})}return t}();return Tg.RequestAnimationFrameDefinition=r,Tg.AnimationFrame=new r(e.root),Tg}var nz;function xme(){if(nz)return Vh;nz=1;var e=Vh&&Vh.__extends||function(a,o){for(var i in o)o.hasOwnProperty(i)&&(a[i]=o[i]);function u(){this.constructor=a}a.prototype=o===null?Object.create(o):(u.prototype=o.prototype,new u)},r=Wv(),t=Sme(),n=function(a){e(o,a);function o(i,u){a.call(this,i,u),this.scheduler=i,this.work=u}return o.prototype.requestAsyncId=function(i,u,s){return s===void 0&&(s=0),s!==null&&s>0?a.prototype.requestAsyncId.call(this,i,u,s):(i.actions.push(this),i.scheduled||(i.scheduled=t.AnimationFrame.requestAnimationFrame(i.flush.bind(i,null))))},o.prototype.recycleAsyncId=function(i,u,s){if(s===void 0&&(s=0),s!==null&&s>0||s===null&&this.delay>0)return a.prototype.recycleAsyncId.call(this,i,u,s);i.actions.length===0&&(t.AnimationFrame.cancelAnimationFrame(u),i.scheduled=void 0)},o}(r.AsyncAction);return Vh.AnimationFrameAction=n,Vh}var Hh={},iz;function Ome(){if(iz)return Hh;iz=1;var e=Hh&&Hh.__extends||function(n,a){for(var o in a)a.hasOwnProperty(o)&&(n[o]=a[o]);function i(){this.constructor=n}n.prototype=a===null?Object.create(a):(i.prototype=a.prototype,new i)},r=Uv(),t=function(n){e(a,n);function a(){n.apply(this,arguments)}return a.prototype.flush=function(o){this.active=!0,this.scheduled=void 0;var i=this.actions,u,s=-1,c=i.length;o=o||i.shift();do if(u=o.execute(o.state,o.delay))break;while(++st}return Yk=e,Yk}var Xk,dz;function Rme(){if(dz)return Xk;dz=1;var e=Pme(),r=Ame(),t=Ff();function n(a,o){return a&&a.length?e(a,t(o,2),r):void 0}return Xk=n,Xk}var pz;function EG(){if(pz)return Oi;pz=1,Object.defineProperty(Oi,"__esModule",{value:!0}),Oi.addLeadingSearchCommand=v,Oi.stripLeadingSearchCommand=b,Oi.startsWithSPL2Annotation=_,Oi.addLeadingSPL2Annotation=w,Oi.createJava5HashForString=O,Oi.getCachedSearch=C,Oi.createSearchJob=E,Oi.oneShot=A,Oi.postAction=P,Oi.getData=j,Oi.batchGetSearches=L,Oi.validateSearch=N;var e=u(Tme()),r=u(Lv()),t=u(Eme()),n=u(Rme()),a=u(uE()),o=zE(),i=jv();function u($){return $&&$.__esModule?$:{default:$}}function s($){"@babel/helpers - typeof";return s=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(B){return typeof B}:function(B){return B&&typeof Symbol=="function"&&B.constructor===Symbol&&B!==Symbol.prototype?"symbol":typeof B},s($)}function c($,B){var U=Object.keys($);if(Object.getOwnPropertySymbols){var V=Object.getOwnPropertySymbols($);B&&(V=V.filter(function(te){return Object.getOwnPropertyDescriptor($,te).enumerable})),U.push.apply(U,V)}return U}function f($){for(var B=1;B7?$:"search ".concat(B)}function b($){var B=$.trim();return(0,e.default)(B,"search ")?B.substring(7):$}function _($){var B=$.trim(),U=B.startsWith("|")?B.substring(1).trim():B;return U.startsWith("@spl2")}function w($){var B=$.trim();return _(B)?B.startsWith("|")?B:"| ".concat(B):"| @spl2 ".concat(B)}function O($){for(var B=0,U=0,V=$.length;U1&&arguments[1]!==void 0?arguments[1]:{},U=B.cacheLimit,V=U===void 0?0:U,te=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},ne=arguments.length>3&&arguments[3]!==void 0?arguments[3]:(0,o.getDefaultFetchInit)(),ce=O($.search),Oe=a.default.encode({output_mode:"json",search:"request.webframework.cache.hash=".concat(ce)});return fetch("".concat((0,i.createRESTURL)("search/jobs",{},te),"?").concat(Oe),ne).then(function(fe){return fe.json()}).then(function(fe){var ve=(0,r.default)($,S),Re=fe.entry.filter(function(oe){return(0,t.default)(ve,(0,r.default)(oe.content.request,S))});if(Re.length>0){var me=(0,n.default)(Re,function(oe){return new Date(oe.published).valueOf()}),Ce=V<=0?0:new Date().valueOf()-V*1e3;if(new Date(me.published).valueOf()>Ce)return me}return null}).catch((0,o.handleError)("Failed to get cached jobs."))}function E($){var B=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},U=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},V=arguments.length>3&&arguments[3]!==void 0?arguments[3]:(0,o.getDefaultFetchInit)();return fetch((0,i.createRESTURL)("search/jobs",B,U),f(f({},V),{},{method:"POST",body:a.default.encode(f({output_mode:"json"},$))})).then((0,o.handleResponse)(201)).catch((0,o.handleError)("Failed to create search job."))}function A($){var B=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},U=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},V=arguments.length>3&&arguments[3]!==void 0?arguments[3]:(0,o.getDefaultFetchInit)();return fetch((0,i.createRESTURL)("search/v2/jobs",B,U),f(f({},V),{},{method:"POST",body:a.default.encode(f(f({output_mode:"json"},$),{},{exec_mode:"oneshot"}))})).then((0,o.handleResponse)(200)).catch((0,o.handleError)("Failed to create one shot search job"))}function P($){var B=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},U=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},V=arguments.length>3&&arguments[3]!==void 0?arguments[3]:(0,o.getDefaultFetchInit)();return fetch((0,i.createRESTURL)("search/jobs/".concat($,"/control"),{},U),f(f({},V),{},{method:"POST",body:a.default.encode(f(f({},B),{},{output_mode:"json"}))})).then((0,o.handleResponse)(200)).catch((0,o.handleError)("Action ".concat(B.action," failed on search job ").concat($)))}function j($){var B=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"",U=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},V=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},te=arguments.length>4&&arguments[4]!==void 0?arguments[4]:(0,o.getDefaultFetchInit)(),ne=["results","results_preview","events"],ce=ne.includes(B)?"/v2":"",Oe=a.default.encode(f({output_mode:"json"},U)),fe=(0,i.createRESTURL)("search".concat(ce,"/jobs/").concat($).concat(B&&"/".concat(B)),{},V);return U.search&&ce==="/v2"?fetch(fe,f(f({},te),{},{method:"POST",body:Oe})).then((0,o.handleResponse)([200,204])).catch((0,o.handleError)("Failed to get ".concat(B||"status"," for job ").concat($))):fetch("".concat(fe,"?").concat(Oe),te).then((0,o.handleResponse)([200,204])).catch((0,o.handleError)("Failed to get ".concat(B||"status"," for job ").concat($)))}function L($){var B=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},U=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},V=arguments.length>3&&arguments[3]!==void 0?arguments[3]:(0,o.getDefaultFetchInit)(),te=a.default.encode(f({output_mode:"json",id:$,count:$.length},B));return fetch("".concat((0,i.createRESTURL)("search/jobs",{},U),"?").concat(te),V).then((0,o.handleResponse)(200)).catch((0,o.handleError)("Failed to get batch status of jobs."))}function N($){var B=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},U=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},V=arguments.length>3&&arguments[3]!==void 0?arguments[3]:(0,o.getDefaultFetchInit)(),te=a.default.encode(f({output_mode:"json",parse_only:!0,q:v($)},B));return fetch("".concat((0,i.createRESTURL)("search/v2/parser",{},U)),f(f({},V),{},{method:"POST",body:te})).then((0,o.handleResponse)(200)).then(function(ne){return{valid:!0,data:ne}}).catch(function(ne){return ne.json().then(function(ce){var Oe="Failed to validate search string.",fe=(0,o.findErrorMessage)(ce),ve=fe?fe.text:Oe;return ne.status===400?Promise.resolve({valid:!1,error:ve}):Promise.reject(new Error(ve))})})}return Oi}var kc={},hz;function jme(){if(hz)return kc;hz=1,Object.defineProperty(kc,"__esModule",{value:!0}),kc.get=f,kc.dispatch=h,kc.getHistory=m,kc.getLatest=x;var e=n(uE()),r=zE(),t=jv();function n(S){return S&&S.__esModule?S:{default:S}}function a(S){"@babel/helpers - typeof";return a=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(v){return typeof v}:function(v){return v&&typeof Symbol=="function"&&v.constructor===Symbol&&v!==Symbol.prototype?"symbol":typeof v},a(S)}function o(S,v){var b=Object.keys(S);if(Object.getOwnPropertySymbols){var _=Object.getOwnPropertySymbols(S);v&&(_=_.filter(function(w){return Object.getOwnPropertyDescriptor(S,w).enumerable})),b.push.apply(b,_)}return b}function i(S){for(var v=1;v1&&arguments[1]!==void 0?arguments[1]:{},O=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},C=arguments.length>3&&arguments[3]!==void 0?arguments[3]:(0,r.getDefaultFetchInit)(),E=(0,t.createRESTURL)("saved/searches/".concat(v),{app:b,owner:_},O),A=e.default.encode(i({output_mode:"json"},w));return fetch("".concat(E,"?").concat(A),C).then((0,r.handleResponse)(200)).catch((0,r.handleError)("Failed to get saved search: ".concat(v)))}function h(S){var v=S.name,b=S.app,_=S.owner,w=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},O=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},C=arguments.length>3&&arguments[3]!==void 0?arguments[3]:(0,r.getDefaultFetchInit)(),E=(0,t.createRESTURL)("saved/searches/".concat(v,"/dispatch"),{app:b,owner:_},O);return fetch(E,i(i({},C),{},{method:"POST",body:e.default.encode(i(i({},w),{},{output_mode:"json"}))})).then((0,r.handleResponse)(201)).catch((0,r.handleError)("Failed to dispatch saved search: ".concat(v)))}function m(S){var v=S.name,b=S.app,_=S.owner,w=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},O=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},C=arguments.length>3&&arguments[3]!==void 0?arguments[3]:(0,r.getDefaultFetchInit)(),E=(0,t.createRESTURL)("saved/searches/".concat(v,"/history"),{app:b,owner:_},O),A=e.default.encode(i({output_mode:"json"},w));return fetch("".concat(E,"?").concat(A),C).then((0,r.handleResponse)(200)).catch((0,r.handleError)("Failed to get history for saved search: ".concat(v)))}function x(S){var v=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},b=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},_=arguments.length>3&&arguments[3]!==void 0?arguments[3]:(0,r.getDefaultFetchInit)();return m(S,i(i({},v),{},{sort_key:"start",sort_dir:"desc",count:1}),b,_).then(function(w){return w.entry[0]})}return kc}var vo={},Qk,vz;function qme(){if(vz)return Qk;vz=1;var e=ME(),r=_H(),t=wH(),n=Ss(),a=Bc(),o=$E(),i=200;function u(s,c,f,h){var m=-1,x=r,S=!0,v=s.length,b=[],_=c.length;if(!v)return b;f&&(c=n(c,a(f))),h?(x=t,S=!1):c.length>=i&&(x=o,S=!1,c=new e(c));e:for(;++m=0)&&Object.prototype.propertyIsEnumerable.call(P,N)&&(L[N]=P[N])}return L}function x(P,j){if(P==null)return{};var L={},N=Object.keys(P),$,B;for(B=0;B=0)&&(L[$]=P[$]);return L}function S(P,j){if(!(P instanceof j))throw new TypeError("Cannot call a class as a function")}function v(P,j){for(var L=0;L1&&arguments[1]!==void 0?arguments[1]:{},$=N.app,B=N.owner,U=N.sharing,V=N.cache,te=V===void 0?!1:V,ne=N.cacheLimit,ce=ne===void 0?600:ne,Oe=N.cancelOnUnload,fe=Oe===void 0?!te:Oe,ve=m(N,["app","owner","sharing","cache","cacheLimit","cancelOnUnload"]),Re=(0,i.addLeadingSearchCommand)(L.search),me=h(h({},L),{},{search:Re}),Ce=te?(0,i.getCachedSearch)(me,{cacheLimit:ce},P.splunkConfig,P.baseFetchInit).then(function(oe){var Y=(0,r.default)(oe,["content","sid"],null);return(0,n.default)(Y)?(0,i.createSearchJob)(h({"webframework.cache.hash":(0,i.createJava5HashForString)(Re)},me),{app:$,owner:B,sharing:U},P.splunkConfig,P.baseFetchInit):{sid:Y}}):(0,i.createSearchJob)(me,{app:$,owner:B,sharing:U},P.splunkConfig,P.baseFetchInit);return new P(Ce,h({cancelOnUnload:fe},ve))}},{key:"fromSavedSearch",value:function(L){var N=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},$=N.cache,B=$===void 0?"any":$,U=N.cacheLimit,V=U===void 0?1/0:U,te=N.dispatchParams,ne=te===void 0?{}:te,ce=m(N,["cache","cacheLimit","dispatchParams"]);if(B!=="any"&&B!=="none"&&B!=="scheduled")throw new Error("Invalid value for cache: '".concat(B,"'. cache must be 'none', 'any', or 'scheduled'"));var Oe;if(B==="none")Oe=(0,u.dispatch)(L,ne,P.splunkConfig,P.baseFetchInit);else{var fe=B==="scheduled"?{search:"isScheduled=true"}:{};Oe=(0,u.getLatest)(L,fe,P.splunkConfig,P.baseFetchInit).then(function(ve){var Re=(0,r.default)(ve,["name"],null);if((0,n.default)(Re))return(0,u.dispatch)(L,ne,P.splunkConfig,P.baseFetchInit);if(V>0){var me=Date.now()/1e3-V;if(me>ve.content.start)return(0,u.dispatch)(L,ne,P.splunkConfig,P.baseFetchInit)}return{sid:Re}})}return new P(Oe,ce)}},{key:"fromSid",value:function(L){var N=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return new P(o.Observable.of({sid:L}),N)}},{key:"setSplunkConfig",value:function(L){P.splunkConfig=L,(0,s.setSplunkConfig)(L)}},{key:"setBaseFetchInit",value:function(L){P.baseFetchInit=L,(0,s.setBaseFetchInit)(L)}},{key:"defaultPreviewFetchPredicate",value:function(L){return(0,r.default)(L,["content","isRealTimeSearch"],!1)?!0:(0,r.default)(L,["content","resultPreviewCount"],0)>0}},{key:"getData",value:function(L,N,$){return o.Observable.fromPromise((0,i.getData)(L,N,$,P.splunkConfig,P.baseFetchInit))}}]);function P(j){var L=this,N=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},$=N.cancelOnUnload,B=$===void 0?!1:$,U=N.keepAlive,V=U===void 0?!1:U;S(this,P),_(this,"handleUnload",function(){L.cancel()}),this.searchJobSid=o.Observable.from(j),["getSid","getProgress","whenDone"].forEach(function(te){L[te]=(0,a.default)(L[te])}),this.ttl=null,B&&typeof window<"u"&&(0,t.default)(window,"addEventListener")&&window.addEventListener("beforeunload",this.handleUnload),V?this.startKeepAlive():this.keepAliveSubscription=null}return b(P,[{key:"getSid",value:function(){return this.searchJobSid.map(function(L){var N=L.sid;return N})}},{key:"getProgress",value:function(){return this.getSid().concatMap(s.track).publishReplay(1).refCount()}},{key:"whenDone",value:function(){return this.getProgress().last().publishReplay(1).refCount()}},{key:"getResults",value:function(){var L=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.whenDone().concatMap(function(N){return P.getData(N.content.sid,"results",L)}).publishReplay(1).refCount()}},{key:"pollData",value:function(L){var N=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},$=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},B=$.fetchPredicate||w;return this.getProgress().filter(B).filter(function(U){return!O(U)}).exhaustMap(function(U){return P.getData(U.content.sid,L,N)}).concat(this.whenDone().filter(B).concatMap(function(U){return P.getData(U.content.sid,L,N)})).publishReplay(1).refCount()}},{key:"getResultsPreview",value:function(){var L=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},N=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return this.pollData("results_preview",L,h({fetchPredicate:P.defaultPreviewFetchPredicate},N))}},{key:"getEvents",value:function(){var L=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},N=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return this.pollData("events",L,N)}},{key:"getSummary",value:function(){var L=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},N=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return this.pollData("summary",L,N)}},{key:"getTimeline",value:function(){var L=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},N=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return this.pollData("timeline",L,N)}},{key:"control",value:function(L){var N=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},$=this.getSid().concatMap(function(B){return o.Observable.fromPromise((0,i.postAction)(B,h({action:L},N),P.splunkConfig,P.baseFetchInit))}).publishReplay(1);return $.connect(),$}},{key:"pause",value:function(){return this.control("pause")}},{key:"unpause",value:function(){return this.control("unpause")}},{key:"finalize",value:function(){return this.control("finalize")}},{key:"cancel",value:function(){return this.stopKeepAlive(),typeof window<"u"&&(0,t.default)(window,"removeEventListener")&&window.removeEventListener("beforeunload",this.handleUnload),this.control("cancel")}},{key:"touch",value:function(){return this.control("touch")}},{key:"setTTL",value:function(L){return this.ttl=L,this.keepAliveSubscription&&this.startKeepAlive(),this.control("setttl",{ttl:L})}},{key:"setPriority",value:function(L){return this.control("setpriority",{priority:L})}},{key:"enablePreview",value:function(){return this.control("enablepreview")}},{key:"disablePreview",value:function(){return this.control("disablepreview")}},{key:"save",value:function(){return this.control("save")}},{key:"unsave",value:function(){return this.control("unsave")}},{key:"startKeepAlive",value:function(){var L=this;this.stopKeepAlive(),this.keepAliveSubscription=this.whenDone().catch(function(){return o.Observable.empty()}).map(function(N){var $=(0,n.default)(L.ttl)?(0,r.default)(N,["content","ttl"]):L.ttl;return Math.min($*500,C)}).concatMap(function(N){return o.Observable.interval(N)}).exhaustMap(function(){return L.touch()}).catch(function(N,$){return $}).subscribe()}},{key:"stopKeepAlive",value:function(){this.keepAliveSubscription&&(this.keepAliveSubscription.unsubscribe(),this.keepAliveSubscription=null)}}]),P}();_(E,"splunkConfig",void 0),_(E,"baseFetchInit",void 0);var A=E;e.default=A}(kO)),kO}var Mme=Lme();const $me=Xi(Mme),uye=e=>{const r=window.location.origin+window.location.pathname,t=r.lastIndexOf("/"),n=new URL(`${r.slice(0,t)}/search`);return e&&Object.entries(e).forEach(([a,o])=>{o&&n.searchParams.append(a,o)}),n},Fme=e=>new Promise((r,t)=>{const a=$me.create({search:e}).getResults({count:0}).subscribe({next:o=>{try{r(o)}catch(i){t(i)}},error:o=>{t(o)},complete:()=>{a.unsubscribe()}})}),Nme=Yi.footer` + padding: ${ev.variables.spacingXSmall} ${ev.variables.fontSizeXXLarge}; + padding-bottom: 0; + display: flex; + font-size: ${ev.variables.fontSizeSmall}; + border-top: 1px solid ${ev.variables.borderActiveColor}; + justify-content: flex-end; + flex-direction: column; + align-items: flex-end; +`,Bme=Yi.div` + font-weight: ${ev.variables.fontWeightSemiBold}; +`,zme=()=>{const[e,r]=or.useState("..."),[t,n]=or.useState(null),{meta:a}=wU(),o=a.showFooter===void 0||a.showFooter;return or.useEffect(()=>{if(!o)return;(async()=>{try{const u=`| rest services/apps/local/${a.name} splunk_server=local | fields build`,c=(await Fme(u))?.results?.[0]?.build;if(c&&/^\d+$/.test(c)){const f=parseInt(c,10)*1e3,m=`${new Intl.DateTimeFormat("en-GB",{dateStyle:"medium",timeStyle:"medium",timeZone:"UTC",hour12:!1}).format(new Date(f))} UTC`;r(m)}}catch(u){n(vE(u))}})()},[a.name,o]),o?bt.jsxs(Nme,{role:"contentinfo",children:[bt.jsxs(Bme,{children:["Add-on Version: ",a.version||"Unknown"]}),bt.jsx("div",{children:t?`Build Error: ${t}`:`Build Time: ${e}`})]}):null};function eT({children:e}){return bt.jsxs(Ere,{children:[bt.jsx(nte,{}),bt.jsx(tte,{children:bt.jsx(Qre,{children:bt.jsx(tpe,{children:({loading:r,appData:t})=>!r&&t&&bt.jsxs(or.Suspense,{fallback:bt.jsx(npe,{size:"medium"}),children:[bt.jsx(ite,{children:e}),bt.jsx(zme,{})]})})})})]})}const Wme=or.createContext(void 0);function yz({children:e,customComponents:r}){const t=or.useMemo(()=>({...r}),[r]);return bt.jsx(Wme.Provider,{value:t,children:e})}const Ume=bn.lazy(()=>MT(()=>import("./InputPage.DwL2BDFf.js"),__vite__mapDeps([0,1,2,3,4,5,6]),import.meta.url)),Vme=bn.lazy(()=>MT(()=>import("./ConfigurationPage.CKrnHsan.js"),__vite__mapDeps([7,1,2,3,4,8]),import.meta.url)),Hme=bn.lazy(()=>MT(()=>import("./Dashboard.DashboardPage.BTVyoMca.js").then(e=>e.D),__vite__mapDeps([9,2]),import.meta.url)),Kme=window.location.pathname,_z=Kme.substring(1).split("/"),Gme=_z[_z.length-1];console.log(` +UCC Framework is here 👋 If you encounter any issues or have feedback, please report them to us. + +For Splunkers, reach out via our Slack channel: #ucc-framework. +For external users, join us at: https://splunk-usergroups.slack.com/archives/C03SG3ZL4S1. + +We appreciate your help in making UCC better! 🚀`);function Zme(e){return e.toLowerCase().includes("dark")?"dark":"light"}async function Yme(e){return xre.getUserTheme().then(r=>{const t=Zme(r);switch(Gme){case Ore:lw(bt.jsx(eT,{children:bt.jsx(yz,{customComponents:e,children:bt.jsx(Ume,{})})}),{pageTitle:qc[116],theme:t});break;case Cre:lw(bt.jsx(eT,{children:bt.jsx(yz,{customComponents:e,children:bt.jsx(Vme,{})})}),{pageTitle:qc[117],theme:t});break;case kre:lw(bt.jsx(eT,{children:bt.jsx(Hme,{})}),{pageTitle:qc[119],theme:t});break}})}Yme();export{zee as $,If as A,jH as B,Wme as C,kv as D,eE as E,Pv as F,ide as G,gH as H,pm as I,Qme as J,wW as K,Xg as L,mW as M,Ov as N,Av as O,Ore as P,aE as Q,bn as R,gW as S,dte as T,epe as U,dm as V,npe as W,VE as X,gde as Y,hte as Z,MT as _,Wt as a,Mr as a$,kz as a0,Mm as a1,iE as a2,Ei as a3,Os as a4,Cs as a5,Vc as a6,Eme as a7,Dde as a8,uH as a9,pP as aA,cE as aB,oH as aC,_s as aD,qde as aE,yde as aF,rde as aG,ute as aH,tye as aI,Xae as aJ,vE as aK,nye as aL,Jme as aM,aye as aN,SH as aO,oye as aP,$me as aQ,Nz as aR,hH as aS,Ude as aT,VT as aU,ste as aV,ZQ as aW,uye as aX,gr as aY,Ee as aZ,gn as a_,xde as aa,bH as ab,vH as ac,zce as ad,rE as ae,Vde as af,Kde as ag,Fm as ah,CH as ai,mde as aj,Zde as ak,hP as al,$m as am,Rde as an,Cv as ao,Ide as ap,jg as aq,Wde as ar,iye as as,qH as at,em as au,Wce as av,qu as aw,Nde as ax,eye as ay,dP as az,fde as b,yle as b$,Fde as b0,RH as b1,Xde as b2,Ode as b3,Tde as b4,Ade as b5,pW as b6,Fme as b7,lE as b8,ca as b9,um as bA,yH as bB,Hn as bC,mH as bD,zo as bE,mle as bF,om as bG,HE as bH,Qce as bI,lP as bJ,nE as bK,$c as bL,Va as bM,Bo as bN,_W as bO,qme as bP,XT as bQ,hm as bR,JT as bS,Rv as bT,vm as bU,Ss as bV,Ff as bW,wV as bX,WJ as bY,cde as bZ,Lce as b_,ate as ba,rW as bb,Dme as bc,Pz as bd,TG as be,Lme as bf,jme as bg,EG as bh,wz as bi,Sde as bj,uE as bk,jv as bl,zE as bm,bQ as bn,GJ as bo,oE as bp,dle as bq,IJ as br,sde as bs,ree as bt,cm as bu,Nc as bv,nW as bw,Df as bx,iee as by,Du as bz,da as c,Pce as c0,Oce as c1,ME as c2,_H as c3,wH as c4,$E as c5,Sce as c6,Lv as d,rre as e,aH as f,ft as g,fP as h,Ji as i,Im as j,Xi as k,or as l,wU as m,qR as n,yV as o,bt as p,PW as q,Or as r,Xh as s,Yi as t,zre as u,Lg as v,CW as w,mV as x,rye as y,Cre as z}; +//# sourceMappingURL=entry_page.js.map diff --git a/TA-opencti-for-splunk-enterprise/appserver/static/js/build/entry_page.js.LICENSE.txt b/TA-opencti-for-splunk-enterprise/appserver/static/js/build/entry_page.js.LICENSE.txt new file mode 100755 index 0000000..cc2ba37 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/appserver/static/js/build/entry_page.js.LICENSE.txt @@ -0,0 +1,75 @@ +/* +object-assign +(c) Sindre Sorhus +@license MIT +*/ + +/*! + * $script.js JS loader & dependency manager + * https://github.com/ded/script.js + * (c) Dustin Diaz 2014 | License MIT + */ + +/*! + * Programatically add the following + */ + +/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */ + +/** + * @remix-run/router v1.15.0 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */ + +/** + * React Router v6.22.0 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */ + +/** @license React v0.19.1 + * scheduler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v16.13.1 + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v16.14.0 + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v16.14.0 + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ diff --git a/TA-opencti-for-splunk-enterprise/appserver/static/js/build/entry_page.js.map b/TA-opencti-for-splunk-enterprise/appserver/static/js/build/entry_page.js.map new file mode 100755 index 0000000..4501384 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/appserver/static/js/build/entry_page.js.map @@ -0,0 +1 @@ +{"version":3,"file":"entry_page.js","mappings":"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","sources":["webpack://@splunk/ucc_ui_lib/webpack/runtime/chunk loaded","webpack://@splunk/ucc_ui_lib/webpack/runtime/create fake namespace object","webpack://@splunk/ucc_ui_lib/webpack/runtime/load script","webpack://@splunk/ucc_ui_lib/./node_modules/@react-spring/animated/dist/react-spring-animated.esm.js","webpack://@splunk/ucc_ui_lib/./node_modules/@react-spring/core/dist/react-spring-core.esm.js","webpack://@splunk/ucc_ui_lib/./node_modules/@react-spring/rafz/dist/react-spring-rafz.esm.js","webpack://@splunk/ucc_ui_lib/./node_modules/@react-spring/shared/dist/react-spring-shared.esm.js","webpack://@splunk/ucc_ui_lib/./node_modules/@react-spring/web/dist/react-spring-web.esm.js","webpack://@splunk/ucc_ui_lib/./node_modules/@remix-run/router/dist/router.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-icons/ArrowSquareTopRight.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-icons/ArrowSquareTopRightInset.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-icons/CaretSmallDown.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-icons/CheckCircle.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-icons/Cross.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-icons/ExclamationCircle.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-icons/ExclamationTriangle.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-icons/IconProvider.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-icons/InformationCircle.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-icons/SVG.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-icons/SVGEnterprise.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-icons/SVGInternal.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-icons/enterprise/Caret.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-icons/enterprise/Clear.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-icons/enterprise/Close.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-icons/enterprise/Error.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-icons/enterprise/External.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-icons/enterprise/InfoCircle.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-icons/enterprise/Success.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-icons/enterprise/TriangleDownSmall.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-icons/enterprise/Warning.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-page/lib/index.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-page/node_modules/@splunk/react-ui/EventListener.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-page/node_modules/@splunk/react-ui/Layer.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-page/node_modules/@splunk/react-ui/ScreenReaderContent.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-page/node_modules/@splunk/splunk-utils/config.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-page/node_modules/@splunk/splunk-utils/url.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-toast-notifications/ToastConstants.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-toast-notifications/Toaster.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-ui/Animation.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-ui/AnimationToggle.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-ui/Box.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-ui/Button.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-ui/ButtonSimple.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-ui/Clickable.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-ui/CloseButton.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-ui/Divider.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-ui/Dropdown.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-ui/EventListener.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-ui/Layer.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-ui/Link.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-ui/Message.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-ui/MessageBar.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-ui/Modal.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-ui/ModalLayer.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-ui/Popover.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-ui/ScreenReaderContent.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-ui/ScrollContainerContext.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/react-ui/WaitSpinner.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/splunk-utils/config.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/splunk-utils/themes.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/splunk-utils/url.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/themes/SplunkThemeProvider.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/themes/enterprise/comfortable.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/themes/enterprise/compact.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/themes/enterprise/dark.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/themes/enterprise/index.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/themes/enterprise/light.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/themes/enterprise/prismaAliases.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/themes/getSettingsFromThemedProps.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/themes/getTheme.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/themes/index.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/themes/mixins/index.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/themes/mixins/typography.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/themes/mixins/utilityMixins.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/themes/pick.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/themes/pickVariant.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/themes/prisma/base.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/themes/prisma/comfortable.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/themes/prisma/compact.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/themes/prisma/dark.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/themes/prisma/dataViz.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/themes/prisma/index.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/themes/prisma/light.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/themes/types.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/themes/useSplunkTheme.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/themes/utils.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/themes/variables.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/themes/withSplunkTheme.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/ui-utils/cookie.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/ui-utils/focus.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/ui-utils/i18n.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/ui-utils/id.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/ui-utils/keyboard.js","webpack://@splunk/ucc_ui_lib/./node_modules/@splunk/ui-utils/style.js","webpack://@splunk/ucc_ui_lib/./src/components/table/CustomTableStyle.jsx","webpack://@splunk/ucc_ui_lib/./src/constants/messageDict.ts","webpack://@splunk/ucc_ui_lib/./src/constants/pages.ts","webpack://@splunk/ucc_ui_lib/./src/pages/EntryPageStyle.js","webpack://@splunk/ucc_ui_lib/./src/util/messageUtil.ts","webpack://@splunk/ucc_ui_lib/./node_modules/js-yaml/dist/js-yaml.mjs","webpack://@splunk/ucc_ui_lib/./src/util/script.ts","webpack://@splunk/ucc_ui_lib/./node_modules/zod/lib/index.mjs","webpack://@splunk/ucc_ui_lib/./src/types/globalConfig/meta.ts","webpack://@splunk/ucc_ui_lib/./src/types/globalConfig/validators.ts","webpack://@splunk/ucc_ui_lib/./src/types/globalConfig/entities.ts","webpack://@splunk/ucc_ui_lib/./src/types/globalConfig/pages.ts","webpack://@splunk/ucc_ui_lib/./src/types/globalConfig/alerts.ts","webpack://@splunk/ucc_ui_lib/./src/types/globalConfig/globalConfig.ts","webpack://@splunk/ucc_ui_lib/./src/util/util.ts","webpack://@splunk/ucc_ui_lib/./src/pages/style.css","webpack://@splunk/ucc_ui_lib/./node_modules/css-loader/dist/runtime/api.js","webpack://@splunk/ucc_ui_lib/./node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://@splunk/ucc_ui_lib/./node_modules/events/events.js","webpack://@splunk/ucc_ui_lib/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_DataView.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_Hash.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_ListCache.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_Map.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_MapCache.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_Promise.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_Set.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_SetCache.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_Stack.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_Symbol.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_Uint8Array.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_WeakMap.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_arrayIncludes.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_arrayLikeKeys.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_assignMergeValue.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_assignValue.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_assocIndexOf.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_baseAssign.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_baseAssignIn.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_baseAssignValue.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_baseClone.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_baseCreate.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_baseEach.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_baseEvery.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_baseFilter.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_baseFlatten.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_baseFor.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_baseForOwn.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_baseGet.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_baseGetAllKeys.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_baseGetTag.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_baseIndexOf.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_baseIntersection.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_baseIsArguments.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_baseIsEqual.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_baseIsEqualDeep.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_baseIsMap.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_baseIsMatch.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_baseIsNative.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_baseIsSet.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_baseIsTypedArray.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_baseIteratee.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_baseKeys.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_baseKeysIn.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_baseMap.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_baseMatches.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_baseMatchesProperty.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_baseMerge.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_baseMergeDeep.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_baseOrderBy.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_basePropertyDeep.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_basePullAll.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_baseRest.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_baseSetToString.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_baseToString.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_baseTrim.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_baseUnset.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_baseValues.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_castArrayLikeObject.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_castPath.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_cloneArrayBuffer.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_cloneBuffer.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_cloneDataView.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_cloneSymbol.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_cloneTypedArray.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_compareAscending.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_compareMultiple.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_copyObject.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_copySymbols.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_copySymbolsIn.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_coreJsData.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_createAssigner.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_createBaseEach.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_customOmitClone.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_defineProperty.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_equalArrays.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_equalByTag.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_equalObjects.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_flatRest.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_getAllKeys.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_getAllKeysIn.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_getMapData.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_getMatchData.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_getNative.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_getPrototype.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_getRawTag.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_getSymbols.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_getSymbolsIn.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_getTag.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_hasPath.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_hashClear.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_hashGet.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_hashHas.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_hashSet.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_initCloneByTag.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_initCloneObject.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_isFlattenable.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_isIterateeCall.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_isKey.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_isMasked.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_isStrictComparable.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_listCacheDelete.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_listCacheGet.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_listCacheHas.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_listCacheSet.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_mapCacheClear.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_mapCacheDelete.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_mapCacheGet.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_mapCacheHas.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_mapCacheSet.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_memoizeCapped.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_nativeCreate.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_nativeKeys.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_nodeUtil.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_overRest.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_parent.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_root.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_setToString.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_stackClear.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_stackSet.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_stringToPath.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/_toKey.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/clamp.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/debounce.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/defer.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/every.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/filter.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/flatten.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/get.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/has.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/hasIn.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/includes.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/intersection.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/isArguments.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/isArrayLike.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/isArrayLikeObject.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/isBuffer.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/isEmpty.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/isFinite.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/isFunction.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/isMap.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/isPlainObject.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/isSet.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/isString.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/isSymbol.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/isTypedArray.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/keys.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/keysIn.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/memoize.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/merge.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/now.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/omit.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/property.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/pull.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/pullAll.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/sortBy.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/throttle.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/toFinite.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/toInteger.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/toNumber.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/toPlainObject.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/toString.js","webpack://@splunk/ucc_ui_lib/./node_modules/lodash/values.js","webpack://@splunk/ucc_ui_lib/./node_modules/keycode/index.js","webpack://@splunk/ucc_ui_lib/./node_modules/object-assign/index.js","webpack://@splunk/ucc_ui_lib/./node_modules/prop-types/factoryWithThrowingShims.js","webpack://@splunk/ucc_ui_lib/./node_modules/prop-types/index.js","webpack://@splunk/ucc_ui_lib/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://@splunk/ucc_ui_lib/./node_modules/querystring-es3/decode.js","webpack://@splunk/ucc_ui_lib/./node_modules/querystring-es3/encode.js","webpack://@splunk/ucc_ui_lib/./node_modules/querystring-es3/index.js","webpack://@splunk/ucc_ui_lib/./node_modules/react-dom/cjs/react-dom.production.min.js","webpack://@splunk/ucc_ui_lib/./node_modules/react-dom/index.js","webpack://@splunk/ucc_ui_lib/./node_modules/react-is/cjs/react-is.production.min.js","webpack://@splunk/ucc_ui_lib/./node_modules/react-is/index.js","webpack://@splunk/ucc_ui_lib/./node_modules/react-router/dist/index.js","webpack://@splunk/ucc_ui_lib/./node_modules/react/cjs/react.production.min.js","webpack://@splunk/ucc_ui_lib/./node_modules/react/index.js","webpack://@splunk/ucc_ui_lib/./node_modules/scheduler/cjs/scheduler.production.min.js","webpack://@splunk/ucc_ui_lib/./node_modules/scheduler/index.js","webpack://@splunk/ucc_ui_lib/./node_modules/scriptjs/dist/script.js","webpack://@splunk/ucc_ui_lib/./node_modules/shallowequal/index.js","webpack://@splunk/ucc_ui_lib/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://@splunk/ucc_ui_lib/./node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://@splunk/ucc_ui_lib/./node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://@splunk/ucc_ui_lib/./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://@splunk/ucc_ui_lib/./node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://@splunk/ucc_ui_lib/./node_modules/style-loader/dist/runtime/styleTagTransform.js","webpack://@splunk/ucc_ui_lib/./node_modules/@emotion/stylis/dist/stylis.browser.esm.js","webpack://@splunk/ucc_ui_lib/./node_modules/@emotion/unitless/dist/unitless.browser.esm.js","webpack://@splunk/ucc_ui_lib/./node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","webpack://@splunk/ucc_ui_lib/./node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","webpack://@splunk/ucc_ui_lib/./node_modules/styled-components/dist/styled-components.browser.esm.js","webpack://@splunk/ucc_ui_lib/./node_modules/dequal/dist/index.mjs","webpack://@splunk/ucc_ui_lib/./node_modules/use-typed-event-listener/dist/index.esm.js","webpack://@splunk/ucc_ui_lib/./node_modules/use-deep-compare/dist-web/index.js","webpack://@splunk/ucc_ui_lib/./node_modules/tinycolor2/cjs/tinycolor.js","webpack://@splunk/ucc_ui_lib/./node_modules/axios/lib/helpers/bind.js","webpack://@splunk/ucc_ui_lib/./node_modules/axios/lib/utils.js","webpack://@splunk/ucc_ui_lib/./node_modules/axios/lib/core/AxiosError.js","webpack://@splunk/ucc_ui_lib/./node_modules/axios/lib/helpers/toFormData.js","webpack://@splunk/ucc_ui_lib/./node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack://@splunk/ucc_ui_lib/./node_modules/axios/lib/helpers/buildURL.js","webpack://@splunk/ucc_ui_lib/./node_modules/axios/lib/core/InterceptorManager.js","webpack://@splunk/ucc_ui_lib/./node_modules/axios/lib/defaults/transitional.js","webpack://@splunk/ucc_ui_lib/./node_modules/axios/lib/platform/browser/index.js","webpack://@splunk/ucc_ui_lib/./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack://@splunk/ucc_ui_lib/./node_modules/axios/lib/platform/browser/classes/FormData.js","webpack://@splunk/ucc_ui_lib/./node_modules/axios/lib/platform/browser/classes/Blob.js","webpack://@splunk/ucc_ui_lib/./node_modules/axios/lib/platform/common/utils.js","webpack://@splunk/ucc_ui_lib/./node_modules/axios/lib/platform/index.js","webpack://@splunk/ucc_ui_lib/./node_modules/axios/lib/helpers/formDataToJSON.js","webpack://@splunk/ucc_ui_lib/./node_modules/axios/lib/defaults/index.js","webpack://@splunk/ucc_ui_lib/./node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack://@splunk/ucc_ui_lib/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://@splunk/ucc_ui_lib/./node_modules/axios/lib/core/AxiosHeaders.js","webpack://@splunk/ucc_ui_lib/./node_modules/axios/lib/core/transformData.js","webpack://@splunk/ucc_ui_lib/./node_modules/axios/lib/cancel/isCancel.js","webpack://@splunk/ucc_ui_lib/./node_modules/axios/lib/cancel/CanceledError.js","webpack://@splunk/ucc_ui_lib/./node_modules/axios/lib/helpers/cookies.js","webpack://@splunk/ucc_ui_lib/./node_modules/axios/lib/core/buildFullPath.js","webpack://@splunk/ucc_ui_lib/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://@splunk/ucc_ui_lib/./node_modules/axios/lib/helpers/combineURLs.js","webpack://@splunk/ucc_ui_lib/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://@splunk/ucc_ui_lib/./node_modules/axios/lib/adapters/xhr.js","webpack://@splunk/ucc_ui_lib/./node_modules/axios/lib/helpers/speedometer.js","webpack://@splunk/ucc_ui_lib/./node_modules/axios/lib/adapters/adapters.js","webpack://@splunk/ucc_ui_lib/./node_modules/axios/lib/helpers/null.js","webpack://@splunk/ucc_ui_lib/./node_modules/axios/lib/core/settle.js","webpack://@splunk/ucc_ui_lib/./node_modules/axios/lib/helpers/parseProtocol.js","webpack://@splunk/ucc_ui_lib/./node_modules/axios/lib/core/dispatchRequest.js","webpack://@splunk/ucc_ui_lib/./node_modules/axios/lib/core/mergeConfig.js","webpack://@splunk/ucc_ui_lib/./node_modules/axios/lib/env/data.js","webpack://@splunk/ucc_ui_lib/./node_modules/axios/lib/helpers/validator.js","webpack://@splunk/ucc_ui_lib/./node_modules/axios/lib/core/Axios.js","webpack://@splunk/ucc_ui_lib/./node_modules/axios/lib/cancel/CancelToken.js","webpack://@splunk/ucc_ui_lib/./node_modules/axios/lib/helpers/HttpStatusCode.js","webpack://@splunk/ucc_ui_lib/./node_modules/axios/lib/axios.js","webpack://@splunk/ucc_ui_lib/./node_modules/axios/lib/helpers/spread.js","webpack://@splunk/ucc_ui_lib/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://@splunk/ucc_ui_lib/./node_modules/color-blend/dist/index.mjs","webpack://@splunk/ucc_ui_lib/webpack/bootstrap","webpack://@splunk/ucc_ui_lib/webpack/runtime/chunk prefetch function","webpack://@splunk/ucc_ui_lib/webpack/runtime/compat get default export","webpack://@splunk/ucc_ui_lib/webpack/runtime/define property getters","webpack://@splunk/ucc_ui_lib/webpack/runtime/ensure chunk","webpack://@splunk/ucc_ui_lib/webpack/runtime/get javascript chunk filename","webpack://@splunk/ucc_ui_lib/webpack/runtime/global","webpack://@splunk/ucc_ui_lib/webpack/runtime/hasOwnProperty shorthand","webpack://@splunk/ucc_ui_lib/webpack/runtime/make namespace object","webpack://@splunk/ucc_ui_lib/webpack/runtime/node module decorator","webpack://@splunk/ucc_ui_lib/webpack/runtime/publicPath","webpack://@splunk/ucc_ui_lib/webpack/runtime/jsonp chunk loading","webpack://@splunk/ucc_ui_lib/webpack/runtime/nonce","webpack://@splunk/ucc_ui_lib/webpack/runtime/startup prefetch","webpack://@splunk/ucc_ui_lib/./node_modules/react-router-dom/dist/index.js","webpack://@splunk/ucc_ui_lib/./src/components/ErrorModal/ErrorModal.tsx","webpack://@splunk/ucc_ui_lib/./src/util/configManager.jsx","webpack://@splunk/ucc_ui_lib/./src/pages/style.css?20ad","webpack://@splunk/ucc_ui_lib/./src/pages/entry_page.jsx"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"@splunk/ucc_ui_lib:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","import { defineHidden, is, createInterpolator, eachProp, hasFluidValue, getFluidValue, each, isAnimatedString, useForceUpdate, useLayoutEffect, addFluidObserver, removeFluidObserver, raf, useOnce } from '@react-spring/shared';\nimport * as React from 'react';\nimport { forwardRef, useRef, useCallback, useEffect } from 'react';\n\nconst $node = Symbol.for('Animated:node');\nconst isAnimated = value => !!value && value[$node] === value;\nconst getAnimated = owner => owner && owner[$node];\nconst setAnimated = (owner, node) => defineHidden(owner, $node, node);\nconst getPayload = owner => owner && owner[$node] && owner[$node].getPayload();\nclass Animated {\n constructor() {\n this.payload = void 0;\n setAnimated(this, this);\n }\n\n getPayload() {\n return this.payload || [];\n }\n\n}\n\nclass AnimatedValue extends Animated {\n constructor(_value) {\n super();\n this.done = true;\n this.elapsedTime = void 0;\n this.lastPosition = void 0;\n this.lastVelocity = void 0;\n this.v0 = void 0;\n this.durationProgress = 0;\n this._value = _value;\n\n if (is.num(this._value)) {\n this.lastPosition = this._value;\n }\n }\n\n static create(value) {\n return new AnimatedValue(value);\n }\n\n getPayload() {\n return [this];\n }\n\n getValue() {\n return this._value;\n }\n\n setValue(value, step) {\n if (is.num(value)) {\n this.lastPosition = value;\n\n if (step) {\n value = Math.round(value / step) * step;\n\n if (this.done) {\n this.lastPosition = value;\n }\n }\n }\n\n if (this._value === value) {\n return false;\n }\n\n this._value = value;\n return true;\n }\n\n reset() {\n const {\n done\n } = this;\n this.done = false;\n\n if (is.num(this._value)) {\n this.elapsedTime = 0;\n this.durationProgress = 0;\n this.lastPosition = this._value;\n if (done) this.lastVelocity = null;\n this.v0 = null;\n }\n }\n\n}\n\nclass AnimatedString extends AnimatedValue {\n constructor(value) {\n super(0);\n this._string = null;\n this._toString = void 0;\n this._toString = createInterpolator({\n output: [value, value]\n });\n }\n\n static create(value) {\n return new AnimatedString(value);\n }\n\n getValue() {\n let value = this._string;\n return value == null ? this._string = this._toString(this._value) : value;\n }\n\n setValue(value) {\n if (is.str(value)) {\n if (value == this._string) {\n return false;\n }\n\n this._string = value;\n this._value = 1;\n } else if (super.setValue(value)) {\n this._string = null;\n } else {\n return false;\n }\n\n return true;\n }\n\n reset(goal) {\n if (goal) {\n this._toString = createInterpolator({\n output: [this.getValue(), goal]\n });\n }\n\n this._value = 0;\n super.reset();\n }\n\n}\n\nconst TreeContext = {\n dependencies: null\n};\n\nclass AnimatedObject extends Animated {\n constructor(source) {\n super();\n this.source = source;\n this.setValue(source);\n }\n\n getValue(animated) {\n const values = {};\n eachProp(this.source, (source, key) => {\n if (isAnimated(source)) {\n values[key] = source.getValue(animated);\n } else if (hasFluidValue(source)) {\n values[key] = getFluidValue(source);\n } else if (!animated) {\n values[key] = source;\n }\n });\n return values;\n }\n\n setValue(source) {\n this.source = source;\n this.payload = this._makePayload(source);\n }\n\n reset() {\n if (this.payload) {\n each(this.payload, node => node.reset());\n }\n }\n\n _makePayload(source) {\n if (source) {\n const payload = new Set();\n eachProp(source, this._addToPayload, payload);\n return Array.from(payload);\n }\n }\n\n _addToPayload(source) {\n if (TreeContext.dependencies && hasFluidValue(source)) {\n TreeContext.dependencies.add(source);\n }\n\n const payload = getPayload(source);\n\n if (payload) {\n each(payload, node => this.add(node));\n }\n }\n\n}\n\nclass AnimatedArray extends AnimatedObject {\n constructor(source) {\n super(source);\n }\n\n static create(source) {\n return new AnimatedArray(source);\n }\n\n getValue() {\n return this.source.map(node => node.getValue());\n }\n\n setValue(source) {\n const payload = this.getPayload();\n\n if (source.length == payload.length) {\n return payload.map((node, i) => node.setValue(source[i])).some(Boolean);\n }\n\n super.setValue(source.map(makeAnimated));\n return true;\n }\n\n}\n\nfunction makeAnimated(value) {\n const nodeType = isAnimatedString(value) ? AnimatedString : AnimatedValue;\n return nodeType.create(value);\n}\n\nfunction getAnimatedType(value) {\n const parentNode = getAnimated(value);\n return parentNode ? parentNode.constructor : is.arr(value) ? AnimatedArray : isAnimatedString(value) ? AnimatedString : AnimatedValue;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nconst withAnimated = (Component, host) => {\n const hasInstance = !is.fun(Component) || Component.prototype && Component.prototype.isReactComponent;\n return forwardRef((givenProps, givenRef) => {\n const instanceRef = useRef(null);\n const ref = hasInstance && useCallback(value => {\n instanceRef.current = updateRef(givenRef, value);\n }, [givenRef]);\n const [props, deps] = getAnimatedState(givenProps, host);\n const forceUpdate = useForceUpdate();\n\n const callback = () => {\n const instance = instanceRef.current;\n\n if (hasInstance && !instance) {\n return;\n }\n\n const didUpdate = instance ? host.applyAnimatedValues(instance, props.getValue(true)) : false;\n\n if (didUpdate === false) {\n forceUpdate();\n }\n };\n\n const observer = new PropsObserver(callback, deps);\n const observerRef = useRef();\n useLayoutEffect(() => {\n const lastObserver = observerRef.current;\n observerRef.current = observer;\n each(deps, dep => addFluidObserver(dep, observer));\n\n if (lastObserver) {\n each(lastObserver.deps, dep => removeFluidObserver(dep, lastObserver));\n raf.cancel(lastObserver.update);\n }\n });\n useEffect(callback, []);\n useOnce(() => () => {\n const observer = observerRef.current;\n each(observer.deps, dep => removeFluidObserver(dep, observer));\n });\n const usedProps = host.getComponentProps(props.getValue());\n return React.createElement(Component, _extends({}, usedProps, {\n ref: ref\n }));\n });\n};\n\nclass PropsObserver {\n constructor(update, deps) {\n this.update = update;\n this.deps = deps;\n }\n\n eventObserved(event) {\n if (event.type == 'change') {\n raf.write(this.update);\n }\n }\n\n}\n\nfunction getAnimatedState(props, host) {\n const dependencies = new Set();\n TreeContext.dependencies = dependencies;\n if (props.style) props = _extends({}, props, {\n style: host.createAnimatedStyle(props.style)\n });\n props = new AnimatedObject(props);\n TreeContext.dependencies = null;\n return [props, dependencies];\n}\n\nfunction updateRef(ref, value) {\n if (ref) {\n if (is.fun(ref)) ref(value);else ref.current = value;\n }\n\n return value;\n}\n\nconst cacheKey = Symbol.for('AnimatedComponent');\nconst createHost = (components, {\n applyAnimatedValues: _applyAnimatedValues = () => false,\n createAnimatedStyle: _createAnimatedStyle = style => new AnimatedObject(style),\n getComponentProps: _getComponentProps = props => props\n} = {}) => {\n const hostConfig = {\n applyAnimatedValues: _applyAnimatedValues,\n createAnimatedStyle: _createAnimatedStyle,\n getComponentProps: _getComponentProps\n };\n\n const animated = Component => {\n const displayName = getDisplayName(Component) || 'Anonymous';\n\n if (is.str(Component)) {\n Component = animated[Component] || (animated[Component] = withAnimated(Component, hostConfig));\n } else {\n Component = Component[cacheKey] || (Component[cacheKey] = withAnimated(Component, hostConfig));\n }\n\n Component.displayName = `Animated(${displayName})`;\n return Component;\n };\n\n eachProp(components, (Component, key) => {\n if (is.arr(components)) {\n key = getDisplayName(Component);\n }\n\n animated[key] = animated(Component);\n });\n return {\n animated\n };\n};\n\nconst getDisplayName = arg => is.str(arg) ? arg : arg && is.str(arg.displayName) ? arg.displayName : is.fun(arg) && arg.name || null;\n\nexport { Animated, AnimatedArray, AnimatedObject, AnimatedString, AnimatedValue, createHost, getAnimated, getAnimatedType, getPayload, isAnimated, setAnimated };\n","import { eachProp, is, toArray, isAnimatedString, Globals, getFluidValue, useLayoutEffect, each, raf, flush, FluidValue, deprecateInterpolate, callFluidObservers, frameLoop, hasFluidValue, flushCalls, isEqual, getFluidObservers, addFluidObserver, removeFluidObserver, noop, useMemoOne, deprecateDirectCall, useForceUpdate, usePrev, useOnce, createInterpolator, createStringInterpolator } from '@react-spring/shared';\nexport { Globals, createInterpolator } from '@react-spring/shared';\nimport * as React from 'react';\nimport { useContext, useMemo, useRef, useState } from 'react';\nimport { getAnimated, AnimatedValue, getPayload, AnimatedString, getAnimatedType, setAnimated } from '@react-spring/animated';\nexport * from '@react-spring/types/animated';\nexport * from '@react-spring/types/interpolation';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction callProp(value, ...args) {\n return is.fun(value) ? value(...args) : value;\n}\nconst matchProp = (value, key) => value === true || !!(key && value && (is.fun(value) ? value(key) : toArray(value).includes(key)));\nconst resolveProp = (prop, key) => is.obj(prop) ? key && prop[key] : prop;\nconst getDefaultProp = (props, key) => props.default === true ? props[key] : props.default ? props.default[key] : undefined;\n\nconst noopTransform = value => value;\n\nconst getDefaultProps = (props, transform = noopTransform) => {\n let keys = DEFAULT_PROPS;\n\n if (props.default && props.default !== true) {\n props = props.default;\n keys = Object.keys(props);\n }\n\n const defaults = {};\n\n for (const key of keys) {\n const value = transform(props[key], key);\n\n if (!is.und(value)) {\n defaults[key] = value;\n }\n }\n\n return defaults;\n};\nconst DEFAULT_PROPS = ['config', 'onProps', 'onStart', 'onChange', 'onPause', 'onResume', 'onRest'];\nconst RESERVED_PROPS = {\n config: 1,\n from: 1,\n to: 1,\n ref: 1,\n loop: 1,\n reset: 1,\n pause: 1,\n cancel: 1,\n reverse: 1,\n immediate: 1,\n default: 1,\n delay: 1,\n onProps: 1,\n onStart: 1,\n onChange: 1,\n onPause: 1,\n onResume: 1,\n onRest: 1,\n onResolve: 1,\n items: 1,\n trail: 1,\n sort: 1,\n expires: 1,\n initial: 1,\n enter: 1,\n update: 1,\n leave: 1,\n children: 1,\n onDestroyed: 1,\n keys: 1,\n callId: 1,\n parentId: 1\n};\n\nfunction getForwardProps(props) {\n const forward = {};\n let count = 0;\n eachProp(props, (value, prop) => {\n if (!RESERVED_PROPS[prop]) {\n forward[prop] = value;\n count++;\n }\n });\n\n if (count) {\n return forward;\n }\n}\n\nfunction inferTo(props) {\n const to = getForwardProps(props);\n\n if (to) {\n const out = {\n to\n };\n eachProp(props, (val, key) => key in to || (out[key] = val));\n return out;\n }\n\n return _extends({}, props);\n}\nfunction computeGoal(value) {\n value = getFluidValue(value);\n return is.arr(value) ? value.map(computeGoal) : isAnimatedString(value) ? Globals.createStringInterpolator({\n range: [0, 1],\n output: [value, value]\n })(1) : value;\n}\nfunction hasProps(props) {\n for (const _ in props) return true;\n\n return false;\n}\nfunction isAsyncTo(to) {\n return is.fun(to) || is.arr(to) && is.obj(to[0]);\n}\nfunction detachRefs(ctrl, ref) {\n var _ctrl$ref;\n\n (_ctrl$ref = ctrl.ref) == null ? void 0 : _ctrl$ref.delete(ctrl);\n ref == null ? void 0 : ref.delete(ctrl);\n}\nfunction replaceRef(ctrl, ref) {\n if (ref && ctrl.ref !== ref) {\n var _ctrl$ref2;\n\n (_ctrl$ref2 = ctrl.ref) == null ? void 0 : _ctrl$ref2.delete(ctrl);\n ref.add(ctrl);\n ctrl.ref = ref;\n }\n}\n\nfunction useChain(refs, timeSteps, timeFrame = 1000) {\n useLayoutEffect(() => {\n if (timeSteps) {\n let prevDelay = 0;\n each(refs, (ref, i) => {\n const controllers = ref.current;\n\n if (controllers.length) {\n let delay = timeFrame * timeSteps[i];\n if (isNaN(delay)) delay = prevDelay;else prevDelay = delay;\n each(controllers, ctrl => {\n each(ctrl.queue, props => {\n const memoizedDelayProp = props.delay;\n\n props.delay = key => delay + callProp(memoizedDelayProp || 0, key);\n });\n ctrl.start();\n });\n }\n });\n } else {\n let p = Promise.resolve();\n each(refs, ref => {\n const controllers = ref.current;\n\n if (controllers.length) {\n const queues = controllers.map(ctrl => {\n const q = ctrl.queue;\n ctrl.queue = [];\n return q;\n });\n p = p.then(() => {\n each(controllers, (ctrl, i) => each(queues[i] || [], update => ctrl.queue.push(update)));\n return Promise.all(ref.start());\n });\n }\n });\n }\n });\n}\n\nconst config = {\n default: {\n tension: 170,\n friction: 26\n },\n gentle: {\n tension: 120,\n friction: 14\n },\n wobbly: {\n tension: 180,\n friction: 12\n },\n stiff: {\n tension: 210,\n friction: 20\n },\n slow: {\n tension: 280,\n friction: 60\n },\n molasses: {\n tension: 280,\n friction: 120\n }\n};\n\nconst linear = t => t;\n\nconst defaults = _extends({}, config.default, {\n mass: 1,\n damping: 1,\n easing: linear,\n clamp: false\n});\n\nclass AnimationConfig {\n constructor() {\n this.tension = void 0;\n this.friction = void 0;\n this.frequency = void 0;\n this.damping = void 0;\n this.mass = void 0;\n this.velocity = 0;\n this.restVelocity = void 0;\n this.precision = void 0;\n this.progress = void 0;\n this.duration = void 0;\n this.easing = void 0;\n this.clamp = void 0;\n this.bounce = void 0;\n this.decay = void 0;\n this.round = void 0;\n Object.assign(this, defaults);\n }\n\n}\nfunction mergeConfig(config, newConfig, defaultConfig) {\n if (defaultConfig) {\n defaultConfig = _extends({}, defaultConfig);\n sanitizeConfig(defaultConfig, newConfig);\n newConfig = _extends({}, defaultConfig, newConfig);\n }\n\n sanitizeConfig(config, newConfig);\n Object.assign(config, newConfig);\n\n for (const key in defaults) {\n if (config[key] == null) {\n config[key] = defaults[key];\n }\n }\n\n let {\n mass,\n frequency,\n damping\n } = config;\n\n if (!is.und(frequency)) {\n if (frequency < 0.01) frequency = 0.01;\n if (damping < 0) damping = 0;\n config.tension = Math.pow(2 * Math.PI / frequency, 2) * mass;\n config.friction = 4 * Math.PI * damping * mass / frequency;\n }\n\n return config;\n}\n\nfunction sanitizeConfig(config, props) {\n if (!is.und(props.decay)) {\n config.duration = undefined;\n } else {\n const isTensionConfig = !is.und(props.tension) || !is.und(props.friction);\n\n if (isTensionConfig || !is.und(props.frequency) || !is.und(props.damping) || !is.und(props.mass)) {\n config.duration = undefined;\n config.decay = undefined;\n }\n\n if (isTensionConfig) {\n config.frequency = undefined;\n }\n }\n}\n\nconst emptyArray = [];\nclass Animation {\n constructor() {\n this.changed = false;\n this.values = emptyArray;\n this.toValues = null;\n this.fromValues = emptyArray;\n this.to = void 0;\n this.from = void 0;\n this.config = new AnimationConfig();\n this.immediate = false;\n }\n\n}\n\nfunction scheduleProps(callId, {\n key,\n props,\n defaultProps,\n state,\n actions\n}) {\n return new Promise((resolve, reject) => {\n var _props$cancel;\n\n let delay;\n let timeout;\n let cancel = matchProp((_props$cancel = props.cancel) != null ? _props$cancel : defaultProps == null ? void 0 : defaultProps.cancel, key);\n\n if (cancel) {\n onStart();\n } else {\n if (!is.und(props.pause)) {\n state.paused = matchProp(props.pause, key);\n }\n\n let pause = defaultProps == null ? void 0 : defaultProps.pause;\n\n if (pause !== true) {\n pause = state.paused || matchProp(pause, key);\n }\n\n delay = callProp(props.delay || 0, key);\n\n if (pause) {\n state.resumeQueue.add(onResume);\n actions.pause();\n } else {\n actions.resume();\n onResume();\n }\n }\n\n function onPause() {\n state.resumeQueue.add(onResume);\n state.timeouts.delete(timeout);\n timeout.cancel();\n delay = timeout.time - raf.now();\n }\n\n function onResume() {\n if (delay > 0) {\n timeout = raf.setTimeout(onStart, delay);\n state.pauseQueue.add(onPause);\n state.timeouts.add(timeout);\n } else {\n onStart();\n }\n }\n\n function onStart() {\n state.pauseQueue.delete(onPause);\n state.timeouts.delete(timeout);\n\n if (callId <= (state.cancelId || 0)) {\n cancel = true;\n }\n\n try {\n actions.start(_extends({}, props, {\n callId,\n cancel\n }), resolve);\n } catch (err) {\n reject(err);\n }\n }\n });\n}\n\nconst getCombinedResult = (target, results) => results.length == 1 ? results[0] : results.some(result => result.cancelled) ? getCancelledResult(target.get()) : results.every(result => result.noop) ? getNoopResult(target.get()) : getFinishedResult(target.get(), results.every(result => result.finished));\nconst getNoopResult = value => ({\n value,\n noop: true,\n finished: true,\n cancelled: false\n});\nconst getFinishedResult = (value, finished, cancelled = false) => ({\n value,\n finished,\n cancelled\n});\nconst getCancelledResult = value => ({\n value,\n cancelled: true,\n finished: false\n});\n\nfunction runAsync(to, props, state, target) {\n const {\n callId,\n parentId,\n onRest\n } = props;\n const {\n asyncTo: prevTo,\n promise: prevPromise\n } = state;\n\n if (!parentId && to === prevTo && !props.reset) {\n return prevPromise;\n }\n\n return state.promise = (async () => {\n state.asyncId = callId;\n state.asyncTo = to;\n const defaultProps = getDefaultProps(props, (value, key) => key === 'onRest' ? undefined : value);\n let preventBail;\n let bail;\n const bailPromise = new Promise((resolve, reject) => (preventBail = resolve, bail = reject));\n\n const bailIfEnded = bailSignal => {\n const bailResult = callId <= (state.cancelId || 0) && getCancelledResult(target) || callId !== state.asyncId && getFinishedResult(target, false);\n\n if (bailResult) {\n bailSignal.result = bailResult;\n bail(bailSignal);\n throw bailSignal;\n }\n };\n\n const animate = (arg1, arg2) => {\n const bailSignal = new BailSignal();\n const skipAnimationSignal = new SkipAniamtionSignal();\n return (async () => {\n if (Globals.skipAnimation) {\n stopAsync(state);\n skipAnimationSignal.result = getFinishedResult(target, false);\n bail(skipAnimationSignal);\n throw skipAnimationSignal;\n }\n\n bailIfEnded(bailSignal);\n const props = is.obj(arg1) ? _extends({}, arg1) : _extends({}, arg2, {\n to: arg1\n });\n props.parentId = callId;\n eachProp(defaultProps, (value, key) => {\n if (is.und(props[key])) {\n props[key] = value;\n }\n });\n const result = await target.start(props);\n bailIfEnded(bailSignal);\n\n if (state.paused) {\n await new Promise(resume => {\n state.resumeQueue.add(resume);\n });\n }\n\n return result;\n })();\n };\n\n let result;\n\n if (Globals.skipAnimation) {\n stopAsync(state);\n return getFinishedResult(target, false);\n }\n\n try {\n let animating;\n\n if (is.arr(to)) {\n animating = (async queue => {\n for (const props of queue) {\n await animate(props);\n }\n })(to);\n } else {\n animating = Promise.resolve(to(animate, target.stop.bind(target)));\n }\n\n await Promise.all([animating.then(preventBail), bailPromise]);\n result = getFinishedResult(target.get(), true, false);\n } catch (err) {\n if (err instanceof BailSignal) {\n result = err.result;\n } else if (err instanceof SkipAniamtionSignal) {\n result = err.result;\n } else {\n throw err;\n }\n } finally {\n if (callId == state.asyncId) {\n state.asyncId = parentId;\n state.asyncTo = parentId ? prevTo : undefined;\n state.promise = parentId ? prevPromise : undefined;\n }\n }\n\n if (is.fun(onRest)) {\n raf.batchedUpdates(() => {\n onRest(result, target, target.item);\n });\n }\n\n return result;\n })();\n}\nfunction stopAsync(state, cancelId) {\n flush(state.timeouts, t => t.cancel());\n state.pauseQueue.clear();\n state.resumeQueue.clear();\n state.asyncId = state.asyncTo = state.promise = undefined;\n if (cancelId) state.cancelId = cancelId;\n}\nclass BailSignal extends Error {\n constructor() {\n super('An async animation has been interrupted. You see this error because you ' + 'forgot to use `await` or `.catch(...)` on its returned promise.');\n this.result = void 0;\n }\n\n}\nclass SkipAniamtionSignal extends Error {\n constructor() {\n super('SkipAnimationSignal');\n this.result = void 0;\n }\n\n}\n\nconst isFrameValue = value => value instanceof FrameValue;\nlet nextId$1 = 1;\nclass FrameValue extends FluidValue {\n constructor(...args) {\n super(...args);\n this.id = nextId$1++;\n this.key = void 0;\n this._priority = 0;\n }\n\n get priority() {\n return this._priority;\n }\n\n set priority(priority) {\n if (this._priority != priority) {\n this._priority = priority;\n\n this._onPriorityChange(priority);\n }\n }\n\n get() {\n const node = getAnimated(this);\n return node && node.getValue();\n }\n\n to(...args) {\n return Globals.to(this, args);\n }\n\n interpolate(...args) {\n deprecateInterpolate();\n return Globals.to(this, args);\n }\n\n toJSON() {\n return this.get();\n }\n\n observerAdded(count) {\n if (count == 1) this._attach();\n }\n\n observerRemoved(count) {\n if (count == 0) this._detach();\n }\n\n _attach() {}\n\n _detach() {}\n\n _onChange(value, idle = false) {\n callFluidObservers(this, {\n type: 'change',\n parent: this,\n value,\n idle\n });\n }\n\n _onPriorityChange(priority) {\n if (!this.idle) {\n frameLoop.sort(this);\n }\n\n callFluidObservers(this, {\n type: 'priority',\n parent: this,\n priority\n });\n }\n\n}\n\nconst $P = Symbol.for('SpringPhase');\nconst HAS_ANIMATED = 1;\nconst IS_ANIMATING = 2;\nconst IS_PAUSED = 4;\nconst hasAnimated = target => (target[$P] & HAS_ANIMATED) > 0;\nconst isAnimating = target => (target[$P] & IS_ANIMATING) > 0;\nconst isPaused = target => (target[$P] & IS_PAUSED) > 0;\nconst setActiveBit = (target, active) => active ? target[$P] |= IS_ANIMATING | HAS_ANIMATED : target[$P] &= ~IS_ANIMATING;\nconst setPausedBit = (target, paused) => paused ? target[$P] |= IS_PAUSED : target[$P] &= ~IS_PAUSED;\n\nclass SpringValue extends FrameValue {\n constructor(arg1, arg2) {\n super();\n this.key = void 0;\n this.animation = new Animation();\n this.queue = void 0;\n this.defaultProps = {};\n this._state = {\n paused: false,\n pauseQueue: new Set(),\n resumeQueue: new Set(),\n timeouts: new Set()\n };\n this._pendingCalls = new Set();\n this._lastCallId = 0;\n this._lastToId = 0;\n this._memoizedDuration = 0;\n\n if (!is.und(arg1) || !is.und(arg2)) {\n const props = is.obj(arg1) ? _extends({}, arg1) : _extends({}, arg2, {\n from: arg1\n });\n\n if (is.und(props.default)) {\n props.default = true;\n }\n\n this.start(props);\n }\n }\n\n get idle() {\n return !(isAnimating(this) || this._state.asyncTo) || isPaused(this);\n }\n\n get goal() {\n return getFluidValue(this.animation.to);\n }\n\n get velocity() {\n const node = getAnimated(this);\n return node instanceof AnimatedValue ? node.lastVelocity || 0 : node.getPayload().map(node => node.lastVelocity || 0);\n }\n\n get hasAnimated() {\n return hasAnimated(this);\n }\n\n get isAnimating() {\n return isAnimating(this);\n }\n\n get isPaused() {\n return isPaused(this);\n }\n\n advance(dt) {\n let idle = true;\n let changed = false;\n const anim = this.animation;\n let {\n config,\n toValues\n } = anim;\n const payload = getPayload(anim.to);\n\n if (!payload && hasFluidValue(anim.to)) {\n toValues = toArray(getFluidValue(anim.to));\n }\n\n anim.values.forEach((node, i) => {\n if (node.done) return;\n const to = node.constructor == AnimatedString ? 1 : payload ? payload[i].lastPosition : toValues[i];\n let finished = anim.immediate;\n let position = to;\n\n if (!finished) {\n position = node.lastPosition;\n\n if (config.tension <= 0) {\n node.done = true;\n return;\n }\n\n let elapsed = node.elapsedTime += dt;\n const from = anim.fromValues[i];\n const v0 = node.v0 != null ? node.v0 : node.v0 = is.arr(config.velocity) ? config.velocity[i] : config.velocity;\n let velocity;\n\n if (!is.und(config.duration)) {\n let p = 1;\n\n if (config.duration > 0) {\n if (this._memoizedDuration !== config.duration) {\n this._memoizedDuration = config.duration;\n\n if (node.durationProgress > 0) {\n node.elapsedTime = config.duration * node.durationProgress;\n elapsed = node.elapsedTime += dt;\n }\n }\n\n p = (config.progress || 0) + elapsed / this._memoizedDuration;\n p = p > 1 ? 1 : p < 0 ? 0 : p;\n node.durationProgress = p;\n }\n\n position = from + config.easing(p) * (to - from);\n velocity = (position - node.lastPosition) / dt;\n finished = p == 1;\n } else if (config.decay) {\n const decay = config.decay === true ? 0.998 : config.decay;\n const e = Math.exp(-(1 - decay) * elapsed);\n position = from + v0 / (1 - decay) * (1 - e);\n finished = Math.abs(node.lastPosition - position) < 0.1;\n velocity = v0 * e;\n } else {\n velocity = node.lastVelocity == null ? v0 : node.lastVelocity;\n const precision = config.precision || (from == to ? 0.005 : Math.min(1, Math.abs(to - from) * 0.001));\n const restVelocity = config.restVelocity || precision / 10;\n const bounceFactor = config.clamp ? 0 : config.bounce;\n const canBounce = !is.und(bounceFactor);\n const isGrowing = from == to ? node.v0 > 0 : from < to;\n let isMoving;\n let isBouncing = false;\n const step = 1;\n const numSteps = Math.ceil(dt / step);\n\n for (let n = 0; n < numSteps; ++n) {\n isMoving = Math.abs(velocity) > restVelocity;\n\n if (!isMoving) {\n finished = Math.abs(to - position) <= precision;\n\n if (finished) {\n break;\n }\n }\n\n if (canBounce) {\n isBouncing = position == to || position > to == isGrowing;\n\n if (isBouncing) {\n velocity = -velocity * bounceFactor;\n position = to;\n }\n }\n\n const springForce = -config.tension * 0.000001 * (position - to);\n const dampingForce = -config.friction * 0.001 * velocity;\n const acceleration = (springForce + dampingForce) / config.mass;\n velocity = velocity + acceleration * step;\n position = position + velocity * step;\n }\n }\n\n node.lastVelocity = velocity;\n\n if (Number.isNaN(position)) {\n console.warn(`Got NaN while animating:`, this);\n finished = true;\n }\n }\n\n if (payload && !payload[i].done) {\n finished = false;\n }\n\n if (finished) {\n node.done = true;\n } else {\n idle = false;\n }\n\n if (node.setValue(position, config.round)) {\n changed = true;\n }\n });\n const node = getAnimated(this);\n const currVal = node.getValue();\n\n if (idle) {\n const finalVal = getFluidValue(anim.to);\n\n if ((currVal !== finalVal || changed) && !config.decay) {\n node.setValue(finalVal);\n\n this._onChange(finalVal);\n } else if (changed && config.decay) {\n this._onChange(currVal);\n }\n\n this._stop();\n } else if (changed) {\n this._onChange(currVal);\n }\n }\n\n set(value) {\n raf.batchedUpdates(() => {\n this._stop();\n\n this._focus(value);\n\n this._set(value);\n });\n return this;\n }\n\n pause() {\n this._update({\n pause: true\n });\n }\n\n resume() {\n this._update({\n pause: false\n });\n }\n\n finish() {\n if (isAnimating(this)) {\n const {\n to,\n config\n } = this.animation;\n raf.batchedUpdates(() => {\n this._onStart();\n\n if (!config.decay) {\n this._set(to, false);\n }\n\n this._stop();\n });\n }\n\n return this;\n }\n\n update(props) {\n const queue = this.queue || (this.queue = []);\n queue.push(props);\n return this;\n }\n\n start(to, arg2) {\n let queue;\n\n if (!is.und(to)) {\n queue = [is.obj(to) ? to : _extends({}, arg2, {\n to\n })];\n } else {\n queue = this.queue || [];\n this.queue = [];\n }\n\n return Promise.all(queue.map(props => this._update(props))).then(results => getCombinedResult(this, results));\n }\n\n stop(cancel) {\n const {\n to\n } = this.animation;\n\n this._focus(this.get());\n\n stopAsync(this._state, cancel && this._lastCallId);\n raf.batchedUpdates(() => this._stop(to, cancel));\n return this;\n }\n\n reset() {\n this._update({\n reset: true\n });\n }\n\n eventObserved(event) {\n if (event.type == 'change') {\n this._start();\n } else if (event.type == 'priority') {\n this.priority = event.priority + 1;\n }\n }\n\n _prepareNode(props) {\n const key = this.key || '';\n let {\n to,\n from\n } = props;\n to = is.obj(to) ? to[key] : to;\n\n if (to == null || isAsyncTo(to)) {\n to = undefined;\n }\n\n from = is.obj(from) ? from[key] : from;\n\n if (from == null) {\n from = undefined;\n }\n\n const range = {\n to,\n from\n };\n\n if (!hasAnimated(this)) {\n if (props.reverse) [to, from] = [from, to];\n from = getFluidValue(from);\n\n if (!is.und(from)) {\n this._set(from);\n } else if (!getAnimated(this)) {\n this._set(to);\n }\n }\n\n return range;\n }\n\n _update(_ref, isLoop) {\n let props = _extends({}, _ref);\n\n const {\n key,\n defaultProps\n } = this;\n if (props.default) Object.assign(defaultProps, getDefaultProps(props, (value, prop) => /^on/.test(prop) ? resolveProp(value, key) : value));\n mergeActiveFn(this, props, 'onProps');\n sendEvent(this, 'onProps', props, this);\n\n const range = this._prepareNode(props);\n\n if (Object.isFrozen(this)) {\n throw Error('Cannot animate a `SpringValue` object that is frozen. ' + 'Did you forget to pass your component to `animated(...)` before animating its props?');\n }\n\n const state = this._state;\n return scheduleProps(++this._lastCallId, {\n key,\n props,\n defaultProps,\n state,\n actions: {\n pause: () => {\n if (!isPaused(this)) {\n setPausedBit(this, true);\n flushCalls(state.pauseQueue);\n sendEvent(this, 'onPause', getFinishedResult(this, checkFinished(this, this.animation.to)), this);\n }\n },\n resume: () => {\n if (isPaused(this)) {\n setPausedBit(this, false);\n\n if (isAnimating(this)) {\n this._resume();\n }\n\n flushCalls(state.resumeQueue);\n sendEvent(this, 'onResume', getFinishedResult(this, checkFinished(this, this.animation.to)), this);\n }\n },\n start: this._merge.bind(this, range)\n }\n }).then(result => {\n if (props.loop && result.finished && !(isLoop && result.noop)) {\n const nextProps = createLoopUpdate(props);\n\n if (nextProps) {\n return this._update(nextProps, true);\n }\n }\n\n return result;\n });\n }\n\n _merge(range, props, resolve) {\n if (props.cancel) {\n this.stop(true);\n return resolve(getCancelledResult(this));\n }\n\n const hasToProp = !is.und(range.to);\n const hasFromProp = !is.und(range.from);\n\n if (hasToProp || hasFromProp) {\n if (props.callId > this._lastToId) {\n this._lastToId = props.callId;\n } else {\n return resolve(getCancelledResult(this));\n }\n }\n\n const {\n key,\n defaultProps,\n animation: anim\n } = this;\n const {\n to: prevTo,\n from: prevFrom\n } = anim;\n let {\n to = prevTo,\n from = prevFrom\n } = range;\n\n if (hasFromProp && !hasToProp && (!props.default || is.und(to))) {\n to = from;\n }\n\n if (props.reverse) [to, from] = [from, to];\n const hasFromChanged = !isEqual(from, prevFrom);\n\n if (hasFromChanged) {\n anim.from = from;\n }\n\n from = getFluidValue(from);\n const hasToChanged = !isEqual(to, prevTo);\n\n if (hasToChanged) {\n this._focus(to);\n }\n\n const hasAsyncTo = isAsyncTo(props.to);\n const {\n config\n } = anim;\n const {\n decay,\n velocity\n } = config;\n\n if (hasToProp || hasFromProp) {\n config.velocity = 0;\n }\n\n if (props.config && !hasAsyncTo) {\n mergeConfig(config, callProp(props.config, key), props.config !== defaultProps.config ? callProp(defaultProps.config, key) : void 0);\n }\n\n let node = getAnimated(this);\n\n if (!node || is.und(to)) {\n return resolve(getFinishedResult(this, true));\n }\n\n const reset = is.und(props.reset) ? hasFromProp && !props.default : !is.und(from) && matchProp(props.reset, key);\n const value = reset ? from : this.get();\n const goal = computeGoal(to);\n const isAnimatable = is.num(goal) || is.arr(goal) || isAnimatedString(goal);\n const immediate = !hasAsyncTo && (!isAnimatable || matchProp(defaultProps.immediate || props.immediate, key));\n\n if (hasToChanged) {\n const nodeType = getAnimatedType(to);\n\n if (nodeType !== node.constructor) {\n if (immediate) {\n node = this._set(goal);\n } else throw Error(`Cannot animate between ${node.constructor.name} and ${nodeType.name}, as the \"to\" prop suggests`);\n }\n }\n\n const goalType = node.constructor;\n let started = hasFluidValue(to);\n let finished = false;\n\n if (!started) {\n const hasValueChanged = reset || !hasAnimated(this) && hasFromChanged;\n\n if (hasToChanged || hasValueChanged) {\n finished = isEqual(computeGoal(value), goal);\n started = !finished;\n }\n\n if (!isEqual(anim.immediate, immediate) && !immediate || !isEqual(config.decay, decay) || !isEqual(config.velocity, velocity)) {\n started = true;\n }\n }\n\n if (finished && isAnimating(this)) {\n if (anim.changed && !reset) {\n started = true;\n } else if (!started) {\n this._stop(prevTo);\n }\n }\n\n if (!hasAsyncTo) {\n if (started || hasFluidValue(prevTo)) {\n anim.values = node.getPayload();\n anim.toValues = hasFluidValue(to) ? null : goalType == AnimatedString ? [1] : toArray(goal);\n }\n\n if (anim.immediate != immediate) {\n anim.immediate = immediate;\n\n if (!immediate && !reset) {\n this._set(prevTo);\n }\n }\n\n if (started) {\n const {\n onRest\n } = anim;\n each(ACTIVE_EVENTS, type => mergeActiveFn(this, props, type));\n const result = getFinishedResult(this, checkFinished(this, prevTo));\n flushCalls(this._pendingCalls, result);\n\n this._pendingCalls.add(resolve);\n\n if (anim.changed) raf.batchedUpdates(() => {\n anim.changed = !reset;\n onRest == null ? void 0 : onRest(result, this);\n\n if (reset) {\n callProp(defaultProps.onRest, result);\n } else {\n anim.onStart == null ? void 0 : anim.onStart(result, this);\n }\n });\n }\n }\n\n if (reset) {\n this._set(value);\n }\n\n if (hasAsyncTo) {\n resolve(runAsync(props.to, props, this._state, this));\n } else if (started) {\n this._start();\n } else if (isAnimating(this) && !hasToChanged) {\n this._pendingCalls.add(resolve);\n } else {\n resolve(getNoopResult(value));\n }\n }\n\n _focus(value) {\n const anim = this.animation;\n\n if (value !== anim.to) {\n if (getFluidObservers(this)) {\n this._detach();\n }\n\n anim.to = value;\n\n if (getFluidObservers(this)) {\n this._attach();\n }\n }\n }\n\n _attach() {\n let priority = 0;\n const {\n to\n } = this.animation;\n\n if (hasFluidValue(to)) {\n addFluidObserver(to, this);\n\n if (isFrameValue(to)) {\n priority = to.priority + 1;\n }\n }\n\n this.priority = priority;\n }\n\n _detach() {\n const {\n to\n } = this.animation;\n\n if (hasFluidValue(to)) {\n removeFluidObserver(to, this);\n }\n }\n\n _set(arg, idle = true) {\n const value = getFluidValue(arg);\n\n if (!is.und(value)) {\n const oldNode = getAnimated(this);\n\n if (!oldNode || !isEqual(value, oldNode.getValue())) {\n const nodeType = getAnimatedType(value);\n\n if (!oldNode || oldNode.constructor != nodeType) {\n setAnimated(this, nodeType.create(value));\n } else {\n oldNode.setValue(value);\n }\n\n if (oldNode) {\n raf.batchedUpdates(() => {\n this._onChange(value, idle);\n });\n }\n }\n }\n\n return getAnimated(this);\n }\n\n _onStart() {\n const anim = this.animation;\n\n if (!anim.changed) {\n anim.changed = true;\n sendEvent(this, 'onStart', getFinishedResult(this, checkFinished(this, anim.to)), this);\n }\n }\n\n _onChange(value, idle) {\n if (!idle) {\n this._onStart();\n\n callProp(this.animation.onChange, value, this);\n }\n\n callProp(this.defaultProps.onChange, value, this);\n\n super._onChange(value, idle);\n }\n\n _start() {\n const anim = this.animation;\n getAnimated(this).reset(getFluidValue(anim.to));\n\n if (!anim.immediate) {\n anim.fromValues = anim.values.map(node => node.lastPosition);\n }\n\n if (!isAnimating(this)) {\n setActiveBit(this, true);\n\n if (!isPaused(this)) {\n this._resume();\n }\n }\n }\n\n _resume() {\n if (Globals.skipAnimation) {\n this.finish();\n } else {\n frameLoop.start(this);\n }\n }\n\n _stop(goal, cancel) {\n if (isAnimating(this)) {\n setActiveBit(this, false);\n const anim = this.animation;\n each(anim.values, node => {\n node.done = true;\n });\n\n if (anim.toValues) {\n anim.onChange = anim.onPause = anim.onResume = undefined;\n }\n\n callFluidObservers(this, {\n type: 'idle',\n parent: this\n });\n const result = cancel ? getCancelledResult(this.get()) : getFinishedResult(this.get(), checkFinished(this, goal != null ? goal : anim.to));\n flushCalls(this._pendingCalls, result);\n\n if (anim.changed) {\n anim.changed = false;\n sendEvent(this, 'onRest', result, this);\n }\n }\n }\n\n}\n\nfunction checkFinished(target, to) {\n const goal = computeGoal(to);\n const value = computeGoal(target.get());\n return isEqual(value, goal);\n}\n\nfunction createLoopUpdate(props, loop = props.loop, to = props.to) {\n let loopRet = callProp(loop);\n\n if (loopRet) {\n const overrides = loopRet !== true && inferTo(loopRet);\n const reverse = (overrides || props).reverse;\n const reset = !overrides || overrides.reset;\n return createUpdate(_extends({}, props, {\n loop,\n default: false,\n pause: undefined,\n to: !reverse || isAsyncTo(to) ? to : undefined,\n from: reset ? props.from : undefined,\n reset\n }, overrides));\n }\n}\nfunction createUpdate(props) {\n const {\n to,\n from\n } = props = inferTo(props);\n const keys = new Set();\n if (is.obj(to)) findDefined(to, keys);\n if (is.obj(from)) findDefined(from, keys);\n props.keys = keys.size ? Array.from(keys) : null;\n return props;\n}\nfunction declareUpdate(props) {\n const update = createUpdate(props);\n\n if (is.und(update.default)) {\n update.default = getDefaultProps(update);\n }\n\n return update;\n}\n\nfunction findDefined(values, keys) {\n eachProp(values, (value, key) => value != null && keys.add(key));\n}\n\nconst ACTIVE_EVENTS = ['onStart', 'onRest', 'onChange', 'onPause', 'onResume'];\n\nfunction mergeActiveFn(target, props, type) {\n target.animation[type] = props[type] !== getDefaultProp(props, type) ? resolveProp(props[type], target.key) : undefined;\n}\n\nfunction sendEvent(target, type, ...args) {\n var _target$animation$typ, _target$animation, _target$defaultProps$, _target$defaultProps;\n\n (_target$animation$typ = (_target$animation = target.animation)[type]) == null ? void 0 : _target$animation$typ.call(_target$animation, ...args);\n (_target$defaultProps$ = (_target$defaultProps = target.defaultProps)[type]) == null ? void 0 : _target$defaultProps$.call(_target$defaultProps, ...args);\n}\n\nconst BATCHED_EVENTS = ['onStart', 'onChange', 'onRest'];\nlet nextId = 1;\nclass Controller {\n constructor(props, flush) {\n this.id = nextId++;\n this.springs = {};\n this.queue = [];\n this.ref = void 0;\n this._flush = void 0;\n this._initialProps = void 0;\n this._lastAsyncId = 0;\n this._active = new Set();\n this._changed = new Set();\n this._started = false;\n this._item = void 0;\n this._state = {\n paused: false,\n pauseQueue: new Set(),\n resumeQueue: new Set(),\n timeouts: new Set()\n };\n this._events = {\n onStart: new Map(),\n onChange: new Map(),\n onRest: new Map()\n };\n this._onFrame = this._onFrame.bind(this);\n\n if (flush) {\n this._flush = flush;\n }\n\n if (props) {\n this.start(_extends({\n default: true\n }, props));\n }\n }\n\n get idle() {\n return !this._state.asyncTo && Object.values(this.springs).every(spring => spring.idle);\n }\n\n get item() {\n return this._item;\n }\n\n set item(item) {\n this._item = item;\n }\n\n get() {\n const values = {};\n this.each((spring, key) => values[key] = spring.get());\n return values;\n }\n\n set(values) {\n for (const key in values) {\n const value = values[key];\n\n if (!is.und(value)) {\n this.springs[key].set(value);\n }\n }\n }\n\n update(props) {\n if (props) {\n this.queue.push(createUpdate(props));\n }\n\n return this;\n }\n\n start(props) {\n let {\n queue\n } = this;\n\n if (props) {\n queue = toArray(props).map(createUpdate);\n } else {\n this.queue = [];\n }\n\n if (this._flush) {\n return this._flush(this, queue);\n }\n\n prepareKeys(this, queue);\n return flushUpdateQueue(this, queue);\n }\n\n stop(arg, keys) {\n if (arg !== !!arg) {\n keys = arg;\n }\n\n if (keys) {\n const springs = this.springs;\n each(toArray(keys), key => springs[key].stop(!!arg));\n } else {\n stopAsync(this._state, this._lastAsyncId);\n this.each(spring => spring.stop(!!arg));\n }\n\n return this;\n }\n\n pause(keys) {\n if (is.und(keys)) {\n this.start({\n pause: true\n });\n } else {\n const springs = this.springs;\n each(toArray(keys), key => springs[key].pause());\n }\n\n return this;\n }\n\n resume(keys) {\n if (is.und(keys)) {\n this.start({\n pause: false\n });\n } else {\n const springs = this.springs;\n each(toArray(keys), key => springs[key].resume());\n }\n\n return this;\n }\n\n each(iterator) {\n eachProp(this.springs, iterator);\n }\n\n _onFrame() {\n const {\n onStart,\n onChange,\n onRest\n } = this._events;\n const active = this._active.size > 0;\n const changed = this._changed.size > 0;\n\n if (active && !this._started || changed && !this._started) {\n this._started = true;\n flush(onStart, ([onStart, result]) => {\n result.value = this.get();\n onStart(result, this, this._item);\n });\n }\n\n const idle = !active && this._started;\n const values = changed || idle && onRest.size ? this.get() : null;\n\n if (changed && onChange.size) {\n flush(onChange, ([onChange, result]) => {\n result.value = values;\n onChange(result, this, this._item);\n });\n }\n\n if (idle) {\n this._started = false;\n flush(onRest, ([onRest, result]) => {\n result.value = values;\n onRest(result, this, this._item);\n });\n }\n }\n\n eventObserved(event) {\n if (event.type == 'change') {\n this._changed.add(event.parent);\n\n if (!event.idle) {\n this._active.add(event.parent);\n }\n } else if (event.type == 'idle') {\n this._active.delete(event.parent);\n } else return;\n\n raf.onFrame(this._onFrame);\n }\n\n}\nfunction flushUpdateQueue(ctrl, queue) {\n return Promise.all(queue.map(props => flushUpdate(ctrl, props))).then(results => getCombinedResult(ctrl, results));\n}\nasync function flushUpdate(ctrl, props, isLoop) {\n const {\n keys,\n to,\n from,\n loop,\n onRest,\n onResolve\n } = props;\n const defaults = is.obj(props.default) && props.default;\n\n if (loop) {\n props.loop = false;\n }\n\n if (to === false) props.to = null;\n if (from === false) props.from = null;\n const asyncTo = is.arr(to) || is.fun(to) ? to : undefined;\n\n if (asyncTo) {\n props.to = undefined;\n props.onRest = undefined;\n\n if (defaults) {\n defaults.onRest = undefined;\n }\n } else {\n each(BATCHED_EVENTS, key => {\n const handler = props[key];\n\n if (is.fun(handler)) {\n const queue = ctrl['_events'][key];\n\n props[key] = ({\n finished,\n cancelled\n }) => {\n const result = queue.get(handler);\n\n if (result) {\n if (!finished) result.finished = false;\n if (cancelled) result.cancelled = true;\n } else {\n queue.set(handler, {\n value: null,\n finished: finished || false,\n cancelled: cancelled || false\n });\n }\n };\n\n if (defaults) {\n defaults[key] = props[key];\n }\n }\n });\n }\n\n const state = ctrl['_state'];\n\n if (props.pause === !state.paused) {\n state.paused = props.pause;\n flushCalls(props.pause ? state.pauseQueue : state.resumeQueue);\n } else if (state.paused) {\n props.pause = true;\n }\n\n const promises = (keys || Object.keys(ctrl.springs)).map(key => ctrl.springs[key].start(props));\n const cancel = props.cancel === true || getDefaultProp(props, 'cancel') === true;\n\n if (asyncTo || cancel && state.asyncId) {\n promises.push(scheduleProps(++ctrl['_lastAsyncId'], {\n props,\n state,\n actions: {\n pause: noop,\n resume: noop,\n\n start(props, resolve) {\n if (cancel) {\n stopAsync(state, ctrl['_lastAsyncId']);\n resolve(getCancelledResult(ctrl));\n } else {\n props.onRest = onRest;\n resolve(runAsync(asyncTo, props, state, ctrl));\n }\n }\n\n }\n }));\n }\n\n if (state.paused) {\n await new Promise(resume => {\n state.resumeQueue.add(resume);\n });\n }\n\n const result = getCombinedResult(ctrl, await Promise.all(promises));\n\n if (loop && result.finished && !(isLoop && result.noop)) {\n const nextProps = createLoopUpdate(props, loop, to);\n\n if (nextProps) {\n prepareKeys(ctrl, [nextProps]);\n return flushUpdate(ctrl, nextProps, true);\n }\n }\n\n if (onResolve) {\n raf.batchedUpdates(() => onResolve(result, ctrl, ctrl.item));\n }\n\n return result;\n}\nfunction getSprings(ctrl, props) {\n const springs = _extends({}, ctrl.springs);\n\n if (props) {\n each(toArray(props), props => {\n if (is.und(props.keys)) {\n props = createUpdate(props);\n }\n\n if (!is.obj(props.to)) {\n props = _extends({}, props, {\n to: undefined\n });\n }\n\n prepareSprings(springs, props, key => {\n return createSpring(key);\n });\n });\n }\n\n setSprings(ctrl, springs);\n return springs;\n}\nfunction setSprings(ctrl, springs) {\n eachProp(springs, (spring, key) => {\n if (!ctrl.springs[key]) {\n ctrl.springs[key] = spring;\n addFluidObserver(spring, ctrl);\n }\n });\n}\n\nfunction createSpring(key, observer) {\n const spring = new SpringValue();\n spring.key = key;\n\n if (observer) {\n addFluidObserver(spring, observer);\n }\n\n return spring;\n}\n\nfunction prepareSprings(springs, props, create) {\n if (props.keys) {\n each(props.keys, key => {\n const spring = springs[key] || (springs[key] = create(key));\n spring['_prepareNode'](props);\n });\n }\n}\n\nfunction prepareKeys(ctrl, queue) {\n each(queue, props => {\n prepareSprings(ctrl.springs, props, key => {\n return createSpring(key, ctrl);\n });\n });\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nconst _excluded$3 = [\"children\"];\nconst SpringContext = _ref => {\n let {\n children\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded$3);\n\n const inherited = useContext(ctx);\n const pause = props.pause || !!inherited.pause,\n immediate = props.immediate || !!inherited.immediate;\n props = useMemoOne(() => ({\n pause,\n immediate\n }), [pause, immediate]);\n const {\n Provider\n } = ctx;\n return React.createElement(Provider, {\n value: props\n }, children);\n};\nconst ctx = makeContext(SpringContext, {});\nSpringContext.Provider = ctx.Provider;\nSpringContext.Consumer = ctx.Consumer;\n\nfunction makeContext(target, init) {\n Object.assign(target, React.createContext(init));\n target.Provider._context = target;\n target.Consumer._context = target;\n return target;\n}\n\nconst SpringRef = () => {\n const current = [];\n\n const SpringRef = function SpringRef(props) {\n deprecateDirectCall();\n const results = [];\n each(current, (ctrl, i) => {\n if (is.und(props)) {\n results.push(ctrl.start());\n } else {\n const update = _getProps(props, ctrl, i);\n\n if (update) {\n results.push(ctrl.start(update));\n }\n }\n });\n return results;\n };\n\n SpringRef.current = current;\n\n SpringRef.add = function (ctrl) {\n if (!current.includes(ctrl)) {\n current.push(ctrl);\n }\n };\n\n SpringRef.delete = function (ctrl) {\n const i = current.indexOf(ctrl);\n if (~i) current.splice(i, 1);\n };\n\n SpringRef.pause = function () {\n each(current, ctrl => ctrl.pause(...arguments));\n return this;\n };\n\n SpringRef.resume = function () {\n each(current, ctrl => ctrl.resume(...arguments));\n return this;\n };\n\n SpringRef.set = function (values) {\n each(current, ctrl => ctrl.set(values));\n };\n\n SpringRef.start = function (props) {\n const results = [];\n each(current, (ctrl, i) => {\n if (is.und(props)) {\n results.push(ctrl.start());\n } else {\n const update = this._getProps(props, ctrl, i);\n\n if (update) {\n results.push(ctrl.start(update));\n }\n }\n });\n return results;\n };\n\n SpringRef.stop = function () {\n each(current, ctrl => ctrl.stop(...arguments));\n return this;\n };\n\n SpringRef.update = function (props) {\n each(current, (ctrl, i) => ctrl.update(this._getProps(props, ctrl, i)));\n return this;\n };\n\n const _getProps = function _getProps(arg, ctrl, index) {\n return is.fun(arg) ? arg(index, ctrl) : arg;\n };\n\n SpringRef._getProps = _getProps;\n return SpringRef;\n};\n\nfunction useSprings(length, props, deps) {\n const propsFn = is.fun(props) && props;\n if (propsFn && !deps) deps = [];\n const ref = useMemo(() => propsFn || arguments.length == 3 ? SpringRef() : void 0, []);\n const layoutId = useRef(0);\n const forceUpdate = useForceUpdate();\n const state = useMemo(() => ({\n ctrls: [],\n queue: [],\n\n flush(ctrl, updates) {\n const springs = getSprings(ctrl, updates);\n const canFlushSync = layoutId.current > 0 && !state.queue.length && !Object.keys(springs).some(key => !ctrl.springs[key]);\n return canFlushSync ? flushUpdateQueue(ctrl, updates) : new Promise(resolve => {\n setSprings(ctrl, springs);\n state.queue.push(() => {\n resolve(flushUpdateQueue(ctrl, updates));\n });\n forceUpdate();\n });\n }\n\n }), []);\n const ctrls = useRef([...state.ctrls]);\n const updates = [];\n const prevLength = usePrev(length) || 0;\n useMemo(() => {\n each(ctrls.current.slice(length, prevLength), ctrl => {\n detachRefs(ctrl, ref);\n ctrl.stop(true);\n });\n ctrls.current.length = length;\n declareUpdates(prevLength, length);\n }, [length]);\n useMemo(() => {\n declareUpdates(0, Math.min(prevLength, length));\n }, deps);\n\n function declareUpdates(startIndex, endIndex) {\n for (let i = startIndex; i < endIndex; i++) {\n const ctrl = ctrls.current[i] || (ctrls.current[i] = new Controller(null, state.flush));\n const update = propsFn ? propsFn(i, ctrl) : props[i];\n\n if (update) {\n updates[i] = declareUpdate(update);\n }\n }\n }\n\n const springs = ctrls.current.map((ctrl, i) => getSprings(ctrl, updates[i]));\n const context = useContext(SpringContext);\n const prevContext = usePrev(context);\n const hasContext = context !== prevContext && hasProps(context);\n useLayoutEffect(() => {\n layoutId.current++;\n state.ctrls = ctrls.current;\n const {\n queue\n } = state;\n\n if (queue.length) {\n state.queue = [];\n each(queue, cb => cb());\n }\n\n each(ctrls.current, (ctrl, i) => {\n ref == null ? void 0 : ref.add(ctrl);\n\n if (hasContext) {\n ctrl.start({\n default: context\n });\n }\n\n const update = updates[i];\n\n if (update) {\n replaceRef(ctrl, update.ref);\n\n if (ctrl.ref) {\n ctrl.queue.push(update);\n } else {\n ctrl.start(update);\n }\n }\n });\n });\n useOnce(() => () => {\n each(state.ctrls, ctrl => ctrl.stop(true));\n });\n const values = springs.map(x => _extends({}, x));\n return ref ? [values, ref] : values;\n}\n\nfunction useSpring(props, deps) {\n const isFn = is.fun(props);\n const [[values], ref] = useSprings(1, isFn ? props : [props], isFn ? deps || [] : deps);\n return isFn || arguments.length == 2 ? [values, ref] : values;\n}\n\nconst initSpringRef = () => SpringRef();\n\nconst useSpringRef = () => useState(initSpringRef)[0];\n\nfunction useTrail(length, propsArg, deps) {\n const propsFn = is.fun(propsArg) && propsArg;\n if (propsFn && !deps) deps = [];\n let reverse = true;\n const result = useSprings(length, (i, ctrl) => {\n const props = propsFn ? propsFn(i, ctrl) : propsArg;\n reverse = reverse && props.reverse;\n return props;\n }, deps || [{}]);\n const ref = result[1];\n useLayoutEffect(() => {\n each(ref.current, (ctrl, i) => {\n const parent = ref.current[i + (reverse ? 1 : -1)];\n if (parent) ctrl.start({\n to: parent.springs\n });\n });\n }, deps);\n\n if (propsFn || arguments.length == 3) {\n ref['_getProps'] = (propsArg, ctrl, i) => {\n const props = is.fun(propsArg) ? propsArg(i, ctrl) : propsArg;\n\n if (props) {\n const parent = ref.current[i + (props.reverse ? 1 : -1)];\n if (parent) props.to = parent.springs;\n return props;\n }\n };\n\n return result;\n }\n\n return result[0];\n}\n\nlet TransitionPhase;\n\n(function (TransitionPhase) {\n TransitionPhase[\"MOUNT\"] = \"mount\";\n TransitionPhase[\"ENTER\"] = \"enter\";\n TransitionPhase[\"UPDATE\"] = \"update\";\n TransitionPhase[\"LEAVE\"] = \"leave\";\n})(TransitionPhase || (TransitionPhase = {}));\n\nfunction useTransition(data, props, deps) {\n const propsFn = is.fun(props) && props;\n const {\n reset,\n sort,\n trail = 0,\n expires = true,\n onDestroyed,\n ref: propsRef,\n config: propsConfig\n } = propsFn ? propsFn() : props;\n const ref = useMemo(() => propsFn || arguments.length == 3 ? SpringRef() : void 0, []);\n const items = toArray(data);\n const transitions = [];\n const usedTransitions = useRef(null);\n const prevTransitions = reset ? null : usedTransitions.current;\n useLayoutEffect(() => {\n usedTransitions.current = transitions;\n });\n useOnce(() => () => each(usedTransitions.current, t => {\n if (t.expired) {\n clearTimeout(t.expirationId);\n }\n\n detachRefs(t.ctrl, ref);\n t.ctrl.stop(true);\n }));\n const keys = getKeys(items, propsFn ? propsFn() : props, prevTransitions);\n const expired = reset && usedTransitions.current || [];\n useLayoutEffect(() => each(expired, ({\n ctrl,\n item,\n key\n }) => {\n detachRefs(ctrl, ref);\n callProp(onDestroyed, item, key);\n }));\n const reused = [];\n if (prevTransitions) each(prevTransitions, (t, i) => {\n if (t.expired) {\n clearTimeout(t.expirationId);\n expired.push(t);\n } else {\n i = reused[i] = keys.indexOf(t.key);\n if (~i) transitions[i] = t;\n }\n });\n each(items, (item, i) => {\n if (!transitions[i]) {\n transitions[i] = {\n key: keys[i],\n item,\n phase: TransitionPhase.MOUNT,\n ctrl: new Controller()\n };\n transitions[i].ctrl.item = item;\n }\n });\n\n if (reused.length) {\n let i = -1;\n const {\n leave\n } = propsFn ? propsFn() : props;\n each(reused, (keyIndex, prevIndex) => {\n const t = prevTransitions[prevIndex];\n\n if (~keyIndex) {\n i = transitions.indexOf(t);\n transitions[i] = _extends({}, t, {\n item: items[keyIndex]\n });\n } else if (leave) {\n transitions.splice(++i, 0, t);\n }\n });\n }\n\n if (is.fun(sort)) {\n transitions.sort((a, b) => sort(a.item, b.item));\n }\n\n let delay = -trail;\n const forceUpdate = useForceUpdate();\n const defaultProps = getDefaultProps(props);\n const changes = new Map();\n each(transitions, (t, i) => {\n const key = t.key;\n const prevPhase = t.phase;\n const p = propsFn ? propsFn() : props;\n let to;\n let phase;\n let propsDelay = callProp(p.delay || 0, key);\n\n if (prevPhase == TransitionPhase.MOUNT) {\n to = p.enter;\n phase = TransitionPhase.ENTER;\n } else {\n const isLeave = keys.indexOf(key) < 0;\n\n if (prevPhase != TransitionPhase.LEAVE) {\n if (isLeave) {\n to = p.leave;\n phase = TransitionPhase.LEAVE;\n } else if (to = p.update) {\n phase = TransitionPhase.UPDATE;\n } else return;\n } else if (!isLeave) {\n to = p.enter;\n phase = TransitionPhase.ENTER;\n } else return;\n }\n\n to = callProp(to, t.item, i);\n to = is.obj(to) ? inferTo(to) : {\n to\n };\n\n if (!to.config) {\n const config = propsConfig || defaultProps.config;\n to.config = callProp(config, t.item, i, phase);\n }\n\n delay += trail;\n\n const payload = _extends({}, defaultProps, {\n delay: propsDelay + delay,\n ref: propsRef,\n immediate: p.immediate,\n reset: false\n }, to);\n\n if (phase == TransitionPhase.ENTER && is.und(payload.from)) {\n const _p = propsFn ? propsFn() : props;\n\n const from = is.und(_p.initial) || prevTransitions ? _p.from : _p.initial;\n payload.from = callProp(from, t.item, i);\n }\n\n const {\n onResolve\n } = payload;\n\n payload.onResolve = result => {\n callProp(onResolve, result);\n const transitions = usedTransitions.current;\n const t = transitions.find(t => t.key === key);\n if (!t) return;\n\n if (result.cancelled && t.phase != TransitionPhase.UPDATE) {\n return;\n }\n\n if (t.ctrl.idle) {\n const idle = transitions.every(t => t.ctrl.idle);\n\n if (t.phase == TransitionPhase.LEAVE) {\n const expiry = callProp(expires, t.item);\n\n if (expiry !== false) {\n const expiryMs = expiry === true ? 0 : expiry;\n t.expired = true;\n\n if (!idle && expiryMs > 0) {\n if (expiryMs <= 0x7fffffff) t.expirationId = setTimeout(forceUpdate, expiryMs);\n return;\n }\n }\n }\n\n if (idle && transitions.some(t => t.expired)) {\n forceUpdate();\n }\n }\n };\n\n const springs = getSprings(t.ctrl, payload);\n changes.set(t, {\n phase,\n springs,\n payload\n });\n });\n const context = useContext(SpringContext);\n const prevContext = usePrev(context);\n const hasContext = context !== prevContext && hasProps(context);\n useLayoutEffect(() => {\n if (hasContext) each(transitions, t => {\n t.ctrl.start({\n default: context\n });\n });\n }, [context]);\n useLayoutEffect(() => {\n each(changes, ({\n phase,\n payload\n }, t) => {\n const {\n ctrl\n } = t;\n t.phase = phase;\n ref == null ? void 0 : ref.add(ctrl);\n\n if (hasContext && phase == TransitionPhase.ENTER) {\n ctrl.start({\n default: context\n });\n }\n\n if (payload) {\n replaceRef(ctrl, payload.ref);\n\n if (ctrl.ref) {\n ctrl.update(payload);\n } else {\n ctrl.start(payload);\n }\n }\n });\n }, reset ? void 0 : deps);\n\n const renderTransitions = render => React.createElement(React.Fragment, null, transitions.map((t, i) => {\n const {\n springs\n } = changes.get(t) || t.ctrl;\n const elem = render(_extends({}, springs), t.item, t, i);\n return elem && elem.type ? React.createElement(elem.type, _extends({}, elem.props, {\n key: is.str(t.key) || is.num(t.key) ? t.key : t.ctrl.id,\n ref: elem.ref\n })) : elem;\n }));\n\n return ref ? [renderTransitions, ref] : renderTransitions;\n}\nlet nextKey = 1;\n\nfunction getKeys(items, {\n key,\n keys = key\n}, prevTransitions) {\n if (keys === null) {\n const reused = new Set();\n return items.map(item => {\n const t = prevTransitions && prevTransitions.find(t => t.item === item && t.phase !== TransitionPhase.LEAVE && !reused.has(t));\n\n if (t) {\n reused.add(t);\n return t.key;\n }\n\n return nextKey++;\n });\n }\n\n return is.und(keys) ? items : is.fun(keys) ? items.map(keys) : toArray(keys);\n}\n\nconst _excluded$2 = [\"children\"];\nfunction Spring(_ref) {\n let {\n children\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded$2);\n\n return children(useSpring(props));\n}\n\nconst _excluded$1 = [\"items\", \"children\"];\nfunction Trail(_ref) {\n let {\n items,\n children\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded$1);\n\n const trails = useTrail(items.length, props);\n return items.map((item, index) => {\n const result = children(item, index);\n return is.fun(result) ? result(trails[index]) : result;\n });\n}\n\nconst _excluded = [\"items\", \"children\"];\nfunction Transition(_ref) {\n let {\n items,\n children\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n return useTransition(items, props)(children);\n}\n\nclass Interpolation extends FrameValue {\n constructor(source, args) {\n super();\n this.key = void 0;\n this.idle = true;\n this.calc = void 0;\n this._active = new Set();\n this.source = source;\n this.calc = createInterpolator(...args);\n\n const value = this._get();\n\n const nodeType = getAnimatedType(value);\n setAnimated(this, nodeType.create(value));\n }\n\n advance(_dt) {\n const value = this._get();\n\n const oldValue = this.get();\n\n if (!isEqual(value, oldValue)) {\n getAnimated(this).setValue(value);\n\n this._onChange(value, this.idle);\n }\n\n if (!this.idle && checkIdle(this._active)) {\n becomeIdle(this);\n }\n }\n\n _get() {\n const inputs = is.arr(this.source) ? this.source.map(getFluidValue) : toArray(getFluidValue(this.source));\n return this.calc(...inputs);\n }\n\n _start() {\n if (this.idle && !checkIdle(this._active)) {\n this.idle = false;\n each(getPayload(this), node => {\n node.done = false;\n });\n\n if (Globals.skipAnimation) {\n raf.batchedUpdates(() => this.advance());\n becomeIdle(this);\n } else {\n frameLoop.start(this);\n }\n }\n }\n\n _attach() {\n let priority = 1;\n each(toArray(this.source), source => {\n if (hasFluidValue(source)) {\n addFluidObserver(source, this);\n }\n\n if (isFrameValue(source)) {\n if (!source.idle) {\n this._active.add(source);\n }\n\n priority = Math.max(priority, source.priority + 1);\n }\n });\n this.priority = priority;\n\n this._start();\n }\n\n _detach() {\n each(toArray(this.source), source => {\n if (hasFluidValue(source)) {\n removeFluidObserver(source, this);\n }\n });\n\n this._active.clear();\n\n becomeIdle(this);\n }\n\n eventObserved(event) {\n if (event.type == 'change') {\n if (event.idle) {\n this.advance();\n } else {\n this._active.add(event.parent);\n\n this._start();\n }\n } else if (event.type == 'idle') {\n this._active.delete(event.parent);\n } else if (event.type == 'priority') {\n this.priority = toArray(this.source).reduce((highest, parent) => Math.max(highest, (isFrameValue(parent) ? parent.priority : 0) + 1), 0);\n }\n }\n\n}\n\nfunction isIdle(source) {\n return source.idle !== false;\n}\n\nfunction checkIdle(active) {\n return !active.size || Array.from(active).every(isIdle);\n}\n\nfunction becomeIdle(self) {\n if (!self.idle) {\n self.idle = true;\n each(getPayload(self), node => {\n node.done = true;\n });\n callFluidObservers(self, {\n type: 'idle',\n parent: self\n });\n }\n}\n\nconst to = (source, ...args) => new Interpolation(source, args);\nconst interpolate = (source, ...args) => (deprecateInterpolate(), new Interpolation(source, args));\n\nGlobals.assign({\n createStringInterpolator,\n to: (source, args) => new Interpolation(source, args)\n});\nconst update = frameLoop.advance;\n\nexport { BailSignal, Controller, FrameValue, Interpolation, Spring, SpringContext, SpringRef, SpringValue, Trail, Transition, config, inferTo, interpolate, to, update, useChain, useSpring, useSpringRef, useSprings, useTrail, useTransition };\n","let updateQueue = makeQueue();\nconst raf = fn => schedule(fn, updateQueue);\nlet writeQueue = makeQueue();\n\nraf.write = fn => schedule(fn, writeQueue);\n\nlet onStartQueue = makeQueue();\n\nraf.onStart = fn => schedule(fn, onStartQueue);\n\nlet onFrameQueue = makeQueue();\n\nraf.onFrame = fn => schedule(fn, onFrameQueue);\n\nlet onFinishQueue = makeQueue();\n\nraf.onFinish = fn => schedule(fn, onFinishQueue);\n\nlet timeouts = [];\n\nraf.setTimeout = (handler, ms) => {\n let time = raf.now() + ms;\n\n let cancel = () => {\n let i = timeouts.findIndex(t => t.cancel == cancel);\n if (~i) timeouts.splice(i, 1);\n __raf.count -= ~i ? 1 : 0;\n };\n\n let timeout = {\n time,\n handler,\n cancel\n };\n timeouts.splice(findTimeout(time), 0, timeout);\n __raf.count += 1;\n start();\n return timeout;\n};\n\nlet findTimeout = time => ~(~timeouts.findIndex(t => t.time > time) || ~timeouts.length);\n\nraf.cancel = fn => {\n updateQueue.delete(fn);\n writeQueue.delete(fn);\n};\n\nraf.sync = fn => {\n sync = true;\n raf.batchedUpdates(fn);\n sync = false;\n};\n\nraf.throttle = fn => {\n let lastArgs;\n\n function queuedFn() {\n try {\n fn(...lastArgs);\n } finally {\n lastArgs = null;\n }\n }\n\n function throttled(...args) {\n lastArgs = args;\n raf.onStart(queuedFn);\n }\n\n throttled.handler = fn;\n\n throttled.cancel = () => {\n onStartQueue.delete(queuedFn);\n lastArgs = null;\n };\n\n return throttled;\n};\n\nlet nativeRaf = typeof window != 'undefined' ? window.requestAnimationFrame : () => {};\n\nraf.use = impl => nativeRaf = impl;\n\nraf.now = typeof performance != 'undefined' ? () => performance.now() : Date.now;\n\nraf.batchedUpdates = fn => fn();\n\nraf.catch = console.error;\nraf.frameLoop = 'always';\n\nraf.advance = () => {\n if (raf.frameLoop !== 'demand') {\n console.warn('Cannot call the manual advancement of rafz whilst frameLoop is not set as demand');\n } else {\n update();\n }\n};\n\nlet ts = -1;\nlet sync = false;\n\nfunction schedule(fn, queue) {\n if (sync) {\n queue.delete(fn);\n fn(0);\n } else {\n queue.add(fn);\n start();\n }\n}\n\nfunction start() {\n if (ts < 0) {\n ts = 0;\n\n if (raf.frameLoop !== 'demand') {\n nativeRaf(loop);\n }\n }\n}\n\nfunction loop() {\n if (~ts) {\n nativeRaf(loop);\n raf.batchedUpdates(update);\n }\n}\n\nfunction update() {\n let prevTs = ts;\n ts = raf.now();\n let count = findTimeout(ts);\n\n if (count) {\n eachSafely(timeouts.splice(0, count), t => t.handler());\n __raf.count -= count;\n }\n\n onStartQueue.flush();\n updateQueue.flush(prevTs ? Math.min(64, ts - prevTs) : 16.667);\n onFrameQueue.flush();\n writeQueue.flush();\n onFinishQueue.flush();\n}\n\nfunction makeQueue() {\n let next = new Set();\n let current = next;\n return {\n add(fn) {\n __raf.count += current == next && !next.has(fn) ? 1 : 0;\n next.add(fn);\n },\n\n delete(fn) {\n __raf.count -= current == next && next.has(fn) ? 1 : 0;\n return next.delete(fn);\n },\n\n flush(arg) {\n if (current.size) {\n next = new Set();\n __raf.count -= current.size;\n eachSafely(current, fn => fn(arg) && next.add(fn));\n __raf.count += next.size;\n current = next;\n }\n }\n\n };\n}\n\nfunction eachSafely(values, each) {\n values.forEach(value => {\n try {\n each(value);\n } catch (e) {\n raf.catch(e);\n }\n });\n}\n\nconst __raf = {\n count: 0,\n\n clear() {\n ts = -1;\n timeouts = [];\n onStartQueue = makeQueue();\n updateQueue = makeQueue();\n onFrameQueue = makeQueue();\n writeQueue = makeQueue();\n onFinishQueue = makeQueue();\n __raf.count = 0;\n }\n\n};\n\nexport { __raf, raf };\n","import { raf } from '@react-spring/rafz';\nexport { raf } from '@react-spring/rafz';\nimport * as React from 'react';\nimport { useEffect, useState, useRef } from 'react';\n\nfunction noop() {}\nconst defineHidden = (obj, key, value) => Object.defineProperty(obj, key, {\n value,\n writable: true,\n configurable: true\n});\nconst is = {\n arr: Array.isArray,\n obj: a => !!a && a.constructor.name === 'Object',\n fun: a => typeof a === 'function',\n str: a => typeof a === 'string',\n num: a => typeof a === 'number',\n und: a => a === undefined\n};\nfunction isEqual(a, b) {\n if (is.arr(a)) {\n if (!is.arr(b) || a.length !== b.length) return false;\n\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n\n return true;\n }\n\n return a === b;\n}\nconst each = (obj, fn) => obj.forEach(fn);\nfunction eachProp(obj, fn, ctx) {\n if (is.arr(obj)) {\n for (let i = 0; i < obj.length; i++) {\n fn.call(ctx, obj[i], `${i}`);\n }\n\n return;\n }\n\n for (const key in obj) {\n if (obj.hasOwnProperty(key)) {\n fn.call(ctx, obj[key], key);\n }\n }\n}\nconst toArray = a => is.und(a) ? [] : is.arr(a) ? a : [a];\nfunction flush(queue, iterator) {\n if (queue.size) {\n const items = Array.from(queue);\n queue.clear();\n each(items, iterator);\n }\n}\nconst flushCalls = (queue, ...args) => flush(queue, fn => fn(...args));\n\nlet createStringInterpolator$1;\nlet to;\nlet colors$1 = null;\nlet skipAnimation = false;\nlet willAdvance = noop;\nconst assign = globals => {\n if (globals.to) to = globals.to;\n if (globals.now) raf.now = globals.now;\n if (globals.colors !== undefined) colors$1 = globals.colors;\n if (globals.skipAnimation != null) skipAnimation = globals.skipAnimation;\n if (globals.createStringInterpolator) createStringInterpolator$1 = globals.createStringInterpolator;\n if (globals.requestAnimationFrame) raf.use(globals.requestAnimationFrame);\n if (globals.batchedUpdates) raf.batchedUpdates = globals.batchedUpdates;\n if (globals.willAdvance) willAdvance = globals.willAdvance;\n if (globals.frameLoop) raf.frameLoop = globals.frameLoop;\n};\n\nvar globals = /*#__PURE__*/Object.freeze({\n __proto__: null,\n get createStringInterpolator () { return createStringInterpolator$1; },\n get to () { return to; },\n get colors () { return colors$1; },\n get skipAnimation () { return skipAnimation; },\n get willAdvance () { return willAdvance; },\n assign: assign\n});\n\nconst startQueue = new Set();\nlet currentFrame = [];\nlet prevFrame = [];\nlet priority = 0;\nconst frameLoop = {\n get idle() {\n return !startQueue.size && !currentFrame.length;\n },\n\n start(animation) {\n if (priority > animation.priority) {\n startQueue.add(animation);\n raf.onStart(flushStartQueue);\n } else {\n startSafely(animation);\n raf(advance);\n }\n },\n\n advance,\n\n sort(animation) {\n if (priority) {\n raf.onFrame(() => frameLoop.sort(animation));\n } else {\n const prevIndex = currentFrame.indexOf(animation);\n\n if (~prevIndex) {\n currentFrame.splice(prevIndex, 1);\n startUnsafely(animation);\n }\n }\n },\n\n clear() {\n currentFrame = [];\n startQueue.clear();\n }\n\n};\n\nfunction flushStartQueue() {\n startQueue.forEach(startSafely);\n startQueue.clear();\n raf(advance);\n}\n\nfunction startSafely(animation) {\n if (!currentFrame.includes(animation)) startUnsafely(animation);\n}\n\nfunction startUnsafely(animation) {\n currentFrame.splice(findIndex(currentFrame, other => other.priority > animation.priority), 0, animation);\n}\n\nfunction advance(dt) {\n const nextFrame = prevFrame;\n\n for (let i = 0; i < currentFrame.length; i++) {\n const animation = currentFrame[i];\n priority = animation.priority;\n\n if (!animation.idle) {\n willAdvance(animation);\n animation.advance(dt);\n\n if (!animation.idle) {\n nextFrame.push(animation);\n }\n }\n }\n\n priority = 0;\n prevFrame = currentFrame;\n prevFrame.length = 0;\n currentFrame = nextFrame;\n return currentFrame.length > 0;\n}\n\nfunction findIndex(arr, test) {\n const index = arr.findIndex(test);\n return index < 0 ? arr.length : index;\n}\n\nconst colors = {\n transparent: 0x00000000,\n aliceblue: 0xf0f8ffff,\n antiquewhite: 0xfaebd7ff,\n aqua: 0x00ffffff,\n aquamarine: 0x7fffd4ff,\n azure: 0xf0ffffff,\n beige: 0xf5f5dcff,\n bisque: 0xffe4c4ff,\n black: 0x000000ff,\n blanchedalmond: 0xffebcdff,\n blue: 0x0000ffff,\n blueviolet: 0x8a2be2ff,\n brown: 0xa52a2aff,\n burlywood: 0xdeb887ff,\n burntsienna: 0xea7e5dff,\n cadetblue: 0x5f9ea0ff,\n chartreuse: 0x7fff00ff,\n chocolate: 0xd2691eff,\n coral: 0xff7f50ff,\n cornflowerblue: 0x6495edff,\n cornsilk: 0xfff8dcff,\n crimson: 0xdc143cff,\n cyan: 0x00ffffff,\n darkblue: 0x00008bff,\n darkcyan: 0x008b8bff,\n darkgoldenrod: 0xb8860bff,\n darkgray: 0xa9a9a9ff,\n darkgreen: 0x006400ff,\n darkgrey: 0xa9a9a9ff,\n darkkhaki: 0xbdb76bff,\n darkmagenta: 0x8b008bff,\n darkolivegreen: 0x556b2fff,\n darkorange: 0xff8c00ff,\n darkorchid: 0x9932ccff,\n darkred: 0x8b0000ff,\n darksalmon: 0xe9967aff,\n darkseagreen: 0x8fbc8fff,\n darkslateblue: 0x483d8bff,\n darkslategray: 0x2f4f4fff,\n darkslategrey: 0x2f4f4fff,\n darkturquoise: 0x00ced1ff,\n darkviolet: 0x9400d3ff,\n deeppink: 0xff1493ff,\n deepskyblue: 0x00bfffff,\n dimgray: 0x696969ff,\n dimgrey: 0x696969ff,\n dodgerblue: 0x1e90ffff,\n firebrick: 0xb22222ff,\n floralwhite: 0xfffaf0ff,\n forestgreen: 0x228b22ff,\n fuchsia: 0xff00ffff,\n gainsboro: 0xdcdcdcff,\n ghostwhite: 0xf8f8ffff,\n gold: 0xffd700ff,\n goldenrod: 0xdaa520ff,\n gray: 0x808080ff,\n green: 0x008000ff,\n greenyellow: 0xadff2fff,\n grey: 0x808080ff,\n honeydew: 0xf0fff0ff,\n hotpink: 0xff69b4ff,\n indianred: 0xcd5c5cff,\n indigo: 0x4b0082ff,\n ivory: 0xfffff0ff,\n khaki: 0xf0e68cff,\n lavender: 0xe6e6faff,\n lavenderblush: 0xfff0f5ff,\n lawngreen: 0x7cfc00ff,\n lemonchiffon: 0xfffacdff,\n lightblue: 0xadd8e6ff,\n lightcoral: 0xf08080ff,\n lightcyan: 0xe0ffffff,\n lightgoldenrodyellow: 0xfafad2ff,\n lightgray: 0xd3d3d3ff,\n lightgreen: 0x90ee90ff,\n lightgrey: 0xd3d3d3ff,\n lightpink: 0xffb6c1ff,\n lightsalmon: 0xffa07aff,\n lightseagreen: 0x20b2aaff,\n lightskyblue: 0x87cefaff,\n lightslategray: 0x778899ff,\n lightslategrey: 0x778899ff,\n lightsteelblue: 0xb0c4deff,\n lightyellow: 0xffffe0ff,\n lime: 0x00ff00ff,\n limegreen: 0x32cd32ff,\n linen: 0xfaf0e6ff,\n magenta: 0xff00ffff,\n maroon: 0x800000ff,\n mediumaquamarine: 0x66cdaaff,\n mediumblue: 0x0000cdff,\n mediumorchid: 0xba55d3ff,\n mediumpurple: 0x9370dbff,\n mediumseagreen: 0x3cb371ff,\n mediumslateblue: 0x7b68eeff,\n mediumspringgreen: 0x00fa9aff,\n mediumturquoise: 0x48d1ccff,\n mediumvioletred: 0xc71585ff,\n midnightblue: 0x191970ff,\n mintcream: 0xf5fffaff,\n mistyrose: 0xffe4e1ff,\n moccasin: 0xffe4b5ff,\n navajowhite: 0xffdeadff,\n navy: 0x000080ff,\n oldlace: 0xfdf5e6ff,\n olive: 0x808000ff,\n olivedrab: 0x6b8e23ff,\n orange: 0xffa500ff,\n orangered: 0xff4500ff,\n orchid: 0xda70d6ff,\n palegoldenrod: 0xeee8aaff,\n palegreen: 0x98fb98ff,\n paleturquoise: 0xafeeeeff,\n palevioletred: 0xdb7093ff,\n papayawhip: 0xffefd5ff,\n peachpuff: 0xffdab9ff,\n peru: 0xcd853fff,\n pink: 0xffc0cbff,\n plum: 0xdda0ddff,\n powderblue: 0xb0e0e6ff,\n purple: 0x800080ff,\n rebeccapurple: 0x663399ff,\n red: 0xff0000ff,\n rosybrown: 0xbc8f8fff,\n royalblue: 0x4169e1ff,\n saddlebrown: 0x8b4513ff,\n salmon: 0xfa8072ff,\n sandybrown: 0xf4a460ff,\n seagreen: 0x2e8b57ff,\n seashell: 0xfff5eeff,\n sienna: 0xa0522dff,\n silver: 0xc0c0c0ff,\n skyblue: 0x87ceebff,\n slateblue: 0x6a5acdff,\n slategray: 0x708090ff,\n slategrey: 0x708090ff,\n snow: 0xfffafaff,\n springgreen: 0x00ff7fff,\n steelblue: 0x4682b4ff,\n tan: 0xd2b48cff,\n teal: 0x008080ff,\n thistle: 0xd8bfd8ff,\n tomato: 0xff6347ff,\n turquoise: 0x40e0d0ff,\n violet: 0xee82eeff,\n wheat: 0xf5deb3ff,\n white: 0xffffffff,\n whitesmoke: 0xf5f5f5ff,\n yellow: 0xffff00ff,\n yellowgreen: 0x9acd32ff\n};\n\nconst NUMBER = '[-+]?\\\\d*\\\\.?\\\\d+';\nconst PERCENTAGE = NUMBER + '%';\n\nfunction call(...parts) {\n return '\\\\(\\\\s*(' + parts.join(')\\\\s*,\\\\s*(') + ')\\\\s*\\\\)';\n}\n\nconst rgb = new RegExp('rgb' + call(NUMBER, NUMBER, NUMBER));\nconst rgba = new RegExp('rgba' + call(NUMBER, NUMBER, NUMBER, NUMBER));\nconst hsl = new RegExp('hsl' + call(NUMBER, PERCENTAGE, PERCENTAGE));\nconst hsla = new RegExp('hsla' + call(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER));\nconst hex3 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;\nconst hex4 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;\nconst hex6 = /^#([0-9a-fA-F]{6})$/;\nconst hex8 = /^#([0-9a-fA-F]{8})$/;\n\nfunction normalizeColor(color) {\n let match;\n\n if (typeof color === 'number') {\n return color >>> 0 === color && color >= 0 && color <= 0xffffffff ? color : null;\n }\n\n if (match = hex6.exec(color)) return parseInt(match[1] + 'ff', 16) >>> 0;\n\n if (colors$1 && colors$1[color] !== undefined) {\n return colors$1[color];\n }\n\n if (match = rgb.exec(color)) {\n return (parse255(match[1]) << 24 | parse255(match[2]) << 16 | parse255(match[3]) << 8 | 0x000000ff) >>> 0;\n }\n\n if (match = rgba.exec(color)) {\n return (parse255(match[1]) << 24 | parse255(match[2]) << 16 | parse255(match[3]) << 8 | parse1(match[4])) >>> 0;\n }\n\n if (match = hex3.exec(color)) {\n return parseInt(match[1] + match[1] + match[2] + match[2] + match[3] + match[3] + 'ff', 16) >>> 0;\n }\n\n if (match = hex8.exec(color)) return parseInt(match[1], 16) >>> 0;\n\n if (match = hex4.exec(color)) {\n return parseInt(match[1] + match[1] + match[2] + match[2] + match[3] + match[3] + match[4] + match[4], 16) >>> 0;\n }\n\n if (match = hsl.exec(color)) {\n return (hslToRgb(parse360(match[1]), parsePercentage(match[2]), parsePercentage(match[3])) | 0x000000ff) >>> 0;\n }\n\n if (match = hsla.exec(color)) {\n return (hslToRgb(parse360(match[1]), parsePercentage(match[2]), parsePercentage(match[3])) | parse1(match[4])) >>> 0;\n }\n\n return null;\n}\n\nfunction hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n}\n\nfunction hslToRgb(h, s, l) {\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n const r = hue2rgb(p, q, h + 1 / 3);\n const g = hue2rgb(p, q, h);\n const b = hue2rgb(p, q, h - 1 / 3);\n return Math.round(r * 255) << 24 | Math.round(g * 255) << 16 | Math.round(b * 255) << 8;\n}\n\nfunction parse255(str) {\n const int = parseInt(str, 10);\n if (int < 0) return 0;\n if (int > 255) return 255;\n return int;\n}\n\nfunction parse360(str) {\n const int = parseFloat(str);\n return (int % 360 + 360) % 360 / 360;\n}\n\nfunction parse1(str) {\n const num = parseFloat(str);\n if (num < 0) return 0;\n if (num > 1) return 255;\n return Math.round(num * 255);\n}\n\nfunction parsePercentage(str) {\n const int = parseFloat(str);\n if (int < 0) return 0;\n if (int > 100) return 1;\n return int / 100;\n}\n\nfunction colorToRgba(input) {\n let int32Color = normalizeColor(input);\n if (int32Color === null) return input;\n int32Color = int32Color || 0;\n let r = (int32Color & 0xff000000) >>> 24;\n let g = (int32Color & 0x00ff0000) >>> 16;\n let b = (int32Color & 0x0000ff00) >>> 8;\n let a = (int32Color & 0x000000ff) / 255;\n return `rgba(${r}, ${g}, ${b}, ${a})`;\n}\n\nconst createInterpolator = (range, output, extrapolate) => {\n if (is.fun(range)) {\n return range;\n }\n\n if (is.arr(range)) {\n return createInterpolator({\n range,\n output: output,\n extrapolate\n });\n }\n\n if (is.str(range.output[0])) {\n return createStringInterpolator$1(range);\n }\n\n const config = range;\n const outputRange = config.output;\n const inputRange = config.range || [0, 1];\n const extrapolateLeft = config.extrapolateLeft || config.extrapolate || 'extend';\n const extrapolateRight = config.extrapolateRight || config.extrapolate || 'extend';\n\n const easing = config.easing || (t => t);\n\n return input => {\n const range = findRange(input, inputRange);\n return interpolate(input, inputRange[range], inputRange[range + 1], outputRange[range], outputRange[range + 1], easing, extrapolateLeft, extrapolateRight, config.map);\n };\n};\n\nfunction interpolate(input, inputMin, inputMax, outputMin, outputMax, easing, extrapolateLeft, extrapolateRight, map) {\n let result = map ? map(input) : input;\n\n if (result < inputMin) {\n if (extrapolateLeft === 'identity') return result;else if (extrapolateLeft === 'clamp') result = inputMin;\n }\n\n if (result > inputMax) {\n if (extrapolateRight === 'identity') return result;else if (extrapolateRight === 'clamp') result = inputMax;\n }\n\n if (outputMin === outputMax) return outputMin;\n if (inputMin === inputMax) return input <= inputMin ? outputMin : outputMax;\n if (inputMin === -Infinity) result = -result;else if (inputMax === Infinity) result = result - inputMin;else result = (result - inputMin) / (inputMax - inputMin);\n result = easing(result);\n if (outputMin === -Infinity) result = -result;else if (outputMax === Infinity) result = result + outputMin;else result = result * (outputMax - outputMin) + outputMin;\n return result;\n}\n\nfunction findRange(input, inputRange) {\n for (var i = 1; i < inputRange.length - 1; ++i) if (inputRange[i] >= input) break;\n\n return i - 1;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nconst $get = Symbol.for('FluidValue.get');\nconst $observers = Symbol.for('FluidValue.observers');\n\nconst hasFluidValue = arg => Boolean(arg && arg[$get]);\n\nconst getFluidValue = arg => arg && arg[$get] ? arg[$get]() : arg;\n\nconst getFluidObservers = target => target[$observers] || null;\n\nfunction callFluidObserver(observer, event) {\n if (observer.eventObserved) {\n observer.eventObserved(event);\n } else {\n observer(event);\n }\n}\n\nfunction callFluidObservers(target, event) {\n let observers = target[$observers];\n\n if (observers) {\n observers.forEach(observer => {\n callFluidObserver(observer, event);\n });\n }\n}\n\nclass FluidValue {\n constructor(get) {\n this[$get] = void 0;\n this[$observers] = void 0;\n\n if (!get && !(get = this.get)) {\n throw Error('Unknown getter');\n }\n\n setFluidGetter(this, get);\n }\n\n}\n\nconst setFluidGetter = (target, get) => setHidden(target, $get, get);\n\nfunction addFluidObserver(target, observer) {\n if (target[$get]) {\n let observers = target[$observers];\n\n if (!observers) {\n setHidden(target, $observers, observers = new Set());\n }\n\n if (!observers.has(observer)) {\n observers.add(observer);\n\n if (target.observerAdded) {\n target.observerAdded(observers.size, observer);\n }\n }\n }\n\n return observer;\n}\n\nfunction removeFluidObserver(target, observer) {\n let observers = target[$observers];\n\n if (observers && observers.has(observer)) {\n const count = observers.size - 1;\n\n if (count) {\n observers.delete(observer);\n } else {\n target[$observers] = null;\n }\n\n if (target.observerRemoved) {\n target.observerRemoved(count, observer);\n }\n }\n}\n\nconst setHidden = (target, key, value) => Object.defineProperty(target, key, {\n value,\n writable: true,\n configurable: true\n});\n\nconst numberRegex = /[+\\-]?(?:0|[1-9]\\d*)(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g;\nconst colorRegex = /(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\\((-?\\d+%?[,\\s]+){2,3}\\s*[\\d\\.]+%?\\))/gi;\nlet namedColorRegex;\nconst rgbaRegex = /rgba\\(([0-9\\.-]+), ([0-9\\.-]+), ([0-9\\.-]+), ([0-9\\.-]+)\\)/gi;\n\nconst rgbaRound = (_, p1, p2, p3, p4) => `rgba(${Math.round(p1)}, ${Math.round(p2)}, ${Math.round(p3)}, ${p4})`;\n\nconst createStringInterpolator = config => {\n if (!namedColorRegex) namedColorRegex = colors$1 ? new RegExp(`(${Object.keys(colors$1).join('|')})(?!\\\\w)`, 'g') : /^\\b$/;\n const output = config.output.map(value => getFluidValue(value).replace(colorRegex, colorToRgba).replace(namedColorRegex, colorToRgba));\n const keyframes = output.map(value => value.match(numberRegex).map(Number));\n const outputRanges = keyframes[0].map((_, i) => keyframes.map(values => {\n if (!(i in values)) {\n throw Error('The arity of each \"output\" value must be equal');\n }\n\n return values[i];\n }));\n const interpolators = outputRanges.map(output => createInterpolator(_extends({}, config, {\n output\n })));\n return input => {\n let i = 0;\n return output[0].replace(numberRegex, () => String(interpolators[i++](input))).replace(rgbaRegex, rgbaRound);\n };\n};\n\nconst prefix = 'react-spring: ';\n\nconst once = fn => {\n const func = fn;\n let called = false;\n\n if (typeof func != 'function') {\n throw new TypeError(`${prefix}once requires a function parameter`);\n }\n\n return (...args) => {\n if (!called) {\n func(...args);\n called = true;\n }\n };\n};\n\nconst warnInterpolate = once(console.warn);\nfunction deprecateInterpolate() {\n warnInterpolate(`${prefix}The \"interpolate\" function is deprecated in v9 (use \"to\" instead)`);\n}\nconst warnDirectCall = once(console.warn);\nfunction deprecateDirectCall() {\n warnDirectCall(`${prefix}Directly calling start instead of using the api object is deprecated in v9 (use \".start\" instead), this will be removed in later 0.X.0 versions`);\n}\n\nfunction isAnimatedString(value) {\n return is.str(value) && (value[0] == '#' || /\\d/.test(value) || value in (colors$1 || {}));\n}\n\nconst useOnce = effect => useEffect(effect, emptyDeps);\nconst emptyDeps = [];\n\nfunction useForceUpdate() {\n const update = useState()[1];\n const mounted = useState(makeMountedRef)[0];\n useOnce(mounted.unmount);\n return () => {\n if (mounted.current) {\n update({});\n }\n };\n}\n\nfunction makeMountedRef() {\n const mounted = {\n current: true,\n unmount: () => () => {\n mounted.current = false;\n }\n };\n return mounted;\n}\n\nfunction useMemoOne(getResult, inputs) {\n const [initial] = useState(() => ({\n inputs,\n result: getResult()\n }));\n const committed = useRef();\n const prevCache = committed.current;\n let cache = prevCache;\n\n if (cache) {\n const useCache = Boolean(inputs && cache.inputs && areInputsEqual(inputs, cache.inputs));\n\n if (!useCache) {\n cache = {\n inputs,\n result: getResult()\n };\n }\n } else {\n cache = initial;\n }\n\n useEffect(() => {\n committed.current = cache;\n\n if (prevCache == initial) {\n initial.inputs = initial.result = undefined;\n }\n }, [cache]);\n return cache.result;\n}\n\nfunction areInputsEqual(next, prev) {\n if (next.length !== prev.length) {\n return false;\n }\n\n for (let i = 0; i < next.length; i++) {\n if (next[i] !== prev[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction usePrev(value) {\n const prevRef = useRef();\n useEffect(() => {\n prevRef.current = value;\n });\n return prevRef.current;\n}\n\nconst useLayoutEffect = typeof window !== 'undefined' && window.document && window.document.createElement ? React.useLayoutEffect : React.useEffect;\n\nexport { FluidValue, globals as Globals, addFluidObserver, callFluidObserver, callFluidObservers, colorToRgba, colors, createInterpolator, createStringInterpolator, defineHidden, deprecateDirectCall, deprecateInterpolate, each, eachProp, flush, flushCalls, frameLoop, getFluidObservers, getFluidValue, hasFluidValue, hex3, hex4, hex6, hex8, hsl, hsla, is, isAnimatedString, isEqual, noop, removeFluidObserver, rgb, rgba, setFluidGetter, toArray, useForceUpdate, useLayoutEffect, useMemoOne, useOnce, usePrev };\n","import { Globals } from '@react-spring/core';\nexport * from '@react-spring/core';\nimport { unstable_batchedUpdates } from 'react-dom';\nimport { eachProp, is, toArray, FluidValue, each, getFluidValue, hasFluidValue, addFluidObserver, removeFluidObserver, callFluidObservers, createStringInterpolator, colors } from '@react-spring/shared';\nimport { AnimatedObject, createHost } from '@react-spring/animated';\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nconst _excluded$2 = [\"style\", \"children\", \"scrollTop\", \"scrollLeft\"];\nconst isCustomPropRE = /^--/;\n\nfunction dangerousStyleValue(name, value) {\n if (value == null || typeof value === 'boolean' || value === '') return '';\n if (typeof value === 'number' && value !== 0 && !isCustomPropRE.test(name) && !(isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name])) return value + 'px';\n return ('' + value).trim();\n}\n\nconst attributeCache = {};\nfunction applyAnimatedValues(instance, props) {\n if (!instance.nodeType || !instance.setAttribute) {\n return false;\n }\n\n const isFilterElement = instance.nodeName === 'filter' || instance.parentNode && instance.parentNode.nodeName === 'filter';\n\n const _ref = props,\n {\n style,\n children,\n scrollTop,\n scrollLeft\n } = _ref,\n attributes = _objectWithoutPropertiesLoose(_ref, _excluded$2);\n\n const values = Object.values(attributes);\n const names = Object.keys(attributes).map(name => isFilterElement || instance.hasAttribute(name) ? name : attributeCache[name] || (attributeCache[name] = name.replace(/([A-Z])/g, n => '-' + n.toLowerCase())));\n\n if (children !== void 0) {\n instance.textContent = children;\n }\n\n for (let name in style) {\n if (style.hasOwnProperty(name)) {\n const value = dangerousStyleValue(name, style[name]);\n\n if (isCustomPropRE.test(name)) {\n instance.style.setProperty(name, value);\n } else {\n instance.style[name] = value;\n }\n }\n }\n\n names.forEach((name, i) => {\n instance.setAttribute(name, values[i]);\n });\n\n if (scrollTop !== void 0) {\n instance.scrollTop = scrollTop;\n }\n\n if (scrollLeft !== void 0) {\n instance.scrollLeft = scrollLeft;\n }\n}\nlet isUnitlessNumber = {\n animationIterationCount: true,\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n columns: true,\n flex: true,\n flexGrow: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n flexOrder: true,\n gridRow: true,\n gridRowEnd: true,\n gridRowSpan: true,\n gridRowStart: true,\n gridColumn: true,\n gridColumnEnd: true,\n gridColumnSpan: true,\n gridColumnStart: true,\n fontWeight: true,\n lineClamp: true,\n lineHeight: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n fillOpacity: true,\n floodOpacity: true,\n stopOpacity: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeMiterlimit: true,\n strokeOpacity: true,\n strokeWidth: true\n};\n\nconst prefixKey = (prefix, key) => prefix + key.charAt(0).toUpperCase() + key.substring(1);\n\nconst prefixes = ['Webkit', 'Ms', 'Moz', 'O'];\nisUnitlessNumber = Object.keys(isUnitlessNumber).reduce((acc, prop) => {\n prefixes.forEach(prefix => acc[prefixKey(prefix, prop)] = acc[prop]);\n return acc;\n}, isUnitlessNumber);\n\nconst _excluded$1 = [\"x\", \"y\", \"z\"];\nconst domTransforms = /^(matrix|translate|scale|rotate|skew)/;\nconst pxTransforms = /^(translate)/;\nconst degTransforms = /^(rotate|skew)/;\n\nconst addUnit = (value, unit) => is.num(value) && value !== 0 ? value + unit : value;\n\nconst isValueIdentity = (value, id) => is.arr(value) ? value.every(v => isValueIdentity(v, id)) : is.num(value) ? value === id : parseFloat(value) === id;\n\nclass AnimatedStyle extends AnimatedObject {\n constructor(_ref) {\n let {\n x,\n y,\n z\n } = _ref,\n style = _objectWithoutPropertiesLoose(_ref, _excluded$1);\n\n const inputs = [];\n const transforms = [];\n\n if (x || y || z) {\n inputs.push([x || 0, y || 0, z || 0]);\n transforms.push(xyz => [`translate3d(${xyz.map(v => addUnit(v, 'px')).join(',')})`, isValueIdentity(xyz, 0)]);\n }\n\n eachProp(style, (value, key) => {\n if (key === 'transform') {\n inputs.push([value || '']);\n transforms.push(transform => [transform, transform === '']);\n } else if (domTransforms.test(key)) {\n delete style[key];\n if (is.und(value)) return;\n const unit = pxTransforms.test(key) ? 'px' : degTransforms.test(key) ? 'deg' : '';\n inputs.push(toArray(value));\n transforms.push(key === 'rotate3d' ? ([x, y, z, deg]) => [`rotate3d(${x},${y},${z},${addUnit(deg, unit)})`, isValueIdentity(deg, 0)] : input => [`${key}(${input.map(v => addUnit(v, unit)).join(',')})`, isValueIdentity(input, key.startsWith('scale') ? 1 : 0)]);\n }\n });\n\n if (inputs.length) {\n style.transform = new FluidTransform(inputs, transforms);\n }\n\n super(style);\n }\n\n}\n\nclass FluidTransform extends FluidValue {\n constructor(inputs, transforms) {\n super();\n this._value = null;\n this.inputs = inputs;\n this.transforms = transforms;\n }\n\n get() {\n return this._value || (this._value = this._get());\n }\n\n _get() {\n let transform = '';\n let identity = true;\n each(this.inputs, (input, i) => {\n const arg1 = getFluidValue(input[0]);\n const [t, id] = this.transforms[i](is.arr(arg1) ? arg1 : input.map(getFluidValue));\n transform += ' ' + t;\n identity = identity && id;\n });\n return identity ? 'none' : transform;\n }\n\n observerAdded(count) {\n if (count == 1) each(this.inputs, input => each(input, value => hasFluidValue(value) && addFluidObserver(value, this)));\n }\n\n observerRemoved(count) {\n if (count == 0) each(this.inputs, input => each(input, value => hasFluidValue(value) && removeFluidObserver(value, this)));\n }\n\n eventObserved(event) {\n if (event.type == 'change') {\n this._value = null;\n }\n\n callFluidObservers(this, event);\n }\n\n}\n\nconst primitives = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', 'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\nconst _excluded = [\"scrollTop\", \"scrollLeft\"];\nGlobals.assign({\n batchedUpdates: unstable_batchedUpdates,\n createStringInterpolator,\n colors\n});\nconst host = createHost(primitives, {\n applyAnimatedValues,\n createAnimatedStyle: style => new AnimatedStyle(style),\n getComponentProps: _ref => {\n let props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n return props;\n }\n});\nconst animated = host.animated;\n\nexport { animated as a, animated };\n","/**\n * @remix-run/router v1.15.0\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n/**\n * Actions represent the type of change to a location value.\n */\nvar Action;\n(function (Action) {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Action[\"Pop\"] = \"POP\";\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Action[\"Push\"] = \"PUSH\";\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Action[\"Replace\"] = \"REPLACE\";\n})(Action || (Action = {}));\nconst PopStateEventType = \"popstate\";\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nfunction createMemoryHistory(options) {\n if (options === void 0) {\n options = {};\n }\n let {\n initialEntries = [\"/\"],\n initialIndex,\n v5Compat = false\n } = options;\n let entries; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) => createMemoryLocation(entry, typeof entry === \"string\" ? null : entry.state, index === 0 ? \"default\" : undefined));\n let index = clampIndex(initialIndex == null ? entries.length - 1 : initialIndex);\n let action = Action.Pop;\n let listener = null;\n function clampIndex(n) {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation() {\n return entries[index];\n }\n function createMemoryLocation(to, state, key) {\n if (state === void 0) {\n state = null;\n }\n let location = createLocation(entries ? getCurrentLocation().pathname : \"/\", to, state, key);\n warning(location.pathname.charAt(0) === \"/\", \"relative pathnames are not supported in memory history: \" + JSON.stringify(to));\n return location;\n }\n function createHref(to) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n let history = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\"\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({\n action,\n location: nextLocation,\n delta: 1\n });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({\n action,\n location: nextLocation,\n delta: 0\n });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({\n action,\n location: nextLocation,\n delta\n });\n }\n },\n listen(fn) {\n listener = fn;\n return () => {\n listener = null;\n };\n }\n };\n return history;\n}\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nfunction createBrowserHistory(options) {\n if (options === void 0) {\n options = {};\n }\n function createBrowserLocation(window, globalHistory) {\n let {\n pathname,\n search,\n hash\n } = window.location;\n return createLocation(\"\", {\n pathname,\n search,\n hash\n },\n // state defaults to `null` because `window.history.state` does\n globalHistory.state && globalHistory.state.usr || null, globalHistory.state && globalHistory.state.key || \"default\");\n }\n function createBrowserHref(window, to) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n return getUrlBasedHistory(createBrowserLocation, createBrowserHref, null, options);\n}\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nfunction createHashHistory(options) {\n if (options === void 0) {\n options = {};\n }\n function createHashLocation(window, globalHistory) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\"\n } = parsePath(window.location.hash.substr(1));\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route () since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n return createLocation(\"\", {\n pathname,\n search,\n hash\n },\n // state defaults to `null` because `window.history.state` does\n globalHistory.state && globalHistory.state.usr || null, globalHistory.state && globalHistory.state.key || \"default\");\n }\n function createHashHref(window, to) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n function validateHashLocation(location, to) {\n warning(location.pathname.charAt(0) === \"/\", \"relative pathnames are not supported in hash history.push(\" + JSON.stringify(to) + \")\");\n }\n return getUrlBasedHistory(createHashLocation, createHashHref, validateHashLocation, options);\n}\nfunction invariant(value, message) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\nfunction warning(cond, message) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location, index) {\n return {\n usr: location.state,\n key: location.key,\n idx: index\n };\n}\n/**\n * Creates a Location object with a unique key from the given Path\n */\nfunction createLocation(current, to, state, key) {\n if (state === void 0) {\n state = null;\n }\n let location = _extends({\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\"\n }, typeof to === \"string\" ? parsePath(to) : to, {\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: to && to.key || key || createKey()\n });\n return location;\n}\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nfunction createPath(_ref) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\"\n } = _ref;\n if (search && search !== \"?\") pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\") pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nfunction parsePath(path) {\n let parsedPath = {};\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n if (path) {\n parsedPath.pathname = path;\n }\n }\n return parsedPath;\n}\nfunction getUrlBasedHistory(getLocation, createHref, validateLocation, options) {\n if (options === void 0) {\n options = {};\n }\n let {\n window = document.defaultView,\n v5Compat = false\n } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener = null;\n let index = getIndex();\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState(_extends({}, globalHistory.state, {\n idx: index\n }), \"\");\n }\n function getIndex() {\n let state = globalHistory.state || {\n idx: null\n };\n return state.idx;\n }\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({\n action,\n location: history.location,\n delta\n });\n }\n }\n function push(to, state) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n if (v5Compat && listener) {\n listener({\n action,\n location: history.location,\n delta: 1\n });\n }\n }\n function replace(to, state) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n if (v5Compat && listener) {\n listener({\n action,\n location: history.location,\n delta: 0\n });\n }\n }\n function createURL(to) {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base = window.location.origin !== \"null\" ? window.location.origin : window.location.href;\n let href = typeof to === \"string\" ? to : createPath(to);\n invariant(base, \"No window.location.(origin|href) available to create URL for href: \" + href);\n return new URL(href, base);\n }\n let history = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n }\n };\n return history;\n}\n//#endregion\n\nvar ResultType;\n(function (ResultType) {\n ResultType[\"data\"] = \"data\";\n ResultType[\"deferred\"] = \"deferred\";\n ResultType[\"redirect\"] = \"redirect\";\n ResultType[\"error\"] = \"error\";\n})(ResultType || (ResultType = {}));\nconst immutableRouteKeys = new Set([\"lazy\", \"caseSensitive\", \"path\", \"id\", \"index\", \"children\"]);\nfunction isIndexRoute(route) {\n return route.index === true;\n}\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nfunction convertRoutesToDataRoutes(routes, mapRouteProperties, parentPath, manifest) {\n if (parentPath === void 0) {\n parentPath = [];\n }\n if (manifest === void 0) {\n manifest = {};\n }\n return routes.map((route, index) => {\n let treePath = [...parentPath, index];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(route.index !== true || !route.children, \"Cannot specify children on an index route\");\n invariant(!manifest[id], \"Found a route id collision on id \\\"\" + id + \"\\\". Route \" + \"id's must be globally unique within Data Router usages\");\n if (isIndexRoute(route)) {\n let indexRoute = _extends({}, route, mapRouteProperties(route), {\n id\n });\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute = _extends({}, route, mapRouteProperties(route), {\n id,\n children: undefined\n });\n manifest[id] = pathOrLayoutRoute;\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(route.children, mapRouteProperties, treePath, manifest);\n }\n return pathOrLayoutRoute;\n }\n });\n}\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nfunction matchRoutes(routes, locationArg, basename) {\n if (basename === void 0) {\n basename = \"/\";\n }\n let location = typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n let pathname = stripBasename(location.pathname || \"/\", basename);\n if (pathname == null) {\n return null;\n }\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n matches = matchRouteBranch(branches[i],\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n safelyDecodeURI(pathname));\n }\n return matches;\n}\nfunction convertRouteMatchToUiMatch(match, loaderData) {\n let {\n route,\n pathname,\n params\n } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle\n };\n}\nfunction flattenRoutes(routes, branches, parentsMeta, parentPath) {\n if (branches === void 0) {\n branches = [];\n }\n if (parentsMeta === void 0) {\n parentsMeta = [];\n }\n if (parentPath === void 0) {\n parentPath = \"\";\n }\n let flattenRoute = (route, index, relativePath) => {\n let meta = {\n relativePath: relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route\n };\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(meta.relativePath.startsWith(parentPath), \"Absolute route path \\\"\" + meta.relativePath + \"\\\" nested under path \" + (\"\\\"\" + parentPath + \"\\\" is not valid. An absolute child route path \") + \"must start with the combined path of all its parent routes.\");\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true, \"Index routes must not have child routes. Please remove \" + (\"all child routes from route path \\\"\" + path + \"\\\".\"));\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta\n });\n };\n routes.forEach((route, index) => {\n var _route$path;\n // coarse-grain check for optional params\n if (route.path === \"\" || !((_route$path = route.path) != null && _route$path.includes(\"?\"))) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n return branches;\n}\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path) {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n let [first, ...rest] = segments;\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n let result = [];\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(...restExploded.map(subpath => subpath === \"\" ? required : [required, subpath].join(\"/\")));\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n // for absolute paths, ensure `/` instead of empty segment\n return result.map(exploded => path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded);\n}\nfunction rankRouteBranches(branches) {\n branches.sort((a, b) => a.score !== b.score ? b.score - a.score // Higher score first\n : compareIndexes(a.routesMeta.map(meta => meta.childrenIndex), b.routesMeta.map(meta => meta.childrenIndex)));\n}\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = s => s === \"*\";\nfunction computeScore(path, index) {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n if (index) {\n initialScore += indexRouteValue;\n }\n return segments.filter(s => !isSplat(s)).reduce((score, segment) => score + (paramRe.test(segment) ? dynamicSegmentValue : segment === \"\" ? emptySegmentValue : staticSegmentValue), initialScore);\n}\nfunction compareIndexes(a, b) {\n let siblings = a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n return siblings ?\n // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1] :\n // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\nfunction matchRouteBranch(branch, pathname) {\n let {\n routesMeta\n } = branch;\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname = matchedPathname === \"/\" ? pathname : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath({\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end\n }, remainingPathname);\n if (!match) return null;\n Object.assign(matchedParams, match.params);\n let route = meta.route;\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(joinPaths([matchedPathname, match.pathnameBase])),\n route\n });\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n return matches;\n}\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nfunction generatePath(originalPath, params) {\n if (params === void 0) {\n params = {};\n }\n let path = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(false, \"Route path \\\"\" + path + \"\\\" will be treated as if it were \" + (\"\\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\" because the `*` character must \") + \"always follow a `/` in the pattern. To get rid of this warning, \" + (\"please change the route path to \\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\".\"));\n path = path.replace(/\\*$/, \"/*\");\n }\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n const stringify = p => p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n const segments = path.split(/\\/+/).map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\";\n // Apply the splat\n return stringify(params[star]);\n }\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key];\n invariant(optional === \"?\" || param != null, \"Missing \\\":\" + key + \"\\\" param\");\n return stringify(param);\n }\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter(segment => !!segment);\n return prefix + segments.join(\"/\");\n}\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nfunction matchPath(pattern, pathname) {\n if (typeof pattern === \"string\") {\n pattern = {\n path: pattern,\n caseSensitive: false,\n end: true\n };\n }\n let [matcher, compiledParams] = compilePath(pattern.path, pattern.caseSensitive, pattern.end);\n let match = pathname.match(matcher);\n if (!match) return null;\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params = compiledParams.reduce((memo, _ref, index) => {\n let {\n paramName,\n isOptional\n } = _ref;\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname.slice(0, matchedPathname.length - splatValue.length).replace(/(.)\\/+$/, \"$1\");\n }\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = safelyDecodeURIComponent(value || \"\", paramName);\n }\n return memo;\n }, {});\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern\n };\n}\nfunction compilePath(path, caseSensitive, end) {\n if (caseSensitive === void 0) {\n caseSensitive = false;\n }\n if (end === void 0) {\n end = true;\n }\n warning(path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"), \"Route path \\\"\" + path + \"\\\" will be treated as if it were \" + (\"\\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\" because the `*` character must \") + \"always follow a `/` in the pattern. To get rid of this warning, \" + (\"please change the route path to \\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\".\"));\n let params = [];\n let regexpSource = \"^\" + path.replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/\\/:([\\w-]+)(\\?)?/g, (_, paramName, isOptional) => {\n params.push({\n paramName,\n isOptional: isOptional != null\n });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n });\n if (path.endsWith(\"*\")) {\n params.push({\n paramName: \"*\"\n });\n regexpSource += path === \"*\" || path === \"/*\" ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else ;\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n return [matcher, params];\n}\nfunction safelyDecodeURI(value) {\n try {\n return decodeURI(value);\n } catch (error) {\n warning(false, \"The URL path \\\"\" + value + \"\\\" could not be decoded because it is is a \" + \"malformed URL segment. This is probably due to a bad percent \" + (\"encoding (\" + error + \").\"));\n return value;\n }\n}\nfunction safelyDecodeURIComponent(value, paramName) {\n try {\n return decodeURIComponent(value);\n } catch (error) {\n warning(false, \"The value for the URL param \\\"\" + paramName + \"\\\" will not be decoded because\" + (\" the string \\\"\" + value + \"\\\" is a malformed URL segment. This is probably\") + (\" due to a bad percent encoding (\" + error + \").\"));\n return value;\n }\n}\n/**\n * @private\n */\nfunction stripBasename(pathname, basename) {\n if (basename === \"/\") return pathname;\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\") ? basename.length - 1 : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n return pathname.slice(startIndex) || \"/\";\n}\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nfunction resolvePath(to, fromPathname) {\n if (fromPathname === void 0) {\n fromPathname = \"/\";\n }\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\"\n } = typeof to === \"string\" ? parsePath(to) : to;\n let pathname = toPathname ? toPathname.startsWith(\"/\") ? toPathname : resolvePathname(toPathname, fromPathname) : fromPathname;\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash)\n };\n}\nfunction resolvePathname(relativePath, fromPathname) {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n relativeSegments.forEach(segment => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\nfunction getInvalidPathError(char, field, dest, path) {\n return \"Cannot include a '\" + char + \"' character in a manually specified \" + (\"`to.\" + field + \"` field [\" + JSON.stringify(path) + \"]. Please separate it out to the \") + (\"`to.\" + dest + \"` field. Alternatively you may provide the full path as \") + \"a string in and the router will parse it for you.\";\n}\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nfunction getPathContributingMatches(matches) {\n return matches.filter((match, index) => index === 0 || match.route.path && match.route.path.length > 0);\n}\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nfunction getResolveToMatches(matches, v7_relativeSplatPath) {\n let pathMatches = getPathContributingMatches(matches);\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) => idx === matches.length - 1 ? match.pathname : match.pathnameBase);\n }\n return pathMatches.map(match => match.pathnameBase);\n}\n/**\n * @private\n */\nfunction resolveTo(toArg, routePathnames, locationPathname, isPathRelative) {\n if (isPathRelative === void 0) {\n isPathRelative = false;\n }\n let to;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = _extends({}, toArg);\n invariant(!to.pathname || !to.pathname.includes(\"?\"), getInvalidPathError(\"?\", \"pathname\", \"search\", to));\n invariant(!to.pathname || !to.pathname.includes(\"#\"), getInvalidPathError(\"#\", \"pathname\", \"hash\", to));\n invariant(!to.search || !to.search.includes(\"#\"), getInvalidPathError(\"#\", \"search\", \"hash\", to));\n }\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n let from;\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n to.pathname = toSegments.join(\"/\");\n }\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n let path = resolvePath(to, from);\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash = toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash = (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (!path.pathname.endsWith(\"/\") && (hasExplicitTrailingSlash || hasCurrentTrailingSlash)) {\n path.pathname += \"/\";\n }\n return path;\n}\n/**\n * @private\n */\nfunction getToPathname(to) {\n // Empty strings should be treated the same as / paths\n return to === \"\" || to.pathname === \"\" ? \"/\" : typeof to === \"string\" ? parsePath(to).pathname : to.pathname;\n}\n/**\n * @private\n */\nconst joinPaths = paths => paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n/**\n * @private\n */\nconst normalizePathname = pathname => pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n/**\n * @private\n */\nconst normalizeSearch = search => !search || search === \"?\" ? \"\" : search.startsWith(\"?\") ? search : \"?\" + search;\n/**\n * @private\n */\nconst normalizeHash = hash => !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nconst json = function json(data, init) {\n if (init === void 0) {\n init = {};\n }\n let responseInit = typeof init === \"number\" ? {\n status: init\n } : init;\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n return new Response(JSON.stringify(data), _extends({}, responseInit, {\n headers\n }));\n};\nclass AbortedDeferredError extends Error {}\nclass DeferredData {\n constructor(data, responseInit) {\n this.pendingKeysSet = new Set();\n this.subscribers = new Set();\n this.deferredKeys = [];\n invariant(data && typeof data === \"object\" && !Array.isArray(data), \"defer() only accepts plain objects\");\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject;\n this.abortPromise = new Promise((_, r) => reject = r);\n this.controller = new AbortController();\n let onAbort = () => reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () => this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n this.data = Object.entries(data).reduce((acc, _ref2) => {\n let [key, value] = _ref2;\n return Object.assign(acc, {\n [key]: this.trackPromise(key, value)\n });\n }, {});\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n this.init = responseInit;\n }\n trackPromise(key, value) {\n if (!(value instanceof Promise)) {\n return value;\n }\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise = Promise.race([value, this.abortPromise]).then(data => this.onSettle(promise, key, undefined, data), error => this.onSettle(promise, key, error));\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n Object.defineProperty(promise, \"_tracked\", {\n get: () => true\n });\n return promise;\n }\n onSettle(promise, key, error, data) {\n if (this.controller.signal.aborted && error instanceof AbortedDeferredError) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", {\n get: () => error\n });\n return Promise.reject(error);\n }\n this.pendingKeysSet.delete(key);\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\"Deferred data for key \\\"\" + key + \"\\\" resolved/rejected with `undefined`, \" + \"you must resolve/reject with a value or `null`.\");\n Object.defineProperty(promise, \"_error\", {\n get: () => undefinedError\n });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", {\n get: () => error\n });\n this.emit(false, key);\n return Promise.reject(error);\n }\n Object.defineProperty(promise, \"_data\", {\n get: () => data\n });\n this.emit(false, key);\n return data;\n }\n emit(aborted, settledKey) {\n this.subscribers.forEach(subscriber => subscriber(aborted, settledKey));\n }\n subscribe(fn) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n async resolveData(signal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise(resolve => {\n this.subscribe(aborted => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n get unwrappedData() {\n invariant(this.data !== null && this.done, \"Can only unwrap data on initialized and settled deferreds\");\n return Object.entries(this.data).reduce((acc, _ref3) => {\n let [key, value] = _ref3;\n return Object.assign(acc, {\n [key]: unwrapTrackedPromise(value)\n });\n }, {});\n }\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\nfunction isTrackedPromise(value) {\n return value instanceof Promise && value._tracked === true;\n}\nfunction unwrapTrackedPromise(value) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\nconst defer = function defer(data, init) {\n if (init === void 0) {\n init = {};\n }\n let responseInit = typeof init === \"number\" ? {\n status: init\n } : init;\n return new DeferredData(data, responseInit);\n};\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nconst redirect = function redirect(url, init) {\n if (init === void 0) {\n init = 302;\n }\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = {\n status: responseInit\n };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n return new Response(null, _extends({}, responseInit, {\n headers\n }));\n};\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nconst redirectDocument = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nclass ErrorResponseImpl {\n constructor(status, statusText, data, internal) {\n if (internal === void 0) {\n internal = false;\n }\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nfunction isRouteErrorResponse(error) {\n return error != null && typeof error.status === \"number\" && typeof error.statusText === \"string\" && typeof error.internal === \"boolean\" && \"data\" in error;\n}\n\nconst validMutationMethodsArr = [\"post\", \"put\", \"patch\", \"delete\"];\nconst validMutationMethods = new Set(validMutationMethodsArr);\nconst validRequestMethodsArr = [\"get\", ...validMutationMethodsArr];\nconst validRequestMethods = new Set(validRequestMethodsArr);\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\nconst IDLE_NAVIGATION = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined\n};\nconst IDLE_FETCHER = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined\n};\nconst IDLE_BLOCKER = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined\n};\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\nconst defaultMapRouteProperties = route => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary)\n});\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n/**\n * Create a router and listen to history POP navigations\n */\nfunction createRouter(init) {\n const routerWindow = init.window ? init.window : typeof window !== \"undefined\" ? window : undefined;\n const isBrowser = typeof routerWindow !== \"undefined\" && typeof routerWindow.document !== \"undefined\" && typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n invariant(init.routes.length > 0, \"You must provide a non-empty routes array to createRouter\");\n let mapRouteProperties;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = route => ({\n hasErrorBoundary: detectErrorBoundary(route)\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Routes keyed by ID\n let manifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(init.routes, mapRouteProperties, undefined, manifest);\n let inFlightDataRoutes;\n let basename = init.basename || \"/\";\n // Config driven behavior flags\n let future = _extends({\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false\n }, init.future);\n // Cleanup function for history\n let unlistenHistory = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors = null;\n if (initialMatches == null) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname\n });\n let {\n matches,\n route\n } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = {\n [route.id]: error\n };\n }\n let initialized;\n let hasLazyRoutes = initialMatches.some(m => m.route.lazy);\n let hasLoaders = initialMatches.some(m => m.route.loader);\n if (hasLazyRoutes) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!hasLoaders) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n initialized = initialMatches.every(m => m.route.loader && m.route.loader.hydrate !== true && (loaderData && loaderData[m.route.id] !== undefined || errors && errors[m.route.id] !== undefined));\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n let router;\n let state = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: init.hydrationData && init.hydrationData.loaderData || {},\n actionData: init.hydrationData && init.hydrationData.actionData || null,\n errors: init.hydrationData && init.hydrationData.errors || initialErrors,\n fetchers: new Map(),\n blockers: new Map()\n };\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction = Action.Pop;\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n // AbortController for the active navigation\n let pendingNavigationController;\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions = new Map();\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener = null;\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes = [];\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads = [];\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let ignoreNextHistoryUpdate = false;\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(_ref => {\n let {\n action: historyAction,\n location,\n delta\n } = _ref;\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\n return;\n }\n warning(blockerFunctions.size === 0 || delta != null, \"You are trying to use a blocker on a POP navigation to a location \" + \"that was not created by @remix-run/router. This will fail silently in \" + \"production. This can happen if you are navigating outside the router \" + \"via `window.history.pushState`/`window.location.hash` instead of using \" + \"router navigation APIs. This can also happen if you are using \" + \"createHashRouter and the user manually changes the URL.\");\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction\n });\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n ignoreNextHistoryUpdate = true;\n init.history.go(delta * -1);\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location\n });\n // Re-do the same POP navigation we just blocked\n init.history.go(delta);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey, IDLE_BLOCKER);\n updateState({\n blockers\n });\n }\n });\n return;\n }\n return startNavigation(historyAction, location);\n });\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () => persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () => routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(Action.Pop, state.location, {\n initialHydration: true\n });\n }\n return router;\n }\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n // Subscribe to state updates for the router\n function subscribe(fn) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n // Update our state and notify the calling context of the change\n function updateState(newState, opts) {\n if (opts === void 0) {\n opts = {};\n }\n state = _extends({}, state, newState);\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers = [];\n let deletedFetchersKeys = [];\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach(subscriber => subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n unstable_viewTransitionOpts: opts.viewTransitionOpts,\n unstable_flushSync: opts.flushSync === true\n }));\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach(key => state.fetchers.delete(key));\n deletedFetchersKeys.forEach(key => deleteFetcher(key));\n }\n }\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(location, newState, _temp) {\n var _location$state, _location$state2;\n let {\n flushSync\n } = _temp === void 0 ? {} : _temp;\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload = state.actionData != null && state.navigation.formMethod != null && isMutationMethod(state.navigation.formMethod) && state.navigation.state === \"loading\" && ((_location$state = location.state) == null ? void 0 : _location$state._isRedirect) !== true;\n let actionData;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData ? mergeLoaderData(state.loaderData, newState.loaderData, newState.matches || [], newState.errors) : state.loaderData;\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset = pendingPreventScrollReset === true || state.navigation.formMethod != null && isMutationMethod(state.navigation.formMethod) && ((_location$state2 = location.state) == null ? void 0 : _location$state2._isRedirect) !== true;\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n if (isUninterruptedRevalidation) ; else if (pendingAction === Action.Pop) ; else if (pendingAction === Action.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === Action.Replace) {\n init.history.replace(location, location.state);\n }\n let viewTransitionOpts;\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === Action.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location\n };\n }\n updateState(_extends({}, newState, {\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(location, newState.matches || state.matches),\n preventScrollReset,\n blockers\n }), {\n viewTransitionOpts,\n flushSync: flushSync === true\n });\n // Reset stateful navigation vars\n pendingAction = Action.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n }\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(to, opts) {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n let normalizedPath = normalizeTo(state.location, state.matches, basename, future.v7_prependBasename, to, future.v7_relativeSplatPath, opts == null ? void 0 : opts.fromRouteId, opts == null ? void 0 : opts.relative);\n let {\n path,\n submission,\n error\n } = normalizeNavigateOptions(future.v7_normalizeFormMethod, false, normalizedPath, opts);\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = _extends({}, nextLocation, init.history.encodeLocation(nextLocation));\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n let historyAction = Action.Push;\n if (userReplace === true) {\n historyAction = Action.Replace;\n } else if (userReplace === false) ; else if (submission != null && isMutationMethod(submission.formMethod) && submission.formAction === state.location.pathname + state.location.search) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = Action.Replace;\n }\n let preventScrollReset = opts && \"preventScrollReset\" in opts ? opts.preventScrollReset === true : undefined;\n let flushSync = (opts && opts.unstable_flushSync) === true;\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction\n });\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey, IDLE_BLOCKER);\n updateState({\n blockers\n });\n }\n });\n return;\n }\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.unstable_viewTransition,\n flushSync\n });\n }\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({\n revalidation: \"loading\"\n });\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true\n });\n return;\n }\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(pendingAction || state.historyAction, state.navigation.location, {\n overrideNavigation: state.navigation\n });\n }\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(historyAction, location, opts) {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation = (opts && opts.startUninterruptedRevalidation) === true;\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let error = getInternalRouterError(404, {\n pathname: location.pathname\n });\n let {\n matches: notFoundMatches,\n route\n } = getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n completeNavigation(location, {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error\n }\n }, {\n flushSync\n });\n return;\n }\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\". For example, on /page#hash and submit a
\n // which will default to a navigation to /page\n if (state.initialized && !isRevalidationRequired && isHashChangeOnly(state.location, location) && !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))) {\n completeNavigation(location, {\n matches\n }, {\n flushSync\n });\n return;\n }\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(init.history, location, pendingNavigationController.signal, opts && opts.submission);\n let pendingActionData;\n let pendingError;\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingError = {\n [findNearestBoundary(matches).route.id]: opts.pendingError\n };\n } else if (opts && opts.submission && isMutationMethod(opts.submission.formMethod)) {\n // Call action if we received an action submission\n let actionOutput = await handleAction(request, location, opts.submission, matches, {\n replace: opts.replace,\n flushSync\n });\n if (actionOutput.shortCircuited) {\n return;\n }\n pendingActionData = actionOutput.pendingActionData;\n pendingError = actionOutput.pendingActionError;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n // Create a GET request for the loaders\n request = new Request(request.url, {\n signal: request.signal\n });\n }\n // Call loaders\n let {\n shortCircuited,\n loaderData,\n errors\n } = await handleLoaders(request, location, matches, loadingNavigation, opts && opts.submission, opts && opts.fetcherSubmission, opts && opts.replace, opts && opts.initialHydration === true, flushSync, pendingActionData, pendingError);\n if (shortCircuited) {\n return;\n }\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n completeNavigation(location, _extends({\n matches\n }, pendingActionData ? {\n actionData: pendingActionData\n } : {}, {\n loaderData,\n errors\n }));\n }\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(request, location, submission, matches, opts) {\n if (opts === void 0) {\n opts = {};\n }\n interruptActiveLoads();\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({\n navigation\n }, {\n flushSync: opts.flushSync === true\n });\n // Call our action and get the result\n let result;\n let actionMatch = getTargetMatch(matches, location);\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id\n })\n };\n } else {\n result = await callLoaderOrAction(\"action\", request, actionMatch, matches, manifest, mapRouteProperties, basename, future.v7_relativeSplatPath);\n if (request.signal.aborted) {\n return {\n shortCircuited: true\n };\n }\n }\n if (isRedirectResult(result)) {\n let replace;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n replace = result.location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(state, result, {\n submission,\n replace\n });\n return {\n shortCircuited: true\n };\n }\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n // By default, all submissions are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n if ((opts && opts.replace) !== true) {\n pendingAction = Action.Push;\n }\n return {\n // Send back an empty object we can use to clear out any prior actionData\n pendingActionData: {},\n pendingActionError: {\n [boundaryMatch.route.id]: result.error\n }\n };\n }\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, {\n type: \"defer-action\"\n });\n }\n return {\n pendingActionData: {\n [actionMatch.route.id]: result.data\n }\n };\n }\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(request, location, matches, overrideNavigation, submission, fetcherSubmission, replace, initialHydration, flushSync, pendingActionData, pendingError) {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation = overrideNavigation || getLoadingNavigation(location, submission);\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission = submission || fetcherSubmission || getSubmissionFromNavigation(loadingNavigation);\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(init.history, state, matches, activeSubmission, location, future.v7_partialHydration && initialHydration === true, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, deletedFetchers, fetchLoadMatches, fetchRedirectIds, routesToUse, basename, pendingActionData, pendingError);\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(routeId => !(matches && matches.some(m => m.route.id === routeId)) || matchesToLoad && matchesToLoad.some(m => m.route.id === routeId));\n pendingNavigationLoadId = ++incrementingLoadId;\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(location, _extends({\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors: pendingError || null\n }, pendingActionData ? {\n actionData: pendingActionData\n } : {}, updatedFetchers ? {\n fetchers: new Map(state.fetchers)\n } : {}), {\n flushSync\n });\n return {\n shortCircuited: true\n };\n }\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since iot's not a \"navigation\"\n if (!isUninterruptedRevalidation && (!future.v7_partialHydration || !initialHydration)) {\n revalidatingFetchers.forEach(rf => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(undefined, fetcher ? fetcher.data : undefined);\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n let actionData = pendingActionData || state.actionData;\n updateState(_extends({\n navigation: loadingNavigation\n }, actionData ? Object.keys(actionData).length === 0 ? {\n actionData: null\n } : {\n actionData\n } : {}, revalidatingFetchers.length > 0 ? {\n fetchers: new Map(state.fetchers)\n } : {}), {\n flushSync\n });\n }\n revalidatingFetchers.forEach(rf => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () => revalidatingFetchers.forEach(f => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\"abort\", abortPendingFetchRevalidations);\n }\n let {\n results,\n loaderResults,\n fetcherResults\n } = await callLoadersAndMaybeResolveData(state.matches, matches, matchesToLoad, revalidatingFetchers, request);\n if (request.signal.aborted) {\n return {\n shortCircuited: true\n };\n }\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\"abort\", abortPendingFetchRevalidations);\n }\n revalidatingFetchers.forEach(rf => fetchControllers.delete(rf.key));\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(results);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey = revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n await startRedirectNavigation(state, redirect.result, {\n replace\n });\n return {\n shortCircuited: true\n };\n }\n // Process and commit output from loaders\n let {\n loaderData,\n errors\n } = processLoaderData(state, matches, matchesToLoad, loaderResults, pendingError, revalidatingFetchers, fetcherResults, activeDeferreds);\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe(aborted => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers = updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n return _extends({\n loaderData,\n errors\n }, shouldUpdateFetchers ? {\n fetchers: new Map(state.fetchers)\n } : {});\n }\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(key, routeId, href, opts) {\n if (isServer) {\n throw new Error(\"router.fetch() was called during the server render, but it shouldn't be. \" + \"You are likely calling a useFetcher() method in the body of your component. \" + \"Try moving it to a useEffect or a callback.\");\n }\n if (fetchControllers.has(key)) abortFetcher(key);\n let flushSync = (opts && opts.unstable_flushSync) === true;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(state.location, state.matches, basename, future.v7_prependBasename, href, future.v7_relativeSplatPath, routeId, opts == null ? void 0 : opts.relative);\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n if (!matches) {\n setFetcherError(key, routeId, getInternalRouterError(404, {\n pathname: normalizedPath\n }), {\n flushSync\n });\n return;\n }\n let {\n path,\n submission,\n error\n } = normalizeNavigateOptions(future.v7_normalizeFormMethod, true, normalizedPath, opts);\n if (error) {\n setFetcherError(key, routeId, error, {\n flushSync\n });\n return;\n }\n let match = getTargetMatch(matches, path);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(key, routeId, path, match, matches, flushSync, submission);\n return;\n }\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, {\n routeId,\n path\n });\n handleFetcherLoader(key, routeId, path, match, matches, flushSync, submission);\n }\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(key, routeId, path, match, requestMatches, flushSync, submission) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n if (!match.route.action && !match.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId\n });\n setFetcherError(key, routeId, error, {\n flushSync\n });\n return;\n }\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync\n });\n // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(init.history, path, abortController.signal, submission);\n fetchControllers.set(key, abortController);\n let originatingLoadId = incrementingLoadId;\n let actionResult = await callLoaderOrAction(\"action\", fetchRequest, match, requestMatches, manifest, mapRouteProperties, basename, future.v7_relativeSplatPath);\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(state, actionResult, {\n fetcherSubmission: submission\n });\n }\n }\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, {\n type: \"defer-action\"\n });\n }\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(init.history, nextLocation, abortController.signal);\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches = state.navigation.state !== \"idle\" ? matchRoutes(routesToUse, state.navigation.location, basename) : state.matches;\n invariant(matches, \"Didn't find any matches after fetcher action\");\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(init.history, state, matches, submission, nextLocation, false, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, deletedFetchers, fetchLoadMatches, fetchRedirectIds, routesToUse, basename, {\n [match.route.id]: actionResult.data\n }, undefined // No need to send through errors since we short circuit above\n );\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers.filter(rf => rf.key !== key).forEach(rf => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(undefined, existingFetcher ? existingFetcher.data : undefined);\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n updateState({\n fetchers: new Map(state.fetchers)\n });\n let abortPendingFetchRevalidations = () => revalidatingFetchers.forEach(rf => abortFetcher(rf.key));\n abortController.signal.addEventListener(\"abort\", abortPendingFetchRevalidations);\n let {\n results,\n loaderResults,\n fetcherResults\n } = await callLoadersAndMaybeResolveData(state.matches, matches, matchesToLoad, revalidatingFetchers, revalidationRequest);\n if (abortController.signal.aborted) {\n return;\n }\n abortController.signal.removeEventListener(\"abort\", abortPendingFetchRevalidations);\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach(r => fetchControllers.delete(r.key));\n let redirect = findRedirect(results);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey = revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n return startRedirectNavigation(state, redirect.result);\n }\n // Process and commit output from loaders\n let {\n loaderData,\n errors\n } = processLoaderData(state, state.matches, matchesToLoad, loaderResults, undefined, revalidatingFetchers, fetcherResults, activeDeferreds);\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n abortStaleFetchLoads(loadId);\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (state.navigation.state === \"loading\" && loadId > pendingNavigationLoadId) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers)\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(state.loaderData, loaderData, matches, errors),\n fetchers: new Map(state.fetchers)\n });\n isRevalidationRequired = false;\n }\n }\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(key, routeId, path, match, matches, flushSync, submission) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getLoadingFetcher(submission, existingFetcher ? existingFetcher.data : undefined), {\n flushSync\n });\n // Call the loader for this fetcher route match\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(init.history, path, abortController.signal);\n fetchControllers.set(key, abortController);\n let originatingLoadId = incrementingLoadId;\n let result = await callLoaderOrAction(\"loader\", fetchRequest, match, matches, manifest, mapRouteProperties, basename, future.v7_relativeSplatPath);\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result = (await resolveDeferredData(result, fetchRequest.signal, true)) || result;\n }\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n if (fetchRequest.signal.aborted) {\n return;\n }\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(state, result);\n return;\n }\n }\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(state, redirect, _temp2) {\n let {\n submission,\n fetcherSubmission,\n replace\n } = _temp2 === void 0 ? {} : _temp2;\n if (redirect.revalidate) {\n isRevalidationRequired = true;\n }\n let redirectLocation = createLocation(state.location, redirect.location, {\n _isRedirect: true\n });\n invariant(redirectLocation, \"Expected a location on the redirect navigation\");\n if (isBrowser) {\n let isDocumentReload = false;\n if (redirect.reloadDocument) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(redirect.location)) {\n const url = init.history.createURL(redirect.location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(redirect.location);\n } else {\n routerWindow.location.assign(redirect.location);\n }\n return;\n }\n }\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n let redirectHistoryAction = replace === true ? Action.Replace : Action.Push;\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let {\n formMethod,\n formAction,\n formEncType\n } = state.navigation;\n if (!submission && !fetcherSubmission && formMethod && formAction && formEncType) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (redirectPreserveMethodStatusCodes.has(redirect.status) && activeSubmission && isMutationMethod(activeSubmission.formMethod)) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: _extends({}, activeSubmission, {\n formAction: redirect.location\n }),\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(redirectLocation, submission);\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset\n });\n }\n }\n async function callLoadersAndMaybeResolveData(currentMatches, matches, matchesToLoad, fetchersToLoad, request) {\n // Call all navigation loaders and revalidating fetcher loaders in parallel,\n // then slice off the results into separate arrays so we can handle them\n // accordingly\n let results = await Promise.all([...matchesToLoad.map(match => callLoaderOrAction(\"loader\", request, match, matches, manifest, mapRouteProperties, basename, future.v7_relativeSplatPath)), ...fetchersToLoad.map(f => {\n if (f.matches && f.match && f.controller) {\n return callLoaderOrAction(\"loader\", createClientSideRequest(init.history, f.path, f.controller.signal), f.match, f.matches, manifest, mapRouteProperties, basename, future.v7_relativeSplatPath);\n } else {\n let error = {\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path\n })\n };\n return error;\n }\n })]);\n let loaderResults = results.slice(0, matchesToLoad.length);\n let fetcherResults = results.slice(matchesToLoad.length);\n await Promise.all([resolveDeferredResults(currentMatches, matchesToLoad, loaderResults, loaderResults.map(() => request.signal), false, state.loaderData), resolveDeferredResults(currentMatches, fetchersToLoad.map(f => f.match), fetcherResults, fetchersToLoad.map(f => f.controller ? f.controller.signal : null), true)]);\n return {\n results,\n loaderResults,\n fetcherResults\n };\n }\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n function updateFetcherState(key, fetcher, opts) {\n if (opts === void 0) {\n opts = {};\n }\n state.fetchers.set(key, fetcher);\n updateState({\n fetchers: new Map(state.fetchers)\n }, {\n flushSync: (opts && opts.flushSync) === true\n });\n }\n function setFetcherError(key, routeId, error, opts) {\n if (opts === void 0) {\n opts = {};\n }\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState({\n errors: {\n [boundaryMatch.route.id]: error\n },\n fetchers: new Map(state.fetchers)\n }, {\n flushSync: (opts && opts.flushSync) === true\n });\n }\n function getFetcher(key) {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n function deleteFetcher(key) {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (fetchControllers.has(key) && !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n state.fetchers.delete(key);\n }\n function deleteFetcherAndUpdateState(key) {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({\n fetchers: new Map(state.fetchers)\n });\n }\n function abortFetcher(key) {\n let controller = fetchControllers.get(key);\n invariant(controller, \"Expected fetch controller: \" + key);\n controller.abort();\n fetchControllers.delete(key);\n }\n function markFetchersDone(keys) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n function markFetchRedirectsDone() {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, \"Expected fetcher: \" + key);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n function abortStaleFetchLoads(landedId) {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, \"Expected fetcher: \" + key);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n function getBlocker(key, fn) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n return blocker;\n }\n function deleteBlocker(key) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key, newBlocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(blocker.state === \"unblocked\" && newBlocker.state === \"blocked\" || blocker.state === \"blocked\" && newBlocker.state === \"blocked\" || blocker.state === \"blocked\" && newBlocker.state === \"proceeding\" || blocker.state === \"blocked\" && newBlocker.state === \"unblocked\" || blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\", \"Invalid blocker state transition: \" + blocker.state + \" -> \" + newBlocker.state);\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({\n blockers\n });\n }\n function shouldBlockNavigation(_ref2) {\n let {\n currentLocation,\n nextLocation,\n historyAction\n } = _ref2;\n if (blockerFunctions.size === 0) {\n return;\n }\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({\n currentLocation,\n nextLocation,\n historyAction\n })) {\n return blockerKey;\n }\n }\n function cancelActiveDeferreds(predicate) {\n let cancelledRouteIds = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(positions, getPosition, getKey) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({\n restoreScrollPosition: y\n });\n }\n }\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n function getScrollKey(location, matches) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(location, matches.map(m => convertRouteMatchToUiMatch(m, state.loaderData)));\n return key || location.key;\n }\n return location.key;\n }\n function saveScrollPosition(location, matches) {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n function getSavedScrollPosition(location, matches) {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n function _internalSetRoutes(newRoutes) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(newRoutes, mapRouteProperties, undefined, manifest);\n }\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: to => init.history.createHref(to),\n encodeLocation: to => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes\n };\n return router;\n}\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\nconst UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\nfunction createStaticHandler(routes, opts) {\n invariant(routes.length > 0, \"You must provide a non-empty routes array to createStaticHandler\");\n let manifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties;\n if (opts != null && opts.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts != null && opts.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = route => ({\n hasErrorBoundary: detectErrorBoundary(route)\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future = _extends({\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false\n }, opts ? opts.future : null);\n let dataRoutes = convertRoutesToDataRoutes(routes, mapRouteProperties, undefined, manifest);\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n */\n async function query(request, _temp3) {\n let {\n requestContext\n } = _temp3 === void 0 ? {} : _temp3;\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, {\n method\n });\n let {\n matches: methodNotAllowedMatches,\n route\n } = getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, {\n pathname: location.pathname\n });\n let {\n matches: notFoundMatches,\n route\n } = getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null\n };\n }\n let result = await queryImpl(request, location, matches, requestContext);\n if (isResponse(result)) {\n return result;\n }\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return _extends({\n location,\n basename\n }, result);\n }\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n */\n async function queryRoute(request, _temp4) {\n let {\n routeId,\n requestContext\n } = _temp4 === void 0 ? {} : _temp4;\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, {\n method\n });\n } else if (!matches) {\n throw getInternalRouterError(404, {\n pathname: location.pathname\n });\n }\n let match = routeId ? matches.find(m => m.route.id === routeId) : getTargetMatch(matches, location);\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, {\n pathname: location.pathname\n });\n }\n let result = await queryImpl(request, location, matches, requestContext, match);\n if (isResponse(result)) {\n return result;\n }\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n if (result.loaderData) {\n var _result$activeDeferre;\n let data = Object.values(result.loaderData)[0];\n if ((_result$activeDeferre = result.activeDeferreds) != null && _result$activeDeferre[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n return undefined;\n }\n async function queryImpl(request, location, matches, requestContext, routeMatch) {\n invariant(request.signal, \"query()/queryRoute() requests must contain an AbortController signal\");\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(request, matches, routeMatch || getTargetMatch(matches, location), requestContext, routeMatch != null);\n return result;\n }\n let result = await loadRouteData(request, matches, requestContext, routeMatch);\n return isResponse(result) ? result : _extends({}, result, {\n actionData: null,\n actionHeaders: {}\n });\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction, we throw\n // it to bail out and then return or throw here based on whether the user\n // returned or threw\n if (isQueryRouteResponse(e)) {\n if (e.type === ResultType.error) {\n throw e.response;\n }\n return e.response;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n async function submit(request, matches, actionMatch, requestContext, isRouteRequest) {\n let result;\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error\n };\n } else {\n result = await callLoaderOrAction(\"action\", request, actionMatch, matches, manifest, mapRouteProperties, basename, future.v7_relativeSplatPath, {\n isStaticRequest: true,\n isRouteRequest,\n requestContext\n });\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n }\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.status,\n headers: {\n Location: result.location\n }\n });\n }\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, {\n type: \"defer-action\"\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error\n };\n }\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: {\n [actionMatch.route.id]: result.data\n },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null\n };\n }\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n let context = await loadRouteData(request, matches, requestContext, undefined, {\n [boundaryMatch.route.id]: result.error\n });\n // action status codes take precedence over loader status codes\n return _extends({}, context, {\n statusCode: isRouteErrorResponse(result.error) ? result.error.status : 500,\n actionData: null,\n actionHeaders: _extends({}, result.headers ? {\n [actionMatch.route.id]: result.headers\n } : {})\n });\n }\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal\n });\n let context = await loadRouteData(loaderRequest, matches, requestContext);\n return _extends({}, context, result.statusCode ? {\n statusCode: result.statusCode\n } : {}, {\n actionData: {\n [actionMatch.route.id]: result.data\n },\n actionHeaders: _extends({}, result.headers ? {\n [actionMatch.route.id]: result.headers\n } : {})\n });\n }\n async function loadRouteData(request, matches, requestContext, routeMatch, pendingActionError) {\n let isRouteRequest = routeMatch != null;\n // Short circuit if we have no loaders to run (queryRoute())\n if (isRouteRequest && !(routeMatch != null && routeMatch.route.loader) && !(routeMatch != null && routeMatch.route.lazy)) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch == null ? void 0 : routeMatch.route.id\n });\n }\n let requestMatches = routeMatch ? [routeMatch] : getLoaderMatchesUntilBoundary(matches, Object.keys(pendingActionError || {})[0]);\n let matchesToLoad = requestMatches.filter(m => m.route.loader || m.route.lazy);\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce((acc, m) => Object.assign(acc, {\n [m.route.id]: null\n }), {}),\n errors: pendingActionError || null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null\n };\n }\n let results = await Promise.all([...matchesToLoad.map(match => callLoaderOrAction(\"loader\", request, match, matches, manifest, mapRouteProperties, basename, future.v7_relativeSplatPath, {\n isStaticRequest: true,\n isRouteRequest,\n requestContext\n }))]);\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(matches, matchesToLoad, results, pendingActionError, activeDeferreds);\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(matchesToLoad.map(match => match.route.id));\n matches.forEach(match => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n return _extends({}, context, {\n matches,\n activeDeferreds: activeDeferreds.size > 0 ? Object.fromEntries(activeDeferreds.entries()) : null\n });\n }\n return {\n dataRoutes,\n query,\n queryRoute\n };\n}\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nfunction getStaticContextFromError(routes, context, error) {\n let newContext = _extends({}, context, {\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error\n }\n });\n return newContext;\n}\nfunction throwStaticHandlerAbortedError(request, isRouteRequest, future) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(method + \"() call aborted: \" + request.method + \" \" + request.url);\n}\nfunction isSubmissionNavigation(opts) {\n return opts != null && (\"formData\" in opts && opts.formData != null || \"body\" in opts && opts.body !== undefined);\n}\nfunction normalizeTo(location, matches, basename, prependBasename, to, v7_relativeSplatPath, fromRouteId, relative) {\n let contextualMatches;\n let activeRouteMatch;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n // Resolve the relative path\n let path = resolveTo(to ? to : \".\", getResolveToMatches(contextualMatches, v7_relativeSplatPath), stripBasename(location.pathname, basename) || location.pathname, relative === \"path\");\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n // Add an ?index param for matched index routes if we don't already have one\n if ((to == null || to === \"\" || to === \".\") && activeRouteMatch && activeRouteMatch.route.index && !hasNakedIndexQuery(path.search)) {\n path.search = path.search ? path.search.replace(/^\\?/, \"?index&\") : \"?index\";\n }\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname = path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n return createPath(path);\n}\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(normalizeFormMethod, isFetcher, path, opts) {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return {\n path\n };\n }\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, {\n method: opts.formMethod\n })\n };\n }\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, {\n type: \"invalid-body\"\n })\n });\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod ? rawFormMethod.toUpperCase() : rawFormMethod.toLowerCase();\n let formAction = stripHashFromPath(path);\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n let text = typeof opts.body === \"string\" ? opts.body : opts.body instanceof FormData || opts.body instanceof URLSearchParams ?\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce((acc, _ref3) => {\n let [name, value] = _ref3;\n return \"\" + acc + name + \"=\" + value + \"\\n\";\n }, \"\") : String(opts.body);\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text\n }\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n try {\n let json = typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined\n }\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n invariant(typeof FormData === \"function\", \"FormData is not available in this environment\");\n let searchParams;\n let formData;\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n let submission = {\n formMethod,\n formAction,\n formEncType: opts && opts.formEncType || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined\n };\n if (isMutationMethod(submission.formMethod)) {\n return {\n path,\n submission\n };\n }\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = \"?\" + searchParams;\n return {\n path: createPath(parsedPath),\n submission\n };\n}\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(matches, boundaryId) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex(m => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\nfunction getMatchesToLoad(history, state, matches, submission, location, isInitialLoad, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, deletedFetchers, fetchLoadMatches, fetchRedirectIds, routesToUse, basename, pendingActionData, pendingError) {\n let actionResult = pendingError ? Object.values(pendingError)[0] : pendingActionData ? Object.values(pendingActionData)[0] : undefined;\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId = pendingError ? Object.keys(pendingError)[0] : undefined;\n let boundaryMatches = getLoaderMatchesUntilBoundary(matches, boundaryId);\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let {\n route\n } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n if (route.loader == null) {\n return false;\n }\n if (isInitialLoad) {\n if (route.loader.hydrate) {\n return true;\n }\n return state.loaderData[route.id] === undefined && (\n // Don't re-run if the loader ran and threw an error\n !state.errors || state.errors[route.id] === undefined);\n }\n // Always call the loader on new route instances and pending defer cancellations\n if (isNewLoader(state.loaderData, state.matches[index], match) || cancelledDeferredRoutes.some(id => id === match.route.id)) {\n return true;\n }\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n return shouldRevalidateLoader(match, _extends({\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params\n }, submission, {\n actionResult,\n defaultShouldRevalidate:\n // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n // Clicked the same link, resubmitted a GET form\n currentUrl.pathname + currentUrl.search === nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search || isNewRouteInstance(currentRouteMatch, nextRouteMatch)\n }));\n });\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial load (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (isInitialLoad || !matches.some(m => m.route.id === f.routeId) || deletedFetchers.has(key)) {\n return;\n }\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null\n });\n return;\n }\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.includes(key)) {\n // Always revalidate if the fetcher was cancelled\n shouldRevalidate = true;\n } else if (fetcher && fetcher.state !== \"idle\" && fetcher.data === undefined) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, _extends({\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params\n }, submission, {\n actionResult,\n defaultShouldRevalidate: isRevalidationRequired\n }));\n }\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController()\n });\n }\n });\n return [navigationMatches, revalidatingFetchers];\n}\nfunction isNewLoader(currentLoaderData, currentMatch, match) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\nfunction isNewRouteInstance(currentMatch, match) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n currentPath != null && currentPath.endsWith(\"*\") && currentMatch.params[\"*\"] !== match.params[\"*\"]\n );\n}\nfunction shouldRevalidateLoader(loaderMatch, arg) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n return arg.defaultShouldRevalidate;\n}\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(route, mapRouteProperties, manifest) {\n if (!route.lazy) {\n return;\n }\n let lazyRoute = await route.lazy();\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue = routeToUpdate[lazyRouteProperty];\n let isPropertyStaticallyDefined = staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n warning(!isPropertyStaticallyDefined, \"Route \\\"\" + routeToUpdate.id + \"\\\" has a static property \\\"\" + lazyRouteProperty + \"\\\" \" + \"defined but its lazy function is also returning a value for this property. \" + (\"The lazy route property \\\"\" + lazyRouteProperty + \"\\\" will be ignored.\"));\n if (!isPropertyStaticallyDefined && !immutableRouteKeys.has(lazyRouteProperty)) {\n routeUpdates[lazyRouteProperty] = lazyRoute[lazyRouteProperty];\n }\n }\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, _extends({}, mapRouteProperties(routeToUpdate), {\n lazy: undefined\n }));\n}\nasync function callLoaderOrAction(type, request, match, matches, manifest, mapRouteProperties, basename, v7_relativeSplatPath, opts) {\n if (opts === void 0) {\n opts = {};\n }\n let resultType;\n let result;\n let onReject;\n let runHandler = handler => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject;\n let abortPromise = new Promise((_, r) => reject = r);\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n return Promise.race([handler({\n request,\n params: match.params,\n context: opts.requestContext\n }), abortPromise]);\n };\n try {\n let handler = match.route[type];\n if (match.route.lazy) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let values = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch(e => {\n handlerError = e;\n }), loadLazyRouteModule(match.route, mapRouteProperties, manifest)]);\n if (handlerError) {\n throw handlerError;\n }\n result = values[0];\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, mapRouteProperties, manifest);\n handler = match.route[type];\n if (handler) {\n // Handler still run even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return {\n type: ResultType.data,\n data: undefined\n };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname\n });\n } else {\n result = await runHandler(handler);\n }\n invariant(result !== undefined, \"You defined \" + (type === \"action\" ? \"an action\" : \"a loader\") + \" for route \" + (\"\\\"\" + match.route.id + \"\\\" but didn't return anything from your `\" + type + \"` \") + \"function. Please return a value or `null`.\");\n } catch (e) {\n resultType = ResultType.error;\n result = e;\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n if (isResponse(result)) {\n let status = result.status;\n // Process redirects\n if (redirectStatusCodes.has(status)) {\n let location = result.headers.get(\"Location\");\n invariant(location, \"Redirects returned/thrown from loaders/actions must have a Location header\");\n // Support relative routing in internal redirects\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n location = normalizeTo(new URL(request.url), matches.slice(0, matches.indexOf(match) + 1), basename, true, location, v7_relativeSplatPath);\n } else if (!opts.isStaticRequest) {\n // Strip off the protocol+origin for same-origin + same-basename absolute\n // redirects. If this is a static request, we can let it go back to the\n // browser as-is\n let currentUrl = new URL(request.url);\n let url = location.startsWith(\"//\") ? new URL(currentUrl.protocol + location) : new URL(location);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n location = url.pathname + url.search + url.hash;\n }\n }\n // Don't process redirects in the router during static requests requests.\n // Instead, throw the Response and let the server handle it with an HTTP\n // redirect. We also update the Location header in place in this flow so\n // basename and relative routing is taken into account\n if (opts.isStaticRequest) {\n result.headers.set(\"Location\", location);\n throw result;\n }\n return {\n type: ResultType.redirect,\n status,\n location,\n revalidate: result.headers.get(\"X-Remix-Revalidate\") !== null,\n reloadDocument: result.headers.get(\"X-Remix-Reload-Document\") !== null\n };\n }\n // For SSR single-route requests, we want to hand Responses back directly\n // without unwrapping. We do this with the QueryRouteResponse wrapper\n // interface so we can know whether it was returned or thrown\n if (opts.isRouteRequest) {\n let queryRouteResponse = {\n type: resultType === ResultType.error ? ResultType.error : ResultType.data,\n response: result\n };\n throw queryRouteResponse;\n }\n let data;\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return {\n type: ResultType.error,\n error: e\n };\n }\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: new ErrorResponseImpl(status, result.statusText, data),\n headers: result.headers\n };\n }\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers\n };\n }\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: result\n };\n }\n if (isDeferredData(result)) {\n var _result$init, _result$init2;\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: (_result$init = result.init) == null ? void 0 : _result$init.status,\n headers: ((_result$init2 = result.init) == null ? void 0 : _result$init2.headers) && new Headers(result.init.headers)\n };\n }\n return {\n type: ResultType.data,\n data: result\n };\n}\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(history, location, signal, submission) {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init = {\n signal\n };\n if (submission && isMutationMethod(submission.formMethod)) {\n let {\n formMethod,\n formEncType\n } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n if (formEncType === \"application/json\") {\n init.headers = new Headers({\n \"Content-Type\": formEncType\n });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (formEncType === \"application/x-www-form-urlencoded\" && submission.formData) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n return new Request(url, init);\n}\nfunction convertFormDataToSearchParams(formData) {\n let searchParams = new URLSearchParams();\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n return searchParams;\n}\nfunction convertSearchParamsToFormData(searchParams) {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\nfunction processRouteLoaderData(matches, matchesToLoad, results, pendingError, activeDeferreds) {\n // Fill in loaderData/errors from our loaders\n let loaderData = {};\n let errors = null;\n let statusCode;\n let foundError = false;\n let loaderHeaders = {};\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(!isRedirectResult(result), \"Cannot handle redirect results in processLoaderData\");\n if (isErrorResult(result)) {\n // Look upwards from the matched route for the closest ancestor\n // error boundary, defaulting to the root match\n let boundaryMatch = findNearestBoundary(matches, id);\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError) {\n error = Object.values(pendingError)[0];\n pendingError = undefined;\n }\n errors = errors || {};\n // Prefer higher error values if lower errors bubble to the same boundary\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error) ? result.error.status : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n } else {\n loaderData[id] = result.data;\n }\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode != null && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n });\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError) {\n errors = pendingError;\n loaderData[Object.keys(pendingError)[0]] = undefined;\n }\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders\n };\n}\nfunction processLoaderData(state, matches, matchesToLoad, results, pendingError, revalidatingFetchers, fetcherResults, activeDeferreds) {\n let {\n loaderData,\n errors\n } = processRouteLoaderData(matches, matchesToLoad, results, pendingError, activeDeferreds);\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let {\n key,\n match,\n controller\n } = revalidatingFetchers[index];\n invariant(fetcherResults !== undefined && fetcherResults[index] !== undefined, \"Did not find corresponding fetcher result\");\n let result = fetcherResults[index];\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n continue;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match == null ? void 0 : match.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = _extends({}, errors, {\n [boundaryMatch.route.id]: result.error\n });\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n return {\n loaderData,\n errors\n };\n}\nfunction mergeLoaderData(loaderData, newLoaderData, matches, errors) {\n let mergedLoaderData = _extends({}, newLoaderData);\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(matches, routeId) {\n let eligibleMatches = routeId ? matches.slice(0, matches.findIndex(m => m.route.id === routeId) + 1) : [...matches];\n return eligibleMatches.reverse().find(m => m.route.hasErrorBoundary === true) || matches[0];\n}\nfunction getShortCircuitMatches(routes) {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route = routes.length === 1 ? routes[0] : routes.find(r => r.index || !r.path || r.path === \"/\") || {\n id: \"__shim-error-route__\"\n };\n return {\n matches: [{\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route\n }],\n route\n };\n}\nfunction getInternalRouterError(status, _temp5) {\n let {\n pathname,\n routeId,\n method,\n type\n } = _temp5 === void 0 ? {} : _temp5;\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage = \"You made a \" + method + \" request to \\\"\" + pathname + \"\\\" but \" + (\"did not provide a `loader` for route \\\"\" + routeId + \"\\\", \") + \"so there is no way to handle the request.\";\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = \"Route \\\"\" + routeId + \"\\\" does not match URL \\\"\" + pathname + \"\\\"\";\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = \"No route matches URL \\\"\" + pathname + \"\\\"\";\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage = \"You made a \" + method.toUpperCase() + \" request to \\\"\" + pathname + \"\\\" but \" + (\"did not provide an `action` for route \\\"\" + routeId + \"\\\", \") + \"so there is no way to handle the request.\";\n } else if (method) {\n errorMessage = \"Invalid request method \\\"\" + method.toUpperCase() + \"\\\"\";\n }\n }\n return new ErrorResponseImpl(status || 500, statusText, new Error(errorMessage), true);\n}\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(results) {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return {\n result,\n idx: i\n };\n }\n }\n}\nfunction stripHashFromPath(path) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath(_extends({}, parsedPath, {\n hash: \"\"\n }));\n}\nfunction isHashChangeOnly(a, b) {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\nfunction isDeferredResult(result) {\n return result.type === ResultType.deferred;\n}\nfunction isErrorResult(result) {\n return result.type === ResultType.error;\n}\nfunction isRedirectResult(result) {\n return (result && result.type) === ResultType.redirect;\n}\nfunction isDeferredData(value) {\n let deferred = value;\n return deferred && typeof deferred === \"object\" && typeof deferred.data === \"object\" && typeof deferred.subscribe === \"function\" && typeof deferred.cancel === \"function\" && typeof deferred.resolveData === \"function\";\n}\nfunction isResponse(value) {\n return value != null && typeof value.status === \"number\" && typeof value.statusText === \"string\" && typeof value.headers === \"object\" && typeof value.body !== \"undefined\";\n}\nfunction isRedirectResponse(result) {\n if (!isResponse(result)) {\n return false;\n }\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\nfunction isQueryRouteResponse(obj) {\n return obj && isResponse(obj.response) && (obj.type === ResultType.data || obj.type === ResultType.error);\n}\nfunction isValidMethod(method) {\n return validRequestMethods.has(method.toLowerCase());\n}\nfunction isMutationMethod(method) {\n return validMutationMethods.has(method.toLowerCase());\n}\nasync function resolveDeferredResults(currentMatches, matchesToLoad, results, signals, isFetcher, currentLoaderData) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n let currentMatch = currentMatches.find(m => m.route.id === match.route.id);\n let isRevalidatingLoader = currentMatch != null && !isNewRouteInstance(currentMatch, match) && (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n let signal = signals[index];\n invariant(signal, \"Expected an AbortSignal for revalidating fetcher deferred result\");\n await resolveDeferredData(result, signal, isFetcher).then(result => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\nasync function resolveDeferredData(result, signal, unwrap) {\n if (unwrap === void 0) {\n unwrap = false;\n }\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e\n };\n }\n }\n return {\n type: ResultType.data,\n data: result.deferredData.data\n };\n}\nfunction hasNakedIndexQuery(search) {\n return new URLSearchParams(search).getAll(\"index\").some(v => v === \"\");\n}\nfunction getTargetMatch(matches, location) {\n let search = typeof location === \"string\" ? parsePath(location).search : location.search;\n if (matches[matches.length - 1].route.index && hasNakedIndexQuery(search || \"\")) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\nfunction getSubmissionFromNavigation(navigation) {\n let {\n formMethod,\n formAction,\n formEncType,\n text,\n formData,\n json\n } = navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined\n };\n }\n}\nfunction getLoadingNavigation(location, submission) {\n if (submission) {\n let navigation = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text\n };\n return navigation;\n } else {\n let navigation = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined\n };\n return navigation;\n }\n}\nfunction getSubmittingNavigation(location, submission) {\n let navigation = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text\n };\n return navigation;\n}\nfunction getLoadingFetcher(submission, data) {\n if (submission) {\n let fetcher = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data\n };\n return fetcher;\n } else {\n let fetcher = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data\n };\n return fetcher;\n }\n}\nfunction getSubmittingFetcher(submission, existingFetcher) {\n let fetcher = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined\n };\n return fetcher;\n}\nfunction getDoneFetcher(data) {\n let fetcher = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data\n };\n return fetcher;\n}\nfunction restoreAppliedTransitions(_window, transitions) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(TRANSITIONS_STORAGE_KEY);\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\nfunction persistAppliedTransitions(_window, transitions) {\n if (transitions.size > 0) {\n let json = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(TRANSITIONS_STORAGE_KEY, JSON.stringify(json));\n } catch (error) {\n warning(false, \"Failed to save applied view transitions in sessionStorage (\" + error + \").\");\n }\n }\n}\n//#endregion\n\nexport { AbortedDeferredError, Action, IDLE_BLOCKER, IDLE_FETCHER, IDLE_NAVIGATION, UNSAFE_DEFERRED_SYMBOL, DeferredData as UNSAFE_DeferredData, ErrorResponseImpl as UNSAFE_ErrorResponseImpl, convertRouteMatchToUiMatch as UNSAFE_convertRouteMatchToUiMatch, convertRoutesToDataRoutes as UNSAFE_convertRoutesToDataRoutes, getResolveToMatches as UNSAFE_getResolveToMatches, invariant as UNSAFE_invariant, warning as UNSAFE_warning, createBrowserHistory, createHashHistory, createMemoryHistory, createPath, createRouter, createStaticHandler, defer, generatePath, getStaticContextFromError, getToPathname, isDeferredData, isRouteErrorResponse, joinPaths, json, matchPath, matchRoutes, normalizePathname, parsePath, redirect, redirectDocument, resolvePath, resolveTo, stripBasename };\n//# sourceMappingURL=router.js.map\n","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = r => {\n /******/ var t = r && r.__esModule ? \n /******/ () => r[\"default\"]\n /******/ : () => r\n /******/;\n e.d(t, {\n a: t\n });\n /******/ return t;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (r, t) => {\n /******/ for (var n in t) {\n /******/ if (e.o(t, n) && !e.o(r, n)) {\n /******/ Object.defineProperty(r, n, {\n enumerable: true,\n get: t[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var r = {};\n // ESM COMPAT FLAG\n e.r(r);\n // EXPORTS\n e.d(r, {\n default: () => /* binding */ p\n });\n // CONCATENATED MODULE: external \"react\"\n const t = require(\"react\");\n var n = e.n(t);\n // CONCATENATED MODULE: external \"@splunk/react-icons/SVG\"\n const a = require(\"@splunk/react-icons/SVG\");\n var o = e.n(a);\n // CONCATENATED MODULE: external \"@splunk/react-icons/IconProvider\"\n const l = require(\"@splunk/react-icons/IconProvider\");\n // CONCATENATED MODULE: ./src/icons/ArrowSquareTopRight.tsx\n function u(e, r) {\n if (e == null) return {};\n var t = i(e, r);\n var n, a;\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n for (a = 0; a < o.length; a++) {\n n = o[a];\n if (r.indexOf(n) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(e, n)) continue;\n t[n] = e[n];\n }\n }\n return t;\n }\n function i(e, r) {\n if (e == null) return {};\n var t = {};\n var n = Object.keys(e);\n var a, o;\n for (o = 0; o < n.length; o++) {\n a = n[o];\n if (r.indexOf(a) >= 0) continue;\n t[a] = e[a];\n }\n return t;\n }\n var c = {\n variant: \"default\"\n };\n var f = new Map;\n f.set(\"outlined\", (function() {\n \n return n().createElement(n().Fragment, null, n().createElement(\"path\", {\n d: \"M0 1.46769C0 0.675592 0.636901 0 1.46525 0H5.99626C6.73263 0 7.32958 0.59737 7.32958 1.33426C7.32958 2.07116 6.73263 2.66852 5.99626 2.66852H2.66663V21.3315H21.3163V17.9995C21.3163 17.2626 21.9133 16.6652 22.6496 16.6652C23.386 16.6652 23.983 17.2626 23.983 17.9995V22.5323C23.983 23.3429 23.3263 24 22.5163 24H1.46665C0.656638 24 0 23.3429 0 22.5323V1.46769Z\"\n }), n().createElement(\"path\", {\n d: \"M21.3334 4.55534L10.1478 15.7489C9.62706 16.2699 8.78286 16.2699 8.26216 15.7489C7.74147 15.2278 7.74147 14.383 8.26217 13.8619L19.4477 2.66852H14.2121C13.4757 2.66852 12.8787 2.07116 12.8787 1.33426C12.8787 0.59737 13.4757 0 14.2121 0H22C23.1046 0 24 0.896056 24 2.00139V9.74743C24 10.4843 23.4031 11.0817 22.6667 11.0817C21.9303 11.0817 21.3334 10.4843 21.3334 9.74743V4.55534Z\"\n }));\n }));\n f.set(\"filled\", (function() {\n \n return n().createElement(n().Fragment, null, n().createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M0 2C0 0.895431 0.895431 0 2 0H22C23.1046 0 24 0.89543 24 2V22C24 23.1046 23.1046 24 22 24H2C0.89543 24 0 23.1046 0 22V2ZM11.3333 2.66667C10.597 2.66667 10 3.26362 10 4C10 4.73638 10.597 5.33333 11.3333 5.33333H16.781L7.05719 15.0572C6.53649 15.5779 6.53649 16.4221 7.05719 16.9428C7.57789 17.4635 8.42211 17.4635 8.94281 16.9428L18.6667 7.21895V12.6667C18.6667 13.403 19.2636 14 20 14C20.7364 14 21.3333 13.403 21.3333 12.6667V4.66667C21.3333 3.5621 20.4379 2.66667 19.3333 2.66667H11.3333Z\"\n }));\n }));\n var d = [ \"default\", \"outlined\", \"filled\" ];\n var v = function e(r) {\n return d.indexOf(r) >= 0;\n };\n var C = function e(r) {\n return r === \"default\" || r && !v(r) ? \"outlined\" : r;\n };\n /**\n * @description (This icon has no paddings, optimized for using with text link) View Open External represents an action to open link in new window\n * @category Controls\n * @keywords action, link, open, square, box\n * @variants outlined,filled\n */ var s = function e(r) {\n var a = r.children, i = r.variant, c = u(r, [ \"children\", \"variant\" ]);\n var d = C(i);\n var v = \"arrowsquaretopright-\".concat(d);\n var s = (0, t.useContext)(l.IconContext);\n var p = f.get(d);\n if (false) {}\n if (s && p) {\n var m = s.toRender, y = s.addIcon;\n y(v, p());\n if (!m) {\n return null;\n }\n }\n \n return n().createElement(o(), c, a, s ? n().createElement(\"use\", {\n href: \"#\".concat(v)\n }) : !!p && p());\n };\n s.defaultProps = c;\n /* harmony default export */ const p = s;\n module.exports = r;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = r => {\n /******/ var t = r && r.__esModule ? \n /******/ () => r[\"default\"]\n /******/ : () => r\n /******/;\n e.d(t, {\n a: t\n });\n /******/ return t;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (r, t) => {\n /******/ for (var n in t) {\n /******/ if (e.o(t, n) && !e.o(r, n)) {\n /******/ Object.defineProperty(r, n, {\n enumerable: true,\n get: t[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var r = {};\n // ESM COMPAT FLAG\n e.r(r);\n // EXPORTS\n e.d(r, {\n default: () => /* binding */ p\n });\n // CONCATENATED MODULE: external \"react\"\n const t = require(\"react\");\n var n = e.n(t);\n // CONCATENATED MODULE: external \"@splunk/react-icons/SVG\"\n const a = require(\"@splunk/react-icons/SVG\");\n var o = e.n(a);\n // CONCATENATED MODULE: external \"@splunk/react-icons/IconProvider\"\n const l = require(\"@splunk/react-icons/IconProvider\");\n // CONCATENATED MODULE: ./src/icons/ArrowSquareTopRightInset.tsx\n function u(e, r) {\n if (e == null) return {};\n var t = i(e, r);\n var n, a;\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n for (a = 0; a < o.length; a++) {\n n = o[a];\n if (r.indexOf(n) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(e, n)) continue;\n t[n] = e[n];\n }\n }\n return t;\n }\n function i(e, r) {\n if (e == null) return {};\n var t = {};\n var n = Object.keys(e);\n var a, o;\n for (o = 0; o < n.length; o++) {\n a = n[o];\n if (r.indexOf(a) >= 0) continue;\n t[a] = e[a];\n }\n return t;\n }\n var c = {\n variant: \"default\"\n };\n var f = new Map;\n f.set(\"outlined\", (function() {\n \n return n().createElement(n().Fragment, null, n().createElement(\"path\", {\n d: \"M3 4.10623C3 3.51257 3.47768 3.00623 4.09895 3.00623H7.49725C8.04954 3.00623 8.49725 3.45394 8.49725 4.00623C8.49725 4.55851 8.04954 5.00623 7.49725 5.00623H5V18.9937H18.9874V16.4964C18.9874 15.9441 19.4352 15.4964 19.9874 15.4964C20.5397 15.4964 20.9874 15.9441 20.9874 16.4964V19.8937C20.9874 20.5012 20.495 20.9937 19.8874 20.9937H4.1C3.49248 20.9937 3 20.5012 3 19.8937V4.10623Z\"\n }), n().createElement(\"path\", {\n d: \"M19.0002 6.42035L10.6109 14.8096C10.2204 15.2002 9.58722 15.2002 9.1967 14.8096C8.80618 14.4191 8.80618 13.7859 9.1967 13.3954L17.5859 5.00623H13.6592C13.1069 5.00623 12.6592 4.55851 12.6592 4.00623C12.6592 3.45394 13.1069 3.00623 13.6592 3.00623H19.5002C20.3287 3.00623 21.0002 3.6778 21.0002 4.50623V10.3117C21.0002 10.864 20.5525 11.3117 20.0002 11.3117C19.4479 11.3117 19.0002 10.864 19.0002 10.3117V6.42035Z\"\n }));\n }));\n f.set(\"filled\", (function() {\n \n return n().createElement(n().Fragment, null, n().createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M3 4.5C3 3.67157 3.67157 3 4.5 3H19.5C20.3284 3 21 3.67157 21 4.5V19.5C21 20.3284 20.3284 21 19.5 21H4.5C3.67157 21 3 20.3284 3 19.5V4.5ZM11.5 5C10.9477 5 10.5 5.44772 10.5 6C10.5 6.55228 10.9477 7 11.5 7H15.5858L8.29289 14.2929C7.90237 14.6834 7.90237 15.3166 8.29289 15.7071C8.68342 16.0976 9.31658 16.0976 9.70711 15.7071L17 8.41421V12.5C17 13.0523 17.4477 13.5 18 13.5C18.5523 13.5 19 13.0523 19 12.5V6.5C19 5.67157 18.3284 5 17.5 5H11.5Z\"\n }));\n }));\n var d = [ \"default\", \"outlined\", \"filled\" ];\n var v = function e(r) {\n return d.indexOf(r) >= 0;\n };\n var C = function e(r) {\n return r === \"default\" || r && !v(r) ? \"outlined\" : r;\n };\n /**\n * @description View Open External represents an action to open link in new window\n * @category Controls\n * @keywords action, link, open, square, box\n * @variants outlined,filled\n */ var s = function e(r) {\n var a = r.children, i = r.variant, c = u(r, [ \"children\", \"variant\" ]);\n var d = C(i);\n var v = \"arrowsquaretoprightinset-\".concat(d);\n var s = (0, t.useContext)(l.IconContext);\n var p = f.get(d);\n if (false) {}\n if (s && p) {\n var m = s.toRender, y = s.addIcon;\n y(v, p());\n if (!m) {\n return null;\n }\n }\n \n return n().createElement(o(), c, a, s ? n().createElement(\"use\", {\n href: \"#\".concat(v)\n }) : !!p && p());\n };\n s.defaultProps = c;\n /* harmony default export */ const p = s;\n module.exports = r;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = r => {\n /******/ var t = r && r.__esModule ? \n /******/ () => r[\"default\"]\n /******/ : () => r\n /******/;\n e.d(t, {\n a: t\n });\n /******/ return t;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (r, t) => {\n /******/ for (var n in t) {\n /******/ if (e.o(t, n) && !e.o(r, n)) {\n /******/ Object.defineProperty(r, n, {\n enumerable: true,\n get: t[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var r = {};\n // ESM COMPAT FLAG\n e.r(r);\n // EXPORTS\n e.d(r, {\n default: () => /* binding */ y\n });\n // CONCATENATED MODULE: external \"react\"\n const t = require(\"react\");\n var n = e.n(t);\n // CONCATENATED MODULE: external \"@splunk/react-icons/SVG\"\n const a = require(\"@splunk/react-icons/SVG\");\n var o = e.n(a);\n // CONCATENATED MODULE: external \"@splunk/react-icons/IconProvider\"\n const u = require(\"@splunk/react-icons/IconProvider\");\n // CONCATENATED MODULE: ./src/icons/CaretSmallDown.tsx\n function l(e, r) {\n if (e == null) return {};\n var t = i(e, r);\n var n, a;\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n for (a = 0; a < o.length; a++) {\n n = o[a];\n if (r.indexOf(n) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(e, n)) continue;\n t[n] = e[n];\n }\n }\n return t;\n }\n function i(e, r) {\n if (e == null) return {};\n var t = {};\n var n = Object.keys(e);\n var a, o;\n for (o = 0; o < n.length; o++) {\n a = n[o];\n if (r.indexOf(a) >= 0) continue;\n t[a] = e[a];\n }\n return t;\n }\n var c = {\n variant: \"default\"\n };\n var f = new Map;\n f.set(\"outlined\", (function() {\n \n return n().createElement(n().Fragment, null, n().createElement(\"path\", {\n d: \"M7.27904 9.00002C6.84633 9.00002 6.61792 9.51239 6.90715 9.83423L11.408 14.8426C11.6067 15.0637 11.9533 15.0636 12.1519 14.8425L16.6502 9.8341C16.9392 9.51223 16.7108 9 16.2782 9L7.27904 9.00002Z\"\n }));\n }));\n var d = [ \"default\", \"outlined\" ];\n var v = function e(r) {\n return d.indexOf(r) >= 0;\n };\n var s = function e(r) {\n return r === \"default\" || r && !v(r) ? \"outlined\" : r;\n };\n /**\n * @description Select button pull down icon, Enterprise Table Sort Ascent/descent\n * @category Controls\n * @keywords arrow, increase/decrease\n * @variants outlined\n */ var p = function e(r) {\n var a = r.children, i = r.variant, c = l(r, [ \"children\", \"variant\" ]);\n var d = s(i);\n var v = \"caretsmalldown-\".concat(d);\n var p = (0, t.useContext)(u.IconContext);\n var y = f.get(d);\n if (false) {}\n if (p && y) {\n var b = p.toRender, m = p.addIcon;\n m(v, y());\n if (!b) {\n return null;\n }\n }\n \n return n().createElement(o(), c, a, p ? n().createElement(\"use\", {\n href: \"#\".concat(v)\n }) : !!y && y());\n };\n p.defaultProps = c;\n /* harmony default export */ const y = p;\n module.exports = r;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = r => {\n /******/ var t = r && r.__esModule ? \n /******/ () => r[\"default\"]\n /******/ : () => r\n /******/;\n e.d(t, {\n a: t\n });\n /******/ return t;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (r, t) => {\n /******/ for (var n in t) {\n /******/ if (e.o(t, n) && !e.o(r, n)) {\n /******/ Object.defineProperty(r, n, {\n enumerable: true,\n get: t[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var r = {};\n // ESM COMPAT FLAG\n e.r(r);\n // EXPORTS\n e.d(r, {\n default: () => /* binding */ p\n });\n // CONCATENATED MODULE: external \"react\"\n const t = require(\"react\");\n var n = e.n(t);\n // CONCATENATED MODULE: external \"@splunk/react-icons/SVG\"\n const a = require(\"@splunk/react-icons/SVG\");\n var l = e.n(a);\n // CONCATENATED MODULE: external \"@splunk/react-icons/IconProvider\"\n const o = require(\"@splunk/react-icons/IconProvider\");\n // CONCATENATED MODULE: ./src/icons/CheckCircle.tsx\n function u(e, r) {\n if (e == null) return {};\n var t = i(e, r);\n var n, a;\n if (Object.getOwnPropertySymbols) {\n var l = Object.getOwnPropertySymbols(e);\n for (a = 0; a < l.length; a++) {\n n = l[a];\n if (r.indexOf(n) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(e, n)) continue;\n t[n] = e[n];\n }\n }\n return t;\n }\n function i(e, r) {\n if (e == null) return {};\n var t = {};\n var n = Object.keys(e);\n var a, l;\n for (l = 0; l < n.length; l++) {\n a = n[l];\n if (r.indexOf(a) >= 0) continue;\n t[a] = e[a];\n }\n return t;\n }\n var c = {\n variant: \"default\"\n };\n var d = new Map;\n d.set(\"outlined\", (function() {\n \n return n().createElement(n().Fragment, null, n().createElement(\"path\", {\n d: \"M16.8739 10.0405C17.2645 9.64996 17.2645 9.01679 16.8739 8.62627C16.4834 8.23574 15.8502 8.23574 15.4597 8.62627L10.5247 13.5613L8.5405 11.5776C8.14992 11.1872 7.51675 11.1873 7.12629 11.5779C6.73582 11.9684 6.73591 12.6016 7.12649 12.9921L9.46426 15.3291C10.0501 15.9148 10.9997 15.9147 11.5854 15.329L16.8739 10.0405Z\"\n }), n().createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12ZM20 12C20 16.4183 16.4183 20 12 20C7.58172 20 4 16.4183 4 12C4 7.58172 7.58172 4 12 4C16.4183 4 20 7.58172 20 12Z\"\n }));\n }));\n d.set(\"filled\", (function() {\n \n return n().createElement(n().Fragment, null, n().createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12ZM16.8738 8.62627C17.2643 9.01679 17.2643 9.64996 16.8738 10.0405L11.5853 15.329C10.9996 15.9147 10.0499 15.9148 9.46414 15.3291L7.12637 12.9921C6.73579 12.6016 6.7357 11.9684 7.12616 11.5779C7.51663 11.1873 8.1498 11.1872 8.54038 11.5776L10.5246 13.5613L15.4596 8.62627C15.8501 8.23574 16.4833 8.23574 16.8738 8.62627Z\"\n }));\n }));\n var f = [ \"default\", \"outlined\", \"filled\" ];\n var v = function e(r) {\n return f.indexOf(r) >= 0;\n };\n var s = function e(r) {\n return r === \"default\" || r && !v(r) ? \"outlined\" : r;\n };\n /**\n * @description Success indicator used for indication of good status\n * @category Actions\n * @keywords status, severity, check, done, solved\n * @variants outlined,filled\n */ var C = function e(r) {\n var a = r.children, i = r.variant, c = u(r, [ \"children\", \"variant\" ]);\n var f = s(i);\n var v = \"checkcircle-\".concat(f);\n var C = (0, t.useContext)(o.IconContext);\n var p = d.get(f);\n if (false) {}\n if (C && p) {\n var m = C.toRender, y = C.addIcon;\n y(v, p());\n if (!m) {\n return null;\n }\n }\n \n return n().createElement(l(), c, a, C ? n().createElement(\"use\", {\n href: \"#\".concat(v)\n }) : !!p && p());\n };\n C.defaultProps = c;\n /* harmony default export */ const p = C;\n module.exports = r;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = r => {\n /******/ var t = r && r.__esModule ? \n /******/ () => r[\"default\"]\n /******/ : () => r\n /******/;\n e.d(t, {\n a: t\n });\n /******/ return t;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (r, t) => {\n /******/ for (var n in t) {\n /******/ if (e.o(t, n) && !e.o(r, n)) {\n /******/ Object.defineProperty(r, n, {\n enumerable: true,\n get: t[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var r = {};\n // ESM COMPAT FLAG\n e.r(r);\n // EXPORTS\n e.d(r, {\n default: () => /* binding */ y\n });\n // CONCATENATED MODULE: external \"react\"\n const t = require(\"react\");\n var n = e.n(t);\n // CONCATENATED MODULE: external \"@splunk/react-icons/SVG\"\n const a = require(\"@splunk/react-icons/SVG\");\n var o = e.n(a);\n // CONCATENATED MODULE: external \"@splunk/react-icons/IconProvider\"\n const u = require(\"@splunk/react-icons/IconProvider\");\n // CONCATENATED MODULE: ./src/icons/Cross.tsx\n function i(e, r) {\n if (e == null) return {};\n var t = l(e, r);\n var n, a;\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n for (a = 0; a < o.length; a++) {\n n = o[a];\n if (r.indexOf(n) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(e, n)) continue;\n t[n] = e[n];\n }\n }\n return t;\n }\n function l(e, r) {\n if (e == null) return {};\n var t = {};\n var n = Object.keys(e);\n var a, o;\n for (o = 0; o < n.length; o++) {\n a = n[o];\n if (r.indexOf(a) >= 0) continue;\n t[a] = e[a];\n }\n return t;\n }\n var c = {\n variant: \"default\"\n };\n var f = new Map;\n f.set(\"outlined\", (function() {\n \n return n().createElement(n().Fragment, null, n().createElement(\"path\", {\n d: \"M6.70711 5.29289C6.31658 4.90237 5.68342 4.90237 5.29289 5.29289C4.90237 5.68342 4.90237 6.31658 5.29289 6.70711L10.5858 12L5.2929 17.2929C4.90238 17.6834 4.90238 18.3166 5.2929 18.7071C5.68342 19.0976 6.31659 19.0976 6.70711 18.7071L12 13.4142L17.2929 18.7071C17.6834 19.0976 18.3166 19.0976 18.7071 18.7071C19.0976 18.3166 19.0976 17.6834 18.7071 17.2929L13.4142 12L18.7071 6.70711C19.0976 6.31658 19.0976 5.68342 18.7071 5.29289C18.3166 4.90237 17.6834 4.90237 17.2929 5.29289L12 10.5858L6.70711 5.29289Z\"\n }));\n }));\n var d = [ \"default\", \"outlined\" ];\n var v = function e(r) {\n return d.indexOf(r) >= 0;\n };\n var s = function e(r) {\n return r === \"default\" || r && !v(r) ? \"outlined\" : r;\n };\n /**\n * @description Close, delete, or remove action\n * @category Actions\n * @keywords popover, window close, delete item, remove, x\n * @variants outlined\n */ var p = function e(r) {\n var a = r.children, l = r.variant, c = i(r, [ \"children\", \"variant\" ]);\n var d = s(l);\n var v = \"cross-\".concat(d);\n var p = (0, t.useContext)(u.IconContext);\n var y = f.get(d);\n if (false) {}\n if (p && y) {\n var b = p.toRender, O = p.addIcon;\n O(v, y());\n if (!b) {\n return null;\n }\n }\n \n return n().createElement(o(), c, a, p ? n().createElement(\"use\", {\n href: \"#\".concat(v)\n }) : !!y && y());\n };\n p.defaultProps = c;\n /* harmony default export */ const y = p;\n module.exports = r;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = t => {\n /******/ var r = t && t.__esModule ? \n /******/ () => t[\"default\"]\n /******/ : () => t\n /******/;\n e.d(r, {\n a: r\n });\n /******/ return r;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (t, r) => {\n /******/ for (var n in r) {\n /******/ if (e.o(r, n) && !e.o(t, n)) {\n /******/ Object.defineProperty(t, n, {\n enumerable: true,\n get: r[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var t = {};\n // ESM COMPAT FLAG\n e.r(t);\n // EXPORTS\n e.d(t, {\n default: () => /* binding */ s\n });\n // CONCATENATED MODULE: external \"react\"\n const r = require(\"react\");\n var n = e.n(r);\n // CONCATENATED MODULE: external \"@splunk/react-icons/SVG\"\n const a = require(\"@splunk/react-icons/SVG\");\n var l = e.n(a);\n // CONCATENATED MODULE: external \"@splunk/react-icons/IconProvider\"\n const o = require(\"@splunk/react-icons/IconProvider\");\n // CONCATENATED MODULE: ./src/icons/ExclamationCircle.tsx\n function u(e, t) {\n if (e == null) return {};\n var r = i(e, t);\n var n, a;\n if (Object.getOwnPropertySymbols) {\n var l = Object.getOwnPropertySymbols(e);\n for (a = 0; a < l.length; a++) {\n n = l[a];\n if (t.indexOf(n) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(e, n)) continue;\n r[n] = e[n];\n }\n }\n return r;\n }\n function i(e, t) {\n if (e == null) return {};\n var r = {};\n var n = Object.keys(e);\n var a, l;\n for (l = 0; l < n.length; l++) {\n a = n[l];\n if (t.indexOf(a) >= 0) continue;\n r[a] = e[a];\n }\n return r;\n }\n var c = {\n variant: \"default\"\n };\n var d = new Map;\n d.set(\"outlined\", (function() {\n \n return n().createElement(n().Fragment, null, n().createElement(\"path\", {\n d: \"M13.2003 15.8001C13.2003 16.4628 12.663 17.0001 12.0003 17.0001C11.3376 17.0001 10.8003 16.4628 10.8003 15.8001C10.8003 15.1374 11.3376 14.6001 12.0003 14.6001C12.663 14.6001 13.2003 15.1374 13.2003 15.8001Z\"\n }), n().createElement(\"path\", {\n d: \"M11.0005 7.9906V12.0001C11.0005 12.5524 11.4482 13.0001 12.0005 13.0001C12.5528 13.0001 13.0005 12.5524 13.0005 12.0001V7.9906C13.0005 7.43832 12.5528 6.9906 12.0005 6.9906C11.4482 6.9906 11.0005 7.43832 11.0005 7.9906Z\"\n }), n().createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2ZM12 4C16.4183 4 20 7.58172 20 12C20 16.4183 16.4183 20 12 20C7.58172 20 4 16.4183 4 12C4 7.58172 7.58172 4 12 4Z\"\n }));\n }));\n d.set(\"filled\", (function() {\n \n return n().createElement(n().Fragment, null, n().createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22C17.5228 22 22 17.5228 22 12ZM11.0001 7.9906V12.0001C11.0001 12.5524 11.4478 13.0001 12.0001 13.0001C12.5524 13.0001 13.0001 12.5524 13.0001 12.0001V7.9906C13.0001 7.43832 12.5524 6.9906 12.0001 6.9906C11.4478 6.9906 11.0001 7.43832 11.0001 7.9906ZM12.0001 17.0001C12.6628 17.0001 13.2001 16.4628 13.2001 15.8001C13.2001 15.1374 12.6628 14.6001 12.0001 14.6001C11.3373 14.6001 10.8001 15.1374 10.8001 15.8001C10.8001 16.4628 11.3373 17.0001 12.0001 17.0001Z\"\n }));\n }));\n var f = [ \"default\", \"outlined\", \"filled\" ];\n var v = function e(t) {\n return f.indexOf(t) >= 0;\n };\n var C = function e(t) {\n return t === \"default\" || t && !v(t) ? \"outlined\" : t;\n };\n /**\n * @description (Deprecated) Recommend to use Exclamation Triangle for an error state instead of this. Severity Lv3-4 Watch Alert ( {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = t => {\n /******/ var r = t && t.__esModule ? \n /******/ () => t[\"default\"]\n /******/ : () => t\n /******/;\n e.d(r, {\n a: r\n });\n /******/ return r;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (t, r) => {\n /******/ for (var n in r) {\n /******/ if (e.o(r, n) && !e.o(t, n)) {\n /******/ Object.defineProperty(t, n, {\n enumerable: true,\n get: r[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var t = {};\n // ESM COMPAT FLAG\n e.r(t);\n // EXPORTS\n e.d(t, {\n default: () => /* binding */ C\n });\n // CONCATENATED MODULE: external \"react\"\n const r = require(\"react\");\n var n = e.n(r);\n // CONCATENATED MODULE: external \"@splunk/react-icons/SVG\"\n const a = require(\"@splunk/react-icons/SVG\");\n var l = e.n(a);\n // CONCATENATED MODULE: external \"@splunk/react-icons/IconProvider\"\n const o = require(\"@splunk/react-icons/IconProvider\");\n // CONCATENATED MODULE: ./src/icons/ExclamationTriangle.tsx\n function u(e, t) {\n if (e == null) return {};\n var r = i(e, t);\n var n, a;\n if (Object.getOwnPropertySymbols) {\n var l = Object.getOwnPropertySymbols(e);\n for (a = 0; a < l.length; a++) {\n n = l[a];\n if (t.indexOf(n) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(e, n)) continue;\n r[n] = e[n];\n }\n }\n return r;\n }\n function i(e, t) {\n if (e == null) return {};\n var r = {};\n var n = Object.keys(e);\n var a, l;\n for (l = 0; l < n.length; l++) {\n a = n[l];\n if (t.indexOf(a) >= 0) continue;\n r[a] = e[a];\n }\n return r;\n }\n var c = {\n variant: \"default\"\n };\n var d = new Map;\n d.set(\"outlined\", (function() {\n \n return n().createElement(n().Fragment, null, n().createElement(\"path\", {\n d: \"M11.0002 13.6618V11.0133C11.0002 10.461 11.4479 10.0133 12.0002 10.0133C12.5525 10.0133 13.0002 10.461 13.0002 11.0133V13.6618C13.0002 14.2141 12.5525 14.6618 12.0002 14.6618C11.4479 14.6618 11.0002 14.2141 11.0002 13.6618Z\"\n }), n().createElement(\"path\", {\n d: \"M13.2002 16.9347C13.2002 17.5975 12.6629 18.1347 12.0002 18.1347C11.3374 18.1347 10.8002 17.5975 10.8002 16.9347C10.8002 16.272 11.3374 15.7347 12.0002 15.7347C12.6629 15.7347 13.2002 16.272 13.2002 16.9347Z\"\n }), n().createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M13.3173 2.82369C12.7659 1.72544 11.2341 1.72544 10.6827 2.82369L2.16616 19.7867C1.65878 20.7973 2.37462 22 3.48349 22H20.5165C21.6254 22 22.3412 20.7973 21.8338 19.7867L13.3173 2.82369ZM4.29301 19.9753L12 4.62472L19.707 19.9753H4.29301Z\"\n }));\n }));\n d.set(\"filled\", (function() {\n \n return n().createElement(n().Fragment, null, n().createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M10.6827 2.82369C11.2341 1.72544 12.7659 1.72544 13.3173 2.82369L21.8338 19.7867C22.3412 20.7973 21.6254 22 20.5165 22H3.48349C2.37462 22 1.65878 20.7973 2.16616 19.7867L10.6827 2.82369ZM11.0002 13.6618V11.0133C11.0002 10.461 11.4479 10.0133 12.0002 10.0133C12.5525 10.0133 13.0002 10.461 13.0002 11.0133V13.6618C13.0002 14.2141 12.5525 14.6618 12.0002 14.6618C11.4479 14.6618 11.0002 14.2141 11.0002 13.6618ZM13.2002 16.9347C13.2002 17.5975 12.6629 18.1347 12.0002 18.1347C11.3374 18.1347 10.8002 17.5975 10.8002 16.9347C10.8002 16.272 11.3374 15.7347 12.0002 15.7347C12.6629 15.7347 13.2002 16.272 13.2002 16.9347Z\"\n }));\n }));\n var f = [ \"default\", \"outlined\", \"filled\" ];\n var v = function e(t) {\n return f.indexOf(t) >= 0;\n };\n var p = function e(t) {\n return t === \"default\" || t && !v(t) ? \"outlined\" : t;\n };\n /**\n * @description Severity Lv5-9 Error (> Warning) [Red] *Use filled style\n * @category Severity\n * @keywords alert, exclamation, notification, caution, warning, error\n * @variants outlined,filled\n */ var s = function e(t) {\n var a = t.children, i = t.variant, c = u(t, [ \"children\", \"variant\" ]);\n var f = p(i);\n var v = \"exclamationtriangle-\".concat(f);\n var s = (0, r.useContext)(o.IconContext);\n var C = d.get(f);\n if (false) {}\n if (s && C) {\n var m = s.toRender, y = s.addIcon;\n y(v, C());\n if (!m) {\n return null;\n }\n }\n \n return n().createElement(l(), c, a, s ? n().createElement(\"use\", {\n href: \"#\".concat(v)\n }) : !!C && C());\n };\n s.defaultProps = c;\n /* harmony default export */ const C = s;\n module.exports = t;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ var e = {\n /***/ 42519: \n /***/ (e, r, t) => {\n // EXPORTS\n t.d(r, {\n default: () => /* binding */ m\n });\n // EXTERNAL MODULE: external \"react\"\n var n = t(99497);\n var o = t.n(n);\n // EXTERNAL MODULE: external \"prop-types\"\n var i = t(80023);\n var a = t.n(i);\n // CONCATENATED MODULE: external \"styled-components\"\n const u = require(\"styled-components\");\n var l = t.n(u);\n // CONCATENATED MODULE: ./src/SVG.tsx\n function c() {\n c = Object.assign || function(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = arguments[r];\n for (var n in t) {\n if (Object.prototype.hasOwnProperty.call(t, n)) {\n e[n] = t[n];\n }\n }\n }\n return e;\n };\n return c.apply(this, arguments);\n }\n function f(e, r) {\n if (e == null) return {};\n var t = s(e, r);\n var n, o;\n if (Object.getOwnPropertySymbols) {\n var i = Object.getOwnPropertySymbols(e);\n for (o = 0; o < i.length; o++) {\n n = i[o];\n if (r.indexOf(n) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(e, n)) continue;\n t[n] = e[n];\n }\n }\n return t;\n }\n function s(e, r) {\n if (e == null) return {};\n var t = {};\n var n = Object.keys(e);\n var o, i;\n for (i = 0; i < n.length; i++) {\n o = n[i];\n if (r.indexOf(o) >= 0) continue;\n t[o] = e[o];\n }\n return t;\n }\n // sets the fill to SplunkThemeProvider variable\n // inline by default\n var v = l().svg.withConfig({\n displayName: \"SVG__StyledSVG\",\n componentId: \"sc-13m0oii-0\"\n })([ \"display:inline-block;flex:0 0 auto;overflow:visible;vertical-align:middle;pointer-events:none;fill:currentColor;\" ]);\n var d = l()(v).withConfig({\n displayName: \"SVG__BlockSVG\",\n componentId: \"sc-13m0oii-1\"\n })([ \"display:block;flex:0 0 auto;margin:0 auto;overflow:visible;\" ]);\n var p = {\n children: a().node,\n height: a().oneOfType([ a().number, a().string ]),\n inline: a().bool,\n width: a().oneOfType([ a().number, a().string ])\n };\n var y = {\n inline: true,\n height: \"16px\",\n viewBox: \"0 0 24 24\",\n width: \"16px\"\n };\n function h(e) {\n var r = e.children, t = e.height, n = e.inline, i = e.viewBox, a = e.width, u = f(e, [ \"children\", \"height\", \"inline\", \"viewBox\", \"width\" ]);\n // @docs-props-type SVGPropsBase\n var l = n ? v : d;\n \n return o().createElement(l, c({\n \"aria-hidden\": \"true\",\n height: t,\n tabIndex: -1,\n viewBox: i,\n width: a,\n xmlns: \"http://www.w3.org/2000/svg\"\n }, u), r);\n }\n h.defaultProps = y;\n h.propTypes = p;\n /* harmony default export */ const m = h;\n /***/ },\n /***/ 80023: \n /***/ e => {\n e.exports = require(\"prop-types\");\n /***/ },\n /***/ 99497: \n /***/ e => {\n e.exports = require(\"react\");\n /***/\n /******/ }\n };\n /************************************************************************/\n /******/ // The module cache\n /******/ var r = {};\n /******/\n /******/ // The require function\n /******/ function t(n) {\n /******/ // Check if module is in cache\n /******/ var o = r[n];\n /******/ if (o !== undefined) {\n /******/ return o.exports;\n /******/ }\n /******/ // Create a new module (and put it into the cache)\n /******/ var i = r[n] = {\n /******/ // no module.id needed\n /******/ // no module.loaded needed\n /******/ exports: {}\n /******/ };\n /******/\n /******/ // Execute the module function\n /******/ e[n](i, i.exports, t);\n /******/\n /******/ // Return the exports of the module\n /******/ return i.exports;\n /******/ }\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ t.n = e => {\n /******/ var r = e && e.__esModule ? \n /******/ () => e[\"default\"]\n /******/ : () => e\n /******/;\n t.d(r, {\n a: r\n });\n /******/ return r;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ t.d = (e, r) => {\n /******/ for (var n in r) {\n /******/ if (t.o(r, n) && !t.o(e, n)) {\n /******/ Object.defineProperty(e, n, {\n enumerable: true,\n get: r[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ t.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ t.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var n = {};\n // This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.\n (() => {\n t.r(n);\n /* harmony export */ t.d(n, {\n /* harmony export */ IconContext: () => /* binding */ h\n /* harmony export */ ,\n IconProvider: () => /* binding */ m\n /* harmony export */ ,\n default: () => b\n /* harmony export */ });\n /* harmony import */ var e = t(99497);\n /* harmony import */ var r = t.n(e);\n /* harmony import */ var o = t(80023);\n /* harmony import */ var i = t.n(o);\n /* harmony import */ var a = t(42519);\n function u(e, r) {\n return v(e) || s(e, r) || c(e, r) || l();\n }\n function l() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n function c(e, r) {\n if (!e) return;\n if (typeof e === \"string\") return f(e, r);\n var t = Object.prototype.toString.call(e).slice(8, -1);\n if (t === \"Object\" && e.constructor) t = e.constructor.name;\n if (t === \"Map\" || t === \"Set\") return Array.from(e);\n if (t === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)) return f(e, r);\n }\n function f(e, r) {\n if (r == null || r > e.length) r = e.length;\n for (var t = 0, n = new Array(r); t < r; t++) {\n n[t] = e[t];\n }\n return n;\n }\n function s(e, r) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(e))) return;\n var t = [];\n var n = true;\n var o = false;\n var i = undefined;\n try {\n for (var a = e[Symbol.iterator](), u; !(n = (u = a.next()).done); n = true) {\n t.push(u.value);\n if (r && t.length === r) break;\n }\n } catch (e) {\n o = true;\n i = e;\n } finally {\n try {\n if (!n && a[\"return\"] != null) a[\"return\"]();\n } finally {\n if (o) throw i;\n }\n }\n return t;\n }\n function v(e) {\n if (Array.isArray(e)) return e;\n }\n var d = {\n children: i().node,\n duplicateRepeatedIcons: i().bool\n };\n var p = function e(t) {\n var n = [];\n t.forEach((function(e, t) {\n n.push(\n \n // eslint-disable-next-line react/no-array-index-key\n r().createElement(\"symbol\", {\n key: t,\n id: t,\n viewBox: \"0 0 24 24\"\n }, e));\n }));\n return n;\n };\n var y = function e(t) {\n var n = t.icons;\n \n return r().createElement(a[\"default\"], {\n style: {\n display: \"none\"\n }\n }, r().createElement(\"defs\", null, p(n)));\n };\n var h = (0, e.createContext)(null);\n /**\n * IconProvider enables experimental features across icons that may change at any time\n * and does not follow the semantic-versioning of the package.\n *\n * To use, wrap icons from '@splunk/react-icons/{icon}'.\n */ var m = function t(n) {\n var o = n.children, i = n.duplicateRepeatedIcons;\n // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars\n var a = (0, e.useState)(0), l = u(a, 2), c = l[0], f = l[1];\n var s = (0, e.useRef)(new Map);\n var v = (0, e.useRef)(false);\n // useEffect to avoid bad setState call in render, update on ref change\n (0, e.useEffect)((function() {\n f(s.current.size);\n v.current = true;\n }), []);\n // duplicateRepeatedIcons is currently the only feature that can be enabled\n // if it is disabled we can early exit\n if (!i) {\n \n return r().createElement(r().Fragment, null, o);\n }\n var d = function e(r) {\n return s.current.has(r);\n };\n // function to add icon (key and paths) to ref\n var p = function e(r, t) {\n var n = d(r);\n if (!n) {\n // reset toRender to false as state has not been updated yet\n v.current = false;\n s.current.set(r, t);\n }\n return n;\n };\n \n return r().createElement(h.Provider, {\n value: {\n toRender: v.current,\n addIcon: p,\n getIconExists: d\n }\n }, r().createElement(y, {\n icons: s.current\n }), o);\n };\n m.propTypes = d;\n /* harmony default export */ const b = m;\n })();\n module.exports = n;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = t => {\n /******/ var r = t && t.__esModule ? \n /******/ () => t[\"default\"]\n /******/ : () => t\n /******/;\n e.d(r, {\n a: r\n });\n /******/ return r;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (t, r) => {\n /******/ for (var n in r) {\n /******/ if (e.o(r, n) && !e.o(t, n)) {\n /******/ Object.defineProperty(t, n, {\n enumerable: true,\n get: r[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var t = {};\n // ESM COMPAT FLAG\n e.r(t);\n // EXPORTS\n e.d(t, {\n default: () => /* binding */ s\n });\n // CONCATENATED MODULE: external \"react\"\n const r = require(\"react\");\n var n = e.n(r);\n // CONCATENATED MODULE: external \"@splunk/react-icons/SVG\"\n const a = require(\"@splunk/react-icons/SVG\");\n var l = e.n(a);\n // CONCATENATED MODULE: external \"@splunk/react-icons/IconProvider\"\n const o = require(\"@splunk/react-icons/IconProvider\");\n // CONCATENATED MODULE: ./src/icons/InformationCircle.tsx\n function u(e, t) {\n if (e == null) return {};\n var r = i(e, t);\n var n, a;\n if (Object.getOwnPropertySymbols) {\n var l = Object.getOwnPropertySymbols(e);\n for (a = 0; a < l.length; a++) {\n n = l[a];\n if (t.indexOf(n) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(e, n)) continue;\n r[n] = e[n];\n }\n }\n return r;\n }\n function i(e, t) {\n if (e == null) return {};\n var r = {};\n var n = Object.keys(e);\n var a, l;\n for (l = 0; l < n.length; l++) {\n a = n[l];\n if (t.indexOf(a) >= 0) continue;\n r[a] = e[a];\n }\n return r;\n }\n var c = {\n variant: \"default\"\n };\n var d = new Map;\n d.set(\"outlined\", (function() {\n \n return n().createElement(n().Fragment, null, n().createElement(\"path\", {\n d: \"M13.2003 8.1999C13.2003 7.53716 12.663 6.9999 12.0003 6.9999C11.3376 6.9999 10.8003 7.53716 10.8003 8.1999C10.8003 8.86264 11.3376 9.3999 12.0003 9.3999C12.663 9.3999 13.2003 8.86264 13.2003 8.1999Z\"\n }), n().createElement(\"path\", {\n d: \"M11.0005 16.0094V11.9999C11.0005 11.4476 11.4482 10.9999 12.0005 10.9999C12.5528 10.9999 13.0005 11.4476 13.0005 11.9999V16.0094C13.0005 16.5617 12.5528 17.0094 12.0005 17.0094C11.4482 17.0094 11.0005 16.5617 11.0005 16.0094Z\"\n }), n().createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22ZM12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20Z\"\n }));\n }));\n d.set(\"filled\", (function() {\n \n return n().createElement(n().Fragment, null, n().createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12ZM11.0001 16.0094V11.9999C11.0001 11.4476 11.4478 10.9999 12.0001 10.9999C12.5524 10.9999 13.0001 11.4476 13.0001 11.9999V16.0094C13.0001 16.5617 12.5524 17.0094 12.0001 17.0094C11.4478 17.0094 11.0001 16.5617 11.0001 16.0094ZM12 6.9999C12.6628 6.9999 13.2 7.53716 13.2 8.1999C13.2 8.86264 12.6628 9.3999 12 9.3999C11.3373 9.3999 10.8 8.86264 10.8 8.1999C10.8 7.53716 11.3373 6.9999 12 6.9999Z\"\n }));\n }));\n var f = [ \"default\", \"outlined\", \"filled\" ];\n var v = function e(t) {\n return f.indexOf(t) >= 0;\n };\n var C = function e(t) {\n return t === \"default\" || t && !v(t) ? \"outlined\" : t;\n };\n /**\n * @description Gives users quick information and tips on hover state. Use filled style for Severity Lv2 Syslog Information.\n * @category Notifications\n * @keywords alert, exclamation, notification, caution, warning, error, tooltip, severity\n * @variants outlined,filled\n */ var p = function e(t) {\n var a = t.children, i = t.variant, c = u(t, [ \"children\", \"variant\" ]);\n var f = C(i);\n var v = \"informationcircle-\".concat(f);\n var p = (0, r.useContext)(o.IconContext);\n var s = d.get(f);\n if (false) {}\n if (p && s) {\n var m = p.toRender, y = p.addIcon;\n y(v, s());\n if (!m) {\n return null;\n }\n }\n \n return n().createElement(l(), c, a, p ? n().createElement(\"use\", {\n href: \"#\".concat(v)\n }) : !!s && s());\n };\n p.defaultProps = c;\n /* harmony default export */ const s = p;\n module.exports = t;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ var e = {\n /***/ 80023: \n /***/ e => {\n e.exports = require(\"prop-types\");\n /***/ },\n /***/ 99497: \n /***/ e => {\n e.exports = require(\"react\");\n /***/\n /******/ }\n };\n /************************************************************************/\n /******/ // The module cache\n /******/ var r = {};\n /******/\n /******/ // The require function\n /******/ function t(n) {\n /******/ // Check if module is in cache\n /******/ var i = r[n];\n /******/ if (i !== undefined) {\n /******/ return i.exports;\n /******/ }\n /******/ // Create a new module (and put it into the cache)\n /******/ var o = r[n] = {\n /******/ // no module.id needed\n /******/ // no module.loaded needed\n /******/ exports: {}\n /******/ };\n /******/\n /******/ // Execute the module function\n /******/ e[n](o, o.exports, t);\n /******/\n /******/ // Return the exports of the module\n /******/ return o.exports;\n /******/ }\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ t.n = e => {\n /******/ var r = e && e.__esModule ? \n /******/ () => e[\"default\"]\n /******/ : () => e\n /******/;\n t.d(r, {\n a: r\n });\n /******/ return r;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ t.d = (e, r) => {\n /******/ for (var n in r) {\n /******/ if (t.o(r, n) && !t.o(e, n)) {\n /******/ Object.defineProperty(e, n, {\n enumerable: true,\n get: r[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ t.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ t.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var n = {};\n // This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.\n (() => {\n // ESM COMPAT FLAG\n t.r(n);\n // EXPORTS\n t.d(n, {\n default: () => /* binding */ h\n });\n // EXTERNAL MODULE: external \"react\"\n var e = t(99497);\n var r = t.n(e);\n // EXTERNAL MODULE: external \"prop-types\"\n var i = t(80023);\n var o = t.n(i);\n // CONCATENATED MODULE: external \"styled-components\"\n const l = require(\"styled-components\");\n var a = t.n(l);\n // CONCATENATED MODULE: ./src/SVG.tsx\n function u() {\n u = Object.assign || function(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = arguments[r];\n for (var n in t) {\n if (Object.prototype.hasOwnProperty.call(t, n)) {\n e[n] = t[n];\n }\n }\n }\n return e;\n };\n return u.apply(this, arguments);\n }\n function p(e, r) {\n if (e == null) return {};\n var t = d(e, r);\n var n, i;\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n for (i = 0; i < o.length; i++) {\n n = o[i];\n if (r.indexOf(n) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(e, n)) continue;\n t[n] = e[n];\n }\n }\n return t;\n }\n function d(e, r) {\n if (e == null) return {};\n var t = {};\n var n = Object.keys(e);\n var i, o;\n for (o = 0; o < n.length; o++) {\n i = n[o];\n if (r.indexOf(i) >= 0) continue;\n t[i] = e[i];\n }\n return t;\n }\n // sets the fill to SplunkThemeProvider variable\n // inline by default\n var f = a().svg.withConfig({\n displayName: \"SVG__StyledSVG\",\n componentId: \"sc-13m0oii-0\"\n })([ \"display:inline-block;flex:0 0 auto;overflow:visible;vertical-align:middle;pointer-events:none;fill:currentColor;\" ]);\n var s = a()(f).withConfig({\n displayName: \"SVG__BlockSVG\",\n componentId: \"sc-13m0oii-1\"\n })([ \"display:block;flex:0 0 auto;margin:0 auto;overflow:visible;\" ]);\n var v = {\n children: o().node,\n height: o().oneOfType([ o().number, o().string ]),\n inline: o().bool,\n width: o().oneOfType([ o().number, o().string ])\n };\n var c = {\n inline: true,\n height: \"16px\",\n viewBox: \"0 0 24 24\",\n width: \"16px\"\n };\n function y(e) {\n var t = e.children, n = e.height, i = e.inline, o = e.viewBox, l = e.width, a = p(e, [ \"children\", \"height\", \"inline\", \"viewBox\", \"width\" ]);\n // @docs-props-type SVGPropsBase\n var d = i ? f : s;\n \n return r().createElement(d, u({\n \"aria-hidden\": \"true\",\n height: n,\n tabIndex: -1,\n viewBox: o,\n width: l,\n xmlns: \"http://www.w3.org/2000/svg\"\n }, a), t);\n }\n y.defaultProps = c;\n y.propTypes = v;\n /* harmony default export */ const h = y;\n })();\n module.exports = n;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = r => {\n /******/ var t = r && r.__esModule ? \n /******/ () => r[\"default\"]\n /******/ : () => r\n /******/;\n e.d(t, {\n a: t\n });\n /******/ return t;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (r, t) => {\n /******/ for (var i in t) {\n /******/ if (e.o(t, i) && !e.o(r, i)) {\n /******/ Object.defineProperty(r, i, {\n enumerable: true,\n get: t[i]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var r = {};\n // ESM COMPAT FLAG\n e.r(r);\n // EXPORTS\n e.d(r, {\n default: () => /* binding */ m\n });\n // CONCATENATED MODULE: external \"react\"\n const t = require(\"react\");\n var i = e.n(t);\n // CONCATENATED MODULE: external \"prop-types\"\n const n = require(\"prop-types\");\n var o = e.n(n);\n // CONCATENATED MODULE: external \"lodash/isUndefined\"\n const a = require(\"lodash/isUndefined\");\n var l = e.n(a);\n // CONCATENATED MODULE: external \"lodash/isString\"\n const d = require(\"lodash/isString\");\n var s = e.n(d);\n // CONCATENATED MODULE: external \"styled-components\"\n const c = require(\"styled-components\");\n var p = e.n(c);\n // CONCATENATED MODULE: ./src/SVGEnterprise.tsx\n function u() {\n u = Object.assign || function(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = arguments[r];\n for (var i in t) {\n if (Object.prototype.hasOwnProperty.call(t, i)) {\n e[i] = t[i];\n }\n }\n }\n return e;\n };\n return u.apply(this, arguments);\n }\n function v(e, r) {\n if (e == null) return {};\n var t = f(e, r);\n var i, n;\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n for (n = 0; n < o.length; n++) {\n i = o[n];\n if (r.indexOf(i) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(e, i)) continue;\n t[i] = e[i];\n }\n }\n return t;\n }\n function f(e, r) {\n if (e == null) return {};\n var t = {};\n var i = Object.keys(e);\n var n, o;\n for (o = 0; o < i.length; o++) {\n n = i[o];\n if (r.indexOf(n) >= 0) continue;\n t[n] = e[n];\n }\n return t;\n }\n var x = p().svg.withConfig({\n displayName: \"SVGEnterprise__InlineSVG\",\n componentId: \"sc-9jxj7k-0\"\n })([ \"display:inline-block;flex:0 0 auto;overflow:visible;vertical-align:middle;\" ]);\n var h = p().svg.withConfig({\n displayName: \"SVGEnterprise__BlockSVG\",\n componentId: \"sc-9jxj7k-1\"\n })([ \"display:block;flex:0 0 auto;margin:0 auto;overflow:visible;\" ]);\n var y = /-?\\d.?\\d* -?\\d+.?\\d* \\d+.?\\d* \\d+.?\\d*/;\n var b = {\n children: o().node,\n height: o().oneOfType([ o().number, o().string ]),\n hideDefaultTooltip: o().bool,\n inline: o().bool,\n screenReaderText: o().oneOfType([ o().string, o().oneOf([ \"null\" ]) ]),\n size: o().oneOfType([ o().number, o().string ]),\n width: o().oneOfType([ o().number, o().string ]),\n viewBox: o().string.isRequired,\n preserveAspectRatio: o().oneOf([ \"none\", \"xMinYMin\", \"xMidYMin\", \"xMaxYMin\", \"xMinYMid\", \"xMidYMid\", \"xMaxYMid\", \"xMinYMax\", \"xMidYMax\", \"xMaxYMax\" ])\n };\n function g(e) {\n var r = e.children, t = e.height, n = e.hideDefaultTooltip, o = n === void 0 ? false : n, a = e.inline, d = a === void 0 ? true : a, c = e.preserveAspectRatio, p = c === void 0 ? \"xMidYMid\" : c, f = e.screenReaderText, y = e.size, b = y === void 0 ? .75 : y, g = e.viewBox, m = e.width, M = v(e, [ \"children\", \"height\", \"hideDefaultTooltip\", \"inline\", \"preserveAspectRatio\", \"screenReaderText\", \"size\", \"viewBox\", \"width\" ]);\n // @docs-props-type SVGPropsBase\n if (false) {}\n var O = typeof b !== \"number\" ? parseFloat(b) : b;\n var w = s()(b) ? b.match(/[^\\d]+/) : \"em\";\n var j = parseFloat(g.split(\" \")[3]);\n var T = parseFloat(g.split(\" \")[2]);\n var S = Math.max(T, j);\n var Y = l()(t) ? j / S * O : t;\n var R = l()(m) ? T / S * O : m;\n var _ = d ? x : h;\n var P = f && !o;\n \n return i().createElement(_, u({\n focusable: \"false\",\n height: s()(Y) ? Y : \"\".concat(Y.toFixed(4)).concat(w),\n width: s()(R) ? R : \"\".concat(R.toFixed(4)).concat(w),\n viewBox: g,\n \"aria-label\": o ? f !== null && f !== void 0 ? f : undefined : undefined,\n \"aria-hidden\": !f,\n preserveAspectRatio: p,\n xmlns: \"http://www.w3.org/2000/svg\"\n }, M), P && i().createElement(\"title\", null, f), r);\n }\n g.propTypes = b;\n /* harmony default export */ const m = g;\n module.exports = r;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = r => {\n /******/ var t = r && r.__esModule ? \n /******/ () => r[\"default\"]\n /******/ : () => r\n /******/;\n e.d(t, {\n a: t\n });\n /******/ return t;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (r, t) => {\n /******/ for (var n in t) {\n /******/ if (e.o(t, n) && !e.o(r, n)) {\n /******/ Object.defineProperty(r, n, {\n enumerable: true,\n get: t[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var r = {};\n // ESM COMPAT FLAG\n e.r(r);\n // EXPORTS\n e.d(r, {\n default: () => /* binding */ b\n });\n // CONCATENATED MODULE: external \"react\"\n const t = require(\"react\");\n var n = e.n(t);\n // CONCATENATED MODULE: external \"prop-types\"\n const o = require(\"prop-types\");\n var i = e.n(o);\n // CONCATENATED MODULE: external \"styled-components\"\n const a = require(\"styled-components\");\n var l = e.n(a);\n // CONCATENATED MODULE: external \"@splunk/react-icons/SVGEnterprise\"\n const u = require(\"@splunk/react-icons/SVGEnterprise\");\n var c = e.n(u);\n // CONCATENATED MODULE: ./src/SVGInternal.tsx\n function p() {\n p = Object.assign || function(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = arguments[r];\n for (var n in t) {\n if (Object.prototype.hasOwnProperty.call(t, n)) {\n e[n] = t[n];\n }\n }\n }\n return e;\n };\n return p.apply(this, arguments);\n }\n function f(e, r) {\n if (e == null) return {};\n var t = s(e, r);\n var n, o;\n if (Object.getOwnPropertySymbols) {\n var i = Object.getOwnPropertySymbols(e);\n for (o = 0; o < i.length; o++) {\n n = i[o];\n if (r.indexOf(n) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(e, n)) continue;\n t[n] = e[n];\n }\n }\n return t;\n }\n function s(e, r) {\n if (e == null) return {};\n var t = {};\n var n = Object.keys(e);\n var o, i;\n for (i = 0; i < n.length; i++) {\n o = n[i];\n if (r.indexOf(o) >= 0) continue;\n t[o] = e[o];\n }\n return t;\n }\n var v = l()(c()).withConfig({\n displayName: \"SVGInternal__StyledSVG\",\n componentId: \"ksy9g7-0\"\n })([ \"circle,ellipse,path,polygon,rect{fill:currentColor;}\" ]);\n var y = {\n viewBox: i().string\n };\n function d(e) {\n var r = e.viewBox, t = r === void 0 ? \"0 0 1500 1500\" : r, o = f(e, [ \"viewBox\" ]);\n \n return n().createElement(v, p({\n viewBox: t\n }, o));\n }\n d.propTypes = y;\n /* harmony default export */ const b = d;\n module.exports = r;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = r => {\n /******/ var t = r && r.__esModule ? \n /******/ () => r[\"default\"]\n /******/ : () => r\n /******/;\n e.d(t, {\n a: t\n });\n /******/ return t;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (r, t) => {\n /******/ for (var n in t) {\n /******/ if (e.o(t, n) && !e.o(r, n)) {\n /******/ Object.defineProperty(r, n, {\n enumerable: true,\n get: t[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var r = {};\n // ESM COMPAT FLAG\n e.r(r);\n // EXPORTS\n e.d(r, {\n default: () => /* binding */ l\n });\n // CONCATENATED MODULE: external \"react\"\n const t = require(\"react\");\n var n = e.n(t);\n // CONCATENATED MODULE: external \"@splunk/ui-utils/i18n\"\n const o = require(\"@splunk/ui-utils/i18n\");\n // CONCATENATED MODULE: external \"@splunk/react-icons/enterprise/TriangleDownSmall\"\n const a = require(\"@splunk/react-icons/enterprise/TriangleDownSmall\");\n var u = e.n(a);\n // CONCATENATED MODULE: ./src/enterprise/Caret.tsx\n function i() {\n i = Object.assign || function(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = arguments[r];\n for (var n in t) {\n if (Object.prototype.hasOwnProperty.call(t, n)) {\n e[n] = t[n];\n }\n }\n }\n return e;\n };\n return i.apply(this, arguments);\n }\n function l(e) {\n \n return n().createElement(u(), i({\n screenReaderText: (0, o._)(\"(Menu)\")\n }, e));\n }\n module.exports = r;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = r => {\n /******/ var t = r && r.__esModule ? \n /******/ () => r[\"default\"]\n /******/ : () => r\n /******/;\n e.d(t, {\n a: t\n });\n /******/ return t;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (r, t) => {\n /******/ for (var n in t) {\n /******/ if (e.o(t, n) && !e.o(r, n)) {\n /******/ Object.defineProperty(r, n, {\n enumerable: true,\n get: t[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var r = {};\n // ESM COMPAT FLAG\n e.r(r);\n // EXPORTS\n e.d(r, {\n default: () => /* binding */ i\n });\n // CONCATENATED MODULE: external \"react\"\n const t = require(\"react\");\n var n = e.n(t);\n // CONCATENATED MODULE: external \"@splunk/ui-utils/i18n\"\n const o = require(\"@splunk/ui-utils/i18n\");\n // CONCATENATED MODULE: external \"@splunk/react-icons/SVGInternal\"\n const a = require(\"@splunk/react-icons/SVGInternal\");\n var l = e.n(a);\n // CONCATENATED MODULE: ./src/enterprise/Clear.tsx\n function u() {\n u = Object.assign || function(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = arguments[r];\n for (var n in t) {\n if (Object.prototype.hasOwnProperty.call(t, n)) {\n e[n] = t[n];\n }\n }\n }\n return e;\n };\n return u.apply(this, arguments);\n }\n /* eslint-disable max-len */ function i(e) {\n \n return n().createElement(l(), u({\n screenReaderText: (0, o._)(\"Clear\")\n }, e), n().createElement(\"path\", {\n d: \"M918.315 750.645L1500 1332.33 1332.33 1500 750.645 918.315 167.67 1500 0 1332.33l581.685-582.975L0 167.67 167.67 0l582.975 581.685L1332.33 0 1500 167.67\"\n }));\n }\n module.exports = r;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = r => {\n /******/ var t = r && r.__esModule ? \n /******/ () => r[\"default\"]\n /******/ : () => r\n /******/;\n e.d(t, {\n a: t\n });\n /******/ return t;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (r, t) => {\n /******/ for (var n in t) {\n /******/ if (e.o(t, n) && !e.o(r, n)) {\n /******/ Object.defineProperty(r, n, {\n enumerable: true,\n get: t[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var r = {};\n // ESM COMPAT FLAG\n e.r(r);\n // EXPORTS\n e.d(r, {\n default: () => /* binding */ l\n });\n // CONCATENATED MODULE: external \"react\"\n const t = require(\"react\");\n var n = e.n(t);\n // CONCATENATED MODULE: external \"@splunk/ui-utils/i18n\"\n const o = require(\"@splunk/ui-utils/i18n\");\n // CONCATENATED MODULE: external \"@splunk/react-icons/enterprise/Clear\"\n const a = require(\"@splunk/react-icons/enterprise/Clear\");\n var u = e.n(a);\n // CONCATENATED MODULE: ./src/enterprise/Close.tsx\n function i() {\n i = Object.assign || function(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = arguments[r];\n for (var n in t) {\n if (Object.prototype.hasOwnProperty.call(t, n)) {\n e[n] = t[n];\n }\n }\n }\n return e;\n };\n return i.apply(this, arguments);\n }\n function l(e) {\n \n return n().createElement(u(), i({\n screenReaderText: (0, o._)(\"Close\")\n }, e));\n }\n module.exports = r;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = r => {\n /******/ var t = r && r.__esModule ? \n /******/ () => r[\"default\"]\n /******/ : () => r\n /******/;\n e.d(t, {\n a: t\n });\n /******/ return t;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (r, t) => {\n /******/ for (var n in t) {\n /******/ if (e.o(t, n) && !e.o(r, n)) {\n /******/ Object.defineProperty(r, n, {\n enumerable: true,\n get: t[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var r = {};\n // ESM COMPAT FLAG\n e.r(r);\n // EXPORTS\n e.d(r, {\n default: () => /* binding */ l\n });\n // CONCATENATED MODULE: external \"react\"\n const t = require(\"react\");\n var n = e.n(t);\n // CONCATENATED MODULE: external \"@splunk/ui-utils/i18n\"\n const o = require(\"@splunk/ui-utils/i18n\");\n // CONCATENATED MODULE: external \"@splunk/react-icons/SVGInternal\"\n const a = require(\"@splunk/react-icons/SVGInternal\");\n var u = e.n(a);\n // CONCATENATED MODULE: ./src/enterprise/Error.tsx\n function c() {\n c = Object.assign || function(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = arguments[r];\n for (var n in t) {\n if (Object.prototype.hasOwnProperty.call(t, n)) {\n e[n] = t[n];\n }\n }\n }\n return e;\n };\n return c.apply(this, arguments);\n }\n /* eslint-disable max-len */ function l(e) {\n \n return n().createElement(u(), c({\n screenReaderText: (0, o._)(\"Error\")\n }, e, {\n viewBox: \"0 0 1375 1500\"\n }), n().createElement(\"path\", {\n d: \"M187.5 61.5h1000c103.553 0 187.5 83.947 187.5 187.5v1000c0 103.553-83.947 187.5-187.5 187.5h-1000C83.947 1436.5 0 1352.553 0 1249V249C0 145.447 83.947 61.5 187.5 61.5zm400.79 413.083l32.145 257.167c4.908 39.264 34.086 74.685 69.815 91.187 36.612-16.018 64.87-50.826 69.914-91.187l32.146-257.167C799.18 419.623 759.582 374 703.7 374h-26.8c-55.908 0-95.555 45.033-88.61 100.583zm101.293 644.209c63.283 0 114.584-51.301 114.584-114.584 0-63.282-51.301-114.583-114.584-114.583-63.282 0-114.583 51.3-114.583 114.583s51.3 114.584 114.583 114.584z\"\n }));\n }\n module.exports = r;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = r => {\n /******/ var t = r && r.__esModule ? \n /******/ () => r[\"default\"]\n /******/ : () => r\n /******/;\n e.d(t, {\n a: t\n });\n /******/ return t;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (r, t) => {\n /******/ for (var n in t) {\n /******/ if (e.o(t, n) && !e.o(r, n)) {\n /******/ Object.defineProperty(r, n, {\n enumerable: true,\n get: t[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var r = {};\n // ESM COMPAT FLAG\n e.r(r);\n // EXPORTS\n e.d(r, {\n default: () => /* binding */ i\n });\n // CONCATENATED MODULE: external \"react\"\n const t = require(\"react\");\n var n = e.n(t);\n // CONCATENATED MODULE: external \"@splunk/ui-utils/i18n\"\n const o = require(\"@splunk/ui-utils/i18n\");\n // CONCATENATED MODULE: external \"@splunk/react-icons/SVGInternal\"\n const a = require(\"@splunk/react-icons/SVGInternal\");\n var l = e.n(a);\n // CONCATENATED MODULE: ./src/enterprise/External.tsx\n function u() {\n u = Object.assign || function(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = arguments[r];\n for (var n in t) {\n if (Object.prototype.hasOwnProperty.call(t, n)) {\n e[n] = t[n];\n }\n }\n }\n return e;\n };\n return u.apply(this, arguments);\n }\n /* eslint-disable max-len */ function i(e) {\n \n return n().createElement(l(), u({\n screenReaderText: (0, o._)(\"External\"),\n viewBox: \"0 0 1500 1499\"\n }, e), n().createElement(\"path\", {\n d: \"M1500 1125h-189.04v185.96H189.04V189.04H375V0H0v1500h1500v-375zm0-1125H723.288v190.068h469.52l-666.78 648.288 133.56 134.59 650.344-665.754v469.52l189.04 1.028L1500 0z\"\n }));\n }\n module.exports = r;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = r => {\n /******/ var t = r && r.__esModule ? \n /******/ () => r[\"default\"]\n /******/ : () => r\n /******/;\n e.d(t, {\n a: t\n });\n /******/ return t;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (r, t) => {\n /******/ for (var n in t) {\n /******/ if (e.o(t, n) && !e.o(r, n)) {\n /******/ Object.defineProperty(r, n, {\n enumerable: true,\n get: t[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var r = {};\n // ESM COMPAT FLAG\n e.r(r);\n // EXPORTS\n e.d(r, {\n default: () => /* binding */ l\n });\n // CONCATENATED MODULE: external \"react\"\n const t = require(\"react\");\n var n = e.n(t);\n // CONCATENATED MODULE: external \"@splunk/ui-utils/i18n\"\n const o = require(\"@splunk/ui-utils/i18n\");\n // CONCATENATED MODULE: external \"@splunk/react-icons/SVGInternal\"\n const a = require(\"@splunk/react-icons/SVGInternal\");\n var u = e.n(a);\n // CONCATENATED MODULE: ./src/enterprise/InfoCircle.tsx\n function i() {\n i = Object.assign || function(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = arguments[r];\n for (var n in t) {\n if (Object.prototype.hasOwnProperty.call(t, n)) {\n e[n] = t[n];\n }\n }\n }\n return e;\n };\n return i.apply(this, arguments);\n }\n /* eslint-disable max-len */ function l(e) {\n \n return n().createElement(u(), i({\n screenReaderText: (0, o._)(\"Info Circle\")\n }, e), n().createElement(\"path\", {\n d: \"M843.75 750v-93.75H562.5V750h93.75v281.25H562.5V1125h375v-93.75h-93.75V750zM750 1500C335.786 1500 0 1164.214 0 750S335.786 0 750 0s750 335.786 750 750-335.786 750-750 750zm0-937.5c51.777 0 93.75-41.973 93.75-93.75S801.777 375 750 375s-93.75 41.973-93.75 93.75S698.223 562.5 750 562.5z\"\n }));\n }\n module.exports = r;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = r => {\n /******/ var t = r && r.__esModule ? \n /******/ () => r[\"default\"]\n /******/ : () => r\n /******/;\n e.d(t, {\n a: t\n });\n /******/ return t;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (r, t) => {\n /******/ for (var n in t) {\n /******/ if (e.o(t, n) && !e.o(r, n)) {\n /******/ Object.defineProperty(r, n, {\n enumerable: true,\n get: t[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var r = {};\n // ESM COMPAT FLAG\n e.r(r);\n // EXPORTS\n e.d(r, {\n default: () => /* binding */ i\n });\n // CONCATENATED MODULE: external \"react\"\n const t = require(\"react\");\n var n = e.n(t);\n // CONCATENATED MODULE: external \"@splunk/ui-utils/i18n\"\n const o = require(\"@splunk/ui-utils/i18n\");\n // CONCATENATED MODULE: external \"@splunk/react-icons/SVGInternal\"\n const a = require(\"@splunk/react-icons/SVGInternal\");\n var u = e.n(a);\n // CONCATENATED MODULE: ./src/enterprise/Success.tsx\n function l() {\n l = Object.assign || function(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = arguments[r];\n for (var n in t) {\n if (Object.prototype.hasOwnProperty.call(t, n)) {\n e[n] = t[n];\n }\n }\n }\n return e;\n };\n return l.apply(this, arguments);\n }\n /* eslint-disable max-len */ function i(e) {\n \n return n().createElement(u(), l({\n screenReaderText: (0, o._)(\"Success\")\n }, e), n().createElement(\"path\", {\n d: \"M750 1500C335.786 1500 0 1164.214 0 750S335.786 0 750 0s750 335.786 750 750-335.786 750-750 750zm-138.327-414.388l511.677-511.677-105.185-105.185L611.53 875.385 453.004 716.573 347.819 821.76l263.854 263.853z\"\n }));\n }\n module.exports = r;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = r => {\n /******/ var t = r && r.__esModule ? \n /******/ () => r[\"default\"]\n /******/ : () => r\n /******/;\n e.d(t, {\n a: t\n });\n /******/ return t;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (r, t) => {\n /******/ for (var n in t) {\n /******/ if (e.o(t, n) && !e.o(r, n)) {\n /******/ Object.defineProperty(r, n, {\n enumerable: true,\n get: t[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var r = {};\n // ESM COMPAT FLAG\n e.r(r);\n // EXPORTS\n e.d(r, {\n default: () => /* binding */ i\n });\n // CONCATENATED MODULE: external \"react\"\n const t = require(\"react\");\n var n = e.n(t);\n // CONCATENATED MODULE: external \"@splunk/ui-utils/i18n\"\n const o = require(\"@splunk/ui-utils/i18n\");\n // CONCATENATED MODULE: external \"@splunk/react-icons/SVGInternal\"\n const a = require(\"@splunk/react-icons/SVGInternal\");\n var l = e.n(a);\n // CONCATENATED MODULE: ./src/enterprise/TriangleDownSmall.tsx\n function u() {\n u = Object.assign || function(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = arguments[r];\n for (var n in t) {\n if (Object.prototype.hasOwnProperty.call(t, n)) {\n e[n] = t[n];\n }\n }\n }\n return e;\n };\n return u.apply(this, arguments);\n }\n /* eslint-disable max-len */ function i(e) {\n \n return n().createElement(l(), u({\n screenReaderText: (0, o._)(\"Triangle Down Small\"),\n viewBox: \"0 0 1063 677\"\n }, e), n().createElement(\"path\", {\n d: \"M458.024 633l-397-458c-35-41-61-72-61-102-1-43 30-73 73-73h918c43 0 71 30 71 73 0 30-13 58-43 94l-415 466c-32 35-47 44-73 44-22 0-37-9-73-44z\"\n }));\n }\n module.exports = r;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = r => {\n /******/ var t = r && r.__esModule ? \n /******/ () => r[\"default\"]\n /******/ : () => r\n /******/;\n e.d(t, {\n a: t\n });\n /******/ return t;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (r, t) => {\n /******/ for (var n in t) {\n /******/ if (e.o(t, n) && !e.o(r, n)) {\n /******/ Object.defineProperty(r, n, {\n enumerable: true,\n get: t[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var r = {};\n // ESM COMPAT FLAG\n e.r(r);\n // EXPORTS\n e.d(r, {\n default: () => /* binding */ u\n });\n // CONCATENATED MODULE: external \"react\"\n const t = require(\"react\");\n var n = e.n(t);\n // CONCATENATED MODULE: external \"@splunk/ui-utils/i18n\"\n const o = require(\"@splunk/ui-utils/i18n\");\n // CONCATENATED MODULE: external \"@splunk/react-icons/SVGInternal\"\n const a = require(\"@splunk/react-icons/SVGInternal\");\n var l = e.n(a);\n // CONCATENATED MODULE: ./src/enterprise/Warning.tsx\n function c() {\n c = Object.assign || function(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = arguments[r];\n for (var n in t) {\n if (Object.prototype.hasOwnProperty.call(t, n)) {\n e[n] = t[n];\n }\n }\n }\n return e;\n };\n return c.apply(this, arguments);\n }\n /* eslint-disable max-len */ function u(e) {\n \n return n().createElement(l(), c({\n screenReaderText: (0, o._)(\"Warning\"),\n viewBox: \"0 0 1500 1313\"\n }, e), n().createElement(\"path\", {\n d: \"M.956 1196.326l668.58-1144.89C689.395 17.736 718.71 0 749.916 0c31.207 0 59.577 15.963 80.382 51.436l668.58 1144.89c7.565 12.416-23.642 116.174-77.544 116.174H85.474c-53.902 0-92.083-102.872-84.518-116.174zm643.333-684.743l32.146 257.167c4.908 39.264 34.086 74.685 69.815 91.187 36.612-16.018 64.87-50.826 69.914-91.187l32.146-257.167C855.18 456.623 815.582 411 759.7 411h-26.8c-55.908 0-95.555 45.033-88.61 100.583zm101.294 644.209c63.283 0 114.584-51.301 114.584-114.584 0-63.282-51.301-114.583-114.584-114.583-63.282 0-114.583 51.3-114.583 114.583s51.3 114.584 114.583 114.584z\"\n }));\n }\n module.exports = r;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = n => {\n /******/ var r = n && n.__esModule ? \n /******/ () => n[\"default\"]\n /******/ : () => n\n /******/;\n e.d(r, {\n a: r\n });\n /******/ return r;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (n, r) => {\n /******/ for (var t in r) {\n /******/ if (e.o(r, t) && !e.o(n, t)) {\n /******/ Object.defineProperty(n, t, {\n enumerable: true,\n get: r[t]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, n) => Object.prototype.hasOwnProperty.call(e, n)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var n = {};\n // ESM COMPAT FLAG\n e.r(n);\n // EXPORTS\n e.d(n, {\n default: () => /* binding */ X\n });\n // CONCATENATED MODULE: external \"react-dom\"\n const r = require(\"react-dom\");\n // CONCATENATED MODULE: external \"react\"\n const t = require(\"react\");\n var a = e.n(t);\n // CONCATENATED MODULE: external \"scriptjs\"\n const i = require(\"scriptjs\");\n var o = e.n(i);\n // CONCATENATED MODULE: external \"@splunk/react-ui/Layer\"\n const l = require(\"@splunk/react-ui/Layer\");\n // CONCATENATED MODULE: external \"@splunk/splunk-utils/url\"\n const u = require(\"@splunk/splunk-utils/url\");\n // CONCATENATED MODULE: external \"@splunk/themes/SplunkThemeProvider\"\n const c = require(\"@splunk/themes/SplunkThemeProvider\");\n var d = e.n(c);\n // CONCATENATED MODULE: external \"styled-components\"\n const p = require(\"styled-components\");\n var s = e.n(p);\n // CONCATENATED MODULE: external \"@splunk/themes\"\n const v = require(\"@splunk/themes\");\n // CONCATENATED MODULE: ./src/LoadingStyles.js\n function f() {\n var e = k([ \"\\n animation-name: \", \";\\n animation-duration: 1.4s;\\n animation-iteration-count: infinite;\\n animation-fill-mode: both;\\n background-color: \", \";\\n width: 10px;\\n height: 10px;\\n border-radius: 5px;\\n display: inline-block;\\n margin-right: \", \";\\n\\n &:nth-child(2) {\\n animation-delay: 0.2s;\\n }\\n\\n &:nth-child(3) {\\n animation-delay: 0.4s;\\n }\\n\" ]);\n f = function n() {\n return e;\n };\n return e;\n }\n function m() {\n var e = k([ \"\\n color: \", \";\\n padding-top: 30vh;\\n text-align: center;\\n min-height: 400px;\\n\" ]);\n m = function n() {\n return e;\n };\n return e;\n }\n function h() {\n var e = k([ \"\\n background-color: \", \";\\n min-height: \", \"px;\\n\" ]);\n h = function n() {\n return e;\n };\n return e;\n }\n function b() {\n var e = k([ \"\\n padding: 0;\\n background-color: \", \";\\n height: \", \"px;\\n\" ]);\n b = function n() {\n return e;\n };\n return e;\n }\n function y() {\n var e = k([ \"\\n background-color: \", \";\\n position: fixed;\\n opacity: 1;\\n z-index: 10000;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n\" ]);\n y = function n() {\n return e;\n };\n return e;\n }\n function g() {\n var e = k([ \"\\n 0% {\\n opacity: 0.2;\\n }\\n\\n 20% {\\n opacity: 1;\\n }\\n\\n 100% {\\n opacity: 0.2;\\n }\\n\" ]);\n g = function n() {\n return e;\n };\n return e;\n }\n function k(e, n) {\n if (!n) {\n n = e.slice(0);\n }\n return Object.freeze(Object.defineProperties(e, {\n raw: {\n value: Object.freeze(n)\n }\n }));\n }\n var S = 45;\n var j = 34;\n var w = (0, p.keyframes)(g());\n var E = s().div(y(), v.variables.backgroundColorPage);\n var C = s().div(b(), (0, v.pick)({\n prisma: v.variables.backgroundColorSection,\n enterprise: v.variables.gray20\n }), j);\n var B = s().div(h(), (0, v.pick)({\n prisma: v.variables.backgroundColorPopup,\n enterprise: v.variables.gray30\n }), S);\n var x = s().div(m(), v.variables.contentColorInverted);\n var q = s().div(f(), w, v.variables.neutral500, (0, v.pick)({\n prisma: v.variables.spacingMedium,\n enterprise: v.variables.spacingHalf\n }));\n // CONCATENATED MODULE: external \"prop-types\"\n const O = require(\"prop-types\");\n var A = e.n(O);\n // CONCATENATED MODULE: external \"@splunk/react-ui/ScreenReaderContent\"\n const P = require(\"@splunk/react-ui/ScreenReaderContent\");\n var F = e.n(P);\n // CONCATENATED MODULE: external \"@splunk/ui-utils/i18n\"\n const _ = require(\"@splunk/ui-utils/i18n\");\n // CONCATENATED MODULE: ./src/Loading.jsx\n var L = {\n hideAppBar: A().bool,\n hideChrome: A().bool,\n hideSplunkBar: A().bool,\n AppBarFallback: A().elementType,\n SplunkBarFallback: A().elementType\n };\n var T = {\n hideAppBar: false,\n hideChrome: false,\n hideSplunkBar: false,\n AppBarFallback: B,\n SplunkBarFallback: C\n };\n function H(e) {\n var n = e.hideAppBar, r = e.hideChrome, t = e.hideSplunkBar, i = e.SplunkBarFallback, o = e.AppBarFallback;\n \n return a().createElement(E, null, !r && !t && a().createElement(i, null), !r && !n && a().createElement(o, null), a().createElement(x, null, a().createElement(q, null), a().createElement(q, null), a().createElement(q, null), a().createElement(F(), null, (0, \n _._)(\"Loading\"))));\n }\n H.propTypes = L;\n H.defaultProps = T;\n /* harmony default export */ const M = H;\n // CONCATENATED MODULE: ./src/baseLayout.jsx\n function z(e, n) {\n if (e == null) return {};\n var r = G(e, n);\n var t, a;\n if (Object.getOwnPropertySymbols) {\n var i = Object.getOwnPropertySymbols(e);\n for (a = 0; a < i.length; a++) {\n t = i[a];\n if (n.indexOf(t) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(e, t)) continue;\n r[t] = e[t];\n }\n }\n return r;\n }\n function G(e, n) {\n if (e == null) return {};\n var r = {};\n var t = Object.keys(e);\n var a, i;\n for (i = 0; i < t.length; i++) {\n a = t[i];\n if (n.indexOf(a) >= 0) continue;\n r[a] = e[a];\n }\n return r;\n }\n var I = \"build/api/layout.js\";\n var R = \"build/api/layout-dark.js\";\n var U = 'header[data-view=\"splunkjs/mvc/headerview\"]';\n /**\n * Loads the layout from the server, using requirejs if available on the window and scriptjs if not.\n *\n * @param {Function} callback - A callback invoked with the layout module once resolved.\n * @param {object} [options]\n * @param {String} [options.loader = 'scriptjs'] - Configures the loader used for the loading the layout - available loaders are \"scriptjs\" and \"requirejs\".\n * @private\n */ function N(e, n) {\n var r = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}, t = r.loader, a = t === void 0 ? \"scriptjs\" : t;\n var i = e === \"dark\" ? R : I;\n var l = (0, u.createStaticURL)(i);\n if (a === \"scriptjs\") {\n o()(l, (function() {\n // eslint-disable-next-line no-underscore-dangle\n n(window.__splunk_layout__);\n }));\n } else if (a === \"requirejs\") {\n if (window.requirejs) {\n window.requirejs([ l ], n);\n } else {\n throw new Error('Error in react-page: options.loader = \"requirejs\" was set but window.requirejs does not exist.');\n }\n } else {\n throw new Error('Invalid options.loader configuration: must be \"scriptjs\" or \"requirejs\".');\n }\n }\n /**\n * Computes the background css of the header container during lazy loading\n *\n * @param {HTMLDivElement} headerContainer\n * @param {object} [options]\n * @private\n */ function D(e) {\n var n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var r = n.hideSplunkBar, t = n.hideAppBar, a = n.headerHeight;\n var i = e.children[0];\n var o = i && getComputedStyle(i).backgroundColor;\n if (!(r || t)) {\n // compute background color to be same as both fallback components\n var l = i === null || i === void 0 ? void 0 : i.offsetHeight;\n var u = e.children[1];\n var c = u && getComputedStyle(u).backgroundColor;\n var d = Math.round(l / a * 100);\n return \"linear-gradient(\\n \".concat(o, \" 0%,\\n \").concat(o, \" \").concat(d, \"%,\\n \").concat(c, \" \").concat(d, \"%,\\n \").concat(c, \" 100%\\n )\");\n }\n return o;\n }\n /**\n * renders body element and attaches it to container node in DOM\n *\n * @param {element} element\n * @param {element} render - A render function that returns an unmount() function.\n * @param {HTMLDivElement} container\n * @param {boolean} useGlobalLayerStack\n * @param {object} splunkTheme\n * @private\n */ function J(e, n, r) {\n var t = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n var i = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};\n var o = t ? a().createElement(l.LayerStackGlobalProvider, null, a().createElement(d(), i, e)) : a().createElement(d(), i, e);\n return n(o, r);\n }\n /**\n * Renders a React element into the Layout API.\n * @public\n * @param {element} element - A React element.\n * @param {element} render - A render function that returns an unmount() function.\n * @param {object} [options]\n * @param {string} [options.pageTitle] - Changes the page title.\n * @param {Boolean} [options.hideAppBar = false] - Hides the app bar.\n * @param {Boolean} [options.hideAppsList = false] - Hides the app list in\n * the Splunk bar.\n * @param {Boolean} [options.hideChrome = false] - Renders only the main content, hiding\n * the Splunk bar, app bar, and footer.\n * @param {Boolean} [options.hideFooter = false] - Hides the footer.\n * @param {Boolean} [options.hideSplunkBar = false] - Hides the Splunk bar.\n * @param {string} [options.layout = 'scrolling'] - Set to `fixed` to fix all navigation bars\n * to the edge of the page.\n * @param {Boolean} [options.useGlobalLayerStack = true] - Wraps elements in @splunk/react-ui's LayerStackGlobalProvider.\n * @param {String} [options.theme = 'light'] - Used to theme UI elements. Ex. \"light\" or \"dark\".\n * @param {String} [options.loader = 'scriptjs'] - Configures the loader used for the loading the layout - available loaders are \"scriptjs\" and \"requirejs\".\n * Change this only if the default loader does not work for your application.\n * @param {Boolean} [options.lazyLoadLayout = false] - Prioritizes loading the React element and lazily fetches and compiles the layout API (navigation bar).\n * @param {element} [options.SplunkBarFallback = SplunkBar] - A React element used as a placeholder for the splunk bar while the navigation bar is loading.\n * @param {element} [options.AppBarFallback = AppBar] - A React element used as a placeholder for the app bar while the navigation bar is loading.\n * @param {function} [options.onLayoutComplete] - A callback function which executes after layout API is fetched and compiled.\n */ function K(e, n) {\n var r = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var t = r.useGlobalLayerStack, i = t === void 0 ? true : t, o = r.pageTitle, l = r.theme, u = l === void 0 ? \"light\" : l, c = r.loader, p = c === void 0 ? \"scriptjs\" : c, s = z(r, [ \"useGlobalLayerStack\", \"pageTitle\", \"theme\", \"loader\" ]);\n if (o) {\n document.title = o;\n }\n var v = s.hideChrome, f = s.hideAppBar, m = s.hideSplunkBar, h = s.SplunkBarFallback, b = h === void 0 ? C : h, y = s.AppBarFallback, g = y === void 0 ? B : y, k = s.lazyLoadLayout, w = k === void 0 ? false : k, E = s.onLayoutComplete;\n var x = document.createElement(\"div\");\n var q = document.createElement(\"div\");\n // The \"theme\" in enterprise used to be \"enterprise\" instead of \"light\"...\n var O = u === \"light\" || u === \"enterprise\" ? \"light\" : \"dark\";\n var A = {\n family: \"enterprise\",\n colorScheme: O,\n density: \"comfortable\"\n };\n var P;\n var F;\n if (w) {\n // render the React app immediately without waiting for layout API\n if (!v) {\n document.body.appendChild(q);\n F = n( a().createElement(a().Fragment, null, !m && a().createElement(b, null), !f && a().createElement(g, null)), q);\n // explicitly set height and background of header container to avoid layout and color shift when fallback gets replaced\n var _ = q.offsetHeight;\n var L = D(q, {\n hideSplunkBar: m,\n hideAppBar: f,\n headerHeight: _,\n AppBarFallback: g,\n SplunkBarFallback: b\n });\n q.style.height = \"\".concat(_, \"px\");\n q.style.background = \"\".concat(L);\n }\n document.body.appendChild(x);\n P = J(e, n, x, i, A);\n } else {\n document.body.appendChild(x);\n P = n( a().createElement(d(), A, a().createElement(M, s)), x);\n }\n N(u, (function(r) {\n var t;\n if (r) {\n t = r.create(s).getContainerElement();\n if (s.layout === \"fixed\") {\n // the above create method adds flex: 1 0 0\n // IE 11 disregards 0px shorthand for flex-basis component.\n // flex-basis 0% is better than 0px because css minification can remove px\n if (!t.style.flex || t.style.flex === \"1 0 0px\") {\n t.style.flex = \"1 0 0%\";\n }\n // all elements in the hierarchy must have 'overflow: hidden' for children\n // to support scrolling correctly.\n if (!t.style.overflow) {\n t.style.overflow = \"hidden\";\n }\n // splunk hijacks the width of the body when printing, so we have to force width to the size\n // of the viewport so that things print at the correct width\n if (!t.style.width) {\n t.style.width = \"100vw\";\n }\n }\n } else {\n // eslint-disable-next-line no-console\n console.error(\"Unable to load layout.\");\n t = document.createElement(\"div\");\n document.body.appendChild(t);\n }\n if (w) {\n if (!v) {\n // replace placeholder nav bar with real nav bar\n F.unmount(q);\n var a = document.querySelector(U);\n var o = (!v && !m ? j : 0) + (!v && !f ? S : 0);\n // set a min-height for basic nav bar components and auto height for any additional components like global banner\n q.style.minHeight = \"\".concat(o, \"px\");\n q.style.height = \"auto\";\n q.appendChild(a);\n }\n t.appendChild(x);\n E === null || E === void 0 ? void 0 : E();\n } else {\n setTimeout((function() {\n P.unmount(x);\n P = J(e, n, x, i, A);\n t.appendChild(x);\n E === null || E === void 0 ? void 0 : E();\n }), 30);\n }\n }), {\n loader: p\n });\n }\n /* harmony default export */ const Q = K;\n // CONCATENATED MODULE: ./src/index.jsx\n var V = function e(n, t) {\n (0, r.render)(n, t);\n return {\n unmount: function e() {\n return (0, r.unmountComponentAtNode)(t);\n }\n };\n };\n /**\n * Renders a React element into the Layout API.\n * @public\n * @param {element} element - A React element.\n * @param {object} [options]\n * @param {string} [options.pageTitle] - Changes the page title.\n * @param {Boolean} [options.hideAppBar = false] - Hides the app bar.\n * @param {Boolean} [options.hideAppsList = false] - Hides the app list in\n * the Splunk bar.\n * @param {Boolean} [options.hideChrome = false] - Renders only the main content, hiding\n * the Splunk bar, app bar, and footer.\n * @param {Boolean} [options.hideFooter = false] - Hides the footer.\n * @param {Boolean} [options.hideSplunkBar = false] - Hides the Splunk bar.\n * @param {string} [options.layout = 'scrolling'] - Set to `fixed` to fix all navigation bars\n * to the edge of the page.\n * @param {Boolean} [options.useGlobalLayerStack = true] - Wraps elements in @splunk/react-ui's LayerStackGlobalProvider.\n * @param {String} [options.theme = 'light'] - Used to theme UI elements. Ex. \"light\" or \"dark\".\n * @param {String} [options.loader = 'scriptjs'] - Configures the loader used for the loading the layout - available loaders are \"scriptjs\" and \"requirejs\".\n * Change this only if the default loader does not work for your application.\n * @param {Boolean} [options.lazyLoadLayout = false] - Prioritizes loading the React element and lazily fetches and compiles the layout API (navigation bar).\n * @param {element} [options.SplunkBarFallback = SplunkBar] - A React element used as a placeholder for the splunk bar while the navigation bar is loading.\n * @param {element} [options.AppBarFallback = AppBar] - A React element used as a placeholder for the app bar while the navigation bar is loading.\n * @param {function} [options.onLayoutComplete] - A callback function which executes after layout API is fetched and compiled.\n */ function W(e, n) {\n Q(e, V, n);\n }\n /* harmony default export */ const X = W;\n module.exports = n;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = r => {\n /******/ var t = r && r.__esModule ? \n /******/ () => r[\"default\"]\n /******/ : () => r\n /******/;\n e.d(t, {\n a: t\n });\n /******/ return t;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (r, t) => {\n /******/ for (var n in t) {\n /******/ if (e.o(t, n) && !e.o(r, n)) {\n /******/ Object.defineProperty(r, n, {\n enumerable: true,\n get: t[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var r = {};\n // ESM COMPAT FLAG\n e.r(r);\n // EXPORTS\n e.d(r, {\n default: () => /* reexport */ s\n });\n // CONCATENATED MODULE: external \"react\"\n const t = require(\"react\");\n var n = e.n(t);\n // CONCATENATED MODULE: external \"prop-types\"\n const o = require(\"prop-types\");\n var a = e.n(o);\n // CONCATENATED MODULE: external \"use-typed-event-listener\"\n const l = require(\"use-typed-event-listener\");\n var u = e.n(l);\n // CONCATENATED MODULE: ./src/EventListener/EventListener.tsx\n /**\n * This is a private component.\n * Please see the Readme file for more information.\n */\n var i = {\n children: a().node,\n target: a().oneOfType([ a().object, a().string ]),\n eventType: a().any,\n listener: a().func,\n options: a().oneOfType([ a().object, a().bool ])\n };\n function p(e) {\n var r = e.children, t = e.target, o = e.eventType, a = e.listener, l = e.options;\n u()(t, o, a, l);\n \n return n().createElement(n().Fragment, null, r || null);\n }\n p.propTypes = i;\n /* harmony default export */ const s = p;\n // CONCATENATED MODULE: ./src/EventListener/index.ts\n module.exports = r;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = t => {\n /******/ var n = t && t.__esModule ? \n /******/ () => t[\"default\"]\n /******/ : () => t\n /******/;\n e.d(n, {\n a: n\n });\n /******/ return n;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (t, n) => {\n /******/ for (var r in n) {\n /******/ if (e.o(n, r) && !e.o(t, r)) {\n /******/ Object.defineProperty(t, r, {\n enumerable: true,\n get: n[r]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/global */\n /******/ (() => {\n /******/ e.g = function() {\n /******/ if (typeof globalThis === \"object\") return globalThis;\n /******/ try {\n /******/ return this || new Function(\"return this\")();\n /******/ } catch (e) {\n /******/ if (typeof window === \"object\") return window;\n /******/ }\n /******/ }();\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var t = {};\n // ESM COMPAT FLAG\n e.r(t);\n // EXPORTS\n e.d(t, {\n LayerContext: () => /* reexport */ m,\n LayerStackContext: () => /* reexport */ h,\n LayerStackGlobalProvider: () => /* reexport */ k,\n default: () => /* reexport */ F\n });\n // CONCATENATED MODULE: external \"react\"\n const n = require(\"react\");\n var r = e.n(n);\n // CONCATENATED MODULE: external \"react-dom\"\n const o = require(\"react-dom\");\n // CONCATENATED MODULE: external \"prop-types\"\n const i = require(\"prop-types\");\n var a = e.n(i);\n // CONCATENATED MODULE: external \"lodash/includes\"\n const c = require(\"lodash/includes\");\n var u = e.n(c);\n // CONCATENATED MODULE: external \"lodash/last\"\n const l = require(\"lodash/last\");\n var s = e.n(l);\n // CONCATENATED MODULE: external \"lodash/pull\"\n const f = require(\"lodash/pull\");\n var p = e.n(f);\n // CONCATENATED MODULE: external \"@splunk/ui-utils/keyboard\"\n const y = require(\"@splunk/ui-utils/keyboard\");\n // CONCATENATED MODULE: external \"@splunk/react-ui/EventListener\"\n const d = require(\"@splunk/react-ui/EventListener\");\n var v = e.n(d);\n // CONCATENATED MODULE: ./src/Layer/LayerStack.tsx\n /**\n * `LayerStackContext` is used to manage the array that `Layer` (and components that\n * depend on it, such as `Modal`) uses to determine the order of open layers.\n * @public\n */\n var h = r().createContext([]);\n var m = r().createContext({});\n var b = {\n children: a().node,\n name: a().string,\n scope: a().object,\n separateStackingContexts: a().bool\n };\n /* global global */\n /**\n * A `LayerStackContext` provider that stores a shared layer stack using a global variable.\n * Applications should only use this provider if there's a known need to support multiple\n * instances of this library on the same page.\n */ function k(t) {\n var n = t.children, o = t.name, i = o === void 0 ? \"__splunkui_layer_instances__\" : o, a = t.scope, c = a === void 0 ? typeof window !== \"undefined\" ? window : e.g : a, u = t.separateStackingContexts, l = u === void 0 ? false : u;\n if (!c[i]) {\n c[i] = [];\n // eslint-disable-line no-param-reassign\n }\n \n return r().createElement(h.Provider, {\n value: c[i]\n }, r().createElement(m.Provider, {\n value: {\n separateStackingContexts: l\n }\n }, n));\n }\n k.propTypes = b;\n // CONCATENATED MODULE: external \"styled-components\"\n const w = require(\"styled-components\");\n var g = e.n(w);\n // CONCATENATED MODULE: external \"@splunk/themes\"\n const C = require(\"@splunk/themes\");\n // CONCATENATED MODULE: ./src/Layer/LayerStyles.ts\n var S = g().div.withConfig({\n displayName: \"LayerStyles__StyledLayer\",\n componentId: \"ii6psl-0\"\n })([ \"\", \"\" ], (function(e) {\n var t = e.$separateStackingContexts;\n return t && (0, w.css)([ \"isolation:isolate;z-index:\", \";\" ], C.variables.zindexLayer);\n }));\n // CONCATENATED MODULE: ./src/utils/ssrDocument.ts\n /* eslint-disable @typescript-eslint/no-empty-function */\n var E = {\n body: {\n appendChild: function e() {\n return [];\n }\n },\n addEventListener: function e() {},\n removeEventListener: function e() {},\n activeElement: {\n blur: function e() {},\n nodeName: \"\"\n },\n querySelector: function e() {\n return null;\n },\n querySelectorAll: function e() {\n return [];\n },\n getElementById: function e() {\n return null;\n },\n createEvent: function e() {\n return {\n initEvent: function e() {}\n };\n },\n createElement: function e() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function e() {},\n getElementsByTagName: function e() {\n return [];\n }\n };\n },\n createElementNS: function e() {\n return {};\n },\n importNode: function e() {\n return null;\n },\n location: {\n hash: \"\",\n host: \"\",\n hostname: \"\",\n href: \"\",\n origin: \"\",\n pathname: \"\",\n protocol: \"\",\n search: \"\"\n }\n };\n function O() {\n var e = typeof document !== \"undefined\" ? document : E;\n return e;\n }\n // CONCATENATED MODULE: ./src/Layer/Layer.tsx\n function L(e) {\n \"@babel/helpers - typeof\";\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n L = function e(t) {\n return typeof t;\n };\n } else {\n L = function e(t) {\n return t && typeof Symbol === \"function\" && t.constructor === Symbol && t !== Symbol.prototype ? \"symbol\" : typeof t;\n };\n }\n return L(e);\n }\n function _(e, t) {\n if (!(e instanceof t)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function x(e, t) {\n for (var n = 0; n < t.length; n++) {\n var r = t[n];\n r.enumerable = r.enumerable || false;\n r.configurable = true;\n if (\"value\" in r) r.writable = true;\n Object.defineProperty(e, r.key, r);\n }\n }\n function P(e, t, n) {\n if (t) x(e.prototype, t);\n if (n) x(e, n);\n return e;\n }\n function j(e, t) {\n if (typeof t !== \"function\" && t !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n e.prototype = Object.create(t && t.prototype, {\n constructor: {\n value: e,\n writable: true,\n configurable: true\n }\n });\n if (t) q(e, t);\n }\n function q(e, t) {\n q = Object.setPrototypeOf || function e(t, n) {\n t.__proto__ = n;\n return t;\n };\n return q(e, t);\n }\n function T(e) {\n var t = A();\n return function n() {\n var r = K(e), o;\n if (t) {\n var i = K(this).constructor;\n o = Reflect.construct(r, arguments, i);\n } else {\n o = r.apply(this, arguments);\n }\n return R(this, o);\n };\n }\n function R(e, t) {\n if (t && (L(t) === \"object\" || typeof t === \"function\")) {\n return t;\n }\n return D(e);\n }\n function D(e) {\n if (e === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return e;\n }\n function A() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], (function() {})));\n return true;\n } catch (e) {\n return false;\n }\n }\n function K(e) {\n K = Object.setPrototypeOf ? Object.getPrototypeOf : function e(t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n };\n return K(e);\n }\n function M(e, t, n) {\n if (t in e) {\n Object.defineProperty(e, t, {\n value: n,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n e[t] = n;\n }\n return e;\n }\n /** @public */ var N = [ \"clickAway\", \"escapeKey\" ];\n var W = {\n children: a().node,\n closeReasons: a().arrayOf(a().oneOf(N)),\n onRequestClose: a().func,\n open: a().bool\n };\n var z = {\n closeReasons: N,\n open: false\n };\n var B = function(e) {\n j(n, e);\n var t = T(n);\n // @docs-props-type LayerPropsBase\n // eslint-disable-next-line react/sort-comp\n // LayerStackContext (an array) keeps track of the current instances of Layer. This is\n // used by Layer#handleKeyDown to determine if the escapeKey event should be handled by\n // the current instance. Only the topmost Layer instance should honor the escapeKey.\n // TODO: enable once this is sorted out within the babel/ts ecosystem\n // declare context: React.ContextType;\n function n(e) {\n var r;\n _(this, n);\n r = t.call(this, e);\n M(D(r), \"layerClickEvent\", null);\n M(D(r), \"handleClickOnLayer\", (function(e) {\n var t = e.nativeEvent;\n r.layerClickEvent = t;\n }));\n M(D(r), \"handleClickOnWindow\", (function(e) {\n var t, n;\n // clicks inside the layer should not be considered clickAways\n if (!r.props.open || !u()(r.props.closeReasons, \"clickAway\") || r.layerClickEvent === e) {\n return;\n }\n (t = (n = r.props).onRequestClose) === null || t === void 0 ? void 0 : t.call(n, {\n event: e,\n reason: \"clickAway\"\n });\n }));\n M(D(r), \"handleKeyDownOnWindow\", (function(e) {\n if (r.props.open && (0, y.keycode)(e) === \"esc\" && s()(r.getLayerStack()) === D(r) && u()(r.props.closeReasons, \"escapeKey\")) {\n var t, n;\n (t = (n = r.props).onRequestClose) === null || t === void 0 ? void 0 : t.call(n, {\n event: e,\n reason: \"escapeKey\"\n });\n }\n }));\n var o = O();\n if (!n.layerContainer) {\n n.layerContainer = o.createElement(\"div\");\n n.layerContainer.setAttribute(\"data-test\", \"layer-container\");\n o.body.appendChild(n.layerContainer);\n }\n return r;\n }\n P(n, [ {\n key: \"componentDidMount\",\n value: function e() {\n if (this.props.open) {\n this.getLayerStack().push(this);\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function e(t) {\n if (!t.open && this.props.open) {\n this.getLayerStack().push(this);\n } else if (t.open && !this.props.open) {\n p()(this.getLayerStack(), this);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function e() {\n p()(this.getLayerStack(), this);\n }\n }, {\n key: \"getLayerStack\",\n value: function e() {\n return this.context;\n }\n }, {\n key: \"render\",\n value: function e() {\n var t = this;\n var i = this.props, a = i.children, c = i.open;\n if (c) {\n var u = (0, o.createPortal)( r().createElement(m.Consumer, null, (function(e) {\n var n = e.separateStackingContexts, o = n === void 0 ? false : n;\n \n return r().createElement(S, {\n $separateStackingContexts: o,\n \"data-test\": \"layer\",\n onMouseDown: t.handleClickOnLayer,\n onTouchStart: t.handleClickOnLayer\n }, a);\n })), n.layerContainer);\n \n return r().createElement(r().Fragment, null, r().createElement(v(), {\n target: window,\n eventType: \"keydown\",\n listener: this.handleKeyDownOnWindow,\n key: \"eventListenerKeydown\"\n }), r().createElement(v(), {\n target: window,\n eventType: \"mousedown\",\n listener: this.handleClickOnWindow,\n key: \"eventListenerMouseDown\"\n }), r().createElement(v(), {\n target: window,\n eventType: \"touchstart\",\n listener: this.handleClickOnWindow,\n key: \"eventListenerTouchStart\",\n options: {\n passive: true\n }\n }), u);\n }\n return null;\n }\n } ]);\n return n;\n }(n.Component);\n M(B, \"layerContainer\", null);\n M(B, \"possibleCloseReasons\", N);\n M(B, \"propTypes\", W);\n M(B, \"defaultProps\", z);\n M(B, \"contextType\", h);\n /* harmony default export */ const F = B;\n // CONCATENATED MODULE: ./src/Layer/index.ts\n module.exports = t;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = r => {\n /******/ var t = r && r.__esModule ? \n /******/ () => r[\"default\"]\n /******/ : () => r\n /******/;\n e.d(t, {\n a: t\n });\n /******/ return t;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (r, t) => {\n /******/ for (var n in t) {\n /******/ if (e.o(t, n) && !e.o(r, n)) {\n /******/ Object.defineProperty(r, n, {\n enumerable: true,\n get: t[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var r = {};\n // ESM COMPAT FLAG\n e.r(r);\n // EXPORTS\n e.d(r, {\n default: () => /* reexport */ v\n });\n // CONCATENATED MODULE: external \"react\"\n const t = require(\"react\");\n var n = e.n(t);\n // CONCATENATED MODULE: external \"prop-types\"\n const o = require(\"prop-types\");\n var a = e.n(o);\n // CONCATENATED MODULE: external \"styled-components\"\n const i = require(\"styled-components\");\n var l = e.n(i);\n // CONCATENATED MODULE: external \"@splunk/themes\"\n const c = require(\"@splunk/themes\");\n // CONCATENATED MODULE: ./src/ScreenReaderContent/ScreenReaderContentStyles.ts\n var u = l().span.withConfig({\n displayName: \"ScreenReaderContentStyles__Styled\",\n componentId: \"sc-1lnohwp-0\"\n })([ \"\", \";\" ], c.mixins.screenReaderContent());\n // CONCATENATED MODULE: ./src/ScreenReaderContent/ScreenReaderContent.tsx\n function f() {\n f = Object.assign || function(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = arguments[r];\n for (var n in t) {\n if (Object.prototype.hasOwnProperty.call(t, n)) {\n e[n] = t[n];\n }\n }\n }\n return e;\n };\n return f.apply(this, arguments);\n }\n function s(e, r) {\n if (e == null) return {};\n var t = p(e, r);\n var n, o;\n if (Object.getOwnPropertySymbols) {\n var a = Object.getOwnPropertySymbols(e);\n for (o = 0; o < a.length; o++) {\n n = a[o];\n if (r.indexOf(n) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(e, n)) continue;\n t[n] = e[n];\n }\n }\n return t;\n }\n function p(e, r) {\n if (e == null) return {};\n var t = {};\n var n = Object.keys(e);\n var o, a;\n for (a = 0; a < n.length; a++) {\n o = n[a];\n if (r.indexOf(o) >= 0) continue;\n t[o] = e[o];\n }\n return t;\n }\n var d = {\n children: a().node.isRequired,\n elementRef: a().oneOfType([ a().func, a().object ])\n };\n /**\n * The screen reader text is used to wrap content that\n * is only accessible through screen readers.\n */ function y(e) {\n var r = e.children, t = e.elementRef, o = s(e, [ \"children\", \"elementRef\" ]);\n // @docs-props-type ScreenReaderContentPropsBase\n \n return n().createElement(u, f({\n \"data-test\": \"screen-reader-content\",\n ref: t\n }, o), r);\n }\n y.propTypes = d;\n /* harmony default export */ const v = y;\n // CONCATENATED MODULE: ./src/ScreenReaderContent/index.ts\n module.exports = r;\n /******/})();","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.extractAppName = extractAppName;\nexports.versionLabel = exports.username = exports.splunkdPath = exports.serverTimezoneInfo = exports.rootPath = exports.portNumber = exports.locale = exports.config = exports.buildPushNumber = exports.buildNumber = exports.appBuild = exports.app = exports.isAvailable = exports.CSRFToken = void 0;\n\nvar _get = _interopRequireDefault(require(\"lodash/get\"));\n\nvar _cookie = require(\"@splunk/ui-utils/cookie\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * A set of constants describing the server environment. If window.$C isn't defined, most of the\n * values on this page are also undefined.\n *\n * The constants may be imported independently, such as:\n * ```\n * import { buildNumber, locale, rootPath } from '@splunk/splunk-utils/config';\n * @file\n */\n\n/* global global */\n// If this is running in Node, the root is the `global` object. If it's running in the browser,\n// root is the `window` object.\nvar root = typeof window === 'undefined' ? global : window;\n/**\n * A function to get a $C prop. Returns undefined if $C isn't available.\n * @private\n */\n\nfunction get$CEntry(prop) {\n return (0, _get[\"default\"])(root, ['$C', prop]);\n}\n/**\n * The CSRF token. This may be `null` if the token isn't found in the cookie.\n *\n * @constant\n *\n * @public\n */\n\n\nvar CSRFToken = (0, _cookie.getEntry)(\"splunkweb_csrf_token_\".concat(get$CEntry('MRSPARKLE_PORT_NUMBER')));\n/**\n * If `window.$C` is undefined or invalid, isAvailable is `false`.\n * @constant\n * @public\n */\n\nexports.CSRFToken = CSRFToken;\nvar isAvailable = !!get$CEntry('SPLUNKD_PATH');\n/**\n * Extracts app name from the URL. To enable testing, this function is exported and pathname\n * can be overridden.\n * @private\n */\n\nexports.isAvailable = isAvailable;\n\nfunction extractAppName() {\n var pathname = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : (0, _get[\"default\"])(root, ['document', 'location', 'pathname'], '');\n var pathMatch = pathname.match(/\\w\\w.\\w\\w\\/(app|manager)\\/([^/]+)/);\n return pathMatch ? pathMatch[2] : undefined;\n}\n/**\n * The name of the current app as shown in the URL (not the display name).\n * @constant\n * @public\n */\n\n\nvar app = extractAppName();\n/**\n * The build number of the current app.\n * @constant\n * @public\n */\n\nexports.app = app;\nvar appBuild = get$CEntry('APP_BUILD');\n/**\n * A hash string of the current build.\n * @constant\n * @type {string}\n * @public\n */\n\nexports.appBuild = appBuild;\nvar buildNumber = get$CEntry('BUILD_NUMBER');\n/**\n * A incremented number configured per instance. Defaults to 0.\n * @constant\n * @public\n */\n\nexports.buildNumber = buildNumber;\nvar buildPushNumber = get$CEntry('BUILD_PUSH_NUMBER');\n/**\n * The full object of window.$C.\n * @constant\n * @public\n */\n\nexports.buildPushNumber = buildPushNumber;\nvar config = (0, _get[\"default\"])(root, '$C');\n/**\n * The current locale, such as \"en-US\".\n * @constant\n * @public\n */\n\nexports.config = config;\nvar locale = get$CEntry('LOCALE');\n/**\n * The port that Splunk Web is using. Defaults to 8000.\n * @constant\n * @public\n */\n\nexports.locale = locale;\nvar portNumber = get$CEntry('MRSPARKLE_PORT_NUMBER');\n/**\n * Splunk may not be running in the root directory, so the locale may not be the first element\n * in the pathname. If it is running in the root directory, ```rootPath``` is an empty\n * string. Otherwise it returns the root. For example, in the page\n * ```\n * http://splunk.domain.com/my-root-dir/en-US/app/search/search\n * ```\n * ```rootPath``` is set to ```'my-root-dir'```.\n * @constant\n * @public\n */\n\nexports.portNumber = portNumber;\nvar rootPath = get$CEntry('MRSPARKLE_ROOT_PATH');\n/**\n * The serialized Splunk Enterprise time zone data. This can be parsed for use in formatting Epoch times\n * on the client.\n * @constant\n * @public\n */\n\nexports.rootPath = rootPath;\nvar serverTimezoneInfo = get$CEntry('SERVER_ZONEINFO');\n/**\n * The Splunk Web proxing to splunkd, such as ```/en-US/splunkd/__raw```.\n * @constant\n * @public\n */\n\nexports.serverTimezoneInfo = serverTimezoneInfo;\nvar splunkdPath = get$CEntry('SPLUNKD_PATH');\n/**\n * The username of the current user.\n * @constant\n * @public\n */\n\nexports.splunkdPath = splunkdPath;\nvar username = get$CEntry('USERNAME');\n/**\n * The version label of splunkd.\n * @constant\n * @public\n */\n\nexports.username = username;\nvar versionLabel = get$CEntry('VERSION_LABEL');\nexports.versionLabel = versionLabel;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.withConfig = withConfig;\nexports.insertCacheBuster = exports.createURL = exports.createStaticURL = exports.createRESTURL = exports.createDocsURL = exports.createAppDocsURL = void 0;\n\nvar _querystring = require(\"querystring\");\n\nvar config = _interopRequireWildcard(require(\"./config\"));\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * A set of functions for generating Splunk Web URLs. They may be imported independently, such as:\n * ```\n * import { createURL, createStaticURL } from '@splunk/splunk-utils/url';\n * ```\n * @file\n */\nfunction withConfig(_ref) {\n var appBuild = _ref.appBuild,\n buildNumber = _ref.buildNumber,\n buildPushNumber = _ref.buildPushNumber,\n locale = _ref.locale,\n rootPath = _ref.rootPath,\n splunkdPath = _ref.splunkdPath;\n\n /**\n * Inserts a cache buster into the given path.\n *\n * @param path {String} - The path to inject the cache buster into.\n * @param configOptions {Object} - Config options including `appBuild`, `buildPushNumber`, and\n * `buildNumber`. Defaults to the values provided by `@splunk/splunk-utils/config`.\n * @return {String} Returns the path with the cache buster `/@9850fc87a5ee`.\n * @private\n */\n function insertCacheBuster(path) {\n var configOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var options = _objectSpread({\n appBuild: appBuild,\n buildPushNumber: buildPushNumber,\n buildNumber: buildNumber\n }, configOptions);\n\n var match = path.match(/(^|\\w\\w-\\w\\w\\/)static\\//);\n\n if (!match) {\n return path;\n }\n\n var insertPosition = match.index + match[0].length - 1;\n var isApp = path.match(/(^|\\w\\w-\\w\\w|)static\\/app/);\n var appBuildString = isApp ? \":\".concat(options.appBuild || 0) : '';\n var buildPushString = options.buildPushNumber ? \".\".concat(options.buildPushNumber) : '';\n var cacheBusterString = \"/@\".concat(options.buildNumber).concat(buildPushString).concat(appBuildString);\n var before = path.substr(0, insertPosition);\n var after = path.substr(insertPosition);\n return \"\".concat(before).concat(cacheBusterString).concat(after);\n }\n /**\n * Returns a full path for the current appserver location.\n * This is required for proxy compatiblity, localization, and cache busting.\n *\n * For example:\n * ```js\n * createURL('app/search/job'); // \"/splunk/en-US/app/search/job\"\n * createURL('/app/search/job'); // \"/splunk/en-US/app/search/job\"\n * createURL('app/search/job', {id:3, user:'me' }); // \"/splunk/en-US/app/search/job?id=3&user=me\"\n * ```\n *\n * Static paths are augmented with a cache buster:\n * ```js\n * createURL('/static/js/foo.js'); // \"/splunk/en-US/static/@12345/js/foo.js\"\n * createURL('/static/js/foo.js'); // \"/splunk/en-US/static/@12345.1/js/foo.js\"\n * createURL('/static/app/search/js/foo.js'); // \"/splunk/en-US/static/@12345.1:0/app/search/js/foo.js\"\n * ```\n *\n * @public\n * @param path {String}\n * @param [queryParams] {Object} An object of the query parameters.\n * @param configOptions {Object} - Config options including `appBuild`, `buildPushNumber`,\n * `buildNumber`, `rootPath`, and `locale`. Defaults to the values provided by\n * `@splunk/splunk-utils/config`.\n * @return {String} Returns a valid URL with correct root path, locale, and cache buster.\n * @alias createURL\n */\n\n\n function createURL(pathInput, queryParams) {\n var configOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var options = _objectSpread({\n appBuild: appBuild,\n buildPushNumber: buildPushNumber,\n buildNumber: buildNumber,\n rootPath: rootPath,\n locale: locale\n }, configOptions);\n\n var path = pathInput || '/';\n var query = queryParams ? \"?\".concat((0, _querystring.stringify)(queryParams)) : '';\n\n if (path.charAt(0) !== '/') {\n path = \"/\".concat(path);\n }\n\n path = \"\".concat(options.rootPath || '', \"/\").concat(options.locale).concat(path).concat(query);\n return insertCacheBuster(path, options);\n }\n /**\n * Prepends Splunk Web path information necessary to access a static asset. For example:\n * ```\n * createURL('fonts/roboto-regular-webfont.woff'); // \"/splunk/en-US/static/@12345/fonts/roboto-regular-webfont.woff\"\n * createURL('app/search/fonts/roboto-regular-webfont.woff'); // \"/splunk/en-US/static/@12345.1:0/app/search/fonts/roboto-regular-webfont.woff\"\n * ```\n * @public\n * @param {String} path - A path to a static resource.\n * @param [queryParams] {Object} An object of the query parameters.\n * @param configOptions {Object} - Config options including `appBuild`, `buildPushNumber`,\n * `buildNumber`, `rootPath`, and `locale`. Defaults to the values provided by\n * `@splunk/splunk-utils/config`.\n * @return {String} Returns a valid URL with correct root path, locale, and cache buster.\n * @alias createStaticURL\n */\n\n\n function createStaticURL(path) {\n for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n\n return createURL.apply(void 0, [\"static/\".concat(path)].concat(rest));\n }\n /**\n * Creates a fully qualified URL for the specified endpoint.\n * For example:\n * ```\n * createRESTURL('server/info'); // \"/en-US/splunkd/__raw/services/server/info\"\n * createRESTURL('saved/searches', {app: 'search'}); // \"/en-US/splunkd/__raw/servicesNS/-/search/saved/searches\"\n * ```\n * @public\n * @param {String} endpoint - An endpoint to a REST API.\n * @param {Object} options\n * @param {String} [options.app] - App namespace to use.\n * @param {String} [options.owner] - User namespace to use.\n * @param {Sting} [options.sharing] - Must be one of [ '' | 'app' | 'global' | 'system' ].\n * @param {Object} [configOptions] - Config options including `splunkdPath`. Defaults to the value\n * provided by `@splunk/splunk-utils/config`.\n * @return {String} The URL of the REST API endpoint.\n * @alias createRESTURL\n */\n\n\n function createRESTURL(endpoint) {\n var namespaceOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var configOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n // Return the endpoint if it's a full path.\n if (/^http[s]?:\\/\\//.test(endpoint)) {\n return endpoint;\n }\n\n var basePath = configOptions.splunkdPath || splunkdPath || ''; // If it's an absolute path,\n\n if (/^\\/.*/.test(endpoint)) {\n // Append the splunkdPath if the endpoint includes services. Otherwise, return the endpoint.\n return /^\\/services/.test(endpoint) ? \"\".concat(basePath).concat(endpoint) : endpoint;\n } // If neither an app nor owner is provided, use /services/ endpoint.\n\n\n if (!namespaceOptions.app && !namespaceOptions.owner) {\n return \"\".concat(basePath, \"/services/\").concat(endpoint);\n } // Build a namespaced path.\n\n\n var owner;\n\n if (namespaceOptions.sharing) {\n owner = 'nobody';\n } else if (namespaceOptions.owner) {\n owner = encodeURIComponent(namespaceOptions.owner);\n } else {\n owner = '-';\n }\n\n var app;\n\n if (namespaceOptions.sharing === 'system') {\n app = 'system';\n } else if (namespaceOptions.app) {\n app = encodeURIComponent(namespaceOptions.app);\n } else {\n app = '-';\n }\n\n return \"\".concat(basePath, \"/servicesNS/\").concat(owner, \"/\").concat(app, \"/\").concat(endpoint);\n }\n /** Create docs URL private method.\n * @param {Object} [params]\n * @private\n */\n\n\n function createDocsURLFromParams(params, configOptions) {\n return createURL('/help', params, configOptions);\n }\n /** Create docs URL using location string.\n * For example:\n * ```\n * createDocsURL('learnmore.timerange.picker'); // \"/en-US/help?location=learnmore.timerange.picker\"\n * ```\n * @public\n * @param {String} location - Required.\n * @return {String} The URL of the Splunk help document.\n * @alias createDocsURL\n */\n\n\n function createDocsURL(location, configOptions) {\n return createDocsURLFromParams({\n location: location\n }, configOptions);\n }\n /** Create app docs URL using location string, which needs to add [appName:appVersion] prefix before the location string.\n * For example:\n * ```\n * createAppDocsURL('learnmore.timerange.picker', { appName: 'splunk_app_aws', appVersion: '5.0.3'}); // \"/en-US/help?location=learnmore.timerange.picker\"\n * ```\n * @public\n * @param {String} location - Required.\n * @param {Object} options - Required.\n * @param {String} options.appName - App name.\n * @param {String} options.appVersion - App version.\n * @return {String} The URL of the Splunk app help document.\n * @alias createAppDocsURL\n */\n\n\n function createAppDocsURL(location, _ref2, configOptions) {\n var appName = _ref2.appName,\n appVersion = _ref2.appVersion;\n return createDocsURLFromParams({\n location: \"[\".concat(appName, \":\").concat(appVersion, \"]\").concat(location)\n }, configOptions);\n }\n\n return {\n createAppDocsURL: createAppDocsURL,\n createDocsURL: createDocsURL,\n createRESTURL: createRESTURL,\n createStaticURL: createStaticURL,\n createURL: createURL,\n insertCacheBuster: insertCacheBuster\n };\n}\n\nvar _withConfig = withConfig(config),\n createAppDocsURL = _withConfig.createAppDocsURL,\n createDocsURL = _withConfig.createDocsURL,\n createRESTURL = _withConfig.createRESTURL,\n createStaticURL = _withConfig.createStaticURL,\n createURL = _withConfig.createURL,\n insertCacheBuster = _withConfig.insertCacheBuster;\n\nexports.insertCacheBuster = insertCacheBuster;\nexports.createURL = createURL;\nexports.createStaticURL = createStaticURL;\nexports.createRESTURL = createRESTURL;\nexports.createDocsURL = createDocsURL;\nexports.createAppDocsURL = createAppDocsURL;","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (t, r) => {\n /******/ for (var o in r) {\n /******/ if (e.o(r, o) && !e.o(t, o)) {\n /******/ Object.defineProperty(t, o, {\n enumerable: true,\n get: r[o]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var t = {};\n e.r(t);\n /* harmony export */ e.d(t, {\n /* harmony export */ TOAST_POSITIONS: () => /* binding */ o\n /* harmony export */ ,\n TOAST_TYPES: () => /* binding */ r\n /* harmony export */ });\n var r = {\n INFO: \"info\",\n WARNING: \"warning\",\n SUCCESS: \"success\",\n ERROR: \"error\"\n };\n var o = {\n TOP_LEFT: \"top-left\",\n TOP_CENTER: \"top-center\",\n TOP_RIGHT: \"top-right\",\n BOTTOM_LEFT: \"bottom-left\",\n BOTTOM_CENTER: \"bottom-center\",\n BOTTOM_RIGHT: \"bottom-right\"\n };\n module.exports = t;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (t, r) => {\n /******/ for (var n in r) {\n /******/ if (e.o(r, n) && !e.o(t, n)) {\n /******/ Object.defineProperty(t, n, {\n enumerable: true,\n get: r[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var t = {};\n // ESM COMPAT FLAG\n e.r(t);\n // EXPORTS\n e.d(t, {\n default: () => /* binding */ S,\n makeCreateToast: () => /* binding */ w\n });\n // CONCATENATED MODULE: external \"@splunk/ui-utils/id\"\n const r = require(\"@splunk/ui-utils/id\");\n // CONCATENATED MODULE: external \"events\"\n const n = require(\"events\");\n // CONCATENATED MODULE: ./src/Toaster.js\n function o(e) {\n \"@babel/helpers - typeof\";\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n o = function e(t) {\n return typeof t;\n };\n } else {\n o = function e(t) {\n return t && typeof Symbol === \"function\" && t.constructor === Symbol && t !== Symbol.prototype ? \"symbol\" : typeof t;\n };\n }\n return o(e);\n }\n function i(e, t) {\n var r = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n if (t) n = n.filter((function(t) {\n return Object.getOwnPropertyDescriptor(e, t).enumerable;\n }));\n r.push.apply(r, n);\n }\n return r;\n }\n function u(e) {\n for (var t = 1; t < arguments.length; t++) {\n var r = arguments[t] != null ? arguments[t] : {};\n if (t % 2) {\n i(Object(r), true).forEach((function(t) {\n O(e, t, r[t]);\n }));\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(e, Object.getOwnPropertyDescriptors(r));\n } else {\n i(Object(r)).forEach((function(t) {\n Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(r, t));\n }));\n }\n }\n return e;\n }\n function a(e, t) {\n if (!(e instanceof t)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function c(e, t) {\n for (var r = 0; r < t.length; r++) {\n var n = t[r];\n n.enumerable = n.enumerable || false;\n n.configurable = true;\n if (\"value\" in n) n.writable = true;\n Object.defineProperty(e, n.key, n);\n }\n }\n function f(e, t, r) {\n if (t) c(e.prototype, t);\n if (r) c(e, r);\n return e;\n }\n function l(e, t) {\n if (typeof t !== \"function\" && t !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n e.prototype = Object.create(t && t.prototype, {\n constructor: {\n value: e,\n writable: true,\n configurable: true\n }\n });\n if (t) s(e, t);\n }\n function s(e, t) {\n s = Object.setPrototypeOf || function e(t, r) {\n t.__proto__ = r;\n return t;\n };\n return s(e, t);\n }\n function p(e) {\n var t = v();\n return function r() {\n var n = h(e), o;\n if (t) {\n var i = h(this).constructor;\n o = Reflect.construct(n, arguments, i);\n } else {\n o = n.apply(this, arguments);\n }\n return y(this, o);\n };\n }\n function y(e, t) {\n if (t && (o(t) === \"object\" || typeof t === \"function\")) {\n return t;\n }\n return b(e);\n }\n function b(e) {\n if (e === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return e;\n }\n function v() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], (function() {})));\n return true;\n } catch (e) {\n return false;\n }\n }\n function h(e) {\n h = Object.setPrototypeOf ? Object.getPrototypeOf : function e(t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n };\n return h(e);\n }\n function O(e, t, r) {\n if (t in e) {\n Object.defineProperty(e, t, {\n value: r,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n e[t] = r;\n }\n return e;\n }\n var m = \"toast_create\";\n var d = 5e3;\n var j = [];\n var g = false;\n /**\n * Callback function used to bind a Toaster instance to the create function\n * which can then be passed props as parameters to create toasts.\n */ var w = function e(t) {\n return function(e) {\n t.create(e);\n };\n };\n /**\n * The Toaster component is a singleton responsible for validating and\n * publishing received toast payloads from the sender to the ToastMessages\n * component, which listens to the Toaster.\n */ var P = function(e) {\n l(n, e);\n var t = p(n);\n function n() {\n var e;\n a(this, n);\n for (var r = arguments.length, o = new Array(r), i = 0; i < r; i++) {\n o[i] = arguments[i];\n }\n e = t.call.apply(t, [ this ].concat(o));\n O(b(e), \"validateToastProps\", (function(e) {\n if (!e.message) {\n return \"No toast message\";\n }\n if (!e.type) {\n return \"No toast type\";\n }\n if (e.action) {\n if (!e.action.label) {\n return \"Toast with action has no label\";\n }\n if (!e.action.callback) {\n return \"Toast with action has no callback\";\n }\n }\n return null;\n }));\n return e;\n }\n f(n, [ {\n key: \"create\",\n value: function e(t) {\n var n = this.validateToastProps(t);\n if (n) {\n // eslint-disable-next-line no-console\n console.warn(\"Cannot create toast: \".concat(n));\n return;\n }\n var o = u(u({}, t), {}, {\n id: (0, r.createGUID)(),\n timeOut: t.timeout || d\n });\n this.emitCreate(o);\n }\n }, {\n key: \"emitCreate\",\n value: function e(t) {\n if (g) {\n this.emit(m, t);\n } else {\n j.push(t);\n }\n }\n }, {\n key: \"addCreateListener\",\n value: function e(t) {\n var r = this;\n g = true;\n this.addListener(m, t);\n j.forEach((function(e) {\n r.emitCreate(e);\n }));\n j = [];\n }\n }, {\n key: \"removeCreateListener\",\n value: function e(t) {\n g = false;\n this.removeListener(m, t);\n }\n } ]);\n return n;\n }(n.EventEmitter);\n /* harmony default export */ const S = new P;\n module.exports = t;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (r, t) => {\n /******/ for (var n in t) {\n /******/ if (e.o(t, n) && !e.o(r, n)) {\n /******/ Object.defineProperty(r, n, {\n enumerable: true,\n get: t[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var r = {};\n // ESM COMPAT FLAG\n e.r(r);\n // EXPORTS\n e.d(r, {\n Spring: () => /* reexport */ l,\n Transition: () => /* reexport */ f\n });\n // CONCATENATED MODULE: external \"react-spring\"\n const t = require(\"react-spring\");\n // CONCATENATED MODULE: external \"@splunk/react-ui/AnimationToggle\"\n const n = require(\"@splunk/react-ui/AnimationToggle\");\n // CONCATENATED MODULE: ./src/Animation/Animation.tsx\n function i(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n if (r) n = n.filter((function(r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n }));\n t.push.apply(t, n);\n }\n return t;\n }\n function o(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = arguments[r] != null ? arguments[r] : {};\n if (r % 2) {\n i(Object(t), true).forEach((function(r) {\n u(e, r, t[r]);\n }));\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(e, Object.getOwnPropertyDescriptors(t));\n } else {\n i(Object(t)).forEach((function(r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n }));\n }\n }\n return e;\n }\n function u(e, r, t) {\n if (r in e) {\n Object.defineProperty(e, r, {\n value: t,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n e[r] = t;\n }\n return e;\n }\n function c(e, r) {\n if (e == null) return {};\n var t = a(e, r);\n var n, i;\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n for (i = 0; i < o.length; i++) {\n n = o[i];\n if (r.indexOf(n) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(e, n)) continue;\n t[n] = e[n];\n }\n }\n return t;\n }\n function a(e, r) {\n if (e == null) return {};\n var t = {};\n var n = Object.keys(e);\n var i, o;\n for (o = 0; o < n.length; o++) {\n i = n[o];\n if (r.indexOf(i) >= 0) continue;\n t[i] = e[i];\n }\n return t;\n }\n /**\n * Wrappers to use in place of `Spring` and `Transition` from `react-spring`.\n * Uses `useAnimationToggle` to offer animation control.\n */ function l(e) {\n var r = e.children, i = e.immediate, u = c(e, [ \"children\", \"immediate\" ]);\n var a = (0, n.useAnimationToggle)();\n return r((0, t.useSpring)(o({\n immediate: i || a !== \"on\"\n }, u)));\n }\n function f(e) {\n var r = e.items, i = e.children, u = e.immediate, a = c(e, [ \"items\", \"children\", \"immediate\" ]);\n var l = (0, n.useAnimationToggle)();\n return (0, t.useTransition)(r, o({\n immediate: u || l !== \"on\"\n }, a))(i);\n }\n // CONCATENATED MODULE: ./src/Animation/index.ts\n module.exports = r;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = r => {\n /******/ var t = r && r.__esModule ? \n /******/ () => r[\"default\"]\n /******/ : () => r\n /******/;\n e.d(t, {\n a: t\n });\n /******/ return t;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (r, t) => {\n /******/ for (var n in t) {\n /******/ if (e.o(t, n) && !e.o(r, n)) {\n /******/ Object.defineProperty(r, n, {\n enumerable: true,\n get: t[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var r = {};\n // ESM COMPAT FLAG\n e.r(r);\n // EXPORTS\n e.d(r, {\n AnimationToggleContext: () => /* reexport */ u,\n AnimationToggleProvider: () => /* reexport */ h,\n default: () => /* reexport */ b,\n useAnimationToggle: () => /* reexport */ v\n });\n // CONCATENATED MODULE: external \"react\"\n const t = require(\"react\");\n var n = e.n(t);\n // CONCATENATED MODULE: external \"prop-types\"\n const o = require(\"prop-types\");\n var a = e.n(o);\n // CONCATENATED MODULE: ./src/AnimationToggle/AnimationToggleContext.tsx\n /**\n * A React context used to control whether animations are enabled or disabled.\n * Prefer `useAnimationToggle` or `AnimationToggle` over consuming this context\n * directly, since they take the user's reduced motion preference into account.\n * This context should only be used if direct access to the animation setting\n * is required. The context type is `Boolean` and defaults to `true`.\n *\n * @public\n */\n var u = n().createContext(true);\n // CONCATENATED MODULE: ./src/AnimationToggle/useAnimationToggle.tsx\n function i(e, r) {\n return s(e) || l(e, r) || c(e, r) || f();\n }\n function f() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n function c(e, r) {\n if (!e) return;\n if (typeof e === \"string\") return d(e, r);\n var t = Object.prototype.toString.call(e).slice(8, -1);\n if (t === \"Object\" && e.constructor) t = e.constructor.name;\n if (t === \"Map\" || t === \"Set\") return Array.from(e);\n if (t === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)) return d(e, r);\n }\n function d(e, r) {\n if (r == null || r > e.length) r = e.length;\n for (var t = 0, n = new Array(r); t < r; t++) {\n n[t] = e[t];\n }\n return n;\n }\n function l(e, r) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(e))) return;\n var t = [];\n var n = true;\n var o = false;\n var a = undefined;\n try {\n for (var u = e[Symbol.iterator](), i; !(n = (i = u.next()).done); n = true) {\n t.push(i.value);\n if (r && t.length === r) break;\n }\n } catch (e) {\n o = true;\n a = e;\n } finally {\n try {\n if (!n && u[\"return\"] != null) u[\"return\"]();\n } finally {\n if (o) throw a;\n }\n }\n return t;\n }\n function s(e) {\n if (Array.isArray(e)) return e;\n }\n /**\n * A React hook that combines the animation setting (see `AnimationToggleProvider`)\n * and the user's reduced motion preference into one value.\n *\n * @returns {string} `'off'` if animations are disabled. If animations are enabled\n * and the user prefers reduced motion, `'reduced'` is returned, `'on'` otherwise.\n * @public\n */ var v = function e() {\n var r = (0, t.useContext)(u);\n var n = \"screen and (prefers-reduced-motion: reduce)\";\n var o = typeof window !== \"undefined\" && !!window.matchMedia;\n var a = (0, t.useState)(o && window.matchMedia(n).matches), f = i(a, 2), c = f[0], d = f[1];\n (0, t.useEffect)((function() {\n if (o) {\n var e = window.matchMedia(n);\n var r = function r() {\n d(e.matches);\n };\n e.addListener(r);\n return function() {\n e.removeListener(r);\n };\n }\n return undefined;\n }), [ o, n ]);\n if (r) {\n return c ? \"reduced\" : \"on\";\n }\n return \"off\";\n };\n // CONCATENATED MODULE: ./src/AnimationToggle/AnimationToggle.tsx\n var m = function e(r) {\n return typeof r === \"function\" ? r() : r;\n };\n var y = {\n on: a().oneOfType([ a().node, a().func ]).isRequired,\n off: a().oneOfType([ a().node, a().func ]).isRequired,\n reduced: a().oneOfType([ a().node, a().func ])\n };\n /**\n * Used to allow animation to be externally controlled through a provider or user preference.\n */ function p(e) {\n var r = e.on, t = e.off, o = e.reduced;\n var a = v();\n if (a === \"on\") {\n \n return n().createElement(n().Fragment, null, m(r));\n }\n if (a === \"reduced\" && o) {\n \n return n().createElement(n().Fragment, null, m(o));\n }\n \n return n().createElement(n().Fragment, null, m(t));\n // react-docgen ignores components that don't use JSX/React.createElement.\n // the following line forces detection:\n \n return n().createElement(n().Fragment, null);\n // eslint-disable-line no-unreachable\n }\n p.propTypes = y;\n /* harmony default export */ const b = p;\n // CONCATENATED MODULE: ./src/AnimationToggle/AnimationToggleProvider.tsx\n var g = {\n children: a().node,\n enabled: a().bool\n };\n /**\n * Used to provide a setting to enable or disable animation.\n */ var h = function e(r) {\n var t = r.children, o = r.enabled, a = o === void 0 ? false : o;\n \n return n().createElement(u.Provider, {\n value: a\n }, t);\n };\n h.propTypes = g;\n // CONCATENATED MODULE: ./src/AnimationToggle/index.ts\n module.exports = r;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = n => {\n /******/ var t = n && n.__esModule ? \n /******/ () => n[\"default\"]\n /******/ : () => n\n /******/;\n e.d(t, {\n a: t\n });\n /******/ return t;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (n, t) => {\n /******/ for (var r in t) {\n /******/ if (e.o(t, r) && !e.o(n, r)) {\n /******/ Object.defineProperty(n, r, {\n enumerable: true,\n get: t[r]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, n) => Object.prototype.hasOwnProperty.call(e, n)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var n = {};\n // ESM COMPAT FLAG\n e.r(n);\n // EXPORTS\n e.d(n, {\n default: () => /* reexport */ v\n });\n // CONCATENATED MODULE: external \"react\"\n const t = require(\"react\");\n var r = e.n(t);\n // CONCATENATED MODULE: external \"prop-types\"\n const i = require(\"prop-types\");\n var l = e.n(i);\n // CONCATENATED MODULE: external \"styled-components\"\n const o = require(\"styled-components\");\n var a = e.n(o);\n // CONCATENATED MODULE: external \"@splunk/themes\"\n const f = require(\"@splunk/themes\");\n // CONCATENATED MODULE: ./src/Box/BoxStyles.ts\n var c = a().div.withConfig({\n displayName: \"BoxStyles__Styled\",\n componentId: \"sc-1h4b5f6-0\"\n })([ \"\", \";align-items:stretch;align-content:stretch;flex-flow:row nowrap;flex-grow:0;flex-shrink:0;justify-content:flex-start;width:auto;max-width:100%;@media all and (-ms-high-contrast:none){max-width:calc(100% - 0.01px);}&[data-inline]{display:inline-block;vertical-align:middle;}&[data-flex]{display:flex;}&[data-flex][data-inline]{display:inline-flex;}\" ], f.mixins.reset(\"block\"));\n // CONCATENATED MODULE: ./src/Box/Box.tsx\n function d() {\n d = Object.assign || function(e) {\n for (var n = 1; n < arguments.length; n++) {\n var t = arguments[n];\n for (var r in t) {\n if (Object.prototype.hasOwnProperty.call(t, r)) {\n e[r] = t[r];\n }\n }\n }\n return e;\n };\n return d.apply(this, arguments);\n }\n function s(e, n) {\n if (e == null) return {};\n var t = u(e, n);\n var r, i;\n if (Object.getOwnPropertySymbols) {\n var l = Object.getOwnPropertySymbols(e);\n for (i = 0; i < l.length; i++) {\n r = l[i];\n if (n.indexOf(r) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(e, r)) continue;\n t[r] = e[r];\n }\n }\n return t;\n }\n function u(e, n) {\n if (e == null) return {};\n var t = {};\n var r = Object.keys(e);\n var i, l;\n for (l = 0; l < r.length; l++) {\n i = r[l];\n if (n.indexOf(i) >= 0) continue;\n t[i] = e[i];\n }\n return t;\n }\n var p = {\n children: l().node,\n elementRef: l().oneOfType([ l().func, l().object ]),\n flex: l().bool,\n inline: l().bool\n };\n /**\n * Box is a utility component to normalize and abstract common layout styles.\n */ function y(e) {\n var n = e.children, t = e.elementRef, i = e.flex, l = i === void 0 ? false : i, o = e.inline, a = o === void 0 ? false : o, f = s(e, [ \"children\", \"elementRef\", \"flex\", \"inline\" ]);\n \n return r().createElement(c, d({\n ref: t\n }, f, {\n \"data-inline\": a || undefined,\n \"data-flex\": l || undefined\n }), n);\n }\n y.propTypes = p;\n /* harmony default export */ const v = y;\n // CONCATENATED MODULE: ./src/Box/index.ts\n module.exports = n;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = t => {\n /******/ var n = t && t.__esModule ? \n /******/ () => t[\"default\"]\n /******/ : () => t\n /******/;\n e.d(n, {\n a: n\n });\n /******/ return n;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (t, n) => {\n /******/ for (var r in n) {\n /******/ if (e.o(n, r) && !e.o(t, r)) {\n /******/ Object.defineProperty(t, r, {\n enumerable: true,\n get: n[r]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var t = {};\n // ESM COMPAT FLAG\n e.r(t);\n // EXPORTS\n e.d(t, {\n default: () => /* reexport */ U\n });\n // CONCATENATED MODULE: external \"react\"\n const n = require(\"react\");\n var r = e.n(n);\n // CONCATENATED MODULE: external \"prop-types\"\n const i = require(\"prop-types\");\n var a = e.n(i);\n // CONCATENATED MODULE: external \"lodash/isString\"\n const o = require(\"lodash/isString\");\n var l = e.n(o);\n // CONCATENATED MODULE: external \"@splunk/react-ui/Dropdown\"\n const c = require(\"@splunk/react-ui/Dropdown\");\n // CONCATENATED MODULE: external \"@splunk/ui-utils/style\"\n const s = require(\"@splunk/ui-utils/style\");\n // CONCATENATED MODULE: external \"styled-components\"\n const p = require(\"styled-components\");\n var u = e.n(p);\n // CONCATENATED MODULE: external \"@splunk/react-ui/ButtonSimple\"\n const f = require(\"@splunk/react-ui/ButtonSimple\");\n var d = e.n(f);\n // CONCATENATED MODULE: external \"@splunk/themes\"\n const m = require(\"@splunk/themes\");\n // CONCATENATED MODULE: ./src/Button/ButtonStyles.ts\n var v = u().span.withConfig({\n displayName: \"ButtonStyles__StyledIcon\",\n componentId: \"eqxqs2-0\"\n })([ \"display:flex;align-items:center;flex-shrink:0;font-size:\", \";\", \";\" ], (0, \n m.pick)({\n enterprise: \"inherit\",\n prisma: {\n comfortable: \"21px\",\n compact: \"16px\"\n }\n }), (0, m.pickVariant)(\"$isIconOnly\", {\n false: {\n enterprise: (0, p.css)([ \"padding-right:3px;\" ]),\n prisma: (0, p.css)([ \"padding-right:8px;\" ])\n }\n }));\n var y = u()(d()).withConfig({\n displayName: \"ButtonStyles__StyledButtonSimple\",\n componentId: \"eqxqs2-1\"\n })([ \"text-align:center;vertical-align:middle;text-decoration:none;white-space:nowrap;flex-grow:1;min-width:0;max-width:100%;line-height:\", \";min-height:\", \";padding:\", \";\", \" \", \" &[data-inline]{display:inline-block;vertical-align:middle;\", \"}[data-inline] + &&[data-inline]{margin-bottom:0;\", \"}\" ], m.variables.lineHeight, m.variables.inputHeight, (0, \n m.pick)({\n enterprise: {\n comfortable: \"5px 14px\",\n compact: \"2px 14px\"\n },\n prisma: {\n comfortable: function e(t) {\n var n = t.$hasPrismaIcon;\n return n ? \"7px 18px\" : \"9px 18px\";\n },\n compact: function e(t) {\n var n = t.$isMenu;\n return n ? \"5px 8px 5px 16px\" : \"5px 16px\";\n }\n }\n }), (function(e) {\n var t = e.$inline, n = e.append, r = e.prepend;\n return !t && !n && !r && (0, p.css)([ \"width:100%;\" ]);\n }), (function(e) {\n var t = e.$isIconOnly;\n return t && (0, p.css)([ \"box-sizing:border-box;padding:\", \";width:\", \";min-width:\", \";\" ], (0, \n m.pick)({\n enterprise: {\n comfortable: \"0 5px\",\n compact: \"0 2px\"\n },\n prisma: {\n comfortable: (0, p.css)([ \"0px calc(\", \" / 2 - 1px)\" ], m.variables.inputHeight),\n compact: (0, p.css)([ \"0px calc(\", \" / 2 - 1px)\" ], m.variables.inputHeight)\n }\n }), m.variables.inputHeight, m.variables.inputHeight);\n }), (function(e) {\n var t = e.$isIconOnly;\n return t ? null : (0, p.css)([ \"width:auto;\" ]);\n }), (function(e) {\n var t = e.prepend;\n return !t && (0, p.css)([ \"margin-left:\", \";\" ], (0, m.pick)({\n enterprise: m.variables.spacingHalf,\n prisma: m.variables.spacingSmall\n }));\n }));\n var b = u().span.withConfig({\n displayName: \"ButtonStyles__StyledContentWrapper\",\n componentId: \"eqxqs2-2\"\n })([ \"display:flex;flex-direction:row;justify-content:center;align-items:center;max-width:100%;padding:\", \";\" ], (0, \n m.pick)({\n enterprise: function e(t) {\n var n = t.$error;\n if (n) {\n return \"1px\";\n }\n return (0, m.pickVariant)(\"$appearance\", {\n default: \"0\",\n secondary: \"0\",\n destructive: \"1px\",\n primary: \"1px\",\n pill: \"0\",\n toggle: \"0\",\n // === default\n flat: \"0\"\n });\n },\n prisma: (0, m.pickVariant)(\"$appearance\", {\n default: 0,\n secondary: \"1px 0\",\n primary: \"1px 0\",\n destructive: \"1px 0\",\n pill: \"1px 0\",\n // === secondary\n toggle: \"0\",\n flat: \"1px 0\"\n })\n }));\n var h = u().span.withConfig({\n displayName: \"ButtonStyles__StyledLabel\",\n componentId: \"eqxqs2-3\"\n })([ \"text-overflow:ellipsis;overflow:hidden;flex:0 1 auto;&:not(:last-child){padding-right:\", \";}\", \"\" ], (0, \n m.pick)({\n enterprise: \"3px\",\n prisma: \"10px\"\n }), (function(e) {\n var t = e.$isMenu;\n return t && (0, p.css)([ \"flex:1 1 auto;text-align:left;\" ]);\n }));\n var x = u().span.withConfig({\n displayName: \"ButtonStyles__StyledCaretWrapper\",\n componentId: \"eqxqs2-4\"\n })([ \"display:inline-flex;\", \"\" ], (0, m.pickVariant)(\"$disabled\", {\n false: {\n prisma: (0, m.pickVariant)(\"$primary\", {\n true: (0, p.css)([ \"color:\", \";\" ], m.variables.contentColorInverted),\n false: (0, p.css)([ \"color:\", \";\", \":hover > * > &,\", \":active > * > &,{color:\", \";}\" ], m.variables.contentColorDefault, \n /* sc-sel */\n y, \n /* sc-sel */\n y, m.variables.contentColorDefault)\n })\n }\n }));\n // CONCATENATED MODULE: external \"@splunk/react-icons/CaretSmallDown\"\n const g = require(\"@splunk/react-icons/CaretSmallDown\");\n var w = e.n(g);\n // CONCATENATED MODULE: external \"@splunk/react-icons/enterprise/Caret\"\n const k = require(\"@splunk/react-icons/enterprise/Caret\");\n var S = e.n(k);\n // CONCATENATED MODULE: ./src/Button/icons/CaretSmallDown.tsx\n var O = function e() {\n var t = (0, m.useSplunkTheme)(), n = t.isEnterprise, i = t.isCompact;\n var a = i ? \"20px\" : \"24px\";\n return n ? r().createElement(S(), {\n screenReaderText: null,\n hideDefaultTooltip: true,\n size: .5\n }) : r().createElement(w(), {\n height: a,\n width: a\n });\n };\n /* harmony default export */ const C = O;\n // CONCATENATED MODULE: external \"@splunk/react-icons/ArrowSquareTopRightInset\"\n const q = require(\"@splunk/react-icons/ArrowSquareTopRightInset\");\n var _ = e.n(q);\n // CONCATENATED MODULE: external \"@splunk/react-icons/enterprise/External\"\n const $ = require(\"@splunk/react-icons/enterprise/External\");\n var I = e.n($);\n // CONCATENATED MODULE: external \"@splunk/ui-utils/i18n\"\n const E = require(\"@splunk/ui-utils/i18n\");\n // CONCATENATED MODULE: ./src/Button/icons/External.tsx\n var P = (0, E._)(\"Open externally\");\n function j() {\n var e = (0, m.useSplunkTheme)(), t = e.isEnterprise, n = e.isCompact;\n var i = n ? \"20px\" : \"24px\";\n return t ? r().createElement(I(), {\n screenReaderText: P,\n size: .8,\n style: {\n verticalAlign: \"baseline\"\n }\n }) : r().createElement(_(), {\n \"aria-label\": P,\n height: i,\n width: i\n }, r().createElement(\"title\", null, P));\n }\n /* harmony default export */ const N = j;\n // CONCATENATED MODULE: ./src/Button/Button.tsx\n function M(e) {\n \"@babel/helpers - typeof\";\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n M = function e(t) {\n return typeof t;\n };\n } else {\n M = function e(t) {\n return t && typeof Symbol === \"function\" && t.constructor === Symbol && t !== Symbol.prototype ? \"symbol\" : typeof t;\n };\n }\n return M(e);\n }\n function T() {\n T = Object.assign || function(e) {\n for (var t = 1; t < arguments.length; t++) {\n var n = arguments[t];\n for (var r in n) {\n if (Object.prototype.hasOwnProperty.call(n, r)) {\n e[r] = n[r];\n }\n }\n }\n return e;\n };\n return T.apply(this, arguments);\n }\n function R(e, t) {\n if (!(e instanceof t)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function B(e, t) {\n for (var n = 0; n < t.length; n++) {\n var r = t[n];\n r.enumerable = r.enumerable || false;\n r.configurable = true;\n if (\"value\" in r) r.writable = true;\n Object.defineProperty(e, r.key, r);\n }\n }\n function D(e, t, n) {\n if (t) B(e.prototype, t);\n if (n) B(e, n);\n return e;\n }\n function H(e, t) {\n if (typeof t !== \"function\" && t !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n e.prototype = Object.create(t && t.prototype, {\n constructor: {\n value: e,\n writable: true,\n configurable: true\n }\n });\n if (t) V(e, t);\n }\n function V(e, t) {\n V = Object.setPrototypeOf || function e(t, n) {\n t.__proto__ = n;\n return t;\n };\n return V(e, t);\n }\n function z(e) {\n var t = L();\n return function n() {\n var r = F(e), i;\n if (t) {\n var a = F(this).constructor;\n i = Reflect.construct(r, arguments, a);\n } else {\n i = r.apply(this, arguments);\n }\n return A(this, i);\n };\n }\n function A(e, t) {\n if (t && (M(t) === \"object\" || typeof t === \"function\")) {\n return t;\n }\n return W(e);\n }\n function W(e) {\n if (e === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return e;\n }\n function L() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], (function() {})));\n return true;\n } catch (e) {\n return false;\n }\n }\n function F(e) {\n F = Object.setPrototypeOf ? Object.getPrototypeOf : function e(t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n };\n return F(e);\n }\n function G(e, t, n) {\n if (t in e) {\n Object.defineProperty(e, t, {\n value: n,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n e[t] = n;\n }\n return e;\n }\n var J = {\n action: a().string,\n appearance: a().oneOf([ \"default\", \"secondary\", \"primary\", \"destructive\", \"pill\", \"toggle\", \"flat\" ]),\n append: a().bool,\n children: a().node,\n /** @private An additional className to add to the button. */\n classNamePrivate: a().string,\n disabled: a().oneOfType([ a().bool, a().oneOf([ \"dimmed\" ]) ]),\n elementRef: a().oneOfType([ a().func, a().object ]),\n error: a().bool,\n icon: a().node,\n inline: a().bool,\n isMenu: a().bool,\n label: a().node,\n onClick: a().func,\n openInNewContext: a().bool,\n prepend: a().bool,\n selected: a().bool,\n to: a().string,\n value: a().any\n };\n var K = {\n appearance: \"default\",\n append: false,\n disabled: false,\n error: false,\n inline: true,\n isMenu: false,\n openInNewContext: false,\n prepend: false,\n selected: false\n };\n var Q = function(e) {\n H(n, e);\n var t = z(n);\n // @docs-props-type ButtonPropsBase\n function n(e) {\n var r;\n R(this, n);\n r = t.call(this, e);\n G(W(r), \"component\", null);\n G(W(r), \"handleClick\", (function(e) {\n var t = r.props, n = t.label, i = t.icon, a = t.value, o = t.action, l = t.onClick;\n l === null || l === void 0 ? void 0 : l(e, {\n label: n,\n icon: i,\n value: a,\n action: o\n });\n }));\n G(W(r), \"handleMount\", (function(e) {\n r.component = e;\n }));\n if (false) {}\n return r;\n }\n D(n, [ {\n key: \"focus\",\n /**\n * Places focus on the button.\n */\n value: function e() {\n var t;\n (t = this.component) === null || t === void 0 ? void 0 : t.focus();\n }\n }, {\n key: \"render\",\n value: function e() {\n var t = this.props, n = t.action, i = t.appearance, a = t.append, o = t.className, c = t.classNamePrivate, p = t.disabled, u = t.error, f = t.icon, d = t.inline, m = t.isMenu, g = t.onClick, w = t.openInNewContext, k = t.prepend, S = t.to, O = t.value;\n var q = this.props, _ = q.children, $ = q.label;\n if (!$ && l()(_)) {\n $ = _;\n _ = null;\n }\n var I = !!(f && !$ && !m && !_);\n var E = S && w || m || !!f;\n \n return r().createElement(y, T({\n \"aria-disabled\": p === \"dimmed\" || undefined,\n \"aria-haspopup\": m || undefined,\n \"aria-invalid\": u || undefined,\n \"data-test\": \"button\"\n }, this.props, {\n className: (0, s.toClassName)(o, c),\n \"data-action\": n,\n \"data-inline\": d || null,\n disabled: p,\n append: a,\n prepend: k,\n $inline: d,\n $hasPrismaIcon: E,\n $isIconOnly: I,\n $isMenu: m,\n value: O,\n onClick: g && !p ? this.handleClick : undefined,\n ref: this.handleMount,\n openInNewContext: w,\n appearance: i\n }), r().createElement(b, {\n $appearance: i,\n $error: u\n }, f && r().createElement(v, {\n $isIconOnly: I\n }, f), $ && r().createElement(h, {\n \"data-test\": \"label\",\n $isMenu: m\n }, $), _, m && r().createElement(x, {\n $disabled: p,\n $primary: i === \"primary\"\n }, r().createElement(C, null)), w && r().createElement(N, null)));\n }\n } ]);\n return n;\n }(n.Component);\n G(Q, \"propTypes\", J);\n G(Q, \"defaultProps\", K);\n G(Q, c.legacyRefMode, true);\n /* harmony default export */ const U = Q;\n // CONCATENATED MODULE: ./src/Button/index.ts\n module.exports = t;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var r = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ r.n = e => {\n /******/ var o = e && e.__esModule ? \n /******/ () => e[\"default\"]\n /******/ : () => e\n /******/;\n r.d(o, {\n a: o\n });\n /******/ return o;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ r.d = (e, o) => {\n /******/ for (var a in o) {\n /******/ if (r.o(o, a) && !r.o(e, a)) {\n /******/ Object.defineProperty(e, a, {\n enumerable: true,\n get: o[a]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ r.o = (r, e) => Object.prototype.hasOwnProperty.call(r, e)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ r.r = r => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(r, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(r, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var e = {};\n // ESM COMPAT FLAG\n r.r(e);\n // EXPORTS\n r.d(e, {\n default: () => /* reexport */ Z\n });\n // CONCATENATED MODULE: external \"react\"\n const o = require(\"react\");\n var a = r.n(o);\n // CONCATENATED MODULE: external \"prop-types\"\n const i = require(\"prop-types\");\n var t = r.n(i);\n // CONCATENATED MODULE: external \"@splunk/ui-utils/i18n\"\n const s = require(\"@splunk/ui-utils/i18n\");\n // CONCATENATED MODULE: external \"@splunk/themes\"\n const l = require(\"@splunk/themes\");\n // CONCATENATED MODULE: external \"@splunk/react-ui/ScreenReaderContent\"\n const n = require(\"@splunk/react-ui/ScreenReaderContent\");\n var c = r.n(n);\n // CONCATENATED MODULE: external \"styled-components\"\n const d = require(\"styled-components\");\n var b = r.n(d);\n // CONCATENATED MODULE: external \"@splunk/react-ui/Clickable\"\n const v = require(\"@splunk/react-ui/Clickable\");\n var u = r.n(v);\n // CONCATENATED MODULE: ./src/ButtonSimple/prismaStyles.ts\n var p = (0, d.css)([ \"\", \" cursor:pointer;position:relative;border-radius:\", \";&:focus,&:hover{z-index:3;}\" ], l.mixins.reset(\"block\"), l.variables.borderRadius);\n /* Setting border-radius to 0.1px creates a rounded shadow, */ var f = (0, d.css)([ \"\", \" \", \"\" ], (function(r) {\n var e = r.$append;\n return e && (0, d.css)([ \"border-top-right-radius:0.1px;border-bottom-right-radius:0.1px;border-right:none;\" ]);\n }), (function(r) {\n var e = r.$prepend;\n return e && (0, d.css)([ \"border-top-left-radius:0.1px;border-bottom-left-radius:0.1px;\" ]);\n }));\n var g = (0, d.css)([ \"\", \" \", \" \", \" &:not([disabled],[aria-disabled='true']){color:\", \";transition:background-color 0.2s,border 0.2s,box-shadow 0.2s,text-decoration 0.2s;&:hover{background-color:\", \";border-color:\", \";\", \"}\", \" \", \" &:active{background-color:\", \";transition:none;}&:focus{background-color:\", \";&:active{background-color:\", \";}}}&[disabled],&[aria-disabled='true']{border-color:\", \";color:\", \";cursor:not-allowed;\", \"}&:not([disabled]){&:focus{\", \"}}\" ], p, (0, \n l.pickVariant)(\"$variant\", {\n prismaSecondary: (0, d.css)([ \"font-weight:\", \";\" ], l.variables.fontWeightSemiBold),\n prismaDefault: (0, d.css)([ \"border:1px solid \", \";font-weight:\", \";\" ], l.variables.interactiveColorBorder, l.variables.fontWeightSemiBold),\n prismaToggle: (0, d.css)([ \"border:1px solid \", \";font-weight:normal;\" ], l.variables.interactiveColorBorder)\n }), f, l.variables.contentColorActive, l.variables.interactiveColorOverlayHover, l.variables.interactiveColorBorderHover, (0, \n l.pickVariant)(\"$variant\", {\n prismaSecondary: (0, d.css)([ \"box-shadow:\", \";\" ], l.variables.hoverShadow),\n prismaDefault: (0, d.css)([ \"box-shadow:\", \";\" ], l.variables.hoverShadow)\n }), (function(r) {\n var e = r.$selected;\n return e && (0, d.css)([ \"background-color:\", \";border-color:\", \";&:hover{background-color:\", \";}\" ], l.variables.interactiveColorOverlaySelected, l.variables.interactiveColorBorderDisabled, l.mixins.overlayColors(l.variables.interactiveColorOverlaySelected, l.variables.interactiveColorOverlayHover));\n }), (function(r) {\n var e = r.$error;\n return e && (0, d.css)([ \"border-color:\", \";&:hover{border-color:\", \";}\" ], l.variables.accentColorNegative, l.variables.accentColorNegative);\n }), l.variables.interactiveColorOverlayActive, l.variables.interactiveColorOverlayHover, l.variables.interactiveColorOverlayActive, l.variables.interactiveColorBorderDisabled, l.variables.contentColorDisabled, (function(r) {\n var e = r.$selected;\n return e && (0, d.css)([ \"background-color:\", \";\" ], l.mixins.overlayColors(l.variables.interactiveColorBackgroundDisabled, l.variables.interactiveColorOverlaySelected));\n }), (0, l.pickVariant)(\"$variant\", {\n prismaSecondary: (0, d.css)([ \"box-shadow:\", \";\" ], l.variables.focusShadow),\n prismaDefault: (0, d.css)([ \"box-shadow:\", \";\" ], l.variables.focusShadow),\n prismaToggle: (0, d.css)([ \"border-color:\", \";\" ], l.variables.interactiveColorPrimary)\n }));\n var y = (0, d.css)([ \"&[disabled],&[aria-disabled='true']{border-color:\", \";color:\", \";background-color:\", \";cursor:not-allowed;\", \"}\" ], l.variables.interactiveColorBorderDisabled, l.variables.contentColorDisabled, l.variables.interactiveColorBackgroundDisabled, (function(r) {\n return r && (0, d.css)([ \"background-color:\", \";\" ], l.mixins.overlayColors(l.variables.interactiveColorBackgroundDisabled, l.variables.interactiveColorOverlaySelected));\n }));\n var h = (0, d.css)([ \"\", \" font-weight:\", \";border-radius:\", \";\", \" &:not([disabled],[aria-disabled='true']){color:\", \";transition:background-color 0.2s,box-shadow 0.2s,text-decoration 0.2s;background-color:\", \";&:hover,&:focus{background-color:\", \";}&:hover{box-shadow:\", \";}&:active{background-color:\", \";transition:none;}}&:not([disabled]){&:focus{box-shadow:\", \";}}\", \"\" ], p, l.variables.fontWeightSemiBold, l.variables.borderRadius, f, l.variables.contentColorInverted, (0, \n l.pickVariant)(\"$selected\", {\n false: (0, l.pickVariant)(\"$variant\", {\n prismaPrimary: l.variables.interactiveColorPrimary,\n prismaDestructive: l.variables.accentColorNegative\n }),\n true: (0, l.pickVariant)(\"$variant\", {\n prismaPrimary: l.mixins.overlayColors(l.variables.interactiveColorPrimary, l.variables.interactiveColorOverlaySelected),\n prismaDestructive: l.mixins.overlayColors(l.variables.accentColorNegative, l.variables.interactiveColorOverlaySelected)\n })\n }), (0, l.pickVariant)(\"$variant\", {\n prismaPrimary: l.mixins.overlayColors(l.variables.interactiveColorPrimary, l.variables.interactiveColorOverlayHover),\n prismaDestructive: l.mixins.overlayColors(l.variables.accentColorNegative, l.variables.interactiveColorOverlayHover)\n }), l.variables.hoverShadow, (0, l.pickVariant)(\"$variant\", {\n prismaPrimary: l.mixins.overlayColors(l.variables.interactiveColorPrimary, l.variables.interactiveColorOverlayActive),\n prismaDestructive: l.mixins.overlayColors(l.variables.accentColorNegative, l.variables.interactiveColorOverlayActive)\n }), l.variables.focusShadow, y);\n var k = (0, d.css)([ \"\", \" font-weight:\", \";border-radius:\", \";\", \" &:not([disabled],[aria-disabled='true']){color:\", \";background-color:\", \";transition:background-color 0.2s,box-shadow 0.2s,text-decoration 0.2s;\", \" &:hover{background-color:\", \";box-shadow:\", \";}&:active{background-color:\", \";transition:none;}&:focus{background-color:\", \";}}&:not([disabled]){&:focus{box-shadow:\", \";}}\", \"\" ], p, l.variables.fontWeightSemiBold, l.variables.borderRadius, f, l.variables.contentColorActive, l.variables.interactiveColorBackground, (function(r) {\n return r && (0, d.css)([ \"background-color:\", \";\" ], l.mixins.overlayColors(l.variables.interactiveColorBackground, l.variables.interactiveColorOverlaySelected));\n }), l.mixins.overlayColors(l.variables.interactiveColorBackground, l.variables.interactiveColorOverlayHover), l.variables.hoverShadow, l.mixins.overlayColors(l.variables.interactiveColorBackground, l.variables.interactiveColorOverlayActive), l.mixins.overlayColors(l.variables.interactiveColorBackground, l.variables.interactiveColorOverlayHover), l.variables.focusShadow, y);\n // CONCATENATED MODULE: ./src/ButtonSimple/enterpriseStyles.ts\n var m = \"#1A8929\";\n // SUI-2439 to meet WCAG AA compliance\n var C = \"#235823\";\n // SUI-2439 to meet WCAG AA compliance\n var x = (0, d.css)([ \"\", \" border-radius:\", \";cursor:pointer;position:relative;&:focus{z-index:3;}\" ], l.mixins.reset(\"block\"), l.variables.borderRadius);\n var w = (0, d.css)([ \"\", \" \", \"\" ], (function(r) {\n var e = r.$append;\n return e && (0, d.css)([ \"border-top-right-radius:0;border-bottom-right-radius:0;border-right:none;\" ]);\n }), (function(r) {\n var e = r.$prepend;\n return e && (0, d.css)([ \"border-top-left-radius:0;border-bottom-left-radius:0;\" ]);\n }));\n var S = \"inset 0 -1px 0 rgba(0, 0, 0, 0.1)\";\n var O = \"inset 0 1px 0 rgba(0, 0, 0, 0.1)\";\n var D = (0, d.css)([ \"\", \";border:\", \";\", \";font-weight:\", \";&:not([disabled],[aria-disabled='true']){background-color:\", \";color:\", \";transition:background-image 0.2s,border 0.2s,box-shadow 0.2s,text-decoration 0.2s;\", \";\", \" &:hover{background-color:\", \";box-shadow:\", \";}&:active{transition:none;background-color:\", \";border-color:\", \";\", \";}&:focus{\", \" \", \"}}&:not([disabled]){&:focus{box-shadow:\", \",\", \";}}&[disabled],&[aria-disabled='true']{cursor:not-allowed;color:\", \";background-color:\", \";border-color:\", \";\", \"}\" ], x, (0, \n l.pick)({\n light: (0, d.css)([ \"1px solid \", \"\" ], l.variables.gray60),\n dark: l.variables.border\n }), w, (0, l.pickVariant)(\"$variant\", {\n enterpriseDefault: \"normal\",\n enterpriseSecondary: l.variables.fontWeightSemiBold\n }), (0, l.pick)({\n light: l.variables.gray98,\n dark: l.variables.gray45\n }), (0, l.pick)({\n light: l.variables.gray45,\n dark: l.variables.white\n }), (0, l.pick)({\n light: (0, d.css)([ \"box-shadow:\", \";\" ], S),\n dark: (0, d.css)([ \"box-shadow:inset 0 -1px 0 \", \";\" ], l.variables.gray30)\n }), (function(r) {\n var e = r.$selected;\n return e && (0, d.css)([ \"box-shadow:\", \";background-color:\", \";border-color:\", \";\" ], (0, \n l.pick)({\n light: O,\n dark: (0, d.css)([ \"inset 0 1px 0 \", \"\" ], l.variables.black)\n }), (0, l.pick)({\n light: l.variables.gray92,\n dark: l.variables.gray22\n }), (0, l.pick)({\n light: l.variables.gray60,\n dark: l.variables.gray20\n }));\n }), (0, l.pick)({\n light: \"#ebeeef\",\n dark: l.variables.gray30\n }), (0, l.pick)({\n light: S,\n dark: (0, d.css)([ \"inset 0 -1px 0 \", \"\" ], l.variables.gray25)\n }), (0, l.pick)({\n light: l.variables.gray92,\n dark: l.variables.gray22\n }), (0, l.pick)({\n light: l.variables.gray60,\n dark: l.variables.gray20\n }), (0, l.pick)({\n dark: (0, d.css)([ \"box-shadow:inset 0 -1px 0 \", \";\" ], l.variables.gray22)\n }), (function(r) {\n var e = r.$append;\n return e && (0, d.css)([ \"box-shadow:\", \",\", \",inset -1px 0 0 \", \";\" ], (0, l.pick)({\n light: S,\n dark: (0, d.css)([ \"inset 0 -1px 0 \", \"\" ], l.variables.gray30)\n }), l.variables.focusShadow, l.variables.borderColor);\n }), (function(r) {\n var e = r.$append, o = r.$selected;\n return e && o && (0, l.pick)({\n light: (0, d.css)([ \"box-shadow:\", \",\", \",\", \",inset -1px 0 0 \", \";\" ], S, O, l.variables.focusShadow, l.variables.borderColor),\n dark: (0, d.css)([ \"box-shadow:inset 0 1px 0 \", \",\", \",inset -1px 0 0 \", \";\" ], l.variables.black, l.variables.focusShadow, l.variables.borderColor)\n });\n }), (0, l.pick)({\n light: S,\n dark: (0, d.css)([ \"inset 0 -1px 0 \", \"\" ], l.variables.gray30)\n }), l.variables.focusShadow, l.variables.textDisabledColor, (0, l.pick)({\n light: l.variables.gray96,\n dark: l.variables.gray30\n }), (0, l.pick)({\n light: l.variables.borderLightColor,\n dark: l.variables.gray30\n }), (function(r) {\n var e = r.$selected;\n return e && (0, l.pick)({\n light: (0, d.css)([ \"box-shadow:\", \";background-color:\", \";border-color:\", \";\" ], O, l.variables.gray92, l.variables.gray80),\n dark: (0, d.css)([ \"box-shadow:inset 0 1px 0 \", \";background-color:\", \";border-color:\", \";\" ], l.variables.black, l.variables.gray22, l.variables.gray20)\n });\n }));\n var $ = \"inset 0 -2px 0 rgba(0, 0, 0, 0.1)\";\n var P = \"inset 0 2px 0 rgba(0, 0, 0, 0.1)\";\n var B = (0, d.css)([ \"\", \";font-weight:\", \";\", \" &:not([disabled],[aria-disabled='true']){background-color:\", \";color:\", \";box-shadow:\", \";transition:background-image 0.2s,border 0.2s,box-shadow 0.2s,text-decoration 0.2s;\", \" \", \" &:hover{background-color:\", \";}&:active{background-color:\", \";transition:none;}&:focus{&:active{background-color:\", \";transition:none;}}}&:not([disabled]){&:focus{box-shadow:\", \",\", \";}}&[disabled],&[aria-disabled='true']{color:\", \";background-color:\", \";cursor:not-allowed;\", \"}\" ], x, l.variables.fontWeightSemiBold, w, m, l.variables.white, $, (function(r) {\n var e = r.$selected;\n return e && (0, d.css)([ \"box-shadow:\", \";background-color:\", \";\" ], P, C);\n }), (function(r) {\n var e = r.$prepend;\n return e && (0, d.css)([ \"border-left:1px solid \", \";\" ], m);\n }), l.variables.brandColorD50, l.variables.brandColorD30, l.variables.brandColorD30, $, l.variables.focusShadow, l.variables.brandColorL30, l.variables.brandColorL10, (function(r) {\n var e = r.$selected;\n return e && (0, d.css)([ \"box-shadow:\", \";background-color:\", \";\" ], P, l.variables.brandColorD20);\n }));\n var j = (0, d.css)([ \"\", \";font-weight:\", \";\", \" &:not([disabled],[aria-disabled='true']){background-color:\", \";color:\", \";box-shadow:\", \";transition:background-image 0.2s,border 0.2s,box-shadow 0.2s,text-decoration 0.2s;\", \" \", \" &:hover{background-color:\", \";}&:active{background-color:\", \";transition:none;}&:focus{&:active{background-color:\", \";transition:none;}}}&:not([disabled]){&:focus{box-shadow:\", \",\", \";}}&[disabled],&[aria-disabled='true']{color:\", \";background-color:\", \";cursor:not-allowed;\", \"}\" ], x, l.variables.fontWeightSemiBold, w, l.variables.errorColorD10, l.variables.white, $, (function(r) {\n var e = r.$selected;\n return e && (0, d.css)([ \"box-shadow:\", \";background-color:\", \";\" ], P, l.variables.errorColorD30);\n }), (function(r) {\n var e = r.$prepend;\n return e && (0, d.css)([ \"border-left:1px solid \", \";\" ], l.variables.errorColorD30);\n }), l.variables.errorColorD30, l.variables.errorColorD40, l.variables.errorColorD40, $, l.variables.focusShadow, l.variables.errorColorL10, l.variables.errorColorD10, (function(r) {\n var e = r.$selected;\n return e && (0, d.css)([ \"box-shadow:\", \";background-color:\", \";\" ], P, l.variables.errorColorD40);\n }));\n var T = (0, d.css)([ \"\", \";color:\", \";border:1px solid transparent;&:not([disabled],[aria-disabled='true']){transition:background-color 0.2s,border 0.2s,box-shadow 0.2s,text-decoration 0.2s;\", \" &:hover{color:\", \";background-color:\", \";border-color:\", \";}\", \" &:focus{color:\", \";}&:active,&[aria-expanded='true']{background-color:\", \";transition:none;}}&:not([disabled]){&:focus{box-shadow:\", \";}}&[disabled],&[aria-disabled='true']{color:\", \";cursor:not-allowed;\", \"}\" ], x, (0, \n l.pick)({\n light: l.variables.gray45,\n dark: l.variables.white\n }), (function(r) {\n var e = r.$selected;\n return e && (0, d.css)([ \"border-color:\", \";\" ], l.variables.accentColor);\n }), (0, l.pick)({\n light: l.variables.linkColor,\n dark: l.variables.white\n }), l.variables.backgroundColorHover, (0, l.pick)({\n light: l.variables.gray60,\n dark: l.variables.borderColor\n }), (function(r) {\n var e = r.$error;\n return e && (0, d.css)([ \"&,&:hover{color:\", \";}\" ], l.variables.errorColor);\n }), (0, l.pick)({\n light: l.variables.linkColor,\n dark: l.variables.white\n }), (0, l.pick)({\n light: l.variables.gray92,\n dark: l.variables.gray22\n }), l.variables.focusShadow, l.variables.textDisabledColor, (function(r) {\n var e = r.$selected;\n return e && (0, d.css)([ \"border-color:\", \";\" ], l.variables.borderLightColor);\n }));\n // CONCATENATED MODULE: ./src/ButtonSimple/ButtonSimpleStyles.ts\n var _ = b()(u()).withConfig({\n displayName: \"ButtonSimpleStyles__StyledClickable\",\n componentId: \"vlarwe-0\"\n })([ \"\", \"\" ], (0, l.pickVariant)(\"$variant\", {\n enterpriseDefault: D,\n enterpriseSecondary: D,\n enterprisePrimary: B,\n enterpriseError: j,\n enterpriseDestructive: j,\n enterprisePill: T,\n prismaDefault: g,\n prismaDestructive: h,\n prismaPrimary: h,\n prismaSecondary: g,\n prismaToggle: g,\n prismaFlat: k\n }));\n // CONCATENATED MODULE: ./src/ButtonSimple/ButtonSimple.tsx\n function R(r) {\n \"@babel/helpers - typeof\";\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n R = function r(e) {\n return typeof e;\n };\n } else {\n R = function r(e) {\n return e && typeof Symbol === \"function\" && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n };\n }\n return R(r);\n }\n function V() {\n V = Object.assign || function(r) {\n for (var e = 1; e < arguments.length; e++) {\n var o = arguments[e];\n for (var a in o) {\n if (Object.prototype.hasOwnProperty.call(o, a)) {\n r[a] = o[a];\n }\n }\n }\n return r;\n };\n return V.apply(this, arguments);\n }\n function A(r, e) {\n if (r == null) return {};\n var o = E(r, e);\n var a, i;\n if (Object.getOwnPropertySymbols) {\n var t = Object.getOwnPropertySymbols(r);\n for (i = 0; i < t.length; i++) {\n a = t[i];\n if (e.indexOf(a) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(r, a)) continue;\n o[a] = r[a];\n }\n }\n return o;\n }\n function E(r, e) {\n if (r == null) return {};\n var o = {};\n var a = Object.keys(r);\n var i, t;\n for (t = 0; t < a.length; t++) {\n i = a[t];\n if (e.indexOf(i) >= 0) continue;\n o[i] = r[i];\n }\n return o;\n }\n function H(r, e) {\n if (!(r instanceof e)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function N(r, e) {\n for (var o = 0; o < e.length; o++) {\n var a = e[o];\n a.enumerable = a.enumerable || false;\n a.configurable = true;\n if (\"value\" in a) a.writable = true;\n Object.defineProperty(r, a.key, a);\n }\n }\n function q(r, e, o) {\n if (e) N(r.prototype, e);\n if (o) N(r, o);\n return r;\n }\n function W(r, e) {\n if (typeof e !== \"function\" && e !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n r.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: r,\n writable: true,\n configurable: true\n }\n });\n if (e) I(r, e);\n }\n function I(r, e) {\n I = Object.setPrototypeOf || function r(e, o) {\n e.__proto__ = o;\n return e;\n };\n return I(r, e);\n }\n function L(r) {\n var e = F();\n return function o() {\n var a = G(r), i;\n if (e) {\n var t = G(this).constructor;\n i = Reflect.construct(a, arguments, t);\n } else {\n i = a.apply(this, arguments);\n }\n return M(this, i);\n };\n }\n function M(r, e) {\n if (e && (R(e) === \"object\" || typeof e === \"function\")) {\n return e;\n }\n return z(r);\n }\n function z(r) {\n if (r === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return r;\n }\n function F() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], (function() {})));\n return true;\n } catch (r) {\n return false;\n }\n }\n function G(r) {\n G = Object.setPrototypeOf ? Object.getPrototypeOf : function r(e) {\n return e.__proto__ || Object.getPrototypeOf(e);\n };\n return G(r);\n }\n function J(r, e, o) {\n if (e in r) {\n Object.defineProperty(r, e, {\n value: o,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n r[e] = o;\n }\n return r;\n }\n var K = {\n action: t().string,\n appearance: t().oneOf([ \"default\", \"secondary\", \"primary\", \"destructive\", \"pill\", \"toggle\", \"flat\" ]),\n append: t().bool,\n children: t().node,\n disabled: t().oneOfType([ t().bool, t().oneOf([ \"dimmed\" ]) ]),\n elementRef: t().oneOfType([ t().func, t().object ]),\n error: t().bool,\n inline: t().bool,\n openInNewContext: t().bool,\n prepend: t().bool,\n selected: t().bool,\n splunkTheme: t().object,\n to: t().string\n };\n var Q = {\n appearance: \"default\",\n append: false,\n disabled: false,\n error: false,\n inline: true,\n openInNewContext: false,\n prepend: false,\n selected: false\n };\n var U = function r(e, o) {\n var a = {\n default: \"enterpriseDefault\",\n destructive: \"enterpriseError\",\n primary: \"enterprisePrimary\",\n secondary: \"enterpriseSecondary\",\n pill: \"enterprisePill\",\n toggle: \"enterpriseDefault\",\n flat: \"enterpriseDefault\"\n };\n var i = {\n default: \"prismaDefault\",\n destructive: \"prismaDestructive\",\n primary: \"prismaPrimary\",\n secondary: \"prismaSecondary\",\n pill: \"prismaSecondary\",\n toggle: \"prismaToggle\",\n flat: \"prismaFlat\"\n };\n if (o === \"enterprise\") {\n return a[e];\n }\n return i[e];\n };\n var X = function(r) {\n W(o, r);\n var e = L(o);\n function o() {\n var r;\n H(this, o);\n for (var a = arguments.length, i = new Array(a), t = 0; t < a; t++) {\n i[t] = arguments[t];\n }\n r = e.call.apply(e, [ this ].concat(i));\n J(z(r), \"component\", null);\n J(z(r), \"handleMount\", (function(e) {\n r.component = e;\n }));\n return r;\n }\n q(o, [ {\n key: \"focus\",\n /**\n * Places focus on the button.\n */\n value: function r() {\n var e;\n (e = this.component) === null || e === void 0 ? void 0 : e.focus();\n }\n }, {\n key: \"render\",\n value: function r() {\n var e = this.props, o = e.appearance, i = e.append, t = e.children, l = e.disabled, n = e.error, d = e.prepend, b = e.selected, v = e.splunkTheme, u = A(e, [ \"appearance\", \"append\", \"children\", \"disabled\", \"error\", \"prepend\", \"selected\", \"splunkTheme\" ]);\n var p = o;\n if (v.isEnterprise) {\n p = n ? \"destructive\" : o;\n }\n \n return a().createElement(_, V({\n \"aria-disabled\": l === \"dimmed\" || undefined,\n \"aria-invalid\": n,\n \"data-test\": \"button-simple\",\n disabled: l === true,\n ref: this.handleMount,\n $variant: U(p, v.family),\n $append: i,\n $prepend: d,\n $selected: b,\n $error: n\n }, u), t, b && a().createElement(c(), null, (0, s._)(\"Selected\")));\n }\n } ]);\n return o;\n }(o.Component);\n J(X, \"defaultProps\", Q);\n J(X, \"propTypes\", K);\n var Y = (0, l.withSplunkTheme)(X);\n Y.propTypes = X.propTypes;\n /* harmony default export */ const Z = Y;\n // CONCATENATED MODULE: ./src/ButtonSimple/index.ts\n module.exports = e;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = t => {\n /******/ var n = t && t.__esModule ? \n /******/ () => t[\"default\"]\n /******/ : () => t\n /******/;\n e.d(n, {\n a: n\n });\n /******/ return n;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (t, n) => {\n /******/ for (var r in n) {\n /******/ if (e.o(n, r) && !e.o(t, r)) {\n /******/ Object.defineProperty(t, r, {\n enumerable: true,\n get: n[r]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var t = {};\n // ESM COMPAT FLAG\n e.r(t);\n // EXPORTS\n e.d(t, {\n NavigationContext: () => /* reexport */ h,\n NavigationProvider: () => /* reexport */ m,\n default: () => /* reexport */ G,\n isInternalLink: () => /* reexport */ z\n });\n // CONCATENATED MODULE: external \"react\"\n const n = require(\"react\");\n var r = e.n(n);\n // CONCATENATED MODULE: external \"prop-types\"\n const o = require(\"prop-types\");\n var i = e.n(o);\n // CONCATENATED MODULE: external \"lodash/has\"\n const l = require(\"lodash/has\");\n // CONCATENATED MODULE: external \"lodash/isString\"\n const a = require(\"lodash/isString\");\n var c = e.n(a);\n // CONCATENATED MODULE: external \"lodash/omit\"\n const u = require(\"lodash/omit\");\n var f = e.n(u);\n // CONCATENATED MODULE: external \"@splunk/react-ui/Dropdown\"\n const s = require(\"@splunk/react-ui/Dropdown\");\n // CONCATENATED MODULE: external \"styled-components\"\n const p = require(\"styled-components\");\n var d = e.n(p);\n // CONCATENATED MODULE: external \"@splunk/themes\"\n const b = require(\"@splunk/themes\");\n // CONCATENATED MODULE: ./src/Clickable/ClickableStyles.ts\n var y = d().a.withConfig({\n displayName: \"ClickableStyles__StyledA\",\n componentId: \"sc-7al1vw-0\"\n })([ \"\", \" cursor:pointer;&[disabled],&[aria-disabled='true']{color:\", \";}&::-moz-focus-inner{border:0;padding:0;}\" ], b.mixins.reset(\"inline\"), b.variables.contentColorDisabled);\n // CONCATENATED MODULE: ./src/Clickable/NavigationProvider.tsx\n /** @public */\n var v = {\n children: i().node,\n onClick: i().func,\n prefix: i().string\n };\n var h = r().createContext({});\n /**\n * Used to provide an override for the `onClick` for links for single page applications so that\n * internal links can navigate without a page reload.\n */ function m(e) {\n var t = e.children, n = e.onClick, o = e.prefix;\n // @docs-props-type NavigationProviderProps\n \n return r().createElement(h.Provider, {\n value: {\n onClick: n,\n prefix: o\n }\n }, t);\n }\n m.propTypes = v;\n // CONCATENATED MODULE: ./src/utils/updateReactRef.ts\n /**\n * Updates a React ref. Callback refs and object refs (from `createRef` and `useRef`) are supported.\n *\n * @param ref - The React callback or object ref. Can be `null` or `undefined`.\n * @param current - The new value of the ref.\n */\n function g(e, t) {\n if (e) {\n if (typeof e === \"function\") {\n e(t);\n } else {\n // the public signature of this util uses React.Ref to mirror the way React types refs.\n // the intention here is to signal \"we will take care of setting 'current', not you\".\n e.current = t;\n // eslint-disable-line no-param-reassign\n }\n }\n }\n // CONCATENATED MODULE: ./src/Clickable/Clickable.tsx\n function O(e) {\n \"@babel/helpers - typeof\";\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n O = function e(t) {\n return typeof t;\n };\n } else {\n O = function e(t) {\n return t && typeof Symbol === \"function\" && t.constructor === Symbol && t !== Symbol.prototype ? \"symbol\" : typeof t;\n };\n }\n return O(e);\n }\n function k() {\n k = Object.assign || function(e) {\n for (var t = 1; t < arguments.length; t++) {\n var n = arguments[t];\n for (var r in n) {\n if (Object.prototype.hasOwnProperty.call(n, r)) {\n e[r] = n[r];\n }\n }\n }\n return e;\n };\n return k.apply(this, arguments);\n }\n function C(e, t) {\n if (e == null) return {};\n var n = w(e, t);\n var r, o;\n if (Object.getOwnPropertySymbols) {\n var i = Object.getOwnPropertySymbols(e);\n for (o = 0; o < i.length; o++) {\n r = i[o];\n if (t.indexOf(r) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(e, r)) continue;\n n[r] = e[r];\n }\n }\n return n;\n }\n function w(e, t) {\n if (e == null) return {};\n var n = {};\n var r = Object.keys(e);\n var o, i;\n for (i = 0; i < r.length; i++) {\n o = r[i];\n if (t.indexOf(o) >= 0) continue;\n n[o] = e[o];\n }\n return n;\n }\n function x(e, t) {\n if (!(e instanceof t)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function j(e, t) {\n for (var n = 0; n < t.length; n++) {\n var r = t[n];\n r.enumerable = r.enumerable || false;\n r.configurable = true;\n if (\"value\" in r) r.writable = true;\n Object.defineProperty(e, r.key, r);\n }\n }\n function P(e, t, n) {\n if (t) j(e.prototype, t);\n if (n) j(e, n);\n return e;\n }\n function S(e, t) {\n if (typeof t !== \"function\" && t !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n e.prototype = Object.create(t && t.prototype, {\n constructor: {\n value: e,\n writable: true,\n configurable: true\n }\n });\n if (t) _(e, t);\n }\n function _(e, t) {\n _ = Object.setPrototypeOf || function e(t, n) {\n t.__proto__ = n;\n return t;\n };\n return _(e, t);\n }\n function R(e) {\n var t = T();\n return function n() {\n var r = q(e), o;\n if (t) {\n var i = q(this).constructor;\n o = Reflect.construct(r, arguments, i);\n } else {\n o = r.apply(this, arguments);\n }\n return I(this, o);\n };\n }\n function I(e, t) {\n if (t && (O(t) === \"object\" || typeof t === \"function\")) {\n return t;\n }\n return N(e);\n }\n function N(e) {\n if (e === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return e;\n }\n function T() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], (function() {})));\n return true;\n } catch (e) {\n return false;\n }\n }\n function q(e) {\n q = Object.setPrototypeOf ? Object.getPrototypeOf : function e(t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n };\n return q(e);\n }\n function E(e, t, n) {\n if (t in e) {\n Object.defineProperty(e, t, {\n value: n,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n e[t] = n;\n }\n return e;\n }\n var M = /^[a-z0-9]+:/;\n var D = /^\\/\\//;\n var L = /^\\//;\n var z = function e(t) {\n return t != null && !M.test(t) && !D.test(t);\n };\n var H = {\n /** @private */\n allowDisabledLink: i().bool,\n children: i().node,\n disabled: i().bool,\n elementRef: i().oneOfType([ i().func, i().object ]),\n onClick: i().func,\n openInNewContext: i().bool,\n navigationLabel: i().string,\n to: i().string\n };\n var K = {\n disabled: false,\n openInNewContext: false\n };\n function A(e) {\n return !!e.to && !e.disabled;\n }\n function B(e, t) {\n if (t != null && z(e) && L.test(e)) {\n return \"\".concat(t).concat(e);\n }\n return e;\n }\n /**\n * `Clickable` renders as a `button` element, or as an `a` element if the `to` prop is set\n * and the `disabled` prop is `false`. This is called link mode.\n */ var F = function(e) {\n S(n, e);\n var t = R(n);\n // @docs-props-type ClickablePropsBase\n // should use ClickablePropsBase but fails on refs - observe\n function n(e) {\n var r;\n x(this, n);\n r = t.call(this, e);\n E(N(r), \"el\", null);\n E(N(r), \"handleMount\", (function(e) {\n r.el = e;\n g(r.props.elementRef, e);\n }));\n E(N(r), \"createHandleOnClick\", (function(e) {\n return function(t) {\n if (A(r.props)) {\n // when user command-click on mac or ctrl-click on other platforms, and\n // Tag is an , let the click pass through, let the to achieve user's\n // intent of 'open in new context'\n // on mac, ctrl-click will be caught and open option menu even before hitting\n // the DOM, so we're safe to check both metaKey and ctrlKey here\n // without platform sniffing\n if ((t.metaKey || t.ctrlKey) && r.props.to) {\n return;\n }\n }\n if (r.props.onClick) {\n r.props.onClick(t);\n } else if (A(r.props) && e) {\n var n = r.context.prefix;\n var o = r.props.navigationLabel;\n if (!o && c()(r.props.children)) {\n o = r.props.children;\n }\n e(t, {\n to: B(r.props.to, n),\n originalTo: r.props.to,\n openInNewContext: r.props.openInNewContext,\n label: o\n });\n }\n };\n }));\n if (false) {}\n return r;\n }\n P(n, [ {\n key: \"focus\",\n /**\n * Place focus on the element.\n */\n value: function e() {\n var t;\n (t = this.el) === null || t === void 0 ? void 0 : t.focus();\n }\n }, {\n key: \"render\",\n value: function e() {\n var t = this.context, n = t.onClick, o = t.prefix;\n var i = this.createHandleOnClick(n);\n // Only set the href attribute when enabled, and therefore using an tag\n if (A(this.props)) {\n var l = this.props, a = l.children, c = l.openInNewContext, u = l.to, s = C(l, [ \"children\", \"openInNewContext\", \"to\" ]);\n var p = c ? \"_blank\" : undefined;\n var d = c && z(u) ? \"noopener noreferrer\" : undefined;\n \n return r().createElement(y, k({\n \"data-test\": \"clickable\",\n ref: this.handleMount,\n href: B(this.props.to, o),\n target: p,\n rel: d,\n onClick: i\n }, f()(s, \"disabled\", \"elementRef\", \"onClick\")), a);\n }\n if (this.props.allowDisabledLink) {\n var b = this.props, v = b.children, h = C(b, [ \"children\" ]);\n if (this.props.disabled && this.props.to != null) {\n \n return r().createElement(y, k({\n \"data-test\": \"clickable\",\n ref: this.handleMount,\n role: \"link\",\n \"aria-disabled\": \"true\"\n }, f()(h, \"href\", \"to\", \"elementRef\", \"onClick\", \"disabled\")), v);\n }\n }\n // button variant\n var m = this.props, g = m.children, O = m.type, w = C(m, [ \"children\", \"type\" ]);\n \n return r().createElement(y, k({\n as: \"button\",\n \"data-test\": \"clickable\",\n ref: this.handleMount,\n type: O || \"button\",\n onClick: i\n }, f()(w, \"elementRef\", \"onClick\", \"openInNewContext\", \"to\")), g);\n }\n } ]);\n return n;\n }(n.Component);\n E(F, \"contextType\", h);\n E(F, \"propTypes\", H);\n E(F, \"defaultProps\", K);\n E(F, s.legacyRefMode, true);\n /* harmony default export */ const G = F;\n // CONCATENATED MODULE: ./src/Clickable/index.ts\n module.exports = t;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = t => {\n /******/ var r = t && t.__esModule ? \n /******/ () => t[\"default\"]\n /******/ : () => t\n /******/;\n e.d(r, {\n a: r\n });\n /******/ return r;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (t, r) => {\n /******/ for (var n in r) {\n /******/ if (e.o(r, n) && !e.o(t, n)) {\n /******/ Object.defineProperty(t, n, {\n enumerable: true,\n get: r[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var t = {};\n // ESM COMPAT FLAG\n e.r(t);\n // EXPORTS\n e.d(t, {\n default: () => /* reexport */ j\n });\n // CONCATENATED MODULE: external \"react\"\n const r = require(\"react\");\n var n = e.n(r);\n // CONCATENATED MODULE: external \"prop-types\"\n const o = require(\"prop-types\");\n var i = e.n(o);\n // CONCATENATED MODULE: external \"@splunk/react-icons/Cross\"\n const a = require(\"@splunk/react-icons/Cross\");\n var s = e.n(a);\n // CONCATENATED MODULE: external \"@splunk/react-icons/enterprise/Close\"\n const l = require(\"@splunk/react-icons/enterprise/Close\");\n var u = e.n(l);\n // CONCATENATED MODULE: external \"@splunk/themes\"\n const c = require(\"@splunk/themes\");\n // CONCATENATED MODULE: external \"@splunk/ui-utils/i18n\"\n const p = require(\"@splunk/ui-utils/i18n\");\n // CONCATENATED MODULE: external \"styled-components\"\n const d = require(\"styled-components\");\n var f = e.n(d);\n // CONCATENATED MODULE: external \"@splunk/react-ui/ButtonSimple\"\n const v = require(\"@splunk/react-ui/ButtonSimple\");\n var b = e.n(v);\n // CONCATENATED MODULE: ./src/CloseButton/CloseButtonStyles.ts\n var y = f()(b()).withConfig({\n displayName: \"CloseButtonStyles__StyledButtonSimple\",\n componentId: \"b3h40f-0\"\n })([ \"float:right;width:\", \";height:\", \";text-align:center;\" ], c.variables.inputHeight, c.variables.inputHeight);\n // CONCATENATED MODULE: ./src/CloseButton/CloseButton.tsx\n function m() {\n m = Object.assign || function(e) {\n for (var t = 1; t < arguments.length; t++) {\n var r = arguments[t];\n for (var n in r) {\n if (Object.prototype.hasOwnProperty.call(r, n)) {\n e[n] = r[n];\n }\n }\n }\n return e;\n };\n return m.apply(this, arguments);\n }\n function g(e, t) {\n if (e == null) return {};\n var r = h(e, t);\n var n, o;\n if (Object.getOwnPropertySymbols) {\n var i = Object.getOwnPropertySymbols(e);\n for (o = 0; o < i.length; o++) {\n n = i[o];\n if (t.indexOf(n) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(e, n)) continue;\n r[n] = e[n];\n }\n }\n return r;\n }\n function h(e, t) {\n if (e == null) return {};\n var r = {};\n var n = Object.keys(e);\n var o, i;\n for (i = 0; i < n.length; i++) {\n o = n[i];\n if (t.indexOf(o) >= 0) continue;\n r[o] = e[o];\n }\n return r;\n }\n var O = {\n disabled: i().bool,\n elementRef: i().oneOfType([ i().func, i().object ]),\n screenReaderText: i().string\n };\n function S(e) {\n var t = e.disabled, r = t === void 0 ? false : t, o = e.screenReaderText, i = o === void 0 ? (0, \n p._)(\"Close\") : o, a = g(e, [ \"disabled\", \"screenReaderText\" ]);\n var l = (0, c.useSplunkTheme)(), d = l.isEnterprise, f = l.isCompact;\n var v = f ? \"20px\" : \"24px\";\n \n return n().createElement(y, m({\n appearance: \"pill\",\n disabled: r,\n \"aria-label\": i\n }, a), d ? n().createElement(u(), {\n \"data-test\": \"cross\",\n inline: false,\n screenReaderText: null,\n size: \"13px\"\n }) : n().createElement(s(), {\n \"data-test\": \"cross\",\n height: v,\n width: v\n }));\n }\n S.propTypes = O;\n /* harmony default export */ const j = S;\n // CONCATENATED MODULE: ./src/CloseButton/index.ts\n module.exports = t;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = r => {\n /******/ var t = r && r.__esModule ? \n /******/ () => r[\"default\"]\n /******/ : () => r\n /******/;\n e.d(t, {\n a: t\n });\n /******/ return t;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (r, t) => {\n /******/ for (var o in t) {\n /******/ if (e.o(t, o) && !e.o(r, o)) {\n /******/ Object.defineProperty(r, o, {\n enumerable: true,\n get: t[o]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var r = {};\n // ESM COMPAT FLAG\n e.r(r);\n // EXPORTS\n e.d(r, {\n default: () => /* reexport */ v\n });\n // CONCATENATED MODULE: external \"react\"\n const t = require(\"react\");\n var o = e.n(t);\n // CONCATENATED MODULE: external \"prop-types\"\n const n = require(\"prop-types\");\n var i = e.n(n);\n // CONCATENATED MODULE: external \"styled-components\"\n const a = require(\"styled-components\");\n var l = e.n(a);\n // CONCATENATED MODULE: external \"@splunk/themes\"\n const s = require(\"@splunk/themes\");\n // CONCATENATED MODULE: ./src/Divider/DividerStyles.ts\n var c = l().hr.withConfig({\n displayName: \"DividerStyles__StyledRule\",\n componentId: \"gl6kyz-0\"\n })([ \"\", \";\", \";border-color:\", \";\" ], s.mixins.reset(\"block\"), (0, s.pickVariant)(\"$orientation\", {\n horizontal: (0, a.css)([ \"border-top-style:solid;border-width:1px;\" ]),\n vertical: (0, a.css)([ \"display:inline;border-left-style:solid;border-width:1px;\" ])\n }), (0, s.pick)({\n enterprise: s.variables.borderColor,\n prisma: s.variables.neutral200\n }));\n // CONCATENATED MODULE: ./src/Divider/Divider.tsx\n function u() {\n u = Object.assign || function(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = arguments[r];\n for (var o in t) {\n if (Object.prototype.hasOwnProperty.call(t, o)) {\n e[o] = t[o];\n }\n }\n }\n return e;\n };\n return u.apply(this, arguments);\n }\n function p(e, r) {\n if (e == null) return {};\n var t = f(e, r);\n var o, n;\n if (Object.getOwnPropertySymbols) {\n var i = Object.getOwnPropertySymbols(e);\n for (n = 0; n < i.length; n++) {\n o = i[n];\n if (r.indexOf(o) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(e, o)) continue;\n t[o] = e[o];\n }\n }\n return t;\n }\n function f(e, r) {\n if (e == null) return {};\n var t = {};\n var o = Object.keys(e);\n var n, i;\n for (i = 0; i < o.length; i++) {\n n = o[i];\n if (r.indexOf(n) >= 0) continue;\n t[n] = e[n];\n }\n return t;\n }\n var d = {\n elementRef: i().oneOfType([ i().func, i().object ]),\n orientation: i().oneOf([ \"horizontal\", \"vertical\" ])\n };\n function y(e) {\n var r = e.elementRef, t = e.orientation, n = t === void 0 ? \"horizontal\" : t, i = p(e, [ \"elementRef\", \"orientation\" ]);\n // @docs-props-type DividerPropsBase\n \n return o().createElement(c, u({\n \"data-test\": \"divider\",\n ref: r,\n \"aria-orientation\": n,\n $orientation: n\n }, i));\n }\n y.propTypes = d;\n /* harmony default export */ const v = y;\n // CONCATENATED MODULE: ./src/Divider/index.ts\n module.exports = r;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = t => {\n /******/ var o = t && t.__esModule ? \n /******/ () => t[\"default\"]\n /******/ : () => t\n /******/;\n e.d(o, {\n a: o\n });\n /******/ return o;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (t, o) => {\n /******/ for (var n in o) {\n /******/ if (e.o(o, n) && !e.o(t, n)) {\n /******/ Object.defineProperty(t, n, {\n enumerable: true,\n get: o[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var t = {};\n // ESM COMPAT FLAG\n e.r(t);\n // EXPORTS\n e.d(t, {\n default: () => /* reexport */ N,\n legacyRefMode: () => /* reexport */ W\n });\n // CONCATENATED MODULE: external \"react\"\n const o = require(\"react\");\n var n = e.n(o);\n // CONCATENATED MODULE: external \"prop-types\"\n const r = require(\"prop-types\");\n var l = e.n(r);\n // CONCATENATED MODULE: external \"lodash/has\"\n const i = require(\"lodash/has\");\n var s = e.n(i);\n // CONCATENATED MODULE: external \"lodash/includes\"\n const a = require(\"lodash/includes\");\n var c = e.n(a);\n // CONCATENATED MODULE: external \"lodash/isEmpty\"\n const u = require(\"lodash/isEmpty\");\n // CONCATENATED MODULE: external \"lodash/isFunction\"\n const p = require(\"lodash/isFunction\");\n var f = e.n(p);\n // CONCATENATED MODULE: external \"lodash/keys\"\n const d = require(\"lodash/keys\");\n var g = e.n(d);\n // CONCATENATED MODULE: external \"lodash/omit\"\n const y = require(\"lodash/omit\");\n var v = e.n(y);\n // CONCATENATED MODULE: external \"@splunk/ui-utils/id\"\n const h = require(\"@splunk/ui-utils/id\");\n // CONCATENATED MODULE: external \"@splunk/ui-utils/keyboard\"\n const b = require(\"@splunk/ui-utils/keyboard\");\n // CONCATENATED MODULE: external \"@splunk/react-ui/Popover\"\n const O = require(\"@splunk/react-ui/Popover\");\n var m = e.n(O);\n // CONCATENATED MODULE: ./src/utils/updateReactRef.ts\n /**\n * Updates a React ref. Callback refs and object refs (from `createRef` and `useRef`) are supported.\n *\n * @param ref - The React callback or object ref. Can be `null` or `undefined`.\n * @param current - The new value of the ref.\n */\n function C(e, t) {\n if (e) {\n if (typeof e === \"function\") {\n e(t);\n } else {\n // the public signature of this util uses React.Ref to mirror the way React types refs.\n // the intention here is to signal \"we will take care of setting 'current', not you\".\n e.current = t;\n // eslint-disable-line no-param-reassign\n }\n }\n }\n // CONCATENATED MODULE: ./src/Dropdown/Dropdown.tsx\n function k(e) {\n \"@babel/helpers - typeof\";\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n k = function e(t) {\n return typeof t;\n };\n } else {\n k = function e(t) {\n return t && typeof Symbol === \"function\" && t.constructor === Symbol && t !== Symbol.prototype ? \"symbol\" : typeof t;\n };\n }\n return k(e);\n }\n function R(e, t) {\n var o = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n if (t) n = n.filter((function(t) {\n return Object.getOwnPropertyDescriptor(e, t).enumerable;\n }));\n o.push.apply(o, n);\n }\n return o;\n }\n function w(e) {\n for (var t = 1; t < arguments.length; t++) {\n var o = arguments[t] != null ? arguments[t] : {};\n if (t % 2) {\n R(Object(o), true).forEach((function(t) {\n _(e, t, o[t]);\n }));\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(e, Object.getOwnPropertyDescriptors(o));\n } else {\n R(Object(o)).forEach((function(t) {\n Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(o, t));\n }));\n }\n }\n return e;\n }\n function P(e, t) {\n if (!(e instanceof t)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function j(e, t) {\n for (var o = 0; o < t.length; o++) {\n var n = t[o];\n n.enumerable = n.enumerable || false;\n n.configurable = true;\n if (\"value\" in n) n.writable = true;\n Object.defineProperty(e, n.key, n);\n }\n }\n function q(e, t, o) {\n if (t) j(e.prototype, t);\n if (o) j(e, o);\n return e;\n }\n function S(e, t) {\n if (typeof t !== \"function\" && t !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n e.prototype = Object.create(t && t.prototype, {\n constructor: {\n value: e,\n writable: true,\n configurable: true\n }\n });\n if (t) T(e, t);\n }\n function T(e, t) {\n T = Object.setPrototypeOf || function e(t, o) {\n t.__proto__ = o;\n return t;\n };\n return T(e, t);\n }\n function D(e) {\n var t = K();\n return function o() {\n var n = M(e), r;\n if (t) {\n var l = M(this).constructor;\n r = Reflect.construct(n, arguments, l);\n } else {\n r = n.apply(this, arguments);\n }\n return I(this, r);\n };\n }\n function I(e, t) {\n if (t && (k(t) === \"object\" || typeof t === \"function\")) {\n return t;\n }\n return E(e);\n }\n function E(e) {\n if (e === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return e;\n }\n function K() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], (function() {})));\n return true;\n } catch (e) {\n return false;\n }\n }\n function M(e) {\n M = Object.setPrototypeOf ? Object.getPrototypeOf : function e(t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n };\n return M(e);\n }\n function _(e, t, o) {\n if (t in e) {\n Object.defineProperty(e, t, {\n value: o,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n e[t] = o;\n }\n return e;\n }\n /** @public */ var F = [ \"clickAway\", \"contentClick\", \"escapeKey\", \"offScreen\", \"tabKey\", \"toggleClick\" ];\n var A = {\n align: l().oneOf([ \"center\", \"edge\", \"theme\", \"end\" ]),\n canCoverAnchor: l().bool,\n children: l().oneOfType([ l().node, l().func ]),\n closeReasons: l().arrayOf(l().oneOf(F)),\n defaultPlacement: l().oneOf([ \"above\", \"below\", \"left\", \"right\", \"vertical\", \"horizontal\" ]),\n elementRef: l().oneOfType([ l().func, l().object ]),\n focusToggleReasons: l().arrayOf(l().oneOf(F)),\n inputId: l().string,\n onRequestClose: l().func,\n onRequestOpen: l().func,\n open: l().bool,\n openWithArrowKeys: l().bool,\n repositionMode: l().oneOf([ \"none\", \"flip\", \"any\" ]),\n retainFocus: l().bool,\n takeFocus: l().bool,\n toggle: l().element.isRequired\n };\n var x = {\n align: \"theme\",\n canCoverAnchor: true,\n closeReasons: F,\n defaultPlacement: \"below\",\n focusToggleReasons: [ \"contentClick\", \"escapeKey\", \"tabKey\", \"toggleClick\" ],\n repositionMode: \"flip\",\n retainFocus: false,\n openWithArrowKeys: false,\n takeFocus: true\n };\n var W = Symbol(\"Dropdown legacy ref mode marker\");\n var z = function(e) {\n S(r, e);\n var t = D(r);\n // @docs-props-type DropdownPropsBase\n /**\n * Enumeration of the possible reasons for closing the Select.\n * 'clickAway', 'escapeKey', and 'offScreen' are inherited from Popover, but repeated here for\n * docs extraction.\n */ function r(e) {\n var o;\n P(this, r);\n o = t.call(this, e);\n _(E(o), \"controlledExternally\", void 0);\n _(E(o), \"popoverId\", void 0);\n _(E(o), \"toggleRef\", null);\n _(E(o), \"toggleId\", void 0);\n _(E(o), \"handleToggleMount\", (function(e) {\n o.toggleRef = e;\n o.setState({\n anchor: e\n });\n if (o.props.toggle.type[W]) {\n // TS: assume that legacy ref mode toggles support elementRef\n C(o.props.toggle.props.elementRef, e);\n } else {\n // TS: ref does not exist on React.ReactElement - technically, this is undocumented API\n C(o.props.toggle.ref, e);\n }\n }));\n _(E(o), \"handleToggleClick\", (function(e) {\n var t, n;\n (t = (n = o.props.toggle.props).onClick) === null || t === void 0 ? void 0 : t.call(n, e);\n if (o.isOpen()) {\n o.handleRequestClose({\n reason: \"toggleClick\",\n event: e\n });\n } else {\n var r, l;\n (r = (l = o.props).onRequestOpen) === null || r === void 0 ? void 0 : r.call(l, e, {\n reason: \"toggleClick\"\n });\n if (!o.isControlled()) {\n o.setState({\n open: true\n });\n }\n }\n }));\n _(E(o), \"handleToggleKeyDownOpen\", (function(e) {\n var t, n;\n (t = (n = o.props.toggle.props).onKeyDown) === null || t === void 0 ? void 0 : t.call(n, e);\n if (!o.props.openWithArrowKeys) {\n return;\n }\n var r = (0, b.keycode)(e.nativeEvent);\n if (r === \"up\" || r === \"down\") {\n var l, i;\n e.preventDefault();\n (l = (i = o.props).onRequestOpen) === null || l === void 0 ? void 0 : l.call(i, e, {\n reason: \"toggleKeydown\"\n });\n if (!o.isControlled()) {\n o.setState({\n open: true\n });\n }\n }\n }));\n _(E(o), \"handleRequestClose\", (function(e) {\n var t = e.event, n = e.reason;\n var r = o.props, l = r.closeReasons, i = r.focusToggleReasons, s = r.onRequestClose;\n if (t && n === \"clickAway\") {\n var a = t.target;\n var u = o.props.inputId || o.props.toggle.props.id || o.toggleId;\n while (a) {\n // Ignore clicks on toggle.\n if (a.id === u) {\n return;\n }\n a = a.parentNode;\n }\n }\n if (o.isOpen() && c()(l, n)) {\n if (c()(i, n)) {\n o.focus();\n }\n if (!o.isControlled()) {\n o.setState({\n open: false\n });\n }\n s === null || s === void 0 ? void 0 : s(e);\n }\n }));\n _(E(o), \"handleContentClick\", (function(e) {\n o.handleRequestClose({\n reason: \"contentClick\",\n event: e\n });\n }));\n o.state = {\n anchor: null,\n open: false\n };\n o.controlledExternally = s()(e, \"open\");\n o.popoverId = (0, h.createDOMID)(\"popover\");\n o.toggleId = (0, h.createDOMID)(\"toggle\");\n return o;\n }\n q(r, [ {\n key: \"componentDidUpdate\",\n value: function e() {\n if (false) {}\n var t = w({}, v()(this.props, g()(r.propTypes), \"value\", \"id\"));\n if (false) {}\n }\n }, {\n key: \"isOpen\",\n value: function e() {\n return this.isControlled() ? this.props.open : this.state.open;\n }\n /**\n * Places focus on the toggle.\n */ }, {\n key: \"focus\",\n value: function e() {\n var t;\n (t = this.toggleRef) === null || t === void 0 ? void 0 : t.focus();\n }\n }, {\n key: \"isControlled\",\n value: function e() {\n return this.controlledExternally;\n }\n }, {\n key: \"renderToggle\",\n value: function e() {\n var t;\n \n return (0, o.cloneElement)(this.props.toggle, (t = {\n onClick: this.handleToggleClick,\n onKeyDown: this.handleToggleKeyDownOpen\n }, _(t, this.props.toggle.type[W] ? \"elementRef\" : \"ref\", this.handleToggleMount), \n _(t, \"aria-controls\", this.isOpen() ? this.popoverId : undefined), _(t, \"aria-haspopup\", this.props.toggle.props[\"aria-haspopup\"] || true), \n _(t, \"aria-expanded\", this.isOpen()), _(t, \"data-test\", this.props.toggle.props[\"data-test\"] || \"dropdown\"), \n _(t, \"data-test-popover-id\", this.popoverId), _(t, \"id\", this.props.inputId || this.props.toggle.props.id || this.toggleId), \n t));\n }\n }, {\n key: \"render\",\n value: function e() {\n var t = this.props, o = t.align, r = t.canCoverAnchor, l = t.children, i = t.closeReasons, s = t.defaultPlacement, a = t.elementRef, u = t.repositionMode, p = t.retainFocus, d = t.takeFocus;\n var g = this.state.anchor;\n var y = this.handleRequestClose, v = this.handleContentClick;\n var h = this.renderToggle();\n \n return n().createElement(n().Fragment, null, h, n().createElement(m(), {\n align: o,\n open: !!g && this.isOpen(),\n autoCloseWhenOffScreen: c()(i, \"offScreen\"),\n anchor: g,\n canCoverAnchor: r,\n elementRef: a,\n retainFocus: p,\n defaultPlacement: s,\n onRequestClose: y,\n repositionMode: u,\n id: this.popoverId,\n \"aria-labelledby\": this.props.inputId || this.props.toggle.props.id || this.toggleId,\n takeFocus: d\n }, f()(l) ? // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions\n function() {\n \n return n().createElement(\"div\", {\n onClick: v\n }, l.apply(void 0, arguments));\n } : \n \n // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions\n n().createElement(\"div\", {\n onClick: v\n }, l)));\n }\n } ]);\n return r;\n }(o.Component);\n _(z, \"possibleCloseReasons\", F);\n _(z, \"propTypes\", A);\n _(z, \"defaultProps\", x);\n /* harmony default export */ const N = z;\n // CONCATENATED MODULE: ./src/Dropdown/index.ts\n module.exports = t;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = r => {\n /******/ var t = r && r.__esModule ? \n /******/ () => r[\"default\"]\n /******/ : () => r\n /******/;\n e.d(t, {\n a: t\n });\n /******/ return t;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (r, t) => {\n /******/ for (var n in t) {\n /******/ if (e.o(t, n) && !e.o(r, n)) {\n /******/ Object.defineProperty(r, n, {\n enumerable: true,\n get: t[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var r = {};\n // ESM COMPAT FLAG\n e.r(r);\n // EXPORTS\n e.d(r, {\n default: () => /* reexport */ s\n });\n // CONCATENATED MODULE: external \"react\"\n const t = require(\"react\");\n var n = e.n(t);\n // CONCATENATED MODULE: external \"prop-types\"\n const o = require(\"prop-types\");\n var a = e.n(o);\n // CONCATENATED MODULE: external \"use-typed-event-listener\"\n const l = require(\"use-typed-event-listener\");\n var u = e.n(l);\n // CONCATENATED MODULE: ./src/EventListener/EventListener.tsx\n /**\n * This is a private component.\n * Please see the Readme file for more information.\n */\n var i = {\n children: a().node,\n target: a().oneOfType([ a().object, a().string ]),\n eventType: a().any,\n listener: a().func,\n options: a().oneOfType([ a().object, a().bool ])\n };\n function p(e) {\n var r = e.children, t = e.target, o = e.eventType, a = e.listener, l = e.options;\n u()(t, o, a, l);\n \n return n().createElement(n().Fragment, null, r || null);\n }\n p.propTypes = i;\n /* harmony default export */ const s = p;\n // CONCATENATED MODULE: ./src/EventListener/index.ts\n module.exports = r;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = t => {\n /******/ var n = t && t.__esModule ? \n /******/ () => t[\"default\"]\n /******/ : () => t\n /******/;\n e.d(n, {\n a: n\n });\n /******/ return n;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (t, n) => {\n /******/ for (var r in n) {\n /******/ if (e.o(n, r) && !e.o(t, r)) {\n /******/ Object.defineProperty(t, r, {\n enumerable: true,\n get: n[r]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/global */\n /******/ (() => {\n /******/ e.g = function() {\n /******/ if (typeof globalThis === \"object\") return globalThis;\n /******/ try {\n /******/ return this || new Function(\"return this\")();\n /******/ } catch (e) {\n /******/ if (typeof window === \"object\") return window;\n /******/ }\n /******/ }();\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var t = {};\n // ESM COMPAT FLAG\n e.r(t);\n // EXPORTS\n e.d(t, {\n LayerContext: () => /* reexport */ m,\n LayerStackContext: () => /* reexport */ h,\n LayerStackGlobalProvider: () => /* reexport */ k,\n default: () => /* reexport */ F\n });\n // CONCATENATED MODULE: external \"react\"\n const n = require(\"react\");\n var r = e.n(n);\n // CONCATENATED MODULE: external \"react-dom\"\n const o = require(\"react-dom\");\n // CONCATENATED MODULE: external \"prop-types\"\n const i = require(\"prop-types\");\n var a = e.n(i);\n // CONCATENATED MODULE: external \"lodash/includes\"\n const c = require(\"lodash/includes\");\n var u = e.n(c);\n // CONCATENATED MODULE: external \"lodash/last\"\n const l = require(\"lodash/last\");\n var s = e.n(l);\n // CONCATENATED MODULE: external \"lodash/pull\"\n const f = require(\"lodash/pull\");\n var p = e.n(f);\n // CONCATENATED MODULE: external \"@splunk/ui-utils/keyboard\"\n const y = require(\"@splunk/ui-utils/keyboard\");\n // CONCATENATED MODULE: external \"@splunk/react-ui/EventListener\"\n const d = require(\"@splunk/react-ui/EventListener\");\n var v = e.n(d);\n // CONCATENATED MODULE: ./src/Layer/LayerStack.tsx\n /**\n * `LayerStackContext` is used to manage the array that `Layer` (and components that\n * depend on it, such as `Modal`) uses to determine the order of open layers.\n * @public\n */\n var h = r().createContext([]);\n var m = r().createContext({});\n var b = {\n children: a().node,\n name: a().string,\n scope: a().object,\n separateStackingContexts: a().bool\n };\n /* global global */\n /**\n * A `LayerStackContext` provider that stores a shared layer stack using a global variable.\n * Applications should only use this provider if there's a known need to support multiple\n * instances of this library on the same page.\n */ function k(t) {\n var n = t.children, o = t.name, i = o === void 0 ? \"__splunkui_layer_instances__\" : o, a = t.scope, c = a === void 0 ? typeof window !== \"undefined\" ? window : e.g : a, u = t.separateStackingContexts, l = u === void 0 ? false : u;\n if (!c[i]) {\n c[i] = [];\n // eslint-disable-line no-param-reassign\n }\n \n return r().createElement(h.Provider, {\n value: c[i]\n }, r().createElement(m.Provider, {\n value: {\n separateStackingContexts: l\n }\n }, n));\n }\n k.propTypes = b;\n // CONCATENATED MODULE: external \"styled-components\"\n const w = require(\"styled-components\");\n var g = e.n(w);\n // CONCATENATED MODULE: external \"@splunk/themes\"\n const C = require(\"@splunk/themes\");\n // CONCATENATED MODULE: ./src/Layer/LayerStyles.ts\n var S = g().div.withConfig({\n displayName: \"LayerStyles__StyledLayer\",\n componentId: \"ii6psl-0\"\n })([ \"\", \"\" ], (function(e) {\n var t = e.$separateStackingContexts;\n return t && (0, w.css)([ \"isolation:isolate;z-index:\", \";\" ], C.variables.zindexLayer);\n }));\n // CONCATENATED MODULE: ./src/utils/ssrDocument.ts\n /* eslint-disable @typescript-eslint/no-empty-function */\n var E = {\n body: {\n appendChild: function e() {\n return [];\n }\n },\n addEventListener: function e() {},\n removeEventListener: function e() {},\n activeElement: {\n blur: function e() {},\n nodeName: \"\"\n },\n querySelector: function e() {\n return null;\n },\n querySelectorAll: function e() {\n return [];\n },\n getElementById: function e() {\n return null;\n },\n createEvent: function e() {\n return {\n initEvent: function e() {}\n };\n },\n createElement: function e() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function e() {},\n getElementsByTagName: function e() {\n return [];\n }\n };\n },\n createElementNS: function e() {\n return {};\n },\n importNode: function e() {\n return null;\n },\n location: {\n hash: \"\",\n host: \"\",\n hostname: \"\",\n href: \"\",\n origin: \"\",\n pathname: \"\",\n protocol: \"\",\n search: \"\"\n }\n };\n function O() {\n var e = typeof document !== \"undefined\" ? document : E;\n return e;\n }\n // CONCATENATED MODULE: ./src/Layer/Layer.tsx\n function L(e) {\n \"@babel/helpers - typeof\";\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n L = function e(t) {\n return typeof t;\n };\n } else {\n L = function e(t) {\n return t && typeof Symbol === \"function\" && t.constructor === Symbol && t !== Symbol.prototype ? \"symbol\" : typeof t;\n };\n }\n return L(e);\n }\n function _(e, t) {\n if (!(e instanceof t)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function x(e, t) {\n for (var n = 0; n < t.length; n++) {\n var r = t[n];\n r.enumerable = r.enumerable || false;\n r.configurable = true;\n if (\"value\" in r) r.writable = true;\n Object.defineProperty(e, r.key, r);\n }\n }\n function P(e, t, n) {\n if (t) x(e.prototype, t);\n if (n) x(e, n);\n return e;\n }\n function j(e, t) {\n if (typeof t !== \"function\" && t !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n e.prototype = Object.create(t && t.prototype, {\n constructor: {\n value: e,\n writable: true,\n configurable: true\n }\n });\n if (t) q(e, t);\n }\n function q(e, t) {\n q = Object.setPrototypeOf || function e(t, n) {\n t.__proto__ = n;\n return t;\n };\n return q(e, t);\n }\n function T(e) {\n var t = A();\n return function n() {\n var r = K(e), o;\n if (t) {\n var i = K(this).constructor;\n o = Reflect.construct(r, arguments, i);\n } else {\n o = r.apply(this, arguments);\n }\n return R(this, o);\n };\n }\n function R(e, t) {\n if (t && (L(t) === \"object\" || typeof t === \"function\")) {\n return t;\n }\n return D(e);\n }\n function D(e) {\n if (e === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return e;\n }\n function A() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], (function() {})));\n return true;\n } catch (e) {\n return false;\n }\n }\n function K(e) {\n K = Object.setPrototypeOf ? Object.getPrototypeOf : function e(t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n };\n return K(e);\n }\n function M(e, t, n) {\n if (t in e) {\n Object.defineProperty(e, t, {\n value: n,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n e[t] = n;\n }\n return e;\n }\n /** @public */ var N = [ \"clickAway\", \"escapeKey\" ];\n var W = {\n children: a().node,\n closeReasons: a().arrayOf(a().oneOf(N)),\n onRequestClose: a().func,\n open: a().bool\n };\n var z = {\n closeReasons: N,\n open: false\n };\n var B = function(e) {\n j(n, e);\n var t = T(n);\n // @docs-props-type LayerPropsBase\n // eslint-disable-next-line react/sort-comp\n // LayerStackContext (an array) keeps track of the current instances of Layer. This is\n // used by Layer#handleKeyDown to determine if the escapeKey event should be handled by\n // the current instance. Only the topmost Layer instance should honor the escapeKey.\n // TODO: enable once this is sorted out within the babel/ts ecosystem\n // declare context: React.ContextType;\n function n(e) {\n var r;\n _(this, n);\n r = t.call(this, e);\n M(D(r), \"layerClickEvent\", null);\n M(D(r), \"handleClickOnLayer\", (function(e) {\n var t = e.nativeEvent;\n r.layerClickEvent = t;\n }));\n M(D(r), \"handleClickOnWindow\", (function(e) {\n var t, n;\n // clicks inside the layer should not be considered clickAways\n if (!r.props.open || !u()(r.props.closeReasons, \"clickAway\") || r.layerClickEvent === e) {\n return;\n }\n (t = (n = r.props).onRequestClose) === null || t === void 0 ? void 0 : t.call(n, {\n event: e,\n reason: \"clickAway\"\n });\n }));\n M(D(r), \"handleKeyDownOnWindow\", (function(e) {\n if (r.props.open && (0, y.keycode)(e) === \"esc\" && s()(r.getLayerStack()) === D(r) && u()(r.props.closeReasons, \"escapeKey\")) {\n var t, n;\n (t = (n = r.props).onRequestClose) === null || t === void 0 ? void 0 : t.call(n, {\n event: e,\n reason: \"escapeKey\"\n });\n }\n }));\n var o = O();\n if (!n.layerContainer) {\n n.layerContainer = o.createElement(\"div\");\n n.layerContainer.setAttribute(\"data-test\", \"layer-container\");\n o.body.appendChild(n.layerContainer);\n }\n return r;\n }\n P(n, [ {\n key: \"componentDidMount\",\n value: function e() {\n if (this.props.open) {\n this.getLayerStack().push(this);\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function e(t) {\n if (!t.open && this.props.open) {\n this.getLayerStack().push(this);\n } else if (t.open && !this.props.open) {\n p()(this.getLayerStack(), this);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function e() {\n p()(this.getLayerStack(), this);\n }\n }, {\n key: \"getLayerStack\",\n value: function e() {\n return this.context;\n }\n }, {\n key: \"render\",\n value: function e() {\n var t = this;\n var i = this.props, a = i.children, c = i.open;\n if (c) {\n var u = (0, o.createPortal)( r().createElement(m.Consumer, null, (function(e) {\n var n = e.separateStackingContexts, o = n === void 0 ? false : n;\n \n return r().createElement(S, {\n $separateStackingContexts: o,\n \"data-test\": \"layer\",\n onMouseDown: t.handleClickOnLayer,\n onTouchStart: t.handleClickOnLayer\n }, a);\n })), n.layerContainer);\n \n return r().createElement(r().Fragment, null, r().createElement(v(), {\n target: window,\n eventType: \"keydown\",\n listener: this.handleKeyDownOnWindow,\n key: \"eventListenerKeydown\"\n }), r().createElement(v(), {\n target: window,\n eventType: \"mousedown\",\n listener: this.handleClickOnWindow,\n key: \"eventListenerMouseDown\"\n }), r().createElement(v(), {\n target: window,\n eventType: \"touchstart\",\n listener: this.handleClickOnWindow,\n key: \"eventListenerTouchStart\",\n options: {\n passive: true\n }\n }), u);\n }\n return null;\n }\n } ]);\n return n;\n }(n.Component);\n M(B, \"layerContainer\", null);\n M(B, \"possibleCloseReasons\", N);\n M(B, \"propTypes\", W);\n M(B, \"defaultProps\", z);\n M(B, \"contextType\", h);\n /* harmony default export */ const F = B;\n // CONCATENATED MODULE: ./src/Layer/index.ts\n module.exports = t;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = t => {\n /******/ var r = t && t.__esModule ? \n /******/ () => t[\"default\"]\n /******/ : () => t\n /******/;\n e.d(r, {\n a: r\n });\n /******/ return r;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (t, r) => {\n /******/ for (var n in r) {\n /******/ if (e.o(r, n) && !e.o(t, n)) {\n /******/ Object.defineProperty(t, n, {\n enumerable: true,\n get: r[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var t = {};\n // ESM COMPAT FLAG\n e.r(t);\n // EXPORTS\n e.d(t, {\n default: () => /* reexport */ J\n });\n // CONCATENATED MODULE: external \"react\"\n const r = require(\"react\");\n var n = e.n(r);\n // CONCATENATED MODULE: external \"prop-types\"\n const o = require(\"prop-types\");\n var i = e.n(o);\n // CONCATENATED MODULE: external \"@splunk/react-ui/ScreenReaderContent\"\n const a = require(\"@splunk/react-ui/ScreenReaderContent\");\n var u = e.n(a);\n // CONCATENATED MODULE: external \"@splunk/react-ui/Dropdown\"\n const l = require(\"@splunk/react-ui/Dropdown\");\n // CONCATENATED MODULE: external \"@splunk/ui-utils/i18n\"\n const c = require(\"@splunk/ui-utils/i18n\");\n // CONCATENATED MODULE: external \"styled-components\"\n const s = require(\"styled-components\");\n var f = e.n(s);\n // CONCATENATED MODULE: external \"@splunk/react-icons/ArrowSquareTopRight\"\n const p = require(\"@splunk/react-icons/ArrowSquareTopRight\");\n var d = e.n(p);\n // CONCATENATED MODULE: external \"@splunk/react-icons/enterprise/External\"\n const y = require(\"@splunk/react-icons/enterprise/External\");\n var b = e.n(y);\n // CONCATENATED MODULE: external \"@splunk/themes\"\n const v = require(\"@splunk/themes\");\n // CONCATENATED MODULE: ./src/Link/icons/External.tsx\n var h = (0, s.css)([ \"width:0.8em;height:0.8em;vertical-align:baseline;\" ]);\n var m = f()(b()).withConfig({\n displayName: \"External__StyledEnterprise\",\n componentId: \"sc-13bdx45-0\"\n })([ \"\", \" margin:0 0 0 3px;\" ], h);\n var g = f()(d()).withConfig({\n displayName: \"External__StyledPrisma\",\n componentId: \"sc-13bdx45-1\"\n })([ \"\", \" margin:0 0 0 4px;\" ], h);\n function w() {\n var e = (0, v.useSplunkTheme)(), t = e.isEnterprise;\n return t ? n().createElement(m, {\n screenReaderText: null\n }) : n().createElement(g, null);\n }\n /* harmony default export */ const O = w;\n // CONCATENATED MODULE: external \"@splunk/react-ui/Clickable\"\n const x = require(\"@splunk/react-ui/Clickable\");\n var S = e.n(x);\n // CONCATENATED MODULE: ./src/Link/LinkStyles.ts\n var k = f()(S()).withConfig({\n displayName: \"LinkStyles__StyledClickable\",\n componentId: \"sc-1hhltcf-0\"\n })([ \"\", \";color:\", \";text-decoration:none;font-size:inherit;font-weight:inherit;line-height:inherit;border-radius:\", \";&:not([disabled],[aria-disabled='true']){cursor:pointer;\", \";&:focus{box-shadow:\", \";outline:0;&:active{box-shadow:none;}}}&[disabled],&[aria-disabled='true']{color:\", \";}&::-moz-focus-inner{border:0;padding:0;}\" ], v.mixins.reset(\"inline\"), (0, \n v.pick)({\n enterprise: v.variables.linkColor,\n prisma: v.variables.interactiveColorPrimary\n }), (0, v.pick)({\n enterprise: 0,\n prisma: \"1px\"\n }), (0, v.pick)({\n enterprise: (0, s.css)([ \"&:hover{text-decoration:underline;}\" ]),\n prisma: (0, s.css)([ \"&:hover:not(:focus),&:active{text-decoration:underline;text-underline-position:under;}\" ])\n }), v.variables.focusShadow, v.variables.contentColorDisabled);\n // CONCATENATED MODULE: ./src/Link/Link.tsx\n function j(e) {\n \"@babel/helpers - typeof\";\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n j = function e(t) {\n return typeof t;\n };\n } else {\n j = function e(t) {\n return t && typeof Symbol === \"function\" && t.constructor === Symbol && t !== Symbol.prototype ? \"symbol\" : typeof t;\n };\n }\n return j(e);\n }\n function _() {\n _ = Object.assign || function(e) {\n for (var t = 1; t < arguments.length; t++) {\n var r = arguments[t];\n for (var n in r) {\n if (Object.prototype.hasOwnProperty.call(r, n)) {\n e[n] = r[n];\n }\n }\n }\n return e;\n };\n return _.apply(this, arguments);\n }\n function P(e, t) {\n if (e == null) return {};\n var r = C(e, t);\n var n, o;\n if (Object.getOwnPropertySymbols) {\n var i = Object.getOwnPropertySymbols(e);\n for (o = 0; o < i.length; o++) {\n n = i[o];\n if (t.indexOf(n) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(e, n)) continue;\n r[n] = e[n];\n }\n }\n return r;\n }\n function C(e, t) {\n if (e == null) return {};\n var r = {};\n var n = Object.keys(e);\n var o, i;\n for (i = 0; i < n.length; i++) {\n o = n[i];\n if (t.indexOf(o) >= 0) continue;\n r[o] = e[o];\n }\n return r;\n }\n function E(e, t) {\n if (!(e instanceof t)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function q(e, t) {\n for (var r = 0; r < t.length; r++) {\n var n = t[r];\n n.enumerable = n.enumerable || false;\n n.configurable = true;\n if (\"value\" in n) n.writable = true;\n Object.defineProperty(e, n.key, n);\n }\n }\n function R(e, t, r) {\n if (t) q(e.prototype, t);\n if (r) q(e, r);\n return e;\n }\n function T(e, t) {\n if (typeof t !== \"function\" && t !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n e.prototype = Object.create(t && t.prototype, {\n constructor: {\n value: e,\n writable: true,\n configurable: true\n }\n });\n if (t) I(e, t);\n }\n function I(e, t) {\n I = Object.setPrototypeOf || function e(t, r) {\n t.__proto__ = r;\n return t;\n };\n return I(e, t);\n }\n function N(e) {\n var t = z();\n return function r() {\n var n = A(e), o;\n if (t) {\n var i = A(this).constructor;\n o = Reflect.construct(n, arguments, i);\n } else {\n o = n.apply(this, arguments);\n }\n return M(this, o);\n };\n }\n function M(e, t) {\n if (t && (j(t) === \"object\" || typeof t === \"function\")) {\n return t;\n }\n return D(e);\n }\n function D(e) {\n if (e === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return e;\n }\n function z() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], (function() {})));\n return true;\n } catch (e) {\n return false;\n }\n }\n function A(e) {\n A = Object.setPrototypeOf ? Object.getPrototypeOf : function e(t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n };\n return A(e);\n }\n function F(e, t, r) {\n if (t in e) {\n Object.defineProperty(e, t, {\n value: r,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n e[t] = r;\n }\n return e;\n }\n var L = {\n disabled: false,\n openInNewContext: false\n };\n var B = {\n children: i().node,\n disabled: i().bool,\n elementRef: i().oneOfType([ i().func, i().object ]),\n openInNewContext: i().oneOfType([ i().bool, i().string ]),\n to: i().string\n };\n var G = (0, c._)(\"(Opens new window)\");\n /**\n * `Link` is a simple method for configuring `Button` for inline links. For more complex behaviors,\n * see the `Button` documentation.\n */ var H = function(e) {\n T(r, e);\n var t = N(r);\n function r() {\n var e;\n E(this, r);\n for (var n = arguments.length, o = new Array(n), i = 0; i < n; i++) {\n o[i] = arguments[i];\n }\n e = t.call.apply(t, [ this ].concat(o));\n F(D(e), \"component\", null);\n F(D(e), \"handleMount\", (function(t) {\n e.component = t;\n }));\n return e;\n }\n R(r, [ {\n key: \"focus\",\n /**\n * Place focus on the link.\n */\n value: function e() {\n var t;\n (t = this.component) === null || t === void 0 ? void 0 : t.focus();\n }\n }, {\n key: \"render\",\n value: function e() {\n var t = this.props, r = t.children, o = t.openInNewContext, i = P(t, [ \"children\", \"openInNewContext\" ]);\n var a = false;\n var l;\n if (o) {\n a = true;\n l = typeof o === \"string\" ? o : G;\n }\n \n return n().createElement(k, _({\n \"data-test\": \"link\",\n ref: this.handleMount,\n openInNewContext: a\n }, i), r, o && n().createElement(n().Fragment, null, n().createElement(O, null), n().createElement(u(), null, l)));\n }\n } ]);\n return r;\n }(r.Component);\n F(H, \"propTypes\", B);\n F(H, \"defaultProps\", L);\n F(H, l.legacyRefMode, true);\n /* harmony default export */ const J = H;\n // CONCATENATED MODULE: ./src/Link/index.ts\n module.exports = t;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = r => {\n /******/ var a = r && r.__esModule ? \n /******/ () => r[\"default\"]\n /******/ : () => r\n /******/;\n e.d(a, {\n a\n });\n /******/ return a;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (r, a) => {\n /******/ for (var i in a) {\n /******/ if (e.o(a, i) && !e.o(r, i)) {\n /******/ Object.defineProperty(r, i, {\n enumerable: true,\n get: a[i]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var r = {};\n // ESM COMPAT FLAG\n e.r(r);\n // EXPORTS\n e.d(r, {\n Link: () => /* reexport */ X,\n default: () => /* reexport */ oe\n });\n // CONCATENATED MODULE: external \"react\"\n const a = require(\"react\");\n var i = e.n(a);\n // CONCATENATED MODULE: external \"prop-types\"\n const n = require(\"prop-types\");\n var s = e.n(n);\n // CONCATENATED MODULE: external \"@splunk/react-icons/CheckCircle\"\n const o = require(\"@splunk/react-icons/CheckCircle\");\n var t = e.n(o);\n // CONCATENATED MODULE: external \"@splunk/react-icons/Cross\"\n const c = require(\"@splunk/react-icons/Cross\");\n var l = e.n(c);\n // CONCATENATED MODULE: external \"@splunk/react-icons/enterprise/Close\"\n const p = require(\"@splunk/react-icons/enterprise/Close\");\n var v = e.n(p);\n // CONCATENATED MODULE: external \"@splunk/react-icons/ExclamationCircle\"\n const u = require(\"@splunk/react-icons/ExclamationCircle\");\n var d = e.n(u);\n // CONCATENATED MODULE: external \"@splunk/react-icons/InformationCircle\"\n const b = require(\"@splunk/react-icons/InformationCircle\");\n var g = e.n(b);\n // CONCATENATED MODULE: external \"@splunk/react-icons/ExclamationTriangle\"\n const f = require(\"@splunk/react-icons/ExclamationTriangle\");\n var m = e.n(f);\n // CONCATENATED MODULE: external \"@splunk/react-icons/enterprise/Error\"\n const y = require(\"@splunk/react-icons/enterprise/Error\");\n var k = e.n(y);\n // CONCATENATED MODULE: external \"@splunk/react-icons/enterprise/InfoCircle\"\n const h = require(\"@splunk/react-icons/enterprise/InfoCircle\");\n var C = e.n(h);\n // CONCATENATED MODULE: external \"@splunk/react-icons/enterprise/Success\"\n const x = require(\"@splunk/react-icons/enterprise/Success\");\n var w = e.n(x);\n // CONCATENATED MODULE: external \"@splunk/react-icons/enterprise/Warning\"\n const O = require(\"@splunk/react-icons/enterprise/Warning\");\n var S = e.n(O);\n // CONCATENATED MODULE: external \"@splunk/react-ui/MessageBar\"\n const j = require(\"@splunk/react-ui/MessageBar\");\n var q = e.n(j);\n // CONCATENATED MODULE: external \"@splunk/themes\"\n const E = require(\"@splunk/themes\");\n // CONCATENATED MODULE: external \"styled-components\"\n const P = require(\"styled-components\");\n var I = e.n(P);\n // CONCATENATED MODULE: external \"@splunk/react-ui/Link\"\n const L = require(\"@splunk/react-ui/Link\");\n var R = e.n(L);\n // CONCATENATED MODULE: ./src/Message/LinkStyles.ts\n var T = I()(R()).withConfig({\n displayName: \"LinkStyles__StyledLink\",\n componentId: \"w06zjv-0\"\n })([ \"\" ]);\n // CONCATENATED MODULE: ./src/Message/Link.tsx\n function $(e, r) {\n if (e == null) return {};\n var a = _(e, r);\n var i, n;\n if (Object.getOwnPropertySymbols) {\n var s = Object.getOwnPropertySymbols(e);\n for (n = 0; n < s.length; n++) {\n i = s[n];\n if (r.indexOf(i) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(e, i)) continue;\n a[i] = e[i];\n }\n }\n return a;\n }\n function _(e, r) {\n if (e == null) return {};\n var a = {};\n var i = Object.keys(e);\n var n, s;\n for (s = 0; s < i.length; s++) {\n n = i[s];\n if (r.indexOf(n) >= 0) continue;\n a[n] = e[n];\n }\n return a;\n }\n var M = {\n children: s().node,\n elementRef: s().oneOfType([ s().func, s().object ]),\n openInNewContext: s().bool,\n to: s().string\n };\n /**\n * @deprecated `Message.Link` is deprecated and will be removed in a future major version. Use `Link` instead.\n *\n * A `Link` styled to work with `Message`'s `banner` appearance.\n */ function N(e) {\n var r = e.children, a = $(e, [ \"children\" ]);\n // @docs-props-type LinkPropsBase\n if (false) {}\n \n return i().createElement(T, a, r);\n }\n N.propTypes = M;\n /* harmony default export */ const X = N;\n // CONCATENATED MODULE: external \"@splunk/react-ui/Box\"\n const A = require(\"@splunk/react-ui/Box\");\n var W = e.n(A);\n // CONCATENATED MODULE: external \"@splunk/react-ui/Clickable\"\n const V = require(\"@splunk/react-ui/Clickable\");\n var z = e.n(V);\n // CONCATENATED MODULE: ./src/Message/TitleStyles.ts\n var B = I().p.withConfig({\n displayName: \"TitleStyles__StyledTitle\",\n componentId: \"sc-6gbjha-0\"\n })([ \"\", \" \", \"\" ], E.mixins.reset(\"block\"), (0, E.pick)({\n prisma: (0, P.css)([ \"font-size:14px;line-height:20px;\" ])\n }));\n // CONCATENATED MODULE: ./src/Message/MessageStyles.ts\n var D = I().div.withConfig({\n displayName: \"MessageStyles__StyledContent\",\n componentId: \"eg66af-0\"\n })([ \"display:flex;align-items:baseline;flex:1;\", \";\", \" \", \";\" ], (0, E.pick)({\n prisma: (0, P.css)([ \"padding:\", \" 0;color:\", \";\" ], E.variables.spacingMedium, E.variables.contentColorActive),\n enterprise: (0, P.css)([ \"padding:12px 0;\" ])\n }), (0, E.pick)({\n prisma: (0, P.css)([ \"padding-left:\", \";\" ], E.variables.spacingXSmall),\n enterprise: (0, P.css)([ \"padding-left:15px;\" ])\n }), (function(e) {\n var r = e.$fillStyle;\n return r && (0, E.pick)({\n prisma: (0, P.css)([ \"padding-left:\", \";\" ], E.variables.spacingMedium)\n });\n }));\n var H = I()(z()).withConfig({\n displayName: \"MessageStyles__StyledRemove\",\n componentId: \"eg66af-1\"\n })([ \"\", \";border:1px solid transparent;border-radius:\", \";color:\", \";\", \";cursor:pointer;position:absolute;\", \" padding:8px;&:hover,&:focus{background:\", \";border:\", \";color:\", \";}&:active{\", \";}\", \"\" ], E.mixins.reset(\"flex\"), (0, \n E.pick)({\n prisma: \"50%\",\n enterprise: E.variables.borderRadius\n }), (0, E.pick)({\n prisma: E.variables.contentColorMuted,\n enterprise: {\n dark: E.variables.gray96,\n light: E.variables.gray45\n }\n }), (function(e) {\n var r = e.$appearance;\n return r === \"banner\" && (0, E.pick)({\n prisma: (0, P.css)([ \"color:\", \";\" ], E.variables.contentColorInverted)\n });\n }), (0, E.pick)({\n prisma: (0, P.css)([ \"top:3px;right:2px;\" ]),\n enterprise: (0, P.css)([ \"top:8px;right:8px;\" ])\n }), (0, E.pick)({\n prisma: E.variables.interactiveColorOverlayHover,\n enterprise: {\n dark: E.variables.gray30,\n light: E.variables.gray92\n }\n }), (0, E.pick)({\n prisma: (0, P.css)([ \"1px solid inherit\" ]),\n enterprise: (0, P.css)([ \"1px solid \", \"\" ], E.variables.gray80)\n }), (0, E.pick)({\n enterprise: {\n dark: E.variables.gray96,\n light: E.variables.linkColor\n },\n prisma: E.variables.contentColorActive\n }), (0, E.pick)({\n prisma: (0, P.css)([ \"background:\", \";\" ], E.variables.interactiveColorOverlayActive),\n enterprise: (0, P.css)([ \"box-shadow:\", \";\" ], E.variables.focusShadow)\n }), (0, E.pick)({\n prisma: (0, P.css)([ \"&:focus{box-shadow:0 0 0 3px \", \";}\" ], E.variables.focusColor)\n }));\n var F = I().span.withConfig({\n displayName: \"MessageStyles__StyledIconWrapper\",\n componentId: \"eg66af-2\"\n })([ \"position:relative;min-width:\", \";text-align:center;color:\", \";\", \" \", \"\" ], (0, \n E.pick)({\n prisma: E.variables.spacingXLarge,\n enterprise: \"25px\"\n }), E.variables.white, (0, E.pick)({\n enterprise: (0, P.css)([ \"top:-2px;\" ]),\n prisma: (0, P.css)([ \"top:-1.8px;\" ])\n }), (0, E.pickVariant)(\"$type\", {\n info: (0, P.css)([ \"color:\", \";\" ], (0, E.pick)({\n prisma: E.variables.contentColorMuted,\n enterprise: E.variables.infoColor\n })),\n success: (0, P.css)([ \"color:\", \";\" ], E.variables.accentColorPositive),\n warning: (0, P.css)([ \"color:\", \";\" ], E.variables.accentColorWarning),\n error: (0, P.css)([ \"color:\", \";\" ], E.variables.accentColorNegative)\n }));\n var G = I()(W()).withConfig({\n displayName: \"MessageStyles__StyledBox\",\n componentId: \"eg66af-3\"\n })([ \"\", \";align-items:baseline;position:relative;border-radius:\", \";margin-bottom:\", \";\", \" word-wrap:break-word;\", \" \", \"\" ], E.mixins.reset(\"flex\"), (0, \n E.pick)({\n prisma: E.variables.borderRadius,\n enterprise: \"5px\"\n }), E.variables.spacingSmall, (0, E.pickVariant)(\"$hasRemoveIcon\", {\n true: {\n prisma: (0, P.css)([ \"padding-right:\", \";\" ], E.variables.spacingXXXLarge),\n enterprise: (0, P.css)([ \"padding-right:40px;\" ])\n },\n false: {\n prisma: (0, P.css)([ \"padding-right:\", \";\" ], E.variables.spacingSmall),\n enterprise: (0, P.css)([ \"padding-right:\", \";\" ], E.variables.spacingHalf)\n }\n }), (function(e) {\n var r = e.$fillStyle;\n return r && (0, E.pick)({\n enterprise: (0, P.css)([ \"& > \", \"{left:\", \";}\", \"\" ], \n /* sc-sel */\n F, E.variables.spacingXSmall, (0, E.pickVariant)(\"$type\", {\n info: (0, P.css)([ \"\", \"\" ], (0, E.pick)({\n light: (0, P.css)([ \"background-color:\", \";border:1px solid \", \";\" ], E.variables.infoColorL50, E.variables.infoColor),\n dark: (0, P.css)([ \"background-color:\", \";\" ], E.mixins.colorWithAlpha(E.variables.infoColor, .5))\n })),\n success: (0, P.css)([ \"\", \"\" ], (0, E.pick)({\n light: (0, P.css)([ \"background-color:\", \";border:1px solid \", \";\" ], E.variables.successColorL50, E.variables.successColor),\n dark: (0, P.css)([ \"background-color:\", \";\" ], E.mixins.colorWithAlpha(E.variables.successColor, .5))\n })),\n warning: (0, P.css)([ \"\", \"\" ], (0, E.pick)({\n light: (0, P.css)([ \"background-color:\", \";border:1px solid \", \";\" ], E.variables.warningColorL50, E.variables.warningColor),\n dark: (0, P.css)([ \"background-color:\", \";\" ], E.mixins.colorWithAlpha(E.variables.warningColor, .5))\n })),\n error: (0, P.css)([ \"\", \"\" ], (0, E.pick)({\n light: (0, P.css)([ \"background-color:\", \";border:1px solid \", \";\" ], E.variables.errorColorL50, E.variables.errorColor),\n dark: (0, P.css)([ \"background-color:\", \";\" ], E.mixins.colorWithAlpha(E.variables.errorColor, .5))\n }))\n })),\n prisma: (0, P.css)([ \"background:linear-gradient( to right,\", \" \", \" \", \",\", \" 100% );box-shadow:\", \";& > \", \"{color:\", \";}\" ], (0, \n E.pickVariant)(\"$type\", {\n info: (0, P.css)([ \"\", \" 0,\", \" \", \",\" ], E.variables.contentColorActive, E.variables.contentColorActive, E.variables.spacingXLarge),\n success: (0, P.css)([ \"\", \" 0,\", \" \", \",\" ], E.variables.accentColorPositive, E.variables.accentColorPositive, E.variables.spacingXLarge),\n warning: (0, P.css)([ \"\", \" 0,\", \" \", \",\" ], E.variables.accentColorWarning, E.variables.accentColorWarning, E.variables.spacingXLarge),\n error: (0, P.css)([ \"\", \" 0,\", \" \", \",\" ], E.variables.accentColorNegative, E.variables.accentColorNegative, E.variables.spacingXLarge)\n }), E.variables.backgroundColorPopup, E.variables.spacingXLarge, E.variables.backgroundColorPopup, E.variables.embossShadow, \n /* sc-sel */\n F, E.variables.backgroundColorPopup)\n });\n }), (0, E.pick)({\n prisma: (0, P.css)([ \"& \", \"{color:\", \";}\" ], \n /* sc-sel */\n B, (0, E.pickVariant)(\"$type\", {\n info: E.variables.contentColorActive,\n warning: E.variables.accentColorWarning,\n error: E.variables.accentColorNegative,\n success: E.variables.accentColorPositive\n }))\n }));\n // CONCATENATED MODULE: ./src/Message/Title.tsx\n function J(e, r) {\n if (e == null) return {};\n var a = K(e, r);\n var i, n;\n if (Object.getOwnPropertySymbols) {\n var s = Object.getOwnPropertySymbols(e);\n for (n = 0; n < s.length; n++) {\n i = s[n];\n if (r.indexOf(i) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(e, i)) continue;\n a[i] = e[i];\n }\n }\n return a;\n }\n function K(e, r) {\n if (e == null) return {};\n var a = {};\n var i = Object.keys(e);\n var n, s;\n for (s = 0; s < i.length; s++) {\n n = i[s];\n if (r.indexOf(n) >= 0) continue;\n a[n] = e[n];\n }\n return a;\n }\n var Q = {\n children: s().node\n };\n /**\n * A title component for use in `Message`.\n */ function U(e) {\n var r = e.children, a = J(e, [ \"children\" ]);\n // @docs-props-type TitleProps\n \n return i().createElement(B, a, r);\n }\n U.propTypes = Q;\n /* harmony default export */ const Y = U;\n // CONCATENATED MODULE: ./src/Message/Message.tsx\n function Z() {\n Z = Object.assign || function(e) {\n for (var r = 1; r < arguments.length; r++) {\n var a = arguments[r];\n for (var i in a) {\n if (Object.prototype.hasOwnProperty.call(a, i)) {\n e[i] = a[i];\n }\n }\n }\n return e;\n };\n return Z.apply(this, arguments);\n }\n function ee(e, r) {\n if (e == null) return {};\n var a = re(e, r);\n var i, n;\n if (Object.getOwnPropertySymbols) {\n var s = Object.getOwnPropertySymbols(e);\n for (n = 0; n < s.length; n++) {\n i = s[n];\n if (r.indexOf(i) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(e, i)) continue;\n a[i] = e[i];\n }\n }\n return a;\n }\n function re(e, r) {\n if (e == null) return {};\n var a = {};\n var i = Object.keys(e);\n var n, s;\n for (s = 0; s < i.length; s++) {\n n = i[s];\n if (r.indexOf(n) >= 0) continue;\n a[n] = e[n];\n }\n return a;\n }\n var ae = {\n appearance: s().oneOf([ \"default\", \"fill\", \"banner\" ]),\n children: s().node,\n elementRef: s().oneOfType([ s().func, s().object ]),\n onRequestRemove: s().func,\n type: s().oneOf([ \"info\", \"success\", \"warning\", \"error\" ])\n };\n var ie = Object.freeze({\n info: C(),\n warning: S(),\n error: k(),\n success: w()\n });\n var ne = Object.freeze({\n info: g(),\n warning: m(),\n error: d(),\n success: t()\n });\n function se(e) {\n var r = e.appearance, n = r === void 0 ? \"default\" : r, s = e.children, o = e.type, t = o === void 0 ? \"warning\" : o, c = e.onRequestRemove, p = ee(e, [ \"appearance\", \"children\", \"type\", \"onRequestRemove\" ]);\n // @docs-props-type MessagePropsBase\n var u = (0, E.useSplunkTheme)(), d = u.isEnterprise;\n if (false) {}\n // double check this can only be button\n var b = (0, a.useCallback)((function(e) {\n c === null || c === void 0 ? void 0 : c(e);\n }), [ c ]);\n if (n === \"banner\") {\n \n return i().createElement(q(), Z({\n type: t,\n \"data-test\": \"banner\",\n onRequestClose: b\n }, p), s);\n }\n var g = d ? ie : ne;\n var f = g[t];\n var m = n === \"fill\";\n var y = n === \"default\" || n === \"fill\";\n \n return i().createElement(G, Z({\n $appearance: n,\n $fillStyle: m,\n $hasRemoveIcon: !!c,\n $type: t,\n \"data-test-type\": t,\n \"data-test\": \"message\"\n }, p), y && i().createElement(F, {\n $fillStyle: m,\n $type: t\n }, d ? i().createElement(f, {\n height: \"24px\",\n width: \"24px\",\n hideDefaultTooltip: true,\n screenReaderText: null\n }) : i().createElement(f, {\n variant: \"filled\"\n })), i().createElement(D, {\n \"data-test\": \"content\",\n $fillStyle: m\n }, s), c && i().createElement(H, {\n \"data-test\": \"remove\",\n onClick: b,\n $appearance: n\n }, d ? i().createElement(v(), {\n height: \"12px\",\n hideDefaultTooltip: true,\n screenReaderText: null,\n width: \"12px\"\n }) : i().createElement(l(), {\n height: \"20px\",\n width: \"20px\"\n })));\n }\n se.propTypes = ae;\n se.Title = Y;\n se.Link = X;\n /* harmony default export */ const oe = se;\n // CONCATENATED MODULE: ./src/Message/index.ts\n module.exports = r;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = r => {\n /******/ var a = r && r.__esModule ? \n /******/ () => r[\"default\"]\n /******/ : () => r\n /******/;\n e.d(a, {\n a\n });\n /******/ return a;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (r, a) => {\n /******/ for (var i in a) {\n /******/ if (e.o(a, i) && !e.o(r, i)) {\n /******/ Object.defineProperty(r, i, {\n enumerable: true,\n get: a[i]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var r = {};\n // ESM COMPAT FLAG\n e.r(r);\n // EXPORTS\n e.d(r, {\n default: () => /* reexport */ ie\n });\n // CONCATENATED MODULE: external \"react\"\n const a = require(\"react\");\n var i = e.n(a);\n // CONCATENATED MODULE: external \"prop-types\"\n const s = require(\"prop-types\");\n var n = e.n(s);\n // CONCATENATED MODULE: external \"@splunk/react-icons/Cross\"\n const t = require(\"@splunk/react-icons/Cross\");\n var o = e.n(t);\n // CONCATENATED MODULE: external \"@splunk/react-icons/enterprise/Close\"\n const c = require(\"@splunk/react-icons/enterprise/Close\");\n var l = e.n(c);\n // CONCATENATED MODULE: external \"@splunk/react-ui/ScreenReaderContent\"\n const p = require(\"@splunk/react-ui/ScreenReaderContent\");\n var u = e.n(p);\n // CONCATENATED MODULE: external \"@splunk/themes\"\n const d = require(\"@splunk/themes\");\n // CONCATENATED MODULE: external \"@splunk/ui-utils/i18n\"\n const v = require(\"@splunk/ui-utils/i18n\");\n // CONCATENATED MODULE: external \"styled-components\"\n const g = require(\"styled-components\");\n var b = e.n(g);\n // CONCATENATED MODULE: external \"@splunk/react-icons/CheckCircle\"\n const h = require(\"@splunk/react-icons/CheckCircle\");\n var y = e.n(h);\n // CONCATENATED MODULE: external \"@splunk/react-icons/ExclamationCircle\"\n const m = require(\"@splunk/react-icons/ExclamationCircle\");\n var f = e.n(m);\n // CONCATENATED MODULE: external \"@splunk/react-icons/InformationCircle\"\n const k = require(\"@splunk/react-icons/InformationCircle\");\n var x = e.n(k);\n // CONCATENATED MODULE: external \"@splunk/react-icons/ExclamationTriangle\"\n const C = require(\"@splunk/react-icons/ExclamationTriangle\");\n var w = e.n(C);\n // CONCATENATED MODULE: external \"@splunk/react-icons/enterprise/Error\"\n const S = require(\"@splunk/react-icons/enterprise/Error\");\n var _ = e.n(S);\n // CONCATENATED MODULE: external \"@splunk/react-icons/enterprise/InfoCircle\"\n const I = require(\"@splunk/react-icons/enterprise/InfoCircle\");\n var z = e.n(I);\n // CONCATENATED MODULE: external \"@splunk/react-icons/enterprise/Success\"\n const q = require(\"@splunk/react-icons/enterprise/Success\");\n var O = e.n(q);\n // CONCATENATED MODULE: external \"@splunk/react-icons/enterprise/Warning\"\n const E = require(\"@splunk/react-icons/enterprise/Warning\");\n var B = e.n(E);\n // CONCATENATED MODULE: external \"@splunk/react-ui/Box\"\n const M = require(\"@splunk/react-ui/Box\");\n var j = e.n(M);\n // CONCATENATED MODULE: external \"@splunk/react-ui/Clickable\"\n const N = require(\"@splunk/react-ui/Clickable\");\n var R = e.n(N);\n // CONCATENATED MODULE: ./src/MessageBar/MessageBarStyles.ts\n var T = b().div.withConfig({\n displayName: \"MessageBarStyles__MessageBarContent\",\n componentId: \"sc-1uyhzza-0\"\n })([ \"\", \";color:inherit;padding:0 8px;text-align:center;margin-right:auto;& a{display:inline-block;color:inherit;text-decoration:underline;text-underline-position:under;padding:0 3px 2px 3px;&:not([disabled]):focus{border-radius:\", \";outline:0;box-shadow:\", \";}}\" ], d.mixins.reset(\"inline\"), d.variables.borderRadius, (0, \n d.pick)({\n enterprise: {\n dark: (0, g.css)([ \"0 0 0 2px \", \"\" ], d.variables.gray80),\n light: (0, g.css)([ \"0 0 0 2px \", \"\" ], d.variables.gray25)\n },\n prisma: {\n light: (0, d.pickVariant)(\"$type\", {\n info: (0, g.css)([ \"0 0 0 3px \", \"\" ], d.variables.black),\n warning: (0, g.css)([ \"0 0 0 3px \", \"\" ], d.variables.black),\n error: (0, g.css)([ \"0 0 0 3px \", \"\" ], d.variables.white),\n success: (0, g.css)([ \"0 0 0 3px \", \"\" ], d.variables.white)\n }),\n dark: (0, g.css)([ \"0 0 0 3px \", \"\" ], d.variables.black)\n }\n }));\n var W = b()(R()).withConfig({\n displayName: \"MessageBarStyles__MessageBarCloseWrapper\",\n componentId: \"sc-1uyhzza-1\"\n })([ \"\", \";border:1px solid transparent;border-radius:\", \";color:inherit;cursor:pointer;padding:\", \";\", \" &:hover,&:focus{background:\", \";border:\", \";color:\", \";}&:active{\", \";}\", \"\" ], d.mixins.reset(\"flex\"), d.variables.borderRadius, (0, \n d.pick)({\n enterprise: d.variables.spacingXSmall,\n prisma: \"3px\"\n }), (0, d.pick)({\n enterprise: (0, g.css)([ \"margin-top:1px;\" ])\n }), (0, d.pick)({\n prisma: d.variables.interactiveColorOverlayHover,\n enterprise: {\n dark: d.variables.gray30,\n light: d.variables.gray92\n }\n }), (0, d.pick)({\n prisma: (0, g.css)([ \"1px solid inherit\" ]),\n enterprise: (0, g.css)([ \"1px solid \", \"\" ], d.variables.gray80)\n }), (0, d.pick)({\n enterprise: {\n dark: d.variables.gray96,\n light: d.variables.linkColor\n }\n }), (0, d.pick)({\n prisma: (0, g.css)([ \"background:\", \";\" ], d.variables.interactiveColorOverlayActive),\n enterprise: (0, g.css)([ \"box-shadow:\", \";\" ], d.variables.focusShadow)\n }), (0, d.pick)({\n prisma: (0, g.css)([ \"&:focus{border-radius:\", \";box-shadow:\", \";}\" ], d.variables.borderRadius, (0, \n d.pick)({\n light: (0, d.pickVariant)(\"$type\", {\n info: (0, g.css)([ \"0 0 0 3px \", \"\" ], d.variables.black),\n warning: (0, g.css)([ \"0 0 0 3px \", \"\" ], d.variables.black),\n error: (0, g.css)([ \"0 0 0 3px \", \"\" ], d.variables.white),\n success: (0, g.css)([ \"0 0 0 3px \", \"\" ], d.variables.white)\n }),\n dark: (0, g.css)([ \"0 0 0 3px \", \"\" ], d.variables.black)\n }))\n }));\n var $ = (0, g.css)([ \"margin-left:auto;\" ]);\n var P = b()(y()).withConfig({\n displayName: \"MessageBarStyles__StyledCheckCircleIcon\",\n componentId: \"sc-1uyhzza-2\"\n })([ \"\", \"\" ], $);\n var A = b()(f()).withConfig({\n displayName: \"MessageBarStyles__StyledExclamationCircleIcon\",\n componentId: \"sc-1uyhzza-3\"\n })([ \"\", \"\" ], $);\n var L = b()(x()).withConfig({\n displayName: \"MessageBarStyles__StyledInformationCircleIcon\",\n componentId: \"sc-1uyhzza-4\"\n })([ \"\", \"\" ], $);\n var V = b()(w()).withConfig({\n displayName: \"MessageBarStyles__StyledExclamationTriangleIcon\",\n componentId: \"sc-1uyhzza-5\"\n })([ \"\", \"\" ], $);\n var D = b()(_()).withConfig({\n displayName: \"MessageBarStyles__StyledEnterpriseErrorIcon\",\n componentId: \"sc-1uyhzza-6\"\n })([ \"\", \" color:\", \";\" ], $, d.variables.errorColor);\n var H = b()(z()).withConfig({\n displayName: \"MessageBarStyles__StyledEnterpriseInfoCircleIcon\",\n componentId: \"sc-1uyhzza-7\"\n })([ \"\", \" color:\", \";\" ], $, d.variables.infoColor);\n var X = b()(O()).withConfig({\n displayName: \"MessageBarStyles__StyledEnterpriseSuccessIcon\",\n componentId: \"sc-1uyhzza-8\"\n })([ \"\", \" color:\", \";\" ], $, d.variables.successColor);\n var F = b()(B()).withConfig({\n displayName: \"MessageBarStyles__StyledEnterpriseWarningIcon\",\n componentId: \"sc-1uyhzza-9\"\n })([ \"\", \" color:\", \";\" ], $, d.variables.warningColor);\n var G = b()(j()).withConfig({\n displayName: \"MessageBarStyles__MessageBarWrapper\",\n componentId: \"sc-1uyhzza-10\"\n })([ \"\", \";display:flex;align-items:center;justify-content:center;min-height:40px;margin-bottom:\", \";\", \";word-wrap:break-word;color:\", \";\", \";\" ], d.mixins.reset(\"block\"), d.variables.spacingSmall, (function(e) {\n var r = e.$hasCloseButton;\n return r ? (0, g.css)([ \"\", \"\" ], (0, d.pick)({\n prisma: (0, g.css)([ \"padding:0 8px 0 32px;\" ]),\n enterprise: (0, g.css)([ \"padding:0 8px 0 38px;\" ])\n })) : (0, g.css)([ \"\", \"\" ], (0, d.pick)({\n prisma: (0, g.css)([ \"padding:0 33px 0 32px;\" ]),\n enterprise: (0, g.css)([ \"padding:0 26px 0 32px;\" ])\n }));\n }), (0, d.pick)({\n prisma: (0, d.pickVariant)(\"$type\", {\n info: {\n light: d.variables.contentColorActive,\n dark: d.variables.contentColorInverted\n },\n success: d.variables.contentColorInverted,\n warning: d.variables.black,\n error: d.variables.contentColorInverted\n }),\n enterprise: {\n dark: d.variables.gray96,\n light: d.variables.gray25\n }\n }), (0, d.pickVariant)(\"$type\", {\n info: (0, g.css)([ \"background-color:\", \";\" ], (0, d.pick)({\n prisma: {\n dark: d.variables.white,\n light: d.variables.neutral200\n },\n enterprise: {\n dark: d.mixins.colorWithAlpha(d.variables.infoColor, .5),\n light: d.variables.infoColorL50\n }\n })),\n success: (0, g.css)([ \"background-color:\", \";\" ], (0, d.pick)({\n prisma: d.variables.accentColorPositive,\n enterprise: {\n dark: d.mixins.colorWithAlpha(d.variables.successColor, .5),\n light: d.variables.successColorL50\n }\n })),\n warning: (0, g.css)([ \"background-color:\", \";\" ], (0, d.pick)({\n prisma: d.variables.accentColorWarning,\n enterprise: {\n dark: d.mixins.colorWithAlpha(d.variables.warningColor, .5),\n light: d.variables.warningColorL50\n }\n })),\n error: (0, g.css)([ \"background-color:\", \";\" ], (0, d.pick)({\n prisma: d.variables.accentColorNegative,\n enterprise: {\n dark: d.mixins.colorWithAlpha(d.variables.errorColor, .5),\n light: d.variables.errorColorL50\n }\n }))\n }));\n // CONCATENATED MODULE: ./src/MessageBar/MessageBar.tsx\n function J() {\n J = Object.assign || function(e) {\n for (var r = 1; r < arguments.length; r++) {\n var a = arguments[r];\n for (var i in a) {\n if (Object.prototype.hasOwnProperty.call(a, i)) {\n e[i] = a[i];\n }\n }\n }\n return e;\n };\n return J.apply(this, arguments);\n }\n function K(e, r) {\n if (e == null) return {};\n var a = Q(e, r);\n var i, s;\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n for (s = 0; s < n.length; s++) {\n i = n[s];\n if (r.indexOf(i) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(e, i)) continue;\n a[i] = e[i];\n }\n }\n return a;\n }\n function Q(e, r) {\n if (e == null) return {};\n var a = {};\n var i = Object.keys(e);\n var s, n;\n for (n = 0; n < i.length; n++) {\n s = i[n];\n if (r.indexOf(s) >= 0) continue;\n a[s] = e[s];\n }\n return a;\n }\n var U = {\n children: n().node.isRequired,\n onRequestClose: n().func,\n type: n().oneOf([ \"info\", \"success\", \"warning\", \"error\" ]).isRequired\n };\n var Y = Object.freeze({\n info: (0, v._)(\"Info\"),\n warning: (0, v._)(\"Warning\"),\n error: (0, v._)(\"Alert\"),\n success: (0, v._)(\"Success\")\n });\n var Z = Object.freeze({\n info: H,\n warning: F,\n error: D,\n success: X\n });\n var ee = Object.freeze({\n info: L,\n warning: V,\n error: A,\n success: P\n });\n var re = \"24px\";\n function ae(e) {\n var r = e.children, a = e.type, s = e.onRequestClose, n = K(e, [ \"children\", \"type\", \"onRequestClose\" ]);\n // @docs-props-type MessageBarPropsBase\n var t = (0, d.useSplunkTheme)(), c = t.isEnterprise;\n var p = c && a === \"error\" ? \"22px\" : re;\n var g = c && a === \"warning\" ? \"21px\" : re;\n var b;\n if (c) {\n var h = Z[a];\n b = i().createElement(h, {\n height: g,\n width: p,\n hideDefaultTooltip: true,\n screenReaderText: null,\n \"aria-hidden\": true,\n \"data-test\": \"icon\"\n });\n } else {\n var y = ee[a];\n b = i().createElement(y, {\n height: re,\n width: re,\n variant: \"filled\",\n \"aria-hidden\": true,\n \"data-test\": \"icon\"\n });\n }\n \n return i().createElement(G, J({\n $type: a,\n \"data-test\": \"message-bar\",\n \"data-test-type\": a\n }, n, {\n role: \"region\",\n $hasCloseButton: Boolean(s)\n }), b, i().createElement(u(), null, Y[a]), i().createElement(T, {\n $type: a,\n \"data-test\": \"content\"\n }, r), s && i().createElement(W, {\n $type: a,\n onClick: s\n }, c ? i().createElement(l(), {\n height: \"12px\",\n hideDefaultTooltip: true,\n screenReaderText: null,\n width: \"12px\"\n }) : i().createElement(o(), {\n height: \"19px\",\n style: {\n margin: -.5\n },\n width: \"19px\"\n }), i().createElement(u(), null, (0, v._)(\"Close\"))));\n }\n ae.propTypes = U;\n /* harmony default export */ const ie = ae;\n // CONCATENATED MODULE: ./src/MessageBar/index.ts\n module.exports = r;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = t => {\n /******/ var r = t && t.__esModule ? \n /******/ () => t[\"default\"]\n /******/ : () => t\n /******/;\n e.d(r, {\n a: r\n });\n /******/ return r;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (t, r) => {\n /******/ for (var n in r) {\n /******/ if (e.o(r, n) && !e.o(t, n)) {\n /******/ Object.defineProperty(t, n, {\n enumerable: true,\n get: r[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var t = {};\n // ESM COMPAT FLAG\n e.r(t);\n // EXPORTS\n e.d(t, {\n Body: () => /* reexport */ R,\n Footer: () => /* reexport */ V,\n Header: () => /* reexport */ ce,\n default: () => /* reexport */ Re\n });\n // CONCATENATED MODULE: external \"react\"\n const r = require(\"react\");\n var n = e.n(r);\n // CONCATENATED MODULE: external \"prop-types\"\n const o = require(\"prop-types\");\n var i = e.n(o);\n // CONCATENATED MODULE: external \"lodash/defer\"\n const a = require(\"lodash/defer\");\n var l = e.n(a);\n // CONCATENATED MODULE: external \"lodash/keys\"\n const c = require(\"lodash/keys\");\n var s = e.n(c);\n // CONCATENATED MODULE: external \"lodash/memoize\"\n const u = require(\"lodash/memoize\");\n var p = e.n(u);\n // CONCATENATED MODULE: external \"lodash/omit\"\n const f = require(\"lodash/omit\");\n var d = e.n(f);\n // CONCATENATED MODULE: external \"@splunk/react-ui/ModalLayer\"\n const y = require(\"@splunk/react-ui/ModalLayer\");\n var b = e.n(y);\n // CONCATENATED MODULE: external \"@splunk/ui-utils/focus\"\n const m = require(\"@splunk/ui-utils/focus\");\n // CONCATENATED MODULE: external \"@splunk/ui-utils/id\"\n const v = require(\"@splunk/ui-utils/id\");\n // CONCATENATED MODULE: external \"@splunk/react-ui/ScrollContainerContext\"\n const h = require(\"@splunk/react-ui/ScrollContainerContext\");\n // CONCATENATED MODULE: external \"styled-components\"\n const g = require(\"styled-components\");\n var x = e.n(g);\n // CONCATENATED MODULE: external \"@splunk/react-ui/Box\"\n const O = require(\"@splunk/react-ui/Box\");\n var S = e.n(O);\n // CONCATENATED MODULE: external \"@splunk/themes\"\n const w = require(\"@splunk/themes\");\n // CONCATENATED MODULE: ./src/Modal/BodyStyles.ts\n var j = x()(S()).withConfig({\n displayName: \"BodyStyles__StyledBox\",\n componentId: \"lv54z7-0\"\n })([ \"background-color:\", \";\", \" flex:0 1 auto;overflow:auto;@media all and (-ms-high-contrast:none){*::-ms-backdrop,&{max-height:calc(100vh - 180px);}}\" ], (0, \n w.pick)({\n enterprise: w.variables.backgroundColor,\n prisma: w.variables.backgroundColorDialog\n }), (0, w.pick)({\n enterprise: {\n comfortable: (0, g.css)([ \"padding:28px;\" ]),\n compact: (0, g.css)([ \"padding:24px;\" ])\n },\n prisma: {\n comfortable: (0, g.css)([ \"padding:12px 24px;&:first-child{padding-top:36px;}&:last-child{padding-bottom:36px;}\" ]),\n compact: (0, g.css)([ \"padding:8px 24px;&:first-child{padding-top:26px;}&:last-child{padding-bottom:26px;}\" ])\n }\n }));\n // CONCATENATED MODULE: ./src/Modal/Body.tsx\n function k() {\n k = Object.assign || function(e) {\n for (var t = 1; t < arguments.length; t++) {\n var r = arguments[t];\n for (var n in r) {\n if (Object.prototype.hasOwnProperty.call(r, n)) {\n e[n] = r[n];\n }\n }\n }\n return e;\n };\n return k.apply(this, arguments);\n }\n function I(e, t) {\n return M(e) || E(e, t) || P(e, t) || C();\n }\n function C() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n function P(e, t) {\n if (!e) return;\n if (typeof e === \"string\") return _(e, t);\n var r = Object.prototype.toString.call(e).slice(8, -1);\n if (r === \"Object\" && e.constructor) r = e.constructor.name;\n if (r === \"Map\" || r === \"Set\") return Array.from(e);\n if (r === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)) return _(e, t);\n }\n function _(e, t) {\n if (t == null || t > e.length) t = e.length;\n for (var r = 0, n = new Array(t); r < t; r++) {\n n[r] = e[r];\n }\n return n;\n }\n function E(e, t) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(e))) return;\n var r = [];\n var n = true;\n var o = false;\n var i = undefined;\n try {\n for (var a = e[Symbol.iterator](), l; !(n = (l = a.next()).done); n = true) {\n r.push(l.value);\n if (t && r.length === t) break;\n }\n } catch (e) {\n o = true;\n i = e;\n } finally {\n try {\n if (!n && a[\"return\"] != null) a[\"return\"]();\n } finally {\n if (o) throw i;\n }\n }\n return r;\n }\n function M(e) {\n if (Array.isArray(e)) return e;\n }\n function T(e, t) {\n if (e == null) return {};\n var r = q(e, t);\n var n, o;\n if (Object.getOwnPropertySymbols) {\n var i = Object.getOwnPropertySymbols(e);\n for (o = 0; o < i.length; o++) {\n n = i[o];\n if (t.indexOf(n) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(e, n)) continue;\n r[n] = e[n];\n }\n }\n return r;\n }\n function q(e, t) {\n if (e == null) return {};\n var r = {};\n var n = Object.keys(e);\n var o, i;\n for (i = 0; i < n.length; i++) {\n o = n[i];\n if (t.indexOf(o) >= 0) continue;\n r[o] = e[o];\n }\n return r;\n }\n var D = {\n children: i().node\n };\n /**\n * A styled container for `Modal` body content.\n */ function F(e) {\n var t = e.children, o = T(e, [ \"children\" ]);\n // @docs-props-type BodyPropsBase\n var i = (0, r.useState)(), a = I(i, 2), l = a[0], c = a[1];\n var s = (0, r.useCallback)((function(e) {\n c(e);\n }), []);\n \n return n().createElement(j, k({\n \"data-test\": \"body\"\n }, o, {\n elementRef: s\n }), n().createElement(h.ScrollContainerProvider, {\n value: l\n }, t));\n }\n F.propTypes = D;\n /* harmony default export */ const R = F;\n // CONCATENATED MODULE: external \"@splunk/react-ui/Divider\"\n const A = require(\"@splunk/react-ui/Divider\");\n var B = e.n(A);\n // CONCATENATED MODULE: ./src/Modal/FooterStyles.ts\n var H = x()(S()).withConfig({\n displayName: \"FooterStyles__StyledBox\",\n componentId: \"yszcmv-0\"\n })([ \"flex:0 0 auto;text-align:right;padding:\", \";background-color:\", \";& > button{min-width:80px;}\" ], (0, \n w.pick)({\n enterprise: w.variables.spacing,\n prisma: {\n comfortable: \"24px\",\n compact: \"18px 24px\"\n }\n }), (0, w.pick)({\n enterprise: w.variables.backgroundColor,\n prisma: w.variables.backgroundColorDialog\n }));\n // CONCATENATED MODULE: ./src/Modal/ModalContext.tsx\n var N = (0, r.createContext)({});\n /* harmony default export */ const z = N;\n // CONCATENATED MODULE: ./src/Modal/Footer.tsx\n function L() {\n L = Object.assign || function(e) {\n for (var t = 1; t < arguments.length; t++) {\n var r = arguments[t];\n for (var n in r) {\n if (Object.prototype.hasOwnProperty.call(r, n)) {\n e[n] = r[n];\n }\n }\n }\n return e;\n };\n return L.apply(this, arguments);\n }\n function X(e, t) {\n if (e == null) return {};\n var r = $(e, t);\n var n, o;\n if (Object.getOwnPropertySymbols) {\n var i = Object.getOwnPropertySymbols(e);\n for (o = 0; o < i.length; o++) {\n n = i[o];\n if (t.indexOf(n) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(e, n)) continue;\n r[n] = e[n];\n }\n }\n return r;\n }\n function $(e, t) {\n if (e == null) return {};\n var r = {};\n var n = Object.keys(e);\n var o, i;\n for (i = 0; i < n.length; i++) {\n o = n[i];\n if (t.indexOf(o) >= 0) continue;\n r[o] = e[o];\n }\n return r;\n }\n var K = {\n children: i().node\n };\n /**\n * A styled container for `Modal` footer content.\n */ function U(e) {\n var t = e.children, o = X(e, [ \"children\" ]);\n // @docs-props-type FooterPropsBase\n var i = (0, r.useContext)(z), a = i.divider;\n var l = a === \"both\" || a === \"footer\";\n \n return n().createElement(n().Fragment, null, l && n().createElement(B(), {\n \"aria-hidden\": true\n }), n().createElement(H, L({\n \"data-test\": \"footer\"\n }, o), t));\n }\n U.propTypes = K;\n /* harmony default export */ const V = U;\n // CONCATENATED MODULE: external \"@splunk/react-ui/CloseButton\"\n const W = require(\"@splunk/react-ui/CloseButton\");\n var G = e.n(W);\n // CONCATENATED MODULE: ./src/Modal/HeaderStyles.ts\n var J = x()(S()).withConfig({\n displayName: \"HeaderStyles__StyledBox\",\n componentId: \"sc-1y722ut-0\"\n })([ \"\", \";flex:0 0 auto;position:relative;min-height:\", \";background-color:\", \";padding:\", \";align-items:center;padding-right:\", \";\" ], w.mixins.reset(\"flex\"), (0, \n w.pick)({\n enterprise: \"30px\",\n prisma: {\n comfortable: \"60px\",\n compact: \"52px\"\n }\n }), (0, w.pick)({\n enterprise: w.variables.backgroundColor,\n prisma: w.variables.backgroundColorDialog\n }), (0, w.pick)({\n enterprise: \"25px 28px\",\n prisma: {\n comfortable: \"18px 24px\",\n compact: \"14px 24px\"\n }\n }), (function(e) {\n var t = e.$close;\n return t && (0, w.pick)({\n enterprise: \"54px\",\n prisma: {\n comfortable: \"64px\",\n compact: \"56px\"\n }\n });\n }));\n var Q = x().div.withConfig({\n displayName: \"HeaderStyles__StyledTitleWrapper\",\n componentId: \"sc-1y722ut-1\"\n })([ \"\", \";flex-direction:column;\" ], w.mixins.reset(\"flex\"));\n var Y = x().div.withConfig({\n displayName: \"HeaderStyles__StyledIcon\",\n componentId: \"sc-1y722ut-2\"\n })([ \"\", \";align-items:center;justify-content:center;margin-right:\", \";background-color:\", \";width:\", \";height:\", \";flex-shrink:0;\" ], w.mixins.reset(\"inline-flex\"), w.variables.spacingLarge, w.variables.transparent, (0, \n w.pick)({\n comfortable: \"40px\",\n compact: \"32px\"\n }), (0, w.pick)({\n comfortable: \"40px\",\n compact: \"32px\"\n }));\n var Z = x().div.withConfig({\n displayName: \"HeaderStyles__StyledTitle\",\n componentId: \"sc-1y722ut-3\"\n })([ \"\", \";font-size:20px;margin:0;overflow-wrap:break-word;font-weight:\", \";color:\", \";\", \"\" ], w.mixins.reset(\"block\"), w.variables.fontWeightSemiBold, w.variables.contentColorActive, (0, \n w.pick)({\n enterprise: (0, g.css)([ \"line-height:22px;\" ]),\n prisma: (0, g.css)([ \"line-height:24px;\" ])\n }));\n var ee = x().div.withConfig({\n displayName: \"HeaderStyles__StyledSubtitle\",\n componentId: \"sc-1y722ut-4\"\n })([ \"\", \";font-size:14px;overflow-wrap:break-word;line-height:\", \";\" ], w.mixins.reset(\"block\"), w.variables.lineHeight);\n var te = x().div.withConfig({\n displayName: \"HeaderStyles__StyledButtonsWrapper\",\n componentId: \"sc-1y722ut-5\"\n })([ \"\", \";position:absolute;top:\", \";right:\", \";bottom:50%;\", \" max-height:35px;transform-origin:bottom right;transform:rotate(-90deg) translateX(100%);\" ], w.mixins.reset(\"block\"), (0, \n w.pick)({\n enterprise: 0,\n prisma: {\n comfortable: \"-2px\",\n compact: \"-6px\"\n }\n }), (0, w.pick)({\n enterprise: 0,\n prisma: {\n comfortable: \"-2px\",\n compact: \"-6px\"\n }\n }), (0, w.pick)({\n prisma: {\n comfortable: (0, g.css)([ \"min-height:35px;\" ]),\n compact: (0, g.css)([ \"min-height:30px;\" ])\n }\n }));\n var re = x().div.withConfig({\n displayName: \"HeaderStyles__StyledClose\",\n componentId: \"sc-1y722ut-6\"\n })([ \"\", \";position:absolute;right:0;top:0;transform:rotate(90deg) translate(-50%,-50%);\" ], w.mixins.reset(\"block\"));\n // CONCATENATED MODULE: ./src/Modal/Header.tsx\n function ne() {\n ne = Object.assign || function(e) {\n for (var t = 1; t < arguments.length; t++) {\n var r = arguments[t];\n for (var n in r) {\n if (Object.prototype.hasOwnProperty.call(r, n)) {\n e[n] = r[n];\n }\n }\n }\n return e;\n };\n return ne.apply(this, arguments);\n }\n function oe(e, t) {\n if (e == null) return {};\n var r = ie(e, t);\n var n, o;\n if (Object.getOwnPropertySymbols) {\n var i = Object.getOwnPropertySymbols(e);\n for (o = 0; o < i.length; o++) {\n n = i[o];\n if (t.indexOf(n) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(e, n)) continue;\n r[n] = e[n];\n }\n }\n return r;\n }\n function ie(e, t) {\n if (e == null) return {};\n var r = {};\n var n = Object.keys(e);\n var o, i;\n for (i = 0; i < n.length; i++) {\n o = n[i];\n if (t.indexOf(o) >= 0) continue;\n r[o] = e[o];\n }\n return r;\n }\n var ae = {\n children: i().node,\n icon: i().node,\n onRequestClose: i().func,\n subtitle: i().node,\n title: i().string\n };\n /**\n * A styled container for `Modal` header content.\n */ function le(e) {\n var t = e.children, o = e.icon, i = e.onRequestClose, a = e.subtitle, l = e.title, c = oe(e, [ \"children\", \"icon\", \"onRequestClose\", \"subtitle\", \"title\" ]);\n // @docs-props-type StepPropsBase\n var s = (0, r.useContext)(z), u = s.titleId, p = s.subtitleId, f = s.divider;\n var d = f === \"both\" || f === \"header\";\n \n return n().createElement(n().Fragment, null, n().createElement(J, ne({\n $close: !!i,\n \"data-test\": \"header\"\n }, c), o && n().createElement(Y, null, o), l ? n().createElement(Q, null, l && n().createElement(Z, {\n id: u,\n \"data-test\": \"title\"\n }, l), a && n().createElement(ee, {\n id: p,\n \"data-test\": \"subtitle\"\n }, a)) : t, i && n().createElement(te, null, i && n().createElement(re, null, n().createElement(G(), {\n onClick: i,\n \"data-test\": \"close\"\n })))), d && n().createElement(B(), {\n \"aria-hidden\": true\n }));\n }\n le.propTypes = ae;\n /* harmony default export */ const ce = le;\n // CONCATENATED MODULE: external \"react-spring\"\n const se = require(\"react-spring\");\n // CONCATENATED MODULE: ./src/Modal/ModalStyles.ts\n var ue = x()(se.animated.div).withConfig({\n displayName: \"ModalStyles__Styled\",\n componentId: \"sc-5fn8ds-0\"\n })([ \"\", \";flex-direction:column;position:fixed;left:50%;transform:translateX(-50%);z-index:\", \";\", \"\" ], w.mixins.reset(\"flex\"), w.variables.zindexModal, (0, \n w.pick)({\n enterprise: (0, g.css)([ \"box-shadow:0 1px 5px \", \";max-height:calc(100vh - \", \" * 4);max-width:calc(100vw - \", \" * 4);\" ], w.variables.black, w.variables.spacing, w.variables.spacing),\n prisma: (0, g.css)([ \"box-shadow:\", \";max-height:calc(100vh - \", \" * 4);max-width:calc(100vw - \", \" * 4);border-radius:\", \";overflow:hidden;\" ], w.variables.modalShadow, w.variables.spacingXLarge, w.variables.spacingXLarge, w.variables.borderRadius)\n }));\n // CONCATENATED MODULE: ./src/utils/updateReactRef.ts\n /**\n * Updates a React ref. Callback refs and object refs (from `createRef` and `useRef`) are supported.\n *\n * @param ref - The React callback or object ref. Can be `null` or `undefined`.\n * @param current - The new value of the ref.\n */\n function pe(e, t) {\n if (e) {\n if (typeof e === \"function\") {\n e(t);\n } else {\n // the public signature of this util uses React.Ref to mirror the way React types refs.\n // the intention here is to signal \"we will take care of setting 'current', not you\".\n e.current = t;\n // eslint-disable-line no-param-reassign\n }\n }\n }\n // CONCATENATED MODULE: ./src/Modal/Modal.tsx\n function fe() {\n fe = Object.assign || function(e) {\n for (var t = 1; t < arguments.length; t++) {\n var r = arguments[t];\n for (var n in r) {\n if (Object.prototype.hasOwnProperty.call(r, n)) {\n e[n] = r[n];\n }\n }\n }\n return e;\n };\n return fe.apply(this, arguments);\n }\n function de(e) {\n return ve(e) || me(e) || be(e) || ye();\n }\n function ye() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n function be(e, t) {\n if (!e) return;\n if (typeof e === \"string\") return he(e, t);\n var r = Object.prototype.toString.call(e).slice(8, -1);\n if (r === \"Object\" && e.constructor) r = e.constructor.name;\n if (r === \"Map\" || r === \"Set\") return Array.from(e);\n if (r === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)) return he(e, t);\n }\n function me(e) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(e)) return Array.from(e);\n }\n function ve(e) {\n if (Array.isArray(e)) return he(e);\n }\n function he(e, t) {\n if (t == null || t > e.length) t = e.length;\n for (var r = 0, n = new Array(t); r < t; r++) {\n n[r] = e[r];\n }\n return n;\n }\n function ge(e, t) {\n var r = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n if (t) n = n.filter((function(t) {\n return Object.getOwnPropertyDescriptor(e, t).enumerable;\n }));\n r.push.apply(r, n);\n }\n return r;\n }\n function xe(e) {\n for (var t = 1; t < arguments.length; t++) {\n var r = arguments[t] != null ? arguments[t] : {};\n if (t % 2) {\n ge(Object(r), true).forEach((function(t) {\n Te(e, t, r[t]);\n }));\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(e, Object.getOwnPropertyDescriptors(r));\n } else {\n ge(Object(r)).forEach((function(t) {\n Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(r, t));\n }));\n }\n }\n return e;\n }\n function Oe(e) {\n \"@babel/helpers - typeof\";\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n Oe = function e(t) {\n return typeof t;\n };\n } else {\n Oe = function e(t) {\n return t && typeof Symbol === \"function\" && t.constructor === Symbol && t !== Symbol.prototype ? \"symbol\" : typeof t;\n };\n }\n return Oe(e);\n }\n function Se(e, t) {\n if (!(e instanceof t)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function we(e, t) {\n for (var r = 0; r < t.length; r++) {\n var n = t[r];\n n.enumerable = n.enumerable || false;\n n.configurable = true;\n if (\"value\" in n) n.writable = true;\n Object.defineProperty(e, n.key, n);\n }\n }\n function je(e, t, r) {\n if (t) we(e.prototype, t);\n if (r) we(e, r);\n return e;\n }\n function ke(e, t) {\n if (typeof t !== \"function\" && t !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n e.prototype = Object.create(t && t.prototype, {\n constructor: {\n value: e,\n writable: true,\n configurable: true\n }\n });\n if (t) Ie(e, t);\n }\n function Ie(e, t) {\n Ie = Object.setPrototypeOf || function e(t, r) {\n t.__proto__ = r;\n return t;\n };\n return Ie(e, t);\n }\n function Ce(e) {\n var t = Ee();\n return function r() {\n var n = Me(e), o;\n if (t) {\n var i = Me(this).constructor;\n o = Reflect.construct(n, arguments, i);\n } else {\n o = n.apply(this, arguments);\n }\n return Pe(this, o);\n };\n }\n function Pe(e, t) {\n if (t && (Oe(t) === \"object\" || typeof t === \"function\")) {\n return t;\n }\n return _e(e);\n }\n function _e(e) {\n if (e === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return e;\n }\n function Ee() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], (function() {})));\n return true;\n } catch (e) {\n return false;\n }\n }\n function Me(e) {\n Me = Object.setPrototypeOf ? Object.getPrototypeOf : function e(t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n };\n return Me(e);\n }\n function Te(e, t, r) {\n if (t in e) {\n Object.defineProperty(e, t, {\n value: r,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n e[t] = r;\n }\n return e;\n }\n /** @public */ var qe = {\n children: i().node,\n divider: i().oneOf([ \"header\", \"footer\", \"both\", \"none\" ]),\n elementRef: i().oneOfType([ i().func, i().object ]),\n initialFocus: i().oneOfType([ i().object, i().oneOf([ \"first\", \"container\" ]) ]),\n onRequestClose: i().func,\n open: i().bool\n };\n var De = {\n divider: \"both\",\n initialFocus: \"first\",\n open: false\n };\n var Fe = function(e) {\n ke(o, e);\n var t = Ce(o);\n // @docs-props-type ModalPropsBase\n // this timeout ensures that the Modal is finished rendering before setting the focus\n function o(e) {\n var i;\n Se(this, o);\n i = t.call(this, e);\n Te(_e(i), \"el\", null);\n Te(_e(i), \"initialFocusTimeoutId\", undefined);\n Te(_e(i), \"initialFocus\", null);\n Te(_e(i), \"headerTitleId\", void 0);\n Te(_e(i), \"headerSubtitleId\", void 0);\n Te(_e(i), \"getDefaultMotionStyle\", (function() {\n return {\n top: 0\n };\n }));\n Te(_e(i), \"getMotionStyle\", (function() {\n if (i.props.open) {\n return {\n top: 40\n };\n }\n return {\n top: 0\n };\n }));\n Te(_e(i), \"handleInitialFocus\", (function() {\n var e = i.props, t = e.initialFocus, r = e.open;\n if (r) {\n i.initialFocusTimeoutId = l()((function() {\n var e;\n // not using the takeFocus() util here because it\n // doesn't work for all values of \"initialFocus\"\n // and it has a nested defer() call, which we want to avoid\n if (i.initialFocus !== t) {\n if (t === \"first\") {\n if (i.el) {\n /* eslint-disable prefer-destructuring */\n /* prefer-desturucting leads to harder-to-read syntax in this case */\n e = (0, m.getSortedTabbableElements)(i.el)[0];\n /* eslint-enable prefer-destructuring */ }\n } else if (t === \"container\") {\n e = i.el;\n } else if (Oe(t) === \"object\") {\n e = t;\n }\n // Typescript isn't happy with optional chaining here\n if (e != null && \"focus\" in e) {\n e.focus();\n }\n i.initialFocus = t;\n }\n }));\n } else {\n i.initialFocus = null;\n clearTimeout(i.initialFocusTimeoutId);\n }\n }));\n Te(_e(i), \"handleModalMount\", (function(e) {\n i.el = e;\n pe(i.props.elementRef, e);\n }));\n Te(_e(i), \"handleModalKeyDown\", (function(e) {\n if (i.el !== null) {\n (0, m.handleTab)(i.el, e.nativeEvent);\n }\n }));\n Te(_e(i), \"handleRequestClose\", (function(e) {\n var t, r;\n i.initialFocus = null;\n (t = (r = i.props).onRequestClose) === null || t === void 0 ? void 0 : t.call(r, e);\n }));\n Te(_e(i), \"getProviderValue\", p()((function(e) {\n var t = e.titleId, r = e.subtitleId, n = e.divider;\n return {\n titleId: t,\n subtitleId: r,\n divider: n\n };\n })));\n Te(_e(i), \"getModalStyles\", p()((function(e) {\n var t = e.opacity, r = e.style, n = e.top;\n return xe(xe({}, r), {}, {\n opacity: t,\n top: n\n });\n })));\n Te(_e(i), \"renderModal\", (function(e) {\n var t = i.props, a = t.children, l = t.divider, c = t.style;\n var u = e.top, p = e.opacity;\n var f = r.Children.toArray(a).filter(r.isValidElement);\n \n return n().createElement(ue, fe({\n ref: i.handleModalMount,\n \"data-test\": \"modal\",\n style: i.getModalStyles({\n opacity: p,\n style: c,\n top: u\n }),\n tabIndex: -1,\n onKeyDown: i.handleModalKeyDown,\n role: \"dialog\",\n \"aria-labelledby\": i.headerTitleId,\n \"aria-describedby\": i.headerSubtitleId\n }, d()(i.props, [].concat(de(s()(o.propTypes)), [ \"style\" ]))), n().createElement(z.Provider, {\n value: i.getProviderValue({\n titleId: i.headerTitleId,\n subtitleId: i.headerSubtitleId,\n divider: l\n })\n }, f));\n }));\n i.headerTitleId = (0, v.createDOMID)(\"titleId\");\n i.headerSubtitleId = (0, v.createDOMID)(\"subtitleId\");\n return i;\n }\n je(o, [ {\n key: \"componentDidMount\",\n value: function e() {\n this.handleInitialFocus();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function e(t) {\n var r = this.props.initialFocus;\n if (t.initialFocus !== r) {\n // cancel the defer() set up in handleInitialFocus()\n // so that focus won't jump around if \"initialFocus\" changes\n clearTimeout(this.initialFocusTimeoutId);\n }\n this.handleInitialFocus();\n }\n }, {\n key: \"render\",\n value: function e() {\n \n return n().createElement(b(), {\n open: this.props.open,\n getDefaultMotionStyle: this.getDefaultMotionStyle,\n renderModal: this.renderModal,\n getMotionStyle: this.getMotionStyle,\n onRequestClose: this.handleRequestClose\n });\n }\n } ]);\n return o;\n }(r.Component);\n Te(Fe, \"propTypes\", qe);\n Te(Fe, \"defaultProps\", De);\n Te(Fe, \"Header\", ce);\n Te(Fe, \"Body\", R);\n Te(Fe, \"Footer\", V);\n /* harmony default export */ const Re = Fe;\n // CONCATENATED MODULE: ./src/Modal/index.ts\n module.exports = t;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = t => {\n /******/ var r = t && t.__esModule ? \n /******/ () => t[\"default\"]\n /******/ : () => t\n /******/;\n e.d(r, {\n a: r\n });\n /******/ return r;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (t, r) => {\n /******/ for (var n in r) {\n /******/ if (e.o(r, n) && !e.o(t, n)) {\n /******/ Object.defineProperty(t, n, {\n enumerable: true,\n get: r[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var t = {};\n // ESM COMPAT FLAG\n e.r(t);\n // EXPORTS\n e.d(t, {\n default: () => /* reexport */ E\n });\n // CONCATENATED MODULE: external \"react\"\n const r = require(\"react\");\n var n = e.n(r);\n // CONCATENATED MODULE: external \"prop-types\"\n const o = require(\"prop-types\");\n var i = e.n(o);\n // CONCATENATED MODULE: external \"@splunk/react-ui/Animation\"\n const a = require(\"@splunk/react-ui/Animation\");\n // CONCATENATED MODULE: external \"@splunk/react-ui/Layer\"\n const l = require(\"@splunk/react-ui/Layer\");\n var u = e.n(l);\n // CONCATENATED MODULE: external \"styled-components\"\n const c = require(\"styled-components\");\n var s = e.n(c);\n // CONCATENATED MODULE: external \"react-spring\"\n const f = require(\"react-spring\");\n // CONCATENATED MODULE: external \"@splunk/themes\"\n const p = require(\"@splunk/themes\");\n // CONCATENATED MODULE: ./src/ModalLayer/ModalLayerStyles.ts\n var y = (0, c.css)([ \"\", \";position:fixed;top:0;right:0;bottom:0;left:0;\" ], p.mixins.reset(\"block\"));\n var d = s()(f.animated.div).withConfig({\n displayName: \"ModalLayerStyles__StyledClickAwayOverlay\",\n componentId: \"sc-1sa3n1j-0\"\n })([ \"\", \";background-color:\", \";z-index:\", \";\" ], y, p.variables.backgroundColorScrim, p.variables.zindexModalBackdrop);\n // CONCATENATED MODULE: ./src/ModalLayer/ModalLayer.tsx\n function b(e) {\n \"@babel/helpers - typeof\";\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n b = function e(t) {\n return typeof t;\n };\n } else {\n b = function e(t) {\n return t && typeof Symbol === \"function\" && t.constructor === Symbol && t !== Symbol.prototype ? \"symbol\" : typeof t;\n };\n }\n return b(e);\n }\n function v(e, t) {\n var r = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n if (t) n = n.filter((function(t) {\n return Object.getOwnPropertyDescriptor(e, t).enumerable;\n }));\n r.push.apply(r, n);\n }\n return r;\n }\n function m(e) {\n for (var t = 1; t < arguments.length; t++) {\n var r = arguments[t] != null ? arguments[t] : {};\n if (t % 2) {\n v(Object(r), true).forEach((function(t) {\n _(e, t, r[t]);\n }));\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(e, Object.getOwnPropertyDescriptors(r));\n } else {\n v(Object(r)).forEach((function(t) {\n Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(r, t));\n }));\n }\n }\n return e;\n }\n function O(e, t) {\n if (!(e instanceof t)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function h(e, t) {\n for (var r = 0; r < t.length; r++) {\n var n = t[r];\n n.enumerable = n.enumerable || false;\n n.configurable = true;\n if (\"value\" in n) n.writable = true;\n Object.defineProperty(e, n.key, n);\n }\n }\n function g(e, t, r) {\n if (t) h(e.prototype, t);\n if (r) h(e, r);\n return e;\n }\n function w(e, t) {\n if (typeof t !== \"function\" && t !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n e.prototype = Object.create(t && t.prototype, {\n constructor: {\n value: e,\n writable: true,\n configurable: true\n }\n });\n if (t) j(e, t);\n }\n function j(e, t) {\n j = Object.setPrototypeOf || function e(t, r) {\n t.__proto__ = r;\n return t;\n };\n return j(e, t);\n }\n function S(e) {\n var t = A();\n return function r() {\n var n = C(e), o;\n if (t) {\n var i = C(this).constructor;\n o = Reflect.construct(n, arguments, i);\n } else {\n o = n.apply(this, arguments);\n }\n return P(this, o);\n };\n }\n function P(e, t) {\n if (t && (b(t) === \"object\" || typeof t === \"function\")) {\n return t;\n }\n return k(e);\n }\n function k(e) {\n if (e === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return e;\n }\n function A() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], (function() {})));\n return true;\n } catch (e) {\n return false;\n }\n }\n function C(e) {\n C = Object.setPrototypeOf ? Object.getPrototypeOf : function e(t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n };\n return C(e);\n }\n function _(e, t, r) {\n if (t in e) {\n Object.defineProperty(e, t, {\n value: r,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n e[t] = r;\n }\n return e;\n }\n var R = {\n childrenInAnimation: i().bool,\n getDefaultMotionStyle: i().func,\n getMotionStyle: i().func,\n onRequestClose: i().func,\n open: i().bool,\n renderModal: i().func.isRequired,\n useLayerForClickAway: i().bool\n };\n var q = {\n childrenInAnimation: false,\n open: false,\n useLayerForClickAway: true\n };\n var M = function(e) {\n w(r, e);\n var t = S(r);\n function r(e) {\n var o;\n O(this, r);\n o = t.call(this, e);\n _(k(o), \"allowAnimationUpdates\", true);\n _(k(o), \"handleClickAway\", (function(e) {\n var t, r;\n (t = (r = o.props).onRequestClose) === null || t === void 0 ? void 0 : t.call(r, {\n reason: \"clickAway\",\n event: e\n });\n }));\n _(k(o), \"handleAnimationEnd\", (function() {\n if (o.allowAnimationUpdates) {\n o.setState({\n animating: false\n });\n }\n }));\n _(k(o), \"renderLayer\", (function() {\n var e = o.props, t = e.getDefaultMotionStyle, r = e.getMotionStyle, i = e.renderModal, l = e.useLayerForClickAway;\n var u = o.props.open || o.state.animating;\n \n return n().createElement(a.Spring, {\n from: m(m({}, t === null || t === void 0 ? void 0 : t()), {}, {\n overlayOpacity: 0,\n opacity: 0\n }),\n to: m(m({}, r === null || r === void 0 ? void 0 : r()), {}, {\n overlayOpacity: o.props.open ? 1 : 0,\n opacity: o.props.open ? 1 : 0\n }),\n onRest: o.handleAnimationEnd\n }, (function(e) {\n \n return n().createElement(\"div\", null, \n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n i(e), u && l && n().createElement(d, {\n \"data-test\": \"modal-overlay\",\n onMouseDown: o.handleClickAway,\n key: \"clickAway\",\n style: {\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n opacity: e.overlayOpacity\n }\n }));\n }));\n }));\n o.state = {\n animating: false,\n prevOpen: e.open\n };\n return o;\n }\n g(r, [ {\n key: \"componentWillUnmount\",\n value: function e() {\n this.allowAnimationUpdates = false;\n }\n }, {\n key: \"render\",\n /* eslint-enable jsx-a11y/no-static-element-interactions */\n value: function e() {\n var t = this.props.open || this.state.animating || this.props.childrenInAnimation;\n \n return n().createElement(u(), {\n open: t,\n closeReasons: [ \"escapeKey\" ],\n onRequestClose: this.props.onRequestClose\n }, t && this.renderLayer());\n }\n } ]);\n return r;\n }(r.Component);\n _(M, \"propTypes\", R);\n _(M, \"defaultProps\", q);\n _(M, \"getDerivedStateFromProps\", (function(e, t) {\n if (e.open !== t.prevOpen) {\n return {\n animating: true,\n prevOpen: e.open\n };\n }\n return null;\n }));\n /* harmony default export */ const E = M;\n // CONCATENATED MODULE: ./src/ModalLayer/index.ts\n module.exports = t;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = t => {\n /******/ var r = t && t.__esModule ? \n /******/ () => t[\"default\"]\n /******/ : () => t\n /******/;\n e.d(r, {\n a: r\n });\n /******/ return r;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (t, r) => {\n /******/ for (var n in r) {\n /******/ if (e.o(r, n) && !e.o(t, n)) {\n /******/ Object.defineProperty(t, n, {\n enumerable: true,\n get: r[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var t = {};\n // ESM COMPAT FLAG\n e.r(t);\n // EXPORTS\n e.d(t, {\n PopoverContext: () => /* reexport */ $,\n default: () => /* reexport */ Ze\n });\n // CONCATENATED MODULE: external \"react\"\n const r = require(\"react\");\n var n = e.n(r);\n // CONCATENATED MODULE: external \"prop-types\"\n const o = require(\"prop-types\");\n var a = e.n(o);\n // CONCATENATED MODULE: external \"react-dom\"\n const i = require(\"react-dom\");\n // CONCATENATED MODULE: external \"lodash/clamp\"\n const l = require(\"lodash/clamp\");\n var c = e.n(l);\n // CONCATENATED MODULE: external \"lodash/defer\"\n const f = require(\"lodash/defer\");\n var s = e.n(f);\n // CONCATENATED MODULE: external \"lodash/every\"\n const u = require(\"lodash/every\");\n var p = e.n(u);\n // CONCATENATED MODULE: external \"lodash/has\"\n const h = require(\"lodash/has\");\n var d = e.n(h);\n // CONCATENATED MODULE: external \"lodash/includes\"\n const v = require(\"lodash/includes\");\n var m = e.n(v);\n // CONCATENATED MODULE: external \"lodash/intersection\"\n const b = require(\"lodash/intersection\");\n var y = e.n(b);\n // CONCATENATED MODULE: external \"lodash/isFinite\"\n const g = require(\"lodash/isFinite\");\n var w = e.n(g);\n // CONCATENATED MODULE: external \"lodash/isFunction\"\n const S = require(\"lodash/isFunction\");\n var O = e.n(S);\n // CONCATENATED MODULE: external \"lodash/keys\"\n const P = require(\"lodash/keys\");\n var E = e.n(P);\n // CONCATENATED MODULE: external \"lodash/omit\"\n const C = require(\"lodash/omit\");\n var j = e.n(C);\n // CONCATENATED MODULE: external \"lodash/throttle\"\n const k = require(\"lodash/throttle\");\n var x = e.n(k);\n // CONCATENATED MODULE: external \"@splunk/themes\"\n const A = require(\"@splunk/themes\");\n // CONCATENATED MODULE: external \"@splunk/react-ui/Animation\"\n const T = require(\"@splunk/react-ui/Animation\");\n // CONCATENATED MODULE: external \"@splunk/react-ui/EventListener\"\n const R = require(\"@splunk/react-ui/EventListener\");\n var q = e.n(R);\n // CONCATENATED MODULE: external \"@splunk/react-ui/Layer\"\n const W = require(\"@splunk/react-ui/Layer\");\n var M = e.n(W);\n // CONCATENATED MODULE: external \"@splunk/react-ui/ScrollContainerContext\"\n const H = require(\"@splunk/react-ui/ScrollContainerContext\");\n var _ = e.n(H);\n // CONCATENATED MODULE: external \"@splunk/ui-utils/focus\"\n const L = require(\"@splunk/ui-utils/focus\");\n // CONCATENATED MODULE: ./src/Popover/getPlacement.ts\n function D(e, t) {\n var r = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n if (t) n = n.filter((function(t) {\n return Object.getOwnPropertyDescriptor(e, t).enumerable;\n }));\n r.push.apply(r, n);\n }\n return r;\n }\n function I(e) {\n for (var t = 1; t < arguments.length; t++) {\n var r = arguments[t] != null ? arguments[t] : {};\n if (t % 2) {\n D(Object(r), true).forEach((function(t) {\n F(e, t, r[t]);\n }));\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(e, Object.getOwnPropertyDescriptors(r));\n } else {\n D(Object(r)).forEach((function(t) {\n Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(r, t));\n }));\n }\n }\n return e;\n }\n function F(e, t, r) {\n if (t in e) {\n Object.defineProperty(e, t, {\n value: r,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n e[t] = r;\n }\n return e;\n }\n function N(e) {\n var t = e.align, r = e.anchorPos, n = e.outerContainerEl, o = e.padding, a = e.placement;\n switch (a) {\n case \"above\":\n return {\n top: r.top - n.offsetHeight,\n left: t === \"edge\" ? r.left - o : r.middle - n.offsetWidth / 2\n };\n\n case \"below\":\n // Align 'end' is only supported by below\n // TODO: SUI-5101 Enable users to align Popover and Dropdown\n if (t === \"end\") {\n return {\n top: r.bottom,\n left: r.right - n.offsetWidth + o\n };\n }\n return {\n top: r.bottom,\n left: t === \"edge\" ? r.left - o : r.middle - n.offsetWidth / 2\n };\n\n case \"left\":\n return {\n top: t === \"edge\" ? r.top - o : r.center - n.offsetHeight / 2,\n left: r.left - n.offsetWidth\n };\n\n case \"right\":\n return {\n top: t === \"edge\" ? r.top - o : r.center - n.offsetHeight / 2,\n left: r.right\n };\n\n default:\n throw new Error(\"\".concat(a, \" is not a valid placement value. Valid options are: 'above', 'below', 'left', or 'right'\"));\n }\n }\n function z(e) {\n var t = e.align, r = e.anchorPos, n = e.scrollContainerPos, o = e.canCoverAnchor, a = e.defaultPlacement, i = e.outerContainerEl, l = e.padding, c = e.repositionMode, f = e.windowHeight, s = e.windowWidth;\n var u = c === \"flip\";\n var p = c === \"any\";\n var h = u || p;\n var d = e.placement || a;\n // Translate vertical/horizontal to above/below/left/right\n if (a === \"vertical\") {\n d = r.top > f - r.bottom ? \"above\" : \"below\";\n } else if (a === \"horizontal\") {\n d = r.left > s - r.right ? \"left\" : \"right\";\n }\n var v = d;\n // Initialize the result variables. These will be mutated as needed and returned.\n var m = N({\n align: t,\n anchorPos: r,\n outerContainerEl: i,\n padding: l,\n placement: v\n }), b = m.top, y = m.left;\n var g = \"auto\";\n var w = s;\n var S = f;\n var O = v;\n // Boolean convenience variables to simplify positioning logic.\n var P = r.top - i.offsetHeight > 0;\n var E = r.bottom + i.offsetHeight < f;\n var C = r.left - i.offsetWidth > 0;\n var j = r.right + i.offsetWidth < s;\n var k = r.top * .7 > f - r.bottom;\n var x = (t === \"edge\" ? r.left + i.offsetWidth - l : r.middle + i.offsetWidth / 2) > s;\n var A = (t === \"edge\" ? r.left - l : r.middle - i.offsetWidth / 2) < 0;\n var T = (t === \"edge\" ? r.top - l : r.top - i.offsetHeight / 2) < 0;\n var R = (t === \"edge\" ? r.top + i.offsetHeight - l : r.bottom + i.offsetHeight / 2) > f;\n // Handle each of the four placement options individually.\n if (O === \"above\") {\n if (!P && h) {\n if (E) {\n return z(I(I({}, e), {}, {\n placement: \"below\"\n }));\n }\n if (p && j) {\n return z(I(I({}, e), {}, {\n placement: \"right\"\n }));\n }\n if (p && C) {\n return z(I(I({}, e), {}, {\n placement: \"left\"\n }));\n }\n if (o) {\n O = \"misaligned\";\n b = 0;\n }\n }\n if (O !== \"misaligned\") {\n g = f - b - i.offsetHeight;\n if (n) {\n g = Math.min(g, f - n.top);\n }\n b = \"auto\";\n }\n if (x) {\n y = Math.max(s - i.offsetWidth, 0);\n } else if (A) {\n y = 0;\n }\n if (!o) {\n S = r.top;\n }\n }\n if (O === \"below\") {\n if (!E && h) {\n if (P && k) {\n return z(I(I({}, e), {}, {\n placement: \"above\"\n }));\n }\n if (p && j) {\n return z(I(I({}, e), {}, {\n placement: \"right\"\n }));\n }\n if (p && C) {\n return z(I(I({}, e), {}, {\n placement: \"left\"\n }));\n }\n if (o) {\n O = \"misaligned\";\n b = 0;\n }\n }\n if (n) {\n b = Math.min(b, n.bottom);\n }\n if (x) {\n y = Math.max(s - i.offsetWidth, 0);\n } else if (A) {\n y = 0;\n }\n if (!o) {\n S = f - r.bottom;\n }\n }\n if (O === \"left\") {\n if (!C && h) {\n if (j) {\n return z(I(I({}, e), {}, {\n placement: \"right\"\n }));\n }\n if (p && E) {\n return z(I(I({}, e), {}, {\n placement: \"below\"\n }));\n }\n if (p && P) {\n return z(I(I({}, e), {}, {\n placement: \"above\"\n }));\n }\n if (o) {\n O = \"misaligned\";\n b = 0;\n }\n }\n if (T) {\n b = 0;\n } else if (R) {\n b = Math.max(f - i.offsetHeight, 0);\n }\n if (!o) {\n w = r.left;\n }\n }\n if (O === \"right\") {\n if (!j && h) {\n if (C) {\n return z(I(I({}, e), {}, {\n placement: \"left\"\n }));\n }\n if (p && E) {\n return z(I(I({}, e), {}, {\n placement: \"below\"\n }));\n }\n if (p && P) {\n return z(I(I({}, e), {}, {\n placement: \"above\"\n }));\n }\n if (o) {\n O = \"misaligned\";\n b = 0;\n }\n }\n if (T) {\n b = 0;\n } else if (R) {\n b = Math.max(f - i.offsetHeight, 0);\n }\n if (!o) {\n w = s - r.left;\n }\n }\n return {\n placement: O,\n maxHeight: S,\n maxWidth: w,\n outerContainerStyle: {\n top: b,\n left: y,\n bottom: g\n }\n };\n }\n // CONCATENATED MODULE: ./src/Popover/PopoverContext.tsx\n var $ = (0, r.createContext)({});\n // CONCATENATED MODULE: external \"react-spring\"\n const U = require(\"react-spring\");\n // CONCATENATED MODULE: external \"styled-components\"\n const K = require(\"styled-components\");\n var V = e.n(K);\n // CONCATENATED MODULE: ./src/Popover/PopoverStyles.ts\n var B = (0, A.pick)({\n enterprise: \"8px\",\n prisma: 0\n });\n var X = V()(U.animated.div).withConfig({\n displayName: \"PopoverStyles__Styled\",\n componentId: \"sc-1nahsvw-0\"\n })([ \"position:fixed;z-index:\", \";left:-300%;top:-300%;\" ], A.variables.zindexPopover);\n var Y = V().div.withConfig({\n displayName: \"PopoverStyles__StyledBox\",\n componentId: \"sc-1nahsvw-1\"\n })([ \"\", \";\", \";\", \";\" ], A.mixins.reset(\"block\"), (function(e) {\n var t = e.$open;\n return !t && (0, K.css)([ \"pointer-events:none;\" ]);\n }), (function(e) {\n var t = e.$appearance;\n return t !== \"none\" && (0, K.css)([ \"padding:8px;\" ]);\n }));\n var G = V().div.withConfig({\n displayName: \"PopoverStyles__StyledContent\",\n componentId: \"sc-1nahsvw-2\"\n })([ \"\", \"\" ], (0, A.pickVariant)(\"$appearance\", {\n normal: (0, K.css)([ \"background-color:\", \";color:\", \";border:\", \";box-shadow:\", \";border-radius:\", \";\" ], A.variables.backgroundColorPopup, A.variables.contentColorDefault, (0, \n A.pick)({\n enterprise: {\n light: A.variables.border,\n dark: A.variables.border\n },\n prisma: \"none\"\n }), (0, A.pick)({\n enterprise: {\n light: (0, K.css)([ \"0 2px 2px \", \"\" ], A.mixins.colorWithAlpha(A.variables.gray20, .1)),\n dark: \"0 1px 2px #000\"\n },\n prisma: A.variables.overlayShadow\n }), A.variables.borderRadius),\n // Enterprise Only\n inverted: (0, K.css)([ \"background-color:\", \";color:\", \";\" ], (0, A.pick)({\n light: A.variables.gray20,\n dark: A.variables.white\n }), (0, A.pick)({\n light: A.variables.white,\n dark: A.variables.gray30\n }))\n }));\n // Enterprise Only\n var J = V().div.withConfig({\n displayName: \"PopoverStyles__StyledArrow\",\n componentId: \"sc-1nahsvw-3\"\n })([ \"width:0;height:0;border-left:\", \" solid transparent;border-right:\", \" solid transparent;position:absolute;border-bottom-width:\", \";border-bottom-style:solid;\", \"\" ], B, B, B, (0, \n A.pickVariant)(\"$appearance\", {\n normal: (0, K.css)([ \"border-bottom-color:\", \";&::before{content:'';display:block;width:0;height:0;border-left:\", \" solid transparent;border-right:\", \" solid transparent;border-bottom:\", \" solid \", \";position:absolute;top:1px;left:0;margin-left:-\", \";}\" ], (0, \n A.pick)({\n light: A.variables.borderColor,\n dark: A.variables.black\n }), B, B, B, A.variables.backgroundColor, B),\n inverted: (0, K.css)([ \"border-bottom-color:\", \";\" ], (0, A.pick)({\n light: A.variables.gray20,\n dark: A.variables.white\n }))\n }));\n var Q = V().div.withConfig({\n displayName: \"PopoverStyles__StyledLowerRightCorner\",\n componentId: \"sc-1nahsvw-4\"\n })([ \"position:fixed;right:0;bottom:0;\" ]);\n var Z = V().svg.withConfig({\n displayName: \"PopoverStyles__StyledHitArea\",\n componentId: \"sc-1nahsvw-5\"\n })([ \"position:fixed;pointer-events:none;path{pointer-events:auto;stroke-width:0;stroke:transparent;fill:transparent;}\" ]);\n // CONCATENATED MODULE: ./src/Popover/PopoverHitArea.tsx\n function ee(e, t) {\n return ae(e) || oe(e, t) || re(e, t) || te();\n }\n function te() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n function re(e, t) {\n if (!e) return;\n if (typeof e === \"string\") return ne(e, t);\n var r = Object.prototype.toString.call(e).slice(8, -1);\n if (r === \"Object\" && e.constructor) r = e.constructor.name;\n if (r === \"Map\" || r === \"Set\") return Array.from(e);\n if (r === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)) return ne(e, t);\n }\n function ne(e, t) {\n if (t == null || t > e.length) t = e.length;\n for (var r = 0, n = new Array(t); r < t; r++) {\n n[r] = e[r];\n }\n return n;\n }\n function oe(e, t) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(e))) return;\n var r = [];\n var n = true;\n var o = false;\n var a = undefined;\n try {\n for (var i = e[Symbol.iterator](), l; !(n = (l = i.next()).done); n = true) {\n r.push(l.value);\n if (t && r.length === t) break;\n }\n } catch (e) {\n o = true;\n a = e;\n } finally {\n try {\n if (!n && i[\"return\"] != null) i[\"return\"]();\n } finally {\n if (o) throw a;\n }\n }\n return r;\n }\n function ae(e) {\n if (Array.isArray(e)) return e;\n }\n var ie = {\n anchorRect: a().object,\n popoverEl: a().object,\n popoverPlacement: a().oneOf([ \"above\", \"below\", \"left\", \"right\", \"misaligned\" ])\n };\n var le = function e(t) {\n var r = t.anchorRect, n = t.popoverEl, o = t.popoverPlacement;\n if (r != null && n != null && o != null) {\n var a = n.getBoundingClientRect();\n if (o === \"above\" || o === \"below\") {\n var i = r.left - a.left;\n var l = r.height;\n var c = 0;\n if (o === \"above\") {\n l = 0;\n c = r.height;\n }\n var f = \"0 \".concat(l);\n var s = \"\".concat(a.width, \" \").concat(l);\n var u = \"\".concat(i, \" \").concat(l);\n var p = \"\".concat(i, \" \").concat(c);\n var h = \"\".concat(i + r.width, \" \").concat(l);\n var d = \"\".concat(i + r.width, \" \").concat(c);\n var v = \"\\n M \".concat(f, \"\\n S \").concat(u, \" , \").concat(p, \"\\n L \").concat(u, \"\\n L \").concat(h, \"\\n L \").concat(d, \"\\n S \").concat(h, \" , \").concat(s, \"\\n \");\n return {\n hitAreaPath: v,\n hitAreaStyle: {\n left: a.left,\n top: r.top,\n width: a.width,\n height: r.height\n }\n };\n }\n if (o === \"left\" || o === \"right\") {\n var m = r.top - a.top;\n var b = 0;\n var y = r.width;\n if (o === \"right\") {\n b = r.width;\n y = 0;\n }\n var g = \"\".concat(b, \" 0\");\n var w = \"\".concat(b, \" \").concat(a.height);\n var S = \"\".concat(b, \" \").concat(m);\n var O = \"\".concat(y, \" \").concat(m);\n var P = \"\".concat(b, \" \").concat(m + r.height);\n var E = \"\".concat(y, \" \").concat(m + r.height);\n var C = \"\\n M \".concat(g, \"\\n S \").concat(S, \" , \").concat(O, \"\\n L \").concat(S, \"\\n L \").concat(P, \"\\n L \").concat(E, \"\\n S \").concat(P, \" , \").concat(w, \"\\n \");\n return {\n hitAreaPath: C,\n hitAreaStyle: {\n left: r.left,\n top: a.top,\n width: r.width,\n height: a.height\n }\n };\n }\n }\n return {\n hitAreaPath: null,\n hitAreaStyle: {}\n };\n };\n var ce = n().forwardRef((function(e, t) {\n var o = e.anchorRect, a = e.popoverEl, i = e.popoverPlacement;\n var l = (0, r.useState)(null), c = ee(l, 2), f = c[0], s = c[1];\n var u = (0, r.useState)({}), p = ee(u, 2), h = p[0], d = p[1];\n (0, r.useEffect)((function() {\n var e = le({\n anchorRect: o,\n popoverEl: a,\n popoverPlacement: i\n }), t = e.hitAreaPath, r = e.hitAreaStyle;\n s(t);\n d(r);\n }), [ o, a, i ]);\n if (f != null) {\n \n return n().createElement(Z, {\n \"data-test\": \"popover-hit-area\",\n style: h\n }, n().createElement(\"path\", {\n d: f,\n ref: t\n }));\n }\n return null;\n }));\n ce.propTypes = ie;\n /* harmony default export */ const fe = ce;\n // CONCATENATED MODULE: ./src/utils/ssrDocument.ts\n /* eslint-disable @typescript-eslint/no-empty-function */\n var se = {\n body: {\n appendChild: function e() {\n return [];\n }\n },\n addEventListener: function e() {},\n removeEventListener: function e() {},\n activeElement: {\n blur: function e() {},\n nodeName: \"\"\n },\n querySelector: function e() {\n return null;\n },\n querySelectorAll: function e() {\n return [];\n },\n getElementById: function e() {\n return null;\n },\n createEvent: function e() {\n return {\n initEvent: function e() {}\n };\n },\n createElement: function e() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function e() {},\n getElementsByTagName: function e() {\n return [];\n }\n };\n },\n createElementNS: function e() {\n return {};\n },\n importNode: function e() {\n return null;\n },\n location: {\n hash: \"\",\n host: \"\",\n hostname: \"\",\n href: \"\",\n origin: \"\",\n pathname: \"\",\n protocol: \"\",\n search: \"\"\n }\n };\n function ue() {\n var e = typeof document !== \"undefined\" ? document : se;\n return e;\n }\n // CONCATENATED MODULE: ./src/utils/ssrWindow.ts\n /* eslint-disable @typescript-eslint/no-empty-function */\n var pe = {\n document: se,\n navigator: {\n userAgent: \"\"\n },\n location: {\n hash: \"\",\n host: \"\",\n hostname: \"\",\n href: \"\",\n origin: \"\",\n pathname: \"\",\n protocol: \"\",\n search: \"\"\n },\n history: {\n replaceState: function e() {},\n pushState: function e() {},\n go: function e() {},\n back: function e() {}\n },\n CustomEvent: function e() {\n return this;\n },\n addEventListener: function e() {},\n removeEventListener: function e() {},\n getComputedStyle: function e() {\n return {\n getPropertyValue: function e() {\n return \"\";\n }\n };\n },\n Image: function e() {},\n Date: function e() {},\n screen: {},\n setTimeout: function e() {},\n clearTimeout: function e() {},\n matchMedia: function e() {\n return {};\n },\n requestAnimationFrame: function e(t) {\n if (typeof setTimeout === \"undefined\") {\n t();\n return null;\n }\n return setTimeout(t, 0);\n },\n cancelAnimationFrame: function e(t) {\n if (typeof setTimeout === \"undefined\") {\n return;\n }\n clearTimeout(t);\n }\n };\n function he() {\n var e = typeof window !== \"undefined\" ? window : pe;\n return e;\n }\n // CONCATENATED MODULE: ./src/utils/getBoundingClientRect.ts\n function de(e, t) {\n var r = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n if (t) n = n.filter((function(t) {\n return Object.getOwnPropertyDescriptor(e, t).enumerable;\n }));\n r.push.apply(r, n);\n }\n return r;\n }\n function ve(e) {\n for (var t = 1; t < arguments.length; t++) {\n var r = arguments[t] != null ? arguments[t] : {};\n if (t % 2) {\n de(Object(r), true).forEach((function(t) {\n me(e, t, r[t]);\n }));\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(e, Object.getOwnPropertyDescriptors(r));\n } else {\n de(Object(r)).forEach((function(t) {\n Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(r, t));\n }));\n }\n }\n return e;\n }\n function me(e, t, r) {\n if (t in e) {\n Object.defineProperty(e, t, {\n value: r,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n e[t] = r;\n }\n return e;\n }\n // Checks if browser is Safari\n function be() {\n return /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n }\n // Formats return value to DOMRect\n function ye(e) {\n return ve(ve({}, e), {}, {\n top: e.y,\n left: e.x,\n right: e.x + e.width,\n bottom: e.y + e.height\n });\n }\n /**\n * Provides DOMRect information about the size of an element and its position relative to the viewport.\n * Accounts for Safari's use of visual viewport and adds offsets to set as layout viewport.\n * @param {Element} element - The element to be evaluated\n * @param {boolean} offsets - Use when position of element relative to the layout viewport offsets are needed for Safari.\n * @returns {Omit}\n * @public\n */ function ge(e, t) {\n var r, n;\n var o = e.getBoundingClientRect();\n var a = be();\n if (!t || !a) {\n return o;\n }\n var i = he();\n var l = o.left + (((r = i.visualViewport) === null || r === void 0 ? void 0 : r.offsetLeft) || 0);\n var c = o.top + (((n = i.visualViewport) === null || n === void 0 ? void 0 : n.offsetTop) || 0);\n var f = o.width, s = o.height;\n return ye({\n width: f,\n height: s,\n x: l,\n y: c\n });\n }\n // CONCATENATED MODULE: ./src/utils/updateReactRef.ts\n /**\n * Updates a React ref. Callback refs and object refs (from `createRef` and `useRef`) are supported.\n *\n * @param ref - The React callback or object ref. Can be `null` or `undefined`.\n * @param current - The new value of the ref.\n */\n function we(e, t) {\n if (e) {\n if (typeof e === \"function\") {\n e(t);\n } else {\n // the public signature of this util uses React.Ref to mirror the way React types refs.\n // the intention here is to signal \"we will take care of setting 'current', not you\".\n e.current = t;\n // eslint-disable-line no-param-reassign\n }\n }\n }\n // CONCATENATED MODULE: ./src/Popover/Popover.tsx\n function Se(e) {\n \"@babel/helpers - typeof\";\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n Se = function e(t) {\n return typeof t;\n };\n } else {\n Se = function e(t) {\n return t && typeof Symbol === \"function\" && t.constructor === Symbol && t !== Symbol.prototype ? \"symbol\" : typeof t;\n };\n }\n return Se(e);\n }\n function Oe() {\n Oe = Object.assign || function(e) {\n for (var t = 1; t < arguments.length; t++) {\n var r = arguments[t];\n for (var n in r) {\n if (Object.prototype.hasOwnProperty.call(r, n)) {\n e[n] = r[n];\n }\n }\n }\n return e;\n };\n return Oe.apply(this, arguments);\n }\n function Pe(e) {\n return je(e) || Ce(e) || Re(e) || Ee();\n }\n function Ee() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n function Ce(e) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(e)) return Array.from(e);\n }\n function je(e) {\n if (Array.isArray(e)) return qe(e);\n }\n function ke(e, t) {\n var r = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n if (t) n = n.filter((function(t) {\n return Object.getOwnPropertyDescriptor(e, t).enumerable;\n }));\n r.push.apply(r, n);\n }\n return r;\n }\n function xe(e) {\n for (var t = 1; t < arguments.length; t++) {\n var r = arguments[t] != null ? arguments[t] : {};\n if (t % 2) {\n ke(Object(r), true).forEach((function(t) {\n Ke(e, t, r[t]);\n }));\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(e, Object.getOwnPropertyDescriptors(r));\n } else {\n ke(Object(r)).forEach((function(t) {\n Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(r, t));\n }));\n }\n }\n return e;\n }\n function Ae(e, t) {\n return Me(e) || We(e, t) || Re(e, t) || Te();\n }\n function Te() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n function Re(e, t) {\n if (!e) return;\n if (typeof e === \"string\") return qe(e, t);\n var r = Object.prototype.toString.call(e).slice(8, -1);\n if (r === \"Object\" && e.constructor) r = e.constructor.name;\n if (r === \"Map\" || r === \"Set\") return Array.from(e);\n if (r === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)) return qe(e, t);\n }\n function qe(e, t) {\n if (t == null || t > e.length) t = e.length;\n for (var r = 0, n = new Array(t); r < t; r++) {\n n[r] = e[r];\n }\n return n;\n }\n function We(e, t) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(e))) return;\n var r = [];\n var n = true;\n var o = false;\n var a = undefined;\n try {\n for (var i = e[Symbol.iterator](), l; !(n = (l = i.next()).done); n = true) {\n r.push(l.value);\n if (t && r.length === t) break;\n }\n } catch (e) {\n o = true;\n a = e;\n } finally {\n try {\n if (!n && i[\"return\"] != null) i[\"return\"]();\n } finally {\n if (o) throw a;\n }\n }\n return r;\n }\n function Me(e) {\n if (Array.isArray(e)) return e;\n }\n function He(e, t) {\n if (!(e instanceof t)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _e(e, t) {\n for (var r = 0; r < t.length; r++) {\n var n = t[r];\n n.enumerable = n.enumerable || false;\n n.configurable = true;\n if (\"value\" in n) n.writable = true;\n Object.defineProperty(e, n.key, n);\n }\n }\n function Le(e, t, r) {\n if (t) _e(e.prototype, t);\n if (r) _e(e, r);\n return e;\n }\n function De(e, t) {\n if (typeof t !== \"function\" && t !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n e.prototype = Object.create(t && t.prototype, {\n constructor: {\n value: e,\n writable: true,\n configurable: true\n }\n });\n if (t) Ie(e, t);\n }\n function Ie(e, t) {\n Ie = Object.setPrototypeOf || function e(t, r) {\n t.__proto__ = r;\n return t;\n };\n return Ie(e, t);\n }\n function Fe(e) {\n var t = $e();\n return function r() {\n var n = Ue(e), o;\n if (t) {\n var a = Ue(this).constructor;\n o = Reflect.construct(n, arguments, a);\n } else {\n o = n.apply(this, arguments);\n }\n return Ne(this, o);\n };\n }\n function Ne(e, t) {\n if (t && (Se(t) === \"object\" || typeof t === \"function\")) {\n return t;\n }\n return ze(e);\n }\n function ze(e) {\n if (e === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return e;\n }\n function $e() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], (function() {})));\n return true;\n } catch (e) {\n return false;\n }\n }\n function Ue(e) {\n Ue = Object.setPrototypeOf ? Object.getPrototypeOf : function e(t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n };\n return Ue(e);\n }\n function Ke(e, t, r) {\n if (t in e) {\n Object.defineProperty(e, t, {\n value: r,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n e[t] = r;\n }\n return e;\n }\n /** @public */ var Ve = [ \"clickAway\", \"escapeKey\", \"offScreen\", \"tabKey\" ];\n var Be = {\n align: a().oneOf([ \"center\", \"edge\", \"theme\", \"end\" ]),\n anchor: a().object,\n animation: a().bool,\n animationConfig: a().object,\n appearance: a().oneOf([ \"normal\", \"inverted\", \"none\" ]),\n autoCloseWhenOffScreen: a().bool,\n canCoverAnchor: a().bool,\n children: a().oneOfType([ a().node, a().func ]),\n closeReasons: a().arrayOf(a().oneOf(Ve)),\n defaultPlacement: a().oneOf([ \"above\", \"below\", \"left\", \"right\", \"vertical\", \"horizontal\" ]),\n elementRef: a().oneOfType([ a().func, a().object ]),\n id: a().string,\n hitAreaRef: a().oneOfType([ a().func, a().object ]),\n onRequestClose: a().func,\n open: a().bool,\n outerRef: a().oneOfType([ a().func, a().object ]),\n pointTo: a().shape({\n x: a().number,\n y: a().number\n }),\n repositionMode: a().oneOf([ \"none\", \"flip\", \"any\" ]),\n retainFocus: a().bool,\n takeFocus: a().bool,\n splunkTheme: a().object\n };\n var Xe = {\n align: \"theme\",\n animation: true,\n animationConfig: {},\n appearance: \"normal\",\n autoCloseWhenOffScreen: true,\n canCoverAnchor: false,\n closeReasons: Ve,\n defaultPlacement: \"below\",\n open: false,\n repositionMode: \"flip\",\n retainFocus: true,\n takeFocus: false\n };\n // eslint-disable-next-line @typescript-eslint/ban-types\n function Ye(e, t) {\n var r = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n return !!e && !!t && p()(e, (function(e, n) {\n if (w()(e)) {\n return Math.abs(t[n] - e) <= r;\n }\n return t[n] === e;\n }));\n }\n function Ge(e) {\n return e !== window && e !== window.document;\n }\n /**\n * `Popover` is used to create layovers such as dropdowns, contextual menus, or tooltips. Use\n * this only when the other components don't provide sufficient functionality or control. A controlled\n * `Dropdown` covers use cases where you might consider using `Popover` directly.\n */ var Je = function(e) {\n De(r, e);\n var t = Fe(r);\n Le(r, null, [ {\n key: \"getArrowStyle\",\n // @docs-props-type PopoverPropsBase\n value: function e(t) {\n var r = t.anchorPos, n = t.arrowHeight, o = t.placement, a = t.outerContainerStyle, i = t.outerContainerEl;\n if (o === \"misaligned\") {\n return [ {\n display: \"none\"\n } ];\n }\n var l = {\n display: \"block\"\n };\n var f = i.offsetHeight / 2 - 22;\n var s = -(i.offsetHeight / 2 - 15);\n var u = r.center - (a.top + i.offsetHeight / 2) - n / 2;\n var p = c()(u, s, f);\n var h = r.middle - (a.left + i.offsetWidth / 2) - n;\n var d = {\n left: {\n translateX: n / 2,\n translateY: p,\n rotate: 90\n },\n right: {\n translateX: -n / 2,\n translateY: p,\n rotate: -90\n },\n above: {\n translateX: h,\n translateY: 0,\n rotate: 180\n },\n below: {\n translateX: h,\n translateY: 0,\n rotate: 0\n }\n };\n var v = d[o];\n l.transform = \"translate(\".concat(v.translateX, \"px, \").concat(v.translateY, \"px) rotate(\").concat(v.rotate, \"deg)\");\n // set new positions\n var m = {\n left: \"right\",\n right: \"left\",\n above: \"bottom\",\n below: \"top\"\n };\n l[m[o]] = \"1px\";\n var b = {\n left: \"top\",\n right: \"top\",\n above: \"left\",\n below: \"left\"\n };\n l[b[o]] = \"50%\";\n return [ l, v ];\n }\n } ]);\n function r(e) {\n var o;\n He(this, r);\n o = t.call(this, e);\n Ke(ze(o), \"outerContainerEl\", null);\n Ke(ze(o), \"innerContainerEl\", null);\n Ke(ze(o), \"arrow\", null);\n Ke(ze(o), \"windowSizeMeasurementEl\", null);\n Ke(ze(o), \"handleScroll\", void 0);\n Ke(ze(o), \"handleWindowScroll\", void 0);\n Ke(ze(o), \"allowAnimationUpdates\", true);\n Ke(ze(o), \"getElPosition\", (function(e) {\n var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var r = ge(e, t);\n var n = {\n width: e.offsetWidth,\n height: e.offsetHeight\n };\n var a = o.props.pointTo;\n var i = a && d()(a, \"x\");\n var l = a && d()(a, \"y\");\n n.left = i ? r.left + ((a === null || a === void 0 ? void 0 : a.x) || 0) : r.left;\n n.top = l ? r.top + ((a === null || a === void 0 ? void 0 : a.y) || 0) : r.top;\n n.right = i ? n.left + n.width : r.left + n.width || r.right;\n n.bottom = l ? n.top + n.height : r.top + n.height || r.bottom;\n n.middle = i ? n.left : r.left + (n.right - r.left) / 2;\n n.center = l ? n.top : r.top + (n.bottom - r.top) / 2;\n return n;\n }));\n Ke(ze(o), \"setPlacement\", (function(e) {\n var t = he();\n o.setState((function(n) {\n var a;\n var i = o.props, l = i.align, c = i.anchor, f = i.autoCloseWhenOffScreen, s = i.canCoverAnchor, u = i.defaultPlacement, p = i.open, h = i.repositionMode, d = i.splunkTheme;\n var v = o.context || t;\n var m = d.isPrisma;\n // If these conditions are not met, we cannot set the popover.\n if (!p || !o.outerContainerEl || !c || !n.anchorEl || !o.windowSizeMeasurementEl) {\n if (false) {}\n return null;\n }\n var b = o.getElPosition(n.anchorEl);\n var y = o.getElPosition(n.anchorEl, true);\n var g = Ge(v) ? o.getElPosition(v) : undefined;\n if (e && f) {\n if (o.autoCloseWhenOffScreen(b, g)) {\n return null;\n }\n }\n var w = m ? 0 : 8;\n var S = 8;\n var O = m ? \"edge\" : \"center\";\n var P = z({\n align: l === \"theme\" ? O : l,\n anchorPos: y,\n scrollContainerPos: g,\n canCoverAnchor: s,\n defaultPlacement: u,\n repositionMode: h,\n outerContainerEl: o.outerContainerEl,\n padding: S,\n windowWidth: o.windowSizeMeasurementEl.offsetLeft,\n windowHeight: o.windowSizeMeasurementEl.offsetTop\n }), E = P.placement, C = P.outerContainerStyle, k = P.maxHeight, x = P.maxWidth;\n var A = o.arrow ? r.getArrowStyle({\n anchorPos: y,\n arrowHeight: w,\n outerContainerStyle: C,\n placement: E,\n outerContainerEl: o.outerContainerEl\n }) : [], T = Ae(A, 2), R = T[0], q = T[1];\n var W = o.props.appearance !== \"none\" && !m;\n var M = Ye(y, n.anchorPos) && Ye(C, n.outerContainerStyle) && E === n.placement && k === n.maxHeight && x === n.maxWidth;\n var H = Ye(j()(R, \"transform\"), j()(n.arrowStyle, \"transform\")) && Ye(q !== null && q !== void 0 ? q : {}, (a = n.arrowStyleTransformMeta) !== null && a !== void 0 ? a : {});\n // If none of the position data has changed, do not set state.\n if (M && (!W || W && H)) {\n return null;\n }\n return {\n anchorPos: y,\n arrowStyle: R,\n arrowStyleTransformMeta: q,\n outerContainerStyle: C,\n placement: E,\n maxHeight: k,\n maxWidth: x\n };\n }));\n }));\n Ke(ze(o), \"handleNewAnchor\", (function(e) {\n var t;\n if (e && !(e instanceof HTMLElement)) {\n if (false) {}\n t = (0, i.findDOMNode)(e);\n // eslint-disable-line react/no-find-dom-node\n } else {\n t = e !== null && e !== void 0 ? e : undefined;\n }\n var r = t ? o.getElPosition(t) : undefined;\n o.setState({\n anchorEl: t,\n anchorPos: r\n });\n // eslint-disable-line react/no-unused-state\n }));\n Ke(ze(o), \"handleInnerContainerMount\", (function(e) {\n o.innerContainerEl = e;\n if (e && o.props.takeFocus) {\n s()(L.takeFocus, e);\n }\n we(o.props.elementRef, e);\n }));\n Ke(ze(o), \"handleOuterContainerMount\", (function(e) {\n o.outerContainerEl = e;\n we(o.props.outerRef, e);\n }));\n Ke(ze(o), \"handleTab\", (function(e) {\n if (o.innerContainerEl) {\n if (o.props.retainFocus) {\n (0, L.handleTab)(o.innerContainerEl, e);\n } else if ((0, L.isTabKey)(e)) {\n var t = (0, L.getSortedTabbableElements)(o.innerContainerEl);\n if (t.length > 0) {\n var r = e.shiftKey ? t[0] : t[t.length - 1];\n if (r === e.target) {\n o.handleRequestClose({\n event: e,\n reason: \"tabKey\"\n });\n }\n }\n }\n }\n }));\n Ke(ze(o), \"handleRequestClose\", (function(e) {\n if (o.props.open) {\n o.requestClose(e);\n }\n }));\n Ke(ze(o), \"handleAnimationEnd\", (function() {\n if (o.allowAnimationUpdates) {\n o.setState({\n animating: false\n });\n }\n }));\n Ke(ze(o), \"renderLayer\", (function() {\n var e = o.props, t = e.animation, a = e.animationConfig, i = e.appearance, l = e.children, c = e.id, f = e.open, s = e.retainFocus, u = e.splunkTheme;\n var p = o.state, h = p.anchorPos, d = p.arrowStyle, v = p.outerContainerStyle, m = p.placement;\n var b = u.isPrisma;\n var y = b && i === \"inverted\" ? \"normal\" : i;\n var g = o.state, S = g.maxHeight, P = g.maxWidth;\n // eslint-disable-line prefer-const\n // Accommodate the arrow in the maxHeight and maxWidth.\n if (i !== \"none\") {\n if (w()(S)) {\n S -= 20;\n }\n if (w()(P)) {\n P -= 20;\n }\n }\n var C = {\n anchorHeight: h ? h.height : null,\n anchorWidth: h ? h.width : null,\n placement: m || null,\n maxHeight: S || null,\n maxWidth: P || null\n };\n var k = t ? {\n opacity: f ? 1 : 0\n } : {\n opacity: 1\n };\n /* eslint-disable jsx-a11y/no-static-element-interactions */ \n return n().createElement(T.Spring, {\n from: {\n opacity: t ? 0 : 1\n },\n to: k,\n config: xe({\n tension: 300,\n friction: 40\n }, a),\n onRest: o.handleAnimationEnd\n }, (function(e) {\n \n return n().createElement(X, {\n \"data-test\": \"outer-popover\",\n style: xe(xe({}, v), e),\n ref: o.handleOuterContainerMount\n }, (f || o.state.animating) && n().createElement(Y, Oe({\n $appearance: y,\n $open: f,\n \"data-test\": \"popover\",\n ref: o.handleInnerContainerMount,\n tabIndex: -1,\n id: c,\n onKeyDown: o.handleTab\n }, j()(o.props, [ \"anchor\" ].concat(Pe(E()(r.propTypes))))), n().createElement($.Provider, {\n value: {\n retainFocus: s\n }\n }, n().createElement(n().Fragment, null, i === \"none\" && l, i !== \"none\" && !b && n().createElement(J, {\n $appearance: y,\n ref: function e(t) {\n o.arrow = t;\n },\n style: d\n }), i !== \"none\" && n().createElement(G, {\n $appearance: y\n }, O()(l) ? l(C) : l)))), n().createElement(Q, {\n ref: function e(t) {\n o.windowSizeMeasurementEl = t;\n }\n }));\n }));\n /* eslint-enable jsx-a11y/no-static-element-interactions */ }));\n o.handleScroll = x()(o.setPlacement.bind(ze(o), true), 0);\n o.handleWindowScroll = x()(o.setPlacement.bind(ze(o), true), 0);\n o.setPlacement = x()(o.setPlacement, 0, {\n leading: false\n });\n o.state = {\n animating: false,\n prevOpen: e.open\n };\n return o;\n }\n Le(r, [ {\n key: \"componentDidMount\",\n value: function e() {\n this.handleNewAnchor(this.props.anchor);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function e(t) {\n if (t.anchor !== this.props.anchor) {\n this.handleNewAnchor(this.props.anchor);\n }\n if (!this.innerContainerEl) {\n return;\n }\n if (this.props.open || this.state.animating) {\n this.setPlacement();\n // make sure that the popover both was not open before and is actually open now\n // this prevents bugs like #4 in SUI-2054 where popover contents re-rendering due to animation\n // causes the popover contents to receive focus even though the popover closing\n if (!t.open && this.props.open && this.props.takeFocus) {\n (0, L.takeFocus)(this.innerContainerEl);\n }\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function e() {\n this.setPlacement.cancel();\n // guaranteed by constructor\n this.handleScroll.cancel();\n this.allowAnimationUpdates = false;\n }\n }, {\n key: \"autoCloseWhenOffScreen\",\n value: function e(t, r) {\n var n = he();\n if (t.top < 0 || t.top > n.innerHeight || t.left < 0 || t.left > n.innerWidth) {\n this.requestClose({\n reason: \"offScreen\"\n });\n return true;\n }\n if (r) {\n if (t.height + t.top < r.top || t.top > r.bottom || t.width + t.left < r.left || t.left > r.right) {\n this.requestClose({\n reason: \"offScreen\"\n });\n return true;\n }\n }\n return false;\n }\n }, {\n key: \"requestClose\",\n value: function e(t) {\n if (m()(this.props.closeReasons, t.reason)) {\n var r, n;\n (r = (n = this.props).onRequestClose) === null || r === void 0 ? void 0 : r.call(n, t);\n }\n }\n }, {\n key: \"render\",\n value: function e() {\n var t = he();\n var r = this.props.open || this.state.animating;\n var o = this.context || t;\n var a = o !== t;\n var i = this.state, l = i.anchorPos, c = i.placement;\n // EventListeners only need to be rendered when open,\n // otherwise leads to negative performance impacts\n var f = r ? [ a && n().createElement(q(), {\n target: o,\n eventType: \"scroll\",\n listener: this.handleScroll,\n options: {\n passive: false,\n capture: true\n },\n key: \"eventListener\"\n }), n().createElement(q(), {\n target: t,\n eventType: \"resize\",\n listener: this.setPlacement,\n key: \"eventListenerOnWindowResize\"\n }), n().createElement(q(), {\n target: t,\n eventType: \"scroll\",\n listener: this.handleWindowScroll,\n options: {\n passive: false,\n capture: true\n },\n key: \"eventListenerOnWindowScroll\"\n }) ] : [];\n return [].concat(f, [ n().createElement(M(), {\n closeReasons: y()(this.props.closeReasons.filter((function(e) {\n return e !== \"offScreen\";\n })), M().possibleCloseReasons),\n open: r,\n onRequestClose: this.handleRequestClose,\n key: \"Layer\"\n }, r && this.innerContainerEl && this.props.hitAreaRef && n().createElement(fe, {\n anchorRect: l,\n popoverEl: this.innerContainerEl,\n popoverPlacement: c,\n ref: this.props.hitAreaRef\n }), r && this.renderLayer()) ]);\n }\n } ]);\n return r;\n }(r.Component);\n Ke(Je, \"contextType\", _());\n Ke(Je, \"defaultProps\", Xe);\n Ke(Je, \"propTypes\", Be);\n Ke(Je, \"getDerivedStateFromProps\", (function(e, t) {\n if (e.open !== t.prevOpen) {\n return {\n animating: e.animation,\n prevOpen: e.open\n };\n }\n return null;\n }));\n var Qe = (0, A.withSplunkTheme)(Je);\n Qe.propTypes = Je.propTypes;\n /* harmony default export */ const Ze = Qe;\n // CONCATENATED MODULE: ./src/Popover/index.ts\n module.exports = t;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = r => {\n /******/ var t = r && r.__esModule ? \n /******/ () => r[\"default\"]\n /******/ : () => r\n /******/;\n e.d(t, {\n a: t\n });\n /******/ return t;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (r, t) => {\n /******/ for (var n in t) {\n /******/ if (e.o(t, n) && !e.o(r, n)) {\n /******/ Object.defineProperty(r, n, {\n enumerable: true,\n get: t[n]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var r = {};\n // ESM COMPAT FLAG\n e.r(r);\n // EXPORTS\n e.d(r, {\n default: () => /* reexport */ v\n });\n // CONCATENATED MODULE: external \"react\"\n const t = require(\"react\");\n var n = e.n(t);\n // CONCATENATED MODULE: external \"prop-types\"\n const o = require(\"prop-types\");\n var a = e.n(o);\n // CONCATENATED MODULE: external \"styled-components\"\n const i = require(\"styled-components\");\n var l = e.n(i);\n // CONCATENATED MODULE: external \"@splunk/themes\"\n const c = require(\"@splunk/themes\");\n // CONCATENATED MODULE: ./src/ScreenReaderContent/ScreenReaderContentStyles.ts\n var u = l().span.withConfig({\n displayName: \"ScreenReaderContentStyles__Styled\",\n componentId: \"sc-1lnohwp-0\"\n })([ \"\", \";\" ], c.mixins.screenReaderContent());\n // CONCATENATED MODULE: ./src/ScreenReaderContent/ScreenReaderContent.tsx\n function f() {\n f = Object.assign || function(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = arguments[r];\n for (var n in t) {\n if (Object.prototype.hasOwnProperty.call(t, n)) {\n e[n] = t[n];\n }\n }\n }\n return e;\n };\n return f.apply(this, arguments);\n }\n function s(e, r) {\n if (e == null) return {};\n var t = p(e, r);\n var n, o;\n if (Object.getOwnPropertySymbols) {\n var a = Object.getOwnPropertySymbols(e);\n for (o = 0; o < a.length; o++) {\n n = a[o];\n if (r.indexOf(n) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(e, n)) continue;\n t[n] = e[n];\n }\n }\n return t;\n }\n function p(e, r) {\n if (e == null) return {};\n var t = {};\n var n = Object.keys(e);\n var o, a;\n for (a = 0; a < n.length; a++) {\n o = n[a];\n if (r.indexOf(o) >= 0) continue;\n t[o] = e[o];\n }\n return t;\n }\n var d = {\n children: a().node.isRequired,\n elementRef: a().oneOfType([ a().func, a().object ])\n };\n /**\n * The screen reader text is used to wrap content that\n * is only accessible through screen readers.\n */ function y(e) {\n var r = e.children, t = e.elementRef, o = s(e, [ \"children\", \"elementRef\" ]);\n // @docs-props-type ScreenReaderContentPropsBase\n \n return n().createElement(u, f({\n \"data-test\": \"screen-reader-content\",\n ref: t\n }, o), r);\n }\n y.propTypes = d;\n /* harmony default export */ const v = y;\n // CONCATENATED MODULE: ./src/ScreenReaderContent/index.ts\n module.exports = r;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = t => {\n /******/ var n = t && t.__esModule ? \n /******/ () => t[\"default\"]\n /******/ : () => t\n /******/;\n e.d(n, {\n a: n\n });\n /******/ return n;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (t, n) => {\n /******/ for (var r in n) {\n /******/ if (e.o(n, r) && !e.o(t, r)) {\n /******/ Object.defineProperty(t, r, {\n enumerable: true,\n get: n[r]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var t = {};\n // ESM COMPAT FLAG\n e.r(t);\n // EXPORTS\n e.d(t, {\n ScrollContainerContext: () => /* reexport */ a,\n ScrollContainerProvider: () => /* reexport */ f,\n default: () => /* reexport */ l\n });\n // CONCATENATED MODULE: external \"react\"\n const n = require(\"react\");\n var r = e.n(n);\n // CONCATENATED MODULE: ./src/utils/ssrDocument.ts\n /* eslint-disable @typescript-eslint/no-empty-function */\n var o = {\n body: {\n appendChild: function e() {\n return [];\n }\n },\n addEventListener: function e() {},\n removeEventListener: function e() {},\n activeElement: {\n blur: function e() {},\n nodeName: \"\"\n },\n querySelector: function e() {\n return null;\n },\n querySelectorAll: function e() {\n return [];\n },\n getElementById: function e() {\n return null;\n },\n createEvent: function e() {\n return {\n initEvent: function e() {}\n };\n },\n createElement: function e() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function e() {},\n getElementsByTagName: function e() {\n return [];\n }\n };\n },\n createElementNS: function e() {\n return {};\n },\n importNode: function e() {\n return null;\n },\n location: {\n hash: \"\",\n host: \"\",\n hostname: \"\",\n href: \"\",\n origin: \"\",\n pathname: \"\",\n protocol: \"\",\n search: \"\"\n }\n };\n function u() {\n var e = typeof document !== \"undefined\" ? document : o;\n return e;\n }\n // CONCATENATED MODULE: ./src/utils/ssrWindow.ts\n /* eslint-disable @typescript-eslint/no-empty-function */\n var i = {\n document: o,\n navigator: {\n userAgent: \"\"\n },\n location: {\n hash: \"\",\n host: \"\",\n hostname: \"\",\n href: \"\",\n origin: \"\",\n pathname: \"\",\n protocol: \"\",\n search: \"\"\n },\n history: {\n replaceState: function e() {},\n pushState: function e() {},\n go: function e() {},\n back: function e() {}\n },\n CustomEvent: function e() {\n return this;\n },\n addEventListener: function e() {},\n removeEventListener: function e() {},\n getComputedStyle: function e() {\n return {\n getPropertyValue: function e() {\n return \"\";\n }\n };\n },\n Image: function e() {},\n Date: function e() {},\n screen: {},\n setTimeout: function e() {},\n clearTimeout: function e() {},\n matchMedia: function e() {\n return {};\n },\n requestAnimationFrame: function e(t) {\n if (typeof setTimeout === \"undefined\") {\n t();\n return null;\n }\n return setTimeout(t, 0);\n },\n cancelAnimationFrame: function e(t) {\n if (typeof setTimeout === \"undefined\") {\n return;\n }\n clearTimeout(t);\n }\n };\n function c() {\n var e = typeof window !== \"undefined\" ? window : i;\n return e;\n }\n // CONCATENATED MODULE: ./src/ScrollContainerContext/ScrollContainerContext.tsx\n /**\n * A React context used to manage a custom scroll container for child elements\n * that need to react to scrolling. The context type is `Window | Document | HTMLElement | null | undefined`.\n * Defaults to `window`. Consumers of this context must gracefully handle values\n * of `null` and `undefined`.\n * @public\n */\n var a = r().createContext(c());\n /**\n * `ScrollContainerProvider` is an alias of `ScrollContainerContext.Provider`.\n * @public\n */ var f = a.Provider;\n /* harmony default export */ const l = a;\n // CONCATENATED MODULE: ./src/ScrollContainerContext/index.ts\n module.exports = t;\n /******/})();","/******/ (() => {\n // webpackBootstrap\n /******/ \"use strict\";\n /******/ // The require scope\n /******/ var e = {};\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ e.n = t => {\n /******/ var r = t && t.__esModule ? \n /******/ () => t[\"default\"]\n /******/ : () => t\n /******/;\n e.d(r, {\n a: r\n });\n /******/ return r;\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ e.d = (t, r) => {\n /******/ for (var i in r) {\n /******/ if (e.o(r, i) && !e.o(t, i)) {\n /******/ Object.defineProperty(t, i, {\n enumerable: true,\n get: r[i]\n });\n /******/ }\n /******/ }\n /******/ };\n /******/ })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ e.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t)\n /******/;\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ e.r = e => {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n /******/ Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ }\n /******/ Object.defineProperty(e, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/\n /************************************************************************/ var t = {};\n // ESM COMPAT FLAG\n e.r(t);\n // EXPORTS\n e.d(t, {\n default: () => /* reexport */ _\n });\n // CONCATENATED MODULE: external \"react\"\n const r = require(\"react\");\n var i = e.n(r);\n // CONCATENATED MODULE: external \"prop-types\"\n const a = require(\"prop-types\");\n var n = e.n(a);\n // CONCATENATED MODULE: external \"@splunk/react-ui/AnimationToggle\"\n const s = require(\"@splunk/react-ui/AnimationToggle\");\n // CONCATENATED MODULE: external \"@splunk/themes\"\n const o = require(\"@splunk/themes\");\n // CONCATENATED MODULE: external \"@splunk/ui-utils/i18n\"\n const l = require(\"@splunk/ui-utils/i18n\");\n // CONCATENATED MODULE: external \"styled-components\"\n const c = require(\"styled-components\");\n var m = e.n(c);\n // CONCATENATED MODULE: ./src/WaitSpinner/WaitSpinnerStyles.ts\n var p = m().div.withConfig({\n displayName: \"WaitSpinnerStyles__Styled\",\n componentId: \"sc-1nu971z-0\"\n })([ \"\", \";align-items:center;\" ], o.mixins.reset(\"inline-flex\"));\n var f = (0, c.keyframes)([ \"100%{transform:rotate(360deg);}\" ]);\n var d = (0, c.keyframes)([ \"0%{transform:scale(0);opacity:0;}100%{transform:scale(1);opacity:1;}\" ]);\n var u = \"2.07s\";\n var y = m().svg.withConfig({\n displayName: \"WaitSpinnerStyles__StyledSvg\",\n componentId: \"sc-1nu971z-1\"\n })([ \"\", \" \", \"\" ], (0, o.pickVariant)(\"$size\", {\n small: {\n enterprise: (0, c.css)([ \"width:14px;height:14px;\" ]),\n prisma: (0, c.css)([ \"width:16px;height:16px;\" ])\n },\n medium: {\n enterprise: (0, c.css)([ \"width:19px;height:19px;\" ]),\n prisma: (0, c.css)([ \"width:24px;height:24px;\" ])\n },\n large: {\n enterprise: (0, c.css)([ \"width:19px;height:19px;\" ]),\n prisma: (0, c.css)([ \"width:40px;height:40px;\" ])\n }\n }), (function(e) {\n var t = e.$animated;\n return t && (0, o.pick)({\n enterprise: (0, c.css)([ \"transform-origin:center;animation:\", \" 1.2s steps(64) infinite;\" ], f),\n prisma: (0, c.css)([ \"animation:\", \" \", \" infinite linear,\", \" 500ms cubic-bezier(0.01,0,0,1);\" ], f, u, d)\n });\n }));\n var h = (0, c.keyframes)([ \"0%{stroke-dasharray:110 10;stroke-dashoffset:-5.5;animation-timing-function:cubic-bezier(0.8,0,0.83,1);}50%{stroke-dasharray:26 94;stroke-dashoffset:-152;}100%{stroke-dasharray:110 10;stroke-dashoffset:-246.5;animation-timing-function:cubic-bezier(0.33,0,0.67,1);}\" ]);\n var v = (0, c.keyframes)([ \"0%{stroke-dasharray:7 113;stroke-dashoffset:3;animation-timing-function:cubic-bezier(0.8,0,0.83,1);}50%{stroke-dasharray:90 30;stroke-dashoffset:-60;}100%{stroke-dasharray:7 113;stroke-dashoffset:-238;animation-timing-function:cubic-bezier(0.33,0,0.67,1);}\" ]);\n var g = m().circle.withConfig({\n displayName: \"WaitSpinnerStyles__StyledPrismaBasePath\",\n componentId: \"sc-1nu971z-2\"\n })([ \"stroke:\", \";stroke-width:2;fill:transparent;\", \" stroke-dasharray:110 10;stroke-dashoffset:-5.5;\" ], o.variables.contentColorDisabled, (function(e) {\n var t = e.$animated;\n return t && (0, c.css)([ \"animation:\", \" \", \" infinite;animation-fill-mode:backwards;\" ], h, u);\n }));\n var k = m().circle.withConfig({\n displayName: \"WaitSpinnerStyles__StyledPrismaFillPath\",\n componentId: \"sc-1nu971z-3\"\n })([ \"fill:transparent;stroke-width:2;stroke:\", \";stroke-dasharray:7 113;stroke-dashoffset:3;\", \"\" ], (0, \n o.pickVariant)(\"$size\", {\n small: o.variables.contentColorDefault,\n medium: o.variables.contentColorDefault,\n large: o.variables.interactiveColorPrimary\n }), (function(e) {\n var t = e.$animated;\n return t && (0, c.css)([ \"animation:\", \" \", \" infinite;\" ], v, u);\n }));\n var b = m().circle.withConfig({\n displayName: \"WaitSpinnerStyles__StyledEnterpriseCircle\",\n componentId: \"sc-1nu971z-4\"\n })([ \"fill:transparent;stroke:\", \";stroke-width:2px;\", \"\" ], (0, o.pick)({\n enterprise: {\n dark: o.variables.white,\n light: o.variables.gray60\n },\n prisma: o.variables.contentColorMuted\n }), (0, o.pick)({\n enterprise: (0, c.css)([ \"stroke-dasharray:34 19;\" ])\n }));\n // CONCATENATED MODULE: ./src/WaitSpinner/WaitSpinner.tsx\n function w() {\n w = Object.assign || function(e) {\n for (var t = 1; t < arguments.length; t++) {\n var r = arguments[t];\n for (var i in r) {\n if (Object.prototype.hasOwnProperty.call(r, i)) {\n e[i] = r[i];\n }\n }\n }\n return e;\n };\n return w.apply(this, arguments);\n }\n function x(e, t) {\n if (e == null) return {};\n var r = S(e, t);\n var i, a;\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n for (a = 0; a < n.length; a++) {\n i = n[a];\n if (t.indexOf(i) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(e, i)) continue;\n r[i] = e[i];\n }\n }\n return r;\n }\n function S(e, t) {\n if (e == null) return {};\n var r = {};\n var i = Object.keys(e);\n var a, n;\n for (n = 0; n < i.length; n++) {\n a = i[n];\n if (t.indexOf(a) >= 0) continue;\n r[a] = e[a];\n }\n return r;\n }\n var z = {\n elementRef: n().oneOfType([ n().func, n().object ]),\n screenReaderText: n().string,\n size: n().oneOf([ \"small\", \"medium\", \"large\" ])\n };\n function O(e) {\n var t = e.elementRef, r = e.screenReaderText, a = r === void 0 ? (0, l._)(\"Waiting\") : r, n = e.size, c = n === void 0 ? \"small\" : n, m = x(e, [ \"elementRef\", \"screenReaderText\", \"size\" ]);\n // @docs-props-type WaitSpinnerPropsBase\n var f = (0, s.useAnimationToggle)() === \"on\";\n var d = (0, o.useSplunkTheme)(), u = d.isPrisma;\n var h = u ? \"0 0 40 40\" : \"0 0 19 19\";\n \n return i().createElement(p, w({\n \"data-test\": \"wait-spinner\"\n }, m), i().createElement(y, {\n viewBox: h,\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: t,\n $animated: f,\n $size: c\n }, a && i().createElement(\"title\", null, a), i().createElement(\"g\", null, u ? i().createElement(i().Fragment, null, i().createElement(g, {\n r: \"19\",\n cx: \"20\",\n cy: \"20\",\n $animated: f,\n $size: c\n }), i().createElement(k, {\n r: \"19\",\n cx: \"20\",\n cy: \"20\",\n $animated: f,\n $size: c\n })) : i().createElement(b, {\n cx: \"9.5\",\n cy: \"9.5\",\n r: \"8.5\"\n }))));\n }\n O.propTypes = z;\n /* harmony default export */ const _ = O;\n // CONCATENATED MODULE: ./src/WaitSpinner/index.ts\n module.exports = t;\n /******/})();","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.extractAppName = extractAppName;\nexports.versionLabel = exports.username = exports.splunkdPath = exports.serverTimezoneInfo = exports.rootPath = exports.portNumber = exports.locale = exports.config = exports.buildPushNumber = exports.buildNumber = exports.appBuild = exports.app = exports.isAvailable = exports.CSRFToken = void 0;\n\nvar _get = _interopRequireDefault(require(\"lodash/get\"));\n\nvar _cookie = require(\"@splunk/ui-utils/cookie\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * A set of constants describing the server environment. If window.$C isn't defined, most of the\n * values on this page are also undefined.\n *\n * The constants may be imported independently, such as:\n * ```\n * import { buildNumber, locale, rootPath } from '@splunk/splunk-utils/config';\n * @file\n */\n\n/* global global */\n// If this is running in Node, the root is the `global` object. If it's running in the browser,\n// root is the `window` object.\nvar root = typeof window === 'undefined' ? global : window;\n/**\n * A function to get a $C prop. Returns undefined if $C isn't available.\n * @private\n */\n\nfunction get$CEntry(prop) {\n return (0, _get[\"default\"])(root, ['$C', prop]);\n}\n/**\n * The CSRF token. This may be `null` if the token isn't found in the cookie.\n *\n * @constant\n *\n * @public\n */\n\n\nvar CSRFToken = (0, _cookie.getEntry)(\"splunkweb_csrf_token_\".concat(get$CEntry('MRSPARKLE_PORT_NUMBER')));\n/**\n * If `window.$C` is undefined or invalid, isAvailable is `false`.\n * @constant\n * @public\n */\n\nexports.CSRFToken = CSRFToken;\nvar isAvailable = !!get$CEntry('SPLUNKD_PATH');\n/**\n * Extracts app name from the URL. To enable testing, this function is exported and pathname\n * can be overridden.\n * @private\n */\n\nexports.isAvailable = isAvailable;\n\nfunction extractAppName() {\n var pathname = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : (0, _get[\"default\"])(root, ['document', 'location', 'pathname'], '');\n var pathMatch = pathname.match(/\\w\\w.\\w\\w\\/(app|manager)\\/([^/]+)/);\n return pathMatch ? pathMatch[2] : undefined;\n}\n/**\n * The name of the current app as shown in the URL (not the display name).\n * @constant\n * @public\n */\n\n\nvar app = extractAppName();\n/**\n * The build number of the current app.\n * @constant\n * @public\n */\n\nexports.app = app;\nvar appBuild = get$CEntry('APP_BUILD');\n/**\n * A hash string of the current build.\n * @constant\n * @type {string}\n * @public\n */\n\nexports.appBuild = appBuild;\nvar buildNumber = get$CEntry('BUILD_NUMBER');\n/**\n * A incremented number configured per instance. Defaults to 0.\n * @constant\n * @public\n */\n\nexports.buildNumber = buildNumber;\nvar buildPushNumber = get$CEntry('BUILD_PUSH_NUMBER');\n/**\n * The full object of window.$C.\n * @constant\n * @public\n */\n\nexports.buildPushNumber = buildPushNumber;\nvar config = (0, _get[\"default\"])(root, '$C');\n/**\n * The current locale, such as \"en-US\".\n * @constant\n * @public\n */\n\nexports.config = config;\nvar locale = get$CEntry('LOCALE');\n/**\n * The port that Splunk Web is using. Defaults to 8000.\n * @constant\n * @public\n */\n\nexports.locale = locale;\nvar portNumber = get$CEntry('MRSPARKLE_PORT_NUMBER');\n/**\n * Splunk may not be running in the root directory, so the locale may not be the first element\n * in the pathname. If it is running in the root directory, ```rootPath``` is an empty\n * string. Otherwise it returns the root. For example, in the page\n * ```\n * http://splunk.domain.com/my-root-dir/en-US/app/search/search\n * ```\n * ```rootPath``` is set to ```'my-root-dir'```.\n * @constant\n * @public\n */\n\nexports.portNumber = portNumber;\nvar rootPath = get$CEntry('MRSPARKLE_ROOT_PATH');\n/**\n * The serialized Splunk Enterprise time zone data. This can be parsed for use in formatting Epoch times\n * on the client.\n * @constant\n * @public\n */\n\nexports.rootPath = rootPath;\nvar serverTimezoneInfo = get$CEntry('SERVER_ZONEINFO');\n/**\n * The Splunk Web proxing to splunkd, such as ```/en-US/splunkd/__raw```.\n * @constant\n * @public\n */\n\nexports.serverTimezoneInfo = serverTimezoneInfo;\nvar splunkdPath = get$CEntry('SPLUNKD_PATH');\n/**\n * The username of the current user.\n * @constant\n * @public\n */\n\nexports.splunkdPath = splunkdPath;\nvar username = get$CEntry('USERNAME');\n/**\n * The version label of splunkd.\n * @constant\n * @public\n */\n\nexports.username = username;\nvar versionLabel = get$CEntry('VERSION_LABEL');\nexports.versionLabel = versionLabel;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.defaultTheme = defaultTheme;\nexports.getUserTheme = getUserTheme;\nexports.getThemeOptions = getThemeOptions;\n\nvar _scriptjs = _interopRequireDefault(require(\"scriptjs\"));\n\nvar _url = require(\"@splunk/splunk-utils/url\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * A set of functions for dealing with Splunk themes.\n * @file\n */\nvar defaultThemeSplunkThemeProviderMap = {\n enterprise: {\n family: 'enterprise',\n colorScheme: 'light',\n density: 'comfortable'\n },\n enterpriseDark: {\n family: 'enterprise',\n colorScheme: 'dark',\n density: 'comfortable'\n },\n light: {\n family: 'enterprise',\n colorScheme: 'light',\n density: 'comfortable'\n },\n dark: {\n family: 'enterprise',\n colorScheme: 'dark',\n density: 'comfortable'\n },\n prismaLight: {\n family: 'prisma',\n colorScheme: 'light',\n density: 'comfortable'\n },\n prismaDark: {\n family: 'prisma',\n colorScheme: 'dark',\n density: 'comfortable'\n },\n lite: {\n family: 'enterprise',\n colorScheme: 'light',\n density: 'comfortable'\n }\n};\n\nfunction getThemeApi(callback) {\n var url = (0, _url.createStaticURL)('build/api/get_theme.js');\n (0, _scriptjs[\"default\"])(url, function () {\n // eslint-disable-next-line no-underscore-dangle\n callback(window.__get_theme__);\n });\n}\n/**\n * Determines a default theme name based on the current environment, such as `$C`.\n *\n * @deprecated Use getUserTheme instead.\n * @param {Object} [scope=window (if available)] - The environment.\n * @returns {String} The theme name (`enterprise`, `lite`, ...)\n * @public\n */\n\n\nfunction defaultTheme() {\n var scope = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : typeof window !== 'undefined' ? window : null;\n\n if (!scope) {\n return 'enterprise';\n }\n /* eslint-disable no-underscore-dangle */\n\n\n var partialsTheme = scope.__splunkd_partials__ && scope.__splunkd_partials__['/services/server/info'] && scope.__splunkd_partials__['/services/server/info'].entry[0].content.product_type;\n var scopeTheme = scope.__splunk_ui_theme__;\n /* eslint-enable no-underscore-dangle */\n\n var cTheme = scope.$C && scope.$C.SPLUNK_UI_THEME;\n return scopeTheme || cTheme || partialsTheme || 'enterprise';\n}\n/**\n * Determines the user theme name based on Splunk Core theme precedence.\n *\n * @throws {error} If the theme API is not available.\n * @returns {Promise} Returns any key in the defaultThemeSplunkThemeProviderMap\n * @public\n */\n\n\nfunction getUserTheme() {\n return new Promise(function (resolve) {\n var cb = function cb(themeApi) {\n if (themeApi) {\n themeApi.getTheme().then(function (theme) {\n resolve(theme);\n });\n return;\n }\n\n resolve(defaultTheme());\n };\n\n getThemeApi(cb);\n });\n}\n/**\n *\n * @param {string} theme\n * @returns {object} An object with the props expected by from @splunk/themes\n */\n\n\nfunction getThemeOptions(theme) {\n return defaultThemeSplunkThemeProviderMap[theme] || defaultThemeSplunkThemeProviderMap.enterprise;\n}","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.withConfig = withConfig;\nexports.insertCacheBuster = exports.createURL = exports.createStaticURL = exports.createRESTURL = exports.createDocsURL = exports.createAppDocsURL = void 0;\n\nvar _querystring = require(\"querystring\");\n\nvar config = _interopRequireWildcard(require(\"./config\"));\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * A set of functions for generating Splunk Web URLs. They may be imported independently, such as:\n * ```\n * import { createURL, createStaticURL } from '@splunk/splunk-utils/url';\n * ```\n * @file\n */\nfunction withConfig(_ref) {\n var appBuild = _ref.appBuild,\n buildNumber = _ref.buildNumber,\n buildPushNumber = _ref.buildPushNumber,\n locale = _ref.locale,\n rootPath = _ref.rootPath,\n splunkdPath = _ref.splunkdPath;\n\n /**\n * Inserts a cache buster into the given path.\n *\n * @param path {String} - The path to inject the cache buster into.\n * @param configOptions {Object} - Config options including `appBuild`, `buildPushNumber`, and\n * `buildNumber`. Defaults to the values provided by `@splunk/splunk-utils/config`.\n * @return {String} Returns the path with the cache buster `/@9850fc87a5ee`.\n * @private\n */\n function insertCacheBuster(path) {\n var configOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var options = _objectSpread({\n appBuild: appBuild,\n buildPushNumber: buildPushNumber,\n buildNumber: buildNumber\n }, configOptions);\n\n var match = path.match(/(^|\\w\\w-\\w\\w\\/)static\\//);\n\n if (!match) {\n return path;\n }\n\n var insertPosition = match.index + match[0].length - 1;\n var isApp = path.match(/(^|\\w\\w-\\w\\w|)static\\/app/);\n var appBuildString = isApp ? \":\".concat(options.appBuild || 0) : '';\n var buildPushString = options.buildPushNumber ? \".\".concat(options.buildPushNumber) : '';\n var cacheBusterString = \"/@\".concat(options.buildNumber).concat(buildPushString).concat(appBuildString);\n var before = path.substr(0, insertPosition);\n var after = path.substr(insertPosition);\n return \"\".concat(before).concat(cacheBusterString).concat(after);\n }\n /**\n * Returns a full path for the current appserver location.\n * This is required for proxy compatiblity, localization, and cache busting.\n *\n * For example:\n * ```js\n * createURL('app/search/job'); // \"/splunk/en-US/app/search/job\"\n * createURL('/app/search/job'); // \"/splunk/en-US/app/search/job\"\n * createURL('app/search/job', {id:3, user:'me' }); // \"/splunk/en-US/app/search/job?id=3&user=me\"\n * ```\n *\n * Static paths are augmented with a cache buster:\n * ```js\n * createURL('/static/js/foo.js'); // \"/splunk/en-US/static/@12345/js/foo.js\"\n * createURL('/static/js/foo.js'); // \"/splunk/en-US/static/@12345.1/js/foo.js\"\n * createURL('/static/app/search/js/foo.js'); // \"/splunk/en-US/static/@12345.1:0/app/search/js/foo.js\"\n * ```\n *\n * @public\n * @param path {String}\n * @param [queryParams] {Object} An object of the query parameters.\n * @param configOptions {Object} - Config options including `appBuild`, `buildPushNumber`,\n * `buildNumber`, `rootPath`, and `locale`. Defaults to the values provided by\n * `@splunk/splunk-utils/config`.\n * @return {String} Returns a valid URL with correct root path, locale, and cache buster.\n * @alias createURL\n */\n\n\n function createURL(pathInput, queryParams) {\n var configOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var options = _objectSpread({\n appBuild: appBuild,\n buildPushNumber: buildPushNumber,\n buildNumber: buildNumber,\n rootPath: rootPath,\n locale: locale\n }, configOptions);\n\n var path = pathInput || '/';\n var query = queryParams ? \"?\".concat((0, _querystring.stringify)(queryParams)) : '';\n\n if (path.charAt(0) !== '/') {\n path = \"/\".concat(path);\n }\n\n path = \"\".concat(options.rootPath || '', \"/\").concat(options.locale).concat(path).concat(query);\n return insertCacheBuster(path, options);\n }\n /**\n * Prepends Splunk Web path information necessary to access a static asset. For example:\n * ```\n * createURL('fonts/roboto-regular-webfont.woff'); // \"/splunk/en-US/static/@12345/fonts/roboto-regular-webfont.woff\"\n * createURL('app/search/fonts/roboto-regular-webfont.woff'); // \"/splunk/en-US/static/@12345.1:0/app/search/fonts/roboto-regular-webfont.woff\"\n * ```\n * @public\n * @param {String} path - A path to a static resource.\n * @param [queryParams] {Object} An object of the query parameters.\n * @param configOptions {Object} - Config options including `appBuild`, `buildPushNumber`,\n * `buildNumber`, `rootPath`, and `locale`. Defaults to the values provided by\n * `@splunk/splunk-utils/config`.\n * @return {String} Returns a valid URL with correct root path, locale, and cache buster.\n * @alias createStaticURL\n */\n\n\n function createStaticURL(path) {\n for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n\n return createURL.apply(void 0, [\"static/\".concat(path)].concat(rest));\n }\n /**\n * Creates a fully qualified URL for the specified endpoint.\n * For example:\n * ```\n * createRESTURL('server/info'); // \"/en-US/splunkd/__raw/services/server/info\"\n * createRESTURL('saved/searches', {app: 'search'}); // \"/en-US/splunkd/__raw/servicesNS/-/search/saved/searches\"\n * ```\n * @public\n * @param {String} endpoint - An endpoint to a REST API.\n * @param {Object} options\n * @param {String} [options.app] - App namespace to use.\n * @param {String} [options.owner] - User namespace to use.\n * @param {Sting} [options.sharing] - Must be one of [ '' | 'app' | 'global' | 'system' ].\n * @param {Object} [configOptions] - Config options including `splunkdPath`. Defaults to the value\n * provided by `@splunk/splunk-utils/config`.\n * @return {String} The URL of the REST API endpoint.\n * @alias createRESTURL\n */\n\n\n function createRESTURL(endpoint) {\n var namespaceOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var configOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n // Return the endpoint if it's a full path.\n if (/^http[s]?:\\/\\//.test(endpoint)) {\n return endpoint;\n }\n\n var basePath = configOptions.splunkdPath || splunkdPath || ''; // If it's an absolute path,\n\n if (/^\\/.*/.test(endpoint)) {\n // Append the splunkdPath if the endpoint includes services. Otherwise, return the endpoint.\n return /^\\/services/.test(endpoint) ? \"\".concat(basePath).concat(endpoint) : endpoint;\n } // If neither an app nor owner is provided, use /services/ endpoint.\n\n\n if (!namespaceOptions.app && !namespaceOptions.owner) {\n return \"\".concat(basePath, \"/services/\").concat(endpoint);\n } // Build a namespaced path.\n\n\n var owner;\n\n if (namespaceOptions.sharing) {\n owner = 'nobody';\n } else if (namespaceOptions.owner) {\n owner = encodeURIComponent(namespaceOptions.owner);\n } else {\n owner = '-';\n }\n\n var app;\n\n if (namespaceOptions.sharing === 'system') {\n app = 'system';\n } else if (namespaceOptions.app) {\n app = encodeURIComponent(namespaceOptions.app);\n } else {\n app = '-';\n }\n\n return \"\".concat(basePath, \"/servicesNS/\").concat(owner, \"/\").concat(app, \"/\").concat(endpoint);\n }\n /** Create docs URL private method.\n * @param {Object} [params]\n * @private\n */\n\n\n function createDocsURLFromParams(params, configOptions) {\n return createURL('/help', params, configOptions);\n }\n /** Create docs URL using location string.\n * For example:\n * ```\n * createDocsURL('learnmore.timerange.picker'); // \"/en-US/help?location=learnmore.timerange.picker\"\n * ```\n * @public\n * @param {String} location - Required.\n * @return {String} The URL of the Splunk help document.\n * @alias createDocsURL\n */\n\n\n function createDocsURL(location, configOptions) {\n return createDocsURLFromParams({\n location: location\n }, configOptions);\n }\n /** Create app docs URL using location string, which needs to add [appName:appVersion] prefix before the location string.\n * For example:\n * ```\n * createAppDocsURL('learnmore.timerange.picker', { appName: 'splunk_app_aws', appVersion: '5.0.3'}); // \"/en-US/help?location=learnmore.timerange.picker\"\n * ```\n * @public\n * @param {String} location - Required.\n * @param {Object} options - Required.\n * @param {String} options.appName - App name.\n * @param {String} options.appVersion - App version.\n * @return {String} The URL of the Splunk app help document.\n * @alias createAppDocsURL\n */\n\n\n function createAppDocsURL(location, _ref2, configOptions) {\n var appName = _ref2.appName,\n appVersion = _ref2.appVersion;\n return createDocsURLFromParams({\n location: \"[\".concat(appName, \":\").concat(appVersion, \"]\").concat(location)\n }, configOptions);\n }\n\n return {\n createAppDocsURL: createAppDocsURL,\n createDocsURL: createDocsURL,\n createRESTURL: createRESTURL,\n createStaticURL: createStaticURL,\n createURL: createURL,\n insertCacheBuster: insertCacheBuster\n };\n}\n\nvar _withConfig = withConfig(config),\n createAppDocsURL = _withConfig.createAppDocsURL,\n createDocsURL = _withConfig.createDocsURL,\n createRESTURL = _withConfig.createRESTURL,\n createStaticURL = _withConfig.createStaticURL,\n createURL = _withConfig.createURL,\n insertCacheBuster = _withConfig.insertCacheBuster;\n\nexports.insertCacheBuster = insertCacheBuster;\nexports.createURL = createURL;\nexports.createStaticURL = createStaticURL;\nexports.createRESTURL = createRESTURL;\nexports.createDocsURL = createDocsURL;\nexports.createAppDocsURL = createAppDocsURL;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = SplunkThemeProvider;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _styledComponents = require(\"styled-components\");\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/** SplunkThemeProvider defaults to `prisma` `dark` `comfortable`, unless the properties have already been set.\n *\n * For example, here the nested `SplunkThemeProvider` defaults to `enterprise` `light`:\n * ```jsx\n * return (\n * \n * Main part of the page in enterprise-light-comfortable.\n * \n * Part of the page in enterprise-light-compact.\n * \n * \n * )\n */\nfunction SplunkThemeProvider(_ref) {\n var family = _ref.family,\n colorScheme = _ref.colorScheme,\n density = _ref.density,\n additionalThemeProperties = _ref.additionalThemeProperties,\n customizeTheme = _ref.customizeTheme,\n otherProps = _objectWithoutProperties(_ref, [\"family\", \"colorScheme\", \"density\", \"additionalThemeProperties\", \"customizeTheme\"]);\n\n var _ref2 = (0, _react.useContext)(_styledComponents.ThemeContext) || {},\n _ref2$splunkThemeV = _ref2.splunkThemeV1,\n splunkThemeV1 = _ref2$splunkThemeV === void 0 ? {} : _ref2$splunkThemeV;\n\n var composedTheme = _objectSpread(_objectSpread({}, additionalThemeProperties), {}, {\n splunkThemeV1: {\n family: family || splunkThemeV1.family || 'prisma',\n colorScheme: colorScheme || splunkThemeV1.colorScheme || 'dark',\n density: density || splunkThemeV1.density || 'comfortable',\n customizer: customizeTheme || splunkThemeV1.customizer\n }\n });\n\n return /*#__PURE__*/_react[\"default\"].createElement(_styledComponents.ThemeProvider, _extends({\n theme: composedTheme\n }, otherProps));\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\n/**\n * ## Measures\n * Spacing is used for margin on any element or padding on containers, but can be used for other\n * properties that position elements.\n *\n * @valueSet\n */\nvar measures = {\n spacingQuarter: '5px',\n spacingHalf: '10px',\n spacing: '20px',\n fontSizeSmall: '12px',\n fontSize: '14px',\n fontSizeLarge: '16px',\n fontSizeXLarge: '18px',\n fontSizeXXLarge: '24px',\n lineHeight: '20px',\n inputHeight: '32px',\n borderRadius: '3px'\n};\nvar _default = measures;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\n/**\n * ## Measures\n * Spacing is used for margin on any element or padding on containers, but can be used for other\n * properties that position elements.\n * * Larger containers, such as `Card` or `Modal`, use `spacing`.\n * * `spacingHalf` and `spacingQuarter` are primarily for horizontal spacing between smaller elements.\n * * Just because a desired value equals 20, 10, or 5 pixels, does not mean it's appropriate to\n * use spacing variables.\n *\n * @valueSet\n */\nvar measures = {\n spacingQuarter: '5px',\n spacingHalf: '10px',\n spacing: '20px',\n fontSizeSmall: '12px',\n fontSize: '12px',\n fontSizeLarge: '16px',\n fontSizeXLarge: '18px',\n fontSizeXXLarge: '24px',\n lineHeight: '20px',\n inputHeight: '28px',\n borderRadius: '3px'\n};\nvar _default = measures;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _light = _interopRequireDefault(require(\"./light\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar dragHandleDark = \"iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAA1SURBVHgB7dKhEQAgDAPAhHmwSKZHYtmHVtZVVNTkXS53UeG57yPYazLmrB8o6h8QgPqBOAOboRAPJUGIOAAAAABJRU5ErkJggg==\"; // see babel-plugin-base64-png\n\nvar dark = {\n backgroundColor: _light[\"default\"].gray20,\n backgroundColorHover: _light[\"default\"].gray30,\n borderColor: _light[\"default\"].gray22,\n borderDarkColor: _light[\"default\"].black,\n borderLightColor: _light[\"default\"].gray60,\n textColor: _light[\"default\"].white,\n textGray: _light[\"default\"].gray92,\n textDisabledColor: _light[\"default\"].gray45,\n linkColor: _light[\"default\"].accentColorL10,\n linkColorHover: _light[\"default\"].accentColorL20,\n border: \"1px solid \".concat(_light[\"default\"].gray22),\n borderDark: \"1px solid \".concat(_light[\"default\"].black),\n borderLight: \"1px solid \".concat(_light[\"default\"].gray60),\n focusShadowInset: \"inset 0 0 1px 1px \".concat(_light[\"default\"].gray25, \", inset 0 0 0 3px \").concat(_light[\"default\"].focusColor),\n draggableBackground: \"url('data:image/png;base64,\".concat(dragHandleDark, \"') 0 0 / 8px 8px repeat\")\n};\n/**\n * ## Syntax colors\n * Syntax colors are used only for code blocks.\n *\n * @colorSet verbose alphabetical\n */\n\nvar syntaxColors = {\n syntaxBlue: '#6cd0f0',\n syntaxBrown: '#fccf87',\n syntaxGray: '#b5b5b5',\n syntaxGreen: '#cef06c',\n syntaxOrange: '#f7994a',\n syntaxPink: '#f494e5',\n syntaxPurple: '#c99eff',\n syntaxRed: '#fa94aa',\n syntaxTeal: '#45d4ba'\n};\n\nvar theme = _objectSpread(_objectSpread(_objectSpread({}, _light[\"default\"]), dark), syntaxColors);\n\nvar _default = theme;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _light = _interopRequireDefault(require(\"./light\"));\n\nvar _dark = _interopRequireDefault(require(\"./dark\"));\n\nvar _compact = _interopRequireDefault(require(\"./compact\"));\n\nvar _comfortable = _interopRequireDefault(require(\"./comfortable\"));\n\nvar _prismaAliases = _interopRequireDefault(require(\"./prismaAliases\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction createEnterpriseTheme(_ref) {\n var colorScheme = _ref.colorScheme,\n density = _ref.density;\n var cs = {\n light: _light[\"default\"],\n dark: _dark[\"default\"]\n }[colorScheme];\n var d = {\n compact: _compact[\"default\"],\n comfortable: _comfortable[\"default\"]\n }[density];\n var pa = (0, _prismaAliases[\"default\"])({\n colorScheme: colorScheme,\n density: density\n });\n return _objectSpread(_objectSpread(_objectSpread({}, cs), d), pa);\n}\n\nvar _default = createEnterpriseTheme;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar dragHandle = \"iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAA2SURBVHgB7dKhEQAgDAPAhDnxDMAcDIBnT1pZV1FRk3e53EWFc+2P4N3DmLN+oKh/QADqB+IMUKEQD/CeueAAAAAASUVORK5CYII=\"; // see babel-plugin-base64-pngimport {\n\n/**\n * ## Brand colors\n *\n * @colorSet\n */\n\nvar brandColors = {\n brandColorL50: '#f5fbf5',\n brandColorL40: '#dff2df',\n brandColorL30: '#bee6be',\n brandColorL20: '#9ed99e',\n brandColorL10: '#7ecd7e',\n brandColor: '#5cc05c',\n brandColorD10: '#49b849',\n brandColorD20: '#40a540',\n brandColorD30: '#389038',\n brandColorD40: '#307b30',\n brandColorD50: '#286728'\n};\n/**\n * ## Grayscale colors\n *\n * @colorSet\n */\n\nvar grays = {\n white: '#ffffff',\n gray98: '#f7f8fa',\n gray96: '#f2f4f5',\n gray92: '#e1e6eb',\n gray80: '#c3cbd4',\n gray60: '#818d99',\n gray45: '#5c6773',\n gray30: '#3c444d',\n gray25: '#31373e',\n gray22: '#2b3033',\n gray20: '#171d21',\n black: '#000000'\n};\n/**\n * ## Accent colors\n *\n * @colorSet\n */\n\nvar accentColors = {\n accentColorL50: '#ecf8ff',\n accentColorL40: '#bfe9ff',\n accentColorL30: '#7ed2ff',\n accentColorL20: '#3ebcff',\n accentColorL10: '#00a4fd',\n accentColor: '#007abd',\n accentColorD10: '#006eaa',\n accentColorD20: '#006297',\n accentColorD30: '#005684',\n accentColorD40: '#004a71',\n accentColorD50: '#003d5e'\n};\n/**\n * ## Error Colors\n *\n * @colorSet\n */\n\nvar errorColors = {\n errorColorL50: '#fcedec',\n errorColorL40: '#f8dcd9',\n errorColorL30: '#f1b9b3',\n errorColorL20: '#ea958d',\n errorColorL10: '#e37267',\n errorColor: '#dc4e41',\n errorColorD10: '#c84535',\n errorColorD20: '#b23d30',\n errorColorD30: '#9c3529',\n errorColorD40: '#852d24',\n errorColorD50: '#6f261d'\n};\n/**\n * ## Alert colors\n *\n * @colorSet\n * */\n\nvar alertColors = {\n alertColorL50: '#fef3ec',\n alertColorL40: '#fde6d9',\n alertColorL30: '#facdb3',\n alertColorL20: '#f7b48c',\n alertColorL10: '#f49b66',\n alertColor: '#f1813f',\n alertColorD10: '#da742e',\n alertColorD20: '#c2672a',\n alertColorD30: '#aa5a25',\n alertColorD40: '#914d1f',\n alertColorD50: '#79401a'\n};\n/**\n * ## Warning colors\n *\n * @colorSet\n */\n\nvar warningColors = {\n warningColorL50: '#fff9eb',\n warningColorL40: '#fef2d7',\n warningColorL30: '#fde5ae',\n warningColorL20: '#fbd886',\n warningColorL10: '#facb5d',\n warningColor: '#f8be34',\n warningColorD10: '#e0ac16',\n warningColorD20: '#c79915',\n warningColorD30: '#ae8613',\n warningColorD40: '#957312',\n warningColorD50: '#7d600f'\n};\n/**\n * ## Success colors\n *\n * @colorSet\n */\n\nvar successColors = {\n successColorL50: '#eef6ee',\n successColorL40: '#ddecdd',\n successColorL30: '#bbd9ba',\n successColorL20: '#98c697',\n successColorL10: '#76b374',\n successColor: '#53a051',\n successColorD10: '#479144',\n successColorD20: '#40813d',\n successColorD30: '#387135',\n successColorD40: '#2f612e',\n successColorD50: '#275126'\n};\n/**\n * ## Info colors\n *\n * @colorSet\n */\n\nvar infoColors = {\n infoColorL50: '#e5f0f5',\n infoColorL40: '#cce2eb',\n infoColorL30: '#99c5d7',\n infoColorL20: '#66a7c4',\n infoColorL10: '#338ab0',\n infoColor: '#006d9c',\n infoColorD10: '#00577c',\n infoColorD20: '#004c6c',\n infoColorD30: '#00415d',\n infoColorD40: '#00364d',\n infoColorD50: '#002b3e'\n};\n/**\n * ## Diverging colors\n *\n * @colorSet alphabetical\n */\n\nvar divergingColors = {\n diverging1ColorA: '#006d9c',\n diverging1ColorB: '#ec9960',\n diverging2ColorA: '#af575a',\n diverging2ColorB: '#62b3b2',\n diverging3ColorA: '#4fa484',\n diverging3ColorB: '#f8be34',\n diverging4ColorA: '#5a4575',\n diverging4ColorB: '#708794',\n diverging5ColorA: '#294e70',\n diverging5ColorB: '#b6c75a'\n};\n/**\n * ## Categorical Colors\n *\n * @colorSet alphabetical\n */\n\nvar categoricalColors = {\n cat1Color: '#297ba5',\n cat1ColorL: '#78b9d6',\n cat2Color: '#4fa484',\n cat2ColorL: '#74d5c2',\n cat3Color: '#b6c75a',\n cat3ColorL: '#dce6a5',\n cat4Color: '#3c6188',\n cat4ColorL: '#a0b2ca',\n cat5Color: '#ec9960',\n cat5ColorL: '#fac9a7',\n cat6Color: '#a65c7d',\n cat6ColorL: '#d3a7ba',\n cat7Color: '#708794',\n cat7ColorL: '#b2c0c8',\n cat8Color: '#38b8bf',\n cat8ColorL: '#92dde2',\n cat9Color: '#ffde63',\n cat9ColorL: '#ffeeae',\n cat10Color: '#c19975',\n cat10ColorL: '#d7bfab',\n cat11Color: '#5a4575',\n cat11ColorL: '#b7acca',\n cat12Color: '#7ea77b',\n cat12ColorL: '#b2cab0',\n cat13Color: '#576d83',\n cat13ColorL: '#a5b2bf',\n cat14Color: '#d7c6b7',\n cat14ColorL: '#e9ddd4',\n cat15Color: '#339bb2',\n cat15ColorL: '#66c3d0',\n cat16Color: '#236d9b',\n cat16ColorL: '#66a7c2',\n cat17Color: '#e5dc80',\n cat17ColorL: '#f1eab7',\n cat18Color: '#96907f',\n cat18ColorL: '#c1bcb3',\n cat19Color: '#87bc65',\n cat19ColorL: '#b6d7a3',\n cat20Color: '#cf7e60',\n cat20ColorL: '#e1b2a1',\n cat21Color: '#7b5547',\n cat21ColorL: '#dec4ba',\n cat22Color: '#77d6d8',\n cat22ColorL: '#abe6e8',\n cat23Color: '#4a7f2c',\n cat23ColorL: '#91b282',\n cat24Color: '#f589ad',\n cat24ColorL: '#f8b7ce',\n cat25Color: '#6a2c5d',\n cat25ColorL: '#cba3c2',\n cat26Color: '#aaabae',\n cat26ColorL: '#cccdce',\n cat27Color: '#9a7438',\n cat27ColorL: '#c3ab89',\n cat28Color: '#a4d563',\n cat28ColorL: '#c7e6a3',\n cat29Color: '#7672a4',\n cat29ColorL: '#ada9c8',\n cat30Color: '#184b81',\n cat30ColorL: '#a4bbe0'\n};\n/**\n * ## Usage-based colors\n *\n * @colorSet verbose\n */\n\nvar usageColors = {\n textColor: grays.gray30,\n textGray: '#6b7785',\n textDisabledColor: grays.gray80,\n linkColor: accentColors.accentColorD10,\n linkColorHover: accentColors.accentColor,\n borderLightColor: grays.gray92,\n borderColor: grays.gray80,\n focusColor: accentColors.accentColorD10,\n backgroundColorHover: grays.gray96,\n backgroundColor: grays.white,\n transparent: 'transparent'\n};\n/**\n * ## Syntax colors\n * The following colors should only be used for syntax coloring of code.\n *\n * @colorSet verbose alphabetical\n */\n\nvar syntaxColors = {\n syntaxBlue: '#006aa3',\n syntaxBlueLight: '#006d9c',\n syntaxBrown: '#905b04',\n syntaxGray: '#5c6773',\n syntaxGreen: '#2f612e',\n syntaxGreenLight: '#5ba383',\n syntaxOrange: '#a44b0e',\n syntaxPink: '#b9139e',\n syntaxPurple: '#5317f2',\n syntaxPurpleLight: '#b19cd9',\n syntaxRed: '#ca163d',\n syntaxRedLight: '#af575a',\n syntaxTeal: '#1a7060'\n};\n/**\n * ## Shadows\n *\n * @shadowSet\n */\n\nvar shadows = {\n focusShadow: \"0 0 1px 3px \".concat(usageColors.focusColor),\n focusShadowInset: \"inset 0 0 1px 1px \".concat(grays.white, \", inset 0 0 0 3px \").concat(usageColors.focusColor),\n overlayShadow: '0 4px 8px rgba(0, 0, 0, 0.2)'\n};\n/**\n * ## Backgrounds\n *\n * @colorSet verbose\n */\n\nvar backgrounds = {\n draggableBackground: \"url('data:image/png;base64,\".concat(dragHandle, \"') 0 0 / 8px 8px repeat\")\n};\n/**\n * ## Border\n *\n * @valueSet\n */\n\nvar borders = {\n borderRadius: '3px',\n border: \"1px solid \".concat(usageColors.borderColor)\n};\nvar sansFontFamily = \"'Splunk Platform Sans', 'Proxima Nova', Roboto, Droid, 'Helvetica Neue', Helvetica, Arial, sans-serif\";\n/**\n * ## Font family\n *\n * @valueSet\n */\n\nvar fontFamily = {\n sansFontFamily: sansFontFamily,\n serifFontFamily: \"Georgia, 'Times New Roman', Times, serif\",\n monoFontFamily: \"'Splunk Platform Mono', Inconsolata, Consolas, 'Droid Sans Mono', Monaco, 'Courier New', Courier, monospace\",\n fontFamily: sansFontFamily\n};\n/**\n * ## Font weights\n *\n * Based on [common weight name mappings](https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight#common_weight_name_mapping)\n *\n * @valueSet\n */\n\nvar fontWeights = {\n fontWeightLight: 300,\n fontWeightNormal: 400,\n fontWeightSemiBold: 500,\n fontWeightBold: 700,\n fontWeightHeavy: 800,\n fontWeightExtraBold: 900\n};\n/**\n * ## Layers\n * If a variable does not suit your purpose, set a value relatively, such as zindexModal +1.\n *\n * @valueSet\n */\n\nvar zindexes = {\n zindexLayer: 1000,\n zindexFixedNavbar: 1030,\n zindexModalBackdrop: 1040,\n zindexModal: 1050,\n zindexPopover: 1060,\n zindexToastMessages: 2000\n};\n\nvar theme = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, brandColors), grays), accentColors), errorColors), alertColors), warningColors), successColors), infoColors), categoricalColors), divergingColors), syntaxColors), fontFamily), fontWeights), usageColors), backgrounds), shadows), borders), zindexes);\n\nvar _default = theme;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _tinycolor = _interopRequireDefault(require(\"tinycolor2\"));\n\nvar _light = _interopRequireDefault(require(\"./light\"));\n\nvar _dark = _interopRequireDefault(require(\"./dark\"));\n\nvar _compact = _interopRequireDefault(require(\"./compact\"));\n\nvar _comfortable = _interopRequireDefault(require(\"./comfortable\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nfunction createPrismaAliases(_ref) {\n var colorScheme = _ref.colorScheme,\n density = _ref.density;\n var cs = {\n light: _light[\"default\"],\n dark: _dark[\"default\"]\n }[colorScheme];\n var d = {\n compact: _compact[\"default\"],\n comfortable: _comfortable[\"default\"]\n }[density];\n /**\n * # Prisma Aliases\n * The following aliases for prisma variables are provided for convenience. Just because an alias is provided,\n * does not mean it is ideal for enterprise themes in all scenarios.\n *\n * They cover all values except most `interactiveColor*` variables.\n *\n *\n * For example, use\n * ``` css\n * const myClickable = styled(Clickable)`\n * color: ${variables.contentColorDefault};\n * }\n * ```\n * instead of\n * ``` css\n * const myClickable = styled(Clickable)`\n * color: ${pick({\n * enterprise: variables.textColor;\n * prisma: variables.contentColorDefault;\n * })};\n * }\n * ```\n *\n * @valueSet\n */\n\n var prismaAliases = {\n accentColorPositive: cs.successColor,\n accentColorWarning: cs.warningColor,\n accentColorAlert: cs.alertColor,\n accentColorNegative: cs.errorColor,\n statusColorInfo: cs.infoColorL10,\n statusColorNormal: cs.successColorL10,\n statusColorLow: cs.warningColorL10,\n statusColorMedium: cs.alertColorL10,\n statusColorHigh: cs.errorColorL10,\n statusColorCritical: cs.errorColorD20,\n embossShadow: cs.overlayShadow,\n dragShadow: cs.overlayShadow,\n modalShadow: cs.overlayShadow,\n backgroundColorPopup: cs.backgroundColor,\n backgroundColorSection: cs.backgroundColor,\n backgroundColorSidebar: cs.backgroundColor,\n backgroundColorPage: cs.backgroundColor,\n backgroundColorNavigation: cs.backgroundColor,\n backgroundColorFloating: cs.backgroundColor,\n backgroundColorDialog: cs.backgroundColor,\n backgroundColorScrim: (0, _tinycolor[\"default\"])(cs.gray30).setAlpha(0.8).toRgbString(),\n contentColorActive: cs.textColor,\n contentColorDefault: cs.textColor,\n contentColorMuted: cs.textGray,\n contentColorDisabled: cs.textDisabledColor,\n contentColorInverted: colorScheme === 'dark' ? cs.gray30 : cs.gray30,\n neutral100: colorScheme === 'dark' ? cs.gray25 : cs.gray98,\n neutral200: colorScheme === 'dark' ? cs.gray30 : cs.gray96,\n neutral300: colorScheme === 'dark' ? cs.gray45 : cs.gray92,\n neutral400: colorScheme === 'dark' ? cs.gray60 : _tinycolor[\"default\"].mix(cs.gray92, cs.gray80).toRgbString(),\n neutral500: cs.gray80,\n interactiveColorPrimary: cs.brandColor,\n interactiveColorBorder: cs.borderColor,\n spacingXSmall: d.spacingQuarter,\n spacingSmall: d.spacingHalf,\n spacingMedium: \"calc(\".concat(d.spacing, \" * 0.75)\"),\n spacingLarge: d.spacing,\n spacingXLarge: \"calc(\".concat(d.spacing, \" * 1.5)\"),\n spacingXXLarge: \"calc(\".concat(d.spacing, \" * 2)\"),\n spacingXXXLarge: \"calc(\".concat(d.spacing, \" * 2.5)\")\n };\n return prismaAliases;\n}\n\nvar _default = createPrismaAliases;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _utils = require(\"./utils\");\n\n/**\n * The theme settings in `props.theme` are not considered an API to allow support for fallbacks\n * and forward compatibility in future versions of `SplunkThemeProvider`. Use this utility to\n * access `family`, `colorScheme`, and `density` from a component's props. This is useful\n * in limited migration scenarios. Use `withSplunkTheme` or `useSplunkTheme` instead.\n *\n * ```js\n * import getSettingsFromThemedProps from '@splunk/themes/getSettingsFromThemedProps';\n * ...\n * const { family, colorScheme } = getSettingsFromThemedProps(props);\n *\n * ```\n * @param {object} props - The themed props passed to a styled-component.\n * @returns {object} An object consisting of `{ family, colorScheme, density }`.\n * @public\n */\nfunction getSettingsFromThemedProps(props) {\n var _props$theme;\n\n // props.theme is sometimes null\n var _ref = ((_props$theme = props.theme) === null || _props$theme === void 0 ? void 0 : _props$theme.splunkThemeV1) || {},\n family = _ref.family,\n colorScheme = _ref.colorScheme,\n density = _ref.density;\n\n return (0, _utils.addThemeDefaults)({\n family: family,\n colorScheme: colorScheme,\n density: density\n });\n}\n\nvar _default = getSettingsFromThemedProps;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.clearGetThemeCache = exports[\"default\"] = void 0;\n\nvar _memoize = _interopRequireDefault(require(\"lodash/memoize\"));\n\nvar _enterprise = _interopRequireDefault(require(\"./enterprise\"));\n\nvar _prisma = _interopRequireDefault(require(\"./prisma\"));\n\nvar _utils = require(\"./utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * **NOTE:** Use cases for this function are limited. Instead, use `useSplunkTheme` in React components and `variables` in styled-components' CSS.\n * This function is for use outside of React and styled-components.\n * @file\n */\n\n/**\n * The `getTheme` function returns all theme variables for a given theme. This function is memoized.\n *\n * ```js\n * import getTheme from '@splunk/themes/getTheme';\n *\n * const baseTheme = getTheme({family: 'prisma', colorScheme: 'light', density: 'compact' });\n *\n * console.log(baseTheme.family, baseTheme.focusColor);\n * ```\n * @param {object} [options] - The attributes of the theme as defined below.\n * @param {'prisma' | 'enterprise'} [options.family = 'prisma']\n * @param {'dark' | 'light'} [options.colorScheme = 'dark']\n * @param {'comfortable' | 'compact'} [options.density = 'comfortable']\n * @param {Boolean} [options.isPrisma = true]\n * @param {Boolean} [options.isEnterprise = false]\n * @param {Boolean} [options.isComfortable = true]\n * @param {Boolean} [options.isCompact = false]\n * @param {Boolean} [options.isDark = true]\n * @param {Boolean} [options.isLight = false]\n * @returns {object} A flat object of all variables and their values.\n * @public\n */\nfunction getTheme() {\n var settings = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var _addThemeDefaults = (0, _utils.addThemeDefaults)(settings),\n family = _addThemeDefaults.family,\n colorScheme = _addThemeDefaults.colorScheme,\n density = _addThemeDefaults.density;\n\n var isPrisma = family === 'prisma';\n var isEnterprise = family === 'enterprise';\n var isComfortable = density === 'comfortable';\n var isCompact = density === 'compact';\n var isDark = colorScheme === 'dark';\n var isLight = colorScheme === 'light';\n return Object.freeze(_objectSpread({\n colorScheme: colorScheme,\n density: density,\n family: family,\n isPrisma: isPrisma,\n isEnterprise: isEnterprise,\n isComfortable: isComfortable,\n isCompact: isCompact,\n isDark: isDark,\n isLight: isLight\n }, family === 'enterprise' ? (0, _enterprise[\"default\"])({\n colorScheme: colorScheme,\n density: density\n }) : (0, _prisma[\"default\"])({\n colorScheme: colorScheme,\n density: density\n })));\n}\n\nvar getThemeMemoized = (0, _memoize[\"default\"])(getTheme, function () {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n family = _ref.family,\n colorScheme = _ref.colorScheme,\n density = _ref.density;\n\n return \"\".concat(family).concat(colorScheme).concat(density);\n});\n\nvar clearGetThemeCache = function clearGetThemeCache() {\n var _getThemeMemoized$cac, _getThemeMemoized$cac2;\n\n return (_getThemeMemoized$cac = (_getThemeMemoized$cac2 = getThemeMemoized.cache).clear) === null || _getThemeMemoized$cac === void 0 ? void 0 : _getThemeMemoized$cac.call(_getThemeMemoized$cac2);\n};\n\nexports.clearGetThemeCache = clearGetThemeCache;\nvar _default = getThemeMemoized;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar _exportNames = {\n getSettingsFromThemedProps: true,\n getTheme: true,\n mixins: true,\n pick: true,\n pickVariant: true,\n SplunkThemeProvider: true,\n useSplunkTheme: true,\n withSplunkTheme: true,\n variables: true\n};\nObject.defineProperty(exports, \"getSettingsFromThemedProps\", {\n enumerable: true,\n get: function get() {\n return _getSettingsFromThemedProps[\"default\"];\n }\n});\nObject.defineProperty(exports, \"getTheme\", {\n enumerable: true,\n get: function get() {\n return _getTheme[\"default\"];\n }\n});\nObject.defineProperty(exports, \"mixins\", {\n enumerable: true,\n get: function get() {\n return _mixins[\"default\"];\n }\n});\nObject.defineProperty(exports, \"pick\", {\n enumerable: true,\n get: function get() {\n return _pick[\"default\"];\n }\n});\nObject.defineProperty(exports, \"pickVariant\", {\n enumerable: true,\n get: function get() {\n return _pickVariant[\"default\"];\n }\n});\nObject.defineProperty(exports, \"SplunkThemeProvider\", {\n enumerable: true,\n get: function get() {\n return _SplunkThemeProvider[\"default\"];\n }\n});\nObject.defineProperty(exports, \"useSplunkTheme\", {\n enumerable: true,\n get: function get() {\n return _useSplunkTheme[\"default\"];\n }\n});\nObject.defineProperty(exports, \"withSplunkTheme\", {\n enumerable: true,\n get: function get() {\n return _withSplunkTheme[\"default\"];\n }\n});\nObject.defineProperty(exports, \"variables\", {\n enumerable: true,\n get: function get() {\n return _variables[\"default\"];\n }\n});\n\nvar _getSettingsFromThemedProps = _interopRequireDefault(require(\"./getSettingsFromThemedProps\"));\n\nvar _getTheme = _interopRequireDefault(require(\"./getTheme\"));\n\nvar _mixins = _interopRequireDefault(require(\"./mixins\"));\n\nvar _pick = _interopRequireDefault(require(\"./pick\"));\n\nvar _pickVariant = _interopRequireDefault(require(\"./pickVariant\"));\n\nvar _SplunkThemeProvider = _interopRequireDefault(require(\"./SplunkThemeProvider\"));\n\nvar _useSplunkTheme = _interopRequireDefault(require(\"./useSplunkTheme\"));\n\nvar _withSplunkTheme = _interopRequireDefault(require(\"./withSplunkTheme\"));\n\nvar _variables = _interopRequireDefault(require(\"./variables\"));\n\nvar _types = require(\"./types\");\n\nObject.keys(_types).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _types[key];\n }\n });\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar _exportNames = {\n typography: true\n};\nObject.defineProperty(exports, \"typography\", {\n enumerable: true,\n get: function get() {\n return _typography[\"default\"];\n }\n});\nexports[\"default\"] = void 0;\n\nvar _utilityMixins = _interopRequireWildcard(require(\"./utilityMixins\"));\n\nObject.keys(_utilityMixins).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _utilityMixins[key];\n }\n });\n});\n\nvar _typography = _interopRequireWildcard(require(\"./typography\"));\n\nObject.keys(_typography).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _typography[key];\n }\n });\n});\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar _default = _objectSpread(_objectSpread({}, _utilityMixins[\"default\"]), {}, {\n typography: _typography[\"default\"]\n});\n\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.typographyVariants = exports[\"default\"] = void 0;\n\nvar _styledComponents = require(\"styled-components\");\n\nvar _merge = _interopRequireDefault(require(\"lodash/merge\"));\n\nvar _variables = _interopRequireDefault(require(\"../variables\"));\n\nvar _pick = _interopRequireDefault(require(\"../pick\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _templateObject2() {\n var data = _taggedTemplateLiteral([\"\\n margin: 0;\\n padding: 0;\\n \"]);\n\n _templateObject2 = function _templateObject2() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject() {\n var data = _taggedTemplateLiteral([\"\\n \", \"\\n\\n color: \", \";\\n font-family: \", \";\\n font-size: \", \";\\n font-weight: \", \";\\n line-height: \", \";\\n \"]);\n\n _templateObject = function _templateObject() {\n return data;\n };\n\n return data;\n}\n\nfunction _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar typographyVariants = ['body', 'title1', 'title2', 'title3', 'title4', 'title5', 'title6', 'title7', 'largeBody', 'smallBody', 'footnote', 'monoBody', 'monoSmallBody'];\nexports.typographyVariants = typographyVariants;\n\nfunction isTypographyVariant(s) {\n if (typeof s !== 'string') {\n return false;\n }\n\n return typographyVariants.includes(s);\n}\n\nfunction getStylesForVariant(variant) {\n var color = _variables[\"default\"].contentColorDefault;\n var family = _variables[\"default\"].fontFamily;\n var lineHeight = _variables[\"default\"].lineHeight; // eslint-disable-line prefer-destructuring\n\n var size = _variables[\"default\"].fontSize;\n var weight = 'normal'; // TODO: After sections are removed from Heading update HeadingStyles accordingly to preserve section styles as typography variants SUI-5268\n\n switch (variant) {\n case 'title1':\n color = _variables[\"default\"].contentColorActive;\n lineHeight = (0, _pick[\"default\"])({\n enterprise: '20px',\n prisma: '48px'\n });\n size = (0, _pick[\"default\"])({\n enterprise: '24px',\n prisma: '36px'\n });\n weight = (0, _pick[\"default\"])({\n enterprise: '500',\n prisma: _variables[\"default\"].fontWeightBold\n });\n break;\n\n case 'title2':\n color = _variables[\"default\"].contentColorActive;\n lineHeight = (0, _pick[\"default\"])({\n enterprise: '20px',\n prisma: '24px'\n });\n size = (0, _pick[\"default\"])({\n enterprise: '18px',\n prisma: '24px'\n });\n weight = (0, _pick[\"default\"])({\n enterprise: '500',\n prisma: _variables[\"default\"].fontWeightBold\n });\n break;\n\n case 'title3':\n color = _variables[\"default\"].contentColorActive;\n lineHeight = (0, _pick[\"default\"])({\n enterprise: '20px',\n prisma: '24px'\n });\n size = (0, _pick[\"default\"])({\n enterprise: '16px',\n prisma: '20px'\n });\n weight = (0, _pick[\"default\"])({\n enterprise: '500',\n prisma: _variables[\"default\"].fontWeightBold\n });\n break;\n\n case 'title4':\n color = _variables[\"default\"].contentColorActive;\n lineHeight = (0, _pick[\"default\"])({\n enterprise: '20px',\n prisma: '24px'\n });\n size = (0, _pick[\"default\"])({\n enterprise: _variables[\"default\"].fontSize,\n prisma: '16px'\n });\n weight = _variables[\"default\"].fontWeightBold;\n break;\n\n case 'title5':\n color = _variables[\"default\"].contentColorActive;\n lineHeight = _variables[\"default\"].lineHeight;\n size = (0, _pick[\"default\"])({\n enterprise: '12px',\n prisma: _variables[\"default\"].fontSize\n });\n weight = (0, _pick[\"default\"])({\n enterprise: _variables[\"default\"].fontWeightSemiBold,\n prisma: _variables[\"default\"].fontWeightBold\n });\n break;\n\n case 'title6':\n color = _variables[\"default\"].contentColorActive;\n lineHeight = (0, _pick[\"default\"])({\n enterprise: _variables[\"default\"].lineHeight,\n prisma: '16px'\n });\n size = (0, _pick[\"default\"])({\n enterprise: '12px',\n prisma: '13px'\n });\n weight = _variables[\"default\"].fontWeightSemiBold;\n break;\n\n case 'title7':\n color = _variables[\"default\"].contentColorActive;\n lineHeight = '16px';\n size = _variables[\"default\"].fontSizeSmall;\n weight = _variables[\"default\"].fontWeightSemiBold;\n break;\n\n case 'largeBody':\n color = _variables[\"default\"].contentColorDefault;\n lineHeight = '24px';\n size = _variables[\"default\"].fontSizeLarge;\n weight = 'normal';\n break;\n\n case 'smallBody':\n color = _variables[\"default\"].contentColorDefault;\n lineHeight = '16px';\n size = _variables[\"default\"].fontSizeSmall;\n weight = 'normal';\n break;\n\n case 'footnote':\n color = _variables[\"default\"].contentColorDefault;\n lineHeight = '13px';\n size = '10px';\n weight = 'normal';\n break;\n\n case 'monoBody':\n family = _variables[\"default\"].monoFontFamily;\n break;\n\n case 'monoSmallBody':\n color = _variables[\"default\"].contentColorDefault;\n family = _variables[\"default\"].monoFontFamily;\n lineHeight = '16px';\n size = _variables[\"default\"].fontSizeSmall;\n weight = 'normal';\n break;\n\n case 'body':\n // Theme defaults set the 'body' style\n break;\n\n default:\n {\n if (false) {\n // eslint-disable-next-line no-console\n console.log(\"Unknown typography variant, \".concat(variant, \". Using default values for theme.\"));\n } // Make sure this \"never\" happens https://www.typescriptlang.org/docs/handbook/2/narrowing.html#exhaustiveness-checking\n\n\n var exhaustiveCheck = variant;\n return exhaustiveCheck;\n }\n }\n\n return {\n color: color,\n family: family,\n size: size,\n weight: weight,\n lineHeight: lineHeight,\n withReset: true\n };\n}\n\nvar colorPropToVariableMap = {\n active: _variables[\"default\"].contentColorActive,\n \"default\": _variables[\"default\"].contentColorDefault,\n disabled: _variables[\"default\"].contentColorDisabled,\n inverted: _variables[\"default\"].contentColorInverted,\n muted: _variables[\"default\"].contentColorMuted,\n inherit: 'inherit'\n};\nvar familyPropToVariableMap = {\n sansSerif: _variables[\"default\"].sansFontFamily,\n monospace: _variables[\"default\"].monoFontFamily\n}; // As defined by [font-weight | MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight#common_weight_name_mapping)\n\nvar weightPropToValueMap = {\n light: _variables[\"default\"].fontWeightLight,\n normal: _variables[\"default\"].fontWeightNormal,\n semiBold: _variables[\"default\"].fontWeightSemiBold,\n bold: _variables[\"default\"].fontWeightBold,\n extraBold: _variables[\"default\"].fontWeightExtraBold,\n heavy: _variables[\"default\"].fontWeightHeavy\n};\n/**\n * A mixin for styling text content using predefined typography variants\n * and/or customizing font-settings with system parameters: e.g. size, weight, font-family.\n *\n * The default variant is `body` and will be used if no variant or settings\n * are given: i.e. `typography()` or `typography({})`.\n * Variants have the reset applied by default.\n *\n * ##### Example\n * ```js\n * import styled from 'styled-components';\n * import { typography } from '@splunk/themes/mixins';\n *\n * const MyTitle = styled.h1`\n * ${typography('title1')};\n * `;\n *\n * const MyCustomizedTitle = styled.h1`\n * ${typography('title1', { color: 'inverted' })};\n * `;\n *\n * const CustomTitle = styled.h1`\n * ${typography({size: 56, weight: 'light', color: 'inverted' })};\n * `;\n * ```\n * @name typography\n * @kind function\n * @param {string} [variant] Use a predefined typography variant:\n * `'body'`,\n * `'title1'`,\n * `'title2'`,\n * `'title3'`,\n * `'title4'`,\n * `'title5'`,\n * `'title6'`,\n * `'title7'`,\n * `'largeBody'`,\n * `'smallBody'`,\n * `'footnote'`,\n * `'monoBody'`, or\n * `'monoSmallBody'`,\n * @param {object} [typographyParams] Customize the font settings or element using system values for: `family`, `size`, `lineHeight`, `color`, and `weight`.\n * Default margin and padding can be removed with `withReset`.\n * @public\n */\n\nfunction typography(variantOrParams, additionalParams) {\n var variant = isTypographyVariant(variantOrParams) ? variantOrParams : undefined;\n var params;\n\n if (variant && additionalParams !== undefined) {\n params = additionalParams;\n } else if (variant === undefined && _typeof(variantOrParams) === 'object' && additionalParams === undefined) {\n params = variantOrParams;\n } else {\n params = {};\n }\n\n var variantParams = variant ? getStylesForVariant(variant) : {}; // Transform params to be ready for css literal below: i.e size=\"24\" -> \"24px\"\n\n var transformedParams = _objectSpread(_objectSpread({}, params), {}, {\n size: params.size ? \"\".concat(params.size, \"px\") : undefined,\n lineHeight: params.lineHeight ? \"\".concat(params.lineHeight, \"px\") : undefined,\n color: params.color ? colorPropToVariableMap[params.color] : undefined,\n family: params.family ? familyPropToVariableMap[params.family] : undefined,\n weight: params.weight ? weightPropToValueMap[params.weight] : undefined\n });\n\n var defaultTypographyParams = {\n color: _variables[\"default\"].contentColorDefault,\n family: _variables[\"default\"].fontFamily,\n size: _variables[\"default\"].fontSize,\n weight: 'normal',\n lineHeight: _variables[\"default\"].lineHeight,\n withReset: false\n };\n var finalParams = (0, _merge[\"default\"])(defaultTypographyParams, variantParams, transformedParams);\n return function () {\n return (0, _styledComponents.css)(_templateObject(), function () {\n return finalParams.withReset && (0, _styledComponents.css)(_templateObject2());\n }, finalParams.color, finalParams.family, finalParams.size, finalParams.weight, finalParams.lineHeight);\n };\n}\n\nvar _default = typography;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.clearfix = clearfix;\nexports.ellipsis = ellipsis;\nexports.printWidth100Percent = printWidth100Percent;\nexports.printHide = printHide;\nexports.printNoBackground = printNoBackground;\nexports.printWrapAll = printWrapAll;\nexports.screenReaderContent = screenReaderContent;\nexports.overlayColors = overlayColors;\nexports.colorWithAlpha = colorWithAlpha;\nexports[\"default\"] = exports.reset = void 0;\n\nvar _tinycolor = _interopRequireDefault(require(\"tinycolor2\"));\n\nvar _styledComponents = require(\"styled-components\");\n\nvar _colorBlend = require(\"color-blend\");\n\nvar _variables = _interopRequireDefault(require(\"../variables\"));\n\nvar _pick = _interopRequireDefault(require(\"../pick\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _templateObject() {\n var data = _taggedTemplateLiteral([\"\\n /* Generic resets */\\n animation: none 0s ease 0s 1 normal none running;\\n backface-visibility: visible;\\n background: transparent none repeat 0 0 / auto auto padding-box border-box scroll;\\n border: medium none currentColor;\\n border-collapse: separate;\\n border-image: none;\\n border-radius: 0;\\n border-spacing: 0;\\n bottom: auto;\\n box-shadow: none;\\n caption-side: top;\\n clear: none;\\n clip: auto;\\n color-scheme: \", \";\\n columns: auto;\\n column-count: auto;\\n column-fill: balance;\\n column-gap: normal;\\n column-rule: medium none currentColor;\\n column-span: 1;\\n column-width: auto;\\n content: normal;\\n counter-increment: none;\\n counter-reset: none;\\n empty-cells: show;\\n float: none;\\n font-style: normal;\\n font-variant: normal;\\n font-weight: normal;\\n font-stretch: normal;\\n height: auto;\\n hyphens: none;\\n left: auto;\\n letter-spacing: normal;\\n list-style: disc outside none;\\n margin: 0;\\n max-height: none;\\n max-width: none;\\n min-height: 0;\\n min-width: 0;\\n opacity: 1;\\n orphans: 2;\\n overflow: visible;\\n overflow-x: visible;\\n overflow-y: visible;\\n padding: 0;\\n page-break-after: auto;\\n page-break-before: auto;\\n page-break-inside: auto;\\n perspective: none;\\n perspective-origin: 50% 50%;\\n pointer-events: auto;\\n position: static;\\n right: auto;\\n tab-size: 8;\\n table-layout: auto;\\n text-align: left;\\n text-align-last: auto;\\n text-decoration: none;\\n text-indent: 0;\\n text-shadow: none;\\n text-transform: none;\\n top: auto;\\n transform: none;\\n transform-origin: 50% 50% 0;\\n transform-style: flat;\\n transition: none 0s ease 0s;\\n user-select: auto;\\n vertical-align: baseline;\\n white-space: normal;\\n widows: 2;\\n width: auto;\\n word-spacing: normal;\\n z-index: auto;\\n /* Splunk-specific resets */\\n border-width: 1px;\\n box-sizing: border-box;\\n color: \", \";\\n cursor: inherit;\\n display: \", \";\\n font-family: \", \";\\n font-size: \", \";\\n line-height: \", \";\\n outline: medium none \", \";\\n visibility: inherit;\\n \"]);\n\n _templateObject = function _templateObject() {\n return data;\n };\n\n return data;\n}\n\nfunction _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n/**\n * @file\n * A collection of style-related helper functions. All of them return a single object containing\n * DOM CSS properties, for example: `{ display: …, fontFamily: … }`.\n */\n\n/**\n * The `reset` mixin resets css properties to their browser defaults, plus many to\n * theme-specific values. This ensures an element is not inheriting inappropriate styles.\n *\n * ##### Example\n * ```js\n * import styled from 'styled-components';\n * import { reset } from '@splunk/themes/mixins';\n *\n * const myBlock = styled.div`\n * ${reset('block')};\n * `\n * ```\n * @name reset\n * @kind function\n * @param {string} [display=inline] Set the `display` property (block, inline-block, …)\n * @public\n */\nvar reset = function reset() {\n var display = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'inline';\n return function () {\n return (0, _styledComponents.css)(_templateObject(), (0, _pick[\"default\"])({\n /*\n use pick() rather than relying on variables.colorScheme\n because there's no guarantee that variables.colorScheme\n has to match the css color-scheme prop\n */\n dark: 'dark',\n light: 'light'\n }), (0, _pick[\"default\"])({\n enterprise: _variables[\"default\"].textColor,\n prisma: _variables[\"default\"].contentColorDefault\n }), display, _variables[\"default\"].fontFamily, _variables[\"default\"].fontSize, _variables[\"default\"].lineHeight, _variables[\"default\"].focusColor);\n };\n};\n/**\n * `clearfix` is used on a container to ensure its height is at least as tall as any floating\n * children.\n *\n * ##### Example\n * ```js\n * import styled from 'styled-components';\n * import { clearfix } from '@splunk/themes/mixins';\n *\n * const myBlock = styled.div`\n * ${clearfix()};\n * `\n * ```\n * @public\n */\n\n\nexports.reset = reset;\n\nfunction clearfix() {\n return {\n '&::after': {\n display: 'table',\n content: '\"\"',\n clear: 'both'\n }\n };\n}\n/**\n * Use `ellipsis` for overflowing text. Requires `display` to be set to `inline-block` or `block`.\n *\n * ##### Example\n * ```js\n * import styled from 'styled-components';\n * import { ellipsis } from '@splunk/themes/mixins';\n *\n * const myBlock = styled.div`\n * ${ellipsis()};\n * width: 300px;\n * `\n * ```\n * @public\n */\n\n\nfunction ellipsis() {\n return {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap'\n };\n}\n/**\n * Force an element to be exactly 100% wide so that it doesn't overflow the page.\n *\n * ##### Example\n * ```js\n * import styled from 'styled-components';\n * import { printWidth100Percent } from '@splunk/themes/mixins';\n *\n * const myBlock = styled.div`\n * @media print {\n * .myElement {\n * ${printWidth100Percent()};\n * }\n * }\n * }\n * `\n * ```\n * @public\n */\n\n\nfunction printWidth100Percent() {\n return {\n maxWidth: '100% !important',\n width: '100% !important',\n overflow: 'hidden !important'\n };\n}\n/**\n * Hide an element (such as a button).\n *\n * ##### Example\n * ```js\n * import styled from 'styled-components';\n * import { printHide } from '@splunk/themes/mixins';\n *\n * const myBlock = styled.div`\n * @media print {\n * .myElement {\n * ${printHide()};\n * }\n * }\n * }\n * ```\n * @public\n */\n\n\nfunction printHide() {\n return {\n display: 'none !important'\n };\n}\n/**\n * Remove background gradients and images.\n *\n * ##### Example\n * ```js\n * import styled from 'styled-components';\n * import { printNoBackground } from '@splunk/themes/mixins';\n *\n * const myBlock = styled.div`\n * @media print {\n * .myElement {\n * ${printNoBackground()};\n * }\n * }\n * }\n * ```\n * @public\n */\n\n\nfunction printNoBackground() {\n return {\n background: 'none !important'\n };\n}\n/**\n * Ensure that all text wraps so that it doesn't overflow the page.\n *\n * ##### Example\n * ```js\n * import styled from 'styled-components';\n * import { printWrapAll } from '@splunk/themes/mixins';\n *\n * const myBlock = styled.div`\n * @media print {\n * .myElement {\n * ${printWrapAll()};\n * }\n * }\n * }\n * ```\n * @public\n */\n\n\nfunction printWrapAll() {\n // TS: have to assert as CSSObject because csstype doesn't allow !important\n return {\n wordBreak: 'break-all !important',\n wordWrap: 'break-word !important',\n overflowWrap: 'break-word !important',\n whiteSpace: 'normal !important'\n };\n}\n/**\n * Visually hide content. Typically used to target content for assistive technologies.\n *\n * ##### Example\n * ``` js\n * import screenReaderContent from '@splunk/themes/mixins';\n *\n * .myElement {\n * ${props => props.theme.mixins.screenReaderContent()};\n * }\n * ```\n * @public\n */\n\n\nfunction screenReaderContent() {\n return {\n position: 'absolute',\n overflow: 'hidden',\n clip: 'rect(0 0 0 0)',\n height: '1px',\n width: '1px',\n margin: '-1px',\n padding: 0,\n border: 0\n };\n}\n\n/**\n * Calculates how one color would appear over another using a normal blend mode.\n * Colors can either be strings or functions, such as variable functions.\n *\n * ##### Example\n * ```js\n * import styled from 'styled-components';\n * import { overlayColors } from '@splunk/themes/mixins';\n * import { interactiveColorPrimary, interactiveColorOverlaySelected } from '@splunk/themes/variables';\n *\n * const myButton = styled.button`\n * background: ${overlayColors(interactiveColorPrimary, interactiveColorOverlaySelected)};\n * `\n * ```\n * @name overlayColors\n * @kind function\n * @param {string|function} background\n * @param {string|function} foreground The color to overlay over the background.\n * @public\n */\nfunction overlayColors(c1, c2) {\n return function (props) {\n var c1Value = typeof c1 === 'function' ? c1(props) : c1;\n var c2Value = typeof c2 === 'function' ? c2(props) : c2;\n var c3 = (0, _colorBlend.normal)((0, _tinycolor[\"default\"])(c1Value).toRgb(), (0, _tinycolor[\"default\"])(c2Value).toRgb());\n return (0, _tinycolor[\"default\"])(c3).toRgbString();\n };\n}\n/**\n * Sets the alpha value on a given color.\n *\n * ##### Example\n * ```js\n * import styled from 'styled-components';\n * import { colorWithAlpha } from '@splunk/themes/mixins';\n * import { interactiveColorPrimary } from '@splunk/themes/variables';\n *\n * const myButton = styled.button`\n * background: ${colorWithAlpha(interactiveColorPrimary, 0.5)};\n * `\n * ```\n * @name colorWithAlpha\n * @kind function\n * @param {string|function} color\n * @param {number} alpha The alpha value accepts range between 0-1.\n * @public\n */\n\n\nfunction colorWithAlpha(color, alpha) {\n return function (props) {\n var colorValue = typeof color === 'function' ? color(props) : color;\n\n if (false && (alpha < 0 || alpha > 1)) {\n // eslint-disable-next-line no-console\n console.warn(\"The alpha value \\\"\".concat(alpha, \"\\\" is not within acceptable 0-1 range.\"));\n }\n\n return (0, _tinycolor[\"default\"])(colorValue).setAlpha(alpha).toRgbString();\n };\n}\n\nvar _default = {\n reset: reset,\n clearfix: clearfix,\n ellipsis: ellipsis,\n printWidth100Percent: printWidth100Percent,\n printHide: printHide,\n printNoBackground: printNoBackground,\n printWrapAll: printWrapAll,\n screenReaderContent: screenReaderContent,\n colorWithAlpha: colorWithAlpha,\n overlayColors: overlayColors\n};\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isInterpolationResult = isInterpolationResult;\nexports[\"default\"] = exports.getThemeVariant = void 0;\n\nvar _utils = require(\"./utils\");\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar valueToKey = {\n enterprise: 'family',\n prisma: 'family',\n light: 'colorScheme',\n dark: 'colorScheme',\n compact: 'density',\n comfortable: 'density'\n};\n\nfunction isInterpolationResult(tree) {\n // for this to work as expected for objects/CSSProperties, it may be necessary to change\n // it to only consider objects that have valid pick tree keys (but no other keys)\n // as trees\n return _typeof(tree) !== 'object' || Array.isArray(tree) || tree === null;\n}\n/**\n * This function is exported for use in pickVariant exclusively.\n */\n\n\nvar getThemeVariant = function getThemeVariant(tree, theme) {\n // If it's not an object with one of the six keys, it must be an end value.\n var treeKey = Object.keys(tree).shift();\n\n if (!treeKey) {\n throw new Error('A pick tree cannot be empty.');\n }\n\n var themeKey = valueToKey[treeKey];\n\n if (!themeKey) {\n throw new Error(\"Invalid pick tree key: \".concat(treeKey));\n } // Recursively crawl the tree.\n\n\n var themeCurrentValue = theme[themeKey];\n var treeValue = tree[themeCurrentValue]; // If it's not an object or it's a null value, it must be the end value.\n\n if (isInterpolationResult(treeValue)) {\n return treeValue; // this may be undefined, when the css does not support the theme\n }\n\n return getThemeVariant(treeValue, theme);\n};\n/**\n * Pick is used to create theme-specific css.\n *\n * This example selects an appropriate variable for the current theme.\n * ```\n * import { pick, variables } from '@splunk/themes';\n *\n * const Wrapper = styled.div`\n * color: ${pick({\n * enterprise: {\n * light: variables.grey35,\n * dark: variables.grey92,\n * },\n * prisma: variables.contentColorDefault,\n * })}\n * `;\n * ```\n * This example selects an appropriate block of css for the current theme.\n * ```\n * const Label = styled.div`\n * ${pick({\n * enterprise: css`\n * font-weight: ${variables.fontWeightSemiBold};\n * `,\n * prisma: css`\n * color: ${variables.contentColorDefault),\n * `,\n * })}\n * `;\n * ```\n * @param {object} themeOptions - An object consisting of a tree of theme options (`enterprise|prisma`, `light|dark`, or `compact|comfortable`).\n * @returns {function} The returned function is called by `styled-components`, which provides the theme context.\n * @public\n */\n\n\nexports.getThemeVariant = getThemeVariant;\n\nvar pick = function pick(tree) {\n return function (_ref) {\n var theme = _ref.theme;\n var themeCleaned = (0, _utils.addThemeDefaults)(theme === null || theme === void 0 ? void 0 : theme.splunkThemeV1);\n return getThemeVariant(tree, themeCleaned);\n };\n};\n\nvar _default = pick;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _pick = require(\"./pick\");\n\nvar _utils = require(\"./utils\");\n\n/**\n * Pick Variant is used to create theme-specific css.\n *\n * This example selects an appropriate variable for the current theme.\n * ```\n * import { pickVariant } from '@splunk/themes';\n *\n * ...\n *\n * const Wrapper = styled.div`\n * ${pickVariant('appearance', {\n * filled: 'background: red',\n * open: 'border: 1px solid red',\n * })}\n * `;\n * ```\n * This example selects an appropriate block of css for the current theme.\n * ```\n * const Wrapper = styled.div`\n * ${pickVariant('appearance', {\n * filled: {\n * enterprise: 'background: green',\n * prisma: 'background: blue',\n * },\n * open: {\n * enterprise: 'border: 1px solid green',\n * prisma: 'border: 1px solid blue',\n * },\n * })}\n * `;\n * ```\n * @param {string} propName - The prop name used to resolve the variants. The prop value must be a `string` or `boolean`.\n * @param {object} themeOptions - An object consisting of a tree of theme options, with the prop variants the top of the tree and optional\n * theme variants below (`enterprise|prisma`, `light|dark`, or `compact|comfortable`).\n * @returns {function} The returned function is called by `styled-components`, which provides the props and theme context.\n * @public\n */\nvar pickVariant = function pickVariant(propName, tree) {\n return function (props) {\n var _props$theme;\n\n // TS: must assume prop value can be used as string key\n var variantKey = props[propName];\n var subTree = tree[variantKey];\n\n if ((0, _pick.isInterpolationResult)(subTree)) {\n return subTree;\n }\n\n var theme = (0, _utils.addThemeDefaults)((_props$theme = props.theme) === null || _props$theme === void 0 ? void 0 : _props$theme.splunkThemeV1);\n return (0, _pick.getThemeVariant)(subTree, theme);\n };\n};\n\nvar _default = pickVariant;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _tinycolor = _interopRequireDefault(require(\"tinycolor2\"));\n\nvar _dataViz = _interopRequireDefault(require(\"./dataViz\"));\n\nvar _light = _interopRequireDefault(require(\"./light\"));\n\nvar _dark = _interopRequireDefault(require(\"./dark\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nfunction createPrismaBase(_ref) {\n var colorScheme = _ref.colorScheme;\n var colorSchemeVars = {\n light: _light[\"default\"],\n dark: _dark[\"default\"]\n }[colorScheme];\n /**\n * ## Misc. colors\n *\n * @colorSet verbose\n */\n\n var usageColors = {\n focusColor: (0, _tinycolor[\"default\"])(colorSchemeVars.interactiveColorPrimary).setAlpha(0.7).toRgbString(),\n transparent: 'transparent',\n linkColor: colorSchemeVars.interactiveColorPrimary\n };\n /**\n * ## Interactive state shadows\n *\n * @shadowSet\n *\n */\n\n var shadows = {\n hoverShadow: \"0 0 0 2px \".concat(colorSchemeVars.backgroundColorPage, \", 0 0 0 5px \").concat(colorSchemeVars.interactiveColorOverlayHover),\n focusShadow: \"0 0 0 2px \".concat(colorSchemeVars.backgroundColorPage, \", 0 0 0 5px \").concat(usageColors.focusColor),\n focusShadowInset: \"inset 0 0 0 3px \".concat(usageColors.focusColor)\n };\n /**\n * ## Backgrounds\n *\n * @colorSet verbose\n */\n\n var backgrounds = {\n draggableBackground: \"radial-gradient(circle at 1px 1px, \".concat(colorSchemeVars.contentColorMuted, \", \").concat(colorSchemeVars.contentColorMuted, \" 1px, transparent 1px) 0 0 / 4px 6px\")\n };\n var sansFontFamily = \"'Splunk Platform Sans', 'Splunk Data Sans', Roboto, Droid, 'Helvetica Neue', Helvetica, Arial, sans-serif\";\n /**\n * ## Font family\n *\n * @valueSet\n */\n\n var fontFamily = {\n sansFontFamily: sansFontFamily,\n serifFontFamily: \"Georgia, 'Times New Roman', Times, serif\",\n monoFontFamily: \"'Splunk Platform Mono', 'Roboto Mono', Consolas, 'Droid Sans Mono', Monaco, 'Courier New', Courier, monospace\",\n fontFamily: sansFontFamily\n };\n /**\n * ## Font weights\n *\n * Based on [common weight name mappings](https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight#common_weight_name_mapping)\n *\n * @valueSet\n */\n\n var fontWeights = {\n fontWeightLight: 300,\n fontWeightNormal: 400,\n fontWeightSemiBold: 500,\n fontWeightBold: 700,\n fontWeightHeavy: 800,\n fontWeightExtraBold: 900\n };\n /**\n * ## Layers\n * If a variable does not suit your purpose, set a value relatively, such as zindexModal +1.\n *\n * @valueSet\n */\n\n var zindexes = {\n zindexLayer: 1000,\n zindexFixedNavbar: 1030,\n zindexModalBackdrop: 1040,\n zindexModal: 1050,\n zindexPopover: 1060,\n zindexToastMessages: 2000\n };\n return _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, fontFamily), fontWeights), usageColors), _dataViz[\"default\"]), shadows), backgrounds), zindexes);\n}\n\nvar _default = createPrismaBase;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\n/**\n * ## Measures\n * Spacing is used for margin on any element or padding on containers, but can be used for other\n * properties that position elements.\n *\n * @valueSet\n */\nvar measures = {\n spacingXSmall: '4px',\n spacingSmall: '8px',\n spacingMedium: '12px',\n spacingLarge: '16px',\n spacingXLarge: '24px',\n spacingXXLarge: '32px',\n spacingXXXLarge: '40px',\n fontSizeSmall: '12px',\n fontSize: '14px',\n fontSizeLarge: '16px',\n fontSizeXLarge: '18px',\n fontSizeXXLarge: '24px',\n lineHeight: '20px',\n inputHeight: '40px',\n borderRadius: '4px'\n};\nvar _default = measures;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\n/**\n * ## Measures\n * Spacing is used for margin on any element or padding on containers, but can be used for other\n * properties that position elements.\n * * Larger containers, such as `Card` or `Modal`, use `spacing`.\n * * `spacingHalf` and `spacingQuarter` are primarily for horizontal spacing between smaller elements.\n * * Just because a desired value equals 20, 10, or 5 pixels, does not mean it's appropriate to\n * use spacing variables.\n *\n * @valueSet\n */\nvar measures = {\n spacingXSmall: '4px',\n spacingSmall: '8px',\n spacingMedium: '12px',\n spacingLarge: '16px',\n spacingXLarge: '24px',\n spacingXXLarge: '32px',\n spacingXXXLarge: '40px',\n fontSizeSmall: '12px',\n fontSize: '14px',\n fontSizeLarge: '16px',\n fontSizeXLarge: '18px',\n fontSizeXXLarge: '24px',\n lineHeight: '20px',\n inputHeight: '32px',\n borderRadius: '4px'\n};\nvar _default = measures;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * ## Background colors\n * Background colors should be used only for backgrounds of higher level sections & containers of a UI.\n *\n * @colorSet verbose\n */\nvar backgroundColors = {\n backgroundColorPopup: '#27292e',\n backgroundColorSection: '#1a1c20',\n backgroundColorSidebar: '#0b0c0e',\n backgroundColorPage: '#111215',\n backgroundColorNavigation: '#08090a',\n backgroundColorFloating: '#ffffff',\n backgroundColorDialog: '#1e2024',\n backgroundColorScrim: 'rgba(0, 0, 0, 0.8)'\n};\n/**\n * ## Content colors\n * Content colors should be used for text, icons and dividers.\n *\n * @colorSet verbose\n */\n\nvar contentColors = {\n contentColorActive: '#fafafa',\n contentColorDefault: '#b5b5b5',\n contentColorDisabled: '#6b6b6b',\n contentColorInverted: '#000000',\n contentColorMuted: '#909090'\n};\n/**\n * ## Interactive colors\n * Interactive colors are specifically chosen for borders and backgrounds of controls and other interactive content.\n * \"Overlay\" colors are intended to be placed over the default background color, such as interactiveColorPrimary.\n * If the default background color is not transparent, the `blend` mixin can be used to create a new color that combines the two.\n *\n * @colorSet verbose\n */\n\nvar interactiveColors = {\n interactiveColorPrimary: '#3993FF',\n interactiveColorBorder: 'rgba(255, 255, 255, 0.5)',\n interactiveColorBorderHover: 'rgba(255, 255, 255, 0.7)',\n interactiveColorBorderDisabled: 'rgba(255, 255, 255, 0.30)',\n interactiveColorOverlaySelected: 'rgba(255, 255, 255, 0.1)',\n interactiveColorOverlayHover: 'rgba(255, 255, 255, 0.05)',\n interactiveColorOverlayActive: 'rgba(0, 0, 0, 0.2)',\n interactiveColorOverlayDrag: 'rgba(57, 147, 255, 0.16)',\n interactiveColorBackground: '#272a2f',\n interactiveColorBackgroundDisabled: 'rgba(255, 255, 255, 0.15)'\n};\n/**\n * ## Neutral colors\n * Neutrals are used for dividers and as backup colors that can sparingly be used for cases, when the other defined colors are not enough.\n *\n * @colorSet verbose\n */\n\nvar neutralColors = {\n black: '#000000',\n neutral100: '#33343b',\n neutral200: '#43454b',\n neutral300: '#505158',\n neutral400: '#818285',\n neutral500: '#acacad',\n white: '#ffffff'\n};\n/**\n * ## Accent colors\n * Accent colors aid and categorize the visual communication of the system response.\n *\n * @colorSet verbose\n */\n\nvar accentColors = {\n accentColorPositive: '#85f415',\n accentColorWarning: '#f49106',\n accentColorAlert: '#f0581f',\n accentColorNegative: '#ff4242'\n};\n/**\n * ## Status colors\n * Status colors are reserved for communicating urgency and severity associated with data objects.\n *\n * @colorSet verbose\n */\n\nvar statusColors = {\n statusColorInfo: '#61cafa',\n statusColorNormal: '#85f415',\n statusColorLow: '#2cbda3',\n statusColorMedium: '#f49106',\n statusColorHigh: '#ff4242',\n statusColorCritical: '#ff3361'\n};\n/**\n * ## Elevation shadows\n *\n * @shadowSet\n *\n */\n\nvar elevationShadows = {\n embossShadow: '0px 1px 5px rgba(0, 0, 0, 0.35), 0px 0px 1px rgba(0, 0, 0, 0.35)',\n overlayShadow: '0px 26px 103px rgba(0, 0, 0, 0.64), 0px 11px 18px rgba(0, 0, 0, 0.32), 0px 3px 6px rgba(0, 0, 0, 0.3)',\n dragShadow: '0px 26px 103px rgba(0, 0, 0, 0.64), 0px 11px 18px rgba(0, 0, 0, 0.32), 0px 3px 6px rgba(0, 0, 0, 0.3)',\n modalShadow: '0px 50px 200px #000000, 0px 29px 66px rgba(0, 0, 0, 0.41), 0px 14px 47px rgba(0, 0, 0, 0.17), 0px 5px 10px rgba(0, 0, 0, 0.15)'\n};\n/**\n * ## Syntax colors\n * Syntax colors are used only for code blocks.\n *\n * @colorSet verbose alphabetical\n */\n\nvar syntaxColors = {\n syntaxBlue: '#6cd0f0',\n syntaxBrown: '#fccf87',\n syntaxGray: '#909090',\n syntaxGreen: '#cef06c',\n syntaxOrange: '#f7933f',\n syntaxPink: '#f494e5',\n syntaxPurple: '#ab74f1',\n syntaxRed: '#e9627f',\n syntaxTeal: '#45d4ba'\n};\n\nvar theme = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, accentColors), statusColors), elevationShadows), backgroundColors), contentColors), neutralColors), interactiveColors), syntaxColors);\n\nvar _default = theme;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.highLow = exports.sequential = exports.divergent = exports.categorical = exports.staticColors = void 0;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * ## Data viz\n *\n * Colors should be used in their prescribed order.\n * Don't mix-and-match between sets in the same visualization.\n *\n * ### Static colors\n *\n * @colorSet verbose\n */\nvar staticColors = {\n static1: '#7B56DB',\n static2: '#009CEB',\n static3: '#00CDAF',\n static4: '#DD9900',\n static5: '#FF677B',\n static6: '#CB2196',\n static7: '#813193',\n static8: '#0051B5',\n static9: '#008C80',\n static10: '#99B100',\n static11: '#FFA476',\n static12: '#FF6ACE',\n static13: '#AE8CFF',\n static14: '#00689D',\n static15: '#00490A',\n static16: '#465D00',\n static17: '#9D6300',\n static18: '#F6540B',\n static19: '#FF969E',\n static20: '#E47BFE'\n};\n/**\n * ### Categorical 1D\n *\n * @colorSet verbose\n */\n\nexports.staticColors = staticColors;\nvar categorical1D = {\n categorical1D1: '#5C33FF',\n categorical1D2: '#207865',\n categorical1D3: '#AD3F20',\n categorical1D4: '#003E80',\n categorical1D5: '#78062A',\n categorical1D6: '#2F8811',\n categorical1D7: '#555555'\n};\n/**\n * ### Categorical 1L\n *\n * @colorSet verbose\n */\n\nvar categorical1L = {\n categorical1L1: '#9980FF',\n categorical1L2: '#45D4BA',\n categorical1L3: '#FB865C',\n categorical1L4: '#66AAF9',\n categorical1L5: '#E85B79',\n categorical1L6: '#88EE66',\n categorical1L7: '#F0B000'\n};\n/**\n * ### Categorical 2D\n *\n * @colorSet verbose\n */\n\nvar categorical2D = {\n categorical2D1: '#1F4D5B',\n categorical2D2: '#CC0AD6',\n categorical2D3: '#017FA2',\n categorical2D4: '#D81E5B',\n categorical2D5: '#621FFF',\n categorical2D6: '#348350',\n categorical2D7: '#555555'\n};\n/**\n * ### Categorical 2L\n *\n * @colorSet verbose\n */\n\nvar categorical2L = {\n categorical2L1: '#5599BE',\n categorical2L2: '#FB9DFB',\n categorical2L3: '#00BBEE',\n categorical2L4: '#EE3399',\n categorical2L5: '#9980FF',\n categorical2L6: '#5FBF7F',\n categorical2L7: '#F58B00'\n};\n\nvar categorical = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, categorical1D), categorical1L), categorical2D), categorical2L);\n/**\n * ### Divergent 1D\n *\n * @colorSet verbose\n */\n\n\nexports.categorical = categorical;\nvar divergent1D = {\n divergent1D1: '#118832',\n divergent1D2: '#1C6B2D',\n divergent1D3: '#284D27',\n divergent1D4: '#333022',\n divergent1D5: '#692A21',\n divergent1D6: '#9E2520',\n divergent1D7: '#D41F1F'\n};\n/**\n * ### Divergent 1L\n *\n * @colorSet verbose\n */\n\nvar divergent1L = {\n divergent1L1: '#08AE37',\n divergent1L2: '#55C169',\n divergent1L3: '#A1D59C',\n divergent1L4: '#EEE8CE',\n divergent1L5: '#F4BAA9',\n divergent1L6: '#F98C83',\n divergent1L7: '#FF5E5E'\n};\n/**\n * ### Divergent 2D\n *\n * @colorSet verbose\n */\n\nvar divergent2D = {\n divergent2D1: '#0070F3',\n divergent2D2: '#115BAD',\n divergent2D3: '#224468',\n divergent2D4: '#333022',\n divergent2D5: '#692A21',\n divergent2D6: '#9E2520',\n divergent2D7: '#D41F1F'\n};\n/**\n * ### Divergent 2L\n *\n * @colorSet verbose\n */\n\nvar divergent2L = {\n divergent2L1: '#2A99FF',\n divergent2L2: '#6BB3EE',\n divergent2L3: '#ADCCDD',\n divergent2L4: '#EEE8CE',\n divergent2L5: '#F4BAA9',\n divergent2L6: '#F98C83',\n divergent2L7: '#FF5E5E'\n};\n/**\n * ### Divergent 3D\n *\n * @colorSet verbose\n */\n\nvar divergent3D = {\n divergent3D1: '#299986',\n divergent3D2: '#277C52',\n divergent3D3: '#24551F',\n divergent3D4: '#333022',\n divergent3D5: '#422879',\n divergent3D6: '#602CA1',\n divergent3D7: '#8747DA'\n};\n/**\n * ### Divergent 3L\n *\n * @colorSet verbose\n */\n\nvar divergent3L = {\n divergent3L1: '#14846C',\n divergent3L2: '#45D4BA',\n divergent3L3: '#9ADEC4',\n divergent3L4: '#EEE8CE',\n divergent3L5: '#D7BEE4',\n divergent3L6: '#C093F9',\n divergent3L7: '#9156DD'\n};\n/**\n * ### Divergent 4D\n *\n * @colorSet verbose\n */\n\nvar divergent4D = {\n divergent4D1: '#0D8387',\n divergent4D2: '#1A6765',\n divergent4D3: '#264C44',\n divergent4D4: '#333022',\n divergent4D5: '#693623',\n divergent4D6: '#9F3B23',\n divergent4D7: '#D54124'\n};\n/**\n * ### Divergent 4L\n *\n * @colorSet verbose\n */\n\nvar divergent4L = {\n divergent4L1: '#008287',\n divergent4L2: '#2EA39B',\n divergent4L3: '#5CC3AF',\n divergent4L4: '#EEE8CE',\n divergent4L5: '#ECA14E',\n divergent4L6: '#E3723A',\n divergent4L7: '#DA4325'\n};\n\nvar divergent = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, divergent1D), divergent1L), divergent2D), divergent2L), divergent3D), divergent3L), divergent4D), divergent4L);\n/**\n * ### Sequential 1D\n *\n * @colorSet verbose\n */\n\n\nexports.divergent = divergent;\nvar sequential1D = {\n sequential1D1: '#118832',\n sequential1D2: '#669922',\n sequential1D3: '#9D9F0D',\n sequential1D4: '#CBA700',\n sequential1D5: '#D97A0D',\n sequential1D6: '#D94E17',\n sequential1D7: '#D41F1F'\n};\n/**\n * ### Sequential 1L\n *\n * @colorSet verbose\n */\n\nvar sequential1L = {\n sequential1L1: '#088F44',\n sequential1L2: '#2EB82E',\n sequential1L3: '#C3CC33',\n sequential1L4: '#FFD442',\n sequential1L5: '#FFA857',\n sequential1L6: '#FF7149',\n sequential1L7: '#FE3A3A'\n};\n/**\n * ### Sequential 2D\n *\n * @colorSet verbose\n */\n\nvar sequential2D = {\n sequential2D1: '#333022',\n sequential2D2: '#3D2830',\n sequential2D3: '#562E4C',\n sequential2D4: '#6F3468',\n sequential2D5: '#873A83',\n sequential2D6: '#A0409F',\n sequential2D7: '#B846BB'\n};\n/**\n * ### Sequential 2L\n *\n * @colorSet verbose\n */\n\nvar sequential2L = {\n sequential2L1: '#EEE8CE',\n sequential2L2: '#E8C7CE',\n sequential2L3: '#E1A6CD',\n sequential2L4: '#DB86CD',\n sequential2L5: '#D465CD',\n sequential2L6: '#CE44CC',\n sequential2L7: '#C723CC'\n};\n/**\n * ### Sequential 3D\n *\n * @colorSet verbose\n */\n\nvar sequential3D = {\n sequential3D1: '#333022',\n sequential3D2: '#253223',\n sequential3D3: '#244333',\n sequential3D4: '#245442',\n sequential3D5: '#246451',\n sequential3D6: '#237561',\n sequential3D7: '#238570'\n};\n/**\n * ### Sequential 3L\n *\n * @colorSet verbose\n */\n\nvar sequential3L = {\n sequential3L1: '#EEE8CE',\n sequential3L2: '#B6ECD4',\n sequential3L3: '#7EEFDA',\n sequential3L4: '#45D4BA',\n sequential3L5: '#35B9A0',\n sequential3L6: '#249F86',\n sequential3L7: '#14846C'\n};\n/**\n * ### Sequential 4D\n *\n * @colorSet verbose\n */\n\nvar sequential4D = {\n sequential4D1: '#333022',\n sequential4D2: '#442519',\n sequential4D3: '#64271F',\n sequential4D4: '#832A24',\n sequential4D5: '#A0312E',\n sequential4D6: '#BD3737',\n sequential4D7: '#DA3B30'\n};\n/**\n * ### Sequential 4L\n *\n * @colorSet verbose\n */\n\nvar sequential4L = {\n sequential4L1: '#EEE8CE',\n sequential4L2: '#F5CEBF',\n sequential4L3: '#FCB4B0',\n sequential4L4: '#F99C96',\n sequential4L5: '#F6847C',\n sequential4L6: '#DF564D',\n sequential4L7: '#DD2E2E'\n};\n/**\n * ### Sequential 5D\n *\n * @colorSet verbose\n */\n\nvar sequential5D = {\n sequential5D1: '#2E2E55',\n sequential5D2: '#4B1773',\n sequential5D3: '#77136A',\n sequential5D4: '#A81A45',\n sequential5D5: '#D24620',\n sequential5D6: '#D97A0D',\n sequential5D7: '#CBA700'\n};\n/**\n * ### Sequential 5L\n *\n * @colorSet verbose\n */\n\nvar sequential5L = {\n sequential5L1: '#EEE8CE',\n sequential5L2: '#F2DD88',\n sequential5L3: '#FFC355',\n sequential5L4: '#FF9D66',\n sequential5L5: '#FF7777',\n sequential5L6: '#EE4477',\n sequential5L7: '#DD22BB'\n};\n/**\n * ### Sequential 6D\n *\n * @colorSet verbose\n */\n\nvar sequential6D = {\n sequential6D1: '#1C3355',\n sequential6D2: '#005580',\n sequential6D3: '#007575',\n sequential6D4: '#118832',\n sequential6D5: '#669922',\n sequential6D6: '#9D9F0D',\n sequential6D7: '#CBA700'\n};\n/**\n * ### Sequential 6L\n *\n * @colorSet verbose\n */\n\nvar sequential6L = {\n sequential6L1: '#EEE8CE',\n sequential6L2: '#E7E755',\n sequential6L3: '#A3E052',\n sequential6L4: '#0AD647',\n sequential6L5: '#00BBBB',\n sequential6L6: '#1182F3',\n sequential6L7: '#6666DD'\n};\n\nvar sequential = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, sequential1D), sequential1L), sequential2D), sequential2L), sequential3D), sequential3L), sequential4D), sequential4L), sequential5D), sequential5L), sequential6D), sequential6L);\n/**\n * ### High low 1D\n *\n * @colorSet verbose\n */\n\n\nexports.sequential = sequential;\nvar highLow1D = {\n highLow1DHigh: '#1C6B2D',\n highLow1DLow: '#9E2520'\n};\n/**\n * ### High low 1L\n *\n * @colorSet verbose\n */\n\nvar highLow1L = {\n highLow1LHigh: '#55C169',\n highLow1LLow: '#F98C83'\n};\n/**\n * ### High low 2D\n *\n * @colorSet verbose\n */\n\nvar highLow2D = {\n highLow2DHigh: '#115BAD',\n highLow2DLow: '#9E2520'\n};\n/**\n * ### High low 2L\n *\n * @colorSet verbose\n */\n\nvar highLow2L = {\n highLow2LHigh: '#6BB3EE',\n highLow2LLow: '#F98C83'\n};\n/**\n * ### High low 3D\n *\n * @colorSet verbose\n */\n\nvar highLow3D = {\n highLow3DHigh: '#277C52',\n highLow3DLow: '#602CA1'\n};\n/**\n * ### High low 3L\n *\n * @colorSet verbose\n */\n\nvar highLow3L = {\n highLow3LHigh: '#45D4BA',\n highLow3LLow: '#C093F9'\n};\n/**\n * ### High low 4D\n *\n * @colorSet verbose\n */\n\nvar highLow4D = {\n highLow4DHigh: '#1A6765',\n highLow4DLow: '#9F3B23'\n};\n/**\n * ### High low 4L\n *\n * @colorSet verbose\n */\n\nvar highLow4L = {\n highLow4LHigh: '#2EA39B',\n highLow4LLow: '#E3723A'\n};\n\nvar highLow = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, highLow1D), highLow1L), highLow2D), highLow2L), highLow3D), highLow3L), highLow4D), highLow4L);\n\nexports.highLow = highLow;\n\nvar dataViz = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, staticColors), categorical), divergent), sequential), highLow);\n\nvar _default = dataViz;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _light = _interopRequireDefault(require(\"./light\"));\n\nvar _dark = _interopRequireDefault(require(\"./dark\"));\n\nvar _compact = _interopRequireDefault(require(\"./compact\"));\n\nvar _comfortable = _interopRequireDefault(require(\"./comfortable\"));\n\nvar _base = _interopRequireDefault(require(\"./base\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction createPrismaTheme(_ref) {\n var colorScheme = _ref.colorScheme,\n density = _ref.density;\n var colorSchemeVars = {\n light: _light[\"default\"],\n dark: _dark[\"default\"]\n }[colorScheme];\n var densityVars = {\n compact: _compact[\"default\"],\n comfortable: _comfortable[\"default\"]\n }[density];\n var prismaBase = (0, _base[\"default\"])({\n colorScheme: colorScheme\n });\n return _objectSpread(_objectSpread(_objectSpread({}, prismaBase), colorSchemeVars), densityVars);\n}\n\nvar _default = createPrismaTheme;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * ## Background colors\n * Background colors should be used only for backgrounds of higher level sections & containers of a UI.\n *\n * @colorSet verbose\n */\nvar backgroundColors = {\n backgroundColorPopup: '#ffffff',\n backgroundColorSection: '#ffffff',\n backgroundColorSidebar: '#f8f8f8',\n backgroundColorPage: '#f9f9f9',\n backgroundColorNavigation: '#f7f7f7',\n backgroundColorFloating: '#000000',\n backgroundColorDialog: '#ffffff',\n backgroundColorScrim: 'rgba(255, 255, 255, 0.75)'\n};\n/**\n * ## Content colors\n * Content colors should be used for text, icons and dividers.\n *\n * @colorSet verbose\n */\n\nvar contentColors = {\n contentColorActive: '#2c2c2c',\n contentColorDefault: '#4d4d4d',\n contentColorDisabled: '#878787',\n contentColorInverted: '#ffffff',\n contentColorMuted: '#6b6b6b'\n};\n/**\n * ## Interactive colors\n * Interactive colors are specifically chosen for borders and backgrounds of controls and other interactive content.\n * \"Overlay\" colors are intended to be placed over the default background color, such as interactiveColorPrimary.\n * If the default background color is not transparent, the `blend` mixin can be used to create a new color that combines the two.\n *\n * @colorSet verbose\n */\n\nvar interactiveColors = {\n interactiveColorPrimary: '#0264d7',\n interactiveColorBorder: 'rgba(0, 0, 0, 0.4)',\n interactiveColorBorderHover: 'rgba(0, 0, 0, 0.6)',\n interactiveColorBorderDisabled: 'rgba(0, 0, 0, 0.3)',\n interactiveColorOverlaySelected: 'rgba(0, 0, 0, 0.04)',\n interactiveColorOverlayHover: 'rgba(0, 0, 0, 0.03)',\n interactiveColorOverlayActive: 'rgba(0, 0, 0, 0.07)',\n interactiveColorOverlayDrag: 'rgba(2, 100, 215, 0.16)',\n interactiveColorBackground: '#eeeeee',\n interactiveColorBackgroundDisabled: 'rgba(0, 0, 0, 0.1)'\n};\n/**\n * ## Neutral colors\n * Neutrals are used for dividers and as backup colors that can sparingly be used for cases, when the other defined colors are not enough.\n *\n * @colorSet verbose\n */\n\nvar neutralColors = {\n white: '#ffffff',\n neutral100: '#f0f0f0',\n neutral200: '#e6e6e6',\n neutral300: '#dddddd',\n neutral400: '#cacaca',\n neutral500: '#b8b8b8',\n black: '#000000'\n};\n/**\n * ## Accent colors\n * Accent colors aid and categorize the visual communication of the system response.\n *\n * @colorSet verbose\n */\n\nvar accentColors = {\n accentColorPositive: '#407a06',\n accentColorWarning: '#c97705',\n accentColorAlert: '#c6400d',\n accentColorNegative: '#e00000'\n};\n/**\n * ## Status colors\n * Status colors are reserved for communicating urgency and severity associated with data objects.\n *\n * @colorSet verbose\n */\n\nvar statusColors = {\n statusColorInfo: '#006be5',\n statusColorNormal: '#407a06',\n statusColorLow: '#155a4e',\n statusColorMedium: '#c97705',\n statusColorHigh: '#e00000',\n statusColorCritical: '#9e1534'\n};\n/**\n * ## Elevation shadows\n *\n * @shadowSet\n *\n */\n\nvar elevationShadows = {\n embossShadow: ' 0px 1px 5px rgba(0, 0, 0, 0.07), 0px 0px 1px rgba(0, 0, 0, 0.07)',\n overlayShadow: '0px 26px 103px rgba(0, 0, 0, 0.13), 0px 11px 18px rgba(0, 0, 0, 0.06), 0px 3px 6px rgba(0, 0, 0, 0.06)',\n dragShadow: '0px 26px 103px rgba(0, 0, 0, 0.13), 0px 11px 18px rgba(0, 0, 0, 0.06), 0px 3px 6px rgba(0, 0, 0, 0.06)',\n modalShadow: '0px 50px 200px rgba(0, 0, 0, 0.3), 0px 29px 66px rgba(0, 0, 0, 0.08), 0px 29px 47px rgba(0, 0, 0, 0.08), 0px 5px 10px rgba(0, 0, 0, 0.03)'\n};\n/**\n * ## Syntax colors\n * Syntax colors are used only for code blocks.\n *\n * @colorSet verbose alphabetical\n */\n\nvar syntaxColors = {\n syntaxBlue: '#0f7594',\n syntaxBrown: '#9f6404',\n syntaxGray: '#6b6b6b',\n syntaxGreen: '#5c780c',\n syntaxOrange: '#ba4f08',\n syntaxPink: '#cc15ae',\n syntaxPurple: '#7b4df5',\n syntaxRed: '#db1e47',\n syntaxTeal: '#1d7c6b'\n};\n\nvar theme = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, accentColors), statusColors), elevationShadows), backgroundColors), contentColors), neutralColors), interactiveColors), syntaxColors);\n\nvar _default = theme;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = require(\"react\");\n\nvar _styledComponents = require(\"styled-components\");\n\nvar _utils = require(\"./utils\");\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * React hook that allows theme variables to be easily used within a React functional component.\n * This includes the basic configuration of `family`, `colorScheme` and `density`,\n * as well as all the specific variables available in that theme.\n *\n * If no data `SplunkThemeProvider` was configured, the Prisma Dark Comfortable theme is returned.\n *\n * ```\n * import useSplunkTheme from '@splunk/themes/useSplunkTheme';\n * ...\n * export function() {\n * const { isComfortable, focusColor } = useSplunkTheme();\n *\n * const style = {\n * color: focusColor,\n * padding: isComfortable ? '10px' : '5px',\n * }\n *\n * ...\n *\n * return (\n *
\n * Hello\n *
\n * )\n * }\n * ```\n * @public\n */\nvar useSplunkTheme = function useSplunkTheme() {\n var _ref = (0, _react.useContext)(_styledComponents.ThemeContext) || {},\n _ref$splunkThemeV = _ref.splunkThemeV1,\n splunkThemeV1 = _ref$splunkThemeV === void 0 ? {} : _ref$splunkThemeV,\n rest = _objectWithoutProperties(_ref, [\"splunkThemeV1\"]);\n\n var family = splunkThemeV1.family,\n colorScheme = splunkThemeV1.colorScheme,\n density = splunkThemeV1.density,\n customizer = splunkThemeV1.customizer;\n return _objectSpread(_objectSpread({}, rest), (0, _utils.getCustomizedTheme)({\n family: family,\n colorScheme: colorScheme,\n density: density\n }, customizer));\n};\n\nvar _default = useSplunkTheme;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getCustomizedTheme = exports.addThemeDefaults = void 0;\n\nvar _memoize = _interopRequireDefault(require(\"lodash/memoize\"));\n\nvar _getTheme = _interopRequireDefault(require(\"./getTheme\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Accepts a theme object and returns supported values and defaults.\n * @private\n */\nvar addThemeDefaults = function addThemeDefaults() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$family = _ref.family,\n family = _ref$family === void 0 ? 'prisma' : _ref$family,\n _ref$colorScheme = _ref.colorScheme,\n colorScheme = _ref$colorScheme === void 0 ? 'dark' : _ref$colorScheme,\n _ref$density = _ref.density,\n density = _ref$density === void 0 ? 'comfortable' : _ref$density,\n _ref$isPrisma = _ref.isPrisma,\n isPrisma = _ref$isPrisma === void 0 ? true : _ref$isPrisma,\n _ref$isEnterprise = _ref.isEnterprise,\n isEnterprise = _ref$isEnterprise === void 0 ? false : _ref$isEnterprise,\n _ref$isComfortable = _ref.isComfortable,\n isComfortable = _ref$isComfortable === void 0 ? true : _ref$isComfortable,\n _ref$isCompact = _ref.isCompact,\n isCompact = _ref$isCompact === void 0 ? false : _ref$isCompact,\n _ref$isDark = _ref.isDark,\n isDark = _ref$isDark === void 0 ? true : _ref$isDark,\n _ref$isLight = _ref.isLight,\n isLight = _ref$isLight === void 0 ? false : _ref$isLight;\n\n return {\n family: family,\n colorScheme: colorScheme,\n density: density,\n isPrisma: isPrisma,\n isEnterprise: isEnterprise,\n isComfortable: isComfortable,\n isCompact: isCompact,\n isDark: isDark,\n isLight: isLight\n };\n};\n\nexports.addThemeDefaults = addThemeDefaults;\n\nfunction getCustomizedThemeUnmemo(settings, customizer) {\n var variables = (0, _getTheme[\"default\"])(settings);\n\n if (!customizer) {\n return variables;\n }\n\n return customizer(variables);\n}\n/**\n * Accepts a theme object and customizer, and returns supported values and defaults.\n * @private\n */\n\n\nvar getCustomizedTheme = (0, _memoize[\"default\"])(getCustomizedThemeUnmemo, function () {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n family = _ref2.family,\n colorScheme = _ref2.colorScheme,\n density = _ref2.density;\n\n var customizer = arguments.length > 1 ? arguments[1] : undefined;\n return \"\".concat(family, \"-\").concat(colorScheme, \"-\").concat(density, \"-\").concat(!!customizer);\n});\nexports.getCustomizedTheme = getCustomizedTheme;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.clearVariablesCache = exports[\"default\"] = void 0;\n\nvar _memoize = _interopRequireDefault(require(\"lodash/memoize\"));\n\nvar _getTheme = _interopRequireDefault(require(\"./getTheme\"));\n\nvar _utils = require(\"./utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * @file\n * ## Theme Variables\n * All variables are available in one util for use in styled-component templates.\n * Each variable is a function which styled-components will call with the available theme information.\n * If there is no SplunkThemeProvider, variables will default to Prisma Dark Comfortable.\n *\n * Variables will return `undefined` if the variable does not exist in the current theme.\n * ```\n * import variables from '@splunk/themes/variables';\n * import styled from 'styled-components';\n * ...\n * const PrismaWrapper = styled.div`\n * color: ${variables.contentColorDefault};\n * `;\n * ```\n *\n * Variables may also be imported individually.\n * ```\n * import { contentColorDefault } from '@splunk/themes/variables';\n * import styled from 'styled-components';\n * ...\n * const PrismaWrapper = styled.div`\n * color: ${contentColorDefault};\n * `;\n * ```\n *\n * This function must be used in conjunction with `pick` if different variables are needed in different themes.\n * ```\n * import { pick, variables } from '@splunk/themes';\n * import styled from 'styled-components';\n *\n * const Wrapper = styled.div`\n * color: ${pick({\n * enterprise: variables.textColor,\n * prisma: variables.contentColorDefault\n * });\n * `;\n * ```\n * ## Custom Variables\n * Custom variables cannot be added to this package. However, `pick()` can be used to create sets of\n * theme variables. These can be then be imported separately and used as above.\n * ```\n * import pick from '@splunk/themes/pick';\n *\n * export const myVariables = {\n * orange: pick({\n * light: '#C80',\n * dark: '#F90',\n * }),\n * space: pick({\n * enterprise: '20px',\n * prisma: {\n * comfortable: '16px',\n * compact: '12px',\n * },\n * }),\n * };\n * ```\n */\nvar getThemeVariable = function getThemeVariable(name, settings, customizer) {\n var theme = (0, _utils.getCustomizedTheme)(settings, customizer);\n var returnValue = theme[name];\n\n if (false && typeof returnValue === 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"The variable '\".concat(name, \"' does not exist in the theme '\").concat(theme.family, \" \").concat(theme.colorScheme, \" \").concat(theme.density, \"'.\"));\n }\n\n return returnValue;\n};\n\nvar getThemeVariableMemoized = (0, _memoize[\"default\"])(getThemeVariable, function (name, _ref, customizer) {\n var family = _ref.family,\n colorScheme = _ref.colorScheme,\n density = _ref.density;\n return \"\".concat(name, \"-\").concat(family, \"-\").concat(colorScheme, \"-\").concat(density, \"-\").concat(!!customizer);\n});\n\nvar clearVariablesCache = function clearVariablesCache() {\n var _getThemeVariableMemo, _getThemeVariableMemo2;\n\n return (_getThemeVariableMemo = (_getThemeVariableMemo2 = getThemeVariableMemoized.cache).clear) === null || _getThemeVariableMemo === void 0 ? void 0 : _getThemeVariableMemo.call(_getThemeVariableMemo2);\n};\n/**\n * The `get` helper will insert a theme variable into a `styled-components` css template.\n * Note, this will return `undefined` if the variable does not exist in the current theme.\n * This function must be used in conjunction with `pick` if different variables are needed in different themes.\n * ```\n * import get from '@splunk/themes/get';\n * ...\n * const Wrapper = styled.div`\n * color: ${get('contentColorDefaultDefault')}; // prisma theme only\n * `;\n * ```\n * @param {string} name - The name of the variable to get from the current theme configuration.\n * @returns {function} The returned function is called by `styled-components`, which provides the theme context.\n * @private\n */\n\n\nexports.clearVariablesCache = clearVariablesCache;\n\nvar get = function get(name) {\n return function (_ref2) {\n var _ref2$theme = _ref2.theme;\n _ref2$theme = _ref2$theme === void 0 ? {} : _ref2$theme;\n var splunkThemeV1 = _ref2$theme.splunkThemeV1;\n\n var _ref3 = splunkThemeV1 || {},\n family = _ref3.family,\n colorScheme = _ref3.colorScheme,\n density = _ref3.density,\n customizer = _ref3.customizer;\n\n return getThemeVariableMemoized(name, {\n family: family,\n colorScheme: colorScheme,\n density: density\n }, customizer);\n };\n};\n\nvar variableNames = Object.keys(_objectSpread(_objectSpread({}, (0, _getTheme[\"default\"])({\n family: 'prisma'\n})), (0, _getTheme[\"default\"])({\n family: 'enterprise'\n}))); // each variable is converted to a get() function.\n// TS: The AllVariables type allows safe access to all variables shared across themes,\n// and unsafe access to variables exclusive to Enterprise or Prisma\n\nvar variables = variableNames.reduce(function (acc, currentValue) {\n // using defineProperty instead of acc[currentValue] to work around readonly issue\n Object.defineProperty(acc, currentValue, {\n value: get(currentValue)\n });\n return acc;\n}, {});\nvar _default = variables;\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _styledComponents = require(\"styled-components\");\n\nvar _utils = require(\"./utils\");\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n// implementation for both\n\n/**\n * `withSplunkTheme` allows theme variables to be used within a React class component.\n * This includes the basic configuration of `family`, `colorScheme` and `density`,\n * as well as all the specific variables available in that theme.\n *\n * If no data `SplunkThemeProvider` was configured, the Prisma Dark Comfortable theme is returned.\n *\n * ```\n * import React, { Component } from 'react';\n * import PropTypes from 'prop-types';\n * import withSplunkTheme from '@splunk/themes/withSplunkTheme';\n *\n *\n * class MyComponent extends Component {\n * static propTypes = {\n * splunkTheme: PropTypes.object,\n * };\n *\n * render() {\n * const { isComfortable, focusColor } = this.props.splunkTheme;\n *\n * const style = {\n * color: focusColor,\n * padding: isComfortable ? '10px' : '5px',\n * }\n *\n * return (\n *
\n * Hello\n *
\n * )\n * }\n * }\n *\n * const MyComponentWithTheme = withSplunkTheme(MyComponent);\n * MyComponentWithTheme.propTypes = MyComponent.propTypes;\n *\n * export default MyComponentWithTheme;\n *\n * ```\n * @name withSplunkTheme\n * @function\n * @public\n */\nfunction withSplunkTheme( // eslint-disable-line @typescript-eslint/explicit-module-boundary-types\nComponent) {\n var ComponentWithSplunkTheme = /*#__PURE__*/_react[\"default\"].forwardRef(function (props, ref) {\n var _ref = (0, _react.useContext)(_styledComponents.ThemeContext) || {},\n splunkThemeV1 = _ref.splunkThemeV1,\n rest = _objectWithoutProperties(_ref, [\"splunkThemeV1\"]);\n\n var _ref2 = splunkThemeV1 || {},\n family = _ref2.family,\n colorScheme = _ref2.colorScheme,\n density = _ref2.density,\n customizer = _ref2.customizer;\n\n var themeSettings = (0, _utils.addThemeDefaults)({\n family: family,\n colorScheme: colorScheme,\n density: density\n });\n\n var splunkTheme = _objectSpread(_objectSpread({}, rest), (0, _utils.getCustomizedTheme)(themeSettings, customizer));\n\n return /*#__PURE__*/_react[\"default\"].createElement(Component, _extends({}, props, {\n ref: ref,\n splunkTheme: splunkTheme\n }));\n });\n\n var displayName = Component.displayName || Component.name || 'Component';\n ComponentWithSplunkTheme.displayName = \"withSplunkTheme(\".concat(displayName, \")\");\n return ComponentWithSplunkTheme;\n} // see https://github.com/Microsoft/TypeScript/issues/28938 for the two \"as T\" assertions above\n\n\nvar _default = withSplunkTheme;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getEntry = getEntry;\n\n/* eslint-disable import/prefer-default-export */\n\n/**\n * Retrieves the cookie value for the reference name passed in.\n * This can be `null` if the token or the reference name is not found in the cookie.\n *\n * For example:\n * ```\n * const CSRFToken = getEntry('splunkweb_csrf_token_8000');\n * ```\n *\n * @param {String} name Reference to the name in the cookie.\n *\n * @returns {String|null} If found, returns the cookie value associated with the name; null otherwise.\n *\n * @public\n *\n */\nfunction getEntry(name) {\n if (typeof document === 'undefined') {\n return null;\n }\n\n var regex = new RegExp(\"(^|; ?)\".concat(name, \"=([^;]+)\"));\n var value = null;\n\n try {\n var match = document.cookie.match(regex);\n value = match ? match[2] : null;\n } catch (e) {// no-op, let `value` remain null\n }\n\n return value;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getSortedTabbableElements = getSortedTabbableElements;\nexports.isTabKey = isTabKey;\nexports.handleTab = handleTab;\nexports.takeFocus = takeFocus;\n\nvar _keyboard = require(\"@splunk/ui-utils/keyboard\");\n\nvar _defer = _interopRequireDefault(require(\"lodash/defer\"));\n\nvar _filter = _interopRequireDefault(require(\"lodash/filter\"));\n\nvar _sortBy = _interopRequireDefault(require(\"lodash/sortBy\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * @file\n * Utilities for managing focus in the browser.\n */\nvar tabbableSelectors = ['a[href]', 'input:not([disabled])', 'select:not([disabled])', 'textarea:not([disabled])', 'button:not([disabled])', '[contenteditable]'];\nvar tabbableSelectorsWithTabIndex = tabbableSelectors.concat(['[tabindex]']);\n\nvar isHidden = function isHidden(element) {\n return !(element.offsetWidth || element.offsetHeight || element.getClientRects().length > 0) || getComputedStyle(element).visibility === 'hidden';\n};\n/**\n * Sorts the tabbable elements in the provided container.\n *\n * @param {Element} container - The target container.\n * @param {Object} options\n * If set, will neither use \"tabindex\" as an indicator of selectability nor disqualify elements based on \"tabindex=-1\"\n * @param {boolean} options.ignoreTabIndex\n * @returns {Element[]}\n * @public\n */\n\n\nfunction getSortedTabbableElements(container) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n ignoreTabIndex = _ref.ignoreTabIndex;\n\n var tabbableElementSelector = (ignoreTabIndex ? tabbableSelectors : tabbableSelectorsWithTabIndex).join(', ');\n var elems = container.querySelectorAll(tabbableElementSelector);\n var tabbableElems = (0, _filter[\"default\"])(elems, function (el) {\n return !isHidden(el) && (ignoreTabIndex || el.tabIndex >= 0) || el === document.activeElement;\n });\n var reducedElements = tabbableElems.reduce(function (accumulator, currentElement) {\n var prevElement = accumulator[accumulator.length - 1];\n var isPrevElementRadio = (prevElement === null || prevElement === void 0 ? void 0 : prevElement.getAttribute('type')) === 'radio';\n var isCurrElementRadio = currentElement.getAttribute('type') === 'radio';\n var sameRadioGroup = currentElement.getAttribute('name') === (prevElement === null || prevElement === void 0 ? void 0 : prevElement.getAttribute('name')); // Reduce radio elements to a single Tab stop, ensuring only one per group is focusable\n\n if (isPrevElementRadio && isCurrElementRadio && sameRadioGroup) {\n if (currentElement.checked) {\n // replace previous radio with current checked radio\n accumulator.pop();\n accumulator.push(currentElement);\n }\n } else {\n accumulator.push(currentElement);\n }\n\n return accumulator;\n }, []);\n return (0, _sortBy[\"default\"])(reducedElements, function (el) {\n if (el.tabIndex > 0) {\n return -1 / el.tabIndex;\n }\n\n return 0;\n });\n}\n\nfunction isTabKey(event) {\n return !((0, _keyboard.keycode)(event) !== 'tab' || event.metaKey || event.altKey || event.controlKey);\n}\n/**\n * A key event handler that moves focus among tabbable elements within a container.\n *\n * @param {Element} container - The target container.\n * @param {Event} event - The key event to handle.\n * @returns {Element|null} The element focus was applied to or `null` if focus was not applied.\n * @public\n */\n\n\nfunction handleTab(container, event) {\n // Ignore events bubbling up from portals\n if (!container.contains(document.activeElement)) {\n return null;\n } // Ensure this is a valid event\n\n\n if (!isTabKey(event)) {\n return null;\n }\n\n var tabbableElements = getSortedTabbableElements(container);\n\n if (tabbableElements.length === 0) {\n // if the container is focused, don't allow the focus to leave.\n if (document.activeElement === container) {\n event.preventDefault();\n return container;\n }\n\n return null;\n } // Find the current index or set default.\n\n\n var currentElement = event && event.target || container.querySelector(':focus');\n var currentIndex = tabbableElements.indexOf(currentElement);\n\n if (currentIndex === -1) {\n currentIndex = event.shiftKey ? 0 : tabbableElements.length - 1;\n } // Shift the array instead of the current index.\n\n\n if (event.shiftKey) {\n tabbableElements.unshift(tabbableElements.pop()); // move last to first\n } else {\n tabbableElements.push(tabbableElements.shift()); // move first to last\n } // Focus\n\n\n event.preventDefault();\n tabbableElements[currentIndex].focus();\n return tabbableElements[currentIndex];\n}\n/**\n * A helper method that focuses on the first focusable element in a container.\n * If a contained element already has focus, focus does not shift.\n *\n * @param {Element} container - The container that takes focus.\n * @param {String} [defaultElement='first'] - The target of focus, either 'first' or 'container'.\n * @returns {Element|null} The element that was focused, or null if no element was focused.\n * @public\n */\n\n\nfunction takeFocus(container) {\n var defaultElement = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'first';\n var currentElement = container.querySelector(':focus');\n\n if (currentElement) {\n return currentElement;\n }\n\n if (defaultElement === 'first') {\n var targetEl = getSortedTabbableElements(container)[0];\n\n if (targetEl) {\n (0, _defer[\"default\"])(function () {\n return targetEl.focus();\n });\n return targetEl;\n }\n }\n\n if (container.hasAttribute('tabIndex')) {\n (0, _defer[\"default\"])(function () {\n return container.focus();\n });\n return container;\n }\n\n return null;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.gettext = gettext;\nexports._ = _;\nexports.setSharedTranslator = setSharedTranslator;\nexports.resetSharedTranslator = resetSharedTranslator;\n\n/**\n * @file\n * Internationalization / translation utility. The exported `gettext` (and its alias `_`) uses\n * a shared translator function that's set to `window.gettext` by default. If `window.gettext` isn't\n * available, the identify function is used, turning `gettext` and `_` into no-ops.\n *\n * Caution is advised when using `setSharedTranslator` and `resetSharedTranslator`. Always restore\n * the translator after changing it, and never assume that the translator hasn't been changed by\n * external code during long-running operations.\n *\n * If used in combination with Splunk Enterprise, `window.gettext` is provided by default. Using the `gettext`\n * and `_` syntax ensures that messages can be extracted, and a catalog file can be generated\n * automatically.\n */\nvar internalTranslator;\n/**\n * Translates text using the shared translator. By default, this is `window.gettext` if it's available. Otherwise,\n * the identify function is used.\n * @param {String} text The text to translate.\n * @return {String} The translated text.\n * @public\n */\n\nfunction gettext() {\n return internalTranslator.apply(void 0, arguments);\n}\n/**\n * This is an alias for `gettext`.\n * @param {String} text The text to translate.\n * @return {String} The translated text.\n * @public\n */\n\n\nfunction _() {\n return internalTranslator.apply(void 0, arguments);\n}\n/**\n * Sets the shared translator. It is used by all subsequent calls of `gettext` and `_`.\n * @param {function} newTranslator - A function that returns the translated string.\n * @public\n */\n\n\nfunction setSharedTranslator(newTranslator) {\n internalTranslator = newTranslator;\n}\n/**\n * Resets the shared translator to `window.gettext` if available, and the identify function otherwise.\n * This function is invoked automatically during module load.\n * @public\n */\n\n\nfunction resetSharedTranslator() {\n setSharedTranslator(typeof window !== 'undefined' && window.gettext || function (message) {\n return message;\n });\n}\n\nresetSharedTranslator();","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createGUID = createGUID;\nexports.createDOMID = createDOMID;\n\n/**\n * Creates a Globally Unique Identifier in the form xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx,\n * where each x is replaced with a hexadecimal digit from 0 to f, and y is replaced with a\n * hexadecimal digit from 8 to b. This is not compatible with DOM ids, which must\n * start with a letter.\n *\n * @returns {String}\n * @public\n */\nfunction createGUID() {\n var template = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx';\n return template.replace(/[xy]/g, function (_char) {\n var random = Math.floor(Math.random() * 16);\n var value = _char === 'x' ? random : random % 4 + 8;\n return value.toString(16);\n });\n}\n/**\n * Creates a Globally Unique Identifier prefixed with one or more letters to create a valid DOM id.\n *\n * @param {String} [prefix=id] A prefix, which must start with a letter and may only contain\n * letters, digits, hyphens, and underscores.\n * @returns {String}\n * @public\n */\n\n\nfunction createDOMID() {\n var prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'id';\n\n if (prefix.match(/^[a-zA-Z][\\w-]*$/)) {\n return \"\".concat(prefix, \"-\").concat(createGUID());\n }\n\n throw new Error('createDOMID: Prefix must start with a letter and may only contain letters, digits, hyphens and underscores');\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isNumber = isNumber;\nexports.isDecimal = isDecimal;\nexports.isMinus = isMinus;\nexports.isNumeric = isNumeric;\nexports.addsCharacter = addsCharacter;\nexports.keycode = void 0;\n\nvar _keycode = _interopRequireDefault(require(\"keycode\"));\n\nvar _isUndefined = _interopRequireDefault(require(\"lodash/isUndefined\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * @file\n * Utilities for handling keyboard events.\n */\n\n/**\n * A utility for mapping key names with their numeric codes. This is an alias for [the third-party\n * library, keycode](https://github.com/timoxley/keycode).\n * @public\n */\nvar keycode = _keycode[\"default\"];\n/**\n * Whenever possible this library uses event.key because it has fewer issues than event.keyCode.\n * However, Safari 9.0 and earlier only support it for a few keys, such as Enter, and the QA\n * test suite doesn't provide it.\n */\n\nexports.keycode = keycode;\n\nfunction isValidKey(key) {\n return (0, _isUndefined[\"default\"])(key) ? false : key !== 'Unidentified';\n}\n/**\n * Tests if the event key is a number.\n * @param {Event} event - A keyboard event that includes a key, a keyCode, or both.\n * @returns {Boolean}\n * @public\n */\n\n\nfunction isNumber(_ref) {\n var key = _ref.key,\n keyCode = _ref.keyCode;\n\n if (isValidKey(key)) {\n var keys = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'];\n return keys.indexOf(key) >= 0;\n }\n\n return keyCode >= 48 && keyCode <= 57 || keyCode >= 96 && keyCode <= 105;\n}\n/**\n * Tests if the event key is a decimal.\n * @param {Event} event - A keyboard event that includes a key, a keyCode, or both.\n * @param {Object} [options]\n * @param {String} [locale.string = 'en-US'] - The locale determines the decimal separator. Supported locale formats are: `xx`, `xx-XX`, and `xx_XX`.\n * @returns {Boolean}\n * @public\n */\n\n\nfunction isDecimal(_ref2) {\n var key = _ref2.key,\n keyCode = _ref2.keyCode;\n\n var _ref3 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref3$locale = _ref3.locale,\n locale = _ref3$locale === void 0 ? 'en-US' : _ref3$locale;\n\n // A more robust and expandable solution would be to use formatToParts() once IE requirements are dropped.\n var formattedNumber = new Intl.NumberFormat(locale.replace('_', '-')).format(1.2);\n var decimalSeparator = formattedNumber.indexOf(',') > -1 ? ',' : '.';\n\n if (isValidKey(key)) {\n return key === decimalSeparator || key === 'Decimal';\n }\n\n if (decimalSeparator === '.' && keyCode === keycode('numpad .')) {\n return true;\n }\n\n return keyCode === keycode(decimalSeparator);\n}\n/**\n * Tests if the event key is a minus sign.\n * @param {Event} event - A keyboard event that includes a key, a keyCode, or both.\n * @returns {Boolean}\n * @public\n */\n\n\nfunction isMinus(_ref4) {\n var key = _ref4.key,\n keyCode = _ref4.keyCode;\n\n if (isValidKey(key)) {\n return key === '-' || key === 'Subtract';\n }\n\n return keyCode === keycode('numpad -') || keyCode === keycode('-');\n}\n/**\n * Tests if the event key is a numeric character (number, decimal, or minus).\n * @param {Event} event - A keyboard event that includes a key, a keyCode, or both.\n * @param {Object} [options]\n * @param {String} [locale.string = 'en-US'] - The locale determines the decimal separator. Supported locale formats are: `xx`, `xx-XX`, and `xx_XX`.\n * @returns {Boolean}\n * @public\n */\n\n\nfunction isNumeric(event, options) {\n return isNumber(event) || isDecimal(event, options) || isMinus(event);\n}\n/**\n * Tests if the event key adds a character. Enter and Tab return false even though they\n * add characters in some situations.\n * Caveat: Safari 9.0 and earlier might return undefined as this cannot be practically\n * determined.\n * @param {Event} event - A keyboard event that includes a key.\n * @returns {Boolean|Undefined}\n * @public\n */\n\n\nfunction addsCharacter(_ref5) {\n var key = _ref5.key;\n\n if (isValidKey(key)) {\n // IE 11 named characters\n var names = ['Add', 'Decimal', 'Divide', 'Multiply', 'Spacebar', 'Subtract']; // If key is one character it's assumed to be inserting a character rather than some other\n // type of action.\n\n return key.length === 1 || names.indexOf(key) >= 0;\n } // Safari 9.0 and earlier may return undefined\n\n\n return undefined;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.toClassName = toClassName;\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/* eslint-disable import/prefer-default-export */\n// This file was adapted from [JedWatson's classnames](https://github.com/JedWatson/classnames),\n// which is MIT-licensed:\n//\n// The MIT License (MIT)\n//\n// Copyright (c) 2018 Jed Watson\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n//\n// End of MIT license text.\n\n/**\n * A simple utility for conditionally joining class names together for React components. It\n * extracts all of the strings from the provided arguments and joins them together with spaces. If an\n * object is passed, the keys with truthy values are used. Arguments like `false`, `null`, and\n * `undefined` are ignored. Adapted from\n * [JedWatson's classnames](https://github.com/JedWatson/classnames).\n * @param {...Any}\n * @returns {String} className suitable for a React component.\n * @public\n */\nfunction toClassName() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return args.reduce(function (accum, arg) {\n if (!arg) {\n return accum;\n }\n\n var argType = _typeof(arg);\n\n if (argType === 'string') {\n accum.push(arg);\n } else if (Array.isArray(arg)) {\n accum.push(toClassName.apply(void 0, _toConsumableArray(arg)));\n } else if (argType === 'object') {\n return accum.concat(Object.keys(arg).filter(function (key) {\n return arg[key];\n }));\n }\n\n return accum;\n }, []).join(' ');\n}","import styled from 'styled-components';\nimport Button from '@splunk/react-ui/Button';\nimport { variables } from '@splunk/themes';\nimport WaitSpinner from '@splunk/react-ui/WaitSpinner';\n\nexport const ActionButtonComponent = styled(Button)`\n margin: 0px 1px;\n border: none;\n`;\n\nexport const WaitSpinnerWrapper = styled(WaitSpinner)`\n position: fixed;\n top: 50%;\n left: 50%;\n`;\n\nexport const TableCaptionComponent = styled.div`\n text-align: left;\n`;\n\nexport const TableSelectBoxWrapper = styled.span`\n button {\n margin-left: 80px;\n min-width: 100px;\n }\n`;\n\nexport const NoRecordsDiv = styled.div`\n font-size: ${variables.fontSize};\n text-align: center;\n`;\n","const MESSAGE_DICT: Record = {\n /* validation messages, range [0, 99] */\n 0: 'Field {{args[0]}} is required',\n 1: 'Field {{args[0]}} must be a string',\n 2: '{{args[0]}} {{args[1]}} is already in use',\n 3: '\"default\", \".\", \"..\", string started with \"_\" and string including any one of [\"*\", \"\\\\\", \"[\", \"]\", \"(\", \")\", \"?\", \":\"] are reserved value which cannot be used for field {{args[0]}}',\n 5: 'Field {{args[0]}} should be a positive number',\n 6: 'Field {{args[0]}} is required',\n 7: 'Field {{args[0]}} is not a valid regular expression',\n 8: 'Field {{args[0]}} should be within the range of [{{args[1]}} and {{args[2]}}]',\n 9: 'Field {{args[0]}} should be greater than or equal to {{args[1]}}',\n 10: 'Field {{args[0]}} should be less than or equal to {{args[1]}}',\n 11: '{{args[0]}} is not a function',\n 12: '{{args[0]}} is not a valid regular expression',\n 13: '{{args[0]}} is not a valid number range',\n 15: 'Field {{args[0]}} does not match regular expression {{args[1]}}',\n 16: 'Field {{args[0]}} is not a number',\n 17: 'Length of {{args[0]}} should be greater than or equal to {{args[1]}}',\n 18: 'Length of {{args[0]}} should be less than or equal to {{args[1]}}',\n 19: 'Field {{args[0]}} is not a valid {{args[1]}}',\n 20: 'configuration file should be pure JSON',\n 21: 'duplicate {{args[0]}} keys are not allowed',\n 22: 'Field {{args[0]}} must be less than 1024 characters',\n 23: '\"name\" field must be provided for {{args[0]}} \\'s entity in configuration file',\n 24: 'The file must be in one of these formats: {{args[0]}}',\n 25: 'The file size should not exceed {{args[0]}} KB',\n 26: 'The file is invalid',\n 27: '{{args[0]}} type is not present in supported File Types',\n 28: 'The file must be in {{args[0]}} format',\n\n // general messages, range [100, 499]\n 100: 'Create New Input',\n // Delete dialog title\n 101: 'Delete Confirmation',\n 102: 'Are you sure you want to delete \"{{args[0]}}\" {{args[1]}}? Ensure that no input is configured with \"{{args[0]}}\" as this will stop data collection for that input.',\n 103: 'Are you sure you want to delete \"{{args[0]}}\" {{args[1]}}?',\n // Error dialog title\n 104: 'Error Message',\n // Warning dialog title\n 105: 'Warning',\n // Input table filter label\n 106: 'Input Type',\n // Configuration table count label\n 107: 'Items',\n // Saving prompt message\n 108: 'Saving',\n // Loading index error message\n 109: 'Failed to load index',\n // Configuration file error\n 110: 'Internal configuration file error. Something wrong within the package or installation step. Contact your administrator for support. Detail: {{args[0]}}',\n 111: 'URL',\n 112: 'email address',\n 113: 'IPV4 address',\n 114: 'date in ISO 8601 format',\n // Page title\n 116: 'Inputs',\n 117: 'Configuration',\n // globalConfig file not found error message\n 118: 'configuration file not found',\n\n unknown: 'An unknown error occurred',\n};\n\nexport default MESSAGE_DICT;\n","export const PAGE_INPUT = 'inputs';\nexport const PAGE_CONF = 'configuration';\n","import styled from 'styled-components';\nimport { variables, mixins } from '@splunk/themes';\nimport Button from '@splunk/react-ui/Button';\nimport { defaultTheme } from '@splunk/splunk-utils/themes';\n\nconst StyledContainer = styled.div`\n ${mixins.reset('inline')};\n display: block;\n font-size: ${variables.fontSizeLarge};\n line-height: 200%;\n margin: calc(${variables.spacing} * 1) calc(${variables.spacing} * 1);\n`;\n\nconst StyledGreeting = styled.div`\n font-weight: bold;\n color: ${variables.infoColor};\n font-size: ${variables.fontSizeXXLarge};\n`;\n\nconst StyledButton = styled(Button)`\n min-width: 80px;\n`;\n\nconst defaultThemeSplunkThemeProviderMap = {\n enterprise: {\n family: 'enterprise',\n colorScheme: 'light',\n density: 'comfortable',\n },\n enterpriseDark: {\n family: 'enterprise',\n colorScheme: 'dark',\n density: 'comfortable',\n },\n lite: {\n family: 'enterprise',\n colorScheme: 'light',\n density: 'comfortable',\n },\n};\n\nconst ThemeProviderSettings =\n defaultThemeSplunkThemeProviderMap[defaultTheme()] ||\n defaultThemeSplunkThemeProviderMap.enterprise;\n\nexport { StyledContainer, StyledGreeting, ThemeProviderSettings, StyledButton };\n","import * as __ from 'lodash';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport messageDict from '../constants/messageDict';\n\n/**\n * @param code a int value.\n * @param msg arguments to format the message.\n */\nexport const getFormattedMessage = (code: number, msg?: (string | number | boolean)[]): string => {\n let template = messageDict[code] || messageDict.unknown;\n template = _(template);\n return __.template(template, {\n escape: /\\{\\{(.+?)\\}\\}/g,\n })({\n args: msg,\n });\n};\n\nconst tryParseByteString = (text: string) => {\n try {\n if (text.startsWith(`b'`) || text.startsWith(`b\"`)) {\n // bytestring starts from b and Quotation mark (b') and ends with Quotation mark(')\n const parsedString = JSON.parse(text.slice(2, -1));\n return String(parsedString.messages[0].text);\n }\n return text;\n } catch {\n return text;\n }\n};\n\nexport const tryTrimErrorMessage = (msg: string) => {\n try {\n const regex =\n /.+\"REST Error \\[[\\d]+\\]:\\s+.+\\s+--\\s+([\\s\\S]*)\"\\.\\s*See splunkd\\.log(\\/python.log)? for more details\\./;\n const matches = regex.exec(msg);\n if (matches && matches[1]) {\n try {\n const innerMsgJSON = JSON.parse(matches[1]);\n return String(innerMsgJSON.messages[0].text);\n } catch (error) {\n return tryParseByteString(matches[1]);\n }\n }\n } catch (e) {\n return msg;\n }\n\n return msg;\n};\n\nexport const parseErrorMsg = (err?: {\n response?: { data?: { messages?: { text?: string }[] } };\n}) => {\n try {\n const msg = err?.response?.data?.messages?.[0]?.text;\n if (!msg) {\n return messageDict.unknown;\n }\n return tryTrimErrorMessage(msg);\n } catch (e) {\n return _('Error in processing the request');\n }\n};\n","\n/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */\nfunction isNothing(subject) {\n return (typeof subject === 'undefined') || (subject === null);\n}\n\n\nfunction isObject(subject) {\n return (typeof subject === 'object') && (subject !== null);\n}\n\n\nfunction toArray(sequence) {\n if (Array.isArray(sequence)) return sequence;\n else if (isNothing(sequence)) return [];\n\n return [ sequence ];\n}\n\n\nfunction extend(target, source) {\n var index, length, key, sourceKeys;\n\n if (source) {\n sourceKeys = Object.keys(source);\n\n for (index = 0, length = sourceKeys.length; index < length; index += 1) {\n key = sourceKeys[index];\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\n\nfunction repeat(string, count) {\n var result = '', cycle;\n\n for (cycle = 0; cycle < count; cycle += 1) {\n result += string;\n }\n\n return result;\n}\n\n\nfunction isNegativeZero(number) {\n return (number === 0) && (Number.NEGATIVE_INFINITY === 1 / number);\n}\n\n\nvar isNothing_1 = isNothing;\nvar isObject_1 = isObject;\nvar toArray_1 = toArray;\nvar repeat_1 = repeat;\nvar isNegativeZero_1 = isNegativeZero;\nvar extend_1 = extend;\n\nvar common = {\n\tisNothing: isNothing_1,\n\tisObject: isObject_1,\n\ttoArray: toArray_1,\n\trepeat: repeat_1,\n\tisNegativeZero: isNegativeZero_1,\n\textend: extend_1\n};\n\n// YAML error class. http://stackoverflow.com/questions/8458984\n\n\nfunction formatError(exception, compact) {\n var where = '', message = exception.reason || '(unknown reason)';\n\n if (!exception.mark) return message;\n\n if (exception.mark.name) {\n where += 'in \"' + exception.mark.name + '\" ';\n }\n\n where += '(' + (exception.mark.line + 1) + ':' + (exception.mark.column + 1) + ')';\n\n if (!compact && exception.mark.snippet) {\n where += '\\n\\n' + exception.mark.snippet;\n }\n\n return message + ' ' + where;\n}\n\n\nfunction YAMLException$1(reason, mark) {\n // Super constructor\n Error.call(this);\n\n this.name = 'YAMLException';\n this.reason = reason;\n this.mark = mark;\n this.message = formatError(this, false);\n\n // Include stack trace in error object\n if (Error.captureStackTrace) {\n // Chrome and NodeJS\n Error.captureStackTrace(this, this.constructor);\n } else {\n // FF, IE 10+ and Safari 6+. Fallback for others\n this.stack = (new Error()).stack || '';\n }\n}\n\n\n// Inherit from Error\nYAMLException$1.prototype = Object.create(Error.prototype);\nYAMLException$1.prototype.constructor = YAMLException$1;\n\n\nYAMLException$1.prototype.toString = function toString(compact) {\n return this.name + ': ' + formatError(this, compact);\n};\n\n\nvar exception = YAMLException$1;\n\n// get snippet for a single line, respecting maxLength\nfunction getLine(buffer, lineStart, lineEnd, position, maxLineLength) {\n var head = '';\n var tail = '';\n var maxHalfLength = Math.floor(maxLineLength / 2) - 1;\n\n if (position - lineStart > maxHalfLength) {\n head = ' ... ';\n lineStart = position - maxHalfLength + head.length;\n }\n\n if (lineEnd - position > maxHalfLength) {\n tail = ' ...';\n lineEnd = position + maxHalfLength - tail.length;\n }\n\n return {\n str: head + buffer.slice(lineStart, lineEnd).replace(/\\t/g, '→') + tail,\n pos: position - lineStart + head.length // relative position\n };\n}\n\n\nfunction padStart(string, max) {\n return common.repeat(' ', max - string.length) + string;\n}\n\n\nfunction makeSnippet(mark, options) {\n options = Object.create(options || null);\n\n if (!mark.buffer) return null;\n\n if (!options.maxLength) options.maxLength = 79;\n if (typeof options.indent !== 'number') options.indent = 1;\n if (typeof options.linesBefore !== 'number') options.linesBefore = 3;\n if (typeof options.linesAfter !== 'number') options.linesAfter = 2;\n\n var re = /\\r?\\n|\\r|\\0/g;\n var lineStarts = [ 0 ];\n var lineEnds = [];\n var match;\n var foundLineNo = -1;\n\n while ((match = re.exec(mark.buffer))) {\n lineEnds.push(match.index);\n lineStarts.push(match.index + match[0].length);\n\n if (mark.position <= match.index && foundLineNo < 0) {\n foundLineNo = lineStarts.length - 2;\n }\n }\n\n if (foundLineNo < 0) foundLineNo = lineStarts.length - 1;\n\n var result = '', i, line;\n var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length;\n var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3);\n\n for (i = 1; i <= options.linesBefore; i++) {\n if (foundLineNo - i < 0) break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo - i],\n lineEnds[foundLineNo - i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]),\n maxLineLength\n );\n result = common.repeat(' ', options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n' + result;\n }\n\n line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength);\n result += common.repeat(' ', options.indent) + padStart((mark.line + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n';\n result += common.repeat('-', options.indent + lineNoLength + 3 + line.pos) + '^' + '\\n';\n\n for (i = 1; i <= options.linesAfter; i++) {\n if (foundLineNo + i >= lineEnds.length) break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo + i],\n lineEnds[foundLineNo + i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]),\n maxLineLength\n );\n result += common.repeat(' ', options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n';\n }\n\n return result.replace(/\\n$/, '');\n}\n\n\nvar snippet = makeSnippet;\n\nvar TYPE_CONSTRUCTOR_OPTIONS = [\n 'kind',\n 'multi',\n 'resolve',\n 'construct',\n 'instanceOf',\n 'predicate',\n 'represent',\n 'representName',\n 'defaultStyle',\n 'styleAliases'\n];\n\nvar YAML_NODE_KINDS = [\n 'scalar',\n 'sequence',\n 'mapping'\n];\n\nfunction compileStyleAliases(map) {\n var result = {};\n\n if (map !== null) {\n Object.keys(map).forEach(function (style) {\n map[style].forEach(function (alias) {\n result[String(alias)] = style;\n });\n });\n }\n\n return result;\n}\n\nfunction Type$1(tag, options) {\n options = options || {};\n\n Object.keys(options).forEach(function (name) {\n if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) {\n throw new exception('Unknown option \"' + name + '\" is met in definition of \"' + tag + '\" YAML type.');\n }\n });\n\n // TODO: Add tag format check.\n this.options = options; // keep original options in case user wants to extend this type later\n this.tag = tag;\n this.kind = options['kind'] || null;\n this.resolve = options['resolve'] || function () { return true; };\n this.construct = options['construct'] || function (data) { return data; };\n this.instanceOf = options['instanceOf'] || null;\n this.predicate = options['predicate'] || null;\n this.represent = options['represent'] || null;\n this.representName = options['representName'] || null;\n this.defaultStyle = options['defaultStyle'] || null;\n this.multi = options['multi'] || false;\n this.styleAliases = compileStyleAliases(options['styleAliases'] || null);\n\n if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {\n throw new exception('Unknown kind \"' + this.kind + '\" is specified for \"' + tag + '\" YAML type.');\n }\n}\n\nvar type = Type$1;\n\n/*eslint-disable max-len*/\n\n\n\n\n\nfunction compileList(schema, name) {\n var result = [];\n\n schema[name].forEach(function (currentType) {\n var newIndex = result.length;\n\n result.forEach(function (previousType, previousIndex) {\n if (previousType.tag === currentType.tag &&\n previousType.kind === currentType.kind &&\n previousType.multi === currentType.multi) {\n\n newIndex = previousIndex;\n }\n });\n\n result[newIndex] = currentType;\n });\n\n return result;\n}\n\n\nfunction compileMap(/* lists... */) {\n var result = {\n scalar: {},\n sequence: {},\n mapping: {},\n fallback: {},\n multi: {\n scalar: [],\n sequence: [],\n mapping: [],\n fallback: []\n }\n }, index, length;\n\n function collectType(type) {\n if (type.multi) {\n result.multi[type.kind].push(type);\n result.multi['fallback'].push(type);\n } else {\n result[type.kind][type.tag] = result['fallback'][type.tag] = type;\n }\n }\n\n for (index = 0, length = arguments.length; index < length; index += 1) {\n arguments[index].forEach(collectType);\n }\n return result;\n}\n\n\nfunction Schema$1(definition) {\n return this.extend(definition);\n}\n\n\nSchema$1.prototype.extend = function extend(definition) {\n var implicit = [];\n var explicit = [];\n\n if (definition instanceof type) {\n // Schema.extend(type)\n explicit.push(definition);\n\n } else if (Array.isArray(definition)) {\n // Schema.extend([ type1, type2, ... ])\n explicit = explicit.concat(definition);\n\n } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) {\n // Schema.extend({ explicit: [ type1, type2, ... ], implicit: [ type1, type2, ... ] })\n if (definition.implicit) implicit = implicit.concat(definition.implicit);\n if (definition.explicit) explicit = explicit.concat(definition.explicit);\n\n } else {\n throw new exception('Schema.extend argument should be a Type, [ Type ], ' +\n 'or a schema definition ({ implicit: [...], explicit: [...] })');\n }\n\n implicit.forEach(function (type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.');\n }\n\n if (type$1.loadKind && type$1.loadKind !== 'scalar') {\n throw new exception('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.');\n }\n\n if (type$1.multi) {\n throw new exception('There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.');\n }\n });\n\n explicit.forEach(function (type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.');\n }\n });\n\n var result = Object.create(Schema$1.prototype);\n\n result.implicit = (this.implicit || []).concat(implicit);\n result.explicit = (this.explicit || []).concat(explicit);\n\n result.compiledImplicit = compileList(result, 'implicit');\n result.compiledExplicit = compileList(result, 'explicit');\n result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit);\n\n return result;\n};\n\n\nvar schema = Schema$1;\n\nvar str = new type('tag:yaml.org,2002:str', {\n kind: 'scalar',\n construct: function (data) { return data !== null ? data : ''; }\n});\n\nvar seq = new type('tag:yaml.org,2002:seq', {\n kind: 'sequence',\n construct: function (data) { return data !== null ? data : []; }\n});\n\nvar map = new type('tag:yaml.org,2002:map', {\n kind: 'mapping',\n construct: function (data) { return data !== null ? data : {}; }\n});\n\nvar failsafe = new schema({\n explicit: [\n str,\n seq,\n map\n ]\n});\n\nfunction resolveYamlNull(data) {\n if (data === null) return true;\n\n var max = data.length;\n\n return (max === 1 && data === '~') ||\n (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL'));\n}\n\nfunction constructYamlNull() {\n return null;\n}\n\nfunction isNull(object) {\n return object === null;\n}\n\nvar _null = new type('tag:yaml.org,2002:null', {\n kind: 'scalar',\n resolve: resolveYamlNull,\n construct: constructYamlNull,\n predicate: isNull,\n represent: {\n canonical: function () { return '~'; },\n lowercase: function () { return 'null'; },\n uppercase: function () { return 'NULL'; },\n camelcase: function () { return 'Null'; },\n empty: function () { return ''; }\n },\n defaultStyle: 'lowercase'\n});\n\nfunction resolveYamlBoolean(data) {\n if (data === null) return false;\n\n var max = data.length;\n\n return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) ||\n (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE'));\n}\n\nfunction constructYamlBoolean(data) {\n return data === 'true' ||\n data === 'True' ||\n data === 'TRUE';\n}\n\nfunction isBoolean(object) {\n return Object.prototype.toString.call(object) === '[object Boolean]';\n}\n\nvar bool = new type('tag:yaml.org,2002:bool', {\n kind: 'scalar',\n resolve: resolveYamlBoolean,\n construct: constructYamlBoolean,\n predicate: isBoolean,\n represent: {\n lowercase: function (object) { return object ? 'true' : 'false'; },\n uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; },\n camelcase: function (object) { return object ? 'True' : 'False'; }\n },\n defaultStyle: 'lowercase'\n});\n\nfunction isHexCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) ||\n ((0x41/* A */ <= c) && (c <= 0x46/* F */)) ||\n ((0x61/* a */ <= c) && (c <= 0x66/* f */));\n}\n\nfunction isOctCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */));\n}\n\nfunction isDecCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */));\n}\n\nfunction resolveYamlInteger(data) {\n if (data === null) return false;\n\n var max = data.length,\n index = 0,\n hasDigits = false,\n ch;\n\n if (!max) return false;\n\n ch = data[index];\n\n // sign\n if (ch === '-' || ch === '+') {\n ch = data[++index];\n }\n\n if (ch === '0') {\n // 0\n if (index + 1 === max) return true;\n ch = data[++index];\n\n // base 2, base 8, base 16\n\n if (ch === 'b') {\n // base 2\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (ch !== '0' && ch !== '1') return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n\n if (ch === 'x') {\n // base 16\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isHexCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n\n if (ch === 'o') {\n // base 8\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isOctCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n }\n\n // base 10 (except 0)\n\n // value should not start with `_`;\n if (ch === '_') return false;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isDecCode(data.charCodeAt(index))) {\n return false;\n }\n hasDigits = true;\n }\n\n // Should have digits and should not end with `_`\n if (!hasDigits || ch === '_') return false;\n\n return true;\n}\n\nfunction constructYamlInteger(data) {\n var value = data, sign = 1, ch;\n\n if (value.indexOf('_') !== -1) {\n value = value.replace(/_/g, '');\n }\n\n ch = value[0];\n\n if (ch === '-' || ch === '+') {\n if (ch === '-') sign = -1;\n value = value.slice(1);\n ch = value[0];\n }\n\n if (value === '0') return 0;\n\n if (ch === '0') {\n if (value[1] === 'b') return sign * parseInt(value.slice(2), 2);\n if (value[1] === 'x') return sign * parseInt(value.slice(2), 16);\n if (value[1] === 'o') return sign * parseInt(value.slice(2), 8);\n }\n\n return sign * parseInt(value, 10);\n}\n\nfunction isInteger(object) {\n return (Object.prototype.toString.call(object)) === '[object Number]' &&\n (object % 1 === 0 && !common.isNegativeZero(object));\n}\n\nvar int = new type('tag:yaml.org,2002:int', {\n kind: 'scalar',\n resolve: resolveYamlInteger,\n construct: constructYamlInteger,\n predicate: isInteger,\n represent: {\n binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); },\n octal: function (obj) { return obj >= 0 ? '0o' + obj.toString(8) : '-0o' + obj.toString(8).slice(1); },\n decimal: function (obj) { return obj.toString(10); },\n /* eslint-disable max-len */\n hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); }\n },\n defaultStyle: 'decimal',\n styleAliases: {\n binary: [ 2, 'bin' ],\n octal: [ 8, 'oct' ],\n decimal: [ 10, 'dec' ],\n hexadecimal: [ 16, 'hex' ]\n }\n});\n\nvar YAML_FLOAT_PATTERN = new RegExp(\n // 2.5e4, 2.5 and integers\n '^(?:[-+]?(?:[0-9][0-9_]*)(?:\\\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' +\n // .2e4, .2\n // special case, seems not from spec\n '|\\\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' +\n // .inf\n '|[-+]?\\\\.(?:inf|Inf|INF)' +\n // .nan\n '|\\\\.(?:nan|NaN|NAN))$');\n\nfunction resolveYamlFloat(data) {\n if (data === null) return false;\n\n if (!YAML_FLOAT_PATTERN.test(data) ||\n // Quick hack to not allow integers end with `_`\n // Probably should update regexp & check speed\n data[data.length - 1] === '_') {\n return false;\n }\n\n return true;\n}\n\nfunction constructYamlFloat(data) {\n var value, sign;\n\n value = data.replace(/_/g, '').toLowerCase();\n sign = value[0] === '-' ? -1 : 1;\n\n if ('+-'.indexOf(value[0]) >= 0) {\n value = value.slice(1);\n }\n\n if (value === '.inf') {\n return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\n\n } else if (value === '.nan') {\n return NaN;\n }\n return sign * parseFloat(value, 10);\n}\n\n\nvar SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;\n\nfunction representYamlFloat(object, style) {\n var res;\n\n if (isNaN(object)) {\n switch (style) {\n case 'lowercase': return '.nan';\n case 'uppercase': return '.NAN';\n case 'camelcase': return '.NaN';\n }\n } else if (Number.POSITIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '.inf';\n case 'uppercase': return '.INF';\n case 'camelcase': return '.Inf';\n }\n } else if (Number.NEGATIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '-.inf';\n case 'uppercase': return '-.INF';\n case 'camelcase': return '-.Inf';\n }\n } else if (common.isNegativeZero(object)) {\n return '-0.0';\n }\n\n res = object.toString(10);\n\n // JS stringifier can build scientific format without dots: 5e-100,\n // while YAML requres dot: 5.e-100. Fix it with simple hack\n\n return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res;\n}\n\nfunction isFloat(object) {\n return (Object.prototype.toString.call(object) === '[object Number]') &&\n (object % 1 !== 0 || common.isNegativeZero(object));\n}\n\nvar float = new type('tag:yaml.org,2002:float', {\n kind: 'scalar',\n resolve: resolveYamlFloat,\n construct: constructYamlFloat,\n predicate: isFloat,\n represent: representYamlFloat,\n defaultStyle: 'lowercase'\n});\n\nvar json = failsafe.extend({\n implicit: [\n _null,\n bool,\n int,\n float\n ]\n});\n\nvar core = json;\n\nvar YAML_DATE_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9])' + // [2] month\n '-([0-9][0-9])$'); // [3] day\n\nvar YAML_TIMESTAMP_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9]?)' + // [2] month\n '-([0-9][0-9]?)' + // [3] day\n '(?:[Tt]|[ \\\\t]+)' + // ...\n '([0-9][0-9]?)' + // [4] hour\n ':([0-9][0-9])' + // [5] minute\n ':([0-9][0-9])' + // [6] second\n '(?:\\\\.([0-9]*))?' + // [7] fraction\n '(?:[ \\\\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour\n '(?::([0-9][0-9]))?))?$'); // [11] tz_minute\n\nfunction resolveYamlTimestamp(data) {\n if (data === null) return false;\n if (YAML_DATE_REGEXP.exec(data) !== null) return true;\n if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true;\n return false;\n}\n\nfunction constructYamlTimestamp(data) {\n var match, year, month, day, hour, minute, second, fraction = 0,\n delta = null, tz_hour, tz_minute, date;\n\n match = YAML_DATE_REGEXP.exec(data);\n if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data);\n\n if (match === null) throw new Error('Date resolve error');\n\n // match: [1] year [2] month [3] day\n\n year = +(match[1]);\n month = +(match[2]) - 1; // JS month starts with 0\n day = +(match[3]);\n\n if (!match[4]) { // no hour\n return new Date(Date.UTC(year, month, day));\n }\n\n // match: [4] hour [5] minute [6] second [7] fraction\n\n hour = +(match[4]);\n minute = +(match[5]);\n second = +(match[6]);\n\n if (match[7]) {\n fraction = match[7].slice(0, 3);\n while (fraction.length < 3) { // milli-seconds\n fraction += '0';\n }\n fraction = +fraction;\n }\n\n // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute\n\n if (match[9]) {\n tz_hour = +(match[10]);\n tz_minute = +(match[11] || 0);\n delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds\n if (match[9] === '-') delta = -delta;\n }\n\n date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));\n\n if (delta) date.setTime(date.getTime() - delta);\n\n return date;\n}\n\nfunction representYamlTimestamp(object /*, style*/) {\n return object.toISOString();\n}\n\nvar timestamp = new type('tag:yaml.org,2002:timestamp', {\n kind: 'scalar',\n resolve: resolveYamlTimestamp,\n construct: constructYamlTimestamp,\n instanceOf: Date,\n represent: representYamlTimestamp\n});\n\nfunction resolveYamlMerge(data) {\n return data === '<<' || data === null;\n}\n\nvar merge = new type('tag:yaml.org,2002:merge', {\n kind: 'scalar',\n resolve: resolveYamlMerge\n});\n\n/*eslint-disable no-bitwise*/\n\n\n\n\n\n// [ 64, 65, 66 ] -> [ padding, CR, LF ]\nvar BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\\n\\r';\n\n\nfunction resolveYamlBinary(data) {\n if (data === null) return false;\n\n var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP;\n\n // Convert one by one.\n for (idx = 0; idx < max; idx++) {\n code = map.indexOf(data.charAt(idx));\n\n // Skip CR/LF\n if (code > 64) continue;\n\n // Fail on illegal characters\n if (code < 0) return false;\n\n bitlen += 6;\n }\n\n // If there are any bits left, source was corrupted\n return (bitlen % 8) === 0;\n}\n\nfunction constructYamlBinary(data) {\n var idx, tailbits,\n input = data.replace(/[\\r\\n=]/g, ''), // remove CR/LF & padding to simplify scan\n max = input.length,\n map = BASE64_MAP,\n bits = 0,\n result = [];\n\n // Collect by 6*4 bits (3 bytes)\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 4 === 0) && idx) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n }\n\n bits = (bits << 6) | map.indexOf(input.charAt(idx));\n }\n\n // Dump tail\n\n tailbits = (max % 4) * 6;\n\n if (tailbits === 0) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n } else if (tailbits === 18) {\n result.push((bits >> 10) & 0xFF);\n result.push((bits >> 2) & 0xFF);\n } else if (tailbits === 12) {\n result.push((bits >> 4) & 0xFF);\n }\n\n return new Uint8Array(result);\n}\n\nfunction representYamlBinary(object /*, style*/) {\n var result = '', bits = 0, idx, tail,\n max = object.length,\n map = BASE64_MAP;\n\n // Convert every three bytes to 4 ASCII characters.\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 3 === 0) && idx) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n }\n\n bits = (bits << 8) + object[idx];\n }\n\n // Dump tail\n\n tail = max % 3;\n\n if (tail === 0) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n } else if (tail === 2) {\n result += map[(bits >> 10) & 0x3F];\n result += map[(bits >> 4) & 0x3F];\n result += map[(bits << 2) & 0x3F];\n result += map[64];\n } else if (tail === 1) {\n result += map[(bits >> 2) & 0x3F];\n result += map[(bits << 4) & 0x3F];\n result += map[64];\n result += map[64];\n }\n\n return result;\n}\n\nfunction isBinary(obj) {\n return Object.prototype.toString.call(obj) === '[object Uint8Array]';\n}\n\nvar binary = new type('tag:yaml.org,2002:binary', {\n kind: 'scalar',\n resolve: resolveYamlBinary,\n construct: constructYamlBinary,\n predicate: isBinary,\n represent: representYamlBinary\n});\n\nvar _hasOwnProperty$3 = Object.prototype.hasOwnProperty;\nvar _toString$2 = Object.prototype.toString;\n\nfunction resolveYamlOmap(data) {\n if (data === null) return true;\n\n var objectKeys = [], index, length, pair, pairKey, pairHasKey,\n object = data;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n pairHasKey = false;\n\n if (_toString$2.call(pair) !== '[object Object]') return false;\n\n for (pairKey in pair) {\n if (_hasOwnProperty$3.call(pair, pairKey)) {\n if (!pairHasKey) pairHasKey = true;\n else return false;\n }\n }\n\n if (!pairHasKey) return false;\n\n if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey);\n else return false;\n }\n\n return true;\n}\n\nfunction constructYamlOmap(data) {\n return data !== null ? data : [];\n}\n\nvar omap = new type('tag:yaml.org,2002:omap', {\n kind: 'sequence',\n resolve: resolveYamlOmap,\n construct: constructYamlOmap\n});\n\nvar _toString$1 = Object.prototype.toString;\n\nfunction resolveYamlPairs(data) {\n if (data === null) return true;\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n if (_toString$1.call(pair) !== '[object Object]') return false;\n\n keys = Object.keys(pair);\n\n if (keys.length !== 1) return false;\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return true;\n}\n\nfunction constructYamlPairs(data) {\n if (data === null) return [];\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n keys = Object.keys(pair);\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return result;\n}\n\nvar pairs = new type('tag:yaml.org,2002:pairs', {\n kind: 'sequence',\n resolve: resolveYamlPairs,\n construct: constructYamlPairs\n});\n\nvar _hasOwnProperty$2 = Object.prototype.hasOwnProperty;\n\nfunction resolveYamlSet(data) {\n if (data === null) return true;\n\n var key, object = data;\n\n for (key in object) {\n if (_hasOwnProperty$2.call(object, key)) {\n if (object[key] !== null) return false;\n }\n }\n\n return true;\n}\n\nfunction constructYamlSet(data) {\n return data !== null ? data : {};\n}\n\nvar set = new type('tag:yaml.org,2002:set', {\n kind: 'mapping',\n resolve: resolveYamlSet,\n construct: constructYamlSet\n});\n\nvar _default = core.extend({\n implicit: [\n timestamp,\n merge\n ],\n explicit: [\n binary,\n omap,\n pairs,\n set\n ]\n});\n\n/*eslint-disable max-len,no-use-before-define*/\n\n\n\n\n\n\n\nvar _hasOwnProperty$1 = Object.prototype.hasOwnProperty;\n\n\nvar CONTEXT_FLOW_IN = 1;\nvar CONTEXT_FLOW_OUT = 2;\nvar CONTEXT_BLOCK_IN = 3;\nvar CONTEXT_BLOCK_OUT = 4;\n\n\nvar CHOMPING_CLIP = 1;\nvar CHOMPING_STRIP = 2;\nvar CHOMPING_KEEP = 3;\n\n\nvar PATTERN_NON_PRINTABLE = /[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x84\\x86-\\x9F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\nvar PATTERN_NON_ASCII_LINE_BREAKS = /[\\x85\\u2028\\u2029]/;\nvar PATTERN_FLOW_INDICATORS = /[,\\[\\]\\{\\}]/;\nvar PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\\-]+!)$/i;\nvar PATTERN_TAG_URI = /^(?:!|[^,\\[\\]\\{\\}])(?:%[0-9a-f]{2}|[0-9a-z\\-#;\\/\\?:@&=\\+\\$,_\\.!~\\*'\\(\\)\\[\\]])*$/i;\n\n\nfunction _class(obj) { return Object.prototype.toString.call(obj); }\n\nfunction is_EOL(c) {\n return (c === 0x0A/* LF */) || (c === 0x0D/* CR */);\n}\n\nfunction is_WHITE_SPACE(c) {\n return (c === 0x09/* Tab */) || (c === 0x20/* Space */);\n}\n\nfunction is_WS_OR_EOL(c) {\n return (c === 0x09/* Tab */) ||\n (c === 0x20/* Space */) ||\n (c === 0x0A/* LF */) ||\n (c === 0x0D/* CR */);\n}\n\nfunction is_FLOW_INDICATOR(c) {\n return c === 0x2C/* , */ ||\n c === 0x5B/* [ */ ||\n c === 0x5D/* ] */ ||\n c === 0x7B/* { */ ||\n c === 0x7D/* } */;\n}\n\nfunction fromHexCode(c) {\n var lc;\n\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n /*eslint-disable no-bitwise*/\n lc = c | 0x20;\n\n if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) {\n return lc - 0x61 + 10;\n }\n\n return -1;\n}\n\nfunction escapedHexLen(c) {\n if (c === 0x78/* x */) { return 2; }\n if (c === 0x75/* u */) { return 4; }\n if (c === 0x55/* U */) { return 8; }\n return 0;\n}\n\nfunction fromDecimalCode(c) {\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n return -1;\n}\n\nfunction simpleEscapeSequence(c) {\n /* eslint-disable indent */\n return (c === 0x30/* 0 */) ? '\\x00' :\n (c === 0x61/* a */) ? '\\x07' :\n (c === 0x62/* b */) ? '\\x08' :\n (c === 0x74/* t */) ? '\\x09' :\n (c === 0x09/* Tab */) ? '\\x09' :\n (c === 0x6E/* n */) ? '\\x0A' :\n (c === 0x76/* v */) ? '\\x0B' :\n (c === 0x66/* f */) ? '\\x0C' :\n (c === 0x72/* r */) ? '\\x0D' :\n (c === 0x65/* e */) ? '\\x1B' :\n (c === 0x20/* Space */) ? ' ' :\n (c === 0x22/* \" */) ? '\\x22' :\n (c === 0x2F/* / */) ? '/' :\n (c === 0x5C/* \\ */) ? '\\x5C' :\n (c === 0x4E/* N */) ? '\\x85' :\n (c === 0x5F/* _ */) ? '\\xA0' :\n (c === 0x4C/* L */) ? '\\u2028' :\n (c === 0x50/* P */) ? '\\u2029' : '';\n}\n\nfunction charFromCodepoint(c) {\n if (c <= 0xFFFF) {\n return String.fromCharCode(c);\n }\n // Encode UTF-16 surrogate pair\n // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF\n return String.fromCharCode(\n ((c - 0x010000) >> 10) + 0xD800,\n ((c - 0x010000) & 0x03FF) + 0xDC00\n );\n}\n\nvar simpleEscapeCheck = new Array(256); // integer, for fast access\nvar simpleEscapeMap = new Array(256);\nfor (var i = 0; i < 256; i++) {\n simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;\n simpleEscapeMap[i] = simpleEscapeSequence(i);\n}\n\n\nfunction State$1(input, options) {\n this.input = input;\n\n this.filename = options['filename'] || null;\n this.schema = options['schema'] || _default;\n this.onWarning = options['onWarning'] || null;\n // (Hidden) Remove? makes the loader to expect YAML 1.1 documents\n // if such documents have no explicit %YAML directive\n this.legacy = options['legacy'] || false;\n\n this.json = options['json'] || false;\n this.listener = options['listener'] || null;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.typeMap = this.schema.compiledTypeMap;\n\n this.length = input.length;\n this.position = 0;\n this.line = 0;\n this.lineStart = 0;\n this.lineIndent = 0;\n\n // position of first leading tab in the current line,\n // used to make sure there are no tabs in the indentation\n this.firstTabInLine = -1;\n\n this.documents = [];\n\n /*\n this.version;\n this.checkLineBreaks;\n this.tagMap;\n this.anchorMap;\n this.tag;\n this.anchor;\n this.kind;\n this.result;*/\n\n}\n\n\nfunction generateError(state, message) {\n var mark = {\n name: state.filename,\n buffer: state.input.slice(0, -1), // omit trailing \\0\n position: state.position,\n line: state.line,\n column: state.position - state.lineStart\n };\n\n mark.snippet = snippet(mark);\n\n return new exception(message, mark);\n}\n\nfunction throwError(state, message) {\n throw generateError(state, message);\n}\n\nfunction throwWarning(state, message) {\n if (state.onWarning) {\n state.onWarning.call(null, generateError(state, message));\n }\n}\n\n\nvar directiveHandlers = {\n\n YAML: function handleYamlDirective(state, name, args) {\n\n var match, major, minor;\n\n if (state.version !== null) {\n throwError(state, 'duplication of %YAML directive');\n }\n\n if (args.length !== 1) {\n throwError(state, 'YAML directive accepts exactly one argument');\n }\n\n match = /^([0-9]+)\\.([0-9]+)$/.exec(args[0]);\n\n if (match === null) {\n throwError(state, 'ill-formed argument of the YAML directive');\n }\n\n major = parseInt(match[1], 10);\n minor = parseInt(match[2], 10);\n\n if (major !== 1) {\n throwError(state, 'unacceptable YAML version of the document');\n }\n\n state.version = args[0];\n state.checkLineBreaks = (minor < 2);\n\n if (minor !== 1 && minor !== 2) {\n throwWarning(state, 'unsupported YAML version of the document');\n }\n },\n\n TAG: function handleTagDirective(state, name, args) {\n\n var handle, prefix;\n\n if (args.length !== 2) {\n throwError(state, 'TAG directive accepts exactly two arguments');\n }\n\n handle = args[0];\n prefix = args[1];\n\n if (!PATTERN_TAG_HANDLE.test(handle)) {\n throwError(state, 'ill-formed tag handle (first argument) of the TAG directive');\n }\n\n if (_hasOwnProperty$1.call(state.tagMap, handle)) {\n throwError(state, 'there is a previously declared suffix for \"' + handle + '\" tag handle');\n }\n\n if (!PATTERN_TAG_URI.test(prefix)) {\n throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive');\n }\n\n try {\n prefix = decodeURIComponent(prefix);\n } catch (err) {\n throwError(state, 'tag prefix is malformed: ' + prefix);\n }\n\n state.tagMap[handle] = prefix;\n }\n};\n\n\nfunction captureSegment(state, start, end, checkJson) {\n var _position, _length, _character, _result;\n\n if (start < end) {\n _result = state.input.slice(start, end);\n\n if (checkJson) {\n for (_position = 0, _length = _result.length; _position < _length; _position += 1) {\n _character = _result.charCodeAt(_position);\n if (!(_character === 0x09 ||\n (0x20 <= _character && _character <= 0x10FFFF))) {\n throwError(state, 'expected valid JSON character');\n }\n }\n } else if (PATTERN_NON_PRINTABLE.test(_result)) {\n throwError(state, 'the stream contains non-printable characters');\n }\n\n state.result += _result;\n }\n}\n\nfunction mergeMappings(state, destination, source, overridableKeys) {\n var sourceKeys, key, index, quantity;\n\n if (!common.isObject(source)) {\n throwError(state, 'cannot merge mappings; the provided source object is unacceptable');\n }\n\n sourceKeys = Object.keys(source);\n\n for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {\n key = sourceKeys[index];\n\n if (!_hasOwnProperty$1.call(destination, key)) {\n destination[key] = source[key];\n overridableKeys[key] = true;\n }\n }\n}\n\nfunction storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode,\n startLine, startLineStart, startPos) {\n\n var index, quantity;\n\n // The output is a plain object here, so keys can only be strings.\n // We need to convert keyNode to a string, but doing so can hang the process\n // (deeply nested arrays that explode exponentially using aliases).\n if (Array.isArray(keyNode)) {\n keyNode = Array.prototype.slice.call(keyNode);\n\n for (index = 0, quantity = keyNode.length; index < quantity; index += 1) {\n if (Array.isArray(keyNode[index])) {\n throwError(state, 'nested arrays are not supported inside keys');\n }\n\n if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') {\n keyNode[index] = '[object Object]';\n }\n }\n }\n\n // Avoid code execution in load() via toString property\n // (still use its own toString for arrays, timestamps,\n // and whatever user schema extensions happen to have @@toStringTag)\n if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') {\n keyNode = '[object Object]';\n }\n\n\n keyNode = String(keyNode);\n\n if (_result === null) {\n _result = {};\n }\n\n if (keyTag === 'tag:yaml.org,2002:merge') {\n if (Array.isArray(valueNode)) {\n for (index = 0, quantity = valueNode.length; index < quantity; index += 1) {\n mergeMappings(state, _result, valueNode[index], overridableKeys);\n }\n } else {\n mergeMappings(state, _result, valueNode, overridableKeys);\n }\n } else {\n if (!state.json &&\n !_hasOwnProperty$1.call(overridableKeys, keyNode) &&\n _hasOwnProperty$1.call(_result, keyNode)) {\n state.line = startLine || state.line;\n state.lineStart = startLineStart || state.lineStart;\n state.position = startPos || state.position;\n throwError(state, 'duplicated mapping key');\n }\n\n // used for this specific key only because Object.defineProperty is slow\n if (keyNode === '__proto__') {\n Object.defineProperty(_result, keyNode, {\n configurable: true,\n enumerable: true,\n writable: true,\n value: valueNode\n });\n } else {\n _result[keyNode] = valueNode;\n }\n delete overridableKeys[keyNode];\n }\n\n return _result;\n}\n\nfunction readLineBreak(state) {\n var ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x0A/* LF */) {\n state.position++;\n } else if (ch === 0x0D/* CR */) {\n state.position++;\n if (state.input.charCodeAt(state.position) === 0x0A/* LF */) {\n state.position++;\n }\n } else {\n throwError(state, 'a line break is expected');\n }\n\n state.line += 1;\n state.lineStart = state.position;\n state.firstTabInLine = -1;\n}\n\nfunction skipSeparationSpace(state, allowComments, checkIndent) {\n var lineBreaks = 0,\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n if (ch === 0x09/* Tab */ && state.firstTabInLine === -1) {\n state.firstTabInLine = state.position;\n }\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (allowComments && ch === 0x23/* # */) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0);\n }\n\n if (is_EOL(ch)) {\n readLineBreak(state);\n\n ch = state.input.charCodeAt(state.position);\n lineBreaks++;\n state.lineIndent = 0;\n\n while (ch === 0x20/* Space */) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n } else {\n break;\n }\n }\n\n if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) {\n throwWarning(state, 'deficient indentation');\n }\n\n return lineBreaks;\n}\n\nfunction testDocumentSeparator(state) {\n var _position = state.position,\n ch;\n\n ch = state.input.charCodeAt(_position);\n\n // Condition state.position === state.lineStart is tested\n // in parent on each call, for efficiency. No needs to test here again.\n if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) &&\n ch === state.input.charCodeAt(_position + 1) &&\n ch === state.input.charCodeAt(_position + 2)) {\n\n _position += 3;\n\n ch = state.input.charCodeAt(_position);\n\n if (ch === 0 || is_WS_OR_EOL(ch)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction writeFoldedLines(state, count) {\n if (count === 1) {\n state.result += ' ';\n } else if (count > 1) {\n state.result += common.repeat('\\n', count - 1);\n }\n}\n\n\nfunction readPlainScalar(state, nodeIndent, withinFlowCollection) {\n var preceding,\n following,\n captureStart,\n captureEnd,\n hasPendingContent,\n _line,\n _lineStart,\n _lineIndent,\n _kind = state.kind,\n _result = state.result,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (is_WS_OR_EOL(ch) ||\n is_FLOW_INDICATOR(ch) ||\n ch === 0x23/* # */ ||\n ch === 0x26/* & */ ||\n ch === 0x2A/* * */ ||\n ch === 0x21/* ! */ ||\n ch === 0x7C/* | */ ||\n ch === 0x3E/* > */ ||\n ch === 0x27/* ' */ ||\n ch === 0x22/* \" */ ||\n ch === 0x25/* % */ ||\n ch === 0x40/* @ */ ||\n ch === 0x60/* ` */) {\n return false;\n }\n\n if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n return false;\n }\n }\n\n state.kind = 'scalar';\n state.result = '';\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n\n while (ch !== 0) {\n if (ch === 0x3A/* : */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n break;\n }\n\n } else if (ch === 0x23/* # */) {\n preceding = state.input.charCodeAt(state.position - 1);\n\n if (is_WS_OR_EOL(preceding)) {\n break;\n }\n\n } else if ((state.position === state.lineStart && testDocumentSeparator(state)) ||\n withinFlowCollection && is_FLOW_INDICATOR(ch)) {\n break;\n\n } else if (is_EOL(ch)) {\n _line = state.line;\n _lineStart = state.lineStart;\n _lineIndent = state.lineIndent;\n skipSeparationSpace(state, false, -1);\n\n if (state.lineIndent >= nodeIndent) {\n hasPendingContent = true;\n ch = state.input.charCodeAt(state.position);\n continue;\n } else {\n state.position = captureEnd;\n state.line = _line;\n state.lineStart = _lineStart;\n state.lineIndent = _lineIndent;\n break;\n }\n }\n\n if (hasPendingContent) {\n captureSegment(state, captureStart, captureEnd, false);\n writeFoldedLines(state, state.line - _line);\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n }\n\n if (!is_WHITE_SPACE(ch)) {\n captureEnd = state.position + 1;\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, captureEnd, false);\n\n if (state.result) {\n return true;\n }\n\n state.kind = _kind;\n state.result = _result;\n return false;\n}\n\nfunction readSingleQuotedScalar(state, nodeIndent) {\n var ch,\n captureStart, captureEnd;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x27/* ' */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x27/* ' */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x27/* ' */) {\n captureStart = state.position;\n state.position++;\n captureEnd = state.position;\n } else {\n return true;\n }\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a single quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a single quoted scalar');\n}\n\nfunction readDoubleQuotedScalar(state, nodeIndent) {\n var captureStart,\n captureEnd,\n hexLength,\n hexResult,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x22/* \" */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x22/* \" */) {\n captureSegment(state, captureStart, state.position, true);\n state.position++;\n return true;\n\n } else if (ch === 0x5C/* \\ */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (is_EOL(ch)) {\n skipSeparationSpace(state, false, nodeIndent);\n\n // TODO: rework to inline fn with no type cast?\n } else if (ch < 256 && simpleEscapeCheck[ch]) {\n state.result += simpleEscapeMap[ch];\n state.position++;\n\n } else if ((tmp = escapedHexLen(ch)) > 0) {\n hexLength = tmp;\n hexResult = 0;\n\n for (; hexLength > 0; hexLength--) {\n ch = state.input.charCodeAt(++state.position);\n\n if ((tmp = fromHexCode(ch)) >= 0) {\n hexResult = (hexResult << 4) + tmp;\n\n } else {\n throwError(state, 'expected hexadecimal character');\n }\n }\n\n state.result += charFromCodepoint(hexResult);\n\n state.position++;\n\n } else {\n throwError(state, 'unknown escape sequence');\n }\n\n captureStart = captureEnd = state.position;\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a double quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a double quoted scalar');\n}\n\nfunction readFlowCollection(state, nodeIndent) {\n var readNext = true,\n _line,\n _lineStart,\n _pos,\n _tag = state.tag,\n _result,\n _anchor = state.anchor,\n following,\n terminator,\n isPair,\n isExplicitPair,\n isMapping,\n overridableKeys = Object.create(null),\n keyNode,\n keyTag,\n valueNode,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x5B/* [ */) {\n terminator = 0x5D;/* ] */\n isMapping = false;\n _result = [];\n } else if (ch === 0x7B/* { */) {\n terminator = 0x7D;/* } */\n isMapping = true;\n _result = {};\n } else {\n return false;\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n while (ch !== 0) {\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === terminator) {\n state.position++;\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = isMapping ? 'mapping' : 'sequence';\n state.result = _result;\n return true;\n } else if (!readNext) {\n throwError(state, 'missed comma between flow collection entries');\n } else if (ch === 0x2C/* , */) {\n // \"flow collection entries can never be completely empty\", as per YAML 1.2, section 7.4\n throwError(state, \"expected the node content, but found ','\");\n }\n\n keyTag = keyNode = valueNode = null;\n isPair = isExplicitPair = false;\n\n if (ch === 0x3F/* ? */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following)) {\n isPair = isExplicitPair = true;\n state.position++;\n skipSeparationSpace(state, true, nodeIndent);\n }\n }\n\n _line = state.line; // Save the current line.\n _lineStart = state.lineStart;\n _pos = state.position;\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n keyTag = state.tag;\n keyNode = state.result;\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) {\n isPair = true;\n ch = state.input.charCodeAt(++state.position);\n skipSeparationSpace(state, true, nodeIndent);\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n valueNode = state.result;\n }\n\n if (isMapping) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos);\n } else if (isPair) {\n _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos));\n } else {\n _result.push(keyNode);\n }\n\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x2C/* , */) {\n readNext = true;\n ch = state.input.charCodeAt(++state.position);\n } else {\n readNext = false;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a flow collection');\n}\n\nfunction readBlockScalar(state, nodeIndent) {\n var captureStart,\n folding,\n chomping = CHOMPING_CLIP,\n didReadContent = false,\n detectedIndent = false,\n textIndent = nodeIndent,\n emptyLines = 0,\n atMoreIndented = false,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x7C/* | */) {\n folding = false;\n } else if (ch === 0x3E/* > */) {\n folding = true;\n } else {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n\n while (ch !== 0) {\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x2B/* + */ || ch === 0x2D/* - */) {\n if (CHOMPING_CLIP === chomping) {\n chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP;\n } else {\n throwError(state, 'repeat of a chomping mode identifier');\n }\n\n } else if ((tmp = fromDecimalCode(ch)) >= 0) {\n if (tmp === 0) {\n throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one');\n } else if (!detectedIndent) {\n textIndent = nodeIndent + tmp - 1;\n detectedIndent = true;\n } else {\n throwError(state, 'repeat of an indentation width identifier');\n }\n\n } else {\n break;\n }\n }\n\n if (is_WHITE_SPACE(ch)) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (is_WHITE_SPACE(ch));\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (!is_EOL(ch) && (ch !== 0));\n }\n }\n\n while (ch !== 0) {\n readLineBreak(state);\n state.lineIndent = 0;\n\n ch = state.input.charCodeAt(state.position);\n\n while ((!detectedIndent || state.lineIndent < textIndent) &&\n (ch === 0x20/* Space */)) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (!detectedIndent && state.lineIndent > textIndent) {\n textIndent = state.lineIndent;\n }\n\n if (is_EOL(ch)) {\n emptyLines++;\n continue;\n }\n\n // End of the scalar.\n if (state.lineIndent < textIndent) {\n\n // Perform the chomping.\n if (chomping === CHOMPING_KEEP) {\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n } else if (chomping === CHOMPING_CLIP) {\n if (didReadContent) { // i.e. only if the scalar is not empty.\n state.result += '\\n';\n }\n }\n\n // Break this `while` cycle and go to the funciton's epilogue.\n break;\n }\n\n // Folded style: use fancy rules to handle line breaks.\n if (folding) {\n\n // Lines starting with white space characters (more-indented lines) are not folded.\n if (is_WHITE_SPACE(ch)) {\n atMoreIndented = true;\n // except for the first content line (cf. Example 8.1)\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n\n // End of more-indented block.\n } else if (atMoreIndented) {\n atMoreIndented = false;\n state.result += common.repeat('\\n', emptyLines + 1);\n\n // Just one line break - perceive as the same line.\n } else if (emptyLines === 0) {\n if (didReadContent) { // i.e. only if we have already read some scalar content.\n state.result += ' ';\n }\n\n // Several line breaks - perceive as different lines.\n } else {\n state.result += common.repeat('\\n', emptyLines);\n }\n\n // Literal style: just add exact number of line breaks between content lines.\n } else {\n // Keep all line breaks except the header line break.\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n }\n\n didReadContent = true;\n detectedIndent = true;\n emptyLines = 0;\n captureStart = state.position;\n\n while (!is_EOL(ch) && (ch !== 0)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, state.position, false);\n }\n\n return true;\n}\n\nfunction readBlockSequence(state, nodeIndent) {\n var _line,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = [],\n following,\n detected = false,\n ch;\n\n // there is a leading tab before this token, so it can't be a block sequence/mapping;\n // it can still be flow sequence/mapping or a scalar\n if (state.firstTabInLine !== -1) return false;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n if (state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, 'tab characters must not be used in indentation');\n }\n\n if (ch !== 0x2D/* - */) {\n break;\n }\n\n following = state.input.charCodeAt(state.position + 1);\n\n if (!is_WS_OR_EOL(following)) {\n break;\n }\n\n detected = true;\n state.position++;\n\n if (skipSeparationSpace(state, true, -1)) {\n if (state.lineIndent <= nodeIndent) {\n _result.push(null);\n ch = state.input.charCodeAt(state.position);\n continue;\n }\n }\n\n _line = state.line;\n composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);\n _result.push(state.result);\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {\n throwError(state, 'bad indentation of a sequence entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'sequence';\n state.result = _result;\n return true;\n }\n return false;\n}\n\nfunction readBlockMapping(state, nodeIndent, flowIndent) {\n var following,\n allowCompact,\n _line,\n _keyLine,\n _keyLineStart,\n _keyPos,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = {},\n overridableKeys = Object.create(null),\n keyTag = null,\n keyNode = null,\n valueNode = null,\n atExplicitKey = false,\n detected = false,\n ch;\n\n // there is a leading tab before this token, so it can't be a block sequence/mapping;\n // it can still be flow sequence/mapping or a scalar\n if (state.firstTabInLine !== -1) return false;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n if (!atExplicitKey && state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, 'tab characters must not be used in indentation');\n }\n\n following = state.input.charCodeAt(state.position + 1);\n _line = state.line; // Save the current line.\n\n //\n // Explicit notation case. There are two separate blocks:\n // first for the key (denoted by \"?\") and second for the value (denoted by \":\")\n //\n if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) {\n\n if (ch === 0x3F/* ? */) {\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = true;\n allowCompact = true;\n\n } else if (atExplicitKey) {\n // i.e. 0x3A/* : */ === character after the explicit key.\n atExplicitKey = false;\n allowCompact = true;\n\n } else {\n throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line');\n }\n\n state.position += 1;\n ch = following;\n\n //\n // Implicit notation case. Flow-style node as the key first, then \":\", and the value.\n //\n } else {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n\n if (!composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) {\n // Neither implicit nor explicit notation.\n // Reading is done. Go to the epilogue.\n break;\n }\n\n if (state.line === _line) {\n ch = state.input.charCodeAt(state.position);\n\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x3A/* : */) {\n ch = state.input.charCodeAt(++state.position);\n\n if (!is_WS_OR_EOL(ch)) {\n throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping');\n }\n\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = false;\n allowCompact = false;\n keyTag = state.tag;\n keyNode = state.result;\n\n } else if (detected) {\n throwError(state, 'can not read an implicit mapping pair; a colon is missed');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n\n } else if (detected) {\n throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n }\n\n //\n // Common reading code for both explicit and implicit notations.\n //\n if (state.line === _line || state.lineIndent > nodeIndent) {\n if (atExplicitKey) {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n }\n\n if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {\n if (atExplicitKey) {\n keyNode = state.result;\n } else {\n valueNode = state.result;\n }\n }\n\n if (!atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n }\n\n if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {\n throwError(state, 'bad indentation of a mapping entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n //\n // Epilogue.\n //\n\n // Special case: last mapping's node contains only the key in explicit notation.\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n }\n\n // Expose the resulting mapping.\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'mapping';\n state.result = _result;\n }\n\n return detected;\n}\n\nfunction readTagProperty(state) {\n var _position,\n isVerbatim = false,\n isNamed = false,\n tagHandle,\n tagName,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x21/* ! */) return false;\n\n if (state.tag !== null) {\n throwError(state, 'duplication of a tag property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x3C/* < */) {\n isVerbatim = true;\n ch = state.input.charCodeAt(++state.position);\n\n } else if (ch === 0x21/* ! */) {\n isNamed = true;\n tagHandle = '!!';\n ch = state.input.charCodeAt(++state.position);\n\n } else {\n tagHandle = '!';\n }\n\n _position = state.position;\n\n if (isVerbatim) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && ch !== 0x3E/* > */);\n\n if (state.position < state.length) {\n tagName = state.input.slice(_position, state.position);\n ch = state.input.charCodeAt(++state.position);\n } else {\n throwError(state, 'unexpected end of the stream within a verbatim tag');\n }\n } else {\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n\n if (ch === 0x21/* ! */) {\n if (!isNamed) {\n tagHandle = state.input.slice(_position - 1, state.position + 1);\n\n if (!PATTERN_TAG_HANDLE.test(tagHandle)) {\n throwError(state, 'named tag handle cannot contain such characters');\n }\n\n isNamed = true;\n _position = state.position + 1;\n } else {\n throwError(state, 'tag suffix cannot contain exclamation marks');\n }\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n tagName = state.input.slice(_position, state.position);\n\n if (PATTERN_FLOW_INDICATORS.test(tagName)) {\n throwError(state, 'tag suffix cannot contain flow indicator characters');\n }\n }\n\n if (tagName && !PATTERN_TAG_URI.test(tagName)) {\n throwError(state, 'tag name cannot contain such characters: ' + tagName);\n }\n\n try {\n tagName = decodeURIComponent(tagName);\n } catch (err) {\n throwError(state, 'tag name is malformed: ' + tagName);\n }\n\n if (isVerbatim) {\n state.tag = tagName;\n\n } else if (_hasOwnProperty$1.call(state.tagMap, tagHandle)) {\n state.tag = state.tagMap[tagHandle] + tagName;\n\n } else if (tagHandle === '!') {\n state.tag = '!' + tagName;\n\n } else if (tagHandle === '!!') {\n state.tag = 'tag:yaml.org,2002:' + tagName;\n\n } else {\n throwError(state, 'undeclared tag handle \"' + tagHandle + '\"');\n }\n\n return true;\n}\n\nfunction readAnchorProperty(state) {\n var _position,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x26/* & */) return false;\n\n if (state.anchor !== null) {\n throwError(state, 'duplication of an anchor property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an anchor node must contain at least one character');\n }\n\n state.anchor = state.input.slice(_position, state.position);\n return true;\n}\n\nfunction readAlias(state) {\n var _position, alias,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x2A/* * */) return false;\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an alias node must contain at least one character');\n }\n\n alias = state.input.slice(_position, state.position);\n\n if (!_hasOwnProperty$1.call(state.anchorMap, alias)) {\n throwError(state, 'unidentified alias \"' + alias + '\"');\n }\n\n state.result = state.anchorMap[alias];\n skipSeparationSpace(state, true, -1);\n return true;\n}\n\nfunction composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) {\n var allowBlockStyles,\n allowBlockScalars,\n allowBlockCollections,\n indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n }\n }\n\n if (indentStatus === 1) {\n while (readTagProperty(state) || readAnchorProperty(state)) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n allowBlockCollections = allowBlockStyles;\n\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n } else {\n allowBlockCollections = false;\n }\n }\n }\n\n if (allowBlockCollections) {\n allowBlockCollections = atNewLine || allowCompact;\n }\n\n if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {\n if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {\n flowIndent = parentIndent;\n } else {\n flowIndent = parentIndent + 1;\n }\n\n blockIndent = state.position - state.lineStart;\n\n if (indentStatus === 1) {\n if (allowBlockCollections &&\n (readBlockSequence(state, blockIndent) ||\n readBlockMapping(state, blockIndent, flowIndent)) ||\n readFlowCollection(state, flowIndent)) {\n hasContent = true;\n } else {\n if ((allowBlockScalars && readBlockScalar(state, flowIndent)) ||\n readSingleQuotedScalar(state, flowIndent) ||\n readDoubleQuotedScalar(state, flowIndent)) {\n hasContent = true;\n\n } else if (readAlias(state)) {\n hasContent = true;\n\n if (state.tag !== null || state.anchor !== null) {\n throwError(state, 'alias node should not have any properties');\n }\n\n } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {\n hasContent = true;\n\n if (state.tag === null) {\n state.tag = '?';\n }\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n } else if (indentStatus === 0) {\n // Special case: block sequences are allowed to have same indentation level as the parent.\n // http://www.yaml.org/spec/1.2/spec.html#id2799784\n hasContent = allowBlockCollections && readBlockSequence(state, blockIndent);\n }\n }\n\n if (state.tag === null) {\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n\n } else if (state.tag === '?') {\n // Implicit resolving is not allowed for non-scalar types, and '?'\n // non-specific tag is only automatically assigned to plain scalars.\n //\n // We only need to check kind conformity in case user explicitly assigns '?'\n // tag, for example like this: \"! [0]\"\n //\n if (state.result !== null && state.kind !== 'scalar') {\n throwError(state, 'unacceptable node kind for ! tag; it should be \"scalar\", not \"' + state.kind + '\"');\n }\n\n for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {\n type = state.implicitTypes[typeIndex];\n\n if (type.resolve(state.result)) { // `state.result` updated in resolver if matched\n state.result = type.construct(state.result);\n state.tag = type.tag;\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n break;\n }\n }\n } else if (state.tag !== '!') {\n if (_hasOwnProperty$1.call(state.typeMap[state.kind || 'fallback'], state.tag)) {\n type = state.typeMap[state.kind || 'fallback'][state.tag];\n } else {\n // looking for multi type\n type = null;\n typeList = state.typeMap.multi[state.kind || 'fallback'];\n\n for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) {\n if (state.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) {\n type = typeList[typeIndex];\n break;\n }\n }\n }\n\n if (!type) {\n throwError(state, 'unknown tag !<' + state.tag + '>');\n }\n\n if (state.result !== null && type.kind !== state.kind) {\n throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be \"' + type.kind + '\", not \"' + state.kind + '\"');\n }\n\n if (!type.resolve(state.result, state.tag)) { // `state.result` updated in resolver if matched\n throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag');\n } else {\n state.result = type.construct(state.result, state.tag);\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n }\n\n if (state.listener !== null) {\n state.listener('close', state);\n }\n return state.tag !== null || state.anchor !== null || hasContent;\n}\n\nfunction readDocument(state) {\n var documentStart = state.position,\n _position,\n directiveName,\n directiveArgs,\n hasDirectives = false,\n ch;\n\n state.version = null;\n state.checkLineBreaks = state.legacy;\n state.tagMap = Object.create(null);\n state.anchorMap = Object.create(null);\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if (state.lineIndent > 0 || ch !== 0x25/* % */) {\n break;\n }\n\n hasDirectives = true;\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveName = state.input.slice(_position, state.position);\n directiveArgs = [];\n\n if (directiveName.length < 1) {\n throwError(state, 'directive name must not be less than one character in length');\n }\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && !is_EOL(ch));\n break;\n }\n\n if (is_EOL(ch)) break;\n\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveArgs.push(state.input.slice(_position, state.position));\n }\n\n if (ch !== 0) readLineBreak(state);\n\n if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) {\n directiveHandlers[directiveName](state, directiveName, directiveArgs);\n } else {\n throwWarning(state, 'unknown document directive \"' + directiveName + '\"');\n }\n }\n\n skipSeparationSpace(state, true, -1);\n\n if (state.lineIndent === 0 &&\n state.input.charCodeAt(state.position) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 1) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 2) === 0x2D/* - */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n\n } else if (hasDirectives) {\n throwError(state, 'directives end mark is expected');\n }\n\n composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);\n skipSeparationSpace(state, true, -1);\n\n if (state.checkLineBreaks &&\n PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) {\n throwWarning(state, 'non-ASCII line breaks are interpreted as content');\n }\n\n state.documents.push(state.result);\n\n if (state.position === state.lineStart && testDocumentSeparator(state)) {\n\n if (state.input.charCodeAt(state.position) === 0x2E/* . */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n }\n return;\n }\n\n if (state.position < (state.length - 1)) {\n throwError(state, 'end of the stream or a document separator is expected');\n } else {\n return;\n }\n}\n\n\nfunction loadDocuments(input, options) {\n input = String(input);\n options = options || {};\n\n if (input.length !== 0) {\n\n // Add tailing `\\n` if not exists\n if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ &&\n input.charCodeAt(input.length - 1) !== 0x0D/* CR */) {\n input += '\\n';\n }\n\n // Strip BOM\n if (input.charCodeAt(0) === 0xFEFF) {\n input = input.slice(1);\n }\n }\n\n var state = new State$1(input, options);\n\n var nullpos = input.indexOf('\\0');\n\n if (nullpos !== -1) {\n state.position = nullpos;\n throwError(state, 'null byte is not allowed in input');\n }\n\n // Use 0 as string terminator. That significantly simplifies bounds check.\n state.input += '\\0';\n\n while (state.input.charCodeAt(state.position) === 0x20/* Space */) {\n state.lineIndent += 1;\n state.position += 1;\n }\n\n while (state.position < (state.length - 1)) {\n readDocument(state);\n }\n\n return state.documents;\n}\n\n\nfunction loadAll$1(input, iterator, options) {\n if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') {\n options = iterator;\n iterator = null;\n }\n\n var documents = loadDocuments(input, options);\n\n if (typeof iterator !== 'function') {\n return documents;\n }\n\n for (var index = 0, length = documents.length; index < length; index += 1) {\n iterator(documents[index]);\n }\n}\n\n\nfunction load$1(input, options) {\n var documents = loadDocuments(input, options);\n\n if (documents.length === 0) {\n /*eslint-disable no-undefined*/\n return undefined;\n } else if (documents.length === 1) {\n return documents[0];\n }\n throw new exception('expected a single document in the stream, but found more');\n}\n\n\nvar loadAll_1 = loadAll$1;\nvar load_1 = load$1;\n\nvar loader = {\n\tloadAll: loadAll_1,\n\tload: load_1\n};\n\n/*eslint-disable no-use-before-define*/\n\n\n\n\n\nvar _toString = Object.prototype.toString;\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar CHAR_BOM = 0xFEFF;\nvar CHAR_TAB = 0x09; /* Tab */\nvar CHAR_LINE_FEED = 0x0A; /* LF */\nvar CHAR_CARRIAGE_RETURN = 0x0D; /* CR */\nvar CHAR_SPACE = 0x20; /* Space */\nvar CHAR_EXCLAMATION = 0x21; /* ! */\nvar CHAR_DOUBLE_QUOTE = 0x22; /* \" */\nvar CHAR_SHARP = 0x23; /* # */\nvar CHAR_PERCENT = 0x25; /* % */\nvar CHAR_AMPERSAND = 0x26; /* & */\nvar CHAR_SINGLE_QUOTE = 0x27; /* ' */\nvar CHAR_ASTERISK = 0x2A; /* * */\nvar CHAR_COMMA = 0x2C; /* , */\nvar CHAR_MINUS = 0x2D; /* - */\nvar CHAR_COLON = 0x3A; /* : */\nvar CHAR_EQUALS = 0x3D; /* = */\nvar CHAR_GREATER_THAN = 0x3E; /* > */\nvar CHAR_QUESTION = 0x3F; /* ? */\nvar CHAR_COMMERCIAL_AT = 0x40; /* @ */\nvar CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */\nvar CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */\nvar CHAR_GRAVE_ACCENT = 0x60; /* ` */\nvar CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */\nvar CHAR_VERTICAL_LINE = 0x7C; /* | */\nvar CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */\n\nvar ESCAPE_SEQUENCES = {};\n\nESCAPE_SEQUENCES[0x00] = '\\\\0';\nESCAPE_SEQUENCES[0x07] = '\\\\a';\nESCAPE_SEQUENCES[0x08] = '\\\\b';\nESCAPE_SEQUENCES[0x09] = '\\\\t';\nESCAPE_SEQUENCES[0x0A] = '\\\\n';\nESCAPE_SEQUENCES[0x0B] = '\\\\v';\nESCAPE_SEQUENCES[0x0C] = '\\\\f';\nESCAPE_SEQUENCES[0x0D] = '\\\\r';\nESCAPE_SEQUENCES[0x1B] = '\\\\e';\nESCAPE_SEQUENCES[0x22] = '\\\\\"';\nESCAPE_SEQUENCES[0x5C] = '\\\\\\\\';\nESCAPE_SEQUENCES[0x85] = '\\\\N';\nESCAPE_SEQUENCES[0xA0] = '\\\\_';\nESCAPE_SEQUENCES[0x2028] = '\\\\L';\nESCAPE_SEQUENCES[0x2029] = '\\\\P';\n\nvar DEPRECATED_BOOLEANS_SYNTAX = [\n 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON',\n 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF'\n];\n\nvar DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\\.[0-9_]*)?$/;\n\nfunction compileStyleMap(schema, map) {\n var result, keys, index, length, tag, style, type;\n\n if (map === null) return {};\n\n result = {};\n keys = Object.keys(map);\n\n for (index = 0, length = keys.length; index < length; index += 1) {\n tag = keys[index];\n style = String(map[tag]);\n\n if (tag.slice(0, 2) === '!!') {\n tag = 'tag:yaml.org,2002:' + tag.slice(2);\n }\n type = schema.compiledTypeMap['fallback'][tag];\n\n if (type && _hasOwnProperty.call(type.styleAliases, style)) {\n style = type.styleAliases[style];\n }\n\n result[tag] = style;\n }\n\n return result;\n}\n\nfunction encodeHex(character) {\n var string, handle, length;\n\n string = character.toString(16).toUpperCase();\n\n if (character <= 0xFF) {\n handle = 'x';\n length = 2;\n } else if (character <= 0xFFFF) {\n handle = 'u';\n length = 4;\n } else if (character <= 0xFFFFFFFF) {\n handle = 'U';\n length = 8;\n } else {\n throw new exception('code point within a string may not be greater than 0xFFFFFFFF');\n }\n\n return '\\\\' + handle + common.repeat('0', length - string.length) + string;\n}\n\n\nvar QUOTING_TYPE_SINGLE = 1,\n QUOTING_TYPE_DOUBLE = 2;\n\nfunction State(options) {\n this.schema = options['schema'] || _default;\n this.indent = Math.max(1, (options['indent'] || 2));\n this.noArrayIndent = options['noArrayIndent'] || false;\n this.skipInvalid = options['skipInvalid'] || false;\n this.flowLevel = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']);\n this.styleMap = compileStyleMap(this.schema, options['styles'] || null);\n this.sortKeys = options['sortKeys'] || false;\n this.lineWidth = options['lineWidth'] || 80;\n this.noRefs = options['noRefs'] || false;\n this.noCompatMode = options['noCompatMode'] || false;\n this.condenseFlow = options['condenseFlow'] || false;\n this.quotingType = options['quotingType'] === '\"' ? QUOTING_TYPE_DOUBLE : QUOTING_TYPE_SINGLE;\n this.forceQuotes = options['forceQuotes'] || false;\n this.replacer = typeof options['replacer'] === 'function' ? options['replacer'] : null;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.explicitTypes = this.schema.compiledExplicit;\n\n this.tag = null;\n this.result = '';\n\n this.duplicates = [];\n this.usedDuplicates = null;\n}\n\n// Indents every line in a string. Empty lines (\\n only) are not indented.\nfunction indentString(string, spaces) {\n var ind = common.repeat(' ', spaces),\n position = 0,\n next = -1,\n result = '',\n line,\n length = string.length;\n\n while (position < length) {\n next = string.indexOf('\\n', position);\n if (next === -1) {\n line = string.slice(position);\n position = length;\n } else {\n line = string.slice(position, next + 1);\n position = next + 1;\n }\n\n if (line.length && line !== '\\n') result += ind;\n\n result += line;\n }\n\n return result;\n}\n\nfunction generateNextLine(state, level) {\n return '\\n' + common.repeat(' ', state.indent * level);\n}\n\nfunction testImplicitResolving(state, str) {\n var index, length, type;\n\n for (index = 0, length = state.implicitTypes.length; index < length; index += 1) {\n type = state.implicitTypes[index];\n\n if (type.resolve(str)) {\n return true;\n }\n }\n\n return false;\n}\n\n// [33] s-white ::= s-space | s-tab\nfunction isWhitespace(c) {\n return c === CHAR_SPACE || c === CHAR_TAB;\n}\n\n// Returns true if the character can be printed without escaping.\n// From YAML 1.2: \"any allowed characters known to be non-printable\n// should also be escaped. [However,] This isn’t mandatory\"\n// Derived from nb-char - \\t - #x85 - #xA0 - #x2028 - #x2029.\nfunction isPrintable(c) {\n return (0x00020 <= c && c <= 0x00007E)\n || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029)\n || ((0x0E000 <= c && c <= 0x00FFFD) && c !== CHAR_BOM)\n || (0x10000 <= c && c <= 0x10FFFF);\n}\n\n// [34] ns-char ::= nb-char - s-white\n// [27] nb-char ::= c-printable - b-char - c-byte-order-mark\n// [26] b-char ::= b-line-feed | b-carriage-return\n// Including s-white (for some reason, examples doesn't match specs in this aspect)\n// ns-char ::= c-printable - b-line-feed - b-carriage-return - c-byte-order-mark\nfunction isNsCharOrWhitespace(c) {\n return isPrintable(c)\n && c !== CHAR_BOM\n // - b-char\n && c !== CHAR_CARRIAGE_RETURN\n && c !== CHAR_LINE_FEED;\n}\n\n// [127] ns-plain-safe(c) ::= c = flow-out ⇒ ns-plain-safe-out\n// c = flow-in ⇒ ns-plain-safe-in\n// c = block-key ⇒ ns-plain-safe-out\n// c = flow-key ⇒ ns-plain-safe-in\n// [128] ns-plain-safe-out ::= ns-char\n// [129] ns-plain-safe-in ::= ns-char - c-flow-indicator\n// [130] ns-plain-char(c) ::= ( ns-plain-safe(c) - “:” - “#” )\n// | ( /* An ns-char preceding */ “#” )\n// | ( “:” /* Followed by an ns-plain-safe(c) */ )\nfunction isPlainSafe(c, prev, inblock) {\n var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c);\n var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c);\n return (\n // ns-plain-safe\n inblock ? // c = flow-in\n cIsNsCharOrWhitespace\n : cIsNsCharOrWhitespace\n // - c-flow-indicator\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n )\n // ns-plain-char\n && c !== CHAR_SHARP // false on '#'\n && !(prev === CHAR_COLON && !cIsNsChar) // false on ': '\n || (isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c === CHAR_SHARP) // change to true on '[^ ]#'\n || (prev === CHAR_COLON && cIsNsChar); // change to true on ':[^ ]'\n}\n\n// Simplified test for values allowed as the first character in plain style.\nfunction isPlainSafeFirst(c) {\n // Uses a subset of ns-char - c-indicator\n // where ns-char = nb-char - s-white.\n // No support of ( ( “?” | “:” | “-” ) /* Followed by an ns-plain-safe(c)) */ ) part\n return isPrintable(c) && c !== CHAR_BOM\n && !isWhitespace(c) // - s-white\n // - (c-indicator ::=\n // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}”\n && c !== CHAR_MINUS\n && c !== CHAR_QUESTION\n && c !== CHAR_COLON\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n // | “#” | “&” | “*” | “!” | “|” | “=” | “>” | “'” | “\"”\n && c !== CHAR_SHARP\n && c !== CHAR_AMPERSAND\n && c !== CHAR_ASTERISK\n && c !== CHAR_EXCLAMATION\n && c !== CHAR_VERTICAL_LINE\n && c !== CHAR_EQUALS\n && c !== CHAR_GREATER_THAN\n && c !== CHAR_SINGLE_QUOTE\n && c !== CHAR_DOUBLE_QUOTE\n // | “%” | “@” | “`”)\n && c !== CHAR_PERCENT\n && c !== CHAR_COMMERCIAL_AT\n && c !== CHAR_GRAVE_ACCENT;\n}\n\n// Simplified test for values allowed as the last character in plain style.\nfunction isPlainSafeLast(c) {\n // just not whitespace or colon, it will be checked to be plain character later\n return !isWhitespace(c) && c !== CHAR_COLON;\n}\n\n// Same as 'string'.codePointAt(pos), but works in older browsers.\nfunction codePointAt(string, pos) {\n var first = string.charCodeAt(pos), second;\n if (first >= 0xD800 && first <= 0xDBFF && pos + 1 < string.length) {\n second = string.charCodeAt(pos + 1);\n if (second >= 0xDC00 && second <= 0xDFFF) {\n // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n return first;\n}\n\n// Determines whether block indentation indicator is required.\nfunction needIndentIndicator(string) {\n var leadingSpaceRe = /^\\n* /;\n return leadingSpaceRe.test(string);\n}\n\nvar STYLE_PLAIN = 1,\n STYLE_SINGLE = 2,\n STYLE_LITERAL = 3,\n STYLE_FOLDED = 4,\n STYLE_DOUBLE = 5;\n\n// Determines which scalar styles are possible and returns the preferred style.\n// lineWidth = -1 => no limit.\n// Pre-conditions: str.length > 0.\n// Post-conditions:\n// STYLE_PLAIN or STYLE_SINGLE => no \\n are in the string.\n// STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1).\n// STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1).\nfunction chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth,\n testAmbiguousType, quotingType, forceQuotes, inblock) {\n\n var i;\n var char = 0;\n var prevChar = null;\n var hasLineBreak = false;\n var hasFoldableLine = false; // only checked if shouldTrackWidth\n var shouldTrackWidth = lineWidth !== -1;\n var previousLineBreak = -1; // count the first line correctly\n var plain = isPlainSafeFirst(codePointAt(string, 0))\n && isPlainSafeLast(codePointAt(string, string.length - 1));\n\n if (singleLineOnly || forceQuotes) {\n // Case: no block styles.\n // Check for disallowed characters to rule out plain and single.\n for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n plain = plain && isPlainSafe(char, prevChar, inblock);\n prevChar = char;\n }\n } else {\n // Case: block styles permitted.\n for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n if (char === CHAR_LINE_FEED) {\n hasLineBreak = true;\n // Check if any line can be folded.\n if (shouldTrackWidth) {\n hasFoldableLine = hasFoldableLine ||\n // Foldable line = too long, and not more-indented.\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' ');\n previousLineBreak = i;\n }\n } else if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n plain = plain && isPlainSafe(char, prevChar, inblock);\n prevChar = char;\n }\n // in case the end is missing a \\n\n hasFoldableLine = hasFoldableLine || (shouldTrackWidth &&\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' '));\n }\n // Although every style can represent \\n without escaping, prefer block styles\n // for multiline, since they're more readable and they don't add empty lines.\n // Also prefer folding a super-long line.\n if (!hasLineBreak && !hasFoldableLine) {\n // Strings interpretable as another type have to be quoted;\n // e.g. the string 'true' vs. the boolean true.\n if (plain && !forceQuotes && !testAmbiguousType(string)) {\n return STYLE_PLAIN;\n }\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n }\n // Edge case: block indentation indicator can only have one digit.\n if (indentPerLevel > 9 && needIndentIndicator(string)) {\n return STYLE_DOUBLE;\n }\n // At this point we know block styles are valid.\n // Prefer literal style unless we want to fold.\n if (!forceQuotes) {\n return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL;\n }\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n}\n\n// Note: line breaking/folding is implemented for only the folded style.\n// NB. We drop the last trailing newline (if any) of a returned block scalar\n// since the dumper adds its own newline. This always works:\n// • No ending newline => unaffected; already using strip \"-\" chomping.\n// • Ending newline => removed then restored.\n// Importantly, this keeps the \"+\" chomp indicator from gaining an extra line.\nfunction writeScalar(state, string, level, iskey, inblock) {\n state.dump = (function () {\n if (string.length === 0) {\n return state.quotingType === QUOTING_TYPE_DOUBLE ? '\"\"' : \"''\";\n }\n if (!state.noCompatMode) {\n if (DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1 || DEPRECATED_BASE60_SYNTAX.test(string)) {\n return state.quotingType === QUOTING_TYPE_DOUBLE ? ('\"' + string + '\"') : (\"'\" + string + \"'\");\n }\n }\n\n var indent = state.indent * Math.max(1, level); // no 0-indent scalars\n // As indentation gets deeper, let the width decrease monotonically\n // to the lower bound min(state.lineWidth, 40).\n // Note that this implies\n // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound.\n // state.lineWidth > 40 + state.indent: width decreases until the lower bound.\n // This behaves better than a constant minimum width which disallows narrower options,\n // or an indent threshold which causes the width to suddenly increase.\n var lineWidth = state.lineWidth === -1\n ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent);\n\n // Without knowing if keys are implicit/explicit, assume implicit for safety.\n var singleLineOnly = iskey\n // No block styles in flow mode.\n || (state.flowLevel > -1 && level >= state.flowLevel);\n function testAmbiguity(string) {\n return testImplicitResolving(state, string);\n }\n\n switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth,\n testAmbiguity, state.quotingType, state.forceQuotes && !iskey, inblock)) {\n\n case STYLE_PLAIN:\n return string;\n case STYLE_SINGLE:\n return \"'\" + string.replace(/'/g, \"''\") + \"'\";\n case STYLE_LITERAL:\n return '|' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(string, indent));\n case STYLE_FOLDED:\n return '>' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(foldString(string, lineWidth), indent));\n case STYLE_DOUBLE:\n return '\"' + escapeString(string) + '\"';\n default:\n throw new exception('impossible error: invalid scalar style');\n }\n }());\n}\n\n// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9.\nfunction blockHeader(string, indentPerLevel) {\n var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : '';\n\n // note the special case: the string '\\n' counts as a \"trailing\" empty line.\n var clip = string[string.length - 1] === '\\n';\n var keep = clip && (string[string.length - 2] === '\\n' || string === '\\n');\n var chomp = keep ? '+' : (clip ? '' : '-');\n\n return indentIndicator + chomp + '\\n';\n}\n\n// (See the note for writeScalar.)\nfunction dropEndingNewline(string) {\n return string[string.length - 1] === '\\n' ? string.slice(0, -1) : string;\n}\n\n// Note: a long line without a suitable break point will exceed the width limit.\n// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0.\nfunction foldString(string, width) {\n // In folded style, $k$ consecutive newlines output as $k+1$ newlines—\n // unless they're before or after a more-indented line, or at the very\n // beginning or end, in which case $k$ maps to $k$.\n // Therefore, parse each chunk as newline(s) followed by a content line.\n var lineRe = /(\\n+)([^\\n]*)/g;\n\n // first line (possibly an empty line)\n var result = (function () {\n var nextLF = string.indexOf('\\n');\n nextLF = nextLF !== -1 ? nextLF : string.length;\n lineRe.lastIndex = nextLF;\n return foldLine(string.slice(0, nextLF), width);\n }());\n // If we haven't reached the first content line yet, don't add an extra \\n.\n var prevMoreIndented = string[0] === '\\n' || string[0] === ' ';\n var moreIndented;\n\n // rest of the lines\n var match;\n while ((match = lineRe.exec(string))) {\n var prefix = match[1], line = match[2];\n moreIndented = (line[0] === ' ');\n result += prefix\n + (!prevMoreIndented && !moreIndented && line !== ''\n ? '\\n' : '')\n + foldLine(line, width);\n prevMoreIndented = moreIndented;\n }\n\n return result;\n}\n\n// Greedy line breaking.\n// Picks the longest line under the limit each time,\n// otherwise settles for the shortest line over the limit.\n// NB. More-indented lines *cannot* be folded, as that would add an extra \\n.\nfunction foldLine(line, width) {\n if (line === '' || line[0] === ' ') return line;\n\n // Since a more-indented line adds a \\n, breaks can't be followed by a space.\n var breakRe = / [^ ]/g; // note: the match index will always be <= length-2.\n var match;\n // start is an inclusive index. end, curr, and next are exclusive.\n var start = 0, end, curr = 0, next = 0;\n var result = '';\n\n // Invariants: 0 <= start <= length-1.\n // 0 <= curr <= next <= max(0, length-2). curr - start <= width.\n // Inside the loop:\n // A match implies length >= 2, so curr and next are <= length-2.\n while ((match = breakRe.exec(line))) {\n next = match.index;\n // maintain invariant: curr - start <= width\n if (next - start > width) {\n end = (curr > start) ? curr : next; // derive end <= length-2\n result += '\\n' + line.slice(start, end);\n // skip the space that was output as \\n\n start = end + 1; // derive start <= length-1\n }\n curr = next;\n }\n\n // By the invariants, start <= length-1, so there is something left over.\n // It is either the whole string or a part starting from non-whitespace.\n result += '\\n';\n // Insert a break if the remainder is too long and there is a break available.\n if (line.length - start > width && curr > start) {\n result += line.slice(start, curr) + '\\n' + line.slice(curr + 1);\n } else {\n result += line.slice(start);\n }\n\n return result.slice(1); // drop extra \\n joiner\n}\n\n// Escapes a double-quoted string.\nfunction escapeString(string) {\n var result = '';\n var char = 0;\n var escapeSeq;\n\n for (var i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n escapeSeq = ESCAPE_SEQUENCES[char];\n\n if (!escapeSeq && isPrintable(char)) {\n result += string[i];\n if (char >= 0x10000) result += string[i + 1];\n } else {\n result += escapeSeq || encodeHex(char);\n }\n }\n\n return result;\n}\n\nfunction writeFlowSequence(state, level, object) {\n var _result = '',\n _tag = state.tag,\n index,\n length,\n value;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n value = object[index];\n\n if (state.replacer) {\n value = state.replacer.call(object, String(index), value);\n }\n\n // Write only valid elements, put null instead of invalid elements.\n if (writeNode(state, level, value, false, false) ||\n (typeof value === 'undefined' &&\n writeNode(state, level, null, false, false))) {\n\n if (_result !== '') _result += ',' + (!state.condenseFlow ? ' ' : '');\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = '[' + _result + ']';\n}\n\nfunction writeBlockSequence(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n index,\n length,\n value;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n value = object[index];\n\n if (state.replacer) {\n value = state.replacer.call(object, String(index), value);\n }\n\n // Write only valid elements, put null instead of invalid elements.\n if (writeNode(state, level + 1, value, true, true, false, true) ||\n (typeof value === 'undefined' &&\n writeNode(state, level + 1, null, true, true, false, true))) {\n\n if (!compact || _result !== '') {\n _result += generateNextLine(state, level);\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n _result += '-';\n } else {\n _result += '- ';\n }\n\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = _result || '[]'; // Empty sequence if no valid values.\n}\n\nfunction writeFlowMapping(state, level, object) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n pairBuffer;\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n\n pairBuffer = '';\n if (_result !== '') pairBuffer += ', ';\n\n if (state.condenseFlow) pairBuffer += '\"';\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (state.replacer) {\n objectValue = state.replacer.call(object, objectKey, objectValue);\n }\n\n if (!writeNode(state, level, objectKey, false, false)) {\n continue; // Skip this pair because of invalid key;\n }\n\n if (state.dump.length > 1024) pairBuffer += '? ';\n\n pairBuffer += state.dump + (state.condenseFlow ? '\"' : '') + ':' + (state.condenseFlow ? '' : ' ');\n\n if (!writeNode(state, level, objectValue, false, false)) {\n continue; // Skip this pair because of invalid value.\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = '{' + _result + '}';\n}\n\nfunction writeBlockMapping(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n explicitPair,\n pairBuffer;\n\n // Allow sorting keys so that the output file is deterministic\n if (state.sortKeys === true) {\n // Default sorting\n objectKeyList.sort();\n } else if (typeof state.sortKeys === 'function') {\n // Custom sort function\n objectKeyList.sort(state.sortKeys);\n } else if (state.sortKeys) {\n // Something is wrong\n throw new exception('sortKeys must be a boolean or a function');\n }\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n pairBuffer = '';\n\n if (!compact || _result !== '') {\n pairBuffer += generateNextLine(state, level);\n }\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (state.replacer) {\n objectValue = state.replacer.call(object, objectKey, objectValue);\n }\n\n if (!writeNode(state, level + 1, objectKey, true, true, true)) {\n continue; // Skip this pair because of invalid key.\n }\n\n explicitPair = (state.tag !== null && state.tag !== '?') ||\n (state.dump && state.dump.length > 1024);\n\n if (explicitPair) {\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += '?';\n } else {\n pairBuffer += '? ';\n }\n }\n\n pairBuffer += state.dump;\n\n if (explicitPair) {\n pairBuffer += generateNextLine(state, level);\n }\n\n if (!writeNode(state, level + 1, objectValue, true, explicitPair)) {\n continue; // Skip this pair because of invalid value.\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += ':';\n } else {\n pairBuffer += ': ';\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = _result || '{}'; // Empty mapping if no valid pairs.\n}\n\nfunction detectType(state, object, explicit) {\n var _result, typeList, index, length, type, style;\n\n typeList = explicit ? state.explicitTypes : state.implicitTypes;\n\n for (index = 0, length = typeList.length; index < length; index += 1) {\n type = typeList[index];\n\n if ((type.instanceOf || type.predicate) &&\n (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) &&\n (!type.predicate || type.predicate(object))) {\n\n if (explicit) {\n if (type.multi && type.representName) {\n state.tag = type.representName(object);\n } else {\n state.tag = type.tag;\n }\n } else {\n state.tag = '?';\n }\n\n if (type.represent) {\n style = state.styleMap[type.tag] || type.defaultStyle;\n\n if (_toString.call(type.represent) === '[object Function]') {\n _result = type.represent(object, style);\n } else if (_hasOwnProperty.call(type.represent, style)) {\n _result = type.represent[style](object, style);\n } else {\n throw new exception('!<' + type.tag + '> tag resolver accepts not \"' + style + '\" style');\n }\n\n state.dump = _result;\n }\n\n return true;\n }\n }\n\n return false;\n}\n\n// Serializes `object` and writes it to global `result`.\n// Returns true on success, or false on invalid object.\n//\nfunction writeNode(state, level, object, block, compact, iskey, isblockseq) {\n state.tag = null;\n state.dump = object;\n\n if (!detectType(state, object, false)) {\n detectType(state, object, true);\n }\n\n var type = _toString.call(state.dump);\n var inblock = block;\n var tagStr;\n\n if (block) {\n block = (state.flowLevel < 0 || state.flowLevel > level);\n }\n\n var objectOrArray = type === '[object Object]' || type === '[object Array]',\n duplicateIndex,\n duplicate;\n\n if (objectOrArray) {\n duplicateIndex = state.duplicates.indexOf(object);\n duplicate = duplicateIndex !== -1;\n }\n\n if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) {\n compact = false;\n }\n\n if (duplicate && state.usedDuplicates[duplicateIndex]) {\n state.dump = '*ref_' + duplicateIndex;\n } else {\n if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) {\n state.usedDuplicates[duplicateIndex] = true;\n }\n if (type === '[object Object]') {\n if (block && (Object.keys(state.dump).length !== 0)) {\n writeBlockMapping(state, level, state.dump, compact);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowMapping(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object Array]') {\n if (block && (state.dump.length !== 0)) {\n if (state.noArrayIndent && !isblockseq && level > 0) {\n writeBlockSequence(state, level - 1, state.dump, compact);\n } else {\n writeBlockSequence(state, level, state.dump, compact);\n }\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowSequence(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object String]') {\n if (state.tag !== '?') {\n writeScalar(state, state.dump, level, iskey, inblock);\n }\n } else if (type === '[object Undefined]') {\n return false;\n } else {\n if (state.skipInvalid) return false;\n throw new exception('unacceptable kind of an object to dump ' + type);\n }\n\n if (state.tag !== null && state.tag !== '?') {\n // Need to encode all characters except those allowed by the spec:\n //\n // [35] ns-dec-digit ::= [#x30-#x39] /* 0-9 */\n // [36] ns-hex-digit ::= ns-dec-digit\n // | [#x41-#x46] /* A-F */ | [#x61-#x66] /* a-f */\n // [37] ns-ascii-letter ::= [#x41-#x5A] /* A-Z */ | [#x61-#x7A] /* a-z */\n // [38] ns-word-char ::= ns-dec-digit | ns-ascii-letter | “-”\n // [39] ns-uri-char ::= “%” ns-hex-digit ns-hex-digit | ns-word-char | “#”\n // | “;” | “/” | “?” | “:” | “@” | “&” | “=” | “+” | “$” | “,”\n // | “_” | “.” | “!” | “~” | “*” | “'” | “(” | “)” | “[” | “]”\n //\n // Also need to encode '!' because it has special meaning (end of tag prefix).\n //\n tagStr = encodeURI(\n state.tag[0] === '!' ? state.tag.slice(1) : state.tag\n ).replace(/!/g, '%21');\n\n if (state.tag[0] === '!') {\n tagStr = '!' + tagStr;\n } else if (tagStr.slice(0, 18) === 'tag:yaml.org,2002:') {\n tagStr = '!!' + tagStr.slice(18);\n } else {\n tagStr = '!<' + tagStr + '>';\n }\n\n state.dump = tagStr + ' ' + state.dump;\n }\n }\n\n return true;\n}\n\nfunction getDuplicateReferences(object, state) {\n var objects = [],\n duplicatesIndexes = [],\n index,\n length;\n\n inspectNode(object, objects, duplicatesIndexes);\n\n for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) {\n state.duplicates.push(objects[duplicatesIndexes[index]]);\n }\n state.usedDuplicates = new Array(length);\n}\n\nfunction inspectNode(object, objects, duplicatesIndexes) {\n var objectKeyList,\n index,\n length;\n\n if (object !== null && typeof object === 'object') {\n index = objects.indexOf(object);\n if (index !== -1) {\n if (duplicatesIndexes.indexOf(index) === -1) {\n duplicatesIndexes.push(index);\n }\n } else {\n objects.push(object);\n\n if (Array.isArray(object)) {\n for (index = 0, length = object.length; index < length; index += 1) {\n inspectNode(object[index], objects, duplicatesIndexes);\n }\n } else {\n objectKeyList = Object.keys(object);\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes);\n }\n }\n }\n }\n}\n\nfunction dump$1(input, options) {\n options = options || {};\n\n var state = new State(options);\n\n if (!state.noRefs) getDuplicateReferences(input, state);\n\n var value = input;\n\n if (state.replacer) {\n value = state.replacer.call({ '': value }, '', value);\n }\n\n if (writeNode(state, 0, value, true, true)) return state.dump + '\\n';\n\n return '';\n}\n\nvar dump_1 = dump$1;\n\nvar dumper = {\n\tdump: dump_1\n};\n\nfunction renamed(from, to) {\n return function () {\n throw new Error('Function yaml.' + from + ' is removed in js-yaml 4. ' +\n 'Use yaml.' + to + ' instead, which is now safe by default.');\n };\n}\n\n\nvar Type = type;\nvar Schema = schema;\nvar FAILSAFE_SCHEMA = failsafe;\nvar JSON_SCHEMA = json;\nvar CORE_SCHEMA = core;\nvar DEFAULT_SCHEMA = _default;\nvar load = loader.load;\nvar loadAll = loader.loadAll;\nvar dump = dumper.dump;\nvar YAMLException = exception;\n\n// Re-export all types in case user wants to create custom schema\nvar types = {\n binary: binary,\n float: float,\n map: map,\n null: _null,\n pairs: pairs,\n set: set,\n timestamp: timestamp,\n bool: bool,\n int: int,\n merge: merge,\n omap: omap,\n seq: seq,\n str: str\n};\n\n// Removed functions from JS-YAML 3.0.x\nvar safeLoad = renamed('safeLoad', 'load');\nvar safeLoadAll = renamed('safeLoadAll', 'loadAll');\nvar safeDump = renamed('safeDump', 'dump');\n\nvar jsYaml = {\n\tType: Type,\n\tSchema: Schema,\n\tFAILSAFE_SCHEMA: FAILSAFE_SCHEMA,\n\tJSON_SCHEMA: JSON_SCHEMA,\n\tCORE_SCHEMA: CORE_SCHEMA,\n\tDEFAULT_SCHEMA: DEFAULT_SCHEMA,\n\tload: load,\n\tloadAll: loadAll,\n\tdump: dump,\n\tYAMLException: YAMLException,\n\ttypes: types,\n\tsafeLoad: safeLoad,\n\tsafeLoadAll: safeLoadAll,\n\tsafeDump: safeDump\n};\n\nexport default jsYaml;\nexport { CORE_SCHEMA, DEFAULT_SCHEMA, FAILSAFE_SCHEMA, JSON_SCHEMA, Schema, Type, YAMLException, dump, load, loadAll, safeDump, safeLoad, safeLoadAll, types };\n","import axios from 'axios';\nimport yaml from 'js-yaml';\n// NOTE: if bundle script is put some dir instead of js/build, this function will broken.\nexport function getBuildDirPath() {\n const scripts = document.getElementsByTagName('script');\n const scriptsCount = scripts.length;\n for (let i = 0; i < scriptsCount; i += 1) {\n const s = scripts[i];\n if (s.src && s.src.match(/js\\/build/)) {\n const lastSlashIndex = s.src.lastIndexOf('/');\n return s.src.slice(0, lastSlashIndex);\n }\n }\n return '';\n}\n\nfunction loadJSONFile() {\n return axios\n .get(`${getBuildDirPath()}/globalConfig.json`)\n .then((res) => (typeof res.data === 'object' ? res.data : JSON.parse(res.data)));\n}\n\nfunction loadYAMLFile() {\n return axios\n .get(`${getBuildDirPath()}/globalConfig.yaml`)\n .then((res) => (typeof res.data === 'object' ? res.data : yaml.load(res.data)));\n}\n\nexport function loadGlobalConfig() {\n return loadJSONFile().catch(() => loadYAMLFile());\n}\n","var util;\n(function (util) {\n util.assertEqual = (val) => val;\n function assertIs(_arg) { }\n util.assertIs = assertIs;\n function assertNever(_x) {\n throw new Error();\n }\n util.assertNever = assertNever;\n util.arrayToEnum = (items) => {\n const obj = {};\n for (const item of items) {\n obj[item] = item;\n }\n return obj;\n };\n util.getValidEnumValues = (obj) => {\n const validKeys = util.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== \"number\");\n const filtered = {};\n for (const k of validKeys) {\n filtered[k] = obj[k];\n }\n return util.objectValues(filtered);\n };\n util.objectValues = (obj) => {\n return util.objectKeys(obj).map(function (e) {\n return obj[e];\n });\n };\n util.objectKeys = typeof Object.keys === \"function\" // eslint-disable-line ban/ban\n ? (obj) => Object.keys(obj) // eslint-disable-line ban/ban\n : (object) => {\n const keys = [];\n for (const key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n keys.push(key);\n }\n }\n return keys;\n };\n util.find = (arr, checker) => {\n for (const item of arr) {\n if (checker(item))\n return item;\n }\n return undefined;\n };\n util.isInteger = typeof Number.isInteger === \"function\"\n ? (val) => Number.isInteger(val) // eslint-disable-line ban/ban\n : (val) => typeof val === \"number\" && isFinite(val) && Math.floor(val) === val;\n function joinValues(array, separator = \" | \") {\n return array\n .map((val) => (typeof val === \"string\" ? `'${val}'` : val))\n .join(separator);\n }\n util.joinValues = joinValues;\n util.jsonStringifyReplacer = (_, value) => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n };\n})(util || (util = {}));\nvar objectUtil;\n(function (objectUtil) {\n objectUtil.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second, // second overwrites first\n };\n };\n})(objectUtil || (objectUtil = {}));\nconst ZodParsedType = util.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\",\n]);\nconst getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return ZodParsedType.undefined;\n case \"string\":\n return ZodParsedType.string;\n case \"number\":\n return isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;\n case \"boolean\":\n return ZodParsedType.boolean;\n case \"function\":\n return ZodParsedType.function;\n case \"bigint\":\n return ZodParsedType.bigint;\n case \"symbol\":\n return ZodParsedType.symbol;\n case \"object\":\n if (Array.isArray(data)) {\n return ZodParsedType.array;\n }\n if (data === null) {\n return ZodParsedType.null;\n }\n if (data.then &&\n typeof data.then === \"function\" &&\n data.catch &&\n typeof data.catch === \"function\") {\n return ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return ZodParsedType.date;\n }\n return ZodParsedType.object;\n default:\n return ZodParsedType.unknown;\n }\n};\n\nconst ZodIssueCode = util.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n \"not_finite\",\n]);\nconst quotelessJson = (obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\nclass ZodError extends Error {\n constructor(issues) {\n super();\n this.issues = [];\n this.addIssue = (sub) => {\n this.issues = [...this.issues, sub];\n };\n this.addIssues = (subs = []) => {\n this.issues = [...this.issues, ...subs];\n };\n const actualProto = new.target.prototype;\n if (Object.setPrototypeOf) {\n // eslint-disable-next-line ban/ban\n Object.setPrototypeOf(this, actualProto);\n }\n else {\n this.__proto__ = actualProto;\n }\n this.name = \"ZodError\";\n this.issues = issues;\n }\n get errors() {\n return this.issues;\n }\n format(_mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\") {\n issue.unionErrors.map(processError);\n }\n else if (issue.code === \"invalid_return_type\") {\n processError(issue.returnTypeError);\n }\n else if (issue.code === \"invalid_arguments\") {\n processError(issue.argumentsError);\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n // if (typeof el === \"string\") {\n // curr[el] = curr[el] || { _errors: [] };\n // } else if (typeof el === \"number\") {\n // const errorArray: any = [];\n // errorArray._errors = [];\n // curr[el] = curr[el] || errorArray;\n // }\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(this);\n return fieldErrors;\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of this.issues) {\n if (sub.path.length > 0) {\n fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];\n fieldErrors[sub.path[0]].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n }\n get formErrors() {\n return this.flatten();\n }\n}\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\n\nconst errorMap = (issue, _ctx) => {\n let message;\n switch (issue.code) {\n case ZodIssueCode.invalid_type:\n if (issue.received === ZodParsedType.undefined) {\n message = \"Required\";\n }\n else {\n message = `Expected ${issue.expected}, received ${issue.received}`;\n }\n break;\n case ZodIssueCode.invalid_literal:\n message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;\n break;\n case ZodIssueCode.unrecognized_keys:\n message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, \", \")}`;\n break;\n case ZodIssueCode.invalid_union:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_union_discriminator:\n message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;\n break;\n case ZodIssueCode.invalid_enum_value:\n message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;\n break;\n case ZodIssueCode.invalid_arguments:\n message = `Invalid function arguments`;\n break;\n case ZodIssueCode.invalid_return_type:\n message = `Invalid function return type`;\n break;\n case ZodIssueCode.invalid_date:\n message = `Invalid date`;\n break;\n case ZodIssueCode.invalid_string:\n if (typeof issue.validation === \"object\") {\n if (\"includes\" in issue.validation) {\n message = `Invalid input: must include \"${issue.validation.includes}\"`;\n if (typeof issue.validation.position === \"number\") {\n message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`;\n }\n }\n else if (\"startsWith\" in issue.validation) {\n message = `Invalid input: must start with \"${issue.validation.startsWith}\"`;\n }\n else if (\"endsWith\" in issue.validation) {\n message = `Invalid input: must end with \"${issue.validation.endsWith}\"`;\n }\n else {\n util.assertNever(issue.validation);\n }\n }\n else if (issue.validation !== \"regex\") {\n message = `Invalid ${issue.validation}`;\n }\n else {\n message = \"Invalid\";\n }\n break;\n case ZodIssueCode.too_small:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact\n ? `exactly equal to `\n : issue.inclusive\n ? `greater than or equal to `\n : `greater than `}${issue.minimum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact\n ? `exactly equal to `\n : issue.inclusive\n ? `greater than or equal to `\n : `greater than `}${new Date(Number(issue.minimum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.too_big:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact\n ? `exactly`\n : issue.inclusive\n ? `less than or equal to`\n : `less than`} ${issue.maximum}`;\n else if (issue.type === \"bigint\")\n message = `BigInt must be ${issue.exact\n ? `exactly`\n : issue.inclusive\n ? `less than or equal to`\n : `less than`} ${issue.maximum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact\n ? `exactly`\n : issue.inclusive\n ? `smaller than or equal to`\n : `smaller than`} ${new Date(Number(issue.maximum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.custom:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_intersection_types:\n message = `Intersection results could not be merged`;\n break;\n case ZodIssueCode.not_multiple_of:\n message = `Number must be a multiple of ${issue.multipleOf}`;\n break;\n case ZodIssueCode.not_finite:\n message = \"Number must be finite\";\n break;\n default:\n message = _ctx.defaultError;\n util.assertNever(issue);\n }\n return { message };\n};\n\nlet overrideErrorMap = errorMap;\nfunction setErrorMap(map) {\n overrideErrorMap = map;\n}\nfunction getErrorMap() {\n return overrideErrorMap;\n}\n\nconst makeIssue = (params) => {\n const { data, path, errorMaps, issueData } = params;\n const fullPath = [...path, ...(issueData.path || [])];\n const fullIssue = {\n ...issueData,\n path: fullPath,\n };\n let errorMessage = \"\";\n const maps = errorMaps\n .filter((m) => !!m)\n .slice()\n .reverse();\n for (const map of maps) {\n errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;\n }\n return {\n ...issueData,\n path: fullPath,\n message: issueData.message || errorMessage,\n };\n};\nconst EMPTY_PATH = [];\nfunction addIssueToContext(ctx, issueData) {\n const issue = makeIssue({\n issueData: issueData,\n data: ctx.data,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap, // then global default map\n ].filter((x) => !!x),\n });\n ctx.common.issues.push(issue);\n}\nclass ParseStatus {\n constructor() {\n this.value = \"valid\";\n }\n dirty() {\n if (this.value === \"valid\")\n this.value = \"dirty\";\n }\n abort() {\n if (this.value !== \"aborted\")\n this.value = \"aborted\";\n }\n static mergeArray(status, results) {\n const arrayValue = [];\n for (const s of results) {\n if (s.status === \"aborted\")\n return INVALID;\n if (s.status === \"dirty\")\n status.dirty();\n arrayValue.push(s.value);\n }\n return { status: status.value, value: arrayValue };\n }\n static async mergeObjectAsync(status, pairs) {\n const syncPairs = [];\n for (const pair of pairs) {\n syncPairs.push({\n key: await pair.key,\n value: await pair.value,\n });\n }\n return ParseStatus.mergeObjectSync(status, syncPairs);\n }\n static mergeObjectSync(status, pairs) {\n const finalObject = {};\n for (const pair of pairs) {\n const { key, value } = pair;\n if (key.status === \"aborted\")\n return INVALID;\n if (value.status === \"aborted\")\n return INVALID;\n if (key.status === \"dirty\")\n status.dirty();\n if (value.status === \"dirty\")\n status.dirty();\n if (key.value !== \"__proto__\" &&\n (typeof value.value !== \"undefined\" || pair.alwaysSet)) {\n finalObject[key.value] = value.value;\n }\n }\n return { status: status.value, value: finalObject };\n }\n}\nconst INVALID = Object.freeze({\n status: \"aborted\",\n});\nconst DIRTY = (value) => ({ status: \"dirty\", value });\nconst OK = (value) => ({ status: \"valid\", value });\nconst isAborted = (x) => x.status === \"aborted\";\nconst isDirty = (x) => x.status === \"dirty\";\nconst isValid = (x) => x.status === \"valid\";\nconst isAsync = (x) => typeof Promise !== \"undefined\" && x instanceof Promise;\n\nvar errorUtil;\n(function (errorUtil) {\n errorUtil.errToObj = (message) => typeof message === \"string\" ? { message } : message || {};\n errorUtil.toString = (message) => typeof message === \"string\" ? message : message === null || message === void 0 ? void 0 : message.message;\n})(errorUtil || (errorUtil = {}));\n\nclass ParseInputLazyPath {\n constructor(parent, value, path, key) {\n this._cachedPath = [];\n this.parent = parent;\n this.data = value;\n this._path = path;\n this._key = key;\n }\n get path() {\n if (!this._cachedPath.length) {\n if (this._key instanceof Array) {\n this._cachedPath.push(...this._path, ...this._key);\n }\n else {\n this._cachedPath.push(...this._path, this._key);\n }\n }\n return this._cachedPath;\n }\n}\nconst handleResult = (ctx, result) => {\n if (isValid(result)) {\n return { success: true, data: result.value };\n }\n else {\n if (!ctx.common.issues.length) {\n throw new Error(\"Validation failed but no issues detected.\");\n }\n return {\n success: false,\n get error() {\n if (this._error)\n return this._error;\n const error = new ZodError(ctx.common.issues);\n this._error = error;\n return this._error;\n },\n };\n }\n};\nfunction processCreateParams(params) {\n if (!params)\n return {};\n const { errorMap, invalid_type_error, required_error, description } = params;\n if (errorMap && (invalid_type_error || required_error)) {\n throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n }\n if (errorMap)\n return { errorMap: errorMap, description };\n const customMap = (iss, ctx) => {\n if (iss.code !== \"invalid_type\")\n return { message: ctx.defaultError };\n if (typeof ctx.data === \"undefined\") {\n return { message: required_error !== null && required_error !== void 0 ? required_error : ctx.defaultError };\n }\n return { message: invalid_type_error !== null && invalid_type_error !== void 0 ? invalid_type_error : ctx.defaultError };\n };\n return { errorMap: customMap, description };\n}\nclass ZodType {\n constructor(def) {\n /** Alias of safeParseAsync */\n this.spa = this.safeParseAsync;\n this._def = def;\n this.parse = this.parse.bind(this);\n this.safeParse = this.safeParse.bind(this);\n this.parseAsync = this.parseAsync.bind(this);\n this.safeParseAsync = this.safeParseAsync.bind(this);\n this.spa = this.spa.bind(this);\n this.refine = this.refine.bind(this);\n this.refinement = this.refinement.bind(this);\n this.superRefine = this.superRefine.bind(this);\n this.optional = this.optional.bind(this);\n this.nullable = this.nullable.bind(this);\n this.nullish = this.nullish.bind(this);\n this.array = this.array.bind(this);\n this.promise = this.promise.bind(this);\n this.or = this.or.bind(this);\n this.and = this.and.bind(this);\n this.transform = this.transform.bind(this);\n this.brand = this.brand.bind(this);\n this.default = this.default.bind(this);\n this.catch = this.catch.bind(this);\n this.describe = this.describe.bind(this);\n this.pipe = this.pipe.bind(this);\n this.readonly = this.readonly.bind(this);\n this.isNullable = this.isNullable.bind(this);\n this.isOptional = this.isOptional.bind(this);\n }\n get description() {\n return this._def.description;\n }\n _getType(input) {\n return getParsedType(input.data);\n }\n _getOrReturnCtx(input, ctx) {\n return (ctx || {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n });\n }\n _processInputParams(input) {\n return {\n status: new ParseStatus(),\n ctx: {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n },\n };\n }\n _parseSync(input) {\n const result = this._parse(input);\n if (isAsync(result)) {\n throw new Error(\"Synchronous parse encountered promise.\");\n }\n return result;\n }\n _parseAsync(input) {\n const result = this._parse(input);\n return Promise.resolve(result);\n }\n parse(data, params) {\n const result = this.safeParse(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n safeParse(data, params) {\n var _a;\n const ctx = {\n common: {\n issues: [],\n async: (_a = params === null || params === void 0 ? void 0 : params.async) !== null && _a !== void 0 ? _a : false,\n contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap,\n },\n path: (params === null || params === void 0 ? void 0 : params.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const result = this._parseSync({ data, path: ctx.path, parent: ctx });\n return handleResult(ctx, result);\n }\n async parseAsync(data, params) {\n const result = await this.safeParseAsync(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n async safeParseAsync(data, params) {\n const ctx = {\n common: {\n issues: [],\n contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap,\n async: true,\n },\n path: (params === null || params === void 0 ? void 0 : params.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });\n const result = await (isAsync(maybeAsyncResult)\n ? maybeAsyncResult\n : Promise.resolve(maybeAsyncResult));\n return handleResult(ctx, result);\n }\n refine(check, message) {\n const getIssueProperties = (val) => {\n if (typeof message === \"string\" || typeof message === \"undefined\") {\n return { message };\n }\n else if (typeof message === \"function\") {\n return message(val);\n }\n else {\n return message;\n }\n };\n return this._refinement((val, ctx) => {\n const result = check(val);\n const setError = () => ctx.addIssue({\n code: ZodIssueCode.custom,\n ...getIssueProperties(val),\n });\n if (typeof Promise !== \"undefined\" && result instanceof Promise) {\n return result.then((data) => {\n if (!data) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n if (!result) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n refinement(check, refinementData) {\n return this._refinement((val, ctx) => {\n if (!check(val)) {\n ctx.addIssue(typeof refinementData === \"function\"\n ? refinementData(val, ctx)\n : refinementData);\n return false;\n }\n else {\n return true;\n }\n });\n }\n _refinement(refinement) {\n return new ZodEffects({\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"refinement\", refinement },\n });\n }\n superRefine(refinement) {\n return this._refinement(refinement);\n }\n optional() {\n return ZodOptional.create(this, this._def);\n }\n nullable() {\n return ZodNullable.create(this, this._def);\n }\n nullish() {\n return this.nullable().optional();\n }\n array() {\n return ZodArray.create(this, this._def);\n }\n promise() {\n return ZodPromise.create(this, this._def);\n }\n or(option) {\n return ZodUnion.create([this, option], this._def);\n }\n and(incoming) {\n return ZodIntersection.create(this, incoming, this._def);\n }\n transform(transform) {\n return new ZodEffects({\n ...processCreateParams(this._def),\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"transform\", transform },\n });\n }\n default(def) {\n const defaultValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodDefault({\n ...processCreateParams(this._def),\n innerType: this,\n defaultValue: defaultValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n });\n }\n brand() {\n return new ZodBranded({\n typeName: ZodFirstPartyTypeKind.ZodBranded,\n type: this,\n ...processCreateParams(this._def),\n });\n }\n catch(def) {\n const catchValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodCatch({\n ...processCreateParams(this._def),\n innerType: this,\n catchValue: catchValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n });\n }\n describe(description) {\n const This = this.constructor;\n return new This({\n ...this._def,\n description,\n });\n }\n pipe(target) {\n return ZodPipeline.create(this, target);\n }\n readonly() {\n return ZodReadonly.create(this);\n }\n isOptional() {\n return this.safeParse(undefined).success;\n }\n isNullable() {\n return this.safeParse(null).success;\n }\n}\nconst cuidRegex = /^c[^\\s-]{8,}$/i;\nconst cuid2Regex = /^[a-z][a-z0-9]*$/;\nconst ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/;\n// const uuidRegex =\n// /^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i;\nconst uuidRegex = /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/i;\n// from https://stackoverflow.com/a/46181/1550155\n// old version: too slow, didn't support unicode\n// const emailRegex = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i;\n//old email regex\n// const emailRegex = /^(([^<>()[\\].,;:\\s@\"]+(\\.[^<>()[\\].,;:\\s@\"]+)*)|(\".+\"))@((?!-)([^<>()[\\].,;:\\s@\"]+\\.)+[^<>()[\\].,;:\\s@\"]{1,})[^-<>()[\\].,;:\\s@\"]$/i;\n// eslint-disable-next-line\n// const emailRegex =\n// /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\])|(\\[IPv6:(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))\\])|([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])*(\\.[A-Za-z]{2,})+))$/;\n// const emailRegex =\n// /^[a-zA-Z0-9\\.\\!\\#\\$\\%\\&\\'\\*\\+\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~\\-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// const emailRegex =\n// /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])$/i;\nconst emailRegex = /^(?!\\.)(?!.*\\.\\.)([A-Z0-9_+-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$/i;\n// const emailRegex =\n// /^[a-z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-z0-9-]+(?:\\.[a-z0-9\\-]+)*$/i;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst _emojiRegex = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nlet emojiRegex;\nconst ipv4Regex = /^(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))$/;\nconst ipv6Regex = /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/;\n// Adapted from https://stackoverflow.com/a/3143231\nconst datetimeRegex = (args) => {\n if (args.precision) {\n if (args.offset) {\n return new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}\\\\.\\\\d{${args.precision}}(([+-]\\\\d{2}(:?\\\\d{2})?)|Z)$`);\n }\n else {\n return new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}\\\\.\\\\d{${args.precision}}Z$`);\n }\n }\n else if (args.precision === 0) {\n if (args.offset) {\n return new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(([+-]\\\\d{2}(:?\\\\d{2})?)|Z)$`);\n }\n else {\n return new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}Z$`);\n }\n }\n else {\n if (args.offset) {\n return new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(\\\\.\\\\d+)?(([+-]\\\\d{2}(:?\\\\d{2})?)|Z)$`);\n }\n else {\n return new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(\\\\.\\\\d+)?Z$`);\n }\n }\n};\nfunction isValidIP(ip, version) {\n if ((version === \"v4\" || !version) && ipv4Regex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6Regex.test(ip)) {\n return true;\n }\n return false;\n}\nclass ZodString extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = String(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.string) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.string,\n received: ctx.parsedType,\n }\n //\n );\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.length < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.length > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"length\") {\n const tooBig = input.data.length > check.value;\n const tooSmall = input.data.length < check.value;\n if (tooBig || tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n if (tooBig) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n else if (tooSmall) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n status.dirty();\n }\n }\n else if (check.kind === \"email\") {\n if (!emailRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"email\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"emoji\") {\n if (!emojiRegex) {\n emojiRegex = new RegExp(_emojiRegex, \"u\");\n }\n if (!emojiRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"emoji\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"uuid\") {\n if (!uuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"uuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid\") {\n if (!cuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid2\") {\n if (!cuid2Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid2\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ulid\") {\n if (!ulidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ulid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"url\") {\n try {\n new URL(input.data);\n }\n catch (_a) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"regex\") {\n check.regex.lastIndex = 0;\n const testResult = check.regex.test(input.data);\n if (!testResult) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"regex\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"trim\") {\n input.data = input.data.trim();\n }\n else if (check.kind === \"includes\") {\n if (!input.data.includes(check.value, check.position)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { includes: check.value, position: check.position },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"toLowerCase\") {\n input.data = input.data.toLowerCase();\n }\n else if (check.kind === \"toUpperCase\") {\n input.data = input.data.toUpperCase();\n }\n else if (check.kind === \"startsWith\") {\n if (!input.data.startsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { startsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"endsWith\") {\n if (!input.data.endsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { endsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"datetime\") {\n const regex = datetimeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"datetime\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ip\") {\n if (!isValidIP(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ip\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _regex(regex, validation, message) {\n return this.refinement((data) => regex.test(data), {\n validation,\n code: ZodIssueCode.invalid_string,\n ...errorUtil.errToObj(message),\n });\n }\n _addCheck(check) {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n email(message) {\n return this._addCheck({ kind: \"email\", ...errorUtil.errToObj(message) });\n }\n url(message) {\n return this._addCheck({ kind: \"url\", ...errorUtil.errToObj(message) });\n }\n emoji(message) {\n return this._addCheck({ kind: \"emoji\", ...errorUtil.errToObj(message) });\n }\n uuid(message) {\n return this._addCheck({ kind: \"uuid\", ...errorUtil.errToObj(message) });\n }\n cuid(message) {\n return this._addCheck({ kind: \"cuid\", ...errorUtil.errToObj(message) });\n }\n cuid2(message) {\n return this._addCheck({ kind: \"cuid2\", ...errorUtil.errToObj(message) });\n }\n ulid(message) {\n return this._addCheck({ kind: \"ulid\", ...errorUtil.errToObj(message) });\n }\n ip(options) {\n return this._addCheck({ kind: \"ip\", ...errorUtil.errToObj(options) });\n }\n datetime(options) {\n var _a;\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"datetime\",\n precision: null,\n offset: false,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"datetime\",\n precision: typeof (options === null || options === void 0 ? void 0 : options.precision) === \"undefined\" ? null : options === null || options === void 0 ? void 0 : options.precision,\n offset: (_a = options === null || options === void 0 ? void 0 : options.offset) !== null && _a !== void 0 ? _a : false,\n ...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message),\n });\n }\n regex(regex, message) {\n return this._addCheck({\n kind: \"regex\",\n regex: regex,\n ...errorUtil.errToObj(message),\n });\n }\n includes(value, options) {\n return this._addCheck({\n kind: \"includes\",\n value: value,\n position: options === null || options === void 0 ? void 0 : options.position,\n ...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message),\n });\n }\n startsWith(value, message) {\n return this._addCheck({\n kind: \"startsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n endsWith(value, message) {\n return this._addCheck({\n kind: \"endsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n min(minLength, message) {\n return this._addCheck({\n kind: \"min\",\n value: minLength,\n ...errorUtil.errToObj(message),\n });\n }\n max(maxLength, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxLength,\n ...errorUtil.errToObj(message),\n });\n }\n length(len, message) {\n return this._addCheck({\n kind: \"length\",\n value: len,\n ...errorUtil.errToObj(message),\n });\n }\n /**\n * @deprecated Use z.string().min(1) instead.\n * @see {@link ZodString.min}\n */\n nonempty(message) {\n return this.min(1, errorUtil.errToObj(message));\n }\n trim() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"trim\" }],\n });\n }\n toLowerCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toLowerCase\" }],\n });\n }\n toUpperCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toUpperCase\" }],\n });\n }\n get isDatetime() {\n return !!this._def.checks.find((ch) => ch.kind === \"datetime\");\n }\n get isEmail() {\n return !!this._def.checks.find((ch) => ch.kind === \"email\");\n }\n get isURL() {\n return !!this._def.checks.find((ch) => ch.kind === \"url\");\n }\n get isEmoji() {\n return !!this._def.checks.find((ch) => ch.kind === \"emoji\");\n }\n get isUUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"uuid\");\n }\n get isCUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid\");\n }\n get isCUID2() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid2\");\n }\n get isULID() {\n return !!this._def.checks.find((ch) => ch.kind === \"ulid\");\n }\n get isIP() {\n return !!this._def.checks.find((ch) => ch.kind === \"ip\");\n }\n get minLength() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxLength() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodString.create = (params) => {\n var _a;\n return new ZodString({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodString,\n coerce: (_a = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a !== void 0 ? _a : false,\n ...processCreateParams(params),\n });\n};\n// https://stackoverflow.com/questions/3966484/why-does-modulus-operator-return-fractional-number-in-javascript/31711034#31711034\nfunction floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / Math.pow(10, decCount);\n}\nclass ZodNumber extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n this.step = this.multipleOf;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = Number(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.number) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.number,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"int\") {\n if (!util.isInteger(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: \"integer\",\n received: \"float\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"min\") {\n const tooSmall = check.inclusive\n ? input.data < check.value\n : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive\n ? input.data > check.value\n : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (floatSafeRemainder(input.data, check.value) !== 0) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"finite\") {\n if (!Number.isFinite(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_finite,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodNumber({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodNumber({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n int(message) {\n return this._addCheck({\n kind: \"int\",\n message: errorUtil.toString(message),\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: value,\n message: errorUtil.toString(message),\n });\n }\n finite(message) {\n return this._addCheck({\n kind: \"finite\",\n message: errorUtil.toString(message),\n });\n }\n safe(message) {\n return this._addCheck({\n kind: \"min\",\n inclusive: true,\n value: Number.MIN_SAFE_INTEGER,\n message: errorUtil.toString(message),\n })._addCheck({\n kind: \"max\",\n inclusive: true,\n value: Number.MAX_SAFE_INTEGER,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n get isInt() {\n return !!this._def.checks.find((ch) => ch.kind === \"int\" ||\n (ch.kind === \"multipleOf\" && util.isInteger(ch.value)));\n }\n get isFinite() {\n let max = null, min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"finite\" ||\n ch.kind === \"int\" ||\n ch.kind === \"multipleOf\") {\n return true;\n }\n else if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n else if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return Number.isFinite(min) && Number.isFinite(max);\n }\n}\nZodNumber.create = (params) => {\n return new ZodNumber({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodNumber,\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n ...processCreateParams(params),\n });\n};\nclass ZodBigInt extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = BigInt(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.bigint) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.bigint,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n const tooSmall = check.inclusive\n ? input.data < check.value\n : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n type: \"bigint\",\n minimum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive\n ? input.data > check.value\n : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n type: \"bigint\",\n maximum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (input.data % check.value !== BigInt(0)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodBigInt({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodBigInt({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodBigInt.create = (params) => {\n var _a;\n return new ZodBigInt({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodBigInt,\n coerce: (_a = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a !== void 0 ? _a : false,\n ...processCreateParams(params),\n });\n};\nclass ZodBoolean extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = Boolean(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.boolean) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.boolean,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodBoolean.create = (params) => {\n return new ZodBoolean({\n typeName: ZodFirstPartyTypeKind.ZodBoolean,\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n ...processCreateParams(params),\n });\n};\nclass ZodDate extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = new Date(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.date) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.date,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (isNaN(input.data.getTime())) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_date,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.getTime() < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n message: check.message,\n inclusive: true,\n exact: false,\n minimum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.getTime() > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n message: check.message,\n inclusive: true,\n exact: false,\n maximum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return {\n status: status.value,\n value: new Date(input.data.getTime()),\n };\n }\n _addCheck(check) {\n return new ZodDate({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n min(minDate, message) {\n return this._addCheck({\n kind: \"min\",\n value: minDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n max(maxDate, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n get minDate() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min != null ? new Date(min) : null;\n }\n get maxDate() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max != null ? new Date(max) : null;\n }\n}\nZodDate.create = (params) => {\n return new ZodDate({\n checks: [],\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n typeName: ZodFirstPartyTypeKind.ZodDate,\n ...processCreateParams(params),\n });\n};\nclass ZodSymbol extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.symbol) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.symbol,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodSymbol.create = (params) => {\n return new ZodSymbol({\n typeName: ZodFirstPartyTypeKind.ZodSymbol,\n ...processCreateParams(params),\n });\n};\nclass ZodUndefined extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.undefined,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodUndefined.create = (params) => {\n return new ZodUndefined({\n typeName: ZodFirstPartyTypeKind.ZodUndefined,\n ...processCreateParams(params),\n });\n};\nclass ZodNull extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.null) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.null,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodNull.create = (params) => {\n return new ZodNull({\n typeName: ZodFirstPartyTypeKind.ZodNull,\n ...processCreateParams(params),\n });\n};\nclass ZodAny extends ZodType {\n constructor() {\n super(...arguments);\n // to prevent instances of other classes from extending ZodAny. this causes issues with catchall in ZodObject.\n this._any = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodAny.create = (params) => {\n return new ZodAny({\n typeName: ZodFirstPartyTypeKind.ZodAny,\n ...processCreateParams(params),\n });\n};\nclass ZodUnknown extends ZodType {\n constructor() {\n super(...arguments);\n // required\n this._unknown = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodUnknown.create = (params) => {\n return new ZodUnknown({\n typeName: ZodFirstPartyTypeKind.ZodUnknown,\n ...processCreateParams(params),\n });\n};\nclass ZodNever extends ZodType {\n _parse(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.never,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n}\nZodNever.create = (params) => {\n return new ZodNever({\n typeName: ZodFirstPartyTypeKind.ZodNever,\n ...processCreateParams(params),\n });\n};\nclass ZodVoid extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.void,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodVoid.create = (params) => {\n return new ZodVoid({\n typeName: ZodFirstPartyTypeKind.ZodVoid,\n ...processCreateParams(params),\n });\n};\nclass ZodArray extends ZodType {\n _parse(input) {\n const { ctx, status } = this._processInputParams(input);\n const def = this._def;\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (def.exactLength !== null) {\n const tooBig = ctx.data.length > def.exactLength.value;\n const tooSmall = ctx.data.length < def.exactLength.value;\n if (tooBig || tooSmall) {\n addIssueToContext(ctx, {\n code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small,\n minimum: (tooSmall ? def.exactLength.value : undefined),\n maximum: (tooBig ? def.exactLength.value : undefined),\n type: \"array\",\n inclusive: true,\n exact: true,\n message: def.exactLength.message,\n });\n status.dirty();\n }\n }\n if (def.minLength !== null) {\n if (ctx.data.length < def.minLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.minLength.message,\n });\n status.dirty();\n }\n }\n if (def.maxLength !== null) {\n if (ctx.data.length > def.maxLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.maxLength.message,\n });\n status.dirty();\n }\n }\n if (ctx.common.async) {\n return Promise.all([...ctx.data].map((item, i) => {\n return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n })).then((result) => {\n return ParseStatus.mergeArray(status, result);\n });\n }\n const result = [...ctx.data].map((item, i) => {\n return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n });\n return ParseStatus.mergeArray(status, result);\n }\n get element() {\n return this._def.type;\n }\n min(minLength, message) {\n return new ZodArray({\n ...this._def,\n minLength: { value: minLength, message: errorUtil.toString(message) },\n });\n }\n max(maxLength, message) {\n return new ZodArray({\n ...this._def,\n maxLength: { value: maxLength, message: errorUtil.toString(message) },\n });\n }\n length(len, message) {\n return new ZodArray({\n ...this._def,\n exactLength: { value: len, message: errorUtil.toString(message) },\n });\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodArray.create = (schema, params) => {\n return new ZodArray({\n type: schema,\n minLength: null,\n maxLength: null,\n exactLength: null,\n typeName: ZodFirstPartyTypeKind.ZodArray,\n ...processCreateParams(params),\n });\n};\nfunction deepPartialify(schema) {\n if (schema instanceof ZodObject) {\n const newShape = {};\n for (const key in schema.shape) {\n const fieldSchema = schema.shape[key];\n newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));\n }\n return new ZodObject({\n ...schema._def,\n shape: () => newShape,\n });\n }\n else if (schema instanceof ZodArray) {\n return new ZodArray({\n ...schema._def,\n type: deepPartialify(schema.element),\n });\n }\n else if (schema instanceof ZodOptional) {\n return ZodOptional.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodNullable) {\n return ZodNullable.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodTuple) {\n return ZodTuple.create(schema.items.map((item) => deepPartialify(item)));\n }\n else {\n return schema;\n }\n}\nclass ZodObject extends ZodType {\n constructor() {\n super(...arguments);\n this._cached = null;\n /**\n * @deprecated In most cases, this is no longer needed - unknown properties are now silently stripped.\n * If you want to pass through unknown properties, use `.passthrough()` instead.\n */\n this.nonstrict = this.passthrough;\n // extend<\n // Augmentation extends ZodRawShape,\n // NewOutput extends util.flatten<{\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // }>,\n // NewInput extends util.flatten<{\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }>\n // >(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape,\n // UnknownKeys,\n // Catchall,\n // NewOutput,\n // NewInput\n // > {\n // return new ZodObject({\n // ...this._def,\n // shape: () => ({\n // ...this._def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // }\n /**\n * @deprecated Use `.extend` instead\n * */\n this.augment = this.extend;\n }\n _getCached() {\n if (this._cached !== null)\n return this._cached;\n const shape = this._def.shape();\n const keys = util.objectKeys(shape);\n return (this._cached = { shape, keys });\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.object) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const { status, ctx } = this._processInputParams(input);\n const { shape, keys: shapeKeys } = this._getCached();\n const extraKeys = [];\n if (!(this._def.catchall instanceof ZodNever &&\n this._def.unknownKeys === \"strip\")) {\n for (const key in ctx.data) {\n if (!shapeKeys.includes(key)) {\n extraKeys.push(key);\n }\n }\n }\n const pairs = [];\n for (const key of shapeKeys) {\n const keyValidator = shape[key];\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (this._def.catchall instanceof ZodNever) {\n const unknownKeys = this._def.unknownKeys;\n if (unknownKeys === \"passthrough\") {\n for (const key of extraKeys) {\n pairs.push({\n key: { status: \"valid\", value: key },\n value: { status: \"valid\", value: ctx.data[key] },\n });\n }\n }\n else if (unknownKeys === \"strict\") {\n if (extraKeys.length > 0) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.unrecognized_keys,\n keys: extraKeys,\n });\n status.dirty();\n }\n }\n else if (unknownKeys === \"strip\") ;\n else {\n throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);\n }\n }\n else {\n // run catchall validation\n const catchall = this._def.catchall;\n for (const key of extraKeys) {\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: catchall._parse(new ParseInputLazyPath(ctx, value, ctx.path, key) //, ctx.child(key), value, getParsedType(value)\n ),\n alwaysSet: key in ctx.data,\n });\n }\n }\n if (ctx.common.async) {\n return Promise.resolve()\n .then(async () => {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n syncPairs.push({\n key,\n value: await pair.value,\n alwaysSet: pair.alwaysSet,\n });\n }\n return syncPairs;\n })\n .then((syncPairs) => {\n return ParseStatus.mergeObjectSync(status, syncPairs);\n });\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get shape() {\n return this._def.shape();\n }\n strict(message) {\n errorUtil.errToObj;\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strict\",\n ...(message !== undefined\n ? {\n errorMap: (issue, ctx) => {\n var _a, _b, _c, _d;\n const defaultError = (_c = (_b = (_a = this._def).errorMap) === null || _b === void 0 ? void 0 : _b.call(_a, issue, ctx).message) !== null && _c !== void 0 ? _c : ctx.defaultError;\n if (issue.code === \"unrecognized_keys\")\n return {\n message: (_d = errorUtil.errToObj(message).message) !== null && _d !== void 0 ? _d : defaultError,\n };\n return {\n message: defaultError,\n };\n },\n }\n : {}),\n });\n }\n strip() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strip\",\n });\n }\n passthrough() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"passthrough\",\n });\n }\n // const AugmentFactory =\n // (def: Def) =>\n // (\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape, Augmentation>,\n // Def[\"unknownKeys\"],\n // Def[\"catchall\"]\n // > => {\n // return new ZodObject({\n // ...def,\n // shape: () => ({\n // ...def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // };\n extend(augmentation) {\n return new ZodObject({\n ...this._def,\n shape: () => ({\n ...this._def.shape(),\n ...augmentation,\n }),\n });\n }\n /**\n * Prior to zod@1.0.12 there was a bug in the\n * inferred type of merged objects. Please\n * upgrade if you are experiencing issues.\n */\n merge(merging) {\n const merged = new ZodObject({\n unknownKeys: merging._def.unknownKeys,\n catchall: merging._def.catchall,\n shape: () => ({\n ...this._def.shape(),\n ...merging._def.shape(),\n }),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n });\n return merged;\n }\n // merge<\n // Incoming extends AnyZodObject,\n // Augmentation extends Incoming[\"shape\"],\n // NewOutput extends {\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // },\n // NewInput extends {\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }\n // >(\n // merging: Incoming\n // ): ZodObject<\n // extendShape>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"],\n // NewOutput,\n // NewInput\n // > {\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n setKey(key, schema) {\n return this.augment({ [key]: schema });\n }\n // merge(\n // merging: Incoming\n // ): //ZodObject = (merging) => {\n // ZodObject<\n // extendShape>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"]\n // > {\n // // const mergedShape = objectUtil.mergeShapes(\n // // this._def.shape(),\n // // merging._def.shape()\n // // );\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n catchall(index) {\n return new ZodObject({\n ...this._def,\n catchall: index,\n });\n }\n pick(mask) {\n const shape = {};\n util.objectKeys(mask).forEach((key) => {\n if (mask[key] && this.shape[key]) {\n shape[key] = this.shape[key];\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n omit(mask) {\n const shape = {};\n util.objectKeys(this.shape).forEach((key) => {\n if (!mask[key]) {\n shape[key] = this.shape[key];\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n /**\n * @deprecated\n */\n deepPartial() {\n return deepPartialify(this);\n }\n partial(mask) {\n const newShape = {};\n util.objectKeys(this.shape).forEach((key) => {\n const fieldSchema = this.shape[key];\n if (mask && !mask[key]) {\n newShape[key] = fieldSchema;\n }\n else {\n newShape[key] = fieldSchema.optional();\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n required(mask) {\n const newShape = {};\n util.objectKeys(this.shape).forEach((key) => {\n if (mask && !mask[key]) {\n newShape[key] = this.shape[key];\n }\n else {\n const fieldSchema = this.shape[key];\n let newField = fieldSchema;\n while (newField instanceof ZodOptional) {\n newField = newField._def.innerType;\n }\n newShape[key] = newField;\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n keyof() {\n return createZodEnum(util.objectKeys(this.shape));\n }\n}\nZodObject.create = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.strictCreate = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strict\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.lazycreate = (shape, params) => {\n return new ZodObject({\n shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nclass ZodUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const options = this._def.options;\n function handleResults(results) {\n // return first issue-free validation if it exists\n for (const result of results) {\n if (result.result.status === \"valid\") {\n return result.result;\n }\n }\n for (const result of results) {\n if (result.result.status === \"dirty\") {\n // add issues from dirty option\n ctx.common.issues.push(...result.ctx.common.issues);\n return result.result;\n }\n }\n // return invalid\n const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return Promise.all(options.map(async (option) => {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n return {\n result: await option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n }),\n ctx: childCtx,\n };\n })).then(handleResults);\n }\n else {\n let dirty = undefined;\n const issues = [];\n for (const option of options) {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n const result = option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n });\n if (result.status === \"valid\") {\n return result;\n }\n else if (result.status === \"dirty\" && !dirty) {\n dirty = { result, ctx: childCtx };\n }\n if (childCtx.common.issues.length) {\n issues.push(childCtx.common.issues);\n }\n }\n if (dirty) {\n ctx.common.issues.push(...dirty.ctx.common.issues);\n return dirty.result;\n }\n const unionErrors = issues.map((issues) => new ZodError(issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n }\n get options() {\n return this._def.options;\n }\n}\nZodUnion.create = (types, params) => {\n return new ZodUnion({\n options: types,\n typeName: ZodFirstPartyTypeKind.ZodUnion,\n ...processCreateParams(params),\n });\n};\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\n////////// //////////\n////////// ZodDiscriminatedUnion //////////\n////////// //////////\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\nconst getDiscriminator = (type) => {\n if (type instanceof ZodLazy) {\n return getDiscriminator(type.schema);\n }\n else if (type instanceof ZodEffects) {\n return getDiscriminator(type.innerType());\n }\n else if (type instanceof ZodLiteral) {\n return [type.value];\n }\n else if (type instanceof ZodEnum) {\n return type.options;\n }\n else if (type instanceof ZodNativeEnum) {\n // eslint-disable-next-line ban/ban\n return Object.keys(type.enum);\n }\n else if (type instanceof ZodDefault) {\n return getDiscriminator(type._def.innerType);\n }\n else if (type instanceof ZodUndefined) {\n return [undefined];\n }\n else if (type instanceof ZodNull) {\n return [null];\n }\n else {\n return null;\n }\n};\nclass ZodDiscriminatedUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const discriminator = this.discriminator;\n const discriminatorValue = ctx.data[discriminator];\n const option = this.optionsMap.get(discriminatorValue);\n if (!option) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union_discriminator,\n options: Array.from(this.optionsMap.keys()),\n path: [discriminator],\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n else {\n return option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n get discriminator() {\n return this._def.discriminator;\n }\n get options() {\n return this._def.options;\n }\n get optionsMap() {\n return this._def.optionsMap;\n }\n /**\n * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.\n * However, it only allows a union of objects, all of which need to share a discriminator property. This property must\n * have a different value for each object in the union.\n * @param discriminator the name of the discriminator property\n * @param types an array of object schemas\n * @param params\n */\n static create(discriminator, options, params) {\n // Get all the valid discriminator values\n const optionsMap = new Map();\n // try {\n for (const type of options) {\n const discriminatorValues = getDiscriminator(type.shape[discriminator]);\n if (!discriminatorValues) {\n throw new Error(`A discriminator value for key \\`${discriminator}\\` could not be extracted from all schema options`);\n }\n for (const value of discriminatorValues) {\n if (optionsMap.has(value)) {\n throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);\n }\n optionsMap.set(value, type);\n }\n }\n return new ZodDiscriminatedUnion({\n typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,\n discriminator,\n options,\n optionsMap,\n ...processCreateParams(params),\n });\n }\n}\nfunction mergeValues(a, b) {\n const aType = getParsedType(a);\n const bType = getParsedType(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {\n const bKeys = util.objectKeys(b);\n const sharedKeys = util\n .objectKeys(a)\n .filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n else if (aType === ZodParsedType.array && bType === ZodParsedType.array) {\n if (a.length !== b.length) {\n return { valid: false };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n else if (aType === ZodParsedType.date &&\n bType === ZodParsedType.date &&\n +a === +b) {\n return { valid: true, data: a };\n }\n else {\n return { valid: false };\n }\n}\nclass ZodIntersection extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const handleParsed = (parsedLeft, parsedRight) => {\n if (isAborted(parsedLeft) || isAborted(parsedRight)) {\n return INVALID;\n }\n const merged = mergeValues(parsedLeft.value, parsedRight.value);\n if (!merged.valid) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_intersection_types,\n });\n return INVALID;\n }\n if (isDirty(parsedLeft) || isDirty(parsedRight)) {\n status.dirty();\n }\n return { status: status.value, value: merged.data };\n };\n if (ctx.common.async) {\n return Promise.all([\n this._def.left._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n this._def.right._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n ]).then(([left, right]) => handleParsed(left, right));\n }\n else {\n return handleParsed(this._def.left._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }), this._def.right._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }));\n }\n }\n}\nZodIntersection.create = (left, right, params) => {\n return new ZodIntersection({\n left: left,\n right: right,\n typeName: ZodFirstPartyTypeKind.ZodIntersection,\n ...processCreateParams(params),\n });\n};\nclass ZodTuple extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (ctx.data.length < this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n return INVALID;\n }\n const rest = this._def.rest;\n if (!rest && ctx.data.length > this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n status.dirty();\n }\n const items = [...ctx.data]\n .map((item, itemIndex) => {\n const schema = this._def.items[itemIndex] || this._def.rest;\n if (!schema)\n return null;\n return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));\n })\n .filter((x) => !!x); // filter nulls\n if (ctx.common.async) {\n return Promise.all(items).then((results) => {\n return ParseStatus.mergeArray(status, results);\n });\n }\n else {\n return ParseStatus.mergeArray(status, items);\n }\n }\n get items() {\n return this._def.items;\n }\n rest(rest) {\n return new ZodTuple({\n ...this._def,\n rest,\n });\n }\n}\nZodTuple.create = (schemas, params) => {\n if (!Array.isArray(schemas)) {\n throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");\n }\n return new ZodTuple({\n items: schemas,\n typeName: ZodFirstPartyTypeKind.ZodTuple,\n rest: null,\n ...processCreateParams(params),\n });\n};\nclass ZodRecord extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const pairs = [];\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n for (const key in ctx.data) {\n pairs.push({\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),\n value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)),\n });\n }\n if (ctx.common.async) {\n return ParseStatus.mergeObjectAsync(status, pairs);\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get element() {\n return this._def.valueType;\n }\n static create(first, second, third) {\n if (second instanceof ZodType) {\n return new ZodRecord({\n keyType: first,\n valueType: second,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(third),\n });\n }\n return new ZodRecord({\n keyType: ZodString.create(),\n valueType: first,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(second),\n });\n }\n}\nclass ZodMap extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.map) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.map,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n const pairs = [...ctx.data.entries()].map(([key, value], index) => {\n return {\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, \"key\"])),\n value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, \"value\"])),\n };\n });\n if (ctx.common.async) {\n const finalMap = new Map();\n return Promise.resolve().then(async () => {\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n });\n }\n else {\n const finalMap = new Map();\n for (const pair of pairs) {\n const key = pair.key;\n const value = pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n }\n }\n}\nZodMap.create = (keyType, valueType, params) => {\n return new ZodMap({\n valueType,\n keyType,\n typeName: ZodFirstPartyTypeKind.ZodMap,\n ...processCreateParams(params),\n });\n};\nclass ZodSet extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.set) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.set,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const def = this._def;\n if (def.minSize !== null) {\n if (ctx.data.size < def.minSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.minSize.message,\n });\n status.dirty();\n }\n }\n if (def.maxSize !== null) {\n if (ctx.data.size > def.maxSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.maxSize.message,\n });\n status.dirty();\n }\n }\n const valueType = this._def.valueType;\n function finalizeSet(elements) {\n const parsedSet = new Set();\n for (const element of elements) {\n if (element.status === \"aborted\")\n return INVALID;\n if (element.status === \"dirty\")\n status.dirty();\n parsedSet.add(element.value);\n }\n return { status: status.value, value: parsedSet };\n }\n const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i)));\n if (ctx.common.async) {\n return Promise.all(elements).then((elements) => finalizeSet(elements));\n }\n else {\n return finalizeSet(elements);\n }\n }\n min(minSize, message) {\n return new ZodSet({\n ...this._def,\n minSize: { value: minSize, message: errorUtil.toString(message) },\n });\n }\n max(maxSize, message) {\n return new ZodSet({\n ...this._def,\n maxSize: { value: maxSize, message: errorUtil.toString(message) },\n });\n }\n size(size, message) {\n return this.min(size, message).max(size, message);\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodSet.create = (valueType, params) => {\n return new ZodSet({\n valueType,\n minSize: null,\n maxSize: null,\n typeName: ZodFirstPartyTypeKind.ZodSet,\n ...processCreateParams(params),\n });\n};\nclass ZodFunction extends ZodType {\n constructor() {\n super(...arguments);\n this.validate = this.implement;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.function) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.function,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n function makeArgsIssue(args, error) {\n return makeIssue({\n data: args,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap,\n ].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_arguments,\n argumentsError: error,\n },\n });\n }\n function makeReturnsIssue(returns, error) {\n return makeIssue({\n data: returns,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap,\n ].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_return_type,\n returnTypeError: error,\n },\n });\n }\n const params = { errorMap: ctx.common.contextualErrorMap };\n const fn = ctx.data;\n if (this._def.returns instanceof ZodPromise) {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(async function (...args) {\n const error = new ZodError([]);\n const parsedArgs = await me._def.args\n .parseAsync(args, params)\n .catch((e) => {\n error.addIssue(makeArgsIssue(args, e));\n throw error;\n });\n const result = await Reflect.apply(fn, this, parsedArgs);\n const parsedReturns = await me._def.returns._def.type\n .parseAsync(result, params)\n .catch((e) => {\n error.addIssue(makeReturnsIssue(result, e));\n throw error;\n });\n return parsedReturns;\n });\n }\n else {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(function (...args) {\n const parsedArgs = me._def.args.safeParse(args, params);\n if (!parsedArgs.success) {\n throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);\n }\n const result = Reflect.apply(fn, this, parsedArgs.data);\n const parsedReturns = me._def.returns.safeParse(result, params);\n if (!parsedReturns.success) {\n throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);\n }\n return parsedReturns.data;\n });\n }\n }\n parameters() {\n return this._def.args;\n }\n returnType() {\n return this._def.returns;\n }\n args(...items) {\n return new ZodFunction({\n ...this._def,\n args: ZodTuple.create(items).rest(ZodUnknown.create()),\n });\n }\n returns(returnType) {\n return new ZodFunction({\n ...this._def,\n returns: returnType,\n });\n }\n implement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n strictImplement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n static create(args, returns, params) {\n return new ZodFunction({\n args: (args\n ? args\n : ZodTuple.create([]).rest(ZodUnknown.create())),\n returns: returns || ZodUnknown.create(),\n typeName: ZodFirstPartyTypeKind.ZodFunction,\n ...processCreateParams(params),\n });\n }\n}\nclass ZodLazy extends ZodType {\n get schema() {\n return this._def.getter();\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const lazySchema = this._def.getter();\n return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });\n }\n}\nZodLazy.create = (getter, params) => {\n return new ZodLazy({\n getter: getter,\n typeName: ZodFirstPartyTypeKind.ZodLazy,\n ...processCreateParams(params),\n });\n};\nclass ZodLiteral extends ZodType {\n _parse(input) {\n if (input.data !== this._def.value) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_literal,\n expected: this._def.value,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n get value() {\n return this._def.value;\n }\n}\nZodLiteral.create = (value, params) => {\n return new ZodLiteral({\n value: value,\n typeName: ZodFirstPartyTypeKind.ZodLiteral,\n ...processCreateParams(params),\n });\n};\nfunction createZodEnum(values, params) {\n return new ZodEnum({\n values,\n typeName: ZodFirstPartyTypeKind.ZodEnum,\n ...processCreateParams(params),\n });\n}\nclass ZodEnum extends ZodType {\n _parse(input) {\n if (typeof input.data !== \"string\") {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (this._def.values.indexOf(input.data) === -1) {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get options() {\n return this._def.values;\n }\n get enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Values() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n extract(values) {\n return ZodEnum.create(values);\n }\n exclude(values) {\n return ZodEnum.create(this.options.filter((opt) => !values.includes(opt)));\n }\n}\nZodEnum.create = createZodEnum;\nclass ZodNativeEnum extends ZodType {\n _parse(input) {\n const nativeEnumValues = util.getValidEnumValues(this._def.values);\n const ctx = this._getOrReturnCtx(input);\n if (ctx.parsedType !== ZodParsedType.string &&\n ctx.parsedType !== ZodParsedType.number) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (nativeEnumValues.indexOf(input.data) === -1) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get enum() {\n return this._def.values;\n }\n}\nZodNativeEnum.create = (values, params) => {\n return new ZodNativeEnum({\n values: values,\n typeName: ZodFirstPartyTypeKind.ZodNativeEnum,\n ...processCreateParams(params),\n });\n};\nclass ZodPromise extends ZodType {\n unwrap() {\n return this._def.type;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.promise &&\n ctx.common.async === false) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.promise,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const promisified = ctx.parsedType === ZodParsedType.promise\n ? ctx.data\n : Promise.resolve(ctx.data);\n return OK(promisified.then((data) => {\n return this._def.type.parseAsync(data, {\n path: ctx.path,\n errorMap: ctx.common.contextualErrorMap,\n });\n }));\n }\n}\nZodPromise.create = (schema, params) => {\n return new ZodPromise({\n type: schema,\n typeName: ZodFirstPartyTypeKind.ZodPromise,\n ...processCreateParams(params),\n });\n};\nclass ZodEffects extends ZodType {\n innerType() {\n return this._def.schema;\n }\n sourceType() {\n return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects\n ? this._def.schema.sourceType()\n : this._def.schema;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const effect = this._def.effect || null;\n const checkCtx = {\n addIssue: (arg) => {\n addIssueToContext(ctx, arg);\n if (arg.fatal) {\n status.abort();\n }\n else {\n status.dirty();\n }\n },\n get path() {\n return ctx.path;\n },\n };\n checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);\n if (effect.type === \"preprocess\") {\n const processed = effect.transform(ctx.data, checkCtx);\n if (ctx.common.issues.length) {\n return {\n status: \"dirty\",\n value: ctx.data,\n };\n }\n if (ctx.common.async) {\n return Promise.resolve(processed).then((processed) => {\n return this._def.schema._parseAsync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n });\n }\n else {\n return this._def.schema._parseSync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n if (effect.type === \"refinement\") {\n const executeRefinement = (acc\n // effect: RefinementEffect\n ) => {\n const result = effect.refinement(acc, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(result);\n }\n if (result instanceof Promise) {\n throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n }\n return acc;\n };\n if (ctx.common.async === false) {\n const inner = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n // return value is ignored\n executeRefinement(inner.value);\n return { status: status.value, value: inner.value };\n }\n else {\n return this._def.schema\n ._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx })\n .then((inner) => {\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n return executeRefinement(inner.value).then(() => {\n return { status: status.value, value: inner.value };\n });\n });\n }\n }\n if (effect.type === \"transform\") {\n if (ctx.common.async === false) {\n const base = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (!isValid(base))\n return base;\n const result = effect.transform(base.value, checkCtx);\n if (result instanceof Promise) {\n throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);\n }\n return { status: status.value, value: result };\n }\n else {\n return this._def.schema\n ._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx })\n .then((base) => {\n if (!isValid(base))\n return base;\n return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({ status: status.value, value: result }));\n });\n }\n }\n util.assertNever(effect);\n }\n}\nZodEffects.create = (schema, effect, params) => {\n return new ZodEffects({\n schema,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect,\n ...processCreateParams(params),\n });\n};\nZodEffects.createWithPreprocess = (preprocess, schema, params) => {\n return new ZodEffects({\n schema,\n effect: { type: \"preprocess\", transform: preprocess },\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n ...processCreateParams(params),\n });\n};\nclass ZodOptional extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.undefined) {\n return OK(undefined);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodOptional.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params),\n });\n};\nclass ZodNullable extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.null) {\n return OK(null);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodNullable.create = (type, params) => {\n return new ZodNullable({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodNullable,\n ...processCreateParams(params),\n });\n};\nclass ZodDefault extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n let data = ctx.data;\n if (ctx.parsedType === ZodParsedType.undefined) {\n data = this._def.defaultValue();\n }\n return this._def.innerType._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n removeDefault() {\n return this._def.innerType;\n }\n}\nZodDefault.create = (type, params) => {\n return new ZodDefault({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n defaultValue: typeof params.default === \"function\"\n ? params.default\n : () => params.default,\n ...processCreateParams(params),\n });\n};\nclass ZodCatch extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n // newCtx is used to not collect issues from inner types in ctx\n const newCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n };\n const result = this._def.innerType._parse({\n data: newCtx.data,\n path: newCtx.path,\n parent: {\n ...newCtx,\n },\n });\n if (isAsync(result)) {\n return result.then((result) => {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n });\n }\n else {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n }\n }\n removeCatch() {\n return this._def.innerType;\n }\n}\nZodCatch.create = (type, params) => {\n return new ZodCatch({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n catchValue: typeof params.catch === \"function\" ? params.catch : () => params.catch,\n ...processCreateParams(params),\n });\n};\nclass ZodNaN extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.nan) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.nan,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n}\nZodNaN.create = (params) => {\n return new ZodNaN({\n typeName: ZodFirstPartyTypeKind.ZodNaN,\n ...processCreateParams(params),\n });\n};\nconst BRAND = Symbol(\"zod_brand\");\nclass ZodBranded extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const data = ctx.data;\n return this._def.type._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n unwrap() {\n return this._def.type;\n }\n}\nclass ZodPipeline extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.common.async) {\n const handleAsync = async () => {\n const inResult = await this._def.in._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return DIRTY(inResult.value);\n }\n else {\n return this._def.out._parseAsync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n };\n return handleAsync();\n }\n else {\n const inResult = this._def.in._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return {\n status: \"dirty\",\n value: inResult.value,\n };\n }\n else {\n return this._def.out._parseSync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n }\n static create(a, b) {\n return new ZodPipeline({\n in: a,\n out: b,\n typeName: ZodFirstPartyTypeKind.ZodPipeline,\n });\n }\n}\nclass ZodReadonly extends ZodType {\n _parse(input) {\n const result = this._def.innerType._parse(input);\n if (isValid(result)) {\n result.value = Object.freeze(result.value);\n }\n return result;\n }\n}\nZodReadonly.create = (type, params) => {\n return new ZodReadonly({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodReadonly,\n ...processCreateParams(params),\n });\n};\nconst custom = (check, params = {}, \n/**\n * @deprecated\n *\n * Pass `fatal` into the params object instead:\n *\n * ```ts\n * z.string().custom((val) => val.length > 5, { fatal: false })\n * ```\n *\n */\nfatal) => {\n if (check)\n return ZodAny.create().superRefine((data, ctx) => {\n var _a, _b;\n if (!check(data)) {\n const p = typeof params === \"function\"\n ? params(data)\n : typeof params === \"string\"\n ? { message: params }\n : params;\n const _fatal = (_b = (_a = p.fatal) !== null && _a !== void 0 ? _a : fatal) !== null && _b !== void 0 ? _b : true;\n const p2 = typeof p === \"string\" ? { message: p } : p;\n ctx.addIssue({ code: \"custom\", ...p2, fatal: _fatal });\n }\n });\n return ZodAny.create();\n};\nconst late = {\n object: ZodObject.lazycreate,\n};\nvar ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n ZodFirstPartyTypeKind[\"ZodString\"] = \"ZodString\";\n ZodFirstPartyTypeKind[\"ZodNumber\"] = \"ZodNumber\";\n ZodFirstPartyTypeKind[\"ZodNaN\"] = \"ZodNaN\";\n ZodFirstPartyTypeKind[\"ZodBigInt\"] = \"ZodBigInt\";\n ZodFirstPartyTypeKind[\"ZodBoolean\"] = \"ZodBoolean\";\n ZodFirstPartyTypeKind[\"ZodDate\"] = \"ZodDate\";\n ZodFirstPartyTypeKind[\"ZodSymbol\"] = \"ZodSymbol\";\n ZodFirstPartyTypeKind[\"ZodUndefined\"] = \"ZodUndefined\";\n ZodFirstPartyTypeKind[\"ZodNull\"] = \"ZodNull\";\n ZodFirstPartyTypeKind[\"ZodAny\"] = \"ZodAny\";\n ZodFirstPartyTypeKind[\"ZodUnknown\"] = \"ZodUnknown\";\n ZodFirstPartyTypeKind[\"ZodNever\"] = \"ZodNever\";\n ZodFirstPartyTypeKind[\"ZodVoid\"] = \"ZodVoid\";\n ZodFirstPartyTypeKind[\"ZodArray\"] = \"ZodArray\";\n ZodFirstPartyTypeKind[\"ZodObject\"] = \"ZodObject\";\n ZodFirstPartyTypeKind[\"ZodUnion\"] = \"ZodUnion\";\n ZodFirstPartyTypeKind[\"ZodDiscriminatedUnion\"] = \"ZodDiscriminatedUnion\";\n ZodFirstPartyTypeKind[\"ZodIntersection\"] = \"ZodIntersection\";\n ZodFirstPartyTypeKind[\"ZodTuple\"] = \"ZodTuple\";\n ZodFirstPartyTypeKind[\"ZodRecord\"] = \"ZodRecord\";\n ZodFirstPartyTypeKind[\"ZodMap\"] = \"ZodMap\";\n ZodFirstPartyTypeKind[\"ZodSet\"] = \"ZodSet\";\n ZodFirstPartyTypeKind[\"ZodFunction\"] = \"ZodFunction\";\n ZodFirstPartyTypeKind[\"ZodLazy\"] = \"ZodLazy\";\n ZodFirstPartyTypeKind[\"ZodLiteral\"] = \"ZodLiteral\";\n ZodFirstPartyTypeKind[\"ZodEnum\"] = \"ZodEnum\";\n ZodFirstPartyTypeKind[\"ZodEffects\"] = \"ZodEffects\";\n ZodFirstPartyTypeKind[\"ZodNativeEnum\"] = \"ZodNativeEnum\";\n ZodFirstPartyTypeKind[\"ZodOptional\"] = \"ZodOptional\";\n ZodFirstPartyTypeKind[\"ZodNullable\"] = \"ZodNullable\";\n ZodFirstPartyTypeKind[\"ZodDefault\"] = \"ZodDefault\";\n ZodFirstPartyTypeKind[\"ZodCatch\"] = \"ZodCatch\";\n ZodFirstPartyTypeKind[\"ZodPromise\"] = \"ZodPromise\";\n ZodFirstPartyTypeKind[\"ZodBranded\"] = \"ZodBranded\";\n ZodFirstPartyTypeKind[\"ZodPipeline\"] = \"ZodPipeline\";\n ZodFirstPartyTypeKind[\"ZodReadonly\"] = \"ZodReadonly\";\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\nconst instanceOfType = (\n// const instanceOfType = any>(\ncls, params = {\n message: `Input not instance of ${cls.name}`,\n}) => custom((data) => data instanceof cls, params);\nconst stringType = ZodString.create;\nconst numberType = ZodNumber.create;\nconst nanType = ZodNaN.create;\nconst bigIntType = ZodBigInt.create;\nconst booleanType = ZodBoolean.create;\nconst dateType = ZodDate.create;\nconst symbolType = ZodSymbol.create;\nconst undefinedType = ZodUndefined.create;\nconst nullType = ZodNull.create;\nconst anyType = ZodAny.create;\nconst unknownType = ZodUnknown.create;\nconst neverType = ZodNever.create;\nconst voidType = ZodVoid.create;\nconst arrayType = ZodArray.create;\nconst objectType = ZodObject.create;\nconst strictObjectType = ZodObject.strictCreate;\nconst unionType = ZodUnion.create;\nconst discriminatedUnionType = ZodDiscriminatedUnion.create;\nconst intersectionType = ZodIntersection.create;\nconst tupleType = ZodTuple.create;\nconst recordType = ZodRecord.create;\nconst mapType = ZodMap.create;\nconst setType = ZodSet.create;\nconst functionType = ZodFunction.create;\nconst lazyType = ZodLazy.create;\nconst literalType = ZodLiteral.create;\nconst enumType = ZodEnum.create;\nconst nativeEnumType = ZodNativeEnum.create;\nconst promiseType = ZodPromise.create;\nconst effectsType = ZodEffects.create;\nconst optionalType = ZodOptional.create;\nconst nullableType = ZodNullable.create;\nconst preprocessType = ZodEffects.createWithPreprocess;\nconst pipelineType = ZodPipeline.create;\nconst ostring = () => stringType().optional();\nconst onumber = () => numberType().optional();\nconst oboolean = () => booleanType().optional();\nconst coerce = {\n string: ((arg) => ZodString.create({ ...arg, coerce: true })),\n number: ((arg) => ZodNumber.create({ ...arg, coerce: true })),\n boolean: ((arg) => ZodBoolean.create({\n ...arg,\n coerce: true,\n })),\n bigint: ((arg) => ZodBigInt.create({ ...arg, coerce: true })),\n date: ((arg) => ZodDate.create({ ...arg, coerce: true })),\n};\nconst NEVER = INVALID;\n\nvar z = /*#__PURE__*/Object.freeze({\n __proto__: null,\n defaultErrorMap: errorMap,\n setErrorMap: setErrorMap,\n getErrorMap: getErrorMap,\n makeIssue: makeIssue,\n EMPTY_PATH: EMPTY_PATH,\n addIssueToContext: addIssueToContext,\n ParseStatus: ParseStatus,\n INVALID: INVALID,\n DIRTY: DIRTY,\n OK: OK,\n isAborted: isAborted,\n isDirty: isDirty,\n isValid: isValid,\n isAsync: isAsync,\n get util () { return util; },\n get objectUtil () { return objectUtil; },\n ZodParsedType: ZodParsedType,\n getParsedType: getParsedType,\n ZodType: ZodType,\n ZodString: ZodString,\n ZodNumber: ZodNumber,\n ZodBigInt: ZodBigInt,\n ZodBoolean: ZodBoolean,\n ZodDate: ZodDate,\n ZodSymbol: ZodSymbol,\n ZodUndefined: ZodUndefined,\n ZodNull: ZodNull,\n ZodAny: ZodAny,\n ZodUnknown: ZodUnknown,\n ZodNever: ZodNever,\n ZodVoid: ZodVoid,\n ZodArray: ZodArray,\n ZodObject: ZodObject,\n ZodUnion: ZodUnion,\n ZodDiscriminatedUnion: ZodDiscriminatedUnion,\n ZodIntersection: ZodIntersection,\n ZodTuple: ZodTuple,\n ZodRecord: ZodRecord,\n ZodMap: ZodMap,\n ZodSet: ZodSet,\n ZodFunction: ZodFunction,\n ZodLazy: ZodLazy,\n ZodLiteral: ZodLiteral,\n ZodEnum: ZodEnum,\n ZodNativeEnum: ZodNativeEnum,\n ZodPromise: ZodPromise,\n ZodEffects: ZodEffects,\n ZodTransformer: ZodEffects,\n ZodOptional: ZodOptional,\n ZodNullable: ZodNullable,\n ZodDefault: ZodDefault,\n ZodCatch: ZodCatch,\n ZodNaN: ZodNaN,\n BRAND: BRAND,\n ZodBranded: ZodBranded,\n ZodPipeline: ZodPipeline,\n ZodReadonly: ZodReadonly,\n custom: custom,\n Schema: ZodType,\n ZodSchema: ZodType,\n late: late,\n get ZodFirstPartyTypeKind () { return ZodFirstPartyTypeKind; },\n coerce: coerce,\n any: anyType,\n array: arrayType,\n bigint: bigIntType,\n boolean: booleanType,\n date: dateType,\n discriminatedUnion: discriminatedUnionType,\n effect: effectsType,\n 'enum': enumType,\n 'function': functionType,\n 'instanceof': instanceOfType,\n intersection: intersectionType,\n lazy: lazyType,\n literal: literalType,\n map: mapType,\n nan: nanType,\n nativeEnum: nativeEnumType,\n never: neverType,\n 'null': nullType,\n nullable: nullableType,\n number: numberType,\n object: objectType,\n oboolean: oboolean,\n onumber: onumber,\n optional: optionalType,\n ostring: ostring,\n pipeline: pipelineType,\n preprocess: preprocessType,\n promise: promiseType,\n record: recordType,\n set: setType,\n strictObject: strictObjectType,\n string: stringType,\n symbol: symbolType,\n transformer: effectsType,\n tuple: tupleType,\n 'undefined': undefinedType,\n union: unionType,\n unknown: unknownType,\n 'void': voidType,\n NEVER: NEVER,\n ZodIssueCode: ZodIssueCode,\n quotelessJson: quotelessJson,\n ZodError: ZodError\n});\n\nexport { BRAND, DIRTY, EMPTY_PATH, INVALID, NEVER, OK, ParseStatus, ZodType as Schema, ZodAny, ZodArray, ZodBigInt, ZodBoolean, ZodBranded, ZodCatch, ZodDate, ZodDefault, ZodDiscriminatedUnion, ZodEffects, ZodEnum, ZodError, ZodFirstPartyTypeKind, ZodFunction, ZodIntersection, ZodIssueCode, ZodLazy, ZodLiteral, ZodMap, ZodNaN, ZodNativeEnum, ZodNever, ZodNull, ZodNullable, ZodNumber, ZodObject, ZodOptional, ZodParsedType, ZodPipeline, ZodPromise, ZodReadonly, ZodRecord, ZodType as ZodSchema, ZodSet, ZodString, ZodSymbol, ZodEffects as ZodTransformer, ZodTuple, ZodType, ZodUndefined, ZodUnion, ZodUnknown, ZodVoid, addIssueToContext, anyType as any, arrayType as array, bigIntType as bigint, booleanType as boolean, coerce, custom, dateType as date, z as default, errorMap as defaultErrorMap, discriminatedUnionType as discriminatedUnion, effectsType as effect, enumType as enum, functionType as function, getErrorMap, getParsedType, instanceOfType as instanceof, intersectionType as intersection, isAborted, isAsync, isDirty, isValid, late, lazyType as lazy, literalType as literal, makeIssue, mapType as map, nanType as nan, nativeEnumType as nativeEnum, neverType as never, nullType as null, nullableType as nullable, numberType as number, objectType as object, objectUtil, oboolean, onumber, optionalType as optional, ostring, pipelineType as pipeline, preprocessType as preprocess, promiseType as promise, quotelessJson, recordType as record, setType as set, setErrorMap, strictObjectType as strictObject, stringType as string, symbolType as symbol, effectsType as transformer, tupleType as tuple, undefinedType as undefined, unionType as union, unknownType as unknown, util, voidType as void, z };\n","import { z } from 'zod';\n\nexport const meta = z.object({\n displayName: z.string(),\n name: z.string(),\n restRoot: z.string(),\n apiVersion: z.string().optional(),\n version: z.string(),\n schemaVersion: z.string().optional(),\n checkForUpdates: z.boolean().default(true).optional(),\n});\n\nexport type meta = z.infer;\n","import { z } from 'zod';\n\nexport const NumberValidator = z.object({\n errorMsg: z.string().optional(),\n type: z.literal('number'),\n range: z.array(z.number()),\n});\nexport const StringValidator = z.object({\n errorMsg: z.string().optional(),\n type: z.literal('string'),\n minLength: z.number().gte(0),\n maxLength: z.number().gte(0),\n});\nexport const RegexValidator = z.object({\n errorMsg: z.string().optional(),\n type: z.literal('regex'),\n pattern: z.string(),\n});\nexport const EmailValidator = z.object({\n errorMsg: z.string().optional(),\n type: z.literal('email'),\n});\nexport const Ipv4Validator = z.object({\n errorMsg: z.string().optional(),\n type: z.literal('ipv4'),\n});\nexport const UrlValidator = z.object({\n errorMsg: z.string().optional(),\n type: z.literal('url'),\n});\nexport const DateValidator = z.object({\n errorMsg: z.string().optional(),\n type: z.literal('date'),\n});\n","import { z } from 'zod';\nimport {\n DateValidator,\n EmailValidator,\n Ipv4Validator,\n NumberValidator,\n RegexValidator,\n StringValidator,\n UrlValidator,\n} from './validators';\n\nconst ValueLabelPair = z.object({\n value: z.union([z.number(), z.string(), z.boolean()]),\n label: z.string(),\n});\n\nexport const MarkdownMessageText = z.object({\n markdownType: z.literal('text'),\n text: z.string(),\n color: z.string().optional(),\n});\n\nexport const MarkdownMessageHybrid = z.object({\n markdownType: z.literal('hybrid'),\n text: z.string(),\n token: z.string(),\n linkText: z.string(),\n link: z.string(),\n});\n\nexport const MarkdownMessageLink = z.object({\n markdownType: z.literal('link'),\n text: z.string(),\n link: z.string(),\n});\n\nexport const MarkdownMessagePlaintext = z.object({\n markdownType: z.undefined().optional(),\n text: z.string(),\n});\n\nconst CommonEntityFields = z.object({\n type: z.string(),\n field: z.string(),\n label: z.string(),\n help: z.string().optional(),\n tooltip: z.string().optional(),\n});\n\nconst CommonEditableEntityFields = CommonEntityFields.extend({\n required: z.boolean().default(false).optional(),\n encrypted: z.boolean().default(false).optional(),\n});\n\nconst CommonEditableEntityOptions = z.object({\n placeholder: z.string().optional(),\n display: z.boolean().default(true).optional(),\n disableonEdit: z.boolean().default(false).optional(),\n enable: z.boolean().default(true).optional(),\n requiredWhenVisible: z.boolean().default(false).optional(),\n});\n\nexport const MarkdownMessageType = z.union([\n MarkdownMessageText,\n MarkdownMessageHybrid,\n MarkdownMessageLink,\n MarkdownMessagePlaintext,\n]);\n\nconst FieldToModify = z.object({\n fieldValue: z.union([z.number(), z.string(), z.boolean()]),\n mode: z.enum(['create', 'edit', 'config', 'clone']).optional(),\n fieldsToModify: z.array(\n z.object({\n fieldId: z.string(),\n display: z.boolean().optional(),\n value: z.union([z.number(), z.string(), z.boolean()]).optional(),\n disabled: z.boolean().optional(),\n help: z.string().optional(),\n label: z.string().optional(),\n markdownMessage: MarkdownMessageType.optional(),\n })\n ),\n});\n\nconst ModifyFieldsOnValue = z.array(FieldToModify).optional();\n\nconst AllValidators = z\n .array(\n z.union([\n NumberValidator,\n StringValidator,\n RegexValidator,\n EmailValidator,\n Ipv4Validator,\n UrlValidator,\n DateValidator,\n ])\n )\n .nonempty();\n\nexport const LinkEntity = CommonEntityFields.extend({\n type: z.literal('helpLink'),\n label: z.string().optional(),\n options: z.object({ text: z.string(), link: z.string() }),\n required: z.literal(false).default(false).optional(),\n});\n\nexport type LinkEntity = z.infer;\n\nexport const TextEntity = CommonEditableEntityFields.extend({\n type: z.literal('text'),\n validators: AllValidators.optional(),\n defaultValue: z.union([z.string(), z.number(), z.boolean()]).optional(),\n options: CommonEditableEntityOptions.optional(),\n modifyFieldsOnValue: ModifyFieldsOnValue,\n});\n\nexport const TextAreaEntity = CommonEditableEntityFields.extend({\n type: z.literal('textarea'),\n validators: AllValidators.optional(),\n defaultValue: z.string().optional(),\n options: CommonEditableEntityOptions.extend({\n rowsMin: z.number().optional(),\n rowsMax: z.number().optional(),\n }).optional(),\n modifyFieldsOnValue: ModifyFieldsOnValue,\n});\n\nconst AutoCompleteFields = z.array(\n z.union([\n ValueLabelPair,\n z.object({\n label: z.string(),\n children: z.array(ValueLabelPair),\n }),\n ])\n);\n\nconst SelectCommonOptions = CommonEditableEntityOptions.extend({\n disableSearch: z.boolean().default(false).optional(),\n createSearchChoice: z.boolean().default(false).optional(),\n referenceName: z.string().optional(),\n endpointUrl: z.string().optional(),\n allowList: z.string().optional(),\n denyList: z.string().optional(),\n labelField: z.string().optional(),\n autoCompleteFields: AutoCompleteFields.optional(),\n dependencies: z.array(z.string()).optional(),\n items: ValueLabelPair.array().optional(),\n});\nexport const SingleSelectEntity = CommonEditableEntityFields.extend({\n type: z.literal('singleSelect'),\n validators: AllValidators.optional(),\n defaultValue: z.union([z.string(), z.number(), z.boolean()]).optional(),\n options: SelectCommonOptions,\n modifyFieldsOnValue: ModifyFieldsOnValue,\n});\n\nexport const MultipleSelectEntity = CommonEditableEntityFields.extend({\n type: z.literal('multipleSelect'),\n validators: AllValidators.optional(),\n defaultValue: z.string().optional(),\n options: SelectCommonOptions.extend({\n delimiter: z.string().length(1).optional(),\n }),\n modifyFieldsOnValue: ModifyFieldsOnValue,\n});\n\nexport const CheckboxEntity = CommonEditableEntityFields.extend({\n type: z.literal('checkbox'),\n defaultValue: z.union([z.number(), z.boolean()]).optional(),\n options: CommonEditableEntityOptions.omit({ placeholder: true }).optional(),\n modifyFieldsOnValue: ModifyFieldsOnValue,\n});\n\nexport const CheckboxGroupEntity = CommonEditableEntityFields.extend({\n type: z.literal('checkboxGroup'),\n validators: z.tuple([RegexValidator]).optional(),\n defaultValue: z.union([z.number(), z.boolean()]).optional(),\n options: CommonEditableEntityOptions.omit({ placeholder: true }).extend({\n groups: z\n .array(\n z.object({\n label: z.string(),\n fields: z.array(z.string()),\n options: z\n .object({\n isExpandable: z.boolean().optional(),\n expand: z.boolean().optional(),\n })\n .optional(),\n })\n )\n .optional(),\n rows: z.array(\n z.object({\n field: z.string(),\n checkbox: z\n .object({\n label: z.string().optional(),\n defaultValue: z.boolean().optional(),\n })\n .optional(),\n input: z\n .object({\n defaultValue: z.number().optional(),\n validators: z.tuple([NumberValidator]).optional(),\n required: z.boolean().optional(),\n })\n .optional(),\n })\n ),\n }),\n});\n\nexport const RadioEntity = CommonEditableEntityFields.extend({\n type: z.literal('radio'),\n defaultValue: z.string().optional(),\n options: CommonEditableEntityOptions.extend({\n items: z.array(ValueLabelPair),\n }),\n modifyFieldsOnValue: ModifyFieldsOnValue,\n});\n\nexport const FileEntity = CommonEditableEntityFields.extend({\n type: z.literal('file'),\n defaultValue: z.string().optional(),\n validators: z.array(z.union([StringValidator, RegexValidator])).optional(),\n options: CommonEditableEntityOptions.omit({ placeholder: true })\n .extend({\n maxFileSize: z.number().optional(),\n fileSupportMessage: z.string().optional(),\n supportedFileTypes: z.array(z.string()),\n })\n .optional(),\n modifyFieldsOnValue: ModifyFieldsOnValue,\n});\n\nexport const OAuthFields = z.object({\n oauth_field: z.string(),\n label: z.string(),\n field: z.string(),\n type: z.literal('text').default('text').optional(),\n help: z.string(),\n encrypted: z.boolean().default(false).optional(),\n required: z.boolean().default(false).optional(),\n defaultValue: z.union([z.string(), z.number(), z.boolean()]).optional(),\n options: z\n .object({\n placeholder: z.string().optional(),\n disableonEdit: z.boolean().optional(),\n enable: z.boolean().default(true).optional(),\n display: z.literal(true).default(true).optional(),\n requiredWhenVisible: z.boolean().default(false).optional(),\n })\n .optional(),\n modifyFieldsOnValue: ModifyFieldsOnValue,\n});\n\nexport const OAuthEntity = CommonEditableEntityFields.extend({\n type: z.literal('oauth'),\n defaultValue: z.string().optional(),\n validators: z.array(z.union([StringValidator, RegexValidator])).optional(),\n options: CommonEditableEntityOptions.omit({\n placeholder: true,\n requiredWhenVisible: true,\n }).extend({\n auth_type: z.array(z.union([z.literal('basic'), z.literal('oauth')])),\n basic: z.array(OAuthFields).optional(),\n oauth: z.array(OAuthFields).optional(),\n auth_label: z.string().optional(),\n oauth_popup_width: z.number().optional(),\n oauth_popup_height: z.number().optional(),\n oauth_timeout: z.number().optional(),\n auth_code_endpoint: z.string().optional(),\n access_token_endpoint: z.string().optional(),\n oauth_state_enabled: z.boolean().optional(),\n auth_endpoint_token_access_type: z.string().optional(),\n }),\n});\n\nexport const CustomEntity = CommonEditableEntityFields.extend({\n type: z.literal('custom'),\n options: z.object({\n type: z.literal('external'),\n src: z.string(),\n }),\n});\n\n// somewhat exceptional and used only in alerts\nexport const SingleSelectSplunkSearchEntity = CommonEntityFields.extend({\n type: z.literal('singleSelectSplunkSearch'),\n defaultValue: z.union([z.string(), z.number(), z.boolean()]).optional(),\n search: z.string().optional(),\n valueField: z.string().optional(),\n labelField: z.string().optional(),\n options: z\n .object({\n items: z.array(ValueLabelPair),\n })\n .optional(),\n});\n\nexport const AnyOfEntity = z.discriminatedUnion('type', [\n LinkEntity,\n TextEntity,\n TextAreaEntity,\n SingleSelectEntity,\n MultipleSelectEntity,\n CheckboxEntity,\n CheckboxGroupEntity,\n RadioEntity,\n FileEntity,\n OAuthEntity,\n CustomEntity,\n]);\n","import { z } from 'zod';\nimport { AnyOfEntity } from './entities';\n\nexport const TableSchema = z.object({\n moreInfo: z\n .array(\n z.object({\n field: z.string(),\n label: z.string(),\n mapping: z.record(z.any()).optional(),\n })\n )\n .optional(),\n header: z.array(\n z.object({\n field: z.string(),\n label: z.string(),\n mapping: z.record(z.any()).optional(),\n customCell: z.record(z.any()).optional(),\n })\n ),\n customRow: z.record(z.any()).optional(),\n actions: z.array(z.enum(['edit', 'delete', 'clone', 'enable'])),\n});\n\n// TODO add \"required\": [\"entity\", \"name\", \"title\"] or required\": [\"customTab\", \"name\", \"title\"]\nconst HooksSchema = z\n .object({\n saveValidator: z.string().optional(),\n })\n .optional();\n\nconst WarningMessageSchema = z.object({\n message: z.string(),\n alwaysDisplay: z.boolean().default(false).optional(),\n});\n\nconst WarningSchema = z\n .object({\n create: WarningMessageSchema.optional(),\n edit: WarningMessageSchema.optional(),\n config: WarningMessageSchema.optional(),\n clone: WarningMessageSchema.optional(),\n })\n .optional();\n\nexport const TabSchema = z.object({\n entity: z.array(AnyOfEntity).optional(),\n name: z.string(),\n title: z.string(),\n options: HooksSchema,\n table: TableSchema.extend({\n actions: z.array(z.enum(['edit', 'delete', 'clone'])),\n }).optional(),\n style: z.enum(['page', 'dialog']).optional(),\n hook: z.record(z.any()).optional(),\n conf: z.string().optional(),\n restHandlerName: z.string().optional(),\n restHandlerModule: z.string().optional(),\n restHandlerClass: z.string().optional(),\n customTab: z.record(z.any()).optional(),\n warning: WarningSchema,\n});\n\nconst GroupsSchema = z\n .array(\n z.object({\n options: z\n .object({\n isExpandable: z.boolean().optional(),\n expand: z.boolean().optional(),\n })\n .optional(),\n label: z.string(),\n fields: z.array(z.string()),\n })\n )\n .optional();\n\nexport const TableLessServiceSchema = z.object({\n name: z.string(),\n title: z.string(),\n subTitle: z.string().optional(),\n entity: z.array(AnyOfEntity),\n options: HooksSchema,\n groups: GroupsSchema,\n style: z.enum(['page', 'dialog']).optional(),\n hook: z.record(z.any()).optional(),\n conf: z.string().optional(),\n restHandlerName: z.string().optional(),\n restHandlerModule: z.string().optional(),\n restHandlerClass: z.string().optional(),\n warning: WarningSchema,\n});\nexport const TableFullServiceSchema = TableLessServiceSchema.extend({\n description: z.string().optional(),\n table: TableSchema,\n});\nexport const InputsPageRegular = z\n .object({\n title: z.string(),\n services: z.array(TableFullServiceSchema),\n })\n // The strict method disallows a table field to distinguish between to inputs\n .strict();\n\nexport const SubDescriptionSchema = z\n .object({\n text: z.string(),\n links: z\n .array(\n z.object({\n slug: z.string(),\n link: z.string(),\n linkText: z.string(),\n })\n )\n .optional(),\n })\n .optional();\n\nexport const InputsPageTableSchema = z\n .object({\n title: z.string(),\n description: z.string().optional(),\n subDescription: SubDescriptionSchema,\n menu: z\n .object({\n type: z.literal('external'),\n src: z.string(),\n })\n .optional(),\n table: TableSchema,\n groupsMenu: z\n .array(\n z.object({\n groupName: z.string(),\n groupTitle: z.string(),\n groupServices: z.array(z.string()).optional(),\n })\n )\n .optional(),\n // The strict method disallows a table field to distinguish between\n // TableLessServiceSchema and TableFullServiceSchema\n services: z.array(TableLessServiceSchema.strict()),\n })\n .strict();\n\nexport const pages = z.object({\n configuration: z.object({\n title: z.string(),\n description: z.string().optional(),\n subDescription: SubDescriptionSchema,\n tabs: z.array(TabSchema).min(1),\n }),\n inputs: z.union([InputsPageRegular, InputsPageTableSchema]).optional(),\n dashboard: z\n .object({\n panels: z.array(z.object({ name: z.string() })).min(1),\n })\n .optional(),\n});\n","import { z } from 'zod';\nimport {\n CheckboxEntity,\n RadioEntity,\n SingleSelectEntity,\n SingleSelectSplunkSearchEntity,\n TextAreaEntity,\n TextEntity,\n} from './entities';\n\nexport const alerts = z\n .array(\n z.object({\n name: z.string(),\n label: z.string(),\n description: z.string(),\n activeResponse: z\n .object({\n task: z.array(z.string()).min(1),\n supportsAdhoc: z.boolean(),\n subject: z.array(z.string()).min(1),\n category: z.array(z.string()).min(1),\n technology: z\n .array(\n z.object({\n version: z.array(z.string()).min(1),\n product: z.string(),\n vendor: z.string(),\n })\n )\n .min(1),\n drilldownUri: z.string().optional(),\n sourcetype: z.string().optional(),\n })\n .optional(),\n entity: z\n .array(\n z.discriminatedUnion('type', [\n TextEntity,\n TextAreaEntity,\n SingleSelectEntity,\n CheckboxEntity,\n RadioEntity,\n SingleSelectSplunkSearchEntity,\n ])\n )\n .optional(),\n })\n )\n .min(1)\n .optional();\n","import { z } from 'zod';\nimport { meta } from './meta';\nimport { pages } from './pages';\nimport { alerts } from './alerts';\n\nexport const GlobalConfigSchema = z.object({\n meta,\n pages,\n alerts,\n});\n\nexport type GlobalConfig = z.infer;\n","import { TOAST_TYPES } from '@splunk/react-toast-notifications/ToastConstants';\nimport Toaster, { makeCreateToast } from '@splunk/react-toast-notifications/Toaster';\nimport { GlobalConfig, GlobalConfigSchema } from '../types/globalConfig/globalConfig';\n\ninterface AppData {\n app: string;\n // eslint-disable-next-line camelcase\n custom_rest: string;\n nullStr: 'NULL';\n stanzaPrefix: string;\n}\n\nlet appData: AppData | null = null;\nlet unifiedConfigs: GlobalConfig | null = null;\n\nexport function setMetaInfo(data: AppData) {\n appData = data;\n}\n\nexport function getMetaInfo() {\n return {\n appData,\n };\n}\n\nexport function isFalse(value: unknown) {\n return (\n value === null ||\n value === undefined ||\n ['0', 'FALSE', 'F', 'N', 'NO', 'NONE', ''].includes(value.toString().toUpperCase())\n );\n}\n\nexport function isTrue(value: unknown) {\n return (\n value !== null &&\n value !== undefined &&\n ['1', 'TRUE', 'T', 'Y', 'YES'].includes(value.toString().toUpperCase())\n );\n}\n\nexport function generateEndPointUrl(name: string) {\n if (!unifiedConfigs) {\n throw new Error('No GlobalConfig set');\n }\n return `${unifiedConfigs.meta.restRoot}_${name}`;\n}\n\nexport function setUnifiedConfig(unifiedConfig: GlobalConfig) {\n const result = GlobalConfigSchema.safeParse(unifiedConfig);\n if (!result.success) {\n // we want to notify devs and RUM about invalid config\n // eslint-disable-next-line no-console\n console.error('Invalid globalConfig.json', JSON.stringify(result.error.issues));\n }\n\n /** assigning non-parsed value directly instead of\n * unifiedConfigs = result.data;\n * due to the probability to break something in JSX files.\n * Zod object schemas strip out unrecognized keys during parsing\n * See: https://zod.dev/?id=passthrough\n */\n unifiedConfigs = unifiedConfig;\n}\n\nexport function getUnifiedConfigs() {\n if (!unifiedConfigs) {\n throw new Error('No GlobalConfig set');\n }\n return unifiedConfigs;\n}\n\nconst createToast = makeCreateToast(Toaster);\nexport const generateToast = (\n message: string,\n messageType: (typeof TOAST_TYPES)[keyof typeof TOAST_TYPES],\n action = undefined\n) => {\n let toastType;\n switch (messageType) {\n case 'success':\n toastType = TOAST_TYPES.SUCCESS;\n break;\n case 'error':\n toastType = TOAST_TYPES.ERROR;\n break;\n case 'warning':\n toastType = TOAST_TYPES.ERROR;\n break;\n default:\n toastType = TOAST_TYPES.INFO;\n }\n createToast({\n type: toastType,\n message,\n autoDismiss: true,\n dismissOnActionClick: true,\n showAction: Boolean(action),\n action: action || undefined,\n });\n};\n\nexport function filterByAllowList(fields: { value: string; label: string }[], allowList: string) {\n const allowRegex = new RegExp(allowList);\n return fields.filter((item) => allowRegex.test(item.value));\n}\n\nexport function filterByDenyList(fields: { value: string; label: string }[], denyList: string) {\n const denyRegex = new RegExp(denyList);\n return fields.filter((item) => !denyRegex.test(item.value));\n}\n\nexport function filterResponse(\n items: { content?: Record; name: string }[],\n labelField?: string,\n allowList?: string,\n denyList?: string\n) {\n let newItems: { value: string; label: string }[] = items.map((item) => {\n const label = labelField ? item.content?.[labelField] : item.name;\n if (typeof label !== 'string') {\n throw new Error(`Label not found for ${item.name}`);\n }\n return {\n label,\n value: item.name,\n };\n });\n\n if (allowList) {\n newItems = filterByAllowList(newItems, allowList);\n }\n\n if (denyList) {\n newItems = filterByDenyList(newItems, denyList);\n }\n\n return newItems;\n}\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*\n * Copyright 2024 Splunk Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nbody {\n min-width: 960px;\n}\n\n// Safari browser specific issue - https://stackoverflow.com/questions/21400182/safari-css-font-color-issue?noredirect=1&lq=1\ninput[disabled],\ntextarea[disabled],\nselect[disabled='disabled'] {\n -webkit-text-fill-color: #c3cbd4;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/pages/style.css\"],\"names\":[],\"mappings\":\"AAAA;;;;;;;;;;;;;;;EAeE;AACF;IACI,gBAAgB;AACpB;;AAEA;;;;IAII,gCAAgC;AACpC\",\"sourcesContent\":[\"/*\\n * Copyright 2024 Splunk Inc.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n *\\n */\\nbody {\\n min-width: 960px;\\n}\\n\\n// Safari browser specific issue - https://stackoverflow.com/questions/21400182/safari-css-font-color-issue?noredirect=1&lq=1\\ninput[disabled],\\ntextarea[disabled],\\nselect[disabled='disabled'] {\\n -webkit-text-fill-color: #c3cbd4;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n return [content].concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignMergeValue;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var copyObject = require('./_copyObject'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nmodule.exports = baseAssignIn;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var Stack = require('./_Stack'),\n arrayEach = require('./_arrayEach'),\n assignValue = require('./_assignValue'),\n baseAssign = require('./_baseAssign'),\n baseAssignIn = require('./_baseAssignIn'),\n cloneBuffer = require('./_cloneBuffer'),\n copyArray = require('./_copyArray'),\n copySymbols = require('./_copySymbols'),\n copySymbolsIn = require('./_copySymbolsIn'),\n getAllKeys = require('./_getAllKeys'),\n getAllKeysIn = require('./_getAllKeysIn'),\n getTag = require('./_getTag'),\n initCloneArray = require('./_initCloneArray'),\n initCloneByTag = require('./_initCloneByTag'),\n initCloneObject = require('./_initCloneObject'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isMap = require('./isMap'),\n isObject = require('./isObject'),\n isSet = require('./isSet'),\n keys = require('./keys'),\n keysIn = require('./keysIn');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nmodule.exports = baseClone;\n","var isObject = require('./isObject');\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nmodule.exports = baseCreate;\n","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.every` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`\n */\nfunction baseEvery(collection, predicate) {\n var result = true;\n baseEach(collection, function(value, index, collection) {\n result = !!predicate(value, index, collection);\n return result;\n });\n return result;\n}\n\nmodule.exports = baseEvery;\n","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n}\n\nmodule.exports = baseFilter;\n","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n arrayMap = require('./_arrayMap'),\n baseUnary = require('./_baseUnary'),\n cacheHas = require('./_cacheHas');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * The base implementation of methods like `_.intersection`, without support\n * for iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of shared values.\n */\nfunction baseIntersection(arrays, iteratee, comparator) {\n var includes = comparator ? arrayIncludesWith : arrayIncludes,\n length = arrays[0].length,\n othLength = arrays.length,\n othIndex = othLength,\n caches = Array(othLength),\n maxLength = Infinity,\n result = [];\n\n while (othIndex--) {\n var array = arrays[othIndex];\n if (othIndex && iteratee) {\n array = arrayMap(array, baseUnary(iteratee));\n }\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))\n ? new SetCache(othIndex && array)\n : undefined;\n }\n array = arrays[0];\n\n var index = -1,\n seen = caches[0];\n\n outer:\n while (++index < length && result.length < maxLength) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (!(seen\n ? cacheHas(seen, computed)\n : includes(result, computed, comparator)\n )) {\n othIndex = othLength;\n while (--othIndex) {\n var cache = caches[othIndex];\n if (!(cache\n ? cacheHas(cache, computed)\n : includes(arrays[othIndex], computed, comparator))\n ) {\n continue outer;\n }\n }\n if (seen) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseIntersection;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nmodule.exports = baseIsSet;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","var Stack = require('./_Stack'),\n assignMergeValue = require('./_assignMergeValue'),\n baseFor = require('./_baseFor'),\n baseMergeDeep = require('./_baseMergeDeep'),\n isObject = require('./isObject'),\n keysIn = require('./keysIn'),\n safeGet = require('./_safeGet');\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nmodule.exports = baseMerge;\n","var assignMergeValue = require('./_assignMergeValue'),\n cloneBuffer = require('./_cloneBuffer'),\n cloneTypedArray = require('./_cloneTypedArray'),\n copyArray = require('./_copyArray'),\n initCloneObject = require('./_initCloneObject'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLikeObject = require('./isArrayLikeObject'),\n isBuffer = require('./isBuffer'),\n isFunction = require('./isFunction'),\n isObject = require('./isObject'),\n isPlainObject = require('./isPlainObject'),\n isTypedArray = require('./isTypedArray'),\n safeGet = require('./_safeGet'),\n toPlainObject = require('./toPlainObject');\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nmodule.exports = baseMergeDeep;\n","var arrayMap = require('./_arrayMap'),\n baseGet = require('./_baseGet'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n baseSortBy = require('./_baseSortBy'),\n baseUnary = require('./_baseUnary'),\n compareMultiple = require('./_compareMultiple'),\n identity = require('./identity'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nmodule.exports = baseOrderBy;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","var arrayMap = require('./_arrayMap'),\n baseIndexOf = require('./_baseIndexOf'),\n baseIndexOfWith = require('./_baseIndexOfWith'),\n baseUnary = require('./_baseUnary'),\n copyArray = require('./_copyArray');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * The base implementation of `_.pullAllBy` without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n */\nfunction basePullAll(array, values, iteratee, comparator) {\n var indexOf = comparator ? baseIndexOfWith : baseIndexOf,\n index = -1,\n length = values.length,\n seen = array;\n\n if (array === values) {\n values = copyArray(values);\n }\n if (iteratee) {\n seen = arrayMap(array, baseUnary(iteratee));\n }\n while (++index < length) {\n var fromIndex = 0,\n value = values[index],\n computed = iteratee ? iteratee(value) : value;\n\n while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) {\n if (seen !== array) {\n splice.call(seen, fromIndex, 1);\n }\n splice.call(array, fromIndex, 1);\n }\n }\n return array;\n}\n\nmodule.exports = basePullAll;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","var castPath = require('./_castPath'),\n last = require('./last'),\n parent = require('./_parent'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\nfunction baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n}\n\nmodule.exports = baseUnset;\n","var arrayMap = require('./_arrayMap');\n\n/**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\nfunction baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n}\n\nmodule.exports = baseValues;\n","var isArrayLikeObject = require('./isArrayLikeObject');\n\n/**\n * Casts `value` to an empty array if it's not an array like object.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array|Object} Returns the cast array-like object.\n */\nfunction castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n}\n\nmodule.exports = castArrayLikeObject;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var Uint8Array = require('./_Uint8Array');\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nmodule.exports = cloneArrayBuffer;\n","var root = require('./_root');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nmodule.exports = cloneDataView;\n","var Symbol = require('./_Symbol');\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nmodule.exports = cloneSymbol;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nmodule.exports = cloneTypedArray;\n","var isSymbol = require('./isSymbol');\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\nmodule.exports = compareAscending;\n","var compareAscending = require('./_compareAscending');\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\nmodule.exports = compareMultiple;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","var copyObject = require('./_copyObject'),\n getSymbols = require('./_getSymbols');\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nmodule.exports = copySymbols;\n","var copyObject = require('./_copyObject'),\n getSymbolsIn = require('./_getSymbolsIn');\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nmodule.exports = copySymbolsIn;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","var isArrayLike = require('./isArrayLike');\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;\n","var isPlainObject = require('./isPlainObject');\n\n/**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\nfunction customOmitClone(value) {\n return isPlainObject(value) ? undefined : value;\n}\n\nmodule.exports = customOmitClone;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","var flatten = require('./flatten'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\nfunction flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n}\n\nmodule.exports = flatRest;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbolsIn = require('./_getSymbolsIn'),\n keysIn = require('./keysIn');\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nmodule.exports = getAllKeysIn;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var arrayPush = require('./_arrayPush'),\n getPrototype = require('./_getPrototype'),\n getSymbols = require('./_getSymbols'),\n stubArray = require('./stubArray');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nmodule.exports = getSymbolsIn;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer'),\n cloneDataView = require('./_cloneDataView'),\n cloneRegExp = require('./_cloneRegExp'),\n cloneSymbol = require('./_cloneSymbol'),\n cloneTypedArray = require('./_cloneTypedArray');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nmodule.exports = initCloneByTag;\n","var baseCreate = require('./_baseCreate'),\n getPrototype = require('./_getPrototype'),\n isPrototype = require('./_isPrototype');\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nmodule.exports = initCloneObject;\n","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","var baseGet = require('./_baseGet'),\n baseSlice = require('./_baseSlice');\n\n/**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\nfunction parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n}\n\nmodule.exports = parent;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","var baseClamp = require('./_baseClamp'),\n toNumber = require('./toNumber');\n\n/**\n * Clamps `number` within the inclusive `lower` and `upper` bounds.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Number\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n * @example\n *\n * _.clamp(-10, -5, 5);\n * // => -5\n *\n * _.clamp(10, -5, 5);\n * // => 5\n */\nfunction clamp(number, lower, upper) {\n if (upper === undefined) {\n upper = lower;\n lower = undefined;\n }\n if (upper !== undefined) {\n upper = toNumber(upper);\n upper = upper === upper ? upper : 0;\n }\n if (lower !== undefined) {\n lower = toNumber(lower);\n lower = lower === lower ? lower : 0;\n }\n return baseClamp(toNumber(number), lower, upper);\n}\n\nmodule.exports = clamp;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","var baseDelay = require('./_baseDelay'),\n baseRest = require('./_baseRest');\n\n/**\n * Defers invoking the `func` until the current call stack has cleared. Any\n * additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to defer.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.defer(function(text) {\n * console.log(text);\n * }, 'deferred');\n * // => Logs 'deferred' after one millisecond.\n */\nvar defer = baseRest(function(func, args) {\n return baseDelay(func, 1, args);\n});\n\nmodule.exports = defer;\n","var arrayEvery = require('./_arrayEvery'),\n baseEvery = require('./_baseEvery'),\n baseIteratee = require('./_baseIteratee'),\n isArray = require('./isArray'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\nfunction every(collection, predicate, guard) {\n var func = isArray(collection) ? arrayEvery : baseEvery;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = every;\n","var arrayFilter = require('./_arrayFilter'),\n baseFilter = require('./_baseFilter'),\n baseIteratee = require('./_baseIteratee'),\n isArray = require('./isArray');\n\n/**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\nfunction filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = filter;\n","var baseFlatten = require('./_baseFlatten');\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nmodule.exports = flatten;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var baseHas = require('./_baseHas'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\nfunction has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n}\n\nmodule.exports = has;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","var baseIndexOf = require('./_baseIndexOf'),\n isArrayLike = require('./isArrayLike'),\n isString = require('./isString'),\n toInteger = require('./toInteger'),\n values = require('./values');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\nfunction includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;\n\n var length = collection.length;\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n return isString(collection)\n ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)\n : (!!length && baseIndexOf(collection, value, fromIndex) > -1);\n}\n\nmodule.exports = includes;\n","var arrayMap = require('./_arrayMap'),\n baseIntersection = require('./_baseIntersection'),\n baseRest = require('./_baseRest'),\n castArrayLikeObject = require('./_castArrayLikeObject');\n\n/**\n * Creates an array of unique values that are included in all given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersection([2, 1], [2, 3]);\n * // => [2]\n */\nvar intersection = baseRest(function(arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped)\n : [];\n});\n\nmodule.exports = intersection;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseKeys = require('./_baseKeys'),\n getTag = require('./_getTag'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLike = require('./isArrayLike'),\n isBuffer = require('./isBuffer'),\n isPrototype = require('./_isPrototype'),\n isTypedArray = require('./isTypedArray');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\nfunction isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nmodule.exports = isEmpty;\n","var root = require('./_root');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsFinite = root.isFinite;\n\n/**\n * Checks if `value` is a finite primitive number.\n *\n * **Note:** This method is based on\n * [`Number.isFinite`](https://mdn.io/Number/isFinite).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a finite number, else `false`.\n * @example\n *\n * _.isFinite(3);\n * // => true\n *\n * _.isFinite(Number.MIN_VALUE);\n * // => true\n *\n * _.isFinite(Infinity);\n * // => false\n *\n * _.isFinite('3');\n * // => false\n */\nfunction isFinite(value) {\n return typeof value == 'number' && nativeIsFinite(value);\n}\n\nmodule.exports = isFinite;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","var baseIsMap = require('./_baseIsMap'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nmodule.exports = isMap;\n","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n","var baseIsSet = require('./_baseIsSet'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nmodule.exports = isSet;\n","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nmodule.exports = merge;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","var arrayMap = require('./_arrayMap'),\n baseClone = require('./_baseClone'),\n baseUnset = require('./_baseUnset'),\n castPath = require('./_castPath'),\n copyObject = require('./_copyObject'),\n customOmitClone = require('./_customOmitClone'),\n flatRest = require('./_flatRest'),\n getAllKeysIn = require('./_getAllKeysIn');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable property paths of `object` that are not omitted.\n *\n * **Note:** This method is considerably slower than `_.pick`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\nvar omit = flatRest(function(object, paths) {\n var result = {};\n if (object == null) {\n return result;\n }\n var isDeep = false;\n paths = arrayMap(paths, function(path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result);\n if (isDeep) {\n result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n var length = paths.length;\n while (length--) {\n baseUnset(result, paths[length]);\n }\n return result;\n});\n\nmodule.exports = omit;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","var baseRest = require('./_baseRest'),\n pullAll = require('./pullAll');\n\n/**\n * Removes all given values from `array` using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove`\n * to remove elements from an array by predicate.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...*} [values] The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pull(array, 'a', 'c');\n * console.log(array);\n * // => ['b', 'b']\n */\nvar pull = baseRest(pullAll);\n\nmodule.exports = pull;\n","var basePullAll = require('./_basePullAll');\n\n/**\n * This method is like `_.pull` except that it accepts an array of values to remove.\n *\n * **Note:** Unlike `_.difference`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pullAll(array, ['a', 'c']);\n * console.log(array);\n * // => ['b', 'b']\n */\nfunction pullAll(array, values) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values)\n : array;\n}\n\nmodule.exports = pullAll;\n","var baseFlatten = require('./_baseFlatten'),\n baseOrderBy = require('./_baseOrderBy'),\n baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\nvar sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n});\n\nmodule.exports = sortBy;\n","var debounce = require('./debounce'),\n isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;\n","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var baseValues = require('./_baseValues'),\n keys = require('./keys');\n\n/**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\nfunction values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n}\n\nmodule.exports = values;\n","// Source: http://jsfiddle.net/vWx8V/\n// http://stackoverflow.com/questions/5603195/full-list-of-javascript-keycodes\n\n/**\n * Conenience method returns corresponding value for given keyName or keyCode.\n *\n * @param {Mixed} keyCode {Number} or keyName {String}\n * @return {Mixed}\n * @api public\n */\n\nfunction keyCode(searchInput) {\n // Keyboard Events\n if (searchInput && 'object' === typeof searchInput) {\n var hasKeyCode = searchInput.which || searchInput.keyCode || searchInput.charCode\n if (hasKeyCode) searchInput = hasKeyCode\n }\n\n // Numbers\n if ('number' === typeof searchInput) return names[searchInput]\n\n // Everything else (cast to string)\n var search = String(searchInput)\n\n // check codes\n var foundNamedKey = codes[search.toLowerCase()]\n if (foundNamedKey) return foundNamedKey\n\n // check aliases\n var foundNamedKey = aliases[search.toLowerCase()]\n if (foundNamedKey) return foundNamedKey\n\n // weird character?\n if (search.length === 1) return search.charCodeAt(0)\n\n return undefined\n}\n\n/**\n * Compares a keyboard event with a given keyCode or keyName.\n *\n * @param {Event} event Keyboard event that should be tested\n * @param {Mixed} keyCode {Number} or keyName {String}\n * @return {Boolean}\n * @api public\n */\nkeyCode.isEventKey = function isEventKey(event, nameOrCode) {\n if (event && 'object' === typeof event) {\n var keyCode = event.which || event.keyCode || event.charCode\n if (keyCode === null || keyCode === undefined) { return false; }\n if (typeof nameOrCode === 'string') {\n // check codes\n var foundNamedKey = codes[nameOrCode.toLowerCase()]\n if (foundNamedKey) { return foundNamedKey === keyCode; }\n \n // check aliases\n var foundNamedKey = aliases[nameOrCode.toLowerCase()]\n if (foundNamedKey) { return foundNamedKey === keyCode; }\n } else if (typeof nameOrCode === 'number') {\n return nameOrCode === keyCode;\n }\n return false;\n }\n}\n\nexports = module.exports = keyCode;\n\n/**\n * Get by name\n *\n * exports.code['enter'] // => 13\n */\n\nvar codes = exports.code = exports.codes = {\n 'backspace': 8,\n 'tab': 9,\n 'enter': 13,\n 'shift': 16,\n 'ctrl': 17,\n 'alt': 18,\n 'pause/break': 19,\n 'caps lock': 20,\n 'esc': 27,\n 'space': 32,\n 'page up': 33,\n 'page down': 34,\n 'end': 35,\n 'home': 36,\n 'left': 37,\n 'up': 38,\n 'right': 39,\n 'down': 40,\n 'insert': 45,\n 'delete': 46,\n 'command': 91,\n 'left command': 91,\n 'right command': 93,\n 'numpad *': 106,\n 'numpad +': 107,\n 'numpad -': 109,\n 'numpad .': 110,\n 'numpad /': 111,\n 'num lock': 144,\n 'scroll lock': 145,\n 'my computer': 182,\n 'my calculator': 183,\n ';': 186,\n '=': 187,\n ',': 188,\n '-': 189,\n '.': 190,\n '/': 191,\n '`': 192,\n '[': 219,\n '\\\\': 220,\n ']': 221,\n \"'\": 222\n}\n\n// Helper aliases\n\nvar aliases = exports.aliases = {\n 'windows': 91,\n '⇧': 16,\n '⌥': 18,\n '⌃': 17,\n '⌘': 91,\n 'ctl': 17,\n 'control': 17,\n 'option': 18,\n 'pause': 19,\n 'break': 19,\n 'caps': 20,\n 'return': 13,\n 'escape': 27,\n 'spc': 32,\n 'spacebar': 32,\n 'pgup': 33,\n 'pgdn': 34,\n 'ins': 45,\n 'del': 46,\n 'cmd': 91\n}\n\n/*!\n * Programatically add the following\n */\n\n// lower case chars\nfor (i = 97; i < 123; i++) codes[String.fromCharCode(i)] = i - 32\n\n// numbers\nfor (var i = 48; i < 58; i++) codes[i - 48] = i\n\n// function keys\nfor (i = 1; i < 13; i++) codes['f'+i] = i + 111\n\n// numpad keys\nfor (i = 0; i < 10; i++) codes['numpad '+i] = i + 96\n\n/**\n * Get by code\n *\n * exports.name[13] // => 'Enter'\n */\n\nvar names = exports.names = exports.title = {} // title for backward compat\n\n// Create reverse mapping\nfor (i in codes) names[codes[i]] = i\n\n// Add aliases\nfor (var alias in aliases) {\n codes[alias] = aliases[alias]\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar stringifyPrimitive = function(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function(obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return map(objectKeys(obj), function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (isArray(obj[k])) {\n return map(obj[k], function(v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\n encodeURIComponent(stringifyPrimitive(obj));\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n\nfunction map (xs, f) {\n if (xs.map) return xs.map(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n res.push(f(xs[i], i));\n }\n return res;\n}\n\nvar objectKeys = Object.keys || function (obj) {\n var res = [];\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) res.push(key);\n }\n return res;\n};\n","'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');\n","/** @license React v16.14.0\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),n=require(\"object-assign\"),r=require(\"scheduler\");function u(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f}var C={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){C[a]=new v(a,0,!1,a,null,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];C[b]=new v(b,1,!1,a[1],null,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){C[a]=new v(a,2,!1,a.toLowerCase(),null,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){C[a]=new v(a,2,!1,a,null,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){C[a]=new v(a,3,!1,a.toLowerCase(),null,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){C[a]=new v(a,3,!0,a,null,!1)});[\"capture\",\"download\"].forEach(function(a){C[a]=new v(a,4,!1,a,null,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){C[a]=new v(a,6,!1,a,null,!1)});[\"rowSpan\",\"start\"].forEach(function(a){C[a]=new v(a,5,!1,a.toLowerCase(),null,!1)});var Ua=/[\\-:]([a-z])/g;function Va(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(Ua,\nVa);C[b]=new v(b,1,!1,a,null,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!1)});\nC.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!0)});var Wa=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;Wa.hasOwnProperty(\"ReactCurrentDispatcher\")||(Wa.ReactCurrentDispatcher={current:null});Wa.hasOwnProperty(\"ReactCurrentBatchConfig\")||(Wa.ReactCurrentBatchConfig={suspense:null});\nfunction Xa(a,b,c,d){var e=C.hasOwnProperty(b)?C[b]:null;var f=null!==e?0===e.type:d?!1:!(2=c.length))throw Error(u(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:rb(c)}}\nfunction Kb(a,b){var c=rb(b.value),d=rb(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function Lb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var Mb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction Nb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function Ob(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?Nb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar Pb,Qb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==Mb.svg||\"innerHTML\"in a)a.innerHTML=b;else{Pb=Pb||document.createElement(\"div\");Pb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=Pb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction Rb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}function Sb(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var Tb={animationend:Sb(\"Animation\",\"AnimationEnd\"),animationiteration:Sb(\"Animation\",\"AnimationIteration\"),animationstart:Sb(\"Animation\",\"AnimationStart\"),transitionend:Sb(\"Transition\",\"TransitionEnd\")},Ub={},Vb={};\nya&&(Vb=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Tb.animationend.animation,delete Tb.animationiteration.animation,delete Tb.animationstart.animation),\"TransitionEvent\"in window||delete Tb.transitionend.transition);function Wb(a){if(Ub[a])return Ub[a];if(!Tb[a])return a;var b=Tb[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Vb)return Ub[a]=b[c];return a}\nvar Xb=Wb(\"animationend\"),Yb=Wb(\"animationiteration\"),Zb=Wb(\"animationstart\"),$b=Wb(\"transitionend\"),ac=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),bc=new (\"function\"===typeof WeakMap?WeakMap:Map);function cc(a){var b=bc.get(a);void 0===b&&(b=new Map,bc.set(a,b));return b}\nfunction dc(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.effectTag&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function ec(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function fc(a){if(dc(a)!==a)throw Error(u(188));}\nfunction gc(a){var b=a.alternate;if(!b){b=dc(a);if(null===b)throw Error(u(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return fc(e),a;if(f===d)return fc(e),b;f=f.sibling}throw Error(u(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(u(189));}}if(c.alternate!==d)throw Error(u(190));}if(3!==c.tag)throw Error(u(188));return c.stateNode.current===c?a:b}function hc(a){a=gc(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}\nfunction ic(a,b){if(null==b)throw Error(u(30));if(null==a)return b;if(Array.isArray(a)){if(Array.isArray(b))return a.push.apply(a,b),a;a.push(b);return a}return Array.isArray(b)?[a].concat(b):[a,b]}function jc(a,b,c){Array.isArray(a)?a.forEach(b,c):a&&b.call(c,a)}var kc=null;\nfunction lc(a){if(a){var b=a._dispatchListeners,c=a._dispatchInstances;if(Array.isArray(b))for(var d=0;dpc.length&&pc.push(a)}\nfunction rc(a,b,c,d){if(pc.length){var e=pc.pop();e.topLevelType=a;e.eventSystemFlags=d;e.nativeEvent=b;e.targetInst=c;return e}return{topLevelType:a,eventSystemFlags:d,nativeEvent:b,targetInst:c,ancestors:[]}}\nfunction sc(a){var b=a.targetInst,c=b;do{if(!c){a.ancestors.push(c);break}var d=c;if(3===d.tag)d=d.stateNode.containerInfo;else{for(;d.return;)d=d.return;d=3!==d.tag?null:d.stateNode.containerInfo}if(!d)break;b=c.tag;5!==b&&6!==b||a.ancestors.push(c);c=tc(d)}while(c);for(c=0;c=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=ud(c)}}\nfunction wd(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?wd(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}function xd(){for(var a=window,b=td();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=td(a.document)}return b}\nfunction yd(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}var zd=\"$\",Ad=\"/$\",Bd=\"$?\",Cd=\"$!\",Dd=null,Ed=null;function Fd(a,b){switch(a){case \"button\":case \"input\":case \"select\":case \"textarea\":return!!b.autoFocus}return!1}\nfunction Gd(a,b){return\"textarea\"===a||\"option\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}var Hd=\"function\"===typeof setTimeout?setTimeout:void 0,Id=\"function\"===typeof clearTimeout?clearTimeout:void 0;function Jd(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a}\nfunction Kd(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(c===zd||c===Cd||c===Bd){if(0===b)return a;b--}else c===Ad&&b++}a=a.previousSibling}return null}var Ld=Math.random().toString(36).slice(2),Md=\"__reactInternalInstance$\"+Ld,Nd=\"__reactEventHandlers$\"+Ld,Od=\"__reactContainere$\"+Ld;\nfunction tc(a){var b=a[Md];if(b)return b;for(var c=a.parentNode;c;){if(b=c[Od]||c[Md]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Kd(a);null!==a;){if(c=a[Md])return c;a=Kd(a)}return b}a=c;c=a.parentNode}return null}function Nc(a){a=a[Md]||a[Od];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function Pd(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(u(33));}function Qd(a){return a[Nd]||null}\nfunction Rd(a){do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction Sd(a,b){var c=a.stateNode;if(!c)return null;var d=la(c);if(!d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==typeof c)throw Error(u(231,\nb,typeof c));return c}function Td(a,b,c){if(b=Sd(a,c.dispatchConfig.phasedRegistrationNames[b]))c._dispatchListeners=ic(c._dispatchListeners,b),c._dispatchInstances=ic(c._dispatchInstances,a)}function Ud(a){if(a&&a.dispatchConfig.phasedRegistrationNames){for(var b=a._targetInst,c=[];b;)c.push(b),b=Rd(b);for(b=c.length;0this.eventPool.length&&this.eventPool.push(a)}function de(a){a.eventPool=[];a.getPooled=ee;a.release=fe}var ge=G.extend({data:null}),he=G.extend({data:null}),ie=[9,13,27,32],je=ya&&\"CompositionEvent\"in window,ke=null;ya&&\"documentMode\"in document&&(ke=document.documentMode);\nvar le=ya&&\"TextEvent\"in window&&!ke,me=ya&&(!je||ke&&8=ke),ne=String.fromCharCode(32),oe={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"blur compositionend keydown keypress keyup mousedown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"blur compositionstart keydown keypress keyup mousedown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"blur compositionupdate keydown keypress keyup mousedown\".split(\" \")}},pe=!1;\nfunction qe(a,b){switch(a){case \"keyup\":return-1!==ie.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"blur\":return!0;default:return!1}}function re(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var se=!1;function te(a,b){switch(a){case \"compositionend\":return re(b);case \"keypress\":if(32!==b.which)return null;pe=!0;return ne;case \"textInput\":return a=b.data,a===ne&&pe?null:a;default:return null}}\nfunction ue(a,b){if(se)return\"compositionend\"===a||!je&&qe(a,b)?(a=ae(),$d=Zd=Yd=null,se=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=document.documentMode,df={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange\".split(\" \")}},ef=null,ff=null,gf=null,hf=!1;\nfunction jf(a,b){var c=b.window===b?b.document:9===b.nodeType?b:b.ownerDocument;if(hf||null==ef||ef!==td(c))return null;c=ef;\"selectionStart\"in c&&yd(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset});return gf&&bf(gf,c)?null:(gf=c,a=G.getPooled(df.select,ff,a,b),a.type=\"select\",a.target=ef,Xd(a),a)}\nvar kf={eventTypes:df,extractEvents:function(a,b,c,d,e,f){e=f||(d.window===d?d.document:9===d.nodeType?d:d.ownerDocument);if(!(f=!e)){a:{e=cc(e);f=wa.onSelect;for(var g=0;gzf||(a.current=yf[zf],yf[zf]=null,zf--)}\nfunction I(a,b){zf++;yf[zf]=a.current;a.current=b}var Af={},J={current:Af},K={current:!1},Bf=Af;function Cf(a,b){var c=a.type.contextTypes;if(!c)return Af;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function L(a){a=a.childContextTypes;return null!==a&&void 0!==a}\nfunction Df(){H(K);H(J)}function Ef(a,b,c){if(J.current!==Af)throw Error(u(168));I(J,b);I(K,c)}function Ff(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(u(108,pb(b)||\"Unknown\",e));return n({},c,{},d)}function Gf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Af;Bf=J.current;I(J,a);I(K,K.current);return!0}\nfunction Hf(a,b,c){var d=a.stateNode;if(!d)throw Error(u(169));c?(a=Ff(a,b,Bf),d.__reactInternalMemoizedMergedChildContext=a,H(K),H(J),I(J,a)):H(K);I(K,c)}\nvar If=r.unstable_runWithPriority,Jf=r.unstable_scheduleCallback,Kf=r.unstable_cancelCallback,Lf=r.unstable_requestPaint,Mf=r.unstable_now,Nf=r.unstable_getCurrentPriorityLevel,Of=r.unstable_ImmediatePriority,Pf=r.unstable_UserBlockingPriority,Qf=r.unstable_NormalPriority,Rf=r.unstable_LowPriority,Sf=r.unstable_IdlePriority,Tf={},Uf=r.unstable_shouldYield,Vf=void 0!==Lf?Lf:function(){},Wf=null,Xf=null,Yf=!1,Zf=Mf(),$f=1E4>Zf?Mf:function(){return Mf()-Zf};\nfunction ag(){switch(Nf()){case Of:return 99;case Pf:return 98;case Qf:return 97;case Rf:return 96;case Sf:return 95;default:throw Error(u(332));}}function bg(a){switch(a){case 99:return Of;case 98:return Pf;case 97:return Qf;case 96:return Rf;case 95:return Sf;default:throw Error(u(332));}}function cg(a,b){a=bg(a);return If(a,b)}function dg(a,b,c){a=bg(a);return Jf(a,b,c)}function eg(a){null===Wf?(Wf=[a],Xf=Jf(Of,fg)):Wf.push(a);return Tf}function gg(){if(null!==Xf){var a=Xf;Xf=null;Kf(a)}fg()}\nfunction fg(){if(!Yf&&null!==Wf){Yf=!0;var a=0;try{var b=Wf;cg(99,function(){for(;a=b&&(rg=!0),a.firstContext=null)}\nfunction sg(a,b){if(mg!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)mg=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===lg){if(null===kg)throw Error(u(308));lg=b;kg.dependencies={expirationTime:0,firstContext:b,responders:null}}else lg=lg.next=b}return a._currentValue}var tg=!1;function ug(a){a.updateQueue={baseState:a.memoizedState,baseQueue:null,shared:{pending:null},effects:null}}\nfunction vg(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,baseQueue:a.baseQueue,shared:a.shared,effects:a.effects})}function wg(a,b){a={expirationTime:a,suspenseConfig:b,tag:0,payload:null,callback:null,next:null};return a.next=a}function xg(a,b){a=a.updateQueue;if(null!==a){a=a.shared;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}}\nfunction yg(a,b){var c=a.alternate;null!==c&&vg(c,a);a=a.updateQueue;c=a.baseQueue;null===c?(a.baseQueue=b.next=b,b.next=b):(b.next=c.next,c.next=b)}\nfunction zg(a,b,c,d){var e=a.updateQueue;tg=!1;var f=e.baseQueue,g=e.shared.pending;if(null!==g){if(null!==f){var h=f.next;f.next=g.next;g.next=h}f=g;e.shared.pending=null;h=a.alternate;null!==h&&(h=h.updateQueue,null!==h&&(h.baseQueue=g))}if(null!==f){h=f.next;var k=e.baseState,l=0,m=null,p=null,x=null;if(null!==h){var z=h;do{g=z.expirationTime;if(gl&&(l=g)}else{null!==x&&(x=x.next={expirationTime:1073741823,suspenseConfig:z.suspenseConfig,tag:z.tag,payload:z.payload,callback:z.callback,next:null});Ag(g,z.suspenseConfig);a:{var D=a,t=z;g=b;ca=c;switch(t.tag){case 1:D=t.payload;if(\"function\"===typeof D){k=D.call(ca,k,g);break a}k=D;break a;case 3:D.effectTag=D.effectTag&-4097|64;case 0:D=t.payload;g=\"function\"===typeof D?D.call(ca,k,g):D;if(null===g||void 0===g)break a;k=n({},k,g);break a;case 2:tg=!0}}null!==z.callback&&\n(a.effectTag|=32,g=e.effects,null===g?e.effects=[z]:g.push(z))}z=z.next;if(null===z||z===h)if(g=e.shared.pending,null===g)break;else z=f.next=g.next,g.next=h,e.baseQueue=f=g,e.shared.pending=null}while(1)}null===x?m=k:x.next=p;e.baseState=m;e.baseQueue=x;Bg(l);a.expirationTime=l;a.memoizedState=k}}\nfunction Cg(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;by?(A=m,m=null):A=m.sibling;var q=x(e,m,h[y],k);if(null===q){null===m&&(m=A);break}a&&\nm&&null===q.alternate&&b(e,m);g=f(q,g,y);null===t?l=q:t.sibling=q;t=q;m=A}if(y===h.length)return c(e,m),l;if(null===m){for(;yy?(A=t,t=null):A=t.sibling;var D=x(e,t,q.value,l);if(null===D){null===t&&(t=A);break}a&&t&&null===D.alternate&&b(e,t);g=f(D,g,y);null===m?k=D:m.sibling=D;m=D;t=A}if(q.done)return c(e,t),k;if(null===t){for(;!q.done;y++,q=h.next())q=p(e,q.value,l),null!==q&&(g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);return k}for(t=d(e,t);!q.done;y++,q=h.next())q=z(t,e,y,q.value,l),null!==q&&(a&&null!==\nq.alternate&&t.delete(null===q.key?y:q.key),g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);a&&t.forEach(function(a){return b(e,a)});return k}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ab&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case Za:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ab){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,\nk.sibling);d=e(k,f.props);d.ref=Pg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ab?(d=Wg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Ug(f.type,f.key,f.props,null,a.mode,h),h.ref=Pg(a,d,f),h.return=a,a=h)}return g(a);case $a:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=\nd.sibling}d=Vg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Tg(f,a.mode,h),d.return=a,a=d),g(a);if(Og(f))return ca(a,d,f,h);if(nb(f))return D(a,d,f,h);l&&Qg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 0:throw a=a.type,Error(u(152,a.displayName||a.name||\"Component\"));}return c(a,d)}}var Xg=Rg(!0),Yg=Rg(!1),Zg={},$g={current:Zg},ah={current:Zg},bh={current:Zg};\nfunction ch(a){if(a===Zg)throw Error(u(174));return a}function dh(a,b){I(bh,b);I(ah,a);I($g,Zg);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:Ob(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=Ob(b,a)}H($g);I($g,b)}function eh(){H($g);H(ah);H(bh)}function fh(a){ch(bh.current);var b=ch($g.current);var c=Ob(b,a.type);b!==c&&(I(ah,a),I($g,c))}function gh(a){ah.current===a&&(H($g),H(ah))}var M={current:0};\nfunction hh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||c.data===Bd||c.data===Cd))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.effectTag&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}function ih(a,b){return{responder:a,props:b}}\nvar jh=Wa.ReactCurrentDispatcher,kh=Wa.ReactCurrentBatchConfig,lh=0,N=null,O=null,P=null,mh=!1;function Q(){throw Error(u(321));}function nh(a,b){if(null===b)return!1;for(var c=0;cf))throw Error(u(301));f+=1;P=O=null;b.updateQueue=null;jh.current=rh;a=c(d,e)}while(b.expirationTime===lh)}jh.current=sh;b=null!==O&&null!==O.next;lh=0;P=O=N=null;mh=!1;if(b)throw Error(u(300));return a}\nfunction th(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===P?N.memoizedState=P=a:P=P.next=a;return P}function uh(){if(null===O){var a=N.alternate;a=null!==a?a.memoizedState:null}else a=O.next;var b=null===P?N.memoizedState:P.next;if(null!==b)P=b,O=a;else{if(null===a)throw Error(u(310));O=a;a={memoizedState:O.memoizedState,baseState:O.baseState,baseQueue:O.baseQueue,queue:O.queue,next:null};null===P?N.memoizedState=P=a:P=P.next=a}return P}\nfunction vh(a,b){return\"function\"===typeof b?b(a):b}\nfunction wh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=O,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.expirationTime;if(lN.expirationTime&&\n(N.expirationTime=l,Bg(l))}else null!==h&&(h=h.next={expirationTime:1073741823,suspenseConfig:k.suspenseConfig,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),Ag(l,k.suspenseConfig),d=k.eagerReducer===a?k.eagerState:a(d,k.action);k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;$e(d,b.memoizedState)||(rg=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction xh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);$e(f,b.memoizedState)||(rg=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction yh(a){var b=th();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={pending:null,dispatch:null,lastRenderedReducer:vh,lastRenderedState:a};a=a.dispatch=zh.bind(null,N,a);return[b.memoizedState,a]}function Ah(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=N.updateQueue;null===b?(b={lastEffect:null},N.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}\nfunction Bh(){return uh().memoizedState}function Ch(a,b,c,d){var e=th();N.effectTag|=a;e.memoizedState=Ah(1|b,c,void 0,void 0===d?null:d)}function Dh(a,b,c,d){var e=uh();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&nh(d,g.deps)){Ah(b,c,f,d);return}}N.effectTag|=a;e.memoizedState=Ah(1|b,c,f,d)}function Eh(a,b){return Ch(516,4,a,b)}function Fh(a,b){return Dh(516,4,a,b)}function Gh(a,b){return Dh(4,2,a,b)}\nfunction Hh(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function Ih(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Dh(4,2,Hh.bind(null,b,a),c)}function Jh(){}function Kh(a,b){th().memoizedState=[a,void 0===b?null:b];return a}function Lh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Mh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function Nh(a,b,c){var d=ag();cg(98>d?98:d,function(){a(!0)});cg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(e,{is:d.is}):(a=g.createElement(e),\"select\"===e&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,e);a[Md]=b;a[Nd]=d;ni(a,b,!1,!1);b.stateNode=a;g=pd(e,d);switch(e){case \"iframe\":case \"object\":case \"embed\":F(\"load\",\na);h=d;break;case \"video\":case \"audio\":for(h=0;hd.tailExpiration&&1b)&&tj.set(a,b)))}}\nfunction xj(a,b){a.expirationTimea?c:a;return 2>=a&&b!==a?0:a}\nfunction Z(a){if(0!==a.lastExpiredTime)a.callbackExpirationTime=1073741823,a.callbackPriority=99,a.callbackNode=eg(yj.bind(null,a));else{var b=zj(a),c=a.callbackNode;if(0===b)null!==c&&(a.callbackNode=null,a.callbackExpirationTime=0,a.callbackPriority=90);else{var d=Gg();1073741823===b?d=99:1===b||2===b?d=95:(d=10*(1073741821-b)-10*(1073741821-d),d=0>=d?99:250>=d?98:5250>=d?97:95);if(null!==c){var e=a.callbackPriority;if(a.callbackExpirationTime===b&&e>=d)return;c!==Tf&&Kf(c)}a.callbackExpirationTime=\nb;a.callbackPriority=d;b=1073741823===b?eg(yj.bind(null,a)):dg(d,Bj.bind(null,a),{timeout:10*(1073741821-b)-$f()});a.callbackNode=b}}}\nfunction Bj(a,b){wj=0;if(b)return b=Gg(),Cj(a,b),Z(a),null;var c=zj(a);if(0!==c){b=a.callbackNode;if((W&(fj|gj))!==V)throw Error(u(327));Dj();a===T&&c===U||Ej(a,c);if(null!==X){var d=W;W|=fj;var e=Fj();do try{Gj();break}catch(h){Hj(a,h)}while(1);ng();W=d;cj.current=e;if(S===hj)throw b=kj,Ej(a,c),xi(a,c),Z(a),b;if(null===X)switch(e=a.finishedWork=a.current.alternate,a.finishedExpirationTime=c,d=S,T=null,d){case ti:case hj:throw Error(u(345));case ij:Cj(a,2=c){a.lastPingedTime=c;Ej(a,c);break}}f=zj(a);if(0!==f&&f!==c)break;if(0!==d&&d!==c){a.lastPingedTime=d;break}a.timeoutHandle=Hd(Jj.bind(null,a),e);break}Jj(a);break;case vi:xi(a,c);d=a.lastSuspendedTime;c===d&&(a.nextKnownPendingLevel=Ij(e));if(oj&&(e=a.lastPingedTime,0===e||e>=c)){a.lastPingedTime=c;Ej(a,c);break}e=zj(a);if(0!==e&&e!==c)break;if(0!==d&&d!==c){a.lastPingedTime=\nd;break}1073741823!==mj?d=10*(1073741821-mj)-$f():1073741823===lj?d=0:(d=10*(1073741821-lj)-5E3,e=$f(),c=10*(1073741821-c)-e,d=e-d,0>d&&(d=0),d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*bj(d/1960))-d,c=d?d=0:(e=g.busyDelayMs|0,f=$f()-(10*(1073741821-f)-(g.timeoutMs|0||5E3)),d=f<=e?0:e+d-f);if(10 component higher in the tree to provide a loading indicator or placeholder to display.\"+qb(g))}S!==\njj&&(S=ij);h=Ai(h,g);p=f;do{switch(p.tag){case 3:k=h;p.effectTag|=4096;p.expirationTime=b;var B=Xi(p,k,b);yg(p,B);break a;case 1:k=h;var w=p.type,ub=p.stateNode;if(0===(p.effectTag&64)&&(\"function\"===typeof w.getDerivedStateFromError||null!==ub&&\"function\"===typeof ub.componentDidCatch&&(null===aj||!aj.has(ub)))){p.effectTag|=4096;p.expirationTime=b;var vb=$i(p,k,b);yg(p,vb);break a}}p=p.return}while(null!==p)}X=Pj(X)}catch(Xc){b=Xc;continue}break}while(1)}\nfunction Fj(){var a=cj.current;cj.current=sh;return null===a?sh:a}function Ag(a,b){awi&&(wi=a)}function Kj(){for(;null!==X;)X=Qj(X)}function Gj(){for(;null!==X&&!Uf();)X=Qj(X)}function Qj(a){var b=Rj(a.alternate,a,U);a.memoizedProps=a.pendingProps;null===b&&(b=Pj(a));dj.current=null;return b}\nfunction Pj(a){X=a;do{var b=X.alternate;a=X.return;if(0===(X.effectTag&2048)){b=si(b,X,U);if(1===U||1!==X.childExpirationTime){for(var c=0,d=X.child;null!==d;){var e=d.expirationTime,f=d.childExpirationTime;e>c&&(c=e);f>c&&(c=f);d=d.sibling}X.childExpirationTime=c}if(null!==b)return b;null!==a&&0===(a.effectTag&2048)&&(null===a.firstEffect&&(a.firstEffect=X.firstEffect),null!==X.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=X.firstEffect),a.lastEffect=X.lastEffect),1a?b:a}function Jj(a){var b=ag();cg(99,Sj.bind(null,a,b));return null}\nfunction Sj(a,b){do Dj();while(null!==rj);if((W&(fj|gj))!==V)throw Error(u(327));var c=a.finishedWork,d=a.finishedExpirationTime;if(null===c)return null;a.finishedWork=null;a.finishedExpirationTime=0;if(c===a.current)throw Error(u(177));a.callbackNode=null;a.callbackExpirationTime=0;a.callbackPriority=90;a.nextKnownPendingLevel=0;var e=Ij(c);a.firstPendingTime=e;d<=a.lastSuspendedTime?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:d<=a.firstSuspendedTime&&(a.firstSuspendedTime=\nd-1);d<=a.lastPingedTime&&(a.lastPingedTime=0);d<=a.lastExpiredTime&&(a.lastExpiredTime=0);a===T&&(X=T=null,U=0);1h&&(l=h,h=g,g=l),l=vd(q,g),m=vd(q,h),l&&m&&(1!==w.rangeCount||w.anchorNode!==l.node||w.anchorOffset!==l.offset||w.focusNode!==m.node||w.focusOffset!==m.offset)&&(B=B.createRange(),B.setStart(l.node,l.offset),w.removeAllRanges(),g>h?(w.addRange(B),w.extend(m.node,m.offset)):(B.setEnd(m.node,m.offset),w.addRange(B))))));B=[];for(w=q;w=w.parentNode;)1===w.nodeType&&B.push({element:w,left:w.scrollLeft,\ntop:w.scrollTop});\"function\"===typeof q.focus&&q.focus();for(q=0;q=c)return ji(a,b,c);I(M,M.current&1);b=$h(a,b,c);return null!==b?b.sibling:null}I(M,M.current&1);break;case 19:d=b.childExpirationTime>=c;if(0!==(a.effectTag&64)){if(d)return mi(a,b,c);b.effectTag|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null);I(M,M.current);if(!d)return null}return $h(a,b,c)}rg=!1}}else rg=!1;b.expirationTime=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;e=Cf(b,J.current);qg(b,c);e=oh(null,\nb,d,a,e,c);b.effectTag|=1;if(\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(L(d)){var f=!0;Gf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;ug(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Fg(b,d,g,a);e.updater=Jg;b.stateNode=e;e._reactInternalFiber=b;Ng(b,d,a,c);b=gi(null,b,d,!0,f,c)}else b.tag=0,R(null,b,e,c),b=b.child;return b;case 16:a:{e=b.elementType;null!==a&&(a.alternate=\nnull,b.alternate=null,b.effectTag|=2);a=b.pendingProps;ob(e);if(1!==e._status)throw e._result;e=e._result;b.type=e;f=b.tag=Xj(e);a=ig(e,a);switch(f){case 0:b=di(null,b,e,a,c);break a;case 1:b=fi(null,b,e,a,c);break a;case 11:b=Zh(null,b,e,a,c);break a;case 14:b=ai(null,b,e,ig(e.type,a),d,c);break a}throw Error(u(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),di(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),fi(a,b,d,e,c);\ncase 3:hi(b);d=b.updateQueue;if(null===a||null===d)throw Error(u(282));d=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;vg(a,b);zg(b,d,null,c);d=b.memoizedState.element;if(d===e)Xh(),b=$h(a,b,c);else{if(e=b.stateNode.hydrate)Ph=Jd(b.stateNode.containerInfo.firstChild),Oh=b,e=Qh=!0;if(e)for(c=Yg(b,null,d,c),b.child=c;c;)c.effectTag=c.effectTag&-3|1024,c=c.sibling;else R(a,b,d,c),Xh();b=b.child}return b;case 5:return fh(b),null===a&&Uh(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:\nnull,g=e.children,Gd(d,e)?g=null:null!==f&&Gd(d,f)&&(b.effectTag|=16),ei(a,b),b.mode&4&&1!==c&&e.hidden?(b.expirationTime=b.childExpirationTime=1,b=null):(R(a,b,g,c),b=b.child),b;case 6:return null===a&&Uh(b),null;case 13:return ji(a,b,c);case 4:return dh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Xg(b,null,d,c):R(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),Zh(a,b,d,e,c);case 7:return R(a,b,b.pendingProps,c),b.child;case 8:return R(a,\nb,b.pendingProps.children,c),b.child;case 12:return R(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;var h=b.type._context;I(jg,h._currentValue);h._currentValue=f;if(null!==g)if(h=g.value,f=$e(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0,0===f){if(g.children===e.children&&!K.current){b=$h(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==\nk){g=h.child;for(var l=k.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=wg(c,null),l.tag=2,xg(h,l));h.expirationTime=b&&a<=b}function xi(a,b){var c=a.firstSuspendedTime,d=a.lastSuspendedTime;cb||0===c)a.lastSuspendedTime=b;b<=a.lastPingedTime&&(a.lastPingedTime=0);b<=a.lastExpiredTime&&(a.lastExpiredTime=0)}\nfunction yi(a,b){b>a.firstPendingTime&&(a.firstPendingTime=b);var c=a.firstSuspendedTime;0!==c&&(b>=c?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:b>=a.lastSuspendedTime&&(a.lastSuspendedTime=b+1),b>a.nextKnownPendingLevel&&(a.nextKnownPendingLevel=b))}function Cj(a,b){var c=a.lastExpiredTime;if(0===c||c>b)a.lastExpiredTime=b}\nfunction bk(a,b,c,d){var e=b.current,f=Gg(),g=Dg.suspense;f=Hg(f,e,g);a:if(c){c=c._reactInternalFiber;b:{if(dc(c)!==c||1!==c.tag)throw Error(u(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(L(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(u(171));}if(1===c.tag){var k=c.type;if(L(k)){c=Ff(c,k,h);break a}}c=h}else c=Af;null===b.context?b.context=c:b.pendingContext=c;b=wg(f,g);b.payload={element:a};d=void 0===\nd?null:d;null!==d&&(b.callback=d);xg(e,b);Ig(e,f);return f}function ck(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function dk(a,b){a=a.memoizedState;null!==a&&null!==a.dehydrated&&a.retryTime` API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\n\nconst NavigationContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n NavigationContext.displayName = \"Navigation\";\n}\nconst LocationContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n LocationContext.displayName = \"Location\";\n}\nconst RouteContext = /*#__PURE__*/React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false\n});\nif (process.env.NODE_ENV !== \"production\") {\n RouteContext.displayName = \"Route\";\n}\nconst RouteErrorContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n RouteErrorContext.displayName = \"RouteError\";\n}\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nfunction useHref(to, _temp) {\n let {\n relative\n } = _temp === void 0 ? {} : _temp;\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useHref() may be used only in the context of a component.\") : UNSAFE_invariant(false) : void 0;\n let {\n basename,\n navigator\n } = React.useContext(NavigationContext);\n let {\n hash,\n pathname,\n search\n } = useResolvedPath(to, {\n relative\n });\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname = pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n return navigator.createHref({\n pathname: joinedPathname,\n search,\n hash\n });\n}\n\n/**\n * Returns true if this component is a descendant of a ``.\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nfunction useInRouterContext() {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nfunction useLocation() {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useLocation() may be used only in the context of a component.\") : UNSAFE_invariant(false) : void 0;\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nfunction useNavigationType() {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * ``.\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nfunction useMatch(pattern) {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useMatch() may be used only in the context of a component.\") : UNSAFE_invariant(false) : void 0;\n let {\n pathname\n } = useLocation();\n return React.useMemo(() => matchPath(pattern, pathname), [pathname, pattern]);\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\n\nconst navigateEffectWarning = \"You should call navigate() in a React.useEffect(), not when \" + \"your component is first rendered.\";\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(cb) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by ``s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nfunction useNavigate() {\n let {\n isDataRoute\n } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\nfunction useNavigateUnstable() {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useNavigate() may be used only in the context of a component.\") : UNSAFE_invariant(false) : void 0;\n let dataRouterContext = React.useContext(DataRouterContext);\n let {\n basename,\n future,\n navigator\n } = React.useContext(NavigationContext);\n let {\n matches\n } = React.useContext(RouteContext);\n let {\n pathname: locationPathname\n } = useLocation();\n let routePathnamesJson = JSON.stringify(UNSAFE_getResolveToMatches(matches, future.v7_relativeSplatPath));\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n let navigate = React.useCallback(function (to, options) {\n if (options === void 0) {\n options = {};\n }\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(activeRef.current, navigateEffectWarning) : void 0;\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n let path = resolveTo(to, JSON.parse(routePathnamesJson), locationPathname, options.relative === \"path\");\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname = path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n (!!options.replace ? navigator.replace : navigator.push)(path, options.state, options);\n }, [basename, navigator, routePathnamesJson, locationPathname, dataRouterContext]);\n return navigate;\n}\nconst OutletContext = /*#__PURE__*/React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nfunction useOutletContext() {\n return React.useContext(OutletContext);\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by `` to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nfunction useOutlet(context) {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return /*#__PURE__*/React.createElement(OutletContext.Provider, {\n value: context\n }, outlet);\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nfunction useParams() {\n let {\n matches\n } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? routeMatch.params : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nfunction useResolvedPath(to, _temp2) {\n let {\n relative\n } = _temp2 === void 0 ? {} : _temp2;\n let {\n future\n } = React.useContext(NavigationContext);\n let {\n matches\n } = React.useContext(RouteContext);\n let {\n pathname: locationPathname\n } = useLocation();\n let routePathnamesJson = JSON.stringify(UNSAFE_getResolveToMatches(matches, future.v7_relativeSplatPath));\n return React.useMemo(() => resolveTo(to, JSON.parse(routePathnamesJson), locationPathname, relative === \"path\"), [to, routePathnamesJson, locationPathname, relative]);\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an `` to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nfunction useRoutes(routes, locationArg) {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nfunction useRoutesImpl(routes, locationArg, dataRouterState, future) {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useRoutes() may be used only in the context of a component.\") : UNSAFE_invariant(false) : void 0;\n let {\n navigator\n } = React.useContext(NavigationContext);\n let {\n matches: parentMatches\n } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n if (process.env.NODE_ENV !== \"production\") {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = parentRoute && parentRoute.path || \"\";\n warningOnce(parentPathname, !parentRoute || parentPath.endsWith(\"*\"), \"You rendered descendant (or called `useRoutes()`) at \" + (\"\\\"\" + parentPathname + \"\\\" (under ) but the \") + \"parent route path has no trailing \\\"*\\\". This means if you navigate \" + \"deeper, the parent won't match anymore and therefore the child \" + \"routes will never render.\\n\\n\" + (\"Please change the parent to .\"));\n }\n let locationFromContext = useLocation();\n let location;\n if (locationArg) {\n var _parsedLocationArg$pa;\n let parsedLocationArg = typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n !(parentPathnameBase === \"/\" || ((_parsedLocationArg$pa = parsedLocationArg.pathname) == null ? void 0 : _parsedLocationArg$pa.startsWith(parentPathnameBase))) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"When overriding the location using `` or `useRoutes(routes, location)`, \" + \"the location pathname must begin with the portion of the URL pathname that was \" + (\"matched by all parent routes. The current pathname base is \\\"\" + parentPathnameBase + \"\\\" \") + (\"but pathname \\\"\" + parsedLocationArg.pathname + \"\\\" was given in the `location` prop.\")) : UNSAFE_invariant(false) : void 0;\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n let pathname = location.pathname || \"/\";\n let remainingPathname = parentPathnameBase === \"/\" ? pathname : pathname.slice(parentPathnameBase.length) || \"/\";\n let matches = matchRoutes(routes, {\n pathname: remainingPathname\n });\n if (process.env.NODE_ENV !== \"production\") {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(parentRoute || matches != null, \"No routes matched location \\\"\" + location.pathname + location.search + location.hash + \"\\\" \") : void 0;\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(matches == null || matches[matches.length - 1].route.element !== undefined || matches[matches.length - 1].route.Component !== undefined || matches[matches.length - 1].route.lazy !== undefined, \"Matched leaf route at location \\\"\" + location.pathname + location.search + location.hash + \"\\\" \" + \"does not have an element or Component. This means it will render an with a \" + \"null value by default resulting in an \\\"empty\\\" page.\") : void 0;\n }\n let renderedMatches = _renderMatches(matches && matches.map(match => Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation ? navigator.encodeLocation(match.pathname).pathname : match.pathname]),\n pathnameBase: match.pathnameBase === \"/\" ? parentPathnameBase : joinPaths([parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation ? navigator.encodeLocation(match.pathnameBase).pathname : match.pathnameBase])\n })), parentMatches, dataRouterState, future);\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return /*#__PURE__*/React.createElement(LocationContext.Provider, {\n value: {\n location: _extends({\n pathname: \"/\",\n search: \"\",\n hash: \"\",\n state: null,\n key: \"default\"\n }, location),\n navigationType: Action.Pop\n }\n }, renderedMatches);\n }\n return renderedMatches;\n}\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error) ? error.status + \" \" + error.statusText : error instanceof Error ? error.message : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = {\n padding: \"0.5rem\",\n backgroundColor: lightgrey\n };\n let codeStyles = {\n padding: \"2px 4px\",\n backgroundColor: lightgrey\n };\n let devInfo = null;\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\"Error handled by React Router default ErrorBoundary:\", error);\n devInfo = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"p\", null, \"\\uD83D\\uDCBF Hey developer \\uD83D\\uDC4B\"), /*#__PURE__*/React.createElement(\"p\", null, \"You can provide a way better UX than this when your app throws errors by providing your own \", /*#__PURE__*/React.createElement(\"code\", {\n style: codeStyles\n }, \"ErrorBoundary\"), \" or\", \" \", /*#__PURE__*/React.createElement(\"code\", {\n style: codeStyles\n }, \"errorElement\"), \" prop on your route.\"));\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"h2\", null, \"Unexpected Application Error!\"), /*#__PURE__*/React.createElement(\"h3\", {\n style: {\n fontStyle: \"italic\"\n }\n }, message), stack ? /*#__PURE__*/React.createElement(\"pre\", {\n style: preStyles\n }, stack) : null, devInfo);\n}\nconst defaultErrorElement = /*#__PURE__*/React.createElement(DefaultErrorComponent, null);\nclass RenderErrorBoundary extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error\n };\n }\n static getDerivedStateFromError(error) {\n return {\n error: error\n };\n }\n static getDerivedStateFromProps(props, state) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (state.location !== props.location || state.revalidation !== \"idle\" && props.revalidation === \"idle\") {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error !== undefined ? props.error : state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation\n };\n }\n componentDidCatch(error, errorInfo) {\n console.error(\"React Router caught the following error during render\", error, errorInfo);\n }\n render() {\n return this.state.error !== undefined ? /*#__PURE__*/React.createElement(RouteContext.Provider, {\n value: this.props.routeContext\n }, /*#__PURE__*/React.createElement(RouteErrorContext.Provider, {\n value: this.state.error,\n children: this.props.component\n })) : this.props.children;\n }\n}\nfunction RenderedRoute(_ref) {\n let {\n routeContext,\n match,\n children\n } = _ref;\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (dataRouterContext && dataRouterContext.static && dataRouterContext.staticContext && (match.route.errorElement || match.route.ErrorBoundary)) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n return /*#__PURE__*/React.createElement(RouteContext.Provider, {\n value: routeContext\n }, children);\n}\nfunction _renderMatches(matches, parentMatches, dataRouterState, future) {\n var _dataRouterState2;\n if (parentMatches === void 0) {\n parentMatches = [];\n }\n if (dataRouterState === void 0) {\n dataRouterState = null;\n }\n if (future === void 0) {\n future = null;\n }\n if (matches == null) {\n var _dataRouterState;\n if ((_dataRouterState = dataRouterState) != null && _dataRouterState.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches;\n } else {\n return null;\n }\n }\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = (_dataRouterState2 = dataRouterState) == null ? void 0 : _dataRouterState2.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(m => m.route.id && (errors == null ? void 0 : errors[m.route.id]));\n !(errorIndex >= 0) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"Could not find a matching route for errors on route IDs: \" + Object.keys(errors).join(\",\")) : UNSAFE_invariant(false) : void 0;\n renderedMatches = renderedMatches.slice(0, Math.min(renderedMatches.length, errorIndex + 1));\n }\n\n // If we're in a partial hydration mode, detect if we need to render down to\n // a given HydrateFallback while we load the rest of the hydration data\n let renderFallback = false;\n let fallbackIndex = -1;\n if (dataRouterState && future && future.v7_partialHydration) {\n for (let i = 0; i < renderedMatches.length; i++) {\n let match = renderedMatches[i];\n // Track the deepest fallback up until the first route without data\n if (match.route.HydrateFallback || match.route.hydrateFallbackElement) {\n fallbackIndex = i;\n }\n if (match.route.id) {\n let {\n loaderData,\n errors\n } = dataRouterState;\n let needsToRunLoader = match.route.loader && loaderData[match.route.id] === undefined && (!errors || errors[match.route.id] === undefined);\n if (match.route.lazy || needsToRunLoader) {\n // We found the first route that's not ready to render (waiting on\n // lazy, or has a loader that hasn't run yet). Flag that we need to\n // render a fallback and render up until the appropriate fallback\n renderFallback = true;\n if (fallbackIndex >= 0) {\n renderedMatches = renderedMatches.slice(0, fallbackIndex + 1);\n } else {\n renderedMatches = [renderedMatches[0]];\n }\n break;\n }\n }\n }\n }\n return renderedMatches.reduceRight((outlet, match, index) => {\n // Only data routers handle errors/fallbacks\n let error;\n let shouldRenderHydrateFallback = false;\n let errorElement = null;\n let hydrateFallbackElement = null;\n if (dataRouterState) {\n error = errors && match.route.id ? errors[match.route.id] : undefined;\n errorElement = match.route.errorElement || defaultErrorElement;\n if (renderFallback) {\n if (fallbackIndex < 0 && index === 0) {\n warningOnce(\"route-fallback\", false, \"No `HydrateFallback` element provided to render during initial hydration\");\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = null;\n } else if (fallbackIndex === index) {\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = match.route.hydrateFallbackElement || null;\n }\n }\n }\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children;\n if (error) {\n children = errorElement;\n } else if (shouldRenderHydrateFallback) {\n children = hydrateFallbackElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `` in `` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = /*#__PURE__*/React.createElement(match.route.Component, null);\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return /*#__PURE__*/React.createElement(RenderedRoute, {\n match: match,\n routeContext: {\n outlet,\n matches,\n isDataRoute: dataRouterState != null\n },\n children: children\n });\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState && (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? /*#__PURE__*/React.createElement(RenderErrorBoundary, {\n location: dataRouterState.location,\n revalidation: dataRouterState.revalidation,\n component: errorElement,\n error: error,\n children: getChildren(),\n routeContext: {\n outlet: null,\n matches,\n isDataRoute: true\n }\n }) : getChildren();\n }, null);\n}\nvar DataRouterHook = /*#__PURE__*/function (DataRouterHook) {\n DataRouterHook[\"UseBlocker\"] = \"useBlocker\";\n DataRouterHook[\"UseRevalidator\"] = \"useRevalidator\";\n DataRouterHook[\"UseNavigateStable\"] = \"useNavigate\";\n return DataRouterHook;\n}(DataRouterHook || {});\nvar DataRouterStateHook = /*#__PURE__*/function (DataRouterStateHook) {\n DataRouterStateHook[\"UseBlocker\"] = \"useBlocker\";\n DataRouterStateHook[\"UseLoaderData\"] = \"useLoaderData\";\n DataRouterStateHook[\"UseActionData\"] = \"useActionData\";\n DataRouterStateHook[\"UseRouteError\"] = \"useRouteError\";\n DataRouterStateHook[\"UseNavigation\"] = \"useNavigation\";\n DataRouterStateHook[\"UseRouteLoaderData\"] = \"useRouteLoaderData\";\n DataRouterStateHook[\"UseMatches\"] = \"useMatches\";\n DataRouterStateHook[\"UseRevalidator\"] = \"useRevalidator\";\n DataRouterStateHook[\"UseNavigateStable\"] = \"useNavigate\";\n DataRouterStateHook[\"UseRouteId\"] = \"useRouteId\";\n return DataRouterStateHook;\n}(DataRouterStateHook || {});\nfunction getDataRouterConsoleError(hookName) {\n return hookName + \" must be used within a data router. See https://reactrouter.com/routers/picking-a-router.\";\n}\nfunction useDataRouterContext(hookName) {\n let ctx = React.useContext(DataRouterContext);\n !ctx ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return ctx;\n}\nfunction useDataRouterState(hookName) {\n let state = React.useContext(DataRouterStateContext);\n !state ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return state;\n}\nfunction useRouteContext(hookName) {\n let route = React.useContext(RouteContext);\n !route ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n !thisRoute.route.id ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, hookName + \" can only be used on routes that contain a unique \\\"id\\\"\") : UNSAFE_invariant(false) : void 0;\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nfunction useRouteId() {\n return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nfunction useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nfunction useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return React.useMemo(() => ({\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation\n }), [dataRouterContext.router.revalidate, state.revalidation]);\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nfunction useMatches() {\n let {\n matches,\n loaderData\n } = useDataRouterState(DataRouterStateHook.UseMatches);\n return React.useMemo(() => matches.map(m => UNSAFE_convertRouteMatchToUiMatch(m, loaderData)), [matches, loaderData]);\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nfunction useLoaderData() {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n if (state.errors && state.errors[routeId] != null) {\n console.error(\"You cannot `useLoaderData` in an errorElement (routeId: \" + routeId + \")\");\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nfunction useRouteLoaderData(routeId) {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nfunction useActionData() {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n return state.actionData ? state.actionData[routeId] : undefined;\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nfunction useRouteError() {\n var _state$errors;\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error !== undefined) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return (_state$errors = state.errors) == null ? void 0 : _state$errors[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor `` value\n */\nfunction useAsyncValue() {\n let value = React.useContext(AwaitContext);\n return value == null ? void 0 : value._data;\n}\n\n/**\n * Returns the error from the nearest ancestor `` value\n */\nfunction useAsyncError() {\n let value = React.useContext(AwaitContext);\n return value == null ? void 0 : value._error;\n}\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nfunction useBlocker(shouldBlock) {\n let {\n router,\n basename\n } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n let [blockerKey, setBlockerKey] = React.useState(\"\");\n let blockerFunction = React.useCallback(arg => {\n if (typeof shouldBlock !== \"function\") {\n return !!shouldBlock;\n }\n if (basename === \"/\") {\n return shouldBlock(arg);\n }\n\n // If they provided us a function and we've got an active basename, strip\n // it from the locations we expose to the user to match the behavior of\n // useLocation\n let {\n currentLocation,\n nextLocation,\n historyAction\n } = arg;\n return shouldBlock({\n currentLocation: _extends({}, currentLocation, {\n pathname: stripBasename(currentLocation.pathname, basename) || currentLocation.pathname\n }),\n nextLocation: _extends({}, nextLocation, {\n pathname: stripBasename(nextLocation.pathname, basename) || nextLocation.pathname\n }),\n historyAction\n });\n }, [basename, shouldBlock]);\n\n // This effect is in charge of blocker key assignment and deletion (which is\n // tightly coupled to the key)\n React.useEffect(() => {\n let key = String(++blockerId);\n setBlockerKey(key);\n return () => router.deleteBlocker(key);\n }, [router]);\n\n // This effect handles assigning the blockerFunction. This is to handle\n // unstable blocker function identities, and happens only after the prior\n // effect so we don't get an orphaned blockerFunction in the router with a\n // key of \"\". Until then we just have the IDLE_BLOCKER.\n React.useEffect(() => {\n if (blockerKey !== \"\") {\n router.getBlocker(blockerKey, blockerFunction);\n }\n }, [router, blockerKey, blockerFunction]);\n\n // Prefer the blocker from `state` not `router.state` since DataRouterContext\n // is memoized so this ensures we update on blocker state updates\n return blockerKey && state.blockers.has(blockerKey) ? state.blockers.get(blockerKey) : IDLE_BLOCKER;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable() {\n let {\n router\n } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n let navigate = React.useCallback(function (to, options) {\n if (options === void 0) {\n options = {};\n }\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(activeRef.current, navigateEffectWarning) : void 0;\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our router subscriber yet\n if (!activeRef.current) return;\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, _extends({\n fromRouteId: id\n }, options));\n }\n }, [router, id]);\n return navigate;\n}\nconst alreadyWarned = {};\nfunction warningOnce(key, cond, message) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, message) : void 0;\n }\n}\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nfunction RouterProvider(_ref) {\n let {\n fallbackElement,\n router,\n future\n } = _ref;\n let [state, setStateImpl] = React.useState(router.state);\n let {\n v7_startTransition\n } = future || {};\n let setState = React.useCallback(newState => {\n if (v7_startTransition && startTransitionImpl) {\n startTransitionImpl(() => setStateImpl(newState));\n } else {\n setStateImpl(newState);\n }\n }, [setStateImpl, v7_startTransition]);\n\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n React.useEffect(() => {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(fallbackElement == null || !router.future.v7_partialHydration, \"`` is deprecated when using \" + \"`v7_partialHydration`, use a `HydrateFallback` component instead\") : void 0;\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n let navigator = React.useMemo(() => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: n => router.navigate(n),\n push: (to, state, opts) => router.navigate(to, {\n state,\n preventScrollReset: opts == null ? void 0 : opts.preventScrollReset\n }),\n replace: (to, state, opts) => router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts == null ? void 0 : opts.preventScrollReset\n })\n };\n }, [router]);\n let basename = router.basename || \"/\";\n let dataRouterContext = React.useMemo(() => ({\n router,\n navigator,\n static: false,\n basename\n }), [router, navigator, basename]);\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a + + + + + <% page_path = "/static/app/" + app_name + "/js/build/entry_page.js" %> + + + + diff --git a/TA-opencti-for-splunk-enterprise/bin/TA_opencti_for_splunk_enterprise_rh_opencti_stream.py b/TA-opencti-for-splunk-enterprise/bin/TA_opencti_for_splunk_enterprise_rh_opencti_stream.py new file mode 100644 index 0000000..17cfba9 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/TA_opencti_for_splunk_enterprise_rh_opencti_stream.py @@ -0,0 +1,85 @@ + +import ta_opencti_for_splunk_enterprise_declare + +from splunktaucclib.rest_handler.endpoint import ( + field, + validator, + RestModel, + DataInputModel, +) +from splunktaucclib.rest_handler import admin_external, util +from splunk_aoblib.rest_migration import ConfigMigrationHandler + +util.remove_http_proxy_env_vars() + + +fields = [ + field.RestField( + 'interval', + required=True, + encrypted=False, + default=None, + validator=validator.Pattern( + regex=r"""^\-[1-9]\d*$|^\d*$""", + ) + ), + field.RestField( + 'index', + required=True, + encrypted=False, + default='default', + validator=validator.String( + min_len=1, + max_len=80, + ) + ), + field.RestField( + 'stream_id', + required=False, + encrypted=False, + default=None, + validator=validator.String( + min_len=0, + max_len=8192, + ) + ), + field.RestField( + 'import_from', + required=False, + encrypted=False, + default='30', + validator=validator.String( + min_len=0, + max_len=8192, + ) + ), + field.RestField( + 'input_type', + required=False, + encrypted=False, + default='kvstore', + validator=None + ), + + field.RestField( + 'disabled', + required=False, + validator=None + ) + +] +model = RestModel(fields, name=None) + + + +endpoint = DataInputModel( + 'opencti_stream', + model, +) + + +if __name__ == '__main__': + admin_external.handle( + endpoint, + handler=ConfigMigrationHandler, + ) diff --git a/TA-opencti-for-splunk-enterprise/bin/TA_opencti_for_splunk_enterprise_rh_settings.py b/TA-opencti-for-splunk-enterprise/bin/TA_opencti_for_splunk_enterprise_rh_settings.py new file mode 100644 index 0000000..539c438 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/TA_opencti_for_splunk_enterprise_rh_settings.py @@ -0,0 +1,133 @@ + +import ta_opencti_for_splunk_enterprise_declare + +from splunktaucclib.rest_handler.endpoint import ( + field, + validator, + RestModel, + MultipleModel, +) +from splunktaucclib.rest_handler import admin_external, util +from splunk_aoblib.rest_migration import ConfigMigrationHandler + +util.remove_http_proxy_env_vars() + + +fields_proxy = [ + field.RestField( + 'proxy_enabled', + required=False, + encrypted=False, + default=None, + validator=None + ), + field.RestField( + 'proxy_type', + required=False, + encrypted=False, + default='http', + validator=None + ), + field.RestField( + 'proxy_url', + required=False, + encrypted=False, + default=None, + validator=validator.String( + min_len=0, + max_len=4096, + ) + ), + field.RestField( + 'proxy_port', + required=False, + encrypted=False, + default=None, + validator=validator.Number( + min_val=1, + max_val=65535, + ) + ), + field.RestField( + 'proxy_username', + required=False, + encrypted=False, + default=None, + validator=validator.String( + min_len=0, + max_len=50, + ) + ), + field.RestField( + 'proxy_password', + required=False, + encrypted=True, + default=None, + validator=validator.String( + min_len=0, + max_len=8192, + ) + ), + field.RestField( + 'proxy_rdns', + required=False, + encrypted=False, + default=None, + validator=None + ) +] +model_proxy = RestModel(fields_proxy, name='proxy') + + +fields_logging = [ + field.RestField( + 'loglevel', + required=False, + encrypted=False, + default='INFO', + validator=None + ) +] +model_logging = RestModel(fields_logging, name='logging') + + +fields_additional_parameters = [ + field.RestField( + 'opencti_url', + required=False, + encrypted=False, + default='', + validator=validator.String( + min_len=0, + max_len=8192, + ) + ), + field.RestField( + 'opencti_api_key', + required=False, + encrypted=True, + default='', + validator=validator.String( + min_len=0, + max_len=8192, + ) + ) +] +model_additional_parameters = RestModel(fields_additional_parameters, name='additional_parameters') + + +endpoint = MultipleModel( + 'ta_opencti_for_splunk_enterprise_settings', + models=[ + model_proxy, + model_logging, + model_additional_parameters + ], +) + + +if __name__ == '__main__': + admin_external.handle( + endpoint, + handler=ConfigMigrationHandler, + ) diff --git a/TA-opencti-for-splunk-enterprise/bin/input_module_opencti_stream.py b/TA-opencti-for-splunk-enterprise/bin/input_module_opencti_stream.py new file mode 100644 index 0000000..9742959 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/input_module_opencti_stream.py @@ -0,0 +1,492 @@ +# encoding = utf-8 +import json +import sys +from datetime import datetime, timezone, timedelta + +import six +import splunklib.client as client +from filigran_sseclient import SSEClient +from stix2patterns.v21.pattern import Pattern +from ta_opencti_for_splunk_enterprise.app_connector_helper import ( + SplunkAppConnectorHelper, +) + +from ta_opencti_for_splunk_enterprise.constants import ( + VERIFY_SSL, + INDICATORS_KVSTORE_NAME, +) +from ta_opencti_for_splunk_enterprise.utils import get_proxy_config + +SUPPORTED_TYPES = { + "email-addr": {"value": "email-addr"}, + "email-message": {"value": "email-message"}, + "ipv4-addr": {"value": "ipv4-addr"}, + "ipv6-addr": {"value": "ipv6-addr"}, + "domain-name": {"value": "domain-name"}, + "hostname": {"value": "hostname"}, + "url": {"value": "url"}, + "user-agent": {"value": "user-agent"}, + "file": { + "hashes.MD5": "md5", + "hashes.SHA-1": "sha1", + "hashes.SHA-256": "sha256", + "name": "filename", + }, +} + +MARKING_DEFs = {} +IDENTITY_DEFs = {} + +# Map entity types → KV store collections. +# For indicators we reuse INDICATORS_KVSTORE_NAME so you can point it at +# either `opencti_indicators` or `opencti_lookup` via constants.py. +ENTITY_KVSTORE_MAP = { + "indicator": INDICATORS_KVSTORE_NAME, + "report": "opencti_reports", + "marking-definition": "opencti_markings", +} + +# Identity subtypes (x_opencti_type or identity_class) → KV store +IDENTITY_KVSTORE_MAP = { + # You can expand this later for sectors, individuals, etc. + "organization": "opencti_identity", + "Organization": "opencti_identity", +} + + +def get_kvstore_name_for_entity(entity_type, data): + """ + Decide which KV store collection to use based on STIX entity type + and, for identities, x_opencti_type / identity_class. + """ + if entity_type == "identity": + x_type = data.get("x_opencti_type") or data.get("identity_class") + if not x_type: + return None + return IDENTITY_KVSTORE_MAP.get(x_type) + + return ENTITY_KVSTORE_MAP.get(entity_type) + + +def date_now_z(): + return ( + datetime.utcnow() + .replace(microsecond=0, tzinfo=timezone.utc) + .isoformat() + .replace("+00:00", "Z") + ) + + +def validate_input(helper, definition): + pass + + +def exist_in_kvstore(kv_store, key_id): + try: + kv_store.query_by_id(key_id) + return True + except: + return False + + +def sanitize_key(key): + return key.replace(".", ":").replace("'", "") + + +def parse_stix_pattern(stix_pattern): + try: + parsed_pattern = Pattern(stix_pattern) + for observable_type, comparisons in six.iteritems( + parsed_pattern.inspect().comparisons + ): + for data_path, data_operator, data_value in comparisons: + if observable_type in SUPPORTED_TYPES: + data_path = ".".join(data_path) + if ( + data_path in SUPPORTED_TYPES[observable_type] + and data_operator == "=" + ): + return { + "type": SUPPORTED_TYPES[observable_type][data_path], + "value": data_value.strip("'"), + } + except Exception as e: + print(f"[!] STIX pattern parse error: {e} | pattern = {stix_pattern}") + return None + + +def enrich_payload(splunk_helper, payload, msg_event): + payload["stream_id"] = splunk_helper.get_arg("stream_id") + payload["input_name"] = splunk_helper.get_input_stanza_names() + payload["event"] = msg_event + + created_by_id = payload.get("created_by_ref") + if created_by_id: + payload["created_by"] = IDENTITY_DEFs.get(created_by_id) + + # Marking definitions -> human readable markings + payload["markings"] = [] + for marking_ref_id in payload.get("object_marking_refs", []): + marking_value = MARKING_DEFs.get(marking_ref_id) + if marking_value: + payload["markings"].append(marking_value) + + # --- LABELS --- + # If labels are already present at top level, keep them. + # Otherwise, try to extract from extensions before we delete them. + if "labels" in payload and payload["labels"] is not None: + # Ensure it's always a list (Splunk MV friendly) + if not isinstance(payload["labels"], list): + payload["labels"] = [payload["labels"]] + else: + extracted_labels = [] + if "extensions" in payload: + for ext in payload["extensions"].values(): + # Common patterns you might see from OpenCTI STIX + if "labels" in ext and ext["labels"]: + if isinstance(ext["labels"], list): + extracted_labels.extend(ext["labels"]) + else: + extracted_labels.append(ext["labels"]) + if "x_opencti_labels" in ext and ext["x_opencti_labels"]: + if isinstance(ext["x_opencti_labels"], list): + extracted_labels.extend(ext["x_opencti_labels"]) + else: + extracted_labels.append(ext["x_opencti_labels"]) + if extracted_labels: + payload["labels"] = list(set(extracted_labels)) # de-dup + else: + payload["labels"] = [] + + pattern = payload.get("pattern") + if pattern: + parsed_stix = parse_stix_pattern(pattern) + if parsed_stix: + payload["type"] = parsed_stix["type"] + payload["value"] = parsed_stix["value"] + else: + # Don't drop the event; just log that we couldn't extract type/value + splunk_helper.log_warning( + f"Could not parse STIX pattern for indicator {payload.get('id')}: {pattern}" + ) + else: + splunk_helper.log_warning( + f"Indicator {payload.get('id')} has no pattern field; skipping type/value extraction" + ) + + if "extensions" in payload: + for ext in payload["extensions"].values(): + for attr in [ + "id", + "score", + "created_at", + "updated_at", + "is_inferred", + "detection", + "main_observable_type", + ]: + if attr in ext: + payload["_key" if attr == "id" else attr] = ext[attr] + del payload["extensions"] + + if "external_references" in payload: + del payload["external_references"] + + # Ensure we always have a _key for KV store operations + if "_key" not in payload and "id" in payload: + payload["_key"] = payload["id"] + + return payload + + +def enrich_generic_payload(splunk_helper, payload, msg_event): + payload["stream_id"] = splunk_helper.get_arg("stream_id") + payload["input_name"] = splunk_helper.get_input_stanza_names() + payload["event"] = msg_event + + created_by_id = payload.get("created_by_ref") + if created_by_id: + payload["created_by"] = IDENTITY_DEFs.get(created_by_id) + + payload["markings"] = [] + for marking_ref_id in payload.get("object_marking_refs", []): + marking_value = MARKING_DEFs.get(marking_ref_id) + if marking_value: + payload["markings"].append(marking_value) + + # --- LABELS --- + if "labels" in payload and payload["labels"] is not None: + if not isinstance(payload["labels"], list): + payload["labels"] = [payload["labels"]] + else: + extracted_labels = [] + if "extensions" in payload: + for ext in payload["extensions"].values(): + if "labels" in ext and ext["labels"]: + if isinstance(ext["labels"], list): + extracted_labels.extend(ext["labels"]) + else: + extracted_labels.append(ext["labels"]) + if "x_opencti_labels" in ext and ext["x_opencti_labels"]: + if isinstance(ext["x_opencti_labels"], list): + extracted_labels.extend(ext["x_opencti_labels"]) + else: + extracted_labels.append(ext["x_opencti_labels"]) + if extracted_labels: + payload["labels"] = list(set(extracted_labels)) + else: + payload["labels"] = [] + + if "extensions" in payload: + for ext in payload["extensions"].values(): + for attr in [ + "id", + "score", + "created_at", + "creator_ids", + "updated_at", + "is_inferred", + "x_opencti_organization_type", + ]: + if attr in ext: + payload["_key" if attr == "id" else attr] = ext[attr] + + if "external_references" in payload: + del payload["external_references"] + # Ensure we always have a _key for KV store operations + if "_key" not in payload and "id" in payload: + payload["_key"] = payload["id"] + return payload + + +def collect_events(helper, ew): + helper.set_log_level(helper.log_level) + helper.log_info("OpenCTI data input module start") + + input_name = helper.get_input_stanza_names() + input_type = helper.get_arg("input_type").strip().lower() + stream_id = helper.get_arg("stream_id") + target_index = helper.get_arg("index") + + helper.log_info(f"Selected input type: {input_type}") + helper.log_info(f"Fetching data from OpenCTI stream.id: {stream_id}") + + proxies = get_proxy_config(helper) + opencti_url = helper.get_global_setting("opencti_url") + opencti_token = helper.get_global_setting("opencti_api_key") + # + # Create Splunk App Connector Helper + # + connector_helper = SplunkAppConnectorHelper( + connector_id="splunk-stream-input", + connector_name="Splunk Stream Input", + opencti_url=opencti_url, + opencti_api_key=opencti_token, + splunk_helper=helper, + ) + # + # Reset Checkpoint + # + # helper.delete_check_point(helper.get_input_stanza_names()) + # helper.log_warning("Checkpoint Reset") + # + # + state = helper.get_check_point(input_name) + if state is None: + import_from = helper.get_arg("import_from") + recover_until = datetime.utcnow().strftime("%Y-%m-%dT%H:%M:%SZ") + start_date = datetime.utcnow() - timedelta(days=int(import_from)) + start_timestamp = int(datetime.timestamp(start_date)) * 1000 + state = { + "start_from": str(start_timestamp) + "-0", + "recover_until": recover_until, + } + helper.log_info(f"Initialized checkpoint state: {state}") + else: + state = json.loads(state) + + live_stream_url = f"{opencti_url}/stream/{stream_id}" + if "recover_until" in state: + live_stream_url += f"?recover={state['recover_until']}" + helper.log_debug(f"Live stream URL: {live_stream_url}") + + service = None + kvstore_handles = {} + + helper.log_debug(f"Input Type: {input_type}") + try: + helper.log_debug("Initializing Splunk service for KV Store") + session_key = helper.context_meta.get("session_key") + if not session_key: + raise ValueError("session_key not found in context_meta") + + service = client.connect( + token=session_key, app="TA-opencti-for-splunk-enterprise" + ) + helper.log_info("Connected to Splunk service for KV Store access") + except Exception as e: + helper.log_error(f"Failed to connect to Splunk service: {e}") + return + + try: + messages = SSEClient( + live_stream_url, + state.get("start_from"), + headers={ + "authorization": f"Bearer {opencti_token}", + "listen-delete": "true", + "no-dependencies": "true", + "with-inferences": "true", + }, + verify=VERIFY_SSL, + proxies=proxies, + ) + for msg in messages: + if msg.event not in ["create", "update", "delete"]: + continue + helper.log_debug(f"Received message ID: {msg.id} | Event: {msg.event}") + message_payload = json.loads(msg.data) + helper.log_debug(f"Message payload: {message_payload}") + data = message_payload.get("data", {}) + entity_type = data.get("type") + + if entity_type == "identity": + IDENTITY_DEFs[data["id"]] = data.get("name", "Unknown") + elif entity_type == "marking-definition": + MARKING_DEFs[data["id"]] = data.get("name", "Unknown") + + parsed_stix = None + if entity_type == "indicator" and data.get("pattern_type") == "stix": + parsed_stix = enrich_payload(helper, data, msg.event) + try: + enrich_row = connector_helper.get_indicator_enrichment(data["id"]) + if enrich_row: + parsed_stix["attack_patterns"] = enrich_row["attack_patterns"] + parsed_stix["malware"] = enrich_row["malware"] + parsed_stix["threat_actors"] = enrich_row["threat_actors"] + parsed_stix["vulnerabilities"] = enrich_row["vulnerabilities"] + except Exception as e: + helper.log_warning( + f"OpenCTI enrichment failed for {data['id']}: {e}" + ) + else: + parsed_stix = enrich_generic_payload(helper, data, msg.event) + if parsed_stix is None: + helper.log_error(f"Could not enrich data for msg {msg.id}") + continue + + key = parsed_stix.get("_key") or data.get("id") or msg.id + indicator_value = parsed_stix.get("value") or data.get("value") + helper.log_info( + f"[Indicator {parsed_stix.get('_key')}] Processing value={indicator_value} event={msg.event}" + ) + helper.log_debug(f"{data}") + if input_type == "kvstore": + # Decide which KV collection to use based on entity_type and x_opencti_type + kvstore_name = get_kvstore_name_for_entity(entity_type, parsed_stix) + + if not kvstore_name: + helper.log_debug( + f"No KV store mapping for entity_type={entity_type}, " + f"x_opencti_type={parsed_stix.get('x_opencti_type')}" + ) + else: + try: + # Lazily cache the kvstore.data handle per collection + if kvstore_name not in kvstore_handles: + kvstore_handles[kvstore_name] = service.kvstore[ + kvstore_name + ].data + helper.log_info( + f"Initialized KV handle for collection: {kvstore_name}" + ) + + kv = kvstore_handles[kvstore_name] + key_id = parsed_stix.get("_key") + + if msg.event == "delete": + if key_id and exist_in_kvstore(kv, key_id): + kv.delete_by_id(key_id) + helper.log_info( + f"KV Store [{kvstore_name}]: Deleted {key_id}" + ) + else: + parsed_stix["added_at"] = datetime.now( + timezone.utc + ).strftime("%Y-%m-%dT%H:%M:%SZ") + # Upsert into this KV collection + kv.batch_save([parsed_stix]) + helper.log_info( + f"KV Store [{kvstore_name}]: Inserted/Updated {key_id}" + ) + except Exception as kv_ex: + helper.log_error( + f"KV Store operation failed for collection={kvstore_name}: {kv_ex}" + ) + continue + + elif input_type == "index": + # If this is an indicator delete event, also purge it from the indicator KV + if entity_type == "indicator" and msg.event == "delete": + try: + # Lazily init the indicators KV handle via kvstore_handles + if INDICATORS_KVSTORE_NAME not in kvstore_handles: + kvstore_handles[INDICATORS_KVSTORE_NAME] = service.kvstore[ + INDICATORS_KVSTORE_NAME + ].data + helper.log_info( + f"Initialized KV handle for collection: {INDICATORS_KVSTORE_NAME}" + ) + + kv_indicators = kvstore_handles[INDICATORS_KVSTORE_NAME] + key_id = parsed_stix.get("id") + + if key_id and exist_in_kvstore(kv_indicators, key_id): + kv_indicators.delete_by_id(key_id) + helper.log_info( + f"KV Store [{INDICATORS_KVSTORE_NAME}]: Deleted {key_id} on delete event" + ) + else: + helper.log_debug( + f"No existing KV entry for {key_id} in [{INDICATORS_KVSTORE_NAME}]" + ) + except Exception as e: + helper.log_warning( + f"Failed to delete indicator from KV store [{INDICATORS_KVSTORE_NAME}]: {e}" + ) + + # Always write the event to the index (create/update/delete) + event_time = parsed_stix.get("updated_at") + if event_time: + try: + event_time = datetime.strptime( + event_time, "%Y-%m-%dT%H:%M:%S.%fZ" + ).timestamp() + except ValueError: + helper.log_warning( + f"Unable to parse updated_at timestamp: {event_time}" + ) + event_time = None + + ew.write_event( + helper.new_event( + json.dumps(parsed_stix), + time=event_time, + host=None, + index=target_index, + source="opencti", + sourcetype=f"opencti:{entity_type}", + done=True, + unbroken=True, + ) + ) + else: + helper.log_warning(f"Unknown input_type: {input_type}") + continue + + state["start_from"] = msg.id + helper.save_check_point(input_name, json.dumps(state)) + + except Exception as ex: + helper.log_error(f"Error in stream processing loop: {ex}") + sys.excepthook(*sys.exc_info()) diff --git a/TA-opencti-for-splunk-enterprise/bin/opencti_create_incident.py b/TA-opencti-for-splunk-enterprise/bin/opencti_create_incident.py new file mode 100644 index 0000000..db37ea3 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/opencti_create_incident.py @@ -0,0 +1,53 @@ +# encoding = utf-8 +# Always put this line at the beginning of this file +import ta_opencti_add_on_declare + +import os +import sys + +from alert_actions_base import ModularAlertBase +import modalert_opencti_create_incident_helper + + +class AlertActionWorkeropencti_create_incident(ModularAlertBase): + + def __init__(self, ta_name, alert_name): + super(AlertActionWorkeropencti_create_incident, self).__init__( + ta_name, alert_name + ) + + def validate_params(self): + return True + + def process_event(self, *args, **kwargs): + status = 0 + try: + if not self.validate_params(): + return 3 + status = modalert_opencti_create_incident_helper.process_event( + self, *args, **kwargs + ) + except (AttributeError, TypeError) as ae: + self.log_error( + "Error: {}. Please double check spelling and also verify that a compatible version of Splunk_SA_CIM is installed.".format( + str(ae) + ) + ) + return 4 + except Exception as e: + msg = "Unexpected error: {}." + if e: + self.log_error(msg.format(str(e))) + else: + import traceback + + self.log_error(msg.format(traceback.format_exc())) + return 5 + return status + + +if __name__ == "__main__": + exitcode = AlertActionWorkeropencti_create_incident( + "TA-opencti-for-splunk-enterprise", "opencti_create_incident" + ).run(sys.argv) + sys.exit(exitcode) diff --git a/TA-opencti-for-splunk-enterprise/bin/opencti_create_incident_response.py b/TA-opencti-for-splunk-enterprise/bin/opencti_create_incident_response.py new file mode 100644 index 0000000..7d45ef8 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/opencti_create_incident_response.py @@ -0,0 +1,53 @@ +# encoding = utf-8 +# Always put this line at the beginning of this file +import ta_opencti_add_on_declare + +import os +import sys + +from alert_actions_base import ModularAlertBase +import modalert_opencti_create_incident_response_helper + + +class AlertActionWorkeropencti_create_incident_response(ModularAlertBase): + + def __init__(self, ta_name, alert_name): + super(AlertActionWorkeropencti_create_incident_response, self).__init__( + ta_name, alert_name + ) + + def validate_params(self): + return True + + def process_event(self, *args, **kwargs): + status = 0 + try: + if not self.validate_params(): + return 3 + status = modalert_opencti_create_incident_response_helper.process_event( + self, *args, **kwargs + ) + except (AttributeError, TypeError) as ae: + self.log_error( + "Error: {}. Please double check spelling and also verify that a compatible version of Splunk_SA_CIM is installed.".format( + str(ae) + ) + ) + return 4 + except Exception as e: + msg = "Unexpected error: {}." + if e: + self.log_error(msg.format(str(e))) + else: + import traceback + + self.log_error(msg.format(traceback.format_exc())) + return 5 + return status + + +if __name__ == "__main__": + exitcode = AlertActionWorkeropencti_create_incident_response( + "TA-opencti-for-splunk-enterprise", "opencti_create_incident_response" + ).run(sys.argv) + sys.exit(exitcode) diff --git a/TA-opencti-for-splunk-enterprise/bin/opencti_stream.py b/TA-opencti-for-splunk-enterprise/bin/opencti_stream.py new file mode 100644 index 0000000..276e3ba --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/opencti_stream.py @@ -0,0 +1,98 @@ +import ta_opencti_for_splunk_enterprise_declare + +import os +import sys +import time +import datetime +import json + +import modinput_wrapper.base_modinput +from splunklib import modularinput as smi + + + +import input_module_opencti_stream as input_module + +bin_dir = os.path.basename(__file__) + +''' + Do not edit this file!!! + This file is generated by Add-on builder automatically. + Add your modular input logic to file input_module_opencti_stream.py +''' +class ModInputopencti_stream(modinput_wrapper.base_modinput.BaseModInput): + + def __init__(self): + if 'use_single_instance_mode' in dir(input_module): + use_single_instance = input_module.use_single_instance_mode() + else: + use_single_instance = False + super(ModInputopencti_stream, self).__init__("ta_opencti_for_splunk_enterprise", "opencti_stream", use_single_instance) + self.global_checkbox_fields = None + + def get_scheme(self): + """overloaded splunklib modularinput method""" + scheme = super(ModInputopencti_stream, self).get_scheme() + scheme.title = ("OpenCTI Stream") + scheme.description = ("Go to the add-on\'s configuration UI and configure modular inputs under the Inputs menu.") + scheme.use_external_validation = True + scheme.streaming_mode_xml = True + + scheme.add_argument(smi.Argument("name", title="Name", + description="", + required_on_create=True)) + + """ + For customized inputs, hard code the arguments here to hide argument detail from users. + For other input types, arguments should be get from input_module. Defining new input types could be easier. + """ + scheme.add_argument(smi.Argument("stream_id", title="Stream ID", + description="OpenCTI Stream Id to consume", + required_on_create=False, + required_on_edit=False)) + scheme.add_argument(smi.Argument("import_from", title="Import From (Days)", + description="The number of days to go back for the initial data collection. The start date is calculated on the basis of the current UTC time.", + required_on_create=False, + required_on_edit=False)) + scheme.add_argument(smi.Argument("input_type", title="Input Type", + description="Choose where to store the data. • KV Store keeps structured data for lookups. • Index saves events for searching and alerting.", + required_on_create=False, + required_on_edit=False)) + return scheme + + def get_app_name(self): + return "TA-opencti-for-splunk-enterprise" + + def validate_input(self, definition): + """validate the input stanza""" + input_module.validate_input(self, definition) + + def collect_events(self, ew): + """write out the events""" + input_module.collect_events(self, ew) + + def get_account_fields(self): + account_fields = [] + return account_fields + + def get_checkbox_fields(self): + checkbox_fields = [] + return checkbox_fields + + def get_global_checkbox_fields(self): + if self.global_checkbox_fields is None: + checkbox_name_file = os.path.join(bin_dir, 'global_checkbox_param.json') + try: + if os.path.isfile(checkbox_name_file): + with open(checkbox_name_file, 'r') as fp: + self.global_checkbox_fields = json.load(fp) + else: + self.global_checkbox_fields = [] + except Exception as e: + self.log_error('Get exception when loading global checkbox parameter names. ' + str(e)) + self.global_checkbox_fields = [] + return self.global_checkbox_fields + +if __name__ == "__main__": + exitcode = ModInputopencti_stream().run(sys.argv) + sys.exit(exitcode) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/alert_actions_base.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/alert_actions_base.py new file mode 100755 index 0000000..2f1c449 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/alert_actions_base.py @@ -0,0 +1,249 @@ +from __future__ import print_function +from builtins import str +import csv +import gzip +import sys + +try: + from splunk.clilib.bundle_paths import make_splunkhome_path +except ImportError: + from splunk.appserver.mrsparkle.lib.util import make_splunkhome_path + +# TODO: How does it depend on CIM module? +sys.path.insert(0, make_splunkhome_path(["etc", "apps", "Splunk_SA_CIM", "lib"])) + +from cim_actions import ModularAction +from logging_helper import get_logger +import logging +from splunk_aoblib.rest_helper import TARestHelper +from splunk_aoblib.setup_util import Setup_Util + + +class ModularAlertBase(ModularAction): + def __init__(self, ta_name, alert_name): + self._alert_name = alert_name + # self._logger_name = "modalert_" + alert_name + self._logger_name = alert_name + "_modalert" + self._logger = get_logger(self._logger_name) + super(ModularAlertBase, self).__init__( + sys.stdin.read(), self._logger, alert_name) + self.setup_util_module = None + self.setup_util = None + self.result_handle = None + self.ta_name = ta_name + self.splunk_uri = self.settings.get('server_uri') + self.setup_util = Setup_Util(self.splunk_uri, self.session_key, self._logger) + + self.rest_helper = TARestHelper(self._logger) + + def log_error(self, msg): + self.message(msg, 'failure', level=logging.ERROR) + + def log_info(self, msg): + self.message(msg, 'success', level=logging.INFO) + + def log_debug(self, msg): + self.message(msg, None, level=logging.DEBUG) + + def log_warn(self, msg): + self.message(msg, None, level=logging.WARN) + + def set_log_level(self, level): + self._logger.setLevel(level) + + def get_param(self, param_name): + return self.configuration.get(param_name) + + def get_global_setting(self, var_name): + return self.setup_util.get_customized_setting(var_name) + + def get_user_credential(self, username): + ''' + if the username exists, return + { + "username": username, + "password": credential + } + ''' + return self.setup_util.get_credential_by_username(username) + + @property + def log_level(self): + return self.get_log_level() + + @property + def proxy(self): + return self.get_proxy() + + def get_log_level(self): + return self.setup_util.get_log_level() + + def get_proxy(self): + ''' if the proxy setting is set. return a dict like + { + proxy_url: ... , + proxy_port: ... , + proxy_username: ... , + proxy_password: ... , + proxy_type: ... , + proxy_rdns: ... + } + ''' + return self.setup_util.get_proxy_settings() + + def _get_proxy_uri(self): + uri = None + proxy = self.get_proxy() + if proxy and proxy.get('proxy_url') and proxy.get('proxy_type'): + uri = proxy['proxy_url'] + if proxy.get('proxy_port'): + uri = '{0}:{1}'.format(uri, proxy.get('proxy_port')) + if proxy.get('proxy_username') and proxy.get('proxy_password'): + uri = '{0}://{1}:{2}@{3}/'.format(proxy['proxy_type'], proxy[ + 'proxy_username'], proxy['proxy_password'], uri) + else: + uri = '{0}://{1}'.format(proxy['proxy_type'], uri) + return uri + + def send_http_request(self, url, method, parameters=None, payload=None, headers=None, cookies=None, verify=True, cert=None, timeout=None, use_proxy=True): + return self.rest_helper.send_http_request(url=url, method=method, parameters=parameters, payload=payload, + headers=headers, cookies=cookies, verify=verify, cert=cert, + timeout=timeout, + proxy_uri=self._get_proxy_uri() if use_proxy else None) + + def build_http_connection(self, config, timeout=120, + disable_ssl_validation=False): + from httplib2 import (socks, ProxyInfo, Http) + """ + :config: dict like, proxy and account information are in the following + format { + "username": xx, + "password": yy, + "proxy_url": zz, + "proxy_port": aa, + "proxy_username": bb, + "proxy_password": cc, + "proxy_type": http,http_no_tunnel,sock4,sock5, + "proxy_rdns": 0 or 1, + } + :return: Http2.Http object + """ + if not config: + config = {} + + proxy_type_to_code = { + "http": socks.PROXY_TYPE_HTTP, + "http_no_tunnel": socks.PROXY_TYPE_HTTP_NO_TUNNEL, + "socks4": socks.PROXY_TYPE_SOCKS4, + "socks5": socks.PROXY_TYPE_SOCKS5, + } + if config.get("proxy_type") in proxy_type_to_code: + proxy_type = proxy_type_to_code[config["proxy_type"]] + else: + proxy_type = socks.PROXY_TYPE_HTTP + + rdns = config.get("proxy_rdns") + + proxy_info = None + if config.get("proxy_url") and config.get("proxy_port"): + if config.get("proxy_username") and config.get("proxy_password"): + proxy_info = ProxyInfo(proxy_type=proxy_type, + proxy_host=config["proxy_url"], + proxy_port=int(config["proxy_port"]), + proxy_user=config["proxy_username"], + proxy_pass=config["proxy_password"], + proxy_rdns=rdns) + else: + proxy_info = ProxyInfo(proxy_type=proxy_type, + proxy_host=config["proxy_url"], + proxy_port=int(config["proxy_port"]), + proxy_rdns=rdns) + if proxy_info: + http = Http(proxy_info=proxy_info, timeout=timeout, + disable_ssl_certificate_validation=disable_ssl_validation) + else: + http = Http(timeout=timeout, + disable_ssl_certificate_validation=disable_ssl_validation) + + if config.get("username") and config.get("password"): + http.add_credentials(config["username"], config["password"]) + return http + + def process_event(self, *args, **kwargs): + raise NotImplemented() + + def pre_handle(self, num, result): + result.setdefault('rid', str(num)) + self.update(result) + return result + + def get_events(self): + try: + try: + self.result_handle = gzip.open(self.results_file, 'rt') + except ValueError: # Workaround for Python 2.7 on Windows + self.result_handle = gzip.open(self.results_file, 'r') + return (self.pre_handle(num, result) for num, result in enumerate(csv.DictReader(self.result_handle))) + except IOError: + msg = "Error: {}." + self.log_error(msg.format("No search result. Cannot send alert action.")) + sys.exit(2) + + def prepare_meta_for_cam(self): + rf = None + try: + try: + rf = gzip.open(self.results_file, 'rt') + except ValueError: # Workaround for Python 2.7 on Windows + rf = gzip.open(self.results_file, 'r') + except FileNotFoundError: + self.log_info("No Results file found.") + if rf: + for num, result in enumerate(csv.DictReader(rf)): + result.setdefault('rid', str(num)) + self.update(result) + self.invoke() + break + finally: + if rf: + rf.close() + + def run(self, argv): + status = 0 + if len(argv) < 2 or argv[1] != "--execute": + msg = 'Error: argv="{}", expected="--execute"'.format(argv) + print(msg, file=sys.stderr) + sys.exit(1) + + # prepare meta first for permission lack error handling: TAB-2455 + self.prepare_meta_for_cam() + try: + level = self.get_log_level() + if level: + self._logger.setLevel(level) + except Exception as e: + if e and '403' in str(e): + self.log_error('User does not have permissions') + else: + self.log_error('Unable to set log level') + sys.exit(2) + + try: + status = self.process_event() + except IOError: + msg = "Error: {}." + self.log_error(msg.format("No search result. Cannot send alert action.")) + sys.exit(2) + except Exception as e: + msg = "Unexpected error: {}." + if e: + self.log_error(msg.format(str(e))) + else: + import traceback + self.log_error(msg.format(traceback.format_exc())) + sys.exit(2) + finally: + if self.result_handle: + self.result_handle.close() + + return status diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/Jinja2-3.1.3.dist-info/INSTALLER b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/Jinja2-3.1.3.dist-info/INSTALLER new file mode 100755 index 0000000..a1b589e --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/Jinja2-3.1.3.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/Jinja2-3.1.3.dist-info/LICENSE.rst b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/Jinja2-3.1.3.dist-info/LICENSE.rst new file mode 100755 index 0000000..c37cae4 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/Jinja2-3.1.3.dist-info/LICENSE.rst @@ -0,0 +1,28 @@ +Copyright 2007 Pallets + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/Jinja2-3.1.3.dist-info/METADATA b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/Jinja2-3.1.3.dist-info/METADATA new file mode 100755 index 0000000..56e9429 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/Jinja2-3.1.3.dist-info/METADATA @@ -0,0 +1,105 @@ +Metadata-Version: 2.1 +Name: Jinja2 +Version: 3.1.3 +Summary: A very fast and expressive template engine. +Home-page: https://palletsprojects.com/p/jinja/ +Maintainer: Pallets +Maintainer-email: contact@palletsprojects.com +License: BSD-3-Clause +Project-URL: Donate, https://palletsprojects.com/donate +Project-URL: Documentation, https://jinja.palletsprojects.com/ +Project-URL: Changes, https://jinja.palletsprojects.com/changes/ +Project-URL: Source Code, https://github.com/pallets/jinja/ +Project-URL: Issue Tracker, https://github.com/pallets/jinja/issues/ +Project-URL: Chat, https://discord.gg/pallets +Classifier: Development Status :: 5 - Production/Stable +Classifier: Environment :: Web Environment +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: BSD License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content +Classifier: Topic :: Text Processing :: Markup :: HTML +Requires-Python: >=3.7 +Description-Content-Type: text/x-rst +License-File: LICENSE.rst +Requires-Dist: MarkupSafe >=2.0 +Provides-Extra: i18n +Requires-Dist: Babel >=2.7 ; extra == 'i18n' + +Jinja +===== + +Jinja is a fast, expressive, extensible templating engine. Special +placeholders in the template allow writing code similar to Python +syntax. Then the template is passed data to render the final document. + +It includes: + +- Template inheritance and inclusion. +- Define and import macros within templates. +- HTML templates can use autoescaping to prevent XSS from untrusted + user input. +- A sandboxed environment can safely render untrusted templates. +- AsyncIO support for generating templates and calling async + functions. +- I18N support with Babel. +- Templates are compiled to optimized Python code just-in-time and + cached, or can be compiled ahead-of-time. +- Exceptions point to the correct line in templates to make debugging + easier. +- Extensible filters, tests, functions, and even syntax. + +Jinja's philosophy is that while application logic belongs in Python if +possible, it shouldn't make the template designer's job difficult by +restricting functionality too much. + + +Installing +---------- + +Install and update using `pip`_: + +.. code-block:: text + + $ pip install -U Jinja2 + +.. _pip: https://pip.pypa.io/en/stable/getting-started/ + + +In A Nutshell +------------- + +.. code-block:: jinja + + {% extends "base.html" %} + {% block title %}Members{% endblock %} + {% block content %} +
+ {% endblock %} + + +Donate +------ + +The Pallets organization develops and supports Jinja and other popular +packages. In order to grow the community of contributors and users, and +allow the maintainers to devote more time to the projects, `please +donate today`_. + +.. _please donate today: https://palletsprojects.com/donate + + +Links +----- + +- Documentation: https://jinja.palletsprojects.com/ +- Changes: https://jinja.palletsprojects.com/changes/ +- PyPI Releases: https://pypi.org/project/Jinja2/ +- Source Code: https://github.com/pallets/jinja/ +- Issue Tracker: https://github.com/pallets/jinja/issues/ +- Chat: https://discord.gg/pallets diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/Jinja2-3.1.3.dist-info/RECORD b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/Jinja2-3.1.3.dist-info/RECORD new file mode 100755 index 0000000..a89df9f --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/Jinja2-3.1.3.dist-info/RECORD @@ -0,0 +1,34 @@ +Jinja2-3.1.3.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +Jinja2-3.1.3.dist-info/LICENSE.rst,sha256=O0nc7kEF6ze6wQ-vG-JgQI_oXSUrjp3y4JefweCUQ3s,1475 +Jinja2-3.1.3.dist-info/METADATA,sha256=0cLNbRCI91jytc7Bzv3XAQfZzFDF2gxkJuH46eF5vew,3301 +Jinja2-3.1.3.dist-info/RECORD,, +Jinja2-3.1.3.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +Jinja2-3.1.3.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92 +Jinja2-3.1.3.dist-info/entry_points.txt,sha256=zRd62fbqIyfUpsRtU7EVIFyiu1tPwfgO7EvPErnxgTE,59 +Jinja2-3.1.3.dist-info/top_level.txt,sha256=PkeVWtLb3-CqjWi1fO29OCbj55EhX_chhKrCdrVe_zs,7 +jinja2/__init__.py,sha256=NTBwMwsECrdHmxeXF7seusHLzrh6Ldn1A9qhS5cDuf0,1927 +jinja2/_identifier.py,sha256=_zYctNKzRqlk_murTNlzrju1FFJL7Va_Ijqqd7ii2lU,1958 +jinja2/async_utils.py,sha256=dFcmh6lMNfbh7eLKrBio8JqAKLHdZbpCuurFN4OERtY,2447 +jinja2/bccache.py,sha256=mhz5xtLxCcHRAa56azOhphIAe19u1we0ojifNMClDio,14061 +jinja2/compiler.py,sha256=PJzYdRLStlEOqmnQs1YxlizPrJoj3jTZuUleREn6AIQ,72199 +jinja2/constants.py,sha256=GMoFydBF_kdpaRKPoM5cl5MviquVRLVyZtfp5-16jg0,1433 +jinja2/debug.py,sha256=iWJ432RadxJNnaMOPrjIDInz50UEgni3_HKuFXi2vuQ,6299 +jinja2/defaults.py,sha256=boBcSw78h-lp20YbaXSJsqkAI2uN_mD_TtCydpeq5wU,1267 +jinja2/environment.py,sha256=0qldX3VQKZcm6lgn7zHz94oRFow7YPYERiqkquomNjU,61253 +jinja2/exceptions.py,sha256=ioHeHrWwCWNaXX1inHmHVblvc4haO7AXsjCp3GfWvx0,5071 +jinja2/ext.py,sha256=5fnMpllaXkfm2P_93RIvi-OnK7Tk8mCW8Du-GcD12Hc,31844 +jinja2/filters.py,sha256=vYjKb2zaPShvYtn_LpSmqfS8SScbrA_KOanNibsMDIE,53862 +jinja2/idtracking.py,sha256=GfNmadir4oDALVxzn3DL9YInhJDr69ebXeA2ygfuCGA,10704 +jinja2/lexer.py,sha256=DW2nX9zk-6MWp65YR2bqqj0xqCvLtD-u9NWT8AnFRxQ,29726 +jinja2/loaders.py,sha256=ayAwxfrA1SAffQta0nwSDm3TDT4KYiIGN_D9Z45B310,23085 +jinja2/meta.py,sha256=GNPEvifmSaU3CMxlbheBOZjeZ277HThOPUTf1RkppKQ,4396 +jinja2/nativetypes.py,sha256=7GIGALVJgdyL80oZJdQUaUfwSt5q2lSSZbXt0dNf_M4,4210 +jinja2/nodes.py,sha256=i34GPRAZexXMT6bwuf5SEyvdmS-bRCy9KMjwN5O6pjk,34550 +jinja2/optimizer.py,sha256=tHkMwXxfZkbfA1KmLcqmBMSaz7RLIvvItrJcPoXTyD8,1650 +jinja2/parser.py,sha256=Y199wPL-G67gJoi5G_5sHuu9uEP1PJkjjLEW_xTH8-k,39736 +jinja2/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +jinja2/runtime.py,sha256=_6LkKIWFJjQdqlrgA3K39zBFQ-7Orm3wGDm96RwxQoE,33406 +jinja2/sandbox.py,sha256=Y0xZeXQnH6EX5VjaV2YixESxoepnRbW_3UeQosaBU3M,14584 +jinja2/tests.py,sha256=Am5Z6Lmfr2XaH_npIfJJ8MdXtWsbLjMULZJulTAj30E,5905 +jinja2/utils.py,sha256=IMwRIcN1SsTw2-jdQtlH2KzNABsXZBW_-tnFXafQBvY,23933 +jinja2/visitor.py,sha256=MH14C6yq24G_KVtWzjwaI7Wg14PCJIYlWW1kpkxYak0,3568 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/Jinja2-3.1.3.dist-info/REQUESTED b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/Jinja2-3.1.3.dist-info/REQUESTED new file mode 100755 index 0000000..e69de29 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/Jinja2-3.1.3.dist-info/WHEEL b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/Jinja2-3.1.3.dist-info/WHEEL new file mode 100755 index 0000000..98c0d20 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/Jinja2-3.1.3.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.42.0) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/Jinja2-3.1.3.dist-info/entry_points.txt b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/Jinja2-3.1.3.dist-info/entry_points.txt new file mode 100755 index 0000000..7b9666c --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/Jinja2-3.1.3.dist-info/entry_points.txt @@ -0,0 +1,2 @@ +[babel.extractors] +jinja2 = jinja2.ext:babel_extract[i18n] diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/Jinja2-3.1.3.dist-info/top_level.txt b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/Jinja2-3.1.3.dist-info/top_level.txt new file mode 100755 index 0000000..7f7afbf --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/Jinja2-3.1.3.dist-info/top_level.txt @@ -0,0 +1 @@ +jinja2 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/Mako-1.2.4.dist-info/INSTALLER b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/Mako-1.2.4.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/Mako-1.2.4.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/Mako-1.2.4.dist-info/LICENSE b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/Mako-1.2.4.dist-info/LICENSE new file mode 100644 index 0000000..be84a38 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/Mako-1.2.4.dist-info/LICENSE @@ -0,0 +1,19 @@ +Copyright 2006-2022 the Mako authors and contributors . + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/Mako-1.2.4.dist-info/METADATA b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/Mako-1.2.4.dist-info/METADATA new file mode 100644 index 0000000..33a7580 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/Mako-1.2.4.dist-info/METADATA @@ -0,0 +1,87 @@ +Metadata-Version: 2.1 +Name: Mako +Version: 1.2.4 +Summary: A super-fast templating language that borrows the best ideas from the existing templating languages. +Home-page: https://www.makotemplates.org/ +Author: Mike Bayer +Author-email: mike@zzzcomputing.com +License: MIT +Project-URL: Documentation, https://docs.makotemplates.org +Project-URL: Issue Tracker, https://github.com/sqlalchemy/mako +Classifier: Development Status :: 5 - Production/Stable +Classifier: License :: OSI Approved :: MIT License +Classifier: Environment :: Web Environment +Classifier: Intended Audience :: Developers +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content +Requires-Python: >=3.7 +Description-Content-Type: text/x-rst +License-File: LICENSE +Requires-Dist: MarkupSafe (>=0.9.2) +Requires-Dist: importlib-metadata ; python_version < "3.8" +Provides-Extra: babel +Requires-Dist: Babel ; extra == 'babel' +Provides-Extra: lingua +Requires-Dist: lingua ; extra == 'lingua' +Provides-Extra: testing +Requires-Dist: pytest ; extra == 'testing' + +========================= +Mako Templates for Python +========================= + +Mako is a template library written in Python. It provides a familiar, non-XML +syntax which compiles into Python modules for maximum performance. Mako's +syntax and API borrows from the best ideas of many others, including Django +templates, Cheetah, Myghty, and Genshi. Conceptually, Mako is an embedded +Python (i.e. Python Server Page) language, which refines the familiar ideas +of componentized layout and inheritance to produce one of the most +straightforward and flexible models available, while also maintaining close +ties to Python calling and scoping semantics. + +Nutshell +======== + +:: + + <%inherit file="base.html"/> + <% + rows = [[v for v in range(0,10)] for row in range(0,10)] + %> + + % for row in rows: + ${makerow(row)} + % endfor +
+ + <%def name="makerow(row)"> + + % for name in row: + ${name}\ + % endfor + + + +Philosophy +=========== + +Python is a great scripting language. Don't reinvent the wheel...your templates can handle it ! + +Documentation +============== + +See documentation for Mako at https://docs.makotemplates.org/en/latest/ + +License +======== + +Mako is licensed under an MIT-style license (see LICENSE). +Other incorporated projects may be licensed under different licenses. +All licenses allow for non-commercial and commercial use. diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/Mako-1.2.4.dist-info/RECORD b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/Mako-1.2.4.dist-info/RECORD new file mode 100644 index 0000000..04ad20c --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/Mako-1.2.4.dist-info/RECORD @@ -0,0 +1,42 @@ +../../bin/mako-render,sha256=jDAytBvt-We4snJ-6W-_gXavxsSTjPKgK86UFb0ZDR8,216 +Mako-1.2.4.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +Mako-1.2.4.dist-info/LICENSE,sha256=dg8is-nqSlDrmSAb2N0RiGnygQjPtkzM5tGzBc-a6fo,1098 +Mako-1.2.4.dist-info/METADATA,sha256=MlPkZcQ5bASEMtzkRaH8aRSQE6gmLH3KTnASUawz6eA,2909 +Mako-1.2.4.dist-info/RECORD,, +Mako-1.2.4.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +Mako-1.2.4.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92 +Mako-1.2.4.dist-info/entry_points.txt,sha256=LsKkUsOsJQYbJ2M72hZCm968wi5K8Ywb5uFxCuN8Obk,512 +Mako-1.2.4.dist-info/top_level.txt,sha256=LItdH8cDPetpUu8rUyBG3DObS6h9Gcpr9j_WLj2S-R0,5 +mako/__init__.py,sha256=R1cQoVGhYA-fl43kNSPKm6kzdJOs28e8sq8WYMHctMQ,242 +mako/_ast_util.py,sha256=BcwJLuE4E-aiFXi_fanO378Cn3Ou03bJxc6Incjse4Y,20247 +mako/ast.py,sha256=h07xBpz2l19RSwpejrhkhgB4r5efpwGmsYOy_L8xvUc,6642 +mako/cache.py,sha256=jkspun9tLgu0IVKSmo_fkL_DAbSTl2P5a5zkMBkjZvk,7680 +mako/cmd.py,sha256=vQg9ip89KMsuZEGamCRAPg7UyDNlpMmnG3XHDNLHS5o,2814 +mako/codegen.py,sha256=h1z8DGLkB92nbUz2OZGVmUKqPr9kVNbnNL8KnLizYAk,47309 +mako/compat.py,sha256=Sa3Rzrjl44xo25nXUHbhfIrEoMgceq5-Ohl0FO6cCHk,1913 +mako/exceptions.py,sha256=xQZKYdb-4d8rcrNFsFzjGSEuNG4upFqGNPErtSCDqfI,12530 +mako/ext/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +mako/ext/autohandler.py,sha256=-hNv4VHbQplLGDt5e4mFsBC-QpfWMjKokOe0axDP308,1885 +mako/ext/babelplugin.py,sha256=s6ZIAh1hUhsJIiF3j4soVHrFN_1cRJ_e3sEbz7ein7k,2091 +mako/ext/beaker_cache.py,sha256=D6gh_ke7QOKiSJtq9v67RvmqCRMDJx-IwTcd-NDjKvk,2578 +mako/ext/extract.py,sha256=EhXglj2eW5u80T3xWWB7jMgL8oNDfAQaD5E5IRiL9N0,4659 +mako/ext/linguaplugin.py,sha256=iLip2gZ0ya5pooHrxwZrP8VFQfJidXmgPZ5h1j30Kow,1935 +mako/ext/preprocessors.py,sha256=pEUbmfSO2zb4DuCt_-_oYnWypWiXs4MnJHxjTMiks5A,576 +mako/ext/pygmentplugin.py,sha256=GuOd93TjetzpTfW5oUEtuPS7jKDHgJIH3Faiaq76S0c,4753 +mako/ext/turbogears.py,sha256=mxFDF59NFK6cm__3qwGjZ1VAW0qdjJWNj23l6dcwqEg,2141 +mako/filters.py,sha256=rlHJ2L5RFr5Gf-MyOJKZI7TSJpM5oBXH58niJWCp2-4,4658 +mako/lexer.py,sha256=GOHNLeSlTIEa_yV8W5Qr27SjaPlJcO0Kij7Z2rpUkCA,15982 +mako/lookup.py,sha256=_2VPSA2CgCiT0Vd9GnSIjyY5wlpXiB2C5luXJP7gym8,12429 +mako/parsetree.py,sha256=pXbZP0orsT3iBIgWa9yD1TEfvytsCaXu2Ttws8RTMGM,19007 +mako/pygen.py,sha256=K-l_hsvXfWdMTunfHyVxvA5EG4Uzr4Qaw6IUc3hw8zI,10416 +mako/pyparser.py,sha256=diSXgo-ZwdZxbRsNZ1DmARQKVnlOFc6Qgx9Dc3wZB_U,7032 +mako/runtime.py,sha256=MwO5T1rGy0yLeJiFh2hh5cO_kfd5_9fJq_vfBzLFe_0,27806 +mako/template.py,sha256=gEhMPjKZ1Q_sYWWg6PLnRX-KBeTF0kBnyRZimlmgQks,23858 +mako/testing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +mako/testing/_config.py,sha256=k-qpnsnbXUoN-ykMN5BRpg84i1x0p6UsAddKQnrIytU,3566 +mako/testing/assertions.py,sha256=XnYDPSnDFiEX9eO95OZ5LndZrUpJ6_xGofe6qDzJxqU,5162 +mako/testing/config.py,sha256=wmYVZfzGvOK3mJUZpzmgO8-iIgvaCH41Woi4yDpxq6E,323 +mako/testing/exclusions.py,sha256=_t6ADKdatk3f18tOfHV_ZY6u_ZwQsKphZ2MXJVSAOcI,1553 +mako/testing/fixtures.py,sha256=nEp7wTusf7E0n3Q-BHJW2s_t1vx0KB9poadQ1BmIJzE,3044 +mako/testing/helpers.py,sha256=kTaIg8OL1uvcuLptbRA_aJtGndIDDaxAzacYbv_Km1Q,1521 +mako/util.py,sha256=XmYQmq6WfMAt-BPM7zhT9lybEqHVIWCM9wF1ukzqpew,10638 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/Mako-1.2.4.dist-info/REQUESTED b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/Mako-1.2.4.dist-info/REQUESTED new file mode 100644 index 0000000..e69de29 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/Mako-1.2.4.dist-info/WHEEL b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/Mako-1.2.4.dist-info/WHEEL new file mode 100644 index 0000000..57e3d84 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/Mako-1.2.4.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.38.4) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/Mako-1.2.4.dist-info/entry_points.txt b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/Mako-1.2.4.dist-info/entry_points.txt new file mode 100644 index 0000000..30f31b2 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/Mako-1.2.4.dist-info/entry_points.txt @@ -0,0 +1,18 @@ +[babel.extractors] +mako = mako.ext.babelplugin:extract [babel] + +[console_scripts] +mako-render = mako.cmd:cmdline + +[lingua.extractors] +mako = mako.ext.linguaplugin:LinguaMakoExtractor [lingua] + +[pygments.lexers] +css+mako = mako.ext.pygmentplugin:MakoCssLexer +html+mako = mako.ext.pygmentplugin:MakoHtmlLexer +js+mako = mako.ext.pygmentplugin:MakoJavascriptLexer +mako = mako.ext.pygmentplugin:MakoLexer +xml+mako = mako.ext.pygmentplugin:MakoXmlLexer + +[python.templating.engines] +mako = mako.ext.turbogears:TGPlugin diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/Mako-1.2.4.dist-info/top_level.txt b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/Mako-1.2.4.dist-info/top_level.txt new file mode 100644 index 0000000..2951cdd --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/Mako-1.2.4.dist-info/top_level.txt @@ -0,0 +1 @@ +mako diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/MarkupSafe-2.0.1.dist-info/INSTALLER b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/MarkupSafe-2.0.1.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/MarkupSafe-2.0.1.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/MarkupSafe-2.0.1.dist-info/LICENSE.rst b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/MarkupSafe-2.0.1.dist-info/LICENSE.rst new file mode 100644 index 0000000..9d227a0 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/MarkupSafe-2.0.1.dist-info/LICENSE.rst @@ -0,0 +1,28 @@ +Copyright 2010 Pallets + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/MarkupSafe-2.0.1.dist-info/METADATA b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/MarkupSafe-2.0.1.dist-info/METADATA new file mode 100644 index 0000000..e87ebb9 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/MarkupSafe-2.0.1.dist-info/METADATA @@ -0,0 +1,101 @@ +Metadata-Version: 2.1 +Name: MarkupSafe +Version: 2.0.1 +Summary: Safely add untrusted strings to HTML/XML markup. +Home-page: https://palletsprojects.com/p/markupsafe/ +Author: Armin Ronacher +Author-email: armin.ronacher@active-4.com +Maintainer: Pallets +Maintainer-email: contact@palletsprojects.com +License: BSD-3-Clause +Project-URL: Donate, https://palletsprojects.com/donate +Project-URL: Documentation, https://markupsafe.palletsprojects.com/ +Project-URL: Changes, https://markupsafe.palletsprojects.com/changes/ +Project-URL: Source Code, https://github.com/pallets/markupsafe/ +Project-URL: Issue Tracker, https://github.com/pallets/markupsafe/issues/ +Project-URL: Twitter, https://twitter.com/PalletsTeam +Project-URL: Chat, https://discord.gg/pallets +Platform: UNKNOWN +Classifier: Development Status :: 5 - Production/Stable +Classifier: Environment :: Web Environment +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: BSD License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content +Classifier: Topic :: Text Processing :: Markup :: HTML +Requires-Python: >=3.6 +Description-Content-Type: text/x-rst +License-File: LICENSE.rst + +MarkupSafe +========== + +MarkupSafe implements a text object that escapes characters so it is +safe to use in HTML and XML. Characters that have special meanings are +replaced so that they display as the actual characters. This mitigates +injection attacks, meaning untrusted user input can safely be displayed +on a page. + + +Installing +---------- + +Install and update using `pip`_: + +.. code-block:: text + + pip install -U MarkupSafe + +.. _pip: https://pip.pypa.io/en/stable/quickstart/ + + +Examples +-------- + +.. code-block:: pycon + + >>> from markupsafe import Markup, escape + + >>> # escape replaces special characters and wraps in Markup + >>> escape("") + Markup('<script>alert(document.cookie);</script>') + + >>> # wrap in Markup to mark text "safe" and prevent escaping + >>> Markup("Hello") + Markup('hello') + + >>> escape(Markup("Hello")) + Markup('hello') + + >>> # Markup is a str subclass + >>> # methods and operators escape their arguments + >>> template = Markup("Hello {name}") + >>> template.format(name='"World"') + Markup('Hello "World"') + + +Donate +------ + +The Pallets organization develops and supports MarkupSafe and other +popular packages. In order to grow the community of contributors and +users, and allow the maintainers to devote more time to the projects, +`please donate today`_. + +.. _please donate today: https://palletsprojects.com/donate + + +Links +----- + +- Documentation: https://markupsafe.palletsprojects.com/ +- Changes: https://markupsafe.palletsprojects.com/changes/ +- PyPI Releases: https://pypi.org/project/MarkupSafe/ +- Source Code: https://github.com/pallets/markupsafe/ +- Issue Tracker: https://github.com/pallets/markupsafe/issues/ +- Website: https://palletsprojects.com/p/markupsafe/ +- Twitter: https://twitter.com/PalletsTeam +- Chat: https://discord.gg/pallets + + diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/MarkupSafe-2.0.1.dist-info/RECORD b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/MarkupSafe-2.0.1.dist-info/RECORD new file mode 100644 index 0000000..ab618d3 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/MarkupSafe-2.0.1.dist-info/RECORD @@ -0,0 +1,13 @@ +MarkupSafe-2.0.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +MarkupSafe-2.0.1.dist-info/LICENSE.rst,sha256=SJqOEQhQntmKN7uYPhHg9-HTHwvY-Zp5yESOf_N9B-o,1475 +MarkupSafe-2.0.1.dist-info/METADATA,sha256=lknelt-VPHWai5EJcvZpATGKVbXkg74h7CQuPwDS71U,3237 +MarkupSafe-2.0.1.dist-info/RECORD,, +MarkupSafe-2.0.1.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +MarkupSafe-2.0.1.dist-info/WHEEL,sha256=T7Cp5xu87yB0VfKahSR3N0JT_FVycX4pq6-fNwtW39g,221 +MarkupSafe-2.0.1.dist-info/top_level.txt,sha256=qy0Plje5IJuvsCBjejJyhDCjEAdcDLK_2agVcex8Z6U,11 +markupsafe/__init__.py,sha256=9Tez4UIlI7J6_sQcUFK1dKniT_b_8YefpGIyYJ3Sr2Q,8923 +markupsafe/_native.py,sha256=GTKEV-bWgZuSjklhMHOYRHU9k0DMewTf5mVEZfkbuns,1986 +markupsafe/_speedups.c,sha256=CDDtwaV21D2nYtypnMQzxvvpZpcTvIs8OZ6KDa1g4t0,7400 +markupsafe/_speedups.cpython-37m-x86_64-linux-gnu.so,sha256=-pXHCix2zJNQJAxiYofThwxd31HBcNtF5a-bsrUgcuc,53568 +markupsafe/_speedups.pyi,sha256=vfMCsOgbAXRNLUXkyuyonG8uEWKYU4PDqNuMaDELAYw,229 +markupsafe/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/MarkupSafe-2.0.1.dist-info/REQUESTED b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/MarkupSafe-2.0.1.dist-info/REQUESTED new file mode 100644 index 0000000..e69de29 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/MarkupSafe-2.0.1.dist-info/WHEEL b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/MarkupSafe-2.0.1.dist-info/WHEEL new file mode 100644 index 0000000..1b8892a --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/MarkupSafe-2.0.1.dist-info/WHEEL @@ -0,0 +1,8 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.36.2) +Root-Is-Purelib: false +Tag: cp37-cp37m-manylinux_2_5_x86_64 +Tag: cp37-cp37m-manylinux1_x86_64 +Tag: cp37-cp37m-manylinux_2_12_x86_64 +Tag: cp37-cp37m-manylinux2010_x86_64 + diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/MarkupSafe-2.0.1.dist-info/top_level.txt b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/MarkupSafe-2.0.1.dist-info/top_level.txt new file mode 100644 index 0000000..75bf729 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/MarkupSafe-2.0.1.dist-info/top_level.txt @@ -0,0 +1 @@ +markupsafe diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/PySocks-1.7.1.dist-info/INSTALLER b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/PySocks-1.7.1.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/PySocks-1.7.1.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/PySocks-1.7.1.dist-info/LICENSE b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/PySocks-1.7.1.dist-info/LICENSE new file mode 100644 index 0000000..04b6b1f --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/PySocks-1.7.1.dist-info/LICENSE @@ -0,0 +1,22 @@ +Copyright 2006 Dan-Haim. All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. +3. Neither the name of Dan Haim nor the names of his contributors may be used + to endorse or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY DAN HAIM "AS IS" AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +EVENT SHALL DAN HAIM OR HIS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA +OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMANGE. diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/PySocks-1.7.1.dist-info/METADATA b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/PySocks-1.7.1.dist-info/METADATA new file mode 100644 index 0000000..ae2ae34 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/PySocks-1.7.1.dist-info/METADATA @@ -0,0 +1,321 @@ +Metadata-Version: 2.1 +Name: PySocks +Version: 1.7.1 +Summary: A Python SOCKS client module. See https://github.com/Anorov/PySocks for more information. +Home-page: https://github.com/Anorov/PySocks +Author: Anorov +Author-email: anorov.vorona@gmail.com +License: BSD +Keywords: socks,proxy +Platform: UNKNOWN +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.4 +Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 +Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.* +Description-Content-Type: text/markdown + +PySocks +======= + +PySocks lets you send traffic through SOCKS and HTTP proxy servers. It is a modern fork of [SocksiPy](http://socksipy.sourceforge.net/) with bug fixes and extra features. + +Acts as a drop-in replacement to the socket module. Seamlessly configure SOCKS proxies for any socket object by calling `socket_object.set_proxy()`. + +---------------- + +Features +======== + +* SOCKS proxy client for Python 2.7 and 3.4+ +* TCP supported +* UDP mostly supported (issues may occur in some edge cases) +* HTTP proxy client included but not supported or recommended (you should use urllib2's or requests' own HTTP proxy interface) +* urllib2 handler included. `pip install` / `setup.py install` will automatically install the `sockshandler` module. + +Installation +============ + + pip install PySocks + +Or download the tarball / `git clone` and... + + python setup.py install + +These will install both the `socks` and `sockshandler` modules. + +Alternatively, include just `socks.py` in your project. + +-------------------------------------------- + +*Warning:* PySocks/SocksiPy only supports HTTP proxies that use CONNECT tunneling. Certain HTTP proxies may not work with this library. If you wish to use HTTP (not SOCKS) proxies, it is recommended that you rely on your HTTP client's native proxy support (`proxies` dict for `requests`, or `urllib2.ProxyHandler` for `urllib2`) instead. + +-------------------------------------------- + +Usage +===== + +## socks.socksocket ## + + import socks + + s = socks.socksocket() # Same API as socket.socket in the standard lib + + s.set_proxy(socks.SOCKS5, "localhost") # SOCKS4 and SOCKS5 use port 1080 by default + # Or + s.set_proxy(socks.SOCKS4, "localhost", 4444) + # Or + s.set_proxy(socks.HTTP, "5.5.5.5", 8888) + + # Can be treated identical to a regular socket object + s.connect(("www.somesite.com", 80)) + s.sendall("GET / HTTP/1.1 ...") + print s.recv(4096) + +## Monkeypatching ## + +To monkeypatch the entire standard library with a single default proxy: + + import urllib2 + import socket + import socks + + socks.set_default_proxy(socks.SOCKS5, "localhost") + socket.socket = socks.socksocket + + urllib2.urlopen("http://www.somesite.com/") # All requests will pass through the SOCKS proxy + +Note that monkeypatching may not work for all standard modules or for all third party modules, and generally isn't recommended. Monkeypatching is usually an anti-pattern in Python. + +## urllib2 Handler ## + +Example use case with the `sockshandler` urllib2 handler. Note that you must import both `socks` and `sockshandler`, as the handler is its own module separate from PySocks. The module is included in the PyPI package. + + import urllib2 + import socks + from sockshandler import SocksiPyHandler + + opener = urllib2.build_opener(SocksiPyHandler(socks.SOCKS5, "127.0.0.1", 9050)) + print opener.open("http://www.somesite.com/") # All requests made by the opener will pass through the SOCKS proxy + +-------------------------------------------- + +Original SocksiPy README attached below, amended to reflect API changes. + +-------------------------------------------- + +SocksiPy + +A Python SOCKS module. + +(C) 2006 Dan-Haim. All rights reserved. + +See LICENSE file for details. + + +*WHAT IS A SOCKS PROXY?* + +A SOCKS proxy is a proxy server at the TCP level. In other words, it acts as +a tunnel, relaying all traffic going through it without modifying it. +SOCKS proxies can be used to relay traffic using any network protocol that +uses TCP. + +*WHAT IS SOCKSIPY?* + +This Python module allows you to create TCP connections through a SOCKS +proxy without any special effort. +It also supports relaying UDP packets with a SOCKS5 proxy. + +*PROXY COMPATIBILITY* + +SocksiPy is compatible with three different types of proxies: + +1. SOCKS Version 4 (SOCKS4), including the SOCKS4a extension. +2. SOCKS Version 5 (SOCKS5). +3. HTTP Proxies which support tunneling using the CONNECT method. + +*SYSTEM REQUIREMENTS* + +Being written in Python, SocksiPy can run on any platform that has a Python +interpreter and TCP/IP support. +This module has been tested with Python 2.3 and should work with greater versions +just as well. + + +INSTALLATION +------------- + +Simply copy the file "socks.py" to your Python's `lib/site-packages` directory, +and you're ready to go. [Editor's note: it is better to use `python setup.py install` for PySocks] + + +USAGE +------ + +First load the socks module with the command: + + >>> import socks + >>> + +The socks module provides a class called `socksocket`, which is the base to all of the module's functionality. + +The `socksocket` object has the same initialization parameters as the normal socket +object to ensure maximal compatibility, however it should be noted that `socksocket` will only function with family being `AF_INET` and +type being either `SOCK_STREAM` or `SOCK_DGRAM`. +Generally, it is best to initialize the `socksocket` object with no parameters + + >>> s = socks.socksocket() + >>> + +The `socksocket` object has an interface which is very similiar to socket's (in fact +the `socksocket` class is derived from socket) with a few extra methods. +To select the proxy server you would like to use, use the `set_proxy` method, whose +syntax is: + + set_proxy(proxy_type, addr[, port[, rdns[, username[, password]]]]) + +Explanation of the parameters: + +`proxy_type` - The type of the proxy server. This can be one of three possible +choices: `PROXY_TYPE_SOCKS4`, `PROXY_TYPE_SOCKS5` and `PROXY_TYPE_HTTP` for SOCKS4, +SOCKS5 and HTTP servers respectively. `SOCKS4`, `SOCKS5`, and `HTTP` are all aliases, respectively. + +`addr` - The IP address or DNS name of the proxy server. + +`port` - The port of the proxy server. Defaults to 1080 for socks and 8080 for http. + +`rdns` - This is a boolean flag than modifies the behavior regarding DNS resolving. +If it is set to True, DNS resolving will be preformed remotely, on the server. +If it is set to False, DNS resolving will be preformed locally. Please note that +setting this to True with SOCKS4 servers actually use an extension to the protocol, +called SOCKS4a, which may not be supported on all servers (SOCKS5 and http servers +always support DNS). The default is True. + +`username` - For SOCKS5 servers, this allows simple username / password authentication +with the server. For SOCKS4 servers, this parameter will be sent as the userid. +This parameter is ignored if an HTTP server is being used. If it is not provided, +authentication will not be used (servers may accept unauthenticated requests). + +`password` - This parameter is valid only for SOCKS5 servers and specifies the +respective password for the username provided. + +Example of usage: + + >>> s.set_proxy(socks.SOCKS5, "socks.example.com") # uses default port 1080 + >>> s.set_proxy(socks.SOCKS4, "socks.test.com", 1081) + +After the set_proxy method has been called, simply call the connect method with the +traditional parameters to establish a connection through the proxy: + + >>> s.connect(("www.sourceforge.net", 80)) + >>> + +Connection will take a bit longer to allow negotiation with the proxy server. +Please note that calling connect without calling `set_proxy` earlier will connect +without a proxy (just like a regular socket). + +Errors: Any errors in the connection process will trigger exceptions. The exception +may either be generated by the underlying socket layer or may be custom module +exceptions, whose details follow: + +class `ProxyError` - This is a base exception class. It is not raised directly but +rather all other exception classes raised by this module are derived from it. +This allows an easy way to catch all proxy-related errors. It descends from `IOError`. + +All `ProxyError` exceptions have an attribute `socket_err`, which will contain either a +caught `socket.error` exception, or `None` if there wasn't any. + +class `GeneralProxyError` - When thrown, it indicates a problem which does not fall +into another category. + +* `Sent invalid data` - This error means that unexpected data has been received from +the server. The most common reason is that the server specified as the proxy is +not really a SOCKS4/SOCKS5/HTTP proxy, or maybe the proxy type specified is wrong. + +* `Connection closed unexpectedly` - The proxy server unexpectedly closed the connection. +This may indicate that the proxy server is experiencing network or software problems. + +* `Bad proxy type` - This will be raised if the type of the proxy supplied to the +set_proxy function was not one of `SOCKS4`/`SOCKS5`/`HTTP`. + +* `Bad input` - This will be raised if the `connect()` method is called with bad input +parameters. + +class `SOCKS5AuthError` - This indicates that the connection through a SOCKS5 server +failed due to an authentication problem. + +* `Authentication is required` - This will happen if you use a SOCKS5 server which +requires authentication without providing a username / password at all. + +* `All offered authentication methods were rejected` - This will happen if the proxy +requires a special authentication method which is not supported by this module. + +* `Unknown username or invalid password` - Self descriptive. + +class `SOCKS5Error` - This will be raised for SOCKS5 errors which are not related to +authentication. +The parameter is a tuple containing a code, as given by the server, +and a description of the +error. The possible errors, according to the RFC, are: + +* `0x01` - General SOCKS server failure - If for any reason the proxy server is unable to +fulfill your request (internal server error). +* `0x02` - connection not allowed by ruleset - If the address you're trying to connect to +is blacklisted on the server or requires authentication. +* `0x03` - Network unreachable - The target could not be contacted. A router on the network +had replied with a destination net unreachable error. +* `0x04` - Host unreachable - The target could not be contacted. A router on the network +had replied with a destination host unreachable error. +* `0x05` - Connection refused - The target server has actively refused the connection +(the requested port is closed). +* `0x06` - TTL expired - The TTL value of the SYN packet from the proxy to the target server +has expired. This usually means that there are network problems causing the packet +to be caught in a router-to-router "ping-pong". +* `0x07` - Command not supported - For instance if the server does not support UDP. +* `0x08` - Address type not supported - The client has provided an invalid address type. +When using this module, this error should not occur. + +class `SOCKS4Error` - This will be raised for SOCKS4 errors. The parameter is a tuple +containing a code and a description of the error, as given by the server. The +possible error, according to the specification are: + +* `0x5B` - Request rejected or failed - Will be raised in the event of an failure for any +reason other then the two mentioned next. +* `0x5C` - request rejected because SOCKS server cannot connect to identd on the client - +The Socks server had tried an ident lookup on your computer and has failed. In this +case you should run an identd server and/or configure your firewall to allow incoming +connections to local port 113 from the remote server. +* `0x5D` - request rejected because the client program and identd report different user-ids - +The Socks server had performed an ident lookup on your computer and has received a +different userid than the one you have provided. Change your userid (through the +username parameter of the set_proxy method) to match and try again. + +class `HTTPError` - This will be raised for HTTP errors. The message will contain +the HTTP status code and provided error message. + +After establishing the connection, the object behaves like a standard socket. + +Methods like `makefile()` and `settimeout()` should behave just like regular sockets. +Call the `close()` method to close the connection. + +In addition to the `socksocket` class, an additional function worth mentioning is the +`set_default_proxy` function. The parameters are the same as the `set_proxy` method. +This function will set default proxy settings for newly created `socksocket` objects, +in which the proxy settings haven't been changed via the `set_proxy` method. +This is quite useful if you wish to force 3rd party modules to use a SOCKS proxy, +by overriding the socket object. +For example: + + >>> socks.set_default_proxy(socks.SOCKS5, "socks.example.com") + >>> socket.socket = socks.socksocket + >>> urllib.urlopen("http://www.sourceforge.net/") + + +PROBLEMS +--------- + +Please open a GitHub issue at https://github.com/Anorov/PySocks + + diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/PySocks-1.7.1.dist-info/RECORD b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/PySocks-1.7.1.dist-info/RECORD new file mode 100644 index 0000000..0c8247e --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/PySocks-1.7.1.dist-info/RECORD @@ -0,0 +1,8 @@ +PySocks-1.7.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +PySocks-1.7.1.dist-info/LICENSE,sha256=cCfiFOAU63i3rcwc7aWspxOnn8T2oMUsnaWz5wfm_-k,1401 +PySocks-1.7.1.dist-info/METADATA,sha256=zbQMizjPOOP4DhEiEX24XXjNrYuIxF9UGUpN0uFDB6Y,13235 +PySocks-1.7.1.dist-info/RECORD,, +PySocks-1.7.1.dist-info/WHEEL,sha256=t_MpApv386-8PVts2R6wsTifdIn0vbUDTVv61IbqFC8,92 +PySocks-1.7.1.dist-info/top_level.txt,sha256=TKSOIfCFBoK9EY8FBYbYqC3PWd3--G15ph9n8-QHPDk,19 +socks.py,sha256=xOYn27t9IGrbTBzWsUUuPa0YBuplgiUykzkOB5V5iFY,31086 +sockshandler.py,sha256=2SYGj-pwt1kjgLoZAmyeaEXCeZDWRmfVS_QG6kErGtY,3966 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/PySocks-1.7.1.dist-info/WHEEL b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/PySocks-1.7.1.dist-info/WHEEL new file mode 100644 index 0000000..129a673 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/PySocks-1.7.1.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.33.3) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/PySocks-1.7.1.dist-info/top_level.txt b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/PySocks-1.7.1.dist-info/top_level.txt new file mode 100644 index 0000000..9476163 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/PySocks-1.7.1.dist-info/top_level.txt @@ -0,0 +1,2 @@ +socks +sockshandler diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/PyYAML-6.0.1.dist-info/INSTALLER b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/PyYAML-6.0.1.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/PyYAML-6.0.1.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/PyYAML-6.0.1.dist-info/LICENSE b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/PyYAML-6.0.1.dist-info/LICENSE new file mode 100644 index 0000000..2f1b8e1 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/PyYAML-6.0.1.dist-info/LICENSE @@ -0,0 +1,20 @@ +Copyright (c) 2017-2021 Ingy döt Net +Copyright (c) 2006-2016 Kirill Simonov + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/PyYAML-6.0.1.dist-info/METADATA b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/PyYAML-6.0.1.dist-info/METADATA new file mode 100644 index 0000000..c890598 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/PyYAML-6.0.1.dist-info/METADATA @@ -0,0 +1,46 @@ +Metadata-Version: 2.1 +Name: PyYAML +Version: 6.0.1 +Summary: YAML parser and emitter for Python +Home-page: https://pyyaml.org/ +Download-URL: https://pypi.org/project/PyYAML/ +Author: Kirill Simonov +Author-email: xi@resolvent.net +License: MIT +Project-URL: Bug Tracker, https://github.com/yaml/pyyaml/issues +Project-URL: CI, https://github.com/yaml/pyyaml/actions +Project-URL: Documentation, https://pyyaml.org/wiki/PyYAMLDocumentation +Project-URL: Mailing lists, http://lists.sourceforge.net/lists/listinfo/yaml-core +Project-URL: Source Code, https://github.com/yaml/pyyaml +Platform: Any +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: MIT License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Cython +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Topic :: Software Development :: Libraries :: Python Modules +Classifier: Topic :: Text Processing :: Markup +Requires-Python: >=3.6 +License-File: LICENSE + +YAML is a data serialization format designed for human readability +and interaction with scripting languages. PyYAML is a YAML parser +and emitter for Python. + +PyYAML features a complete YAML 1.1 parser, Unicode support, pickle +support, capable extension API, and sensible error messages. PyYAML +supports standard YAML tags and provides Python-specific tags that +allow to represent an arbitrary Python object. + +PyYAML is applicable for a broad range of tasks from complex +configuration files to object serialization and persistence. diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/PyYAML-6.0.1.dist-info/RECORD b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/PyYAML-6.0.1.dist-info/RECORD new file mode 100644 index 0000000..5651a8b --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/PyYAML-6.0.1.dist-info/RECORD @@ -0,0 +1,26 @@ +PyYAML-6.0.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +PyYAML-6.0.1.dist-info/LICENSE,sha256=jTko-dxEkP1jVwfLiOsmvXZBAqcoKVQwfT5RZ6V36KQ,1101 +PyYAML-6.0.1.dist-info/METADATA,sha256=UNNF8-SzzwOKXVo-kV5lXUGH2_wDWMBmGxqISpp5HQk,2058 +PyYAML-6.0.1.dist-info/RECORD,, +PyYAML-6.0.1.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +PyYAML-6.0.1.dist-info/WHEEL,sha256=E0CkEo6W7NC93sVo8jj5Y2C0iOJBJ79Iyun5srY2VI0,150 +PyYAML-6.0.1.dist-info/top_level.txt,sha256=rpj0IVMTisAjh_1vG3Ccf9v5jpCQwAz6cD1IVU5ZdhQ,11 +_yaml/__init__.py,sha256=04Ae_5osxahpJHa3XBZUAf4wi6XX32gR8D6X6p64GEA,1402 +yaml/__init__.py,sha256=bhl05qSeO-1ZxlSRjGrvl2m9nrXb1n9-GQatTN0Mrqc,12311 +yaml/_yaml.cpython-37m-x86_64-linux-gnu.so,sha256=esho9rx9cSckIi84QOt04kVtI4LHNm_M81Sa55G-Rjg,2129400 +yaml/composer.py,sha256=_Ko30Wr6eDWUeUpauUGT3Lcg9QPBnOPVlTnIMRGJ9FM,4883 +yaml/constructor.py,sha256=kNgkfaeLUkwQYY_Q6Ff1Tz2XVw_pG1xVE9Ak7z-viLA,28639 +yaml/cyaml.py,sha256=6ZrAG9fAYvdVe2FK_w0hmXoG7ZYsoYUwapG8CiC72H0,3851 +yaml/dumper.py,sha256=PLctZlYwZLp7XmeUdwRuv4nYOZ2UBnDIUy8-lKfLF-o,2837 +yaml/emitter.py,sha256=jghtaU7eFwg31bG0B7RZea_29Adi9CKmXq_QjgQpCkQ,43006 +yaml/error.py,sha256=Ah9z-toHJUbE9j-M8YpxgSRM5CgLCcwVzJgLLRF2Fxo,2533 +yaml/events.py,sha256=50_TksgQiE4up-lKo_V-nBy-tAIxkIPQxY5qDhKCeHw,2445 +yaml/loader.py,sha256=UVa-zIqmkFSCIYq_PgSGm4NSJttHY2Rf_zQ4_b1fHN0,2061 +yaml/nodes.py,sha256=gPKNj8pKCdh2d4gr3gIYINnPOaOxGhJAUiYhGRnPE84,1440 +yaml/parser.py,sha256=ilWp5vvgoHFGzvOZDItFoGjD6D42nhlZrZyjAwa0oJo,25495 +yaml/reader.py,sha256=0dmzirOiDG4Xo41RnuQS7K9rkY3xjHiVasfDMNTqCNw,6794 +yaml/representer.py,sha256=IuWP-cAW9sHKEnS0gCqSa894k1Bg4cgTxaDwIcbRQ-Y,14190 +yaml/resolver.py,sha256=9L-VYfm4mWHxUD1Vg4X7rjDRK_7VZd6b92wzq7Y2IKY,9004 +yaml/scanner.py,sha256=YEM3iLZSaQwXcQRg2l2R4MdT0zGP2F9eHkKGKnHyWQY,51279 +yaml/serializer.py,sha256=ChuFgmhU01hj4xgI8GaKv6vfM2Bujwa9i7d2FAHj7cA,4165 +yaml/tokens.py,sha256=lTQIzSVw8Mg9wv459-TjiOQe6wVziqaRlqX2_89rp54,2573 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/PyYAML-6.0.1.dist-info/REQUESTED b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/PyYAML-6.0.1.dist-info/REQUESTED new file mode 100644 index 0000000..e69de29 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/PyYAML-6.0.1.dist-info/WHEEL b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/PyYAML-6.0.1.dist-info/WHEEL new file mode 100644 index 0000000..235b512 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/PyYAML-6.0.1.dist-info/WHEEL @@ -0,0 +1,6 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.40.0) +Root-Is-Purelib: false +Tag: cp37-cp37m-manylinux_2_17_x86_64 +Tag: cp37-cp37m-manylinux2014_x86_64 + diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/PyYAML-6.0.1.dist-info/top_level.txt b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/PyYAML-6.0.1.dist-info/top_level.txt new file mode 100644 index 0000000..e6475e9 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/PyYAML-6.0.1.dist-info/top_level.txt @@ -0,0 +1,2 @@ +_yaml +yaml diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/_pyrsistent_version.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/_pyrsistent_version.py new file mode 100644 index 0000000..b699138 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/_pyrsistent_version.py @@ -0,0 +1 @@ +__version__ = '0.19.3' diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/_yaml/__init__.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/_yaml/__init__.py new file mode 100644 index 0000000..7baa8c4 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/_yaml/__init__.py @@ -0,0 +1,33 @@ +# This is a stub package designed to roughly emulate the _yaml +# extension module, which previously existed as a standalone module +# and has been moved into the `yaml` package namespace. +# It does not perfectly mimic its old counterpart, but should get +# close enough for anyone who's relying on it even when they shouldn't. +import yaml + +# in some circumstances, the yaml module we imoprted may be from a different version, so we need +# to tread carefully when poking at it here (it may not have the attributes we expect) +if not getattr(yaml, '__with_libyaml__', False): + from sys import version_info + + exc = ModuleNotFoundError if version_info >= (3, 6) else ImportError + raise exc("No module named '_yaml'") +else: + from yaml._yaml import * + import warnings + warnings.warn( + 'The _yaml extension module is now located at yaml._yaml' + ' and its location is subject to change. To use the' + ' LibYAML-based parser and emitter, import from `yaml`:' + ' `from yaml import CLoader as Loader, CDumper as Dumper`.', + DeprecationWarning + ) + del warnings + # Don't `del yaml` here because yaml is actually an existing + # namespace member of _yaml. + +__name__ = '_yaml' +# If the module is top-level (i.e. not a part of any specific package) +# then the attribute should be set to ''. +# https://docs.python.org/3.8/library/types.html +__package__ = '' diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/BufferedTokenStream.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/BufferedTokenStream.py new file mode 100644 index 0000000..aaa58c6 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/BufferedTokenStream.py @@ -0,0 +1,302 @@ +# +# Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. +# Use of this file is governed by the BSD 3-clause license that +# can be found in the LICENSE.txt file in the project root. + +# This implementation of {@link TokenStream} loads tokens from a +# {@link TokenSource} on-demand, and places the tokens in a buffer to provide +# access to any previous token by index. +# +#

+# This token stream ignores the value of {@link Token#getChannel}. If your +# parser requires the token stream filter tokens to only those on a particular +# channel, such as {@link Token#DEFAULT_CHANNEL} or +# {@link Token#HIDDEN_CHANNEL}, use a filtering token stream such a +# {@link CommonTokenStream}.

+from io import StringIO +from antlr4.Token import Token +from antlr4.error.Errors import IllegalStateException + +# need forward declaration +Lexer = None + +# this is just to keep meaningful parameter types to Parser +class TokenStream(object): + + pass + + +class BufferedTokenStream(TokenStream): + __slots__ = ('tokenSource', 'tokens', 'index', 'fetchedEOF') + + def __init__(self, tokenSource:Lexer): + # The {@link TokenSource} from which tokens for this stream are fetched. + self.tokenSource = tokenSource + + # A collection of all tokens fetched from the token source. The list is + # considered a complete view of the input once {@link #fetchedEOF} is set + # to {@code true}. + self.tokens = [] + + # The index into {@link #tokens} of the current token (next token to + # {@link #consume}). {@link #tokens}{@code [}{@link #p}{@code ]} should be + # {@link #LT LT(1)}. + # + #

This field is set to -1 when the stream is first constructed or when + # {@link #setTokenSource} is called, indicating that the first token has + # not yet been fetched from the token source. For additional information, + # see the documentation of {@link IntStream} for a description of + # Initializing Methods.

+ self.index = -1 + + # Indicates whether the {@link Token#EOF} token has been fetched from + # {@link #tokenSource} and added to {@link #tokens}. This field improves + # performance for the following cases: + # + #
    + #
  • {@link #consume}: The lookahead check in {@link #consume} to prevent + # consuming the EOF symbol is optimized by checking the values of + # {@link #fetchedEOF} and {@link #p} instead of calling {@link #LA}.
  • + #
  • {@link #fetch}: The check to prevent adding multiple EOF symbols into + # {@link #tokens} is trivial with this field.
  • + #
      + self.fetchedEOF = False + + def mark(self): + return 0 + + def release(self, marker:int): + # no resources to release + pass + + def reset(self): + self.seek(0) + + def seek(self, index:int): + self.lazyInit() + self.index = self.adjustSeekIndex(index) + + def get(self, index:int): + self.lazyInit() + return self.tokens[index] + + def consume(self): + skipEofCheck = False + if self.index >= 0: + if self.fetchedEOF: + # the last token in tokens is EOF. skip check if p indexes any + # fetched token except the last. + skipEofCheck = self.index < len(self.tokens) - 1 + else: + # no EOF token in tokens. skip check if p indexes a fetched token. + skipEofCheck = self.index < len(self.tokens) + else: + # not yet initialized + skipEofCheck = False + + if not skipEofCheck and self.LA(1) == Token.EOF: + raise IllegalStateException("cannot consume EOF") + + if self.sync(self.index + 1): + self.index = self.adjustSeekIndex(self.index + 1) + + # Make sure index {@code i} in tokens has a token. + # + # @return {@code true} if a token is located at index {@code i}, otherwise + # {@code false}. + # @see #get(int i) + #/ + def sync(self, i:int): + n = i - len(self.tokens) + 1 # how many more elements we need? + if n > 0 : + fetched = self.fetch(n) + return fetched >= n + return True + + # Add {@code n} elements to buffer. + # + # @return The actual number of elements added to the buffer. + #/ + def fetch(self, n:int): + if self.fetchedEOF: + return 0 + for i in range(0, n): + t = self.tokenSource.nextToken() + t.tokenIndex = len(self.tokens) + self.tokens.append(t) + if t.type==Token.EOF: + self.fetchedEOF = True + return i + 1 + return n + + + # Get all tokens from start..stop inclusively#/ + def getTokens(self, start:int, stop:int, types:set=None): + if start<0 or stop<0: + return None + self.lazyInit() + subset = [] + if stop >= len(self.tokens): + stop = len(self.tokens)-1 + for i in range(start, stop): + t = self.tokens[i] + if t.type==Token.EOF: + break + if types is None or t.type in types: + subset.append(t) + return subset + + def LA(self, i:int): + return self.LT(i).type + + def LB(self, k:int): + if (self.index-k) < 0: + return None + return self.tokens[self.index-k] + + def LT(self, k:int): + self.lazyInit() + if k==0: + return None + if k < 0: + return self.LB(-k) + i = self.index + k - 1 + self.sync(i) + if i >= len(self.tokens): # return EOF token + # EOF must be last token + return self.tokens[len(self.tokens)-1] + return self.tokens[i] + + # Allowed derived classes to modify the behavior of operations which change + # the current stream position by adjusting the target token index of a seek + # operation. The default implementation simply returns {@code i}. If an + # exception is thrown in this method, the current stream index should not be + # changed. + # + #

      For example, {@link CommonTokenStream} overrides this method to ensure that + # the seek target is always an on-channel token.

      + # + # @param i The target token index. + # @return The adjusted target token index. + + def adjustSeekIndex(self, i:int): + return i + + def lazyInit(self): + if self.index == -1: + self.setup() + + def setup(self): + self.sync(0) + self.index = self.adjustSeekIndex(0) + + # Reset this token stream by setting its token source.#/ + def setTokenSource(self, tokenSource:Lexer): + self.tokenSource = tokenSource + self.tokens = [] + self.index = -1 + self.fetchedEOF = False + + + # Given a starting index, return the index of the next token on channel. + # Return i if tokens[i] is on channel. Return the index of the EOF token + # if there are no tokens on channel between i and EOF. + #/ + def nextTokenOnChannel(self, i:int, channel:int): + self.sync(i) + if i>=len(self.tokens): + return len(self.tokens) - 1 + token = self.tokens[i] + while token.channel!=channel: + if token.type==Token.EOF: + return i + i += 1 + self.sync(i) + token = self.tokens[i] + return i + + # Given a starting index, return the index of the previous token on channel. + # Return i if tokens[i] is on channel. Return -1 if there are no tokens + # on channel between i and 0. + def previousTokenOnChannel(self, i:int, channel:int): + while i>=0 and self.tokens[i].channel!=channel: + i -= 1 + return i + + # Collect all tokens on specified channel to the right of + # the current token up until we see a token on DEFAULT_TOKEN_CHANNEL or + # EOF. If channel is -1, find any non default channel token. + def getHiddenTokensToRight(self, tokenIndex:int, channel:int=-1): + self.lazyInit() + if tokenIndex<0 or tokenIndex>=len(self.tokens): + raise Exception(str(tokenIndex) + " not in 0.." + str(len(self.tokens)-1)) + from antlr4.Lexer import Lexer + nextOnChannel = self.nextTokenOnChannel(tokenIndex + 1, Lexer.DEFAULT_TOKEN_CHANNEL) + from_ = tokenIndex+1 + # if none onchannel to right, nextOnChannel=-1 so set to = last token + to = (len(self.tokens)-1) if nextOnChannel==-1 else nextOnChannel + return self.filterForChannel(from_, to, channel) + + + # Collect all tokens on specified channel to the left of + # the current token up until we see a token on DEFAULT_TOKEN_CHANNEL. + # If channel is -1, find any non default channel token. + def getHiddenTokensToLeft(self, tokenIndex:int, channel:int=-1): + self.lazyInit() + if tokenIndex<0 or tokenIndex>=len(self.tokens): + raise Exception(str(tokenIndex) + " not in 0.." + str(len(self.tokens)-1)) + from antlr4.Lexer import Lexer + prevOnChannel = self.previousTokenOnChannel(tokenIndex - 1, Lexer.DEFAULT_TOKEN_CHANNEL) + if prevOnChannel == tokenIndex - 1: + return None + # if none on channel to left, prevOnChannel=-1 then from=0 + from_ = prevOnChannel+1 + to = tokenIndex-1 + return self.filterForChannel(from_, to, channel) + + + def filterForChannel(self, left:int, right:int, channel:int): + hidden = [] + for i in range(left, right+1): + t = self.tokens[i] + if channel==-1: + from antlr4.Lexer import Lexer + if t.channel!= Lexer.DEFAULT_TOKEN_CHANNEL: + hidden.append(t) + elif t.channel==channel: + hidden.append(t) + if len(hidden)==0: + return None + return hidden + + def getSourceName(self): + return self.tokenSource.getSourceName() + + # Get the text of all tokens in this buffer.#/ + def getText(self, start:int=None, stop:int=None): + self.lazyInit() + self.fill() + if isinstance(start, Token): + start = start.tokenIndex + elif start is None: + start = 0 + if isinstance(stop, Token): + stop = stop.tokenIndex + elif stop is None or stop >= len(self.tokens): + stop = len(self.tokens) - 1 + if start < 0 or stop < 0 or stop < start: + return "" + with StringIO() as buf: + for i in range(start, stop+1): + t = self.tokens[i] + if t.type==Token.EOF: + break + buf.write(t.text) + return buf.getvalue() + + + # Get all tokens from lexer until EOF#/ + def fill(self): + self.lazyInit() + while self.fetch(1000)==1000: + pass diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/CommonTokenFactory.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/CommonTokenFactory.py new file mode 100644 index 0000000..0d09ad7 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/CommonTokenFactory.py @@ -0,0 +1,61 @@ +# +# Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. +# Use of this file is governed by the BSD 3-clause license that +# can be found in the LICENSE.txt file in the project root. +# + +# +# This default implementation of {@link TokenFactory} creates +# {@link CommonToken} objects. +# +from antlr4.Token import CommonToken + +class TokenFactory(object): + + pass + +class CommonTokenFactory(TokenFactory): + __slots__ = 'copyText' + + # + # The default {@link CommonTokenFactory} instance. + # + #

      + # This token factory does not explicitly copy token text when constructing + # tokens.

      + # + DEFAULT = None + + def __init__(self, copyText:bool=False): + # Indicates whether {@link CommonToken#setText} should be called after + # constructing tokens to explicitly set the text. This is useful for cases + # where the input stream might not be able to provide arbitrary substrings + # of text from the input after the lexer creates a token (e.g. the + # implementation of {@link CharStream#getText} in + # {@link UnbufferedCharStream} throws an + # {@link UnsupportedOperationException}). Explicitly setting the token text + # allows {@link Token#getText} to be called at any time regardless of the + # input stream implementation. + # + #

      + # The default value is {@code false} to avoid the performance and memory + # overhead of copying text for every token unless explicitly requested.

      + # + self.copyText = copyText + + def create(self, source, type:int, text:str, channel:int, start:int, stop:int, line:int, column:int): + t = CommonToken(source, type, channel, start, stop) + t.line = line + t.column = column + if text is not None: + t.text = text + elif self.copyText and source[1] is not None: + t.text = source[1].getText(start,stop) + return t + + def createThin(self, type:int, text:str): + t = CommonToken(type=type) + t.text = text + return t + +CommonTokenFactory.DEFAULT = CommonTokenFactory() diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/CommonTokenStream.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/CommonTokenStream.py new file mode 100644 index 0000000..dd0a984 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/CommonTokenStream.py @@ -0,0 +1,87 @@ +# +# Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. +# Use of this file is governed by the BSD 3-clause license that +# can be found in the LICENSE.txt file in the project root. +#/ + +# +# This class extends {@link BufferedTokenStream} with functionality to filter +# token streams to tokens on a particular channel (tokens where +# {@link Token#getChannel} returns a particular value). +# +#

      +# This token stream provides access to all tokens by index or when calling +# methods like {@link #getText}. The channel filtering is only used for code +# accessing tokens via the lookahead methods {@link #LA}, {@link #LT}, and +# {@link #LB}.

      +# +#

      +# By default, tokens are placed on the default channel +# ({@link Token#DEFAULT_CHANNEL}), but may be reassigned by using the +# {@code ->channel(HIDDEN)} lexer command, or by using an embedded action to +# call {@link Lexer#setChannel}. +#

      +# +#

      +# Note: lexer rules which use the {@code ->skip} lexer command or call +# {@link Lexer#skip} do not produce tokens at all, so input text matched by +# such a rule will not be available as part of the token stream, regardless of +# channel.

      +#/ + +from antlr4.BufferedTokenStream import BufferedTokenStream +from antlr4.Lexer import Lexer +from antlr4.Token import Token + + +class CommonTokenStream(BufferedTokenStream): + __slots__ = 'channel' + + def __init__(self, lexer:Lexer, channel:int=Token.DEFAULT_CHANNEL): + super().__init__(lexer) + self.channel = channel + + def adjustSeekIndex(self, i:int): + return self.nextTokenOnChannel(i, self.channel) + + def LB(self, k:int): + if k==0 or (self.index-k)<0: + return None + i = self.index + n = 1 + # find k good tokens looking backwards + while n <= k: + # skip off-channel tokens + i = self.previousTokenOnChannel(i - 1, self.channel) + n += 1 + if i < 0: + return None + return self.tokens[i] + + def LT(self, k:int): + self.lazyInit() + if k == 0: + return None + if k < 0: + return self.LB(-k) + i = self.index + n = 1 # we know tokens[pos] is a good one + # find k good tokens + while n < k: + # skip off-channel tokens, but make sure to not look past EOF + if self.sync(i + 1): + i = self.nextTokenOnChannel(i + 1, self.channel) + n += 1 + return self.tokens[i] + + # Count EOF just once.#/ + def getNumberOfOnChannelTokens(self): + n = 0 + self.fill() + for i in range(0, len(self.tokens)): + t = self.tokens[i] + if t.channel==self.channel: + n += 1 + if t.type==Token.EOF: + break + return n diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/FileStream.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/FileStream.py new file mode 100644 index 0000000..1c6ce9f --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/FileStream.py @@ -0,0 +1,27 @@ +# +# Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. +# Use of this file is governed by the BSD 3-clause license that +# can be found in the LICENSE.txt file in the project root. +# + +# +# This is an InputStream that is loaded from a file all at once +# when you construct the object. +# + +import codecs +from antlr4.InputStream import InputStream + + +class FileStream(InputStream): + __slots__ = 'fileName' + + def __init__(self, fileName:str, encoding:str='ascii', errors:str='strict'): + super().__init__(self.readDataFrom(fileName, encoding, errors)) + self.fileName = fileName + + def readDataFrom(self, fileName:str, encoding:str, errors:str='strict'): + # read binary to avoid line ending conversion + with open(fileName, 'rb') as file: + bytes = file.read() + return codecs.decode(bytes, encoding, errors) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/InputStream.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/InputStream.py new file mode 100644 index 0000000..5d077d1 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/InputStream.py @@ -0,0 +1,87 @@ +# +# Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. +# Use of this file is governed by the BSD 3-clause license that +# can be found in the LICENSE.txt file in the project root. +# + + +# +# Vacuum all input from a string and then treat it like a buffer. +# +from antlr4.Token import Token + + +class InputStream (object): + __slots__ = ('name', 'strdata', '_index', 'data', '_size') + + def __init__(self, data: str): + self.name = "" + self.strdata = data + self._loadString() + + def _loadString(self): + self._index = 0 + self.data = [ord(c) for c in self.strdata] + self._size = len(self.data) + + @property + def index(self): + return self._index + + @property + def size(self): + return self._size + + # Reset the stream so that it's in the same state it was + # when the object was created *except* the data array is not + # touched. + # + def reset(self): + self._index = 0 + + def consume(self): + if self._index >= self._size: + assert self.LA(1) == Token.EOF + raise Exception("cannot consume EOF") + self._index += 1 + + def LA(self, offset: int): + if offset==0: + return 0 # undefined + if offset<0: + offset += 1 # e.g., translate LA(-1) to use offset=0 + pos = self._index + offset - 1 + if pos < 0 or pos >= self._size: # invalid + return Token.EOF + return self.data[pos] + + def LT(self, offset: int): + return self.LA(offset) + + # mark/release do nothing; we have entire buffer + def mark(self): + return -1 + + def release(self, marker: int): + pass + + # consume() ahead until p==_index; can't just set p=_index as we must + # update line and column. If we seek backwards, just set p + # + def seek(self, _index: int): + if _index<=self._index: + self._index = _index # just jump; don't update stream state (line, ...) + return + # seek forward + self._index = min(_index, self._size) + + def getText(self, start :int, stop: int): + if stop >= self._size: + stop = self._size-1 + if start >= self._size: + return "" + else: + return self.strdata[start:stop+1] + + def __str__(self): + return self.strdata diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/IntervalSet.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/IntervalSet.py new file mode 100644 index 0000000..fda8e6d --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/IntervalSet.py @@ -0,0 +1,180 @@ +# +# Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. +# Use of this file is governed by the BSD 3-clause license that +# can be found in the LICENSE.txt file in the project root. +# + +from io import StringIO +from antlr4.Token import Token + +# need forward declarations +IntervalSet = None + +class IntervalSet(object): + __slots__ = ('intervals', 'readonly') + + def __init__(self): + self.intervals = None + self.readonly = False + + def __iter__(self): + if self.intervals is not None: + for i in self.intervals: + for c in i: + yield c + + def __getitem__(self, item): + i = 0 + for k in self: + if i==item: + return k + else: + i += 1 + return Token.INVALID_TYPE + + def addOne(self, v:int): + self.addRange(range(v, v+1)) + + def addRange(self, v:range): + if self.intervals is None: + self.intervals = list() + self.intervals.append(v) + else: + # find insert pos + k = 0 + for i in self.intervals: + # distinct range -> insert + if v.stop adjust + elif v.stop==i.start: + self.intervals[k] = range(v.start, i.stop) + return + # overlapping range -> adjust and reduce + elif v.start<=i.stop: + self.intervals[k] = range(min(i.start,v.start), max(i.stop,v.stop)) + self.reduce(k) + return + k += 1 + # greater than any existing + self.intervals.append(v) + + def addSet(self, other:IntervalSet): + if other.intervals is not None: + for i in other.intervals: + self.addRange(i) + return self + + def reduce(self, k:int): + # only need to reduce if k is not the last + if k= r.stop: + self.intervals.pop(k+1) + self.reduce(k) + elif l.stop >= r.start: + self.intervals[k] = range(l.start, r.stop) + self.intervals.pop(k+1) + + def complement(self, start, stop): + result = IntervalSet() + result.addRange(range(start,stop+1)) + for i in self.intervals: + result.removeRange(i) + return result + + def __contains__(self, item): + if self.intervals is None: + return False + else: + return any(item in i for i in self.intervals) + + def __len__(self): + return sum(len(i) for i in self.intervals) + + def removeRange(self, v): + if v.start==v.stop-1: + self.removeOne(v.start) + elif self.intervals is not None: + k = 0 + for i in self.intervals: + # intervals are ordered + if v.stop<=i.start: + return + # check for including range, split it + elif v.start>i.start and v.stop=i.stop: + self.intervals.pop(k) + k -= 1 # need another pass + # check for lower boundary + elif v.start1: + buf.write("{") + first = True + for i in self.intervals: + for j in i: + if not first: + buf.write(", ") + buf.write(self.elementName(literalNames, symbolicNames, j)) + first = False + if len(self)>1: + buf.write("}") + return buf.getvalue() + + def elementName(self, literalNames:list, symbolicNames:list, a:int): + if a==Token.EOF: + return "" + elif a==Token.EPSILON: + return "" + else: + if a" diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/LL1Analyzer.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/LL1Analyzer.py new file mode 100644 index 0000000..ac149fa --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/LL1Analyzer.py @@ -0,0 +1,173 @@ +# +# Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. +# Use of this file is governed by the BSD 3-clause license that +# can be found in the LICENSE.txt file in the project root. +#/ +from antlr4.IntervalSet import IntervalSet +from antlr4.Token import Token +from antlr4.PredictionContext import PredictionContext, SingletonPredictionContext, PredictionContextFromRuleContext +from antlr4.RuleContext import RuleContext +from antlr4.atn.ATN import ATN +from antlr4.atn.ATNConfig import ATNConfig +from antlr4.atn.ATNState import ATNState, RuleStopState +from antlr4.atn.Transition import WildcardTransition, NotSetTransition, AbstractPredicateTransition, RuleTransition + + +class LL1Analyzer (object): + __slots__ = 'atn' + + #* Special value added to the lookahead sets to indicate that we hit + # a predicate during analysis if {@code seeThruPreds==false}. + #/ + HIT_PRED = Token.INVALID_TYPE + + def __init__(self, atn:ATN): + self.atn = atn + + #* + # Calculates the SLL(1) expected lookahead set for each outgoing transition + # of an {@link ATNState}. The returned array has one element for each + # outgoing transition in {@code s}. If the closure from transition + # i leads to a semantic predicate before matching a symbol, the + # element at index i of the result will be {@code null}. + # + # @param s the ATN state + # @return the expected symbols for each outgoing transition of {@code s}. + #/ + def getDecisionLookahead(self, s:ATNState): + if s is None: + return None + + count = len(s.transitions) + look = [] * count + for alt in range(0, count): + look[alt] = set() + lookBusy = set() + seeThruPreds = False # fail to get lookahead upon pred + self._LOOK(s.transition(alt).target, None, PredictionContext.EMPTY, + look[alt], lookBusy, set(), seeThruPreds, False) + # Wipe out lookahead for this alternative if we found nothing + # or we had a predicate when we !seeThruPreds + if len(look[alt])==0 or self.HIT_PRED in look[alt]: + look[alt] = None + return look + + #* + # Compute set of tokens that can follow {@code s} in the ATN in the + # specified {@code ctx}. + # + #

      If {@code ctx} is {@code null} and the end of the rule containing + # {@code s} is reached, {@link Token#EPSILON} is added to the result set. + # If {@code ctx} is not {@code null} and the end of the outermost rule is + # reached, {@link Token#EOF} is added to the result set.

      + # + # @param s the ATN state + # @param stopState the ATN state to stop at. This can be a + # {@link BlockEndState} to detect epsilon paths through a closure. + # @param ctx the complete parser context, or {@code null} if the context + # should be ignored + # + # @return The set of tokens that can follow {@code s} in the ATN in the + # specified {@code ctx}. + #/ + def LOOK(self, s:ATNState, stopState:ATNState=None, ctx:RuleContext=None): + r = IntervalSet() + seeThruPreds = True # ignore preds; get all lookahead + lookContext = PredictionContextFromRuleContext(s.atn, ctx) if ctx is not None else None + self._LOOK(s, stopState, lookContext, r, set(), set(), seeThruPreds, True) + return r + + #* + # Compute set of tokens that can follow {@code s} in the ATN in the + # specified {@code ctx}. + # + #

      If {@code ctx} is {@code null} and {@code stopState} or the end of the + # rule containing {@code s} is reached, {@link Token#EPSILON} is added to + # the result set. If {@code ctx} is not {@code null} and {@code addEOF} is + # {@code true} and {@code stopState} or the end of the outermost rule is + # reached, {@link Token#EOF} is added to the result set.

      + # + # @param s the ATN state. + # @param stopState the ATN state to stop at. This can be a + # {@link BlockEndState} to detect epsilon paths through a closure. + # @param ctx The outer context, or {@code null} if the outer context should + # not be used. + # @param look The result lookahead set. + # @param lookBusy A set used for preventing epsilon closures in the ATN + # from causing a stack overflow. Outside code should pass + # {@code new HashSet} for this argument. + # @param calledRuleStack A set used for preventing left recursion in the + # ATN from causing a stack overflow. Outside code should pass + # {@code new BitSet()} for this argument. + # @param seeThruPreds {@code true} to true semantic predicates as + # implicitly {@code true} and "see through them", otherwise {@code false} + # to treat semantic predicates as opaque and add {@link #HIT_PRED} to the + # result if one is encountered. + # @param addEOF Add {@link Token#EOF} to the result if the end of the + # outermost context is reached. This parameter has no effect if {@code ctx} + # is {@code null}. + #/ + def _LOOK(self, s:ATNState, stopState:ATNState , ctx:PredictionContext, look:IntervalSet, lookBusy:set, + calledRuleStack:set, seeThruPreds:bool, addEOF:bool): + c = ATNConfig(s, 0, ctx) + + if c in lookBusy: + return + lookBusy.add(c) + + if s == stopState: + if ctx is None: + look.addOne(Token.EPSILON) + return + elif ctx.isEmpty() and addEOF: + look.addOne(Token.EOF) + return + + if isinstance(s, RuleStopState ): + if ctx is None: + look.addOne(Token.EPSILON) + return + elif ctx.isEmpty() and addEOF: + look.addOne(Token.EOF) + return + + if ctx != PredictionContext.EMPTY: + removed = s.ruleIndex in calledRuleStack + try: + calledRuleStack.discard(s.ruleIndex) + # run thru all possible stack tops in ctx + for i in range(0, len(ctx)): + returnState = self.atn.states[ctx.getReturnState(i)] + self._LOOK(returnState, stopState, ctx.getParent(i), look, lookBusy, calledRuleStack, seeThruPreds, addEOF) + finally: + if removed: + calledRuleStack.add(s.ruleIndex) + return + + for t in s.transitions: + if type(t) == RuleTransition: + if t.target.ruleIndex in calledRuleStack: + continue + + newContext = SingletonPredictionContext.create(ctx, t.followState.stateNumber) + + try: + calledRuleStack.add(t.target.ruleIndex) + self._LOOK(t.target, stopState, newContext, look, lookBusy, calledRuleStack, seeThruPreds, addEOF) + finally: + calledRuleStack.remove(t.target.ruleIndex) + elif isinstance(t, AbstractPredicateTransition ): + if seeThruPreds: + self._LOOK(t.target, stopState, ctx, look, lookBusy, calledRuleStack, seeThruPreds, addEOF) + else: + look.addOne(self.HIT_PRED) + elif t.isEpsilon: + self._LOOK(t.target, stopState, ctx, look, lookBusy, calledRuleStack, seeThruPreds, addEOF) + elif type(t) == WildcardTransition: + look.addRange( range(Token.MIN_USER_TOKEN_TYPE, self.atn.maxTokenType + 1) ) + else: + set_ = t.label + if set_ is not None: + if isinstance(t, NotSetTransition): + set_ = set_.complement(Token.MIN_USER_TOKEN_TYPE, self.atn.maxTokenType) + look.addSet(set_) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/Lexer.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/Lexer.py new file mode 100644 index 0000000..82accad --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/Lexer.py @@ -0,0 +1,329 @@ +# Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. +# Use of this file is governed by the BSD 3-clause license that +# can be found in the LICENSE.txt file in the project root. +#/ + +# A lexer is recognizer that draws input symbols from a character stream. +# lexer grammars result in a subclass of self object. A Lexer object +# uses simplified match() and error recovery mechanisms in the interest +# of speed. +#/ +from io import StringIO + +import sys +if sys.version_info[1] > 5: + from typing import TextIO +else: + from typing.io import TextIO +from antlr4.CommonTokenFactory import CommonTokenFactory +from antlr4.atn.LexerATNSimulator import LexerATNSimulator +from antlr4.InputStream import InputStream +from antlr4.Recognizer import Recognizer +from antlr4.Token import Token +from antlr4.error.Errors import IllegalStateException, LexerNoViableAltException, RecognitionException + +class TokenSource(object): + + pass + + +class Lexer(Recognizer, TokenSource): + __slots__ = ( + '_input', '_output', '_factory', '_tokenFactorySourcePair', '_token', + '_tokenStartCharIndex', '_tokenStartLine', '_tokenStartColumn', + '_hitEOF', '_channel', '_type', '_modeStack', '_mode', '_text' + ) + + DEFAULT_MODE = 0 + MORE = -2 + SKIP = -3 + + DEFAULT_TOKEN_CHANNEL = Token.DEFAULT_CHANNEL + HIDDEN = Token.HIDDEN_CHANNEL + MIN_CHAR_VALUE = 0x0000 + MAX_CHAR_VALUE = 0x10FFFF + + def __init__(self, input:InputStream, output:TextIO = sys.stdout): + super().__init__() + self._input = input + self._output = output + self._factory = CommonTokenFactory.DEFAULT + self._tokenFactorySourcePair = (self, input) + + self._interp = None # child classes must populate this + + # The goal of all lexer rules/methods is to create a token object. + # self is an instance variable as multiple rules may collaborate to + # create a single token. nextToken will return self object after + # matching lexer rule(s). If you subclass to allow multiple token + # emissions, then set self to the last token to be matched or + # something nonnull so that the auto token emit mechanism will not + # emit another token. + self._token = None + + # What character index in the stream did the current token start at? + # Needed, for example, to get the text for current token. Set at + # the start of nextToken. + self._tokenStartCharIndex = -1 + + # The line on which the first character of the token resides#/ + self._tokenStartLine = -1 + + # The character position of first character within the line#/ + self._tokenStartColumn = -1 + + # Once we see EOF on char stream, next token will be EOF. + # If you have DONE : EOF ; then you see DONE EOF. + self._hitEOF = False + + # The channel number for the current token#/ + self._channel = Token.DEFAULT_CHANNEL + + # The token type for the current token#/ + self._type = Token.INVALID_TYPE + + self._modeStack = [] + self._mode = self.DEFAULT_MODE + + # You can set the text for the current token to override what is in + # the input char buffer. Use setText() or can set self instance var. + #/ + self._text = None + + + def reset(self): + # wack Lexer state variables + if self._input is not None: + self._input.seek(0) # rewind the input + self._token = None + self._type = Token.INVALID_TYPE + self._channel = Token.DEFAULT_CHANNEL + self._tokenStartCharIndex = -1 + self._tokenStartColumn = -1 + self._tokenStartLine = -1 + self._text = None + + self._hitEOF = False + self._mode = Lexer.DEFAULT_MODE + self._modeStack = [] + + self._interp.reset() + + # Return a token from self source; i.e., match a token on the char + # stream. + def nextToken(self): + if self._input is None: + raise IllegalStateException("nextToken requires a non-null input stream.") + + # Mark start location in char stream so unbuffered streams are + # guaranteed at least have text of current token + tokenStartMarker = self._input.mark() + try: + while True: + if self._hitEOF: + self.emitEOF() + return self._token + self._token = None + self._channel = Token.DEFAULT_CHANNEL + self._tokenStartCharIndex = self._input.index + self._tokenStartColumn = self._interp.column + self._tokenStartLine = self._interp.line + self._text = None + continueOuter = False + while True: + self._type = Token.INVALID_TYPE + ttype = self.SKIP + try: + ttype = self._interp.match(self._input, self._mode) + except LexerNoViableAltException as e: + self.notifyListeners(e) # report error + self.recover(e) + if self._input.LA(1)==Token.EOF: + self._hitEOF = True + if self._type == Token.INVALID_TYPE: + self._type = ttype + if self._type == self.SKIP: + continueOuter = True + break + if self._type!=self.MORE: + break + if continueOuter: + continue + if self._token is None: + self.emit() + return self._token + finally: + # make sure we release marker after match or + # unbuffered char stream will keep buffering + self._input.release(tokenStartMarker) + + # Instruct the lexer to skip creating a token for current lexer rule + # and look for another token. nextToken() knows to keep looking when + # a lexer rule finishes with token set to SKIP_TOKEN. Recall that + # if token==null at end of any token rule, it creates one for you + # and emits it. + #/ + def skip(self): + self._type = self.SKIP + + def more(self): + self._type = self.MORE + + def mode(self, m:int): + self._mode = m + + def pushMode(self, m:int): + if self._interp.debug: + print("pushMode " + str(m), file=self._output) + self._modeStack.append(self._mode) + self.mode(m) + + def popMode(self): + if len(self._modeStack)==0: + raise Exception("Empty Stack") + if self._interp.debug: + print("popMode back to "+ self._modeStack[:-1], file=self._output) + self.mode( self._modeStack.pop() ) + return self._mode + + # Set the char stream and reset the lexer#/ + @property + def inputStream(self): + return self._input + + @inputStream.setter + def inputStream(self, input:InputStream): + self._input = None + self._tokenFactorySourcePair = (self, self._input) + self.reset() + self._input = input + self._tokenFactorySourcePair = (self, self._input) + + @property + def sourceName(self): + return self._input.sourceName + + # By default does not support multiple emits per nextToken invocation + # for efficiency reasons. Subclass and override self method, nextToken, + # and getToken (to push tokens into a list and pull from that list + # rather than a single variable as self implementation does). + #/ + def emitToken(self, token:Token): + self._token = token + + # The standard method called to automatically emit a token at the + # outermost lexical rule. The token object should point into the + # char buffer start..stop. If there is a text override in 'text', + # use that to set the token's text. Override self method to emit + # custom Token objects or provide a new factory. + #/ + def emit(self): + t = self._factory.create(self._tokenFactorySourcePair, self._type, self._text, self._channel, self._tokenStartCharIndex, + self.getCharIndex()-1, self._tokenStartLine, self._tokenStartColumn) + self.emitToken(t) + return t + + def emitEOF(self): + cpos = self.column + lpos = self.line + eof = self._factory.create(self._tokenFactorySourcePair, Token.EOF, None, Token.DEFAULT_CHANNEL, self._input.index, + self._input.index-1, lpos, cpos) + self.emitToken(eof) + return eof + + @property + def type(self): + return self._type + + @type.setter + def type(self, type:int): + self._type = type + + @property + def line(self): + return self._interp.line + + @line.setter + def line(self, line:int): + self._interp.line = line + + @property + def column(self): + return self._interp.column + + @column.setter + def column(self, column:int): + self._interp.column = column + + # What is the index of the current character of lookahead?#/ + def getCharIndex(self): + return self._input.index + + # Return the text matched so far for the current token or any + # text override. + @property + def text(self): + if self._text is not None: + return self._text + else: + return self._interp.getText(self._input) + + # Set the complete text of self token; it wipes any previous + # changes to the text. + @text.setter + def text(self, txt:str): + self._text = txt + + # Return a list of all Token objects in input char stream. + # Forces load of all tokens. Does not include EOF token. + #/ + def getAllTokens(self): + tokens = [] + t = self.nextToken() + while t.type!=Token.EOF: + tokens.append(t) + t = self.nextToken() + return tokens + + def notifyListeners(self, e:LexerNoViableAltException): + start = self._tokenStartCharIndex + stop = self._input.index + text = self._input.getText(start, stop) + msg = "token recognition error at: '" + self.getErrorDisplay(text) + "'" + listener = self.getErrorListenerDispatch() + listener.syntaxError(self, None, self._tokenStartLine, self._tokenStartColumn, msg, e) + + def getErrorDisplay(self, s:str): + with StringIO() as buf: + for c in s: + buf.write(self.getErrorDisplayForChar(c)) + return buf.getvalue() + + def getErrorDisplayForChar(self, c:str): + if ord(c[0])==Token.EOF: + return "" + elif c=='\n': + return "\\n" + elif c=='\t': + return "\\t" + elif c=='\r': + return "\\r" + else: + return c + + def getCharErrorDisplay(self, c:str): + return "'" + self.getErrorDisplayForChar(c) + "'" + + # Lexers can normally match any char in it's vocabulary after matching + # a token, so do the easy thing and just kill a character and hope + # it all works out. You can instead use the rule invocation stack + # to do sophisticated error recovery if you are in a fragment rule. + #/ + def recover(self, re:RecognitionException): + if self._input.LA(1) != Token.EOF: + if isinstance(re, LexerNoViableAltException): + # skip a char and try again + self._interp.consume(self._input) + else: + # TODO: Do we lose character or line position information? + self._input.consume() diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/ListTokenSource.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/ListTokenSource.py new file mode 100644 index 0000000..40bcaf9 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/ListTokenSource.py @@ -0,0 +1,144 @@ +# +# Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. +# Use of this file is governed by the BSD 3-clause license that +# can be found in the LICENSE.txt file in the project root. +# + +# +# Provides an implementation of {@link TokenSource} as a wrapper around a list +# of {@link Token} objects. +# +#

      If the final token in the list is an {@link Token#EOF} token, it will be used +# as the EOF token for every call to {@link #nextToken} after the end of the +# list is reached. Otherwise, an EOF token will be created.

      +# +from antlr4.CommonTokenFactory import CommonTokenFactory +from antlr4.Lexer import TokenSource +from antlr4.Token import Token + + +class ListTokenSource(TokenSource): + __slots__ = ('tokens', 'sourceName', 'pos', 'eofToken', '_factory') + + # Constructs a new {@link ListTokenSource} instance from the specified + # collection of {@link Token} objects and source name. + # + # @param tokens The collection of {@link Token} objects to provide as a + # {@link TokenSource}. + # @param sourceName The name of the {@link TokenSource}. If this value is + # {@code null}, {@link #getSourceName} will attempt to infer the name from + # the next {@link Token} (or the previous token if the end of the input has + # been reached). + # + # @exception NullPointerException if {@code tokens} is {@code null} + # + def __init__(self, tokens:list, sourceName:str=None): + if tokens is None: + raise ReferenceError("tokens cannot be null") + self.tokens = tokens + self.sourceName = sourceName + # The index into {@link #tokens} of token to return by the next call to + # {@link #nextToken}. The end of the input is indicated by this value + # being greater than or equal to the number of items in {@link #tokens}. + self.pos = 0 + # This field caches the EOF token for the token source. + self.eofToken = None + # This is the backing field for {@link #getTokenFactory} and + self._factory = CommonTokenFactory.DEFAULT + + + # + # {@inheritDoc} + # + @property + def column(self): + if self.pos < len(self.tokens): + return self.tokens[self.pos].column + elif self.eofToken is not None: + return self.eofToken.column + elif len(self.tokens) > 0: + # have to calculate the result from the line/column of the previous + # token, along with the text of the token. + lastToken = self.tokens[len(self.tokens) - 1] + tokenText = lastToken.text + if tokenText is not None: + lastNewLine = tokenText.rfind('\n') + if lastNewLine >= 0: + return len(tokenText) - lastNewLine - 1 + return lastToken.column + lastToken.stop - lastToken.start + 1 + + # only reach this if tokens is empty, meaning EOF occurs at the first + # position in the input + return 0 + + # + # {@inheritDoc} + # + def nextToken(self): + if self.pos >= len(self.tokens): + if self.eofToken is None: + start = -1 + if len(self.tokens) > 0: + previousStop = self.tokens[len(self.tokens) - 1].stop + if previousStop != -1: + start = previousStop + 1 + stop = max(-1, start - 1) + self.eofToken = self._factory.create((self, self.getInputStream()), + Token.EOF, "EOF", Token.DEFAULT_CHANNEL, start, stop, self.line, self.column) + return self.eofToken + t = self.tokens[self.pos] + if self.pos == len(self.tokens) - 1 and t.type == Token.EOF: + self.eofToken = t + self.pos += 1 + return t + + # + # {@inheritDoc} + # + @property + def line(self): + if self.pos < len(self.tokens): + return self.tokens[self.pos].line + elif self.eofToken is not None: + return self.eofToken.line + elif len(self.tokens) > 0: + # have to calculate the result from the line/column of the previous + # token, along with the text of the token. + lastToken = self.tokens[len(self.tokens) - 1] + line = lastToken.line + tokenText = lastToken.text + if tokenText is not None: + line += tokenText.count('\n') + + # if no text is available, assume the token did not contain any newline characters. + return line + + # only reach this if tokens is empty, meaning EOF occurs at the first + # position in the input + return 1 + + # + # {@inheritDoc} + # + def getInputStream(self): + if self.pos < len(self.tokens): + return self.tokens[self.pos].getInputStream() + elif self.eofToken is not None: + return self.eofToken.getInputStream() + elif len(self.tokens) > 0: + return self.tokens[len(self.tokens) - 1].getInputStream() + else: + # no input stream information is available + return None + + # + # {@inheritDoc} + # + def getSourceName(self): + if self.sourceName is not None: + return self.sourceName + inputStream = self.getInputStream() + if inputStream is not None: + return inputStream.getSourceName() + else: + return "List" diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/Parser.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/Parser.py new file mode 100644 index 0000000..ae7f48c --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/Parser.py @@ -0,0 +1,580 @@ +# +# Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. +# Use of this file is governed by the BSD 3-clause license that +# can be found in the LICENSE.txt file in the project root. +import sys +if sys.version_info[1] > 5: + from typing import TextIO +else: + from typing.io import TextIO +from antlr4.BufferedTokenStream import TokenStream +from antlr4.CommonTokenFactory import TokenFactory +from antlr4.error.ErrorStrategy import DefaultErrorStrategy +from antlr4.InputStream import InputStream +from antlr4.Recognizer import Recognizer +from antlr4.RuleContext import RuleContext +from antlr4.ParserRuleContext import ParserRuleContext +from antlr4.Token import Token +from antlr4.Lexer import Lexer +from antlr4.atn.ATNDeserializer import ATNDeserializer +from antlr4.atn.ATNDeserializationOptions import ATNDeserializationOptions +from antlr4.error.Errors import UnsupportedOperationException, RecognitionException +from antlr4.tree.ParseTreePatternMatcher import ParseTreePatternMatcher +from antlr4.tree.Tree import ParseTreeListener, TerminalNode, ErrorNode + +class TraceListener(ParseTreeListener): + __slots__ = '_parser' + + def __init__(self, parser): + self._parser = parser + + def enterEveryRule(self, ctx): + print("enter " + self._parser.ruleNames[ctx.getRuleIndex()] + ", LT(1)=" + self._parser._input.LT(1).text, file=self._parser._output) + + def visitTerminal(self, node): + + print("consume " + str(node.symbol) + " rule " + self._parser.ruleNames[self._parser._ctx.getRuleIndex()], file=self._parser._output) + + def visitErrorNode(self, node): + pass + + + def exitEveryRule(self, ctx): + print("exit " + self._parser.ruleNames[ctx.getRuleIndex()] + ", LT(1)=" + self._parser._input.LT(1).text, file=self._parser._output) + + +# self is all the parsing support code essentially; most of it is error recovery stuff.# +class Parser (Recognizer): + __slots__ = ( + '_input', '_output', '_errHandler', '_precedenceStack', '_ctx', + 'buildParseTrees', '_tracer', '_parseListeners', '_syntaxErrors' + + ) + # self field maps from the serialized ATN string to the deserialized {@link ATN} with + # bypass alternatives. + # + # @see ATNDeserializationOptions#isGenerateRuleBypassTransitions() + # + bypassAltsAtnCache = dict() + + def __init__(self, input:TokenStream, output:TextIO = sys.stdout): + super().__init__() + # The input stream. + self._input = None + self._output = output + # The error handling strategy for the parser. The default value is a new + # instance of {@link DefaultErrorStrategy}. + self._errHandler = DefaultErrorStrategy() + self._precedenceStack = list() + self._precedenceStack.append(0) + # The {@link ParserRuleContext} object for the currently executing rule. + # self is always non-null during the parsing process. + self._ctx = None + # Specifies whether or not the parser should construct a parse tree during + # the parsing process. The default value is {@code true}. + self.buildParseTrees = True + # When {@link #setTrace}{@code (true)} is called, a reference to the + # {@link TraceListener} is stored here so it can be easily removed in a + # later call to {@link #setTrace}{@code (false)}. The listener itself is + # implemented as a parser listener so self field is not directly used by + # other parser methods. + self._tracer = None + # The list of {@link ParseTreeListener} listeners registered to receive + # events during the parse. + self._parseListeners = None + # The number of syntax errors reported during parsing. self value is + # incremented each time {@link #notifyErrorListeners} is called. + self._syntaxErrors = 0 + self.setInputStream(input) + + # reset the parser's state# + def reset(self): + if self._input is not None: + self._input.seek(0) + self._errHandler.reset(self) + self._ctx = None + self._syntaxErrors = 0 + self.setTrace(False) + self._precedenceStack = list() + self._precedenceStack.append(0) + if self._interp is not None: + self._interp.reset() + + # Match current input symbol against {@code ttype}. If the symbol type + # matches, {@link ANTLRErrorStrategy#reportMatch} and {@link #consume} are + # called to complete the match process. + # + #

      If the symbol type does not match, + # {@link ANTLRErrorStrategy#recoverInline} is called on the current error + # strategy to attempt recovery. If {@link #getBuildParseTree} is + # {@code true} and the token index of the symbol returned by + # {@link ANTLRErrorStrategy#recoverInline} is -1, the symbol is added to + # the parse tree by calling {@link ParserRuleContext#addErrorNode}.

      + # + # @param ttype the token type to match + # @return the matched symbol + # @throws RecognitionException if the current input symbol did not match + # {@code ttype} and the error strategy could not recover from the + # mismatched symbol + + def match(self, ttype:int): + t = self.getCurrentToken() + if t.type==ttype: + self._errHandler.reportMatch(self) + self.consume() + else: + t = self._errHandler.recoverInline(self) + if self.buildParseTrees and t.tokenIndex==-1: + # we must have conjured up a new token during single token insertion + # if it's not the current symbol + self._ctx.addErrorNode(t) + return t + + # Match current input symbol as a wildcard. If the symbol type matches + # (i.e. has a value greater than 0), {@link ANTLRErrorStrategy#reportMatch} + # and {@link #consume} are called to complete the match process. + # + #

      If the symbol type does not match, + # {@link ANTLRErrorStrategy#recoverInline} is called on the current error + # strategy to attempt recovery. If {@link #getBuildParseTree} is + # {@code true} and the token index of the symbol returned by + # {@link ANTLRErrorStrategy#recoverInline} is -1, the symbol is added to + # the parse tree by calling {@link ParserRuleContext#addErrorNode}.

      + # + # @return the matched symbol + # @throws RecognitionException if the current input symbol did not match + # a wildcard and the error strategy could not recover from the mismatched + # symbol + + def matchWildcard(self): + t = self.getCurrentToken() + if t.type > 0: + self._errHandler.reportMatch(self) + self.consume() + else: + t = self._errHandler.recoverInline(self) + if self.buildParseTrees and t.tokenIndex == -1: + # we must have conjured up a new token during single token insertion + # if it's not the current symbol + self._ctx.addErrorNode(t) + + return t + + def getParseListeners(self): + return list() if self._parseListeners is None else self._parseListeners + + # Registers {@code listener} to receive events during the parsing process. + # + #

      To support output-preserving grammar transformations (including but not + # limited to left-recursion removal, automated left-factoring, and + # optimized code generation), calls to listener methods during the parse + # may differ substantially from calls made by + # {@link ParseTreeWalker#DEFAULT} used after the parse is complete. In + # particular, rule entry and exit events may occur in a different order + # during the parse than after the parser. In addition, calls to certain + # rule entry methods may be omitted.

      + # + #

      With the following specific exceptions, calls to listener events are + # deterministic, i.e. for identical input the calls to listener + # methods will be the same.

      + # + #
        + #
      • Alterations to the grammar used to generate code may change the + # behavior of the listener calls.
      • + #
      • Alterations to the command line options passed to ANTLR 4 when + # generating the parser may change the behavior of the listener calls.
      • + #
      • Changing the version of the ANTLR Tool used to generate the parser + # may change the behavior of the listener calls.
      • + #
      + # + # @param listener the listener to add + # + # @throws NullPointerException if {@code} listener is {@code null} + # + def addParseListener(self, listener:ParseTreeListener): + if listener is None: + raise ReferenceError("listener") + if self._parseListeners is None: + self._parseListeners = [] + self._parseListeners.append(listener) + + # + # Remove {@code listener} from the list of parse listeners. + # + #

      If {@code listener} is {@code null} or has not been added as a parse + # listener, self method does nothing.

      + # @param listener the listener to remove + # + def removeParseListener(self, listener:ParseTreeListener): + if self._parseListeners is not None: + self._parseListeners.remove(listener) + if len(self._parseListeners)==0: + self._parseListeners = None + + # Remove all parse listeners. + def removeParseListeners(self): + self._parseListeners = None + + # Notify any parse listeners of an enter rule event. + def triggerEnterRuleEvent(self): + if self._parseListeners is not None: + for listener in self._parseListeners: + listener.enterEveryRule(self._ctx) + self._ctx.enterRule(listener) + + # + # Notify any parse listeners of an exit rule event. + # + # @see #addParseListener + # + def triggerExitRuleEvent(self): + if self._parseListeners is not None: + # reverse order walk of listeners + for listener in reversed(self._parseListeners): + self._ctx.exitRule(listener) + listener.exitEveryRule(self._ctx) + + + # Gets the number of syntax errors reported during parsing. This value is + # incremented each time {@link #notifyErrorListeners} is called. + # + # @see #notifyErrorListeners + # + def getNumberOfSyntaxErrors(self): + return self._syntaxErrors + + def getTokenFactory(self): + return self._input.tokenSource._factory + + # Tell our token source and error strategy about a new way to create tokens.# + def setTokenFactory(self, factory:TokenFactory): + self._input.tokenSource._factory = factory + + # The ATN with bypass alternatives is expensive to create so we create it + # lazily. + # + # @throws UnsupportedOperationException if the current parser does not + # implement the {@link #getSerializedATN()} method. + # + def getATNWithBypassAlts(self): + serializedAtn = self.getSerializedATN() + if serializedAtn is None: + raise UnsupportedOperationException("The current parser does not support an ATN with bypass alternatives.") + result = self.bypassAltsAtnCache.get(serializedAtn, None) + if result is None: + deserializationOptions = ATNDeserializationOptions() + deserializationOptions.generateRuleBypassTransitions = True + result = ATNDeserializer(deserializationOptions).deserialize(serializedAtn) + self.bypassAltsAtnCache[serializedAtn] = result + return result + + # The preferred method of getting a tree pattern. For example, here's a + # sample use: + # + #
      +    # ParseTree t = parser.expr();
      +    # ParseTreePattern p = parser.compileParseTreePattern("<ID>+0", MyParser.RULE_expr);
      +    # ParseTreeMatch m = p.match(t);
      +    # String id = m.get("ID");
      +    # 
      + # + def compileParseTreePattern(self, pattern:str, patternRuleIndex:int, lexer:Lexer = None): + if lexer is None: + if self.getTokenStream() is not None: + tokenSource = self.getTokenStream().tokenSource + if isinstance( tokenSource, Lexer ): + lexer = tokenSource + if lexer is None: + raise UnsupportedOperationException("Parser can't discover a lexer to use") + + m = ParseTreePatternMatcher(lexer, self) + return m.compile(pattern, patternRuleIndex) + + + def getInputStream(self): + return self.getTokenStream() + + def setInputStream(self, input:InputStream): + self.setTokenStream(input) + + def getTokenStream(self): + return self._input + + # Set the token stream and reset the parser.# + def setTokenStream(self, input:TokenStream): + self._input = None + self.reset() + self._input = input + + # Match needs to return the current input symbol, which gets put + # into the label for the associated token ref; e.g., x=ID. + # + def getCurrentToken(self): + return self._input.LT(1) + + def notifyErrorListeners(self, msg:str, offendingToken:Token = None, e:RecognitionException = None): + if offendingToken is None: + offendingToken = self.getCurrentToken() + self._syntaxErrors += 1 + line = offendingToken.line + column = offendingToken.column + listener = self.getErrorListenerDispatch() + listener.syntaxError(self, offendingToken, line, column, msg, e) + + # + # Consume and return the {@linkplain #getCurrentToken current symbol}. + # + #

      E.g., given the following input with {@code A} being the current + # lookahead symbol, self function moves the cursor to {@code B} and returns + # {@code A}.

      + # + #
      +    #  A B
      +    #  ^
      +    # 
      + # + # If the parser is not in error recovery mode, the consumed symbol is added + # to the parse tree using {@link ParserRuleContext#addChild(Token)}, and + # {@link ParseTreeListener#visitTerminal} is called on any parse listeners. + # If the parser is in error recovery mode, the consumed symbol is + # added to the parse tree using + # {@link ParserRuleContext#addErrorNode(Token)}, and + # {@link ParseTreeListener#visitErrorNode} is called on any parse + # listeners. + # + def consume(self): + o = self.getCurrentToken() + if o.type != Token.EOF: + self.getInputStream().consume() + hasListener = self._parseListeners is not None and len(self._parseListeners)>0 + if self.buildParseTrees or hasListener: + if self._errHandler.inErrorRecoveryMode(self): + node = self._ctx.addErrorNode(o) + else: + node = self._ctx.addTokenNode(o) + if hasListener: + for listener in self._parseListeners: + if isinstance(node, ErrorNode): + listener.visitErrorNode(node) + elif isinstance(node, TerminalNode): + listener.visitTerminal(node) + return o + + def addContextToParseTree(self): + # add current context to parent if we have a parent + if self._ctx.parentCtx is not None: + self._ctx.parentCtx.addChild(self._ctx) + + # Always called by generated parsers upon entry to a rule. Access field + # {@link #_ctx} get the current context. + # + def enterRule(self, localctx:ParserRuleContext , state:int , ruleIndex:int): + self.state = state + self._ctx = localctx + self._ctx.start = self._input.LT(1) + if self.buildParseTrees: + self.addContextToParseTree() + if self._parseListeners is not None: + self.triggerEnterRuleEvent() + + def exitRule(self): + self._ctx.stop = self._input.LT(-1) + # trigger event on _ctx, before it reverts to parent + if self._parseListeners is not None: + self.triggerExitRuleEvent() + self.state = self._ctx.invokingState + self._ctx = self._ctx.parentCtx + + def enterOuterAlt(self, localctx:ParserRuleContext, altNum:int): + localctx.setAltNumber(altNum) + # if we have new localctx, make sure we replace existing ctx + # that is previous child of parse tree + if self.buildParseTrees and self._ctx != localctx: + if self._ctx.parentCtx is not None: + self._ctx.parentCtx.removeLastChild() + self._ctx.parentCtx.addChild(localctx) + self._ctx = localctx + + # Get the precedence level for the top-most precedence rule. + # + # @return The precedence level for the top-most precedence rule, or -1 if + # the parser context is not nested within a precedence rule. + # + def getPrecedence(self): + if len(self._precedenceStack)==0: + return -1 + else: + return self._precedenceStack[-1] + + def enterRecursionRule(self, localctx:ParserRuleContext, state:int, ruleIndex:int, precedence:int): + self.state = state + self._precedenceStack.append(precedence) + self._ctx = localctx + self._ctx.start = self._input.LT(1) + if self._parseListeners is not None: + self.triggerEnterRuleEvent() # simulates rule entry for left-recursive rules + + # + # Like {@link #enterRule} but for recursive rules. + # + def pushNewRecursionContext(self, localctx:ParserRuleContext, state:int, ruleIndex:int): + previous = self._ctx + previous.parentCtx = localctx + previous.invokingState = state + previous.stop = self._input.LT(-1) + + self._ctx = localctx + self._ctx.start = previous.start + if self.buildParseTrees: + self._ctx.addChild(previous) + + if self._parseListeners is not None: + self.triggerEnterRuleEvent() # simulates rule entry for left-recursive rules + + def unrollRecursionContexts(self, parentCtx:ParserRuleContext): + self._precedenceStack.pop() + self._ctx.stop = self._input.LT(-1) + retCtx = self._ctx # save current ctx (return value) + # unroll so _ctx is as it was before call to recursive method + if self._parseListeners is not None: + while self._ctx is not parentCtx: + self.triggerExitRuleEvent() + self._ctx = self._ctx.parentCtx + else: + self._ctx = parentCtx + + # hook into tree + retCtx.parentCtx = parentCtx + + if self.buildParseTrees and parentCtx is not None: + # add return ctx into invoking rule's tree + parentCtx.addChild(retCtx) + + def getInvokingContext(self, ruleIndex:int): + ctx = self._ctx + while ctx is not None: + if ctx.getRuleIndex() == ruleIndex: + return ctx + ctx = ctx.parentCtx + return None + + + def precpred(self, localctx:RuleContext , precedence:int): + return precedence >= self._precedenceStack[-1] + + def inContext(self, context:str): + # TODO: useful in parser? + return False + + # + # Checks whether or not {@code symbol} can follow the current state in the + # ATN. The behavior of self method is equivalent to the following, but is + # implemented such that the complete context-sensitive follow set does not + # need to be explicitly constructed. + # + #
      +    # return getExpectedTokens().contains(symbol);
      +    # 
      + # + # @param symbol the symbol type to check + # @return {@code true} if {@code symbol} can follow the current state in + # the ATN, otherwise {@code false}. + # + def isExpectedToken(self, symbol:int): + atn = self._interp.atn + ctx = self._ctx + s = atn.states[self.state] + following = atn.nextTokens(s) + if symbol in following: + return True + if not Token.EPSILON in following: + return False + + while ctx is not None and ctx.invokingState>=0 and Token.EPSILON in following: + invokingState = atn.states[ctx.invokingState] + rt = invokingState.transitions[0] + following = atn.nextTokens(rt.followState) + if symbol in following: + return True + ctx = ctx.parentCtx + + if Token.EPSILON in following and symbol == Token.EOF: + return True + else: + return False + + # Computes the set of input symbols which could follow the current parser + # state and context, as given by {@link #getState} and {@link #getContext}, + # respectively. + # + # @see ATN#getExpectedTokens(int, RuleContext) + # + def getExpectedTokens(self): + return self._interp.atn.getExpectedTokens(self.state, self._ctx) + + def getExpectedTokensWithinCurrentRule(self): + atn = self._interp.atn + s = atn.states[self.state] + return atn.nextTokens(s) + + # Get a rule's index (i.e., {@code RULE_ruleName} field) or -1 if not found.# + def getRuleIndex(self, ruleName:str): + ruleIndex = self.getRuleIndexMap().get(ruleName, None) + if ruleIndex is not None: + return ruleIndex + else: + return -1 + + # Return List<String> of the rule names in your parser instance + # leading up to a call to the current rule. You could override if + # you want more details such as the file/line info of where + # in the ATN a rule is invoked. + # + # this is very useful for error messages. + # + def getRuleInvocationStack(self, p:RuleContext=None): + if p is None: + p = self._ctx + stack = list() + while p is not None: + # compute what follows who invoked us + ruleIndex = p.getRuleIndex() + if ruleIndex<0: + stack.append("n/a") + else: + stack.append(self.ruleNames[ruleIndex]) + p = p.parentCtx + return stack + + # For debugging and other purposes.# + def getDFAStrings(self): + return [ str(dfa) for dfa in self._interp.decisionToDFA] + + # For debugging and other purposes.# + def dumpDFA(self): + seenOne = False + for i in range(0, len(self._interp.decisionToDFA)): + dfa = self._interp.decisionToDFA[i] + if len(dfa.states)>0: + if seenOne: + print(file=self._output) + print("Decision " + str(dfa.decision) + ":", file=self._output) + print(dfa.toString(self.literalNames, self.symbolicNames), end='', file=self._output) + seenOne = True + + + def getSourceName(self): + return self._input.sourceName + + # During a parse is sometimes useful to listen in on the rule entry and exit + # events as well as token matches. self is for quick and dirty debugging. + # + def setTrace(self, trace:bool): + if not trace: + self.removeParseListener(self._tracer) + self._tracer = None + else: + if self._tracer is not None: + self.removeParseListener(self._tracer) + self._tracer = TraceListener(self) + self.addParseListener(self._tracer) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/ParserInterpreter.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/ParserInterpreter.py new file mode 100644 index 0000000..4de4362 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/ParserInterpreter.py @@ -0,0 +1,170 @@ +# +# Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. +# Use of this file is governed by the BSD 3-clause license that +# can be found in the LICENSE.txt file in the project root. +# + +# A parser simulator that mimics what ANTLR's generated +# parser code does. A ParserATNSimulator is used to make +# predictions via adaptivePredict but this class moves a pointer through the +# ATN to simulate parsing. ParserATNSimulator just +# makes us efficient rather than having to backtrack, for example. +# +# This properly creates parse trees even for left recursive rules. +# +# We rely on the left recursive rule invocation and special predicate +# transitions to make left recursive rules work. +# +# See TestParserInterpreter for examples. +# +from antlr4.dfa.DFA import DFA +from antlr4.BufferedTokenStream import TokenStream +from antlr4.Lexer import Lexer +from antlr4.Parser import Parser +from antlr4.ParserRuleContext import InterpreterRuleContext, ParserRuleContext +from antlr4.Token import Token +from antlr4.atn.ATN import ATN +from antlr4.atn.ATNState import StarLoopEntryState, ATNState, LoopEndState +from antlr4.atn.ParserATNSimulator import ParserATNSimulator +from antlr4.PredictionContext import PredictionContextCache +from antlr4.atn.Transition import Transition +from antlr4.error.Errors import RecognitionException, UnsupportedOperationException, FailedPredicateException + + +class ParserInterpreter(Parser): + __slots__ = ( + 'grammarFileName', 'atn', 'tokenNames', 'ruleNames', 'decisionToDFA', + 'sharedContextCache', '_parentContextStack', + 'pushRecursionContextStates' + ) + + def __init__(self, grammarFileName:str, tokenNames:list, ruleNames:list, atn:ATN, input:TokenStream): + super().__init__(input) + self.grammarFileName = grammarFileName + self.atn = atn + self.tokenNames = tokenNames + self.ruleNames = ruleNames + self.decisionToDFA = [ DFA(state) for state in atn.decisionToState ] + self.sharedContextCache = PredictionContextCache() + self._parentContextStack = list() + # identify the ATN states where pushNewRecursionContext must be called + self.pushRecursionContextStates = set() + for state in atn.states: + if not isinstance(state, StarLoopEntryState): + continue + if state.isPrecedenceDecision: + self.pushRecursionContextStates.add(state.stateNumber) + # get atn simulator that knows how to do predictions + self._interp = ParserATNSimulator(self, atn, self.decisionToDFA, self.sharedContextCache) + + # Begin parsing at startRuleIndex# + def parse(self, startRuleIndex:int): + startRuleStartState = self.atn.ruleToStartState[startRuleIndex] + rootContext = InterpreterRuleContext(None, ATNState.INVALID_STATE_NUMBER, startRuleIndex) + if startRuleStartState.isPrecedenceRule: + self.enterRecursionRule(rootContext, startRuleStartState.stateNumber, startRuleIndex, 0) + else: + self.enterRule(rootContext, startRuleStartState.stateNumber, startRuleIndex) + while True: + p = self.getATNState() + if p.stateType==ATNState.RULE_STOP : + # pop; return from rule + if len(self._ctx)==0: + if startRuleStartState.isPrecedenceRule: + result = self._ctx + parentContext = self._parentContextStack.pop() + self.unrollRecursionContexts(parentContext.a) + return result + else: + self.exitRule() + return rootContext + self.visitRuleStopState(p) + + else: + try: + self.visitState(p) + except RecognitionException as e: + self.state = self.atn.ruleToStopState[p.ruleIndex].stateNumber + self._ctx.exception = e + self._errHandler.reportError(self, e) + self._errHandler.recover(self, e) + + def enterRecursionRule(self, localctx:ParserRuleContext, state:int, ruleIndex:int, precedence:int): + self._parentContextStack.append((self._ctx, localctx.invokingState)) + super().enterRecursionRule(localctx, state, ruleIndex, precedence) + + def getATNState(self): + return self.atn.states[self.state] + + def visitState(self, p:ATNState): + edge = 0 + if len(p.transitions) > 1: + self._errHandler.sync(self) + edge = self._interp.adaptivePredict(self._input, p.decision, self._ctx) + else: + edge = 1 + + transition = p.transitions[edge - 1] + tt = transition.serializationType + if tt==Transition.EPSILON: + + if self.pushRecursionContextStates[p.stateNumber] and not isinstance(transition.target, LoopEndState): + t = self._parentContextStack[-1] + ctx = InterpreterRuleContext(t[0], t[1], self._ctx.ruleIndex) + self.pushNewRecursionContext(ctx, self.atn.ruleToStartState[p.ruleIndex].stateNumber, self._ctx.ruleIndex) + + elif tt==Transition.ATOM: + + self.match(transition.label) + + elif tt in [ Transition.RANGE, Transition.SET, Transition.NOT_SET]: + + if not transition.matches(self._input.LA(1), Token.MIN_USER_TOKEN_TYPE, Lexer.MAX_CHAR_VALUE): + self._errHandler.recoverInline(self) + self.matchWildcard() + + elif tt==Transition.WILDCARD: + + self.matchWildcard() + + elif tt==Transition.RULE: + + ruleStartState = transition.target + ruleIndex = ruleStartState.ruleIndex + ctx = InterpreterRuleContext(self._ctx, p.stateNumber, ruleIndex) + if ruleStartState.isPrecedenceRule: + self.enterRecursionRule(ctx, ruleStartState.stateNumber, ruleIndex, transition.precedence) + else: + self.enterRule(ctx, transition.target.stateNumber, ruleIndex) + + elif tt==Transition.PREDICATE: + + if not self.sempred(self._ctx, transition.ruleIndex, transition.predIndex): + raise FailedPredicateException(self) + + elif tt==Transition.ACTION: + + self.action(self._ctx, transition.ruleIndex, transition.actionIndex) + + elif tt==Transition.PRECEDENCE: + + if not self.precpred(self._ctx, transition.precedence): + msg = "precpred(_ctx, " + str(transition.precedence) + ")" + raise FailedPredicateException(self, msg) + + else: + raise UnsupportedOperationException("Unrecognized ATN transition type.") + + self.state = transition.target.stateNumber + + def visitRuleStopState(self, p:ATNState): + ruleStartState = self.atn.ruleToStartState[p.ruleIndex] + if ruleStartState.isPrecedenceRule: + parentContext = self._parentContextStack.pop() + self.unrollRecursionContexts(parentContext.a) + self.state = parentContext[1] + else: + self.exitRule() + + ruleTransition = self.atn.states[self.state].transitions[0] + self.state = ruleTransition.followState.stateNumber diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/ParserRuleContext.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/ParserRuleContext.py new file mode 100644 index 0000000..f945c5b --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/ParserRuleContext.py @@ -0,0 +1,186 @@ +# Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. +# Use of this file is governed by the BSD 3-clause license that +# can be found in the LICENSE.txt file in the project root. + +#* A rule invocation record for parsing. +# +# Contains all of the information about the current rule not stored in the +# RuleContext. It handles parse tree children list, Any ATN state +# tracing, and the default values available for rule indications: +# start, stop, rule index, current alt number, current +# ATN state. +# +# Subclasses made for each rule and grammar track the parameters, +# return values, locals, and labels specific to that rule. These +# are the objects that are returned from rules. +# +# Note text is not an actual field of a rule return value; it is computed +# from start and stop using the input stream's toString() method. I +# could add a ctor to this so that we can pass in and store the input +# stream, but I'm not sure we want to do that. It would seem to be undefined +# to get the .text property anyway if the rule matches tokens from multiple +# input streams. +# +# I do not use getters for fields of objects that are used simply to +# group values such as this aggregate. The getters/setters are there to +# satisfy the superclass interface. + +from antlr4.RuleContext import RuleContext +from antlr4.Token import Token +from antlr4.tree.Tree import ParseTreeListener, ParseTree, TerminalNodeImpl, ErrorNodeImpl, TerminalNode, \ + INVALID_INTERVAL + +# need forward declaration +ParserRuleContext = None + +class ParserRuleContext(RuleContext): + __slots__ = ('children', 'start', 'stop', 'exception') + def __init__(self, parent:ParserRuleContext = None, invokingStateNumber:int = None ): + super().__init__(parent, invokingStateNumber) + #* If we are debugging or building a parse tree for a visitor, + # we need to track all of the tokens and rule invocations associated + # with this rule's context. This is empty for parsing w/o tree constr. + # operation because we don't the need to track the details about + # how we parse this rule. + #/ + self.children = None + self.start = None + self.stop = None + # The exception that forced this rule to return. If the rule successfully + # completed, this is {@code null}. + self.exception = None + + #* COPY a ctx (I'm deliberately not using copy constructor)#/ + # + # This is used in the generated parser code to flip a generic XContext + # node for rule X to a YContext for alt label Y. In that sense, it is + # not really a generic copy function. + # + # If we do an error sync() at start of a rule, we might add error nodes + # to the generic XContext so this function must copy those nodes to + # the YContext as well else they are lost! + #/ + def copyFrom(self, ctx:ParserRuleContext): + # from RuleContext + self.parentCtx = ctx.parentCtx + self.invokingState = ctx.invokingState + self.children = None + self.start = ctx.start + self.stop = ctx.stop + + # copy any error nodes to alt label node + if ctx.children is not None: + self.children = [] + # reset parent pointer for any error nodes + for child in ctx.children: + if isinstance(child, ErrorNodeImpl): + self.children.append(child) + child.parentCtx = self + + # Double dispatch methods for listeners + def enterRule(self, listener:ParseTreeListener): + pass + + def exitRule(self, listener:ParseTreeListener): + pass + + #* Does not set parent link; other add methods do that#/ + def addChild(self, child:ParseTree): + if self.children is None: + self.children = [] + self.children.append(child) + return child + + #* Used by enterOuterAlt to toss out a RuleContext previously added as + # we entered a rule. If we have # label, we will need to remove + # generic ruleContext object. + #/ + def removeLastChild(self): + if self.children is not None: + del self.children[len(self.children)-1] + + def addTokenNode(self, token:Token): + node = TerminalNodeImpl(token) + self.addChild(node) + node.parentCtx = self + return node + + def addErrorNode(self, badToken:Token): + node = ErrorNodeImpl(badToken) + self.addChild(node) + node.parentCtx = self + return node + + def getChild(self, i:int, ttype:type = None): + if ttype is None: + return self.children[i] if len(self.children)>i else None + else: + for child in self.getChildren(): + if not isinstance(child, ttype): + continue + if i==0: + return child + i -= 1 + return None + + def getChildren(self, predicate = None): + if self.children is not None: + for child in self.children: + if predicate is not None and not predicate(child): + continue + yield child + + def getToken(self, ttype:int, i:int): + for child in self.getChildren(): + if not isinstance(child, TerminalNode): + continue + if child.symbol.type != ttype: + continue + if i==0: + return child + i -= 1 + return None + + def getTokens(self, ttype:int ): + if self.getChildren() is None: + return [] + tokens = [] + for child in self.getChildren(): + if not isinstance(child, TerminalNode): + continue + if child.symbol.type != ttype: + continue + tokens.append(child) + return tokens + + def getTypedRuleContext(self, ctxType:type, i:int): + return self.getChild(i, ctxType) + + def getTypedRuleContexts(self, ctxType:type): + children = self.getChildren() + if children is None: + return [] + contexts = [] + for child in children: + if not isinstance(child, ctxType): + continue + contexts.append(child) + return contexts + + def getChildCount(self): + return len(self.children) if self.children else 0 + + def getSourceInterval(self): + if self.start is None or self.stop is None: + return INVALID_INTERVAL + else: + return (self.start.tokenIndex, self.stop.tokenIndex) + + +RuleContext.EMPTY = ParserRuleContext() + +class InterpreterRuleContext(ParserRuleContext): + + def __init__(self, parent:ParserRuleContext, invokingStateNumber:int, ruleIndex:int): + super().__init__(parent, invokingStateNumber) + self.ruleIndex = ruleIndex diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/PredictionContext.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/PredictionContext.py new file mode 100644 index 0000000..7cbb7e4 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/PredictionContext.py @@ -0,0 +1,623 @@ +# +# Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. +# Use of this file is governed by the BSD 3-clause license that +# can be found in the LICENSE.txt file in the project root. +#/ +from io import StringIO + +from antlr4.error.Errors import IllegalStateException + +from antlr4.RuleContext import RuleContext +from antlr4.atn.ATN import ATN +from antlr4.atn.ATNState import ATNState + + +class PredictionContext(object): + + # Represents {@code $} in local context prediction, which means wildcard. + # {@code#+x =#}. + #/ + EMPTY = None + + # Represents {@code $} in an array in full context mode, when {@code $} + # doesn't mean wildcard: {@code $ + x = [$,x]}. Here, + # {@code $} = {@link #EMPTY_RETURN_STATE}. + #/ + EMPTY_RETURN_STATE = 0x7FFFFFFF + + globalNodeCount = 1 + id = globalNodeCount + + # Stores the computed hash code of this {@link PredictionContext}. The hash + # code is computed in parts to match the following reference algorithm. + # + #
      +    #  private int referenceHashCode() {
      +    #      int hash = {@link MurmurHash#initialize MurmurHash.initialize}({@link #INITIAL_HASH});
      +    #
      +    #      for (int i = 0; i < {@link #size()}; i++) {
      +    #          hash = {@link MurmurHash#update MurmurHash.update}(hash, {@link #getParent getParent}(i));
      +    #      }
      +    #
      +    #      for (int i = 0; i < {@link #size()}; i++) {
      +    #          hash = {@link MurmurHash#update MurmurHash.update}(hash, {@link #getReturnState getReturnState}(i));
      +    #      }
      +    #
      +    #      hash = {@link MurmurHash#finish MurmurHash.finish}(hash, 2# {@link #size()});
      +    #      return hash;
      +    #  }
      +    # 
      + #/ + + def __init__(self, cachedHashCode:int): + self.cachedHashCode = cachedHashCode + + def __len__(self): + return 0 + + # This means only the {@link #EMPTY} context is in set. + def isEmpty(self): + return self is self.EMPTY + + def hasEmptyPath(self): + return self.getReturnState(len(self) - 1) == self.EMPTY_RETURN_STATE + + def getReturnState(self, index:int): + raise IllegalStateException("illegal!") + + def __hash__(self): + return self.cachedHashCode + +def calculateHashCode(parent:PredictionContext, returnState:int): + return hash("") if parent is None else hash((hash(parent), returnState)) + +def calculateListsHashCode(parents:[], returnStates:[] ): + h = 0 + for parent, returnState in zip(parents, returnStates): + h = hash((h, calculateHashCode(parent, returnState))) + return h + +# Used to cache {@link PredictionContext} objects. Its used for the shared +# context cash associated with contexts in DFA states. This cache +# can be used for both lexers and parsers. + +class PredictionContextCache(object): + + def __init__(self): + self.cache = dict() + + # Add a context to the cache and return it. If the context already exists, + # return that one instead and do not add a new context to the cache. + # Protect shared cache from unsafe thread access. + # + def add(self, ctx:PredictionContext): + if ctx==PredictionContext.EMPTY: + return PredictionContext.EMPTY + existing = self.cache.get(ctx, None) + if existing is not None: + return existing + self.cache[ctx] = ctx + return ctx + + def get(self, ctx:PredictionContext): + return self.cache.get(ctx, None) + + def __len__(self): + return len(self.cache) + + +class SingletonPredictionContext(PredictionContext): + + @staticmethod + def create(parent:PredictionContext , returnState:int ): + if returnState == PredictionContext.EMPTY_RETURN_STATE and parent is None: + # someone can pass in the bits of an array ctx that mean $ + return SingletonPredictionContext.EMPTY + else: + return SingletonPredictionContext(parent, returnState) + + def __init__(self, parent:PredictionContext, returnState:int): + hashCode = calculateHashCode(parent, returnState) + super().__init__(hashCode) + self.parentCtx = parent + self.returnState = returnState + + def __len__(self): + return 1 + + def getParent(self, index:int): + return self.parentCtx + + def getReturnState(self, index:int): + return self.returnState + + def __eq__(self, other): + if self is other: + return True + elif other is None: + return False + elif not isinstance(other, SingletonPredictionContext): + return False + else: + return self.returnState == other.returnState and self.parentCtx == other.parentCtx + + def __hash__(self): + return self.cachedHashCode + + def __str__(self): + up = "" if self.parentCtx is None else str(self.parentCtx) + if len(up)==0: + if self.returnState == self.EMPTY_RETURN_STATE: + return "$" + else: + return str(self.returnState) + else: + return str(self.returnState) + " " + up + + +class EmptyPredictionContext(SingletonPredictionContext): + + def __init__(self): + super().__init__(None, PredictionContext.EMPTY_RETURN_STATE) + + def isEmpty(self): + return True + + def __eq__(self, other): + return self is other + + def __hash__(self): + return self.cachedHashCode + + def __str__(self): + return "$" + + +PredictionContext.EMPTY = EmptyPredictionContext() + +class ArrayPredictionContext(PredictionContext): + # Parent can be null only if full ctx mode and we make an array + # from {@link #EMPTY} and non-empty. We merge {@link #EMPTY} by using null parent and + # returnState == {@link #EMPTY_RETURN_STATE}. + + def __init__(self, parents:list, returnStates:list): + super().__init__(calculateListsHashCode(parents, returnStates)) + self.parents = parents + self.returnStates = returnStates + + def isEmpty(self): + # since EMPTY_RETURN_STATE can only appear in the last position, we + # don't need to verify that size==1 + return self.returnStates[0]==PredictionContext.EMPTY_RETURN_STATE + + def __len__(self): + return len(self.returnStates) + + def getParent(self, index:int): + return self.parents[index] + + def getReturnState(self, index:int): + return self.returnStates[index] + + def __eq__(self, other): + if self is other: + return True + elif not isinstance(other, ArrayPredictionContext): + return False + elif hash(self) != hash(other): + return False # can't be same if hash is different + else: + return self.returnStates==other.returnStates and self.parents==other.parents + + def __str__(self): + if self.isEmpty(): + return "[]" + with StringIO() as buf: + buf.write("[") + for i in range(0,len(self.returnStates)): + if i>0: + buf.write(", ") + if self.returnStates[i]==PredictionContext.EMPTY_RETURN_STATE: + buf.write("$") + continue + buf.write(str(self.returnStates[i])) + if self.parents[i] is not None: + buf.write(' ') + buf.write(str(self.parents[i])) + else: + buf.write("null") + buf.write("]") + return buf.getvalue() + + def __hash__(self): + return self.cachedHashCode + + + +# Convert a {@link RuleContext} tree to a {@link PredictionContext} graph. +# Return {@link #EMPTY} if {@code outerContext} is empty or null. +#/ +def PredictionContextFromRuleContext(atn:ATN, outerContext:RuleContext=None): + if outerContext is None: + outerContext = RuleContext.EMPTY + + # if we are in RuleContext of start rule, s, then PredictionContext + # is EMPTY. Nobody called us. (if we are empty, return empty) + if outerContext.parentCtx is None or outerContext is RuleContext.EMPTY: + return PredictionContext.EMPTY + + # If we have a parent, convert it to a PredictionContext graph + parent = PredictionContextFromRuleContext(atn, outerContext.parentCtx) + state = atn.states[outerContext.invokingState] + transition = state.transitions[0] + return SingletonPredictionContext.create(parent, transition.followState.stateNumber) + + +def merge(a:PredictionContext, b:PredictionContext, rootIsWildcard:bool, mergeCache:dict): + + # share same graph if both same + if a==b: + return a + + if isinstance(a, SingletonPredictionContext) and isinstance(b, SingletonPredictionContext): + return mergeSingletons(a, b, rootIsWildcard, mergeCache) + + # At least one of a or b is array + # If one is $ and rootIsWildcard, return $ as# wildcard + if rootIsWildcard: + if isinstance( a, EmptyPredictionContext ): + return a + if isinstance( b, EmptyPredictionContext ): + return b + + # convert singleton so both are arrays to normalize + if isinstance( a, SingletonPredictionContext ): + a = ArrayPredictionContext([a.parentCtx], [a.returnState]) + if isinstance( b, SingletonPredictionContext): + b = ArrayPredictionContext([b.parentCtx], [b.returnState]) + return mergeArrays(a, b, rootIsWildcard, mergeCache) + + +# +# Merge two {@link SingletonPredictionContext} instances. +# +#

      Stack tops equal, parents merge is same; return left graph.
      +#

      +# +#

      Same stack top, parents differ; merge parents giving array node, then +# remainders of those graphs. A new root node is created to point to the +# merged parents.
      +#

      +# +#

      Different stack tops pointing to same parent. Make array node for the +# root where both element in the root point to the same (original) +# parent.
      +#

      +# +#

      Different stack tops pointing to different parents. Make array node for +# the root where each element points to the corresponding original +# parent.
      +#

      +# +# @param a the first {@link SingletonPredictionContext} +# @param b the second {@link SingletonPredictionContext} +# @param rootIsWildcard {@code true} if this is a local-context merge, +# otherwise false to indicate a full-context merge +# @param mergeCache +#/ +def mergeSingletons(a:SingletonPredictionContext, b:SingletonPredictionContext, rootIsWildcard:bool, mergeCache:dict): + if mergeCache is not None: + previous = mergeCache.get((a,b), None) + if previous is not None: + return previous + previous = mergeCache.get((b,a), None) + if previous is not None: + return previous + + merged = mergeRoot(a, b, rootIsWildcard) + if merged is not None: + if mergeCache is not None: + mergeCache[(a, b)] = merged + return merged + + if a.returnState==b.returnState: + parent = merge(a.parentCtx, b.parentCtx, rootIsWildcard, mergeCache) + # if parent is same as existing a or b parent or reduced to a parent, return it + if parent == a.parentCtx: + return a # ax + bx = ax, if a=b + if parent == b.parentCtx: + return b # ax + bx = bx, if a=b + # else: ax + ay = a'[x,y] + # merge parents x and y, giving array node with x,y then remainders + # of those graphs. dup a, a' points at merged array + # new joined parent so create new singleton pointing to it, a' + merged = SingletonPredictionContext.create(parent, a.returnState) + if mergeCache is not None: + mergeCache[(a, b)] = merged + return merged + else: # a != b payloads differ + # see if we can collapse parents due to $+x parents if local ctx + singleParent = None + if a is b or (a.parentCtx is not None and a.parentCtx==b.parentCtx): # ax + bx = [a,b]x + singleParent = a.parentCtx + if singleParent is not None: # parents are same + # sort payloads and use same parent + payloads = [ a.returnState, b.returnState ] + if a.returnState > b.returnState: + payloads = [ b.returnState, a.returnState ] + parents = [singleParent, singleParent] + merged = ArrayPredictionContext(parents, payloads) + if mergeCache is not None: + mergeCache[(a, b)] = merged + return merged + # parents differ and can't merge them. Just pack together + # into array; can't merge. + # ax + by = [ax,by] + payloads = [ a.returnState, b.returnState ] + parents = [ a.parentCtx, b.parentCtx ] + if a.returnState > b.returnState: # sort by payload + payloads = [ b.returnState, a.returnState ] + parents = [ b.parentCtx, a.parentCtx ] + merged = ArrayPredictionContext(parents, payloads) + if mergeCache is not None: + mergeCache[(a, b)] = merged + return merged + + +# +# Handle case where at least one of {@code a} or {@code b} is +# {@link #EMPTY}. In the following diagrams, the symbol {@code $} is used +# to represent {@link #EMPTY}. +# +#

      Local-Context Merges

      +# +#

      These local-context merge operations are used when {@code rootIsWildcard} +# is true.

      +# +#

      {@link #EMPTY} is superset of any graph; return {@link #EMPTY}.
      +#

      +# +#

      {@link #EMPTY} and anything is {@code #EMPTY}, so merged parent is +# {@code #EMPTY}; return left graph.
      +#

      +# +#

      Special case of last merge if local context.
      +#

      +# +#

      Full-Context Merges

      +# +#

      These full-context merge operations are used when {@code rootIsWildcard} +# is false.

      +# +#

      +# +#

      Must keep all contexts; {@link #EMPTY} in array is a special value (and +# null parent).
      +#

      +# +#

      +# +# @param a the first {@link SingletonPredictionContext} +# @param b the second {@link SingletonPredictionContext} +# @param rootIsWildcard {@code true} if this is a local-context merge, +# otherwise false to indicate a full-context merge +#/ +def mergeRoot(a:SingletonPredictionContext, b:SingletonPredictionContext, rootIsWildcard:bool): + if rootIsWildcard: + if a == PredictionContext.EMPTY: + return PredictionContext.EMPTY ## + b =# + if b == PredictionContext.EMPTY: + return PredictionContext.EMPTY # a +# =# + else: + if a == PredictionContext.EMPTY and b == PredictionContext.EMPTY: + return PredictionContext.EMPTY # $ + $ = $ + elif a == PredictionContext.EMPTY: # $ + x = [$,x] + payloads = [ b.returnState, PredictionContext.EMPTY_RETURN_STATE ] + parents = [ b.parentCtx, None ] + return ArrayPredictionContext(parents, payloads) + elif b == PredictionContext.EMPTY: # x + $ = [$,x] ($ is always first if present) + payloads = [ a.returnState, PredictionContext.EMPTY_RETURN_STATE ] + parents = [ a.parentCtx, None ] + return ArrayPredictionContext(parents, payloads) + return None + + +# +# Merge two {@link ArrayPredictionContext} instances. +# +#

      Different tops, different parents.
      +#

      +# +#

      Shared top, same parents.
      +#

      +# +#

      Shared top, different parents.
      +#

      +# +#

      Shared top, all shared parents.
      +#

      +# +#

      Equal tops, merge parents and reduce top to +# {@link SingletonPredictionContext}.
      +#

      +#/ +def mergeArrays(a:ArrayPredictionContext, b:ArrayPredictionContext, rootIsWildcard:bool, mergeCache:dict): + if mergeCache is not None: + previous = mergeCache.get((a,b), None) + if previous is not None: + return previous + previous = mergeCache.get((b,a), None) + if previous is not None: + return previous + + # merge sorted payloads a + b => M + i = 0 # walks a + j = 0 # walks b + k = 0 # walks target M array + + mergedReturnStates = [None] * (len(a.returnStates) + len( b.returnStates)) + mergedParents = [None] * len(mergedReturnStates) + # walk and merge to yield mergedParents, mergedReturnStates + while i ax + if bothDollars or ax_ax: + mergedParents[k] = a_parent # choose left + mergedReturnStates[k] = payload + else: # ax+ay -> a'[x,y] + mergedParent = merge(a_parent, b_parent, rootIsWildcard, mergeCache) + mergedParents[k] = mergedParent + mergedReturnStates[k] = payload + i += 1 # hop over left one as usual + j += 1 # but also skip one in right side since we merge + elif a.returnStates[i] a, copy b[j] to M + mergedParents[k] = b_parent + mergedReturnStates[k] = b.returnStates[j] + j += 1 + k += 1 + + # copy over any payloads remaining in either array + if i < len(a.returnStates): + for p in range(i, len(a.returnStates)): + mergedParents[k] = a.parents[p] + mergedReturnStates[k] = a.returnStates[p] + k += 1 + else: + for p in range(j, len(b.returnStates)): + mergedParents[k] = b.parents[p] + mergedReturnStates[k] = b.returnStates[p] + k += 1 + + # trim merged if we combined a few that had same stack tops + if k < len(mergedParents): # write index < last position; trim + if k == 1: # for just one merged element, return singleton top + merged = SingletonPredictionContext.create(mergedParents[0], mergedReturnStates[0]) + if mergeCache is not None: + mergeCache[(a,b)] = merged + return merged + mergedParents = mergedParents[0:k] + mergedReturnStates = mergedReturnStates[0:k] + + merged = ArrayPredictionContext(mergedParents, mergedReturnStates) + + # if we created same array as a or b, return that instead + # TODO: track whether this is possible above during merge sort for speed + if merged==a: + if mergeCache is not None: + mergeCache[(a,b)] = a + return a + if merged==b: + if mergeCache is not None: + mergeCache[(a,b)] = b + return b + combineCommonParents(mergedParents) + + if mergeCache is not None: + mergeCache[(a,b)] = merged + return merged + + +# +# Make pass over all M {@code parents}; merge any {@code equals()} +# ones. +#/ +def combineCommonParents(parents:list): + uniqueParents = dict() + + for p in range(0, len(parents)): + parent = parents[p] + if uniqueParents.get(parent, None) is None: + uniqueParents[parent] = parent + + for p in range(0, len(parents)): + parents[p] = uniqueParents[parents[p]] + +def getCachedPredictionContext(context:PredictionContext, contextCache:PredictionContextCache, visited:dict): + if context.isEmpty(): + return context + existing = visited.get(context) + if existing is not None: + return existing + existing = contextCache.get(context) + if existing is not None: + visited[context] = existing + return existing + changed = False + parents = [None] * len(context) + for i in range(0, len(parents)): + parent = getCachedPredictionContext(context.getParent(i), contextCache, visited) + if changed or parent is not context.getParent(i): + if not changed: + parents = [context.getParent(j) for j in range(len(context))] + changed = True + parents[i] = parent + if not changed: + contextCache.add(context) + visited[context] = context + return context + + updated = None + if len(parents) == 0: + updated = PredictionContext.EMPTY + elif len(parents) == 1: + updated = SingletonPredictionContext.create(parents[0], context.getReturnState(0)) + else: + updated = ArrayPredictionContext(parents, context.returnStates) + + contextCache.add(updated) + visited[updated] = updated + visited[context] = updated + + return updated + + +# # extra structures, but cut/paste/morphed works, so leave it. +# # seems to do a breadth-first walk +# public static List getAllNodes(PredictionContext context) { +# Map visited = +# new IdentityHashMap(); +# Deque workList = new ArrayDeque(); +# workList.add(context); +# visited.put(context, context); +# List nodes = new ArrayList(); +# while (!workList.isEmpty()) { +# PredictionContext current = workList.pop(); +# nodes.add(current); +# for (int i = 0; i < current.size(); i++) { +# PredictionContext parent = current.getParent(i); +# if ( parent!=null && visited.put(parent, parent) == null) { +# workList.push(parent); +# } +# } +# } +# return nodes; +# } + +# ter's recursive version of Sam's getAllNodes() +def getAllContextNodes(context:PredictionContext, nodes:list=None, visited:dict=None): + if nodes is None: + nodes = list() + return getAllContextNodes(context, nodes, visited) + elif visited is None: + visited = dict() + return getAllContextNodes(context, nodes, visited) + else: + if context is None or visited.get(context, None) is not None: + return nodes + visited.put(context, context) + nodes.add(context) + for i in range(0, len(context)): + getAllContextNodes(context.getParent(i), nodes, visited) + return nodes + diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/Recognizer.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/Recognizer.py new file mode 100644 index 0000000..d87738b --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/Recognizer.py @@ -0,0 +1,147 @@ +# +# Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. +# Use of this file is governed by the BSD 3-clause license that +# can be found in the LICENSE.txt file in the project root. +# +from antlr4.RuleContext import RuleContext +from antlr4.Token import Token +from antlr4.error.ErrorListener import ProxyErrorListener, ConsoleErrorListener + +# need forward delcaration +RecognitionException = None + +class Recognizer(object): + __slots__ = ('_listeners', '_interp', '_stateNumber') + + tokenTypeMapCache = dict() + ruleIndexMapCache = dict() + + def __init__(self): + self._listeners = [ ConsoleErrorListener.INSTANCE ] + self._interp = None + self._stateNumber = -1 + + def extractVersion(self, version): + pos = version.find(".") + major = version[0:pos] + version = version[pos+1:] + pos = version.find(".") + if pos==-1: + pos = version.find("-") + if pos==-1: + pos = len(version) + minor = version[0:pos] + return major, minor + + def checkVersion(self, toolVersion): + runtimeVersion = "4.9.3" + rvmajor, rvminor = self.extractVersion(runtimeVersion) + tvmajor, tvminor = self.extractVersion(toolVersion) + if rvmajor!=tvmajor or rvminor!=tvminor: + print("ANTLR runtime and generated code versions disagree: "+runtimeVersion+"!="+toolVersion) + + def addErrorListener(self, listener): + self._listeners.append(listener) + + def removeErrorListener(self, listener): + self._listeners.remove(listener) + + def removeErrorListeners(self): + self._listeners = [] + + def getTokenTypeMap(self): + tokenNames = self.getTokenNames() + if tokenNames is None: + from antlr4.error.Errors import UnsupportedOperationException + raise UnsupportedOperationException("The current recognizer does not provide a list of token names.") + result = self.tokenTypeMapCache.get(tokenNames, None) + if result is None: + result = zip( tokenNames, range(0, len(tokenNames))) + result["EOF"] = Token.EOF + self.tokenTypeMapCache[tokenNames] = result + return result + + # Get a map from rule names to rule indexes. + # + #

      Used for XPath and tree pattern compilation.

      + # + def getRuleIndexMap(self): + ruleNames = self.getRuleNames() + if ruleNames is None: + from antlr4.error.Errors import UnsupportedOperationException + raise UnsupportedOperationException("The current recognizer does not provide a list of rule names.") + result = self.ruleIndexMapCache.get(ruleNames, None) + if result is None: + result = zip( ruleNames, range(0, len(ruleNames))) + self.ruleIndexMapCache[ruleNames] = result + return result + + def getTokenType(self, tokenName:str): + ttype = self.getTokenTypeMap().get(tokenName, None) + if ttype is not None: + return ttype + else: + return Token.INVALID_TYPE + + + # What is the error header, normally line/character position information?# + def getErrorHeader(self, e:RecognitionException): + line = e.getOffendingToken().line + column = e.getOffendingToken().column + return "line "+line+":"+column + + + # How should a token be displayed in an error message? The default + # is to display just the text, but during development you might + # want to have a lot of information spit out. Override in that case + # to use t.toString() (which, for CommonToken, dumps everything about + # the token). This is better than forcing you to override a method in + # your token objects because you don't have to go modify your lexer + # so that it creates a new Java type. + # + # @deprecated This method is not called by the ANTLR 4 Runtime. Specific + # implementations of {@link ANTLRErrorStrategy} may provide a similar + # feature when necessary. For example, see + # {@link DefaultErrorStrategy#getTokenErrorDisplay}. + # + def getTokenErrorDisplay(self, t:Token): + if t is None: + return "" + s = t.text + if s is None: + if t.type==Token.EOF: + s = "" + else: + s = "<" + str(t.type) + ">" + s = s.replace("\n","\\n") + s = s.replace("\r","\\r") + s = s.replace("\t","\\t") + return "'" + s + "'" + + def getErrorListenerDispatch(self): + return ProxyErrorListener(self._listeners) + + # subclass needs to override these if there are sempreds or actions + # that the ATN interp needs to execute + def sempred(self, localctx:RuleContext, ruleIndex:int, actionIndex:int): + return True + + def precpred(self, localctx:RuleContext , precedence:int): + return True + + @property + def state(self): + return self._stateNumber + + # Indicate that the recognizer has changed internal state that is + # consistent with the ATN state passed in. This way we always know + # where we are in the ATN as the parser goes along. The rule + # context objects form a stack that lets us see the stack of + # invoking rules. Combine this and we have complete ATN + # configuration information. + + @state.setter + def state(self, atnState:int): + self._stateNumber = atnState + +del RecognitionException diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/RuleContext.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/RuleContext.py new file mode 100644 index 0000000..7812ba3 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/RuleContext.py @@ -0,0 +1,227 @@ +# Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. +# Use of this file is governed by the BSD 3-clause license that +# can be found in the LICENSE.txt file in the project root. +#/ + + +# A rule context is a record of a single rule invocation. It knows +# which context invoked it, if any. If there is no parent context, then +# naturally the invoking state is not valid. The parent link +# provides a chain upwards from the current rule invocation to the root +# of the invocation tree, forming a stack. We actually carry no +# information about the rule associated with this context (except +# when parsing). We keep only the state number of the invoking state from +# the ATN submachine that invoked this. Contrast this with the s +# pointer inside ParserRuleContext that tracks the current state +# being "executed" for the current rule. +# +# The parent contexts are useful for computing lookahead sets and +# getting error information. +# +# These objects are used during parsing and prediction. +# For the special case of parsers, we use the subclass +# ParserRuleContext. +# +# @see ParserRuleContext +#/ +from io import StringIO +from antlr4.tree.Tree import RuleNode, INVALID_INTERVAL, ParseTreeVisitor +from antlr4.tree.Trees import Trees + +# need forward declarations +RuleContext = None +Parser = None + +class RuleContext(RuleNode): + __slots__ = ('parentCtx', 'invokingState') + EMPTY = None + + def __init__(self, parent:RuleContext=None, invokingState:int=-1): + super().__init__() + # What context invoked this rule? + self.parentCtx = parent + # What state invoked the rule associated with this context? + # The "return address" is the followState of invokingState + # If parent is null, this should be -1. + self.invokingState = invokingState + + + def depth(self): + n = 0 + p = self + while p is not None: + p = p.parentCtx + n += 1 + return n + + # A context is empty if there is no invoking state; meaning nobody call + # current context. + def isEmpty(self): + return self.invokingState == -1 + + # satisfy the ParseTree / SyntaxTree interface + + def getSourceInterval(self): + return INVALID_INTERVAL + + def getRuleContext(self): + return self + + def getPayload(self): + return self + + # Return the combined text of all child nodes. This method only considers + # tokens which have been added to the parse tree. + #

      + # Since tokens on hidden channels (e.g. whitespace or comments) are not + # added to the parse trees, they will not appear in the output of this + # method. + #/ + def getText(self): + if self.getChildCount() == 0: + return "" + with StringIO() as builder: + for child in self.getChildren(): + builder.write(child.getText()) + return builder.getvalue() + + def getRuleIndex(self): + return -1 + + # For rule associated with this parse tree internal node, return + # the outer alternative number used to match the input. Default + # implementation does not compute nor store this alt num. Create + # a subclass of ParserRuleContext with backing field and set + # option contextSuperClass. + # to set it. + def getAltNumber(self): + return 0 # should use ATN.INVALID_ALT_NUMBER but won't compile + + # Set the outer alternative number for this context node. Default + # implementation does nothing to avoid backing field overhead for + # trees that don't need it. Create + # a subclass of ParserRuleContext with backing field and set + # option contextSuperClass. + def setAltNumber(self, altNumber:int): + pass + + def getChild(self, i:int): + return None + + def getChildCount(self): + return 0 + + def getChildren(self): + for c in []: + yield c + + def accept(self, visitor:ParseTreeVisitor): + return visitor.visitChildren(self) + + # # Call this method to view a parse tree in a dialog box visually.#/ + # public Future inspect(@Nullable Parser parser) { + # List ruleNames = parser != null ? Arrays.asList(parser.getRuleNames()) : null; + # return inspect(ruleNames); + # } + # + # public Future inspect(@Nullable List ruleNames) { + # TreeViewer viewer = new TreeViewer(ruleNames, this); + # return viewer.open(); + # } + # + # # Save this tree in a postscript file#/ + # public void save(@Nullable Parser parser, String fileName) + # throws IOException, PrintException + # { + # List ruleNames = parser != null ? Arrays.asList(parser.getRuleNames()) : null; + # save(ruleNames, fileName); + # } + # + # # Save this tree in a postscript file using a particular font name and size#/ + # public void save(@Nullable Parser parser, String fileName, + # String fontName, int fontSize) + # throws IOException + # { + # List ruleNames = parser != null ? Arrays.asList(parser.getRuleNames()) : null; + # save(ruleNames, fileName, fontName, fontSize); + # } + # + # # Save this tree in a postscript file#/ + # public void save(@Nullable List ruleNames, String fileName) + # throws IOException, PrintException + # { + # Trees.writePS(this, ruleNames, fileName); + # } + # + # # Save this tree in a postscript file using a particular font name and size#/ + # public void save(@Nullable List ruleNames, String fileName, + # String fontName, int fontSize) + # throws IOException + # { + # Trees.writePS(this, ruleNames, fileName, fontName, fontSize); + # } + # + # # Print out a whole tree, not just a node, in LISP format + # # (root child1 .. childN). Print just a node if this is a leaf. + # # We have to know the recognizer so we can get rule names. + # #/ + # @Override + # public String toStringTree(@Nullable Parser recog) { + # return Trees.toStringTree(this, recog); + # } + # + # Print out a whole tree, not just a node, in LISP format + # (root child1 .. childN). Print just a node if this is a leaf. + # + def toStringTree(self, ruleNames:list=None, recog:Parser=None): + return Trees.toStringTree(self, ruleNames=ruleNames, recog=recog) + # } + # + # @Override + # public String toStringTree() { + # return toStringTree((List)null); + # } + # + def __str__(self): + return self.toString(None, None) + + # @Override + # public String toString() { + # return toString((List)null, (RuleContext)null); + # } + # + # public final String toString(@Nullable Recognizer recog) { + # return toString(recog, ParserRuleContext.EMPTY); + # } + # + # public final String toString(@Nullable List ruleNames) { + # return toString(ruleNames, null); + # } + # + # // recog null unless ParserRuleContext, in which case we use subclass toString(...) + # public String toString(@Nullable Recognizer recog, @Nullable RuleContext stop) { + # String[] ruleNames = recog != null ? recog.getRuleNames() : null; + # List ruleNamesList = ruleNames != null ? Arrays.asList(ruleNames) : null; + # return toString(ruleNamesList, stop); + # } + + def toString(self, ruleNames:list, stop:RuleContext)->str: + with StringIO() as buf: + p = self + buf.write("[") + while p is not None and p is not stop: + if ruleNames is None: + if not p.isEmpty(): + buf.write(str(p.invokingState)) + else: + ri = p.getRuleIndex() + ruleName = ruleNames[ri] if ri >= 0 and ri < len(ruleNames) else str(ri) + buf.write(ruleName) + + if p.parentCtx is not None and (ruleNames is not None or not p.parentCtx.isEmpty()): + buf.write(" ") + + p = p.parentCtx + + buf.write("]") + return buf.getvalue() diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/StdinStream.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/StdinStream.py new file mode 100644 index 0000000..f044fc4 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/StdinStream.py @@ -0,0 +1,11 @@ +import codecs +import sys + +from antlr4.InputStream import InputStream + + +class StdinStream(InputStream): + def __init__(self, encoding:str='ascii', errors:str='strict') -> None: + bytes = sys.stdin.buffer.read() + data = codecs.decode(bytes, encoding, errors) + super().__init__(data) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/Token.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/Token.py new file mode 100644 index 0000000..10a68a8 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/Token.py @@ -0,0 +1,155 @@ +# Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. +# Use of this file is governed by the BSD 3-clause license that +# can be found in the LICENSE.txt file in the project root. +# + +# A token has properties: text, type, line, character position in the line +# (so we can ignore tabs), token channel, index, and source from which +# we obtained this token. +from io import StringIO + + +class Token (object): + __slots__ = ('source', 'type', 'channel', 'start', 'stop', 'tokenIndex', 'line', 'column', '_text') + + INVALID_TYPE = 0 + + # During lookahead operations, this "token" signifies we hit rule end ATN state + # and did not follow it despite needing to. + EPSILON = -2 + + MIN_USER_TOKEN_TYPE = 1 + + EOF = -1 + + # All tokens go to the parser (unless skip() is called in that rule) + # on a particular "channel". The parser tunes to a particular channel + # so that whitespace etc... can go to the parser on a "hidden" channel. + + DEFAULT_CHANNEL = 0 + + # Anything on different channel than DEFAULT_CHANNEL is not parsed + # by parser. + + HIDDEN_CHANNEL = 1 + + def __init__(self): + self.source = None + self.type = None # token type of the token + self.channel = None # The parser ignores everything not on DEFAULT_CHANNEL + self.start = None # optional; return -1 if not implemented. + self.stop = None # optional; return -1 if not implemented. + self.tokenIndex = None # from 0..n-1 of the token object in the input stream + self.line = None # line=1..n of the 1st character + self.column = None # beginning of the line at which it occurs, 0..n-1 + self._text = None # text of the token. + + @property + def text(self): + return self._text + + # Explicitly set the text for this token. If {code text} is not + # {@code null}, then {@link #getText} will return this value rather than + # extracting the text from the input. + # + # @param text The explicit text of the token, or {@code null} if the text + # should be obtained from the input along with the start and stop indexes + # of the token. + + @text.setter + def text(self, text:str): + self._text = text + + + def getTokenSource(self): + return self.source[0] + + def getInputStream(self): + return self.source[1] + +class CommonToken(Token): + + # An empty {@link Pair} which is used as the default value of + # {@link #source} for tokens that do not have a source. + EMPTY_SOURCE = (None, None) + + def __init__(self, source:tuple = EMPTY_SOURCE, type:int = None, channel:int=Token.DEFAULT_CHANNEL, start:int=-1, stop:int=-1): + super().__init__() + self.source = source + self.type = type + self.channel = channel + self.start = start + self.stop = stop + self.tokenIndex = -1 + if source[0] is not None: + self.line = source[0].line + self.column = source[0].column + else: + self.column = -1 + + # Constructs a new {@link CommonToken} as a copy of another {@link Token}. + # + #

      + # If {@code oldToken} is also a {@link CommonToken} instance, the newly + # constructed token will share a reference to the {@link #text} field and + # the {@link Pair} stored in {@link #source}. Otherwise, {@link #text} will + # be assigned the result of calling {@link #getText}, and {@link #source} + # will be constructed from the result of {@link Token#getTokenSource} and + # {@link Token#getInputStream}.

      + # + # @param oldToken The token to copy. + # + def clone(self): + t = CommonToken(self.source, self.type, self.channel, self.start, self.stop) + t.tokenIndex = self.tokenIndex + t.line = self.line + t.column = self.column + t.text = self.text + return t + + @property + def text(self): + if self._text is not None: + return self._text + input = self.getInputStream() + if input is None: + return None + n = input.size + if self.start < n and self.stop < n: + return input.getText(self.start, self.stop) + else: + return "" + + @text.setter + def text(self, text:str): + self._text = text + + def __str__(self): + with StringIO() as buf: + buf.write("[@") + buf.write(str(self.tokenIndex)) + buf.write(",") + buf.write(str(self.start)) + buf.write(":") + buf.write(str(self.stop)) + buf.write("='") + txt = self.text + if txt is not None: + txt = txt.replace("\n","\\n") + txt = txt.replace("\r","\\r") + txt = txt.replace("\t","\\t") + else: + txt = "" + buf.write(txt) + buf.write("',<") + buf.write(str(self.type)) + buf.write(">") + if self.channel > 0: + buf.write(",channel=") + buf.write(str(self.channel)) + buf.write(",") + buf.write(str(self.line)) + buf.write(":") + buf.write(str(self.column)) + buf.write("]") + return buf.getvalue() diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/TokenStreamRewriter.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/TokenStreamRewriter.py new file mode 100644 index 0000000..59baf8f --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/TokenStreamRewriter.py @@ -0,0 +1,255 @@ +# +# Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. +# Use of this file is governed by the BSD 3-clause license that +# can be found in the LICENSE.txt file in the project root. +# + +from io import StringIO +from antlr4.Token import Token + +from antlr4.CommonTokenStream import CommonTokenStream + + +class TokenStreamRewriter(object): + __slots__ = ('tokens', 'programs', 'lastRewriteTokenIndexes') + + DEFAULT_PROGRAM_NAME = "default" + PROGRAM_INIT_SIZE = 100 + MIN_TOKEN_INDEX = 0 + + def __init__(self, tokens): + """ + :type tokens: antlr4.BufferedTokenStream.BufferedTokenStream + :param tokens: + :return: + """ + super(TokenStreamRewriter, self).__init__() + self.tokens = tokens + self.programs = {self.DEFAULT_PROGRAM_NAME: []} + self.lastRewriteTokenIndexes = {} + + def getTokenStream(self): + return self.tokens + + def rollback(self, instruction_index, program_name): + ins = self.programs.get(program_name, None) + if ins: + self.programs[program_name] = ins[self.MIN_TOKEN_INDEX: instruction_index] + + def deleteProgram(self, program_name=DEFAULT_PROGRAM_NAME): + self.rollback(self.MIN_TOKEN_INDEX, program_name) + + def insertAfterToken(self, token, text, program_name=DEFAULT_PROGRAM_NAME): + self.insertAfter(token.tokenIndex, text, program_name) + + def insertAfter(self, index, text, program_name=DEFAULT_PROGRAM_NAME): + op = self.InsertAfterOp(self.tokens, index + 1, text) + rewrites = self.getProgram(program_name) + op.instructionIndex = len(rewrites) + rewrites.append(op) + + def insertBeforeIndex(self, index, text): + self.insertBefore(self.DEFAULT_PROGRAM_NAME, index, text) + + def insertBeforeToken(self, token, text, program_name=DEFAULT_PROGRAM_NAME): + self.insertBefore(program_name, token.tokenIndex, text) + + def insertBefore(self, program_name, index, text): + op = self.InsertBeforeOp(self.tokens, index, text) + rewrites = self.getProgram(program_name) + op.instructionIndex = len(rewrites) + rewrites.append(op) + + def replaceIndex(self, index, text): + self.replace(self.DEFAULT_PROGRAM_NAME, index, index, text) + + def replaceRange(self, from_idx, to_idx, text): + self.replace(self.DEFAULT_PROGRAM_NAME, from_idx, to_idx, text) + + def replaceSingleToken(self, token, text): + self.replace(self.DEFAULT_PROGRAM_NAME, token.tokenIndex, token.tokenIndex, text) + + def replaceRangeTokens(self, from_token, to_token, text, program_name=DEFAULT_PROGRAM_NAME): + self.replace(program_name, from_token.tokenIndex, to_token.tokenIndex, text) + + def replace(self, program_name, from_idx, to_idx, text): + if any((from_idx > to_idx, from_idx < 0, to_idx < 0, to_idx >= len(self.tokens.tokens))): + raise ValueError( + 'replace: range invalid: {}..{}(size={})'.format(from_idx, to_idx, len(self.tokens.tokens))) + op = self.ReplaceOp(from_idx, to_idx, self.tokens, text) + rewrites = self.getProgram(program_name) + op.instructionIndex = len(rewrites) + rewrites.append(op) + + def deleteToken(self, token): + self.delete(self.DEFAULT_PROGRAM_NAME, token, token) + + def deleteIndex(self, index): + self.delete(self.DEFAULT_PROGRAM_NAME, index, index) + + def delete(self, program_name, from_idx, to_idx): + if isinstance(from_idx, Token): + self.replace(program_name, from_idx.tokenIndex, to_idx.tokenIndex, "") + else: + self.replace(program_name, from_idx, to_idx, "") + + def lastRewriteTokenIndex(self, program_name=DEFAULT_PROGRAM_NAME): + return self.lastRewriteTokenIndexes.get(program_name, -1) + + def setLastRewriteTokenIndex(self, program_name, i): + self.lastRewriteTokenIndexes[program_name] = i + + def getProgram(self, program_name): + return self.programs.setdefault(program_name, []) + + def getDefaultText(self): + return self.getText(self.DEFAULT_PROGRAM_NAME, 0, len(self.tokens.tokens) - 1) + + def getText(self, program_name, start:int, stop:int): + """ + :return: the text in tokens[start, stop](closed interval) + """ + rewrites = self.programs.get(program_name) + + # ensure start/end are in range + if stop > len(self.tokens.tokens) - 1: + stop = len(self.tokens.tokens) - 1 + if start < 0: + start = 0 + + # if no instructions to execute + if not rewrites: return self.tokens.getText(start, stop) + buf = StringIO() + indexToOp = self._reduceToSingleOperationPerIndex(rewrites) + i = start + while all((i <= stop, i < len(self.tokens.tokens))): + op = indexToOp.pop(i, None) + token = self.tokens.get(i) + if op is None: + if token.type != Token.EOF: buf.write(token.text) + i += 1 + else: + i = op.execute(buf) + + if stop == len(self.tokens.tokens)-1: + for op in indexToOp.values(): + if op.index >= len(self.tokens.tokens)-1: buf.write(op.text) + + return buf.getvalue() + + def _reduceToSingleOperationPerIndex(self, rewrites): + # Walk replaces + for i, rop in enumerate(rewrites): + if any((rop is None, not isinstance(rop, TokenStreamRewriter.ReplaceOp))): + continue + # Wipe prior inserts within range + inserts = [op for op in rewrites[:i] if isinstance(op, TokenStreamRewriter.InsertBeforeOp)] + for iop in inserts: + if iop.index == rop.index: + rewrites[iop.instructionIndex] = None + rop.text = '{}{}'.format(iop.text, rop.text) + elif all((iop.index > rop.index, iop.index <= rop.last_index)): + rewrites[iop.instructionIndex] = None + + # Drop any prior replaces contained within + prevReplaces = [op for op in rewrites[:i] if isinstance(op, TokenStreamRewriter.ReplaceOp)] + for prevRop in prevReplaces: + if all((prevRop.index >= rop.index, prevRop.last_index <= rop.last_index)): + rewrites[prevRop.instructionIndex] = None + continue + isDisjoint = any((prevRop.last_indexrop.last_index)) + if all((prevRop.text is None, rop.text is None, not isDisjoint)): + rewrites[prevRop.instructionIndex] = None + rop.index = min(prevRop.index, rop.index) + rop.last_index = min(prevRop.last_index, rop.last_index) + print('New rop {}'.format(rop)) + elif (not(isDisjoint)): + raise ValueError("replace op boundaries of {} overlap with previous {}".format(rop, prevRop)) + + # Walk inserts + for i, iop in enumerate(rewrites): + if any((iop is None, not isinstance(iop, TokenStreamRewriter.InsertBeforeOp))): + continue + prevInserts = [op for op in rewrites[:i] if isinstance(op, TokenStreamRewriter.InsertBeforeOp)] + for prev_index, prevIop in enumerate(prevInserts): + if prevIop.index == iop.index and type(prevIop) is TokenStreamRewriter.InsertBeforeOp: + iop.text += prevIop.text + rewrites[prev_index] = None + elif prevIop.index == iop.index and type(prevIop) is TokenStreamRewriter.InsertAfterOp: + iop.text = prevIop.text + iop.text + rewrites[prev_index] = None + # look for replaces where iop.index is in range; error + prevReplaces = [op for op in rewrites[:i] if isinstance(op, TokenStreamRewriter.ReplaceOp)] + for rop in prevReplaces: + if iop.index == rop.index: + rop.text = iop.text + rop.text + rewrites[i] = None + continue + if all((iop.index >= rop.index, iop.index <= rop.last_index)): + raise ValueError("insert op {} within boundaries of previous {}".format(iop, rop)) + + reduced = {} + for i, op in enumerate(rewrites): + if op is None: continue + if reduced.get(op.index): raise ValueError('should be only one op per index') + reduced[op.index] = op + + return reduced + + class RewriteOperation(object): + __slots__ = ('tokens', 'index', 'text', 'instructionIndex') + + def __init__(self, tokens, index, text=""): + """ + :type tokens: CommonTokenStream + :param tokens: + :param index: + :param text: + :return: + """ + self.tokens = tokens + self.index = index + self.text = text + self.instructionIndex = 0 + + def execute(self, buf): + """ + :type buf: StringIO.StringIO + :param buf: + :return: + """ + return self.index + + def __str__(self): + return '<{}@{}:"{}">'.format(self.__class__.__name__, self.tokens.get(self.index), self.text) + + class InsertBeforeOp(RewriteOperation): + + def __init__(self, tokens, index, text=""): + super(TokenStreamRewriter.InsertBeforeOp, self).__init__(tokens, index, text) + + def execute(self, buf): + buf.write(self.text) + if self.tokens.get(self.index).type != Token.EOF: + buf.write(self.tokens.get(self.index).text) + return self.index + 1 + + class InsertAfterOp(InsertBeforeOp): + pass + + class ReplaceOp(RewriteOperation): + __slots__ = 'last_index' + + def __init__(self, from_idx, to_idx, tokens, text): + super(TokenStreamRewriter.ReplaceOp, self).__init__(tokens, from_idx, text) + self.last_index = to_idx + + def execute(self, buf): + if self.text: + buf.write(self.text) + return self.last_index + 1 + + def __str__(self): + if self.text: + return ''.format(self.tokens.get(self.index), self.tokens.get(self.last_index), + self.text) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/Utils.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/Utils.py new file mode 100644 index 0000000..88c870d --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/Utils.py @@ -0,0 +1,33 @@ +# Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. +# Use of this file is governed by the BSD 3-clause license that +# can be found in the LICENSE.txt file in the project root. +# + +from io import StringIO + +def str_list(val): + with StringIO() as buf: + buf.write('[') + first = True + for item in val: + if not first: + buf.write(', ') + buf.write(str(item)) + first = False + buf.write(']') + return buf.getvalue() + +def escapeWhitespace(s:str, escapeSpaces:bool): + with StringIO() as buf: + for c in s: + if c==' ' and escapeSpaces: + buf.write('\u00B7') + elif c=='\t': + buf.write("\\t") + elif c=='\n': + buf.write("\\n") + elif c=='\r': + buf.write("\\r") + else: + buf.write(c) + return buf.getvalue() diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/__init__.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/__init__.py new file mode 100644 index 0000000..4202728 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/__init__.py @@ -0,0 +1,21 @@ +from antlr4.Token import Token +from antlr4.InputStream import InputStream +from antlr4.FileStream import FileStream +from antlr4.StdinStream import StdinStream +from antlr4.BufferedTokenStream import TokenStream +from antlr4.CommonTokenStream import CommonTokenStream +from antlr4.Lexer import Lexer +from antlr4.Parser import Parser +from antlr4.dfa.DFA import DFA +from antlr4.atn.ATN import ATN +from antlr4.atn.ATNDeserializer import ATNDeserializer +from antlr4.atn.LexerATNSimulator import LexerATNSimulator +from antlr4.atn.ParserATNSimulator import ParserATNSimulator +from antlr4.atn.PredictionMode import PredictionMode +from antlr4.PredictionContext import PredictionContextCache +from antlr4.ParserRuleContext import RuleContext, ParserRuleContext +from antlr4.tree.Tree import ParseTreeListener, ParseTreeVisitor, ParseTreeWalker, TerminalNode, ErrorNode, RuleNode +from antlr4.error.Errors import RecognitionException, IllegalStateException, NoViableAltException +from antlr4.error.ErrorStrategy import BailErrorStrategy +from antlr4.error.DiagnosticErrorListener import DiagnosticErrorListener +from antlr4.Utils import str_list diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/atn/ATN.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/atn/ATN.py new file mode 100644 index 0000000..3f1abe0 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/atn/ATN.py @@ -0,0 +1,132 @@ +# Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. +# Use of this file is governed by the BSD 3-clause license that +# can be found in the LICENSE.txt file in the project root. +#/ +from antlr4.IntervalSet import IntervalSet + +from antlr4.RuleContext import RuleContext + +from antlr4.Token import Token +from antlr4.atn.ATNType import ATNType +from antlr4.atn.ATNState import ATNState, DecisionState + + +class ATN(object): + __slots__ = ( + 'grammarType', 'maxTokenType', 'states', 'decisionToState', + 'ruleToStartState', 'ruleToStopState', 'modeNameToStartState', + 'ruleToTokenType', 'lexerActions', 'modeToStartState' + ) + + INVALID_ALT_NUMBER = 0 + + # Used for runtime deserialization of ATNs from strings#/ + def __init__(self, grammarType:ATNType , maxTokenType:int ): + # The type of the ATN. + self.grammarType = grammarType + # The maximum value for any symbol recognized by a transition in the ATN. + self.maxTokenType = maxTokenType + self.states = [] + # Each subrule/rule is a decision point and we must track them so we + # can go back later and build DFA predictors for them. This includes + # all the rules, subrules, optional blocks, ()+, ()* etc... + self.decisionToState = [] + # Maps from rule index to starting state number. + self.ruleToStartState = [] + # Maps from rule index to stop state number. + self.ruleToStopState = None + self.modeNameToStartState = dict() + # For lexer ATNs, this maps the rule index to the resulting token type. + # For parser ATNs, this maps the rule index to the generated bypass token + # type if the + # {@link ATNDeserializationOptions#isGenerateRuleBypassTransitions} + # deserialization option was specified; otherwise, this is {@code null}. + self.ruleToTokenType = None + # For lexer ATNs, this is an array of {@link LexerAction} objects which may + # be referenced by action transitions in the ATN. + self.lexerActions = None + self.modeToStartState = [] + + # Compute the set of valid tokens that can occur starting in state {@code s}. + # If {@code ctx} is null, the set of tokens will not include what can follow + # the rule surrounding {@code s}. In other words, the set will be + # restricted to tokens reachable staying within {@code s}'s rule. + def nextTokensInContext(self, s:ATNState, ctx:RuleContext): + from antlr4.LL1Analyzer import LL1Analyzer + anal = LL1Analyzer(self) + return anal.LOOK(s, ctx=ctx) + + # Compute the set of valid tokens that can occur starting in {@code s} and + # staying in same rule. {@link Token#EPSILON} is in set if we reach end of + # rule. + def nextTokensNoContext(self, s:ATNState): + if s.nextTokenWithinRule is not None: + return s.nextTokenWithinRule + s.nextTokenWithinRule = self.nextTokensInContext(s, None) + s.nextTokenWithinRule.readonly = True + return s.nextTokenWithinRule + + def nextTokens(self, s:ATNState, ctx:RuleContext = None): + if ctx==None: + return self.nextTokensNoContext(s) + else: + return self.nextTokensInContext(s, ctx) + + def addState(self, state:ATNState): + if state is not None: + state.atn = self + state.stateNumber = len(self.states) + self.states.append(state) + + def removeState(self, state:ATNState): + self.states[state.stateNumber] = None # just free mem, don't shift states in list + + def defineDecisionState(self, s:DecisionState): + self.decisionToState.append(s) + s.decision = len(self.decisionToState)-1 + return s.decision + + def getDecisionState(self, decision:int): + if len(self.decisionToState)==0: + return None + else: + return self.decisionToState[decision] + + # Computes the set of input symbols which could follow ATN state number + # {@code stateNumber} in the specified full {@code context}. This method + # considers the complete parser context, but does not evaluate semantic + # predicates (i.e. all predicates encountered during the calculation are + # assumed true). If a path in the ATN exists from the starting state to the + # {@link RuleStopState} of the outermost context without matching any + # symbols, {@link Token#EOF} is added to the returned set. + # + #

      If {@code context} is {@code null}, it is treated as + # {@link ParserRuleContext#EMPTY}.

      + # + # @param stateNumber the ATN state number + # @param context the full parse context + # @return The set of potentially valid input symbols which could follow the + # specified state in the specified context. + # @throws IllegalArgumentException if the ATN does not contain a state with + # number {@code stateNumber} + #/ + def getExpectedTokens(self, stateNumber:int, ctx:RuleContext ): + if stateNumber < 0 or stateNumber >= len(self.states): + raise Exception("Invalid state number.") + s = self.states[stateNumber] + following = self.nextTokens(s) + if Token.EPSILON not in following: + return following + expected = IntervalSet() + expected.addSet(following) + expected.removeOne(Token.EPSILON) + while (ctx != None and ctx.invokingState >= 0 and Token.EPSILON in following): + invokingState = self.states[ctx.invokingState] + rt = invokingState.transitions[0] + following = self.nextTokens(rt.followState) + expected.addSet(following) + expected.removeOne(Token.EPSILON) + ctx = ctx.parentCtx + if Token.EPSILON in following: + expected.addOne(Token.EOF) + return expected diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/atn/ATNConfig.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/atn/ATNConfig.py new file mode 100644 index 0000000..e008fb2 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/atn/ATNConfig.py @@ -0,0 +1,159 @@ +# +# Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. +# Use of this file is governed by the BSD 3-clause license that +# can be found in the LICENSE.txt file in the project root. +#/ + +# A tuple: (ATN state, predicted alt, syntactic, semantic context). +# The syntactic context is a graph-structured stack node whose +# path(s) to the root is the rule invocation(s) +# chain used to arrive at the state. The semantic context is +# the tree of semantic predicates encountered before reaching +# an ATN state. +#/ +from io import StringIO +from antlr4.PredictionContext import PredictionContext +from antlr4.atn.ATNState import ATNState, DecisionState +from antlr4.atn.LexerActionExecutor import LexerActionExecutor +from antlr4.atn.SemanticContext import SemanticContext + +# need a forward declaration +ATNConfig = None + +class ATNConfig(object): + __slots__ = ( + 'state', 'alt', 'context', 'semanticContext', 'reachesIntoOuterContext', + 'precedenceFilterSuppressed' + ) + + def __init__(self, state:ATNState=None, alt:int=None, context:PredictionContext=None, semantic:SemanticContext=None, config:ATNConfig=None): + if config is not None: + if state is None: + state = config.state + if alt is None: + alt = config.alt + if context is None: + context = config.context + if semantic is None: + semantic = config.semanticContext + if semantic is None: + semantic = SemanticContext.NONE + # The ATN state associated with this configuration#/ + self.state = state + # What alt (or lexer rule) is predicted by this configuration#/ + self.alt = alt + # The stack of invoking states leading to the rule/states associated + # with this config. We track only those contexts pushed during + # execution of the ATN simulator. + self.context = context + self.semanticContext = semantic + # We cannot execute predicates dependent upon local context unless + # we know for sure we are in the correct context. Because there is + # no way to do this efficiently, we simply cannot evaluate + # dependent predicates unless we are in the rule that initially + # invokes the ATN simulator. + # + # closure() tracks the depth of how far we dip into the + # outer context: depth > 0. Note that it may not be totally + # accurate depth since I don't ever decrement. TODO: make it a boolean then + self.reachesIntoOuterContext = 0 if config is None else config.reachesIntoOuterContext + self.precedenceFilterSuppressed = False if config is None else config.precedenceFilterSuppressed + + # An ATN configuration is equal to another if both have + # the same state, they predict the same alternative, and + # syntactic/semantic contexts are the same. + #/ + def __eq__(self, other): + if self is other: + return True + elif not isinstance(other, ATNConfig): + return False + else: + return self.state.stateNumber==other.state.stateNumber \ + and self.alt==other.alt \ + and ((self.context is other.context) or (self.context==other.context)) \ + and self.semanticContext==other.semanticContext \ + and self.precedenceFilterSuppressed==other.precedenceFilterSuppressed + + def __hash__(self): + return hash((self.state.stateNumber, self.alt, self.context, self.semanticContext)) + + def hashCodeForConfigSet(self): + return hash((self.state.stateNumber, self.alt, hash(self.semanticContext))) + + def equalsForConfigSet(self, other): + if self is other: + return True + elif not isinstance(other, ATNConfig): + return False + else: + return self.state.stateNumber==other.state.stateNumber \ + and self.alt==other.alt \ + and self.semanticContext==other.semanticContext + + def __str__(self): + with StringIO() as buf: + buf.write('(') + buf.write(str(self.state)) + buf.write(",") + buf.write(str(self.alt)) + if self.context is not None: + buf.write(",[") + buf.write(str(self.context)) + buf.write("]") + if self.semanticContext is not None and self.semanticContext is not SemanticContext.NONE: + buf.write(",") + buf.write(str(self.semanticContext)) + if self.reachesIntoOuterContext>0: + buf.write(",up=") + buf.write(str(self.reachesIntoOuterContext)) + buf.write(')') + return buf.getvalue() + +# need a forward declaration +LexerATNConfig = None + +class LexerATNConfig(ATNConfig): + __slots__ = ('lexerActionExecutor', 'passedThroughNonGreedyDecision') + + def __init__(self, state:ATNState, alt:int=None, context:PredictionContext=None, semantic:SemanticContext=SemanticContext.NONE, + lexerActionExecutor:LexerActionExecutor=None, config:LexerATNConfig=None): + super().__init__(state=state, alt=alt, context=context, semantic=semantic, config=config) + if config is not None: + if lexerActionExecutor is None: + lexerActionExecutor = config.lexerActionExecutor + # This is the backing field for {@link #getLexerActionExecutor}. + self.lexerActionExecutor = lexerActionExecutor + self.passedThroughNonGreedyDecision = False if config is None else self.checkNonGreedyDecision(config, state) + + def __hash__(self): + return hash((self.state.stateNumber, self.alt, self.context, + self.semanticContext, self.passedThroughNonGreedyDecision, + self.lexerActionExecutor)) + + def __eq__(self, other): + if self is other: + return True + elif not isinstance(other, LexerATNConfig): + return False + if self.passedThroughNonGreedyDecision != other.passedThroughNonGreedyDecision: + return False + if not(self.lexerActionExecutor == other.lexerActionExecutor): + return False + return super().__eq__(other) + + + + def hashCodeForConfigSet(self): + return hash(self) + + + + def equalsForConfigSet(self, other): + return self==other + + + + def checkNonGreedyDecision(self, source:LexerATNConfig, target:ATNState): + return source.passedThroughNonGreedyDecision \ + or isinstance(target, DecisionState) and target.nonGreedy diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/atn/ATNConfigSet.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/atn/ATNConfigSet.py new file mode 100644 index 0000000..9e9a512 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/atn/ATNConfigSet.py @@ -0,0 +1,212 @@ +# +# Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. +# Use of this file is governed by the BSD 3-clause license that +# can be found in the LICENSE.txt file in the project root. + +# +# Specialized {@link Set}{@code <}{@link ATNConfig}{@code >} that can track +# info about the set, with support for combining similar configurations using a +# graph-structured stack. +#/ +from io import StringIO +from functools import reduce +from antlr4.PredictionContext import PredictionContext, merge +from antlr4.Utils import str_list +from antlr4.atn.ATN import ATN +from antlr4.atn.ATNConfig import ATNConfig +from antlr4.atn.SemanticContext import SemanticContext +from antlr4.error.Errors import UnsupportedOperationException, IllegalStateException + +ATNSimulator = None + +class ATNConfigSet(object): + __slots__ = ( + 'configLookup', 'fullCtx', 'readonly', 'configs', 'uniqueAlt', + 'conflictingAlts', 'hasSemanticContext', 'dipsIntoOuterContext', + 'cachedHashCode' + ) + + # + # The reason that we need this is because we don't want the hash map to use + # the standard hash code and equals. We need all configurations with the same + # {@code (s,i,_,semctx)} to be equal. Unfortunately, this key effectively doubles + # the number of objects associated with ATNConfigs. The other solution is to + # use a hash table that lets us specify the equals/hashcode operation. + + def __init__(self, fullCtx:bool=True): + # All configs but hashed by (s, i, _, pi) not including context. Wiped out + # when we go readonly as this set becomes a DFA state. + self.configLookup = dict() + # Indicates that this configuration set is part of a full context + # LL prediction. It will be used to determine how to merge $. With SLL + # it's a wildcard whereas it is not for LL context merge. + self.fullCtx = fullCtx + # Indicates that the set of configurations is read-only. Do not + # allow any code to manipulate the set; DFA states will point at + # the sets and they must not change. This does not protect the other + # fields; in particular, conflictingAlts is set after + # we've made this readonly. + self.readonly = False + # Track the elements as they are added to the set; supports get(i)#/ + self.configs = [] + + # TODO: these fields make me pretty uncomfortable but nice to pack up info together, saves recomputation + # TODO: can we track conflicts as they are added to save scanning configs later? + self.uniqueAlt = 0 + self.conflictingAlts = None + + # Used in parser and lexer. In lexer, it indicates we hit a pred + # while computing a closure operation. Don't make a DFA state from this. + self.hasSemanticContext = False + self.dipsIntoOuterContext = False + + self.cachedHashCode = -1 + + def __iter__(self): + return self.configs.__iter__() + + # Adding a new config means merging contexts with existing configs for + # {@code (s, i, pi, _)}, where {@code s} is the + # {@link ATNConfig#state}, {@code i} is the {@link ATNConfig#alt}, and + # {@code pi} is the {@link ATNConfig#semanticContext}. We use + # {@code (s,i,pi)} as key. + # + #

      This method updates {@link #dipsIntoOuterContext} and + # {@link #hasSemanticContext} when necessary.

      + #/ + def add(self, config:ATNConfig, mergeCache=None): + if self.readonly: + raise Exception("This set is readonly") + if config.semanticContext is not SemanticContext.NONE: + self.hasSemanticContext = True + if config.reachesIntoOuterContext > 0: + self.dipsIntoOuterContext = True + existing = self.getOrAdd(config) + if existing is config: + self.cachedHashCode = -1 + self.configs.append(config) # track order here + return True + # a previous (s,i,pi,_), merge with it and save result + rootIsWildcard = not self.fullCtx + merged = merge(existing.context, config.context, rootIsWildcard, mergeCache) + # no need to check for existing.context, config.context in cache + # since only way to create new graphs is "call rule" and here. + # We cache at both places. + existing.reachesIntoOuterContext = max(existing.reachesIntoOuterContext, config.reachesIntoOuterContext) + # make sure to preserve the precedence filter suppression during the merge + if config.precedenceFilterSuppressed: + existing.precedenceFilterSuppressed = True + existing.context = merged # replace context; no need to alt mapping + return True + + def getOrAdd(self, config:ATNConfig): + h = config.hashCodeForConfigSet() + l = self.configLookup.get(h, None) + if l is not None: + r = next((cfg for cfg in l if config.equalsForConfigSet(cfg)), None) + if r is not None: + return r + if l is None: + l = [config] + self.configLookup[h] = l + else: + l.append(config) + return config + + def getStates(self): + return set(c.state for c in self.configs) + + def getPredicates(self): + return list(cfg.semanticContext for cfg in self.configs if cfg.semanticContext!=SemanticContext.NONE) + + def get(self, i:int): + return self.configs[i] + + def optimizeConfigs(self, interpreter:ATNSimulator): + if self.readonly: + raise IllegalStateException("This set is readonly") + if len(self.configs)==0: + return + for config in self.configs: + config.context = interpreter.getCachedContext(config.context) + + def addAll(self, coll:list): + for c in coll: + self.add(c) + return False + + def __eq__(self, other): + if self is other: + return True + elif not isinstance(other, ATNConfigSet): + return False + + same = self.configs is not None and \ + self.configs==other.configs and \ + self.fullCtx == other.fullCtx and \ + self.uniqueAlt == other.uniqueAlt and \ + self.conflictingAlts == other.conflictingAlts and \ + self.hasSemanticContext == other.hasSemanticContext and \ + self.dipsIntoOuterContext == other.dipsIntoOuterContext + + return same + + def __hash__(self): + if self.readonly: + if self.cachedHashCode == -1: + self.cachedHashCode = self.hashConfigs() + return self.cachedHashCode + return self.hashConfigs() + + def hashConfigs(self): + return reduce(lambda h, cfg: hash((h, cfg)), self.configs, 0) + + def __len__(self): + return len(self.configs) + + def isEmpty(self): + return len(self.configs)==0 + + def __contains__(self, config): + if self.configLookup is None: + raise UnsupportedOperationException("This method is not implemented for readonly sets.") + h = config.hashCodeForConfigSet() + l = self.configLookup.get(h, None) + if l is not None: + for c in l: + if config.equalsForConfigSet(c): + return True + return False + + def clear(self): + if self.readonly: + raise IllegalStateException("This set is readonly") + self.configs.clear() + self.cachedHashCode = -1 + self.configLookup.clear() + + def setReadonly(self, readonly:bool): + self.readonly = readonly + self.configLookup = None # can't mod, no need for lookup cache + + def __str__(self): + with StringIO() as buf: + buf.write(str_list(self.configs)) + if self.hasSemanticContext: + buf.write(",hasSemanticContext=") + buf.write(str(self.hasSemanticContext)) + if self.uniqueAlt!=ATN.INVALID_ALT_NUMBER: + buf.write(",uniqueAlt=") + buf.write(str(self.uniqueAlt)) + if self.conflictingAlts is not None: + buf.write(",conflictingAlts=") + buf.write(str(self.conflictingAlts)) + if self.dipsIntoOuterContext: + buf.write(",dipsIntoOuterContext") + return buf.getvalue() + + +class OrderedATNConfigSet(ATNConfigSet): + + def __init__(self): + super().__init__() diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/atn/ATNDeserializationOptions.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/atn/ATNDeserializationOptions.py new file mode 100644 index 0000000..69d5437 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/atn/ATNDeserializationOptions.py @@ -0,0 +1,24 @@ +# Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. +# Use of this file is governed by the BSD 3-clause license that +# can be found in the LICENSE.txt file in the project root. + +# need a forward declaration +ATNDeserializationOptions = None + +class ATNDeserializationOptions(object): + __slots__ = ('readonly', 'verifyATN', 'generateRuleBypassTransitions') + + defaultOptions = None + + def __init__(self, copyFrom:ATNDeserializationOptions = None): + self.readonly = False + self.verifyATN = True if copyFrom is None else copyFrom.verifyATN + self.generateRuleBypassTransitions = False if copyFrom is None else copyFrom.generateRuleBypassTransitions + + def __setattr__(self, key, value): + if key!="readonly" and self.readonly: + raise Exception("The object is read only.") + super(type(self), self).__setattr__(key,value) + +ATNDeserializationOptions.defaultOptions = ATNDeserializationOptions() +ATNDeserializationOptions.defaultOptions.readonly = True diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/atn/ATNDeserializer.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/atn/ATNDeserializer.py new file mode 100644 index 0000000..cc100d0 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/atn/ATNDeserializer.py @@ -0,0 +1,529 @@ +# Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. +# Use of this file is governed by the BSD 3-clause license that +# can be found in the LICENSE.txt file in the project root. +#/ +from uuid import UUID +from io import StringIO +from typing import Callable +from antlr4.Token import Token +from antlr4.atn.ATN import ATN +from antlr4.atn.ATNType import ATNType +from antlr4.atn.ATNState import * +from antlr4.atn.Transition import * +from antlr4.atn.LexerAction import * +from antlr4.atn.ATNDeserializationOptions import ATNDeserializationOptions + +# This is the earliest supported serialized UUID. +BASE_SERIALIZED_UUID = UUID("AADB8D7E-AEEF-4415-AD2B-8204D6CF042E") + +# This UUID indicates the serialized ATN contains two sets of +# IntervalSets, where the second set's values are encoded as +# 32-bit integers to support the full Unicode SMP range up to U+10FFFF. +ADDED_UNICODE_SMP = UUID("59627784-3BE5-417A-B9EB-8131A7286089") + +# This list contains all of the currently supported UUIDs, ordered by when +# the feature first appeared in this branch. +SUPPORTED_UUIDS = [ BASE_SERIALIZED_UUID, ADDED_UNICODE_SMP ] + +SERIALIZED_VERSION = 3 + +# This is the current serialized UUID. +SERIALIZED_UUID = ADDED_UNICODE_SMP + +class ATNDeserializer (object): + __slots__ = ('deserializationOptions', 'data', 'pos', 'uuid') + + def __init__(self, options : ATNDeserializationOptions = None): + if options is None: + options = ATNDeserializationOptions.defaultOptions + self.deserializationOptions = options + + # Determines if a particular serialized representation of an ATN supports + # a particular feature, identified by the {@link UUID} used for serializing + # the ATN at the time the feature was first introduced. + # + # @param feature The {@link UUID} marking the first time the feature was + # supported in the serialized ATN. + # @param actualUuid The {@link UUID} of the actual serialized ATN which is + # currently being deserialized. + # @return {@code true} if the {@code actualUuid} value represents a + # serialized ATN at or after the feature identified by {@code feature} was + # introduced; otherwise, {@code false}. + + def isFeatureSupported(self, feature : UUID , actualUuid : UUID ): + idx1 = SUPPORTED_UUIDS.index(feature) + if idx1<0: + return False + idx2 = SUPPORTED_UUIDS.index(actualUuid) + return idx2 >= idx1 + + def deserialize(self, data : str): + self.reset(data) + self.checkVersion() + self.checkUUID() + atn = self.readATN() + self.readStates(atn) + self.readRules(atn) + self.readModes(atn) + sets = [] + # First, read all sets with 16-bit Unicode code points <= U+FFFF. + self.readSets(atn, sets, self.readInt) + # Next, if the ATN was serialized with the Unicode SMP feature, + # deserialize sets with 32-bit arguments <= U+10FFFF. + if self.isFeatureSupported(ADDED_UNICODE_SMP, self.uuid): + self.readSets(atn, sets, self.readInt32) + self.readEdges(atn, sets) + self.readDecisions(atn) + self.readLexerActions(atn) + self.markPrecedenceDecisions(atn) + self.verifyATN(atn) + if self.deserializationOptions.generateRuleBypassTransitions \ + and atn.grammarType == ATNType.PARSER: + self.generateRuleBypassTransitions(atn) + # re-verify after modification + self.verifyATN(atn) + return atn + + def reset(self, data:str): + def adjust(c): + v = ord(c) + return v-2 if v>1 else v + 65533 + temp = [ adjust(c) for c in data ] + # don't adjust the first value since that's the version number + temp[0] = ord(data[0]) + self.data = temp + self.pos = 0 + + def checkVersion(self): + version = self.readInt() + if version != SERIALIZED_VERSION: + raise Exception("Could not deserialize ATN with version " + str(version) + " (expected " + str(SERIALIZED_VERSION) + ").") + + def checkUUID(self): + uuid = self.readUUID() + if not uuid in SUPPORTED_UUIDS: + raise Exception("Could not deserialize ATN with UUID: " + str(uuid) + \ + " (expected " + str(SERIALIZED_UUID) + " or a legacy UUID).", uuid, SERIALIZED_UUID) + self.uuid = uuid + + def readATN(self): + idx = self.readInt() + grammarType = ATNType.fromOrdinal(idx) + maxTokenType = self.readInt() + return ATN(grammarType, maxTokenType) + + def readStates(self, atn:ATN): + loopBackStateNumbers = [] + endStateNumbers = [] + nstates = self.readInt() + for i in range(0, nstates): + stype = self.readInt() + # ignore bad type of states + if stype==ATNState.INVALID_TYPE: + atn.addState(None) + continue + ruleIndex = self.readInt() + if ruleIndex == 0xFFFF: + ruleIndex = -1 + + s = self.stateFactory(stype, ruleIndex) + if stype == ATNState.LOOP_END: # special case + loopBackStateNumber = self.readInt() + loopBackStateNumbers.append((s, loopBackStateNumber)) + elif isinstance(s, BlockStartState): + endStateNumber = self.readInt() + endStateNumbers.append((s, endStateNumber)) + + atn.addState(s) + + # delay the assignment of loop back and end states until we know all the state instances have been initialized + for pair in loopBackStateNumbers: + pair[0].loopBackState = atn.states[pair[1]] + + for pair in endStateNumbers: + pair[0].endState = atn.states[pair[1]] + + numNonGreedyStates = self.readInt() + for i in range(0, numNonGreedyStates): + stateNumber = self.readInt() + atn.states[stateNumber].nonGreedy = True + + numPrecedenceStates = self.readInt() + for i in range(0, numPrecedenceStates): + stateNumber = self.readInt() + atn.states[stateNumber].isPrecedenceRule = True + + def readRules(self, atn:ATN): + nrules = self.readInt() + if atn.grammarType == ATNType.LEXER: + atn.ruleToTokenType = [0] * nrules + + atn.ruleToStartState = [0] * nrules + for i in range(0, nrules): + s = self.readInt() + startState = atn.states[s] + atn.ruleToStartState[i] = startState + if atn.grammarType == ATNType.LEXER: + tokenType = self.readInt() + if tokenType == 0xFFFF: + tokenType = Token.EOF + + atn.ruleToTokenType[i] = tokenType + + atn.ruleToStopState = [0] * nrules + for state in atn.states: + if not isinstance(state, RuleStopState): + continue + atn.ruleToStopState[state.ruleIndex] = state + atn.ruleToStartState[state.ruleIndex].stopState = state + + def readModes(self, atn:ATN): + nmodes = self.readInt() + for i in range(0, nmodes): + s = self.readInt() + atn.modeToStartState.append(atn.states[s]) + + def readSets(self, atn:ATN, sets:list, readUnicode:Callable[[], int]): + m = self.readInt() + for i in range(0, m): + iset = IntervalSet() + sets.append(iset) + n = self.readInt() + containsEof = self.readInt() + if containsEof!=0: + iset.addOne(-1) + for j in range(0, n): + i1 = readUnicode() + i2 = readUnicode() + iset.addRange(range(i1, i2 + 1)) # range upper limit is exclusive + + def readEdges(self, atn:ATN, sets:list): + nedges = self.readInt() + for i in range(0, nedges): + src = self.readInt() + trg = self.readInt() + ttype = self.readInt() + arg1 = self.readInt() + arg2 = self.readInt() + arg3 = self.readInt() + trans = self.edgeFactory(atn, ttype, src, trg, arg1, arg2, arg3, sets) + srcState = atn.states[src] + srcState.addTransition(trans) + + # edges for rule stop states can be derived, so they aren't serialized + for state in atn.states: + for i in range(0, len(state.transitions)): + t = state.transitions[i] + if not isinstance(t, RuleTransition): + continue + outermostPrecedenceReturn = -1 + if atn.ruleToStartState[t.target.ruleIndex].isPrecedenceRule: + if t.precedence == 0: + outermostPrecedenceReturn = t.target.ruleIndex + trans = EpsilonTransition(t.followState, outermostPrecedenceReturn) + atn.ruleToStopState[t.target.ruleIndex].addTransition(trans) + + for state in atn.states: + if isinstance(state, BlockStartState): + # we need to know the end state to set its start state + if state.endState is None: + raise Exception("IllegalState") + # block end states can only be associated to a single block start state + if state.endState.startState is not None: + raise Exception("IllegalState") + state.endState.startState = state + + if isinstance(state, PlusLoopbackState): + for i in range(0, len(state.transitions)): + target = state.transitions[i].target + if isinstance(target, PlusBlockStartState): + target.loopBackState = state + elif isinstance(state, StarLoopbackState): + for i in range(0, len(state.transitions)): + target = state.transitions[i].target + if isinstance(target, StarLoopEntryState): + target.loopBackState = state + + def readDecisions(self, atn:ATN): + ndecisions = self.readInt() + for i in range(0, ndecisions): + s = self.readInt() + decState = atn.states[s] + atn.decisionToState.append(decState) + decState.decision = i + + def readLexerActions(self, atn:ATN): + if atn.grammarType == ATNType.LEXER: + count = self.readInt() + atn.lexerActions = [ None ] * count + for i in range(0, count): + actionType = self.readInt() + data1 = self.readInt() + if data1 == 0xFFFF: + data1 = -1 + data2 = self.readInt() + if data2 == 0xFFFF: + data2 = -1 + lexerAction = self.lexerActionFactory(actionType, data1, data2) + atn.lexerActions[i] = lexerAction + + def generateRuleBypassTransitions(self, atn:ATN): + + count = len(atn.ruleToStartState) + atn.ruleToTokenType = [ 0 ] * count + for i in range(0, count): + atn.ruleToTokenType[i] = atn.maxTokenType + i + 1 + + for i in range(0, count): + self.generateRuleBypassTransition(atn, i) + + def generateRuleBypassTransition(self, atn:ATN, idx:int): + + bypassStart = BasicBlockStartState() + bypassStart.ruleIndex = idx + atn.addState(bypassStart) + + bypassStop = BlockEndState() + bypassStop.ruleIndex = idx + atn.addState(bypassStop) + + bypassStart.endState = bypassStop + atn.defineDecisionState(bypassStart) + + bypassStop.startState = bypassStart + + excludeTransition = None + + if atn.ruleToStartState[idx].isPrecedenceRule: + # wrap from the beginning of the rule to the StarLoopEntryState + endState = None + for state in atn.states: + if self.stateIsEndStateFor(state, idx): + endState = state + excludeTransition = state.loopBackState.transitions[0] + break + + if excludeTransition is None: + raise Exception("Couldn't identify final state of the precedence rule prefix section.") + + else: + + endState = atn.ruleToStopState[idx] + + # all non-excluded transitions that currently target end state need to target blockEnd instead + for state in atn.states: + for transition in state.transitions: + if transition == excludeTransition: + continue + if transition.target == endState: + transition.target = bypassStop + + # all transitions leaving the rule start state need to leave blockStart instead + ruleToStartState = atn.ruleToStartState[idx] + count = len(ruleToStartState.transitions) + while count > 0: + bypassStart.addTransition(ruleToStartState.transitions[count-1]) + del ruleToStartState.transitions[-1] + + # link the new states + atn.ruleToStartState[idx].addTransition(EpsilonTransition(bypassStart)) + bypassStop.addTransition(EpsilonTransition(endState)) + + matchState = BasicState() + atn.addState(matchState) + matchState.addTransition(AtomTransition(bypassStop, atn.ruleToTokenType[idx])) + bypassStart.addTransition(EpsilonTransition(matchState)) + + + def stateIsEndStateFor(self, state:ATNState, idx:int): + if state.ruleIndex != idx: + return None + if not isinstance(state, StarLoopEntryState): + return None + + maybeLoopEndState = state.transitions[len(state.transitions) - 1].target + if not isinstance(maybeLoopEndState, LoopEndState): + return None + + if maybeLoopEndState.epsilonOnlyTransitions and \ + isinstance(maybeLoopEndState.transitions[0].target, RuleStopState): + return state + else: + return None + + + # + # Analyze the {@link StarLoopEntryState} states in the specified ATN to set + # the {@link StarLoopEntryState#isPrecedenceDecision} field to the + # correct value. + # + # @param atn The ATN. + # + def markPrecedenceDecisions(self, atn:ATN): + for state in atn.states: + if not isinstance(state, StarLoopEntryState): + continue + + # We analyze the ATN to determine if this ATN decision state is the + # decision for the closure block that determines whether a + # precedence rule should continue or complete. + # + if atn.ruleToStartState[state.ruleIndex].isPrecedenceRule: + maybeLoopEndState = state.transitions[len(state.transitions) - 1].target + if isinstance(maybeLoopEndState, LoopEndState): + if maybeLoopEndState.epsilonOnlyTransitions and \ + isinstance(maybeLoopEndState.transitions[0].target, RuleStopState): + state.isPrecedenceDecision = True + + def verifyATN(self, atn:ATN): + if not self.deserializationOptions.verifyATN: + return + # verify assumptions + for state in atn.states: + if state is None: + continue + + self.checkCondition(state.epsilonOnlyTransitions or len(state.transitions) <= 1) + + if isinstance(state, PlusBlockStartState): + self.checkCondition(state.loopBackState is not None) + + if isinstance(state, StarLoopEntryState): + self.checkCondition(state.loopBackState is not None) + self.checkCondition(len(state.transitions) == 2) + + if isinstance(state.transitions[0].target, StarBlockStartState): + self.checkCondition(isinstance(state.transitions[1].target, LoopEndState)) + self.checkCondition(not state.nonGreedy) + elif isinstance(state.transitions[0].target, LoopEndState): + self.checkCondition(isinstance(state.transitions[1].target, StarBlockStartState)) + self.checkCondition(state.nonGreedy) + else: + raise Exception("IllegalState") + + if isinstance(state, StarLoopbackState): + self.checkCondition(len(state.transitions) == 1) + self.checkCondition(isinstance(state.transitions[0].target, StarLoopEntryState)) + + if isinstance(state, LoopEndState): + self.checkCondition(state.loopBackState is not None) + + if isinstance(state, RuleStartState): + self.checkCondition(state.stopState is not None) + + if isinstance(state, BlockStartState): + self.checkCondition(state.endState is not None) + + if isinstance(state, BlockEndState): + self.checkCondition(state.startState is not None) + + if isinstance(state, DecisionState): + self.checkCondition(len(state.transitions) <= 1 or state.decision >= 0) + else: + self.checkCondition(len(state.transitions) <= 1 or isinstance(state, RuleStopState)) + + def checkCondition(self, condition:bool, message=None): + if not condition: + if message is None: + message = "IllegalState" + raise Exception(message) + + def readInt(self): + i = self.data[self.pos] + self.pos += 1 + return i + + def readInt32(self): + low = self.readInt() + high = self.readInt() + return low | (high << 16) + + def readLong(self): + low = self.readInt32() + high = self.readInt32() + return (low & 0x00000000FFFFFFFF) | (high << 32) + + def readUUID(self): + low = self.readLong() + high = self.readLong() + allBits = (low & 0xFFFFFFFFFFFFFFFF) | (high << 64) + return UUID(int=allBits) + + edgeFactories = [ lambda args : None, + lambda atn, src, trg, arg1, arg2, arg3, sets, target : EpsilonTransition(target), + lambda atn, src, trg, arg1, arg2, arg3, sets, target : \ + RangeTransition(target, Token.EOF, arg2) if arg3 != 0 else RangeTransition(target, arg1, arg2), + lambda atn, src, trg, arg1, arg2, arg3, sets, target : \ + RuleTransition(atn.states[arg1], arg2, arg3, target), + lambda atn, src, trg, arg1, arg2, arg3, sets, target : \ + PredicateTransition(target, arg1, arg2, arg3 != 0), + lambda atn, src, trg, arg1, arg2, arg3, sets, target : \ + AtomTransition(target, Token.EOF) if arg3 != 0 else AtomTransition(target, arg1), + lambda atn, src, trg, arg1, arg2, arg3, sets, target : \ + ActionTransition(target, arg1, arg2, arg3 != 0), + lambda atn, src, trg, arg1, arg2, arg3, sets, target : \ + SetTransition(target, sets[arg1]), + lambda atn, src, trg, arg1, arg2, arg3, sets, target : \ + NotSetTransition(target, sets[arg1]), + lambda atn, src, trg, arg1, arg2, arg3, sets, target : \ + WildcardTransition(target), + lambda atn, src, trg, arg1, arg2, arg3, sets, target : \ + PrecedencePredicateTransition(target, arg1) + ] + + def edgeFactory(self, atn:ATN, type:int, src:int, trg:int, arg1:int, arg2:int, arg3:int, sets:list): + target = atn.states[trg] + if type > len(self.edgeFactories) or self.edgeFactories[type] is None: + raise Exception("The specified transition type: " + str(type) + " is not valid.") + else: + return self.edgeFactories[type](atn, src, trg, arg1, arg2, arg3, sets, target) + + stateFactories = [ lambda : None, + lambda : BasicState(), + lambda : RuleStartState(), + lambda : BasicBlockStartState(), + lambda : PlusBlockStartState(), + lambda : StarBlockStartState(), + lambda : TokensStartState(), + lambda : RuleStopState(), + lambda : BlockEndState(), + lambda : StarLoopbackState(), + lambda : StarLoopEntryState(), + lambda : PlusLoopbackState(), + lambda : LoopEndState() + ] + + def stateFactory(self, type:int, ruleIndex:int): + if type> len(self.stateFactories) or self.stateFactories[type] is None: + raise Exception("The specified state type " + str(type) + " is not valid.") + else: + s = self.stateFactories[type]() + if s is not None: + s.ruleIndex = ruleIndex + return s + + CHANNEL = 0 #The type of a {@link LexerChannelAction} action. + CUSTOM = 1 #The type of a {@link LexerCustomAction} action. + MODE = 2 #The type of a {@link LexerModeAction} action. + MORE = 3 #The type of a {@link LexerMoreAction} action. + POP_MODE = 4 #The type of a {@link LexerPopModeAction} action. + PUSH_MODE = 5 #The type of a {@link LexerPushModeAction} action. + SKIP = 6 #The type of a {@link LexerSkipAction} action. + TYPE = 7 #The type of a {@link LexerTypeAction} action. + + actionFactories = [ lambda data1, data2: LexerChannelAction(data1), + lambda data1, data2: LexerCustomAction(data1, data2), + lambda data1, data2: LexerModeAction(data1), + lambda data1, data2: LexerMoreAction.INSTANCE, + lambda data1, data2: LexerPopModeAction.INSTANCE, + lambda data1, data2: LexerPushModeAction(data1), + lambda data1, data2: LexerSkipAction.INSTANCE, + lambda data1, data2: LexerTypeAction(data1) + ] + + def lexerActionFactory(self, type:int, data1:int, data2:int): + + if type > len(self.actionFactories) or self.actionFactories[type] is None: + raise Exception("The specified lexer action type " + str(type) + " is not valid.") + else: + return self.actionFactories[type](data1, data2) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/atn/ATNSimulator.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/atn/ATNSimulator.py new file mode 100644 index 0000000..4f6f53f --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/atn/ATNSimulator.py @@ -0,0 +1,47 @@ +# +# Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. +# Use of this file is governed by the BSD 3-clause license that +# can be found in the LICENSE.txt file in the project root. +#/ +from antlr4.PredictionContext import PredictionContextCache, PredictionContext, getCachedPredictionContext +from antlr4.atn.ATN import ATN +from antlr4.atn.ATNConfigSet import ATNConfigSet +from antlr4.dfa.DFAState import DFAState + + +class ATNSimulator(object): + __slots__ = ('atn', 'sharedContextCache', '__dict__') + + # Must distinguish between missing edge and edge we know leads nowhere#/ + ERROR = DFAState(configs=ATNConfigSet()) + ERROR.stateNumber = 0x7FFFFFFF + + # The context cache maps all PredictionContext objects that are == + # to a single cached copy. This cache is shared across all contexts + # in all ATNConfigs in all DFA states. We rebuild each ATNConfigSet + # to use only cached nodes/graphs in addDFAState(). We don't want to + # fill this during closure() since there are lots of contexts that + # pop up but are not used ever again. It also greatly slows down closure(). + # + #

      This cache makes a huge difference in memory and a little bit in speed. + # For the Java grammar on java.*, it dropped the memory requirements + # at the end from 25M to 16M. We don't store any of the full context + # graphs in the DFA because they are limited to local context only, + # but apparently there's a lot of repetition there as well. We optimize + # the config contexts before storing the config set in the DFA states + # by literally rebuilding them with cached subgraphs only.

      + # + #

      I tried a cache for use during closure operations, that was + # whacked after each adaptivePredict(). It cost a little bit + # more time I think and doesn't save on the overall footprint + # so it's not worth the complexity.

      + #/ + def __init__(self, atn:ATN, sharedContextCache:PredictionContextCache): + self.atn = atn + self.sharedContextCache = sharedContextCache + + def getCachedContext(self, context:PredictionContext): + if self.sharedContextCache is None: + return context + visited = dict() + return getCachedPredictionContext(context, self.sharedContextCache, visited) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/atn/ATNState.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/atn/ATNState.py new file mode 100644 index 0000000..fbf6a7b --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/atn/ATNState.py @@ -0,0 +1,264 @@ +# +# Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. +# Use of this file is governed by the BSD 3-clause license that +# can be found in the LICENSE.txt file in the project root. +# + +# The following images show the relation of states and +# {@link ATNState#transitions} for various grammar constructs. +# +#
        +# +#
      • Solid edges marked with an ε indicate a required +# {@link EpsilonTransition}.
      • +# +#
      • Dashed edges indicate locations where any transition derived from +# {@link Transition} might appear.
      • +# +#
      • Dashed nodes are place holders for either a sequence of linked +# {@link BasicState} states or the inclusion of a block representing a nested +# construct in one of the forms below.
      • +# +#
      • Nodes showing multiple outgoing alternatives with a {@code ...} support +# any number of alternatives (one or more). Nodes without the {@code ...} only +# support the exact number of alternatives shown in the diagram.
      • +# +#
      +# +#

      Basic Blocks

      +# +#

      Rule

      +# +# +# +#

      Block of 1 or more alternatives

      +# +# +# +#

      Greedy Loops

      +# +#

      Greedy Closure: {@code (...)*}

      +# +# +# +#

      Greedy Positive Closure: {@code (...)+}

      +# +# +# +#

      Greedy Optional: {@code (...)?}

      +# +# +# +#

      Non-Greedy Loops

      +# +#

      Non-Greedy Closure: {@code (...)*?}

      +# +# +# +#

      Non-Greedy Positive Closure: {@code (...)+?}

      +# +# +# +#

      Non-Greedy Optional: {@code (...)??}

      +# +# +# + +from antlr4.atn.Transition import Transition + +INITIAL_NUM_TRANSITIONS = 4 + +class ATNState(object): + __slots__ = ( + 'atn', 'stateNumber', 'stateType', 'ruleIndex', 'epsilonOnlyTransitions', + 'transitions', 'nextTokenWithinRule', + ) + + # constants for serialization + INVALID_TYPE = 0 + BASIC = 1 + RULE_START = 2 + BLOCK_START = 3 + PLUS_BLOCK_START = 4 + STAR_BLOCK_START = 5 + TOKEN_START = 6 + RULE_STOP = 7 + BLOCK_END = 8 + STAR_LOOP_BACK = 9 + STAR_LOOP_ENTRY = 10 + PLUS_LOOP_BACK = 11 + LOOP_END = 12 + + serializationNames = [ + "INVALID", + "BASIC", + "RULE_START", + "BLOCK_START", + "PLUS_BLOCK_START", + "STAR_BLOCK_START", + "TOKEN_START", + "RULE_STOP", + "BLOCK_END", + "STAR_LOOP_BACK", + "STAR_LOOP_ENTRY", + "PLUS_LOOP_BACK", + "LOOP_END" ] + + INVALID_STATE_NUMBER = -1 + + def __init__(self): + # Which ATN are we in? + self.atn = None + self.stateNumber = ATNState.INVALID_STATE_NUMBER + self.stateType = None + self.ruleIndex = 0 # at runtime, we don't have Rule objects + self.epsilonOnlyTransitions = False + # Track the transitions emanating from this ATN state. + self.transitions = [] + # Used to cache lookahead during parsing, not used during construction + self.nextTokenWithinRule = None + + def __hash__(self): + return self.stateNumber + + def __eq__(self, other): + return isinstance(other, ATNState) and self.stateNumber==other.stateNumber + + def onlyHasEpsilonTransitions(self): + return self.epsilonOnlyTransitions + + def isNonGreedyExitState(self): + return False + + def __str__(self): + return str(self.stateNumber) + + def addTransition(self, trans:Transition, index:int=-1): + if len(self.transitions)==0: + self.epsilonOnlyTransitions = trans.isEpsilon + elif self.epsilonOnlyTransitions != trans.isEpsilon: + self.epsilonOnlyTransitions = False + # TODO System.err.format(Locale.getDefault(), "ATN state %d has both epsilon and non-epsilon transitions.\n", stateNumber); + if index==-1: + self.transitions.append(trans) + else: + self.transitions.insert(index, trans) + +class BasicState(ATNState): + + def __init__(self): + super().__init__() + self.stateType = self.BASIC + + +class DecisionState(ATNState): + __slots__ = ('decision', 'nonGreedy') + def __init__(self): + super().__init__() + self.decision = -1 + self.nonGreedy = False + +# The start of a regular {@code (...)} block. +class BlockStartState(DecisionState): + __slots__ = 'endState' + + def __init__(self): + super().__init__() + self.endState = None + +class BasicBlockStartState(BlockStartState): + + def __init__(self): + super().__init__() + self.stateType = self.BLOCK_START + +# Terminal node of a simple {@code (a|b|c)} block. +class BlockEndState(ATNState): + __slots__ = 'startState' + + def __init__(self): + super().__init__() + self.stateType = self.BLOCK_END + self.startState = None + +# The last node in the ATN for a rule, unless that rule is the start symbol. +# In that case, there is one transition to EOF. Later, we might encode +# references to all calls to this rule to compute FOLLOW sets for +# error handling. +# +class RuleStopState(ATNState): + + def __init__(self): + super().__init__() + self.stateType = self.RULE_STOP + +class RuleStartState(ATNState): + __slots__ = ('stopState', 'isPrecedenceRule') + + def __init__(self): + super().__init__() + self.stateType = self.RULE_START + self.stopState = None + self.isPrecedenceRule = False + +# Decision state for {@code A+} and {@code (A|B)+}. It has two transitions: +# one to the loop back to start of the block and one to exit. +# +class PlusLoopbackState(DecisionState): + + def __init__(self): + super().__init__() + self.stateType = self.PLUS_LOOP_BACK + +# Start of {@code (A|B|...)+} loop. Technically a decision state, but +# we don't use for code generation; somebody might need it, so I'm defining +# it for completeness. In reality, the {@link PlusLoopbackState} node is the +# real decision-making note for {@code A+}. +# +class PlusBlockStartState(BlockStartState): + __slots__ = 'loopBackState' + + def __init__(self): + super().__init__() + self.stateType = self.PLUS_BLOCK_START + self.loopBackState = None + +# The block that begins a closure loop. +class StarBlockStartState(BlockStartState): + + def __init__(self): + super().__init__() + self.stateType = self.STAR_BLOCK_START + +class StarLoopbackState(ATNState): + + def __init__(self): + super().__init__() + self.stateType = self.STAR_LOOP_BACK + + +class StarLoopEntryState(DecisionState): + __slots__ = ('loopBackState', 'isPrecedenceDecision') + + def __init__(self): + super().__init__() + self.stateType = self.STAR_LOOP_ENTRY + self.loopBackState = None + # Indicates whether this state can benefit from a precedence DFA during SLL decision making. + self.isPrecedenceDecision = None + +# Mark the end of a * or + loop. +class LoopEndState(ATNState): + __slots__ = 'loopBackState' + + def __init__(self): + super().__init__() + self.stateType = self.LOOP_END + self.loopBackState = None + +# The Tokens rule start state linking to each lexer rule start state */ +class TokensStartState(DecisionState): + + def __init__(self): + super().__init__() + self.stateType = self.TOKEN_START diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/atn/ATNType.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/atn/ATNType.py new file mode 100644 index 0000000..cc0d4d9 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/atn/ATNType.py @@ -0,0 +1,17 @@ +# Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. +# Use of this file is governed by the BSD 3-clause license that +# can be found in the LICENSE.txt file in the project root. +#/ + +from enum import IntEnum + +# Represents the type of recognizer an ATN applies to. + +class ATNType(IntEnum): + + LEXER = 0 + PARSER = 1 + + @classmethod + def fromOrdinal(cls, i:int): + return cls._value2member_map_[i] diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/atn/LexerATNSimulator.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/atn/LexerATNSimulator.py new file mode 100644 index 0000000..71201ff --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/atn/LexerATNSimulator.py @@ -0,0 +1,570 @@ +# +# Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. +# Use of this file is governed by the BSD 3-clause license that +# can be found in the LICENSE.txt file in the project root. +#/ + +# When we hit an accept state in either the DFA or the ATN, we +# have to notify the character stream to start buffering characters +# via {@link IntStream#mark} and record the current state. The current sim state +# includes the current index into the input, the current line, +# and current character position in that line. Note that the Lexer is +# tracking the starting line and characterization of the token. These +# variables track the "state" of the simulator when it hits an accept state. +# +#

      We track these variables separately for the DFA and ATN simulation +# because the DFA simulation often has to fail over to the ATN +# simulation. If the ATN simulation fails, we need the DFA to fall +# back to its previously accepted state, if any. If the ATN succeeds, +# then the ATN does the accept and the DFA simulator that invoked it +# can simply return the predicted token type.

      +#/ + +from antlr4.PredictionContext import PredictionContextCache, SingletonPredictionContext, PredictionContext +from antlr4.InputStream import InputStream +from antlr4.Token import Token +from antlr4.atn.ATN import ATN +from antlr4.atn.ATNConfig import LexerATNConfig +from antlr4.atn.ATNSimulator import ATNSimulator +from antlr4.atn.ATNConfigSet import ATNConfigSet, OrderedATNConfigSet +from antlr4.atn.ATNState import RuleStopState, ATNState +from antlr4.atn.LexerActionExecutor import LexerActionExecutor +from antlr4.atn.Transition import Transition +from antlr4.dfa.DFAState import DFAState +from antlr4.error.Errors import LexerNoViableAltException, UnsupportedOperationException + +class SimState(object): + __slots__ = ('index', 'line', 'column', 'dfaState') + + def __init__(self): + self.reset() + + def reset(self): + self.index = -1 + self.line = 0 + self.column = -1 + self.dfaState = None + +# need forward declaration +Lexer = None +LexerATNSimulator = None + +class LexerATNSimulator(ATNSimulator): + __slots__ = ( + 'decisionToDFA', 'recog', 'startIndex', 'line', 'column', 'mode', + 'DEFAULT_MODE', 'MAX_CHAR_VALUE', 'prevAccept' + ) + + debug = False + dfa_debug = False + + MIN_DFA_EDGE = 0 + MAX_DFA_EDGE = 127 # forces unicode to stay in ATN + + ERROR = None + + def __init__(self, recog:Lexer, atn:ATN, decisionToDFA:list, sharedContextCache:PredictionContextCache): + super().__init__(atn, sharedContextCache) + self.decisionToDFA = decisionToDFA + self.recog = recog + # The current token's starting index into the character stream. + # Shared across DFA to ATN simulation in case the ATN fails and the + # DFA did not have a previous accept state. In this case, we use the + # ATN-generated exception object. + self.startIndex = -1 + # line number 1..n within the input#/ + self.line = 1 + # The index of the character relative to the beginning of the line 0..n-1#/ + self.column = 0 + from antlr4.Lexer import Lexer + self.mode = Lexer.DEFAULT_MODE + # Cache Lexer properties to avoid further imports + self.DEFAULT_MODE = Lexer.DEFAULT_MODE + self.MAX_CHAR_VALUE = Lexer.MAX_CHAR_VALUE + # Used during DFA/ATN exec to record the most recent accept configuration info + self.prevAccept = SimState() + + + def copyState(self, simulator:LexerATNSimulator ): + self.column = simulator.column + self.line = simulator.line + self.mode = simulator.mode + self.startIndex = simulator.startIndex + + def match(self, input:InputStream , mode:int): + self.mode = mode + mark = input.mark() + try: + self.startIndex = input.index + self.prevAccept.reset() + dfa = self.decisionToDFA[mode] + if dfa.s0 is None: + return self.matchATN(input) + else: + return self.execATN(input, dfa.s0) + finally: + input.release(mark) + + def reset(self): + self.prevAccept.reset() + self.startIndex = -1 + self.line = 1 + self.column = 0 + self.mode = self.DEFAULT_MODE + + def matchATN(self, input:InputStream): + startState = self.atn.modeToStartState[self.mode] + + if LexerATNSimulator.debug: + print("matchATN mode " + str(self.mode) + " start: " + str(startState)) + + old_mode = self.mode + s0_closure = self.computeStartState(input, startState) + suppressEdge = s0_closure.hasSemanticContext + s0_closure.hasSemanticContext = False + + next = self.addDFAState(s0_closure) + if not suppressEdge: + self.decisionToDFA[self.mode].s0 = next + + predict = self.execATN(input, next) + + if LexerATNSimulator.debug: + print("DFA after matchATN: " + str(self.decisionToDFA[old_mode].toLexerString())) + + return predict + + def execATN(self, input:InputStream, ds0:DFAState): + if LexerATNSimulator.debug: + print("start state closure=" + str(ds0.configs)) + + if ds0.isAcceptState: + # allow zero-length tokens + self.captureSimState(self.prevAccept, input, ds0) + + t = input.LA(1) + s = ds0 # s is current/from DFA state + + while True: # while more work + if LexerATNSimulator.debug: + print("execATN loop starting closure:", str(s.configs)) + + # As we move src->trg, src->trg, we keep track of the previous trg to + # avoid looking up the DFA state again, which is expensive. + # If the previous target was already part of the DFA, we might + # be able to avoid doing a reach operation upon t. If s!=null, + # it means that semantic predicates didn't prevent us from + # creating a DFA state. Once we know s!=null, we check to see if + # the DFA state has an edge already for t. If so, we can just reuse + # it's configuration set; there's no point in re-computing it. + # This is kind of like doing DFA simulation within the ATN + # simulation because DFA simulation is really just a way to avoid + # computing reach/closure sets. Technically, once we know that + # we have a previously added DFA state, we could jump over to + # the DFA simulator. But, that would mean popping back and forth + # a lot and making things more complicated algorithmically. + # This optimization makes a lot of sense for loops within DFA. + # A character will take us back to an existing DFA state + # that already has lots of edges out of it. e.g., .* in comments. + # print("Target for:" + str(s) + " and:" + str(t)) + target = self.getExistingTargetState(s, t) + # print("Existing:" + str(target)) + if target is None: + target = self.computeTargetState(input, s, t) + # print("Computed:" + str(target)) + + if target == self.ERROR: + break + + # If this is a consumable input element, make sure to consume before + # capturing the accept state so the input index, line, and char + # position accurately reflect the state of the interpreter at the + # end of the token. + if t != Token.EOF: + self.consume(input) + + if target.isAcceptState: + self.captureSimState(self.prevAccept, input, target) + if t == Token.EOF: + break + + t = input.LA(1) + + s = target # flip; current DFA target becomes new src/from state + + return self.failOrAccept(self.prevAccept, input, s.configs, t) + + # Get an existing target state for an edge in the DFA. If the target state + # for the edge has not yet been computed or is otherwise not available, + # this method returns {@code null}. + # + # @param s The current DFA state + # @param t The next input symbol + # @return The existing target DFA state for the given input symbol + # {@code t}, or {@code null} if the target state for this edge is not + # already cached + def getExistingTargetState(self, s:DFAState, t:int): + if s.edges is None or t < self.MIN_DFA_EDGE or t > self.MAX_DFA_EDGE: + return None + + target = s.edges[t - self.MIN_DFA_EDGE] + if LexerATNSimulator.debug and target is not None: + print("reuse state", str(s.stateNumber), "edge to", str(target.stateNumber)) + + return target + + # Compute a target state for an edge in the DFA, and attempt to add the + # computed state and corresponding edge to the DFA. + # + # @param input The input stream + # @param s The current DFA state + # @param t The next input symbol + # + # @return The computed target DFA state for the given input symbol + # {@code t}. If {@code t} does not lead to a valid DFA state, this method + # returns {@link #ERROR}. + def computeTargetState(self, input:InputStream, s:DFAState, t:int): + reach = OrderedATNConfigSet() + + # if we don't find an existing DFA state + # Fill reach starting from closure, following t transitions + self.getReachableConfigSet(input, s.configs, reach, t) + + if len(reach)==0: # we got nowhere on t from s + if not reach.hasSemanticContext: + # we got nowhere on t, don't throw out this knowledge; it'd + # cause a failover from DFA later. + self. addDFAEdge(s, t, self.ERROR) + + # stop when we can't match any more char + return self.ERROR + + # Add an edge from s to target DFA found/created for reach + return self.addDFAEdge(s, t, cfgs=reach) + + def failOrAccept(self, prevAccept:SimState , input:InputStream, reach:ATNConfigSet, t:int): + if self.prevAccept.dfaState is not None: + lexerActionExecutor = prevAccept.dfaState.lexerActionExecutor + self.accept(input, lexerActionExecutor, self.startIndex, prevAccept.index, prevAccept.line, prevAccept.column) + return prevAccept.dfaState.prediction + else: + # if no accept and EOF is first char, return EOF + if t==Token.EOF and input.index==self.startIndex: + return Token.EOF + raise LexerNoViableAltException(self.recog, input, self.startIndex, reach) + + # Given a starting configuration set, figure out all ATN configurations + # we can reach upon input {@code t}. Parameter {@code reach} is a return + # parameter. + def getReachableConfigSet(self, input:InputStream, closure:ATNConfigSet, reach:ATNConfigSet, t:int): + # this is used to skip processing for configs which have a lower priority + # than a config that already reached an accept state for the same rule + skipAlt = ATN.INVALID_ALT_NUMBER + for cfg in closure: + currentAltReachedAcceptState = ( cfg.alt == skipAlt ) + if currentAltReachedAcceptState and cfg.passedThroughNonGreedyDecision: + continue + + if LexerATNSimulator.debug: + print("testing", self.getTokenName(t), "at", str(cfg)) + + for trans in cfg.state.transitions: # for each transition + target = self.getReachableTarget(trans, t) + if target is not None: + lexerActionExecutor = cfg.lexerActionExecutor + if lexerActionExecutor is not None: + lexerActionExecutor = lexerActionExecutor.fixOffsetBeforeMatch(input.index - self.startIndex) + + treatEofAsEpsilon = (t == Token.EOF) + config = LexerATNConfig(state=target, lexerActionExecutor=lexerActionExecutor, config=cfg) + if self.closure(input, config, reach, currentAltReachedAcceptState, True, treatEofAsEpsilon): + # any remaining configs for this alt have a lower priority than + # the one that just reached an accept state. + skipAlt = cfg.alt + + def accept(self, input:InputStream, lexerActionExecutor:LexerActionExecutor, startIndex:int, index:int, line:int, charPos:int): + if LexerATNSimulator.debug: + print("ACTION", lexerActionExecutor) + + # seek to after last char in token + input.seek(index) + self.line = line + self.column = charPos + + if lexerActionExecutor is not None and self.recog is not None: + lexerActionExecutor.execute(self.recog, input, startIndex) + + def getReachableTarget(self, trans:Transition, t:int): + if trans.matches(t, 0, self.MAX_CHAR_VALUE): + return trans.target + else: + return None + + def computeStartState(self, input:InputStream, p:ATNState): + initialContext = PredictionContext.EMPTY + configs = OrderedATNConfigSet() + for i in range(0,len(p.transitions)): + target = p.transitions[i].target + c = LexerATNConfig(state=target, alt=i+1, context=initialContext) + self.closure(input, c, configs, False, False, False) + return configs + + # Since the alternatives within any lexer decision are ordered by + # preference, this method stops pursuing the closure as soon as an accept + # state is reached. After the first accept state is reached by depth-first + # search from {@code config}, all other (potentially reachable) states for + # this rule would have a lower priority. + # + # @return {@code true} if an accept state is reached, otherwise + # {@code false}. + def closure(self, input:InputStream, config:LexerATNConfig, configs:ATNConfigSet, currentAltReachedAcceptState:bool, + speculative:bool, treatEofAsEpsilon:bool): + if LexerATNSimulator.debug: + print("closure(" + str(config) + ")") + + if isinstance( config.state, RuleStopState ): + if LexerATNSimulator.debug: + if self.recog is not None: + print("closure at", self.recog.symbolicNames[config.state.ruleIndex], "rule stop", str(config)) + else: + print("closure at rule stop", str(config)) + + if config.context is None or config.context.hasEmptyPath(): + if config.context is None or config.context.isEmpty(): + configs.add(config) + return True + else: + configs.add(LexerATNConfig(state=config.state, config=config, context=PredictionContext.EMPTY)) + currentAltReachedAcceptState = True + + if config.context is not None and not config.context.isEmpty(): + for i in range(0,len(config.context)): + if config.context.getReturnState(i) != PredictionContext.EMPTY_RETURN_STATE: + newContext = config.context.getParent(i) # "pop" return state + returnState = self.atn.states[config.context.getReturnState(i)] + c = LexerATNConfig(state=returnState, config=config, context=newContext) + currentAltReachedAcceptState = self.closure(input, c, configs, + currentAltReachedAcceptState, speculative, treatEofAsEpsilon) + + return currentAltReachedAcceptState + + # optimization + if not config.state.epsilonOnlyTransitions: + if not currentAltReachedAcceptState or not config.passedThroughNonGreedyDecision: + configs.add(config) + + for t in config.state.transitions: + c = self.getEpsilonTarget(input, config, t, configs, speculative, treatEofAsEpsilon) + if c is not None: + currentAltReachedAcceptState = self.closure(input, c, configs, currentAltReachedAcceptState, speculative, treatEofAsEpsilon) + + return currentAltReachedAcceptState + + # side-effect: can alter configs.hasSemanticContext + def getEpsilonTarget(self, input:InputStream, config:LexerATNConfig, t:Transition, configs:ATNConfigSet, + speculative:bool, treatEofAsEpsilon:bool): + c = None + if t.serializationType==Transition.RULE: + newContext = SingletonPredictionContext.create(config.context, t.followState.stateNumber) + c = LexerATNConfig(state=t.target, config=config, context=newContext) + + elif t.serializationType==Transition.PRECEDENCE: + raise UnsupportedOperationException("Precedence predicates are not supported in lexers.") + + elif t.serializationType==Transition.PREDICATE: + # Track traversing semantic predicates. If we traverse, + # we cannot add a DFA state for this "reach" computation + # because the DFA would not test the predicate again in the + # future. Rather than creating collections of semantic predicates + # like v3 and testing them on prediction, v4 will test them on the + # fly all the time using the ATN not the DFA. This is slower but + # semantically it's not used that often. One of the key elements to + # this predicate mechanism is not adding DFA states that see + # predicates immediately afterwards in the ATN. For example, + + # a : ID {p1}? | ID {p2}? ; + + # should create the start state for rule 'a' (to save start state + # competition), but should not create target of ID state. The + # collection of ATN states the following ID references includes + # states reached by traversing predicates. Since this is when we + # test them, we cannot cash the DFA state target of ID. + + if LexerATNSimulator.debug: + print("EVAL rule "+ str(t.ruleIndex) + ":" + str(t.predIndex)) + configs.hasSemanticContext = True + if self.evaluatePredicate(input, t.ruleIndex, t.predIndex, speculative): + c = LexerATNConfig(state=t.target, config=config) + + elif t.serializationType==Transition.ACTION: + if config.context is None or config.context.hasEmptyPath(): + # execute actions anywhere in the start rule for a token. + # + # TODO: if the entry rule is invoked recursively, some + # actions may be executed during the recursive call. The + # problem can appear when hasEmptyPath() is true but + # isEmpty() is false. In this case, the config needs to be + # split into two contexts - one with just the empty path + # and another with everything but the empty path. + # Unfortunately, the current algorithm does not allow + # getEpsilonTarget to return two configurations, so + # additional modifications are needed before we can support + # the split operation. + lexerActionExecutor = LexerActionExecutor.append(config.lexerActionExecutor, + self.atn.lexerActions[t.actionIndex]) + c = LexerATNConfig(state=t.target, config=config, lexerActionExecutor=lexerActionExecutor) + + else: + # ignore actions in referenced rules + c = LexerATNConfig(state=t.target, config=config) + + elif t.serializationType==Transition.EPSILON: + c = LexerATNConfig(state=t.target, config=config) + + elif t.serializationType in [ Transition.ATOM, Transition.RANGE, Transition.SET ]: + if treatEofAsEpsilon: + if t.matches(Token.EOF, 0, self.MAX_CHAR_VALUE): + c = LexerATNConfig(state=t.target, config=config) + + return c + + # Evaluate a predicate specified in the lexer. + # + #

      If {@code speculative} is {@code true}, this method was called before + # {@link #consume} for the matched character. This method should call + # {@link #consume} before evaluating the predicate to ensure position + # sensitive values, including {@link Lexer#getText}, {@link Lexer#getLine}, + # and {@link Lexer#getcolumn}, properly reflect the current + # lexer state. This method should restore {@code input} and the simulator + # to the original state before returning (i.e. undo the actions made by the + # call to {@link #consume}.

      + # + # @param input The input stream. + # @param ruleIndex The rule containing the predicate. + # @param predIndex The index of the predicate within the rule. + # @param speculative {@code true} if the current index in {@code input} is + # one character before the predicate's location. + # + # @return {@code true} if the specified predicate evaluates to + # {@code true}. + #/ + def evaluatePredicate(self, input:InputStream, ruleIndex:int, predIndex:int, speculative:bool): + # assume true if no recognizer was provided + if self.recog is None: + return True + + if not speculative: + return self.recog.sempred(None, ruleIndex, predIndex) + + savedcolumn = self.column + savedLine = self.line + index = input.index + marker = input.mark() + try: + self.consume(input) + return self.recog.sempred(None, ruleIndex, predIndex) + finally: + self.column = savedcolumn + self.line = savedLine + input.seek(index) + input.release(marker) + + def captureSimState(self, settings:SimState, input:InputStream, dfaState:DFAState): + settings.index = input.index + settings.line = self.line + settings.column = self.column + settings.dfaState = dfaState + + def addDFAEdge(self, from_:DFAState, tk:int, to:DFAState=None, cfgs:ATNConfigSet=None) -> DFAState: + + if to is None and cfgs is not None: + # leading to this call, ATNConfigSet.hasSemanticContext is used as a + # marker indicating dynamic predicate evaluation makes this edge + # dependent on the specific input sequence, so the static edge in the + # DFA should be omitted. The target DFAState is still created since + # execATN has the ability to resynchronize with the DFA state cache + # following the predicate evaluation step. + # + # TJP notes: next time through the DFA, we see a pred again and eval. + # If that gets us to a previously created (but dangling) DFA + # state, we can continue in pure DFA mode from there. + #/ + suppressEdge = cfgs.hasSemanticContext + cfgs.hasSemanticContext = False + + to = self.addDFAState(cfgs) + + if suppressEdge: + return to + + # add the edge + if tk < self.MIN_DFA_EDGE or tk > self.MAX_DFA_EDGE: + # Only track edges within the DFA bounds + return to + + if LexerATNSimulator.debug: + print("EDGE " + str(from_) + " -> " + str(to) + " upon "+ chr(tk)) + + if from_.edges is None: + # make room for tokens 1..n and -1 masquerading as index 0 + from_.edges = [ None ] * (self.MAX_DFA_EDGE - self.MIN_DFA_EDGE + 1) + + from_.edges[tk - self.MIN_DFA_EDGE] = to # connect + + return to + + + # Add a new DFA state if there isn't one with this set of + # configurations already. This method also detects the first + # configuration containing an ATN rule stop state. Later, when + # traversing the DFA, we will know which rule to accept. + def addDFAState(self, configs:ATNConfigSet) -> DFAState: + + proposed = DFAState(configs=configs) + firstConfigWithRuleStopState = next((cfg for cfg in configs if isinstance(cfg.state, RuleStopState)), None) + + if firstConfigWithRuleStopState is not None: + proposed.isAcceptState = True + proposed.lexerActionExecutor = firstConfigWithRuleStopState.lexerActionExecutor + proposed.prediction = self.atn.ruleToTokenType[firstConfigWithRuleStopState.state.ruleIndex] + + dfa = self.decisionToDFA[self.mode] + existing = dfa.states.get(proposed, None) + if existing is not None: + return existing + + newState = proposed + + newState.stateNumber = len(dfa.states) + configs.setReadonly(True) + newState.configs = configs + dfa.states[newState] = newState + return newState + + def getDFA(self, mode:int): + return self.decisionToDFA[mode] + + # Get the text matched so far for the current token. + def getText(self, input:InputStream): + # index is first lookahead char, don't include. + return input.getText(self.startIndex, input.index-1) + + def consume(self, input:InputStream): + curChar = input.LA(1) + if curChar==ord('\n'): + self.line += 1 + self.column = 0 + else: + self.column += 1 + input.consume() + + def getTokenName(self, t:int): + if t==-1: + return "EOF" + else: + return "'" + chr(t) + "'" + + +LexerATNSimulator.ERROR = DFAState(0x7FFFFFFF, ATNConfigSet()) + +del Lexer diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/atn/LexerAction.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/atn/LexerAction.py new file mode 100644 index 0000000..0fa7a89 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/atn/LexerAction.py @@ -0,0 +1,298 @@ +# +# Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. +# Use of this file is governed by the BSD 3-clause license that +# can be found in the LICENSE.txt file in the project root. + # + +from enum import IntEnum + +# need forward declaration +Lexer = None + + +class LexerActionType(IntEnum): + + CHANNEL = 0 #The type of a {@link LexerChannelAction} action. + CUSTOM = 1 #The type of a {@link LexerCustomAction} action. + MODE = 2 #The type of a {@link LexerModeAction} action. + MORE = 3 #The type of a {@link LexerMoreAction} action. + POP_MODE = 4 #The type of a {@link LexerPopModeAction} action. + PUSH_MODE = 5 #The type of a {@link LexerPushModeAction} action. + SKIP = 6 #The type of a {@link LexerSkipAction} action. + TYPE = 7 #The type of a {@link LexerTypeAction} action. + +class LexerAction(object): + __slots__ = ('actionType', 'isPositionDependent') + + def __init__(self, action:LexerActionType): + self.actionType = action + self.isPositionDependent = False + + def __hash__(self): + return hash(self.actionType) + + def __eq__(self, other): + return self is other + + +# +# Implements the {@code skip} lexer action by calling {@link Lexer#skip}. +# +#

      The {@code skip} command does not have any parameters, so this action is +# implemented as a singleton instance exposed by {@link #INSTANCE}.

      +class LexerSkipAction(LexerAction): + + # Provides a singleton instance of this parameterless lexer action. + INSTANCE = None + + def __init__(self): + super().__init__(LexerActionType.SKIP) + + def execute(self, lexer:Lexer): + lexer.skip() + + def __str__(self): + return "skip" + +LexerSkipAction.INSTANCE = LexerSkipAction() + +# Implements the {@code type} lexer action by calling {@link Lexer#setType} +# with the assigned type. +class LexerTypeAction(LexerAction): + __slots__ = 'type' + + def __init__(self, type:int): + super().__init__(LexerActionType.TYPE) + self.type = type + + def execute(self, lexer:Lexer): + lexer.type = self.type + + def __hash__(self): + return hash((self.actionType, self.type)) + + def __eq__(self, other): + if self is other: + return True + elif not isinstance(other, LexerTypeAction): + return False + else: + return self.type == other.type + + def __str__(self): + return "type(" + str(self.type) + ")" + + +# Implements the {@code pushMode} lexer action by calling +# {@link Lexer#pushMode} with the assigned mode. +class LexerPushModeAction(LexerAction): + __slots__ = 'mode' + + def __init__(self, mode:int): + super().__init__(LexerActionType.PUSH_MODE) + self.mode = mode + + #

      This action is implemented by calling {@link Lexer#pushMode} with the + # value provided by {@link #getMode}.

      + def execute(self, lexer:Lexer): + lexer.pushMode(self.mode) + + def __hash__(self): + return hash((self.actionType, self.mode)) + + def __eq__(self, other): + if self is other: + return True + elif not isinstance(other, LexerPushModeAction): + return False + else: + return self.mode == other.mode + + def __str__(self): + return "pushMode(" + str(self.mode) + ")" + + +# Implements the {@code popMode} lexer action by calling {@link Lexer#popMode}. +# +#

      The {@code popMode} command does not have any parameters, so this action is +# implemented as a singleton instance exposed by {@link #INSTANCE}.

      +class LexerPopModeAction(LexerAction): + + INSTANCE = None + + def __init__(self): + super().__init__(LexerActionType.POP_MODE) + + #

      This action is implemented by calling {@link Lexer#popMode}.

      + def execute(self, lexer:Lexer): + lexer.popMode() + + def __str__(self): + return "popMode" + +LexerPopModeAction.INSTANCE = LexerPopModeAction() + +# Implements the {@code more} lexer action by calling {@link Lexer#more}. +# +#

      The {@code more} command does not have any parameters, so this action is +# implemented as a singleton instance exposed by {@link #INSTANCE}.

      +class LexerMoreAction(LexerAction): + + INSTANCE = None + + def __init__(self): + super().__init__(LexerActionType.MORE) + + #

      This action is implemented by calling {@link Lexer#popMode}.

      + def execute(self, lexer:Lexer): + lexer.more() + + def __str__(self): + return "more" + +LexerMoreAction.INSTANCE = LexerMoreAction() + +# Implements the {@code mode} lexer action by calling {@link Lexer#mode} with +# the assigned mode. +class LexerModeAction(LexerAction): + __slots__ = 'mode' + + def __init__(self, mode:int): + super().__init__(LexerActionType.MODE) + self.mode = mode + + #

      This action is implemented by calling {@link Lexer#mode} with the + # value provided by {@link #getMode}.

      + def execute(self, lexer:Lexer): + lexer.mode(self.mode) + + def __hash__(self): + return hash((self.actionType, self.mode)) + + def __eq__(self, other): + if self is other: + return True + elif not isinstance(other, LexerModeAction): + return False + else: + return self.mode == other.mode + + def __str__(self): + return "mode(" + str(self.mode) + ")" + +# Executes a custom lexer action by calling {@link Recognizer#action} with the +# rule and action indexes assigned to the custom action. The implementation of +# a custom action is added to the generated code for the lexer in an override +# of {@link Recognizer#action} when the grammar is compiled. +# +#

      This class may represent embedded actions created with the {...} +# syntax in ANTLR 4, as well as actions created for lexer commands where the +# command argument could not be evaluated when the grammar was compiled.

      + +class LexerCustomAction(LexerAction): + __slots__ = ('ruleIndex', 'actionIndex') + + # Constructs a custom lexer action with the specified rule and action + # indexes. + # + # @param ruleIndex The rule index to use for calls to + # {@link Recognizer#action}. + # @param actionIndex The action index to use for calls to + # {@link Recognizer#action}. + #/ + def __init__(self, ruleIndex:int, actionIndex:int): + super().__init__(LexerActionType.CUSTOM) + self.ruleIndex = ruleIndex + self.actionIndex = actionIndex + self.isPositionDependent = True + + #

      Custom actions are implemented by calling {@link Lexer#action} with the + # appropriate rule and action indexes.

      + def execute(self, lexer:Lexer): + lexer.action(None, self.ruleIndex, self.actionIndex) + + def __hash__(self): + return hash((self.actionType, self.ruleIndex, self.actionIndex)) + + def __eq__(self, other): + if self is other: + return True + elif not isinstance(other, LexerCustomAction): + return False + else: + return self.ruleIndex == other.ruleIndex and self.actionIndex == other.actionIndex + +# Implements the {@code channel} lexer action by calling +# {@link Lexer#setChannel} with the assigned channel. +class LexerChannelAction(LexerAction): + __slots__ = 'channel' + + # Constructs a new {@code channel} action with the specified channel value. + # @param channel The channel value to pass to {@link Lexer#setChannel}. + def __init__(self, channel:int): + super().__init__(LexerActionType.CHANNEL) + self.channel = channel + + #

      This action is implemented by calling {@link Lexer#setChannel} with the + # value provided by {@link #getChannel}.

      + def execute(self, lexer:Lexer): + lexer._channel = self.channel + + def __hash__(self): + return hash((self.actionType, self.channel)) + + def __eq__(self, other): + if self is other: + return True + elif not isinstance(other, LexerChannelAction): + return False + else: + return self.channel == other.channel + + def __str__(self): + return "channel(" + str(self.channel) + ")" + +# This implementation of {@link LexerAction} is used for tracking input offsets +# for position-dependent actions within a {@link LexerActionExecutor}. +# +#

      This action is not serialized as part of the ATN, and is only required for +# position-dependent lexer actions which appear at a location other than the +# end of a rule. For more information about DFA optimizations employed for +# lexer actions, see {@link LexerActionExecutor#append} and +# {@link LexerActionExecutor#fixOffsetBeforeMatch}.

      +class LexerIndexedCustomAction(LexerAction): + __slots__ = ('offset', 'action') + + # Constructs a new indexed custom action by associating a character offset + # with a {@link LexerAction}. + # + #

      Note: This class is only required for lexer actions for which + # {@link LexerAction#isPositionDependent} returns {@code true}.

      + # + # @param offset The offset into the input {@link CharStream}, relative to + # the token start index, at which the specified lexer action should be + # executed. + # @param action The lexer action to execute at a particular offset in the + # input {@link CharStream}. + def __init__(self, offset:int, action:LexerAction): + super().__init__(action.actionType) + self.offset = offset + self.action = action + self.isPositionDependent = True + + #

      This method calls {@link #execute} on the result of {@link #getAction} + # using the provided {@code lexer}.

      + def execute(self, lexer:Lexer): + # assume the input stream position was properly set by the calling code + self.action.execute(lexer) + + def __hash__(self): + return hash((self.actionType, self.offset, self.action)) + + def __eq__(self, other): + if self is other: + return True + elif not isinstance(other, LexerIndexedCustomAction): + return False + else: + return self.offset == other.offset and self.action == other.action diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/atn/LexerActionExecutor.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/atn/LexerActionExecutor.py new file mode 100644 index 0000000..5c6462c --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/atn/LexerActionExecutor.py @@ -0,0 +1,143 @@ +# +# Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. +# Use of this file is governed by the BSD 3-clause license that +# can be found in the LICENSE.txt file in the project root. +#/ + +# Represents an executor for a sequence of lexer actions which traversed during +# the matching operation of a lexer rule (token). +# +#

      The executor tracks position information for position-dependent lexer actions +# efficiently, ensuring that actions appearing only at the end of the rule do +# not cause bloating of the {@link DFA} created for the lexer.

      + + +from antlr4.InputStream import InputStream +from antlr4.atn.LexerAction import LexerAction, LexerIndexedCustomAction + +# need a forward declaration +Lexer = None +LexerActionExecutor = None + +class LexerActionExecutor(object): + __slots__ = ('lexerActions', 'hashCode') + + def __init__(self, lexerActions:list=list()): + self.lexerActions = lexerActions + # Caches the result of {@link #hashCode} since the hash code is an element + # of the performance-critical {@link LexerATNConfig#hashCode} operation. + self.hashCode = hash("".join([str(la) for la in lexerActions])) + + + # Creates a {@link LexerActionExecutor} which executes the actions for + # the input {@code lexerActionExecutor} followed by a specified + # {@code lexerAction}. + # + # @param lexerActionExecutor The executor for actions already traversed by + # the lexer while matching a token within a particular + # {@link LexerATNConfig}. If this is {@code null}, the method behaves as + # though it were an empty executor. + # @param lexerAction The lexer action to execute after the actions + # specified in {@code lexerActionExecutor}. + # + # @return A {@link LexerActionExecutor} for executing the combine actions + # of {@code lexerActionExecutor} and {@code lexerAction}. + @staticmethod + def append(lexerActionExecutor:LexerActionExecutor , lexerAction:LexerAction ): + if lexerActionExecutor is None: + return LexerActionExecutor([ lexerAction ]) + + lexerActions = lexerActionExecutor.lexerActions + [ lexerAction ] + return LexerActionExecutor(lexerActions) + + # Creates a {@link LexerActionExecutor} which encodes the current offset + # for position-dependent lexer actions. + # + #

      Normally, when the executor encounters lexer actions where + # {@link LexerAction#isPositionDependent} returns {@code true}, it calls + # {@link IntStream#seek} on the input {@link CharStream} to set the input + # position to the end of the current token. This behavior provides + # for efficient DFA representation of lexer actions which appear at the end + # of a lexer rule, even when the lexer rule matches a variable number of + # characters.

      + # + #

      Prior to traversing a match transition in the ATN, the current offset + # from the token start index is assigned to all position-dependent lexer + # actions which have not already been assigned a fixed offset. By storing + # the offsets relative to the token start index, the DFA representation of + # lexer actions which appear in the middle of tokens remains efficient due + # to sharing among tokens of the same length, regardless of their absolute + # position in the input stream.

      + # + #

      If the current executor already has offsets assigned to all + # position-dependent lexer actions, the method returns {@code this}.

      + # + # @param offset The current offset to assign to all position-dependent + # lexer actions which do not already have offsets assigned. + # + # @return A {@link LexerActionExecutor} which stores input stream offsets + # for all position-dependent lexer actions. + #/ + def fixOffsetBeforeMatch(self, offset:int): + updatedLexerActions = None + for i in range(0, len(self.lexerActions)): + if self.lexerActions[i].isPositionDependent and not isinstance(self.lexerActions[i], LexerIndexedCustomAction): + if updatedLexerActions is None: + updatedLexerActions = [ la for la in self.lexerActions ] + updatedLexerActions[i] = LexerIndexedCustomAction(offset, self.lexerActions[i]) + + if updatedLexerActions is None: + return self + else: + return LexerActionExecutor(updatedLexerActions) + + + # Execute the actions encapsulated by this executor within the context of a + # particular {@link Lexer}. + # + #

      This method calls {@link IntStream#seek} to set the position of the + # {@code input} {@link CharStream} prior to calling + # {@link LexerAction#execute} on a position-dependent action. Before the + # method returns, the input position will be restored to the same position + # it was in when the method was invoked.

      + # + # @param lexer The lexer instance. + # @param input The input stream which is the source for the current token. + # When this method is called, the current {@link IntStream#index} for + # {@code input} should be the start of the following token, i.e. 1 + # character past the end of the current token. + # @param startIndex The token start index. This value may be passed to + # {@link IntStream#seek} to set the {@code input} position to the beginning + # of the token. + #/ + def execute(self, lexer:Lexer, input:InputStream, startIndex:int): + requiresSeek = False + stopIndex = input.index + try: + for lexerAction in self.lexerActions: + if isinstance(lexerAction, LexerIndexedCustomAction): + offset = lexerAction.offset + input.seek(startIndex + offset) + lexerAction = lexerAction.action + requiresSeek = (startIndex + offset) != stopIndex + elif lexerAction.isPositionDependent: + input.seek(stopIndex) + requiresSeek = False + lexerAction.execute(lexer) + finally: + if requiresSeek: + input.seek(stopIndex) + + def __hash__(self): + return self.hashCode + + def __eq__(self, other): + if self is other: + return True + elif not isinstance(other, LexerActionExecutor): + return False + else: + return self.hashCode == other.hashCode \ + and self.lexerActions == other.lexerActions + +del Lexer diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/atn/ParserATNSimulator.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/atn/ParserATNSimulator.py new file mode 100644 index 0000000..d1fb3d7 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/atn/ParserATNSimulator.py @@ -0,0 +1,1649 @@ +# +# Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. +# Use of this file is governed by the BSD 3-clause license that +# can be found in the LICENSE.txt file in the project root. +# + +# +# The embodiment of the adaptive LL(*), ALL(*), parsing strategy. +# +#

      +# The basic complexity of the adaptive strategy makes it harder to understand. +# We begin with ATN simulation to build paths in a DFA. Subsequent prediction +# requests go through the DFA first. If they reach a state without an edge for +# the current symbol, the algorithm fails over to the ATN simulation to +# complete the DFA path for the current input (until it finds a conflict state +# or uniquely predicting state).

      +# +#

      +# All of that is done without using the outer context because we want to create +# a DFA that is not dependent upon the rule invocation stack when we do a +# prediction. One DFA works in all contexts. We avoid using context not +# necessarily because it's slower, although it can be, but because of the DFA +# caching problem. The closure routine only considers the rule invocation stack +# created during prediction beginning in the decision rule. For example, if +# prediction occurs without invoking another rule's ATN, there are no context +# stacks in the configurations. When lack of context leads to a conflict, we +# don't know if it's an ambiguity or a weakness in the strong LL(*) parsing +# strategy (versus full LL(*)).

      +# +#

      +# When SLL yields a configuration set with conflict, we rewind the input and +# retry the ATN simulation, this time using full outer context without adding +# to the DFA. Configuration context stacks will be the full invocation stacks +# from the start rule. If we get a conflict using full context, then we can +# definitively say we have a true ambiguity for that input sequence. If we +# don't get a conflict, it implies that the decision is sensitive to the outer +# context. (It is not context-sensitive in the sense of context-sensitive +# grammars.)

      +# +#

      +# The next time we reach this DFA state with an SLL conflict, through DFA +# simulation, we will again retry the ATN simulation using full context mode. +# This is slow because we can't save the results and have to "interpret" the +# ATN each time we get that input.

      +# +#

      +# CACHING FULL CONTEXT PREDICTIONS

      +# +#

      +# We could cache results from full context to predicted alternative easily and +# that saves a lot of time but doesn't work in presence of predicates. The set +# of visible predicates from the ATN start state changes depending on the +# context, because closure can fall off the end of a rule. I tried to cache +# tuples (stack context, semantic context, predicted alt) but it was slower +# than interpreting and much more complicated. Also required a huge amount of +# memory. The goal is not to create the world's fastest parser anyway. I'd like +# to keep this algorithm simple. By launching multiple threads, we can improve +# the speed of parsing across a large number of files.

      +# +#

      +# There is no strict ordering between the amount of input used by SLL vs LL, +# which makes it really hard to build a cache for full context. Let's say that +# we have input A B C that leads to an SLL conflict with full context X. That +# implies that using X we might only use A B but we could also use A B C D to +# resolve conflict. Input A B C D could predict alternative 1 in one position +# in the input and A B C E could predict alternative 2 in another position in +# input. The conflicting SLL configurations could still be non-unique in the +# full context prediction, which would lead us to requiring more input than the +# original A B C. To make a prediction cache work, we have to track the exact +# input used during the previous prediction. That amounts to a cache that maps +# X to a specific DFA for that context.

      +# +#

      +# Something should be done for left-recursive expression predictions. They are +# likely LL(1) + pred eval. Easier to do the whole SLL unless error and retry +# with full LL thing Sam does.

      +# +#

      +# AVOIDING FULL CONTEXT PREDICTION

      +# +#

      +# We avoid doing full context retry when the outer context is empty, we did not +# dip into the outer context by falling off the end of the decision state rule, +# or when we force SLL mode.

      +# +#

      +# As an example of the not dip into outer context case, consider as super +# constructor calls versus function calls. One grammar might look like +# this:

      +# +#
      +# ctorBody
      +#   : '{' superCall? stat* '}'
      +#   ;
      +# 
      +# +#

      +# Or, you might see something like

      +# +#
      +# stat
      +#   : superCall ';'
      +#   | expression ';'
      +#   | ...
      +#   ;
      +# 
      +# +#

      +# In both cases I believe that no closure operations will dip into the outer +# context. In the first case ctorBody in the worst case will stop at the '}'. +# In the 2nd case it should stop at the ';'. Both cases should stay within the +# entry rule and not dip into the outer context.

      +# +#

      +# PREDICATES

      +# +#

      +# Predicates are always evaluated if present in either SLL or LL both. SLL and +# LL simulation deals with predicates differently. SLL collects predicates as +# it performs closure operations like ANTLR v3 did. It delays predicate +# evaluation until it reaches and accept state. This allows us to cache the SLL +# ATN simulation whereas, if we had evaluated predicates on-the-fly during +# closure, the DFA state configuration sets would be different and we couldn't +# build up a suitable DFA.

      +# +#

      +# When building a DFA accept state during ATN simulation, we evaluate any +# predicates and return the sole semantically valid alternative. If there is +# more than 1 alternative, we report an ambiguity. If there are 0 alternatives, +# we throw an exception. Alternatives without predicates act like they have +# true predicates. The simple way to think about it is to strip away all +# alternatives with false predicates and choose the minimum alternative that +# remains.

      +# +#

      +# When we start in the DFA and reach an accept state that's predicated, we test +# those and return the minimum semantically viable alternative. If no +# alternatives are viable, we throw an exception.

      +# +#

      +# During full LL ATN simulation, closure always evaluates predicates and +# on-the-fly. This is crucial to reducing the configuration set size during +# closure. It hits a landmine when parsing with the Java grammar, for example, +# without this on-the-fly evaluation.

      +# +#

      +# SHARING DFA

      +# +#

      +# All instances of the same parser share the same decision DFAs through a +# static field. Each instance gets its own ATN simulator but they share the +# same {@link #decisionToDFA} field. They also share a +# {@link PredictionContextCache} object that makes sure that all +# {@link PredictionContext} objects are shared among the DFA states. This makes +# a big size difference.

      +# +#

      +# THREAD SAFETY

      +# +#

      +# The {@link ParserATNSimulator} locks on the {@link #decisionToDFA} field when +# it adds a new DFA object to that array. {@link #addDFAEdge} +# locks on the DFA for the current decision when setting the +# {@link DFAState#edges} field. {@link #addDFAState} locks on +# the DFA for the current decision when looking up a DFA state to see if it +# already exists. We must make sure that all requests to add DFA states that +# are equivalent result in the same shared DFA object. This is because lots of +# threads will be trying to update the DFA at once. The +# {@link #addDFAState} method also locks inside the DFA lock +# but this time on the shared context cache when it rebuilds the +# configurations' {@link PredictionContext} objects using cached +# subgraphs/nodes. No other locking occurs, even during DFA simulation. This is +# safe as long as we can guarantee that all threads referencing +# {@code s.edge[t]} get the same physical target {@link DFAState}, or +# {@code null}. Once into the DFA, the DFA simulation does not reference the +# {@link DFA#states} map. It follows the {@link DFAState#edges} field to new +# targets. The DFA simulator will either find {@link DFAState#edges} to be +# {@code null}, to be non-{@code null} and {@code dfa.edges[t]} null, or +# {@code dfa.edges[t]} to be non-null. The +# {@link #addDFAEdge} method could be racing to set the field +# but in either case the DFA simulator works; if {@code null}, and requests ATN +# simulation. It could also race trying to get {@code dfa.edges[t]}, but either +# way it will work because it's not doing a test and set operation.

      +# +#

      +# Starting with SLL then failing to combined SLL/LL (Two-Stage +# Parsing)

      +# +#

      +# Sam pointed out that if SLL does not give a syntax error, then there is no +# point in doing full LL, which is slower. We only have to try LL if we get a +# syntax error. For maximum speed, Sam starts the parser set to pure SLL +# mode with the {@link BailErrorStrategy}:

      +# +#
      +# parser.{@link Parser#getInterpreter() getInterpreter()}.{@link #setPredictionMode setPredictionMode}{@code (}{@link PredictionMode#SLL}{@code )};
      +# parser.{@link Parser#setErrorHandler setErrorHandler}(new {@link BailErrorStrategy}());
      +# 
      +# +#

      +# If it does not get a syntax error, then we're done. If it does get a syntax +# error, we need to retry with the combined SLL/LL strategy.

      +# +#

      +# The reason this works is as follows. If there are no SLL conflicts, then the +# grammar is SLL (at least for that input set). If there is an SLL conflict, +# the full LL analysis must yield a set of viable alternatives which is a +# subset of the alternatives reported by SLL. If the LL set is a singleton, +# then the grammar is LL but not SLL. If the LL set is the same size as the SLL +# set, the decision is SLL. If the LL set has size > 1, then that decision +# is truly ambiguous on the current input. If the LL set is smaller, then the +# SLL conflict resolution might choose an alternative that the full LL would +# rule out as a possibility based upon better context information. If that's +# the case, then the SLL parse will definitely get an error because the full LL +# analysis says it's not viable. If SLL conflict resolution chooses an +# alternative within the LL set, them both SLL and LL would choose the same +# alternative because they both choose the minimum of multiple conflicting +# alternatives.

      +# +#

      +# Let's say we have a set of SLL conflicting alternatives {@code {1, 2, 3}} and +# a smaller LL set called s. If s is {@code {2, 3}}, then SLL +# parsing will get an error because SLL will pursue alternative 1. If +# s is {@code {1, 2}} or {@code {1, 3}} then both SLL and LL will +# choose the same alternative because alternative one is the minimum of either +# set. If s is {@code {2}} or {@code {3}} then SLL will get a syntax +# error. If s is {@code {1}} then SLL will succeed.

      +# +#

      +# Of course, if the input is invalid, then we will get an error for sure in +# both SLL and LL parsing. Erroneous input will therefore require 2 passes over +# the input.

      +# +import sys +from antlr4 import DFA +from antlr4.PredictionContext import PredictionContextCache, PredictionContext, SingletonPredictionContext, \ + PredictionContextFromRuleContext +from antlr4.BufferedTokenStream import TokenStream +from antlr4.Parser import Parser +from antlr4.ParserRuleContext import ParserRuleContext +from antlr4.RuleContext import RuleContext +from antlr4.Token import Token +from antlr4.Utils import str_list +from antlr4.atn.ATN import ATN +from antlr4.atn.ATNConfig import ATNConfig +from antlr4.atn.ATNConfigSet import ATNConfigSet +from antlr4.atn.ATNSimulator import ATNSimulator +from antlr4.atn.ATNState import StarLoopEntryState, DecisionState, RuleStopState, ATNState +from antlr4.atn.PredictionMode import PredictionMode +from antlr4.atn.SemanticContext import SemanticContext, AND, andContext, orContext +from antlr4.atn.Transition import Transition, RuleTransition, ActionTransition, PrecedencePredicateTransition, \ + PredicateTransition, AtomTransition, SetTransition, NotSetTransition +from antlr4.dfa.DFAState import DFAState, PredPrediction +from antlr4.error.Errors import NoViableAltException + + +class ParserATNSimulator(ATNSimulator): + __slots__ = ( + 'parser', 'decisionToDFA', 'predictionMode', '_input', '_startIndex', + '_outerContext', '_dfa', 'mergeCache' + ) + + debug = False + debug_list_atn_decisions = False + dfa_debug = False + retry_debug = False + + + def __init__(self, parser:Parser, atn:ATN, decisionToDFA:list, sharedContextCache:PredictionContextCache): + super().__init__(atn, sharedContextCache) + self.parser = parser + self.decisionToDFA = decisionToDFA + # SLL, LL, or LL + exact ambig detection?# + self.predictionMode = PredictionMode.LL + # LAME globals to avoid parameters!!!!! I need these down deep in predTransition + self._input = None + self._startIndex = 0 + self._outerContext = None + self._dfa = None + # Each prediction operation uses a cache for merge of prediction contexts. + # Don't keep around as it wastes huge amounts of memory. DoubleKeyMap + # isn't synchronized but we're ok since two threads shouldn't reuse same + # parser/atnsim object because it can only handle one input at a time. + # This maps graphs a and b to merged result c. (a,b)→c. We can avoid + # the merge if we ever see a and b again. Note that (b,a)→c should + # also be examined during cache lookup. + # + self.mergeCache = None + + + def reset(self): + pass + + def adaptivePredict(self, input:TokenStream, decision:int, outerContext:ParserRuleContext): + if ParserATNSimulator.debug or ParserATNSimulator.debug_list_atn_decisions: + print("adaptivePredict decision " + str(decision) + + " exec LA(1)==" + self.getLookaheadName(input) + + " line " + str(input.LT(1).line) + ":" + + str(input.LT(1).column)) + self._input = input + self._startIndex = input.index + self._outerContext = outerContext + + dfa = self.decisionToDFA[decision] + self._dfa = dfa + m = input.mark() + index = input.index + + # Now we are certain to have a specific decision's DFA + # But, do we still need an initial state? + try: + if dfa.precedenceDfa: + # the start state for a precedence DFA depends on the current + # parser precedence, and is provided by a DFA method. + s0 = dfa.getPrecedenceStartState(self.parser.getPrecedence()) + else: + # the start state for a "regular" DFA is just s0 + s0 = dfa.s0 + + if s0 is None: + if outerContext is None: + outerContext = ParserRuleContext.EMPTY + if ParserATNSimulator.debug or ParserATNSimulator.debug_list_atn_decisions: + print("predictATN decision " + str(dfa.decision) + + " exec LA(1)==" + self.getLookaheadName(input) + + ", outerContext=" + outerContext.toString(self.parser.literalNames, None)) + + fullCtx = False + s0_closure = self.computeStartState(dfa.atnStartState, ParserRuleContext.EMPTY, fullCtx) + + if dfa.precedenceDfa: + # If this is a precedence DFA, we use applyPrecedenceFilter + # to convert the computed start state to a precedence start + # state. We then use DFA.setPrecedenceStartState to set the + # appropriate start state for the precedence level rather + # than simply setting DFA.s0. + # + dfa.s0.configs = s0_closure # not used for prediction but useful to know start configs anyway + s0_closure = self.applyPrecedenceFilter(s0_closure) + s0 = self.addDFAState(dfa, DFAState(configs=s0_closure)) + dfa.setPrecedenceStartState(self.parser.getPrecedence(), s0) + else: + s0 = self.addDFAState(dfa, DFAState(configs=s0_closure)) + dfa.s0 = s0 + + alt = self.execATN(dfa, s0, input, index, outerContext) + if ParserATNSimulator.debug: + print("DFA after predictATN: " + dfa.toString(self.parser.literalNames)) + return alt + finally: + self._dfa = None + self.mergeCache = None # wack cache after each prediction + input.seek(index) + input.release(m) + + # Performs ATN simulation to compute a predicted alternative based + # upon the remaining input, but also updates the DFA cache to avoid + # having to traverse the ATN again for the same input sequence. + + # There are some key conditions we're looking for after computing a new + # set of ATN configs (proposed DFA state): + # if the set is empty, there is no viable alternative for current symbol + # does the state uniquely predict an alternative? + # does the state have a conflict that would prevent us from + # putting it on the work list? + + # We also have some key operations to do: + # add an edge from previous DFA state to potentially new DFA state, D, + # upon current symbol but only if adding to work list, which means in all + # cases except no viable alternative (and possibly non-greedy decisions?) + # collecting predicates and adding semantic context to DFA accept states + # adding rule context to context-sensitive DFA accept states + # consuming an input symbol + # reporting a conflict + # reporting an ambiguity + # reporting a context sensitivity + # reporting insufficient predicates + + # cover these cases: + # dead end + # single alt + # single alt + preds + # conflict + # conflict + preds + # + def execATN(self, dfa:DFA, s0:DFAState, input:TokenStream, startIndex:int, outerContext:ParserRuleContext ): + if ParserATNSimulator.debug or ParserATNSimulator.debug_list_atn_decisions: + print("execATN decision " + str(dfa.decision) + + " exec LA(1)==" + self.getLookaheadName(input) + + " line " + str(input.LT(1).line) + ":" + str(input.LT(1).column)) + + previousD = s0 + + if ParserATNSimulator.debug: + print("s0 = " + str(s0)) + + t = input.LA(1) + + while True: # while more work + D = self.getExistingTargetState(previousD, t) + if D is None: + D = self.computeTargetState(dfa, previousD, t) + if D is self.ERROR: + # if any configs in previous dipped into outer context, that + # means that input up to t actually finished entry rule + # at least for SLL decision. Full LL doesn't dip into outer + # so don't need special case. + # We will get an error no matter what so delay until after + # decision; better error message. Also, no reachable target + # ATN states in SLL implies LL will also get nowhere. + # If conflict in states that dip out, choose min since we + # will get error no matter what. + e = self.noViableAlt(input, outerContext, previousD.configs, startIndex) + input.seek(startIndex) + alt = self.getSynValidOrSemInvalidAltThatFinishedDecisionEntryRule(previousD.configs, outerContext) + if alt!=ATN.INVALID_ALT_NUMBER: + return alt + raise e + + if D.requiresFullContext and self.predictionMode != PredictionMode.SLL: + # IF PREDS, MIGHT RESOLVE TO SINGLE ALT => SLL (or syntax error) + conflictingAlts = D.configs.conflictingAlts + if D.predicates is not None: + if ParserATNSimulator.debug: + print("DFA state has preds in DFA sim LL failover") + conflictIndex = input.index + if conflictIndex != startIndex: + input.seek(startIndex) + + conflictingAlts = self.evalSemanticContext(D.predicates, outerContext, True) + if len(conflictingAlts)==1: + if ParserATNSimulator.debug: + print("Full LL avoided") + return min(conflictingAlts) + + if conflictIndex != startIndex: + # restore the index so reporting the fallback to full + # context occurs with the index at the correct spot + input.seek(conflictIndex) + + if ParserATNSimulator.dfa_debug: + print("ctx sensitive state " + str(outerContext) +" in " + str(D)) + fullCtx = True + s0_closure = self.computeStartState(dfa.atnStartState, outerContext, fullCtx) + self.reportAttemptingFullContext(dfa, conflictingAlts, D.configs, startIndex, input.index) + alt = self.execATNWithFullContext(dfa, D, s0_closure, input, startIndex, outerContext) + return alt + + if D.isAcceptState: + if D.predicates is None: + return D.prediction + + stopIndex = input.index + input.seek(startIndex) + alts = self.evalSemanticContext(D.predicates, outerContext, True) + if len(alts)==0: + raise self.noViableAlt(input, outerContext, D.configs, startIndex) + elif len(alts)==1: + return min(alts) + else: + # report ambiguity after predicate evaluation to make sure the correct + # set of ambig alts is reported. + self.reportAmbiguity(dfa, D, startIndex, stopIndex, False, alts, D.configs) + return min(alts) + + previousD = D + + if t != Token.EOF: + input.consume() + t = input.LA(1) + + # + # Get an existing target state for an edge in the DFA. If the target state + # for the edge has not yet been computed or is otherwise not available, + # this method returns {@code null}. + # + # @param previousD The current DFA state + # @param t The next input symbol + # @return The existing target DFA state for the given input symbol + # {@code t}, or {@code null} if the target state for this edge is not + # already cached + # + def getExistingTargetState(self, previousD:DFAState, t:int): + edges = previousD.edges + if edges is None or t + 1 < 0 or t + 1 >= len(edges): + return None + else: + return edges[t + 1] + + # + # Compute a target state for an edge in the DFA, and attempt to add the + # computed state and corresponding edge to the DFA. + # + # @param dfa The DFA + # @param previousD The current DFA state + # @param t The next input symbol + # + # @return The computed target DFA state for the given input symbol + # {@code t}. If {@code t} does not lead to a valid DFA state, this method + # returns {@link #ERROR}. + # + def computeTargetState(self, dfa:DFA, previousD:DFAState, t:int): + reach = self.computeReachSet(previousD.configs, t, False) + if reach is None: + self.addDFAEdge(dfa, previousD, t, self.ERROR) + return self.ERROR + + # create new target state; we'll add to DFA after it's complete + D = DFAState(configs=reach) + + predictedAlt = self.getUniqueAlt(reach) + + if ParserATNSimulator.debug: + altSubSets = PredictionMode.getConflictingAltSubsets(reach) + print("SLL altSubSets=" + str(altSubSets) + ", configs=" + str(reach) + + ", predict=" + str(predictedAlt) + ", allSubsetsConflict=" + + str(PredictionMode.allSubsetsConflict(altSubSets)) + ", conflictingAlts=" + + str(self.getConflictingAlts(reach))) + + if predictedAlt!=ATN.INVALID_ALT_NUMBER: + # NO CONFLICT, UNIQUELY PREDICTED ALT + D.isAcceptState = True + D.configs.uniqueAlt = predictedAlt + D.prediction = predictedAlt + elif PredictionMode.hasSLLConflictTerminatingPrediction(self.predictionMode, reach): + # MORE THAN ONE VIABLE ALTERNATIVE + D.configs.conflictingAlts = self.getConflictingAlts(reach) + D.requiresFullContext = True + # in SLL-only mode, we will stop at this state and return the minimum alt + D.isAcceptState = True + D.prediction = min(D.configs.conflictingAlts) + + if D.isAcceptState and D.configs.hasSemanticContext: + self.predicateDFAState(D, self.atn.getDecisionState(dfa.decision)) + if D.predicates is not None: + D.prediction = ATN.INVALID_ALT_NUMBER + + # all adds to dfa are done after we've created full D state + D = self.addDFAEdge(dfa, previousD, t, D) + return D + + def predicateDFAState(self, dfaState:DFAState, decisionState:DecisionState): + # We need to test all predicates, even in DFA states that + # uniquely predict alternative. + nalts = len(decisionState.transitions) + # Update DFA so reach becomes accept state with (predicate,alt) + # pairs if preds found for conflicting alts + altsToCollectPredsFrom = self.getConflictingAltsOrUniqueAlt(dfaState.configs) + altToPred = self.getPredsForAmbigAlts(altsToCollectPredsFrom, dfaState.configs, nalts) + if altToPred is not None: + dfaState.predicates = self.getPredicatePredictions(altsToCollectPredsFrom, altToPred) + dfaState.prediction = ATN.INVALID_ALT_NUMBER # make sure we use preds + else: + # There are preds in configs but they might go away + # when OR'd together like {p}? || NONE == NONE. If neither + # alt has preds, resolve to min alt + dfaState.prediction = min(altsToCollectPredsFrom) + + # comes back with reach.uniqueAlt set to a valid alt + def execATNWithFullContext(self, dfa:DFA, D:DFAState, # how far we got before failing over + s0:ATNConfigSet, + input:TokenStream, + startIndex:int, + outerContext:ParserRuleContext): + if ParserATNSimulator.debug or ParserATNSimulator.debug_list_atn_decisions: + print("execATNWithFullContext", str(s0)) + fullCtx = True + foundExactAmbig = False + reach = None + previous = s0 + input.seek(startIndex) + t = input.LA(1) + predictedAlt = -1 + while (True): # while more work + reach = self.computeReachSet(previous, t, fullCtx) + if reach is None: + # if any configs in previous dipped into outer context, that + # means that input up to t actually finished entry rule + # at least for LL decision. Full LL doesn't dip into outer + # so don't need special case. + # We will get an error no matter what so delay until after + # decision; better error message. Also, no reachable target + # ATN states in SLL implies LL will also get nowhere. + # If conflict in states that dip out, choose min since we + # will get error no matter what. + e = self.noViableAlt(input, outerContext, previous, startIndex) + input.seek(startIndex) + alt = self.getSynValidOrSemInvalidAltThatFinishedDecisionEntryRule(previous, outerContext) + if alt!=ATN.INVALID_ALT_NUMBER: + return alt + else: + raise e + + altSubSets = PredictionMode.getConflictingAltSubsets(reach) + if ParserATNSimulator.debug: + print("LL altSubSets=" + str(altSubSets) + ", predict=" + + str(PredictionMode.getUniqueAlt(altSubSets)) + ", resolvesToJustOneViableAlt=" + + str(PredictionMode.resolvesToJustOneViableAlt(altSubSets))) + + reach.uniqueAlt = self.getUniqueAlt(reach) + # unique prediction? + if reach.uniqueAlt!=ATN.INVALID_ALT_NUMBER: + predictedAlt = reach.uniqueAlt + break + elif self.predictionMode is not PredictionMode.LL_EXACT_AMBIG_DETECTION: + predictedAlt = PredictionMode.resolvesToJustOneViableAlt(altSubSets) + if predictedAlt != ATN.INVALID_ALT_NUMBER: + break + else: + # In exact ambiguity mode, we never try to terminate early. + # Just keeps scarfing until we know what the conflict is + if PredictionMode.allSubsetsConflict(altSubSets) and PredictionMode.allSubsetsEqual(altSubSets): + foundExactAmbig = True + predictedAlt = PredictionMode.getSingleViableAlt(altSubSets) + break + # else there are multiple non-conflicting subsets or + # we're not sure what the ambiguity is yet. + # So, keep going. + + previous = reach + if t != Token.EOF: + input.consume() + t = input.LA(1) + + # If the configuration set uniquely predicts an alternative, + # without conflict, then we know that it's a full LL decision + # not SLL. + if reach.uniqueAlt != ATN.INVALID_ALT_NUMBER : + self.reportContextSensitivity(dfa, predictedAlt, reach, startIndex, input.index) + return predictedAlt + + # We do not check predicates here because we have checked them + # on-the-fly when doing full context prediction. + + # + # In non-exact ambiguity detection mode, we might actually be able to + # detect an exact ambiguity, but I'm not going to spend the cycles + # needed to check. We only emit ambiguity warnings in exact ambiguity + # mode. + # + # For example, we might know that we have conflicting configurations. + # But, that does not mean that there is no way forward without a + # conflict. It's possible to have nonconflicting alt subsets as in: + + # altSubSets=[{1, 2}, {1, 2}, {1}, {1, 2}] + + # from + # + # [(17,1,[5 $]), (13,1,[5 10 $]), (21,1,[5 10 $]), (11,1,[$]), + # (13,2,[5 10 $]), (21,2,[5 10 $]), (11,2,[$])] + # + # In this case, (17,1,[5 $]) indicates there is some next sequence that + # would resolve this without conflict to alternative 1. Any other viable + # next sequence, however, is associated with a conflict. We stop + # looking for input because no amount of further lookahead will alter + # the fact that we should predict alternative 1. We just can't say for + # sure that there is an ambiguity without looking further. + + self.reportAmbiguity(dfa, D, startIndex, input.index, foundExactAmbig, None, reach) + + return predictedAlt + + def computeReachSet(self, closure:ATNConfigSet, t:int, fullCtx:bool): + if ParserATNSimulator.debug: + print("in computeReachSet, starting closure: " + str(closure)) + + if self.mergeCache is None: + self.mergeCache = dict() + + intermediate = ATNConfigSet(fullCtx) + + # Configurations already in a rule stop state indicate reaching the end + # of the decision rule (local context) or end of the start rule (full + # context). Once reached, these configurations are never updated by a + # closure operation, so they are handled separately for the performance + # advantage of having a smaller intermediate set when calling closure. + # + # For full-context reach operations, separate handling is required to + # ensure that the alternative matching the longest overall sequence is + # chosen when multiple such configurations can match the input. + + skippedStopStates = None + + # First figure out where we can reach on input t + for c in closure: + if ParserATNSimulator.debug: + print("testing " + self.getTokenName(t) + " at " + str(c)) + + if isinstance(c.state, RuleStopState): + if fullCtx or t == Token.EOF: + if skippedStopStates is None: + skippedStopStates = list() + skippedStopStates.append(c) + continue + + for trans in c.state.transitions: + target = self.getReachableTarget(trans, t) + if target is not None: + intermediate.add(ATNConfig(state=target, config=c), self.mergeCache) + + # Now figure out where the reach operation can take us... + + reach = None + + # This block optimizes the reach operation for intermediate sets which + # trivially indicate a termination state for the overall + # adaptivePredict operation. + # + # The conditions assume that intermediate + # contains all configurations relevant to the reach set, but this + # condition is not true when one or more configurations have been + # withheld in skippedStopStates, or when the current symbol is EOF. + # + if skippedStopStates is None and t!=Token.EOF: + if len(intermediate)==1: + # Don't pursue the closure if there is just one state. + # It can only have one alternative; just add to result + # Also don't pursue the closure if there is unique alternative + # among the configurations. + reach = intermediate + elif self.getUniqueAlt(intermediate)!=ATN.INVALID_ALT_NUMBER: + # Also don't pursue the closure if there is unique alternative + # among the configurations. + reach = intermediate + + # If the reach set could not be trivially determined, perform a closure + # operation on the intermediate set to compute its initial value. + # + if reach is None: + reach = ATNConfigSet(fullCtx) + closureBusy = set() + treatEofAsEpsilon = t == Token.EOF + for c in intermediate: + self.closure(c, reach, closureBusy, False, fullCtx, treatEofAsEpsilon) + + if t == Token.EOF: + # After consuming EOF no additional input is possible, so we are + # only interested in configurations which reached the end of the + # decision rule (local context) or end of the start rule (full + # context). Update reach to contain only these configurations. This + # handles both explicit EOF transitions in the grammar and implicit + # EOF transitions following the end of the decision or start rule. + # + # When reach==intermediate, no closure operation was performed. In + # this case, removeAllConfigsNotInRuleStopState needs to check for + # reachable rule stop states as well as configurations already in + # a rule stop state. + # + # This is handled before the configurations in skippedStopStates, + # because any configurations potentially added from that list are + # already guaranteed to meet this condition whether or not it's + # required. + # + reach = self.removeAllConfigsNotInRuleStopState(reach, reach is intermediate) + + # If skippedStopStates is not null, then it contains at least one + # configuration. For full-context reach operations, these + # configurations reached the end of the start rule, in which case we + # only add them back to reach if no configuration during the current + # closure operation reached such a state. This ensures adaptivePredict + # chooses an alternative matching the longest overall sequence when + # multiple alternatives are viable. + # + if skippedStopStates is not None and ( (not fullCtx) or (not PredictionMode.hasConfigInRuleStopState(reach))): + for c in skippedStopStates: + reach.add(c, self.mergeCache) + if len(reach)==0: + return None + else: + return reach + + # + # Return a configuration set containing only the configurations from + # {@code configs} which are in a {@link RuleStopState}. If all + # configurations in {@code configs} are already in a rule stop state, this + # method simply returns {@code configs}. + # + #

      When {@code lookToEndOfRule} is true, this method uses + # {@link ATN#nextTokens} for each configuration in {@code configs} which is + # not already in a rule stop state to see if a rule stop state is reachable + # from the configuration via epsilon-only transitions.

      + # + # @param configs the configuration set to update + # @param lookToEndOfRule when true, this method checks for rule stop states + # reachable by epsilon-only transitions from each configuration in + # {@code configs}. + # + # @return {@code configs} if all configurations in {@code configs} are in a + # rule stop state, otherwise return a new configuration set containing only + # the configurations from {@code configs} which are in a rule stop state + # + def removeAllConfigsNotInRuleStopState(self, configs:ATNConfigSet, lookToEndOfRule:bool): + if PredictionMode.allConfigsInRuleStopStates(configs): + return configs + result = ATNConfigSet(configs.fullCtx) + for config in configs: + if isinstance(config.state, RuleStopState): + result.add(config, self.mergeCache) + continue + if lookToEndOfRule and config.state.epsilonOnlyTransitions: + nextTokens = self.atn.nextTokens(config.state) + if Token.EPSILON in nextTokens: + endOfRuleState = self.atn.ruleToStopState[config.state.ruleIndex] + result.add(ATNConfig(state=endOfRuleState, config=config), self.mergeCache) + return result + + def computeStartState(self, p:ATNState, ctx:RuleContext, fullCtx:bool): + # always at least the implicit call to start rule + initialContext = PredictionContextFromRuleContext(self.atn, ctx) + configs = ATNConfigSet(fullCtx) + + for i in range(0, len(p.transitions)): + target = p.transitions[i].target + c = ATNConfig(target, i+1, initialContext) + closureBusy = set() + self.closure(c, configs, closureBusy, True, fullCtx, False) + return configs + + # + # This method transforms the start state computed by + # {@link #computeStartState} to the special start state used by a + # precedence DFA for a particular precedence value. The transformation + # process applies the following changes to the start state's configuration + # set. + # + #
        + #
      1. Evaluate the precedence predicates for each configuration using + # {@link SemanticContext#evalPrecedence}.
      2. + #
      3. Remove all configurations which predict an alternative greater than + # 1, for which another configuration that predicts alternative 1 is in the + # same ATN state with the same prediction context. This transformation is + # valid for the following reasons: + #
          + #
        • The closure block cannot contain any epsilon transitions which bypass + # the body of the closure, so all states reachable via alternative 1 are + # part of the precedence alternatives of the transformed left-recursive + # rule.
        • + #
        • The "primary" portion of a left recursive rule cannot contain an + # epsilon transition, so the only way an alternative other than 1 can exist + # in a state that is also reachable via alternative 1 is by nesting calls + # to the left-recursive rule, with the outer calls not being at the + # preferred precedence level.
        • + #
        + #
      4. + #
      + # + #

      + # The prediction context must be considered by this filter to address + # situations like the following. + #

      + # + #
      +    # grammar TA;
      +    # prog: statement* EOF;
      +    # statement: letterA | statement letterA 'b' ;
      +    # letterA: 'a';
      +    # 
      + #
      + #

      + # If the above grammar, the ATN state immediately before the token + # reference {@code 'a'} in {@code letterA} is reachable from the left edge + # of both the primary and closure blocks of the left-recursive rule + # {@code statement}. The prediction context associated with each of these + # configurations distinguishes between them, and prevents the alternative + # which stepped out to {@code prog} (and then back in to {@code statement} + # from being eliminated by the filter. + #

      + # + # @param configs The configuration set computed by + # {@link #computeStartState} as the start state for the DFA. + # @return The transformed configuration set representing the start state + # for a precedence DFA at a particular precedence level (determined by + # calling {@link Parser#getPrecedence}). + # + def applyPrecedenceFilter(self, configs:ATNConfigSet): + statesFromAlt1 = dict() + configSet = ATNConfigSet(configs.fullCtx) + for config in configs: + # handle alt 1 first + if config.alt != 1: + continue + updatedContext = config.semanticContext.evalPrecedence(self.parser, self._outerContext) + if updatedContext is None: + # the configuration was eliminated + continue + + statesFromAlt1[config.state.stateNumber] = config.context + if updatedContext is not config.semanticContext: + configSet.add(ATNConfig(config=config, semantic=updatedContext), self.mergeCache) + else: + configSet.add(config, self.mergeCache) + + for config in configs: + if config.alt == 1: + # already handled + continue + + # In the future, this elimination step could be updated to also + # filter the prediction context for alternatives predicting alt>1 + # (basically a graph subtraction algorithm). + # + if not config.precedenceFilterSuppressed: + context = statesFromAlt1.get(config.state.stateNumber, None) + if context==config.context: + # eliminated + continue + + configSet.add(config, self.mergeCache) + + return configSet + + def getReachableTarget(self, trans:Transition, ttype:int): + if trans.matches(ttype, 0, self.atn.maxTokenType): + return trans.target + else: + return None + + def getPredsForAmbigAlts(self, ambigAlts:set, configs:ATNConfigSet, nalts:int): + # REACH=[1|1|[]|0:0, 1|2|[]|0:1] + # altToPred starts as an array of all null contexts. The entry at index i + # corresponds to alternative i. altToPred[i] may have one of three values: + # 1. null: no ATNConfig c is found such that c.alt==i + # 2. SemanticContext.NONE: At least one ATNConfig c exists such that + # c.alt==i and c.semanticContext==SemanticContext.NONE. In other words, + # alt i has at least one unpredicated config. + # 3. Non-NONE Semantic Context: There exists at least one, and for all + # ATNConfig c such that c.alt==i, c.semanticContext!=SemanticContext.NONE. + # + # From this, it is clear that NONE||anything==NONE. + # + altToPred = [None] * (nalts + 1) + for c in configs: + if c.alt in ambigAlts: + altToPred[c.alt] = orContext(altToPred[c.alt], c.semanticContext) + + nPredAlts = 0 + for i in range(1, nalts+1): + if altToPred[i] is None: + altToPred[i] = SemanticContext.NONE + elif altToPred[i] is not SemanticContext.NONE: + nPredAlts += 1 + + # nonambig alts are null in altToPred + if nPredAlts==0: + altToPred = None + if ParserATNSimulator.debug: + print("getPredsForAmbigAlts result " + str_list(altToPred)) + return altToPred + + def getPredicatePredictions(self, ambigAlts:set, altToPred:list): + pairs = [] + containsPredicate = False + for i in range(1, len(altToPred)): + pred = altToPred[i] + # unpredicated is indicated by SemanticContext.NONE + if ambigAlts is not None and i in ambigAlts: + pairs.append(PredPrediction(pred, i)) + if pred is not SemanticContext.NONE: + containsPredicate = True + + if not containsPredicate: + return None + + return pairs + + # + # This method is used to improve the localization of error messages by + # choosing an alternative rather than throwing a + # {@link NoViableAltException} in particular prediction scenarios where the + # {@link #ERROR} state was reached during ATN simulation. + # + #

      + # The default implementation of this method uses the following + # algorithm to identify an ATN configuration which successfully parsed the + # decision entry rule. Choosing such an alternative ensures that the + # {@link ParserRuleContext} returned by the calling rule will be complete + # and valid, and the syntax error will be reported later at a more + # localized location.

      + # + #
        + #
      • If a syntactically valid path or paths reach the end of the decision rule and + # they are semantically valid if predicated, return the min associated alt.
      • + #
      • Else, if a semantically invalid but syntactically valid path exist + # or paths exist, return the minimum associated alt. + #
      • + #
      • Otherwise, return {@link ATN#INVALID_ALT_NUMBER}.
      • + #
      + # + #

      + # In some scenarios, the algorithm described above could predict an + # alternative which will result in a {@link FailedPredicateException} in + # the parser. Specifically, this could occur if the only configuration + # capable of successfully parsing to the end of the decision rule is + # blocked by a semantic predicate. By choosing this alternative within + # {@link #adaptivePredict} instead of throwing a + # {@link NoViableAltException}, the resulting + # {@link FailedPredicateException} in the parser will identify the specific + # predicate which is preventing the parser from successfully parsing the + # decision rule, which helps developers identify and correct logic errors + # in semantic predicates. + #

      + # + # @param configs The ATN configurations which were valid immediately before + # the {@link #ERROR} state was reached + # @param outerContext The is the \gamma_0 initial parser context from the paper + # or the parser stack at the instant before prediction commences. + # + # @return The value to return from {@link #adaptivePredict}, or + # {@link ATN#INVALID_ALT_NUMBER} if a suitable alternative was not + # identified and {@link #adaptivePredict} should report an error instead. + # + def getSynValidOrSemInvalidAltThatFinishedDecisionEntryRule(self, configs:ATNConfigSet, outerContext:ParserRuleContext): + semValidConfigs, semInvalidConfigs = self.splitAccordingToSemanticValidity(configs, outerContext) + alt = self.getAltThatFinishedDecisionEntryRule(semValidConfigs) + if alt!=ATN.INVALID_ALT_NUMBER: # semantically/syntactically viable path exists + return alt + # Is there a syntactically valid path with a failed pred? + if len(semInvalidConfigs)>0: + alt = self.getAltThatFinishedDecisionEntryRule(semInvalidConfigs) + if alt!=ATN.INVALID_ALT_NUMBER: # syntactically viable path exists + return alt + return ATN.INVALID_ALT_NUMBER + + def getAltThatFinishedDecisionEntryRule(self, configs:ATNConfigSet): + alts = set() + for c in configs: + if c.reachesIntoOuterContext>0 or (isinstance(c.state, RuleStopState) and c.context.hasEmptyPath() ): + alts.add(c.alt) + if len(alts)==0: + return ATN.INVALID_ALT_NUMBER + else: + return min(alts) + + # Walk the list of configurations and split them according to + # those that have preds evaluating to true/false. If no pred, assume + # true pred and include in succeeded set. Returns Pair of sets. + # + # Create a new set so as not to alter the incoming parameter. + # + # Assumption: the input stream has been restored to the starting point + # prediction, which is where predicates need to evaluate. + # + def splitAccordingToSemanticValidity(self, configs:ATNConfigSet, outerContext:ParserRuleContext): + succeeded = ATNConfigSet(configs.fullCtx) + failed = ATNConfigSet(configs.fullCtx) + for c in configs: + if c.semanticContext is not SemanticContext.NONE: + predicateEvaluationResult = c.semanticContext.eval(self.parser, outerContext) + if predicateEvaluationResult: + succeeded.add(c) + else: + failed.add(c) + else: + succeeded.add(c) + return (succeeded,failed) + + # Look through a list of predicate/alt pairs, returning alts for the + # pairs that win. A {@code NONE} predicate indicates an alt containing an + # unpredicated config which behaves as "always true." If !complete + # then we stop at the first predicate that evaluates to true. This + # includes pairs with null predicates. + # + def evalSemanticContext(self, predPredictions:list, outerContext:ParserRuleContext, complete:bool): + predictions = set() + for pair in predPredictions: + if pair.pred is SemanticContext.NONE: + predictions.add(pair.alt) + if not complete: + break + continue + predicateEvaluationResult = pair.pred.eval(self.parser, outerContext) + if ParserATNSimulator.debug or ParserATNSimulator.dfa_debug: + print("eval pred " + str(pair) + "=" + str(predicateEvaluationResult)) + + if predicateEvaluationResult: + if ParserATNSimulator.debug or ParserATNSimulator.dfa_debug: + print("PREDICT " + str(pair.alt)) + predictions.add(pair.alt) + if not complete: + break + return predictions + + + # TODO: If we are doing predicates, there is no point in pursuing + # closure operations if we reach a DFA state that uniquely predicts + # alternative. We will not be caching that DFA state and it is a + # waste to pursue the closure. Might have to advance when we do + # ambig detection thought :( + # + + def closure(self, config:ATNConfig, configs:ATNConfigSet, closureBusy:set, collectPredicates:bool, fullCtx:bool, treatEofAsEpsilon:bool): + initialDepth = 0 + self.closureCheckingStopState(config, configs, closureBusy, collectPredicates, + fullCtx, initialDepth, treatEofAsEpsilon) + + + def closureCheckingStopState(self, config:ATNConfig, configs:ATNConfigSet, closureBusy:set, collectPredicates:bool, fullCtx:bool, depth:int, treatEofAsEpsilon:bool): + if ParserATNSimulator.debug: + print("closure(" + str(config) + ")") + + if isinstance(config.state, RuleStopState): + # We hit rule end. If we have context info, use it + # run thru all possible stack tops in ctx + if not config.context.isEmpty(): + for i in range(0, len(config.context)): + state = config.context.getReturnState(i) + if state is PredictionContext.EMPTY_RETURN_STATE: + if fullCtx: + configs.add(ATNConfig(state=config.state, context=PredictionContext.EMPTY, config=config), self.mergeCache) + continue + else: + # we have no context info, just chase follow links (if greedy) + if ParserATNSimulator.debug: + print("FALLING off rule " + self.getRuleName(config.state.ruleIndex)) + self.closure_(config, configs, closureBusy, collectPredicates, + fullCtx, depth, treatEofAsEpsilon) + continue + returnState = self.atn.states[state] + newContext = config.context.getParent(i) # "pop" return state + c = ATNConfig(state=returnState, alt=config.alt, context=newContext, semantic=config.semanticContext) + # While we have context to pop back from, we may have + # gotten that context AFTER having falling off a rule. + # Make sure we track that we are now out of context. + c.reachesIntoOuterContext = config.reachesIntoOuterContext + self.closureCheckingStopState(c, configs, closureBusy, collectPredicates, fullCtx, depth - 1, treatEofAsEpsilon) + return + elif fullCtx: + # reached end of start rule + configs.add(config, self.mergeCache) + return + else: + # else if we have no context info, just chase follow links (if greedy) + if ParserATNSimulator.debug: + print("FALLING off rule " + self.getRuleName(config.state.ruleIndex)) + + self.closure_(config, configs, closureBusy, collectPredicates, fullCtx, depth, treatEofAsEpsilon) + + # Do the actual work of walking epsilon edges# + def closure_(self, config:ATNConfig, configs:ATNConfigSet, closureBusy:set, collectPredicates:bool, fullCtx:bool, depth:int, treatEofAsEpsilon:bool): + p = config.state + # optimization + if not p.epsilonOnlyTransitions: + configs.add(config, self.mergeCache) + # make sure to not return here, because EOF transitions can act as + # both epsilon transitions and non-epsilon transitions. + + first = True + for t in p.transitions: + if first: + first = False + if self.canDropLoopEntryEdgeInLeftRecursiveRule(config): + continue + + continueCollecting = collectPredicates and not isinstance(t, ActionTransition) + c = self.getEpsilonTarget(config, t, continueCollecting, depth == 0, fullCtx, treatEofAsEpsilon) + if c is not None: + newDepth = depth + if isinstance( config.state, RuleStopState): + # target fell off end of rule; mark resulting c as having dipped into outer context + # We can't get here if incoming config was rule stop and we had context + # track how far we dip into outer context. Might + # come in handy and we avoid evaluating context dependent + # preds if this is > 0. + if self._dfa is not None and self._dfa.precedenceDfa: + if t.outermostPrecedenceReturn == self._dfa.atnStartState.ruleIndex: + c.precedenceFilterSuppressed = True + c.reachesIntoOuterContext += 1 + if c in closureBusy: + # avoid infinite recursion for right-recursive rules + continue + closureBusy.add(c) + configs.dipsIntoOuterContext = True # TODO: can remove? only care when we add to set per middle of this method + newDepth -= 1 + if ParserATNSimulator.debug: + print("dips into outer ctx: " + str(c)) + else: + if not t.isEpsilon: + if c in closureBusy: + # avoid infinite recursion for EOF* and EOF+ + continue + closureBusy.add(c) + if isinstance(t, RuleTransition): + # latch when newDepth goes negative - once we step out of the entry context we can't return + if newDepth >= 0: + newDepth += 1 + + self.closureCheckingStopState(c, configs, closureBusy, continueCollecting, fullCtx, newDepth, treatEofAsEpsilon) + + + + # Implements first-edge (loop entry) elimination as an optimization + # during closure operations. See antlr/antlr4#1398. + # + # The optimization is to avoid adding the loop entry config when + # the exit path can only lead back to the same + # StarLoopEntryState after popping context at the rule end state + # (traversing only epsilon edges, so we're still in closure, in + # this same rule). + # + # We need to detect any state that can reach loop entry on + # epsilon w/o exiting rule. We don't have to look at FOLLOW + # links, just ensure that all stack tops for config refer to key + # states in LR rule. + # + # To verify we are in the right situation we must first check + # closure is at a StarLoopEntryState generated during LR removal. + # Then we check that each stack top of context is a return state + # from one of these cases: + # + # 1. 'not' expr, '(' type ')' expr. The return state points at loop entry state + # 2. expr op expr. The return state is the block end of internal block of (...)* + # 3. 'between' expr 'and' expr. The return state of 2nd expr reference. + # That state points at block end of internal block of (...)*. + # 4. expr '?' expr ':' expr. The return state points at block end, + # which points at loop entry state. + # + # If any is true for each stack top, then closure does not add a + # config to the current config set for edge[0], the loop entry branch. + # + # Conditions fail if any context for the current config is: + # + # a. empty (we'd fall out of expr to do a global FOLLOW which could + # even be to some weird spot in expr) or, + # b. lies outside of expr or, + # c. lies within expr but at a state not the BlockEndState + # generated during LR removal + # + # Do we need to evaluate predicates ever in closure for this case? + # + # No. Predicates, including precedence predicates, are only + # evaluated when computing a DFA start state. I.e., only before + # the lookahead (but not parser) consumes a token. + # + # There are no epsilon edges allowed in LR rule alt blocks or in + # the "primary" part (ID here). If closure is in + # StarLoopEntryState any lookahead operation will have consumed a + # token as there are no epsilon-paths that lead to + # StarLoopEntryState. We do not have to evaluate predicates + # therefore if we are in the generated StarLoopEntryState of a LR + # rule. Note that when making a prediction starting at that + # decision point, decision d=2, compute-start-state performs + # closure starting at edges[0], edges[1] emanating from + # StarLoopEntryState. That means it is not performing closure on + # StarLoopEntryState during compute-start-state. + # + # How do we know this always gives same prediction answer? + # + # Without predicates, loop entry and exit paths are ambiguous + # upon remaining input +b (in, say, a+b). Either paths lead to + # valid parses. Closure can lead to consuming + immediately or by + # falling out of this call to expr back into expr and loop back + # again to StarLoopEntryState to match +b. In this special case, + # we choose the more efficient path, which is to take the bypass + # path. + # + # The lookahead language has not changed because closure chooses + # one path over the other. Both paths lead to consuming the same + # remaining input during a lookahead operation. If the next token + # is an operator, lookahead will enter the choice block with + # operators. If it is not, lookahead will exit expr. Same as if + # closure had chosen to enter the choice block immediately. + # + # Closure is examining one config (some loopentrystate, some alt, + # context) which means it is considering exactly one alt. Closure + # always copies the same alt to any derived configs. + # + # How do we know this optimization doesn't mess up precedence in + # our parse trees? + # + # Looking through expr from left edge of stat only has to confirm + # that an input, say, a+b+c; begins with any valid interpretation + # of an expression. The precedence actually doesn't matter when + # making a decision in stat seeing through expr. It is only when + # parsing rule expr that we must use the precedence to get the + # right interpretation and, hence, parse tree. + # + # @since 4.6 + # + def canDropLoopEntryEdgeInLeftRecursiveRule(self, config): + # return False + p = config.state + # First check to see if we are in StarLoopEntryState generated during + # left-recursion elimination. For efficiency, also check if + # the context has an empty stack case. If so, it would mean + # global FOLLOW so we can't perform optimization + # Are we the special loop entry/exit state? or SLL wildcard + if p.stateType != ATNState.STAR_LOOP_ENTRY \ + or not p.isPrecedenceDecision \ + or config.context.isEmpty() \ + or config.context.hasEmptyPath(): + return False + + # Require all return states to return back to the same rule + # that p is in. + numCtxs = len(config.context) + for i in range(0, numCtxs): # for each stack context + returnState = self.atn.states[config.context.getReturnState(i)] + if returnState.ruleIndex != p.ruleIndex: + return False + + decisionStartState = p.transitions[0].target + blockEndStateNum = decisionStartState.endState.stateNumber + blockEndState = self.atn.states[blockEndStateNum] + + # Verify that the top of each stack context leads to loop entry/exit + # state through epsilon edges and w/o leaving rule. + for i in range(0, numCtxs): # for each stack context + returnStateNumber = config.context.getReturnState(i) + returnState = self.atn.states[returnStateNumber] + # all states must have single outgoing epsilon edge + if len(returnState.transitions) != 1 or not returnState.transitions[0].isEpsilon: + return False + + # Look for prefix op case like 'not expr', (' type ')' expr + returnStateTarget = returnState.transitions[0].target + if returnState.stateType == ATNState.BLOCK_END and returnStateTarget is p: + continue + + # Look for 'expr op expr' or case where expr's return state is block end + # of (...)* internal block; the block end points to loop back + # which points to p but we don't need to check that + if returnState is blockEndState: + continue + + # Look for ternary expr ? expr : expr. The return state points at block end, + # which points at loop entry state + if returnStateTarget is blockEndState: + continue + + # Look for complex prefix 'between expr and expr' case where 2nd expr's + # return state points at block end state of (...)* internal block + if returnStateTarget.stateType == ATNState.BLOCK_END \ + and len(returnStateTarget.transitions) == 1 \ + and returnStateTarget.transitions[0].isEpsilon \ + and returnStateTarget.transitions[0].target is p: + continue + + # anything else ain't conforming + return False + + return True + + + def getRuleName(self, index:int): + if self.parser is not None and index>=0: + return self.parser.ruleNames[index] + else: + return "" + + epsilonTargetMethods = dict() + epsilonTargetMethods[Transition.RULE] = lambda sim, config, t, collectPredicates, inContext, fullCtx, treatEofAsEpsilon: \ + sim.ruleTransition(config, t) + epsilonTargetMethods[Transition.PRECEDENCE] = lambda sim, config, t, collectPredicates, inContext, fullCtx, treatEofAsEpsilon: \ + sim.precedenceTransition(config, t, collectPredicates, inContext, fullCtx) + epsilonTargetMethods[Transition.PREDICATE] = lambda sim, config, t, collectPredicates, inContext, fullCtx, treatEofAsEpsilon: \ + sim.predTransition(config, t, collectPredicates, inContext, fullCtx) + epsilonTargetMethods[Transition.ACTION] = lambda sim, config, t, collectPredicates, inContext, fullCtx, treatEofAsEpsilon: \ + sim.actionTransition(config, t) + epsilonTargetMethods[Transition.EPSILON] = lambda sim, config, t, collectPredicates, inContext, fullCtx, treatEofAsEpsilon: \ + ATNConfig(state=t.target, config=config) + epsilonTargetMethods[Transition.ATOM] = lambda sim, config, t, collectPredicates, inContext, fullCtx, treatEofAsEpsilon: \ + ATNConfig(state=t.target, config=config) if treatEofAsEpsilon and t.matches(Token.EOF, 0, 1) else None + epsilonTargetMethods[Transition.RANGE] = lambda sim, config, t, collectPredicates, inContext, fullCtx, treatEofAsEpsilon: \ + ATNConfig(state=t.target, config=config) if treatEofAsEpsilon and t.matches(Token.EOF, 0, 1) else None + epsilonTargetMethods[Transition.SET] = lambda sim, config, t, collectPredicates, inContext, fullCtx, treatEofAsEpsilon: \ + ATNConfig(state=t.target, config=config) if treatEofAsEpsilon and t.matches(Token.EOF, 0, 1) else None + + def getEpsilonTarget(self, config:ATNConfig, t:Transition, collectPredicates:bool, inContext:bool, fullCtx:bool, treatEofAsEpsilon:bool): + m = self.epsilonTargetMethods.get(t.serializationType, None) + if m is None: + return None + else: + return m(self, config, t, collectPredicates, inContext, fullCtx, treatEofAsEpsilon) + + def actionTransition(self, config:ATNConfig, t:ActionTransition): + if ParserATNSimulator.debug: + print("ACTION edge " + str(t.ruleIndex) + ":" + str(t.actionIndex)) + return ATNConfig(state=t.target, config=config) + + def precedenceTransition(self, config:ATNConfig, pt:PrecedencePredicateTransition, collectPredicates:bool, inContext:bool, fullCtx:bool): + if ParserATNSimulator.debug: + print("PRED (collectPredicates=" + str(collectPredicates) + ") " + + str(pt.precedence) + ">=_p, ctx dependent=true") + if self.parser is not None: + print("context surrounding pred is " + str(self.parser.getRuleInvocationStack())) + + c = None + if collectPredicates and inContext: + if fullCtx: + # In full context mode, we can evaluate predicates on-the-fly + # during closure, which dramatically reduces the size of + # the config sets. It also obviates the need to test predicates + # later during conflict resolution. + currentPosition = self._input.index + self._input.seek(self._startIndex) + predSucceeds = pt.getPredicate().eval(self.parser, self._outerContext) + self._input.seek(currentPosition) + if predSucceeds: + c = ATNConfig(state=pt.target, config=config) # no pred context + else: + newSemCtx = andContext(config.semanticContext, pt.getPredicate()) + c = ATNConfig(state=pt.target, semantic=newSemCtx, config=config) + else: + c = ATNConfig(state=pt.target, config=config) + + if ParserATNSimulator.debug: + print("config from pred transition=" + str(c)) + return c + + def predTransition(self, config:ATNConfig, pt:PredicateTransition, collectPredicates:bool, inContext:bool, fullCtx:bool): + if ParserATNSimulator.debug: + print("PRED (collectPredicates=" + str(collectPredicates) + ") " + str(pt.ruleIndex) + + ":" + str(pt.predIndex) + ", ctx dependent=" + str(pt.isCtxDependent)) + if self.parser is not None: + print("context surrounding pred is " + str(self.parser.getRuleInvocationStack())) + + c = None + if collectPredicates and (not pt.isCtxDependent or (pt.isCtxDependent and inContext)): + if fullCtx: + # In full context mode, we can evaluate predicates on-the-fly + # during closure, which dramatically reduces the size of + # the config sets. It also obviates the need to test predicates + # later during conflict resolution. + currentPosition = self._input.index + self._input.seek(self._startIndex) + predSucceeds = pt.getPredicate().eval(self.parser, self._outerContext) + self._input.seek(currentPosition) + if predSucceeds: + c = ATNConfig(state=pt.target, config=config) # no pred context + else: + newSemCtx = andContext(config.semanticContext, pt.getPredicate()) + c = ATNConfig(state=pt.target, semantic=newSemCtx, config=config) + else: + c = ATNConfig(state=pt.target, config=config) + + if ParserATNSimulator.debug: + print("config from pred transition=" + str(c)) + return c + + def ruleTransition(self, config:ATNConfig, t:RuleTransition): + if ParserATNSimulator.debug: + print("CALL rule " + self.getRuleName(t.target.ruleIndex) + ", ctx=" + str(config.context)) + returnState = t.followState + newContext = SingletonPredictionContext.create(config.context, returnState.stateNumber) + return ATNConfig(state=t.target, context=newContext, config=config ) + + def getConflictingAlts(self, configs:ATNConfigSet): + altsets = PredictionMode.getConflictingAltSubsets(configs) + return PredictionMode.getAlts(altsets) + + # Sam pointed out a problem with the previous definition, v3, of + # ambiguous states. If we have another state associated with conflicting + # alternatives, we should keep going. For example, the following grammar + # + # s : (ID | ID ID?) ';' ; + # + # When the ATN simulation reaches the state before ';', it has a DFA + # state that looks like: [12|1|[], 6|2|[], 12|2|[]]. Naturally + # 12|1|[] and 12|2|[] conflict, but we cannot stop processing this node + # because alternative to has another way to continue, via [6|2|[]]. + # The key is that we have a single state that has config's only associated + # with a single alternative, 2, and crucially the state transitions + # among the configurations are all non-epsilon transitions. That means + # we don't consider any conflicts that include alternative 2. So, we + # ignore the conflict between alts 1 and 2. We ignore a set of + # conflicting alts when there is an intersection with an alternative + # associated with a single alt state in the state→config-list map. + # + # It's also the case that we might have two conflicting configurations but + # also a 3rd nonconflicting configuration for a different alternative: + # [1|1|[], 1|2|[], 8|3|[]]. This can come about from grammar: + # + # a : A | A | A B ; + # + # After matching input A, we reach the stop state for rule A, state 1. + # State 8 is the state right before B. Clearly alternatives 1 and 2 + # conflict and no amount of further lookahead will separate the two. + # However, alternative 3 will be able to continue and so we do not + # stop working on this state. In the previous example, we're concerned + # with states associated with the conflicting alternatives. Here alt + # 3 is not associated with the conflicting configs, but since we can continue + # looking for input reasonably, I don't declare the state done. We + # ignore a set of conflicting alts when we have an alternative + # that we still need to pursue. + # + + def getConflictingAltsOrUniqueAlt(self, configs:ATNConfigSet): + conflictingAlts = None + if configs.uniqueAlt!= ATN.INVALID_ALT_NUMBER: + conflictingAlts = set() + conflictingAlts.add(configs.uniqueAlt) + else: + conflictingAlts = configs.conflictingAlts + return conflictingAlts + + def getTokenName(self, t:int): + if t==Token.EOF: + return "EOF" + if self.parser is not None and \ + self.parser.literalNames is not None and \ + t < len(self.parser.literalNames): + return self.parser.literalNames[t] + "<" + str(t) + ">" + else: + return str(t) + + def getLookaheadName(self, input:TokenStream): + return self.getTokenName(input.LA(1)) + + # Used for debugging in adaptivePredict around execATN but I cut + # it out for clarity now that alg. works well. We can leave this + # "dead" code for a bit. + # + def dumpDeadEndConfigs(self, nvae:NoViableAltException): + print("dead end configs: ") + for c in nvae.getDeadEndConfigs(): + trans = "no edges" + if len(c.state.transitions)>0: + t = c.state.transitions[0] + if isinstance(t, AtomTransition): + trans = "Atom "+ self.getTokenName(t.label) + elif isinstance(t, SetTransition): + neg = isinstance(t, NotSetTransition) + trans = ("~" if neg else "")+"Set "+ str(t.set) + print(c.toString(self.parser, True) + ":" + trans, file=sys.stderr) + + def noViableAlt(self, input:TokenStream, outerContext:ParserRuleContext, configs:ATNConfigSet, startIndex:int): + return NoViableAltException(self.parser, input, input.get(startIndex), input.LT(1), configs, outerContext) + + def getUniqueAlt(self, configs:ATNConfigSet): + alt = ATN.INVALID_ALT_NUMBER + for c in configs: + if alt == ATN.INVALID_ALT_NUMBER: + alt = c.alt # found first alt + elif c.alt!=alt: + return ATN.INVALID_ALT_NUMBER + return alt + + # + # Add an edge to the DFA, if possible. This method calls + # {@link #addDFAState} to ensure the {@code to} state is present in the + # DFA. If {@code from} is {@code null}, or if {@code t} is outside the + # range of edges that can be represented in the DFA tables, this method + # returns without adding the edge to the DFA. + # + #

      If {@code to} is {@code null}, this method returns {@code null}. + # Otherwise, this method returns the {@link DFAState} returned by calling + # {@link #addDFAState} for the {@code to} state.

      + # + # @param dfa The DFA + # @param from The source state for the edge + # @param t The input symbol + # @param to The target state for the edge + # + # @return If {@code to} is {@code null}, this method returns {@code null}; + # otherwise this method returns the result of calling {@link #addDFAState} + # on {@code to} + # + def addDFAEdge(self, dfa:DFA, from_:DFAState, t:int, to:DFAState): + if ParserATNSimulator.debug: + print("EDGE " + str(from_) + " -> " + str(to) + " upon " + self.getTokenName(t)) + + if to is None: + return None + + to = self.addDFAState(dfa, to) # used existing if possible not incoming + if from_ is None or t < -1 or t > self.atn.maxTokenType: + return to + + if from_.edges is None: + from_.edges = [None] * (self.atn.maxTokenType + 2) + from_.edges[t+1] = to # connect + + if ParserATNSimulator.debug: + names = None if self.parser is None else self.parser.literalNames + print("DFA=\n" + dfa.toString(names)) + + return to + + # + # Add state {@code D} to the DFA if it is not already present, and return + # the actual instance stored in the DFA. If a state equivalent to {@code D} + # is already in the DFA, the existing state is returned. Otherwise this + # method returns {@code D} after adding it to the DFA. + # + #

      If {@code D} is {@link #ERROR}, this method returns {@link #ERROR} and + # does not change the DFA.

      + # + # @param dfa The dfa + # @param D The DFA state to add + # @return The state stored in the DFA. This will be either the existing + # state if {@code D} is already in the DFA, or {@code D} itself if the + # state was not already present. + # + def addDFAState(self, dfa:DFA, D:DFAState): + if D is self.ERROR: + return D + + + existing = dfa.states.get(D, None) + if existing is not None: + return existing + + D.stateNumber = len(dfa.states) + if not D.configs.readonly: + D.configs.optimizeConfigs(self) + D.configs.setReadonly(True) + dfa.states[D] = D + if ParserATNSimulator.debug: + print("adding new DFA state: " + str(D)) + return D + + def reportAttemptingFullContext(self, dfa:DFA, conflictingAlts:set, configs:ATNConfigSet, startIndex:int, stopIndex:int): + if ParserATNSimulator.debug or ParserATNSimulator.retry_debug: + print("reportAttemptingFullContext decision=" + str(dfa.decision) + ":" + str(configs) + + ", input=" + self.parser.getTokenStream().getText(startIndex, stopIndex)) + if self.parser is not None: + self.parser.getErrorListenerDispatch().reportAttemptingFullContext(self.parser, dfa, startIndex, stopIndex, conflictingAlts, configs) + + def reportContextSensitivity(self, dfa:DFA, prediction:int, configs:ATNConfigSet, startIndex:int, stopIndex:int): + if ParserATNSimulator.debug or ParserATNSimulator.retry_debug: + print("reportContextSensitivity decision=" + str(dfa.decision) + ":" + str(configs) + + ", input=" + self.parser.getTokenStream().getText(startIndex, stopIndex)) + if self.parser is not None: + self.parser.getErrorListenerDispatch().reportContextSensitivity(self.parser, dfa, startIndex, stopIndex, prediction, configs) + + # If context sensitive parsing, we know it's ambiguity not conflict# + def reportAmbiguity(self, dfa:DFA, D:DFAState, startIndex:int, stopIndex:int, + exact:bool, ambigAlts:set, configs:ATNConfigSet ): + if ParserATNSimulator.debug or ParserATNSimulator.retry_debug: +# ParserATNPathFinder finder = new ParserATNPathFinder(parser, atn); +# int i = 1; +# for (Transition t : dfa.atnStartState.transitions) { +# print("ALT "+i+"="); +# print(startIndex+".."+stopIndex+", len(input)="+parser.getInputStream().size()); +# TraceTree path = finder.trace(t.target, parser.getContext(), (TokenStream)parser.getInputStream(), +# startIndex, stopIndex); +# if ( path!=null ) { +# print("path = "+path.toStringTree()); +# for (TraceTree leaf : path.leaves) { +# List states = path.getPathToNode(leaf); +# print("states="+states); +# } +# } +# i++; +# } + print("reportAmbiguity " + str(ambigAlts) + ":" + str(configs) + + ", input=" + self.parser.getTokenStream().getText(startIndex, stopIndex)) + if self.parser is not None: + self.parser.getErrorListenerDispatch().reportAmbiguity(self.parser, dfa, startIndex, stopIndex, exact, ambigAlts, configs) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/atn/PredictionMode.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/atn/PredictionMode.py new file mode 100644 index 0000000..8e5c73b --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/atn/PredictionMode.py @@ -0,0 +1,499 @@ +# +# Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. +# Use of this file is governed by the BSD 3-clause license that +# can be found in the LICENSE.txt file in the project root. +# +# +# This enumeration defines the prediction modes available in ANTLR 4 along with +# utility methods for analyzing configuration sets for conflicts and/or +# ambiguities. + + +from enum import Enum +from antlr4.atn.ATN import ATN +from antlr4.atn.ATNConfig import ATNConfig +from antlr4.atn.ATNConfigSet import ATNConfigSet +from antlr4.atn.ATNState import RuleStopState +from antlr4.atn.SemanticContext import SemanticContext + +PredictionMode = None + +class PredictionMode(Enum): + # + # The SLL(*) prediction mode. This prediction mode ignores the current + # parser context when making predictions. This is the fastest prediction + # mode, and provides correct results for many grammars. This prediction + # mode is more powerful than the prediction mode provided by ANTLR 3, but + # may result in syntax errors for grammar and input combinations which are + # not SLL. + # + #

      + # When using this prediction mode, the parser will either return a correct + # parse tree (i.e. the same parse tree that would be returned with the + # {@link #LL} prediction mode), or it will report a syntax error. If a + # syntax error is encountered when using the {@link #SLL} prediction mode, + # it may be due to either an actual syntax error in the input or indicate + # that the particular combination of grammar and input requires the more + # powerful {@link #LL} prediction abilities to complete successfully.

      + # + #

      + # This prediction mode does not provide any guarantees for prediction + # behavior for syntactically-incorrect inputs.

      + # + SLL = 0 + # + # The LL(*) prediction mode. This prediction mode allows the current parser + # context to be used for resolving SLL conflicts that occur during + # prediction. This is the fastest prediction mode that guarantees correct + # parse results for all combinations of grammars with syntactically correct + # inputs. + # + #

      + # When using this prediction mode, the parser will make correct decisions + # for all syntactically-correct grammar and input combinations. However, in + # cases where the grammar is truly ambiguous this prediction mode might not + # report a precise answer for exactly which alternatives are + # ambiguous.

      + # + #

      + # This prediction mode does not provide any guarantees for prediction + # behavior for syntactically-incorrect inputs.

      + # + LL = 1 + # + # The LL(*) prediction mode with exact ambiguity detection. In addition to + # the correctness guarantees provided by the {@link #LL} prediction mode, + # this prediction mode instructs the prediction algorithm to determine the + # complete and exact set of ambiguous alternatives for every ambiguous + # decision encountered while parsing. + # + #

      + # This prediction mode may be used for diagnosing ambiguities during + # grammar development. Due to the performance overhead of calculating sets + # of ambiguous alternatives, this prediction mode should be avoided when + # the exact results are not necessary.

      + # + #

      + # This prediction mode does not provide any guarantees for prediction + # behavior for syntactically-incorrect inputs.

      + # + LL_EXACT_AMBIG_DETECTION = 2 + + + # + # Computes the SLL prediction termination condition. + # + #

      + # This method computes the SLL prediction termination condition for both of + # the following cases.

      + # + #
        + #
      • The usual SLL+LL fallback upon SLL conflict
      • + #
      • Pure SLL without LL fallback
      • + #
      + # + #

      COMBINED SLL+LL PARSING

      + # + #

      When LL-fallback is enabled upon SLL conflict, correct predictions are + # ensured regardless of how the termination condition is computed by this + # method. Due to the substantially higher cost of LL prediction, the + # prediction should only fall back to LL when the additional lookahead + # cannot lead to a unique SLL prediction.

      + # + #

      Assuming combined SLL+LL parsing, an SLL configuration set with only + # conflicting subsets should fall back to full LL, even if the + # configuration sets don't resolve to the same alternative (e.g. + # {@code {1,2}} and {@code {3,4}}. If there is at least one non-conflicting + # configuration, SLL could continue with the hopes that more lookahead will + # resolve via one of those non-conflicting configurations.

      + # + #

      Here's the prediction termination rule them: SLL (for SLL+LL parsing) + # stops when it sees only conflicting configuration subsets. In contrast, + # full LL keeps going when there is uncertainty.

      + # + #

      HEURISTIC

      + # + #

      As a heuristic, we stop prediction when we see any conflicting subset + # unless we see a state that only has one alternative associated with it. + # The single-alt-state thing lets prediction continue upon rules like + # (otherwise, it would admit defeat too soon):

      + # + #

      {@code [12|1|[], 6|2|[], 12|2|[]]. s : (ID | ID ID?) ';' ;}

      + # + #

      When the ATN simulation reaches the state before {@code ';'}, it has a + # DFA state that looks like: {@code [12|1|[], 6|2|[], 12|2|[]]}. Naturally + # {@code 12|1|[]} and {@code 12|2|[]} conflict, but we cannot stop + # processing this node because alternative to has another way to continue, + # via {@code [6|2|[]]}.

      + # + #

      It also let's us continue for this rule:

      + # + #

      {@code [1|1|[], 1|2|[], 8|3|[]] a : A | A | A B ;}

      + # + #

      After matching input A, we reach the stop state for rule A, state 1. + # State 8 is the state right before B. Clearly alternatives 1 and 2 + # conflict and no amount of further lookahead will separate the two. + # However, alternative 3 will be able to continue and so we do not stop + # working on this state. In the previous example, we're concerned with + # states associated with the conflicting alternatives. Here alt 3 is not + # associated with the conflicting configs, but since we can continue + # looking for input reasonably, don't declare the state done.

      + # + #

      PURE SLL PARSING

      + # + #

      To handle pure SLL parsing, all we have to do is make sure that we + # combine stack contexts for configurations that differ only by semantic + # predicate. From there, we can do the usual SLL termination heuristic.

      + # + #

      PREDICATES IN SLL+LL PARSING

      + # + #

      SLL decisions don't evaluate predicates until after they reach DFA stop + # states because they need to create the DFA cache that works in all + # semantic situations. In contrast, full LL evaluates predicates collected + # during start state computation so it can ignore predicates thereafter. + # This means that SLL termination detection can totally ignore semantic + # predicates.

      + # + #

      Implementation-wise, {@link ATNConfigSet} combines stack contexts but not + # semantic predicate contexts so we might see two configurations like the + # following.

      + # + #

      {@code (s, 1, x, {}), (s, 1, x', {p})}

      + # + #

      Before testing these configurations against others, we have to merge + # {@code x} and {@code x'} (without modifying the existing configurations). + # For example, we test {@code (x+x')==x''} when looking for conflicts in + # the following configurations.

      + # + #

      {@code (s, 1, x, {}), (s, 1, x', {p}), (s, 2, x'', {})}

      + # + #

      If the configuration set has predicates (as indicated by + # {@link ATNConfigSet#hasSemanticContext}), this algorithm makes a copy of + # the configurations to strip out all of the predicates so that a standard + # {@link ATNConfigSet} will merge everything ignoring predicates.

      + # + @classmethod + def hasSLLConflictTerminatingPrediction(cls, mode:PredictionMode, configs:ATNConfigSet): + # Configs in rule stop states indicate reaching the end of the decision + # rule (local context) or end of start rule (full context). If all + # configs meet this condition, then none of the configurations is able + # to match additional input so we terminate prediction. + # + if cls.allConfigsInRuleStopStates(configs): + return True + + # pure SLL mode parsing + if mode == PredictionMode.SLL: + # Don't bother with combining configs from different semantic + # contexts if we can fail over to full LL; costs more time + # since we'll often fail over anyway. + if configs.hasSemanticContext: + # dup configs, tossing out semantic predicates + dup = ATNConfigSet() + for c in configs: + c = ATNConfig(config=c, semantic=SemanticContext.NONE) + dup.add(c) + configs = dup + # now we have combined contexts for configs with dissimilar preds + + # pure SLL or combined SLL+LL mode parsing + altsets = cls.getConflictingAltSubsets(configs) + return cls.hasConflictingAltSet(altsets) and not cls.hasStateAssociatedWithOneAlt(configs) + + # Checks if any configuration in {@code configs} is in a + # {@link RuleStopState}. Configurations meeting this condition have reached + # the end of the decision rule (local context) or end of start rule (full + # context). + # + # @param configs the configuration set to test + # @return {@code true} if any configuration in {@code configs} is in a + # {@link RuleStopState}, otherwise {@code false} + @classmethod + def hasConfigInRuleStopState(cls, configs:ATNConfigSet): + return any(isinstance(cfg.state, RuleStopState) for cfg in configs) + + # Checks if all configurations in {@code configs} are in a + # {@link RuleStopState}. Configurations meeting this condition have reached + # the end of the decision rule (local context) or end of start rule (full + # context). + # + # @param configs the configuration set to test + # @return {@code true} if all configurations in {@code configs} are in a + # {@link RuleStopState}, otherwise {@code false} + @classmethod + def allConfigsInRuleStopStates(cls, configs:ATNConfigSet): + return all(isinstance(cfg.state, RuleStopState) for cfg in configs) + + # + # Full LL prediction termination. + # + #

      Can we stop looking ahead during ATN simulation or is there some + # uncertainty as to which alternative we will ultimately pick, after + # consuming more input? Even if there are partial conflicts, we might know + # that everything is going to resolve to the same minimum alternative. That + # means we can stop since no more lookahead will change that fact. On the + # other hand, there might be multiple conflicts that resolve to different + # minimums. That means we need more look ahead to decide which of those + # alternatives we should predict.

      + # + #

      The basic idea is to split the set of configurations {@code C}, into + # conflicting subsets {@code (s, _, ctx, _)} and singleton subsets with + # non-conflicting configurations. Two configurations conflict if they have + # identical {@link ATNConfig#state} and {@link ATNConfig#context} values + # but different {@link ATNConfig#alt} value, e.g. {@code (s, i, ctx, _)} + # and {@code (s, j, ctx, _)} for {@code i!=j}.

      + # + #

      Reduce these configuration subsets to the set of possible alternatives. + # You can compute the alternative subsets in one pass as follows:

      + # + #

      {@code A_s,ctx = {i | (s, i, ctx, _)}} for each configuration in + # {@code C} holding {@code s} and {@code ctx} fixed.

      + # + #

      Or in pseudo-code, for each configuration {@code c} in {@code C}:

      + # + #
      +    # map[c] U= c.{@link ATNConfig#alt alt} # map hash/equals uses s and x, not
      +    # alt and not pred
      +    # 
      + # + #

      The values in {@code map} are the set of {@code A_s,ctx} sets.

      + # + #

      If {@code |A_s,ctx|=1} then there is no conflict associated with + # {@code s} and {@code ctx}.

      + # + #

      Reduce the subsets to singletons by choosing a minimum of each subset. If + # the union of these alternative subsets is a singleton, then no amount of + # more lookahead will help us. We will always pick that alternative. If, + # however, there is more than one alternative, then we are uncertain which + # alternative to predict and must continue looking for resolution. We may + # or may not discover an ambiguity in the future, even if there are no + # conflicting subsets this round.

      + # + #

      The biggest sin is to terminate early because it means we've made a + # decision but were uncertain as to the eventual outcome. We haven't used + # enough lookahead. On the other hand, announcing a conflict too late is no + # big deal; you will still have the conflict. It's just inefficient. It + # might even look until the end of file.

      + # + #

      No special consideration for semantic predicates is required because + # predicates are evaluated on-the-fly for full LL prediction, ensuring that + # no configuration contains a semantic context during the termination + # check.

      + # + #

      CONFLICTING CONFIGS

      + # + #

      Two configurations {@code (s, i, x)} and {@code (s, j, x')}, conflict + # when {@code i!=j} but {@code x=x'}. Because we merge all + # {@code (s, i, _)} configurations together, that means that there are at + # most {@code n} configurations associated with state {@code s} for + # {@code n} possible alternatives in the decision. The merged stacks + # complicate the comparison of configuration contexts {@code x} and + # {@code x'}. Sam checks to see if one is a subset of the other by calling + # merge and checking to see if the merged result is either {@code x} or + # {@code x'}. If the {@code x} associated with lowest alternative {@code i} + # is the superset, then {@code i} is the only possible prediction since the + # others resolve to {@code min(i)} as well. However, if {@code x} is + # associated with {@code j>i} then at least one stack configuration for + # {@code j} is not in conflict with alternative {@code i}. The algorithm + # should keep going, looking for more lookahead due to the uncertainty.

      + # + #

      For simplicity, I'm doing a equality check between {@code x} and + # {@code x'} that lets the algorithm continue to consume lookahead longer + # than necessary. The reason I like the equality is of course the + # simplicity but also because that is the test you need to detect the + # alternatives that are actually in conflict.

      + # + #

      CONTINUE/STOP RULE

      + # + #

      Continue if union of resolved alternative sets from non-conflicting and + # conflicting alternative subsets has more than one alternative. We are + # uncertain about which alternative to predict.

      + # + #

      The complete set of alternatives, {@code [i for (_,i,_)]}, tells us which + # alternatives are still in the running for the amount of input we've + # consumed at this point. The conflicting sets let us to strip away + # configurations that won't lead to more states because we resolve + # conflicts to the configuration with a minimum alternate for the + # conflicting set.

      + # + #

      CASES

      + # + #
        + # + #
      • no conflicts and more than 1 alternative in set => continue
      • + # + #
      • {@code (s, 1, x)}, {@code (s, 2, x)}, {@code (s, 3, z)}, + # {@code (s', 1, y)}, {@code (s', 2, y)} yields non-conflicting set + # {@code {3}} U conflicting sets {@code min({1,2})} U {@code min({1,2})} = + # {@code {1,3}} => continue + #
      • + # + #
      • {@code (s, 1, x)}, {@code (s, 2, x)}, {@code (s', 1, y)}, + # {@code (s', 2, y)}, {@code (s'', 1, z)} yields non-conflicting set + # {@code {1}} U conflicting sets {@code min({1,2})} U {@code min({1,2})} = + # {@code {1}} => stop and predict 1
      • + # + #
      • {@code (s, 1, x)}, {@code (s, 2, x)}, {@code (s', 1, y)}, + # {@code (s', 2, y)} yields conflicting, reduced sets {@code {1}} U + # {@code {1}} = {@code {1}} => stop and predict 1, can announce + # ambiguity {@code {1,2}}
      • + # + #
      • {@code (s, 1, x)}, {@code (s, 2, x)}, {@code (s', 2, y)}, + # {@code (s', 3, y)} yields conflicting, reduced sets {@code {1}} U + # {@code {2}} = {@code {1,2}} => continue
      • + # + #
      • {@code (s, 1, x)}, {@code (s, 2, x)}, {@code (s', 3, y)}, + # {@code (s', 4, y)} yields conflicting, reduced sets {@code {1}} U + # {@code {3}} = {@code {1,3}} => continue
      • + # + #
      + # + #

      EXACT AMBIGUITY DETECTION

      + # + #

      If all states report the same conflicting set of alternatives, then we + # know we have the exact ambiguity set.

      + # + #

      |A_i|>1 and + # A_i = A_j for all i, j.

      + # + #

      In other words, we continue examining lookahead until all {@code A_i} + # have more than one alternative and all {@code A_i} are the same. If + # {@code A={{1,2}, {1,3}}}, then regular LL prediction would terminate + # because the resolved set is {@code {1}}. To determine what the real + # ambiguity is, we have to know whether the ambiguity is between one and + # two or one and three so we keep going. We can only stop prediction when + # we need exact ambiguity detection when the sets look like + # {@code A={{1,2}}} or {@code {{1,2},{1,2}}}, etc...

      + # + @classmethod + def resolvesToJustOneViableAlt(cls, altsets:list): + return cls.getSingleViableAlt(altsets) + + # + # Determines if every alternative subset in {@code altsets} contains more + # than one alternative. + # + # @param altsets a collection of alternative subsets + # @return {@code true} if every {@link BitSet} in {@code altsets} has + # {@link BitSet#cardinality cardinality} > 1, otherwise {@code false} + # + @classmethod + def allSubsetsConflict(cls, altsets:list): + return not cls.hasNonConflictingAltSet(altsets) + + # + # Determines if any single alternative subset in {@code altsets} contains + # exactly one alternative. + # + # @param altsets a collection of alternative subsets + # @return {@code true} if {@code altsets} contains a {@link BitSet} with + # {@link BitSet#cardinality cardinality} 1, otherwise {@code false} + # + @classmethod + def hasNonConflictingAltSet(cls, altsets:list): + return any(len(alts) == 1 for alts in altsets) + + # + # Determines if any single alternative subset in {@code altsets} contains + # more than one alternative. + # + # @param altsets a collection of alternative subsets + # @return {@code true} if {@code altsets} contains a {@link BitSet} with + # {@link BitSet#cardinality cardinality} > 1, otherwise {@code false} + # + @classmethod + def hasConflictingAltSet(cls, altsets:list): + return any(len(alts) > 1 for alts in altsets) + + # + # Determines if every alternative subset in {@code altsets} is equivalent. + # + # @param altsets a collection of alternative subsets + # @return {@code true} if every member of {@code altsets} is equal to the + # others, otherwise {@code false} + # + @classmethod + def allSubsetsEqual(cls, altsets:list): + if not altsets: + return True + first = next(iter(altsets)) + return all(alts == first for alts in iter(altsets)) + + # + # Returns the unique alternative predicted by all alternative subsets in + # {@code altsets}. If no such alternative exists, this method returns + # {@link ATN#INVALID_ALT_NUMBER}. + # + # @param altsets a collection of alternative subsets + # + @classmethod + def getUniqueAlt(cls, altsets:list): + all = cls.getAlts(altsets) + if len(all)==1: + return next(iter(all)) + return ATN.INVALID_ALT_NUMBER + + # Gets the complete set of represented alternatives for a collection of + # alternative subsets. This method returns the union of each {@link BitSet} + # in {@code altsets}. + # + # @param altsets a collection of alternative subsets + # @return the set of represented alternatives in {@code altsets} + # + @classmethod + def getAlts(cls, altsets:list): + return set.union(*altsets) + + # + # This function gets the conflicting alt subsets from a configuration set. + # For each configuration {@code c} in {@code configs}: + # + #
      +    # map[c] U= c.{@link ATNConfig#alt alt} # map hash/equals uses s and x, not
      +    # alt and not pred
      +    # 
      + # + @classmethod + def getConflictingAltSubsets(cls, configs:ATNConfigSet): + configToAlts = dict() + for c in configs: + h = hash((c.state.stateNumber, c.context)) + alts = configToAlts.get(h, None) + if alts is None: + alts = set() + configToAlts[h] = alts + alts.add(c.alt) + return configToAlts.values() + + # + # Get a map from state to alt subset from a configuration set. For each + # configuration {@code c} in {@code configs}: + # + #
      +    # map[c.{@link ATNConfig#state state}] U= c.{@link ATNConfig#alt alt}
      +    # 
      + # + @classmethod + def getStateToAltMap(cls, configs:ATNConfigSet): + m = dict() + for c in configs: + alts = m.get(c.state, None) + if alts is None: + alts = set() + m[c.state] = alts + alts.add(c.alt) + return m + + @classmethod + def hasStateAssociatedWithOneAlt(cls, configs:ATNConfigSet): + return any(len(alts) == 1 for alts in cls.getStateToAltMap(configs).values()) + + @classmethod + def getSingleViableAlt(cls, altsets:list): + viableAlts = set() + for alts in altsets: + minAlt = min(alts) + viableAlts.add(minAlt) + if len(viableAlts)>1 : # more than 1 viable alt + return ATN.INVALID_ALT_NUMBER + return min(viableAlts) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/atn/SemanticContext.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/atn/SemanticContext.py new file mode 100644 index 0000000..8f4dc31 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/atn/SemanticContext.py @@ -0,0 +1,323 @@ +# +# Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. +# Use of this file is governed by the BSD 3-clause license that +# can be found in the LICENSE.txt file in the project root. +# + +# A tree structure used to record the semantic context in which +# an ATN configuration is valid. It's either a single predicate, +# a conjunction {@code p1&&p2}, or a sum of products {@code p1||p2}. +# +#

      I have scoped the {@link AND}, {@link OR}, and {@link Predicate} subclasses of +# {@link SemanticContext} within the scope of this outer class.

      +# +from antlr4.Recognizer import Recognizer +from antlr4.RuleContext import RuleContext +from io import StringIO + + +class SemanticContext(object): + # + # The default {@link SemanticContext}, which is semantically equivalent to + # a predicate of the form {@code {true}?}. + # + NONE = None + + # + # For context independent predicates, we evaluate them without a local + # context (i.e., null context). That way, we can evaluate them without + # having to create proper rule-specific context during prediction (as + # opposed to the parser, which creates them naturally). In a practical + # sense, this avoids a cast exception from RuleContext to myruleContext. + # + #

      For context dependent predicates, we must pass in a local context so that + # references such as $arg evaluate properly as _localctx.arg. We only + # capture context dependent predicates in the context in which we begin + # prediction, so we passed in the outer context here in case of context + # dependent predicate evaluation.

      + # + def eval(self, parser:Recognizer , outerContext:RuleContext ): + pass + + # + # Evaluate the precedence predicates for the context and reduce the result. + # + # @param parser The parser instance. + # @param outerContext The current parser context object. + # @return The simplified semantic context after precedence predicates are + # evaluated, which will be one of the following values. + #
        + #
      • {@link #NONE}: if the predicate simplifies to {@code true} after + # precedence predicates are evaluated.
      • + #
      • {@code null}: if the predicate simplifies to {@code false} after + # precedence predicates are evaluated.
      • + #
      • {@code this}: if the semantic context is not changed as a result of + # precedence predicate evaluation.
      • + #
      • A non-{@code null} {@link SemanticContext}: the new simplified + # semantic context after precedence predicates are evaluated.
      • + #
      + # + def evalPrecedence(self, parser:Recognizer, outerContext:RuleContext): + return self + +# need forward declaration +AND = None + +def andContext(a:SemanticContext, b:SemanticContext): + if a is None or a is SemanticContext.NONE: + return b + if b is None or b is SemanticContext.NONE: + return a + result = AND(a, b) + if len(result.opnds) == 1: + return result.opnds[0] + else: + return result + +# need forward declaration +OR = None + +def orContext(a:SemanticContext, b:SemanticContext): + if a is None: + return b + if b is None: + return a + if a is SemanticContext.NONE or b is SemanticContext.NONE: + return SemanticContext.NONE + result = OR(a, b) + if len(result.opnds) == 1: + return result.opnds[0] + else: + return result + +def filterPrecedencePredicates(collection:set): + return [context for context in collection if isinstance(context, PrecedencePredicate)] + + +class Predicate(SemanticContext): + __slots__ = ('ruleIndex', 'predIndex', 'isCtxDependent') + + def __init__(self, ruleIndex:int=-1, predIndex:int=-1, isCtxDependent:bool=False): + self.ruleIndex = ruleIndex + self.predIndex = predIndex + self.isCtxDependent = isCtxDependent # e.g., $i ref in pred + + def eval(self, parser:Recognizer , outerContext:RuleContext ): + localctx = outerContext if self.isCtxDependent else None + return parser.sempred(localctx, self.ruleIndex, self.predIndex) + + def __hash__(self): + return hash((self.ruleIndex, self.predIndex, self.isCtxDependent)) + + def __eq__(self, other): + if self is other: + return True + elif not isinstance(other, Predicate): + return False + return self.ruleIndex == other.ruleIndex and \ + self.predIndex == other.predIndex and \ + self.isCtxDependent == other.isCtxDependent + + def __str__(self): + return "{" + str(self.ruleIndex) + ":" + str(self.predIndex) + "}?" + + +class PrecedencePredicate(SemanticContext): + + def __init__(self, precedence:int=0): + self.precedence = precedence + + def eval(self, parser:Recognizer , outerContext:RuleContext ): + return parser.precpred(outerContext, self.precedence) + + def evalPrecedence(self, parser:Recognizer, outerContext:RuleContext): + if parser.precpred(outerContext, self.precedence): + return SemanticContext.NONE + else: + return None + + def __lt__(self, other): + return self.precedence < other.precedence + + def __hash__(self): + return 31 + + def __eq__(self, other): + if self is other: + return True + elif not isinstance(other, PrecedencePredicate): + return False + else: + return self.precedence == other.precedence + +# A semantic context which is true whenever none of the contained contexts +# is false. +del AND +class AND(SemanticContext): + __slots__ = 'opnds' + + def __init__(self, a:SemanticContext, b:SemanticContext): + operands = set() + if isinstance( a, AND ): + operands.update(a.opnds) + else: + operands.add(a) + if isinstance( b, AND ): + operands.update(b.opnds) + else: + operands.add(b) + + precedencePredicates = filterPrecedencePredicates(operands) + if len(precedencePredicates)>0: + # interested in the transition with the lowest precedence + reduced = min(precedencePredicates) + operands.add(reduced) + + self.opnds = list(operands) + + def __eq__(self, other): + if self is other: + return True + elif not isinstance(other, AND): + return False + else: + return self.opnds == other.opnds + + def __hash__(self): + h = 0 + for o in self.opnds: + h = hash((h, o)) + return hash((h, "AND")) + + # + # {@inheritDoc} + # + #

      + # The evaluation of predicates by this context is short-circuiting, but + # unordered.

      + # + def eval(self, parser:Recognizer, outerContext:RuleContext): + return all(opnd.eval(parser, outerContext) for opnd in self.opnds) + + def evalPrecedence(self, parser:Recognizer, outerContext:RuleContext): + differs = False + operands = [] + for context in self.opnds: + evaluated = context.evalPrecedence(parser, outerContext) + differs |= evaluated is not context + if evaluated is None: + # The AND context is false if any element is false + return None + elif evaluated is not SemanticContext.NONE: + # Reduce the result by skipping true elements + operands.append(evaluated) + + if not differs: + return self + + if len(operands)==0: + # all elements were true, so the AND context is true + return SemanticContext.NONE + + result = None + for o in operands: + result = o if result is None else andContext(result, o) + + return result + + def __str__(self): + with StringIO() as buf: + first = True + for o in self.opnds: + if not first: + buf.write("&&") + buf.write(str(o)) + first = False + return buf.getvalue() + +# +# A semantic context which is true whenever at least one of the contained +# contexts is true. +del OR +class OR (SemanticContext): + __slots__ = 'opnds' + + def __init__(self, a:SemanticContext, b:SemanticContext): + operands = set() + if isinstance( a, OR ): + operands.update(a.opnds) + else: + operands.add(a) + if isinstance( b, OR ): + operands.update(b.opnds) + else: + operands.add(b) + + precedencePredicates = filterPrecedencePredicates(operands) + if len(precedencePredicates)>0: + # interested in the transition with the highest precedence + s = sorted(precedencePredicates) + reduced = s[-1] + operands.add(reduced) + + self.opnds = list(operands) + + def __eq__(self, other): + if self is other: + return True + elif not isinstance(other, OR): + return False + else: + return self.opnds == other.opnds + + def __hash__(self): + h = 0 + for o in self.opnds: + h = hash((h, o)) + return hash((h, "OR")) + + #

      + # The evaluation of predicates by this context is short-circuiting, but + # unordered.

      + # + def eval(self, parser:Recognizer, outerContext:RuleContext): + return any(opnd.eval(parser, outerContext) for opnd in self.opnds) + + def evalPrecedence(self, parser:Recognizer, outerContext:RuleContext): + differs = False + operands = [] + for context in self.opnds: + evaluated = context.evalPrecedence(parser, outerContext) + differs |= evaluated is not context + if evaluated is SemanticContext.NONE: + # The OR context is true if any element is true + return SemanticContext.NONE + elif evaluated is not None: + # Reduce the result by skipping false elements + operands.append(evaluated) + + if not differs: + return self + + if len(operands)==0: + # all elements were false, so the OR context is false + return None + + result = None + for o in operands: + result = o if result is None else orContext(result, o) + + return result + + def __str__(self): + with StringIO() as buf: + first = True + for o in self.opnds: + if not first: + buf.write("||") + buf.write(str(o)) + first = False + return buf.getvalue() + + +SemanticContext.NONE = Predicate() diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/atn/Transition.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/atn/Transition.py new file mode 100644 index 0000000..2e4c997 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/atn/Transition.py @@ -0,0 +1,268 @@ +# +# Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. +# Use of this file is governed by the BSD 3-clause license that +# can be found in the LICENSE.txt file in the project root. +# + +# An ATN transition between any two ATN states. Subclasses define +# atom, set, epsilon, action, predicate, rule transitions. +# +#

      This is a one way link. It emanates from a state (usually via a list of +# transitions) and has a target state.

      +# +#

      Since we never have to change the ATN transitions once we construct it, +# we can fix these transitions as specific classes. The DFA transitions +# on the other hand need to update the labels as it adds transitions to +# the states. We'll use the term Edge for the DFA to distinguish them from +# ATN transitions.

      +# +from antlr4.IntervalSet import IntervalSet +from antlr4.Token import Token + +# need forward declarations +from antlr4.atn.SemanticContext import Predicate, PrecedencePredicate + +ATNState = None +RuleStartState = None + +class Transition (object): + __slots__ = ('target','isEpsilon','label') + + # constants for serialization + EPSILON = 1 + RANGE = 2 + RULE = 3 + PREDICATE = 4 # e.g., {isType(input.LT(1))}? + ATOM = 5 + ACTION = 6 + SET = 7 # ~(A|B) or ~atom, wildcard, which convert to next 2 + NOT_SET = 8 + WILDCARD = 9 + PRECEDENCE = 10 + + serializationNames = [ + "INVALID", + "EPSILON", + "RANGE", + "RULE", + "PREDICATE", + "ATOM", + "ACTION", + "SET", + "NOT_SET", + "WILDCARD", + "PRECEDENCE" + ] + + serializationTypes = dict() + + def __init__(self, target:ATNState): + # The target of this transition. + if target is None: + raise Exception("target cannot be null.") + self.target = target + # Are we epsilon, action, sempred? + self.isEpsilon = False + self.label = None + + +# TODO: make all transitions sets? no, should remove set edges +class AtomTransition(Transition): + __slots__ = ('label_', 'serializationType') + + def __init__(self, target:ATNState, label:int): + super().__init__(target) + self.label_ = label # The token type or character value; or, signifies special label. + self.label = self.makeLabel() + self.serializationType = self.ATOM + + def makeLabel(self): + s = IntervalSet() + s.addOne(self.label_) + return s + + def matches( self, symbol:int, minVocabSymbol:int, maxVocabSymbol:int): + return self.label_ == symbol + + def __str__(self): + return str(self.label_) + +class RuleTransition(Transition): + __slots__ = ('ruleIndex', 'precedence', 'followState', 'serializationType') + + def __init__(self, ruleStart:RuleStartState, ruleIndex:int, precedence:int, followState:ATNState): + super().__init__(ruleStart) + self.ruleIndex = ruleIndex # ptr to the rule definition object for this rule ref + self.precedence = precedence + self.followState = followState # what node to begin computations following ref to rule + self.serializationType = self.RULE + self.isEpsilon = True + + def matches( self, symbol:int, minVocabSymbol:int, maxVocabSymbol:int): + return False + + +class EpsilonTransition(Transition): + __slots__ = ('serializationType', 'outermostPrecedenceReturn') + + def __init__(self, target, outermostPrecedenceReturn=-1): + super(EpsilonTransition, self).__init__(target) + self.serializationType = self.EPSILON + self.isEpsilon = True + self.outermostPrecedenceReturn = outermostPrecedenceReturn + + def matches( self, symbol:int, minVocabSymbol:int, maxVocabSymbol:int): + return False + + def __str__(self): + return "epsilon" + +class RangeTransition(Transition): + __slots__ = ('serializationType', 'start', 'stop') + + def __init__(self, target:ATNState, start:int, stop:int): + super().__init__(target) + self.serializationType = self.RANGE + self.start = start + self.stop = stop + self.label = self.makeLabel() + + def makeLabel(self): + s = IntervalSet() + s.addRange(range(self.start, self.stop + 1)) + return s + + def matches( self, symbol:int, minVocabSymbol:int, maxVocabSymbol:int): + return symbol >= self.start and symbol <= self.stop + + def __str__(self): + return "'" + chr(self.start) + "'..'" + chr(self.stop) + "'" + +class AbstractPredicateTransition(Transition): + + def __init__(self, target:ATNState): + super().__init__(target) + + +class PredicateTransition(AbstractPredicateTransition): + __slots__ = ('serializationType', 'ruleIndex', 'predIndex', 'isCtxDependent') + + def __init__(self, target:ATNState, ruleIndex:int, predIndex:int, isCtxDependent:bool): + super().__init__(target) + self.serializationType = self.PREDICATE + self.ruleIndex = ruleIndex + self.predIndex = predIndex + self.isCtxDependent = isCtxDependent # e.g., $i ref in pred + self.isEpsilon = True + + def matches( self, symbol:int, minVocabSymbol:int, maxVocabSymbol:int): + return False + + def getPredicate(self): + return Predicate(self.ruleIndex, self.predIndex, self.isCtxDependent) + + def __str__(self): + return "pred_" + str(self.ruleIndex) + ":" + str(self.predIndex) + +class ActionTransition(Transition): + __slots__ = ('serializationType', 'ruleIndex', 'actionIndex', 'isCtxDependent') + + def __init__(self, target:ATNState, ruleIndex:int, actionIndex:int=-1, isCtxDependent:bool=False): + super().__init__(target) + self.serializationType = self.ACTION + self.ruleIndex = ruleIndex + self.actionIndex = actionIndex + self.isCtxDependent = isCtxDependent # e.g., $i ref in pred + self.isEpsilon = True + + def matches( self, symbol:int, minVocabSymbol:int, maxVocabSymbol:int): + return False + + def __str__(self): + return "action_"+self.ruleIndex+":"+self.actionIndex + +# A transition containing a set of values. +class SetTransition(Transition): + __slots__ = 'serializationType' + + def __init__(self, target:ATNState, set:IntervalSet): + super().__init__(target) + self.serializationType = self.SET + if set is not None: + self.label = set + else: + self.label = IntervalSet() + self.label.addRange(range(Token.INVALID_TYPE, Token.INVALID_TYPE + 1)) + + def matches( self, symbol:int, minVocabSymbol:int, maxVocabSymbol:int): + return symbol in self.label + + def __str__(self): + return str(self.label) + +class NotSetTransition(SetTransition): + + def __init__(self, target:ATNState, set:IntervalSet): + super().__init__(target, set) + self.serializationType = self.NOT_SET + + def matches( self, symbol:int, minVocabSymbol:int, maxVocabSymbol:int): + return symbol >= minVocabSymbol \ + and symbol <= maxVocabSymbol \ + and not super(type(self), self).matches(symbol, minVocabSymbol, maxVocabSymbol) + + def __str__(self): + return '~' + super(type(self), self).__str__() + + +class WildcardTransition(Transition): + __slots__ = 'serializationType' + + def __init__(self, target:ATNState): + super().__init__(target) + self.serializationType = self.WILDCARD + + def matches( self, symbol:int, minVocabSymbol:int, maxVocabSymbol:int): + return symbol >= minVocabSymbol and symbol <= maxVocabSymbol + + def __str__(self): + return "." + + +class PrecedencePredicateTransition(AbstractPredicateTransition): + __slots__ = ('serializationType', 'precedence') + + def __init__(self, target:ATNState, precedence:int): + super().__init__(target) + self.serializationType = self.PRECEDENCE + self.precedence = precedence + self.isEpsilon = True + + def matches( self, symbol:int, minVocabSymbol:int, maxVocabSymbol:int): + return False + + + def getPredicate(self): + return PrecedencePredicate(self.precedence) + + def __str__(self): + return self.precedence + " >= _p" + + +Transition.serializationTypes = { + EpsilonTransition: Transition.EPSILON, + RangeTransition: Transition.RANGE, + RuleTransition: Transition.RULE, + PredicateTransition: Transition.PREDICATE, + AtomTransition: Transition.ATOM, + ActionTransition: Transition.ACTION, + SetTransition: Transition.SET, + NotSetTransition: Transition.NOT_SET, + WildcardTransition: Transition.WILDCARD, + PrecedencePredicateTransition: Transition.PRECEDENCE + } + +del ATNState +del RuleStartState + +from antlr4.atn.ATNState import * diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/atn/__init__.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/atn/__init__.py new file mode 100644 index 0000000..216c000 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/atn/__init__.py @@ -0,0 +1 @@ +__author__ = 'ericvergnaud' diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/dfa/DFA.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/dfa/DFA.py new file mode 100644 index 0000000..d80589a --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/dfa/DFA.py @@ -0,0 +1,133 @@ +# +# Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. +# Use of this file is governed by the BSD 3-clause license that +# can be found in the LICENSE.txt file in the project root. +from antlr4.atn.ATNState import StarLoopEntryState + +from antlr4.atn.ATNConfigSet import ATNConfigSet +from antlr4.atn.ATNState import DecisionState +from antlr4.dfa.DFAState import DFAState +from antlr4.error.Errors import IllegalStateException + + +class DFA(object): + __slots__ = ('atnStartState', 'decision', '_states', 's0', 'precedenceDfa') + + def __init__(self, atnStartState:DecisionState, decision:int=0): + # From which ATN state did we create this DFA? + self.atnStartState = atnStartState + self.decision = decision + # A set of all DFA states. Use {@link Map} so we can get old state back + # ({@link Set} only allows you to see if it's there). + self._states = dict() + self.s0 = None + # {@code true} if this DFA is for a precedence decision; otherwise, + # {@code false}. This is the backing field for {@link #isPrecedenceDfa}, + # {@link #setPrecedenceDfa}. + self.precedenceDfa = False + + if isinstance(atnStartState, StarLoopEntryState): + if atnStartState.isPrecedenceDecision: + self.precedenceDfa = True + precedenceState = DFAState(configs=ATNConfigSet()) + precedenceState.edges = [] + precedenceState.isAcceptState = False + precedenceState.requiresFullContext = False + self.s0 = precedenceState + + + # Get the start state for a specific precedence value. + # + # @param precedence The current precedence. + # @return The start state corresponding to the specified precedence, or + # {@code null} if no start state exists for the specified precedence. + # + # @throws IllegalStateException if this is not a precedence DFA. + # @see #isPrecedenceDfa() + + def getPrecedenceStartState(self, precedence:int): + if not self.precedenceDfa: + raise IllegalStateException("Only precedence DFAs may contain a precedence start state.") + + # s0.edges is never null for a precedence DFA + if precedence < 0 or precedence >= len(self.s0.edges): + return None + return self.s0.edges[precedence] + + # Set the start state for a specific precedence value. + # + # @param precedence The current precedence. + # @param startState The start state corresponding to the specified + # precedence. + # + # @throws IllegalStateException if this is not a precedence DFA. + # @see #isPrecedenceDfa() + # + def setPrecedenceStartState(self, precedence:int, startState:DFAState): + if not self.precedenceDfa: + raise IllegalStateException("Only precedence DFAs may contain a precedence start state.") + + if precedence < 0: + return + + # synchronization on s0 here is ok. when the DFA is turned into a + # precedence DFA, s0 will be initialized once and not updated again + # s0.edges is never null for a precedence DFA + if precedence >= len(self.s0.edges): + ext = [None] * (precedence + 1 - len(self.s0.edges)) + self.s0.edges.extend(ext) + self.s0.edges[precedence] = startState + # + # Sets whether this is a precedence DFA. If the specified value differs + # from the current DFA configuration, the following actions are taken; + # otherwise no changes are made to the current DFA. + # + #
        + #
      • The {@link #states} map is cleared
      • + #
      • If {@code precedenceDfa} is {@code false}, the initial state + # {@link #s0} is set to {@code null}; otherwise, it is initialized to a new + # {@link DFAState} with an empty outgoing {@link DFAState#edges} array to + # store the start states for individual precedence values.
      • + #
      • The {@link #precedenceDfa} field is updated
      • + #
      + # + # @param precedenceDfa {@code true} if this is a precedence DFA; otherwise, + # {@code false} + + def setPrecedenceDfa(self, precedenceDfa:bool): + if self.precedenceDfa != precedenceDfa: + self._states = dict() + if precedenceDfa: + precedenceState = DFAState(configs=ATNConfigSet()) + precedenceState.edges = [] + precedenceState.isAcceptState = False + precedenceState.requiresFullContext = False + self.s0 = precedenceState + else: + self.s0 = None + self.precedenceDfa = precedenceDfa + + @property + def states(self): + return self._states + + # Return a list of all states in this DFA, ordered by state number. + def sortedStates(self): + return sorted(self._states.keys(), key=lambda state: state.stateNumber) + + def __str__(self): + return self.toString(None) + + def toString(self, literalNames:list=None, symbolicNames:list=None): + if self.s0 is None: + return "" + from antlr4.dfa.DFASerializer import DFASerializer + serializer = DFASerializer(self,literalNames,symbolicNames) + return str(serializer) + + def toLexerString(self): + if self.s0 is None: + return "" + from antlr4.dfa.DFASerializer import LexerDFASerializer + serializer = LexerDFASerializer(self) + return str(serializer) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/dfa/DFASerializer.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/dfa/DFASerializer.py new file mode 100644 index 0000000..bca0727 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/dfa/DFASerializer.py @@ -0,0 +1,73 @@ +# +# Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. +# Use of this file is governed by the BSD 3-clause license that +# can be found in the LICENSE.txt file in the project root. +#/ + +# A DFA walker that knows how to dump them to serialized strings.#/ +from io import StringIO +from antlr4 import DFA +from antlr4.Utils import str_list +from antlr4.dfa.DFAState import DFAState + + +class DFASerializer(object): + __slots__ = ('dfa', 'literalNames', 'symbolicNames') + + def __init__(self, dfa:DFA, literalNames:list=None, symbolicNames:list=None): + self.dfa = dfa + self.literalNames = literalNames + self.symbolicNames = symbolicNames + + def __str__(self): + if self.dfa.s0 is None: + return None + with StringIO() as buf: + for s in self.dfa.sortedStates(): + n = 0 + if s.edges is not None: + n = len(s.edges) + for i in range(0, n): + t = s.edges[i] + if t is not None and t.stateNumber != 0x7FFFFFFF: + buf.write(self.getStateString(s)) + label = self.getEdgeLabel(i) + buf.write("-") + buf.write(label) + buf.write("->") + buf.write(self.getStateString(t)) + buf.write('\n') + output = buf.getvalue() + if len(output)==0: + return None + else: + return output + + def getEdgeLabel(self, i:int): + if i==0: + return "EOF" + if self.literalNames is not None and i<=len(self.literalNames): + return self.literalNames[i-1] + elif self.symbolicNames is not None and i<=len(self.symbolicNames): + return self.symbolicNames[i-1] + else: + return str(i-1) + + def getStateString(self, s:DFAState): + n = s.stateNumber + baseStateStr = ( ":" if s.isAcceptState else "") + "s" + str(n) + ( "^" if s.requiresFullContext else "") + if s.isAcceptState: + if s.predicates is not None: + return baseStateStr + "=>" + str_list(s.predicates) + else: + return baseStateStr + "=>" + str(s.prediction) + else: + return baseStateStr + +class LexerDFASerializer(DFASerializer): + + def __init__(self, dfa:DFA): + super().__init__(dfa, None) + + def getEdgeLabel(self, i:int): + return "'" + chr(i) + "'" diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/dfa/DFAState.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/dfa/DFAState.py new file mode 100644 index 0000000..51955a4 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/dfa/DFAState.py @@ -0,0 +1,126 @@ +# +# Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. +# Use of this file is governed by the BSD 3-clause license that +# can be found in the LICENSE.txt file in the project root. +#/ + +# Map a predicate to a predicted alternative.#/ +from io import StringIO +from antlr4.atn.ATNConfigSet import ATNConfigSet +from antlr4.atn.SemanticContext import SemanticContext + + +class PredPrediction(object): + __slots__ = ('alt', 'pred') + + def __init__(self, pred:SemanticContext, alt:int): + self.alt = alt + self.pred = pred + + def __str__(self): + return "(" + str(self.pred) + ", " + str(self.alt) + ")" + +# A DFA state represents a set of possible ATN configurations. +# As Aho, Sethi, Ullman p. 117 says "The DFA uses its state +# to keep track of all possible states the ATN can be in after +# reading each input symbol. That is to say, after reading +# input a1a2..an, the DFA is in a state that represents the +# subset T of the states of the ATN that are reachable from the +# ATN's start state along some path labeled a1a2..an." +# In conventional NFA→DFA conversion, therefore, the subset T +# would be a bitset representing the set of states the +# ATN could be in. We need to track the alt predicted by each +# state as well, however. More importantly, we need to maintain +# a stack of states, tracking the closure operations as they +# jump from rule to rule, emulating rule invocations (method calls). +# I have to add a stack to simulate the proper lookahead sequences for +# the underlying LL grammar from which the ATN was derived. +# +#

      I use a set of ATNConfig objects not simple states. An ATNConfig +# is both a state (ala normal conversion) and a RuleContext describing +# the chain of rules (if any) followed to arrive at that state.

      +# +#

      A DFA state may have multiple references to a particular state, +# but with different ATN contexts (with same or different alts) +# meaning that state was reached via a different set of rule invocations.

      +#/ +class DFAState(object): + __slots__ = ( + 'stateNumber', 'configs', 'edges', 'isAcceptState', 'prediction', + 'lexerActionExecutor', 'requiresFullContext', 'predicates' + ) + + def __init__(self, stateNumber:int=-1, configs:ATNConfigSet=ATNConfigSet()): + self.stateNumber = stateNumber + self.configs = configs + # {@code edges[symbol]} points to target of symbol. Shift up by 1 so (-1) + # {@link Token#EOF} maps to {@code edges[0]}. + self.edges = None + self.isAcceptState = False + # if accept state, what ttype do we match or alt do we predict? + # This is set to {@link ATN#INVALID_ALT_NUMBER} when {@link #predicates}{@code !=null} or + # {@link #requiresFullContext}. + self.prediction = 0 + self.lexerActionExecutor = None + # Indicates that this state was created during SLL prediction that + # discovered a conflict between the configurations in the state. Future + # {@link ParserATNSimulator#execATN} invocations immediately jumped doing + # full context prediction if this field is true. + self.requiresFullContext = False + # During SLL parsing, this is a list of predicates associated with the + # ATN configurations of the DFA state. When we have predicates, + # {@link #requiresFullContext} is {@code false} since full context prediction evaluates predicates + # on-the-fly. If this is not null, then {@link #prediction} is + # {@link ATN#INVALID_ALT_NUMBER}. + # + #

      We only use these for non-{@link #requiresFullContext} but conflicting states. That + # means we know from the context (it's $ or we don't dip into outer + # context) that it's an ambiguity not a conflict.

      + # + #

      This list is computed by {@link ParserATNSimulator#predicateDFAState}.

      + self.predicates = None + + + + # Get the set of all alts mentioned by all ATN configurations in this + # DFA state. + def getAltSet(self): + if self.configs is not None: + return set(cfg.alt for cfg in self.configs) or None + return None + + def __hash__(self): + return hash(self.configs) + + # Two {@link DFAState} instances are equal if their ATN configuration sets + # are the same. This method is used to see if a state already exists. + # + #

      Because the number of alternatives and number of ATN configurations are + # finite, there is a finite number of DFA states that can be processed. + # This is necessary to show that the algorithm terminates.

      + # + #

      Cannot test the DFA state numbers here because in + # {@link ParserATNSimulator#addDFAState} we need to know if any other state + # exists that has this exact set of ATN configurations. The + # {@link #stateNumber} is irrelevant.

      + def __eq__(self, other): + # compare set of ATN configurations in this set with other + if self is other: + return True + elif not isinstance(other, DFAState): + return False + else: + return self.configs==other.configs + + def __str__(self): + with StringIO() as buf: + buf.write(str(self.stateNumber)) + buf.write(":") + buf.write(str(self.configs)) + if self.isAcceptState: + buf.write("=>") + if self.predicates is not None: + buf.write(str(self.predicates)) + else: + buf.write(str(self.prediction)) + return buf.getvalue() diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/dfa/__init__.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/dfa/__init__.py new file mode 100644 index 0000000..216c000 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/dfa/__init__.py @@ -0,0 +1 @@ +__author__ = 'ericvergnaud' diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/error/DiagnosticErrorListener.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/error/DiagnosticErrorListener.py new file mode 100644 index 0000000..32ac14b --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/error/DiagnosticErrorListener.py @@ -0,0 +1,107 @@ +# +# Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. +# Use of this file is governed by the BSD 3-clause license that +# can be found in the LICENSE.txt file in the project root. +# + + +# +# This implementation of {@link ANTLRErrorListener} can be used to identify +# certain potential correctness and performance problems in grammars. "Reports" +# are made by calling {@link Parser#notifyErrorListeners} with the appropriate +# message. +# +#
        +#
      • Ambiguities: These are cases where more than one path through the +# grammar can match the input.
      • +#
      • Weak context sensitivity: These are cases where full-context +# prediction resolved an SLL conflict to a unique alternative which equaled the +# minimum alternative of the SLL conflict.
      • +#
      • Strong (forced) context sensitivity: These are cases where the +# full-context prediction resolved an SLL conflict to a unique alternative, +# and the minimum alternative of the SLL conflict was found to not be +# a truly viable alternative. Two-stage parsing cannot be used for inputs where +# this situation occurs.
      • +#
      + +from io import StringIO +from antlr4 import Parser, DFA +from antlr4.atn.ATNConfigSet import ATNConfigSet +from antlr4.error.ErrorListener import ErrorListener + +class DiagnosticErrorListener(ErrorListener): + + def __init__(self, exactOnly:bool=True): + # whether all ambiguities or only exact ambiguities are reported. + self.exactOnly = exactOnly + + def reportAmbiguity(self, recognizer:Parser, dfa:DFA, startIndex:int, + stopIndex:int, exact:bool, ambigAlts:set, configs:ATNConfigSet): + if self.exactOnly and not exact: + return + + with StringIO() as buf: + buf.write("reportAmbiguity d=") + buf.write(self.getDecisionDescription(recognizer, dfa)) + buf.write(": ambigAlts=") + buf.write(str(self.getConflictingAlts(ambigAlts, configs))) + buf.write(", input='") + buf.write(recognizer.getTokenStream().getText(startIndex, stopIndex)) + buf.write("'") + recognizer.notifyErrorListeners(buf.getvalue()) + + + def reportAttemptingFullContext(self, recognizer:Parser, dfa:DFA, startIndex:int, + stopIndex:int, conflictingAlts:set, configs:ATNConfigSet): + with StringIO() as buf: + buf.write("reportAttemptingFullContext d=") + buf.write(self.getDecisionDescription(recognizer, dfa)) + buf.write(", input='") + buf.write(recognizer.getTokenStream().getText(startIndex, stopIndex)) + buf.write("'") + recognizer.notifyErrorListeners(buf.getvalue()) + + def reportContextSensitivity(self, recognizer:Parser, dfa:DFA, startIndex:int, + stopIndex:int, prediction:int, configs:ATNConfigSet): + with StringIO() as buf: + buf.write("reportContextSensitivity d=") + buf.write(self.getDecisionDescription(recognizer, dfa)) + buf.write(", input='") + buf.write(recognizer.getTokenStream().getText(startIndex, stopIndex)) + buf.write("'") + recognizer.notifyErrorListeners(buf.getvalue()) + + def getDecisionDescription(self, recognizer:Parser, dfa:DFA): + decision = dfa.decision + ruleIndex = dfa.atnStartState.ruleIndex + + ruleNames = recognizer.ruleNames + if ruleIndex < 0 or ruleIndex >= len(ruleNames): + return str(decision) + + ruleName = ruleNames[ruleIndex] + if ruleName is None or len(ruleName)==0: + return str(decision) + + return str(decision) + " (" + ruleName + ")" + + # + # Computes the set of conflicting or ambiguous alternatives from a + # configuration set, if that information was not already provided by the + # parser. + # + # @param reportedAlts The set of conflicting or ambiguous alternatives, as + # reported by the parser. + # @param configs The conflicting or ambiguous configuration set. + # @return Returns {@code reportedAlts} if it is not {@code null}, otherwise + # returns the set of alternatives represented in {@code configs}. + # + def getConflictingAlts(self, reportedAlts:set, configs:ATNConfigSet): + if reportedAlts is not None: + return reportedAlts + + result = set() + for config in configs: + result.add(config.alt) + + return result diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/error/ErrorListener.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/error/ErrorListener.py new file mode 100644 index 0000000..933264d --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/error/ErrorListener.py @@ -0,0 +1,72 @@ +# +# Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. +# Use of this file is governed by the BSD 3-clause license that +# can be found in the LICENSE.txt file in the project root. + +# Provides an empty default implementation of {@link ANTLRErrorListener}. The +# default implementation of each method does nothing, but can be overridden as +# necessary. + + +import sys + +class ErrorListener(object): + + def syntaxError(self, recognizer, offendingSymbol, line, column, msg, e): + pass + + def reportAmbiguity(self, recognizer, dfa, startIndex, stopIndex, exact, ambigAlts, configs): + pass + + def reportAttemptingFullContext(self, recognizer, dfa, startIndex, stopIndex, conflictingAlts, configs): + pass + + def reportContextSensitivity(self, recognizer, dfa, startIndex, stopIndex, prediction, configs): + pass + +class ConsoleErrorListener(ErrorListener): + # + # Provides a default instance of {@link ConsoleErrorListener}. + # + INSTANCE = None + + # + # {@inheritDoc} + # + #

      + # This implementation prints messages to {@link System#err} containing the + # values of {@code line}, {@code charPositionInLine}, and {@code msg} using + # the following format.

      + # + #
      +    # line line:charPositionInLine msg
      +    # 
      + # + def syntaxError(self, recognizer, offendingSymbol, line, column, msg, e): + print("line " + str(line) + ":" + str(column) + " " + msg, file=sys.stderr) + +ConsoleErrorListener.INSTANCE = ConsoleErrorListener() + +class ProxyErrorListener(ErrorListener): + + def __init__(self, delegates): + super().__init__() + if delegates is None: + raise ReferenceError("delegates") + self.delegates = delegates + + def syntaxError(self, recognizer, offendingSymbol, line, column, msg, e): + for delegate in self.delegates: + delegate.syntaxError(recognizer, offendingSymbol, line, column, msg, e) + + def reportAmbiguity(self, recognizer, dfa, startIndex, stopIndex, exact, ambigAlts, configs): + for delegate in self.delegates: + delegate.reportAmbiguity(recognizer, dfa, startIndex, stopIndex, exact, ambigAlts, configs) + + def reportAttemptingFullContext(self, recognizer, dfa, startIndex, stopIndex, conflictingAlts, configs): + for delegate in self.delegates: + delegate.reportAttemptingFullContext(recognizer, dfa, startIndex, stopIndex, conflictingAlts, configs) + + def reportContextSensitivity(self, recognizer, dfa, startIndex, stopIndex, prediction, configs): + for delegate in self.delegates: + delegate.reportContextSensitivity(recognizer, dfa, startIndex, stopIndex, prediction, configs) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/error/ErrorStrategy.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/error/ErrorStrategy.py new file mode 100644 index 0000000..0f7caad --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/error/ErrorStrategy.py @@ -0,0 +1,709 @@ +# +# Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. +# Use of this file is governed by the BSD 3-clause license that +# can be found in the LICENSE.txt file in the project root. +# +import sys +from antlr4.IntervalSet import IntervalSet + +from antlr4.Token import Token +from antlr4.atn.ATNState import ATNState +from antlr4.error.Errors import RecognitionException, NoViableAltException, InputMismatchException, \ + FailedPredicateException, ParseCancellationException + +# need forward declaration +Parser = None + +class ErrorStrategy(object): + + def reset(self, recognizer:Parser): + pass + + def recoverInline(self, recognizer:Parser): + pass + + def recover(self, recognizer:Parser, e:RecognitionException): + pass + + def sync(self, recognizer:Parser): + pass + + def inErrorRecoveryMode(self, recognizer:Parser): + pass + + def reportError(self, recognizer:Parser, e:RecognitionException): + pass + + +# This is the default implementation of {@link ANTLRErrorStrategy} used for +# error reporting and recovery in ANTLR parsers. +# +class DefaultErrorStrategy(ErrorStrategy): + + def __init__(self): + super().__init__() + # Indicates whether the error strategy is currently "recovering from an + # error". This is used to suppress reporting multiple error messages while + # attempting to recover from a detected syntax error. + # + # @see #inErrorRecoveryMode + # + self.errorRecoveryMode = False + + # The index into the input stream where the last error occurred. + # This is used to prevent infinite loops where an error is found + # but no token is consumed during recovery...another error is found, + # ad nauseum. This is a failsafe mechanism to guarantee that at least + # one token/tree node is consumed for two errors. + # + self.lastErrorIndex = -1 + self.lastErrorStates = None + self.nextTokensContext = None + self.nextTokenState = 0 + + #

      The default implementation simply calls {@link #endErrorCondition} to + # ensure that the handler is not in error recovery mode.

      + def reset(self, recognizer:Parser): + self.endErrorCondition(recognizer) + + # + # This method is called to enter error recovery mode when a recognition + # exception is reported. + # + # @param recognizer the parser instance + # + def beginErrorCondition(self, recognizer:Parser): + self.errorRecoveryMode = True + + def inErrorRecoveryMode(self, recognizer:Parser): + return self.errorRecoveryMode + + # + # This method is called to leave error recovery mode after recovering from + # a recognition exception. + # + # @param recognizer + # + def endErrorCondition(self, recognizer:Parser): + self.errorRecoveryMode = False + self.lastErrorStates = None + self.lastErrorIndex = -1 + + # + # {@inheritDoc} + # + #

      The default implementation simply calls {@link #endErrorCondition}.

      + # + def reportMatch(self, recognizer:Parser): + self.endErrorCondition(recognizer) + + # + # {@inheritDoc} + # + #

      The default implementation returns immediately if the handler is already + # in error recovery mode. Otherwise, it calls {@link #beginErrorCondition} + # and dispatches the reporting task based on the runtime type of {@code e} + # according to the following table.

      + # + #
        + #
      • {@link NoViableAltException}: Dispatches the call to + # {@link #reportNoViableAlternative}
      • + #
      • {@link InputMismatchException}: Dispatches the call to + # {@link #reportInputMismatch}
      • + #
      • {@link FailedPredicateException}: Dispatches the call to + # {@link #reportFailedPredicate}
      • + #
      • All other types: calls {@link Parser#notifyErrorListeners} to report + # the exception
      • + #
      + # + def reportError(self, recognizer:Parser, e:RecognitionException): + # if we've already reported an error and have not matched a token + # yet successfully, don't report any errors. + if self.inErrorRecoveryMode(recognizer): + return # don't report spurious errors + self.beginErrorCondition(recognizer) + if isinstance( e, NoViableAltException ): + self.reportNoViableAlternative(recognizer, e) + elif isinstance( e, InputMismatchException ): + self.reportInputMismatch(recognizer, e) + elif isinstance( e, FailedPredicateException ): + self.reportFailedPredicate(recognizer, e) + else: + print("unknown recognition error type: " + type(e).__name__) + recognizer.notifyErrorListeners(e.message, e.offendingToken, e) + + # + # {@inheritDoc} + # + #

      The default implementation resynchronizes the parser by consuming tokens + # until we find one in the resynchronization set--loosely the set of tokens + # that can follow the current rule.

      + # + def recover(self, recognizer:Parser, e:RecognitionException): + if self.lastErrorIndex==recognizer.getInputStream().index \ + and self.lastErrorStates is not None \ + and recognizer.state in self.lastErrorStates: + # uh oh, another error at same token index and previously-visited + # state in ATN; must be a case where LT(1) is in the recovery + # token set so nothing got consumed. Consume a single token + # at least to prevent an infinite loop; this is a failsafe. + recognizer.consume() + + self.lastErrorIndex = recognizer._input.index + if self.lastErrorStates is None: + self.lastErrorStates = [] + self.lastErrorStates.append(recognizer.state) + followSet = self.getErrorRecoverySet(recognizer) + self.consumeUntil(recognizer, followSet) + + # The default implementation of {@link ANTLRErrorStrategy#sync} makes sure + # that the current lookahead symbol is consistent with what were expecting + # at this point in the ATN. You can call this anytime but ANTLR only + # generates code to check before subrules/loops and each iteration. + # + #

      Implements Jim Idle's magic sync mechanism in closures and optional + # subrules. E.g.,

      + # + #
      +    # a : sync ( stuff sync )* ;
      +    # sync : {consume to what can follow sync} ;
      +    # 
      + # + # At the start of a sub rule upon error, {@link #sync} performs single + # token deletion, if possible. If it can't do that, it bails on the current + # rule and uses the default error recovery, which consumes until the + # resynchronization set of the current rule. + # + #

      If the sub rule is optional ({@code (...)?}, {@code (...)*}, or block + # with an empty alternative), then the expected set includes what follows + # the subrule.

      + # + #

      During loop iteration, it consumes until it sees a token that can start a + # sub rule or what follows loop. Yes, that is pretty aggressive. We opt to + # stay in the loop as long as possible.

      + # + #

      ORIGINS

      + # + #

      Previous versions of ANTLR did a poor job of their recovery within loops. + # A single mismatch token or missing token would force the parser to bail + # out of the entire rules surrounding the loop. So, for rule

      + # + #
      +    # classDef : 'class' ID '{' member* '}'
      +    # 
      + # + # input with an extra token between members would force the parser to + # consume until it found the next class definition rather than the next + # member definition of the current class. + # + #

      This functionality cost a little bit of effort because the parser has to + # compare token set at the start of the loop and at each iteration. If for + # some reason speed is suffering for you, you can turn off this + # functionality by simply overriding this method as a blank { }.

      + # + def sync(self, recognizer:Parser): + # If already recovering, don't try to sync + if self.inErrorRecoveryMode(recognizer): + return + + s = recognizer._interp.atn.states[recognizer.state] + la = recognizer.getTokenStream().LA(1) + # try cheaper subset first; might get lucky. seems to shave a wee bit off + nextTokens = recognizer.atn.nextTokens(s) + if la in nextTokens: + self.nextTokensContext = None + self.nextTokenState = ATNState.INVALID_STATE_NUMBER + return + elif Token.EPSILON in nextTokens: + if self.nextTokensContext is None: + # It's possible the next token won't match information tracked + # by sync is restricted for performance. + self.nextTokensContext = recognizer._ctx + self.nextTokensState = recognizer._stateNumber + return + + if s.stateType in [ATNState.BLOCK_START, ATNState.STAR_BLOCK_START, + ATNState.PLUS_BLOCK_START, ATNState.STAR_LOOP_ENTRY]: + # report error and recover if possible + if self.singleTokenDeletion(recognizer)is not None: + return + else: + raise InputMismatchException(recognizer) + + elif s.stateType in [ATNState.PLUS_LOOP_BACK, ATNState.STAR_LOOP_BACK]: + self.reportUnwantedToken(recognizer) + expecting = recognizer.getExpectedTokens() + whatFollowsLoopIterationOrRule = expecting.addSet(self.getErrorRecoverySet(recognizer)) + self.consumeUntil(recognizer, whatFollowsLoopIterationOrRule) + + else: + # do nothing if we can't identify the exact kind of ATN state + pass + + # This is called by {@link #reportError} when the exception is a + # {@link NoViableAltException}. + # + # @see #reportError + # + # @param recognizer the parser instance + # @param e the recognition exception + # + def reportNoViableAlternative(self, recognizer:Parser, e:NoViableAltException): + tokens = recognizer.getTokenStream() + if tokens is not None: + if e.startToken.type==Token.EOF: + input = "" + else: + input = tokens.getText(e.startToken, e.offendingToken) + else: + input = "" + msg = "no viable alternative at input " + self.escapeWSAndQuote(input) + recognizer.notifyErrorListeners(msg, e.offendingToken, e) + + # + # This is called by {@link #reportError} when the exception is an + # {@link InputMismatchException}. + # + # @see #reportError + # + # @param recognizer the parser instance + # @param e the recognition exception + # + def reportInputMismatch(self, recognizer:Parser, e:InputMismatchException): + msg = "mismatched input " + self.getTokenErrorDisplay(e.offendingToken) \ + + " expecting " + e.getExpectedTokens().toString(recognizer.literalNames, recognizer.symbolicNames) + recognizer.notifyErrorListeners(msg, e.offendingToken, e) + + # + # This is called by {@link #reportError} when the exception is a + # {@link FailedPredicateException}. + # + # @see #reportError + # + # @param recognizer the parser instance + # @param e the recognition exception + # + def reportFailedPredicate(self, recognizer, e): + ruleName = recognizer.ruleNames[recognizer._ctx.getRuleIndex()] + msg = "rule " + ruleName + " " + e.message + recognizer.notifyErrorListeners(msg, e.offendingToken, e) + + # This method is called to report a syntax error which requires the removal + # of a token from the input stream. At the time this method is called, the + # erroneous symbol is current {@code LT(1)} symbol and has not yet been + # removed from the input stream. When this method returns, + # {@code recognizer} is in error recovery mode. + # + #

      This method is called when {@link #singleTokenDeletion} identifies + # single-token deletion as a viable recovery strategy for a mismatched + # input error.

      + # + #

      The default implementation simply returns if the handler is already in + # error recovery mode. Otherwise, it calls {@link #beginErrorCondition} to + # enter error recovery mode, followed by calling + # {@link Parser#notifyErrorListeners}.

      + # + # @param recognizer the parser instance + # + def reportUnwantedToken(self, recognizer:Parser): + if self.inErrorRecoveryMode(recognizer): + return + + self.beginErrorCondition(recognizer) + t = recognizer.getCurrentToken() + tokenName = self.getTokenErrorDisplay(t) + expecting = self.getExpectedTokens(recognizer) + msg = "extraneous input " + tokenName + " expecting " \ + + expecting.toString(recognizer.literalNames, recognizer.symbolicNames) + recognizer.notifyErrorListeners(msg, t, None) + + # This method is called to report a syntax error which requires the + # insertion of a missing token into the input stream. At the time this + # method is called, the missing token has not yet been inserted. When this + # method returns, {@code recognizer} is in error recovery mode. + # + #

      This method is called when {@link #singleTokenInsertion} identifies + # single-token insertion as a viable recovery strategy for a mismatched + # input error.

      + # + #

      The default implementation simply returns if the handler is already in + # error recovery mode. Otherwise, it calls {@link #beginErrorCondition} to + # enter error recovery mode, followed by calling + # {@link Parser#notifyErrorListeners}.

      + # + # @param recognizer the parser instance + # + def reportMissingToken(self, recognizer:Parser): + if self.inErrorRecoveryMode(recognizer): + return + self.beginErrorCondition(recognizer) + t = recognizer.getCurrentToken() + expecting = self.getExpectedTokens(recognizer) + msg = "missing " + expecting.toString(recognizer.literalNames, recognizer.symbolicNames) \ + + " at " + self.getTokenErrorDisplay(t) + recognizer.notifyErrorListeners(msg, t, None) + + #

      The default implementation attempts to recover from the mismatched input + # by using single token insertion and deletion as described below. If the + # recovery attempt fails, this method throws an + # {@link InputMismatchException}.

      + # + #

      EXTRA TOKEN (single token deletion)

      + # + #

      {@code LA(1)} is not what we are looking for. If {@code LA(2)} has the + # right token, however, then assume {@code LA(1)} is some extra spurious + # token and delete it. Then consume and return the next token (which was + # the {@code LA(2)} token) as the successful result of the match operation.

      + # + #

      This recovery strategy is implemented by {@link #singleTokenDeletion}.

      + # + #

      MISSING TOKEN (single token insertion)

      + # + #

      If current token (at {@code LA(1)}) is consistent with what could come + # after the expected {@code LA(1)} token, then assume the token is missing + # and use the parser's {@link TokenFactory} to create it on the fly. The + # "insertion" is performed by returning the created token as the successful + # result of the match operation.

      + # + #

      This recovery strategy is implemented by {@link #singleTokenInsertion}.

      + # + #

      EXAMPLE

      + # + #

      For example, Input {@code i=(3;} is clearly missing the {@code ')'}. When + # the parser returns from the nested call to {@code expr}, it will have + # call chain:

      + # + #
      +    # stat → expr → atom
      +    # 
      + # + # and it will be trying to match the {@code ')'} at this point in the + # derivation: + # + #
      +    # => ID '=' '(' INT ')' ('+' atom)* ';'
      +    #                    ^
      +    # 
      + # + # The attempt to match {@code ')'} will fail when it sees {@code ';'} and + # call {@link #recoverInline}. To recover, it sees that {@code LA(1)==';'} + # is in the set of tokens that can follow the {@code ')'} token reference + # in rule {@code atom}. It can assume that you forgot the {@code ')'}. + # + def recoverInline(self, recognizer:Parser): + # SINGLE TOKEN DELETION + matchedSymbol = self.singleTokenDeletion(recognizer) + if matchedSymbol is not None: + # we have deleted the extra token. + # now, move past ttype token as if all were ok + recognizer.consume() + return matchedSymbol + + # SINGLE TOKEN INSERTION + if self.singleTokenInsertion(recognizer): + return self.getMissingSymbol(recognizer) + + # even that didn't work; must throw the exception + raise InputMismatchException(recognizer) + + # + # This method implements the single-token insertion inline error recovery + # strategy. It is called by {@link #recoverInline} if the single-token + # deletion strategy fails to recover from the mismatched input. If this + # method returns {@code true}, {@code recognizer} will be in error recovery + # mode. + # + #

      This method determines whether or not single-token insertion is viable by + # checking if the {@code LA(1)} input symbol could be successfully matched + # if it were instead the {@code LA(2)} symbol. If this method returns + # {@code true}, the caller is responsible for creating and inserting a + # token with the correct type to produce this behavior.

      + # + # @param recognizer the parser instance + # @return {@code true} if single-token insertion is a viable recovery + # strategy for the current mismatched input, otherwise {@code false} + # + def singleTokenInsertion(self, recognizer:Parser): + currentSymbolType = recognizer.getTokenStream().LA(1) + # if current token is consistent with what could come after current + # ATN state, then we know we're missing a token; error recovery + # is free to conjure up and insert the missing token + atn = recognizer._interp.atn + currentState = atn.states[recognizer.state] + next = currentState.transitions[0].target + expectingAtLL2 = atn.nextTokens(next, recognizer._ctx) + if currentSymbolType in expectingAtLL2: + self.reportMissingToken(recognizer) + return True + else: + return False + + # This method implements the single-token deletion inline error recovery + # strategy. It is called by {@link #recoverInline} to attempt to recover + # from mismatched input. If this method returns null, the parser and error + # handler state will not have changed. If this method returns non-null, + # {@code recognizer} will not be in error recovery mode since the + # returned token was a successful match. + # + #

      If the single-token deletion is successful, this method calls + # {@link #reportUnwantedToken} to report the error, followed by + # {@link Parser#consume} to actually "delete" the extraneous token. Then, + # before returning {@link #reportMatch} is called to signal a successful + # match.

      + # + # @param recognizer the parser instance + # @return the successfully matched {@link Token} instance if single-token + # deletion successfully recovers from the mismatched input, otherwise + # {@code null} + # + def singleTokenDeletion(self, recognizer:Parser): + nextTokenType = recognizer.getTokenStream().LA(2) + expecting = self.getExpectedTokens(recognizer) + if nextTokenType in expecting: + self.reportUnwantedToken(recognizer) + # print("recoverFromMismatchedToken deleting " \ + # + str(recognizer.getTokenStream().LT(1)) \ + # + " since " + str(recognizer.getTokenStream().LT(2)) \ + # + " is what we want", file=sys.stderr) + recognizer.consume() # simply delete extra token + # we want to return the token we're actually matching + matchedSymbol = recognizer.getCurrentToken() + self.reportMatch(recognizer) # we know current token is correct + return matchedSymbol + else: + return None + + # Conjure up a missing token during error recovery. + # + # The recognizer attempts to recover from single missing + # symbols. But, actions might refer to that missing symbol. + # For example, x=ID {f($x);}. The action clearly assumes + # that there has been an identifier matched previously and that + # $x points at that token. If that token is missing, but + # the next token in the stream is what we want we assume that + # this token is missing and we keep going. Because we + # have to return some token to replace the missing token, + # we have to conjure one up. This method gives the user control + # over the tokens returned for missing tokens. Mostly, + # you will want to create something special for identifier + # tokens. For literals such as '{' and ',', the default + # action in the parser or tree parser works. It simply creates + # a CommonToken of the appropriate type. The text will be the token. + # If you change what tokens must be created by the lexer, + # override this method to create the appropriate tokens. + # + def getMissingSymbol(self, recognizer:Parser): + currentSymbol = recognizer.getCurrentToken() + expecting = self.getExpectedTokens(recognizer) + expectedTokenType = expecting[0] # get any element + if expectedTokenType==Token.EOF: + tokenText = "" + else: + name = None + if expectedTokenType < len(recognizer.literalNames): + name = recognizer.literalNames[expectedTokenType] + if name is None and expectedTokenType < len(recognizer.symbolicNames): + name = recognizer.symbolicNames[expectedTokenType] + tokenText = "" + current = currentSymbol + lookback = recognizer.getTokenStream().LT(-1) + if current.type==Token.EOF and lookback is not None: + current = lookback + return recognizer.getTokenFactory().create(current.source, + expectedTokenType, tokenText, Token.DEFAULT_CHANNEL, + -1, -1, current.line, current.column) + + def getExpectedTokens(self, recognizer:Parser): + return recognizer.getExpectedTokens() + + # How should a token be displayed in an error message? The default + # is to display just the text, but during development you might + # want to have a lot of information spit out. Override in that case + # to use t.toString() (which, for CommonToken, dumps everything about + # the token). This is better than forcing you to override a method in + # your token objects because you don't have to go modify your lexer + # so that it creates a new Java type. + # + def getTokenErrorDisplay(self, t:Token): + if t is None: + return "" + s = t.text + if s is None: + if t.type==Token.EOF: + s = "" + else: + s = "<" + str(t.type) + ">" + return self.escapeWSAndQuote(s) + + def escapeWSAndQuote(self, s:str): + s = s.replace("\n","\\n") + s = s.replace("\r","\\r") + s = s.replace("\t","\\t") + return "'" + s + "'" + + # Compute the error recovery set for the current rule. During + # rule invocation, the parser pushes the set of tokens that can + # follow that rule reference on the stack; this amounts to + # computing FIRST of what follows the rule reference in the + # enclosing rule. See LinearApproximator.FIRST(). + # This local follow set only includes tokens + # from within the rule; i.e., the FIRST computation done by + # ANTLR stops at the end of a rule. + # + # EXAMPLE + # + # When you find a "no viable alt exception", the input is not + # consistent with any of the alternatives for rule r. The best + # thing to do is to consume tokens until you see something that + # can legally follow a call to r#or* any rule that called r. + # You don't want the exact set of viable next tokens because the + # input might just be missing a token--you might consume the + # rest of the input looking for one of the missing tokens. + # + # Consider grammar: + # + # a : '[' b ']' + # | '(' b ')' + # ; + # b : c '^' INT ; + # c : ID + # | INT + # ; + # + # At each rule invocation, the set of tokens that could follow + # that rule is pushed on a stack. Here are the various + # context-sensitive follow sets: + # + # FOLLOW(b1_in_a) = FIRST(']') = ']' + # FOLLOW(b2_in_a) = FIRST(')') = ')' + # FOLLOW(c_in_b) = FIRST('^') = '^' + # + # Upon erroneous input "[]", the call chain is + # + # a -> b -> c + # + # and, hence, the follow context stack is: + # + # depth follow set start of rule execution + # 0 a (from main()) + # 1 ']' b + # 2 '^' c + # + # Notice that ')' is not included, because b would have to have + # been called from a different context in rule a for ')' to be + # included. + # + # For error recovery, we cannot consider FOLLOW(c) + # (context-sensitive or otherwise). We need the combined set of + # all context-sensitive FOLLOW sets--the set of all tokens that + # could follow any reference in the call chain. We need to + # resync to one of those tokens. Note that FOLLOW(c)='^' and if + # we resync'd to that token, we'd consume until EOF. We need to + # sync to context-sensitive FOLLOWs for a, b, and c: {']','^'}. + # In this case, for input "[]", LA(1) is ']' and in the set, so we would + # not consume anything. After printing an error, rule c would + # return normally. Rule b would not find the required '^' though. + # At this point, it gets a mismatched token error and throws an + # exception (since LA(1) is not in the viable following token + # set). The rule exception handler tries to recover, but finds + # the same recovery set and doesn't consume anything. Rule b + # exits normally returning to rule a. Now it finds the ']' (and + # with the successful match exits errorRecovery mode). + # + # So, you can see that the parser walks up the call chain looking + # for the token that was a member of the recovery set. + # + # Errors are not generated in errorRecovery mode. + # + # ANTLR's error recovery mechanism is based upon original ideas: + # + # "Algorithms + Data Structures = Programs" by Niklaus Wirth + # + # and + # + # "A note on error recovery in recursive descent parsers": + # http:#portal.acm.org/citation.cfm?id=947902.947905 + # + # Later, Josef Grosch had some good ideas: + # + # "Efficient and Comfortable Error Recovery in Recursive Descent + # Parsers": + # ftp:#www.cocolab.com/products/cocktail/doca4.ps/ell.ps.zip + # + # Like Grosch I implement context-sensitive FOLLOW sets that are combined + # at run-time upon error to avoid overhead during parsing. + # + def getErrorRecoverySet(self, recognizer:Parser): + atn = recognizer._interp.atn + ctx = recognizer._ctx + recoverSet = IntervalSet() + while ctx is not None and ctx.invokingState>=0: + # compute what follows who invoked us + invokingState = atn.states[ctx.invokingState] + rt = invokingState.transitions[0] + follow = atn.nextTokens(rt.followState) + recoverSet.addSet(follow) + ctx = ctx.parentCtx + recoverSet.removeOne(Token.EPSILON) + return recoverSet + + # Consume tokens until one matches the given token set.# + def consumeUntil(self, recognizer:Parser, set_:set): + ttype = recognizer.getTokenStream().LA(1) + while ttype != Token.EOF and not ttype in set_: + recognizer.consume() + ttype = recognizer.getTokenStream().LA(1) + + +# +# This implementation of {@link ANTLRErrorStrategy} responds to syntax errors +# by immediately canceling the parse operation with a +# {@link ParseCancellationException}. The implementation ensures that the +# {@link ParserRuleContext#exception} field is set for all parse tree nodes +# that were not completed prior to encountering the error. +# +#

      +# This error strategy is useful in the following scenarios.

      +# +#
        +#
      • Two-stage parsing: This error strategy allows the first +# stage of two-stage parsing to immediately terminate if an error is +# encountered, and immediately fall back to the second stage. In addition to +# avoiding wasted work by attempting to recover from errors here, the empty +# implementation of {@link BailErrorStrategy#sync} improves the performance of +# the first stage.
      • +#
      • Silent validation: When syntax errors are not being +# reported or logged, and the parse result is simply ignored if errors occur, +# the {@link BailErrorStrategy} avoids wasting work on recovering from errors +# when the result will be ignored either way.
      • +#
      +# +#

      +# {@code myparser.setErrorHandler(new BailErrorStrategy());}

      +# +# @see Parser#setErrorHandler(ANTLRErrorStrategy) +# +class BailErrorStrategy(DefaultErrorStrategy): + # Instead of recovering from exception {@code e}, re-throw it wrapped + # in a {@link ParseCancellationException} so it is not caught by the + # rule function catches. Use {@link Exception#getCause()} to get the + # original {@link RecognitionException}. + # + def recover(self, recognizer:Parser, e:RecognitionException): + context = recognizer._ctx + while context is not None: + context.exception = e + context = context.parentCtx + raise ParseCancellationException(e) + + # Make sure we don't attempt to recover inline; if the parser + # successfully recovers, it won't throw an exception. + # + def recoverInline(self, recognizer:Parser): + self.recover(recognizer, InputMismatchException(recognizer)) + + # Make sure we don't attempt to recover from problems in subrules.# + def sync(self, recognizer:Parser): + pass + +del Parser \ No newline at end of file diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/error/Errors.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/error/Errors.py new file mode 100644 index 0000000..e78ac05 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/error/Errors.py @@ -0,0 +1,172 @@ +# Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. +# Use of this file is governed by the BSD 3-clause license that +# can be found in the LICENSE.txt file in the project root. +# + +# need forward declaration +Token = None +Lexer = None +Parser = None +TokenStream = None +ATNConfigSet = None +ParserRulecontext = None +PredicateTransition = None +BufferedTokenStream = None + +class UnsupportedOperationException(Exception): + + def __init__(self, msg:str): + super().__init__(msg) + +class IllegalStateException(Exception): + + def __init__(self, msg:str): + super().__init__(msg) + +class CancellationException(IllegalStateException): + + def __init__(self, msg:str): + super().__init__(msg) + +# The root of the ANTLR exception hierarchy. In general, ANTLR tracks just +# 3 kinds of errors: prediction errors, failed predicate errors, and +# mismatched input errors. In each case, the parser knows where it is +# in the input, where it is in the ATN, the rule invocation stack, +# and what kind of problem occurred. + +from antlr4.InputStream import InputStream +from antlr4.ParserRuleContext import ParserRuleContext +from antlr4.Recognizer import Recognizer + +class RecognitionException(Exception): + + + def __init__(self, message:str=None, recognizer:Recognizer=None, input:InputStream=None, ctx:ParserRulecontext=None): + super().__init__(message) + self.message = message + self.recognizer = recognizer + self.input = input + self.ctx = ctx + # The current {@link Token} when an error occurred. Since not all streams + # support accessing symbols by index, we have to track the {@link Token} + # instance itself. + self.offendingToken = None + # Get the ATN state number the parser was in at the time the error + # occurred. For {@link NoViableAltException} and + # {@link LexerNoViableAltException} exceptions, this is the + # {@link DecisionState} number. For others, it is the state whose outgoing + # edge we couldn't match. + self.offendingState = -1 + if recognizer is not None: + self.offendingState = recognizer.state + + #

      If the state number is not known, this method returns -1.

      + + # + # Gets the set of input symbols which could potentially follow the + # previously matched symbol at the time this exception was thrown. + # + #

      If the set of expected tokens is not known and could not be computed, + # this method returns {@code null}.

      + # + # @return The set of token types that could potentially follow the current + # state in the ATN, or {@code null} if the information is not available. + #/ + def getExpectedTokens(self): + if self.recognizer is not None: + return self.recognizer.atn.getExpectedTokens(self.offendingState, self.ctx) + else: + return None + + +class LexerNoViableAltException(RecognitionException): + + def __init__(self, lexer:Lexer, input:InputStream, startIndex:int, deadEndConfigs:ATNConfigSet): + super().__init__(message=None, recognizer=lexer, input=input, ctx=None) + self.startIndex = startIndex + self.deadEndConfigs = deadEndConfigs + + def __str__(self): + symbol = "" + if self.startIndex >= 0 and self.startIndex < self.input.size: + symbol = self.input.getText(self.startIndex, self.startIndex) + # TODO symbol = Utils.escapeWhitespace(symbol, false); + return "LexerNoViableAltException('" + symbol + "')" + +# Indicates that the parser could not decide which of two or more paths +# to take based upon the remaining input. It tracks the starting token +# of the offending input and also knows where the parser was +# in the various paths when the error. Reported by reportNoViableAlternative() +# +class NoViableAltException(RecognitionException): + + def __init__(self, recognizer:Parser, input:TokenStream=None, startToken:Token=None, + offendingToken:Token=None, deadEndConfigs:ATNConfigSet=None, ctx:ParserRuleContext=None): + if ctx is None: + ctx = recognizer._ctx + if offendingToken is None: + offendingToken = recognizer.getCurrentToken() + if startToken is None: + startToken = recognizer.getCurrentToken() + if input is None: + input = recognizer.getInputStream() + super().__init__(recognizer=recognizer, input=input, ctx=ctx) + # Which configurations did we try at input.index() that couldn't match input.LT(1)?# + self.deadEndConfigs = deadEndConfigs + # The token object at the start index; the input stream might + # not be buffering tokens so get a reference to it. (At the + # time the error occurred, of course the stream needs to keep a + # buffer all of the tokens but later we might not have access to those.) + self.startToken = startToken + self.offendingToken = offendingToken + +# This signifies any kind of mismatched input exceptions such as +# when the current input does not match the expected token. +# +class InputMismatchException(RecognitionException): + + def __init__(self, recognizer:Parser): + super().__init__(recognizer=recognizer, input=recognizer.getInputStream(), ctx=recognizer._ctx) + self.offendingToken = recognizer.getCurrentToken() + + +# A semantic predicate failed during validation. Validation of predicates +# occurs when normally parsing the alternative just like matching a token. +# Disambiguating predicate evaluation occurs when we test a predicate during +# prediction. + +class FailedPredicateException(RecognitionException): + + def __init__(self, recognizer:Parser, predicate:str=None, message:str=None): + super().__init__(message=self.formatMessage(predicate,message), recognizer=recognizer, + input=recognizer.getInputStream(), ctx=recognizer._ctx) + s = recognizer._interp.atn.states[recognizer.state] + trans = s.transitions[0] + from antlr4.atn.Transition import PredicateTransition + if isinstance(trans, PredicateTransition): + self.ruleIndex = trans.ruleIndex + self.predicateIndex = trans.predIndex + else: + self.ruleIndex = 0 + self.predicateIndex = 0 + self.predicate = predicate + self.offendingToken = recognizer.getCurrentToken() + + def formatMessage(self, predicate:str, message:str): + if message is not None: + return message + else: + return "failed predicate: {" + predicate + "}?" + +class ParseCancellationException(CancellationException): + + pass + +del Token +del Lexer +del Parser +del TokenStream +del ATNConfigSet +del ParserRulecontext +del PredicateTransition +del BufferedTokenStream diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/error/__init__.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/error/__init__.py new file mode 100644 index 0000000..216c000 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/error/__init__.py @@ -0,0 +1 @@ +__author__ = 'ericvergnaud' diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/tree/Chunk.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/tree/Chunk.py new file mode 100644 index 0000000..081419a --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/tree/Chunk.py @@ -0,0 +1,30 @@ +# +# Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. +# Use of this file is governed by the BSD 3-clause license that +# can be found in the LICENSE.txt file in the project root. +# + +class Chunk(object): + pass + +class TagChunk(Chunk): + __slots__ = ('tag', 'label') + + def __init__(self, tag:str, label:str=None): + self.tag = tag + self.label = label + + def __str__(self): + if self.label is None: + return self.tag + else: + return self.label + ":" + self.tag + +class TextChunk(Chunk): + __slots__ = 'text' + + def __init__(self, text:str): + self.text = text + + def __str__(self): + return "'" + self.text + "'" diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/tree/ParseTreeMatch.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/tree/ParseTreeMatch.py new file mode 100644 index 0000000..c02bc03 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/tree/ParseTreeMatch.py @@ -0,0 +1,118 @@ +# +# Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. +# Use of this file is governed by the BSD 3-clause license that +# can be found in the LICENSE.txt file in the project root. +# + + +# +# Represents the result of matching a {@link ParseTree} against a tree pattern. +# +from io import StringIO +from antlr4.tree.ParseTreePattern import ParseTreePattern +from antlr4.tree.Tree import ParseTree + + +class ParseTreeMatch(object): + __slots__ = ('tree', 'pattern', 'labels', 'mismatchedNode') + # + # Constructs a new instance of {@link ParseTreeMatch} from the specified + # parse tree and pattern. + # + # @param tree The parse tree to match against the pattern. + # @param pattern The parse tree pattern. + # @param labels A mapping from label names to collections of + # {@link ParseTree} objects located by the tree pattern matching process. + # @param mismatchedNode The first node which failed to match the tree + # pattern during the matching process. + # + # @exception IllegalArgumentException if {@code tree} is {@code null} + # @exception IllegalArgumentException if {@code pattern} is {@code null} + # @exception IllegalArgumentException if {@code labels} is {@code null} + # + def __init__(self, tree:ParseTree, pattern:ParseTreePattern, labels:dict, mismatchedNode:ParseTree): + if tree is None: + raise Exception("tree cannot be null") + if pattern is None: + raise Exception("pattern cannot be null") + if labels is None: + raise Exception("labels cannot be null") + self.tree = tree + self.pattern = pattern + self.labels = labels + self.mismatchedNode = mismatchedNode + + # + # Get the last node associated with a specific {@code label}. + # + #

      For example, for pattern {@code }, {@code get("id")} returns the + # node matched for that {@code ID}. If more than one node + # matched the specified label, only the last is returned. If there is + # no node associated with the label, this returns {@code null}.

      + # + #

      Pattern tags like {@code } and {@code } without labels are + # considered to be labeled with {@code ID} and {@code expr}, respectively.

      + # + # @param label The label to check. + # + # @return The last {@link ParseTree} to match a tag with the specified + # label, or {@code null} if no parse tree matched a tag with the label. + # + def get(self, label:str): + parseTrees = self.labels.get(label, None) + if parseTrees is None or len(parseTrees)==0: + return None + else: + return parseTrees[len(parseTrees)-1] + + # + # Return all nodes matching a rule or token tag with the specified label. + # + #

      If the {@code label} is the name of a parser rule or token in the + # grammar, the resulting list will contain both the parse trees matching + # rule or tags explicitly labeled with the label and the complete set of + # parse trees matching the labeled and unlabeled tags in the pattern for + # the parser rule or token. For example, if {@code label} is {@code "foo"}, + # the result will contain all of the following.

      + # + #
        + #
      • Parse tree nodes matching tags of the form {@code } and + # {@code }.
      • + #
      • Parse tree nodes matching tags of the form {@code }.
      • + #
      • Parse tree nodes matching tags of the form {@code }.
      • + #
      + # + # @param label The label. + # + # @return A collection of all {@link ParseTree} nodes matching tags with + # the specified {@code label}. If no nodes matched the label, an empty list + # is returned. + # + def getAll(self, label:str): + nodes = self.labels.get(label, None) + if nodes is None: + return list() + else: + return nodes + + + # + # Gets a value indicating whether the match operation succeeded. + # + # @return {@code true} if the match operation succeeded; otherwise, + # {@code false}. + # + def succeeded(self): + return self.mismatchedNode is None + + # + # {@inheritDoc} + # + def __str__(self): + with StringIO() as buf: + buf.write("Match ") + buf.write("succeeded" if self.succeeded() else "failed") + buf.write("; found ") + buf.write(str(len(self.labels))) + buf.write(" labels") + return buf.getvalue() diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/tree/ParseTreePattern.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/tree/ParseTreePattern.py new file mode 100644 index 0000000..37fd0bf --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/tree/ParseTreePattern.py @@ -0,0 +1,72 @@ +# +# Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. +# Use of this file is governed by the BSD 3-clause license that +# can be found in the LICENSE.txt file in the project root. +# + +# +# A pattern like {@code = ;} converted to a {@link ParseTree} by +# {@link ParseTreePatternMatcher#compile(String, int)}. +# +from antlr4.tree.ParseTreePatternMatcher import ParseTreePatternMatcher +from antlr4.tree.Tree import ParseTree +from antlr4.xpath.XPath import XPath + + +class ParseTreePattern(object): + __slots__ = ('matcher', 'patternRuleIndex', 'pattern', 'patternTree') + + # Construct a new instance of the {@link ParseTreePattern} class. + # + # @param matcher The {@link ParseTreePatternMatcher} which created this + # tree pattern. + # @param pattern The tree pattern in concrete syntax form. + # @param patternRuleIndex The parser rule which serves as the root of the + # tree pattern. + # @param patternTree The tree pattern in {@link ParseTree} form. + # + def __init__(self, matcher:ParseTreePatternMatcher, pattern:str, patternRuleIndex:int , patternTree:ParseTree): + self.matcher = matcher + self.patternRuleIndex = patternRuleIndex + self.pattern = pattern + self.patternTree = patternTree + + # + # Match a specific parse tree against this tree pattern. + # + # @param tree The parse tree to match against this tree pattern. + # @return A {@link ParseTreeMatch} object describing the result of the + # match operation. The {@link ParseTreeMatch#succeeded()} method can be + # used to determine whether or not the match was successful. + # + def match(self, tree:ParseTree): + return self.matcher.match(tree, self) + + # + # Determine whether or not a parse tree matches this tree pattern. + # + # @param tree The parse tree to match against this tree pattern. + # @return {@code true} if {@code tree} is a match for the current tree + # pattern; otherwise, {@code false}. + # + def matches(self, tree:ParseTree): + return self.matcher.match(tree, self).succeeded() + + # Find all nodes using XPath and then try to match those subtrees against + # this tree pattern. + # + # @param tree The {@link ParseTree} to match against this pattern. + # @param xpath An expression matching the nodes + # + # @return A collection of {@link ParseTreeMatch} objects describing the + # successful matches. Unsuccessful matches are omitted from the result, + # regardless of the reason for the failure. + # + def findAll(self, tree:ParseTree, xpath:str): + subtrees = XPath.findAll(tree, xpath, self.matcher.parser) + matches = list() + for t in subtrees: + match = self.match(t) + if match.succeeded(): + matches.append(match) + return matches diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/tree/ParseTreePatternMatcher.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/tree/ParseTreePatternMatcher.py new file mode 100644 index 0000000..62fd197 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/tree/ParseTreePatternMatcher.py @@ -0,0 +1,374 @@ +# +# Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. +# Use of this file is governed by the BSD 3-clause license that +# can be found in the LICENSE.txt file in the project root. +# + +# +# A tree pattern matching mechanism for ANTLR {@link ParseTree}s. +# +#

      Patterns are strings of source input text with special tags representing +# token or rule references such as:

      +# +#

      {@code = ;}

      +# +#

      Given a pattern start rule such as {@code statement}, this object constructs +# a {@link ParseTree} with placeholders for the {@code ID} and {@code expr} +# subtree. Then the {@link #match} routines can compare an actual +# {@link ParseTree} from a parse with this pattern. Tag {@code } matches +# any {@code ID} token and tag {@code } references the result of the +# {@code expr} rule (generally an instance of {@code ExprContext}.

      +# +#

      Pattern {@code x = 0;} is a similar pattern that matches the same pattern +# except that it requires the identifier to be {@code x} and the expression to +# be {@code 0}.

      +# +#

      The {@link #matches} routines return {@code true} or {@code false} based +# upon a match for the tree rooted at the parameter sent in. The +# {@link #match} routines return a {@link ParseTreeMatch} object that +# contains the parse tree, the parse tree pattern, and a map from tag name to +# matched nodes (more below). A subtree that fails to match, returns with +# {@link ParseTreeMatch#mismatchedNode} set to the first tree node that did not +# match.

      +# +#

      For efficiency, you can compile a tree pattern in string form to a +# {@link ParseTreePattern} object.

      +# +#

      See {@code TestParseTreeMatcher} for lots of examples. +# {@link ParseTreePattern} has two static helper methods: +# {@link ParseTreePattern#findAll} and {@link ParseTreePattern#match} that +# are easy to use but not super efficient because they create new +# {@link ParseTreePatternMatcher} objects each time and have to compile the +# pattern in string form before using it.

      +# +#

      The lexer and parser that you pass into the {@link ParseTreePatternMatcher} +# constructor are used to parse the pattern in string form. The lexer converts +# the {@code = ;} into a sequence of four tokens (assuming lexer +# throws out whitespace or puts it on a hidden channel). Be aware that the +# input stream is reset for the lexer (but not the parser; a +# {@link ParserInterpreter} is created to parse the input.). Any user-defined +# fields you have put into the lexer might get changed when this mechanism asks +# it to scan the pattern string.

      +# +#

      Normally a parser does not accept token {@code } as a valid +# {@code expr} but, from the parser passed in, we create a special version of +# the underlying grammar representation (an {@link ATN}) that allows imaginary +# tokens representing rules ({@code }) to match entire rules. We call +# these bypass alternatives.

      +# +#

      Delimiters are {@code <} and {@code >}, with {@code \} as the escape string +# by default, but you can set them to whatever you want using +# {@link #setDelimiters}. You must escape both start and stop strings +# {@code \<} and {@code \>}.

      +# +from antlr4.CommonTokenStream import CommonTokenStream +from antlr4.InputStream import InputStream +from antlr4.ParserRuleContext import ParserRuleContext +from antlr4.Lexer import Lexer +from antlr4.ListTokenSource import ListTokenSource +from antlr4.Token import Token +from antlr4.error.ErrorStrategy import BailErrorStrategy +from antlr4.error.Errors import RecognitionException, ParseCancellationException +from antlr4.tree.Chunk import TagChunk, TextChunk +from antlr4.tree.RuleTagToken import RuleTagToken +from antlr4.tree.TokenTagToken import TokenTagToken +from antlr4.tree.Tree import ParseTree, TerminalNode, RuleNode + +# need forward declaration +Parser = None +ParseTreePattern = None + +class CannotInvokeStartRule(Exception): + + def __init__(self, e:Exception): + super().__init__(e) + +class StartRuleDoesNotConsumeFullPattern(Exception): + + pass + + +class ParseTreePatternMatcher(object): + __slots__ = ('lexer', 'parser', 'start', 'stop', 'escape') + + # Constructs a {@link ParseTreePatternMatcher} or from a {@link Lexer} and + # {@link Parser} object. The lexer input stream is altered for tokenizing + # the tree patterns. The parser is used as a convenient mechanism to get + # the grammar name, plus token, rule names. + def __init__(self, lexer:Lexer, parser:Parser): + self.lexer = lexer + self.parser = parser + self.start = "<" + self.stop = ">" + self.escape = "\\" # e.g., \< and \> must escape BOTH! + + # Set the delimiters used for marking rule and token tags within concrete + # syntax used by the tree pattern parser. + # + # @param start The start delimiter. + # @param stop The stop delimiter. + # @param escapeLeft The escape sequence to use for escaping a start or stop delimiter. + # + # @exception IllegalArgumentException if {@code start} is {@code null} or empty. + # @exception IllegalArgumentException if {@code stop} is {@code null} or empty. + # + def setDelimiters(self, start:str, stop:str, escapeLeft:str): + if start is None or len(start)==0: + raise Exception("start cannot be null or empty") + if stop is None or len(stop)==0: + raise Exception("stop cannot be null or empty") + self.start = start + self.stop = stop + self.escape = escapeLeft + + # Does {@code pattern} matched as rule {@code patternRuleIndex} match {@code tree}?# + def matchesRuleIndex(self, tree:ParseTree, pattern:str, patternRuleIndex:int): + p = self.compileTreePattern(pattern, patternRuleIndex) + return self.matches(tree, p) + + # Does {@code pattern} matched as rule patternRuleIndex match tree? Pass in a + # compiled pattern instead of a string representation of a tree pattern. + # + def matchesPattern(self, tree:ParseTree, pattern:ParseTreePattern): + mismatchedNode = self.matchImpl(tree, pattern.patternTree, dict()) + return mismatchedNode is None + + # + # Compare {@code pattern} matched as rule {@code patternRuleIndex} against + # {@code tree} and return a {@link ParseTreeMatch} object that contains the + # matched elements, or the node at which the match failed. + # + def matchRuleIndex(self, tree:ParseTree, pattern:str, patternRuleIndex:int): + p = self.compileTreePattern(pattern, patternRuleIndex) + return self.matchPattern(tree, p) + + # + # Compare {@code pattern} matched against {@code tree} and return a + # {@link ParseTreeMatch} object that contains the matched elements, or the + # node at which the match failed. Pass in a compiled pattern instead of a + # string representation of a tree pattern. + # + def matchPattern(self, tree:ParseTree, pattern:ParseTreePattern): + labels = dict() + mismatchedNode = self.matchImpl(tree, pattern.patternTree, labels) + from antlr4.tree.ParseTreeMatch import ParseTreeMatch + return ParseTreeMatch(tree, pattern, labels, mismatchedNode) + + # + # For repeated use of a tree pattern, compile it to a + # {@link ParseTreePattern} using this method. + # + def compileTreePattern(self, pattern:str, patternRuleIndex:int): + tokenList = self.tokenize(pattern) + tokenSrc = ListTokenSource(tokenList) + tokens = CommonTokenStream(tokenSrc) + from antlr4.ParserInterpreter import ParserInterpreter + parserInterp = ParserInterpreter(self.parser.grammarFileName, self.parser.tokenNames, + self.parser.ruleNames, self.parser.getATNWithBypassAlts(),tokens) + tree = None + try: + parserInterp.setErrorHandler(BailErrorStrategy()) + tree = parserInterp.parse(patternRuleIndex) + except ParseCancellationException as e: + raise e.cause + except RecognitionException as e: + raise e + except Exception as e: + raise CannotInvokeStartRule(e) + + # Make sure tree pattern compilation checks for a complete parse + if tokens.LA(1)!=Token.EOF: + raise StartRuleDoesNotConsumeFullPattern() + + from antlr4.tree.ParseTreePattern import ParseTreePattern + return ParseTreePattern(self, pattern, patternRuleIndex, tree) + + # + # Recursively walk {@code tree} against {@code patternTree}, filling + # {@code match.}{@link ParseTreeMatch#labels labels}. + # + # @return the first node encountered in {@code tree} which does not match + # a corresponding node in {@code patternTree}, or {@code null} if the match + # was successful. The specific node returned depends on the matching + # algorithm used by the implementation, and may be overridden. + # + def matchImpl(self, tree:ParseTree, patternTree:ParseTree, labels:dict): + if tree is None: + raise Exception("tree cannot be null") + if patternTree is None: + raise Exception("patternTree cannot be null") + + # x and , x and y, or x and x; or could be mismatched types + if isinstance(tree, TerminalNode) and isinstance(patternTree, TerminalNode ): + mismatchedNode = None + # both are tokens and they have same type + if tree.symbol.type == patternTree.symbol.type: + if isinstance( patternTree.symbol, TokenTagToken ): # x and + tokenTagToken = patternTree.symbol + # track label->list-of-nodes for both token name and label (if any) + self.map(labels, tokenTagToken.tokenName, tree) + if tokenTagToken.label is not None: + self.map(labels, tokenTagToken.label, tree) + elif tree.getText()==patternTree.getText(): + # x and x + pass + else: + # x and y + if mismatchedNode is None: + mismatchedNode = tree + else: + if mismatchedNode is None: + mismatchedNode = tree + + return mismatchedNode + + if isinstance(tree, ParserRuleContext) and isinstance(patternTree, ParserRuleContext): + mismatchedNode = None + # (expr ...) and + ruleTagToken = self.getRuleTagToken(patternTree) + if ruleTagToken is not None: + m = None + if tree.ruleContext.ruleIndex == patternTree.ruleContext.ruleIndex: + # track label->list-of-nodes for both rule name and label (if any) + self.map(labels, ruleTagToken.ruleName, tree) + if ruleTagToken.label is not None: + self.map(labels, ruleTagToken.label, tree) + else: + if mismatchedNode is None: + mismatchedNode = tree + + return mismatchedNode + + # (expr ...) and (expr ...) + if tree.getChildCount()!=patternTree.getChildCount(): + if mismatchedNode is None: + mismatchedNode = tree + return mismatchedNode + + n = tree.getChildCount() + for i in range(0, n): + childMatch = self.matchImpl(tree.getChild(i), patternTree.getChild(i), labels) + if childMatch is not None: + return childMatch + + return mismatchedNode + + # if nodes aren't both tokens or both rule nodes, can't match + return tree + + def map(self, labels, label, tree): + v = labels.get(label, None) + if v is None: + v = list() + labels[label] = v + v.append(tree) + + # Is {@code t} {@code (expr )} subtree?# + def getRuleTagToken(self, tree:ParseTree): + if isinstance( tree, RuleNode ): + if tree.getChildCount()==1 and isinstance(tree.getChild(0), TerminalNode ): + c = tree.getChild(0) + if isinstance( c.symbol, RuleTagToken ): + return c.symbol + return None + + def tokenize(self, pattern:str): + # split pattern into chunks: sea (raw input) and islands (, ) + chunks = self.split(pattern) + + # create token stream from text and tags + tokens = list() + for chunk in chunks: + if isinstance( chunk, TagChunk ): + # add special rule token or conjure up new token from name + if chunk.tag[0].isupper(): + ttype = self.parser.getTokenType(chunk.tag) + if ttype==Token.INVALID_TYPE: + raise Exception("Unknown token " + str(chunk.tag) + " in pattern: " + pattern) + tokens.append(TokenTagToken(chunk.tag, ttype, chunk.label)) + elif chunk.tag[0].islower(): + ruleIndex = self.parser.getRuleIndex(chunk.tag) + if ruleIndex==-1: + raise Exception("Unknown rule " + str(chunk.tag) + " in pattern: " + pattern) + ruleImaginaryTokenType = self.parser.getATNWithBypassAlts().ruleToTokenType[ruleIndex] + tokens.append(RuleTagToken(chunk.tag, ruleImaginaryTokenType, chunk.label)) + else: + raise Exception("invalid tag: " + str(chunk.tag) + " in pattern: " + pattern) + else: + self.lexer.setInputStream(InputStream(chunk.text)) + t = self.lexer.nextToken() + while t.type!=Token.EOF: + tokens.append(t) + t = self.lexer.nextToken() + return tokens + + # Split {@code = ;} into 4 chunks for tokenizing by {@link #tokenize}.# + def split(self, pattern:str): + p = 0 + n = len(pattern) + chunks = list() + # find all start and stop indexes first, then collect + starts = list() + stops = list() + while p < n : + if p == pattern.find(self.escape + self.start, p): + p += len(self.escape) + len(self.start) + elif p == pattern.find(self.escape + self.stop, p): + p += len(self.escape) + len(self.stop) + elif p == pattern.find(self.start, p): + starts.append(p) + p += len(self.start) + elif p == pattern.find(self.stop, p): + stops.append(p) + p += len(self.stop) + else: + p += 1 + + nt = len(starts) + + if nt > len(stops): + raise Exception("unterminated tag in pattern: " + pattern) + if nt < len(stops): + raise Exception("missing start tag in pattern: " + pattern) + + for i in range(0, nt): + if starts[i] >= stops[i]: + raise Exception("tag delimiters out of order in pattern: " + pattern) + + # collect into chunks now + if nt==0: + chunks.append(TextChunk(pattern)) + + if nt>0 and starts[0]>0: # copy text up to first tag into chunks + text = pattern[0:starts[0]] + chunks.add(TextChunk(text)) + + for i in range(0, nt): + # copy inside of + tag = pattern[starts[i] + len(self.start) : stops[i]] + ruleOrToken = tag + label = None + colon = tag.find(':') + if colon >= 0: + label = tag[0:colon] + ruleOrToken = tag[colon+1 : len(tag)] + chunks.append(TagChunk(label, ruleOrToken)) + if i+1 < len(starts): + # copy from end of to start of next + text = pattern[stops[i] + len(self.stop) : starts[i + 1]] + chunks.append(TextChunk(text)) + + if nt > 0 : + afterLastTag = stops[nt - 1] + len(self.stop) + if afterLastTag < n : # copy text from end of last tag to end + text = pattern[afterLastTag : n] + chunks.append(TextChunk(text)) + + # strip out the escape sequences from text chunks but not tags + for i in range(0, len(chunks)): + c = chunks[i] + if isinstance( c, TextChunk ): + unescaped = c.text.replace(self.escape, "") + if len(unescaped) < len(c.text): + chunks[i] = TextChunk(unescaped) + return chunks diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/tree/RuleTagToken.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/tree/RuleTagToken.py new file mode 100644 index 0000000..a198f7d --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/tree/RuleTagToken.py @@ -0,0 +1,50 @@ +# +# Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. +# Use of this file is governed by the BSD 3-clause license that +# can be found in the LICENSE.txt file in the project root. +# + +# +# A {@link Token} object representing an entire subtree matched by a parser +# rule; e.g., {@code }. These tokens are created for {@link TagChunk} +# chunks where the tag corresponds to a parser rule. +# +from antlr4.Token import Token + + +class RuleTagToken(Token): + __slots__ = ('label', 'ruleName') + # + # Constructs a new instance of {@link RuleTagToken} with the specified rule + # name, bypass token type, and label. + # + # @param ruleName The name of the parser rule this rule tag matches. + # @param bypassTokenType The bypass token type assigned to the parser rule. + # @param label The label associated with the rule tag, or {@code null} if + # the rule tag is unlabeled. + # + # @exception IllegalArgumentException if {@code ruleName} is {@code null} + # or empty. + + def __init__(self, ruleName:str, bypassTokenType:int, label:str=None): + if ruleName is None or len(ruleName)==0: + raise Exception("ruleName cannot be null or empty.") + self.source = None + self.type = bypassTokenType # token type of the token + self.channel = Token.DEFAULT_CHANNEL # The parser ignores everything not on DEFAULT_CHANNEL + self.start = -1 # optional; return -1 if not implemented. + self.stop = -1 # optional; return -1 if not implemented. + self.tokenIndex = -1 # from 0..n-1 of the token object in the input stream + self.line = 0 # line=1..n of the 1st character + self.column = -1 # beginning of the line at which it occurs, 0..n-1 + self.label = label + self._text = self.getText() # text of the token. + + self.ruleName = ruleName + + + def getText(self): + if self.label is None: + return "<" + self.ruleName + ">" + else: + return "<" + self.label + ":" + self.ruleName + ">" diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/tree/TokenTagToken.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/tree/TokenTagToken.py new file mode 100644 index 0000000..b7beeb8 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/tree/TokenTagToken.py @@ -0,0 +1,47 @@ +# +# Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. +# Use of this file is governed by the BSD 3-clause license that +# can be found in the LICENSE.txt file in the project root. +# + +# +# A {@link Token} object representing a token of a particular type; e.g., +# {@code }. These tokens are created for {@link TagChunk} chunks where the +# tag corresponds to a lexer rule or token type. +# +from antlr4.Token import CommonToken + + +class TokenTagToken(CommonToken): + __slots__ = ('tokenName', 'label') + # Constructs a new instance of {@link TokenTagToken} with the specified + # token name, type, and label. + # + # @param tokenName The token name. + # @param type The token type. + # @param label The label associated with the token tag, or {@code null} if + # the token tag is unlabeled. + # + def __init__(self, tokenName:str, type:int, label:str=None): + super().__init__(type=type) + self.tokenName = tokenName + self.label = label + self._text = self.getText() + + # + # {@inheritDoc} + # + #

      The implementation for {@link TokenTagToken} returns the token tag + # formatted with {@code <} and {@code >} delimiters.

      + # + def getText(self): + if self.label is None: + return "<" + self.tokenName + ">" + else: + return "<" + self.label + ":" + self.tokenName + ">" + + #

      The implementation for {@link TokenTagToken} returns a string of the form + # {@code tokenName:type}.

      + # + def __str__(self): + return self.tokenName + ":" + str(self.type) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/tree/Tree.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/tree/Tree.py new file mode 100644 index 0000000..812acc9 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/tree/Tree.py @@ -0,0 +1,191 @@ +# Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. +# Use of this file is governed by the BSD 3-clause license that +# can be found in the LICENSE.txt file in the project root. +#/ + + +# The basic notion of a tree has a parent, a payload, and a list of children. +# It is the most abstract interface for all the trees used by ANTLR. +#/ +from antlr4.Token import Token + +INVALID_INTERVAL = (-1, -2) + +class Tree(object): + pass + +class SyntaxTree(Tree): + pass + +class ParseTree(SyntaxTree): + pass + +class RuleNode(ParseTree): + pass + +class TerminalNode(ParseTree): + pass + +class ErrorNode(TerminalNode): + pass + +class ParseTreeVisitor(object): + def visit(self, tree): + return tree.accept(self) + + def visitChildren(self, node): + result = self.defaultResult() + n = node.getChildCount() + for i in range(n): + if not self.shouldVisitNextChild(node, result): + return result + + c = node.getChild(i) + childResult = c.accept(self) + result = self.aggregateResult(result, childResult) + + return result + + def visitTerminal(self, node): + return self.defaultResult() + + def visitErrorNode(self, node): + return self.defaultResult() + + def defaultResult(self): + return None + + def aggregateResult(self, aggregate, nextResult): + return nextResult + + def shouldVisitNextChild(self, node, currentResult): + return True + +ParserRuleContext = None + +class ParseTreeListener(object): + + def visitTerminal(self, node:TerminalNode): + pass + + def visitErrorNode(self, node:ErrorNode): + pass + + def enterEveryRule(self, ctx:ParserRuleContext): + pass + + def exitEveryRule(self, ctx:ParserRuleContext): + pass + +del ParserRuleContext + +class TerminalNodeImpl(TerminalNode): + __slots__ = ('parentCtx', 'symbol') + + def __init__(self, symbol:Token): + self.parentCtx = None + self.symbol = symbol + def __setattr__(self, key, value): + super().__setattr__(key, value) + + def getChild(self, i:int): + return None + + def getSymbol(self): + return self.symbol + + def getParent(self): + return self.parentCtx + + def getPayload(self): + return self.symbol + + def getSourceInterval(self): + if self.symbol is None: + return INVALID_INTERVAL + tokenIndex = self.symbol.tokenIndex + return (tokenIndex, tokenIndex) + + def getChildCount(self): + return 0 + + def accept(self, visitor:ParseTreeVisitor): + return visitor.visitTerminal(self) + + def getText(self): + return self.symbol.text + + def __str__(self): + if self.symbol.type == Token.EOF: + return "" + else: + return self.symbol.text + +# Represents a token that was consumed during resynchronization +# rather than during a valid match operation. For example, +# we will create this kind of a node during single token insertion +# and deletion as well as during "consume until error recovery set" +# upon no viable alternative exceptions. + +class ErrorNodeImpl(TerminalNodeImpl,ErrorNode): + + def __init__(self, token:Token): + super().__init__(token) + + def accept(self, visitor:ParseTreeVisitor): + return visitor.visitErrorNode(self) + + +class ParseTreeWalker(object): + + DEFAULT = None + + def walk(self, listener:ParseTreeListener, t:ParseTree): + """ + Performs a walk on the given parse tree starting at the root and going down recursively + with depth-first search. On each node, {@link ParseTreeWalker#enterRule} is called before + recursively walking down into child nodes, then + {@link ParseTreeWalker#exitRule} is called after the recursive call to wind up. + @param listener The listener used by the walker to process grammar rules + @param t The parse tree to be walked on + """ + if isinstance(t, ErrorNode): + listener.visitErrorNode(t) + return + elif isinstance(t, TerminalNode): + listener.visitTerminal(t) + return + self.enterRule(listener, t) + for child in t.getChildren(): + self.walk(listener, child) + self.exitRule(listener, t) + + # + # The discovery of a rule node, involves sending two events: the generic + # {@link ParseTreeListener#enterEveryRule} and a + # {@link RuleContext}-specific event. First we trigger the generic and then + # the rule specific. We to them in reverse order upon finishing the node. + # + def enterRule(self, listener:ParseTreeListener, r:RuleNode): + """ + Enters a grammar rule by first triggering the generic event {@link ParseTreeListener#enterEveryRule} + then by triggering the event specific to the given parse tree node + @param listener The listener responding to the trigger events + @param r The grammar rule containing the rule context + """ + ctx = r.getRuleContext() + listener.enterEveryRule(ctx) + ctx.enterRule(listener) + + def exitRule(self, listener:ParseTreeListener, r:RuleNode): + """ + Exits a grammar rule by first triggering the event specific to the given parse tree node + then by triggering the generic event {@link ParseTreeListener#exitEveryRule} + @param listener The listener responding to the trigger events + @param r The grammar rule containing the rule context + """ + ctx = r.getRuleContext() + ctx.exitRule(listener) + listener.exitEveryRule(ctx) + +ParseTreeWalker.DEFAULT = ParseTreeWalker() diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/tree/Trees.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/tree/Trees.py new file mode 100644 index 0000000..686b8cb --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/tree/Trees.py @@ -0,0 +1,111 @@ +# +# Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. +# Use of this file is governed by the BSD 3-clause license that +# can be found in the LICENSE.txt file in the project root. +# + + +# A set of utility routines useful for all kinds of ANTLR trees.# +from io import StringIO +from antlr4.Token import Token +from antlr4.Utils import escapeWhitespace +from antlr4.tree.Tree import RuleNode, ErrorNode, TerminalNode, Tree, ParseTree + +# need forward declaration +Parser = None + +class Trees(object): + + # Print out a whole tree in LISP form. {@link #getNodeText} is used on the + # node payloads to get the text for the nodes. Detect + # parse trees and extract data appropriately. + @classmethod + def toStringTree(cls, t:Tree, ruleNames:list=None, recog:Parser=None): + if recog is not None: + ruleNames = recog.ruleNames + s = escapeWhitespace(cls.getNodeText(t, ruleNames), False) + if t.getChildCount()==0: + return s + with StringIO() as buf: + buf.write("(") + buf.write(s) + buf.write(' ') + for i in range(0, t.getChildCount()): + if i > 0: + buf.write(' ') + buf.write(cls.toStringTree(t.getChild(i), ruleNames)) + buf.write(")") + return buf.getvalue() + + @classmethod + def getNodeText(cls, t:Tree, ruleNames:list=None, recog:Parser=None): + if recog is not None: + ruleNames = recog.ruleNames + if ruleNames is not None: + if isinstance(t, RuleNode): + if t.getAltNumber()!=0: # should use ATN.INVALID_ALT_NUMBER but won't compile + return ruleNames[t.getRuleIndex()]+":"+str(t.getAltNumber()) + return ruleNames[t.getRuleIndex()] + elif isinstance( t, ErrorNode): + return str(t) + elif isinstance(t, TerminalNode): + if t.symbol is not None: + return t.symbol.text + # no recog for rule names + payload = t.getPayload() + if isinstance(payload, Token ): + return payload.text + return str(t.getPayload()) + + + # Return ordered list of all children of this node + @classmethod + def getChildren(cls, t:Tree): + return [ t.getChild(i) for i in range(0, t.getChildCount()) ] + + # Return a list of all ancestors of this node. The first node of + # list is the root and the last is the parent of this node. + # + @classmethod + def getAncestors(cls, t:Tree): + ancestors = [] + t = t.getParent() + while t is not None: + ancestors.insert(0, t) # insert at start + t = t.getParent() + return ancestors + + @classmethod + def findAllTokenNodes(cls, t:ParseTree, ttype:int): + return cls.findAllNodes(t, ttype, True) + + @classmethod + def findAllRuleNodes(cls, t:ParseTree, ruleIndex:int): + return cls.findAllNodes(t, ruleIndex, False) + + @classmethod + def findAllNodes(cls, t:ParseTree, index:int, findTokens:bool): + nodes = [] + cls._findAllNodes(t, index, findTokens, nodes) + return nodes + + @classmethod + def _findAllNodes(cls, t:ParseTree, index:int, findTokens:bool, nodes:list): + from antlr4.ParserRuleContext import ParserRuleContext + # check this node (the root) first + if findTokens and isinstance(t, TerminalNode): + if t.symbol.type==index: + nodes.append(t) + elif not findTokens and isinstance(t, ParserRuleContext): + if t.ruleIndex == index: + nodes.append(t) + # check children + for i in range(0, t.getChildCount()): + cls._findAllNodes(t.getChild(i), index, findTokens, nodes) + + @classmethod + def descendants(cls, t:ParseTree): + nodes = [t] + for i in range(0, t.getChildCount()): + nodes.extend(cls.descendants(t.getChild(i))) + return nodes diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/tree/__init__.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/tree/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/xpath/XPath.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/xpath/XPath.py new file mode 100644 index 0000000..24029e7 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/xpath/XPath.py @@ -0,0 +1,352 @@ +# +# Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. +# Use of this file is governed by the BSD 3-clause license that +# can be found in the LICENSE.txt file in the project root. +# + +# +# Represent a subset of XPath XML path syntax for use in identifying nodes in +# parse trees. +# +#

      +# Split path into words and separators {@code /} and {@code //} via ANTLR +# itself then walk path elements from left to right. At each separator-word +# pair, find set of nodes. Next stage uses those as work list.

      +# +#

      +# The basic interface is +# {@link XPath#findAll ParseTree.findAll}{@code (tree, pathString, parser)}. +# But that is just shorthand for:

      +# +#
      +# {@link XPath} p = new {@link XPath#XPath XPath}(parser, pathString);
      +# return p.{@link #evaluate evaluate}(tree);
      +# 
      +# +#

      +# See {@code org.antlr.v4.test.TestXPath} for descriptions. In short, this +# allows operators:

      +# +#
      +#
      /
      root
      +#
      //
      anywhere
      +#
      !
      invert; this must appear directly after root or anywhere +# operator
      +#
      +# +#

      +# and path elements:

      +# +#
      +#
      ID
      token name
      +#
      'string'
      any string literal token from the grammar
      +#
      expr
      rule name
      +#
      *
      wildcard matching any node
      +#
      +# +#

      +# Whitespace is not allowed.

      +# +from antlr4 import CommonTokenStream, DFA, PredictionContextCache, Lexer, LexerATNSimulator, ParserRuleContext, TerminalNode +from antlr4.InputStream import InputStream +from antlr4.Parser import Parser +from antlr4.RuleContext import RuleContext +from antlr4.Token import Token +from antlr4.atn.ATNDeserializer import ATNDeserializer +from antlr4.error.ErrorListener import ErrorListener +from antlr4.error.Errors import LexerNoViableAltException +from antlr4.tree.Tree import ParseTree +from antlr4.tree.Trees import Trees +from io import StringIO + + +def serializedATN(): + with StringIO() as buf: + buf.write("\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd\2\n") + buf.write("\64\b\1\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t") + buf.write("\7\4\b\t\b\4\t\t\t\3\2\3\2\3\2\3\3\3\3\3\4\3\4\3\5\3\5") + buf.write("\3\6\3\6\7\6\37\n\6\f\6\16\6\"\13\6\3\6\3\6\3\7\3\7\5") + buf.write("\7(\n\7\3\b\3\b\3\t\3\t\7\t.\n\t\f\t\16\t\61\13\t\3\t") + buf.write("\3\t\3/\2\n\3\5\5\6\7\7\t\b\13\t\r\2\17\2\21\n\3\2\4\7") + buf.write("\2\62;aa\u00b9\u00b9\u0302\u0371\u2041\u2042\17\2C\\c") + buf.write("|\u00c2\u00d8\u00da\u00f8\u00fa\u0301\u0372\u037f\u0381") + buf.write("\u2001\u200e\u200f\u2072\u2191\u2c02\u2ff1\u3003\ud801") + buf.write("\uf902\ufdd1\ufdf2\uffff\64\2\3\3\2\2\2\2\5\3\2\2\2\2") + buf.write("\7\3\2\2\2\2\t\3\2\2\2\2\13\3\2\2\2\2\21\3\2\2\2\3\23") + buf.write("\3\2\2\2\5\26\3\2\2\2\7\30\3\2\2\2\t\32\3\2\2\2\13\34") + buf.write("\3\2\2\2\r\'\3\2\2\2\17)\3\2\2\2\21+\3\2\2\2\23\24\7\61") + buf.write("\2\2\24\25\7\61\2\2\25\4\3\2\2\2\26\27\7\61\2\2\27\6\3") + buf.write("\2\2\2\30\31\7,\2\2\31\b\3\2\2\2\32\33\7#\2\2\33\n\3\2") + buf.write("\2\2\34 \5\17\b\2\35\37\5\r\7\2\36\35\3\2\2\2\37\"\3\2") + buf.write("\2\2 \36\3\2\2\2 !\3\2\2\2!#\3\2\2\2\" \3\2\2\2#$\b\6") + buf.write("\2\2$\f\3\2\2\2%(\5\17\b\2&(\t\2\2\2\'%\3\2\2\2\'&\3\2") + buf.write("\2\2(\16\3\2\2\2)*\t\3\2\2*\20\3\2\2\2+/\7)\2\2,.\13\2") + buf.write("\2\2-,\3\2\2\2.\61\3\2\2\2/\60\3\2\2\2/-\3\2\2\2\60\62") + buf.write("\3\2\2\2\61/\3\2\2\2\62\63\7)\2\2\63\22\3\2\2\2\6\2 \'") + buf.write("/\3\3\6\2") + return buf.getvalue() + + +class XPathLexer(Lexer): + + atn = ATNDeserializer().deserialize(serializedATN()) + + decisionsToDFA = [ DFA(ds, i) for i, ds in enumerate(atn.decisionToState) ] + + + TOKEN_REF = 1 + RULE_REF = 2 + ANYWHERE = 3 + ROOT = 4 + WILDCARD = 5 + BANG = 6 + ID = 7 + STRING = 8 + + modeNames = [ "DEFAULT_MODE" ] + + literalNames = [ "", + "'//'", "'/'", "'*'", "'!'" ] + + symbolicNames = [ "", + "TOKEN_REF", "RULE_REF", "ANYWHERE", "ROOT", "WILDCARD", "BANG", + "ID", "STRING" ] + + ruleNames = [ "ANYWHERE", "ROOT", "WILDCARD", "BANG", "ID", "NameChar", + "NameStartChar", "STRING" ] + + grammarFileName = "XPathLexer.g4" + + def __init__(self, input=None): + super().__init__(input) + self.checkVersion("4.9.1") + self._interp = LexerATNSimulator(self, self.atn, self.decisionsToDFA, PredictionContextCache()) + self._actions = None + self._predicates = None + + + def action(self, localctx:RuleContext, ruleIndex:int, actionIndex:int): + if self._actions is None: + actions = dict() + actions[4] = self.ID_action + self._actions = actions + _action = self._actions.get(ruleIndex, None) + if _action is not None: + _action(localctx, actionIndex) + else: + raise Exception("No registered action for: %d" % ruleIndex) + + def ID_action(self, localctx:RuleContext , actionIndex:int): + if actionIndex == 0: + char = self.text[0] + if char.isupper(): + self.type = XPathLexer.TOKEN_REF + else: + self.type = XPathLexer.RULE_REF + +class XPath(object): + + WILDCARD = "*" # word not operator/separator + NOT = "!" # word for invert operator + + def __init__(self, parser:Parser, path:str): + self.parser = parser + self.path = path + self.elements = self.split(path) + + def split(self, path:str): + input = InputStream(path) + lexer = XPathLexer(input) + def recover(self, e): + raise e + lexer.recover = recover + lexer.removeErrorListeners() + lexer.addErrorListener(ErrorListener()) # XPathErrorListener does no more + tokenStream = CommonTokenStream(lexer) + try: + tokenStream.fill() + except LexerNoViableAltException as e: + pos = lexer.column + msg = "Invalid tokens or characters at index %d in path '%s'" % (pos, path) + raise Exception(msg, e) + + tokens = iter(tokenStream.tokens) + elements = list() + for el in tokens: + invert = False + anywhere = False + # Check for path separators, if none assume root + if el.type in [XPathLexer.ROOT, XPathLexer.ANYWHERE]: + anywhere = el.type == XPathLexer.ANYWHERE + next_el = next(tokens, None) + if not next_el: + raise Exception('Missing element after %s' % el.getText()) + else: + el = next_el + # Check for bangs + if el.type == XPathLexer.BANG: + invert = True + next_el = next(tokens, None) + if not next_el: + raise Exception('Missing element after %s' % el.getText()) + else: + el = next_el + # Add searched element + if el.type in [XPathLexer.TOKEN_REF, XPathLexer.RULE_REF, XPathLexer.WILDCARD, XPathLexer.STRING]: + element = self.getXPathElement(el, anywhere) + element.invert = invert + elements.append(element) + elif el.type==Token.EOF: + break + else: + raise Exception("Unknown path element %s" % lexer.symbolicNames[el.type]) + return elements + + # + # Convert word like {@code#} or {@code ID} or {@code expr} to a path + # element. {@code anywhere} is {@code true} if {@code //} precedes the + # word. + # + def getXPathElement(self, wordToken:Token, anywhere:bool): + if wordToken.type==Token.EOF: + raise Exception("Missing path element at end of path") + + word = wordToken.text + if wordToken.type==XPathLexer.WILDCARD : + return XPathWildcardAnywhereElement() if anywhere else XPathWildcardElement() + + elif wordToken.type in [XPathLexer.TOKEN_REF, XPathLexer.STRING]: + tsource = self.parser.getTokenStream().tokenSource + + ttype = Token.INVALID_TYPE + if wordToken.type == XPathLexer.TOKEN_REF: + if word in tsource.ruleNames: + ttype = tsource.ruleNames.index(word) + 1 + else: + if word in tsource.literalNames: + ttype = tsource.literalNames.index(word) + + if ttype == Token.INVALID_TYPE: + raise Exception("%s at index %d isn't a valid token name" % (word, wordToken.tokenIndex)) + return XPathTokenAnywhereElement(word, ttype) if anywhere else XPathTokenElement(word, ttype) + + else: + ruleIndex = self.parser.ruleNames.index(word) if word in self.parser.ruleNames else -1 + + if ruleIndex == -1: + raise Exception("%s at index %d isn't a valid rule name" % (word, wordToken.tokenIndex)) + return XPathRuleAnywhereElement(word, ruleIndex) if anywhere else XPathRuleElement(word, ruleIndex) + + + @staticmethod + def findAll(tree:ParseTree, xpath:str, parser:Parser): + p = XPath(parser, xpath) + return p.evaluate(tree) + + # + # Return a list of all nodes starting at {@code t} as root that satisfy the + # path. The root {@code /} is relative to the node passed to + # {@link #evaluate}. + # + def evaluate(self, t:ParseTree): + dummyRoot = ParserRuleContext() + dummyRoot.children = [t] # don't set t's parent. + + work = [dummyRoot] + for element in self.elements: + work_next = list() + for node in work: + if not isinstance(node, TerminalNode) and node.children: + # only try to match next element if it has children + # e.g., //func/*/stat might have a token node for which + # we can't go looking for stat nodes. + matching = element.evaluate(node) + + # See issue antlr#370 - Prevents XPath from returning the + # same node multiple times + matching = filter(lambda m: m not in work_next, matching) + + work_next.extend(matching) + work = work_next + + return work + + +class XPathElement(object): + + def __init__(self, nodeName:str): + self.nodeName = nodeName + self.invert = False + + def __str__(self): + return type(self).__name__ + "[" + ("!" if self.invert else "") + self.nodeName + "]" + + + +# +# Either {@code ID} at start of path or {@code ...//ID} in middle of path. +# +class XPathRuleAnywhereElement(XPathElement): + + def __init__(self, ruleName:str, ruleIndex:int): + super().__init__(ruleName) + self.ruleIndex = ruleIndex + + def evaluate(self, t:ParseTree): + # return all ParserRuleContext descendants of t that match ruleIndex (or do not match if inverted) + return filter(lambda c: isinstance(c, ParserRuleContext) and (self.invert ^ (c.getRuleIndex() == self.ruleIndex)), Trees.descendants(t)) + +class XPathRuleElement(XPathElement): + + def __init__(self, ruleName:str, ruleIndex:int): + super().__init__(ruleName) + self.ruleIndex = ruleIndex + + def evaluate(self, t:ParseTree): + # return all ParserRuleContext children of t that match ruleIndex (or do not match if inverted) + return filter(lambda c: isinstance(c, ParserRuleContext) and (self.invert ^ (c.getRuleIndex() == self.ruleIndex)), Trees.getChildren(t)) + +class XPathTokenAnywhereElement(XPathElement): + + def __init__(self, ruleName:str, tokenType:int): + super().__init__(ruleName) + self.tokenType = tokenType + + def evaluate(self, t:ParseTree): + # return all TerminalNode descendants of t that match tokenType (or do not match if inverted) + return filter(lambda c: isinstance(c, TerminalNode) and (self.invert ^ (c.symbol.type == self.tokenType)), Trees.descendants(t)) + +class XPathTokenElement(XPathElement): + + def __init__(self, ruleName:str, tokenType:int): + super().__init__(ruleName) + self.tokenType = tokenType + + def evaluate(self, t:ParseTree): + # return all TerminalNode children of t that match tokenType (or do not match if inverted) + return filter(lambda c: isinstance(c, TerminalNode) and (self.invert ^ (c.symbol.type == self.tokenType)), Trees.getChildren(t)) + + +class XPathWildcardAnywhereElement(XPathElement): + + def __init__(self): + super().__init__(XPath.WILDCARD) + + def evaluate(self, t:ParseTree): + if self.invert: + return list() # !* is weird but valid (empty) + else: + return Trees.descendants(t) + + +class XPathWildcardElement(XPathElement): + + def __init__(self): + super().__init__(XPath.WILDCARD) + + + def evaluate(self, t:ParseTree): + if self.invert: + return list() # !* is weird but valid (empty) + else: + return Trees.getChildren(t) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/xpath/__init__.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/xpath/__init__.py new file mode 100644 index 0000000..216c000 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4/xpath/__init__.py @@ -0,0 +1 @@ +__author__ = 'ericvergnaud' diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4_python3_runtime-4.9.3.dist-info/INSTALLER b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4_python3_runtime-4.9.3.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4_python3_runtime-4.9.3.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4_python3_runtime-4.9.3.dist-info/METADATA b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4_python3_runtime-4.9.3.dist-info/METADATA new file mode 100644 index 0000000..e7c6162 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4_python3_runtime-4.9.3.dist-info/METADATA @@ -0,0 +1,10 @@ +Metadata-Version: 2.1 +Name: antlr4-python3-runtime +Version: 4.9.3 +Summary: ANTLR 4.9.3 runtime for Python 3.7 +Home-page: http://www.antlr.org +Author: Eric Vergnaud, Terence Parr, Sam Harwell +Author-email: eric.vergnaud@wanadoo.fr +License: BSD +Requires-Dist: typing ; python_version < "3.5" + diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4_python3_runtime-4.9.3.dist-info/RECORD b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4_python3_runtime-4.9.3.dist-info/RECORD new file mode 100644 index 0000000..de5cd1f --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4_python3_runtime-4.9.3.dist-info/RECORD @@ -0,0 +1,118 @@ +../../bin/pygrun,sha256=aHXssQWfd4Ch95RmyTWzgtBlYusOO-sojGH2OrJe7ko,6342 +antlr4/BufferedTokenStream.py,sha256=_BwmzOH1TO6yL2yC_ZaUzkghq8wzc0UPHfI3UpnZUwM,10780 +antlr4/CommonTokenFactory.py,sha256=Tv16zg_pWD1Dv3IphsxFu8nwWdLeXYcqJ8CC5yHwjH8,2110 +antlr4/CommonTokenStream.py,sha256=NNJHXwRg2_Zn46ZhJyDxZtvZzsPWhb6JjXa7BjM45eg,2770 +antlr4/FileStream.py,sha256=-ZR_-jl_If9IIBYLINIwlQrlTSmu5k1VUKDc3ie7WR4,868 +antlr4/InputStream.py,sha256=sggjE2jEGvSgQmxFvqeeuT3aOVgcH5tS7mMybW8wKS4,2334 +antlr4/IntervalSet.py,sha256=Cd0WKhd_kYbiLYKkDNncgSM19GAuS7OaTOC4-5Yubs4,5965 +antlr4/LL1Analyzer.py,sha256=oJBvO7_S8cAlb_D4qWNxd2IlK0qP4ka-oeoDxx16CZ4,7752 +antlr4/Lexer.py,sha256=C72hqayfkympxb46AcSnhPD9kVZ0quWgboGxa6gcIcg,11542 +antlr4/ListTokenSource.py,sha256=IffLMo7YQnD_CjKryrrgNWSk0q5QSYd7puZyyUk7vOk,5356 +antlr4/Parser.py,sha256=F2Q25z0-__KHfa354KQhDu3ZOVzLFfag3s2ixJ4dl_o,22883 +antlr4/ParserInterpreter.py,sha256=-QU9kn4x3WCQ-LSA99R231HoicTqakiHZ5KM72l-hIo,7206 +antlr4/ParserRuleContext.py,sha256=wHAVdOxMAO5jkUqloTXVzn_xYnJhiHbvvuhZpth0ZF8,6762 +antlr4/PredictionContext.py,sha256=cb4KI6EGpS7sRzJ8UvPEkxphINZuWhyiZ95752g3prI,22977 +antlr4/Recognizer.py,sha256=vmKAtSjIgR9LQr5YzuK5OmPZWMJ3x69OuVZQ_FTzQHE,5383 +antlr4/RuleContext.py,sha256=GiviRv2k_al1IBgdJOEEoD0ohJaVd-_h5T_CPG_Bsmg,8099 +antlr4/StdinStream.py,sha256=MMSH4zN8T6i_nu-3_TlN-3E4nPM4b5KgK4GT6n_FUQA,303 +antlr4/Token.py,sha256=OtWCab4Ut52X_nLLAA-8x4Zl6xaF6TEN-0033uaoaEo,5206 +antlr4/TokenStreamRewriter.py,sha256=cuErQTrXwC_0kqVv3MsTWGZSm-E1Vy1yzA-3SOhKd_s,10324 +antlr4/Utils.py,sha256=Oyg8CJCRL1TrF_QSB_LLlVdWOB4loVcKOgFNT-icO7c,931 +antlr4/__init__.py,sha256=g8UGpflnlMWcAyLtihejzrgAP1Uo3b9GhwfI8QnZjtw,1125 +antlr4/__pycache__/BufferedTokenStream.cpython-37.pyc,, +antlr4/__pycache__/CommonTokenFactory.cpython-37.pyc,, +antlr4/__pycache__/CommonTokenStream.cpython-37.pyc,, +antlr4/__pycache__/FileStream.cpython-37.pyc,, +antlr4/__pycache__/InputStream.cpython-37.pyc,, +antlr4/__pycache__/IntervalSet.cpython-37.pyc,, +antlr4/__pycache__/LL1Analyzer.cpython-37.pyc,, +antlr4/__pycache__/Lexer.cpython-37.pyc,, +antlr4/__pycache__/ListTokenSource.cpython-37.pyc,, +antlr4/__pycache__/Parser.cpython-37.pyc,, +antlr4/__pycache__/ParserInterpreter.cpython-37.pyc,, +antlr4/__pycache__/ParserRuleContext.cpython-37.pyc,, +antlr4/__pycache__/PredictionContext.cpython-37.pyc,, +antlr4/__pycache__/Recognizer.cpython-37.pyc,, +antlr4/__pycache__/RuleContext.cpython-37.pyc,, +antlr4/__pycache__/StdinStream.cpython-37.pyc,, +antlr4/__pycache__/Token.cpython-37.pyc,, +antlr4/__pycache__/TokenStreamRewriter.cpython-37.pyc,, +antlr4/__pycache__/Utils.cpython-37.pyc,, +antlr4/__pycache__/__init__.cpython-37.pyc,, +antlr4/atn/ATN.py,sha256=LYE8kT-D8FpUd5fpOtyOLqvXLFkUSa83TVFowhCWAiY,5789 +antlr4/atn/ATNConfig.py,sha256=tNdIC6_GrxXllHBx3npAWyDh6KrohLZDV_XyPrydRMY,6565 +antlr4/atn/ATNConfigSet.py,sha256=qRzVsBeMqk2txjG3DrGptwF6Vb2hHC5w3umkSL0GNJw,8312 +antlr4/atn/ATNDeserializationOptions.py,sha256=lUV_bGW6mxj7t20esda5Yv-X9m-U_x1-0xaLifhXIPo,1010 +antlr4/atn/ATNDeserializer.py,sha256=aYLDDtQ-wyo3gId6A-wD1E3QmpfrPZlXxj4_IDm-mUY,22252 +antlr4/atn/ATNSimulator.py,sha256=mDc-G3GF3kSeqpfGDabUOLJ0WLVTqibxZlkvXQYmBRk,2298 +antlr4/atn/ATNState.py,sha256=NbndISWUwFDF_vuBfbTiZZ8GPHoQa6UXdqbD-yjJE7c,7663 +antlr4/atn/ATNType.py,sha256=xgv8AMVU7tc07U73_hRTm1AiZ7MvGhoaP5fTiOrrCGg,422 +antlr4/atn/LexerATNSimulator.py,sha256=kYXRwUvHptSRU8T_K9pSrGlCk9YypWeHlAcjgry1VVo,25465 +antlr4/atn/LexerAction.py,sha256=KUeJwKekBch0m1poSPskHIh-15dcKAG4lR7zlq98tzc,10014 +antlr4/atn/LexerActionExecutor.py,sha256=7rlg17THcwLsuTmh7NsLrTbRH4DTrm8qIdW9_235CEc,6420 +antlr4/atn/ParserATNSimulator.py,sha256=IKCzsDLcznROSVojU-daAygKr3svl0DmK5DhkUllASY,80365 +antlr4/atn/PredictionMode.py,sha256=i8B7MULA7v-qbXeCY_xp6sgi21kHM6kybqIrG6rSrro,22486 +antlr4/atn/SemanticContext.py,sha256=ds0TmM4qenb0LN-rl2Fp_N_xB959abN67I19EF6rs8o,10495 +antlr4/atn/Transition.py,sha256=ZAsEFpa5I_n-zxD6U-DauM5_33jFK65x3PWu6-NW0RA,8762 +antlr4/atn/__init__.py,sha256=gsnQdtTH8IUgCiVUpQfzhxx2pFRvksW76SjwIk3fYSk,28 +antlr4/atn/__pycache__/ATN.cpython-37.pyc,, +antlr4/atn/__pycache__/ATNConfig.cpython-37.pyc,, +antlr4/atn/__pycache__/ATNConfigSet.cpython-37.pyc,, +antlr4/atn/__pycache__/ATNDeserializationOptions.cpython-37.pyc,, +antlr4/atn/__pycache__/ATNDeserializer.cpython-37.pyc,, +antlr4/atn/__pycache__/ATNSimulator.cpython-37.pyc,, +antlr4/atn/__pycache__/ATNState.cpython-37.pyc,, +antlr4/atn/__pycache__/ATNType.cpython-37.pyc,, +antlr4/atn/__pycache__/LexerATNSimulator.cpython-37.pyc,, +antlr4/atn/__pycache__/LexerAction.cpython-37.pyc,, +antlr4/atn/__pycache__/LexerActionExecutor.cpython-37.pyc,, +antlr4/atn/__pycache__/ParserATNSimulator.cpython-37.pyc,, +antlr4/atn/__pycache__/PredictionMode.cpython-37.pyc,, +antlr4/atn/__pycache__/SemanticContext.cpython-37.pyc,, +antlr4/atn/__pycache__/Transition.cpython-37.pyc,, +antlr4/atn/__pycache__/__init__.cpython-37.pyc,, +antlr4/dfa/DFA.py,sha256=weIh0uaRfakP12mFvHo7U0tqO3GONV3-nHFkc2xk-ZE,5388 +antlr4/dfa/DFASerializer.py,sha256=1st_HO85yXLYy7gInTEnkztgA6am4CT-yReh-mazp9E,2518 +antlr4/dfa/DFAState.py,sha256=R7JwKf0GtAEs9J_MD_Y0WKcuzdt0BVX1sow-uv9yFYc,5583 +antlr4/dfa/__init__.py,sha256=gsnQdtTH8IUgCiVUpQfzhxx2pFRvksW76SjwIk3fYSk,28 +antlr4/dfa/__pycache__/DFA.cpython-37.pyc,, +antlr4/dfa/__pycache__/DFASerializer.cpython-37.pyc,, +antlr4/dfa/__pycache__/DFAState.cpython-37.pyc,, +antlr4/dfa/__pycache__/__init__.cpython-37.pyc,, +antlr4/error/DiagnosticErrorListener.py,sha256=EwS2D_Ox6CmvCa16NPJ9ud4QYPHmlPXt6-Wdn1h5Kg8,4430 +antlr4/error/ErrorListener.py,sha256=yP_MDguol4Cj0_pEPyNzeH3v4ZvUjW5iwDjhYTVAHbE,2722 +antlr4/error/ErrorStrategy.py,sha256=0mhzFL57ZVnjKkGrtadta93Zm3NXdF-HW10DVD07VXs,30391 +antlr4/error/Errors.py,sha256=hlKngclBfXdkDiAymhYsvh2OCXlvmHM2kTl_A1vgp-w,6759 +antlr4/error/__init__.py,sha256=gsnQdtTH8IUgCiVUpQfzhxx2pFRvksW76SjwIk3fYSk,28 +antlr4/error/__pycache__/DiagnosticErrorListener.cpython-37.pyc,, +antlr4/error/__pycache__/ErrorListener.cpython-37.pyc,, +antlr4/error/__pycache__/ErrorStrategy.cpython-37.pyc,, +antlr4/error/__pycache__/Errors.cpython-37.pyc,, +antlr4/error/__pycache__/__init__.cpython-37.pyc,, +antlr4/tree/Chunk.py,sha256=oCIZjolLq9xkxtVDROEDxfUGgndcEnsDW0eUmLM7Gpk,695 +antlr4/tree/ParseTreeMatch.py,sha256=Dc6GVWSUqoIAFXUaUZqUwCUlZfTcgUbGLGzNf6QxQvE,4485 +antlr4/tree/ParseTreePattern.py,sha256=ASBNaQORh3f7f8KnFeZJC2yWFFx4uQlxvC2Y55ifhY0,2825 +antlr4/tree/ParseTreePatternMatcher.py,sha256=HtE9yi1Urr2QPLGLJDBvr0lxv6bjuj9CHl-4clahSe8,16388 +antlr4/tree/RuleTagToken.py,sha256=n4zXcmrrfsGyl91pj5ZYcc_CeKMhPrvYkUdppgMBpbY,2022 +antlr4/tree/TokenTagToken.py,sha256=S3o3DJhfzL5kpClxsKyI-Il-xvuuZQiBAIsLCKFjRHo,1576 +antlr4/tree/Tree.py,sha256=ZI7U_5IxBLm_IrnfJOtb12BCPIWyzfeZtLnhHKVVZIw,5572 +antlr4/tree/Trees.py,sha256=JtQ7cYWmKwI9TIBP6y9XIgjlNS4mYjv3ARwOfwWc5Vg,3968 +antlr4/tree/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +antlr4/tree/__pycache__/Chunk.cpython-37.pyc,, +antlr4/tree/__pycache__/ParseTreeMatch.cpython-37.pyc,, +antlr4/tree/__pycache__/ParseTreePattern.cpython-37.pyc,, +antlr4/tree/__pycache__/ParseTreePatternMatcher.cpython-37.pyc,, +antlr4/tree/__pycache__/RuleTagToken.cpython-37.pyc,, +antlr4/tree/__pycache__/TokenTagToken.cpython-37.pyc,, +antlr4/tree/__pycache__/Tree.cpython-37.pyc,, +antlr4/tree/__pycache__/Trees.cpython-37.pyc,, +antlr4/tree/__pycache__/__init__.cpython-37.pyc,, +antlr4/xpath/XPath.py,sha256=O9s4-EDvLbAbYytP_bae9Z2khLl0iAtRzPAtVbuWUM4,13015 +antlr4/xpath/__init__.py,sha256=gsnQdtTH8IUgCiVUpQfzhxx2pFRvksW76SjwIk3fYSk,28 +antlr4/xpath/__pycache__/XPath.cpython-37.pyc,, +antlr4/xpath/__pycache__/__init__.cpython-37.pyc,, +antlr4_python3_runtime-4.9.3.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +antlr4_python3_runtime-4.9.3.dist-info/METADATA,sha256=IwocXhxWp2-MCnj5UOLbBpkXHGrAOMX8RJbghY5jrXw,301 +antlr4_python3_runtime-4.9.3.dist-info/RECORD,, +antlr4_python3_runtime-4.9.3.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92 +antlr4_python3_runtime-4.9.3.dist-info/top_level.txt,sha256=OsoZsh9bb30wgXb2zBUjdDwYg46MfV-RVZA6Pk8pcB0,7 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4_python3_runtime-4.9.3.dist-info/WHEEL b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4_python3_runtime-4.9.3.dist-info/WHEEL new file mode 100644 index 0000000..98c0d20 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4_python3_runtime-4.9.3.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.42.0) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4_python3_runtime-4.9.3.dist-info/top_level.txt b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4_python3_runtime-4.9.3.dist-info/top_level.txt new file mode 100644 index 0000000..3dee19f --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/antlr4_python3_runtime-4.9.3.dist-info/top_level.txt @@ -0,0 +1 @@ +antlr4 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/__init__.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/__init__.py new file mode 100644 index 0000000..51b1c25 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/__init__.py @@ -0,0 +1,103 @@ +# SPDX-License-Identifier: MIT + +""" +Classes Without Boilerplate +""" + +from functools import partial +from typing import Callable + +from . import converters, exceptions, filters, setters, validators +from ._cmp import cmp_using +from ._compat import Protocol +from ._config import get_run_validators, set_run_validators +from ._funcs import asdict, assoc, astuple, evolve, has, resolve_types +from ._make import ( + NOTHING, + Attribute, + Converter, + Factory, + attrib, + attrs, + fields, + fields_dict, + make_class, + validate, +) +from ._next_gen import define, field, frozen, mutable +from ._version_info import VersionInfo + + +s = attributes = attrs +ib = attr = attrib +dataclass = partial(attrs, auto_attribs=True) # happy Easter ;) + + +class AttrsInstance(Protocol): + pass + + +__all__ = [ + "Attribute", + "AttrsInstance", + "Converter", + "Factory", + "NOTHING", + "asdict", + "assoc", + "astuple", + "attr", + "attrib", + "attributes", + "attrs", + "cmp_using", + "converters", + "define", + "evolve", + "exceptions", + "field", + "fields", + "fields_dict", + "filters", + "frozen", + "get_run_validators", + "has", + "ib", + "make_class", + "mutable", + "resolve_types", + "s", + "set_run_validators", + "setters", + "validate", + "validators", +] + + +def _make_getattr(mod_name: str) -> Callable: + """ + Create a metadata proxy for packaging information that uses *mod_name* in + its warnings and errors. + """ + + def __getattr__(name: str) -> str: + if name not in ("__version__", "__version_info__"): + msg = f"module {mod_name} has no attribute {name}" + raise AttributeError(msg) + + try: + from importlib.metadata import metadata + except ImportError: + from importlib_metadata import metadata + + meta = metadata("attrs") + + if name == "__version_info__": + return VersionInfo._from_version_string(meta["version"]) + + return meta["version"] + + return __getattr__ + + +__getattr__ = _make_getattr(__name__) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/__init__.pyi b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/__init__.pyi new file mode 100644 index 0000000..6ae0a83 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/__init__.pyi @@ -0,0 +1,388 @@ +import enum +import sys + +from typing import ( + Any, + Callable, + Generic, + Mapping, + Protocol, + Sequence, + TypeVar, + overload, +) + +# `import X as X` is required to make these public +from . import converters as converters +from . import exceptions as exceptions +from . import filters as filters +from . import setters as setters +from . import validators as validators +from ._cmp import cmp_using as cmp_using +from ._typing_compat import AttrsInstance_ +from ._version_info import VersionInfo +from attrs import ( + define as define, + field as field, + mutable as mutable, + frozen as frozen, + _EqOrderType, + _ValidatorType, + _ConverterType, + _ReprArgType, + _OnSetAttrType, + _OnSetAttrArgType, + _FieldTransformer, + _ValidatorArgType, +) + +if sys.version_info >= (3, 10): + from typing import TypeGuard +else: + from typing_extensions import TypeGuard + +if sys.version_info >= (3, 11): + from typing import dataclass_transform +else: + from typing_extensions import dataclass_transform + +__version__: str +__version_info__: VersionInfo +__title__: str +__description__: str +__url__: str +__uri__: str +__author__: str +__email__: str +__license__: str +__copyright__: str + +_T = TypeVar("_T") +_C = TypeVar("_C", bound=type) + +_FilterType = Callable[["Attribute[_T]", _T], bool] + +# We subclass this here to keep the protocol's qualified name clean. +class AttrsInstance(AttrsInstance_, Protocol): + pass + +_A = TypeVar("_A", bound=type[AttrsInstance]) + +class _Nothing(enum.Enum): + NOTHING = enum.auto() + +NOTHING = _Nothing.NOTHING + +# NOTE: Factory lies about its return type to make this possible: +# `x: List[int] # = Factory(list)` +# Work around mypy issue #4554 in the common case by using an overload. +if sys.version_info >= (3, 8): + from typing import Literal + @overload + def Factory(factory: Callable[[], _T]) -> _T: ... + @overload + def Factory( + factory: Callable[[Any], _T], + takes_self: Literal[True], + ) -> _T: ... + @overload + def Factory( + factory: Callable[[], _T], + takes_self: Literal[False], + ) -> _T: ... + +else: + @overload + def Factory(factory: Callable[[], _T]) -> _T: ... + @overload + def Factory( + factory: Union[Callable[[Any], _T], Callable[[], _T]], + takes_self: bool = ..., + ) -> _T: ... + +In = TypeVar("In") +Out = TypeVar("Out") + +class Converter(Generic[In, Out]): + @overload + def __init__(self, converter: Callable[[In], Out]) -> None: ... + @overload + def __init__( + self, + converter: Callable[[In, AttrsInstance, Attribute], Out], + *, + takes_self: Literal[True], + takes_field: Literal[True], + ) -> None: ... + @overload + def __init__( + self, + converter: Callable[[In, Attribute], Out], + *, + takes_field: Literal[True], + ) -> None: ... + @overload + def __init__( + self, + converter: Callable[[In, AttrsInstance], Out], + *, + takes_self: Literal[True], + ) -> None: ... + +class Attribute(Generic[_T]): + name: str + default: _T | None + validator: _ValidatorType[_T] | None + repr: _ReprArgType + cmp: _EqOrderType + eq: _EqOrderType + order: _EqOrderType + hash: bool | None + init: bool + converter: _ConverterType | Converter[Any, _T] | None + metadata: dict[Any, Any] + type: type[_T] | None + kw_only: bool + on_setattr: _OnSetAttrType + alias: str | None + + def evolve(self, **changes: Any) -> "Attribute[Any]": ... + +# NOTE: We had several choices for the annotation to use for type arg: +# 1) Type[_T] +# - Pros: Handles simple cases correctly +# - Cons: Might produce less informative errors in the case of conflicting +# TypeVars e.g. `attr.ib(default='bad', type=int)` +# 2) Callable[..., _T] +# - Pros: Better error messages than #1 for conflicting TypeVars +# - Cons: Terrible error messages for validator checks. +# e.g. attr.ib(type=int, validator=validate_str) +# -> error: Cannot infer function type argument +# 3) type (and do all of the work in the mypy plugin) +# - Pros: Simple here, and we could customize the plugin with our own errors. +# - Cons: Would need to write mypy plugin code to handle all the cases. +# We chose option #1. + +# `attr` lies about its return type to make the following possible: +# attr() -> Any +# attr(8) -> int +# attr(validator=) -> Whatever the callable expects. +# This makes this type of assignments possible: +# x: int = attr(8) +# +# This form catches explicit None or no default but with no other arguments +# returns Any. +@overload +def attrib( + default: None = ..., + validator: None = ..., + repr: _ReprArgType = ..., + cmp: _EqOrderType | None = ..., + hash: bool | None = ..., + init: bool = ..., + metadata: Mapping[Any, Any] | None = ..., + type: None = ..., + converter: None = ..., + factory: None = ..., + kw_only: bool = ..., + eq: _EqOrderType | None = ..., + order: _EqOrderType | None = ..., + on_setattr: _OnSetAttrArgType | None = ..., + alias: str | None = ..., +) -> Any: ... + +# This form catches an explicit None or no default and infers the type from the +# other arguments. +@overload +def attrib( + default: None = ..., + validator: _ValidatorArgType[_T] | None = ..., + repr: _ReprArgType = ..., + cmp: _EqOrderType | None = ..., + hash: bool | None = ..., + init: bool = ..., + metadata: Mapping[Any, Any] | None = ..., + type: type[_T] | None = ..., + converter: _ConverterType | Converter[Any, _T] | None = ..., + factory: Callable[[], _T] | None = ..., + kw_only: bool = ..., + eq: _EqOrderType | None = ..., + order: _EqOrderType | None = ..., + on_setattr: _OnSetAttrArgType | None = ..., + alias: str | None = ..., +) -> _T: ... + +# This form catches an explicit default argument. +@overload +def attrib( + default: _T, + validator: _ValidatorArgType[_T] | None = ..., + repr: _ReprArgType = ..., + cmp: _EqOrderType | None = ..., + hash: bool | None = ..., + init: bool = ..., + metadata: Mapping[Any, Any] | None = ..., + type: type[_T] | None = ..., + converter: _ConverterType | Converter[Any, _T] | None = ..., + factory: Callable[[], _T] | None = ..., + kw_only: bool = ..., + eq: _EqOrderType | None = ..., + order: _EqOrderType | None = ..., + on_setattr: _OnSetAttrArgType | None = ..., + alias: str | None = ..., +) -> _T: ... + +# This form covers type=non-Type: e.g. forward references (str), Any +@overload +def attrib( + default: _T | None = ..., + validator: _ValidatorArgType[_T] | None = ..., + repr: _ReprArgType = ..., + cmp: _EqOrderType | None = ..., + hash: bool | None = ..., + init: bool = ..., + metadata: Mapping[Any, Any] | None = ..., + type: object = ..., + converter: _ConverterType | Converter[Any, _T] | None = ..., + factory: Callable[[], _T] | None = ..., + kw_only: bool = ..., + eq: _EqOrderType | None = ..., + order: _EqOrderType | None = ..., + on_setattr: _OnSetAttrArgType | None = ..., + alias: str | None = ..., +) -> Any: ... +@overload +@dataclass_transform(order_default=True, field_specifiers=(attrib, field)) +def attrs( + maybe_cls: _C, + these: dict[str, Any] | None = ..., + repr_ns: str | None = ..., + repr: bool = ..., + cmp: _EqOrderType | None = ..., + hash: bool | None = ..., + init: bool = ..., + slots: bool = ..., + frozen: bool = ..., + weakref_slot: bool = ..., + str: bool = ..., + auto_attribs: bool = ..., + kw_only: bool = ..., + cache_hash: bool = ..., + auto_exc: bool = ..., + eq: _EqOrderType | None = ..., + order: _EqOrderType | None = ..., + auto_detect: bool = ..., + collect_by_mro: bool = ..., + getstate_setstate: bool | None = ..., + on_setattr: _OnSetAttrArgType | None = ..., + field_transformer: _FieldTransformer | None = ..., + match_args: bool = ..., + unsafe_hash: bool | None = ..., +) -> _C: ... +@overload +@dataclass_transform(order_default=True, field_specifiers=(attrib, field)) +def attrs( + maybe_cls: None = ..., + these: dict[str, Any] | None = ..., + repr_ns: str | None = ..., + repr: bool = ..., + cmp: _EqOrderType | None = ..., + hash: bool | None = ..., + init: bool = ..., + slots: bool = ..., + frozen: bool = ..., + weakref_slot: bool = ..., + str: bool = ..., + auto_attribs: bool = ..., + kw_only: bool = ..., + cache_hash: bool = ..., + auto_exc: bool = ..., + eq: _EqOrderType | None = ..., + order: _EqOrderType | None = ..., + auto_detect: bool = ..., + collect_by_mro: bool = ..., + getstate_setstate: bool | None = ..., + on_setattr: _OnSetAttrArgType | None = ..., + field_transformer: _FieldTransformer | None = ..., + match_args: bool = ..., + unsafe_hash: bool | None = ..., +) -> Callable[[_C], _C]: ... +def fields(cls: type[AttrsInstance]) -> Any: ... +def fields_dict(cls: type[AttrsInstance]) -> dict[str, Attribute[Any]]: ... +def validate(inst: AttrsInstance) -> None: ... +def resolve_types( + cls: _A, + globalns: dict[str, Any] | None = ..., + localns: dict[str, Any] | None = ..., + attribs: list[Attribute[Any]] | None = ..., + include_extras: bool = ..., +) -> _A: ... + +# TODO: add support for returning a proper attrs class from the mypy plugin +# we use Any instead of _CountingAttr so that e.g. `make_class('Foo', +# [attr.ib()])` is valid +def make_class( + name: str, + attrs: list[str] | tuple[str, ...] | dict[str, Any], + bases: tuple[type, ...] = ..., + class_body: dict[str, Any] | None = ..., + repr_ns: str | None = ..., + repr: bool = ..., + cmp: _EqOrderType | None = ..., + hash: bool | None = ..., + init: bool = ..., + slots: bool = ..., + frozen: bool = ..., + weakref_slot: bool = ..., + str: bool = ..., + auto_attribs: bool = ..., + kw_only: bool = ..., + cache_hash: bool = ..., + auto_exc: bool = ..., + eq: _EqOrderType | None = ..., + order: _EqOrderType | None = ..., + collect_by_mro: bool = ..., + on_setattr: _OnSetAttrArgType | None = ..., + field_transformer: _FieldTransformer | None = ..., +) -> type: ... + +# _funcs -- + +# TODO: add support for returning TypedDict from the mypy plugin +# FIXME: asdict/astuple do not honor their factory args. Waiting on one of +# these: +# https://github.com/python/mypy/issues/4236 +# https://github.com/python/typing/issues/253 +# XXX: remember to fix attrs.asdict/astuple too! +def asdict( + inst: AttrsInstance, + recurse: bool = ..., + filter: _FilterType[Any] | None = ..., + dict_factory: type[Mapping[Any, Any]] = ..., + retain_collection_types: bool = ..., + value_serializer: Callable[[type, Attribute[Any], Any], Any] | None = ..., + tuple_keys: bool | None = ..., +) -> dict[str, Any]: ... + +# TODO: add support for returning NamedTuple from the mypy plugin +def astuple( + inst: AttrsInstance, + recurse: bool = ..., + filter: _FilterType[Any] | None = ..., + tuple_factory: type[Sequence[Any]] = ..., + retain_collection_types: bool = ..., +) -> tuple[Any, ...]: ... +def has(cls: type) -> TypeGuard[type[AttrsInstance]]: ... +def assoc(inst: _T, **changes: Any) -> _T: ... +def evolve(inst: _T, **changes: Any) -> _T: ... + +# _config -- + +def set_run_validators(run: bool) -> None: ... +def get_run_validators() -> bool: ... + +# aliases -- + +s = attributes = attrs +ib = attr = attrib +dataclass = attrs # Technically, partial(attrs, auto_attribs=True) ;) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/_cmp.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/_cmp.py new file mode 100644 index 0000000..f367bb3 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/_cmp.py @@ -0,0 +1,160 @@ +# SPDX-License-Identifier: MIT + + +import functools +import types + +from ._make import _make_ne + + +_operation_names = {"eq": "==", "lt": "<", "le": "<=", "gt": ">", "ge": ">="} + + +def cmp_using( + eq=None, + lt=None, + le=None, + gt=None, + ge=None, + require_same_type=True, + class_name="Comparable", +): + """ + Create a class that can be passed into `attrs.field`'s ``eq``, ``order``, + and ``cmp`` arguments to customize field comparison. + + The resulting class will have a full set of ordering methods if at least + one of ``{lt, le, gt, ge}`` and ``eq`` are provided. + + Args: + eq (typing.Callable | None): + Callable used to evaluate equality of two objects. + + lt (typing.Callable | None): + Callable used to evaluate whether one object is less than another + object. + + le (typing.Callable | None): + Callable used to evaluate whether one object is less than or equal + to another object. + + gt (typing.Callable | None): + Callable used to evaluate whether one object is greater than + another object. + + ge (typing.Callable | None): + Callable used to evaluate whether one object is greater than or + equal to another object. + + require_same_type (bool): + When `True`, equality and ordering methods will return + `NotImplemented` if objects are not of the same type. + + class_name (str | None): Name of class. Defaults to "Comparable". + + See `comparison` for more details. + + .. versionadded:: 21.1.0 + """ + + body = { + "__slots__": ["value"], + "__init__": _make_init(), + "_requirements": [], + "_is_comparable_to": _is_comparable_to, + } + + # Add operations. + num_order_functions = 0 + has_eq_function = False + + if eq is not None: + has_eq_function = True + body["__eq__"] = _make_operator("eq", eq) + body["__ne__"] = _make_ne() + + if lt is not None: + num_order_functions += 1 + body["__lt__"] = _make_operator("lt", lt) + + if le is not None: + num_order_functions += 1 + body["__le__"] = _make_operator("le", le) + + if gt is not None: + num_order_functions += 1 + body["__gt__"] = _make_operator("gt", gt) + + if ge is not None: + num_order_functions += 1 + body["__ge__"] = _make_operator("ge", ge) + + type_ = types.new_class( + class_name, (object,), {}, lambda ns: ns.update(body) + ) + + # Add same type requirement. + if require_same_type: + type_._requirements.append(_check_same_type) + + # Add total ordering if at least one operation was defined. + if 0 < num_order_functions < 4: + if not has_eq_function: + # functools.total_ordering requires __eq__ to be defined, + # so raise early error here to keep a nice stack. + msg = "eq must be define is order to complete ordering from lt, le, gt, ge." + raise ValueError(msg) + type_ = functools.total_ordering(type_) + + return type_ + + +def _make_init(): + """ + Create __init__ method. + """ + + def __init__(self, value): + """ + Initialize object with *value*. + """ + self.value = value + + return __init__ + + +def _make_operator(name, func): + """ + Create operator method. + """ + + def method(self, other): + if not self._is_comparable_to(other): + return NotImplemented + + result = func(self.value, other.value) + if result is NotImplemented: + return NotImplemented + + return result + + method.__name__ = f"__{name}__" + method.__doc__ = ( + f"Return a {_operation_names[name]} b. Computed by attrs." + ) + + return method + + +def _is_comparable_to(self, other): + """ + Check whether `other` is comparable to `self`. + """ + return all(func(self, other) for func in self._requirements) + + +def _check_same_type(self, other): + """ + Return True if *self* and *other* are of the same type, False otherwise. + """ + return other.value.__class__ is self.value.__class__ diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/_cmp.pyi b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/_cmp.pyi new file mode 100644 index 0000000..cc7893b --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/_cmp.pyi @@ -0,0 +1,13 @@ +from typing import Any, Callable + +_CompareWithType = Callable[[Any, Any], bool] + +def cmp_using( + eq: _CompareWithType | None = ..., + lt: _CompareWithType | None = ..., + le: _CompareWithType | None = ..., + gt: _CompareWithType | None = ..., + ge: _CompareWithType | None = ..., + require_same_type: bool = ..., + class_name: str = ..., +) -> type: ... diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/_compat.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/_compat.py new file mode 100644 index 0000000..104eeb0 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/_compat.py @@ -0,0 +1,103 @@ +# SPDX-License-Identifier: MIT + +import inspect +import platform +import sys +import threading + +from collections.abc import Mapping, Sequence # noqa: F401 +from typing import _GenericAlias + + +PYPY = platform.python_implementation() == "PyPy" +PY_3_8_PLUS = sys.version_info[:2] >= (3, 8) +PY_3_9_PLUS = sys.version_info[:2] >= (3, 9) +PY_3_10_PLUS = sys.version_info[:2] >= (3, 10) +PY_3_11_PLUS = sys.version_info[:2] >= (3, 11) +PY_3_12_PLUS = sys.version_info[:2] >= (3, 12) +PY_3_13_PLUS = sys.version_info[:2] >= (3, 13) +PY_3_14_PLUS = sys.version_info[:2] >= (3, 14) + + +if sys.version_info < (3, 8): + try: + from typing_extensions import Protocol + except ImportError: # pragma: no cover + Protocol = object +else: + from typing import Protocol # noqa: F401 + +if PY_3_14_PLUS: # pragma: no cover + import annotationlib + + _get_annotations = annotationlib.get_annotations + +else: + + def _get_annotations(cls): + """ + Get annotations for *cls*. + """ + return cls.__dict__.get("__annotations__", {}) + + +class _AnnotationExtractor: + """ + Extract type annotations from a callable, returning None whenever there + is none. + """ + + __slots__ = ["sig"] + + def __init__(self, callable): + try: + self.sig = inspect.signature(callable) + except (ValueError, TypeError): # inspect failed + self.sig = None + + def get_first_param_type(self): + """ + Return the type annotation of the first argument if it's not empty. + """ + if not self.sig: + return None + + params = list(self.sig.parameters.values()) + if params and params[0].annotation is not inspect.Parameter.empty: + return params[0].annotation + + return None + + def get_return_type(self): + """ + Return the return type if it's not empty. + """ + if ( + self.sig + and self.sig.return_annotation is not inspect.Signature.empty + ): + return self.sig.return_annotation + + return None + + +# Thread-local global to track attrs instances which are already being repr'd. +# This is needed because there is no other (thread-safe) way to pass info +# about the instances that are already being repr'd through the call stack +# in order to ensure we don't perform infinite recursion. +# +# For instance, if an instance contains a dict which contains that instance, +# we need to know that we're already repr'ing the outside instance from within +# the dict's repr() call. +# +# This lives here rather than in _make.py so that the functions in _make.py +# don't have a direct reference to the thread-local in their globals dict. +# If they have such a reference, it breaks cloudpickle. +repr_context = threading.local() + + +def get_generic_base(cl): + """If this is a generic class (A[str]), return the generic base for it.""" + if cl.__class__ is _GenericAlias: + return cl.__origin__ + return None diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/_config.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/_config.py new file mode 100644 index 0000000..9c245b1 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/_config.py @@ -0,0 +1,31 @@ +# SPDX-License-Identifier: MIT + +__all__ = ["set_run_validators", "get_run_validators"] + +_run_validators = True + + +def set_run_validators(run): + """ + Set whether or not validators are run. By default, they are run. + + .. deprecated:: 21.3.0 It will not be removed, but it also will not be + moved to new ``attrs`` namespace. Use `attrs.validators.set_disabled()` + instead. + """ + if not isinstance(run, bool): + msg = "'run' must be bool." + raise TypeError(msg) + global _run_validators + _run_validators = run + + +def get_run_validators(): + """ + Return whether or not validators are run. + + .. deprecated:: 21.3.0 It will not be removed, but it also will not be + moved to new ``attrs`` namespace. Use `attrs.validators.get_disabled()` + instead. + """ + return _run_validators diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/_funcs.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/_funcs.py new file mode 100644 index 0000000..355cef4 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/_funcs.py @@ -0,0 +1,522 @@ +# SPDX-License-Identifier: MIT + + +import copy + +from ._compat import PY_3_9_PLUS, get_generic_base +from ._make import _OBJ_SETATTR, NOTHING, fields +from .exceptions import AttrsAttributeNotFoundError + + +def asdict( + inst, + recurse=True, + filter=None, + dict_factory=dict, + retain_collection_types=False, + value_serializer=None, +): + """ + Return the *attrs* attribute values of *inst* as a dict. + + Optionally recurse into other *attrs*-decorated classes. + + Args: + inst: Instance of an *attrs*-decorated class. + + recurse (bool): Recurse into classes that are also *attrs*-decorated. + + filter (~typing.Callable): + A callable whose return code determines whether an attribute or + element is included (`True`) or dropped (`False`). Is called with + the `attrs.Attribute` as the first argument and the value as the + second argument. + + dict_factory (~typing.Callable): + A callable to produce dictionaries from. For example, to produce + ordered dictionaries instead of normal Python dictionaries, pass in + ``collections.OrderedDict``. + + retain_collection_types (bool): + Do not convert to `list` when encountering an attribute whose type + is `tuple` or `set`. Only meaningful if *recurse* is `True`. + + value_serializer (typing.Callable | None): + A hook that is called for every attribute or dict key/value. It + receives the current instance, field and value and must return the + (updated) value. The hook is run *after* the optional *filter* has + been applied. + + Returns: + Return type of *dict_factory*. + + Raises: + attrs.exceptions.NotAnAttrsClassError: + If *cls* is not an *attrs* class. + + .. versionadded:: 16.0.0 *dict_factory* + .. versionadded:: 16.1.0 *retain_collection_types* + .. versionadded:: 20.3.0 *value_serializer* + .. versionadded:: 21.3.0 + If a dict has a collection for a key, it is serialized as a tuple. + """ + attrs = fields(inst.__class__) + rv = dict_factory() + for a in attrs: + v = getattr(inst, a.name) + if filter is not None and not filter(a, v): + continue + + if value_serializer is not None: + v = value_serializer(inst, a, v) + + if recurse is True: + if has(v.__class__): + rv[a.name] = asdict( + v, + recurse=True, + filter=filter, + dict_factory=dict_factory, + retain_collection_types=retain_collection_types, + value_serializer=value_serializer, + ) + elif isinstance(v, (tuple, list, set, frozenset)): + cf = v.__class__ if retain_collection_types is True else list + items = [ + _asdict_anything( + i, + is_key=False, + filter=filter, + dict_factory=dict_factory, + retain_collection_types=retain_collection_types, + value_serializer=value_serializer, + ) + for i in v + ] + try: + rv[a.name] = cf(items) + except TypeError: + if not issubclass(cf, tuple): + raise + # Workaround for TypeError: cf.__new__() missing 1 required + # positional argument (which appears, for a namedturle) + rv[a.name] = cf(*items) + elif isinstance(v, dict): + df = dict_factory + rv[a.name] = df( + ( + _asdict_anything( + kk, + is_key=True, + filter=filter, + dict_factory=df, + retain_collection_types=retain_collection_types, + value_serializer=value_serializer, + ), + _asdict_anything( + vv, + is_key=False, + filter=filter, + dict_factory=df, + retain_collection_types=retain_collection_types, + value_serializer=value_serializer, + ), + ) + for kk, vv in v.items() + ) + else: + rv[a.name] = v + else: + rv[a.name] = v + return rv + + +def _asdict_anything( + val, + is_key, + filter, + dict_factory, + retain_collection_types, + value_serializer, +): + """ + ``asdict`` only works on attrs instances, this works on anything. + """ + if getattr(val.__class__, "__attrs_attrs__", None) is not None: + # Attrs class. + rv = asdict( + val, + recurse=True, + filter=filter, + dict_factory=dict_factory, + retain_collection_types=retain_collection_types, + value_serializer=value_serializer, + ) + elif isinstance(val, (tuple, list, set, frozenset)): + if retain_collection_types is True: + cf = val.__class__ + elif is_key: + cf = tuple + else: + cf = list + + rv = cf( + [ + _asdict_anything( + i, + is_key=False, + filter=filter, + dict_factory=dict_factory, + retain_collection_types=retain_collection_types, + value_serializer=value_serializer, + ) + for i in val + ] + ) + elif isinstance(val, dict): + df = dict_factory + rv = df( + ( + _asdict_anything( + kk, + is_key=True, + filter=filter, + dict_factory=df, + retain_collection_types=retain_collection_types, + value_serializer=value_serializer, + ), + _asdict_anything( + vv, + is_key=False, + filter=filter, + dict_factory=df, + retain_collection_types=retain_collection_types, + value_serializer=value_serializer, + ), + ) + for kk, vv in val.items() + ) + else: + rv = val + if value_serializer is not None: + rv = value_serializer(None, None, rv) + + return rv + + +def astuple( + inst, + recurse=True, + filter=None, + tuple_factory=tuple, + retain_collection_types=False, +): + """ + Return the *attrs* attribute values of *inst* as a tuple. + + Optionally recurse into other *attrs*-decorated classes. + + Args: + inst: Instance of an *attrs*-decorated class. + + recurse (bool): + Recurse into classes that are also *attrs*-decorated. + + filter (~typing.Callable): + A callable whose return code determines whether an attribute or + element is included (`True`) or dropped (`False`). Is called with + the `attrs.Attribute` as the first argument and the value as the + second argument. + + tuple_factory (~typing.Callable): + A callable to produce tuples from. For example, to produce lists + instead of tuples. + + retain_collection_types (bool): + Do not convert to `list` or `dict` when encountering an attribute + which type is `tuple`, `dict` or `set`. Only meaningful if + *recurse* is `True`. + + Returns: + Return type of *tuple_factory* + + Raises: + attrs.exceptions.NotAnAttrsClassError: + If *cls* is not an *attrs* class. + + .. versionadded:: 16.2.0 + """ + attrs = fields(inst.__class__) + rv = [] + retain = retain_collection_types # Very long. :/ + for a in attrs: + v = getattr(inst, a.name) + if filter is not None and not filter(a, v): + continue + if recurse is True: + if has(v.__class__): + rv.append( + astuple( + v, + recurse=True, + filter=filter, + tuple_factory=tuple_factory, + retain_collection_types=retain, + ) + ) + elif isinstance(v, (tuple, list, set, frozenset)): + cf = v.__class__ if retain is True else list + items = [ + ( + astuple( + j, + recurse=True, + filter=filter, + tuple_factory=tuple_factory, + retain_collection_types=retain, + ) + if has(j.__class__) + else j + ) + for j in v + ] + try: + rv.append(cf(items)) + except TypeError: + if not issubclass(cf, tuple): + raise + # Workaround for TypeError: cf.__new__() missing 1 required + # positional argument (which appears, for a namedturle) + rv.append(cf(*items)) + elif isinstance(v, dict): + df = v.__class__ if retain is True else dict + rv.append( + df( + ( + ( + astuple( + kk, + tuple_factory=tuple_factory, + retain_collection_types=retain, + ) + if has(kk.__class__) + else kk + ), + ( + astuple( + vv, + tuple_factory=tuple_factory, + retain_collection_types=retain, + ) + if has(vv.__class__) + else vv + ), + ) + for kk, vv in v.items() + ) + ) + else: + rv.append(v) + else: + rv.append(v) + + return rv if tuple_factory is list else tuple_factory(rv) + + +def has(cls): + """ + Check whether *cls* is a class with *attrs* attributes. + + Args: + cls (type): Class to introspect. + + Raises: + TypeError: If *cls* is not a class. + + Returns: + bool: + """ + attrs = getattr(cls, "__attrs_attrs__", None) + if attrs is not None: + return True + + # No attrs, maybe it's a specialized generic (A[str])? + generic_base = get_generic_base(cls) + if generic_base is not None: + generic_attrs = getattr(generic_base, "__attrs_attrs__", None) + if generic_attrs is not None: + # Stick it on here for speed next time. + cls.__attrs_attrs__ = generic_attrs + return generic_attrs is not None + return False + + +def assoc(inst, **changes): + """ + Copy *inst* and apply *changes*. + + This is different from `evolve` that applies the changes to the arguments + that create the new instance. + + `evolve`'s behavior is preferable, but there are `edge cases`_ where it + doesn't work. Therefore `assoc` is deprecated, but will not be removed. + + .. _`edge cases`: https://github.com/python-attrs/attrs/issues/251 + + Args: + inst: Instance of a class with *attrs* attributes. + + changes: Keyword changes in the new copy. + + Returns: + A copy of inst with *changes* incorporated. + + Raises: + attrs.exceptions.AttrsAttributeNotFoundError: + If *attr_name* couldn't be found on *cls*. + + attrs.exceptions.NotAnAttrsClassError: + If *cls* is not an *attrs* class. + + .. deprecated:: 17.1.0 + Use `attrs.evolve` instead if you can. This function will not be + removed du to the slightly different approach compared to + `attrs.evolve`, though. + """ + new = copy.copy(inst) + attrs = fields(inst.__class__) + for k, v in changes.items(): + a = getattr(attrs, k, NOTHING) + if a is NOTHING: + msg = f"{k} is not an attrs attribute on {new.__class__}." + raise AttrsAttributeNotFoundError(msg) + _OBJ_SETATTR(new, k, v) + return new + + +def evolve(*args, **changes): + """ + Create a new instance, based on the first positional argument with + *changes* applied. + + Args: + + inst: + Instance of a class with *attrs* attributes. *inst* must be passed + as a positional argument. + + changes: + Keyword changes in the new copy. + + Returns: + A copy of inst with *changes* incorporated. + + Raises: + TypeError: + If *attr_name* couldn't be found in the class ``__init__``. + + attrs.exceptions.NotAnAttrsClassError: + If *cls* is not an *attrs* class. + + .. versionadded:: 17.1.0 + .. deprecated:: 23.1.0 + It is now deprecated to pass the instance using the keyword argument + *inst*. It will raise a warning until at least April 2024, after which + it will become an error. Always pass the instance as a positional + argument. + .. versionchanged:: 24.1.0 + *inst* can't be passed as a keyword argument anymore. + """ + try: + (inst,) = args + except ValueError: + msg = ( + f"evolve() takes 1 positional argument, but {len(args)} were given" + ) + raise TypeError(msg) from None + + cls = inst.__class__ + attrs = fields(cls) + for a in attrs: + if not a.init: + continue + attr_name = a.name # To deal with private attributes. + init_name = a.alias + if init_name not in changes: + changes[init_name] = getattr(inst, attr_name) + + return cls(**changes) + + +def resolve_types( + cls, globalns=None, localns=None, attribs=None, include_extras=True +): + """ + Resolve any strings and forward annotations in type annotations. + + This is only required if you need concrete types in :class:`Attribute`'s + *type* field. In other words, you don't need to resolve your types if you + only use them for static type checking. + + With no arguments, names will be looked up in the module in which the class + was created. If this is not what you want, for example, if the name only + exists inside a method, you may pass *globalns* or *localns* to specify + other dictionaries in which to look up these names. See the docs of + `typing.get_type_hints` for more details. + + Args: + cls (type): Class to resolve. + + globalns (dict | None): Dictionary containing global variables. + + localns (dict | None): Dictionary containing local variables. + + attribs (list | None): + List of attribs for the given class. This is necessary when calling + from inside a ``field_transformer`` since *cls* is not an *attrs* + class yet. + + include_extras (bool): + Resolve more accurately, if possible. Pass ``include_extras`` to + ``typing.get_hints``, if supported by the typing module. On + supported Python versions (3.9+), this resolves the types more + accurately. + + Raises: + TypeError: If *cls* is not a class. + + attrs.exceptions.NotAnAttrsClassError: + If *cls* is not an *attrs* class and you didn't pass any attribs. + + NameError: If types cannot be resolved because of missing variables. + + Returns: + *cls* so you can use this function also as a class decorator. Please + note that you have to apply it **after** `attrs.define`. That means the + decorator has to come in the line **before** `attrs.define`. + + .. versionadded:: 20.1.0 + .. versionadded:: 21.1.0 *attribs* + .. versionadded:: 23.1.0 *include_extras* + """ + # Since calling get_type_hints is expensive we cache whether we've + # done it already. + if getattr(cls, "__attrs_types_resolved__", None) != cls: + import typing + + kwargs = {"globalns": globalns, "localns": localns} + + if PY_3_9_PLUS: + kwargs["include_extras"] = include_extras + + hints = typing.get_type_hints(cls, **kwargs) + for field in fields(cls) if attribs is None else attribs: + if field.name in hints: + # Since fields have been frozen we must work around it. + _OBJ_SETATTR(field, "type", hints[field.name]) + # We store the class we resolved so that subclasses know they haven't + # been resolved. + cls.__attrs_types_resolved__ = cls + + # Return the class so you can use it as a decorator too. + return cls diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/_make.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/_make.py new file mode 100644 index 0000000..bf00c5f --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/_make.py @@ -0,0 +1,2960 @@ +# SPDX-License-Identifier: MIT + +from __future__ import annotations + +import abc +import contextlib +import copy +import enum +import functools +import inspect +import itertools +import linecache +import sys +import types +import typing + +from operator import itemgetter + +# We need to import _compat itself in addition to the _compat members to avoid +# having the thread-local in the globals here. +from . import _compat, _config, setters +from ._compat import ( + PY_3_8_PLUS, + PY_3_10_PLUS, + PY_3_11_PLUS, + _AnnotationExtractor, + _get_annotations, + get_generic_base, +) +from .exceptions import ( + DefaultAlreadySetError, + FrozenInstanceError, + NotAnAttrsClassError, + UnannotatedAttributeError, +) + + +# This is used at least twice, so cache it here. +_OBJ_SETATTR = object.__setattr__ +_INIT_FACTORY_PAT = "__attr_factory_%s" +_CLASSVAR_PREFIXES = ( + "typing.ClassVar", + "t.ClassVar", + "ClassVar", + "typing_extensions.ClassVar", +) +# we don't use a double-underscore prefix because that triggers +# name mangling when trying to create a slot for the field +# (when slots=True) +_HASH_CACHE_FIELD = "_attrs_cached_hash" + +_EMPTY_METADATA_SINGLETON = types.MappingProxyType({}) + +# Unique object for unequivocal getattr() defaults. +_SENTINEL = object() + +_DEFAULT_ON_SETATTR = setters.pipe(setters.convert, setters.validate) + + +class _Nothing(enum.Enum): + """ + Sentinel to indicate the lack of a value when `None` is ambiguous. + + If extending attrs, you can use ``typing.Literal[NOTHING]`` to show + that a value may be ``NOTHING``. + + .. versionchanged:: 21.1.0 ``bool(NOTHING)`` is now False. + .. versionchanged:: 22.2.0 ``NOTHING`` is now an ``enum.Enum`` variant. + """ + + NOTHING = enum.auto() + + def __repr__(self): + return "NOTHING" + + def __bool__(self): + return False + + +NOTHING = _Nothing.NOTHING +""" +Sentinel to indicate the lack of a value when `None` is ambiguous. +""" + + +class _CacheHashWrapper(int): + """ + An integer subclass that pickles / copies as None + + This is used for non-slots classes with ``cache_hash=True``, to avoid + serializing a potentially (even likely) invalid hash value. Since `None` + is the default value for uncalculated hashes, whenever this is copied, + the copy's value for the hash should automatically reset. + + See GH #613 for more details. + """ + + def __reduce__(self, _none_constructor=type(None), _args=()): # noqa: B008 + return _none_constructor, _args + + +def attrib( + default=NOTHING, + validator=None, + repr=True, + cmp=None, + hash=None, + init=True, + metadata=None, + type=None, + converter=None, + factory=None, + kw_only=False, + eq=None, + order=None, + on_setattr=None, + alias=None, +): + """ + Create a new field / attribute on a class. + + Identical to `attrs.field`, except it's not keyword-only. + + Consider using `attrs.field` in new code (``attr.ib`` will *never* go away, + though). + + .. warning:: + + Does **nothing** unless the class is also decorated with + `attr.s` (or similar)! + + + .. versionadded:: 15.2.0 *convert* + .. versionadded:: 16.3.0 *metadata* + .. versionchanged:: 17.1.0 *validator* can be a ``list`` now. + .. versionchanged:: 17.1.0 + *hash* is `None` and therefore mirrors *eq* by default. + .. versionadded:: 17.3.0 *type* + .. deprecated:: 17.4.0 *convert* + .. versionadded:: 17.4.0 + *converter* as a replacement for the deprecated *convert* to achieve + consistency with other noun-based arguments. + .. versionadded:: 18.1.0 + ``factory=f`` is syntactic sugar for ``default=attr.Factory(f)``. + .. versionadded:: 18.2.0 *kw_only* + .. versionchanged:: 19.2.0 *convert* keyword argument removed. + .. versionchanged:: 19.2.0 *repr* also accepts a custom callable. + .. deprecated:: 19.2.0 *cmp* Removal on or after 2021-06-01. + .. versionadded:: 19.2.0 *eq* and *order* + .. versionadded:: 20.1.0 *on_setattr* + .. versionchanged:: 20.3.0 *kw_only* backported to Python 2 + .. versionchanged:: 21.1.0 + *eq*, *order*, and *cmp* also accept a custom callable + .. versionchanged:: 21.1.0 *cmp* undeprecated + .. versionadded:: 22.2.0 *alias* + """ + eq, eq_key, order, order_key = _determine_attrib_eq_order( + cmp, eq, order, True + ) + + if hash is not None and hash is not True and hash is not False: + msg = "Invalid value for hash. Must be True, False, or None." + raise TypeError(msg) + + if factory is not None: + if default is not NOTHING: + msg = ( + "The `default` and `factory` arguments are mutually exclusive." + ) + raise ValueError(msg) + if not callable(factory): + msg = "The `factory` argument must be a callable." + raise ValueError(msg) + default = Factory(factory) + + if metadata is None: + metadata = {} + + # Apply syntactic sugar by auto-wrapping. + if isinstance(on_setattr, (list, tuple)): + on_setattr = setters.pipe(*on_setattr) + + if validator and isinstance(validator, (list, tuple)): + validator = and_(*validator) + + if converter and isinstance(converter, (list, tuple)): + converter = pipe(*converter) + + return _CountingAttr( + default=default, + validator=validator, + repr=repr, + cmp=None, + hash=hash, + init=init, + converter=converter, + metadata=metadata, + type=type, + kw_only=kw_only, + eq=eq, + eq_key=eq_key, + order=order, + order_key=order_key, + on_setattr=on_setattr, + alias=alias, + ) + + +def _compile_and_eval(script, globs, locs=None, filename=""): + """ + Evaluate the script with the given global (globs) and local (locs) + variables. + """ + bytecode = compile(script, filename, "exec") + eval(bytecode, globs, locs) + + +def _make_method(name, script, filename, globs, locals=None): + """ + Create the method with the script given and return the method object. + """ + locs = {} if locals is None else locals + + # In order of debuggers like PDB being able to step through the code, + # we add a fake linecache entry. + count = 1 + base_filename = filename + while True: + linecache_tuple = ( + len(script), + None, + script.splitlines(True), + filename, + ) + old_val = linecache.cache.setdefault(filename, linecache_tuple) + if old_val == linecache_tuple: + break + + filename = f"{base_filename[:-1]}-{count}>" + count += 1 + + _compile_and_eval(script, globs, locs, filename) + + return locs[name] + + +def _make_attr_tuple_class(cls_name, attr_names): + """ + Create a tuple subclass to hold `Attribute`s for an `attrs` class. + + The subclass is a bare tuple with properties for names. + + class MyClassAttributes(tuple): + __slots__ = () + x = property(itemgetter(0)) + """ + attr_class_name = f"{cls_name}Attributes" + attr_class_template = [ + f"class {attr_class_name}(tuple):", + " __slots__ = ()", + ] + if attr_names: + for i, attr_name in enumerate(attr_names): + attr_class_template.append( + f" {attr_name} = _attrs_property(_attrs_itemgetter({i}))" + ) + else: + attr_class_template.append(" pass") + globs = {"_attrs_itemgetter": itemgetter, "_attrs_property": property} + _compile_and_eval("\n".join(attr_class_template), globs) + return globs[attr_class_name] + + +# Tuple class for extracted attributes from a class definition. +# `base_attrs` is a subset of `attrs`. +_Attributes = _make_attr_tuple_class( + "_Attributes", + [ + # all attributes to build dunder methods for + "attrs", + # attributes that have been inherited + "base_attrs", + # map inherited attributes to their originating classes + "base_attrs_map", + ], +) + + +def _is_class_var(annot): + """ + Check whether *annot* is a typing.ClassVar. + + The string comparison hack is used to avoid evaluating all string + annotations which would put attrs-based classes at a performance + disadvantage compared to plain old classes. + """ + annot = str(annot) + + # Annotation can be quoted. + if annot.startswith(("'", '"')) and annot.endswith(("'", '"')): + annot = annot[1:-1] + + return annot.startswith(_CLASSVAR_PREFIXES) + + +def _has_own_attribute(cls, attrib_name): + """ + Check whether *cls* defines *attrib_name* (and doesn't just inherit it). + """ + return attrib_name in cls.__dict__ + + +def _collect_base_attrs(cls, taken_attr_names): + """ + Collect attr.ibs from base classes of *cls*, except *taken_attr_names*. + """ + base_attrs = [] + base_attr_map = {} # A dictionary of base attrs to their classes. + + # Traverse the MRO and collect attributes. + for base_cls in reversed(cls.__mro__[1:-1]): + for a in getattr(base_cls, "__attrs_attrs__", []): + if a.inherited or a.name in taken_attr_names: + continue + + a = a.evolve(inherited=True) # noqa: PLW2901 + base_attrs.append(a) + base_attr_map[a.name] = base_cls + + # For each name, only keep the freshest definition i.e. the furthest at the + # back. base_attr_map is fine because it gets overwritten with every new + # instance. + filtered = [] + seen = set() + for a in reversed(base_attrs): + if a.name in seen: + continue + filtered.insert(0, a) + seen.add(a.name) + + return filtered, base_attr_map + + +def _collect_base_attrs_broken(cls, taken_attr_names): + """ + Collect attr.ibs from base classes of *cls*, except *taken_attr_names*. + + N.B. *taken_attr_names* will be mutated. + + Adhere to the old incorrect behavior. + + Notably it collects from the front and considers inherited attributes which + leads to the buggy behavior reported in #428. + """ + base_attrs = [] + base_attr_map = {} # A dictionary of base attrs to their classes. + + # Traverse the MRO and collect attributes. + for base_cls in cls.__mro__[1:-1]: + for a in getattr(base_cls, "__attrs_attrs__", []): + if a.name in taken_attr_names: + continue + + a = a.evolve(inherited=True) # noqa: PLW2901 + taken_attr_names.add(a.name) + base_attrs.append(a) + base_attr_map[a.name] = base_cls + + return base_attrs, base_attr_map + + +def _transform_attrs( + cls, these, auto_attribs, kw_only, collect_by_mro, field_transformer +): + """ + Transform all `_CountingAttr`s on a class into `Attribute`s. + + If *these* is passed, use that and don't look for them on the class. + + If *collect_by_mro* is True, collect them in the correct MRO order, + otherwise use the old -- incorrect -- order. See #428. + + Return an `_Attributes`. + """ + cd = cls.__dict__ + anns = _get_annotations(cls) + + if these is not None: + ca_list = list(these.items()) + elif auto_attribs is True: + ca_names = { + name + for name, attr in cd.items() + if isinstance(attr, _CountingAttr) + } + ca_list = [] + annot_names = set() + for attr_name, type in anns.items(): + if _is_class_var(type): + continue + annot_names.add(attr_name) + a = cd.get(attr_name, NOTHING) + + if not isinstance(a, _CountingAttr): + a = attrib() if a is NOTHING else attrib(default=a) + ca_list.append((attr_name, a)) + + unannotated = ca_names - annot_names + if len(unannotated) > 0: + raise UnannotatedAttributeError( + "The following `attr.ib`s lack a type annotation: " + + ", ".join( + sorted(unannotated, key=lambda n: cd.get(n).counter) + ) + + "." + ) + else: + ca_list = sorted( + ( + (name, attr) + for name, attr in cd.items() + if isinstance(attr, _CountingAttr) + ), + key=lambda e: e[1].counter, + ) + + own_attrs = [ + Attribute.from_counting_attr( + name=attr_name, ca=ca, type=anns.get(attr_name) + ) + for attr_name, ca in ca_list + ] + + if collect_by_mro: + base_attrs, base_attr_map = _collect_base_attrs( + cls, {a.name for a in own_attrs} + ) + else: + base_attrs, base_attr_map = _collect_base_attrs_broken( + cls, {a.name for a in own_attrs} + ) + + if kw_only: + own_attrs = [a.evolve(kw_only=True) for a in own_attrs] + base_attrs = [a.evolve(kw_only=True) for a in base_attrs] + + attrs = base_attrs + own_attrs + + # Mandatory vs non-mandatory attr order only matters when they are part of + # the __init__ signature and when they aren't kw_only (which are moved to + # the end and can be mandatory or non-mandatory in any order, as they will + # be specified as keyword args anyway). Check the order of those attrs: + had_default = False + for a in (a for a in attrs if a.init is not False and a.kw_only is False): + if had_default is True and a.default is NOTHING: + msg = f"No mandatory attributes allowed after an attribute with a default value or factory. Attribute in question: {a!r}" + raise ValueError(msg) + + if had_default is False and a.default is not NOTHING: + had_default = True + + if field_transformer is not None: + attrs = field_transformer(cls, attrs) + + # Resolve default field alias after executing field_transformer. + # This allows field_transformer to differentiate between explicit vs + # default aliases and supply their own defaults. + attrs = [ + a.evolve(alias=_default_init_alias_for(a.name)) if not a.alias else a + for a in attrs + ] + + # Create AttrsClass *after* applying the field_transformer since it may + # add or remove attributes! + attr_names = [a.name for a in attrs] + AttrsClass = _make_attr_tuple_class(cls.__name__, attr_names) + + return _Attributes((AttrsClass(attrs), base_attrs, base_attr_map)) + + +def _make_cached_property_getattr(cached_properties, original_getattr, cls): + lines = [ + # Wrapped to get `__class__` into closure cell for super() + # (It will be replaced with the newly constructed class after construction). + "def wrapper(_cls):", + " __class__ = _cls", + " def __getattr__(self, item, cached_properties=cached_properties, original_getattr=original_getattr, _cached_setattr_get=_cached_setattr_get):", + " func = cached_properties.get(item)", + " if func is not None:", + " result = func(self)", + " _setter = _cached_setattr_get(self)", + " _setter(item, result)", + " return result", + ] + if original_getattr is not None: + lines.append( + " return original_getattr(self, item)", + ) + else: + lines.extend( + [ + " try:", + " return super().__getattribute__(item)", + " except AttributeError:", + " if not hasattr(super(), '__getattr__'):", + " raise", + " return super().__getattr__(item)", + " original_error = f\"'{self.__class__.__name__}' object has no attribute '{item}'\"", + " raise AttributeError(original_error)", + ] + ) + + lines.extend( + [ + " return __getattr__", + "__getattr__ = wrapper(_cls)", + ] + ) + + unique_filename = _generate_unique_filename(cls, "getattr") + + glob = { + "cached_properties": cached_properties, + "_cached_setattr_get": _OBJ_SETATTR.__get__, + "original_getattr": original_getattr, + } + + return _make_method( + "__getattr__", + "\n".join(lines), + unique_filename, + glob, + locals={ + "_cls": cls, + }, + ) + + +def _frozen_setattrs(self, name, value): + """ + Attached to frozen classes as __setattr__. + """ + if isinstance(self, BaseException) and name in ( + "__cause__", + "__context__", + "__traceback__", + ): + BaseException.__setattr__(self, name, value) + return + + raise FrozenInstanceError() + + +def _frozen_delattrs(self, name): + """ + Attached to frozen classes as __delattr__. + """ + raise FrozenInstanceError() + + +class _ClassBuilder: + """ + Iteratively build *one* class. + """ + + __slots__ = ( + "_attr_names", + "_attrs", + "_base_attr_map", + "_base_names", + "_cache_hash", + "_cls", + "_cls_dict", + "_delete_attribs", + "_frozen", + "_has_pre_init", + "_pre_init_has_args", + "_has_post_init", + "_is_exc", + "_on_setattr", + "_slots", + "_weakref_slot", + "_wrote_own_setattr", + "_has_custom_setattr", + ) + + def __init__( + self, + cls, + these, + slots, + frozen, + weakref_slot, + getstate_setstate, + auto_attribs, + kw_only, + cache_hash, + is_exc, + collect_by_mro, + on_setattr, + has_custom_setattr, + field_transformer, + ): + attrs, base_attrs, base_map = _transform_attrs( + cls, + these, + auto_attribs, + kw_only, + collect_by_mro, + field_transformer, + ) + + self._cls = cls + self._cls_dict = dict(cls.__dict__) if slots else {} + self._attrs = attrs + self._base_names = {a.name for a in base_attrs} + self._base_attr_map = base_map + self._attr_names = tuple(a.name for a in attrs) + self._slots = slots + self._frozen = frozen + self._weakref_slot = weakref_slot + self._cache_hash = cache_hash + self._has_pre_init = bool(getattr(cls, "__attrs_pre_init__", False)) + self._pre_init_has_args = False + if self._has_pre_init: + # Check if the pre init method has more arguments than just `self` + # We want to pass arguments if pre init expects arguments + pre_init_func = cls.__attrs_pre_init__ + pre_init_signature = inspect.signature(pre_init_func) + self._pre_init_has_args = len(pre_init_signature.parameters) > 1 + self._has_post_init = bool(getattr(cls, "__attrs_post_init__", False)) + self._delete_attribs = not bool(these) + self._is_exc = is_exc + self._on_setattr = on_setattr + + self._has_custom_setattr = has_custom_setattr + self._wrote_own_setattr = False + + self._cls_dict["__attrs_attrs__"] = self._attrs + + if frozen: + self._cls_dict["__setattr__"] = _frozen_setattrs + self._cls_dict["__delattr__"] = _frozen_delattrs + + self._wrote_own_setattr = True + elif on_setattr in ( + _DEFAULT_ON_SETATTR, + setters.validate, + setters.convert, + ): + has_validator = has_converter = False + for a in attrs: + if a.validator is not None: + has_validator = True + if a.converter is not None: + has_converter = True + + if has_validator and has_converter: + break + if ( + ( + on_setattr == _DEFAULT_ON_SETATTR + and not (has_validator or has_converter) + ) + or (on_setattr == setters.validate and not has_validator) + or (on_setattr == setters.convert and not has_converter) + ): + # If class-level on_setattr is set to convert + validate, but + # there's no field to convert or validate, pretend like there's + # no on_setattr. + self._on_setattr = None + + if getstate_setstate: + ( + self._cls_dict["__getstate__"], + self._cls_dict["__setstate__"], + ) = self._make_getstate_setstate() + + def __repr__(self): + return f"<_ClassBuilder(cls={self._cls.__name__})>" + + def build_class(self): + """ + Finalize class based on the accumulated configuration. + + Builder cannot be used after calling this method. + """ + if self._slots is True: + cls = self._create_slots_class() + else: + cls = self._patch_original_class() + if PY_3_10_PLUS: + cls = abc.update_abstractmethods(cls) + + # The method gets only called if it's not inherited from a base class. + # _has_own_attribute does NOT work properly for classmethods. + if ( + getattr(cls, "__attrs_init_subclass__", None) + and "__attrs_init_subclass__" not in cls.__dict__ + ): + cls.__attrs_init_subclass__() + + return cls + + def _patch_original_class(self): + """ + Apply accumulated methods and return the class. + """ + cls = self._cls + base_names = self._base_names + + # Clean class of attribute definitions (`attr.ib()`s). + if self._delete_attribs: + for name in self._attr_names: + if ( + name not in base_names + and getattr(cls, name, _SENTINEL) is not _SENTINEL + ): + # An AttributeError can happen if a base class defines a + # class variable and we want to set an attribute with the + # same name by using only a type annotation. + with contextlib.suppress(AttributeError): + delattr(cls, name) + + # Attach our dunder methods. + for name, value in self._cls_dict.items(): + setattr(cls, name, value) + + # If we've inherited an attrs __setattr__ and don't write our own, + # reset it to object's. + if not self._wrote_own_setattr and getattr( + cls, "__attrs_own_setattr__", False + ): + cls.__attrs_own_setattr__ = False + + if not self._has_custom_setattr: + cls.__setattr__ = _OBJ_SETATTR + + return cls + + def _create_slots_class(self): + """ + Build and return a new class with a `__slots__` attribute. + """ + cd = { + k: v + for k, v in self._cls_dict.items() + if k not in (*tuple(self._attr_names), "__dict__", "__weakref__") + } + + # If our class doesn't have its own implementation of __setattr__ + # (either from the user or by us), check the bases, if one of them has + # an attrs-made __setattr__, that needs to be reset. We don't walk the + # MRO because we only care about our immediate base classes. + # XXX: This can be confused by subclassing a slotted attrs class with + # XXX: a non-attrs class and subclass the resulting class with an attrs + # XXX: class. See `test_slotted_confused` for details. For now that's + # XXX: OK with us. + if not self._wrote_own_setattr: + cd["__attrs_own_setattr__"] = False + + if not self._has_custom_setattr: + for base_cls in self._cls.__bases__: + if base_cls.__dict__.get("__attrs_own_setattr__", False): + cd["__setattr__"] = _OBJ_SETATTR + break + + # Traverse the MRO to collect existing slots + # and check for an existing __weakref__. + existing_slots = {} + weakref_inherited = False + for base_cls in self._cls.__mro__[1:-1]: + if base_cls.__dict__.get("__weakref__", None) is not None: + weakref_inherited = True + existing_slots.update( + { + name: getattr(base_cls, name) + for name in getattr(base_cls, "__slots__", []) + } + ) + + base_names = set(self._base_names) + + names = self._attr_names + if ( + self._weakref_slot + and "__weakref__" not in getattr(self._cls, "__slots__", ()) + and "__weakref__" not in names + and not weakref_inherited + ): + names += ("__weakref__",) + + if PY_3_8_PLUS: + cached_properties = { + name: cached_property.func + for name, cached_property in cd.items() + if isinstance(cached_property, functools.cached_property) + } + else: + # `functools.cached_property` was introduced in 3.8. + # So can't be used before this. + cached_properties = {} + + # Collect methods with a `__class__` reference that are shadowed in the new class. + # To know to update them. + additional_closure_functions_to_update = [] + if cached_properties: + class_annotations = _get_annotations(self._cls) + for name, func in cached_properties.items(): + # Add cached properties to names for slotting. + names += (name,) + # Clear out function from class to avoid clashing. + del cd[name] + additional_closure_functions_to_update.append(func) + annotation = inspect.signature(func).return_annotation + if annotation is not inspect.Parameter.empty: + class_annotations[name] = annotation + + original_getattr = cd.get("__getattr__") + if original_getattr is not None: + additional_closure_functions_to_update.append(original_getattr) + + cd["__getattr__"] = _make_cached_property_getattr( + cached_properties, original_getattr, self._cls + ) + + # We only add the names of attributes that aren't inherited. + # Setting __slots__ to inherited attributes wastes memory. + slot_names = [name for name in names if name not in base_names] + + # There are slots for attributes from current class + # that are defined in parent classes. + # As their descriptors may be overridden by a child class, + # we collect them here and update the class dict + reused_slots = { + slot: slot_descriptor + for slot, slot_descriptor in existing_slots.items() + if slot in slot_names + } + slot_names = [name for name in slot_names if name not in reused_slots] + cd.update(reused_slots) + if self._cache_hash: + slot_names.append(_HASH_CACHE_FIELD) + + cd["__slots__"] = tuple(slot_names) + + cd["__qualname__"] = self._cls.__qualname__ + + # Create new class based on old class and our methods. + cls = type(self._cls)(self._cls.__name__, self._cls.__bases__, cd) + + # The following is a fix for + # . + # If a method mentions `__class__` or uses the no-arg super(), the + # compiler will bake a reference to the class in the method itself + # as `method.__closure__`. Since we replace the class with a + # clone, we rewrite these references so it keeps working. + for item in itertools.chain( + cls.__dict__.values(), additional_closure_functions_to_update + ): + if isinstance(item, (classmethod, staticmethod)): + # Class- and staticmethods hide their functions inside. + # These might need to be rewritten as well. + closure_cells = getattr(item.__func__, "__closure__", None) + elif isinstance(item, property): + # Workaround for property `super()` shortcut (PY3-only). + # There is no universal way for other descriptors. + closure_cells = getattr(item.fget, "__closure__", None) + else: + closure_cells = getattr(item, "__closure__", None) + + if not closure_cells: # Catch None or the empty list. + continue + for cell in closure_cells: + try: + match = cell.cell_contents is self._cls + except ValueError: # noqa: PERF203 + # ValueError: Cell is empty + pass + else: + if match: + cell.cell_contents = cls + return cls + + def add_repr(self, ns): + self._cls_dict["__repr__"] = self._add_method_dunders( + _make_repr(self._attrs, ns, self._cls) + ) + return self + + def add_str(self): + repr = self._cls_dict.get("__repr__") + if repr is None: + msg = "__str__ can only be generated if a __repr__ exists." + raise ValueError(msg) + + def __str__(self): + return self.__repr__() + + self._cls_dict["__str__"] = self._add_method_dunders(__str__) + return self + + def _make_getstate_setstate(self): + """ + Create custom __setstate__ and __getstate__ methods. + """ + # __weakref__ is not writable. + state_attr_names = tuple( + an for an in self._attr_names if an != "__weakref__" + ) + + def slots_getstate(self): + """ + Automatically created by attrs. + """ + return {name: getattr(self, name) for name in state_attr_names} + + hash_caching_enabled = self._cache_hash + + def slots_setstate(self, state): + """ + Automatically created by attrs. + """ + __bound_setattr = _OBJ_SETATTR.__get__(self) + if isinstance(state, tuple): + # Backward compatibility with attrs instances pickled with + # attrs versions before v22.2.0 which stored tuples. + for name, value in zip(state_attr_names, state): + __bound_setattr(name, value) + else: + for name in state_attr_names: + if name in state: + __bound_setattr(name, state[name]) + + # The hash code cache is not included when the object is + # serialized, but it still needs to be initialized to None to + # indicate that the first call to __hash__ should be a cache + # miss. + if hash_caching_enabled: + __bound_setattr(_HASH_CACHE_FIELD, None) + + return slots_getstate, slots_setstate + + def make_unhashable(self): + self._cls_dict["__hash__"] = None + return self + + def add_hash(self): + self._cls_dict["__hash__"] = self._add_method_dunders( + _make_hash( + self._cls, + self._attrs, + frozen=self._frozen, + cache_hash=self._cache_hash, + ) + ) + + return self + + def add_init(self): + self._cls_dict["__init__"] = self._add_method_dunders( + _make_init( + self._cls, + self._attrs, + self._has_pre_init, + self._pre_init_has_args, + self._has_post_init, + self._frozen, + self._slots, + self._cache_hash, + self._base_attr_map, + self._is_exc, + self._on_setattr, + attrs_init=False, + ) + ) + + return self + + def add_match_args(self): + self._cls_dict["__match_args__"] = tuple( + field.name + for field in self._attrs + if field.init and not field.kw_only + ) + + def add_attrs_init(self): + self._cls_dict["__attrs_init__"] = self._add_method_dunders( + _make_init( + self._cls, + self._attrs, + self._has_pre_init, + self._pre_init_has_args, + self._has_post_init, + self._frozen, + self._slots, + self._cache_hash, + self._base_attr_map, + self._is_exc, + self._on_setattr, + attrs_init=True, + ) + ) + + return self + + def add_eq(self): + cd = self._cls_dict + + cd["__eq__"] = self._add_method_dunders( + _make_eq(self._cls, self._attrs) + ) + cd["__ne__"] = self._add_method_dunders(_make_ne()) + + return self + + def add_order(self): + cd = self._cls_dict + + cd["__lt__"], cd["__le__"], cd["__gt__"], cd["__ge__"] = ( + self._add_method_dunders(meth) + for meth in _make_order(self._cls, self._attrs) + ) + + return self + + def add_setattr(self): + if self._frozen: + return self + + sa_attrs = {} + for a in self._attrs: + on_setattr = a.on_setattr or self._on_setattr + if on_setattr and on_setattr is not setters.NO_OP: + sa_attrs[a.name] = a, on_setattr + + if not sa_attrs: + return self + + if self._has_custom_setattr: + # We need to write a __setattr__ but there already is one! + msg = "Can't combine custom __setattr__ with on_setattr hooks." + raise ValueError(msg) + + # docstring comes from _add_method_dunders + def __setattr__(self, name, val): + try: + a, hook = sa_attrs[name] + except KeyError: + nval = val + else: + nval = hook(self, a, val) + + _OBJ_SETATTR(self, name, nval) + + self._cls_dict["__attrs_own_setattr__"] = True + self._cls_dict["__setattr__"] = self._add_method_dunders(__setattr__) + self._wrote_own_setattr = True + + return self + + def _add_method_dunders(self, method): + """ + Add __module__ and __qualname__ to a *method* if possible. + """ + with contextlib.suppress(AttributeError): + method.__module__ = self._cls.__module__ + + with contextlib.suppress(AttributeError): + method.__qualname__ = f"{self._cls.__qualname__}.{method.__name__}" + + with contextlib.suppress(AttributeError): + method.__doc__ = ( + "Method generated by attrs for class " + f"{self._cls.__qualname__}." + ) + + return method + + +def _determine_attrs_eq_order(cmp, eq, order, default_eq): + """ + Validate the combination of *cmp*, *eq*, and *order*. Derive the effective + values of eq and order. If *eq* is None, set it to *default_eq*. + """ + if cmp is not None and any((eq is not None, order is not None)): + msg = "Don't mix `cmp` with `eq' and `order`." + raise ValueError(msg) + + # cmp takes precedence due to bw-compatibility. + if cmp is not None: + return cmp, cmp + + # If left None, equality is set to the specified default and ordering + # mirrors equality. + if eq is None: + eq = default_eq + + if order is None: + order = eq + + if eq is False and order is True: + msg = "`order` can only be True if `eq` is True too." + raise ValueError(msg) + + return eq, order + + +def _determine_attrib_eq_order(cmp, eq, order, default_eq): + """ + Validate the combination of *cmp*, *eq*, and *order*. Derive the effective + values of eq and order. If *eq* is None, set it to *default_eq*. + """ + if cmp is not None and any((eq is not None, order is not None)): + msg = "Don't mix `cmp` with `eq' and `order`." + raise ValueError(msg) + + def decide_callable_or_boolean(value): + """ + Decide whether a key function is used. + """ + if callable(value): + value, key = True, value + else: + key = None + return value, key + + # cmp takes precedence due to bw-compatibility. + if cmp is not None: + cmp, cmp_key = decide_callable_or_boolean(cmp) + return cmp, cmp_key, cmp, cmp_key + + # If left None, equality is set to the specified default and ordering + # mirrors equality. + if eq is None: + eq, eq_key = default_eq, None + else: + eq, eq_key = decide_callable_or_boolean(eq) + + if order is None: + order, order_key = eq, eq_key + else: + order, order_key = decide_callable_or_boolean(order) + + if eq is False and order is True: + msg = "`order` can only be True if `eq` is True too." + raise ValueError(msg) + + return eq, eq_key, order, order_key + + +def _determine_whether_to_implement( + cls, flag, auto_detect, dunders, default=True +): + """ + Check whether we should implement a set of methods for *cls*. + + *flag* is the argument passed into @attr.s like 'init', *auto_detect* the + same as passed into @attr.s and *dunders* is a tuple of attribute names + whose presence signal that the user has implemented it themselves. + + Return *default* if no reason for either for or against is found. + """ + if flag is True or flag is False: + return flag + + if flag is None and auto_detect is False: + return default + + # Logically, flag is None and auto_detect is True here. + for dunder in dunders: + if _has_own_attribute(cls, dunder): + return False + + return default + + +def attrs( + maybe_cls=None, + these=None, + repr_ns=None, + repr=None, + cmp=None, + hash=None, + init=None, + slots=False, + frozen=False, + weakref_slot=True, + str=False, + auto_attribs=False, + kw_only=False, + cache_hash=False, + auto_exc=False, + eq=None, + order=None, + auto_detect=False, + collect_by_mro=False, + getstate_setstate=None, + on_setattr=None, + field_transformer=None, + match_args=True, + unsafe_hash=None, +): + r""" + A class decorator that adds :term:`dunder methods` according to the + specified attributes using `attr.ib` or the *these* argument. + + Consider using `attrs.define` / `attrs.frozen` in new code (``attr.s`` will + *never* go away, though). + + Args: + repr_ns (str): + When using nested classes, there was no way in Python 2 to + automatically detect that. This argument allows to set a custom + name for a more meaningful ``repr`` output. This argument is + pointless in Python 3 and is therefore deprecated. + + .. caution:: + Refer to `attrs.define` for the rest of the parameters, but note that they + can have different defaults. + + Notably, leaving *on_setattr* as `None` will **not** add any hooks. + + .. versionadded:: 16.0.0 *slots* + .. versionadded:: 16.1.0 *frozen* + .. versionadded:: 16.3.0 *str* + .. versionadded:: 16.3.0 Support for ``__attrs_post_init__``. + .. versionchanged:: 17.1.0 + *hash* supports `None` as value which is also the default now. + .. versionadded:: 17.3.0 *auto_attribs* + .. versionchanged:: 18.1.0 + If *these* is passed, no attributes are deleted from the class body. + .. versionchanged:: 18.1.0 If *these* is ordered, the order is retained. + .. versionadded:: 18.2.0 *weakref_slot* + .. deprecated:: 18.2.0 + ``__lt__``, ``__le__``, ``__gt__``, and ``__ge__`` now raise a + `DeprecationWarning` if the classes compared are subclasses of + each other. ``__eq`` and ``__ne__`` never tried to compared subclasses + to each other. + .. versionchanged:: 19.2.0 + ``__lt__``, ``__le__``, ``__gt__``, and ``__ge__`` now do not consider + subclasses comparable anymore. + .. versionadded:: 18.2.0 *kw_only* + .. versionadded:: 18.2.0 *cache_hash* + .. versionadded:: 19.1.0 *auto_exc* + .. deprecated:: 19.2.0 *cmp* Removal on or after 2021-06-01. + .. versionadded:: 19.2.0 *eq* and *order* + .. versionadded:: 20.1.0 *auto_detect* + .. versionadded:: 20.1.0 *collect_by_mro* + .. versionadded:: 20.1.0 *getstate_setstate* + .. versionadded:: 20.1.0 *on_setattr* + .. versionadded:: 20.3.0 *field_transformer* + .. versionchanged:: 21.1.0 + ``init=False`` injects ``__attrs_init__`` + .. versionchanged:: 21.1.0 Support for ``__attrs_pre_init__`` + .. versionchanged:: 21.1.0 *cmp* undeprecated + .. versionadded:: 21.3.0 *match_args* + .. versionadded:: 22.2.0 + *unsafe_hash* as an alias for *hash* (for :pep:`681` compliance). + .. deprecated:: 24.1.0 *repr_ns* + .. versionchanged:: 24.1.0 + Instances are not compared as tuples of attributes anymore, but using a + big ``and`` condition. This is faster and has more correct behavior for + uncomparable values like `math.nan`. + .. versionadded:: 24.1.0 + If a class has an *inherited* classmethod called + ``__attrs_init_subclass__``, it is executed after the class is created. + .. deprecated:: 24.1.0 *hash* is deprecated in favor of *unsafe_hash*. + """ + if repr_ns is not None: + import warnings + + warnings.warn( + DeprecationWarning( + "The `repr_ns` argument is deprecated and will be removed in or after August 2025." + ), + stacklevel=2, + ) + + eq_, order_ = _determine_attrs_eq_order(cmp, eq, order, None) + + # unsafe_hash takes precedence due to PEP 681. + if unsafe_hash is not None: + hash = unsafe_hash + + if isinstance(on_setattr, (list, tuple)): + on_setattr = setters.pipe(*on_setattr) + + def wrap(cls): + is_frozen = frozen or _has_frozen_base_class(cls) + is_exc = auto_exc is True and issubclass(cls, BaseException) + has_own_setattr = auto_detect and _has_own_attribute( + cls, "__setattr__" + ) + + if has_own_setattr and is_frozen: + msg = "Can't freeze a class with a custom __setattr__." + raise ValueError(msg) + + builder = _ClassBuilder( + cls, + these, + slots, + is_frozen, + weakref_slot, + _determine_whether_to_implement( + cls, + getstate_setstate, + auto_detect, + ("__getstate__", "__setstate__"), + default=slots, + ), + auto_attribs, + kw_only, + cache_hash, + is_exc, + collect_by_mro, + on_setattr, + has_own_setattr, + field_transformer, + ) + if _determine_whether_to_implement( + cls, repr, auto_detect, ("__repr__",) + ): + builder.add_repr(repr_ns) + if str is True: + builder.add_str() + + eq = _determine_whether_to_implement( + cls, eq_, auto_detect, ("__eq__", "__ne__") + ) + if not is_exc and eq is True: + builder.add_eq() + if not is_exc and _determine_whether_to_implement( + cls, order_, auto_detect, ("__lt__", "__le__", "__gt__", "__ge__") + ): + builder.add_order() + + builder.add_setattr() + + nonlocal hash + if ( + hash is None + and auto_detect is True + and _has_own_attribute(cls, "__hash__") + ): + hash = False + + if hash is not True and hash is not False and hash is not None: + # Can't use `hash in` because 1 == True for example. + msg = "Invalid value for hash. Must be True, False, or None." + raise TypeError(msg) + + if hash is False or (hash is None and eq is False) or is_exc: + # Don't do anything. Should fall back to __object__'s __hash__ + # which is by id. + if cache_hash: + msg = "Invalid value for cache_hash. To use hash caching, hashing must be either explicitly or implicitly enabled." + raise TypeError(msg) + elif hash is True or ( + hash is None and eq is True and is_frozen is True + ): + # Build a __hash__ if told so, or if it's safe. + builder.add_hash() + else: + # Raise TypeError on attempts to hash. + if cache_hash: + msg = "Invalid value for cache_hash. To use hash caching, hashing must be either explicitly or implicitly enabled." + raise TypeError(msg) + builder.make_unhashable() + + if _determine_whether_to_implement( + cls, init, auto_detect, ("__init__",) + ): + builder.add_init() + else: + builder.add_attrs_init() + if cache_hash: + msg = "Invalid value for cache_hash. To use hash caching, init must be True." + raise TypeError(msg) + + if ( + PY_3_10_PLUS + and match_args + and not _has_own_attribute(cls, "__match_args__") + ): + builder.add_match_args() + + return builder.build_class() + + # maybe_cls's type depends on the usage of the decorator. It's a class + # if it's used as `@attrs` but `None` if used as `@attrs()`. + if maybe_cls is None: + return wrap + + return wrap(maybe_cls) + + +_attrs = attrs +""" +Internal alias so we can use it in functions that take an argument called +*attrs*. +""" + + +def _has_frozen_base_class(cls): + """ + Check whether *cls* has a frozen ancestor by looking at its + __setattr__. + """ + return cls.__setattr__ is _frozen_setattrs + + +def _generate_unique_filename(cls, func_name): + """ + Create a "filename" suitable for a function being generated. + """ + return ( + f"" + ) + + +def _make_hash(cls, attrs, frozen, cache_hash): + attrs = tuple( + a for a in attrs if a.hash is True or (a.hash is None and a.eq is True) + ) + + tab = " " + + unique_filename = _generate_unique_filename(cls, "hash") + type_hash = hash(unique_filename) + # If eq is custom generated, we need to include the functions in globs + globs = {} + + hash_def = "def __hash__(self" + hash_func = "hash((" + closing_braces = "))" + if not cache_hash: + hash_def += "):" + else: + hash_def += ", *" + + hash_def += ", _cache_wrapper=__import__('attr._make')._make._CacheHashWrapper):" + hash_func = "_cache_wrapper(" + hash_func + closing_braces += ")" + + method_lines = [hash_def] + + def append_hash_computation_lines(prefix, indent): + """ + Generate the code for actually computing the hash code. + Below this will either be returned directly or used to compute + a value which is then cached, depending on the value of cache_hash + """ + + method_lines.extend( + [ + indent + prefix + hash_func, + indent + f" {type_hash},", + ] + ) + + for a in attrs: + if a.eq_key: + cmp_name = f"_{a.name}_key" + globs[cmp_name] = a.eq_key + method_lines.append( + indent + f" {cmp_name}(self.{a.name})," + ) + else: + method_lines.append(indent + f" self.{a.name},") + + method_lines.append(indent + " " + closing_braces) + + if cache_hash: + method_lines.append(tab + f"if self.{_HASH_CACHE_FIELD} is None:") + if frozen: + append_hash_computation_lines( + f"object.__setattr__(self, '{_HASH_CACHE_FIELD}', ", tab * 2 + ) + method_lines.append(tab * 2 + ")") # close __setattr__ + else: + append_hash_computation_lines( + f"self.{_HASH_CACHE_FIELD} = ", tab * 2 + ) + method_lines.append(tab + f"return self.{_HASH_CACHE_FIELD}") + else: + append_hash_computation_lines("return ", tab) + + script = "\n".join(method_lines) + return _make_method("__hash__", script, unique_filename, globs) + + +def _add_hash(cls, attrs): + """ + Add a hash method to *cls*. + """ + cls.__hash__ = _make_hash(cls, attrs, frozen=False, cache_hash=False) + return cls + + +def _make_ne(): + """ + Create __ne__ method. + """ + + def __ne__(self, other): + """ + Check equality and either forward a NotImplemented or + return the result negated. + """ + result = self.__eq__(other) + if result is NotImplemented: + return NotImplemented + + return not result + + return __ne__ + + +def _make_eq(cls, attrs): + """ + Create __eq__ method for *cls* with *attrs*. + """ + attrs = [a for a in attrs if a.eq] + + unique_filename = _generate_unique_filename(cls, "eq") + lines = [ + "def __eq__(self, other):", + " if other.__class__ is not self.__class__:", + " return NotImplemented", + ] + + # We can't just do a big self.x = other.x and... clause due to + # irregularities like nan == nan is false but (nan,) == (nan,) is true. + globs = {} + if attrs: + lines.append(" return (") + for a in attrs: + if a.eq_key: + cmp_name = f"_{a.name}_key" + # Add the key function to the global namespace + # of the evaluated function. + globs[cmp_name] = a.eq_key + lines.append( + f" {cmp_name}(self.{a.name}) == {cmp_name}(other.{a.name})" + ) + else: + lines.append(f" self.{a.name} == other.{a.name}") + if a is not attrs[-1]: + lines[-1] = f"{lines[-1]} and" + lines.append(" )") + else: + lines.append(" return True") + + script = "\n".join(lines) + + return _make_method("__eq__", script, unique_filename, globs) + + +def _make_order(cls, attrs): + """ + Create ordering methods for *cls* with *attrs*. + """ + attrs = [a for a in attrs if a.order] + + def attrs_to_tuple(obj): + """ + Save us some typing. + """ + return tuple( + key(value) if key else value + for value, key in ( + (getattr(obj, a.name), a.order_key) for a in attrs + ) + ) + + def __lt__(self, other): + """ + Automatically created by attrs. + """ + if other.__class__ is self.__class__: + return attrs_to_tuple(self) < attrs_to_tuple(other) + + return NotImplemented + + def __le__(self, other): + """ + Automatically created by attrs. + """ + if other.__class__ is self.__class__: + return attrs_to_tuple(self) <= attrs_to_tuple(other) + + return NotImplemented + + def __gt__(self, other): + """ + Automatically created by attrs. + """ + if other.__class__ is self.__class__: + return attrs_to_tuple(self) > attrs_to_tuple(other) + + return NotImplemented + + def __ge__(self, other): + """ + Automatically created by attrs. + """ + if other.__class__ is self.__class__: + return attrs_to_tuple(self) >= attrs_to_tuple(other) + + return NotImplemented + + return __lt__, __le__, __gt__, __ge__ + + +def _add_eq(cls, attrs=None): + """ + Add equality methods to *cls* with *attrs*. + """ + if attrs is None: + attrs = cls.__attrs_attrs__ + + cls.__eq__ = _make_eq(cls, attrs) + cls.__ne__ = _make_ne() + + return cls + + +def _make_repr(attrs, ns, cls): + unique_filename = _generate_unique_filename(cls, "repr") + # Figure out which attributes to include, and which function to use to + # format them. The a.repr value can be either bool or a custom + # callable. + attr_names_with_reprs = tuple( + (a.name, (repr if a.repr is True else a.repr), a.init) + for a in attrs + if a.repr is not False + ) + globs = { + name + "_repr": r for name, r, _ in attr_names_with_reprs if r != repr + } + globs["_compat"] = _compat + globs["AttributeError"] = AttributeError + globs["NOTHING"] = NOTHING + attribute_fragments = [] + for name, r, i in attr_names_with_reprs: + accessor = ( + "self." + name if i else 'getattr(self, "' + name + '", NOTHING)' + ) + fragment = ( + "%s={%s!r}" % (name, accessor) + if r == repr + else "%s={%s_repr(%s)}" % (name, name, accessor) + ) + attribute_fragments.append(fragment) + repr_fragment = ", ".join(attribute_fragments) + + if ns is None: + cls_name_fragment = '{self.__class__.__qualname__.rsplit(">.", 1)[-1]}' + else: + cls_name_fragment = ns + ".{self.__class__.__name__}" + + lines = [ + "def __repr__(self):", + " try:", + " already_repring = _compat.repr_context.already_repring", + " except AttributeError:", + " already_repring = {id(self),}", + " _compat.repr_context.already_repring = already_repring", + " else:", + " if id(self) in already_repring:", + " return '...'", + " else:", + " already_repring.add(id(self))", + " try:", + f" return f'{cls_name_fragment}({repr_fragment})'", + " finally:", + " already_repring.remove(id(self))", + ] + + return _make_method( + "__repr__", "\n".join(lines), unique_filename, globs=globs + ) + + +def _add_repr(cls, ns=None, attrs=None): + """ + Add a repr method to *cls*. + """ + if attrs is None: + attrs = cls.__attrs_attrs__ + + cls.__repr__ = _make_repr(attrs, ns, cls) + return cls + + +def fields(cls): + """ + Return the tuple of *attrs* attributes for a class. + + The tuple also allows accessing the fields by their names (see below for + examples). + + Args: + cls (type): Class to introspect. + + Raises: + TypeError: If *cls* is not a class. + + attrs.exceptions.NotAnAttrsClassError: + If *cls* is not an *attrs* class. + + Returns: + tuple (with name accessors) of `attrs.Attribute` + + .. versionchanged:: 16.2.0 Returned tuple allows accessing the fields + by name. + .. versionchanged:: 23.1.0 Add support for generic classes. + """ + generic_base = get_generic_base(cls) + + if generic_base is None and not isinstance(cls, type): + msg = "Passed object must be a class." + raise TypeError(msg) + + attrs = getattr(cls, "__attrs_attrs__", None) + + if attrs is None: + if generic_base is not None: + attrs = getattr(generic_base, "__attrs_attrs__", None) + if attrs is not None: + # Even though this is global state, stick it on here to speed + # it up. We rely on `cls` being cached for this to be + # efficient. + cls.__attrs_attrs__ = attrs + return attrs + msg = f"{cls!r} is not an attrs-decorated class." + raise NotAnAttrsClassError(msg) + + return attrs + + +def fields_dict(cls): + """ + Return an ordered dictionary of *attrs* attributes for a class, whose keys + are the attribute names. + + Args: + cls (type): Class to introspect. + + Raises: + TypeError: If *cls* is not a class. + + attrs.exceptions.NotAnAttrsClassError: + If *cls* is not an *attrs* class. + + Returns: + dict[str, attrs.Attribute]: Dict of attribute name to definition + + .. versionadded:: 18.1.0 + """ + if not isinstance(cls, type): + msg = "Passed object must be a class." + raise TypeError(msg) + attrs = getattr(cls, "__attrs_attrs__", None) + if attrs is None: + msg = f"{cls!r} is not an attrs-decorated class." + raise NotAnAttrsClassError(msg) + return {a.name: a for a in attrs} + + +def validate(inst): + """ + Validate all attributes on *inst* that have a validator. + + Leaves all exceptions through. + + Args: + inst: Instance of a class with *attrs* attributes. + """ + if _config._run_validators is False: + return + + for a in fields(inst.__class__): + v = a.validator + if v is not None: + v(inst, a, getattr(inst, a.name)) + + +def _is_slot_attr(a_name, base_attr_map): + """ + Check if the attribute name comes from a slot class. + """ + cls = base_attr_map.get(a_name) + return cls and "__slots__" in cls.__dict__ + + +def _make_init( + cls, + attrs, + pre_init, + pre_init_has_args, + post_init, + frozen, + slots, + cache_hash, + base_attr_map, + is_exc, + cls_on_setattr, + attrs_init, +): + has_cls_on_setattr = ( + cls_on_setattr is not None and cls_on_setattr is not setters.NO_OP + ) + + if frozen and has_cls_on_setattr: + msg = "Frozen classes can't use on_setattr." + raise ValueError(msg) + + needs_cached_setattr = cache_hash or frozen + filtered_attrs = [] + attr_dict = {} + for a in attrs: + if not a.init and a.default is NOTHING: + continue + + filtered_attrs.append(a) + attr_dict[a.name] = a + + if a.on_setattr is not None: + if frozen is True: + msg = "Frozen classes can't use on_setattr." + raise ValueError(msg) + + needs_cached_setattr = True + elif has_cls_on_setattr and a.on_setattr is not setters.NO_OP: + needs_cached_setattr = True + + unique_filename = _generate_unique_filename(cls, "init") + + script, globs, annotations = _attrs_to_init_script( + filtered_attrs, + frozen, + slots, + pre_init, + pre_init_has_args, + post_init, + cache_hash, + base_attr_map, + is_exc, + needs_cached_setattr, + has_cls_on_setattr, + "__attrs_init__" if attrs_init else "__init__", + ) + if cls.__module__ in sys.modules: + # This makes typing.get_type_hints(CLS.__init__) resolve string types. + globs.update(sys.modules[cls.__module__].__dict__) + + globs.update({"NOTHING": NOTHING, "attr_dict": attr_dict}) + + if needs_cached_setattr: + # Save the lookup overhead in __init__ if we need to circumvent + # setattr hooks. + globs["_cached_setattr_get"] = _OBJ_SETATTR.__get__ + + init = _make_method( + "__attrs_init__" if attrs_init else "__init__", + script, + unique_filename, + globs, + ) + init.__annotations__ = annotations + + return init + + +def _setattr(attr_name: str, value_var: str, has_on_setattr: bool) -> str: + """ + Use the cached object.setattr to set *attr_name* to *value_var*. + """ + return f"_setattr('{attr_name}', {value_var})" + + +def _setattr_with_converter( + attr_name: str, value_var: str, has_on_setattr: bool, converter: Converter +) -> str: + """ + Use the cached object.setattr to set *attr_name* to *value_var*, but run + its converter first. + """ + return f"_setattr('{attr_name}', {converter._fmt_converter_call(attr_name, value_var)})" + + +def _assign(attr_name: str, value: str, has_on_setattr: bool) -> str: + """ + Unless *attr_name* has an on_setattr hook, use normal assignment. Otherwise + relegate to _setattr. + """ + if has_on_setattr: + return _setattr(attr_name, value, True) + + return f"self.{attr_name} = {value}" + + +def _assign_with_converter( + attr_name: str, value_var: str, has_on_setattr: bool, converter: Converter +) -> str: + """ + Unless *attr_name* has an on_setattr hook, use normal assignment after + conversion. Otherwise relegate to _setattr_with_converter. + """ + if has_on_setattr: + return _setattr_with_converter(attr_name, value_var, True, converter) + + return f"self.{attr_name} = {converter._fmt_converter_call(attr_name, value_var)}" + + +def _determine_setters( + frozen: bool, slots: bool, base_attr_map: dict[str, type] +): + """ + Determine the correct setter functions based on whether a class is frozen + and/or slotted. + """ + if frozen is True: + if slots is True: + return (), _setattr, _setattr_with_converter + + # Dict frozen classes assign directly to __dict__. + # But only if the attribute doesn't come from an ancestor slot + # class. + # Note _inst_dict will be used again below if cache_hash is True + + def fmt_setter( + attr_name: str, value_var: str, has_on_setattr: bool + ) -> str: + if _is_slot_attr(attr_name, base_attr_map): + return _setattr(attr_name, value_var, has_on_setattr) + + return f"_inst_dict['{attr_name}'] = {value_var}" + + def fmt_setter_with_converter( + attr_name: str, + value_var: str, + has_on_setattr: bool, + converter: Converter, + ) -> str: + if has_on_setattr or _is_slot_attr(attr_name, base_attr_map): + return _setattr_with_converter( + attr_name, value_var, has_on_setattr, converter + ) + + return f"_inst_dict['{attr_name}'] = {converter._fmt_converter_call(attr_name, value_var)}" + + return ( + ("_inst_dict = self.__dict__",), + fmt_setter, + fmt_setter_with_converter, + ) + + # Not frozen -- we can just assign directly. + return (), _assign, _assign_with_converter + + +def _attrs_to_init_script( + attrs: list[Attribute], + is_frozen: bool, + is_slotted: bool, + call_pre_init: bool, + pre_init_has_args: bool, + call_post_init: bool, + does_cache_hash: bool, + base_attr_map: dict[str, type], + is_exc: bool, + needs_cached_setattr: bool, + has_cls_on_setattr: bool, + method_name: str, +) -> tuple[str, dict, dict]: + """ + Return a script of an initializer for *attrs*, a dict of globals, and + annotations for the initializer. + + The globals are required by the generated script. + """ + lines = ["self.__attrs_pre_init__()"] if call_pre_init else [] + + if needs_cached_setattr: + lines.append( + # Circumvent the __setattr__ descriptor to save one lookup per + # assignment. Note _setattr will be used again below if + # does_cache_hash is True. + "_setattr = _cached_setattr_get(self)" + ) + + extra_lines, fmt_setter, fmt_setter_with_converter = _determine_setters( + is_frozen, is_slotted, base_attr_map + ) + lines.extend(extra_lines) + + args = [] + kw_only_args = [] + attrs_to_validate = [] + + # This is a dictionary of names to validator and converter callables. + # Injecting this into __init__ globals lets us avoid lookups. + names_for_globals = {} + annotations = {"return": None} + + for a in attrs: + if a.validator: + attrs_to_validate.append(a) + + attr_name = a.name + has_on_setattr = a.on_setattr is not None or ( + a.on_setattr is not setters.NO_OP and has_cls_on_setattr + ) + # a.alias is set to maybe-mangled attr_name in _ClassBuilder if not + # explicitly provided + arg_name = a.alias + + has_factory = isinstance(a.default, Factory) + maybe_self = "self" if has_factory and a.default.takes_self else "" + + if a.converter and not isinstance(a.converter, Converter): + converter = Converter(a.converter) + else: + converter = a.converter + + if a.init is False: + if has_factory: + init_factory_name = _INIT_FACTORY_PAT % (a.name,) + if converter is not None: + lines.append( + fmt_setter_with_converter( + attr_name, + init_factory_name + f"({maybe_self})", + has_on_setattr, + converter, + ) + ) + names_for_globals[converter._get_global_name(a.name)] = ( + converter.converter + ) + else: + lines.append( + fmt_setter( + attr_name, + init_factory_name + f"({maybe_self})", + has_on_setattr, + ) + ) + names_for_globals[init_factory_name] = a.default.factory + elif converter is not None: + lines.append( + fmt_setter_with_converter( + attr_name, + f"attr_dict['{attr_name}'].default", + has_on_setattr, + converter, + ) + ) + names_for_globals[converter._get_global_name(a.name)] = ( + converter.converter + ) + else: + lines.append( + fmt_setter( + attr_name, + f"attr_dict['{attr_name}'].default", + has_on_setattr, + ) + ) + elif a.default is not NOTHING and not has_factory: + arg = f"{arg_name}=attr_dict['{attr_name}'].default" + if a.kw_only: + kw_only_args.append(arg) + else: + args.append(arg) + + if converter is not None: + lines.append( + fmt_setter_with_converter( + attr_name, arg_name, has_on_setattr, converter + ) + ) + names_for_globals[converter._get_global_name(a.name)] = ( + converter.converter + ) + else: + lines.append(fmt_setter(attr_name, arg_name, has_on_setattr)) + + elif has_factory: + arg = f"{arg_name}=NOTHING" + if a.kw_only: + kw_only_args.append(arg) + else: + args.append(arg) + lines.append(f"if {arg_name} is not NOTHING:") + + init_factory_name = _INIT_FACTORY_PAT % (a.name,) + if converter is not None: + lines.append( + " " + + fmt_setter_with_converter( + attr_name, arg_name, has_on_setattr, converter + ) + ) + lines.append("else:") + lines.append( + " " + + fmt_setter_with_converter( + attr_name, + init_factory_name + "(" + maybe_self + ")", + has_on_setattr, + converter, + ) + ) + names_for_globals[converter._get_global_name(a.name)] = ( + converter.converter + ) + else: + lines.append( + " " + fmt_setter(attr_name, arg_name, has_on_setattr) + ) + lines.append("else:") + lines.append( + " " + + fmt_setter( + attr_name, + init_factory_name + "(" + maybe_self + ")", + has_on_setattr, + ) + ) + names_for_globals[init_factory_name] = a.default.factory + else: + if a.kw_only: + kw_only_args.append(arg_name) + else: + args.append(arg_name) + + if converter is not None: + lines.append( + fmt_setter_with_converter( + attr_name, arg_name, has_on_setattr, converter + ) + ) + names_for_globals[converter._get_global_name(a.name)] = ( + converter.converter + ) + else: + lines.append(fmt_setter(attr_name, arg_name, has_on_setattr)) + + if a.init is True: + if a.type is not None and converter is None: + annotations[arg_name] = a.type + elif converter is not None and converter._first_param_type: + # Use the type from the converter if present. + annotations[arg_name] = converter._first_param_type + + if attrs_to_validate: # we can skip this if there are no validators. + names_for_globals["_config"] = _config + lines.append("if _config._run_validators is True:") + for a in attrs_to_validate: + val_name = "__attr_validator_" + a.name + attr_name = "__attr_" + a.name + lines.append(f" {val_name}(self, {attr_name}, self.{a.name})") + names_for_globals[val_name] = a.validator + names_for_globals[attr_name] = a + + if call_post_init: + lines.append("self.__attrs_post_init__()") + + # Because this is set only after __attrs_post_init__ is called, a crash + # will result if post-init tries to access the hash code. This seemed + # preferable to setting this beforehand, in which case alteration to field + # values during post-init combined with post-init accessing the hash code + # would result in silent bugs. + if does_cache_hash: + if is_frozen: + if is_slotted: + init_hash_cache = f"_setattr('{_HASH_CACHE_FIELD}', None)" + else: + init_hash_cache = f"_inst_dict['{_HASH_CACHE_FIELD}'] = None" + else: + init_hash_cache = f"self.{_HASH_CACHE_FIELD} = None" + lines.append(init_hash_cache) + + # For exceptions we rely on BaseException.__init__ for proper + # initialization. + if is_exc: + vals = ",".join(f"self.{a.name}" for a in attrs if a.init) + + lines.append(f"BaseException.__init__(self, {vals})") + + args = ", ".join(args) + pre_init_args = args + if kw_only_args: + # leading comma & kw_only args + args += f"{', ' if args else ''}*, {', '.join(kw_only_args)}" + pre_init_kw_only_args = ", ".join( + [ + f"{kw_arg_name}={kw_arg_name}" + # We need to remove the defaults from the kw_only_args. + for kw_arg_name in (kwa.split("=")[0] for kwa in kw_only_args) + ] + ) + pre_init_args += ", " if pre_init_args else "" + pre_init_args += pre_init_kw_only_args + + if call_pre_init and pre_init_has_args: + # If pre init method has arguments, pass same arguments as `__init__`. + lines[0] = f"self.__attrs_pre_init__({pre_init_args})" + + # Python 3.7 doesn't allow backslashes in f strings. + NL = "\n " + return ( + f"""def {method_name}(self, {args}): + {NL.join(lines) if lines else 'pass'} +""", + names_for_globals, + annotations, + ) + + +def _default_init_alias_for(name: str) -> str: + """ + The default __init__ parameter name for a field. + + This performs private-name adjustment via leading-unscore stripping, + and is the default value of Attribute.alias if not provided. + """ + + return name.lstrip("_") + + +class Attribute: + """ + *Read-only* representation of an attribute. + + .. warning:: + + You should never instantiate this class yourself. + + The class has *all* arguments of `attr.ib` (except for ``factory`` which is + only syntactic sugar for ``default=Factory(...)`` plus the following: + + - ``name`` (`str`): The name of the attribute. + - ``alias`` (`str`): The __init__ parameter name of the attribute, after + any explicit overrides and default private-attribute-name handling. + - ``inherited`` (`bool`): Whether or not that attribute has been inherited + from a base class. + - ``eq_key`` and ``order_key`` (`typing.Callable` or `None`): The + callables that are used for comparing and ordering objects by this + attribute, respectively. These are set by passing a callable to + `attr.ib`'s ``eq``, ``order``, or ``cmp`` arguments. See also + :ref:`comparison customization `. + + Instances of this class are frequently used for introspection purposes + like: + + - `fields` returns a tuple of them. + - Validators get them passed as the first argument. + - The :ref:`field transformer ` hook receives a list of + them. + - The ``alias`` property exposes the __init__ parameter name of the field, + with any overrides and default private-attribute handling applied. + + + .. versionadded:: 20.1.0 *inherited* + .. versionadded:: 20.1.0 *on_setattr* + .. versionchanged:: 20.2.0 *inherited* is not taken into account for + equality checks and hashing anymore. + .. versionadded:: 21.1.0 *eq_key* and *order_key* + .. versionadded:: 22.2.0 *alias* + + For the full version history of the fields, see `attr.ib`. + """ + + __slots__ = ( + "name", + "default", + "validator", + "repr", + "eq", + "eq_key", + "order", + "order_key", + "hash", + "init", + "metadata", + "type", + "converter", + "kw_only", + "inherited", + "on_setattr", + "alias", + ) + + def __init__( + self, + name, + default, + validator, + repr, + cmp, # XXX: unused, remove along with other cmp code. + hash, + init, + inherited, + metadata=None, + type=None, + converter=None, + kw_only=False, + eq=None, + eq_key=None, + order=None, + order_key=None, + on_setattr=None, + alias=None, + ): + eq, eq_key, order, order_key = _determine_attrib_eq_order( + cmp, eq_key or eq, order_key or order, True + ) + + # Cache this descriptor here to speed things up later. + bound_setattr = _OBJ_SETATTR.__get__(self) + + # Despite the big red warning, people *do* instantiate `Attribute` + # themselves. + bound_setattr("name", name) + bound_setattr("default", default) + bound_setattr("validator", validator) + bound_setattr("repr", repr) + bound_setattr("eq", eq) + bound_setattr("eq_key", eq_key) + bound_setattr("order", order) + bound_setattr("order_key", order_key) + bound_setattr("hash", hash) + bound_setattr("init", init) + bound_setattr("converter", converter) + bound_setattr( + "metadata", + ( + types.MappingProxyType(dict(metadata)) # Shallow copy + if metadata + else _EMPTY_METADATA_SINGLETON + ), + ) + bound_setattr("type", type) + bound_setattr("kw_only", kw_only) + bound_setattr("inherited", inherited) + bound_setattr("on_setattr", on_setattr) + bound_setattr("alias", alias) + + def __setattr__(self, name, value): + raise FrozenInstanceError() + + @classmethod + def from_counting_attr(cls, name, ca, type=None): + # type holds the annotated value. deal with conflicts: + if type is None: + type = ca.type + elif ca.type is not None: + msg = "Type annotation and type argument cannot both be present" + raise ValueError(msg) + inst_dict = { + k: getattr(ca, k) + for k in Attribute.__slots__ + if k + not in ( + "name", + "validator", + "default", + "type", + "inherited", + ) # exclude methods and deprecated alias + } + return cls( + name=name, + validator=ca._validator, + default=ca._default, + type=type, + cmp=None, + inherited=False, + **inst_dict, + ) + + # Don't use attrs.evolve since fields(Attribute) doesn't work + def evolve(self, **changes): + """ + Copy *self* and apply *changes*. + + This works similarly to `attrs.evolve` but that function does not work + with {class}`Attribute`. + + It is mainly meant to be used for `transform-fields`. + + .. versionadded:: 20.3.0 + """ + new = copy.copy(self) + + new._setattrs(changes.items()) + + return new + + # Don't use _add_pickle since fields(Attribute) doesn't work + def __getstate__(self): + """ + Play nice with pickle. + """ + return tuple( + getattr(self, name) if name != "metadata" else dict(self.metadata) + for name in self.__slots__ + ) + + def __setstate__(self, state): + """ + Play nice with pickle. + """ + self._setattrs(zip(self.__slots__, state)) + + def _setattrs(self, name_values_pairs): + bound_setattr = _OBJ_SETATTR.__get__(self) + for name, value in name_values_pairs: + if name != "metadata": + bound_setattr(name, value) + else: + bound_setattr( + name, + ( + types.MappingProxyType(dict(value)) + if value + else _EMPTY_METADATA_SINGLETON + ), + ) + + +_a = [ + Attribute( + name=name, + default=NOTHING, + validator=None, + repr=True, + cmp=None, + eq=True, + order=False, + hash=(name != "metadata"), + init=True, + inherited=False, + alias=_default_init_alias_for(name), + ) + for name in Attribute.__slots__ +] + +Attribute = _add_hash( + _add_eq( + _add_repr(Attribute, attrs=_a), + attrs=[a for a in _a if a.name != "inherited"], + ), + attrs=[a for a in _a if a.hash and a.name != "inherited"], +) + + +class _CountingAttr: + """ + Intermediate representation of attributes that uses a counter to preserve + the order in which the attributes have been defined. + + *Internal* data structure of the attrs library. Running into is most + likely the result of a bug like a forgotten `@attr.s` decorator. + """ + + __slots__ = ( + "counter", + "_default", + "repr", + "eq", + "eq_key", + "order", + "order_key", + "hash", + "init", + "metadata", + "_validator", + "converter", + "type", + "kw_only", + "on_setattr", + "alias", + ) + __attrs_attrs__ = ( + *tuple( + Attribute( + name=name, + alias=_default_init_alias_for(name), + default=NOTHING, + validator=None, + repr=True, + cmp=None, + hash=True, + init=True, + kw_only=False, + eq=True, + eq_key=None, + order=False, + order_key=None, + inherited=False, + on_setattr=None, + ) + for name in ( + "counter", + "_default", + "repr", + "eq", + "order", + "hash", + "init", + "on_setattr", + "alias", + ) + ), + Attribute( + name="metadata", + alias="metadata", + default=None, + validator=None, + repr=True, + cmp=None, + hash=False, + init=True, + kw_only=False, + eq=True, + eq_key=None, + order=False, + order_key=None, + inherited=False, + on_setattr=None, + ), + ) + cls_counter = 0 + + def __init__( + self, + default, + validator, + repr, + cmp, + hash, + init, + converter, + metadata, + type, + kw_only, + eq, + eq_key, + order, + order_key, + on_setattr, + alias, + ): + _CountingAttr.cls_counter += 1 + self.counter = _CountingAttr.cls_counter + self._default = default + self._validator = validator + self.converter = converter + self.repr = repr + self.eq = eq + self.eq_key = eq_key + self.order = order + self.order_key = order_key + self.hash = hash + self.init = init + self.metadata = metadata + self.type = type + self.kw_only = kw_only + self.on_setattr = on_setattr + self.alias = alias + + def validator(self, meth): + """ + Decorator that adds *meth* to the list of validators. + + Returns *meth* unchanged. + + .. versionadded:: 17.1.0 + """ + if self._validator is None: + self._validator = meth + else: + self._validator = and_(self._validator, meth) + return meth + + def default(self, meth): + """ + Decorator that allows to set the default for an attribute. + + Returns *meth* unchanged. + + Raises: + DefaultAlreadySetError: If default has been set before. + + .. versionadded:: 17.1.0 + """ + if self._default is not NOTHING: + raise DefaultAlreadySetError() + + self._default = Factory(meth, takes_self=True) + + return meth + + +_CountingAttr = _add_eq(_add_repr(_CountingAttr)) + + +class Factory: + """ + Stores a factory callable. + + If passed as the default value to `attrs.field`, the factory is used to + generate a new value. + + Args: + factory (typing.Callable): + A callable that takes either none or exactly one mandatory + positional argument depending on *takes_self*. + + takes_self (bool): + Pass the partially initialized instance that is being initialized + as a positional argument. + + .. versionadded:: 17.1.0 *takes_self* + """ + + __slots__ = ("factory", "takes_self") + + def __init__(self, factory, takes_self=False): + self.factory = factory + self.takes_self = takes_self + + def __getstate__(self): + """ + Play nice with pickle. + """ + return tuple(getattr(self, name) for name in self.__slots__) + + def __setstate__(self, state): + """ + Play nice with pickle. + """ + for name, value in zip(self.__slots__, state): + setattr(self, name, value) + + +_f = [ + Attribute( + name=name, + default=NOTHING, + validator=None, + repr=True, + cmp=None, + eq=True, + order=False, + hash=True, + init=True, + inherited=False, + ) + for name in Factory.__slots__ +] + +Factory = _add_hash(_add_eq(_add_repr(Factory, attrs=_f), attrs=_f), attrs=_f) + + +class Converter: + """ + Stores a converter callable. + + Allows for the wrapped converter to take additional arguments. The + arguments are passed in the order they are documented. + + Args: + converter (Callable): A callable that converts the passed value. + + takes_self (bool): + Pass the partially initialized instance that is being initialized + as a positional argument. (default: `False`) + + takes_field (bool): + Pass the field definition (an :class:`Attribute`) into the + converter as a positional argument. (default: `False`) + + .. versionadded:: 24.1.0 + """ + + __slots__ = ( + "converter", + "takes_self", + "takes_field", + "_first_param_type", + "_global_name", + "__call__", + ) + + def __init__(self, converter, *, takes_self=False, takes_field=False): + self.converter = converter + self.takes_self = takes_self + self.takes_field = takes_field + + ex = _AnnotationExtractor(converter) + self._first_param_type = ex.get_first_param_type() + + if not (self.takes_self or self.takes_field): + self.__call__ = lambda value, _, __: self.converter(value) + elif self.takes_self and not self.takes_field: + self.__call__ = lambda value, instance, __: self.converter( + value, instance + ) + elif not self.takes_self and self.takes_field: + self.__call__ = lambda value, __, field: self.converter( + value, field + ) + else: + self.__call__ = lambda value, instance, field: self.converter( + value, instance, field + ) + + rt = ex.get_return_type() + if rt is not None: + self.__call__.__annotations__["return"] = rt + + @staticmethod + def _get_global_name(attr_name: str) -> str: + """ + Return the name that a converter for an attribute name *attr_name* + would have. + """ + return f"__attr_converter_{attr_name}" + + def _fmt_converter_call(self, attr_name: str, value_var: str) -> str: + """ + Return a string that calls the converter for an attribute name + *attr_name* and the value in variable named *value_var* according to + `self.takes_self` and `self.takes_field`. + """ + if not (self.takes_self or self.takes_field): + return f"{self._get_global_name(attr_name)}({value_var})" + + if self.takes_self and self.takes_field: + return f"{self._get_global_name(attr_name)}({value_var}, self, attr_dict['{attr_name}'])" + + if self.takes_self: + return f"{self._get_global_name(attr_name)}({value_var}, self)" + + return f"{self._get_global_name(attr_name)}({value_var}, attr_dict['{attr_name}'])" + + def __getstate__(self): + """ + Return a dict containing only converter and takes_self -- the rest gets + computed when loading. + """ + return { + "converter": self.converter, + "takes_self": self.takes_self, + "takes_field": self.takes_field, + } + + def __setstate__(self, state): + """ + Load instance from state. + """ + self.__init__(**state) + + +_f = [ + Attribute( + name=name, + default=NOTHING, + validator=None, + repr=True, + cmp=None, + eq=True, + order=False, + hash=True, + init=True, + inherited=False, + ) + for name in ("converter", "takes_self", "takes_field") +] + +Converter = _add_hash( + _add_eq(_add_repr(Converter, attrs=_f), attrs=_f), attrs=_f +) + + +def make_class( + name, attrs, bases=(object,), class_body=None, **attributes_arguments +): + r""" + A quick way to create a new class called *name* with *attrs*. + + Args: + name (str): The name for the new class. + + attrs( list | dict): + A list of names or a dictionary of mappings of names to `attr.ib`\ + s / `attrs.field`\ s. + + The order is deduced from the order of the names or attributes + inside *attrs*. Otherwise the order of the definition of the + attributes is used. + + bases (tuple[type, ...]): Classes that the new class will subclass. + + class_body (dict): + An optional dictionary of class attributes for the new class. + + attributes_arguments: Passed unmodified to `attr.s`. + + Returns: + type: A new class with *attrs*. + + .. versionadded:: 17.1.0 *bases* + .. versionchanged:: 18.1.0 If *attrs* is ordered, the order is retained. + .. versionchanged:: 23.2.0 *class_body* + """ + if isinstance(attrs, dict): + cls_dict = attrs + elif isinstance(attrs, (list, tuple)): + cls_dict = {a: attrib() for a in attrs} + else: + msg = "attrs argument must be a dict or a list." + raise TypeError(msg) + + pre_init = cls_dict.pop("__attrs_pre_init__", None) + post_init = cls_dict.pop("__attrs_post_init__", None) + user_init = cls_dict.pop("__init__", None) + + body = {} + if class_body is not None: + body.update(class_body) + if pre_init is not None: + body["__attrs_pre_init__"] = pre_init + if post_init is not None: + body["__attrs_post_init__"] = post_init + if user_init is not None: + body["__init__"] = user_init + + type_ = types.new_class(name, bases, {}, lambda ns: ns.update(body)) + + # For pickling to work, the __module__ variable needs to be set to the + # frame where the class is created. Bypass this step in environments where + # sys._getframe is not defined (Jython for example) or sys._getframe is not + # defined for arguments greater than 0 (IronPython). + with contextlib.suppress(AttributeError, ValueError): + type_.__module__ = sys._getframe(1).f_globals.get( + "__name__", "__main__" + ) + + # We do it here for proper warnings with meaningful stacklevel. + cmp = attributes_arguments.pop("cmp", None) + ( + attributes_arguments["eq"], + attributes_arguments["order"], + ) = _determine_attrs_eq_order( + cmp, + attributes_arguments.get("eq"), + attributes_arguments.get("order"), + True, + ) + + cls = _attrs(these=cls_dict, **attributes_arguments)(type_) + # Only add type annotations now or "_attrs()" will complain: + cls.__annotations__ = { + k: v.type for k, v in cls_dict.items() if v.type is not None + } + return cls + + +# These are required by within this module so we define them here and merely +# import into .validators / .converters. + + +@attrs(slots=True, unsafe_hash=True) +class _AndValidator: + """ + Compose many validators to a single one. + """ + + _validators = attrib() + + def __call__(self, inst, attr, value): + for v in self._validators: + v(inst, attr, value) + + +def and_(*validators): + """ + A validator that composes multiple validators into one. + + When called on a value, it runs all wrapped validators. + + Args: + validators (~collections.abc.Iterable[typing.Callable]): + Arbitrary number of validators. + + .. versionadded:: 17.1.0 + """ + vals = [] + for validator in validators: + vals.extend( + validator._validators + if isinstance(validator, _AndValidator) + else [validator] + ) + + return _AndValidator(tuple(vals)) + + +def pipe(*converters): + """ + A converter that composes multiple converters into one. + + When called on a value, it runs all wrapped converters, returning the + *last* value. + + Type annotations will be inferred from the wrapped converters', if they + have any. + + converters (~collections.abc.Iterable[typing.Callable]): + Arbitrary number of converters. + + .. versionadded:: 20.1.0 + """ + + def pipe_converter(val, inst, field): + for c in converters: + val = c(val, inst, field) if isinstance(c, Converter) else c(val) + + return val + + if not converters: + # If the converter list is empty, pipe_converter is the identity. + A = typing.TypeVar("A") + pipe_converter.__annotations__.update({"val": A, "return": A}) + else: + # Get parameter type from first converter. + t = _AnnotationExtractor(converters[0]).get_first_param_type() + if t: + pipe_converter.__annotations__["val"] = t + + last = converters[-1] + if not PY_3_11_PLUS and isinstance(last, Converter): + last = last.__call__ + + # Get return type from last converter. + rt = _AnnotationExtractor(last).get_return_type() + if rt: + pipe_converter.__annotations__["return"] = rt + + return Converter(pipe_converter, takes_self=True, takes_field=True) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/_next_gen.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/_next_gen.py new file mode 100644 index 0000000..dbb65cc --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/_next_gen.py @@ -0,0 +1,631 @@ +# SPDX-License-Identifier: MIT + +""" +These are keyword-only APIs that call `attr.s` and `attr.ib` with different +default values. +""" + + +from functools import partial + +from . import setters +from ._funcs import asdict as _asdict +from ._funcs import astuple as _astuple +from ._make import ( + _DEFAULT_ON_SETATTR, + NOTHING, + _frozen_setattrs, + attrib, + attrs, +) +from .exceptions import UnannotatedAttributeError + + +def define( + maybe_cls=None, + *, + these=None, + repr=None, + unsafe_hash=None, + hash=None, + init=None, + slots=True, + frozen=False, + weakref_slot=True, + str=False, + auto_attribs=None, + kw_only=False, + cache_hash=False, + auto_exc=True, + eq=None, + order=False, + auto_detect=True, + getstate_setstate=None, + on_setattr=None, + field_transformer=None, + match_args=True, +): + r""" + A class decorator that adds :term:`dunder methods` according to + :term:`fields ` specified using :doc:`type annotations `, + `field()` calls, or the *these* argument. + + Since *attrs* patches or replaces an existing class, you cannot use + `object.__init_subclass__` with *attrs* classes, because it runs too early. + As a replacement, you can define ``__attrs_init_subclass__`` on your class. + It will be called by *attrs* classes that subclass it after they're + created. See also :ref:`init-subclass`. + + Args: + slots (bool): + Create a :term:`slotted class ` that's more + memory-efficient. Slotted classes are generally superior to the + default dict classes, but have some gotchas you should know about, + so we encourage you to read the :term:`glossary entry `. + + auto_detect (bool): + Instead of setting the *init*, *repr*, *eq*, and *hash* arguments + explicitly, assume they are set to True **unless any** of the + involved methods for one of the arguments is implemented in the + *current* class (meaning, it is *not* inherited from some base + class). + + So, for example by implementing ``__eq__`` on a class yourself, + *attrs* will deduce ``eq=False`` and will create *neither* + ``__eq__`` *nor* ``__ne__`` (but Python classes come with a + sensible ``__ne__`` by default, so it *should* be enough to only + implement ``__eq__`` in most cases). + + Passing True or False` to *init*, *repr*, *eq*, *cmp*, or *hash* + overrides whatever *auto_detect* would determine. + + auto_exc (bool): + If the class subclasses `BaseException` (which implicitly includes + any subclass of any exception), the following happens to behave + like a well-behaved Python exception class: + + - the values for *eq*, *order*, and *hash* are ignored and the + instances compare and hash by the instance's ids [#]_ , + - all attributes that are either passed into ``__init__`` or have a + default value are additionally available as a tuple in the + ``args`` attribute, + - the value of *str* is ignored leaving ``__str__`` to base + classes. + + .. [#] + Note that *attrs* will *not* remove existing implementations of + ``__hash__`` or the equality methods. It just won't add own + ones. + + on_setattr (~typing.Callable | list[~typing.Callable] | None | ~typing.Literal[attrs.setters.NO_OP]): + A callable that is run whenever the user attempts to set an + attribute (either by assignment like ``i.x = 42`` or by using + `setattr` like ``setattr(i, "x", 42)``). It receives the same + arguments as validators: the instance, the attribute that is being + modified, and the new value. + + If no exception is raised, the attribute is set to the return value + of the callable. + + If a list of callables is passed, they're automatically wrapped in + an `attrs.setters.pipe`. + + If left None, the default behavior is to run converters and + validators whenever an attribute is set. + + init (bool): + Create a ``__init__`` method that initializes the *attrs* + attributes. Leading underscores are stripped for the argument name, + unless an alias is set on the attribute. + + .. seealso:: + `init` shows advanced ways to customize the generated + ``__init__`` method, including executing code before and after. + + repr(bool): + Create a ``__repr__`` method with a human readable representation + of *attrs* attributes. + + str (bool): + Create a ``__str__`` method that is identical to ``__repr__``. This + is usually not necessary except for `Exception`\ s. + + eq (bool | None): + If True or None (default), add ``__eq__`` and ``__ne__`` methods + that check two instances for equality. + + .. seealso:: + `comparison` describes how to customize the comparison behavior + going as far comparing NumPy arrays. + + order (bool | None): + If True, add ``__lt__``, ``__le__``, ``__gt__``, and ``__ge__`` + methods that behave like *eq* above and allow instances to be + ordered. + + They compare the instances as if they were tuples of their *attrs* + attributes if and only if the types of both classes are + *identical*. + + If `None` mirror value of *eq*. + + .. seealso:: `comparison` + + cmp (bool | None): + Setting *cmp* is equivalent to setting *eq* and *order* to the same + value. Must not be mixed with *eq* or *order*. + + unsafe_hash (bool | None): + If None (default), the ``__hash__`` method is generated according + how *eq* and *frozen* are set. + + 1. If *both* are True, *attrs* will generate a ``__hash__`` for + you. + 2. If *eq* is True and *frozen* is False, ``__hash__`` will be set + to None, marking it unhashable (which it is). + 3. If *eq* is False, ``__hash__`` will be left untouched meaning + the ``__hash__`` method of the base class will be used. If the + base class is `object`, this means it will fall back to id-based + hashing. + + Although not recommended, you can decide for yourself and force + *attrs* to create one (for example, if the class is immutable even + though you didn't freeze it programmatically) by passing True or + not. Both of these cases are rather special and should be used + carefully. + + .. seealso:: + + - Our documentation on `hashing`, + - Python's documentation on `object.__hash__`, + - and the `GitHub issue that led to the default \ behavior + `_ for more + details. + + hash (bool | None): + Deprecated alias for *unsafe_hash*. *unsafe_hash* takes precedence. + + cache_hash (bool): + Ensure that the object's hash code is computed only once and stored + on the object. If this is set to True, hashing must be either + explicitly or implicitly enabled for this class. If the hash code + is cached, avoid any reassignments of fields involved in hash code + computation or mutations of the objects those fields point to after + object creation. If such changes occur, the behavior of the + object's hash code is undefined. + + frozen (bool): + Make instances immutable after initialization. If someone attempts + to modify a frozen instance, `attrs.exceptions.FrozenInstanceError` + is raised. + + .. note:: + + 1. This is achieved by installing a custom ``__setattr__`` + method on your class, so you can't implement your own. + + 2. True immutability is impossible in Python. + + 3. This *does* have a minor a runtime performance `impact + ` when initializing new instances. In other + words: ``__init__`` is slightly slower with ``frozen=True``. + + 4. If a class is frozen, you cannot modify ``self`` in + ``__attrs_post_init__`` or a self-written ``__init__``. You + can circumvent that limitation by using + ``object.__setattr__(self, "attribute_name", value)``. + + 5. Subclasses of a frozen class are frozen too. + + kw_only (bool): + Make all attributes keyword-only in the generated ``__init__`` (if + *init* is False, this parameter is ignored). + + weakref_slot (bool): + Make instances weak-referenceable. This has no effect unless + *slots* is True. + + field_transformer (~typing.Callable | None): + A function that is called with the original class object and all + fields right before *attrs* finalizes the class. You can use this, + for example, to automatically add converters or validators to + fields based on their types. + + .. seealso:: `transform-fields` + + match_args (bool): + If True (default), set ``__match_args__`` on the class to support + :pep:`634` (*Structural Pattern Matching*). It is a tuple of all + non-keyword-only ``__init__`` parameter names on Python 3.10 and + later. Ignored on older Python versions. + + collect_by_mro (bool): + If True, *attrs* collects attributes from base classes correctly + according to the `method resolution order + `_. If False, *attrs* + will mimic the (wrong) behavior of `dataclasses` and :pep:`681`. + + See also `issue #428 + `_. + + getstate_setstate (bool | None): + .. note:: + + This is usually only interesting for slotted classes and you + should probably just set *auto_detect* to True. + + If True, ``__getstate__`` and ``__setstate__`` are generated and + attached to the class. This is necessary for slotted classes to be + pickleable. If left None, it's True by default for slotted classes + and False for dict classes. + + If *auto_detect* is True, and *getstate_setstate* is left None, and + **either** ``__getstate__`` or ``__setstate__`` is detected + directly on the class (meaning: not inherited), it is set to False + (this is usually what you want). + + auto_attribs (bool | None): + If True, look at type annotations to determine which attributes to + use, like `dataclasses`. If False, it will only look for explicit + :func:`field` class attributes, like classic *attrs*. + + If left None, it will guess: + + 1. If any attributes are annotated and no unannotated + `attrs.field`\ s are found, it assumes *auto_attribs=True*. + 2. Otherwise it assumes *auto_attribs=False* and tries to collect + `attrs.field`\ s. + + If *attrs* decides to look at type annotations, **all** fields + **must** be annotated. If *attrs* encounters a field that is set to + a :func:`field` / `attr.ib` but lacks a type annotation, an + `attrs.exceptions.UnannotatedAttributeError` is raised. Use + ``field_name: typing.Any = field(...)`` if you don't want to set a + type. + + .. warning:: + + For features that use the attribute name to create decorators + (for example, :ref:`validators `), you still *must* + assign :func:`field` / `attr.ib` to them. Otherwise Python will + either not find the name or try to use the default value to + call, for example, ``validator`` on it. + + Attributes annotated as `typing.ClassVar`, and attributes that are + neither annotated nor set to an `field()` are **ignored**. + + these (dict[str, object]): + A dictionary of name to the (private) return value of `field()` + mappings. This is useful to avoid the definition of your attributes + within the class body because you can't (for example, if you want + to add ``__repr__`` methods to Django models) or don't want to. + + If *these* is not `None`, *attrs* will *not* search the class body + for attributes and will *not* remove any attributes from it. + + The order is deduced from the order of the attributes inside + *these*. + + Arguably, this is a rather obscure feature. + + .. versionadded:: 20.1.0 + .. versionchanged:: 21.3.0 Converters are also run ``on_setattr``. + .. versionadded:: 22.2.0 + *unsafe_hash* as an alias for *hash* (for :pep:`681` compliance). + .. versionchanged:: 24.1.0 + Instances are not compared as tuples of attributes anymore, but using a + big ``and`` condition. This is faster and has more correct behavior for + uncomparable values like `math.nan`. + .. versionadded:: 24.1.0 + If a class has an *inherited* classmethod called + ``__attrs_init_subclass__``, it is executed after the class is created. + .. deprecated:: 24.1.0 *hash* is deprecated in favor of *unsafe_hash*. + + .. note:: + + The main differences to the classic `attr.s` are: + + - Automatically detect whether or not *auto_attribs* should be `True` + (c.f. *auto_attribs* parameter). + - Converters and validators run when attributes are set by default -- + if *frozen* is `False`. + - *slots=True* + + Usually, this has only upsides and few visible effects in everyday + programming. But it *can* lead to some surprising behaviors, so + please make sure to read :term:`slotted classes`. + + - *auto_exc=True* + - *auto_detect=True* + - *order=False* + - Some options that were only relevant on Python 2 or were kept around + for backwards-compatibility have been removed. + + """ + + def do_it(cls, auto_attribs): + return attrs( + maybe_cls=cls, + these=these, + repr=repr, + hash=hash, + unsafe_hash=unsafe_hash, + init=init, + slots=slots, + frozen=frozen, + weakref_slot=weakref_slot, + str=str, + auto_attribs=auto_attribs, + kw_only=kw_only, + cache_hash=cache_hash, + auto_exc=auto_exc, + eq=eq, + order=order, + auto_detect=auto_detect, + collect_by_mro=True, + getstate_setstate=getstate_setstate, + on_setattr=on_setattr, + field_transformer=field_transformer, + match_args=match_args, + ) + + def wrap(cls): + """ + Making this a wrapper ensures this code runs during class creation. + + We also ensure that frozen-ness of classes is inherited. + """ + nonlocal frozen, on_setattr + + had_on_setattr = on_setattr not in (None, setters.NO_OP) + + # By default, mutable classes convert & validate on setattr. + if frozen is False and on_setattr is None: + on_setattr = _DEFAULT_ON_SETATTR + + # However, if we subclass a frozen class, we inherit the immutability + # and disable on_setattr. + for base_cls in cls.__bases__: + if base_cls.__setattr__ is _frozen_setattrs: + if had_on_setattr: + msg = "Frozen classes can't use on_setattr (frozen-ness was inherited)." + raise ValueError(msg) + + on_setattr = setters.NO_OP + break + + if auto_attribs is not None: + return do_it(cls, auto_attribs) + + try: + return do_it(cls, True) + except UnannotatedAttributeError: + return do_it(cls, False) + + # maybe_cls's type depends on the usage of the decorator. It's a class + # if it's used as `@attrs` but `None` if used as `@attrs()`. + if maybe_cls is None: + return wrap + + return wrap(maybe_cls) + + +mutable = define +frozen = partial(define, frozen=True, on_setattr=None) + + +def field( + *, + default=NOTHING, + validator=None, + repr=True, + hash=None, + init=True, + metadata=None, + type=None, + converter=None, + factory=None, + kw_only=False, + eq=None, + order=None, + on_setattr=None, + alias=None, +): + """ + Create a new :term:`field` / :term:`attribute` on a class. + + .. warning:: + + Does **nothing** unless the class is also decorated with + `attrs.define` (or similar)! + + Args: + default: + A value that is used if an *attrs*-generated ``__init__`` is used + and no value is passed while instantiating or the attribute is + excluded using ``init=False``. + + If the value is an instance of `attrs.Factory`, its callable will + be used to construct a new value (useful for mutable data types + like lists or dicts). + + If a default is not set (or set manually to `attrs.NOTHING`), a + value *must* be supplied when instantiating; otherwise a + `TypeError` will be raised. + + .. seealso:: `defaults` + + factory (~typing.Callable): + Syntactic sugar for ``default=attr.Factory(factory)``. + + validator (~typing.Callable | list[~typing.Callable]): + Callable that is called by *attrs*-generated ``__init__`` methods + after the instance has been initialized. They receive the + initialized instance, the :func:`~attrs.Attribute`, and the passed + value. + + The return value is *not* inspected so the validator has to throw + an exception itself. + + If a `list` is passed, its items are treated as validators and must + all pass. + + Validators can be globally disabled and re-enabled using + `attrs.validators.get_disabled` / `attrs.validators.set_disabled`. + + The validator can also be set using decorator notation as shown + below. + + .. seealso:: :ref:`validators` + + repr (bool | ~typing.Callable): + Include this attribute in the generated ``__repr__`` method. If + True, include the attribute; if False, omit it. By default, the + built-in ``repr()`` function is used. To override how the attribute + value is formatted, pass a ``callable`` that takes a single value + and returns a string. Note that the resulting string is used as-is, + which means it will be used directly *instead* of calling + ``repr()`` (the default). + + eq (bool | ~typing.Callable): + If True (default), include this attribute in the generated + ``__eq__`` and ``__ne__`` methods that check two instances for + equality. To override how the attribute value is compared, pass a + callable that takes a single value and returns the value to be + compared. + + .. seealso:: `comparison` + + order (bool | ~typing.Callable): + If True (default), include this attributes in the generated + ``__lt__``, ``__le__``, ``__gt__`` and ``__ge__`` methods. To + override how the attribute value is ordered, pass a callable that + takes a single value and returns the value to be ordered. + + .. seealso:: `comparison` + + cmp(bool | ~typing.Callable): + Setting *cmp* is equivalent to setting *eq* and *order* to the same + value. Must not be mixed with *eq* or *order*. + + .. seealso:: `comparison` + + hash (bool | None): + Include this attribute in the generated ``__hash__`` method. If + None (default), mirror *eq*'s value. This is the correct behavior + according the Python spec. Setting this value to anything else + than None is *discouraged*. + + .. seealso:: `hashing` + + init (bool): + Include this attribute in the generated ``__init__`` method. + + It is possible to set this to False and set a default value. In + that case this attributed is unconditionally initialized with the + specified default value or factory. + + .. seealso:: `init` + + converter (typing.Callable | Converter): + A callable that is called by *attrs*-generated ``__init__`` methods + to convert attribute's value to the desired format. + + If a vanilla callable is passed, it is given the passed-in value as + the only positional argument. It is possible to receive additional + arguments by wrapping the callable in a `Converter`. + + Either way, the returned value will be used as the new value of the + attribute. The value is converted before being passed to the + validator, if any. + + .. seealso:: :ref:`converters` + + metadata (dict | None): + An arbitrary mapping, to be used by third-party code. + + .. seealso:: `extending-metadata`. + + type (type): + The type of the attribute. Nowadays, the preferred method to + specify the type is using a variable annotation (see :pep:`526`). + This argument is provided for backwards-compatibility and for usage + with `make_class`. Regardless of the approach used, the type will + be stored on ``Attribute.type``. + + Please note that *attrs* doesn't do anything with this metadata by + itself. You can use it as part of your own code or for `static type + checking `. + + kw_only (bool): + Make this attribute keyword-only in the generated ``__init__`` (if + ``init`` is False, this parameter is ignored). + + on_setattr (~typing.Callable | list[~typing.Callable] | None | ~typing.Literal[attrs.setters.NO_OP]): + Allows to overwrite the *on_setattr* setting from `attr.s`. If left + None, the *on_setattr* value from `attr.s` is used. Set to + `attrs.setters.NO_OP` to run **no** `setattr` hooks for this + attribute -- regardless of the setting in `define()`. + + alias (str | None): + Override this attribute's parameter name in the generated + ``__init__`` method. If left None, default to ``name`` stripped + of leading underscores. See `private-attributes`. + + .. versionadded:: 20.1.0 + .. versionchanged:: 21.1.0 + *eq*, *order*, and *cmp* also accept a custom callable + .. versionadded:: 22.2.0 *alias* + .. versionadded:: 23.1.0 + The *type* parameter has been re-added; mostly for `attrs.make_class`. + Please note that type checkers ignore this metadata. + + .. seealso:: + + `attr.ib` + """ + return attrib( + default=default, + validator=validator, + repr=repr, + hash=hash, + init=init, + metadata=metadata, + type=type, + converter=converter, + factory=factory, + kw_only=kw_only, + eq=eq, + order=order, + on_setattr=on_setattr, + alias=alias, + ) + + +def asdict(inst, *, recurse=True, filter=None, value_serializer=None): + """ + Same as `attr.asdict`, except that collections types are always retained + and dict is always used as *dict_factory*. + + .. versionadded:: 21.3.0 + """ + return _asdict( + inst=inst, + recurse=recurse, + filter=filter, + value_serializer=value_serializer, + retain_collection_types=True, + ) + + +def astuple(inst, *, recurse=True, filter=None): + """ + Same as `attr.astuple`, except that collections types are always retained + and `tuple` is always used as the *tuple_factory*. + + .. versionadded:: 21.3.0 + """ + return _astuple( + inst=inst, recurse=recurse, filter=filter, retain_collection_types=True + ) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/_typing_compat.pyi b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/_typing_compat.pyi new file mode 100644 index 0000000..ca7b71e --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/_typing_compat.pyi @@ -0,0 +1,15 @@ +from typing import Any, ClassVar, Protocol + +# MYPY is a special constant in mypy which works the same way as `TYPE_CHECKING`. +MYPY = False + +if MYPY: + # A protocol to be able to statically accept an attrs class. + class AttrsInstance_(Protocol): + __attrs_attrs__: ClassVar[Any] + +else: + # For type checkers without plug-in support use an empty protocol that + # will (hopefully) be combined into a union. + class AttrsInstance_(Protocol): + pass diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/_version_info.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/_version_info.py new file mode 100644 index 0000000..51a1312 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/_version_info.py @@ -0,0 +1,86 @@ +# SPDX-License-Identifier: MIT + + +from functools import total_ordering + +from ._funcs import astuple +from ._make import attrib, attrs + + +@total_ordering +@attrs(eq=False, order=False, slots=True, frozen=True) +class VersionInfo: + """ + A version object that can be compared to tuple of length 1--4: + + >>> attr.VersionInfo(19, 1, 0, "final") <= (19, 2) + True + >>> attr.VersionInfo(19, 1, 0, "final") < (19, 1, 1) + True + >>> vi = attr.VersionInfo(19, 2, 0, "final") + >>> vi < (19, 1, 1) + False + >>> vi < (19,) + False + >>> vi == (19, 2,) + True + >>> vi == (19, 2, 1) + False + + .. versionadded:: 19.2 + """ + + year = attrib(type=int) + minor = attrib(type=int) + micro = attrib(type=int) + releaselevel = attrib(type=str) + + @classmethod + def _from_version_string(cls, s): + """ + Parse *s* and return a _VersionInfo. + """ + v = s.split(".") + if len(v) == 3: + v.append("final") + + return cls( + year=int(v[0]), minor=int(v[1]), micro=int(v[2]), releaselevel=v[3] + ) + + def _ensure_tuple(self, other): + """ + Ensure *other* is a tuple of a valid length. + + Returns a possibly transformed *other* and ourselves as a tuple of + the same length as *other*. + """ + + if self.__class__ is other.__class__: + other = astuple(other) + + if not isinstance(other, tuple): + raise NotImplementedError + + if not (1 <= len(other) <= 4): + raise NotImplementedError + + return astuple(self)[: len(other)], other + + def __eq__(self, other): + try: + us, them = self._ensure_tuple(other) + except NotImplementedError: + return NotImplemented + + return us == them + + def __lt__(self, other): + try: + us, them = self._ensure_tuple(other) + except NotImplementedError: + return NotImplemented + + # Since alphabetically "dev0" < "final" < "post1" < "post2", we don't + # have to do anything special with releaselevel for now. + return us < them diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/_version_info.pyi b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/_version_info.pyi new file mode 100644 index 0000000..45ced08 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/_version_info.pyi @@ -0,0 +1,9 @@ +class VersionInfo: + @property + def year(self) -> int: ... + @property + def minor(self) -> int: ... + @property + def micro(self) -> int: ... + @property + def releaselevel(self) -> str: ... diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/converters.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/converters.py new file mode 100644 index 0000000..9238311 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/converters.py @@ -0,0 +1,151 @@ +# SPDX-License-Identifier: MIT + +""" +Commonly useful converters. +""" + + +import typing + +from ._compat import _AnnotationExtractor +from ._make import NOTHING, Factory, pipe + + +__all__ = [ + "default_if_none", + "optional", + "pipe", + "to_bool", +] + + +def optional(converter): + """ + A converter that allows an attribute to be optional. An optional attribute + is one which can be set to `None`. + + Type annotations will be inferred from the wrapped converter's, if it has + any. + + Args: + converter (typing.Callable): + the converter that is used for non-`None` values. + + .. versionadded:: 17.1.0 + """ + + def optional_converter(val): + if val is None: + return None + return converter(val) + + xtr = _AnnotationExtractor(converter) + + t = xtr.get_first_param_type() + if t: + optional_converter.__annotations__["val"] = typing.Optional[t] + + rt = xtr.get_return_type() + if rt: + optional_converter.__annotations__["return"] = typing.Optional[rt] + + return optional_converter + + +def default_if_none(default=NOTHING, factory=None): + """ + A converter that allows to replace `None` values by *default* or the result + of *factory*. + + Args: + default: + Value to be used if `None` is passed. Passing an instance of + `attrs.Factory` is supported, however the ``takes_self`` option is + *not*. + + factory (typing.Callable): + A callable that takes no parameters whose result is used if `None` + is passed. + + Raises: + TypeError: If **neither** *default* or *factory* is passed. + + TypeError: If **both** *default* and *factory* are passed. + + ValueError: + If an instance of `attrs.Factory` is passed with + ``takes_self=True``. + + .. versionadded:: 18.2.0 + """ + if default is NOTHING and factory is None: + msg = "Must pass either `default` or `factory`." + raise TypeError(msg) + + if default is not NOTHING and factory is not None: + msg = "Must pass either `default` or `factory` but not both." + raise TypeError(msg) + + if factory is not None: + default = Factory(factory) + + if isinstance(default, Factory): + if default.takes_self: + msg = "`takes_self` is not supported by default_if_none." + raise ValueError(msg) + + def default_if_none_converter(val): + if val is not None: + return val + + return default.factory() + + else: + + def default_if_none_converter(val): + if val is not None: + return val + + return default + + return default_if_none_converter + + +def to_bool(val): + """ + Convert "boolean" strings (for example, from environment variables) to real + booleans. + + Values mapping to `True`: + + - ``True`` + - ``"true"`` / ``"t"`` + - ``"yes"`` / ``"y"`` + - ``"on"`` + - ``"1"`` + - ``1`` + + Values mapping to `False`: + + - ``False`` + - ``"false"`` / ``"f"`` + - ``"no"`` / ``"n"`` + - ``"off"`` + - ``"0"`` + - ``0`` + + Raises: + ValueError: For any other value. + + .. versionadded:: 21.3.0 + """ + if isinstance(val, str): + val = val.lower() + + if val in (True, "true", "t", "yes", "y", "on", "1", 1): + return True + if val in (False, "false", "f", "no", "n", "off", "0", 0): + return False + + msg = f"Cannot convert value to bool: {val!r}" + raise ValueError(msg) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/converters.pyi b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/converters.pyi new file mode 100644 index 0000000..9ef478f --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/converters.pyi @@ -0,0 +1,13 @@ +from typing import Callable, TypeVar, overload + +from attrs import _ConverterType + +_T = TypeVar("_T") + +def pipe(*validators: _ConverterType) -> _ConverterType: ... +def optional(converter: _ConverterType) -> _ConverterType: ... +@overload +def default_if_none(default: _T) -> _ConverterType: ... +@overload +def default_if_none(*, factory: Callable[[], _T]) -> _ConverterType: ... +def to_bool(val: str) -> bool: ... diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/exceptions.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/exceptions.py new file mode 100644 index 0000000..3b7abb8 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/exceptions.py @@ -0,0 +1,95 @@ +# SPDX-License-Identifier: MIT + +from __future__ import annotations + +from typing import ClassVar + + +class FrozenError(AttributeError): + """ + A frozen/immutable instance or attribute have been attempted to be + modified. + + It mirrors the behavior of ``namedtuples`` by using the same error message + and subclassing `AttributeError`. + + .. versionadded:: 20.1.0 + """ + + msg = "can't set attribute" + args: ClassVar[tuple[str]] = [msg] + + +class FrozenInstanceError(FrozenError): + """ + A frozen instance has been attempted to be modified. + + .. versionadded:: 16.1.0 + """ + + +class FrozenAttributeError(FrozenError): + """ + A frozen attribute has been attempted to be modified. + + .. versionadded:: 20.1.0 + """ + + +class AttrsAttributeNotFoundError(ValueError): + """ + An *attrs* function couldn't find an attribute that the user asked for. + + .. versionadded:: 16.2.0 + """ + + +class NotAnAttrsClassError(ValueError): + """ + A non-*attrs* class has been passed into an *attrs* function. + + .. versionadded:: 16.2.0 + """ + + +class DefaultAlreadySetError(RuntimeError): + """ + A default has been set when defining the field and is attempted to be reset + using the decorator. + + .. versionadded:: 17.1.0 + """ + + +class UnannotatedAttributeError(RuntimeError): + """ + A class with ``auto_attribs=True`` has a field without a type annotation. + + .. versionadded:: 17.3.0 + """ + + +class PythonTooOldError(RuntimeError): + """ + It was attempted to use an *attrs* feature that requires a newer Python + version. + + .. versionadded:: 18.2.0 + """ + + +class NotCallableError(TypeError): + """ + A field requiring a callable has been set with a value that is not + callable. + + .. versionadded:: 19.2.0 + """ + + def __init__(self, msg, value): + super(TypeError, self).__init__(msg, value) + self.msg = msg + self.value = value + + def __str__(self): + return str(self.msg) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/exceptions.pyi b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/exceptions.pyi new file mode 100644 index 0000000..f268011 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/exceptions.pyi @@ -0,0 +1,17 @@ +from typing import Any + +class FrozenError(AttributeError): + msg: str = ... + +class FrozenInstanceError(FrozenError): ... +class FrozenAttributeError(FrozenError): ... +class AttrsAttributeNotFoundError(ValueError): ... +class NotAnAttrsClassError(ValueError): ... +class DefaultAlreadySetError(RuntimeError): ... +class UnannotatedAttributeError(RuntimeError): ... +class PythonTooOldError(RuntimeError): ... + +class NotCallableError(TypeError): + msg: str = ... + value: Any = ... + def __init__(self, msg: str, value: Any) -> None: ... diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/filters.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/filters.py new file mode 100644 index 0000000..689b170 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/filters.py @@ -0,0 +1,72 @@ +# SPDX-License-Identifier: MIT + +""" +Commonly useful filters for `attrs.asdict` and `attrs.astuple`. +""" + +from ._make import Attribute + + +def _split_what(what): + """ + Returns a tuple of `frozenset`s of classes and attributes. + """ + return ( + frozenset(cls for cls in what if isinstance(cls, type)), + frozenset(cls for cls in what if isinstance(cls, str)), + frozenset(cls for cls in what if isinstance(cls, Attribute)), + ) + + +def include(*what): + """ + Create a filter that only allows *what*. + + Args: + what (list[type, str, attrs.Attribute]): + What to include. Can be a type, a name, or an attribute. + + Returns: + Callable: + A callable that can be passed to `attrs.asdict`'s and + `attrs.astuple`'s *filter* argument. + + .. versionchanged:: 23.1.0 Accept strings with field names. + """ + cls, names, attrs = _split_what(what) + + def include_(attribute, value): + return ( + value.__class__ in cls + or attribute.name in names + or attribute in attrs + ) + + return include_ + + +def exclude(*what): + """ + Create a filter that does **not** allow *what*. + + Args: + what (list[type, str, attrs.Attribute]): + What to exclude. Can be a type, a name, or an attribute. + + Returns: + Callable: + A callable that can be passed to `attrs.asdict`'s and + `attrs.astuple`'s *filter* argument. + + .. versionchanged:: 23.3.0 Accept field name string as input argument + """ + cls, names, attrs = _split_what(what) + + def exclude_(attribute, value): + return not ( + value.__class__ in cls + or attribute.name in names + or attribute in attrs + ) + + return exclude_ diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/filters.pyi b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/filters.pyi new file mode 100644 index 0000000..974abdc --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/filters.pyi @@ -0,0 +1,6 @@ +from typing import Any + +from . import Attribute, _FilterType + +def include(*what: type | str | Attribute[Any]) -> _FilterType[Any]: ... +def exclude(*what: type | str | Attribute[Any]) -> _FilterType[Any]: ... diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/py.typed b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/py.typed new file mode 100644 index 0000000..e69de29 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/setters.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/setters.py new file mode 100644 index 0000000..a9ce016 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/setters.py @@ -0,0 +1,79 @@ +# SPDX-License-Identifier: MIT + +""" +Commonly used hooks for on_setattr. +""" + +from . import _config +from .exceptions import FrozenAttributeError + + +def pipe(*setters): + """ + Run all *setters* and return the return value of the last one. + + .. versionadded:: 20.1.0 + """ + + def wrapped_pipe(instance, attrib, new_value): + rv = new_value + + for setter in setters: + rv = setter(instance, attrib, rv) + + return rv + + return wrapped_pipe + + +def frozen(_, __, ___): + """ + Prevent an attribute to be modified. + + .. versionadded:: 20.1.0 + """ + raise FrozenAttributeError() + + +def validate(instance, attrib, new_value): + """ + Run *attrib*'s validator on *new_value* if it has one. + + .. versionadded:: 20.1.0 + """ + if _config._run_validators is False: + return new_value + + v = attrib.validator + if not v: + return new_value + + v(instance, attrib, new_value) + + return new_value + + +def convert(instance, attrib, new_value): + """ + Run *attrib*'s converter -- if it has one -- on *new_value* and return the + result. + + .. versionadded:: 20.1.0 + """ + c = attrib.converter + if c: + # This can be removed once we drop 3.8 and use attrs.Converter instead. + from ._make import Converter + + if not isinstance(c, Converter): + return c(new_value) + + return c(new_value, instance, attrib) + + return new_value + + +# Sentinel for disabling class-wide *on_setattr* hooks for certain attributes. +# Sphinx's autodata stopped working, so the docstring is inlined in the API +# docs. +NO_OP = object() diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/setters.pyi b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/setters.pyi new file mode 100644 index 0000000..73abf36 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/setters.pyi @@ -0,0 +1,20 @@ +from typing import Any, NewType, NoReturn, TypeVar + +from . import Attribute +from attrs import _OnSetAttrType + +_T = TypeVar("_T") + +def frozen( + instance: Any, attribute: Attribute[Any], new_value: Any +) -> NoReturn: ... +def pipe(*setters: _OnSetAttrType) -> _OnSetAttrType: ... +def validate(instance: Any, attribute: Attribute[_T], new_value: _T) -> _T: ... + +# convert is allowed to return Any, because they can be chained using pipe. +def convert( + instance: Any, attribute: Attribute[Any], new_value: Any +) -> Any: ... + +_NoOpType = NewType("_NoOpType", object) +NO_OP: _NoOpType diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/validators.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/validators.py new file mode 100644 index 0000000..8a56717 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/validators.py @@ -0,0 +1,711 @@ +# SPDX-License-Identifier: MIT + +""" +Commonly useful validators. +""" + + +import operator +import re + +from contextlib import contextmanager +from re import Pattern + +from ._config import get_run_validators, set_run_validators +from ._make import _AndValidator, and_, attrib, attrs +from .converters import default_if_none +from .exceptions import NotCallableError + + +__all__ = [ + "and_", + "deep_iterable", + "deep_mapping", + "disabled", + "ge", + "get_disabled", + "gt", + "in_", + "instance_of", + "is_callable", + "le", + "lt", + "matches_re", + "max_len", + "min_len", + "not_", + "optional", + "or_", + "set_disabled", +] + + +def set_disabled(disabled): + """ + Globally disable or enable running validators. + + By default, they are run. + + Args: + disabled (bool): If `True`, disable running all validators. + + .. warning:: + + This function is not thread-safe! + + .. versionadded:: 21.3.0 + """ + set_run_validators(not disabled) + + +def get_disabled(): + """ + Return a bool indicating whether validators are currently disabled or not. + + Returns: + bool:`True` if validators are currently disabled. + + .. versionadded:: 21.3.0 + """ + return not get_run_validators() + + +@contextmanager +def disabled(): + """ + Context manager that disables running validators within its context. + + .. warning:: + + This context manager is not thread-safe! + + .. versionadded:: 21.3.0 + """ + set_run_validators(False) + try: + yield + finally: + set_run_validators(True) + + +@attrs(repr=False, slots=True, unsafe_hash=True) +class _InstanceOfValidator: + type = attrib() + + def __call__(self, inst, attr, value): + """ + We use a callable class to be able to change the ``__repr__``. + """ + if not isinstance(value, self.type): + msg = f"'{attr.name}' must be {self.type!r} (got {value!r} that is a {value.__class__!r})." + raise TypeError( + msg, + attr, + self.type, + value, + ) + + def __repr__(self): + return f"" + + +def instance_of(type): + """ + A validator that raises a `TypeError` if the initializer is called with a + wrong type for this particular attribute (checks are performed using + `isinstance` therefore it's also valid to pass a tuple of types). + + Args: + type (type | tuple[type]): The type to check for. + + Raises: + TypeError: + With a human readable error message, the attribute (of type + `attrs.Attribute`), the expected type, and the value it got. + """ + return _InstanceOfValidator(type) + + +@attrs(repr=False, frozen=True, slots=True) +class _MatchesReValidator: + pattern = attrib() + match_func = attrib() + + def __call__(self, inst, attr, value): + """ + We use a callable class to be able to change the ``__repr__``. + """ + if not self.match_func(value): + msg = f"'{attr.name}' must match regex {self.pattern.pattern!r} ({value!r} doesn't)" + raise ValueError( + msg, + attr, + self.pattern, + value, + ) + + def __repr__(self): + return f"" + + +def matches_re(regex, flags=0, func=None): + r""" + A validator that raises `ValueError` if the initializer is called with a + string that doesn't match *regex*. + + Args: + regex (str, re.Pattern): + A regex string or precompiled pattern to match against + + flags (int): + Flags that will be passed to the underlying re function (default 0) + + func (typing.Callable): + Which underlying `re` function to call. Valid options are + `re.fullmatch`, `re.search`, and `re.match`; the default `None` + means `re.fullmatch`. For performance reasons, the pattern is + always precompiled using `re.compile`. + + .. versionadded:: 19.2.0 + .. versionchanged:: 21.3.0 *regex* can be a pre-compiled pattern. + """ + valid_funcs = (re.fullmatch, None, re.search, re.match) + if func not in valid_funcs: + msg = "'func' must be one of {}.".format( + ", ".join( + sorted(e and e.__name__ or "None" for e in set(valid_funcs)) + ) + ) + raise ValueError(msg) + + if isinstance(regex, Pattern): + if flags: + msg = "'flags' can only be used with a string pattern; pass flags to re.compile() instead" + raise TypeError(msg) + pattern = regex + else: + pattern = re.compile(regex, flags) + + if func is re.match: + match_func = pattern.match + elif func is re.search: + match_func = pattern.search + else: + match_func = pattern.fullmatch + + return _MatchesReValidator(pattern, match_func) + + +@attrs(repr=False, slots=True, unsafe_hash=True) +class _OptionalValidator: + validator = attrib() + + def __call__(self, inst, attr, value): + if value is None: + return + + self.validator(inst, attr, value) + + def __repr__(self): + return f"" + + +def optional(validator): + """ + A validator that makes an attribute optional. An optional attribute is one + which can be set to `None` in addition to satisfying the requirements of + the sub-validator. + + Args: + validator + (typing.Callable | tuple[typing.Callable] | list[typing.Callable]): + A validator (or validators) that is used for non-`None` values. + + .. versionadded:: 15.1.0 + .. versionchanged:: 17.1.0 *validator* can be a list of validators. + .. versionchanged:: 23.1.0 *validator* can also be a tuple of validators. + """ + if isinstance(validator, (list, tuple)): + return _OptionalValidator(_AndValidator(validator)) + + return _OptionalValidator(validator) + + +@attrs(repr=False, slots=True, unsafe_hash=True) +class _InValidator: + options = attrib() + _original_options = attrib(hash=False) + + def __call__(self, inst, attr, value): + try: + in_options = value in self.options + except TypeError: # e.g. `1 in "abc"` + in_options = False + + if not in_options: + msg = f"'{attr.name}' must be in {self._original_options!r} (got {value!r})" + raise ValueError( + msg, + attr, + self._original_options, + value, + ) + + def __repr__(self): + return f"" + + +def in_(options): + """ + A validator that raises a `ValueError` if the initializer is called with a + value that does not belong in the *options* provided. + + The check is performed using ``value in options``, so *options* has to + support that operation. + + To keep the validator hashable, dicts, lists, and sets are transparently + transformed into a `tuple`. + + Args: + options: Allowed options. + + Raises: + ValueError: + With a human readable error message, the attribute (of type + `attrs.Attribute`), the expected options, and the value it got. + + .. versionadded:: 17.1.0 + .. versionchanged:: 22.1.0 + The ValueError was incomplete until now and only contained the human + readable error message. Now it contains all the information that has + been promised since 17.1.0. + .. versionchanged:: 24.1.0 + *options* that are a list, dict, or a set are now transformed into a + tuple to keep the validator hashable. + """ + repr_options = options + if isinstance(options, (list, dict, set)): + options = tuple(options) + + return _InValidator(options, repr_options) + + +@attrs(repr=False, slots=False, unsafe_hash=True) +class _IsCallableValidator: + def __call__(self, inst, attr, value): + """ + We use a callable class to be able to change the ``__repr__``. + """ + if not callable(value): + message = ( + "'{name}' must be callable " + "(got {value!r} that is a {actual!r})." + ) + raise NotCallableError( + msg=message.format( + name=attr.name, value=value, actual=value.__class__ + ), + value=value, + ) + + def __repr__(self): + return "" + + +def is_callable(): + """ + A validator that raises a `attrs.exceptions.NotCallableError` if the + initializer is called with a value for this particular attribute that is + not callable. + + .. versionadded:: 19.1.0 + + Raises: + attrs.exceptions.NotCallableError: + With a human readable error message containing the attribute + (`attrs.Attribute`) name, and the value it got. + """ + return _IsCallableValidator() + + +@attrs(repr=False, slots=True, unsafe_hash=True) +class _DeepIterable: + member_validator = attrib(validator=is_callable()) + iterable_validator = attrib( + default=None, validator=optional(is_callable()) + ) + + def __call__(self, inst, attr, value): + """ + We use a callable class to be able to change the ``__repr__``. + """ + if self.iterable_validator is not None: + self.iterable_validator(inst, attr, value) + + for member in value: + self.member_validator(inst, attr, member) + + def __repr__(self): + iterable_identifier = ( + "" + if self.iterable_validator is None + else f" {self.iterable_validator!r}" + ) + return ( + f"" + ) + + +def deep_iterable(member_validator, iterable_validator=None): + """ + A validator that performs deep validation of an iterable. + + Args: + member_validator: Validator to apply to iterable members. + + iterable_validator: + Validator to apply to iterable itself (optional). + + Raises + TypeError: if any sub-validators fail + + .. versionadded:: 19.1.0 + """ + if isinstance(member_validator, (list, tuple)): + member_validator = and_(*member_validator) + return _DeepIterable(member_validator, iterable_validator) + + +@attrs(repr=False, slots=True, unsafe_hash=True) +class _DeepMapping: + key_validator = attrib(validator=is_callable()) + value_validator = attrib(validator=is_callable()) + mapping_validator = attrib(default=None, validator=optional(is_callable())) + + def __call__(self, inst, attr, value): + """ + We use a callable class to be able to change the ``__repr__``. + """ + if self.mapping_validator is not None: + self.mapping_validator(inst, attr, value) + + for key in value: + self.key_validator(inst, attr, key) + self.value_validator(inst, attr, value[key]) + + def __repr__(self): + return f"" + + +def deep_mapping(key_validator, value_validator, mapping_validator=None): + """ + A validator that performs deep validation of a dictionary. + + Args: + key_validator: Validator to apply to dictionary keys. + + value_validator: Validator to apply to dictionary values. + + mapping_validator: + Validator to apply to top-level mapping attribute (optional). + + .. versionadded:: 19.1.0 + + Raises: + TypeError: if any sub-validators fail + """ + return _DeepMapping(key_validator, value_validator, mapping_validator) + + +@attrs(repr=False, frozen=True, slots=True) +class _NumberValidator: + bound = attrib() + compare_op = attrib() + compare_func = attrib() + + def __call__(self, inst, attr, value): + """ + We use a callable class to be able to change the ``__repr__``. + """ + if not self.compare_func(value, self.bound): + msg = f"'{attr.name}' must be {self.compare_op} {self.bound}: {value}" + raise ValueError(msg) + + def __repr__(self): + return f"" + + +def lt(val): + """ + A validator that raises `ValueError` if the initializer is called with a + number larger or equal to *val*. + + The validator uses `operator.lt` to compare the values. + + Args: + val: Exclusive upper bound for values. + + .. versionadded:: 21.3.0 + """ + return _NumberValidator(val, "<", operator.lt) + + +def le(val): + """ + A validator that raises `ValueError` if the initializer is called with a + number greater than *val*. + + The validator uses `operator.le` to compare the values. + + Args: + val: Inclusive upper bound for values. + + .. versionadded:: 21.3.0 + """ + return _NumberValidator(val, "<=", operator.le) + + +def ge(val): + """ + A validator that raises `ValueError` if the initializer is called with a + number smaller than *val*. + + The validator uses `operator.ge` to compare the values. + + Args: + val: Inclusive lower bound for values + + .. versionadded:: 21.3.0 + """ + return _NumberValidator(val, ">=", operator.ge) + + +def gt(val): + """ + A validator that raises `ValueError` if the initializer is called with a + number smaller or equal to *val*. + + The validator uses `operator.ge` to compare the values. + + Args: + val: Exclusive lower bound for values + + .. versionadded:: 21.3.0 + """ + return _NumberValidator(val, ">", operator.gt) + + +@attrs(repr=False, frozen=True, slots=True) +class _MaxLengthValidator: + max_length = attrib() + + def __call__(self, inst, attr, value): + """ + We use a callable class to be able to change the ``__repr__``. + """ + if len(value) > self.max_length: + msg = f"Length of '{attr.name}' must be <= {self.max_length}: {len(value)}" + raise ValueError(msg) + + def __repr__(self): + return f"" + + +def max_len(length): + """ + A validator that raises `ValueError` if the initializer is called + with a string or iterable that is longer than *length*. + + Args: + length (int): Maximum length of the string or iterable + + .. versionadded:: 21.3.0 + """ + return _MaxLengthValidator(length) + + +@attrs(repr=False, frozen=True, slots=True) +class _MinLengthValidator: + min_length = attrib() + + def __call__(self, inst, attr, value): + """ + We use a callable class to be able to change the ``__repr__``. + """ + if len(value) < self.min_length: + msg = f"Length of '{attr.name}' must be >= {self.min_length}: {len(value)}" + raise ValueError(msg) + + def __repr__(self): + return f"" + + +def min_len(length): + """ + A validator that raises `ValueError` if the initializer is called + with a string or iterable that is shorter than *length*. + + Args: + length (int): Minimum length of the string or iterable + + .. versionadded:: 22.1.0 + """ + return _MinLengthValidator(length) + + +@attrs(repr=False, slots=True, unsafe_hash=True) +class _SubclassOfValidator: + type = attrib() + + def __call__(self, inst, attr, value): + """ + We use a callable class to be able to change the ``__repr__``. + """ + if not issubclass(value, self.type): + msg = f"'{attr.name}' must be a subclass of {self.type!r} (got {value!r})." + raise TypeError( + msg, + attr, + self.type, + value, + ) + + def __repr__(self): + return f"" + + +def _subclass_of(type): + """ + A validator that raises a `TypeError` if the initializer is called with a + wrong type for this particular attribute (checks are performed using + `issubclass` therefore it's also valid to pass a tuple of types). + + Args: + type (type | tuple[type, ...]): The type(s) to check for. + + Raises: + TypeError: + With a human readable error message, the attribute (of type + `attrs.Attribute`), the expected type, and the value it got. + """ + return _SubclassOfValidator(type) + + +@attrs(repr=False, slots=True, unsafe_hash=True) +class _NotValidator: + validator = attrib() + msg = attrib( + converter=default_if_none( + "not_ validator child '{validator!r}' " + "did not raise a captured error" + ) + ) + exc_types = attrib( + validator=deep_iterable( + member_validator=_subclass_of(Exception), + iterable_validator=instance_of(tuple), + ), + ) + + def __call__(self, inst, attr, value): + try: + self.validator(inst, attr, value) + except self.exc_types: + pass # suppress error to invert validity + else: + raise ValueError( + self.msg.format( + validator=self.validator, + exc_types=self.exc_types, + ), + attr, + self.validator, + value, + self.exc_types, + ) + + def __repr__(self): + return f"" + + +def not_(validator, *, msg=None, exc_types=(ValueError, TypeError)): + """ + A validator that wraps and logically 'inverts' the validator passed to it. + It will raise a `ValueError` if the provided validator *doesn't* raise a + `ValueError` or `TypeError` (by default), and will suppress the exception + if the provided validator *does*. + + Intended to be used with existing validators to compose logic without + needing to create inverted variants, for example, ``not_(in_(...))``. + + Args: + validator: A validator to be logically inverted. + + msg (str): + Message to raise if validator fails. Formatted with keys + ``exc_types`` and ``validator``. + + exc_types (tuple[type, ...]): + Exception type(s) to capture. Other types raised by child + validators will not be intercepted and pass through. + + Raises: + ValueError: + With a human readable error message, the attribute (of type + `attrs.Attribute`), the validator that failed to raise an + exception, the value it got, and the expected exception types. + + .. versionadded:: 22.2.0 + """ + try: + exc_types = tuple(exc_types) + except TypeError: + exc_types = (exc_types,) + return _NotValidator(validator, msg, exc_types) + + +@attrs(repr=False, slots=True, unsafe_hash=True) +class _OrValidator: + validators = attrib() + + def __call__(self, inst, attr, value): + for v in self.validators: + try: + v(inst, attr, value) + except Exception: # noqa: BLE001, PERF203, S112 + continue + else: + return + + msg = f"None of {self.validators!r} satisfied for value {value!r}" + raise ValueError(msg) + + def __repr__(self): + return f"" + + +def or_(*validators): + """ + A validator that composes multiple validators into one. + + When called on a value, it runs all wrapped validators until one of them is + satisfied. + + Args: + validators (~collections.abc.Iterable[typing.Callable]): + Arbitrary number of validators. + + Raises: + ValueError: + If no validator is satisfied. Raised with a human-readable error + message listing all the wrapped validators and the value that + failed all of them. + + .. versionadded:: 24.1.0 + """ + vals = [] + for v in validators: + vals.extend(v.validators if isinstance(v, _OrValidator) else [v]) + + return _OrValidator(tuple(vals)) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/validators.pyi b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/validators.pyi new file mode 100644 index 0000000..a314110 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attr/validators.pyi @@ -0,0 +1,83 @@ +from typing import ( + Any, + AnyStr, + Callable, + Container, + ContextManager, + Iterable, + Mapping, + Match, + Pattern, + TypeVar, + overload, +) + +from attrs import _ValidatorType +from attrs import _ValidatorArgType + +_T = TypeVar("_T") +_T1 = TypeVar("_T1") +_T2 = TypeVar("_T2") +_T3 = TypeVar("_T3") +_I = TypeVar("_I", bound=Iterable) +_K = TypeVar("_K") +_V = TypeVar("_V") +_M = TypeVar("_M", bound=Mapping) + +def set_disabled(run: bool) -> None: ... +def get_disabled() -> bool: ... +def disabled() -> ContextManager[None]: ... + +# To be more precise on instance_of use some overloads. +# If there are more than 3 items in the tuple then we fall back to Any +@overload +def instance_of(type: type[_T]) -> _ValidatorType[_T]: ... +@overload +def instance_of(type: tuple[type[_T]]) -> _ValidatorType[_T]: ... +@overload +def instance_of( + type: tuple[type[_T1], type[_T2]] +) -> _ValidatorType[_T1 | _T2]: ... +@overload +def instance_of( + type: tuple[type[_T1], type[_T2], type[_T3]] +) -> _ValidatorType[_T1 | _T2 | _T3]: ... +@overload +def instance_of(type: tuple[type, ...]) -> _ValidatorType[Any]: ... +def optional( + validator: ( + _ValidatorType[_T] + | list[_ValidatorType[_T]] + | tuple[_ValidatorType[_T]] + ), +) -> _ValidatorType[_T | None]: ... +def in_(options: Container[_T]) -> _ValidatorType[_T]: ... +def and_(*validators: _ValidatorType[_T]) -> _ValidatorType[_T]: ... +def matches_re( + regex: Pattern[AnyStr] | AnyStr, + flags: int = ..., + func: Callable[[AnyStr, AnyStr, int], Match[AnyStr] | None] | None = ..., +) -> _ValidatorType[AnyStr]: ... +def deep_iterable( + member_validator: _ValidatorArgType[_T], + iterable_validator: _ValidatorType[_I] | None = ..., +) -> _ValidatorType[_I]: ... +def deep_mapping( + key_validator: _ValidatorType[_K], + value_validator: _ValidatorType[_V], + mapping_validator: _ValidatorType[_M] | None = ..., +) -> _ValidatorType[_M]: ... +def is_callable() -> _ValidatorType[_T]: ... +def lt(val: _T) -> _ValidatorType[_T]: ... +def le(val: _T) -> _ValidatorType[_T]: ... +def ge(val: _T) -> _ValidatorType[_T]: ... +def gt(val: _T) -> _ValidatorType[_T]: ... +def max_len(length: int) -> _ValidatorType[_T]: ... +def min_len(length: int) -> _ValidatorType[_T]: ... +def not_( + validator: _ValidatorType[_T], + *, + msg: str | None = None, + exc_types: type[Exception] | Iterable[type[Exception]] = ..., +) -> _ValidatorType[_T]: ... +def or_(*validators: _ValidatorType[_T]) -> _ValidatorType[_T]: ... diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs-23.2.0.dist-info/INSTALLER b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs-23.2.0.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs-23.2.0.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs-23.2.0.dist-info/METADATA b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs-23.2.0.dist-info/METADATA new file mode 100644 index 0000000..c20be76 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs-23.2.0.dist-info/METADATA @@ -0,0 +1,202 @@ +Metadata-Version: 2.1 +Name: attrs +Version: 23.2.0 +Summary: Classes Without Boilerplate +Project-URL: Documentation, https://www.attrs.org/ +Project-URL: Changelog, https://www.attrs.org/en/stable/changelog.html +Project-URL: GitHub, https://github.com/python-attrs/attrs +Project-URL: Funding, https://github.com/sponsors/hynek +Project-URL: Tidelift, https://tidelift.com/subscription/pkg/pypi-attrs?utm_source=pypi-attrs&utm_medium=pypi +Author-email: Hynek Schlawack +License-Expression: MIT +License-File: LICENSE +Keywords: attribute,boilerplate,class +Classifier: Development Status :: 5 - Production/Stable +Classifier: License :: OSI Approved :: MIT License +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Typing :: Typed +Requires-Python: >=3.7 +Requires-Dist: importlib-metadata; python_version < '3.8' +Provides-Extra: cov +Requires-Dist: attrs[tests]; extra == 'cov' +Requires-Dist: coverage[toml]>=5.3; extra == 'cov' +Provides-Extra: dev +Requires-Dist: attrs[tests]; extra == 'dev' +Requires-Dist: pre-commit; extra == 'dev' +Provides-Extra: docs +Requires-Dist: furo; extra == 'docs' +Requires-Dist: myst-parser; extra == 'docs' +Requires-Dist: sphinx; extra == 'docs' +Requires-Dist: sphinx-notfound-page; extra == 'docs' +Requires-Dist: sphinxcontrib-towncrier; extra == 'docs' +Requires-Dist: towncrier; extra == 'docs' +Requires-Dist: zope-interface; extra == 'docs' +Provides-Extra: tests +Requires-Dist: attrs[tests-no-zope]; extra == 'tests' +Requires-Dist: zope-interface; extra == 'tests' +Provides-Extra: tests-mypy +Requires-Dist: mypy>=1.6; (platform_python_implementation == 'CPython' and python_version >= '3.8') and extra == 'tests-mypy' +Requires-Dist: pytest-mypy-plugins; (platform_python_implementation == 'CPython' and python_version >= '3.8') and extra == 'tests-mypy' +Provides-Extra: tests-no-zope +Requires-Dist: attrs[tests-mypy]; extra == 'tests-no-zope' +Requires-Dist: cloudpickle; (platform_python_implementation == 'CPython') and extra == 'tests-no-zope' +Requires-Dist: hypothesis; extra == 'tests-no-zope' +Requires-Dist: pympler; extra == 'tests-no-zope' +Requires-Dist: pytest-xdist[psutil]; extra == 'tests-no-zope' +Requires-Dist: pytest>=4.3.0; extra == 'tests-no-zope' +Description-Content-Type: text/markdown + +

      + + attrs + +

      + + +*attrs* is the Python package that will bring back the **joy** of **writing classes** by relieving you from the drudgery of implementing object protocols (aka [dunder methods](https://www.attrs.org/en/latest/glossary.html#term-dunder-methods)). +[Trusted by NASA](https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/personalizing-your-profile#list-of-qualifying-repositories-for-mars-2020-helicopter-contributor-achievement) for Mars missions since 2020! + +Its main goal is to help you to write **concise** and **correct** software without slowing down your code. + + +## Sponsors + +*attrs* would not be possible without our [amazing sponsors](https://github.com/sponsors/hynek). +Especially those generously supporting us at the *The Organization* tier and higher: + +

      + + + +

      + +

      + Please consider joining them to help make attrs’s maintenance more sustainable! +

      + + + +## Example + +*attrs* gives you a class decorator and a way to declaratively define the attributes on that class: + + + +```pycon +>>> from attrs import asdict, define, make_class, Factory + +>>> @define +... class SomeClass: +... a_number: int = 42 +... list_of_numbers: list[int] = Factory(list) +... +... def hard_math(self, another_number): +... return self.a_number + sum(self.list_of_numbers) * another_number + + +>>> sc = SomeClass(1, [1, 2, 3]) +>>> sc +SomeClass(a_number=1, list_of_numbers=[1, 2, 3]) + +>>> sc.hard_math(3) +19 +>>> sc == SomeClass(1, [1, 2, 3]) +True +>>> sc != SomeClass(2, [3, 2, 1]) +True + +>>> asdict(sc) +{'a_number': 1, 'list_of_numbers': [1, 2, 3]} + +>>> SomeClass() +SomeClass(a_number=42, list_of_numbers=[]) + +>>> C = make_class("C", ["a", "b"]) +>>> C("foo", "bar") +C(a='foo', b='bar') +``` + +After *declaring* your attributes, *attrs* gives you: + +- a concise and explicit overview of the class's attributes, +- a nice human-readable `__repr__`, +- equality-checking methods, +- an initializer, +- and much more, + +*without* writing dull boilerplate code again and again and *without* runtime performance penalties. + +**Hate type annotations**!? +No problem! +Types are entirely **optional** with *attrs*. +Simply assign `attrs.field()` to the attributes instead of annotating them with types. + +--- + +This example uses *attrs*'s modern APIs that have been introduced in version 20.1.0, and the *attrs* package import name that has been added in version 21.3.0. +The classic APIs (`@attr.s`, `attr.ib`, plus their serious-business aliases) and the `attr` package import name will remain **indefinitely**. + +Please check out [*On The Core API Names*](https://www.attrs.org/en/latest/names.html) for a more in-depth explanation. + + +## Data Classes + +On the tin, *attrs* might remind you of `dataclasses` (and indeed, `dataclasses` [are a descendant](https://hynek.me/articles/import-attrs/) of *attrs*). +In practice it does a lot more and is more flexible. +For instance it allows you to define [special handling of NumPy arrays for equality checks](https://www.attrs.org/en/stable/comparison.html#customization), allows more ways to [plug into the initialization process](https://www.attrs.org/en/stable/init.html#hooking-yourself-into-initialization), and allows for stepping through the generated methods using a debugger. + +For more details, please refer to our [comparison page](https://www.attrs.org/en/stable/why.html#data-classes). + + +## Project Information + +- [**Changelog**](https://www.attrs.org/en/stable/changelog.html) +- [**Documentation**](https://www.attrs.org/) +- [**PyPI**](https://pypi.org/project/attrs/) +- [**Source Code**](https://github.com/python-attrs/attrs) +- [**Contributing**](https://github.com/python-attrs/attrs/blob/main/.github/CONTRIBUTING.md) +- [**Third-party Extensions**](https://github.com/python-attrs/attrs/wiki/Extensions-to-attrs) +- **Get Help**: please use the `python-attrs` tag on [StackOverflow](https://stackoverflow.com/questions/tagged/python-attrs) + + +### *attrs* for Enterprise + +Available as part of the Tidelift Subscription. + +The maintainers of *attrs* and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source packages you use to build your applications. +Save time, reduce risk, and improve code health, while paying the maintainers of the exact packages you use. +[Learn more.](https://tidelift.com/subscription/pkg/pypi-attrs?utm_source=pypi-attrs&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) + +## Release Information + +### Changes + +- The type annotation for `attrs.resolve_types()` is now correct. + [#1141](https://github.com/python-attrs/attrs/issues/1141) +- Type stubs now use `typing.dataclass_transform` to decorate dataclass-like decorators, instead of the non-standard `__dataclass_transform__` special form, which is only supported by Pyright. + [#1158](https://github.com/python-attrs/attrs/issues/1158) +- Fixed serialization of namedtuple fields using `attrs.asdict/astuple()` with `retain_collection_types=True`. + [#1165](https://github.com/python-attrs/attrs/issues/1165) +- `attrs.AttrsInstance` is now a `typing.Protocol` in both type hints and code. + This allows you to subclass it along with another `Protocol`. + [#1172](https://github.com/python-attrs/attrs/issues/1172) +- If *attrs* detects that `__attrs_pre_init__` accepts more than just `self`, it will call it with the same arguments as `__init__` was called. + This allows you to, for example, pass arguments to `super().__init__()`. + [#1187](https://github.com/python-attrs/attrs/issues/1187) +- Slotted classes now transform `functools.cached_property` decorated methods to support equivalent semantics. + [#1200](https://github.com/python-attrs/attrs/issues/1200) +- Added *class_body* argument to `attrs.make_class()` to provide additional attributes for newly created classes. + It is, for example, now possible to attach methods. + [#1203](https://github.com/python-attrs/attrs/issues/1203) + + +--- + +[Full changelog](https://www.attrs.org/en/stable/changelog.html) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs-23.2.0.dist-info/RECORD b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs-23.2.0.dist-info/RECORD new file mode 100644 index 0000000..380f3ca --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs-23.2.0.dist-info/RECORD @@ -0,0 +1,36 @@ +attr/__init__.py,sha256=WlXJN6ICB0Y_HZ0lmuTUgia0kuSdn2p67d4N6cYxNZM,3307 +attr/__init__.pyi,sha256=u08EujYHy_rSyebNn-I9Xv2S_cXmtA9xWGc0cBsyl18,16976 +attr/_cmp.py,sha256=OQZlWdFX74z18adGEUp40Ojqm0NNu1Flqnv2JE8B2ng,4025 +attr/_cmp.pyi,sha256=sGQmOM0w3_K4-X8cTXR7g0Hqr290E8PTObA9JQxWQqc,399 +attr/_compat.py,sha256=QmRyxii295wcQfaugWqxuIumAPsNQ2-RUF82QZPqMKw,2540 +attr/_config.py,sha256=z81Vt-GeT_2taxs1XZfmHx9TWlSxjPb6eZH1LTGsS54,843 +attr/_funcs.py,sha256=VBTUFKLklsmqxys3qWSTK_Ac9Z4s0mAJWwgW9nA7Llk,17173 +attr/_make.py,sha256=LnVy2e0HygoqaZknhC19z7JmOt7qGkAadf2LZgWVJWI,101923 +attr/_next_gen.py,sha256=as1voi8siAI_o2OQG8YIiZvmn0G7-S3_j_774rnoZ_g,6203 +attr/_typing_compat.pyi,sha256=XDP54TUn-ZKhD62TOQebmzrwFyomhUCoGRpclb6alRA,469 +attr/_version_info.py,sha256=exSqb3b5E-fMSsgZAlEw9XcLpEgobPORCZpcaEglAM4,2121 +attr/_version_info.pyi,sha256=x_M3L3WuB7r_ULXAWjx959udKQ4HLB8l-hsc1FDGNvk,209 +attr/converters.py,sha256=Kyw5MY0yfnUR_RwN1Vydf0EiE---htDxOgSc_-NYL6A,3622 +attr/converters.pyi,sha256=jKlpHBEt6HVKJvgrMFJRrHq8p61GXg4-Nd5RZWKJX7M,406 +attr/exceptions.py,sha256=HRFq4iybmv7-DcZwyjl6M1euM2YeJVK_hFxuaBGAngI,1977 +attr/exceptions.pyi,sha256=zZq8bCUnKAy9mDtBEw42ZhPhAUIHoTKedDQInJD883M,539 +attr/filters.py,sha256=9pYvXqdg6mtLvKIIb56oALRMoHFnQTcGCO4EXTc1qyM,1470 +attr/filters.pyi,sha256=0mRCjLKxdcvAo0vD-Cr81HfRXXCp9j_cAXjOoAHtPGM,225 +attr/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +attr/setters.py,sha256=pbCZQ-pE6ZxjDqZfWWUhUFefXtpekIU4qS_YDMLPQ50,1400 +attr/setters.pyi,sha256=pyY8TVNBu8TWhOldv_RxHzmGvdgFQH981db70r0fn5I,567 +attr/validators.py,sha256=LGVpbiNg_KGzYrKUD5JPiZkx8TMfynDZGoQoLJNCIMo,19676 +attr/validators.pyi,sha256=167Dl9nt7NUhE9wht1I-buo039qyUT1nEUT_nKjSWr4,2580 +attrs-23.2.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +attrs-23.2.0.dist-info/METADATA,sha256=WwvG7OHyKjEPpyFUZCCYt1n0E_CcqdRb7bliGEdcm-A,9531 +attrs-23.2.0.dist-info/RECORD,, +attrs-23.2.0.dist-info/WHEEL,sha256=mRYSEL3Ih6g5a_CVMIcwiF__0Ae4_gLYh01YFNwiq1k,87 +attrs-23.2.0.dist-info/licenses/LICENSE,sha256=iCEVyV38KvHutnFPjsbVy8q_Znyv-HKfQkINpj9xTp8,1109 +attrs/__init__.py,sha256=9_5waVbFs7rLqtXZ73tNDrxhezyZ8VZeX4BbvQ3EeJw,1039 +attrs/__init__.pyi,sha256=s_ajQ_U14DOsOz0JbmAKDOi46B3v2PcdO0UAV1MY6Ek,2168 +attrs/converters.py,sha256=8kQljrVwfSTRu8INwEk8SI0eGrzmWftsT7rM0EqyohM,76 +attrs/exceptions.py,sha256=ACCCmg19-vDFaDPY9vFl199SPXCQMN_bENs4DALjzms,76 +attrs/filters.py,sha256=VOUMZug9uEU6dUuA0dF1jInUK0PL3fLgP0VBS5d-CDE,73 +attrs/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +attrs/setters.py,sha256=eL1YidYQV3T2h9_SYIZSZR1FAcHGb1TuCTy0E0Lv2SU,73 +attrs/validators.py,sha256=xcy6wD5TtTkdCG1f4XWbocPSO0faBjk5IfVJfP6SUj0,76 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs-23.2.0.dist-info/WHEEL b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs-23.2.0.dist-info/WHEEL new file mode 100644 index 0000000..2860816 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs-23.2.0.dist-info/WHEEL @@ -0,0 +1,4 @@ +Wheel-Version: 1.0 +Generator: hatchling 1.21.0 +Root-Is-Purelib: true +Tag: py3-none-any diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs-23.2.0.dist-info/licenses/LICENSE b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs-23.2.0.dist-info/licenses/LICENSE new file mode 100644 index 0000000..2bd6453 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs-23.2.0.dist-info/licenses/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2015 Hynek Schlawack and the attrs contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs-24.2.0.dist-info/INSTALLER b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs-24.2.0.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs-24.2.0.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs-24.2.0.dist-info/METADATA b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs-24.2.0.dist-info/METADATA new file mode 100644 index 0000000..a85b378 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs-24.2.0.dist-info/METADATA @@ -0,0 +1,242 @@ +Metadata-Version: 2.3 +Name: attrs +Version: 24.2.0 +Summary: Classes Without Boilerplate +Project-URL: Documentation, https://www.attrs.org/ +Project-URL: Changelog, https://www.attrs.org/en/stable/changelog.html +Project-URL: GitHub, https://github.com/python-attrs/attrs +Project-URL: Funding, https://github.com/sponsors/hynek +Project-URL: Tidelift, https://tidelift.com/subscription/pkg/pypi-attrs?utm_source=pypi-attrs&utm_medium=pypi +Author-email: Hynek Schlawack +License-Expression: MIT +License-File: LICENSE +Keywords: attribute,boilerplate,class +Classifier: Development Status :: 5 - Production/Stable +Classifier: License :: OSI Approved :: MIT License +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Typing :: Typed +Requires-Python: >=3.7 +Requires-Dist: importlib-metadata; python_version < '3.8' +Provides-Extra: benchmark +Requires-Dist: cloudpickle; (platform_python_implementation == 'CPython') and extra == 'benchmark' +Requires-Dist: hypothesis; extra == 'benchmark' +Requires-Dist: mypy>=1.11.1; (platform_python_implementation == 'CPython' and python_version >= '3.9') and extra == 'benchmark' +Requires-Dist: pympler; extra == 'benchmark' +Requires-Dist: pytest-codspeed; extra == 'benchmark' +Requires-Dist: pytest-mypy-plugins; (platform_python_implementation == 'CPython' and python_version >= '3.9' and python_version < '3.13') and extra == 'benchmark' +Requires-Dist: pytest-xdist[psutil]; extra == 'benchmark' +Requires-Dist: pytest>=4.3.0; extra == 'benchmark' +Provides-Extra: cov +Requires-Dist: cloudpickle; (platform_python_implementation == 'CPython') and extra == 'cov' +Requires-Dist: coverage[toml]>=5.3; extra == 'cov' +Requires-Dist: hypothesis; extra == 'cov' +Requires-Dist: mypy>=1.11.1; (platform_python_implementation == 'CPython' and python_version >= '3.9') and extra == 'cov' +Requires-Dist: pympler; extra == 'cov' +Requires-Dist: pytest-mypy-plugins; (platform_python_implementation == 'CPython' and python_version >= '3.9' and python_version < '3.13') and extra == 'cov' +Requires-Dist: pytest-xdist[psutil]; extra == 'cov' +Requires-Dist: pytest>=4.3.0; extra == 'cov' +Provides-Extra: dev +Requires-Dist: cloudpickle; (platform_python_implementation == 'CPython') and extra == 'dev' +Requires-Dist: hypothesis; extra == 'dev' +Requires-Dist: mypy>=1.11.1; (platform_python_implementation == 'CPython' and python_version >= '3.9') and extra == 'dev' +Requires-Dist: pre-commit; extra == 'dev' +Requires-Dist: pympler; extra == 'dev' +Requires-Dist: pytest-mypy-plugins; (platform_python_implementation == 'CPython' and python_version >= '3.9' and python_version < '3.13') and extra == 'dev' +Requires-Dist: pytest-xdist[psutil]; extra == 'dev' +Requires-Dist: pytest>=4.3.0; extra == 'dev' +Provides-Extra: docs +Requires-Dist: cogapp; extra == 'docs' +Requires-Dist: furo; extra == 'docs' +Requires-Dist: myst-parser; extra == 'docs' +Requires-Dist: sphinx; extra == 'docs' +Requires-Dist: sphinx-notfound-page; extra == 'docs' +Requires-Dist: sphinxcontrib-towncrier; extra == 'docs' +Requires-Dist: towncrier<24.7; extra == 'docs' +Provides-Extra: tests +Requires-Dist: cloudpickle; (platform_python_implementation == 'CPython') and extra == 'tests' +Requires-Dist: hypothesis; extra == 'tests' +Requires-Dist: mypy>=1.11.1; (platform_python_implementation == 'CPython' and python_version >= '3.9') and extra == 'tests' +Requires-Dist: pympler; extra == 'tests' +Requires-Dist: pytest-mypy-plugins; (platform_python_implementation == 'CPython' and python_version >= '3.9' and python_version < '3.13') and extra == 'tests' +Requires-Dist: pytest-xdist[psutil]; extra == 'tests' +Requires-Dist: pytest>=4.3.0; extra == 'tests' +Provides-Extra: tests-mypy +Requires-Dist: mypy>=1.11.1; (platform_python_implementation == 'CPython' and python_version >= '3.9') and extra == 'tests-mypy' +Requires-Dist: pytest-mypy-plugins; (platform_python_implementation == 'CPython' and python_version >= '3.9' and python_version < '3.13') and extra == 'tests-mypy' +Description-Content-Type: text/markdown + +

      + + attrs + +

      + + +*attrs* is the Python package that will bring back the **joy** of **writing classes** by relieving you from the drudgery of implementing object protocols (aka [dunder methods](https://www.attrs.org/en/latest/glossary.html#term-dunder-methods)). +[Trusted by NASA](https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/personalizing-your-profile#list-of-qualifying-repositories-for-mars-2020-helicopter-contributor-achievement) for Mars missions since 2020! + +Its main goal is to help you to write **concise** and **correct** software without slowing down your code. + + +## Sponsors + +*attrs* would not be possible without our [amazing sponsors](https://github.com/sponsors/hynek). +Especially those generously supporting us at the *The Organization* tier and higher: + + + +

      + + + + + + + + +

      + + + +

      + Please consider joining them to help make attrs’s maintenance more sustainable! +

      + + + +## Example + +*attrs* gives you a class decorator and a way to declaratively define the attributes on that class: + + + +```pycon +>>> from attrs import asdict, define, make_class, Factory + +>>> @define +... class SomeClass: +... a_number: int = 42 +... list_of_numbers: list[int] = Factory(list) +... +... def hard_math(self, another_number): +... return self.a_number + sum(self.list_of_numbers) * another_number + + +>>> sc = SomeClass(1, [1, 2, 3]) +>>> sc +SomeClass(a_number=1, list_of_numbers=[1, 2, 3]) + +>>> sc.hard_math(3) +19 +>>> sc == SomeClass(1, [1, 2, 3]) +True +>>> sc != SomeClass(2, [3, 2, 1]) +True + +>>> asdict(sc) +{'a_number': 1, 'list_of_numbers': [1, 2, 3]} + +>>> SomeClass() +SomeClass(a_number=42, list_of_numbers=[]) + +>>> C = make_class("C", ["a", "b"]) +>>> C("foo", "bar") +C(a='foo', b='bar') +``` + +After *declaring* your attributes, *attrs* gives you: + +- a concise and explicit overview of the class's attributes, +- a nice human-readable `__repr__`, +- equality-checking methods, +- an initializer, +- and much more, + +*without* writing dull boilerplate code again and again and *without* runtime performance penalties. + +--- + +This example uses *attrs*'s modern APIs that have been introduced in version 20.1.0, and the *attrs* package import name that has been added in version 21.3.0. +The classic APIs (`@attr.s`, `attr.ib`, plus their serious-business aliases) and the `attr` package import name will remain **indefinitely**. + +Check out [*On The Core API Names*](https://www.attrs.org/en/latest/names.html) for an in-depth explanation! + + +### Hate Type Annotations!? + +No problem! +Types are entirely **optional** with *attrs*. +Simply assign `attrs.field()` to the attributes instead of annotating them with types: + +```python +from attrs import define, field + +@define +class SomeClass: + a_number = field(default=42) + list_of_numbers = field(factory=list) +``` + + +## Data Classes + +On the tin, *attrs* might remind you of `dataclasses` (and indeed, `dataclasses` [are a descendant](https://hynek.me/articles/import-attrs/) of *attrs*). +In practice it does a lot more and is more flexible. +For instance, it allows you to define [special handling of NumPy arrays for equality checks](https://www.attrs.org/en/stable/comparison.html#customization), allows more ways to [plug into the initialization process](https://www.attrs.org/en/stable/init.html#hooking-yourself-into-initialization), has a replacement for `__init_subclass__`, and allows for stepping through the generated methods using a debugger. + +For more details, please refer to our [comparison page](https://www.attrs.org/en/stable/why.html#data-classes), but generally speaking, we are more likely to commit crimes against nature to make things work that one would expect to work, but that are quite complicated in practice. + + +## Project Information + +- [**Changelog**](https://www.attrs.org/en/stable/changelog.html) +- [**Documentation**](https://www.attrs.org/) +- [**PyPI**](https://pypi.org/project/attrs/) +- [**Source Code**](https://github.com/python-attrs/attrs) +- [**Contributing**](https://github.com/python-attrs/attrs/blob/main/.github/CONTRIBUTING.md) +- [**Third-party Extensions**](https://github.com/python-attrs/attrs/wiki/Extensions-to-attrs) +- **Get Help**: use the `python-attrs` tag on [Stack Overflow](https://stackoverflow.com/questions/tagged/python-attrs) + + +### *attrs* for Enterprise + +Available as part of the Tidelift Subscription. + +The maintainers of *attrs* and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source packages you use to build your applications. +Save time, reduce risk, and improve code health, while paying the maintainers of the exact packages you use. +[Learn more](https://tidelift.com/?utm_source=lifter&utm_medium=referral&utm_campaign=hynek). + +## Release Information + +### Deprecations + +- Given the amount of warnings raised in the broader ecosystem, we've decided to only soft-deprecate the *hash* argument to `@define` / `@attr.s`. + Please don't use it in new code, but we don't intend to remove it anymore. + [#1330](https://github.com/python-attrs/attrs/issues/1330) + + +### Changes + +- `attrs.converters.pipe()` (and its syntactic sugar of passing a list for `attrs.field()`'s / `attr.ib()`'s *converter* argument) works again when passing `attrs.setters.convert` to *on_setattr* (which is default for `attrs.define`). + [#1328](https://github.com/python-attrs/attrs/issues/1328) +- Restored support for PEP [649](https://peps.python.org/pep-0649/) / [749](https://peps.python.org/pep-0749/)-implementing Pythons -- currently 3.14-dev. + [#1329](https://github.com/python-attrs/attrs/issues/1329) + + + +--- + +[Full changelog →](https://www.attrs.org/en/stable/changelog.html) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs-24.2.0.dist-info/RECORD b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs-24.2.0.dist-info/RECORD new file mode 100644 index 0000000..78e8241 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs-24.2.0.dist-info/RECORD @@ -0,0 +1,36 @@ +attr/__init__.py,sha256=l8Ewh5KZE7CCY0i1iDfSCnFiUTIkBVoqsXjX9EZnIVA,2087 +attr/__init__.pyi,sha256=aTVHBPX6krCGvbQvOl_UKqEzmi2HFsaIVm2WKmAiqVs,11434 +attr/_cmp.py,sha256=3umHiBtgsEYtvNP_8XrQwTCdFoZIX4DEur76N-2a3X8,4123 +attr/_cmp.pyi,sha256=U-_RU_UZOyPUEQzXE6RMYQQcjkZRY25wTH99sN0s7MM,368 +attr/_compat.py,sha256=n2Uk3c-ywv0PkFfGlvqR7SzDXp4NOhWmNV_ZK6YfWoM,2958 +attr/_config.py,sha256=z81Vt-GeT_2taxs1XZfmHx9TWlSxjPb6eZH1LTGsS54,843 +attr/_funcs.py,sha256=SGDmNlED1TM3tgO9Ap2mfRfVI24XEAcrNQs7o2eBXHQ,17386 +attr/_make.py,sha256=BjENJz5eJoojJVbCoupWjXLLEZJ7VID89lisLbQUlmQ,91479 +attr/_next_gen.py,sha256=dhGb96VFg4kXBkS9Zdz1A2uxVJ99q_RT1hw3kLA9-uI,24630 +attr/_typing_compat.pyi,sha256=XDP54TUn-ZKhD62TOQebmzrwFyomhUCoGRpclb6alRA,469 +attr/_version_info.py,sha256=exSqb3b5E-fMSsgZAlEw9XcLpEgobPORCZpcaEglAM4,2121 +attr/_version_info.pyi,sha256=x_M3L3WuB7r_ULXAWjx959udKQ4HLB8l-hsc1FDGNvk,209 +attr/converters.py,sha256=vNa58pZi9V6uxBzl4t1QrHbQfkT4iRFAodyXe7lcgg0,3506 +attr/converters.pyi,sha256=mpDoVFO3Cpx8xYSSV0iZFl7IAHuoNBglxKfxHvLj_sY,410 +attr/exceptions.py,sha256=HRFq4iybmv7-DcZwyjl6M1euM2YeJVK_hFxuaBGAngI,1977 +attr/exceptions.pyi,sha256=zZq8bCUnKAy9mDtBEw42ZhPhAUIHoTKedDQInJD883M,539 +attr/filters.py,sha256=ZBiKWLp3R0LfCZsq7X11pn9WX8NslS2wXM4jsnLOGc8,1795 +attr/filters.pyi,sha256=3J5BG-dTxltBk1_-RuNRUHrv2qu1v8v4aDNAQ7_mifA,208 +attr/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +attr/setters.py,sha256=faMQeiBo_nbXYnPaQ1pq8PXeA7Zr-uNsVsPMiKCmxhc,1619 +attr/setters.pyi,sha256=NnVkaFU1BB4JB8E4JuXyrzTUgvtMpj8p3wBdJY7uix4,584 +attr/validators.py,sha256=985eTP6RHyon61YEauMJgyNy1rEOhJWiSXMJgRxPtrQ,20045 +attr/validators.pyi,sha256=LjKf7AoXZfvGSfT3LRs61Qfln94konYyMUPoJJjOxK4,2502 +attrs-24.2.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +attrs-24.2.0.dist-info/METADATA,sha256=3Jgk4lr9Y1SAqAcwOLPN_mpW0wc6VOGm-yHt1LsPIHw,11524 +attrs-24.2.0.dist-info/RECORD,, +attrs-24.2.0.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87 +attrs-24.2.0.dist-info/licenses/LICENSE,sha256=iCEVyV38KvHutnFPjsbVy8q_Znyv-HKfQkINpj9xTp8,1109 +attrs/__init__.py,sha256=5FHo-EMFOX-g4ialSK4fwOjuoHzLISJDZCwoOl02Ty8,1071 +attrs/__init__.pyi,sha256=o3l92VsD9kHz8sldEtb_tllBTs3TeL-vIBMTxo2Zc_4,7703 +attrs/converters.py,sha256=8kQljrVwfSTRu8INwEk8SI0eGrzmWftsT7rM0EqyohM,76 +attrs/exceptions.py,sha256=ACCCmg19-vDFaDPY9vFl199SPXCQMN_bENs4DALjzms,76 +attrs/filters.py,sha256=VOUMZug9uEU6dUuA0dF1jInUK0PL3fLgP0VBS5d-CDE,73 +attrs/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +attrs/setters.py,sha256=eL1YidYQV3T2h9_SYIZSZR1FAcHGb1TuCTy0E0Lv2SU,73 +attrs/validators.py,sha256=xcy6wD5TtTkdCG1f4XWbocPSO0faBjk5IfVJfP6SUj0,76 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs-24.2.0.dist-info/WHEEL b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs-24.2.0.dist-info/WHEEL new file mode 100644 index 0000000..cdd68a4 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs-24.2.0.dist-info/WHEEL @@ -0,0 +1,4 @@ +Wheel-Version: 1.0 +Generator: hatchling 1.25.0 +Root-Is-Purelib: true +Tag: py3-none-any diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs-24.2.0.dist-info/licenses/LICENSE b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs-24.2.0.dist-info/licenses/LICENSE new file mode 100644 index 0000000..2bd6453 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs-24.2.0.dist-info/licenses/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2015 Hynek Schlawack and the attrs contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs/__init__.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs/__init__.py new file mode 100644 index 0000000..963b197 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs/__init__.py @@ -0,0 +1,67 @@ +# SPDX-License-Identifier: MIT + +from attr import ( + NOTHING, + Attribute, + AttrsInstance, + Converter, + Factory, + _make_getattr, + assoc, + cmp_using, + define, + evolve, + field, + fields, + fields_dict, + frozen, + has, + make_class, + mutable, + resolve_types, + validate, +) +from attr._next_gen import asdict, astuple + +from . import converters, exceptions, filters, setters, validators + + +__all__ = [ + "__author__", + "__copyright__", + "__description__", + "__doc__", + "__email__", + "__license__", + "__title__", + "__url__", + "__version__", + "__version_info__", + "asdict", + "assoc", + "astuple", + "Attribute", + "AttrsInstance", + "cmp_using", + "Converter", + "converters", + "define", + "evolve", + "exceptions", + "Factory", + "field", + "fields_dict", + "fields", + "filters", + "frozen", + "has", + "make_class", + "mutable", + "NOTHING", + "resolve_types", + "setters", + "validate", + "validators", +] + +__getattr__ = _make_getattr(__name__) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs/__init__.pyi b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs/__init__.pyi new file mode 100644 index 0000000..b2670de --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs/__init__.pyi @@ -0,0 +1,252 @@ +import sys + +from typing import ( + Any, + Callable, + Mapping, + Sequence, + overload, + TypeVar, +) + +# Because we need to type our own stuff, we have to make everything from +# attr explicitly public too. +from attr import __author__ as __author__ +from attr import __copyright__ as __copyright__ +from attr import __description__ as __description__ +from attr import __email__ as __email__ +from attr import __license__ as __license__ +from attr import __title__ as __title__ +from attr import __url__ as __url__ +from attr import __version__ as __version__ +from attr import __version_info__ as __version_info__ +from attr import assoc as assoc +from attr import Attribute as Attribute +from attr import AttrsInstance as AttrsInstance +from attr import cmp_using as cmp_using +from attr import converters as converters +from attr import Converter as Converter +from attr import evolve as evolve +from attr import exceptions as exceptions +from attr import Factory as Factory +from attr import fields as fields +from attr import fields_dict as fields_dict +from attr import filters as filters +from attr import has as has +from attr import make_class as make_class +from attr import NOTHING as NOTHING +from attr import resolve_types as resolve_types +from attr import setters as setters +from attr import validate as validate +from attr import validators as validators +from attr import attrib, asdict as asdict, astuple as astuple + +if sys.version_info >= (3, 11): + from typing import dataclass_transform +else: + from typing_extensions import dataclass_transform + +_T = TypeVar("_T") +_C = TypeVar("_C", bound=type) + +_EqOrderType = bool | Callable[[Any], Any] +_ValidatorType = Callable[[Any, "Attribute[_T]", _T], Any] +_ConverterType = Callable[[Any], Any] +_ReprType = Callable[[Any], str] +_ReprArgType = bool | _ReprType +_OnSetAttrType = Callable[[Any, "Attribute[Any]", Any], Any] +_OnSetAttrArgType = _OnSetAttrType | list[_OnSetAttrType] | setters._NoOpType +_FieldTransformer = Callable[ + [type, list["Attribute[Any]"]], list["Attribute[Any]"] +] +# FIXME: in reality, if multiple validators are passed they must be in a list +# or tuple, but those are invariant and so would prevent subtypes of +# _ValidatorType from working when passed in a list or tuple. +_ValidatorArgType = _ValidatorType[_T] | Sequence[_ValidatorType[_T]] + +@overload +def field( + *, + default: None = ..., + validator: None = ..., + repr: _ReprArgType = ..., + hash: bool | None = ..., + init: bool = ..., + metadata: Mapping[Any, Any] | None = ..., + converter: None = ..., + factory: None = ..., + kw_only: bool = ..., + eq: bool | None = ..., + order: bool | None = ..., + on_setattr: _OnSetAttrArgType | None = ..., + alias: str | None = ..., + type: type | None = ..., +) -> Any: ... + +# This form catches an explicit None or no default and infers the type from the +# other arguments. +@overload +def field( + *, + default: None = ..., + validator: _ValidatorArgType[_T] | None = ..., + repr: _ReprArgType = ..., + hash: bool | None = ..., + init: bool = ..., + metadata: Mapping[Any, Any] | None = ..., + converter: _ConverterType | Converter[Any, _T] | None = ..., + factory: Callable[[], _T] | None = ..., + kw_only: bool = ..., + eq: _EqOrderType | None = ..., + order: _EqOrderType | None = ..., + on_setattr: _OnSetAttrArgType | None = ..., + alias: str | None = ..., + type: type | None = ..., +) -> _T: ... + +# This form catches an explicit default argument. +@overload +def field( + *, + default: _T, + validator: _ValidatorArgType[_T] | None = ..., + repr: _ReprArgType = ..., + hash: bool | None = ..., + init: bool = ..., + metadata: Mapping[Any, Any] | None = ..., + converter: _ConverterType | Converter[Any, _T] | None = ..., + factory: Callable[[], _T] | None = ..., + kw_only: bool = ..., + eq: _EqOrderType | None = ..., + order: _EqOrderType | None = ..., + on_setattr: _OnSetAttrArgType | None = ..., + alias: str | None = ..., + type: type | None = ..., +) -> _T: ... + +# This form covers type=non-Type: e.g. forward references (str), Any +@overload +def field( + *, + default: _T | None = ..., + validator: _ValidatorArgType[_T] | None = ..., + repr: _ReprArgType = ..., + hash: bool | None = ..., + init: bool = ..., + metadata: Mapping[Any, Any] | None = ..., + converter: _ConverterType | Converter[Any, _T] | None = ..., + factory: Callable[[], _T] | None = ..., + kw_only: bool = ..., + eq: _EqOrderType | None = ..., + order: _EqOrderType | None = ..., + on_setattr: _OnSetAttrArgType | None = ..., + alias: str | None = ..., + type: type | None = ..., +) -> Any: ... +@overload +@dataclass_transform(field_specifiers=(attrib, field)) +def define( + maybe_cls: _C, + *, + these: dict[str, Any] | None = ..., + repr: bool = ..., + unsafe_hash: bool | None = ..., + hash: bool | None = ..., + init: bool = ..., + slots: bool = ..., + frozen: bool = ..., + weakref_slot: bool = ..., + str: bool = ..., + auto_attribs: bool = ..., + kw_only: bool = ..., + cache_hash: bool = ..., + auto_exc: bool = ..., + eq: bool | None = ..., + order: bool | None = ..., + auto_detect: bool = ..., + getstate_setstate: bool | None = ..., + on_setattr: _OnSetAttrArgType | None = ..., + field_transformer: _FieldTransformer | None = ..., + match_args: bool = ..., +) -> _C: ... +@overload +@dataclass_transform(field_specifiers=(attrib, field)) +def define( + maybe_cls: None = ..., + *, + these: dict[str, Any] | None = ..., + repr: bool = ..., + unsafe_hash: bool | None = ..., + hash: bool | None = ..., + init: bool = ..., + slots: bool = ..., + frozen: bool = ..., + weakref_slot: bool = ..., + str: bool = ..., + auto_attribs: bool = ..., + kw_only: bool = ..., + cache_hash: bool = ..., + auto_exc: bool = ..., + eq: bool | None = ..., + order: bool | None = ..., + auto_detect: bool = ..., + getstate_setstate: bool | None = ..., + on_setattr: _OnSetAttrArgType | None = ..., + field_transformer: _FieldTransformer | None = ..., + match_args: bool = ..., +) -> Callable[[_C], _C]: ... + +mutable = define + +@overload +@dataclass_transform(frozen_default=True, field_specifiers=(attrib, field)) +def frozen( + maybe_cls: _C, + *, + these: dict[str, Any] | None = ..., + repr: bool = ..., + unsafe_hash: bool | None = ..., + hash: bool | None = ..., + init: bool = ..., + slots: bool = ..., + frozen: bool = ..., + weakref_slot: bool = ..., + str: bool = ..., + auto_attribs: bool = ..., + kw_only: bool = ..., + cache_hash: bool = ..., + auto_exc: bool = ..., + eq: bool | None = ..., + order: bool | None = ..., + auto_detect: bool = ..., + getstate_setstate: bool | None = ..., + on_setattr: _OnSetAttrArgType | None = ..., + field_transformer: _FieldTransformer | None = ..., + match_args: bool = ..., +) -> _C: ... +@overload +@dataclass_transform(frozen_default=True, field_specifiers=(attrib, field)) +def frozen( + maybe_cls: None = ..., + *, + these: dict[str, Any] | None = ..., + repr: bool = ..., + unsafe_hash: bool | None = ..., + hash: bool | None = ..., + init: bool = ..., + slots: bool = ..., + frozen: bool = ..., + weakref_slot: bool = ..., + str: bool = ..., + auto_attribs: bool = ..., + kw_only: bool = ..., + cache_hash: bool = ..., + auto_exc: bool = ..., + eq: bool | None = ..., + order: bool | None = ..., + auto_detect: bool = ..., + getstate_setstate: bool | None = ..., + on_setattr: _OnSetAttrArgType | None = ..., + field_transformer: _FieldTransformer | None = ..., + match_args: bool = ..., +) -> Callable[[_C], _C]: ... diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs/converters.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs/converters.py new file mode 100644 index 0000000..7821f6c --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs/converters.py @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: MIT + +from attr.converters import * # noqa: F403 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs/exceptions.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs/exceptions.py new file mode 100644 index 0000000..3323f9d --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs/exceptions.py @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: MIT + +from attr.exceptions import * # noqa: F403 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs/filters.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs/filters.py new file mode 100644 index 0000000..3080f48 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs/filters.py @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: MIT + +from attr.filters import * # noqa: F403 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs/py.typed b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs/py.typed new file mode 100644 index 0000000..e69de29 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs/setters.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs/setters.py new file mode 100644 index 0000000..f3d73bb --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs/setters.py @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: MIT + +from attr.setters import * # noqa: F403 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs/validators.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs/validators.py new file mode 100644 index 0000000..037e124 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/attrs/validators.py @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: MIT + +from attr.validators import * # noqa: F403 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/bin/json b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/bin/json new file mode 100755 index 0000000..05b9023 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/bin/json @@ -0,0 +1,8 @@ +#!/venv/bin/python3.7 +# -*- coding: utf-8 -*- +import re +import sys +from jsonspec.cli import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/bin/jsonpath.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/bin/jsonpath.py new file mode 100755 index 0000000..1309e42 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/bin/jsonpath.py @@ -0,0 +1,8 @@ +#!/venv/bin/python3.7 +# -*- coding: utf-8 -*- +import re +import sys +from jsonpath_rw.bin.jsonpath import entry_point +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(entry_point()) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/bin/jsonpath_ng b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/bin/jsonpath_ng new file mode 100755 index 0000000..1018af1 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/bin/jsonpath_ng @@ -0,0 +1,8 @@ +#!/venv/bin/python3.7 +# -*- coding: utf-8 -*- +import re +import sys +from jsonpath_ng.bin.jsonpath import entry_point +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(entry_point()) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/bin/jsonschema b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/bin/jsonschema new file mode 100755 index 0000000..b928c7a --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/bin/jsonschema @@ -0,0 +1,8 @@ +#!/venv/bin/python3.7 +# -*- coding: utf-8 -*- +import re +import sys +from jsonschema.cli import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/bin/mako-render b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/bin/mako-render new file mode 100755 index 0000000..8696909 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/bin/mako-render @@ -0,0 +1,8 @@ +#!/venv/bin/python3.7 +# -*- coding: utf-8 -*- +import re +import sys +from mako.cmd import cmdline +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(cmdline()) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/bin/normalizer b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/bin/normalizer new file mode 100755 index 0000000..061396b --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/bin/normalizer @@ -0,0 +1,8 @@ +#!/venv/bin/python3.7 +# -*- coding: utf-8 -*- +import re +import sys +from charset_normalizer.cli.normalizer import cli_detect +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(cli_detect()) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/bin/pygrun b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/bin/pygrun new file mode 100644 index 0000000..f9c6025 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/bin/pygrun @@ -0,0 +1,164 @@ +#!C:\Users\RomainGuignard\AppData\Local\Programs\Python\Python37\python.exe +__author__ = 'jszheng' +import optparse +import sys +import os +import importlib +from antlr4 import * + + +# this is a python version of TestRig +def beautify_lisp_string(in_string): + indent_size = 3 + add_indent = ' '*indent_size + out_string = in_string[0] # no indent for 1st ( + indent = '' + for i in range(1, len(in_string)): + if in_string[i] == '(' and in_string[i+1] != ' ': + indent += add_indent + out_string += "\n" + indent + '(' + elif in_string[i] == ')': + out_string += ')' + if len(indent) > 0: + indent = indent.replace(add_indent, '', 1) + else: + out_string += in_string[i] + return out_string + + +if __name__ == '__main__': + + ############################################################# + # parse options + # not support -gui -encoding -ps + ############################################################# + usage = "Usage: %prog [options] Grammar_Name Start_Rule" + parser = optparse.OptionParser(usage=usage) + # parser.add_option('-t', '--tree', + # dest="out_file", + # default="default.out", + # help='set output file name', + # ) + parser.add_option('-t', '--tree', + default=False, + action='store_true', + help='Print AST tree' + ) + parser.add_option('-k', '--tokens', + dest="token", + default=False, + action='store_true', + help='Show Tokens' + ) + parser.add_option('-s', '--sll', + dest="sll", + default=False, + action='store_true', + help='Show SLL' + ) + parser.add_option('-d', '--diagnostics', + dest="diagnostics", + default=False, + action='store_true', + help='Enable diagnostics error listener' + ) + parser.add_option('-a', '--trace', + dest="trace", + default=False, + action='store_true', + help='Enable Trace' + ) + + options, remainder = parser.parse_args() + if len(remainder) < 2: + print('ERROR: You have to provide at least 2 arguments!') + parser.print_help() + exit(1) + else: + grammar = remainder.pop(0) + start_rule = remainder.pop(0) + file_list = remainder + + ############################################################# + # check and load antlr generated files + ############################################################# + # dynamic load the module and class + lexerName = grammar + 'Lexer' + parserName = grammar + 'Parser' + # check if the generate file exist + lexer_file = lexerName + '.py' + parser_file = parserName + '.py' + if not os.path.exists(lexer_file): + print("[ERROR] Can't find lexer file {}!".format(lexer_file)) + print(os.path.realpath('.')) + exit(1) + if not os.path.exists(parser_file): + print("[ERROR] Can't find parser file {}!".format(lexer_file)) + print(os.path.realpath('.')) + exit(1) + + # current directory is where the generated file loaded + # the script might be in different place. + sys.path.append('.') + # print(sys.path) + + # print("Load Lexer {}".format(lexerName)) + module_lexer = __import__(lexerName, globals(), locals(), lexerName) + class_lexer = getattr(module_lexer, lexerName) + # print(class_lexer) + + # print("Load Parser {}".format(parserName)) + module_parser = __import__(parserName, globals(), locals(), parserName) + class_parser = getattr(module_parser, parserName) + # print(class_parser) + + ############################################################# + # main process steps. + ############################################################# + def process(input_stream, class_lexer, class_parser): + lexer = class_lexer(input_stream) + token_stream = CommonTokenStream(lexer) + token_stream.fill() + if options.token: # need to show token + for tok in token_stream.tokens: + print(tok) + if start_rule == 'tokens': + return + + parser = class_parser(token_stream) + + if options.diagnostics: + parser.addErrorListener(DiagnosticErrorListener()) + parser._interp.predictionMode = PredictionMode.LL_EXACT_AMBIG_DETECTION + if options.tree: + parser.buildParseTrees = True + if options.sll: + parser._interp.predictionMode = PredictionMode.SLL + #parser.setTokenStream(token_stream) + parser.setTrace(options.trace) + if hasattr(parser, start_rule): + func_start_rule = getattr(parser, start_rule) + parser_ret = func_start_rule() + if options.tree: + lisp_tree_str = parser_ret.toStringTree(recog=parser) + print(beautify_lisp_string(lisp_tree_str)) + else: + print("[ERROR] Can't find start rule '{}' in parser '{}'".format(start_rule, parserName)) + + ############################################################# + # use stdin if not provide file as input stream + ############################################################# + if len(file_list) == 0: + input_stream = InputStream(sys.stdin.read()) + process(input_stream, class_lexer, class_parser) + exit(0) + + ############################################################# + # iterate all input file + ############################################################# + for file_name in file_list: + if os.path.exists(file_name) and os.path.isfile(file_name): + input_stream = FileStream(file_name) + process(input_stream, class_lexer, class_parser) + else: + print("[ERROR] file {} not exist".format(os.path.normpath(file_name))) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/bin/validate-patterns.exe b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/bin/validate-patterns.exe new file mode 100644 index 0000000..c7b4a08 Binary files /dev/null and b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/bin/validate-patterns.exe differ diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2024.12.14.dist-info/INSTALLER b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2024.12.14.dist-info/INSTALLER new file mode 100755 index 0000000..a1b589e --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2024.12.14.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2024.12.14.dist-info/LICENSE b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2024.12.14.dist-info/LICENSE new file mode 100755 index 0000000..62b076c --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2024.12.14.dist-info/LICENSE @@ -0,0 +1,20 @@ +This package contains a modified version of ca-bundle.crt: + +ca-bundle.crt -- Bundle of CA Root Certificates + +This is a bundle of X.509 certificates of public Certificate Authorities +(CA). These were automatically extracted from Mozilla's root certificates +file (certdata.txt). This file can be found in the mozilla source tree: +https://hg.mozilla.org/mozilla-central/file/tip/security/nss/lib/ckfw/builtins/certdata.txt +It contains the certificates in PEM format and therefore +can be directly used with curl / libcurl / php_curl, or with +an Apache+mod_ssl webserver for SSL client authentication. +Just configure this file as the SSLCACertificateFile.# + +***** BEGIN LICENSE BLOCK ***** +This Source Code Form is subject to the terms of the Mozilla Public License, +v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain +one at http://mozilla.org/MPL/2.0/. + +***** END LICENSE BLOCK ***** +@(#) $RCSfile: certdata.txt,v $ $Revision: 1.80 $ $Date: 2011/11/03 15:11:58 $ diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2024.12.14.dist-info/METADATA b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2024.12.14.dist-info/METADATA new file mode 100755 index 0000000..c480986 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2024.12.14.dist-info/METADATA @@ -0,0 +1,68 @@ +Metadata-Version: 2.1 +Name: certifi +Version: 2024.12.14 +Summary: Python package for providing Mozilla's CA Bundle. +Home-page: https://github.com/certifi/python-certifi +Author: Kenneth Reitz +Author-email: me@kennethreitz.com +License: MPL-2.0 +Project-URL: Source, https://github.com/certifi/python-certifi +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0) +Classifier: Natural Language :: English +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Requires-Python: >=3.6 +License-File: LICENSE + +Certifi: Python SSL Certificates +================================ + +Certifi provides Mozilla's carefully curated collection of Root Certificates for +validating the trustworthiness of SSL certificates while verifying the identity +of TLS hosts. It has been extracted from the `Requests`_ project. + +Installation +------------ + +``certifi`` is available on PyPI. Simply install it with ``pip``:: + + $ pip install certifi + +Usage +----- + +To reference the installed certificate authority (CA) bundle, you can use the +built-in function:: + + >>> import certifi + + >>> certifi.where() + '/usr/local/lib/python3.7/site-packages/certifi/cacert.pem' + +Or from the command line:: + + $ python -m certifi + /usr/local/lib/python3.7/site-packages/certifi/cacert.pem + +Enjoy! + +.. _`Requests`: https://requests.readthedocs.io/en/master/ + +Addition/Removal of Certificates +-------------------------------- + +Certifi does not support any addition/removal or other modification of the +CA trust store content. This project is intended to provide a reliable and +highly portable root of trust to python deployments. Look to upstream projects +for methods to use alternate trust. diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2024.12.14.dist-info/RECORD b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2024.12.14.dist-info/RECORD new file mode 100755 index 0000000..c493114 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2024.12.14.dist-info/RECORD @@ -0,0 +1,11 @@ +certifi-2024.12.14.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +certifi-2024.12.14.dist-info/LICENSE,sha256=6TcW2mucDVpKHfYP5pWzcPBpVgPSH2-D8FPkLPwQyvc,989 +certifi-2024.12.14.dist-info/METADATA,sha256=z71eRGTFszr4qsHenZ_vG2Fd5bV9PBWmJgShthc8IkY,2274 +certifi-2024.12.14.dist-info/RECORD,, +certifi-2024.12.14.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91 +certifi-2024.12.14.dist-info/top_level.txt,sha256=KMu4vUCfsjLrkPbSNdgdekS-pVJzBAJFO__nI8NF6-U,8 +certifi/__init__.py,sha256=LqjNcwt1sYSS3uhPXrf6jJzVCuHtNVpuirg5rb7mVm8,94 +certifi/__main__.py,sha256=xBBoj905TUWBLRGANOcf7oi6e-3dMP4cEoG9OyMs11g,243 +certifi/cacert.pem,sha256=gHiXJU84Oif0XkT0llbzeKurIUHt5DpK08JCCll90j8,294769 +certifi/core.py,sha256=qRDDFyXVJwTB_EmoGppaXU_R9qCZvhl-EzxPMuV3nTA,4426 +certifi/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2024.12.14.dist-info/WHEEL b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2024.12.14.dist-info/WHEEL new file mode 100755 index 0000000..ae527e7 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2024.12.14.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: setuptools (75.6.0) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2024.12.14.dist-info/top_level.txt b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2024.12.14.dist-info/top_level.txt new file mode 100755 index 0000000..963eac5 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2024.12.14.dist-info/top_level.txt @@ -0,0 +1 @@ +certifi diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2024.2.2.dist-info/INSTALLER b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2024.2.2.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2024.2.2.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2024.2.2.dist-info/LICENSE b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2024.2.2.dist-info/LICENSE new file mode 100644 index 0000000..62b076c --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2024.2.2.dist-info/LICENSE @@ -0,0 +1,20 @@ +This package contains a modified version of ca-bundle.crt: + +ca-bundle.crt -- Bundle of CA Root Certificates + +This is a bundle of X.509 certificates of public Certificate Authorities +(CA). These were automatically extracted from Mozilla's root certificates +file (certdata.txt). This file can be found in the mozilla source tree: +https://hg.mozilla.org/mozilla-central/file/tip/security/nss/lib/ckfw/builtins/certdata.txt +It contains the certificates in PEM format and therefore +can be directly used with curl / libcurl / php_curl, or with +an Apache+mod_ssl webserver for SSL client authentication. +Just configure this file as the SSLCACertificateFile.# + +***** BEGIN LICENSE BLOCK ***** +This Source Code Form is subject to the terms of the Mozilla Public License, +v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain +one at http://mozilla.org/MPL/2.0/. + +***** END LICENSE BLOCK ***** +@(#) $RCSfile: certdata.txt,v $ $Revision: 1.80 $ $Date: 2011/11/03 15:11:58 $ diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2024.2.2.dist-info/METADATA b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2024.2.2.dist-info/METADATA new file mode 100644 index 0000000..c688a62 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2024.2.2.dist-info/METADATA @@ -0,0 +1,66 @@ +Metadata-Version: 2.1 +Name: certifi +Version: 2024.2.2 +Summary: Python package for providing Mozilla's CA Bundle. +Home-page: https://github.com/certifi/python-certifi +Author: Kenneth Reitz +Author-email: me@kennethreitz.com +License: MPL-2.0 +Project-URL: Source, https://github.com/certifi/python-certifi +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0) +Classifier: Natural Language :: English +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Requires-Python: >=3.6 +License-File: LICENSE + +Certifi: Python SSL Certificates +================================ + +Certifi provides Mozilla's carefully curated collection of Root Certificates for +validating the trustworthiness of SSL certificates while verifying the identity +of TLS hosts. It has been extracted from the `Requests`_ project. + +Installation +------------ + +``certifi`` is available on PyPI. Simply install it with ``pip``:: + + $ pip install certifi + +Usage +----- + +To reference the installed certificate authority (CA) bundle, you can use the +built-in function:: + + >>> import certifi + + >>> certifi.where() + '/usr/local/lib/python3.7/site-packages/certifi/cacert.pem' + +Or from the command line:: + + $ python -m certifi + /usr/local/lib/python3.7/site-packages/certifi/cacert.pem + +Enjoy! + +.. _`Requests`: https://requests.readthedocs.io/en/master/ + +Addition/Removal of Certificates +-------------------------------- + +Certifi does not support any addition/removal or other modification of the +CA trust store content. This project is intended to provide a reliable and +highly portable root of trust to python deployments. Look to upstream projects +for methods to use alternate trust. diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2024.2.2.dist-info/RECORD b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2024.2.2.dist-info/RECORD new file mode 100644 index 0000000..490aa54 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2024.2.2.dist-info/RECORD @@ -0,0 +1,11 @@ +certifi-2024.2.2.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +certifi-2024.2.2.dist-info/LICENSE,sha256=6TcW2mucDVpKHfYP5pWzcPBpVgPSH2-D8FPkLPwQyvc,989 +certifi-2024.2.2.dist-info/METADATA,sha256=1noreLRChpOgeSj0uJT1mehiBl8ngh33Guc7KdvzYYM,2170 +certifi-2024.2.2.dist-info/RECORD,, +certifi-2024.2.2.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92 +certifi-2024.2.2.dist-info/top_level.txt,sha256=KMu4vUCfsjLrkPbSNdgdekS-pVJzBAJFO__nI8NF6-U,8 +certifi/__init__.py,sha256=ljtEx-EmmPpTe2SOd5Kzsujm_lUD0fKJVnE9gzce320,94 +certifi/__main__.py,sha256=xBBoj905TUWBLRGANOcf7oi6e-3dMP4cEoG9OyMs11g,243 +certifi/cacert.pem,sha256=ejR8qP724p-CtuR4U1WmY1wX-nVeCUD2XxWqj8e9f5I,292541 +certifi/core.py,sha256=qRDDFyXVJwTB_EmoGppaXU_R9qCZvhl-EzxPMuV3nTA,4426 +certifi/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2024.2.2.dist-info/WHEEL b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2024.2.2.dist-info/WHEEL new file mode 100644 index 0000000..98c0d20 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2024.2.2.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.42.0) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2024.2.2.dist-info/top_level.txt b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2024.2.2.dist-info/top_level.txt new file mode 100644 index 0000000..963eac5 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2024.2.2.dist-info/top_level.txt @@ -0,0 +1 @@ +certifi diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2025.8.3.dist-info/INSTALLER b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2025.8.3.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2025.8.3.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2025.8.3.dist-info/METADATA b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2025.8.3.dist-info/METADATA new file mode 100644 index 0000000..3a7ea22 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2025.8.3.dist-info/METADATA @@ -0,0 +1,77 @@ +Metadata-Version: 2.4 +Name: certifi +Version: 2025.8.3 +Summary: Python package for providing Mozilla's CA Bundle. +Home-page: https://github.com/certifi/python-certifi +Author: Kenneth Reitz +Author-email: me@kennethreitz.com +License: MPL-2.0 +Project-URL: Source, https://github.com/certifi/python-certifi +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0) +Classifier: Natural Language :: English +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Requires-Python: >=3.7 +License-File: LICENSE +Dynamic: author +Dynamic: author-email +Dynamic: classifier +Dynamic: description +Dynamic: home-page +Dynamic: license +Dynamic: license-file +Dynamic: project-url +Dynamic: requires-python +Dynamic: summary + +Certifi: Python SSL Certificates +================================ + +Certifi provides Mozilla's carefully curated collection of Root Certificates for +validating the trustworthiness of SSL certificates while verifying the identity +of TLS hosts. It has been extracted from the `Requests`_ project. + +Installation +------------ + +``certifi`` is available on PyPI. Simply install it with ``pip``:: + + $ pip install certifi + +Usage +----- + +To reference the installed certificate authority (CA) bundle, you can use the +built-in function:: + + >>> import certifi + + >>> certifi.where() + '/usr/local/lib/python3.7/site-packages/certifi/cacert.pem' + +Or from the command line:: + + $ python -m certifi + /usr/local/lib/python3.7/site-packages/certifi/cacert.pem + +Enjoy! + +.. _`Requests`: https://requests.readthedocs.io/en/master/ + +Addition/Removal of Certificates +-------------------------------- + +Certifi does not support any addition/removal or other modification of the +CA trust store content. This project is intended to provide a reliable and +highly portable root of trust to python deployments. Look to upstream projects +for methods to use alternate trust. diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2025.8.3.dist-info/RECORD b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2025.8.3.dist-info/RECORD new file mode 100644 index 0000000..359df71 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2025.8.3.dist-info/RECORD @@ -0,0 +1,11 @@ +certifi-2025.8.3.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +certifi-2025.8.3.dist-info/METADATA,sha256=z4sG3fosbP3nviub_TUpSb71z0bPmsp3Xa6ZIatGUe4,2422 +certifi-2025.8.3.dist-info/RECORD,, +certifi-2025.8.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91 +certifi-2025.8.3.dist-info/licenses/LICENSE,sha256=6TcW2mucDVpKHfYP5pWzcPBpVgPSH2-D8FPkLPwQyvc,989 +certifi-2025.8.3.dist-info/top_level.txt,sha256=KMu4vUCfsjLrkPbSNdgdekS-pVJzBAJFO__nI8NF6-U,8 +certifi/__init__.py,sha256=0a5ro4KTYep37Oo0Z8TycCPXaDlOEtvuj2pNWZ_1t8Y,94 +certifi/__main__.py,sha256=xBBoj905TUWBLRGANOcf7oi6e-3dMP4cEoG9OyMs11g,243 +certifi/cacert.pem,sha256=kQLmo2RKBxumzb1KU2mPKRxKZLGEUKCLwEZUi221zIs,287634 +certifi/core.py,sha256=XFXycndG5pf37ayeF8N32HUuDafsyhkVMbO4BAPWHa0,3394 +certifi/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2025.8.3.dist-info/WHEEL b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2025.8.3.dist-info/WHEEL new file mode 100644 index 0000000..e7fa31b --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2025.8.3.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: setuptools (80.9.0) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2025.8.3.dist-info/licenses/LICENSE b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2025.8.3.dist-info/licenses/LICENSE new file mode 100644 index 0000000..62b076c --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2025.8.3.dist-info/licenses/LICENSE @@ -0,0 +1,20 @@ +This package contains a modified version of ca-bundle.crt: + +ca-bundle.crt -- Bundle of CA Root Certificates + +This is a bundle of X.509 certificates of public Certificate Authorities +(CA). These were automatically extracted from Mozilla's root certificates +file (certdata.txt). This file can be found in the mozilla source tree: +https://hg.mozilla.org/mozilla-central/file/tip/security/nss/lib/ckfw/builtins/certdata.txt +It contains the certificates in PEM format and therefore +can be directly used with curl / libcurl / php_curl, or with +an Apache+mod_ssl webserver for SSL client authentication. +Just configure this file as the SSLCACertificateFile.# + +***** BEGIN LICENSE BLOCK ***** +This Source Code Form is subject to the terms of the Mozilla Public License, +v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain +one at http://mozilla.org/MPL/2.0/. + +***** END LICENSE BLOCK ***** +@(#) $RCSfile: certdata.txt,v $ $Revision: 1.80 $ $Date: 2011/11/03 15:11:58 $ diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2025.8.3.dist-info/top_level.txt b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2025.8.3.dist-info/top_level.txt new file mode 100644 index 0000000..963eac5 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi-2025.8.3.dist-info/top_level.txt @@ -0,0 +1 @@ +certifi diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi/__init__.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi/__init__.py new file mode 100644 index 0000000..fe2a891 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi/__init__.py @@ -0,0 +1,4 @@ +from .core import contents, where + +__all__ = ["contents", "where"] +__version__ = "2025.08.03" diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi/__main__.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi/__main__.py new file mode 100644 index 0000000..8945b5d --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi/__main__.py @@ -0,0 +1,12 @@ +import argparse + +from certifi import contents, where + +parser = argparse.ArgumentParser() +parser.add_argument("-c", "--contents", action="store_true") +args = parser.parse_args() + +if args.contents: + print(contents()) +else: + print(where()) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi/cacert.pem b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi/cacert.pem new file mode 100644 index 0000000..2077a1e --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi/cacert.pem @@ -0,0 +1,4738 @@ + +# Issuer: CN=Entrust Root Certification Authority O=Entrust, Inc. OU=www.entrust.net/CPS is incorporated by reference/(c) 2006 Entrust, Inc. +# Subject: CN=Entrust Root Certification Authority O=Entrust, Inc. OU=www.entrust.net/CPS is incorporated by reference/(c) 2006 Entrust, Inc. +# Label: "Entrust Root Certification Authority" +# Serial: 1164660820 +# MD5 Fingerprint: d6:a5:c3:ed:5d:dd:3e:00:c1:3d:87:92:1f:1d:3f:e4 +# SHA1 Fingerprint: b3:1e:b1:b7:40:e3:6c:84:02:da:dc:37:d4:4d:f5:d4:67:49:52:f9 +# SHA256 Fingerprint: 73:c1:76:43:4f:1b:c6:d5:ad:f4:5b:0e:76:e7:27:28:7c:8d:e5:76:16:c1:e6:e6:14:1a:2b:2c:bc:7d:8e:4c +-----BEGIN CERTIFICATE----- +MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMC +VVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0 +Lm5ldC9DUFMgaXMgaW5jb3Jwb3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMW +KGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsGA1UEAxMkRW50cnVzdCBSb290IENl +cnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0MloXDTI2MTEyNzIw +NTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMTkw +NwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSBy +ZWZlcmVuY2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNV +BAMTJEVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJ +KoZIhvcNAQEBBQADggEPADCCAQoCggEBALaVtkNC+sZtKm9I35RMOVcF7sN5EUFo +Nu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYszA9u3g3s+IIRe7bJWKKf4 +4LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOwwCj0Yzfv9 +KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGI +rb68j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi +94DkZfs0Nw4pgHBNrziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOB +sDCBrTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAi +gA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1MzQyWjAfBgNVHSMEGDAWgBRo +kORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DHhmak8fdLQ/uE +vW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA +A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9t +O1KzKtvn1ISMY/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6Zua +AGAT/3B+XxFNSRuzFVJ7yVTav52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP +9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTSW3iDVuycNsMm4hH2Z0kdkquM++v/ +eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0tHuu2guQOHXvgR1m +0vdXcDazv/wor3ElhVsT/h5/WrQ8 +-----END CERTIFICATE----- + +# Issuer: CN=QuoVadis Root CA 2 O=QuoVadis Limited +# Subject: CN=QuoVadis Root CA 2 O=QuoVadis Limited +# Label: "QuoVadis Root CA 2" +# Serial: 1289 +# MD5 Fingerprint: 5e:39:7b:dd:f8:ba:ec:82:e9:ac:62:ba:0c:54:00:2b +# SHA1 Fingerprint: ca:3a:fb:cf:12:40:36:4b:44:b2:16:20:88:80:48:39:19:93:7c:f7 +# SHA256 Fingerprint: 85:a0:dd:7d:d7:20:ad:b7:ff:05:f8:3d:54:2b:20:9d:c7:ff:45:28:f7:d6:77:b1:83:89:fe:a5:e5:c4:9e:86 +-----BEGIN CERTIFICATE----- +MIIFtzCCA5+gAwIBAgICBQkwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0x +GTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJv +b3QgQ0EgMjAeFw0wNjExMjQxODI3MDBaFw0zMTExMjQxODIzMzNaMEUxCzAJBgNV +BAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMRswGQYDVQQDExJRdW9W +YWRpcyBSb290IENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCa +GMpLlA0ALa8DKYrwD4HIrkwZhR0In6spRIXzL4GtMh6QRr+jhiYaHv5+HBg6XJxg +Fyo6dIMzMH1hVBHL7avg5tKifvVrbxi3Cgst/ek+7wrGsxDp3MJGF/hd/aTa/55J +WpzmM+Yklvc/ulsrHHo1wtZn/qtmUIttKGAr79dgw8eTvI02kfN/+NsRE8Scd3bB +rrcCaoF6qUWD4gXmuVbBlDePSHFjIuwXZQeVikvfj8ZaCuWw419eaxGrDPmF60Tp ++ARz8un+XJiM9XOva7R+zdRcAitMOeGylZUtQofX1bOQQ7dsE/He3fbE+Ik/0XX1 +ksOR1YqI0JDs3G3eicJlcZaLDQP9nL9bFqyS2+r+eXyt66/3FsvbzSUr5R/7mp/i +Ucw6UwxI5g69ybR2BlLmEROFcmMDBOAENisgGQLodKcftslWZvB1JdxnwQ5hYIiz +PtGo/KPaHbDRsSNU30R2be1B2MGyIrZTHN81Hdyhdyox5C315eXbyOD/5YDXC2Og +/zOhD7osFRXql7PSorW+8oyWHhqPHWykYTe5hnMz15eWniN9gqRMgeKh0bpnX5UH +oycR7hYQe7xFSkyyBNKr79X9DFHOUGoIMfmR2gyPZFwDwzqLID9ujWc9Otb+fVuI +yV77zGHcizN300QyNQliBJIWENieJ0f7OyHj+OsdWwIDAQABo4GwMIGtMA8GA1Ud +EwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1UdDgQWBBQahGK8SEwzJQTU7tD2 +A8QZRtGUazBuBgNVHSMEZzBlgBQahGK8SEwzJQTU7tD2A8QZRtGUa6FJpEcwRTEL +MAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMT +ElF1b1ZhZGlzIFJvb3QgQ0EgMoICBQkwDQYJKoZIhvcNAQEFBQADggIBAD4KFk2f +BluornFdLwUvZ+YTRYPENvbzwCYMDbVHZF34tHLJRqUDGCdViXh9duqWNIAXINzn +g/iN/Ae42l9NLmeyhP3ZRPx3UIHmfLTJDQtyU/h2BwdBR5YM++CCJpNVjP4iH2Bl +fF/nJrP3MpCYUNQ3cVX2kiF495V5+vgtJodmVjB3pjd4M1IQWK4/YY7yarHvGH5K +WWPKjaJW1acvvFYfzznB4vsKqBUsfU16Y8Zsl0Q80m/DShcK+JDSV6IZUaUtl0Ha +B0+pUNqQjZRG4T7wlP0QADj1O+hA4bRuVhogzG9Yje0uRY/W6ZM/57Es3zrWIozc +hLsib9D45MY56QSIPMO661V6bYCZJPVsAfv4l7CUW+v90m/xd2gNNWQjrLhVoQPR +TUIZ3Ph1WVaj+ahJefivDrkRoHy3au000LYmYjgahwz46P0u05B/B5EqHdZ+XIWD +mbA4CD/pXvk1B+TJYm5Xf6dQlfe6yJvmjqIBxdZmv3lh8zwc4bmCXF2gw+nYSL0Z +ohEUGW6yhhtoPkg3Goi3XZZenMfvJ2II4pEZXNLxId26F0KCl3GBUzGpn/Z9Yr9y +4aOTHcyKJloJONDO1w2AFrR4pTqHTI2KpdVGl/IsELm8VCLAAVBpQ570su9t+Oza +8eOx79+Rj1QqCyXBJhnEUhAFZdWCEOrCMc0u +-----END CERTIFICATE----- + +# Issuer: CN=QuoVadis Root CA 3 O=QuoVadis Limited +# Subject: CN=QuoVadis Root CA 3 O=QuoVadis Limited +# Label: "QuoVadis Root CA 3" +# Serial: 1478 +# MD5 Fingerprint: 31:85:3c:62:94:97:63:b9:aa:fd:89:4e:af:6f:e0:cf +# SHA1 Fingerprint: 1f:49:14:f7:d8:74:95:1d:dd:ae:02:c0:be:fd:3a:2d:82:75:51:85 +# SHA256 Fingerprint: 18:f1:fc:7f:20:5d:f8:ad:dd:eb:7f:e0:07:dd:57:e3:af:37:5a:9c:4d:8d:73:54:6b:f4:f1:fe:d1:e1:8d:35 +-----BEGIN CERTIFICATE----- +MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0x +GTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJv +b3QgQ0EgMzAeFw0wNjExMjQxOTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNV +BAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMRswGQYDVQQDExJRdW9W +YWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDM +V0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNggDhoB +4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUr +H556VOijKTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd +8lyyBTNvijbO0BNO/79KDDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9Cabwv +vWhDFlaJKjdhkf2mrk7AyxRllDdLkgbvBNDInIjbC3uBr7E9KsRlOni27tyAsdLT +mZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwpp5ijJUMv7/FfJuGITfhe +btfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8nT8KKdjc +T5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDt +WAEXMJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZ +c6tsgLjoC2SToJyMGf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A +4iLItLRkT9a6fUg+qGkM17uGcclzuD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYD +VR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHTBgkrBgEEAb5YAAMwgcUwgZMG +CCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmljYXRlIGNvbnN0 +aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0 +aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVu +dC4wLQYIKwYBBQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2Nw +czALBgNVHQ8EBAMCAQYwHQYDVR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4G +A1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4ywLQoUmkRzBFMQswCQYDVQQGEwJC +TTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UEAxMSUXVvVmFkaXMg +Um9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZVqyM0 +7ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSem +d1o417+shvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd ++LJ2w/w4E6oM3kJpK27zPOuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B +4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadN +t54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp8kokUvd0/bpO5qgdAm6x +DYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBCbjPsMZ57 +k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6s +zHXug/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0j +Wy10QJLZYxkNc91pvGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeT +mJlglFwjz1onl14LBQaTNx47aTbrqZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK +4SVhM7JZG+Ju1zdXtg2pEto= +-----END CERTIFICATE----- + +# Issuer: CN=DigiCert Assured ID Root CA O=DigiCert Inc OU=www.digicert.com +# Subject: CN=DigiCert Assured ID Root CA O=DigiCert Inc OU=www.digicert.com +# Label: "DigiCert Assured ID Root CA" +# Serial: 17154717934120587862167794914071425081 +# MD5 Fingerprint: 87:ce:0b:7b:2a:0e:49:00:e1:58:71:9b:37:a8:93:72 +# SHA1 Fingerprint: 05:63:b8:63:0d:62:d7:5a:bb:c8:ab:1e:4b:df:b5:a8:99:b2:4d:43 +# SHA256 Fingerprint: 3e:90:99:b5:01:5e:8f:48:6c:00:bc:ea:9d:11:1e:e7:21:fa:ba:35:5a:89:bc:f1:df:69:56:1e:3d:c6:32:5c +-----BEGIN CERTIFICATE----- +MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBl +MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv +b3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzExMTEwMDAwMDAwWjBlMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl +cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwggEi +MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7c +JpSIqvTO9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYP +mDI2dsze3Tyoou9q+yHyUmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+ +wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4 +VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpyoeb6pNnVFzF1roV9Iq4/ +AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whfGHdPAgMB +AAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW +BBRF66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYun +pyGd823IDzANBgkqhkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRC +dWKuh+vy1dneVrOfzM4UKLkNl2BcEkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTf +fwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38FnSbNd67IJKusm7Xi+fT8r87cm +NW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i8b5QZ7dsvfPx +H2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe ++o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g== +-----END CERTIFICATE----- + +# Issuer: CN=DigiCert Global Root CA O=DigiCert Inc OU=www.digicert.com +# Subject: CN=DigiCert Global Root CA O=DigiCert Inc OU=www.digicert.com +# Label: "DigiCert Global Root CA" +# Serial: 10944719598952040374951832963794454346 +# MD5 Fingerprint: 79:e4:a9:84:0d:7d:3a:96:d7:c0:4f:e2:43:4c:89:2e +# SHA1 Fingerprint: a8:98:5d:3a:65:e5:e5:c4:b2:d7:d6:6d:40:c6:dd:2f:b1:9c:54:36 +# SHA256 Fingerprint: 43:48:a0:e9:44:4c:78:cb:26:5e:05:8d:5e:89:44:b4:d8:4f:96:62:bd:26:db:25:7f:89:34:a4:43:c7:01:61 +-----BEGIN CERTIFICATE----- +MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh +MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD +QTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT +MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j +b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG +9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB +CSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97 +nh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt +43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P +T19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4 +gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO +BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR +TLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw +DQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr +hMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg +06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF +PnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls +YSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk +CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4= +-----END CERTIFICATE----- + +# Issuer: CN=DigiCert High Assurance EV Root CA O=DigiCert Inc OU=www.digicert.com +# Subject: CN=DigiCert High Assurance EV Root CA O=DigiCert Inc OU=www.digicert.com +# Label: "DigiCert High Assurance EV Root CA" +# Serial: 3553400076410547919724730734378100087 +# MD5 Fingerprint: d4:74:de:57:5c:39:b2:d3:9c:85:83:c5:c0:65:49:8a +# SHA1 Fingerprint: 5f:b7:ee:06:33:e2:59:db:ad:0c:4c:9a:e6:d3:8f:1a:61:c7:dc:25 +# SHA256 Fingerprint: 74:31:e5:f4:c3:c1:ce:46:90:77:4f:0b:61:e0:54:40:88:3b:a9:a0:1e:d0:0b:a6:ab:d7:80:6e:d3:b1:18:cf +-----BEGIN CERTIFICATE----- +MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBs +MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j +ZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAwMFoXDTMxMTExMDAwMDAwMFowbDEL +MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3 +LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFuY2Ug +RVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm ++9S75S0tMqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTW +PNt0OKRKzE0lgvdKpVMSOO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEM +xChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFB +Ik5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQNAQTXKFx01p8VdteZOE3 +hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUeh10aUAsg +EsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQF +MAMBAf8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaA +FLE+w2kD+L9HAdSYJhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3Nec +nzyIZgYIVyHbIUf4KmeqvxgydkAQV8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6z +eM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFpmyPInngiK3BD41VHMWEZ71jF +hS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkKmNEVX58Svnw2 +Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe +vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep ++OkuE6N36B9K +-----END CERTIFICATE----- + +# Issuer: CN=SwissSign Gold CA - G2 O=SwissSign AG +# Subject: CN=SwissSign Gold CA - G2 O=SwissSign AG +# Label: "SwissSign Gold CA - G2" +# Serial: 13492815561806991280 +# MD5 Fingerprint: 24:77:d9:a8:91:d1:3b:fa:88:2d:c2:ff:f8:cd:33:93 +# SHA1 Fingerprint: d8:c5:38:8a:b7:30:1b:1b:6e:d4:7a:e6:45:25:3a:6f:9f:1a:27:61 +# SHA256 Fingerprint: 62:dd:0b:e9:b9:f5:0a:16:3e:a0:f8:e7:5c:05:3b:1e:ca:57:ea:55:c8:68:8f:64:7c:68:81:f2:c8:35:7b:95 +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +# Issuer: CN=SecureTrust CA O=SecureTrust Corporation +# Subject: CN=SecureTrust CA O=SecureTrust Corporation +# Label: "SecureTrust CA" +# Serial: 17199774589125277788362757014266862032 +# MD5 Fingerprint: dc:32:c3:a7:6d:25:57:c7:68:09:9d:ea:2d:a9:a2:d1 +# SHA1 Fingerprint: 87:82:c6:c3:04:35:3b:cf:d2:96:92:d2:59:3e:7d:44:d9:34:ff:11 +# SHA256 Fingerprint: f1:c1:b5:0a:e5:a2:0d:d8:03:0e:c9:f6:bc:24:82:3d:d3:67:b5:25:57:59:b4:e7:1b:61:fc:e9:f7:37:5d:73 +-----BEGIN CERTIFICATE----- +MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBI +MQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x +FzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIz +MTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1NlY3VyZVRydXN0IENv +cnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCCASIwDQYJKoZIhvcN +AQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQXOZEz +Zum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO +0gMdA+9tDWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIao +wW8xQmxSPmjL8xk037uHGFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj +7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b01k/unK8RCSc43Oz969XL0Imnal0ugBS +8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmHursCAwEAAaOBnTCBmjAT +BgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB +/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCeg +JYYjaHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGC +NxUBBAMCAQAwDQYJKoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt3 +6Z3q059c4EVlew3KW+JwULKUBRSuSceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/ +3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHfmbx8IVQr5Fiiu1cprp6poxkm +D5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZnMUFdAvnZyPS +CPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR +3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE= +-----END CERTIFICATE----- + +# Issuer: CN=Secure Global CA O=SecureTrust Corporation +# Subject: CN=Secure Global CA O=SecureTrust Corporation +# Label: "Secure Global CA" +# Serial: 9751836167731051554232119481456978597 +# MD5 Fingerprint: cf:f4:27:0d:d4:ed:dc:65:16:49:6d:3d:da:bf:6e:de +# SHA1 Fingerprint: 3a:44:73:5a:e5:81:90:1f:24:86:61:46:1e:3b:9c:c4:5f:f5:3a:1b +# SHA256 Fingerprint: 42:00:f5:04:3a:c8:59:0e:bb:52:7d:20:9e:d1:50:30:29:fb:cb:d4:1c:a1:b5:06:ec:27:f1:5a:de:7d:ac:69 +-----BEGIN CERTIFICATE----- +MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBK +MQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x +GTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkx +MjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3Qg +Q29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jxYDiJ +iQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa +/FHtaMbQbqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJ +jnIFHovdRIWCQtBJwB1g8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnI +HmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYVHDGA76oYa8J719rO+TMg1fW9ajMtgQT7 +sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi0XPnj3pDAgMBAAGjgZ0w +gZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQF +MAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCsw +KaAnoCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsG +AQQBgjcVAQQDAgEAMA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0L +URYD7xh8yOOvaliTFGCRsoTciE6+OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXO +H0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cnCDpOGR86p1hcF895P4vkp9Mm +I50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/53CYNv6ZHdAbY +iNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc +f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW +-----END CERTIFICATE----- + +# Issuer: CN=COMODO Certification Authority O=COMODO CA Limited +# Subject: CN=COMODO Certification Authority O=COMODO CA Limited +# Label: "COMODO Certification Authority" +# Serial: 104350513648249232941998508985834464573 +# MD5 Fingerprint: 5c:48:dc:f7:42:72:ec:56:94:6d:1c:cc:71:35:80:75 +# SHA1 Fingerprint: 66:31:bf:9e:f7:4f:9e:b6:c9:d5:a6:0c:ba:6a:be:d1:f7:bd:ef:7b +# SHA256 Fingerprint: 0c:2c:d6:3d:f7:80:6f:a3:99:ed:e8:09:11:6b:57:5b:f8:79:89:f0:65:18:f9:80:8c:86:05:03:17:8b:af:66 +-----BEGIN CERTIFICATE----- +MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCB +gTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G +A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV +BAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEyMDEwMDAw +MDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl +YXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P +RE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0 +aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3 +UcEbVASY06m/weaKXTuH+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI +2GqGd0S7WWaXUF601CxwRM/aN5VCaTwwxHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8 +Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV4EajcNxo2f8ESIl33rXp ++2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA1KGzqSX+ +DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5O +nKVIrLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW +/zAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6g +PKA6hjhodHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9u +QXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOCAQEAPpiem/Yb6dc5t3iuHXIY +SdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CPOGEIqB6BCsAv +IC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/ +RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4 +zJVSk/BwJVmcIGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5dd +BA6+C4OmF4O5MBKgxTMVBbkN+8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IB +ZQ== +-----END CERTIFICATE----- + +# Issuer: CN=COMODO ECC Certification Authority O=COMODO CA Limited +# Subject: CN=COMODO ECC Certification Authority O=COMODO CA Limited +# Label: "COMODO ECC Certification Authority" +# Serial: 41578283867086692638256921589707938090 +# MD5 Fingerprint: 7c:62:ff:74:9d:31:53:5e:68:4a:d5:78:aa:1e:bf:23 +# SHA1 Fingerprint: 9f:74:4e:9f:2b:4d:ba:ec:0f:31:2c:50:b6:56:3b:8e:2d:93:c3:11 +# SHA256 Fingerprint: 17:93:92:7a:06:14:54:97:89:ad:ce:2f:8f:34:f7:f0:b6:6d:0f:3a:e3:a3:b8:4d:21:ec:15:db:ba:4f:ad:c7 +-----BEGIN CERTIFICATE----- +MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTEL +MAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE +BxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMT +IkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwMzA2MDAw +MDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdy +ZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09N +T0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSR +FtSrYpn1PlILBs5BAH+X4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0J +cfRK9ChQtP6IHG4/bC8vCVlbpVsLM5niwz2J+Wos77LTBumjQjBAMB0GA1UdDgQW +BBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/ +BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VGFAkK+qDm +fQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdv +GDeAU/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY= +-----END CERTIFICATE----- + +# Issuer: CN=Certigna O=Dhimyotis +# Subject: CN=Certigna O=Dhimyotis +# Label: "Certigna" +# Serial: 18364802974209362175 +# MD5 Fingerprint: ab:57:a6:5b:7d:42:82:19:b5:d8:58:26:28:5e:fd:ff +# SHA1 Fingerprint: b1:2e:13:63:45:86:a4:6f:1a:b2:60:68:37:58:2d:c4:ac:fd:94:97 +# SHA256 Fingerprint: e3:b6:a2:db:2e:d7:ce:48:84:2f:7a:c5:32:41:c7:b7:1d:54:14:4b:fb:40:c1:1f:3f:1d:0b:42:f5:ee:a1:2d +-----BEGIN CERTIFICATE----- +MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNV +BAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4X +DTA3MDYyOTE1MTMwNVoXDTI3MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQ +BgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwIQ2VydGlnbmEwggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7qXOEm7RFHYeGifBZ4 +QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyHGxny +gQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbw +zBfsV1/pogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q +130yGLMLLGq/jj8UEYkgDncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2 +JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKfIrjxwo1p3Po6WAbfAgMBAAGjgbwwgbkw +DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQtCRZvgHyUtVF9lo53BEw +ZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJBgNVBAYT +AkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzj +AQ/JSP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG +9w0BAQUFAAOCAQEAhQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8h +bV6lUmPOEvjvKtpv6zf+EwLHyzs+ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFnc +fca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1kluPBS1xp81HlDQwY9qcEQCYsuu +HWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY1gkIl2PlwS6w +t0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw +WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg== +-----END CERTIFICATE----- + +# Issuer: O=Chunghwa Telecom Co., Ltd. OU=ePKI Root Certification Authority +# Subject: O=Chunghwa Telecom Co., Ltd. OU=ePKI Root Certification Authority +# Label: "ePKI Root Certification Authority" +# Serial: 28956088682735189655030529057352760477 +# MD5 Fingerprint: 1b:2e:00:ca:26:06:90:3d:ad:fe:6f:15:68:d3:6b:b3 +# SHA1 Fingerprint: 67:65:0d:f1:7e:8e:7e:5b:82:40:a4:f4:56:4b:cf:e2:3d:69:c6:f0 +# SHA256 Fingerprint: c0:a6:f4:dc:63:a2:4b:fd:cf:54:ef:2a:6a:08:2a:0a:72:de:35:80:3e:2f:f5:ff:52:7a:e5:d8:72:06:df:d5 +-----BEGIN CERTIFICATE----- +MIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBe +MQswCQYDVQQGEwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0 +ZC4xKjAoBgNVBAsMIWVQS0kgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe +Fw0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMjMxMjdaMF4xCzAJBgNVBAYTAlRXMSMw +IQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEqMCgGA1UECwwhZVBL +SSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEF +AAOCAg8AMIICCgKCAgEA4SUP7o3biDN1Z82tH306Tm2d0y8U82N0ywEhajfqhFAH +SyZbCUNsIZ5qyNUD9WBpj8zwIuQf5/dqIjG3LBXy4P4AakP/h2XGtRrBp0xtInAh +ijHyl3SJCRImHJ7K2RKilTza6We/CKBk49ZCt0Xvl/T29de1ShUCWH2YWEtgvM3X +DZoTM1PRYfl61dd4s5oz9wCGzh1NlDivqOx4UXCKXBCDUSH3ET00hl7lSM2XgYI1 +TBnsZfZrxQWh7kcT1rMhJ5QQCtkkO7q+RBNGMD+XPNjX12ruOzjjK9SXDrkb5wdJ +fzcq+Xd4z1TtW0ado4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0OWQqraffA +sgRFelQArr5T9rXn4fg8ozHSqf4hUmTFpmfwdQcGlBSBVcYn5AGPF8Fqcde+S/uU +WH1+ETOxQvdibBjWzwloPn9s9h6PYq2lY9sJpx8iQkEeb5mKPtf5P0B6ebClAZLS +nT0IFaUQAS2zMnaolQ2zepr7BxB4EW/hj8e6DyUadCrlHJhBmd8hh+iVBmoKs2pH +dmX2Os+PYhcZewoozRrSgx4hxyy/vv9haLdnG7t4TY3OZ+XkwY63I2binZB1NJip +NiuKmpS5nezMirH4JYlcWrYvjB9teSSnUmjDhDXiZo1jDiVN1Rmy5nk3pyKdVDEC +AwEAAaNqMGgwHQYDVR0OBBYEFB4M97Zn8uGSJglFwFU5Lnc/QkqiMAwGA1UdEwQF +MAMBAf8wOQYEZyoHAAQxMC8wLQIBADAJBgUrDgMCGgUAMAcGBWcqAwAABBRFsMLH +ClZ87lt4DJX5GFPBphzYEDANBgkqhkiG9w0BAQUFAAOCAgEACbODU1kBPpVJufGB +uvl2ICO1J2B01GqZNF5sAFPZn/KmsSQHRGoqxqWOeBLoR9lYGxMqXnmbnwoqZ6Yl +PwZpVnPDimZI+ymBV3QGypzqKOg4ZyYr8dW1P2WT+DZdjo2NQCCHGervJ8A9tDkP +JXtoUHRVnAxZfVo9QZQlUgjgRywVMRnVvwdVxrsStZf0X4OFunHB2WyBEXYKCrC/ +gpf36j36+uwtqSiUO1bd0lEursC9CBWMd1I0ltabrNMdjmEPNXubrjlpC2JgQCA2 +j6/7Nu4tCEoduL+bXPjqpRugc6bY+G7gMwRfaKonh+3ZwZCc7b3jajWvY9+rGNm6 +5ulK6lCKD2GTHuItGeIwlDWSXQ62B68ZgI9HkFFLLk3dheLSClIKF5r8GrBQAuUB +o2M3IUxExJtRmREOc5wGj1QupyheRDmHVi03vYVElOEMSyycw5KFNGHLD7ibSkNS +/jQ6fbjpKdx2qcgw+BRxgMYeNkh0IkFch4LoGHGLQYlE535YW6i4jRPpp2zDR+2z +Gp1iro2C6pSe3VkQw63d4k3jMdXH7OjysP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTE +W9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmODBCEIZ43ygknQW/2xzQ+D +hNQ+IIX3Sj0rnP0qCglN6oH4EZw= +-----END CERTIFICATE----- + +# Issuer: O=certSIGN OU=certSIGN ROOT CA +# Subject: O=certSIGN OU=certSIGN ROOT CA +# Label: "certSIGN ROOT CA" +# Serial: 35210227249154 +# MD5 Fingerprint: 18:98:c0:d6:e9:3a:fc:f9:b0:f5:0c:f7:4b:01:44:17 +# SHA1 Fingerprint: fa:b7:ee:36:97:26:62:fb:2d:b0:2a:f6:bf:03:fd:e8:7c:4b:2f:9b +# SHA256 Fingerprint: ea:a9:62:c4:fa:4a:6b:af:eb:e4:15:19:6d:35:1c:cd:88:8d:4f:53:f3:fa:8a:e6:d7:c4:66:a9:4e:60:42:bb +-----BEGIN CERTIFICATE----- +MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYT +AlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBD +QTAeFw0wNjA3MDQxNzIwMDRaFw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJP +MREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTCC +ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7IJUqOtdu0KBuqV5Do +0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHHrfAQ +UySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5d +RdY4zTW2ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQ +OA7+j0xbm0bqQfWwCHTD0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwv +JoIQ4uNllAoEwF73XVv4EOLQunpL+943AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08C +AwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAcYwHQYDVR0O +BBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IBAQA+0hyJ +LjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecY +MnQ8SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ +44gx+FkagQnIl6Z0x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6I +Jd1hJyMctTEHBDa0GpC9oHRxUIltvBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNw +i/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7NzTogVZ96edhBiIL5VaZVDADlN +9u6wWk5JRFRYX0KD +-----END CERTIFICATE----- + +# Issuer: CN=NetLock Arany (Class Gold) F\u0151tan\xfas\xedtv\xe1ny O=NetLock Kft. OU=Tan\xfas\xedtv\xe1nykiad\xf3k (Certification Services) +# Subject: CN=NetLock Arany (Class Gold) F\u0151tan\xfas\xedtv\xe1ny O=NetLock Kft. OU=Tan\xfas\xedtv\xe1nykiad\xf3k (Certification Services) +# Label: "NetLock Arany (Class Gold) F\u0151tan\xfas\xedtv\xe1ny" +# Serial: 80544274841616 +# MD5 Fingerprint: c5:a1:b7:ff:73:dd:d6:d7:34:32:18:df:fc:3c:ad:88 +# SHA1 Fingerprint: 06:08:3f:59:3f:15:a1:04:a0:69:a4:6b:a9:03:d0:06:b7:97:09:91 +# SHA256 Fingerprint: 6c:61:da:c3:a2:de:f0:31:50:6b:e0:36:d2:a6:fe:40:19:94:fb:d1:3d:f9:c8:d4:66:59:92:74:c4:46:ec:98 +-----BEGIN CERTIFICATE----- +MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQG +EwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3 +MDUGA1UECwwuVGFuw7pzw610dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNl +cnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBBcmFueSAoQ2xhc3MgR29sZCkgRsWR +dGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgxMjA2MTUwODIxWjCB +pzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxOZXRM +b2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlm +aWNhdGlvbiBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNz +IEdvbGQpIEbFkXRhbsO6c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEAxCRec75LbRTDofTjl5Bu0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrT +lF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw/HpYzY6b7cNGbIRwXdrz +AZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAkH3B5r9s5 +VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRG +ILdwfzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2 +BJtr+UBdADTHLpl1neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAG +AQH/AgEEMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2M +U9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwWqZw8UQCgwBEIBaeZ5m8BiFRh +bvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTtaYtOUZcTh5m2C ++C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC +bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2F +uLjbvrW5KfnaNwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2 +XjG4Kvte9nHfRCaexOYNkbQudZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E= +-----END CERTIFICATE----- + +# Issuer: CN=Microsec e-Szigno Root CA 2009 O=Microsec Ltd. +# Subject: CN=Microsec e-Szigno Root CA 2009 O=Microsec Ltd. +# Label: "Microsec e-Szigno Root CA 2009" +# Serial: 14014712776195784473 +# MD5 Fingerprint: f8:49:f4:03:bc:44:2d:83:be:48:69:7d:29:64:fc:b1 +# SHA1 Fingerprint: 89:df:74:fe:5c:f4:0f:4a:80:f9:e3:37:7d:54:da:91:e1:01:31:8e +# SHA256 Fingerprint: 3c:5f:81:fe:a5:fa:b8:2c:64:bf:a2:ea:ec:af:cd:e8:e0:77:fc:86:20:a7:ca:e5:37:16:3d:f3:6e:db:f3:78 +-----BEGIN CERTIFICATE----- +MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYD +VQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0 +ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0G +CSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTAeFw0wOTA2MTYxMTMwMThaFw0y +OTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3Qx +FjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUtU3pp +Z25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o +dTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvP +kd6mJviZpWNwrZuuyjNAfW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tc +cbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG0IMZfcChEhyVbUr02MelTTMuhTlAdX4U +fIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKApxn1ntxVUwOXewdI/5n7 +N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm1HxdrtbC +xkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1 ++rUCAwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G +A1UdDgQWBBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPM +Pcu1SCOhGnqmKrs0aDAbBgNVHREEFDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqG +SIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0olZMEyL/azXm4Q5DwpL7v8u8h +mLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfXI/OMn74dseGk +ddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775 +tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c +2Pm2G2JwCz02yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5t +HMN1Rq41Bab2XD0h7lbwyYIiLXpUq3DDfSJlgnCW +-----END CERTIFICATE----- + +# Issuer: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R3 +# Subject: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R3 +# Label: "GlobalSign Root CA - R3" +# Serial: 4835703278459759426209954 +# MD5 Fingerprint: c5:df:b8:49:ca:05:13:55:ee:2d:ba:1a:c3:3e:b0:28 +# SHA1 Fingerprint: d6:9b:56:11:48:f0:1c:77:c5:45:78:c1:09:26:df:5b:85:69:76:ad +# SHA256 Fingerprint: cb:b5:22:d7:b7:f1:27:ad:6a:01:13:86:5b:df:1c:d4:10:2e:7d:07:59:af:63:5a:7c:f4:72:0d:c9:63:c5:3b +-----BEGIN CERTIFICATE----- +MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4G +A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNp +Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4 +MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEG +A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWtiHL8 +RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsT +gHeMCOFJ0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmm +KPZpO/bLyCiR5Z2KYVc3rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zd +QQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjlOCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZ +XriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2xmmFghcCAwEAAaNCMEAw +DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI/wS3+o +LkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZU +RUm7lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMp +jjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK +6fBdRoyV3XpYKBovHd7NADdBj+1EbddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQX +mcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJrlAGomecs +Mx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH +WD9f +-----END CERTIFICATE----- + +# Issuer: CN=Izenpe.com O=IZENPE S.A. +# Subject: CN=Izenpe.com O=IZENPE S.A. +# Label: "Izenpe.com" +# Serial: 917563065490389241595536686991402621 +# MD5 Fingerprint: a6:b0:cd:85:80:da:5c:50:34:a3:39:90:2f:55:67:73 +# SHA1 Fingerprint: 2f:78:3d:25:52:18:a7:4a:65:39:71:b5:2c:a2:9c:45:15:6f:e9:19 +# SHA256 Fingerprint: 25:30:cc:8e:98:32:15:02:ba:d9:6f:9b:1f:ba:1b:09:9e:2d:29:9e:0f:45:48:bb:91:4f:36:3b:c0:d4:53:1f +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +# Issuer: CN=Go Daddy Root Certificate Authority - G2 O=GoDaddy.com, Inc. +# Subject: CN=Go Daddy Root Certificate Authority - G2 O=GoDaddy.com, Inc. +# Label: "Go Daddy Root Certificate Authority - G2" +# Serial: 0 +# MD5 Fingerprint: 80:3a:bc:22:c1:e6:fb:8d:9b:3b:27:4a:32:1b:9a:01 +# SHA1 Fingerprint: 47:be:ab:c9:22:ea:e8:0e:78:78:34:62:a7:9f:45:c2:54:fd:e6:8b +# SHA256 Fingerprint: 45:14:0b:32:47:eb:9c:c8:c5:b4:f0:d7:b5:30:91:f7:32:92:08:9e:6e:5a:63:e2:74:9d:d3:ac:a9:19:8e:da +-----BEGIN CERTIFICATE----- +MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMx +EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoT +EUdvRGFkZHkuY29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRp +ZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIz +NTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQH +EwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8GA1UE +AxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIw +DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKD +E6bFIEMBO4Tx5oVJnyfq9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH +/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD+qK+ihVqf94Lw7YZFAXK6sOoBJQ7Rnwy +DfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutdfMh8+7ArU6SSYmlRJQVh +GkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMlNAJWJwGR +tDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEA +AaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE +FDqahQcQZyi27/a9BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmX +WWcDYfF+OwYxdS2hII5PZYe096acvNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu +9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r5N9ss4UXnT3ZJE95kTXWXwTr +gIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYVN8Gb5DKj7Tjo +2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO +LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI +4uJEvlz36hz1 +-----END CERTIFICATE----- + +# Issuer: CN=Starfield Root Certificate Authority - G2 O=Starfield Technologies, Inc. +# Subject: CN=Starfield Root Certificate Authority - G2 O=Starfield Technologies, Inc. +# Label: "Starfield Root Certificate Authority - G2" +# Serial: 0 +# MD5 Fingerprint: d6:39:81:c6:52:7e:96:69:fc:fc:ca:66:ed:05:f2:96 +# SHA1 Fingerprint: b5:1c:06:7c:ee:2b:0c:3d:f8:55:ab:2d:92:f4:fe:39:d4:e7:0f:0e +# SHA256 Fingerprint: 2c:e1:cb:0b:f9:d2:f9:e1:02:99:3f:be:21:51:52:c3:b2:dd:0c:ab:de:1c:68:e5:31:9b:83:91:54:db:b7:f5 +-----BEGIN CERTIFICATE----- +MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMx +EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT +HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVs +ZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAw +MFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6 +b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQgVGVj +aG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZp +Y2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAL3twQP89o/8ArFvW59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMg +nLRJdzIpVv257IzdIvpy3Cdhl+72WoTsbhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1 +HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNkN3mSwOxGXn/hbVNMYq/N +Hwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7NfZTD4p7dN +dloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0 +HZbUJtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAO +BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0G +CSqGSIb3DQEBCwUAA4IBAQARWfolTwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjU +sHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx4mcujJUDJi5DnUox9g61DLu3 +4jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUwF5okxBDgBPfg +8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K +pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1 +mMpYjn0q7pBZc2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0 +-----END CERTIFICATE----- + +# Issuer: CN=Starfield Services Root Certificate Authority - G2 O=Starfield Technologies, Inc. +# Subject: CN=Starfield Services Root Certificate Authority - G2 O=Starfield Technologies, Inc. +# Label: "Starfield Services Root Certificate Authority - G2" +# Serial: 0 +# MD5 Fingerprint: 17:35:74:af:7b:61:1c:eb:f4:f9:3c:e2:ee:40:f9:a2 +# SHA1 Fingerprint: 92:5a:8f:8d:2c:6d:04:e0:66:5f:59:6a:ff:22:d8:63:e8:25:6f:3f +# SHA256 Fingerprint: 56:8d:69:05:a2:c8:87:08:a4:b3:02:51:90:ed:cf:ed:b1:97:4a:60:6a:13:c6:e5:29:0f:cb:2a:e6:3e:da:b5 +-----BEGIN CERTIFICATE----- +MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMx +EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT +HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVs +ZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5 +MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNVBAYTAlVTMRAwDgYD +VQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFy +ZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2Vy +dmljZXMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20p +OsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm2 +8xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4PahHQUw2eeBGg6345AWh1K +Ts9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLPLJGmpufe +hRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk +6mFBrMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAw +DwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+q +AdcwKziIorhtSpzyEZGDMA0GCSqGSIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMI +bw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPPE95Dz+I0swSdHynVv/heyNXB +ve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTyxQGjhdByPq1z +qwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd +iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn +0q23KXB56jzaYyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCN +sSi6 +-----END CERTIFICATE----- + +# Issuer: CN=AffirmTrust Commercial O=AffirmTrust +# Subject: CN=AffirmTrust Commercial O=AffirmTrust +# Label: "AffirmTrust Commercial" +# Serial: 8608355977964138876 +# MD5 Fingerprint: 82:92:ba:5b:ef:cd:8a:6f:a6:3d:55:f9:84:f6:d6:b7 +# SHA1 Fingerprint: f9:b5:b6:32:45:5f:9c:be:ec:57:5f:80:dc:e9:6e:2c:c7:b2:78:b7 +# SHA256 Fingerprint: 03:76:ab:1d:54:c5:f9:80:3c:e4:b2:e2:01:a0:ee:7e:ef:7b:57:b6:36:e8:a9:3c:9b:8d:48:60:c9:6f:5f:a7 +-----BEGIN CERTIFICATE----- +MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UE +BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVz +dCBDb21tZXJjaWFsMB4XDTEwMDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDEL +MAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZp +cm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC +AQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6EqdbDuKP +Hx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yr +ba0F8PrVC8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPAL +MeIrJmqbTFeurCA+ukV6BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1 +yHp52UKqK39c/s4mT6NmgTWvRLpUHhwwMmWd5jyTXlBOeuM61G7MGvv50jeuJCqr +VwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNVHQ4EFgQUnZPGU4teyq8/ +nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ +KoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYG +XUPGhi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNj +vbz4YYCanrHOQnDiqX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivt +Z8SOyUOyXGsViQK8YvxO8rUzqrJv0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9g +N53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0khsUlHRUe072o0EclNmsxZt9YC +nlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8= +-----END CERTIFICATE----- + +# Issuer: CN=AffirmTrust Networking O=AffirmTrust +# Subject: CN=AffirmTrust Networking O=AffirmTrust +# Label: "AffirmTrust Networking" +# Serial: 8957382827206547757 +# MD5 Fingerprint: 42:65:ca:be:01:9a:9a:4c:a9:8c:41:49:cd:c0:d5:7f +# SHA1 Fingerprint: 29:36:21:02:8b:20:ed:02:f5:66:c5:32:d1:d6:ed:90:9f:45:00:2f +# SHA256 Fingerprint: 0a:81:ec:5a:92:97:77:f1:45:90:4a:f3:8d:5d:50:9f:66:b5:e2:c5:8f:cd:b5:31:05:8b:0e:17:f3:f0:b4:1b +-----BEGIN CERTIFICATE----- +MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UE +BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVz +dCBOZXR3b3JraW5nMB4XDTEwMDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDEL +MAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZp +cm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC +AQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SEHi3y +YJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbua +kCNrmreIdIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRL +QESxG9fhwoXA3hA/Pe24/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp +6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gbh+0t+nvujArjqWaJGctB+d1ENmHP4ndG +yH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNVHQ4EFgQUBx/S55zawm6i +QLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ +KoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfO +tDIuUFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzu +QY0x2+c06lkh1QF612S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZ +Lgo/bNjR9eUJtGxUAArgFU2HdW23WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4u +olu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9/ZFvgrG+CJPbFEfxojfHRZ48 +x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s= +-----END CERTIFICATE----- + +# Issuer: CN=AffirmTrust Premium O=AffirmTrust +# Subject: CN=AffirmTrust Premium O=AffirmTrust +# Label: "AffirmTrust Premium" +# Serial: 7893706540734352110 +# MD5 Fingerprint: c4:5d:0e:48:b6:ac:28:30:4e:0a:bc:f9:38:16:87:57 +# SHA1 Fingerprint: d8:a6:33:2c:e0:03:6f:b1:85:f6:63:4f:7d:6a:06:65:26:32:28:27 +# SHA256 Fingerprint: 70:a7:3f:7f:37:6b:60:07:42:48:90:45:34:b1:14:82:d5:bf:0e:69:8e:cc:49:8d:f5:25:77:eb:f2:e9:3b:9a +-----BEGIN CERTIFICATE----- +MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UE +BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVz +dCBQcmVtaXVtMB4XDTEwMDEyOTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkG +A1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1U +cnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxBLf +qV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtnBKAQ +JG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ ++jjeRFcV5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrS +s8PhaJyJ+HoAVt70VZVs+7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5 +HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmdGPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d7 +70O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5Rp9EixAqnOEhss/n/fauG +V+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NIS+LI+H+S +qHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S +5u046uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4Ia +C1nEWTJ3s7xgaVY5/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TX +OwF0lkLgAOIua+rF7nKsu7/+6qqo+Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYE +FJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByvMiPIs0laUZx2 +KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg +Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B +8OWycvpEgjNC6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQ +MKSOyARiqcTtNd56l+0OOF6SL5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc +0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK+4w1IX2COPKpVJEZNZOUbWo6xbLQ +u4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmVBtWVyuEklut89pMF +u+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFgIxpH +YoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8 +GKa1qF60g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaO +RtGdFNrHF+QFlozEJLUbzxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6e +KeC2uAloGRwYQw== +-----END CERTIFICATE----- + +# Issuer: CN=AffirmTrust Premium ECC O=AffirmTrust +# Subject: CN=AffirmTrust Premium ECC O=AffirmTrust +# Label: "AffirmTrust Premium ECC" +# Serial: 8401224907861490260 +# MD5 Fingerprint: 64:b0:09:55:cf:b1:d5:99:e2:be:13:ab:a6:5d:ea:4d +# SHA1 Fingerprint: b8:23:6b:00:2f:1d:16:86:53:01:55:6c:11:a4:37:ca:eb:ff:c3:bb +# SHA256 Fingerprint: bd:71:fd:f6:da:97:e4:cf:62:d1:64:7a:dd:25:81:b0:7d:79:ad:f8:39:7e:b4:ec:ba:9c:5e:84:88:82:14:23 +-----BEGIN CERTIFICATE----- +MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMC +VVMxFDASBgNVBAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQ +cmVtaXVtIEVDQzAeFw0xMDAxMjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJ +BgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1UcnVzdDEgMB4GA1UEAwwXQWZmaXJt +VHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQNMF4bFZ0D +0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQN8O9 +ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0G +A1UdDgQWBBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4G +A1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/Vs +aobgxCd05DhT1wV/GzTjxi+zygk8N53X57hG8f2h4nECMEJZh0PUUd+60wkyWs6I +flc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKMeQ== +-----END CERTIFICATE----- + +# Issuer: CN=Certum Trusted Network CA O=Unizeto Technologies S.A. OU=Certum Certification Authority +# Subject: CN=Certum Trusted Network CA O=Unizeto Technologies S.A. OU=Certum Certification Authority +# Label: "Certum Trusted Network CA" +# Serial: 279744 +# MD5 Fingerprint: d5:e9:81:40:c5:18:69:fc:46:2c:89:75:62:0f:aa:78 +# SHA1 Fingerprint: 07:e0:32:e0:20:b7:2c:3f:19:2f:06:28:a2:59:3a:19:a7:0f:06:9e +# SHA256 Fingerprint: 5c:58:46:8d:55:f5:8e:49:7e:74:39:82:d2:b5:00:10:b6:d1:65:37:4a:cf:83:a7:d4:a3:2d:b7:68:c4:40:8e +-----BEGIN CERTIFICATE----- +MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBM +MSIwIAYDVQQKExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5D +ZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBU +cnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIyMTIwNzM3WhcNMjkxMjMxMTIwNzM3 +WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBUZWNobm9sb2dpZXMg +Uy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MSIw +IAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rH +UV+rpDKmYYe2bg+G0jACl/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LM +TXPb865Px1bVWqeWifrzq2jUI4ZZJ88JJ7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVU +BBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4fOQtf/WsX+sWn7Et0brM +kUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0cvW0QM8x +AcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNV +HRMBAf8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNV +HQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15y +sHhE49wcrwn9I0j6vSrEuVUEtRCjjSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfL +I9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1mS1FhIrlQgnXdAIv94nYmem8 +J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5ajZt3hrvJBW8qY +VoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI +03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw= +-----END CERTIFICATE----- + +# Issuer: CN=TWCA Root Certification Authority O=TAIWAN-CA OU=Root CA +# Subject: CN=TWCA Root Certification Authority O=TAIWAN-CA OU=Root CA +# Label: "TWCA Root Certification Authority" +# Serial: 1 +# MD5 Fingerprint: aa:08:8f:f6:f9:7b:b7:f2:b1:a7:1e:9b:ea:ea:bd:79 +# SHA1 Fingerprint: cf:9e:87:6d:d3:eb:fc:42:26:97:a3:b5:a3:7a:a0:76:a9:06:23:48 +# SHA256 Fingerprint: bf:d8:8f:e1:10:1c:41:ae:3e:80:1b:f8:be:56:35:0e:e9:ba:d1:a6:b9:bd:51:5e:dc:5c:6d:5b:87:11:ac:44 +-----BEGIN CERTIFICATE----- +MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzES +MBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFU +V0NBIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMz +WhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJVEFJV0FO +LUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlm +aWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +AQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFE +AcK0HMMxQhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HH +K3XLfJ+utdGdIzdjp9xCoi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeX +RfwZVzsrb+RH9JlF/h3x+JejiB03HFyP4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/z +rX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1ry+UPizgN7gr8/g+YnzAx +3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV +HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkq +hkiG9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeC +MErJk/9q56YAf4lCmtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdls +XebQ79NqZp4VKIV66IIArB6nCWlWQtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62D +lhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVYT0bf+215WfKEIlKuD8z7fDvn +aspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocnyYh0igzyXxfkZ +YiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw== +-----END CERTIFICATE----- + +# Issuer: O=SECOM Trust Systems CO.,LTD. OU=Security Communication RootCA2 +# Subject: O=SECOM Trust Systems CO.,LTD. OU=Security Communication RootCA2 +# Label: "Security Communication RootCA2" +# Serial: 0 +# MD5 Fingerprint: 6c:39:7d:a4:0e:55:59:b2:3f:d6:41:b1:12:50:de:43 +# SHA1 Fingerprint: 5f:3b:8c:f2:f8:10:b3:7d:78:b4:ce:ec:19:19:c3:73:34:b9:c7:74 +# SHA256 Fingerprint: 51:3b:2c:ec:b8:10:d4:cd:e5:dd:85:39:1a:df:c6:c2:dd:60:d8:7b:b7:36:d2:b5:21:48:4a:a4:7a:0e:be:f6 +-----BEGIN CERTIFICATE----- +MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDEl +MCMGA1UEChMcU0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMe +U2VjdXJpdHkgQ29tbXVuaWNhdGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoX +DTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRy +dXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3VyaXR5IENvbW11bmlj +YXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANAV +OVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGr +zbl+dp+++T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVM +VAX3NuRFg3sUZdbcDE3R3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQ +hNBqyjoGADdH5H5XTz+L62e4iKrFvlNVspHEfbmwhRkGeC7bYRr6hfVKkaHnFtWO +ojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1KEOtOghY6rCcMU/Gt1SSw +awNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8QIH4D5cs +OPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3 +DQEBCwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpF +coJxDjrSzG+ntKEju/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXc +okgfGT+Ok+vx+hfuzU7jBBJV1uXk3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8 +t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6qtnRGEmyR7jTV7JqR50S+kDFy +1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29mvVXIwAHIRc/ +SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03 +-----END CERTIFICATE----- + +# Issuer: CN=Actalis Authentication Root CA O=Actalis S.p.A./03358520967 +# Subject: CN=Actalis Authentication Root CA O=Actalis S.p.A./03358520967 +# Label: "Actalis Authentication Root CA" +# Serial: 6271844772424770508 +# MD5 Fingerprint: 69:c1:0d:4f:07:a3:1b:c3:fe:56:3d:04:bc:11:f6:a6 +# SHA1 Fingerprint: f3:73:b3:87:06:5a:28:84:8a:f2:f3:4a:ce:19:2b:dd:c7:8e:9c:ac +# SHA256 Fingerprint: 55:92:60:84:ec:96:3a:64:b9:6e:2a:be:01:ce:0b:a8:6a:64:fb:fe:bc:c7:aa:b5:af:c1:55:b3:7f:d7:60:66 +-----BEGIN CERTIFICATE----- +MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UE +BhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8w +MzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290 +IENBMB4XDTExMDkyMjExMjIwMloXDTMwMDkyMjExMjIwMlowazELMAkGA1UEBhMC +SVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1 +ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENB +MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNv +UTufClrJwkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX +4ay8IMKx4INRimlNAJZaby/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9 +KK3giq0itFZljoZUj5NDKd45RnijMCO6zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/ +gCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1fYVEiVRvjRuPjPdA1Yprb +rxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2oxgkg4YQ +51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2F +be8lEfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxe +KF+w6D9Fz8+vm2/7hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4F +v6MGn8i1zeQf1xcGDXqVdFUNaBr8EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbn +fpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5jF66CyCU3nuDuP/jVo23Eek7 +jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLYiDrIn3hm7Ynz +ezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt +ifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQAL +e3KHwGCmSUyIWOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70 +jsNjLiNmsGe+b7bAEzlgqqI0JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDz +WochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKxK3JCaKygvU5a2hi/a5iB0P2avl4V +SM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+Xlff1ANATIGk0k9j +pwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC4yyX +X04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+Ok +fcvHlXHo2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7R +K4X9p2jIugErsWx0Hbhzlefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btU +ZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXemOR/qnuOf0GZvBeyqdn6/axag67XH/JJU +LysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9vwGYT7JZVEc+NHt4bVaT +LnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg== +-----END CERTIFICATE----- + +# Issuer: CN=Buypass Class 2 Root CA O=Buypass AS-983163327 +# Subject: CN=Buypass Class 2 Root CA O=Buypass AS-983163327 +# Label: "Buypass Class 2 Root CA" +# Serial: 2 +# MD5 Fingerprint: 46:a7:d2:fe:45:fb:64:5a:a8:59:90:9b:78:44:9b:29 +# SHA1 Fingerprint: 49:0a:75:74:de:87:0a:47:fe:58:ee:f6:c7:6b:eb:c6:0b:12:40:99 +# SHA256 Fingerprint: 9a:11:40:25:19:7c:5b:b9:5d:94:e6:3d:55:cd:43:79:08:47:b6:46:b2:3c:df:11:ad:a4:a0:0e:ff:15:fb:48 +-----BEGIN CERTIFICATE----- +MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEd +MBsGA1UECgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3Mg +Q2xhc3MgMiBSb290IENBMB4XDTEwMTAyNjA4MzgwM1oXDTQwMTAyNjA4MzgwM1ow +TjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBhc3MgQVMtOTgzMTYzMzI3MSAw +HgYDVQQDDBdCdXlwYXNzIENsYXNzIDIgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEB +BQADggIPADCCAgoCggIBANfHXvfBB9R3+0Mh9PT1aeTuMgHbo4Yf5FkNuud1g1Lr +6hxhFUi7HQfKjK6w3Jad6sNgkoaCKHOcVgb/S2TwDCo3SbXlzwx87vFKu3MwZfPV +L4O2fuPn9Z6rYPnT8Z2SdIrkHJasW4DptfQxh6NR/Md+oW+OU3fUl8FVM5I+GC91 +1K2GScuVr1QGbNgGE41b/+EmGVnAJLqBcXmQRFBoJJRfuLMR8SlBYaNByyM21cHx +MlAQTn/0hpPshNOOvEu/XAFOBz3cFIqUCqTqc/sLUegTBxj6DvEr0VQVfTzh97QZ +QmdiXnfgolXsttlpF9U6r0TtSsWe5HonfOV116rLJeffawrbD02TTqigzXsu8lkB +arcNuAeBfos4GzjmCleZPe4h6KP1DBbdi+w0jpwqHAAVF41og9JwnxgIzRFo1clr +Us3ERo/ctfPYV3Me6ZQ5BL/T3jjetFPsaRyifsSP5BtwrfKi+fv3FmRmaZ9JUaLi +FRhnBkp/1Wy1TbMz4GHrXb7pmA8y1x1LPC5aAVKRCfLf6o3YBkBjqhHk/sM3nhRS +P/TizPJhk9H9Z2vXUq6/aKtAQ6BXNVN48FP4YUIHZMbXb5tMOA1jrGKvNouicwoN +9SG9dKpN6nIDSdvHXx1iY8f93ZHsM+71bbRuMGjeyNYmsHVee7QHIJihdjK4TWxP +AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMmAd+BikoL1Rpzz +uvdMw964o605MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAU18h +9bqwOlI5LJKwbADJ784g7wbylp7ppHR/ehb8t/W2+xUbP6umwHJdELFx7rxP462s +A20ucS6vxOOto70MEae0/0qyexAQH6dXQbLArvQsWdZHEIjzIVEpMMpghq9Gqx3t +OluwlN5E40EIosHsHdb9T7bWR9AUC8rmyrV7d35BH16Dx7aMOZawP5aBQW9gkOLo ++fsicdl9sz1Gv7SEr5AcD48Saq/v7h56rgJKihcrdv6sVIkkLE8/trKnToyokZf7 +KcZ7XC25y2a2t6hbElGFtQl+Ynhw/qlqYLYdDnkM/crqJIByw5c/8nerQyIKx+u2 +DISCLIBrQYoIwOula9+ZEsuK1V6ADJHgJgg2SMX6OBE1/yWDLfJ6v9r9jv6ly0Us +H8SIU653DtmadsWOLB2jutXsMq7Aqqz30XpN69QH4kj3Io6wpJ9qzo6ysmD0oyLQ +I+uUWnpp3Q+/QFesa1lQ2aOZ4W7+jQF5JyMV3pKdewlNWudLSDBaGOYKbeaP4NK7 +5t98biGCwWg5TbSYWGZizEqQXsP6JwSxeRV0mcy+rSDeJmAc61ZRpqPq5KM/p/9h +3PFaTWwyI0PurKju7koSCTxdccK+efrCh2gdC/1cacwG0Jp9VJkqyTkaGa9LKkPz +Y11aWOIv4x3kqdbQCtCev9eBCfHJxyYNrJgWVqA= +-----END CERTIFICATE----- + +# Issuer: CN=Buypass Class 3 Root CA O=Buypass AS-983163327 +# Subject: CN=Buypass Class 3 Root CA O=Buypass AS-983163327 +# Label: "Buypass Class 3 Root CA" +# Serial: 2 +# MD5 Fingerprint: 3d:3b:18:9e:2c:64:5a:e8:d5:88:ce:0e:f9:37:c2:ec +# SHA1 Fingerprint: da:fa:f7:fa:66:84:ec:06:8f:14:50:bd:c7:c2:81:a5:bc:a9:64:57 +# SHA256 Fingerprint: ed:f7:eb:bc:a2:7a:2a:38:4d:38:7b:7d:40:10:c6:66:e2:ed:b4:84:3e:4c:29:b4:ae:1d:5b:93:32:e6:b2:4d +-----BEGIN CERTIFICATE----- +MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEd +MBsGA1UECgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3Mg +Q2xhc3MgMyBSb290IENBMB4XDTEwMTAyNjA4Mjg1OFoXDTQwMTAyNjA4Mjg1OFow +TjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBhc3MgQVMtOTgzMTYzMzI3MSAw +HgYDVQQDDBdCdXlwYXNzIENsYXNzIDMgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEB +BQADggIPADCCAgoCggIBAKXaCpUWUOOV8l6ddjEGMnqb8RB2uACatVI2zSRHsJ8Y +ZLya9vrVediQYkwiL944PdbgqOkcLNt4EemOaFEVcsfzM4fkoF0LXOBXByow9c3E +N3coTRiR5r/VUv1xLXA+58bEiuPwKAv0dpihi4dVsjoT/Lc+JzeOIuOoTyrvYLs9 +tznDDgFHmV0ST9tD+leh7fmdvhFHJlsTmKtdFoqwNxxXnUX/iJY2v7vKB3tvh2PX +0DJq1l1sDPGzbjniazEuOQAnFN44wOwZZoYS6J1yFhNkUsepNxz9gjDthBgd9K5c +/3ATAOux9TN6S9ZV+AWNS2mw9bMoNlwUxFFzTWsL8TQH2xc519woe2v1n/MuwU8X +KhDzzMro6/1rqy6any2CbgTUUgGTLT2G/H783+9CHaZr77kgxve9oKeV/afmiSTY +zIw0bOIjL9kSGiG5VZFvC5F5GQytQIgLcOJ60g7YaEi7ghM5EFjp2CoHxhLbWNvS +O1UQRwUVZ2J+GGOmRj8JDlQyXr8NYnon74Do29lLBlo3WiXQCBJ31G8JUJc9yB3D +34xFMFbG02SrZvPAXpacw8Tvw3xrizp5f7NJzz3iiZ+gMEuFuZyUJHmPfWupRWgP +K9Dx2hzLabjKSWJtyNBjYt1gD1iqj6G8BaVmos8bdrKEZLFMOVLAMLrwjEsCsLa3 +AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFEe4zf/lb+74suwv +Tg75JbCOPGvDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAACAj +QTUEkMJAYmDv4jVM1z+s4jSQuKFvdvoWFqRINyzpkMLyPPgKn9iB5btb2iUspKdV +cSQy9sgL8rxq+JOssgfCX5/bzMiKqr5qb+FJEMwx14C7u8jYog5kV+qi9cKpMRXS +IGrs/CIBKM+GuIAeqcwRpTzyFrNHnfzSgCHEy9BHcEGhyoMZCCxt8l13nIoUE9Q2 +HJLw5QY33KbmkJs4j1xrG0aGQ0JfPgEHU1RdZX33inOhmlRaHylDFCfChQ+1iHsa +O5S3HWCntZznKWlXWpuTekMwGwPXYshApqr8ZORK15FTAaggiG6cX0S5y2CBNOxv +033aSF/rtJC8LakcC6wc1aJoIIAE1vyxjy+7SjENSoYc6+I2KSb12tjE8nVhz36u +dmNKekBlk4f4HoCMhuWG1o8O/FMsYOgWYRqiPkN7zTlgVGr18okmAWiDSKIz6MkE +kbIRNBE+6tBDGR8Dk5AM/1E9V/RBbuHLoL7ryWPNbczk+DaqaJ3tvV2XcEQNtg41 +3OEMXbugUZTLfhbrES+jkkXITHHZvMmZUldGL1DPvTVp9D0VzgalLA8+9oG6lLvD +u79leNKGef9JOxqDDPDeeOzI8k1MGt6CKfjBWtrt7uYnXuhF0J0cUahoq0Tj0Itq +4/g7u9xN12TyUb7mqqta6THuBrxzvxNiCp/HuZc= +-----END CERTIFICATE----- + +# Issuer: CN=T-TeleSec GlobalRoot Class 3 O=T-Systems Enterprise Services GmbH OU=T-Systems Trust Center +# Subject: CN=T-TeleSec GlobalRoot Class 3 O=T-Systems Enterprise Services GmbH OU=T-Systems Trust Center +# Label: "T-TeleSec GlobalRoot Class 3" +# Serial: 1 +# MD5 Fingerprint: ca:fb:40:a8:4e:39:92:8a:1d:fe:8e:2f:c4:27:ea:ef +# SHA1 Fingerprint: 55:a6:72:3e:cb:f2:ec:cd:c3:23:74:70:19:9d:2a:be:11:e3:81:d1 +# SHA256 Fingerprint: fd:73:da:d3:1c:64:4f:f1:b4:3b:ef:0c:cd:da:96:71:0b:9c:d9:87:5e:ca:7e:31:70:7a:f3:e9:6d:52:2b:bd +-----BEGIN CERTIFICATE----- +MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUx +KzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAd +BgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNl +YyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgxMDAxMTAyOTU2WhcNMzMxMDAxMjM1 +OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnBy +aXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50 +ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN +8ELg63iIVl6bmlQdTQyK9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/ +RLyTPWGrTs0NvvAgJ1gORH8EGoel15YUNpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4 +hqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZFiP0Zf3WHHx+xGwpzJFu5 +ZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W0eDrXltM +EnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGj +QjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1 +A/d2O2GCahKqGFPrAyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOy +WL6ukK2YJ5f+AbGwUgC4TeQbIXQbfsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ +1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzTucpH9sry9uetuUg/vBa3wW30 +6gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7hP0HHRwA11fXT +91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml +e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4p +TpPDpFQUWw== +-----END CERTIFICATE----- + +# Issuer: CN=D-TRUST Root Class 3 CA 2 2009 O=D-Trust GmbH +# Subject: CN=D-TRUST Root Class 3 CA 2 2009 O=D-Trust GmbH +# Label: "D-TRUST Root Class 3 CA 2 2009" +# Serial: 623603 +# MD5 Fingerprint: cd:e0:25:69:8d:47:ac:9c:89:35:90:f7:fd:51:3d:2f +# SHA1 Fingerprint: 58:e8:ab:b0:36:15:33:fb:80:f7:9b:1b:6d:29:d3:ff:8d:5f:00:f0 +# SHA256 Fingerprint: 49:e7:a4:42:ac:f0:ea:62:87:05:00:54:b5:25:64:b6:50:e4:f4:9e:42:e3:48:d6:aa:38:e0:39:e9:57:b1:c1 +-----BEGIN CERTIFICATE----- +MIIEMzCCAxugAwIBAgIDCYPzMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAkRF +MRUwEwYDVQQKDAxELVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBD +bGFzcyAzIENBIDIgMjAwOTAeFw0wOTExMDUwODM1NThaFw0yOTExMDUwODM1NTha +ME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxELVRydXN0IEdtYkgxJzAlBgNVBAMM +HkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTCCASIwDQYJKoZIhvcNAQEB +BQADggEPADCCAQoCggEBANOySs96R+91myP6Oi/WUEWJNTrGa9v+2wBoqOADER03 +UAifTUpolDWzU9GUY6cgVq/eUXjsKj3zSEhQPgrfRlWLJ23DEE0NkVJD2IfgXU42 +tSHKXzlABF9bfsyjxiupQB7ZNoTWSPOSHjRGICTBpFGOShrvUD9pXRl/RcPHAY9R +ySPocq60vFYJfxLLHLGvKZAKyVXMD9O0Gu1HNVpK7ZxzBCHQqr0ME7UAyiZsxGsM +lFqVlNpQmvH/pStmMaTJOKDfHR+4CS7zp+hnUquVH+BGPtikw8paxTGA6Eian5Rp +/hnd2HN8gcqW3o7tszIFZYQ05ub9VxC1X3a/L7AQDcUCAwEAAaOCARowggEWMA8G +A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFP3aFMSfMN4hvR5COfyrYyNJ4PGEMA4G +A1UdDwEB/wQEAwIBBjCB0wYDVR0fBIHLMIHIMIGAoH6gfIZ6bGRhcDovL2RpcmVj +dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwUm9vdCUyMENsYXNzJTIwMyUy +MENBJTIwMiUyMDIwMDksTz1ELVRydXN0JTIwR21iSCxDPURFP2NlcnRpZmljYXRl +cmV2b2NhdGlvbmxpc3QwQ6BBoD+GPWh0dHA6Ly93d3cuZC10cnVzdC5uZXQvY3Js +L2QtdHJ1c3Rfcm9vdF9jbGFzc18zX2NhXzJfMjAwOS5jcmwwDQYJKoZIhvcNAQEL +BQADggEBAH+X2zDI36ScfSF6gHDOFBJpiBSVYEQBrLLpME+bUMJm2H6NMLVwMeni +acfzcNsgFYbQDfC+rAF1hM5+n02/t2A7nPPKHeJeaNijnZflQGDSNiH+0LS4F9p0 +o3/U37CYAqxva2ssJSRyoWXuJVrl5jLn8t+rSfrzkGkj2wTZ51xY/GXUl77M/C4K +zCUqNQT4YJEVdT1B/yMfGchs64JTBKbkTCJNjYy6zltz7GRUUG3RnFX7acM2w4y8 +PIWmawomDeCTmGCufsYkl4phX5GOZpIJhzbNi5stPvZR1FDUWSi9g/LMKHtThm3Y +Johw1+qRzT65ysCQblrGXnRl11z+o+I= +-----END CERTIFICATE----- + +# Issuer: CN=D-TRUST Root Class 3 CA 2 EV 2009 O=D-Trust GmbH +# Subject: CN=D-TRUST Root Class 3 CA 2 EV 2009 O=D-Trust GmbH +# Label: "D-TRUST Root Class 3 CA 2 EV 2009" +# Serial: 623604 +# MD5 Fingerprint: aa:c6:43:2c:5e:2d:cd:c4:34:c0:50:4f:11:02:4f:b6 +# SHA1 Fingerprint: 96:c9:1b:0b:95:b4:10:98:42:fa:d0:d8:22:79:fe:60:fa:b9:16:83 +# SHA256 Fingerprint: ee:c5:49:6b:98:8c:e9:86:25:b9:34:09:2e:ec:29:08:be:d0:b0:f3:16:c2:d4:73:0c:84:ea:f1:f3:d3:48:81 +-----BEGIN CERTIFICATE----- +MIIEQzCCAyugAwIBAgIDCYP0MA0GCSqGSIb3DQEBCwUAMFAxCzAJBgNVBAYTAkRF +MRUwEwYDVQQKDAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBD +bGFzcyAzIENBIDIgRVYgMjAwOTAeFw0wOTExMDUwODUwNDZaFw0yOTExMDUwODUw +NDZaMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxELVRydXN0IEdtYkgxKjAoBgNV +BAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAwOTCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAJnxhDRwui+3MKCOvXwEz75ivJn9gpfSegpn +ljgJ9hBOlSJzmY3aFS3nBfwZcyK3jpgAvDw9rKFs+9Z5JUut8Mxk2og+KbgPCdM0 +3TP1YtHhzRnp7hhPTFiu4h7WDFsVWtg6uMQYZB7jM7K1iXdODL/ZlGsTl28So/6Z +qQTMFexgaDbtCHu39b+T7WYxg4zGcTSHThfqr4uRjRxWQa4iN1438h3Z0S0NL2lR +p75mpoo6Kr3HGrHhFPC+Oh25z1uxav60sUYgovseO3Dvk5h9jHOW8sXvhXCtKSb8 +HgQ+HKDYD8tSg2J87otTlZCpV6LqYQXY+U3EJ/pure3511H3a6UCAwEAAaOCASQw +ggEgMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNOUikxiEyoZLsyvcop9Ntea +HNxnMA4GA1UdDwEB/wQEAwIBBjCB3QYDVR0fBIHVMIHSMIGHoIGEoIGBhn9sZGFw +Oi8vZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290JTIwQ2xh +c3MlMjAzJTIwQ0ElMjAyJTIwRVYlMjAyMDA5LE89RC1UcnVzdCUyMEdtYkgsQz1E +RT9jZXJ0aWZpY2F0ZXJldm9jYXRpb25saXN0MEagRKBChkBodHRwOi8vd3d3LmQt +dHJ1c3QubmV0L2NybC9kLXRydXN0X3Jvb3RfY2xhc3NfM19jYV8yX2V2XzIwMDku +Y3JsMA0GCSqGSIb3DQEBCwUAA4IBAQA07XtaPKSUiO8aEXUHL7P+PPoeUSbrh/Yp +3uDx1MYkCenBz1UbtDDZzhr+BlGmFaQt77JLvyAoJUnRpjZ3NOhk31KxEcdzes05 +nsKtjHEh8lprr988TlWvsoRlFIm5d8sqMb7Po23Pb0iUMkZv53GMoKaEGTcH8gNF +CSuGdXzfX2lXANtu2KZyIktQ1HWYVt+3GP9DQ1CuekR78HlR10M9p9OB0/DJT7na +xpeG0ILD5EJt/rDiZE4OJudANCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqX +KVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVvw9y4AyHqnxbxLFS1 +-----END CERTIFICATE----- + +# Issuer: CN=CA Disig Root R2 O=Disig a.s. +# Subject: CN=CA Disig Root R2 O=Disig a.s. +# Label: "CA Disig Root R2" +# Serial: 10572350602393338211 +# MD5 Fingerprint: 26:01:fb:d8:27:a7:17:9a:45:54:38:1a:43:01:3b:03 +# SHA1 Fingerprint: b5:61:eb:ea:a4:de:e4:25:4b:69:1a:98:a5:57:47:c2:34:c7:d9:71 +# SHA256 Fingerprint: e2:3d:4a:03:6d:7b:70:e9:f5:95:b1:42:20:79:d2:b9:1e:df:bb:1f:b6:51:a0:63:3e:aa:8a:9d:c5:f8:07:03 +-----BEGIN CERTIFICATE----- +MIIFaTCCA1GgAwIBAgIJAJK4iNuwisFjMA0GCSqGSIb3DQEBCwUAMFIxCzAJBgNV +BAYTAlNLMRMwEQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMu +MRkwFwYDVQQDExBDQSBEaXNpZyBSb290IFIyMB4XDTEyMDcxOTA5MTUzMFoXDTQy +MDcxOTA5MTUzMFowUjELMAkGA1UEBhMCU0sxEzARBgNVBAcTCkJyYXRpc2xhdmEx +EzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERpc2lnIFJvb3QgUjIw +ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCio8QACdaFXS1tFPbCw3Oe +NcJxVX6B+6tGUODBfEl45qt5WDza/3wcn9iXAng+a0EE6UG9vgMsRfYvZNSrXaNH +PWSb6WiaxswbP7q+sos0Ai6YVRn8jG+qX9pMzk0DIaPY0jSTVpbLTAwAFjxfGs3I +x2ymrdMxp7zo5eFm1tL7A7RBZckQrg4FY8aAamkw/dLukO8NJ9+flXP04SXabBbe +QTg06ov80egEFGEtQX6sx3dOy1FU+16SGBsEWmjGycT6txOgmLcRK7fWV8x8nhfR +yyX+hk4kLlYMeE2eARKmK6cBZW58Yh2EhN/qwGu1pSqVg8NTEQxzHQuyRpDRQjrO +QG6Vrf/GlK1ul4SOfW+eioANSW1z4nuSHsPzwfPrLgVv2RvPN3YEyLRa5Beny912 +H9AZdugsBbPWnDTYltxhh5EF5EQIM8HauQhl1K6yNg3ruji6DOWbnuuNZt2Zz9aJ +QfYEkoopKW1rOhzndX0CcQ7zwOe9yxndnWCywmZgtrEE7snmhrmaZkCo5xHtgUUD +i/ZnWejBBhG93c+AAk9lQHhcR1DIm+YfgXvkRKhbhZri3lrVx/k6RGZL5DJUfORs +nLMOPReisjQS1n6yqEm70XooQL6iFh/f5DcfEXP7kAplQ6INfPgGAVUzfbANuPT1 +rqVCV3w2EYx7XsQDnYx5nQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud +DwEB/wQEAwIBBjAdBgNVHQ4EFgQUtZn4r7CU9eMg1gqtzk5WpC5uQu0wDQYJKoZI +hvcNAQELBQADggIBACYGXnDnZTPIgm7ZnBc6G3pmsgH2eDtpXi/q/075KMOYKmFM +tCQSin1tERT3nLXK5ryeJ45MGcipvXrA1zYObYVybqjGom32+nNjf7xueQgcnYqf +GopTpti72TVVsRHFqQOzVju5hJMiXn7B9hJSi+osZ7z+Nkz1uM/Rs0mSO9MpDpkb +lvdhuDvEK7Z4bLQjb/D907JedR+Zlais9trhxTF7+9FGs9K8Z7RiVLoJ92Owk6Ka ++elSLotgEqv89WBW7xBci8QaQtyDW2QOy7W81k/BfDxujRNt+3vrMNDcTa/F1bal +TFtxyegxvug4BkihGuLq0t4SOVga/4AOgnXmt8kHbA7v/zjxmHHEt38OFdAlab0i +nSvtBfZGR6ztwPDUO+Ls7pZbkBNOHlY667DvlruWIxG68kOGdGSVyCh13x01utI3 +gzhTODY7z2zp+WsO0PsE6E9312UBeIYMej4hYvF/Y3EMyZ9E26gnonW+boE+18Dr +G5gPcFw0sorMwIUY6256s/daoQe/qUKS82Ail+QUoQebTnbAjn39pCXHR+3/H3Os +zMOl6W8KjptlwlCFtaOgUxLMVYdh84GuEEZhvUQhuMI9dM9+JDX6HAcOmz0iyu8x +L4ysEr3vQCj8KWefshNPZiTEUxnpHikV7+ZtsH8tZ/3zbBt1RqPlShfppNcL +-----END CERTIFICATE----- + +# Issuer: CN=ACCVRAIZ1 O=ACCV OU=PKIACCV +# Subject: CN=ACCVRAIZ1 O=ACCV OU=PKIACCV +# Label: "ACCVRAIZ1" +# Serial: 6828503384748696800 +# MD5 Fingerprint: d0:a0:5a:ee:05:b6:09:94:21:a1:7d:f1:b2:29:82:02 +# SHA1 Fingerprint: 93:05:7a:88:15:c6:4f:ce:88:2f:fa:91:16:52:28:78:bc:53:64:17 +# SHA256 Fingerprint: 9a:6e:c0:12:e1:a7:da:9d:be:34:19:4d:47:8a:d7:c0:db:18:22:fb:07:1d:f1:29:81:49:6e:d1:04:38:41:13 +-----BEGIN CERTIFICATE----- +MIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UE +AwwJQUNDVlJBSVoxMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQsw +CQYDVQQGEwJFUzAeFw0xMTA1MDUwOTM3MzdaFw0zMDEyMzEwOTM3MzdaMEIxEjAQ +BgNVBAMMCUFDQ1ZSQUlaMTEQMA4GA1UECwwHUEtJQUNDVjENMAsGA1UECgwEQUND +VjELMAkGA1UEBhMCRVMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCb +qau/YUqXry+XZpp0X9DZlv3P4uRm7x8fRzPCRKPfmt4ftVTdFXxpNRFvu8gMjmoY +HtiP2Ra8EEg2XPBjs5BaXCQ316PWywlxufEBcoSwfdtNgM3802/J+Nq2DoLSRYWo +G2ioPej0RGy9ocLLA76MPhMAhN9KSMDjIgro6TenGEyxCQ0jVn8ETdkXhBilyNpA +lHPrzg5XPAOBOp0KoVdDaaxXbXmQeOW1tDvYvEyNKKGno6e6Ak4l0Squ7a4DIrhr +IA8wKFSVf+DuzgpmndFALW4ir50awQUZ0m/A8p/4e7MCQvtQqR0tkw8jq8bBD5L/ +0KIV9VMJcRz/RROE5iZe+OCIHAr8Fraocwa48GOEAqDGWuzndN9wrqODJerWx5eH +k6fGioozl2A3ED6XPm4pFdahD9GILBKfb6qkxkLrQaLjlUPTAYVtjrs78yM2x/47 +4KElB0iryYl0/wiPgL/AlmXz7uxLaL2diMMxs0Dx6M/2OLuc5NF/1OVYm3z61PMO +m3WR5LpSLhl+0fXNWhn8ugb2+1KoS5kE3fj5tItQo05iifCHJPqDQsGH+tUtKSpa +cXpkatcnYGMN285J9Y0fkIkyF/hzQ7jSWpOGYdbhdQrqeWZ2iE9x6wQl1gpaepPl +uUsXQA+xtrn13k/c4LOsOxFwYIRKQ26ZIMApcQrAZQIDAQABo4ICyzCCAscwfQYI +KwYBBQUHAQEEcTBvMEwGCCsGAQUFBzAChkBodHRwOi8vd3d3LmFjY3YuZXMvZmls +ZWFkbWluL0FyY2hpdm9zL2NlcnRpZmljYWRvcy9yYWl6YWNjdjEuY3J0MB8GCCsG +AQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB0GA1UdDgQWBBTSh7Tj3zcnk1X2 +VuqB5TbMjB4/vTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNKHtOPfNyeT +VfZW6oHlNsyMHj+9MIIBcwYDVR0gBIIBajCCAWYwggFiBgRVHSAAMIIBWDCCASIG +CCsGAQUFBwICMIIBFB6CARAAQQB1AHQAbwByAGkAZABhAGQAIABkAGUAIABDAGUA +cgB0AGkAZgBpAGMAYQBjAGkA8wBuACAAUgBhAO0AegAgAGQAZQAgAGwAYQAgAEEA +QwBDAFYAIAAoAEEAZwBlAG4AYwBpAGEAIABkAGUAIABUAGUAYwBuAG8AbABvAGcA +7QBhACAAeQAgAEMAZQByAHQAaQBmAGkAYwBhAGMAaQDzAG4AIABFAGwAZQBjAHQA +cgDzAG4AaQBjAGEALAAgAEMASQBGACAAUQA0ADYAMAAxADEANQA2AEUAKQAuACAA +QwBQAFMAIABlAG4AIABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBjAGMAdgAuAGUA +czAwBggrBgEFBQcCARYkaHR0cDovL3d3dy5hY2N2LmVzL2xlZ2lzbGFjaW9uX2Mu +aHRtMFUGA1UdHwROMEwwSqBIoEaGRGh0dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRt +aW4vQXJjaGl2b3MvY2VydGlmaWNhZG9zL3JhaXphY2N2MV9kZXIuY3JsMA4GA1Ud +DwEB/wQEAwIBBjAXBgNVHREEEDAOgQxhY2N2QGFjY3YuZXMwDQYJKoZIhvcNAQEF +BQADggIBAJcxAp/n/UNnSEQU5CmH7UwoZtCPNdpNYbdKl02125DgBS4OxnnQ8pdp +D70ER9m+27Up2pvZrqmZ1dM8MJP1jaGo/AaNRPTKFpV8M9xii6g3+CfYCS0b78gU +JyCpZET/LtZ1qmxNYEAZSUNUY9rizLpm5U9EelvZaoErQNV/+QEnWCzI7UiRfD+m +AM/EKXMRNt6GGT6d7hmKG9Ww7Y49nCrADdg9ZuM8Db3VlFzi4qc1GwQA9j9ajepD +vV+JHanBsMyZ4k0ACtrJJ1vnE5Bc5PUzolVt3OAJTS+xJlsndQAJxGJ3KQhfnlms +tn6tn1QwIgPBHnFk/vk4CpYY3QIUrCPLBhwepH2NDd4nQeit2hW3sCPdK6jT2iWH +7ehVRE2I9DZ+hJp4rPcOVkkO1jMl1oRQQmwgEh0q1b688nCBpHBgvgW1m54ERL5h +I6zppSSMEYCUWqKiuUnSwdzRp+0xESyeGabu4VXhwOrPDYTkF7eifKXeVSUG7szA +h1xA2syVP1XgNce4hL60Xc16gwFy7ofmXx2utYXGJt/mwZrpHgJHnyqobalbz+xF +d3+YJ5oyXSrjhO7FmGYvliAd3djDJ9ew+f7Zfc3Qn48LFFhRny+Lwzgt3uiP1o2H +pPVWQxaZLPSkVrQ0uGE3ycJYgBugl6H8WY3pEfbRD0tVNEYqi4Y7 +-----END CERTIFICATE----- + +# Issuer: CN=TWCA Global Root CA O=TAIWAN-CA OU=Root CA +# Subject: CN=TWCA Global Root CA O=TAIWAN-CA OU=Root CA +# Label: "TWCA Global Root CA" +# Serial: 3262 +# MD5 Fingerprint: f9:03:7e:cf:e6:9e:3c:73:7a:2a:90:07:69:ff:2b:96 +# SHA1 Fingerprint: 9c:bb:48:53:f6:a4:f6:d3:52:a4:e8:32:52:55:60:13:f5:ad:af:65 +# SHA256 Fingerprint: 59:76:90:07:f7:68:5d:0f:cd:50:87:2f:9f:95:d5:75:5a:5b:2b:45:7d:81:f3:69:2b:61:0a:98:67:2f:0e:1b +-----BEGIN CERTIFICATE----- +MIIFQTCCAymgAwIBAgICDL4wDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVFcx +EjAQBgNVBAoTCVRBSVdBTi1DQTEQMA4GA1UECxMHUm9vdCBDQTEcMBoGA1UEAxMT +VFdDQSBHbG9iYWwgUm9vdCBDQTAeFw0xMjA2MjcwNjI4MzNaFw0zMDEyMzExNTU5 +NTlaMFExCzAJBgNVBAYTAlRXMRIwEAYDVQQKEwlUQUlXQU4tQ0ExEDAOBgNVBAsT +B1Jvb3QgQ0ExHDAaBgNVBAMTE1RXQ0EgR2xvYmFsIFJvb3QgQ0EwggIiMA0GCSqG +SIb3DQEBAQUAA4ICDwAwggIKAoICAQCwBdvI64zEbooh745NnHEKH1Jw7W2CnJfF +10xORUnLQEK1EjRsGcJ0pDFfhQKX7EMzClPSnIyOt7h52yvVavKOZsTuKwEHktSz +0ALfUPZVr2YOy+BHYC8rMjk1Ujoog/h7FsYYuGLWRyWRzvAZEk2tY/XTP3VfKfCh +MBwqoJimFb3u/Rk28OKRQ4/6ytYQJ0lM793B8YVwm8rqqFpD/G2Gb3PpN0Wp8DbH +zIh1HrtsBv+baz4X7GGqcXzGHaL3SekVtTzWoWH1EfcFbx39Eb7QMAfCKbAJTibc +46KokWofwpFFiFzlmLhxpRUZyXx1EcxwdE8tmx2RRP1WKKD+u4ZqyPpcC1jcxkt2 +yKsi2XMPpfRaAok/T54igu6idFMqPVMnaR1sjjIsZAAmY2E2TqNGtz99sy2sbZCi +laLOz9qC5wc0GZbpuCGqKX6mOL6OKUohZnkfs8O1CWfe1tQHRvMq2uYiN2DLgbYP +oA/pyJV/v1WRBXrPPRXAb94JlAGD1zQbzECl8LibZ9WYkTunhHiVJqRaCPgrdLQA +BDzfuBSO6N+pjWxnkjMdwLfS7JLIvgm/LCkFbwJrnu+8vyq8W8BQj0FwcYeyTbcE +qYSjMq+u7msXi7Kx/mzhkIyIqJdIzshNy/MGz19qCkKxHh53L46g5pIOBvwFItIm +4TFRfTLcDwIDAQABoyMwITAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB +/zANBgkqhkiG9w0BAQsFAAOCAgEAXzSBdu+WHdXltdkCY4QWwa6gcFGn90xHNcgL +1yg9iXHZqjNB6hQbbCEAwGxCGX6faVsgQt+i0trEfJdLjbDorMjupWkEmQqSpqsn +LhpNgb+E1HAerUf+/UqdM+DyucRFCCEK2mlpc3INvjT+lIutwx4116KD7+U4x6WF +H6vPNOw/KP4M8VeGTslV9xzU2KV9Bnpv1d8Q34FOIWWxtuEXeZVFBs5fzNxGiWNo +RI2T9GRwoD2dKAXDOXC4Ynsg/eTb6QihuJ49CcdP+yz4k3ZB3lLg4VfSnQO8d57+ +nile98FRYB/e2guyLXW3Q0iT5/Z5xoRdgFlglPx4mI88k1HtQJAH32RjJMtOcQWh +15QaiDLxInQirqWm2BJpTGCjAu4r7NRjkgtevi92a6O2JryPA9gK8kxkRr05YuWW +6zRjESjMlfGt7+/cgFhI6Uu46mWs6fyAtbXIRfmswZ/ZuepiiI7E8UuDEq3mi4TW +nsLrgxifarsbJGAzcMzs9zLzXNl5fe+epP7JI8Mk7hWSsT2RTyaGvWZzJBPqpK5j +wa19hAM8EHiGG3njxPPyBJUgriOCxLM6AGK/5jYk4Ve6xx6QddVfP5VhK8E7zeWz +aGHQRiapIVJpLesux+t3zqY6tQMzT3bR51xUAV3LePTJDL/PEo4XLSNolOer/qmy +KwbQBM0= +-----END CERTIFICATE----- + +# Issuer: CN=TeliaSonera Root CA v1 O=TeliaSonera +# Subject: CN=TeliaSonera Root CA v1 O=TeliaSonera +# Label: "TeliaSonera Root CA v1" +# Serial: 199041966741090107964904287217786801558 +# MD5 Fingerprint: 37:41:49:1b:18:56:9a:26:f5:ad:c2:66:fb:40:a5:4c +# SHA1 Fingerprint: 43:13:bb:96:f1:d5:86:9b:c1:4e:6a:92:f6:cf:f6:34:69:87:82:37 +# SHA256 Fingerprint: dd:69:36:fe:21:f8:f0:77:c1:23:a1:a5:21:c1:22:24:f7:22:55:b7:3e:03:a7:26:06:93:e8:a2:4b:0f:a3:89 +-----BEGIN CERTIFICATE----- +MIIFODCCAyCgAwIBAgIRAJW+FqD3LkbxezmCcvqLzZYwDQYJKoZIhvcNAQEFBQAw +NzEUMBIGA1UECgwLVGVsaWFTb25lcmExHzAdBgNVBAMMFlRlbGlhU29uZXJhIFJv +b3QgQ0EgdjEwHhcNMDcxMDE4MTIwMDUwWhcNMzIxMDE4MTIwMDUwWjA3MRQwEgYD +VQQKDAtUZWxpYVNvbmVyYTEfMB0GA1UEAwwWVGVsaWFTb25lcmEgUm9vdCBDQSB2 +MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMK+6yfwIaPzaSZVfp3F +VRaRXP3vIb9TgHot0pGMYzHw7CTww6XScnwQbfQ3t+XmfHnqjLWCi65ItqwA3GV1 +7CpNX8GH9SBlK4GoRz6JI5UwFpB/6FcHSOcZrr9FZ7E3GwYq/t75rH2D+1665I+X +Z75Ljo1kB1c4VWk0Nj0TSO9P4tNmHqTPGrdeNjPUtAa9GAH9d4RQAEX1jF3oI7x+ +/jXh7VB7qTCNGdMJjmhnXb88lxhTuylixcpecsHHltTbLaC0H2kD7OriUPEMPPCs +81Mt8Bz17Ww5OXOAFshSsCPN4D7c3TxHoLs1iuKYaIu+5b9y7tL6pe0S7fyYGKkm +dtwoSxAgHNN/Fnct7W+A90m7UwW7XWjH1Mh1Fj+JWov3F0fUTPHSiXk+TT2YqGHe +Oh7S+F4D4MHJHIzTjU3TlTazN19jY5szFPAtJmtTfImMMsJu7D0hADnJoWjiUIMu +sDor8zagrC/kb2HCUQk5PotTubtn2txTuXZZNp1D5SDgPTJghSJRt8czu90VL6R4 +pgd7gUY2BIbdeTXHlSw7sKMXNeVzH7RcWe/a6hBle3rQf5+ztCo3O3CLm1u5K7fs +slESl1MpWtTwEhDcTwK7EpIvYtQ/aUN8Ddb8WHUBiJ1YFkveupD/RwGJBmr2X7KQ +arMCpgKIv7NHfirZ1fpoeDVNAgMBAAGjPzA9MA8GA1UdEwEB/wQFMAMBAf8wCwYD +VR0PBAQDAgEGMB0GA1UdDgQWBBTwj1k4ALP1j5qWDNXr+nuqF+gTEjANBgkqhkiG +9w0BAQUFAAOCAgEAvuRcYk4k9AwI//DTDGjkk0kiP0Qnb7tt3oNmzqjMDfz1mgbl +dxSR651Be5kqhOX//CHBXfDkH1e3damhXwIm/9fH907eT/j3HEbAek9ALCI18Bmx +0GtnLLCo4MBANzX2hFxc469CeP6nyQ1Q6g2EdvZR74NTxnr/DlZJLo961gzmJ1Tj +TQpgcmLNkQfWpb/ImWvtxBnmq0wROMVvMeJuScg/doAmAyYp4Db29iBT4xdwNBed +Y2gea+zDTYa4EzAvXUYNR0PVG6pZDrlcjQZIrXSHX8f8MVRBE+LHIQ6e4B4N4cB7 +Q4WQxYpYxmUKeFfyxiMPAdkgS94P+5KFdSpcc41teyWRyu5FrgZLAMzTsVlQ2jqI +OylDRl6XK1TOU2+NSueW+r9xDkKLfP0ooNBIytrEgUy7onOTJsjrDNYmiLbAJM+7 +vVvrdX3pCI6GMyx5dwlppYn8s3CQh3aP0yK7Qs69cwsgJirQmz1wHiRszYd2qReW +t88NkvuOGKmYSdGe/mBEciG5Ge3C9THxOUiIkCR1VBatzvT4aRRkOfujuLpwQMcn +HL/EVlP6Y2XQ8xwOFvVrhlhNGNTkDY6lnVuR3HYkUD/GKvvZt5y11ubQ2egZixVx +SK236thZiNSQvxaz2emsWWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY= +-----END CERTIFICATE----- + +# Issuer: CN=T-TeleSec GlobalRoot Class 2 O=T-Systems Enterprise Services GmbH OU=T-Systems Trust Center +# Subject: CN=T-TeleSec GlobalRoot Class 2 O=T-Systems Enterprise Services GmbH OU=T-Systems Trust Center +# Label: "T-TeleSec GlobalRoot Class 2" +# Serial: 1 +# MD5 Fingerprint: 2b:9b:9e:e4:7b:6c:1f:00:72:1a:cc:c1:77:79:df:6a +# SHA1 Fingerprint: 59:0d:2d:7d:88:4f:40:2e:61:7e:a5:62:32:17:65:cf:17:d8:94:e9 +# SHA256 Fingerprint: 91:e2:f5:78:8d:58:10:eb:a7:ba:58:73:7d:e1:54:8a:8e:ca:cd:01:45:98:bc:0b:14:3e:04:1b:17:05:25:52 +-----BEGIN CERTIFICATE----- +MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUx +KzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAd +BgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNl +YyBHbG9iYWxSb290IENsYXNzIDIwHhcNMDgxMDAxMTA0MDE0WhcNMzMxMDAxMjM1 +OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnBy +aXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50 +ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCqX9obX+hzkeXaXPSi5kfl82hVYAUd +AqSzm1nzHoqvNK38DcLZSBnuaY/JIPwhqgcZ7bBcrGXHX+0CfHt8LRvWurmAwhiC +FoT6ZrAIxlQjgeTNuUk/9k9uN0goOA/FvudocP05l03Sx5iRUKrERLMjfTlH6VJi +1hKTXrcxlkIF+3anHqP1wvzpesVsqXFP6st4vGCvx9702cu+fjOlbpSD8DT6Iavq +jnKgP6TeMFvvhk1qlVtDRKgQFRzlAVfFmPHmBiiRqiDFt1MmUUOyCxGVWOHAD3bZ +wI18gfNycJ5v/hqO2V81xrJvNHy+SE/iWjnX2J14np+GPgNeGYtEotXHAgMBAAGj +QjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS/ +WSA2AHmgoCJrjNXyYdK4LMuCSjANBgkqhkiG9w0BAQsFAAOCAQEAMQOiYQsfdOhy +NsZt+U2e+iKo4YFWz827n+qrkRk4r6p8FU3ztqONpfSO9kSpp+ghla0+AGIWiPAC +uvxhI+YzmzB6azZie60EI4RYZeLbK4rnJVM3YlNfvNoBYimipidx5joifsFvHZVw +IEoHNN/q/xWA5brXethbdXwFeilHfkCoMRN3zUA7tFFHei4R40cR3p1m0IvVVGb6 +g1XqfMIpiRvpb7PO4gWEyS8+eIVibslfwXhjdFjASBgMmTnrpMwatXlajRWc2BQN +9noHV8cigwUtPJslJj0Ys6lDfMjIq2SPDqO/nBudMNva0Bkuqjzx+zOAduTNrRlP +BSeOE6Fuwg== +-----END CERTIFICATE----- + +# Issuer: CN=Atos TrustedRoot 2011 O=Atos +# Subject: CN=Atos TrustedRoot 2011 O=Atos +# Label: "Atos TrustedRoot 2011" +# Serial: 6643877497813316402 +# MD5 Fingerprint: ae:b9:c4:32:4b:ac:7f:5d:66:cc:77:94:bb:2a:77:56 +# SHA1 Fingerprint: 2b:b1:f5:3e:55:0c:1d:c5:f1:d4:e6:b7:6a:46:4b:55:06:02:ac:21 +# SHA256 Fingerprint: f3:56:be:a2:44:b7:a9:1e:b3:5d:53:ca:9a:d7:86:4a:ce:01:8e:2d:35:d5:f8:f9:6d:df:68:a6:f4:1a:a4:74 +-----BEGIN CERTIFICATE----- +MIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UE +AwwVQXRvcyBUcnVzdGVkUm9vdCAyMDExMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQG +EwJERTAeFw0xMTA3MDcxNDU4MzBaFw0zMDEyMzEyMzU5NTlaMDwxHjAcBgNVBAMM +FUF0b3MgVHJ1c3RlZFJvb3QgMjAxMTENMAsGA1UECgwEQXRvczELMAkGA1UEBhMC +REUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCVhTuXbyo7LjvPpvMp +Nb7PGKw+qtn4TaA+Gke5vJrf8v7MPkfoepbCJI419KkM/IL9bcFyYie96mvr54rM +VD6QUM+A1JX76LWC1BTFtqlVJVfbsVD2sGBkWXppzwO3bw2+yj5vdHLqqjAqc2K+ +SZFhyBH+DgMq92og3AIVDV4VavzjgsG1xZ1kCWyjWZgHJ8cblithdHFsQ/H3NYkQ +4J7sVaE3IqKHBAUsR320HLliKWYoyrfhk/WklAOZuXCFteZI6o1Q/NnezG8HDt0L +cp2AMBYHlT8oDv3FdU9T1nSatCQujgKRz3bFmx5VdJx4IbHwLfELn8LVlhgf8FQi +eowHAgMBAAGjfTB7MB0GA1UdDgQWBBSnpQaxLKYJYO7Rl+lwrrw7GWzbITAPBgNV +HRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKelBrEspglg7tGX6XCuvDsZbNshMBgG +A1UdIAQRMA8wDQYLKwYBBAGwLQMEAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3 +DQEBCwUAA4IBAQAmdzTblEiGKkGdLD4GkGDEjKwLVLgfuXvTBznk+j57sj1O7Z8j +vZfza1zv7v1Apt+hk6EKhqzvINB5Ab149xnYJDE0BAGmuhWawyfc2E8PzBhj/5kP +DpFrdRbhIfzYJsdHt6bPWHJxfrrhTZVHO8mvbaG0weyJ9rQPOLXiZNwlz6bb65pc +maHFCN795trV1lpFDMS3wrUU77QR/w4VtfX128a961qn8FYiqTxlVMYVqL2Gns2D +lmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G3mB/ufNPRJLv +KrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed +-----END CERTIFICATE----- + +# Issuer: CN=QuoVadis Root CA 1 G3 O=QuoVadis Limited +# Subject: CN=QuoVadis Root CA 1 G3 O=QuoVadis Limited +# Label: "QuoVadis Root CA 1 G3" +# Serial: 687049649626669250736271037606554624078720034195 +# MD5 Fingerprint: a4:bc:5b:3f:fe:37:9a:fa:64:f0:e2:fa:05:3d:0b:ab +# SHA1 Fingerprint: 1b:8e:ea:57:96:29:1a:c9:39:ea:b8:0a:81:1a:73:73:c0:93:79:67 +# SHA256 Fingerprint: 8a:86:6f:d1:b2:76:b5:7e:57:8e:92:1c:65:82:8a:2b:ed:58:e9:f2:f2:88:05:41:34:b7:f1:f4:bf:c9:cc:74 +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIUeFhfLq0sGUvjNwc1NBMotZbUZZMwDQYJKoZIhvcNAQEL +BQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc +BgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMSBHMzAeFw0xMjAxMTIxNzI3NDRaFw00 +MjAxMTIxNzI3NDRaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM +aW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDEgRzMwggIiMA0GCSqG +SIb3DQEBAQUAA4ICDwAwggIKAoICAQCgvlAQjunybEC0BJyFuTHK3C3kEakEPBtV +wedYMB0ktMPvhd6MLOHBPd+C5k+tR4ds7FtJwUrVu4/sh6x/gpqG7D0DmVIB0jWe +rNrwU8lmPNSsAgHaJNM7qAJGr6Qc4/hzWHa39g6QDbXwz8z6+cZM5cOGMAqNF341 +68Xfuw6cwI2H44g4hWf6Pser4BOcBRiYz5P1sZK0/CPTz9XEJ0ngnjybCKOLXSoh +4Pw5qlPafX7PGglTvF0FBM+hSo+LdoINofjSxxR3W5A2B4GbPgb6Ul5jxaYA/qXp +UhtStZI5cgMJYr2wYBZupt0lwgNm3fME0UDiTouG9G/lg6AnhF4EwfWQvTA9xO+o +abw4m6SkltFi2mnAAZauy8RRNOoMqv8hjlmPSlzkYZqn0ukqeI1RPToV7qJZjqlc +3sX5kCLliEVx3ZGZbHqfPT2YfF72vhZooF6uCyP8Wg+qInYtyaEQHeTTRCOQiJ/G +KubX9ZqzWB4vMIkIG1SitZgj7Ah3HJVdYdHLiZxfokqRmu8hqkkWCKi9YSgxyXSt +hfbZxbGL0eUQMk1fiyA6PEkfM4VZDdvLCXVDaXP7a3F98N/ETH3Goy7IlXnLc6KO +Tk0k+17kBL5yG6YnLUlamXrXXAkgt3+UuU/xDRxeiEIbEbfnkduebPRq34wGmAOt +zCjvpUfzUwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB +BjAdBgNVHQ4EFgQUo5fW816iEOGrRZ88F2Q87gFwnMwwDQYJKoZIhvcNAQELBQAD +ggIBABj6W3X8PnrHX3fHyt/PX8MSxEBd1DKquGrX1RUVRpgjpeaQWxiZTOOtQqOC +MTaIzen7xASWSIsBx40Bz1szBpZGZnQdT+3Btrm0DWHMY37XLneMlhwqI2hrhVd2 +cDMT/uFPpiN3GPoajOi9ZcnPP/TJF9zrx7zABC4tRi9pZsMbj/7sPtPKlL92CiUN +qXsCHKnQO18LwIE6PWThv6ctTr1NxNgpxiIY0MWscgKCP6o6ojoilzHdCGPDdRS5 +YCgtW2jgFqlmgiNR9etT2DGbe+m3nUvriBbP+V04ikkwj+3x6xn0dxoxGE1nVGwv +b2X52z3sIexe9PSLymBlVNFxZPT5pqOBMzYzcfCkeF9OrYMh3jRJjehZrJ3ydlo2 +8hP0r+AJx2EqbPfgna67hkooby7utHnNkDPDs3b69fBsnQGQ+p6Q9pxyz0fawx/k +NSBT8lTR32GDpgLiJTjehTItXnOQUl1CxM49S+H5GYQd1aJQzEH7QRTDvdbJWqNj +ZgKAvQU6O0ec7AAmTPWIUb+oI38YB7AL7YsmoWTTYUrrXJ/es69nA7Mf3W1daWhp +q1467HxpvMc7hU6eFbm0FU/DlXpY18ls6Wy58yljXrQs8C097Vpl4KlbQMJImYFt +nh8GKjwStIsPm6Ik8KaN1nrgS7ZklmOVhMJKzRwuJIczYOXD +-----END CERTIFICATE----- + +# Issuer: CN=QuoVadis Root CA 2 G3 O=QuoVadis Limited +# Subject: CN=QuoVadis Root CA 2 G3 O=QuoVadis Limited +# Label: "QuoVadis Root CA 2 G3" +# Serial: 390156079458959257446133169266079962026824725800 +# MD5 Fingerprint: af:0c:86:6e:bf:40:2d:7f:0b:3e:12:50:ba:12:3d:06 +# SHA1 Fingerprint: 09:3c:61:f3:8b:8b:dc:7d:55:df:75:38:02:05:00:e1:25:f5:c8:36 +# SHA256 Fingerprint: 8f:e4:fb:0a:f9:3a:4d:0d:67:db:0b:eb:b2:3e:37:c7:1b:f3:25:dc:bc:dd:24:0e:a0:4d:af:58:b4:7e:18:40 +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIURFc0JFuBiZs18s64KztbpybwdSgwDQYJKoZIhvcNAQEL +BQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc +BgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMiBHMzAeFw0xMjAxMTIxODU5MzJaFw00 +MjAxMTIxODU5MzJaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM +aW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDIgRzMwggIiMA0GCSqG +SIb3DQEBAQUAA4ICDwAwggIKAoICAQChriWyARjcV4g/Ruv5r+LrI3HimtFhZiFf +qq8nUeVuGxbULX1QsFN3vXg6YOJkApt8hpvWGo6t/x8Vf9WVHhLL5hSEBMHfNrMW +n4rjyduYNM7YMxcoRvynyfDStNVNCXJJ+fKH46nafaF9a7I6JaltUkSs+L5u+9ym +c5GQYaYDFCDy54ejiK2toIz/pgslUiXnFgHVy7g1gQyjO/Dh4fxaXc6AcW34Sas+ +O7q414AB+6XrW7PFXmAqMaCvN+ggOp+oMiwMzAkd056OXbxMmO7FGmh77FOm6RQ1 +o9/NgJ8MSPsc9PG/Srj61YxxSscfrf5BmrODXfKEVu+lV0POKa2Mq1W/xPtbAd0j +IaFYAI7D0GoT7RPjEiuA3GfmlbLNHiJuKvhB1PLKFAeNilUSxmn1uIZoL1NesNKq +IcGY5jDjZ1XHm26sGahVpkUG0CM62+tlXSoREfA7T8pt9DTEceT/AFr2XK4jYIVz +8eQQsSWu1ZK7E8EM4DnatDlXtas1qnIhO4M15zHfeiFuuDIIfR0ykRVKYnLP43eh +vNURG3YBZwjgQQvD6xVu+KQZ2aKrr+InUlYrAoosFCT5v0ICvybIxo/gbjh9Uy3l +7ZizlWNof/k19N+IxWA1ksB8aRxhlRbQ694Lrz4EEEVlWFA4r0jyWbYW8jwNkALG +cC4BrTwV1wIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB +BjAdBgNVHQ4EFgQU7edvdlq/YOxJW8ald7tyFnGbxD0wDQYJKoZIhvcNAQELBQAD +ggIBAJHfgD9DCX5xwvfrs4iP4VGyvD11+ShdyLyZm3tdquXK4Qr36LLTn91nMX66 +AarHakE7kNQIXLJgapDwyM4DYvmL7ftuKtwGTTwpD4kWilhMSA/ohGHqPHKmd+RC +roijQ1h5fq7KpVMNqT1wvSAZYaRsOPxDMuHBR//47PERIjKWnML2W2mWeyAMQ0Ga +W/ZZGYjeVYg3UQt4XAoeo0L9x52ID8DyeAIkVJOviYeIyUqAHerQbj5hLja7NQ4n +lv1mNDthcnPxFlxHBlRJAHpYErAK74X9sbgzdWqTHBLmYF5vHX/JHyPLhGGfHoJE ++V+tYlUkmlKY7VHnoX6XOuYvHxHaU4AshZ6rNRDbIl9qxV6XU/IyAgkwo1jwDQHV +csaxfGl7w/U2Rcxhbl5MlMVerugOXou/983g7aEOGzPuVBj+D77vfoRrQ+NwmNtd +dbINWQeFFSM51vHfqSYP1kjHs6Yi9TM3WpVHn3u6GBVv/9YUZINJ0gpnIdsPNWNg +KCLjsZWDzYWm3S8P52dSbrsvhXz1SnPnxT7AvSESBT/8twNJAlvIJebiVDj1eYeM +HVOyToV7BjjHLPj4sHKNJeV3UvQDHEimUF+IIDBu8oJDqz2XhOdT+yHBTw8imoa4 +WSr2Rz0ZiC3oheGe7IUIarFsNMkd7EgrO3jtZsSOeWmD3n+M +-----END CERTIFICATE----- + +# Issuer: CN=QuoVadis Root CA 3 G3 O=QuoVadis Limited +# Subject: CN=QuoVadis Root CA 3 G3 O=QuoVadis Limited +# Label: "QuoVadis Root CA 3 G3" +# Serial: 268090761170461462463995952157327242137089239581 +# MD5 Fingerprint: df:7d:b9:ad:54:6f:68:a1:df:89:57:03:97:43:b0:d7 +# SHA1 Fingerprint: 48:12:bd:92:3c:a8:c4:39:06:e7:30:6d:27:96:e6:a4:cf:22:2e:7d +# SHA256 Fingerprint: 88:ef:81:de:20:2e:b0:18:45:2e:43:f8:64:72:5c:ea:5f:bd:1f:c2:d9:d2:05:73:07:09:c5:d8:b8:69:0f:46 +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIULvWbAiin23r/1aOp7r0DoM8Sah0wDQYJKoZIhvcNAQEL +BQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc +BgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMyBHMzAeFw0xMjAxMTIyMDI2MzJaFw00 +MjAxMTIyMDI2MzJaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM +aW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDMgRzMwggIiMA0GCSqG +SIb3DQEBAQUAA4ICDwAwggIKAoICAQCzyw4QZ47qFJenMioKVjZ/aEzHs286IxSR +/xl/pcqs7rN2nXrpixurazHb+gtTTK/FpRp5PIpM/6zfJd5O2YIyC0TeytuMrKNu +FoM7pmRLMon7FhY4futD4tN0SsJiCnMK3UmzV9KwCoWdcTzeo8vAMvMBOSBDGzXR +U7Ox7sWTaYI+FrUoRqHe6okJ7UO4BUaKhvVZR74bbwEhELn9qdIoyhA5CcoTNs+c +ra1AdHkrAj80//ogaX3T7mH1urPnMNA3I4ZyYUUpSFlob3emLoG+B01vr87ERROR +FHAGjx+f+IdpsQ7vw4kZ6+ocYfx6bIrc1gMLnia6Et3UVDmrJqMz6nWB2i3ND0/k +A9HvFZcba5DFApCTZgIhsUfei5pKgLlVj7WiL8DWM2fafsSntARE60f75li59wzw +eyuxwHApw0BiLTtIadwjPEjrewl5qW3aqDCYz4ByA4imW0aucnl8CAMhZa634Ryl +sSqiMd5mBPfAdOhx3v89WcyWJhKLhZVXGqtrdQtEPREoPHtht+KPZ0/l7DxMYIBp +VzgeAVuNVejH38DMdyM0SXV89pgR6y3e7UEuFAUCf+D+IOs15xGsIs5XPd7JMG0Q +A4XN8f+MFrXBsj6IbGB/kE+V9/YtrQE5BwT6dYB9v0lQ7e/JxHwc64B+27bQ3RP+ +ydOc17KXqQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB +BjAdBgNVHQ4EFgQUxhfQvKjqAkPyGwaZXSuQILnXnOQwDQYJKoZIhvcNAQELBQAD +ggIBADRh2Va1EodVTd2jNTFGu6QHcrxfYWLopfsLN7E8trP6KZ1/AvWkyaiTt3px +KGmPc+FSkNrVvjrlt3ZqVoAh313m6Tqe5T72omnHKgqwGEfcIHB9UqM+WXzBusnI +FUBhynLWcKzSt/Ac5IYp8M7vaGPQtSCKFWGafoaYtMnCdvvMujAWzKNhxnQT5Wvv +oxXqA/4Ti2Tk08HS6IT7SdEQTXlm66r99I0xHnAUrdzeZxNMgRVhvLfZkXdxGYFg +u/BYpbWcC/ePIlUnwEsBbTuZDdQdm2NnL9DuDcpmvJRPpq3t/O5jrFc/ZSXPsoaP +0Aj/uHYUbt7lJ+yreLVTubY/6CD50qi+YUbKh4yE8/nxoGibIh6BJpsQBJFxwAYf +3KDTuVan45gtf4Od34wrnDKOMpTwATwiKp9Dwi7DmDkHOHv8XgBCH/MyJnmDhPbl +8MFREsALHgQjDFSlTC9JxUrRtm5gDWv8a4uFJGS3iQ6rJUdbPM9+Sb3H6QrG2vd+ +DhcI00iX0HGS8A85PjRqHH3Y8iKuu2n0M7SmSFXRDw4m6Oy2Cy2nhTXN/VnIn9HN +PlopNLk9hM6xZdRZkZFWdSHBd575euFgndOtBBj0fOtek49TSiIp+EgrPk2GrFt/ +ywaZWWDYWGWVjUTR939+J399roD1B0y2PpxxVJkES/1Y+Zj0 +-----END CERTIFICATE----- + +# Issuer: CN=DigiCert Assured ID Root G2 O=DigiCert Inc OU=www.digicert.com +# Subject: CN=DigiCert Assured ID Root G2 O=DigiCert Inc OU=www.digicert.com +# Label: "DigiCert Assured ID Root G2" +# Serial: 15385348160840213938643033620894905419 +# MD5 Fingerprint: 92:38:b9:f8:63:24:82:65:2c:57:33:e6:fe:81:8f:9d +# SHA1 Fingerprint: a1:4b:48:d9:43:ee:0a:0e:40:90:4f:3c:e0:a4:c0:91:93:51:5d:3f +# SHA256 Fingerprint: 7d:05:eb:b6:82:33:9f:8c:94:51:ee:09:4e:eb:fe:fa:79:53:a1:14:ed:b2:f4:49:49:45:2f:ab:7d:2f:c1:85 +-----BEGIN CERTIFICATE----- +MIIDljCCAn6gAwIBAgIQC5McOtY5Z+pnI7/Dr5r0SzANBgkqhkiG9w0BAQsFADBl +MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv +b3QgRzIwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBlMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl +cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIwggEi +MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ5ygvUj82ckmIkzTz+GoeMVSA +n61UQbVH35ao1K+ALbkKz3X9iaV9JPrjIgwrvJUXCzO/GU1BBpAAvQxNEP4Htecc +biJVMWWXvdMX0h5i89vqbFCMP4QMls+3ywPgym2hFEwbid3tALBSfK+RbLE4E9Hp +EgjAALAcKxHad3A2m67OeYfcgnDmCXRwVWmvo2ifv922ebPynXApVfSr/5Vh88lA +bx3RvpO704gqu52/clpWcTs/1PPRCv4o76Pu2ZmvA9OPYLfykqGxvYmJHzDNw6Yu +YjOuFgJ3RFrngQo8p0Quebg/BLxcoIfhG69Rjs3sLPr4/m3wOnyqi+RnlTGNAgMB +AAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQW +BBTOw0q5mVXyuNtgv6l+vVa1lzan1jANBgkqhkiG9w0BAQsFAAOCAQEAyqVVjOPI +QW5pJ6d1Ee88hjZv0p3GeDgdaZaikmkuOGybfQTUiaWxMTeKySHMq2zNixya1r9I +0jJmwYrA8y8678Dj1JGG0VDjA9tzd29KOVPt3ibHtX2vK0LRdWLjSisCx1BL4Gni +lmwORGYQRI+tBev4eaymG+g3NJ1TyWGqolKvSnAWhsI6yLETcDbYz+70CjTVW0z9 +B5yiutkBclzzTcHdDrEcDcRjvq30FPuJ7KJBDkzMyFdA0G4Dqs0MjomZmWzwPDCv +ON9vvKO+KSAnq3T/EyJ43pdSVR6DtVQgA+6uwE9W3jfMw3+qBCe703e4YtsXfJwo +IhNzbM8m9Yop5w== +-----END CERTIFICATE----- + +# Issuer: CN=DigiCert Assured ID Root G3 O=DigiCert Inc OU=www.digicert.com +# Subject: CN=DigiCert Assured ID Root G3 O=DigiCert Inc OU=www.digicert.com +# Label: "DigiCert Assured ID Root G3" +# Serial: 15459312981008553731928384953135426796 +# MD5 Fingerprint: 7c:7f:65:31:0c:81:df:8d:ba:3e:99:e2:5c:ad:6e:fb +# SHA1 Fingerprint: f5:17:a2:4f:9a:48:c6:c9:f8:a2:00:26:9f:dc:0f:48:2c:ab:30:89 +# SHA256 Fingerprint: 7e:37:cb:8b:4c:47:09:0c:ab:36:55:1b:a6:f4:5d:b8:40:68:0f:ba:16:6a:95:2d:b1:00:71:7f:43:05:3f:c2 +-----BEGIN CERTIFICATE----- +MIICRjCCAc2gAwIBAgIQC6Fa+h3foLVJRK/NJKBs7DAKBggqhkjOPQQDAzBlMQsw +CQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cu +ZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3Qg +RzMwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBlMQswCQYDVQQGEwJV +UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu +Y29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwdjAQBgcq +hkjOPQIBBgUrgQQAIgNiAAQZ57ysRGXtzbg/WPuNsVepRC0FFfLvC/8QdJ+1YlJf +Zn4f5dwbRXkLzMZTCp2NXQLZqVneAlr2lSoOjThKiknGvMYDOAdfVdp+CW7if17Q +RSAPWXYQ1qAk8C3eNvJsKTmjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgGGMB0GA1UdDgQWBBTL0L2p4ZgFUaFNN6KDec6NHSrkhDAKBggqhkjOPQQD +AwNnADBkAjAlpIFFAmsSS3V0T8gj43DydXLefInwz5FyYZ5eEJJZVrmDxxDnOOlY +JjZ91eQ0hjkCMHw2U/Aw5WJjOpnitqM7mzT6HtoQknFekROn3aRukswy1vUhZscv +6pZjamVFkpUBtA== +-----END CERTIFICATE----- + +# Issuer: CN=DigiCert Global Root G2 O=DigiCert Inc OU=www.digicert.com +# Subject: CN=DigiCert Global Root G2 O=DigiCert Inc OU=www.digicert.com +# Label: "DigiCert Global Root G2" +# Serial: 4293743540046975378534879503202253541 +# MD5 Fingerprint: e4:a6:8a:c8:54:ac:52:42:46:0a:fd:72:48:1b:2a:44 +# SHA1 Fingerprint: df:3c:24:f9:bf:d6:66:76:1b:26:80:73:fe:06:d1:cc:8d:4f:82:a4 +# SHA256 Fingerprint: cb:3c:cb:b7:60:31:e5:e0:13:8f:8d:d3:9a:23:f9:de:47:ff:c3:5e:43:c1:14:4c:ea:27:d4:6a:5a:b1:cb:5f +-----BEGIN CERTIFICATE----- +MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBh +MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH +MjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVT +MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j +b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkqhkiG +9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI +2/Ou8jqJkTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx +1x7e/dfgy5SDN67sH0NO3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQ +q2EGnI/yuum06ZIya7XzV+hdG82MHauVBJVJ8zUtluNJbd134/tJS7SsVQepj5Wz +tCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyMUNGPHgm+F6HmIcr9g+UQ +vIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQABo0IwQDAP +BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV +5uNu5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY +1Yl9PMWLSn/pvtsrF9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4 +NeF22d+mQrvHRAiGfzZ0JFrabA0UWTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NG +Fdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBHQRFXGU7Aj64GxJUTFy8bJZ91 +8rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/iyK5S9kJRaTe +pLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl +MrY= +-----END CERTIFICATE----- + +# Issuer: CN=DigiCert Global Root G3 O=DigiCert Inc OU=www.digicert.com +# Subject: CN=DigiCert Global Root G3 O=DigiCert Inc OU=www.digicert.com +# Label: "DigiCert Global Root G3" +# Serial: 7089244469030293291760083333884364146 +# MD5 Fingerprint: f5:5d:a4:50:a5:fb:28:7e:1e:0f:0d:cc:96:57:56:ca +# SHA1 Fingerprint: 7e:04:de:89:6a:3e:66:6d:00:e6:87:d3:3f:fa:d9:3b:e8:3d:34:9e +# SHA256 Fingerprint: 31:ad:66:48:f8:10:41:38:c7:38:f3:9e:a4:32:01:33:39:3e:3a:18:cc:02:29:6e:f9:7c:2a:c9:ef:67:31:d0 +-----BEGIN CERTIFICATE----- +MIICPzCCAcWgAwIBAgIQBVVWvPJepDU1w6QP1atFcjAKBggqhkjOPQQDAzBhMQsw +CQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cu +ZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMzAe +Fw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVTMRUw +EwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20x +IDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEczMHYwEAYHKoZIzj0CAQYF +K4EEACIDYgAE3afZu4q4C/sLfyHS8L6+c/MzXRq8NOrexpu80JX28MzQC7phW1FG +fp4tn+6OYwwX7Adw9c+ELkCDnOg/QW07rdOkFFk2eJ0DQ+4QE2xy3q6Ip6FrtUPO +Z9wj/wMco+I+o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAd +BgNVHQ4EFgQUs9tIpPmhxdiuNkHMEWNpYim8S8YwCgYIKoZIzj0EAwMDaAAwZQIx +AK288mw/EkrRLTnDCgmXc/SINoyIJ7vmiI1Qhadj+Z4y3maTD/HMsQmP3Wyr+mt/ +oAIwOWZbwmSNuJ5Q3KjVSaLtx9zRSX8XAbjIho9OjIgrqJqpisXRAL34VOKa5Vt8 +sycX +-----END CERTIFICATE----- + +# Issuer: CN=DigiCert Trusted Root G4 O=DigiCert Inc OU=www.digicert.com +# Subject: CN=DigiCert Trusted Root G4 O=DigiCert Inc OU=www.digicert.com +# Label: "DigiCert Trusted Root G4" +# Serial: 7451500558977370777930084869016614236 +# MD5 Fingerprint: 78:f2:fc:aa:60:1f:2f:b4:eb:c9:37:ba:53:2e:75:49 +# SHA1 Fingerprint: dd:fb:16:cd:49:31:c9:73:a2:03:7d:3f:c8:3a:4d:7d:77:5d:05:e4 +# SHA256 Fingerprint: 55:2f:7b:dc:f1:a7:af:9e:6c:e6:72:01:7f:4f:12:ab:f7:72:40:c7:8e:76:1a:c2:03:d1:d9:d2:0a:c8:99:88 +-----BEGIN CERTIFICATE----- +MIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBi +MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3Qg +RzQwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBiMQswCQYDVQQGEwJV +UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu +Y29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0GCSqG +SIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3y +ithZwuEppz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1If +xp4VpX6+n6lXFllVcq9ok3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDV +ySAdYyktzuxeTsiT+CFhmzTrBcZe7FsavOvJz82sNEBfsXpm7nfISKhmV1efVFiO +DCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGYQJB5w3jHtrHEtWoYOAMQ +jdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6MUSaM0C/ +CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCi +EhtmmnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADM +fRyVw4/3IbKyEbe7f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QY +uKZ3AeEPlAwhHbJUKSWJbOUOUlFHdL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXK +chYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8oR7FwI+isX4KJpn15GkvmB0t +9dmpsh3lGwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB +hjAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wDQYJKoZIhvcNAQEMBQAD +ggIBALth2X2pbL4XxJEbw6GiAI3jZGgPVs93rnD5/ZpKmbnJeFwMDF/k5hQpVgs2 +SV1EY+CtnJYYZhsjDT156W1r1lT40jzBQ0CuHVD1UvyQO7uYmWlrx8GnqGikJ9yd ++SeuMIW59mdNOj6PWTkiU0TryF0Dyu1Qen1iIQqAyHNm0aAFYF/opbSnr6j3bTWc +fFqK1qI4mfN4i/RN0iAL3gTujJtHgXINwBQy7zBZLq7gcfJW5GqXb5JQbZaNaHqa +sjYUegbyJLkJEVDXCLG4iXqEI2FCKeWjzaIgQdfRnGTZ6iahixTXTBmyUEFxPT9N +cCOGDErcgdLMMpSEDQgJlxxPwO5rIHQw0uA5NBCFIRUBCOhVMt5xSdkoF1BN5r5N +0XWs0Mr7QbhDparTwwVETyw2m+L64kW4I1NsBm9nVX9GtUw/bihaeSbSpKhil9Ie +4u1Ki7wb/UdKDd9nZn6yW0HQO+T0O/QEY+nvwlQAUaCKKsnOeMzV6ocEGLPOr0mI +r/OSmbaz5mEP0oUA51Aa5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1 +/YldvIViHTLSoCtU7ZpXwdv6EM8Zt4tKG48BtieVU+i2iW1bvGjUI+iLUaJW+fCm +gKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP82Z+ +-----END CERTIFICATE----- + +# Issuer: CN=COMODO RSA Certification Authority O=COMODO CA Limited +# Subject: CN=COMODO RSA Certification Authority O=COMODO CA Limited +# Label: "COMODO RSA Certification Authority" +# Serial: 101909084537582093308941363524873193117 +# MD5 Fingerprint: 1b:31:b0:71:40:36:cc:14:36:91:ad:c4:3e:fd:ec:18 +# SHA1 Fingerprint: af:e5:d2:44:a8:d1:19:42:30:ff:47:9f:e2:f8:97:bb:cd:7a:8c:b4 +# SHA256 Fingerprint: 52:f0:e1:c4:e5:8e:c6:29:29:1b:60:31:7f:07:46:71:b8:5d:7e:a8:0d:5b:07:27:34:63:53:4b:32:b4:02:34 +-----BEGIN CERTIFICATE----- +MIIF2DCCA8CgAwIBAgIQTKr5yttjb+Af907YWwOGnTANBgkqhkiG9w0BAQwFADCB +hTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G +A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNV +BAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAwMTE5 +MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgT +EkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR +Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCR +6FSS0gpWsawNJN3Fz0RndJkrN6N9I3AAcbxT38T6KhKPS38QVr2fcHK3YX/JSw8X +pz3jsARh7v8Rl8f0hj4K+j5c+ZPmNHrZFGvnnLOFoIJ6dq9xkNfs/Q36nGz637CC +9BR++b7Epi9Pf5l/tfxnQ3K9DADWietrLNPtj5gcFKt+5eNu/Nio5JIk2kNrYrhV +/erBvGy2i/MOjZrkm2xpmfh4SDBF1a3hDTxFYPwyllEnvGfDyi62a+pGx8cgoLEf +Zd5ICLqkTqnyg0Y3hOvozIFIQ2dOciqbXL1MGyiKXCJ7tKuY2e7gUYPDCUZObT6Z ++pUX2nwzV0E8jVHtC7ZcryxjGt9XyD+86V3Em69FmeKjWiS0uqlWPc9vqv9JWL7w +qP/0uK3pN/u6uPQLOvnoQ0IeidiEyxPx2bvhiWC4jChWrBQdnArncevPDt09qZah +SL0896+1DSJMwBGB7FY79tOi4lu3sgQiUpWAk2nojkxl8ZEDLXB0AuqLZxUpaVIC +u9ffUGpVRr+goyhhf3DQw6KqLCGqR84onAZFdr+CGCe01a60y1Dma/RMhnEw6abf +Fobg2P9A3fvQQoh/ozM6LlweQRGBY84YcWsr7KaKtzFcOmpH4MN5WdYgGq/yapiq +crxXStJLnbsQ/LBMQeXtHT1eKJ2czL+zUdqnR+WEUwIDAQABo0IwQDAdBgNVHQ4E +FgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB +/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAArx1UaEt65Ru2yyTUEUAJNMnMvl +wFTPoCWOAvn9sKIN9SCYPBMtrFaisNZ+EZLpLrqeLppysb0ZRGxhNaKatBYSaVqM +4dc+pBroLwP0rmEdEBsqpIt6xf4FpuHA1sj+nq6PK7o9mfjYcwlYRm6mnPTXJ9OV +2jeDchzTc+CiR5kDOF3VSXkAKRzH7JsgHAckaVd4sjn8OoSgtZx8jb8uk2Intzna +FxiuvTwJaP+EmzzV1gsD41eeFPfR60/IvYcjt7ZJQ3mFXLrrkguhxuhoqEwWsRqZ +CuhTLJK7oQkYdQxlqHvLI7cawiiFwxv/0Cti76R7CZGYZ4wUAc1oBmpjIXUDgIiK +boHGhfKppC3n9KUkEEeDys30jXlYsQab5xoq2Z0B15R97QNKyvDb6KkBPvVWmcke +jkk9u+UJueBPSZI9FoJAzMxZxuY67RIuaTxslbH9qh17f4a+Hg4yRvv7E491f0yL +S0Zj/gA0QHDBw7mh3aZw4gSzQbzpgJHqZJx64SIDqZxubw5lT2yHh17zbqD5daWb +QOhTsiedSrnAdyGN/4fy3ryM7xfft0kL0fJuMAsaDk527RH89elWsn2/x20Kk4yl +0MC2Hb46TpSi125sC8KKfPog88Tk5c0NqMuRkrF8hey1FGlmDoLnzc7ILaZRfyHB +NVOFBkpdn627G190 +-----END CERTIFICATE----- + +# Issuer: CN=USERTrust RSA Certification Authority O=The USERTRUST Network +# Subject: CN=USERTrust RSA Certification Authority O=The USERTRUST Network +# Label: "USERTrust RSA Certification Authority" +# Serial: 2645093764781058787591871645665788717 +# MD5 Fingerprint: 1b:fe:69:d1:91:b7:19:33:a3:72:a8:0f:e1:55:e5:b5 +# SHA1 Fingerprint: 2b:8f:1b:57:33:0d:bb:a2:d0:7a:6c:51:f7:0e:e9:0d:da:b9:ad:8e +# SHA256 Fingerprint: e7:93:c9:b0:2f:d8:aa:13:e2:1c:31:22:8a:cc:b0:81:19:64:3b:74:9c:89:89:64:b1:74:6d:46:c3:d4:cb:d2 +-----BEGIN CERTIFICATE----- +MIIF3jCCA8agAwIBAgIQAf1tMPyjylGoG7xkDjUDLTANBgkqhkiG9w0BAQwFADCB +iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl +cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV +BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAw +MjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMCVVMxEzARBgNV +BAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU +aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2Vy +dGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK +AoICAQCAEmUXNg7D2wiz0KxXDXbtzSfTTK1Qg2HiqiBNCS1kCdzOiZ/MPans9s/B +3PHTsdZ7NygRK0faOca8Ohm0X6a9fZ2jY0K2dvKpOyuR+OJv0OwWIJAJPuLodMkY +tJHUYmTbf6MG8YgYapAiPLz+E/CHFHv25B+O1ORRxhFnRghRy4YUVD+8M/5+bJz/ +Fp0YvVGONaanZshyZ9shZrHUm3gDwFA66Mzw3LyeTP6vBZY1H1dat//O+T23LLb2 +VN3I5xI6Ta5MirdcmrS3ID3KfyI0rn47aGYBROcBTkZTmzNg95S+UzeQc0PzMsNT +79uq/nROacdrjGCT3sTHDN/hMq7MkztReJVni+49Vv4M0GkPGw/zJSZrM233bkf6 +c0Plfg6lZrEpfDKEY1WJxA3Bk1QwGROs0303p+tdOmw1XNtB1xLaqUkL39iAigmT +Yo61Zs8liM2EuLE/pDkP2QKe6xJMlXzzawWpXhaDzLhn4ugTncxbgtNMs+1b/97l +c6wjOy0AvzVVdAlJ2ElYGn+SNuZRkg7zJn0cTRe8yexDJtC/QV9AqURE9JnnV4ee +UB9XVKg+/XRjL7FQZQnmWEIuQxpMtPAlR1n6BB6T1CZGSlCBst6+eLf8ZxXhyVeE +Hg9j1uliutZfVS7qXMYoCAQlObgOK6nyTJccBz8NUvXt7y+CDwIDAQABo0IwQDAd +BgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/BAQDAgEGMA8G +A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAFzUfA3P9wF9QZllDHPF +Up/L+M+ZBn8b2kMVn54CVVeWFPFSPCeHlCjtHzoBN6J2/FNQwISbxmtOuowhT6KO +VWKR82kV2LyI48SqC/3vqOlLVSoGIG1VeCkZ7l8wXEskEVX/JJpuXior7gtNn3/3 +ATiUFJVDBwn7YKnuHKsSjKCaXqeYalltiz8I+8jRRa8YFWSQEg9zKC7F4iRO/Fjs +8PRF/iKz6y+O0tlFYQXBl2+odnKPi4w2r78NBc5xjeambx9spnFixdjQg3IM8WcR +iQycE0xyNN+81XHfqnHd4blsjDwSXWXavVcStkNr/+XeTWYRUc+ZruwXtuhxkYze +Sf7dNXGiFSeUHM9h4ya7b6NnJSFd5t0dCy5oGzuCr+yDZ4XUmFF0sbmZgIn/f3gZ +XHlKYC6SQK5MNyosycdiyA5d9zZbyuAlJQG03RoHnHcAP9Dc1ew91Pq7P8yF1m9/ +qS3fuQL39ZeatTXaw2ewh0qpKJ4jjv9cJ2vhsE/zB+4ALtRZh8tSQZXq9EfX7mRB +VXyNWQKV3WKdwrnuWih0hKWbt5DHDAff9Yk2dDLWKMGwsAvgnEzDHNb842m1R0aB +L6KCq9NjRHDEjf8tM7qtj3u1cIiuPhnPQCjY/MiQu12ZIvVS5ljFH4gxQ+6IHdfG +jjxDah2nGN59PRbxYvnKkKj9 +-----END CERTIFICATE----- + +# Issuer: CN=USERTrust ECC Certification Authority O=The USERTRUST Network +# Subject: CN=USERTrust ECC Certification Authority O=The USERTRUST Network +# Label: "USERTrust ECC Certification Authority" +# Serial: 123013823720199481456569720443997572134 +# MD5 Fingerprint: fa:68:bc:d9:b5:7f:ad:fd:c9:1d:06:83:28:cc:24:c1 +# SHA1 Fingerprint: d1:cb:ca:5d:b2:d5:2a:7f:69:3b:67:4d:e5:f0:5a:1d:0c:95:7d:f0 +# SHA256 Fingerprint: 4f:f4:60:d5:4b:9c:86:da:bf:bc:fc:57:12:e0:40:0d:2b:ed:3f:bc:4d:4f:bd:aa:86:e0:6a:dc:d2:a9:ad:7a +-----BEGIN CERTIFICATE----- +MIICjzCCAhWgAwIBAgIQXIuZxVqUxdJxVt7NiYDMJjAKBggqhkjOPQQDAzCBiDEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNl +eSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMT +JVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAwMjAx +MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgT +Ck5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVUaGUg +VVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlm +aWNhdGlvbiBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQarFRaqflo +I+d61SRvU8Za2EurxtW20eZzca7dnNYMYf3boIkDuAUU7FfO7l0/4iGzzvfUinng +o4N+LZfQYcTxmdwlkWOrfzCjtHDix6EznPO/LlxTsV+zfTJ/ijTjeXmjQjBAMB0G +A1UdDgQWBBQ64QmG1M8ZwpZ2dEl23OA1xmNjmjAOBgNVHQ8BAf8EBAMCAQYwDwYD +VR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjA2Z6EWCNzklwBBHU6+4WMB +zzuqQhFkoJ2UOQIReVx7Hfpkue4WQrO/isIJxOzksU0CMQDpKmFHjFJKS04YcPbW +RNZu9YO6bVi9JNlWSOrvxKJGgYhqOkbRqZtNyWHa0V1Xahg= +-----END CERTIFICATE----- + +# Issuer: CN=GlobalSign O=GlobalSign OU=GlobalSign ECC Root CA - R5 +# Subject: CN=GlobalSign O=GlobalSign OU=GlobalSign ECC Root CA - R5 +# Label: "GlobalSign ECC Root CA - R5" +# Serial: 32785792099990507226680698011560947931244 +# MD5 Fingerprint: 9f:ad:3b:1c:02:1e:8a:ba:17:74:38:81:0c:a2:bc:08 +# SHA1 Fingerprint: 1f:24:c6:30:cd:a4:18:ef:20:69:ff:ad:4f:dd:5f:46:3a:1b:69:aa +# SHA256 Fingerprint: 17:9f:bc:14:8a:3d:d0:0f:d2:4e:a1:34:58:cc:43:bf:a7:f5:9c:81:82:d7:83:a5:13:f6:eb:ec:10:0c:89:24 +-----BEGIN CERTIFICATE----- +MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEk +MCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpH +bG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoX +DTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBD +QSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWdu +MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6SFkc +8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8ke +hOvRnkmSh5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYD +VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYI +KoZIzj0EAwMDaAAwZQIxAOVpEslu28YxuglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg +515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7yFz9SO8NdCKoCOJuxUnO +xwy8p2Fp8fc74SrL+SvzZpA3 +-----END CERTIFICATE----- + +# Issuer: CN=IdenTrust Commercial Root CA 1 O=IdenTrust +# Subject: CN=IdenTrust Commercial Root CA 1 O=IdenTrust +# Label: "IdenTrust Commercial Root CA 1" +# Serial: 13298821034946342390520003877796839426 +# MD5 Fingerprint: b3:3e:77:73:75:ee:a0:d3:e3:7e:49:63:49:59:bb:c7 +# SHA1 Fingerprint: df:71:7e:aa:4a:d9:4e:c9:55:84:99:60:2d:48:de:5f:bc:f0:3a:25 +# SHA256 Fingerprint: 5d:56:49:9b:e4:d2:e0:8b:cf:ca:d0:8a:3e:38:72:3d:50:50:3b:de:70:69:48:e4:2f:55:60:30:19:e5:28:ae +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIQCgFCgAAAAUUjyES1AAAAAjANBgkqhkiG9w0BAQsFADBK +MQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVu +VHJ1c3QgQ29tbWVyY2lhbCBSb290IENBIDEwHhcNMTQwMTE2MTgxMjIzWhcNMzQw +MTE2MTgxMjIzWjBKMQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MScw +JQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBSb290IENBIDEwggIiMA0GCSqG +SIb3DQEBAQUAA4ICDwAwggIKAoICAQCnUBneP5k91DNG8W9RYYKyqU+PZ4ldhNlT +3Qwo2dfw/66VQ3KZ+bVdfIrBQuExUHTRgQ18zZshq0PirK1ehm7zCYofWjK9ouuU ++ehcCuz/mNKvcbO0U59Oh++SvL3sTzIwiEsXXlfEU8L2ApeN2WIrvyQfYo3fw7gp +S0l4PJNgiCL8mdo2yMKi1CxUAGc1bnO/AljwpN3lsKImesrgNqUZFvX9t++uP0D1 +bVoE/c40yiTcdCMbXTMTEl3EASX2MN0CXZ/g1Ue9tOsbobtJSdifWwLziuQkkORi +T0/Br4sOdBeo0XKIanoBScy0RnnGF7HamB4HWfp1IYVl3ZBWzvurpWCdxJ35UrCL +vYf5jysjCiN2O/cz4ckA82n5S6LgTrx+kzmEB/dEcH7+B1rlsazRGMzyNeVJSQjK +Vsk9+w8YfYs7wRPCTY/JTw436R+hDmrfYi7LNQZReSzIJTj0+kuniVyc0uMNOYZK +dHzVWYfCP04MXFL0PfdSgvHqo6z9STQaKPNBiDoT7uje/5kdX7rL6B7yuVBgwDHT +c+XvvqDtMwt0viAgxGds8AgDelWAf0ZOlqf0Hj7h9tgJ4TNkK2PXMl6f+cB7D3hv +l7yTmvmcEpB4eoCHFddydJxVdHixuuFucAS6T6C6aMN7/zHwcz09lCqxC0EOoP5N +iGVreTO01wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB +/zAdBgNVHQ4EFgQU7UQZwNPwBovupHu+QucmVMiONnYwDQYJKoZIhvcNAQELBQAD +ggIBAA2ukDL2pkt8RHYZYR4nKM1eVO8lvOMIkPkp165oCOGUAFjvLi5+U1KMtlwH +6oi6mYtQlNeCgN9hCQCTrQ0U5s7B8jeUeLBfnLOic7iPBZM4zY0+sLj7wM+x8uwt +LRvM7Kqas6pgghstO8OEPVeKlh6cdbjTMM1gCIOQ045U8U1mwF10A0Cj7oV+wh93 +nAbowacYXVKV7cndJZ5t+qntozo00Fl72u1Q8zW/7esUTTHHYPTa8Yec4kjixsU3 ++wYQ+nVZZjFHKdp2mhzpgq7vmrlR94gjmmmVYjzlVYA211QC//G5Xc7UI2/YRYRK +W2XviQzdFKcgyxilJbQN+QHwotL0AMh0jqEqSI5l2xPE4iUXfeu+h1sXIFRRk0pT +AwvsXcoz7WL9RccvW9xYoIA55vrX/hMUpu09lEpCdNTDd1lzzY9GvlU47/rokTLq +l1gEIt44w8y8bckzOmoKaT+gyOpyj4xjhiO9bTyWnpXgSUyqorkqG5w2gXjtw+hG +4iZZRHUe2XWJUc0QhJ1hYMtd+ZciTY6Y5uN/9lu7rs3KSoFrXgvzUeF0K+l+J6fZ +mUlO+KWA2yUPHGNiiskzZ2s8EIPGrd6ozRaOjfAHN3Gf8qv8QfXBi+wAN10J5U6A +7/qxXDgGpRtK4dw4LTzcqx+QGtVKnO7RcGzM7vRX+Bi6hG6H +-----END CERTIFICATE----- + +# Issuer: CN=IdenTrust Public Sector Root CA 1 O=IdenTrust +# Subject: CN=IdenTrust Public Sector Root CA 1 O=IdenTrust +# Label: "IdenTrust Public Sector Root CA 1" +# Serial: 13298821034946342390521976156843933698 +# MD5 Fingerprint: 37:06:a5:b0:fc:89:9d:ba:f4:6b:8c:1a:64:cd:d5:ba +# SHA1 Fingerprint: ba:29:41:60:77:98:3f:f4:f3:ef:f2:31:05:3b:2e:ea:6d:4d:45:fd +# SHA256 Fingerprint: 30:d0:89:5a:9a:44:8a:26:20:91:63:55:22:d1:f5:20:10:b5:86:7a:ca:e1:2c:78:ef:95:8f:d4:f4:38:9f:2f +-----BEGIN CERTIFICATE----- +MIIFZjCCA06gAwIBAgIQCgFCgAAAAUUjz0Z8AAAAAjANBgkqhkiG9w0BAQsFADBN +MQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVu +VHJ1c3QgUHVibGljIFNlY3RvciBSb290IENBIDEwHhcNMTQwMTE2MTc1MzMyWhcN +MzQwMTE2MTc1MzMyWjBNMQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0 +MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3RvciBSb290IENBIDEwggIi +MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2IpT8pEiv6EdrCvsnduTyP4o7 +ekosMSqMjbCpwzFrqHd2hCa2rIFCDQjrVVi7evi8ZX3yoG2LqEfpYnYeEe4IFNGy +RBb06tD6Hi9e28tzQa68ALBKK0CyrOE7S8ItneShm+waOh7wCLPQ5CQ1B5+ctMlS +bdsHyo+1W/CD80/HLaXIrcuVIKQxKFdYWuSNG5qrng0M8gozOSI5Cpcu81N3uURF +/YTLNiCBWS2ab21ISGHKTN9T0a9SvESfqy9rg3LvdYDaBjMbXcjaY8ZNzaxmMc3R +3j6HEDbhuaR672BQssvKplbgN6+rNBM5Jeg5ZuSYeqoSmJxZZoY+rfGwyj4GD3vw +EUs3oERte8uojHH01bWRNszwFcYr3lEXsZdMUD2xlVl8BX0tIdUAvwFnol57plzy +9yLxkA2T26pEUWbMfXYD62qoKjgZl3YNa4ph+bz27nb9cCvdKTz4Ch5bQhyLVi9V +GxyhLrXHFub4qjySjmm2AcG1hp2JDws4lFTo6tyePSW8Uybt1as5qsVATFSrsrTZ +2fjXctscvG29ZV/viDUqZi/u9rNl8DONfJhBaUYPQxxp+pu10GFqzcpL2UyQRqsV +WaFHVCkugyhfHMKiq3IXAAaOReyL4jM9f9oZRORicsPfIsbyVtTdX5Vy7W1f90gD +W/3FKqD2cyOEEBsB5wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/ +BAUwAwEB/zAdBgNVHQ4EFgQU43HgntinQtnbcZFrlJPrw6PRFKMwDQYJKoZIhvcN +AQELBQADggIBAEf63QqwEZE4rU1d9+UOl1QZgkiHVIyqZJnYWv6IAcVYpZmxI1Qj +t2odIFflAWJBF9MJ23XLblSQdf4an4EKwt3X9wnQW3IV5B4Jaj0z8yGa5hV+rVHV +DRDtfULAj+7AmgjVQdZcDiFpboBhDhXAuM/FSRJSzL46zNQuOAXeNf0fb7iAaJg9 +TaDKQGXSc3z1i9kKlT/YPyNtGtEqJBnZhbMX73huqVjRI9PHE+1yJX9dsXNw0H8G +lwmEKYBhHfpe/3OsoOOJuBxxFcbeMX8S3OFtm6/n6J91eEyrRjuazr8FGF1NFTwW +mhlQBJqymm9li1JfPFgEKCXAZmExfrngdbkaqIHWchezxQMxNRF4eKLg6TCMf4Df +WN88uieW4oA0beOY02QnrEh+KHdcxiVhJfiFDGX6xDIvpZgF5PgLZxYWxoK4Mhn5 ++bl53B/N66+rDt0b20XkeucC4pVd/GnwU2lhlXV5C15V5jgclKlZM57IcXR5f1GJ +tshquDDIajjDbp7hNxbqBWJMWxJH7ae0s1hWx0nzfxJoCTFx8G34Tkf71oXuxVhA +GaQdp/lLQzfcaFpPz+vCZHTetBXZ9FRUGi8c15dxVJCO2SCdUyt/q4/i6jC8UDfv +8Ue1fXwsBOxonbRJRBD0ckscZOf85muQ3Wl9af0AVqW3rLatt8o+Ae+c +-----END CERTIFICATE----- + +# Issuer: CN=Entrust Root Certification Authority - G2 O=Entrust, Inc. OU=See www.entrust.net/legal-terms/(c) 2009 Entrust, Inc. - for authorized use only +# Subject: CN=Entrust Root Certification Authority - G2 O=Entrust, Inc. OU=See www.entrust.net/legal-terms/(c) 2009 Entrust, Inc. - for authorized use only +# Label: "Entrust Root Certification Authority - G2" +# Serial: 1246989352 +# MD5 Fingerprint: 4b:e2:c9:91:96:65:0c:f4:0e:5a:93:92:a0:0a:fe:b2 +# SHA1 Fingerprint: 8c:f4:27:fd:79:0c:3a:d1:66:06:8d:e8:1e:57:ef:bb:93:22:72:d4 +# SHA256 Fingerprint: 43:df:57:74:b0:3e:7f:ef:5f:e4:0d:93:1a:7b:ed:f1:bb:2e:6b:42:73:8c:4e:6d:38:41:10:3d:3a:a7:f3:39 +-----BEGIN CERTIFICATE----- +MIIEPjCCAyagAwIBAgIESlOMKDANBgkqhkiG9w0BAQsFADCBvjELMAkGA1UEBhMC +VVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50 +cnVzdC5uZXQvbGVnYWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3Qs +IEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25seTEyMDAGA1UEAxMpRW50cnVz +dCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIwHhcNMDkwNzA3MTcy +NTU0WhcNMzAxMjA3MTc1NTU0WjCBvjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUVu +dHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwt +dGVybXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0 +aG9yaXplZCB1c2Ugb25seTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmlj +YXRpb24gQXV0aG9yaXR5IC0gRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK +AoIBAQC6hLZy254Ma+KZ6TABp3bqMriVQRrJ2mFOWHLP/vaCeb9zYQYKpSfYs1/T +RU4cctZOMvJyig/3gxnQaoCAAEUesMfnmr8SVycco2gvCoe9amsOXmXzHHfV1IWN +cCG0szLni6LVhjkCsbjSR87kyUnEO6fe+1R9V77w6G7CebI6C1XiUJgWMhNcL3hW +wcKUs/Ja5CeanyTXxuzQmyWC48zCxEXFjJd6BmsqEZ+pCm5IO2/b1BEZQvePB7/1 +U1+cPvQXLOZprE4yTGJ36rfo5bs0vBmLrpxR57d+tVOxMyLlbc9wPBr64ptntoP0 +jaWvYkxN4FisZDQSA/i2jZRjJKRxAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAP +BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqciZ60B7vfec7aVHUbI2fkBJmqzAN +BgkqhkiG9w0BAQsFAAOCAQEAeZ8dlsa2eT8ijYfThwMEYGprmi5ZiXMRrEPR9RP/ +jTkrwPK9T3CMqS/qF8QLVJ7UG5aYMzyorWKiAHarWWluBh1+xLlEjZivEtRh2woZ +Rkfz6/djwUAFQKXSt/S1mja/qYh2iARVBCuch38aNzx+LaUa2NSJXsq9rD1s2G2v +1fN2D807iDginWyTmsQ9v4IbZT+mD12q/OWyFcq1rca8PdCE6OoGcrBNOTJ4vz4R +nAuknZoh8/CbCzB428Hch0P+vGOaysXCHMnHjf87ElgI5rY97HosTvuDls4MPGmH +VHOkc8KT/1EQrBVUAdj8BbGJoX90g5pJ19xOe4pIb4tF9g== +-----END CERTIFICATE----- + +# Issuer: CN=Entrust Root Certification Authority - EC1 O=Entrust, Inc. OU=See www.entrust.net/legal-terms/(c) 2012 Entrust, Inc. - for authorized use only +# Subject: CN=Entrust Root Certification Authority - EC1 O=Entrust, Inc. OU=See www.entrust.net/legal-terms/(c) 2012 Entrust, Inc. - for authorized use only +# Label: "Entrust Root Certification Authority - EC1" +# Serial: 51543124481930649114116133369 +# MD5 Fingerprint: b6:7e:1d:f0:58:c5:49:6c:24:3b:3d:ed:98:18:ed:bc +# SHA1 Fingerprint: 20:d8:06:40:df:9b:25:f5:12:25:3a:11:ea:f7:59:8a:eb:14:b5:47 +# SHA256 Fingerprint: 02:ed:0e:b2:8c:14:da:45:16:5c:56:67:91:70:0d:64:51:d7:fb:56:f0:b2:ab:1d:3b:8e:b0:70:e5:6e:df:f5 +-----BEGIN CERTIFICATE----- +MIIC+TCCAoCgAwIBAgINAKaLeSkAAAAAUNCR+TAKBggqhkjOPQQDAzCBvzELMAkG +A1UEBhMCVVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3 +d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDEyIEVu +dHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25seTEzMDEGA1UEAxMq +RW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRUMxMB4XDTEy +MTIxODE1MjUzNloXDTM3MTIxODE1NTUzNlowgb8xCzAJBgNVBAYTAlVTMRYwFAYD +VQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0 +L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxMiBFbnRydXN0LCBJbmMuIC0g +Zm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxMzAxBgNVBAMTKkVudHJ1c3QgUm9vdCBD +ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEVDMTB2MBAGByqGSM49AgEGBSuBBAAi +A2IABIQTydC6bUF74mzQ61VfZgIaJPRbiWlH47jCffHyAsWfoPZb1YsGGYZPUxBt +ByQnoaD41UcZYUx9ypMn6nQM72+WCf5j7HBdNq1nd67JnXxVRDqiY1Ef9eNi1KlH +Bz7MIKNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O +BBYEFLdj5xrdjekIplWDpOBqUEFlEUJJMAoGCCqGSM49BAMDA2cAMGQCMGF52OVC +R98crlOZF7ZvHH3hvxGU0QOIdeSNiaSKd0bebWHvAvX7td/M/k7//qnmpwIwW5nX +hTcGtXsI/esni0qU+eH6p44mCOh8kmhtc9hvJqwhAriZtyZBWyVgrtBIGu4G +-----END CERTIFICATE----- + +# Issuer: CN=CFCA EV ROOT O=China Financial Certification Authority +# Subject: CN=CFCA EV ROOT O=China Financial Certification Authority +# Label: "CFCA EV ROOT" +# Serial: 407555286 +# MD5 Fingerprint: 74:e1:b6:ed:26:7a:7a:44:30:33:94:ab:7b:27:81:30 +# SHA1 Fingerprint: e2:b8:29:4b:55:84:ab:6b:58:c2:90:46:6c:ac:3f:b8:39:8f:84:83 +# SHA256 Fingerprint: 5c:c3:d7:8e:4e:1d:5e:45:54:7a:04:e6:87:3e:64:f9:0c:f9:53:6d:1c:cc:2e:f8:00:f3:55:c4:c5:fd:70:fd +-----BEGIN CERTIFICATE----- +MIIFjTCCA3WgAwIBAgIEGErM1jANBgkqhkiG9w0BAQsFADBWMQswCQYDVQQGEwJD +TjEwMC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9y +aXR5MRUwEwYDVQQDDAxDRkNBIEVWIFJPT1QwHhcNMTIwODA4MDMwNzAxWhcNMjkx +MjMxMDMwNzAxWjBWMQswCQYDVQQGEwJDTjEwMC4GA1UECgwnQ2hpbmEgRmluYW5j +aWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQDDAxDRkNBIEVWIFJP +T1QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDXXWvNED8fBVnVBU03 +sQ7smCuOFR36k0sXgiFxEFLXUWRwFsJVaU2OFW2fvwwbwuCjZ9YMrM8irq93VCpL +TIpTUnrD7i7es3ElweldPe6hL6P3KjzJIx1qqx2hp/Hz7KDVRM8Vz3IvHWOX6Jn5 +/ZOkVIBMUtRSqy5J35DNuF++P96hyk0g1CXohClTt7GIH//62pCfCqktQT+x8Rgp +7hZZLDRJGqgG16iI0gNyejLi6mhNbiyWZXvKWfry4t3uMCz7zEasxGPrb382KzRz +EpR/38wmnvFyXVBlWY9ps4deMm/DGIq1lY+wejfeWkU7xzbh72fROdOXW3NiGUgt +hxwG+3SYIElz8AXSG7Ggo7cbcNOIabla1jj0Ytwli3i/+Oh+uFzJlU9fpy25IGvP +a931DfSCt/SyZi4QKPaXWnuWFo8BGS1sbn85WAZkgwGDg8NNkt0yxoekN+kWzqot +aK8KgWU6cMGbrU1tVMoqLUuFG7OA5nBFDWteNfB/O7ic5ARwiRIlk9oKmSJgamNg +TnYGmE69g60dWIolhdLHZR4tjsbftsbhf4oEIRUpdPA+nJCdDC7xij5aqgwJHsfV +PKPtl8MeNPo4+QgO48BdK4PRVmrJtqhUUy54Mmc9gn900PvhtgVguXDbjgv5E1hv +cWAQUhC5wUEJ73IfZzF4/5YFjQIDAQABo2MwYTAfBgNVHSMEGDAWgBTj/i39KNAL +tbq2osS/BqoFjJP7LzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAd +BgNVHQ4EFgQU4/4t/SjQC7W6tqLEvwaqBYyT+y8wDQYJKoZIhvcNAQELBQADggIB +ACXGumvrh8vegjmWPfBEp2uEcwPenStPuiB/vHiyz5ewG5zz13ku9Ui20vsXiObT +ej/tUxPQ4i9qecsAIyjmHjdXNYmEwnZPNDatZ8POQQaIxffu2Bq41gt/UP+TqhdL +jOztUmCypAbqTuv0axn96/Ua4CUqmtzHQTb3yHQFhDmVOdYLO6Qn+gjYXB74BGBS +ESgoA//vU2YApUo0FmZ8/Qmkrp5nGm9BC2sGE5uPhnEFtC+NiWYzKXZUmhH4J/qy +P5Hgzg0b8zAarb8iXRvTvyUFTeGSGn+ZnzxEk8rUQElsgIfXBDrDMlI1Dlb4pd19 +xIsNER9Tyx6yF7Zod1rg1MvIB671Oi6ON7fQAUtDKXeMOZePglr4UeWJoBjnaH9d +Ci77o0cOPaYjesYBx4/IXr9tgFa+iiS6M+qf4TIRnvHST4D2G0CvOJ4RUHlzEhLN +5mydLIhyPDCBBpEi6lmt2hkuIsKNuYyH4Ga8cyNfIWRjgEj1oDwYPZTISEEdQLpe +/v5WOaHIz16eGWRGENoXkbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+Z +AAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3CekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ +5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su +-----END CERTIFICATE----- + +# Issuer: CN=OISTE WISeKey Global Root GB CA O=WISeKey OU=OISTE Foundation Endorsed +# Subject: CN=OISTE WISeKey Global Root GB CA O=WISeKey OU=OISTE Foundation Endorsed +# Label: "OISTE WISeKey Global Root GB CA" +# Serial: 157768595616588414422159278966750757568 +# MD5 Fingerprint: a4:eb:b9:61:28:2e:b7:2f:98:b0:35:26:90:99:51:1d +# SHA1 Fingerprint: 0f:f9:40:76:18:d3:d7:6a:4b:98:f0:a8:35:9e:0c:fd:27:ac:cc:ed +# SHA256 Fingerprint: 6b:9c:08:e8:6e:b0:f7:67:cf:ad:65:cd:98:b6:21:49:e5:49:4a:67:f5:84:5e:7b:d1:ed:01:9f:27:b8:6b:d6 +-----BEGIN CERTIFICATE----- +MIIDtTCCAp2gAwIBAgIQdrEgUnTwhYdGs/gjGvbCwDANBgkqhkiG9w0BAQsFADBt +MQswCQYDVQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUg +Rm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9i +YWwgUm9vdCBHQiBDQTAeFw0xNDEyMDExNTAwMzJaFw0zOTEyMDExNTEwMzFaMG0x +CzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYDVQQLExlPSVNURSBG +b3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEdsb2Jh +bCBSb290IEdCIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2Be3 +HEokKtaXscriHvt9OO+Y9bI5mE4nuBFde9IllIiCFSZqGzG7qFshISvYD06fWvGx +WuR51jIjK+FTzJlFXHtPrby/h0oLS5daqPZI7H17Dc0hBt+eFf1Biki3IPShehtX +1F1Q/7pn2COZH8g/497/b1t3sWtuuMlk9+HKQUYOKXHQuSP8yYFfTvdv37+ErXNk +u7dCjmn21HYdfp2nuFeKUWdy19SouJVUQHMD9ur06/4oQnc/nSMbsrY9gBQHTC5P +99UKFg29ZkM3fiNDecNAhvVMKdqOmq0NpQSHiB6F4+lT1ZvIiwNjeOvgGUpuuy9r +M2RYk61pv48b74JIxwIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw +AwEB/zAdBgNVHQ4EFgQUNQ/INmNe4qPs+TtmFc5RUuORmj0wEAYJKwYBBAGCNxUB +BAMCAQAwDQYJKoZIhvcNAQELBQADggEBAEBM+4eymYGQfp3FsLAmzYh7KzKNbrgh +cViXfa43FK8+5/ea4n32cZiZBKpDdHij40lhPnOMTZTg+XHEthYOU3gf1qKHLwI5 +gSk8rxWYITD+KJAAjNHhy/peyP34EEY7onhCkRd0VQreUGdNZtGn//3ZwLWoo4rO +ZvUPQ82nK1d7Y0Zqqi5S2PTt4W2tKZB4SLrhI6qjiey1q5bAtEuiHZeeevJuQHHf +aPFlTc58Bd9TZaml8LGXBHAVRgOY1NK/VLSgWH1Sb9pWJmLU2NuJMW8c8CLC02Ic +Nc1MaRVUGpCY3useX8p3x8uOPUNpnJpY0CQ73xtAln41rYHHTnG6iBM= +-----END CERTIFICATE----- + +# Issuer: CN=SZAFIR ROOT CA2 O=Krajowa Izba Rozliczeniowa S.A. +# Subject: CN=SZAFIR ROOT CA2 O=Krajowa Izba Rozliczeniowa S.A. +# Label: "SZAFIR ROOT CA2" +# Serial: 357043034767186914217277344587386743377558296292 +# MD5 Fingerprint: 11:64:c1:89:b0:24:b1:8c:b1:07:7e:89:9e:51:9e:99 +# SHA1 Fingerprint: e2:52:fa:95:3f:ed:db:24:60:bd:6e:28:f3:9c:cc:cf:5e:b3:3f:de +# SHA256 Fingerprint: a1:33:9d:33:28:1a:0b:56:e5:57:d3:d3:2b:1c:e7:f9:36:7e:b0:94:bd:5f:a7:2a:7e:50:04:c8:de:d7:ca:fe +-----BEGIN CERTIFICATE----- +MIIDcjCCAlqgAwIBAgIUPopdB+xV0jLVt+O2XwHrLdzk1uQwDQYJKoZIhvcNAQEL +BQAwUTELMAkGA1UEBhMCUEwxKDAmBgNVBAoMH0tyYWpvd2EgSXpiYSBSb3psaWN6 +ZW5pb3dhIFMuQS4xGDAWBgNVBAMMD1NaQUZJUiBST09UIENBMjAeFw0xNTEwMTkw +NzQzMzBaFw0zNTEwMTkwNzQzMzBaMFExCzAJBgNVBAYTAlBMMSgwJgYDVQQKDB9L +cmFqb3dhIEl6YmEgUm96bGljemVuaW93YSBTLkEuMRgwFgYDVQQDDA9TWkFGSVIg +Uk9PVCBDQTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC3vD5QqEvN +QLXOYeeWyrSh2gwisPq1e3YAd4wLz32ohswmUeQgPYUM1ljj5/QqGJ3a0a4m7utT +3PSQ1hNKDJA8w/Ta0o4NkjrcsbH/ON7Dui1fgLkCvUqdGw+0w8LBZwPd3BucPbOw +3gAeqDRHu5rr/gsUvTaE2g0gv/pby6kWIK05YO4vdbbnl5z5Pv1+TW9NL++IDWr6 +3fE9biCloBK0TXC5ztdyO4mTp4CEHCdJckm1/zuVnsHMyAHs6A6KCpbns6aH5db5 +BSsNl0BwPLqsdVqc1U2dAgrSS5tmS0YHF2Wtn2yIANwiieDhZNRnvDF5YTy7ykHN +XGoAyDw4jlivAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD +AgEGMB0GA1UdDgQWBBQuFqlKGLXLzPVvUPMjX/hd56zwyDANBgkqhkiG9w0BAQsF +AAOCAQEAtXP4A9xZWx126aMqe5Aosk3AM0+qmrHUuOQn/6mWmc5G4G18TKI4pAZw +8PRBEew/R40/cof5O/2kbytTAOD/OblqBw7rHRz2onKQy4I9EYKL0rufKq8h5mOG +nXkZ7/e7DDWQw4rtTw/1zBLZpD67oPwglV9PJi8RI4NOdQcPv5vRtB3pEAT+ymCP +oky4rc/hkA/NrgrHXXu3UNLUYfrVFdvXn4dRVOul4+vJhaAlIDf7js4MNIThPIGy +d05DpYhfhmehPea0XGG2Ptv+tyjFogeutcrKjSoS75ftwjCkySp6+/NNIxuZMzSg +LvWpCz/UXeHPhJ/iGcJfitYgHuNztw== +-----END CERTIFICATE----- + +# Issuer: CN=Certum Trusted Network CA 2 O=Unizeto Technologies S.A. OU=Certum Certification Authority +# Subject: CN=Certum Trusted Network CA 2 O=Unizeto Technologies S.A. OU=Certum Certification Authority +# Label: "Certum Trusted Network CA 2" +# Serial: 44979900017204383099463764357512596969 +# MD5 Fingerprint: 6d:46:9e:d9:25:6d:08:23:5b:5e:74:7d:1e:27:db:f2 +# SHA1 Fingerprint: d3:dd:48:3e:2b:bf:4c:05:e8:af:10:f5:fa:76:26:cf:d3:dc:30:92 +# SHA256 Fingerprint: b6:76:f2:ed:da:e8:77:5c:d3:6c:b0:f6:3c:d1:d4:60:39:61:f4:9e:62:65:ba:01:3a:2f:03:07:b6:d0:b8:04 +-----BEGIN CERTIFICATE----- +MIIF0jCCA7qgAwIBAgIQIdbQSk8lD8kyN/yqXhKN6TANBgkqhkiG9w0BAQ0FADCB +gDELMAkGA1UEBhMCUEwxIjAgBgNVBAoTGVVuaXpldG8gVGVjaG5vbG9naWVzIFMu +QS4xJzAlBgNVBAsTHkNlcnR1bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEkMCIG +A1UEAxMbQ2VydHVtIFRydXN0ZWQgTmV0d29yayBDQSAyMCIYDzIwMTExMDA2MDgz +OTU2WhgPMjA0NjEwMDYwODM5NTZaMIGAMQswCQYDVQQGEwJQTDEiMCAGA1UEChMZ +VW5pemV0byBUZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRp +ZmljYXRpb24gQXV0aG9yaXR5MSQwIgYDVQQDExtDZXJ0dW0gVHJ1c3RlZCBOZXR3 +b3JrIENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC9+Xj45tWA +DGSdhhuWZGc/IjoedQF97/tcZ4zJzFxrqZHmuULlIEub2pt7uZld2ZuAS9eEQCsn +0+i6MLs+CRqnSZXvK0AkwpfHp+6bJe+oCgCXhVqqndwpyeI1B+twTUrWwbNWuKFB +OJvR+zF/j+Bf4bE/D44WSWDXBo0Y+aomEKsq09DRZ40bRr5HMNUuctHFY9rnY3lE +fktjJImGLjQ/KUxSiyqnwOKRKIm5wFv5HdnnJ63/mgKXwcZQkpsCLL2puTRZCr+E +Sv/f/rOf69me4Jgj7KZrdxYq28ytOxykh9xGc14ZYmhFV+SQgkK7QtbwYeDBoz1m +o130GO6IyY0XRSmZMnUCMe4pJshrAua1YkV/NxVaI2iJ1D7eTiew8EAMvE0Xy02i +sx7QBlrd9pPPV3WZ9fqGGmd4s7+W/jTcvedSVuWz5XV710GRBdxdaeOVDUO5/IOW +OZV7bIBaTxNyxtd9KXpEulKkKtVBRgkg/iKgtlswjbyJDNXXcPiHUv3a76xRLgez +Tv7QCdpw75j6VuZt27VXS9zlLCUVyJ4ueE742pyehizKV/Ma5ciSixqClnrDvFAS +adgOWkaLOusm+iPJtrCBvkIApPjW/jAux9JG9uWOdf3yzLnQh1vMBhBgu4M1t15n +3kfsmUjxpKEV/q2MYo45VU85FrmxY53/twIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MB0GA1UdDgQWBBS2oVQ5AsOgP46KvPrU+Bym0ToO/TAOBgNVHQ8BAf8EBAMC +AQYwDQYJKoZIhvcNAQENBQADggIBAHGlDs7k6b8/ONWJWsQCYftMxRQXLYtPU2sQ +F/xlhMcQSZDe28cmk4gmb3DWAl45oPePq5a1pRNcgRRtDoGCERuKTsZPpd1iHkTf +CVn0W3cLN+mLIMb4Ck4uWBzrM9DPhmDJ2vuAL55MYIR4PSFk1vtBHxgP58l1cb29 +XN40hz5BsA72udY/CROWFC/emh1auVbONTqwX3BNXuMp8SMoclm2q8KMZiYcdywm +djWLKKdpoPk79SPdhRB0yZADVpHnr7pH1BKXESLjokmUbOe3lEu6LaTaM4tMpkT/ +WjzGHWTYtTHkpjx6qFcL2+1hGsvxznN3Y6SHb0xRONbkX8eftoEq5IVIeVheO/jb +AoJnwTnbw3RLPTYe+SmTiGhbqEQZIfCn6IENLOiTNrQ3ssqwGyZ6miUfmpqAnksq +P/ujmv5zMnHCnsZy4YpoJ/HkD7TETKVhk/iXEAcqMCWpuchxuO9ozC1+9eB+D4Ko +b7a6bINDd82Kkhehnlt4Fj1F4jNy3eFmypnTycUm/Q1oBEauttmbjL4ZvrHG8hnj +XALKLNhvSgfZyTXaQHXyxKcZb55CEJh15pWLYLztxRLXis7VmFxWlgPF7ncGNf/P +5O4/E2Hu29othfDNrp2yGAlFw5Khchf8R7agCyzxxN5DaAhqXzvwdmP7zAYspsbi +DrW5viSP +-----END CERTIFICATE----- + +# Issuer: CN=Hellenic Academic and Research Institutions RootCA 2015 O=Hellenic Academic and Research Institutions Cert. Authority +# Subject: CN=Hellenic Academic and Research Institutions RootCA 2015 O=Hellenic Academic and Research Institutions Cert. Authority +# Label: "Hellenic Academic and Research Institutions RootCA 2015" +# Serial: 0 +# MD5 Fingerprint: ca:ff:e2:db:03:d9:cb:4b:e9:0f:ad:84:fd:7b:18:ce +# SHA1 Fingerprint: 01:0c:06:95:a6:98:19:14:ff:bf:5f:c6:b0:b6:95:ea:29:e9:12:a6 +# SHA256 Fingerprint: a0:40:92:9a:02:ce:53:b4:ac:f4:f2:ff:c6:98:1c:e4:49:6f:75:5e:6d:45:fe:0b:2a:69:2b:cd:52:52:3f:36 +-----BEGIN CERTIFICATE----- +MIIGCzCCA/OgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBpjELMAkGA1UEBhMCR1Ix +DzANBgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5k +IFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNVBAMT +N0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgUm9v +dENBIDIwMTUwHhcNMTUwNzA3MTAxMTIxWhcNNDAwNjMwMTAxMTIxWjCBpjELMAkG +A1UEBhMCR1IxDzANBgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNh +ZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkx +QDA+BgNVBAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1 +dGlvbnMgUm9vdENBIDIwMTUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC +AQDC+Kk/G4n8PDwEXT2QNrCROnk8ZlrvbTkBSRq0t89/TSNTt5AA4xMqKKYx8ZEA +4yjsriFBzh/a/X0SWwGDD7mwX5nh8hKDgE0GPt+sr+ehiGsxr/CL0BgzuNtFajT0 +AoAkKAoCFZVedioNmToUW/bLy1O8E00BiDeUJRtCvCLYjqOWXjrZMts+6PAQZe10 +4S+nfK8nNLspfZu2zwnI5dMK/IhlZXQK3HMcXM1AsRzUtoSMTFDPaI6oWa7CJ06C +ojXdFPQf/7J31Ycvqm59JCfnxssm5uX+Zwdj2EUN3TpZZTlYepKZcj2chF6IIbjV +9Cz82XBST3i4vTwri5WY9bPRaM8gFH5MXF/ni+X1NYEZN9cRCLdmvtNKzoNXADrD +gfgXy5I2XdGj2HUb4Ysn6npIQf1FGQatJ5lOwXBH3bWfgVMS5bGMSF0xQxfjjMZ6 +Y5ZLKTBOhE5iGV48zpeQpX8B653g+IuJ3SWYPZK2fu/Z8VFRfS0myGlZYeCsargq +NhEEelC9MoS+L9xy1dcdFkfkR2YgP/SWxa+OAXqlD3pk9Q0Yh9muiNX6hME6wGko +LfINaFGq46V3xqSQDqE3izEjR8EJCOtu93ib14L8hCCZSRm2Ekax+0VVFqmjZayc +Bw/qa9wfLgZy7IaIEuQt218FL+TwA9MmM+eAws1CoRc0CwIDAQABo0IwQDAPBgNV +HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUcRVnyMjJvXVd +ctA4GGqd83EkVAswDQYJKoZIhvcNAQELBQADggIBAHW7bVRLqhBYRjTyYtcWNl0I +XtVsyIe9tC5G8jH4fOpCtZMWVdyhDBKg2mF+D1hYc2Ryx+hFjtyp8iY/xnmMsVMI +M4GwVhO+5lFc2JsKT0ucVlMC6U/2DWDqTUJV6HwbISHTGzrMd/K4kPFox/la/vot +9L/J9UUbzjgQKjeKeaO04wlshYaT/4mWJ3iBj2fjRnRUjtkNaeJK9E10A/+yd+2V +Z5fkscWrv2oj6NSU4kQoYsRL4vDY4ilrGnB+JGGTe08DMiUNRSQrlrRGar9KC/ea +j8GsGsVn82800vpzY4zvFrCopEYq+OsS7HK07/grfoxSwIuEVPkvPuNVqNxmsdnh +X9izjFk0WaSrT2y7HxjbdavYy5LNlDhhDgcGH0tGEPEVvo2FXDtKK4F5D7Rpn0lQ +l033DlZdwJVqwjbDG2jJ9SrcR5q+ss7FJej6A7na+RZukYT1HCjI/CbM1xyQVqdf +bzoEvM14iQuODy+jqk+iGxI9FghAD/FGTNeqewjBCvVtJ94Cj8rDtSvK6evIIVM4 +pcw72Hc3MKJP2W/R8kCtQXoXxdZKNYm3QdV8hn9VTYNKpXMgwDqvkPGaJI7ZjnHK +e7iG2rKPmT4dEw0SEe7Uq/DpFXYC5ODfqiAeW2GFZECpkJcNrVPSWh2HagCXZWK0 +vm9qp/UsQu0yrbYhnr68 +-----END CERTIFICATE----- + +# Issuer: CN=Hellenic Academic and Research Institutions ECC RootCA 2015 O=Hellenic Academic and Research Institutions Cert. Authority +# Subject: CN=Hellenic Academic and Research Institutions ECC RootCA 2015 O=Hellenic Academic and Research Institutions Cert. Authority +# Label: "Hellenic Academic and Research Institutions ECC RootCA 2015" +# Serial: 0 +# MD5 Fingerprint: 81:e5:b4:17:eb:c2:f5:e1:4b:0d:41:7b:49:92:fe:ef +# SHA1 Fingerprint: 9f:f1:71:8d:92:d5:9a:f3:7d:74:97:b4:bc:6f:84:68:0b:ba:b6:66 +# SHA256 Fingerprint: 44:b5:45:aa:8a:25:e6:5a:73:ca:15:dc:27:fc:36:d2:4c:1c:b9:95:3a:06:65:39:b1:15:82:dc:48:7b:48:33 +-----BEGIN CERTIFICATE----- +MIICwzCCAkqgAwIBAgIBADAKBggqhkjOPQQDAjCBqjELMAkGA1UEBhMCR1IxDzAN +BgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJl +c2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxRDBCBgNVBAMTO0hl +bGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgRUNDIFJv +b3RDQSAyMDE1MB4XDTE1MDcwNzEwMzcxMloXDTQwMDYzMDEwMzcxMlowgaoxCzAJ +BgNVBAYTAkdSMQ8wDQYDVQQHEwZBdGhlbnMxRDBCBgNVBAoTO0hlbGxlbmljIEFj +YWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9yaXR5 +MUQwQgYDVQQDEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0 +dXRpb25zIEVDQyBSb290Q0EgMjAxNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABJKg +QehLgoRc4vgxEZmGZE4JJS+dQS8KrjVPdJWyUWRrjWvmP3CV8AVER6ZyOFB2lQJa +jq4onvktTpnvLEhvTCUp6NFxW98dwXU3tNf6e3pCnGoKVlp8aQuqgAkkbH7BRqNC +MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFLQi +C4KZJAEOnLvkDv2/+5cgk5kqMAoGCCqGSM49BAMCA2cAMGQCMGfOFmI4oqxiRaep +lSTAGiecMjvAwNW6qef4BENThe5SId6d9SWDPp5YSy/XZxMOIQIwBeF1Ad5o7Sof +TUwJCA3sS61kFyjndc5FZXIhF8siQQ6ME5g4mlRtm8rifOoCWCKR +-----END CERTIFICATE----- + +# Issuer: CN=ISRG Root X1 O=Internet Security Research Group +# Subject: CN=ISRG Root X1 O=Internet Security Research Group +# Label: "ISRG Root X1" +# Serial: 172886928669790476064670243504169061120 +# MD5 Fingerprint: 0c:d2:f9:e0:da:17:73:e9:ed:86:4d:a5:e3:70:e7:4e +# SHA1 Fingerprint: ca:bd:2a:79:a1:07:6a:31:f2:1d:25:36:35:cb:03:9d:43:29:a5:e8 +# SHA256 Fingerprint: 96:bc:ec:06:26:49:76:f3:74:60:77:9a:cf:28:c5:a7:cf:e8:a3:c0:aa:e1:1a:8f:fc:ee:05:c0:bd:df:08:c6 +-----BEGIN CERTIFICATE----- +MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw +TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh +cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4 +WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJu +ZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY +MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54rVygc +h77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+ +0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6U +A5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW +T8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyH +B5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UC +B5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUv +KBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWn +OlFuhjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTn +jh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbw +qHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CI +rU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV +HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq +hkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL +ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ +3BebYhtF8GaV0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KK +NFtY2PwByVS5uCbMiogziUwthDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5 +ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJwTdwJx4nLCgdNbOhdjsnvzqvHu7Ur +TkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nxe5AW0wdeRlN8NwdC +jNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc +oyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq +4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA +mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d +emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc= +-----END CERTIFICATE----- + +# Issuer: O=FNMT-RCM OU=AC RAIZ FNMT-RCM +# Subject: O=FNMT-RCM OU=AC RAIZ FNMT-RCM +# Label: "AC RAIZ FNMT-RCM" +# Serial: 485876308206448804701554682760554759 +# MD5 Fingerprint: e2:09:04:b4:d3:bd:d1:a0:14:fd:1a:d2:47:c4:57:1d +# SHA1 Fingerprint: ec:50:35:07:b2:15:c4:95:62:19:e2:a8:9a:5b:42:99:2c:4c:2c:20 +# SHA256 Fingerprint: eb:c5:57:0c:29:01:8c:4d:67:b1:aa:12:7b:af:12:f7:03:b4:61:1e:bc:17:b7:da:b5:57:38:94:17:9b:93:fa +-----BEGIN CERTIFICATE----- +MIIFgzCCA2ugAwIBAgIPXZONMGc2yAYdGsdUhGkHMA0GCSqGSIb3DQEBCwUAMDsx +CzAJBgNVBAYTAkVTMREwDwYDVQQKDAhGTk1ULVJDTTEZMBcGA1UECwwQQUMgUkFJ +WiBGTk1ULVJDTTAeFw0wODEwMjkxNTU5NTZaFw0zMDAxMDEwMDAwMDBaMDsxCzAJ +BgNVBAYTAkVTMREwDwYDVQQKDAhGTk1ULVJDTTEZMBcGA1UECwwQQUMgUkFJWiBG +Tk1ULVJDTTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALpxgHpMhm5/ +yBNtwMZ9HACXjywMI7sQmkCpGreHiPibVmr75nuOi5KOpyVdWRHbNi63URcfqQgf +BBckWKo3Shjf5TnUV/3XwSyRAZHiItQDwFj8d0fsjz50Q7qsNI1NOHZnjrDIbzAz +WHFctPVrbtQBULgTfmxKo0nRIBnuvMApGGWn3v7v3QqQIecaZ5JCEJhfTzC8PhxF +tBDXaEAUwED653cXeuYLj2VbPNmaUtu1vZ5Gzz3rkQUCwJaydkxNEJY7kvqcfw+Z +374jNUUeAlz+taibmSXaXvMiwzn15Cou08YfxGyqxRxqAQVKL9LFwag0Jl1mpdIC +IfkYtwb1TplvqKtMUejPUBjFd8g5CSxJkjKZqLsXF3mwWsXmo8RZZUc1g16p6DUL +mbvkzSDGm0oGObVo/CK67lWMK07q87Hj/LaZmtVC+nFNCM+HHmpxffnTtOmlcYF7 +wk5HlqX2doWjKI/pgG6BU6VtX7hI+cL5NqYuSf+4lsKMB7ObiFj86xsc3i1w4peS +MKGJ47xVqCfWS+2QrYv6YyVZLag13cqXM7zlzced0ezvXg5KkAYmY6252TUtB7p2 +ZSysV4999AeU14ECll2jB0nVetBX+RvnU0Z1qrB5QstocQjpYL05ac70r8NWQMet +UqIJ5G+GR4of6ygnXYMgrwTJbFaai0b1AgMBAAGjgYMwgYAwDwYDVR0TAQH/BAUw +AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFPd9xf3E6Jobd2Sn9R2gzL+H +YJptMD4GA1UdIAQ3MDUwMwYEVR0gADArMCkGCCsGAQUFBwIBFh1odHRwOi8vd3d3 +LmNlcnQuZm5tdC5lcy9kcGNzLzANBgkqhkiG9w0BAQsFAAOCAgEAB5BK3/MjTvDD +nFFlm5wioooMhfNzKWtN/gHiqQxjAb8EZ6WdmF/9ARP67Jpi6Yb+tmLSbkyU+8B1 +RXxlDPiyN8+sD8+Nb/kZ94/sHvJwnvDKuO+3/3Y3dlv2bojzr2IyIpMNOmqOFGYM +LVN0V2Ue1bLdI4E7pWYjJ2cJj+F3qkPNZVEI7VFY/uY5+ctHhKQV8Xa7pO6kO8Rf +77IzlhEYt8llvhjho6Tc+hj507wTmzl6NLrTQfv6MooqtyuGC2mDOL7Nii4LcK2N +JpLuHvUBKwrZ1pebbuCoGRw6IYsMHkCtA+fdZn71uSANA+iW+YJF1DngoABd15jm +fZ5nc8OaKveri6E6FO80vFIOiZiaBECEHX5FaZNXzuvO+FB8TxxuBEOb+dY7Ixjp +6o7RTUaN8Tvkasq6+yO3m/qZASlaWFot4/nUbQ4mrcFuNLwy+AwF+mWj2zs3gyLp +1txyM/1d8iC9djwj2ij3+RvrWWTV3F9yfiD8zYm1kGdNYno/Tq0dwzn+evQoFt9B +9kiABdcPUXmsEKvU7ANm5mqwujGSQkBqvjrTcuFqN1W8rB2Vt2lh8kORdOag0wok +RqEIr9baRRmW1FMdW4R58MD3R++Lj8UGrp1MYp3/RgT408m2ECVAdf4WqslKYIYv +uu8wd+RU4riEmViAqhOLUTpPSPaLtrM= +-----END CERTIFICATE----- + +# Issuer: CN=Amazon Root CA 1 O=Amazon +# Subject: CN=Amazon Root CA 1 O=Amazon +# Label: "Amazon Root CA 1" +# Serial: 143266978916655856878034712317230054538369994 +# MD5 Fingerprint: 43:c6:bf:ae:ec:fe:ad:2f:18:c6:88:68:30:fc:c8:e6 +# SHA1 Fingerprint: 8d:a7:f9:65:ec:5e:fc:37:91:0f:1c:6e:59:fd:c1:cc:6a:6e:de:16 +# SHA256 Fingerprint: 8e:cd:e6:88:4f:3d:87:b1:12:5b:a3:1a:c3:fc:b1:3d:70:16:de:7f:57:cc:90:4f:e1:cb:97:c6:ae:98:19:6e +-----BEGIN CERTIFICATE----- +MIIDQTCCAimgAwIBAgITBmyfz5m/jAo54vB4ikPmljZbyjANBgkqhkiG9w0BAQsF +ADA5MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6 +b24gUm9vdCBDQSAxMB4XDTE1MDUyNjAwMDAwMFoXDTM4MDExNzAwMDAwMFowOTEL +MAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJv +b3QgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALJ4gHHKeNXj +ca9HgFB0fW7Y14h29Jlo91ghYPl0hAEvrAIthtOgQ3pOsqTQNroBvo3bSMgHFzZM +9O6II8c+6zf1tRn4SWiw3te5djgdYZ6k/oI2peVKVuRF4fn9tBb6dNqcmzU5L/qw +IFAGbHrQgLKm+a/sRxmPUDgH3KKHOVj4utWp+UhnMJbulHheb4mjUcAwhmahRWa6 +VOujw5H5SNz/0egwLX0tdHA114gk957EWW67c4cX8jJGKLhD+rcdqsq08p8kDi1L +93FcXmn/6pUCyziKrlA4b9v7LWIbxcceVOF34GfID5yHI9Y/QCB/IIDEgEw+OyQm +jgSubJrIqg0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC +AYYwHQYDVR0OBBYEFIQYzIU07LwMlJQuCFmcx7IQTgoIMA0GCSqGSIb3DQEBCwUA +A4IBAQCY8jdaQZChGsV2USggNiMOruYou6r4lK5IpDB/G/wkjUu0yKGX9rbxenDI +U5PMCCjjmCXPI6T53iHTfIUJrU6adTrCC2qJeHZERxhlbI1Bjjt/msv0tadQ1wUs +N+gDS63pYaACbvXy8MWy7Vu33PqUXHeeE6V/Uq2V8viTO96LXFvKWlJbYK8U90vv +o/ufQJVtMVT8QtPHRh8jrdkPSHCa2XV4cdFyQzR1bldZwgJcJmApzyMZFo6IQ6XU +5MsI+yMRQ+hDKXJioaldXgjUkK642M4UwtBV8ob2xJNDd2ZhwLnoQdeXeGADbkpy +rqXRfboQnoZsG4q5WTP468SQvvG5 +-----END CERTIFICATE----- + +# Issuer: CN=Amazon Root CA 2 O=Amazon +# Subject: CN=Amazon Root CA 2 O=Amazon +# Label: "Amazon Root CA 2" +# Serial: 143266982885963551818349160658925006970653239 +# MD5 Fingerprint: c8:e5:8d:ce:a8:42:e2:7a:c0:2a:5c:7c:9e:26:bf:66 +# SHA1 Fingerprint: 5a:8c:ef:45:d7:a6:98:59:76:7a:8c:8b:44:96:b5:78:cf:47:4b:1a +# SHA256 Fingerprint: 1b:a5:b2:aa:8c:65:40:1a:82:96:01:18:f8:0b:ec:4f:62:30:4d:83:ce:c4:71:3a:19:c3:9c:01:1e:a4:6d:b4 +-----BEGIN CERTIFICATE----- +MIIFQTCCAymgAwIBAgITBmyf0pY1hp8KD+WGePhbJruKNzANBgkqhkiG9w0BAQwF +ADA5MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6 +b24gUm9vdCBDQSAyMB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTEL +MAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJv +b3QgQ0EgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK2Wny2cSkxK +gXlRmeyKy2tgURO8TW0G/LAIjd0ZEGrHJgw12MBvIITplLGbhQPDW9tK6Mj4kHbZ +W0/jTOgGNk3Mmqw9DJArktQGGWCsN0R5hYGCrVo34A3MnaZMUnbqQ523BNFQ9lXg +1dKmSYXpN+nKfq5clU1Imj+uIFptiJXZNLhSGkOQsL9sBbm2eLfq0OQ6PBJTYv9K +8nu+NQWpEjTj82R0Yiw9AElaKP4yRLuH3WUnAnE72kr3H9rN9yFVkE8P7K6C4Z9r +2UXTu/Bfh+08LDmG2j/e7HJV63mjrdvdfLC6HM783k81ds8P+HgfajZRRidhW+me +z/CiVX18JYpvL7TFz4QuK/0NURBs+18bvBt+xa47mAExkv8LV/SasrlX6avvDXbR +8O70zoan4G7ptGmh32n2M8ZpLpcTnqWHsFcQgTfJU7O7f/aS0ZzQGPSSbtqDT6Zj +mUyl+17vIWR6IF9sZIUVyzfpYgwLKhbcAS4y2j5L9Z469hdAlO+ekQiG+r5jqFoz +7Mt0Q5X5bGlSNscpb/xVA1wf+5+9R+vnSUeVC06JIglJ4PVhHvG/LopyboBZ/1c6 ++XUyo05f7O0oYtlNc/LMgRdg7c3r3NunysV+Ar3yVAhU/bQtCSwXVEqY0VThUWcI +0u1ufm8/0i2BWSlmy5A5lREedCf+3euvAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMB +Af8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSwDPBMMPQFWAJI/TPlUq9LhONm +UjANBgkqhkiG9w0BAQwFAAOCAgEAqqiAjw54o+Ci1M3m9Zh6O+oAA7CXDpO8Wqj2 +LIxyh6mx/H9z/WNxeKWHWc8w4Q0QshNabYL1auaAn6AFC2jkR2vHat+2/XcycuUY ++gn0oJMsXdKMdYV2ZZAMA3m3MSNjrXiDCYZohMr/+c8mmpJ5581LxedhpxfL86kS +k5Nrp+gvU5LEYFiwzAJRGFuFjWJZY7attN6a+yb3ACfAXVU3dJnJUH/jWS5E4ywl +7uxMMne0nxrpS10gxdr9HIcWxkPo1LsmmkVwXqkLN1PiRnsn/eBG8om3zEK2yygm +btmlyTrIQRNg91CMFa6ybRoVGld45pIq2WWQgj9sAq+uEjonljYE1x2igGOpm/Hl +urR8FLBOybEfdF849lHqm/osohHUqS0nGkWxr7JOcQ3AWEbWaQbLU8uz/mtBzUF+ +fUwPfHJ5elnNXkoOrJupmHN5fLT0zLm4BwyydFy4x2+IoZCn9Kr5v2c69BoVYh63 +n749sSmvZ6ES8lgQGVMDMBu4Gon2nL2XA46jCfMdiyHxtN/kHNGfZQIG6lzWE7OE +76KlXIx3KadowGuuQNKotOrN8I1LOJwZmhsoVLiJkO/KdYE+HvJkJMcYr07/R54H +9jVlpNMKVv/1F2Rs76giJUmTtt8AF9pYfl3uxRuw0dFfIRDH+fO6AgonB8Xx1sfT +4PsJYGw= +-----END CERTIFICATE----- + +# Issuer: CN=Amazon Root CA 3 O=Amazon +# Subject: CN=Amazon Root CA 3 O=Amazon +# Label: "Amazon Root CA 3" +# Serial: 143266986699090766294700635381230934788665930 +# MD5 Fingerprint: a0:d4:ef:0b:f7:b5:d8:49:95:2a:ec:f5:c4:fc:81:87 +# SHA1 Fingerprint: 0d:44:dd:8c:3c:8c:1a:1a:58:75:64:81:e9:0f:2e:2a:ff:b3:d2:6e +# SHA256 Fingerprint: 18:ce:6c:fe:7b:f1:4e:60:b2:e3:47:b8:df:e8:68:cb:31:d0:2e:bb:3a:da:27:15:69:f5:03:43:b4:6d:b3:a4 +-----BEGIN CERTIFICATE----- +MIIBtjCCAVugAwIBAgITBmyf1XSXNmY/Owua2eiedgPySjAKBggqhkjOPQQDAjA5 +MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24g +Um9vdCBDQSAzMB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkG +A1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJvb3Qg +Q0EgMzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCmXp8ZBf8ANm+gBG1bG8lKl +ui2yEujSLtf6ycXYqm0fc4E7O5hrOXwzpcVOho6AF2hiRVd9RFgdszflZwjrZt6j +QjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSr +ttvXBp43rDCGB5Fwx5zEGbF4wDAKBggqhkjOPQQDAgNJADBGAiEA4IWSoxe3jfkr +BqWTrBqYaGFy+uGh0PsceGCmQ5nFuMQCIQCcAu/xlJyzlvnrxir4tiz+OpAUFteM +YyRIHN8wfdVoOw== +-----END CERTIFICATE----- + +# Issuer: CN=Amazon Root CA 4 O=Amazon +# Subject: CN=Amazon Root CA 4 O=Amazon +# Label: "Amazon Root CA 4" +# Serial: 143266989758080763974105200630763877849284878 +# MD5 Fingerprint: 89:bc:27:d5:eb:17:8d:06:6a:69:d5:fd:89:47:b4:cd +# SHA1 Fingerprint: f6:10:84:07:d6:f8:bb:67:98:0c:c2:e2:44:c2:eb:ae:1c:ef:63:be +# SHA256 Fingerprint: e3:5d:28:41:9e:d0:20:25:cf:a6:90:38:cd:62:39:62:45:8d:a5:c6:95:fb:de:a3:c2:2b:0b:fb:25:89:70:92 +-----BEGIN CERTIFICATE----- +MIIB8jCCAXigAwIBAgITBmyf18G7EEwpQ+Vxe3ssyBrBDjAKBggqhkjOPQQDAzA5 +MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24g +Um9vdCBDQSA0MB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkG +A1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJvb3Qg +Q0EgNDB2MBAGByqGSM49AgEGBSuBBAAiA2IABNKrijdPo1MN/sGKe0uoe0ZLY7Bi +9i0b2whxIdIA6GO9mif78DluXeo9pcmBqqNbIJhFXRbb/egQbeOc4OO9X4Ri83Bk +M6DLJC9wuoihKqB1+IGuYgbEgds5bimwHvouXKNCMEAwDwYDVR0TAQH/BAUwAwEB +/zAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYEFNPsxzplbszh2naaVvuc84ZtV+WB +MAoGCCqGSM49BAMDA2gAMGUCMDqLIfG9fhGt0O9Yli/W651+kI0rz2ZVwyzjKKlw +CkcO8DdZEv8tmZQoTipPNU0zWgIxAOp1AE47xDqUEpHJWEadIRNyp4iciuRMStuW +1KyLa2tJElMzrdfkviT8tQp21KW8EA== +-----END CERTIFICATE----- + +# Issuer: CN=TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1 O=Turkiye Bilimsel ve Teknolojik Arastirma Kurumu - TUBITAK OU=Kamu Sertifikasyon Merkezi - Kamu SM +# Subject: CN=TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1 O=Turkiye Bilimsel ve Teknolojik Arastirma Kurumu - TUBITAK OU=Kamu Sertifikasyon Merkezi - Kamu SM +# Label: "TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1" +# Serial: 1 +# MD5 Fingerprint: dc:00:81:dc:69:2f:3e:2f:b0:3b:f6:3d:5a:91:8e:49 +# SHA1 Fingerprint: 31:43:64:9b:ec:ce:27:ec:ed:3a:3f:0b:8f:0d:e4:e8:91:dd:ee:ca +# SHA256 Fingerprint: 46:ed:c3:68:90:46:d5:3a:45:3f:b3:10:4a:b8:0d:ca:ec:65:8b:26:60:ea:16:29:dd:7e:86:79:90:64:87:16 +-----BEGIN CERTIFICATE----- +MIIEYzCCA0ugAwIBAgIBATANBgkqhkiG9w0BAQsFADCB0jELMAkGA1UEBhMCVFIx +GDAWBgNVBAcTD0dlYnplIC0gS29jYWVsaTFCMEAGA1UEChM5VHVya2l5ZSBCaWxp +bXNlbCB2ZSBUZWtub2xvamlrIEFyYXN0aXJtYSBLdXJ1bXUgLSBUVUJJVEFLMS0w +KwYDVQQLEyRLYW11IFNlcnRpZmlrYXN5b24gTWVya2V6aSAtIEthbXUgU00xNjA0 +BgNVBAMTLVRVQklUQUsgS2FtdSBTTSBTU0wgS29rIFNlcnRpZmlrYXNpIC0gU3Vy +dW0gMTAeFw0xMzExMjUwODI1NTVaFw00MzEwMjUwODI1NTVaMIHSMQswCQYDVQQG +EwJUUjEYMBYGA1UEBxMPR2ViemUgLSBLb2NhZWxpMUIwQAYDVQQKEzlUdXJraXll +IEJpbGltc2VsIHZlIFRla25vbG9qaWsgQXJhc3Rpcm1hIEt1cnVtdSAtIFRVQklU +QUsxLTArBgNVBAsTJEthbXUgU2VydGlmaWthc3lvbiBNZXJrZXppIC0gS2FtdSBT +TTE2MDQGA1UEAxMtVFVCSVRBSyBLYW11IFNNIFNTTCBLb2sgU2VydGlmaWthc2kg +LSBTdXJ1bSAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr3UwM6q7 +a9OZLBI3hNmNe5eA027n/5tQlT6QlVZC1xl8JoSNkvoBHToP4mQ4t4y86Ij5iySr +LqP1N+RAjhgleYN1Hzv/bKjFxlb4tO2KRKOrbEz8HdDc72i9z+SqzvBV96I01INr +N3wcwv61A+xXzry0tcXtAA9TNypN9E8Mg/uGz8v+jE69h/mniyFXnHrfA2eJLJ2X +YacQuFWQfw4tJzh03+f92k4S400VIgLI4OD8D62K18lUUMw7D8oWgITQUVbDjlZ/ +iSIzL+aFCr2lqBs23tPcLG07xxO9WSMs5uWk99gL7eqQQESolbuT1dCANLZGeA4f +AJNG4e7p+exPFwIDAQABo0IwQDAdBgNVHQ4EFgQUZT/HiobGPN08VFw1+DrtUgxH +V8gwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEL +BQADggEBACo/4fEyjq7hmFxLXs9rHmoJ0iKpEsdeV31zVmSAhHqT5Am5EM2fKifh +AHe+SMg1qIGf5LgsyX8OsNJLN13qudULXjS99HMpw+0mFZx+CFOKWI3QSyjfwbPf +IPP54+M638yclNhOT8NrF7f3cuitZjO1JVOr4PhMqZ398g26rrnZqsZr+ZO7rqu4 +lzwDGrpDxpa5RXI4s6ehlj2Re37AIVNMh+3yC1SVUZPVIqUNivGTDj5UDrDYyU7c +8jEyVupk+eq1nRZmQnLzf9OxMUP8pI4X8W0jq5Rm+K37DwhuJi1/FwcJsoz7UMCf +lo3Ptv0AnVoUmr8CRPXBwp8iXqIPoeM= +-----END CERTIFICATE----- + +# Issuer: CN=GDCA TrustAUTH R5 ROOT O=GUANG DONG CERTIFICATE AUTHORITY CO.,LTD. +# Subject: CN=GDCA TrustAUTH R5 ROOT O=GUANG DONG CERTIFICATE AUTHORITY CO.,LTD. +# Label: "GDCA TrustAUTH R5 ROOT" +# Serial: 9009899650740120186 +# MD5 Fingerprint: 63:cc:d9:3d:34:35:5c:6f:53:a3:e2:08:70:48:1f:b4 +# SHA1 Fingerprint: 0f:36:38:5b:81:1a:25:c3:9b:31:4e:83:ca:e9:34:66:70:cc:74:b4 +# SHA256 Fingerprint: bf:ff:8f:d0:44:33:48:7d:6a:8a:a6:0c:1a:29:76:7a:9f:c2:bb:b0:5e:42:0f:71:3a:13:b9:92:89:1d:38:93 +-----BEGIN CERTIFICATE----- +MIIFiDCCA3CgAwIBAgIIfQmX/vBH6nowDQYJKoZIhvcNAQELBQAwYjELMAkGA1UE +BhMCQ04xMjAwBgNVBAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZ +IENPLixMVEQuMR8wHQYDVQQDDBZHRENBIFRydXN0QVVUSCBSNSBST09UMB4XDTE0 +MTEyNjA1MTMxNVoXDTQwMTIzMTE1NTk1OVowYjELMAkGA1UEBhMCQ04xMjAwBgNV +BAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZIENPLixMVEQuMR8w +HQYDVQQDDBZHRENBIFRydXN0QVVUSCBSNSBST09UMIICIjANBgkqhkiG9w0BAQEF +AAOCAg8AMIICCgKCAgEA2aMW8Mh0dHeb7zMNOwZ+Vfy1YI92hhJCfVZmPoiC7XJj +Dp6L3TQsAlFRwxn9WVSEyfFrs0yw6ehGXTjGoqcuEVe6ghWinI9tsJlKCvLriXBj +TnnEt1u9ol2x8kECK62pOqPseQrsXzrj/e+APK00mxqriCZ7VqKChh/rNYmDf1+u +KU49tm7srsHwJ5uu4/Ts765/94Y9cnrrpftZTqfrlYwiOXnhLQiPzLyRuEH3FMEj +qcOtmkVEs7LXLM3GKeJQEK5cy4KOFxg2fZfmiJqwTTQJ9Cy5WmYqsBebnh52nUpm +MUHfP/vFBu8btn4aRjb3ZGM74zkYI+dndRTVdVeSN72+ahsmUPI2JgaQxXABZG12 +ZuGR224HwGGALrIuL4xwp9E7PLOR5G62xDtw8mySlwnNR30YwPO7ng/Wi64HtloP +zgsMR6flPri9fcebNaBhlzpBdRfMK5Z3KpIhHtmVdiBnaM8Nvd/WHwlqmuLMc3Gk +L30SgLdTMEZeS1SZD2fJpcjyIMGC7J0R38IC+xo70e0gmu9lZJIQDSri3nDxGGeC +jGHeuLzRL5z7D9Ar7Rt2ueQ5Vfj4oR24qoAATILnsn8JuLwwoC8N9VKejveSswoA +HQBUlwbgsQfZxw9cZX08bVlX5O2ljelAU58VS6Bx9hoh49pwBiFYFIeFd3mqgnkC +AwEAAaNCMEAwHQYDVR0OBBYEFOLJQJ9NzuiaoXzPDj9lxSmIahlRMA8GA1UdEwEB +/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQDRSVfg +p8xoWLoBDysZzY2wYUWsEe1jUGn4H3++Fo/9nesLqjJHdtJnJO29fDMylyrHBYZm +DRd9FBUb1Ov9H5r2XpdptxolpAqzkT9fNqyL7FeoPueBihhXOYV0GkLH6VsTX4/5 +COmSdI31R9KrO9b7eGZONn356ZLpBN79SWP8bfsUcZNnL0dKt7n/HipzcEYwv1ry +L3ml4Y0M2fmyYzeMN2WFcGpcWwlyua1jPLHd+PwyvzeG5LuOmCd+uh8W4XAR8gPf +JWIyJyYYMoSf/wA6E7qaTfRPuBRwIrHKK5DOKcFw9C+df/KQHtZa37dG/OaG+svg +IHZ6uqbL9XzeYqWxi+7egmaKTjowHz+Ay60nugxe19CxVsp3cbK1daFQqUBDF8Io +2c9Si1vIY9RCPqAzekYu9wogRlR+ak8x8YF+QnQ4ZXMn7sZ8uI7XpTrXmKGcjBBV +09tL7ECQ8s1uV9JiDnxXk7Gnbc2dg7sq5+W2O3FYrf3RRbxake5TFW/TRQl1brqQ +XR4EzzffHqhmsYzmIGrv/EhOdJhCrylvLmrH+33RZjEizIYAfmaDDEL0vTSSwxrq +T8p+ck0LcIymSLumoRT2+1hEmRSuqguTaaApJUqlyyvdimYHFngVV3Eb7PVHhPOe +MTd61X8kreS8/f3MboPoDKi3QWwH3b08hpcv0g== +-----END CERTIFICATE----- + +# Issuer: CN=SSL.com Root Certification Authority RSA O=SSL Corporation +# Subject: CN=SSL.com Root Certification Authority RSA O=SSL Corporation +# Label: "SSL.com Root Certification Authority RSA" +# Serial: 8875640296558310041 +# MD5 Fingerprint: 86:69:12:c0:70:f1:ec:ac:ac:c2:d5:bc:a5:5b:a1:29 +# SHA1 Fingerprint: b7:ab:33:08:d1:ea:44:77:ba:14:80:12:5a:6f:bd:a9:36:49:0c:bb +# SHA256 Fingerprint: 85:66:6a:56:2e:e0:be:5c:e9:25:c1:d8:89:0a:6f:76:a8:7e:c1:6d:4d:7d:5f:29:ea:74:19:cf:20:12:3b:69 +-----BEGIN CERTIFICATE----- +MIIF3TCCA8WgAwIBAgIIeyyb0xaAMpkwDQYJKoZIhvcNAQELBQAwfDELMAkGA1UE +BhMCVVMxDjAMBgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQK +DA9TU0wgQ29ycG9yYXRpb24xMTAvBgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eSBSU0EwHhcNMTYwMjEyMTczOTM5WhcNNDEwMjEyMTcz +OTM5WjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hv +dXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NMLmNv +bSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFJTQTCCAiIwDQYJKoZIhvcN +AQEBBQADggIPADCCAgoCggIBAPkP3aMrfcvQKv7sZ4Wm5y4bunfh4/WvpOz6Sl2R +xFdHaxh3a3by/ZPkPQ/CFp4LZsNWlJ4Xg4XOVu/yFv0AYvUiCVToZRdOQbngT0aX +qhvIuG5iXmmxX9sqAn78bMrzQdjt0Oj8P2FI7bADFB0QDksZ4LtO7IZl/zbzXmcC +C52GVWH9ejjt/uIZALdvoVBidXQ8oPrIJZK0bnoix/geoeOy3ZExqysdBP+lSgQ3 +6YWkMyv94tZVNHwZpEpox7Ko07fKoZOI68GXvIz5HdkihCR0xwQ9aqkpk8zruFvh +/l8lqjRYyMEjVJ0bmBHDOJx+PYZspQ9AhnwC9FwCTyjLrnGfDzrIM/4RJTXq/LrF +YD3ZfBjVsqnTdXgDciLKOsMf7yzlLqn6niy2UUb9rwPW6mBo6oUWNmuF6R7As93E +JNyAKoFBbZQ+yODJgUEAnl6/f8UImKIYLEJAs/lvOCdLToD0PYFH4Ih86hzOtXVc +US4cK38acijnALXRdMbX5J+tB5O2UzU1/Dfkw/ZdFr4hc96SCvigY2q8lpJqPvi8 +ZVWb3vUNiSYE/CUapiVpy8JtynziWV+XrOvvLsi81xtZPCvM8hnIk2snYxnP/Okm ++Mpxm3+T/jRnhE6Z6/yzeAkzcLpmpnbtG3PrGqUNxCITIJRWCk4sbE6x/c+cCbqi +M+2HAgMBAAGjYzBhMB0GA1UdDgQWBBTdBAkHovV6fVJTEpKV7jiAJQ2mWTAPBgNV +HRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFN0ECQei9Xp9UlMSkpXuOIAlDaZZMA4G +A1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAIBgRlCn7Jp0cHh5wYfGV +cpNxJK1ok1iOMq8bs3AD/CUrdIWQPXhq9LmLpZc7tRiRux6n+UBbkflVma8eEdBc +Hadm47GUBwwyOabqG7B52B2ccETjit3E+ZUfijhDPwGFpUenPUayvOUiaPd7nNgs +PgohyC0zrL/FgZkxdMF1ccW+sfAjRfSda/wZY52jvATGGAslu1OJD7OAUN5F7kR/ +q5R4ZJjT9ijdh9hwZXT7DrkT66cPYakylszeu+1jTBi7qUD3oFRuIIhxdRjqerQ0 +cuAjJ3dctpDqhiVAq+8zD8ufgr6iIPv2tS0a5sKFsXQP+8hlAqRSAUfdSSLBv9jr +a6x+3uxjMxW3IwiPxg+NQVrdjsW5j+VFP3jbutIbQLH+cU0/4IGiul607BXgk90I +H37hVZkLId6Tngr75qNJvTYw/ud3sqB1l7UtgYgXZSD32pAAn8lSzDLKNXz1PQ/Y +K9f1JmzJBjSWFupwWRoyeXkLtoh/D1JIPb9s2KJELtFOt3JY04kTlf5Eq/jXixtu +nLwsoFvVagCvXzfh1foQC5ichucmj87w7G6KVwuA406ywKBjYZC6VWg3dGq2ktuf +oYYitmUnDuy2n0Jg5GfCtdpBC8TTi2EbvPofkSvXRAdeuims2cXp71NIWuuA8ShY +Ic2wBlX7Jz9TkHCpBB5XJ7k= +-----END CERTIFICATE----- + +# Issuer: CN=SSL.com Root Certification Authority ECC O=SSL Corporation +# Subject: CN=SSL.com Root Certification Authority ECC O=SSL Corporation +# Label: "SSL.com Root Certification Authority ECC" +# Serial: 8495723813297216424 +# MD5 Fingerprint: 2e:da:e4:39:7f:9c:8f:37:d1:70:9f:26:17:51:3a:8e +# SHA1 Fingerprint: c3:19:7c:39:24:e6:54:af:1b:c4:ab:20:95:7a:e2:c3:0e:13:02:6a +# SHA256 Fingerprint: 34:17:bb:06:cc:60:07:da:1b:96:1c:92:0b:8a:b4:ce:3f:ad:82:0e:4a:a3:0b:9a:cb:c4:a7:4e:bd:ce:bc:65 +-----BEGIN CERTIFICATE----- +MIICjTCCAhSgAwIBAgIIdebfy8FoW6gwCgYIKoZIzj0EAwIwfDELMAkGA1UEBhMC +VVMxDjAMBgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9T +U0wgQ29ycG9yYXRpb24xMTAvBgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZpY2F0 +aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYwMjEyMTgxNDAzWhcNNDEwMjEyMTgxNDAz +WjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hvdXN0 +b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NMLmNvbSBS +b290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49AgEGBSuB +BAAiA2IABEVuqVDEpiM2nl8ojRfLliJkP9x6jh3MCLOicSS6jkm5BBtHllirLZXI +7Z4INcgn64mMU1jrYor+8FsPazFSY0E7ic3s7LaNGdM0B9y7xgZ/wkWV7Mt/qCPg +CemB+vNH06NjMGEwHQYDVR0OBBYEFILRhXMw5zUE044CkvvlpNHEIejNMA8GA1Ud +EwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUgtGFczDnNQTTjgKS++Wk0cQh6M0wDgYD +VR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2cAMGQCMG/n61kRpGDPYbCWe+0F+S8T +kdzt5fxQaxFGRrMcIQBiu77D5+jNB5n5DQtdcj7EqgIwH7y6C+IwJPt8bYBVCpk+ +gA0z5Wajs6O7pdWLjwkspl1+4vAHCGht0nxpbl/f5Wpl +-----END CERTIFICATE----- + +# Issuer: CN=SSL.com EV Root Certification Authority RSA R2 O=SSL Corporation +# Subject: CN=SSL.com EV Root Certification Authority RSA R2 O=SSL Corporation +# Label: "SSL.com EV Root Certification Authority RSA R2" +# Serial: 6248227494352943350 +# MD5 Fingerprint: e1:1e:31:58:1a:ae:54:53:02:f6:17:6a:11:7b:4d:95 +# SHA1 Fingerprint: 74:3a:f0:52:9b:d0:32:a0:f4:4a:83:cd:d4:ba:a9:7b:7c:2e:c4:9a +# SHA256 Fingerprint: 2e:7b:f1:6c:c2:24:85:a7:bb:e2:aa:86:96:75:07:61:b0:ae:39:be:3b:2f:e9:d0:cc:6d:4e:f7:34:91:42:5c +-----BEGIN CERTIFICATE----- +MIIF6zCCA9OgAwIBAgIIVrYpzTS8ePYwDQYJKoZIhvcNAQELBQAwgYIxCzAJBgNV +BAYTAlVTMQ4wDAYDVQQIDAVUZXhhczEQMA4GA1UEBwwHSG91c3RvbjEYMBYGA1UE +CgwPU1NMIENvcnBvcmF0aW9uMTcwNQYDVQQDDC5TU0wuY29tIEVWIFJvb3QgQ2Vy +dGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIyMB4XDTE3MDUzMTE4MTQzN1oXDTQy +MDUzMDE4MTQzN1owgYIxCzAJBgNVBAYTAlVTMQ4wDAYDVQQIDAVUZXhhczEQMA4G +A1UEBwwHSG91c3RvbjEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMTcwNQYDVQQD +DC5TU0wuY29tIEVWIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIy +MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAjzZlQOHWTcDXtOlG2mvq +M0fNTPl9fb69LT3w23jhhqXZuglXaO1XPqDQCEGD5yhBJB/jchXQARr7XnAjssuf +OePPxU7Gkm0mxnu7s9onnQqG6YE3Bf7wcXHswxzpY6IXFJ3vG2fThVUCAtZJycxa +4bH3bzKfydQ7iEGonL3Lq9ttewkfokxykNorCPzPPFTOZw+oz12WGQvE43LrrdF9 +HSfvkusQv1vrO6/PgN3B0pYEW3p+pKk8OHakYo6gOV7qd89dAFmPZiw+B6KjBSYR +aZfqhbcPlgtLyEDhULouisv3D5oi53+aNxPN8k0TayHRwMwi8qFG9kRpnMphNQcA +b9ZhCBHqurj26bNg5U257J8UZslXWNvNh2n4ioYSA0e/ZhN2rHd9NCSFg83XqpyQ +Gp8hLH94t2S42Oim9HizVcuE0jLEeK6jj2HdzghTreyI/BXkmg3mnxp3zkyPuBQV +PWKchjgGAGYS5Fl2WlPAApiiECtoRHuOec4zSnaqW4EWG7WK2NAAe15itAnWhmMO +pgWVSbooi4iTsjQc2KRVbrcc0N6ZVTsj9CLg+SlmJuwgUHfbSguPvuUCYHBBXtSu +UDkiFCbLsjtzdFVHB3mBOagwE0TlBIqulhMlQg+5U8Sb/M3kHN48+qvWBkofZ6aY +MBzdLNvcGJVXZsb/XItW9XcCAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNV +HSMEGDAWgBT5YLvU49U09rj1BoAlp3PbRmmonjAdBgNVHQ4EFgQU+WC71OPVNPa4 +9QaAJadz20ZpqJ4wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQBW +s47LCp1Jjr+kxJG7ZhcFUZh1++VQLHqe8RT6q9OKPv+RKY9ji9i0qVQBDb6Thi/5 +Sm3HXvVX+cpVHBK+Rw82xd9qt9t1wkclf7nxY/hoLVUE0fKNsKTPvDxeH3jnpaAg +cLAExbf3cqfeIg29MyVGjGSSJuM+LmOW2puMPfgYCdcDzH2GguDKBAdRUNf/ktUM +79qGn5nX67evaOI5JpS6aLe/g9Pqemc9YmeuJeVy6OLk7K4S9ksrPJ/psEDzOFSz +/bdoyNrGj1E8svuR3Bznm53htw1yj+KkxKl4+esUrMZDBcJlOSgYAsOCsp0FvmXt +ll9ldDz7CTUue5wT/RsPXcdtgTpWD8w74a8CLyKsRspGPKAcTNZEtF4uXBVmCeEm +Kf7GUmG6sXP/wwyc5WxqlD8UykAWlYTzWamsX0xhk23RO8yilQwipmdnRC652dKK +QbNmC1r7fSOl8hqw/96bg5Qu0T/fkreRrwU7ZcegbLHNYhLDkBvjJc40vG93drEQ +w/cFGsDWr3RiSBd3kmmQYRzelYB0VI8YHMPzA9C/pEN1hlMYegouCRw2n5H9gooi +S9EOUCXdywMMF8mDAAhONU2Ki+3wApRmLER/y5UnlhetCTCstnEXbosX9hwJ1C07 +mKVx01QT2WDz9UtmT/rx7iASjbSsV7FFY6GsdqnC+w== +-----END CERTIFICATE----- + +# Issuer: CN=SSL.com EV Root Certification Authority ECC O=SSL Corporation +# Subject: CN=SSL.com EV Root Certification Authority ECC O=SSL Corporation +# Label: "SSL.com EV Root Certification Authority ECC" +# Serial: 3182246526754555285 +# MD5 Fingerprint: 59:53:22:65:83:42:01:54:c0:ce:42:b9:5a:7c:f2:90 +# SHA1 Fingerprint: 4c:dd:51:a3:d1:f5:20:32:14:b0:c6:c5:32:23:03:91:c7:46:42:6d +# SHA256 Fingerprint: 22:a2:c1:f7:bd:ed:70:4c:c1:e7:01:b5:f4:08:c3:10:88:0f:e9:56:b5:de:2a:4a:44:f9:9c:87:3a:25:a7:c8 +-----BEGIN CERTIFICATE----- +MIIClDCCAhqgAwIBAgIILCmcWxbtBZUwCgYIKoZIzj0EAwIwfzELMAkGA1UEBhMC +VVMxDjAMBgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9T +U0wgQ29ycG9yYXRpb24xNDAyBgNVBAMMK1NTTC5jb20gRVYgUm9vdCBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYwMjEyMTgxNTIzWhcNNDEwMjEyMTgx +NTIzWjB/MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hv +dXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjE0MDIGA1UEAwwrU1NMLmNv +bSBFViBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49 +AgEGBSuBBAAiA2IABKoSR5CYG/vvw0AHgyBO8TCCogbR8pKGYfL2IWjKAMTH6kMA +VIbc/R/fALhBYlzccBYy3h+Z1MzFB8gIH2EWB1E9fVwHU+M1OIzfzZ/ZLg1Kthku +WnBaBu2+8KGwytAJKaNjMGEwHQYDVR0OBBYEFFvKXuXe0oGqzagtZFG22XKbl+ZP +MA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUW8pe5d7SgarNqC1kUbbZcpuX +5k8wDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2gAMGUCMQCK5kCJN+vp1RPZ +ytRrJPOwPYdGWBrssd9v+1a6cGvHOMzosYxPD/fxZ3YOg9AeUY8CMD32IygmTMZg +h5Mmm7I1HrrW9zzRHM76JTymGoEVW/MSD2zuZYrJh6j5B+BimoxcSg== +-----END CERTIFICATE----- + +# Issuer: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R6 +# Subject: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R6 +# Label: "GlobalSign Root CA - R6" +# Serial: 1417766617973444989252670301619537 +# MD5 Fingerprint: 4f:dd:07:e4:d4:22:64:39:1e:0c:37:42:ea:d1:c6:ae +# SHA1 Fingerprint: 80:94:64:0e:b5:a7:a1:ca:11:9c:1f:dd:d5:9f:81:02:63:a7:fb:d1 +# SHA256 Fingerprint: 2c:ab:ea:fe:37:d0:6c:a2:2a:ba:73:91:c0:03:3d:25:98:29:52:c4:53:64:73:49:76:3a:3a:b5:ad:6c:cf:69 +-----BEGIN CERTIFICATE----- +MIIFgzCCA2ugAwIBAgIORea7A4Mzw4VlSOb/RVEwDQYJKoZIhvcNAQEMBQAwTDEg +MB4GA1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjYxEzARBgNVBAoTCkdsb2Jh +bFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMTQxMjEwMDAwMDAwWhcNMzQx +MjEwMDAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSNjET +MBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCAiIwDQYJ +KoZIhvcNAQEBBQADggIPADCCAgoCggIBAJUH6HPKZvnsFMp7PPcNCPG0RQssgrRI +xutbPK6DuEGSMxSkb3/pKszGsIhrxbaJ0cay/xTOURQh7ErdG1rG1ofuTToVBu1k +ZguSgMpE3nOUTvOniX9PeGMIyBJQbUJmL025eShNUhqKGoC3GYEOfsSKvGRMIRxD +aNc9PIrFsmbVkJq3MQbFvuJtMgamHvm566qjuL++gmNQ0PAYid/kD3n16qIfKtJw +LnvnvJO7bVPiSHyMEAc4/2ayd2F+4OqMPKq0pPbzlUoSB239jLKJz9CgYXfIWHSw +1CM69106yqLbnQneXUQtkPGBzVeS+n68UARjNN9rkxi+azayOeSsJDa38O+2HBNX +k7besvjihbdzorg1qkXy4J02oW9UivFyVm4uiMVRQkQVlO6jxTiWm05OWgtH8wY2 +SXcwvHE35absIQh1/OZhFj931dmRl4QKbNQCTXTAFO39OfuD8l4UoQSwC+n+7o/h +bguyCLNhZglqsQY6ZZZZwPA1/cnaKI0aEYdwgQqomnUdnjqGBQCe24DWJfncBZ4n +WUx2OVvq+aWh2IMP0f/fMBH5hc8zSPXKbWQULHpYT9NLCEnFlWQaYw55PfWzjMpY +rZxCRXluDocZXFSxZba/jJvcE+kNb7gu3GduyYsRtYQUigAZcIN5kZeR1Bonvzce +MgfYFGM8KEyvAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTAD +AQH/MB0GA1UdDgQWBBSubAWjkxPioufi1xzWx/B/yGdToDAfBgNVHSMEGDAWgBSu +bAWjkxPioufi1xzWx/B/yGdToDANBgkqhkiG9w0BAQwFAAOCAgEAgyXt6NH9lVLN +nsAEoJFp5lzQhN7craJP6Ed41mWYqVuoPId8AorRbrcWc+ZfwFSY1XS+wc3iEZGt +Ixg93eFyRJa0lV7Ae46ZeBZDE1ZXs6KzO7V33EByrKPrmzU+sQghoefEQzd5Mr61 +55wsTLxDKZmOMNOsIeDjHfrYBzN2VAAiKrlNIC5waNrlU/yDXNOd8v9EDERm8tLj +vUYAGm0CuiVdjaExUd1URhxN25mW7xocBFymFe944Hn+Xds+qkxV/ZoVqW/hpvvf +cDDpw+5CRu3CkwWJ+n1jez/QcYF8AOiYrg54NMMl+68KnyBr3TsTjxKM4kEaSHpz +oHdpx7Zcf4LIHv5YGygrqGytXm3ABdJ7t+uA/iU3/gKbaKxCXcPu9czc8FB10jZp +nOZ7BN9uBmm23goJSFmH63sUYHpkqmlD75HHTOwY3WzvUy2MmeFe8nI+z1TIvWfs +pA9MRf/TuTAjB0yPEL+GltmZWrSZVxykzLsViVO6LAUP5MSeGbEYNNVMnbrt9x+v +JJUEeKgDu+6B5dpffItKoZB0JaezPkvILFa9x8jvOOJckvB595yEunQtYQEgfn7R +8k8HWV+LLUNS60YMlOH1Zkd5d9VUWx+tJDfLRVpOoERIyNiwmcUVhAn21klJwGW4 +5hpxbqCo8YLoRT5s1gLXCmeDBVrJpBA= +-----END CERTIFICATE----- + +# Issuer: CN=OISTE WISeKey Global Root GC CA O=WISeKey OU=OISTE Foundation Endorsed +# Subject: CN=OISTE WISeKey Global Root GC CA O=WISeKey OU=OISTE Foundation Endorsed +# Label: "OISTE WISeKey Global Root GC CA" +# Serial: 44084345621038548146064804565436152554 +# MD5 Fingerprint: a9:d6:b9:2d:2f:93:64:f8:a5:69:ca:91:e9:68:07:23 +# SHA1 Fingerprint: e0:11:84:5e:34:de:be:88:81:b9:9c:f6:16:26:d1:96:1f:c3:b9:31 +# SHA256 Fingerprint: 85:60:f9:1c:36:24:da:ba:95:70:b5:fe:a0:db:e3:6f:f1:1a:83:23:be:94:86:85:4f:b3:f3:4a:55:71:19:8d +-----BEGIN CERTIFICATE----- +MIICaTCCAe+gAwIBAgIQISpWDK7aDKtARb8roi066jAKBggqhkjOPQQDAzBtMQsw +CQYDVQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUgRm91 +bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwg +Um9vdCBHQyBDQTAeFw0xNzA1MDkwOTQ4MzRaFw00MjA1MDkwOTU4MzNaMG0xCzAJ +BgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYDVQQLExlPSVNURSBGb3Vu +ZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEdsb2JhbCBS +b290IEdDIENBMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAETOlQwMYPchi82PG6s4ni +eUqjFqdrVCTbUf/q9Akkwwsin8tqJ4KBDdLArzHkdIJuyiXZjHWd8dvQmqJLIX4W +p2OQ0jnUsYd4XxiWD1AbNTcPasbc2RNNpI6QN+a9WzGRo1QwUjAOBgNVHQ8BAf8E +BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUSIcUrOPDnpBgOtfKie7T +rYy0UGYwEAYJKwYBBAGCNxUBBAMCAQAwCgYIKoZIzj0EAwMDaAAwZQIwJsdpW9zV +57LnyAyMjMPdeYwbY9XJUpROTYJKcx6ygISpJcBMWm1JKWB4E+J+SOtkAjEA2zQg +Mgj/mkkCtojeFK9dbJlxjRo/i9fgojaGHAeCOnZT/cKi7e97sIBPWA9LUzm9 +-----END CERTIFICATE----- + +# Issuer: CN=UCA Global G2 Root O=UniTrust +# Subject: CN=UCA Global G2 Root O=UniTrust +# Label: "UCA Global G2 Root" +# Serial: 124779693093741543919145257850076631279 +# MD5 Fingerprint: 80:fe:f0:c4:4a:f0:5c:62:32:9f:1c:ba:78:a9:50:f8 +# SHA1 Fingerprint: 28:f9:78:16:19:7a:ff:18:25:18:aa:44:fe:c1:a0:ce:5c:b6:4c:8a +# SHA256 Fingerprint: 9b:ea:11:c9:76:fe:01:47:64:c1:be:56:a6:f9:14:b5:a5:60:31:7a:bd:99:88:39:33:82:e5:16:1a:a0:49:3c +-----BEGIN CERTIFICATE----- +MIIFRjCCAy6gAwIBAgIQXd+x2lqj7V2+WmUgZQOQ7zANBgkqhkiG9w0BAQsFADA9 +MQswCQYDVQQGEwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxGzAZBgNVBAMMElVDQSBH +bG9iYWwgRzIgUm9vdDAeFw0xNjAzMTEwMDAwMDBaFw00MDEyMzEwMDAwMDBaMD0x +CzAJBgNVBAYTAkNOMREwDwYDVQQKDAhVbmlUcnVzdDEbMBkGA1UEAwwSVUNBIEds +b2JhbCBHMiBSb290MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxeYr +b3zvJgUno4Ek2m/LAfmZmqkywiKHYUGRO8vDaBsGxUypK8FnFyIdK+35KYmToni9 +kmugow2ifsqTs6bRjDXVdfkX9s9FxeV67HeToI8jrg4aA3++1NDtLnurRiNb/yzm +VHqUwCoV8MmNsHo7JOHXaOIxPAYzRrZUEaalLyJUKlgNAQLx+hVRZ2zA+te2G3/R +VogvGjqNO7uCEeBHANBSh6v7hn4PJGtAnTRnvI3HLYZveT6OqTwXS3+wmeOwcWDc +C/Vkw85DvG1xudLeJ1uK6NjGruFZfc8oLTW4lVYa8bJYS7cSN8h8s+1LgOGN+jIj +tm+3SJUIsUROhYw6AlQgL9+/V087OpAh18EmNVQg7Mc/R+zvWr9LesGtOxdQXGLY +D0tK3Cv6brxzks3sx1DoQZbXqX5t2Okdj4q1uViSukqSKwxW/YDrCPBeKW4bHAyv +j5OJrdu9o54hyokZ7N+1wxrrFv54NkzWbtA+FxyQF2smuvt6L78RHBgOLXMDj6Dl +NaBa4kx1HXHhOThTeEDMg5PXCp6dW4+K5OXgSORIskfNTip1KnvyIvbJvgmRlld6 +iIis7nCs+dwp4wwcOxJORNanTrAmyPPZGpeRaOrvjUYG0lZFWJo8DA+DuAUlwznP +O6Q0ibd5Ei9Hxeepl2n8pndntd978XplFeRhVmUCAwEAAaNCMEAwDgYDVR0PAQH/ +BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFIHEjMz15DD/pQwIX4wV +ZyF0Ad/fMA0GCSqGSIb3DQEBCwUAA4ICAQATZSL1jiutROTL/7lo5sOASD0Ee/oj +L3rtNtqyzm325p7lX1iPyzcyochltq44PTUbPrw7tgTQvPlJ9Zv3hcU2tsu8+Mg5 +1eRfB70VVJd0ysrtT7q6ZHafgbiERUlMjW+i67HM0cOU2kTC5uLqGOiiHycFutfl +1qnN3e92mI0ADs0b+gO3joBYDic/UvuUospeZcnWhNq5NXHzJsBPd+aBJ9J3O5oU +b3n09tDh05S60FdRvScFDcH9yBIw7m+NESsIndTUv4BFFJqIRNow6rSn4+7vW4LV +PtateJLbXDzz2K36uGt/xDYotgIVilQsnLAXc47QN6MUPJiVAAwpBVueSUmxX8fj +y88nZY41F7dXyDDZQVu5FLbowg+UMaeUmMxq67XhJ/UQqAHojhJi6IjMtX9Gl8Cb +EGY4GjZGXyJoPd/JxhMnq1MGrKI8hgZlb7F+sSlEmqO6SWkoaY/X5V+tBIZkbxqg +DMUIYs6Ao9Dz7GjevjPHF1t/gMRMTLGmhIrDO7gJzRSBuhjjVFc2/tsvfEehOjPI ++Vg7RE+xygKJBJYoaMVLuCaJu9YzL1DV/pqJuhgyklTGW+Cd+V7lDSKb9triyCGy +YiGqhkCyLmTTX8jjfhFnRR8F/uOi77Oos/N9j/gMHyIfLXC0uAE0djAA5SN4p1bX +UB+K+wb1whnw0A== +-----END CERTIFICATE----- + +# Issuer: CN=UCA Extended Validation Root O=UniTrust +# Subject: CN=UCA Extended Validation Root O=UniTrust +# Label: "UCA Extended Validation Root" +# Serial: 106100277556486529736699587978573607008 +# MD5 Fingerprint: a1:f3:5f:43:c6:34:9b:da:bf:8c:7e:05:53:ad:96:e2 +# SHA1 Fingerprint: a3:a1:b0:6f:24:61:23:4a:e3:36:a5:c2:37:fc:a6:ff:dd:f0:d7:3a +# SHA256 Fingerprint: d4:3a:f9:b3:54:73:75:5c:96:84:fc:06:d7:d8:cb:70:ee:5c:28:e7:73:fb:29:4e:b4:1e:e7:17:22:92:4d:24 +-----BEGIN CERTIFICATE----- +MIIFWjCCA0KgAwIBAgIQT9Irj/VkyDOeTzRYZiNwYDANBgkqhkiG9w0BAQsFADBH +MQswCQYDVQQGEwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxJTAjBgNVBAMMHFVDQSBF +eHRlbmRlZCBWYWxpZGF0aW9uIFJvb3QwHhcNMTUwMzEzMDAwMDAwWhcNMzgxMjMx +MDAwMDAwWjBHMQswCQYDVQQGEwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxJTAjBgNV +BAMMHFVDQSBFeHRlbmRlZCBWYWxpZGF0aW9uIFJvb3QwggIiMA0GCSqGSIb3DQEB +AQUAA4ICDwAwggIKAoICAQCpCQcoEwKwmeBkqh5DFnpzsZGgdT6o+uM4AHrsiWog +D4vFsJszA1qGxliG1cGFu0/GnEBNyr7uaZa4rYEwmnySBesFK5pI0Lh2PpbIILvS +sPGP2KxFRv+qZ2C0d35qHzwaUnoEPQc8hQ2E0B92CvdqFN9y4zR8V05WAT558aop +O2z6+I9tTcg1367r3CTueUWnhbYFiN6IXSV8l2RnCdm/WhUFhvMJHuxYMjMR83dk +sHYf5BA1FxvyDrFspCqjc/wJHx4yGVMR59mzLC52LqGj3n5qiAno8geK+LLNEOfi +c0CTuwjRP+H8C5SzJe98ptfRr5//lpr1kXuYC3fUfugH0mK1lTnj8/FtDw5lhIpj +VMWAtuCeS31HJqcBCF3RiJ7XwzJE+oJKCmhUfzhTA8ykADNkUVkLo4KRel7sFsLz +KuZi2irbWWIQJUoqgQtHB0MGcIfS+pMRKXpITeuUx3BNr2fVUbGAIAEBtHoIppB/ +TuDvB0GHr2qlXov7z1CymlSvw4m6WC31MJixNnI5fkkE/SmnTHnkBVfblLkWU41G +sx2VYVdWf6/wFlthWG82UBEL2KwrlRYaDh8IzTY0ZRBiZtWAXxQgXy0MoHgKaNYs +1+lvK9JKBZP8nm9rZ/+I8U6laUpSNwXqxhaN0sSZ0YIrO7o1dfdRUVjzyAfd5LQD +fwIDAQABo0IwQDAdBgNVHQ4EFgQU2XQ65DA9DfcS3H5aBZ8eNJr34RQwDwYDVR0T +AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggIBADaN +l8xCFWQpN5smLNb7rhVpLGsaGvdftvkHTFnq88nIua7Mui563MD1sC3AO6+fcAUR +ap8lTwEpcOPlDOHqWnzcSbvBHiqB9RZLcpHIojG5qtr8nR/zXUACE/xOHAbKsxSQ +VBcZEhrxH9cMaVr2cXj0lH2RC47skFSOvG+hTKv8dGT9cZr4QQehzZHkPJrgmzI5 +c6sq1WnIeJEmMX3ixzDx/BR4dxIOE/TdFpS/S2d7cFOFyrC78zhNLJA5wA3CXWvp +4uXViI3WLL+rG761KIcSF3Ru/H38j9CHJrAb+7lsq+KePRXBOy5nAliRn+/4Qh8s +t2j1da3Ptfb/EX3C8CSlrdP6oDyp+l3cpaDvRKS+1ujl5BOWF3sGPjLtx7dCvHaj +2GU4Kzg1USEODm8uNBNA4StnDG1KQTAYI1oyVZnJF+A83vbsea0rWBmirSwiGpWO +vpaQXUJXxPkUAzUrHC1RVwinOt4/5Mi0A3PCwSaAuwtCH60NryZy2sy+s6ODWA2C +xR9GUeOcGMyNm43sSet1UNWMKFnKdDTajAshqx7qG+XH/RU+wBeq+yNuJkbL+vmx +cmtpzyKEC2IPrNkZAJSidjzULZrtBJ4tBmIQN1IchXIbJ+XMxjHsN+xjWZsLHXbM +fjKaiJUINlK73nZfdklJrX+9ZSCyycErdhh2n1ax +-----END CERTIFICATE----- + +# Issuer: CN=Certigna Root CA O=Dhimyotis OU=0002 48146308100036 +# Subject: CN=Certigna Root CA O=Dhimyotis OU=0002 48146308100036 +# Label: "Certigna Root CA" +# Serial: 269714418870597844693661054334862075617 +# MD5 Fingerprint: 0e:5c:30:62:27:eb:5b:bc:d7:ae:62:ba:e9:d5:df:77 +# SHA1 Fingerprint: 2d:0d:52:14:ff:9e:ad:99:24:01:74:20:47:6e:6c:85:27:27:f5:43 +# SHA256 Fingerprint: d4:8d:3d:23:ee:db:50:a4:59:e5:51:97:60:1c:27:77:4b:9d:7b:18:c9:4d:5a:05:95:11:a1:02:50:b9:31:68 +-----BEGIN CERTIFICATE----- +MIIGWzCCBEOgAwIBAgIRAMrpG4nxVQMNo+ZBbcTjpuEwDQYJKoZIhvcNAQELBQAw +WjELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczEcMBoGA1UECwwTMDAw +MiA0ODE0NjMwODEwMDAzNjEZMBcGA1UEAwwQQ2VydGlnbmEgUm9vdCBDQTAeFw0x +MzEwMDEwODMyMjdaFw0zMzEwMDEwODMyMjdaMFoxCzAJBgNVBAYTAkZSMRIwEAYD +VQQKDAlEaGlteW90aXMxHDAaBgNVBAsMEzAwMDIgNDgxNDYzMDgxMDAwMzYxGTAX +BgNVBAMMEENlcnRpZ25hIFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw +ggIKAoICAQDNGDllGlmx6mQWDoyUJJV8g9PFOSbcDO8WV43X2KyjQn+Cyu3NW9sO +ty3tRQgXstmzy9YXUnIo245Onoq2C/mehJpNdt4iKVzSs9IGPjA5qXSjklYcoW9M +CiBtnyN6tMbaLOQdLNyzKNAT8kxOAkmhVECe5uUFoC2EyP+YbNDrihqECB63aCPu +I9Vwzm1RaRDuoXrC0SIxwoKF0vJVdlB8JXrJhFwLrN1CTivngqIkicuQstDuI7pm +TLtipPlTWmR7fJj6o0ieD5Wupxj0auwuA0Wv8HT4Ks16XdG+RCYyKfHx9WzMfgIh +C59vpD++nVPiz32pLHxYGpfhPTc3GGYo0kDFUYqMwy3OU4gkWGQwFsWq4NYKpkDf +ePb1BHxpE4S80dGnBs8B92jAqFe7OmGtBIyT46388NtEbVncSVmurJqZNjBBe3Yz +IoejwpKGbvlw7q6Hh5UbxHq9MfPU0uWZ/75I7HX1eBYdpnDBfzwboZL7z8g81sWT +Co/1VTp2lc5ZmIoJlXcymoO6LAQ6l73UL77XbJuiyn1tJslV1c/DeVIICZkHJC1k +JWumIWmbat10TWuXekG9qxf5kBdIjzb5LdXF2+6qhUVB+s06RbFo5jZMm5BX7CO5 +hwjCxAnxl4YqKE3idMDaxIzb3+KhF1nOJFl0Mdp//TBt2dzhauH8XwIDAQABo4IB +GjCCARYwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE +FBiHVuBud+4kNTxOc5of1uHieX4rMB8GA1UdIwQYMBaAFBiHVuBud+4kNTxOc5of +1uHieX4rMEQGA1UdIAQ9MDswOQYEVR0gADAxMC8GCCsGAQUFBwIBFiNodHRwczov +L3d3d3cuY2VydGlnbmEuZnIvYXV0b3JpdGVzLzBtBgNVHR8EZjBkMC+gLaArhilo +dHRwOi8vY3JsLmNlcnRpZ25hLmZyL2NlcnRpZ25hcm9vdGNhLmNybDAxoC+gLYYr +aHR0cDovL2NybC5kaGlteW90aXMuY29tL2NlcnRpZ25hcm9vdGNhLmNybDANBgkq +hkiG9w0BAQsFAAOCAgEAlLieT/DjlQgi581oQfccVdV8AOItOoldaDgvUSILSo3L +6btdPrtcPbEo/uRTVRPPoZAbAh1fZkYJMyjhDSSXcNMQH+pkV5a7XdrnxIxPTGRG +HVyH41neQtGbqH6mid2PHMkwgu07nM3A6RngatgCdTer9zQoKJHyBApPNeNgJgH6 +0BGM+RFq7q89w1DTj18zeTyGqHNFkIwgtnJzFyO+B2XleJINugHA64wcZr+shncB +lA2c5uk5jR+mUYyZDDl34bSb+hxnV29qao6pK0xXeXpXIs/NX2NGjVxZOob4Mkdi +o2cNGJHc+6Zr9UhhcyNZjgKnvETq9Emd8VRY+WCv2hikLyhF3HqgiIZd8zvn/yk1 +gPxkQ5Tm4xxvvq0OKmOZK8l+hfZx6AYDlf7ej0gcWtSS6Cvu5zHbugRqh5jnxV/v +faci9wHYTfmJ0A6aBVmknpjZbyvKcL5kwlWj9Omvw5Ip3IgWJJk8jSaYtlu3zM63 +Nwf9JtmYhST/WSMDmu2dnajkXjjO11INb9I/bbEFa0nOipFGc/T2L/Coc3cOZayh +jWZSaX5LaAzHHjcng6WMxwLkFM1JAbBzs/3GkDpv0mztO+7skb6iQ12LAEpmJURw +3kAP+HwV96LOPNdeE4yBFxgX0b3xdxA61GU5wSesVywlVP+i2k+KYTlerj1KjL0= +-----END CERTIFICATE----- + +# Issuer: CN=emSign Root CA - G1 O=eMudhra Technologies Limited OU=emSign PKI +# Subject: CN=emSign Root CA - G1 O=eMudhra Technologies Limited OU=emSign PKI +# Label: "emSign Root CA - G1" +# Serial: 235931866688319308814040 +# MD5 Fingerprint: 9c:42:84:57:dd:cb:0b:a7:2e:95:ad:b6:f3:da:bc:ac +# SHA1 Fingerprint: 8a:c7:ad:8f:73:ac:4e:c1:b5:75:4d:a5:40:f4:fc:cf:7c:b5:8e:8c +# SHA256 Fingerprint: 40:f6:af:03:46:a9:9a:a1:cd:1d:55:5a:4e:9c:ce:62:c7:f9:63:46:03:ee:40:66:15:83:3d:c8:c8:d0:03:67 +-----BEGIN CERTIFICATE----- +MIIDlDCCAnygAwIBAgIKMfXkYgxsWO3W2DANBgkqhkiG9w0BAQsFADBnMQswCQYD +VQQGEwJJTjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBU +ZWNobm9sb2dpZXMgTGltaXRlZDEcMBoGA1UEAxMTZW1TaWduIFJvb3QgQ0EgLSBH +MTAeFw0xODAyMTgxODMwMDBaFw00MzAyMTgxODMwMDBaMGcxCzAJBgNVBAYTAklO +MRMwEQYDVQQLEwplbVNpZ24gUEtJMSUwIwYDVQQKExxlTXVkaHJhIFRlY2hub2xv +Z2llcyBMaW1pdGVkMRwwGgYDVQQDExNlbVNpZ24gUm9vdCBDQSAtIEcxMIIBIjAN +BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAk0u76WaK7p1b1TST0Bsew+eeuGQz +f2N4aLTNLnF115sgxk0pvLZoYIr3IZpWNVrzdr3YzZr/k1ZLpVkGoZM0Kd0WNHVO +8oG0x5ZOrRkVUkr+PHB1cM2vK6sVmjM8qrOLqs1D/fXqcP/tzxE7lM5OMhbTI0Aq +d7OvPAEsbO2ZLIvZTmmYsvePQbAyeGHWDV/D+qJAkh1cF+ZwPjXnorfCYuKrpDhM +tTk1b+oDafo6VGiFbdbyL0NVHpENDtjVaqSW0RM8LHhQ6DqS0hdW5TUaQBw+jSzt +Od9C4INBdN+jzcKGYEho42kLVACL5HZpIQ15TjQIXhTCzLG3rdd8cIrHhQIDAQAB +o0IwQDAdBgNVHQ4EFgQU++8Nhp6w492pufEhF38+/PB3KxowDgYDVR0PAQH/BAQD +AgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAFn/8oz1h31x +PaOfG1vR2vjTnGs2vZupYeveFix0PZ7mddrXuqe8QhfnPZHr5X3dPpzxz5KsbEjM +wiI/aTvFthUvozXGaCocV685743QNcMYDHsAVhzNixl03r4PEuDQqqE/AjSxcM6d +GNYIAwlG7mDgfrbESQRRfXBgvKqy/3lyeqYdPV8q+Mri/Tm3R7nrft8EI6/6nAYH +6ftjk4BAtcZsCjEozgyfz7MjNYBBjWzEN3uBL4ChQEKF6dk4jeihU80Bv2noWgby +RQuQ+q7hv53yrlc8pa6yVvSLZUDp/TGBLPQ5Cdjua6e0ph0VpZj3AYHYhX3zUVxx +iN66zB+Afko= +-----END CERTIFICATE----- + +# Issuer: CN=emSign ECC Root CA - G3 O=eMudhra Technologies Limited OU=emSign PKI +# Subject: CN=emSign ECC Root CA - G3 O=eMudhra Technologies Limited OU=emSign PKI +# Label: "emSign ECC Root CA - G3" +# Serial: 287880440101571086945156 +# MD5 Fingerprint: ce:0b:72:d1:9f:88:8e:d0:50:03:e8:e3:b8:8b:67:40 +# SHA1 Fingerprint: 30:43:fa:4f:f2:57:dc:a0:c3:80:ee:2e:58:ea:78:b2:3f:e6:bb:c1 +# SHA256 Fingerprint: 86:a1:ec:ba:08:9c:4a:8d:3b:be:27:34:c6:12:ba:34:1d:81:3e:04:3c:f9:e8:a8:62:cd:5c:57:a3:6b:be:6b +-----BEGIN CERTIFICATE----- +MIICTjCCAdOgAwIBAgIKPPYHqWhwDtqLhDAKBggqhkjOPQQDAzBrMQswCQYDVQQG +EwJJTjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNo +bm9sb2dpZXMgTGltaXRlZDEgMB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0g +RzMwHhcNMTgwMjE4MTgzMDAwWhcNNDMwMjE4MTgzMDAwWjBrMQswCQYDVQQGEwJJ +TjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9s +b2dpZXMgTGltaXRlZDEgMB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0gRzMw +djAQBgcqhkjOPQIBBgUrgQQAIgNiAAQjpQy4LRL1KPOxst3iAhKAnjlfSU2fySU0 +WXTsuwYc58Byr+iuL+FBVIcUqEqy6HyC5ltqtdyzdc6LBtCGI79G1Y4PPwT01xyS +fvalY8L1X44uT6EYGQIrMgqCZH0Wk9GjQjBAMB0GA1UdDgQWBBR8XQKEE9TMipuB +zhccLikenEhjQjAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggq +hkjOPQQDAwNpADBmAjEAvvNhzwIQHWSVB7gYboiFBS+DCBeQyh+KTOgNG3qxrdWB +CUfvO6wIBHxcmbHtRwfSAjEAnbpV/KlK6O3t5nYBQnvI+GDZjVGLVTv7jHvrZQnD ++JbNR6iC8hZVdyR+EhCVBCyj +-----END CERTIFICATE----- + +# Issuer: CN=emSign Root CA - C1 O=eMudhra Inc OU=emSign PKI +# Subject: CN=emSign Root CA - C1 O=eMudhra Inc OU=emSign PKI +# Label: "emSign Root CA - C1" +# Serial: 825510296613316004955058 +# MD5 Fingerprint: d8:e3:5d:01:21:fa:78:5a:b0:df:ba:d2:ee:2a:5f:68 +# SHA1 Fingerprint: e7:2e:f1:df:fc:b2:09:28:cf:5d:d4:d5:67:37:b1:51:cb:86:4f:01 +# SHA256 Fingerprint: 12:56:09:aa:30:1d:a0:a2:49:b9:7a:82:39:cb:6a:34:21:6f:44:dc:ac:9f:39:54:b1:42:92:f2:e8:c8:60:8f +-----BEGIN CERTIFICATE----- +MIIDczCCAlugAwIBAgILAK7PALrEzzL4Q7IwDQYJKoZIhvcNAQELBQAwVjELMAkG +A1UEBhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEg +SW5jMRwwGgYDVQQDExNlbVNpZ24gUm9vdCBDQSAtIEMxMB4XDTE4MDIxODE4MzAw +MFoXDTQzMDIxODE4MzAwMFowVjELMAkGA1UEBhMCVVMxEzARBgNVBAsTCmVtU2ln +biBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMRwwGgYDVQQDExNlbVNpZ24gUm9v +dCBDQSAtIEMxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz+upufGZ +BczYKCFK83M0UYRWEPWgTywS4/oTmifQz/l5GnRfHXk5/Fv4cI7gklL35CX5VIPZ +HdPIWoU/Xse2B+4+wM6ar6xWQio5JXDWv7V7Nq2s9nPczdcdioOl+yuQFTdrHCZH +3DspVpNqs8FqOp099cGXOFgFixwR4+S0uF2FHYP+eF8LRWgYSKVGczQ7/g/IdrvH +GPMF0Ybzhe3nudkyrVWIzqa2kbBPrH4VI5b2P/AgNBbeCsbEBEV5f6f9vtKppa+c +xSMq9zwhbL2vj07FOrLzNBL834AaSaTUqZX3noleoomslMuoaJuvimUnzYnu3Yy1 +aylwQ6BpC+S5DwIDAQABo0IwQDAdBgNVHQ4EFgQU/qHgcB4qAzlSWkK+XJGFehiq +TbUwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEL +BQADggEBAMJKVvoVIXsoounlHfv4LcQ5lkFMOycsxGwYFYDGrK9HWS8mC+M2sO87 +/kOXSTKZEhVb3xEp/6tT+LvBeA+snFOvV71ojD1pM/CjoCNjO2RnIkSt1XHLVip4 +kqNPEjE2NuLe/gDEo2APJ62gsIq1NnpSob0n9CAnYuhNlCQT5AoE6TyrLshDCUrG +YQTlSTR+08TI9Q/Aqum6VF7zYytPT1DU/rl7mYw9wC68AivTxEDkigcxHpvOJpkT ++xHqmiIMERnHXhuBUDDIlhJu58tBf5E7oke3VIAb3ADMmpDqw8NQBmIMMMAVSKeo +WXzhriKi4gp6D/piq1JM4fHfyr6DDUI= +-----END CERTIFICATE----- + +# Issuer: CN=emSign ECC Root CA - C3 O=eMudhra Inc OU=emSign PKI +# Subject: CN=emSign ECC Root CA - C3 O=eMudhra Inc OU=emSign PKI +# Label: "emSign ECC Root CA - C3" +# Serial: 582948710642506000014504 +# MD5 Fingerprint: 3e:53:b3:a3:81:ee:d7:10:f8:d3:b0:1d:17:92:f5:d5 +# SHA1 Fingerprint: b6:af:43:c2:9b:81:53:7d:f6:ef:6b:c3:1f:1f:60:15:0c:ee:48:66 +# SHA256 Fingerprint: bc:4d:80:9b:15:18:9d:78:db:3e:1d:8c:f4:f9:72:6a:79:5d:a1:64:3c:a5:f1:35:8e:1d:db:0e:dc:0d:7e:b3 +-----BEGIN CERTIFICATE----- +MIICKzCCAbGgAwIBAgIKe3G2gla4EnycqDAKBggqhkjOPQQDAzBaMQswCQYDVQQG +EwJVUzETMBEGA1UECxMKZW1TaWduIFBLSTEUMBIGA1UEChMLZU11ZGhyYSBJbmMx +IDAeBgNVBAMTF2VtU2lnbiBFQ0MgUm9vdCBDQSAtIEMzMB4XDTE4MDIxODE4MzAw +MFoXDTQzMDIxODE4MzAwMFowWjELMAkGA1UEBhMCVVMxEzARBgNVBAsTCmVtU2ln +biBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMSAwHgYDVQQDExdlbVNpZ24gRUND +IFJvb3QgQ0EgLSBDMzB2MBAGByqGSM49AgEGBSuBBAAiA2IABP2lYa57JhAd6bci +MK4G9IGzsUJxlTm801Ljr6/58pc1kjZGDoeVjbk5Wum739D+yAdBPLtVb4Ojavti +sIGJAnB9SMVK4+kiVCJNk7tCDK93nCOmfddhEc5lx/h//vXyqaNCMEAwHQYDVR0O +BBYEFPtaSNCAIEDyqOkAB2kZd6fmw/TPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMB +Af8EBTADAQH/MAoGCCqGSM49BAMDA2gAMGUCMQC02C8Cif22TGK6Q04ThHK1rt0c +3ta13FaPWEBaLd4gTCKDypOofu4SQMfWh0/434UCMBwUZOR8loMRnLDRWmFLpg9J +0wD8ofzkpf9/rdcw0Md3f76BB1UwUCAU9Vc4CqgxUQ== +-----END CERTIFICATE----- + +# Issuer: CN=Hongkong Post Root CA 3 O=Hongkong Post +# Subject: CN=Hongkong Post Root CA 3 O=Hongkong Post +# Label: "Hongkong Post Root CA 3" +# Serial: 46170865288971385588281144162979347873371282084 +# MD5 Fingerprint: 11:fc:9f:bd:73:30:02:8a:fd:3f:f3:58:b9:cb:20:f0 +# SHA1 Fingerprint: 58:a2:d0:ec:20:52:81:5b:c1:f3:f8:64:02:24:4e:c2:8e:02:4b:02 +# SHA256 Fingerprint: 5a:2f:c0:3f:0c:83:b0:90:bb:fa:40:60:4b:09:88:44:6c:76:36:18:3d:f9:84:6e:17:10:1a:44:7f:b8:ef:d6 +-----BEGIN CERTIFICATE----- +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 +mpv0 +-----END CERTIFICATE----- + +# Issuer: CN=Microsoft ECC Root Certificate Authority 2017 O=Microsoft Corporation +# Subject: CN=Microsoft ECC Root Certificate Authority 2017 O=Microsoft Corporation +# Label: "Microsoft ECC Root Certificate Authority 2017" +# Serial: 136839042543790627607696632466672567020 +# MD5 Fingerprint: dd:a1:03:e6:4a:93:10:d1:bf:f0:19:42:cb:fe:ed:67 +# SHA1 Fingerprint: 99:9a:64:c3:7f:f4:7d:9f:ab:95:f1:47:69:89:14:60:ee:c4:c3:c5 +# SHA256 Fingerprint: 35:8d:f3:9d:76:4a:f9:e1:b7:66:e9:c9:72:df:35:2e:e1:5c:fa:c2:27:af:6a:d1:d7:0e:8e:4a:6e:dc:ba:02 +-----BEGIN CERTIFICATE----- +MIICWTCCAd+gAwIBAgIQZvI9r4fei7FK6gxXMQHC7DAKBggqhkjOPQQDAzBlMQsw +CQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYD +VQQDEy1NaWNyb3NvZnQgRUNDIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIw +MTcwHhcNMTkxMjE4MjMwNjQ1WhcNNDIwNzE4MjMxNjA0WjBlMQswCQYDVQQGEwJV +UzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1NaWNy +b3NvZnQgRUNDIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwdjAQBgcq +hkjOPQIBBgUrgQQAIgNiAATUvD0CQnVBEyPNgASGAlEvaqiBYgtlzPbKnR5vSmZR +ogPZnZH6thaxjG7efM3beaYvzrvOcS/lpaso7GMEZpn4+vKTEAXhgShC48Zo9OYb +hGBKia/teQ87zvH2RPUBeMCjVDBSMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8E +BTADAQH/MB0GA1UdDgQWBBTIy5lycFIM+Oa+sgRXKSrPQhDtNTAQBgkrBgEEAYI3 +FQEEAwIBADAKBggqhkjOPQQDAwNoADBlAjBY8k3qDPlfXu5gKcs68tvWMoQZP3zV +L8KxzJOuULsJMsbG7X7JNpQS5GiFBqIb0C8CMQCZ6Ra0DvpWSNSkMBaReNtUjGUB +iudQZsIxtzm6uBoiB078a1QWIP8rtedMDE2mT3M= +-----END CERTIFICATE----- + +# Issuer: CN=Microsoft RSA Root Certificate Authority 2017 O=Microsoft Corporation +# Subject: CN=Microsoft RSA Root Certificate Authority 2017 O=Microsoft Corporation +# Label: "Microsoft RSA Root Certificate Authority 2017" +# Serial: 40975477897264996090493496164228220339 +# MD5 Fingerprint: 10:ff:00:ff:cf:c9:f8:c7:7a:c0:ee:35:8e:c9:0f:47 +# SHA1 Fingerprint: 73:a5:e6:4a:3b:ff:83:16:ff:0e:dc:cc:61:8a:90:6e:4e:ae:4d:74 +# SHA256 Fingerprint: c7:41:f7:0f:4b:2a:8d:88:bf:2e:71:c1:41:22:ef:53:ef:10:eb:a0:cf:a5:e6:4c:fa:20:f4:18:85:30:73:e0 +-----BEGIN CERTIFICATE----- +MIIFqDCCA5CgAwIBAgIQHtOXCV/YtLNHcB6qvn9FszANBgkqhkiG9w0BAQwFADBl +MQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYw +NAYDVQQDEy1NaWNyb3NvZnQgUlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 +IDIwMTcwHhcNMTkxMjE4MjI1MTIyWhcNNDIwNzE4MjMwMDIzWjBlMQswCQYDVQQG +EwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1N +aWNyb3NvZnQgUlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwggIi +MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKW76UM4wplZEWCpW9R2LBifOZ +Nt9GkMml7Xhqb0eRaPgnZ1AzHaGm++DlQ6OEAlcBXZxIQIJTELy/xztokLaCLeX0 +ZdDMbRnMlfl7rEqUrQ7eS0MdhweSE5CAg2Q1OQT85elss7YfUJQ4ZVBcF0a5toW1 +HLUX6NZFndiyJrDKxHBKrmCk3bPZ7Pw71VdyvD/IybLeS2v4I2wDwAW9lcfNcztm +gGTjGqwu+UcF8ga2m3P1eDNbx6H7JyqhtJqRjJHTOoI+dkC0zVJhUXAoP8XFWvLJ +jEm7FFtNyP9nTUwSlq31/niol4fX/V4ggNyhSyL71Imtus5Hl0dVe49FyGcohJUc +aDDv70ngNXtk55iwlNpNhTs+VcQor1fznhPbRiefHqJeRIOkpcrVE7NLP8TjwuaG +YaRSMLl6IE9vDzhTyzMMEyuP1pq9KsgtsRx9S1HKR9FIJ3Jdh+vVReZIZZ2vUpC6 +W6IYZVcSn2i51BVrlMRpIpj0M+Dt+VGOQVDJNE92kKz8OMHY4Xu54+OU4UZpyw4K +UGsTuqwPN1q3ErWQgR5WrlcihtnJ0tHXUeOrO8ZV/R4O03QK0dqq6mm4lyiPSMQH ++FJDOvTKVTUssKZqwJz58oHhEmrARdlns87/I6KJClTUFLkqqNfs+avNJVgyeY+Q +W5g5xAgGwax/Dj0ApQIDAQABo1QwUjAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/ +BAUwAwEB/zAdBgNVHQ4EFgQUCctZf4aycI8awznjwNnpv7tNsiMwEAYJKwYBBAGC +NxUBBAMCAQAwDQYJKoZIhvcNAQEMBQADggIBAKyvPl3CEZaJjqPnktaXFbgToqZC +LgLNFgVZJ8og6Lq46BrsTaiXVq5lQ7GPAJtSzVXNUzltYkyLDVt8LkS/gxCP81OC +gMNPOsduET/m4xaRhPtthH80dK2Jp86519efhGSSvpWhrQlTM93uCupKUY5vVau6 +tZRGrox/2KJQJWVggEbbMwSubLWYdFQl3JPk+ONVFT24bcMKpBLBaYVu32TxU5nh +SnUgnZUP5NbcA/FZGOhHibJXWpS2qdgXKxdJ5XbLwVaZOjex/2kskZGT4d9Mozd2 +TaGf+G0eHdP67Pv0RR0Tbc/3WeUiJ3IrhvNXuzDtJE3cfVa7o7P4NHmJweDyAmH3 +pvwPuxwXC65B2Xy9J6P9LjrRk5Sxcx0ki69bIImtt2dmefU6xqaWM/5TkshGsRGR +xpl/j8nWZjEgQRCHLQzWwa80mMpkg/sTV9HB8Dx6jKXB/ZUhoHHBk2dxEuqPiApp +GWSZI1b7rCoucL5mxAyE7+WL85MB+GqQk2dLsmijtWKP6T+MejteD+eMuMZ87zf9 +dOLITzNy4ZQ5bb0Sr74MTnB8G2+NszKTc0QWbej09+CVgI+WXTik9KveCjCHk9hN +AHFiRSdLOkKEW39lt2c0Ui2cFmuqqNh7o0JMcccMyj6D5KbvtwEwXlGjefVwaaZB +RA+GsCyRxj3qrg+E +-----END CERTIFICATE----- + +# Issuer: CN=e-Szigno Root CA 2017 O=Microsec Ltd. +# Subject: CN=e-Szigno Root CA 2017 O=Microsec Ltd. +# Label: "e-Szigno Root CA 2017" +# Serial: 411379200276854331539784714 +# MD5 Fingerprint: de:1f:f6:9e:84:ae:a7:b4:21:ce:1e:58:7d:d1:84:98 +# SHA1 Fingerprint: 89:d4:83:03:4f:9e:9a:48:80:5f:72:37:d4:a9:a6:ef:cb:7c:1f:d1 +# SHA256 Fingerprint: be:b0:0b:30:83:9b:9b:c3:2c:32:e4:44:79:05:95:06:41:f2:64:21:b1:5e:d0:89:19:8b:51:8a:e2:ea:1b:99 +-----BEGIN CERTIFICATE----- +MIICQDCCAeWgAwIBAgIMAVRI7yH9l1kN9QQKMAoGCCqGSM49BAMCMHExCzAJBgNV +BAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMgTHRk +LjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3ppZ25vIFJv +b3QgQ0EgMjAxNzAeFw0xNzA4MjIxMjA3MDZaFw00MjA4MjIxMjA3MDZaMHExCzAJ +BgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMg +THRkLjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3ppZ25v +IFJvb3QgQ0EgMjAxNzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJbcPYrYsHtv +xie+RJCxs1YVe45DJH0ahFnuY2iyxl6H0BVIHqiQrb1TotreOpCmYF9oMrWGQd+H +Wyx7xf58etqjYzBhMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G +A1UdDgQWBBSHERUI0arBeAyxr87GyZDvvzAEwDAfBgNVHSMEGDAWgBSHERUI0arB +eAyxr87GyZDvvzAEwDAKBggqhkjOPQQDAgNJADBGAiEAtVfd14pVCzbhhkT61Nlo +jbjcI4qKDdQvfepz7L9NbKgCIQDLpbQS+ue16M9+k/zzNY9vTlp8tLxOsvxyqltZ ++efcMQ== +-----END CERTIFICATE----- + +# Issuer: O=CERTSIGN SA OU=certSIGN ROOT CA G2 +# Subject: O=CERTSIGN SA OU=certSIGN ROOT CA G2 +# Label: "certSIGN Root CA G2" +# Serial: 313609486401300475190 +# MD5 Fingerprint: 8c:f1:75:8a:c6:19:cf:94:b7:f7:65:20:87:c3:97:c7 +# SHA1 Fingerprint: 26:f9:93:b4:ed:3d:28:27:b0:b9:4b:a7:e9:15:1d:a3:8d:92:e5:32 +# SHA256 Fingerprint: 65:7c:fe:2f:a7:3f:aa:38:46:25:71:f3:32:a2:36:3a:46:fc:e7:02:09:51:71:07:02:cd:fb:b6:ee:da:33:05 +-----BEGIN CERTIFICATE----- +MIIFRzCCAy+gAwIBAgIJEQA0tk7GNi02MA0GCSqGSIb3DQEBCwUAMEExCzAJBgNV +BAYTAlJPMRQwEgYDVQQKEwtDRVJUU0lHTiBTQTEcMBoGA1UECxMTY2VydFNJR04g +Uk9PVCBDQSBHMjAeFw0xNzAyMDYwOTI3MzVaFw00MjAyMDYwOTI3MzVaMEExCzAJ +BgNVBAYTAlJPMRQwEgYDVQQKEwtDRVJUU0lHTiBTQTEcMBoGA1UECxMTY2VydFNJ +R04gUk9PVCBDQSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDF +dRmRfUR0dIf+DjuW3NgBFszuY5HnC2/OOwppGnzC46+CjobXXo9X69MhWf05N0Iw +vlDqtg+piNguLWkh59E3GE59kdUWX2tbAMI5Qw02hVK5U2UPHULlj88F0+7cDBrZ +uIt4ImfkabBoxTzkbFpG583H+u/E7Eu9aqSs/cwoUe+StCmrqzWaTOTECMYmzPhp +n+Sc8CnTXPnGFiWeI8MgwT0PPzhAsP6CRDiqWhqKa2NYOLQV07YRaXseVO6MGiKs +cpc/I1mbySKEwQdPzH/iV8oScLumZfNpdWO9lfsbl83kqK/20U6o2YpxJM02PbyW +xPFsqa7lzw1uKA2wDrXKUXt4FMMgL3/7FFXhEZn91QqhngLjYl/rNUssuHLoPj1P +rCy7Lobio3aP5ZMqz6WryFyNSwb/EkaseMsUBzXgqd+L6a8VTxaJW732jcZZroiF +DsGJ6x9nxUWO/203Nit4ZoORUSs9/1F3dmKh7Gc+PoGD4FapUB8fepmrY7+EF3fx +DTvf95xhszWYijqy7DwaNz9+j5LP2RIUZNoQAhVB/0/E6xyjyfqZ90bp4RjZsbgy +LcsUDFDYg2WD7rlcz8sFWkz6GZdr1l0T08JcVLwyc6B49fFtHsufpaafItzRUZ6C +eWRgKRM+o/1Pcmqr4tTluCRVLERLiohEnMqE0yo7AgMBAAGjQjBAMA8GA1UdEwEB +/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSCIS1mxteg4BXrzkwJ +d8RgnlRuAzANBgkqhkiG9w0BAQsFAAOCAgEAYN4auOfyYILVAzOBywaK8SJJ6ejq +kX/GM15oGQOGO0MBzwdw5AgeZYWR5hEit/UCI46uuR59H35s5r0l1ZUa8gWmr4UC +b6741jH/JclKyMeKqdmfS0mbEVeZkkMR3rYzpMzXjWR91M08KCy0mpbqTfXERMQl +qiCA2ClV9+BB/AYm/7k29UMUA2Z44RGx2iBfRgB4ACGlHgAoYXhvqAEBj500mv/0 +OJD7uNGzcgbJceaBxXntC6Z58hMLnPddDnskk7RI24Zf3lCGeOdA5jGokHZwYa+c +NywRtYK3qq4kNFtyDGkNzVmf9nGvnAvRCjj5BiKDUyUM/FHE5r7iOZULJK2v0ZXk +ltd0ZGtxTgI8qoXzIKNDOXZbbFD+mpwUHmUUihW9o4JFWklWatKcsWMy5WHgUyIO +pwpJ6st+H6jiYoD2EEVSmAYY3qXNL3+q1Ok+CHLsIwMCPKaq2LxndD0UF/tUSxfj +03k9bWtJySgOLnRQvwzZRjoQhsmnP+mg7H/rpXdYaXHmgwo38oZJar55CJD2AhZk +PuXaTH4MNMn5X7azKFGnpyuqSfqNZSlO42sTp5SjLVFteAxEy9/eCG/Oo2Sr05WE +1LlSVHJ7liXMvGnjSG4N0MedJ5qq+BOS3R7fY581qRY27Iy4g/Q9iY/NtBde17MX +QRBdJ3NghVdJIgc= +-----END CERTIFICATE----- + +# Issuer: CN=Trustwave Global Certification Authority O=Trustwave Holdings, Inc. +# Subject: CN=Trustwave Global Certification Authority O=Trustwave Holdings, Inc. +# Label: "Trustwave Global Certification Authority" +# Serial: 1846098327275375458322922162 +# MD5 Fingerprint: f8:1c:18:2d:2f:ba:5f:6d:a1:6c:bc:c7:ab:91:c7:0e +# SHA1 Fingerprint: 2f:8f:36:4f:e1:58:97:44:21:59:87:a5:2a:9a:d0:69:95:26:7f:b5 +# SHA256 Fingerprint: 97:55:20:15:f5:dd:fc:3c:87:88:c0:06:94:45:55:40:88:94:45:00:84:f1:00:86:70:86:bc:1a:2b:b5:8d:c8 +-----BEGIN CERTIFICATE----- +MIIF2jCCA8KgAwIBAgIMBfcOhtpJ80Y1LrqyMA0GCSqGSIb3DQEBCwUAMIGIMQsw +CQYDVQQGEwJVUzERMA8GA1UECAwISWxsaW5vaXMxEDAOBgNVBAcMB0NoaWNhZ28x +ITAfBgNVBAoMGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5jLjExMC8GA1UEAwwoVHJ1 +c3R3YXZlIEdsb2JhbCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MjMx +OTM0MTJaFw00MjA4MjMxOTM0MTJaMIGIMQswCQYDVQQGEwJVUzERMA8GA1UECAwI +SWxsaW5vaXMxEDAOBgNVBAcMB0NoaWNhZ28xITAfBgNVBAoMGFRydXN0d2F2ZSBI +b2xkaW5ncywgSW5jLjExMC8GA1UEAwwoVHJ1c3R3YXZlIEdsb2JhbCBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB +ALldUShLPDeS0YLOvR29zd24q88KPuFd5dyqCblXAj7mY2Hf8g+CY66j96xz0Xzn +swuvCAAJWX/NKSqIk4cXGIDtiLK0thAfLdZfVaITXdHG6wZWiYj+rDKd/VzDBcdu +7oaJuogDnXIhhpCujwOl3J+IKMujkkkP7NAP4m1ET4BqstTnoApTAbqOl5F2brz8 +1Ws25kCI1nsvXwXoLG0R8+eyvpJETNKXpP7ScoFDB5zpET71ixpZfR9oWN0EACyW +80OzfpgZdNmcc9kYvkHHNHnZ9GLCQ7mzJ7Aiy/k9UscwR7PJPrhq4ufogXBeQotP +JqX+OsIgbrv4Fo7NDKm0G2x2EOFYeUY+VM6AqFcJNykbmROPDMjWLBz7BegIlT1l +RtzuzWniTY+HKE40Cz7PFNm73bZQmq131BnW2hqIyE4bJ3XYsgjxroMwuREOzYfw +hI0Vcnyh78zyiGG69Gm7DIwLdVcEuE4qFC49DxweMqZiNu5m4iK4BUBjECLzMx10 +coos9TkpoNPnG4CELcU9402x/RpvumUHO1jsQkUm+9jaJXLE9gCxInm943xZYkqc +BW89zubWR2OZxiRvchLIrH+QtAuRcOi35hYQcRfO3gZPSEF9NUqjifLJS3tBEW1n +twiYTOURGa5CgNz7kAXU+FDKvuStx8KU1xad5hePrzb7AgMBAAGjQjBAMA8GA1Ud +EwEB/wQFMAMBAf8wHQYDVR0OBBYEFJngGWcNYtt2s9o9uFvo/ULSMQ6HMA4GA1Ud +DwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAmHNw4rDT7TnsTGDZqRKGFx6W +0OhUKDtkLSGm+J1WE2pIPU/HPinbbViDVD2HfSMF1OQc3Og4ZYbFdada2zUFvXfe +uyk3QAUHw5RSn8pk3fEbK9xGChACMf1KaA0HZJDmHvUqoai7PF35owgLEQzxPy0Q +lG/+4jSHg9bP5Rs1bdID4bANqKCqRieCNqcVtgimQlRXtpla4gt5kNdXElE1GYhB +aCXUNxeEFfsBctyV3lImIJgm4nb1J2/6ADtKYdkNy1GTKv0WBpanI5ojSP5RvbbE +sLFUzt5sQa0WZ37b/TjNuThOssFgy50X31ieemKyJo90lZvkWx3SD92YHJtZuSPT +MaCm/zjdzyBP6VhWOmfD0faZmZ26NraAL4hHT4a/RDqA5Dccprrql5gR0IRiR2Qe +qu5AvzSxnI9O4fKSTx+O856X3vOmeWqJcU9LJxdI/uz0UA9PSX3MReO9ekDFQdxh +VicGaeVyQYHTtgGJoC86cnn+OjC/QezHYj6RS8fZMXZC+fc8Y+wmjHMMfRod6qh8 +h6jCJ3zhM0EPz8/8AKAigJ5Kp28AsEFFtyLKaEjFQqKu3R3y4G5OBVixwJAWKqQ9 +EEC+j2Jjg6mcgn0tAumDMHzLJ8n9HmYAsC7TIS+OMxZsmO0QqAfWzJPP29FpHOTK +yeC2nOnOcXHebD8WpHk= +-----END CERTIFICATE----- + +# Issuer: CN=Trustwave Global ECC P256 Certification Authority O=Trustwave Holdings, Inc. +# Subject: CN=Trustwave Global ECC P256 Certification Authority O=Trustwave Holdings, Inc. +# Label: "Trustwave Global ECC P256 Certification Authority" +# Serial: 4151900041497450638097112925 +# MD5 Fingerprint: 5b:44:e3:8d:5d:36:86:26:e8:0d:05:d2:59:a7:83:54 +# SHA1 Fingerprint: b4:90:82:dd:45:0c:be:8b:5b:b1:66:d3:e2:a4:08:26:cd:ed:42:cf +# SHA256 Fingerprint: 94:5b:bc:82:5e:a5:54:f4:89:d1:fd:51:a7:3d:df:2e:a6:24:ac:70:19:a0:52:05:22:5c:22:a7:8c:cf:a8:b4 +-----BEGIN CERTIFICATE----- +MIICYDCCAgegAwIBAgIMDWpfCD8oXD5Rld9dMAoGCCqGSM49BAMCMIGRMQswCQYD +VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAf +BgNVBAoTGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3 +YXZlIEdsb2JhbCBFQ0MgUDI1NiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0x +NzA4MjMxOTM1MTBaFw00MjA4MjMxOTM1MTBaMIGRMQswCQYDVQQGEwJVUzERMA8G +A1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0 +d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBF +Q0MgUDI1NiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTBZMBMGByqGSM49AgEGCCqG +SM49AwEHA0IABH77bOYj43MyCMpg5lOcunSNGLB4kFKA3TjASh3RqMyTpJcGOMoN +FWLGjgEqZZ2q3zSRLoHB5DOSMcT9CTqmP62jQzBBMA8GA1UdEwEB/wQFMAMBAf8w +DwYDVR0PAQH/BAUDAwcGADAdBgNVHQ4EFgQUo0EGrJBt0UrrdaVKEJmzsaGLSvcw +CgYIKoZIzj0EAwIDRwAwRAIgB+ZU2g6gWrKuEZ+Hxbb/ad4lvvigtwjzRM4q3wgh +DDcCIC0mA6AFvWvR9lz4ZcyGbbOcNEhjhAnFjXca4syc4XR7 +-----END CERTIFICATE----- + +# Issuer: CN=Trustwave Global ECC P384 Certification Authority O=Trustwave Holdings, Inc. +# Subject: CN=Trustwave Global ECC P384 Certification Authority O=Trustwave Holdings, Inc. +# Label: "Trustwave Global ECC P384 Certification Authority" +# Serial: 2704997926503831671788816187 +# MD5 Fingerprint: ea:cf:60:c4:3b:b9:15:29:40:a1:97:ed:78:27:93:d6 +# SHA1 Fingerprint: e7:f3:a3:c8:cf:6f:c3:04:2e:6d:0e:67:32:c5:9e:68:95:0d:5e:d2 +# SHA256 Fingerprint: 55:90:38:59:c8:c0:c3:eb:b8:75:9e:ce:4e:25:57:22:5f:f5:75:8b:bd:38:eb:d4:82:76:60:1e:1b:d5:80:97 +-----BEGIN CERTIFICATE----- +MIICnTCCAiSgAwIBAgIMCL2Fl2yZJ6SAaEc7MAoGCCqGSM49BAMDMIGRMQswCQYD +VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAf +BgNVBAoTGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3 +YXZlIEdsb2JhbCBFQ0MgUDM4NCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0x +NzA4MjMxOTM2NDNaFw00MjA4MjMxOTM2NDNaMIGRMQswCQYDVQQGEwJVUzERMA8G +A1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0 +d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBF +Q0MgUDM4NCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTB2MBAGByqGSM49AgEGBSuB +BAAiA2IABGvaDXU1CDFHBa5FmVXxERMuSvgQMSOjfoPTfygIOiYaOs+Xgh+AtycJ +j9GOMMQKmw6sWASr9zZ9lCOkmwqKi6vr/TklZvFe/oyujUF5nQlgziip04pt89ZF +1PKYhDhloKNDMEEwDwYDVR0TAQH/BAUwAwEB/zAPBgNVHQ8BAf8EBQMDBwYAMB0G +A1UdDgQWBBRVqYSJ0sEyvRjLbKYHTsjnnb6CkDAKBggqhkjOPQQDAwNnADBkAjA3 +AZKXRRJ+oPM+rRk6ct30UJMDEr5E0k9BpIycnR+j9sKS50gU/k6bpZFXrsY3crsC +MGclCrEMXu6pY5Jv5ZAL/mYiykf9ijH3g/56vxC+GCsej/YpHpRZ744hN8tRmKVu +Sw== +-----END CERTIFICATE----- + +# Issuer: CN=NAVER Global Root Certification Authority O=NAVER BUSINESS PLATFORM Corp. +# Subject: CN=NAVER Global Root Certification Authority O=NAVER BUSINESS PLATFORM Corp. +# Label: "NAVER Global Root Certification Authority" +# Serial: 9013692873798656336226253319739695165984492813 +# MD5 Fingerprint: c8:7e:41:f6:25:3b:f5:09:b3:17:e8:46:3d:bf:d0:9b +# SHA1 Fingerprint: 8f:6b:f2:a9:27:4a:da:14:a0:c4:f4:8e:61:27:f9:c0:1e:78:5d:d1 +# SHA256 Fingerprint: 88:f4:38:dc:f8:ff:d1:fa:8f:42:91:15:ff:e5:f8:2a:e1:e0:6e:0c:70:c3:75:fa:ad:71:7b:34:a4:9e:72:65 +-----BEGIN CERTIFICATE----- +MIIFojCCA4qgAwIBAgIUAZQwHqIL3fXFMyqxQ0Rx+NZQTQ0wDQYJKoZIhvcNAQEM +BQAwaTELMAkGA1UEBhMCS1IxJjAkBgNVBAoMHU5BVkVSIEJVU0lORVNTIFBMQVRG +T1JNIENvcnAuMTIwMAYDVQQDDClOQVZFUiBHbG9iYWwgUm9vdCBDZXJ0aWZpY2F0 +aW9uIEF1dGhvcml0eTAeFw0xNzA4MTgwODU4NDJaFw0zNzA4MTgyMzU5NTlaMGkx +CzAJBgNVBAYTAktSMSYwJAYDVQQKDB1OQVZFUiBCVVNJTkVTUyBQTEFURk9STSBD +b3JwLjEyMDAGA1UEAwwpTkFWRVIgR2xvYmFsIFJvb3QgQ2VydGlmaWNhdGlvbiBB +dXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC21PGTXLVA +iQqrDZBbUGOukJR0F0Vy1ntlWilLp1agS7gvQnXp2XskWjFlqxcX0TM62RHcQDaH +38dq6SZeWYp34+hInDEW+j6RscrJo+KfziFTowI2MMtSAuXaMl3Dxeb57hHHi8lE +HoSTGEq0n+USZGnQJoViAbbJAh2+g1G7XNr4rRVqmfeSVPc0W+m/6imBEtRTkZaz +kVrd/pBzKPswRrXKCAfHcXLJZtM0l/aM9BhK4dA9WkW2aacp+yPOiNgSnABIqKYP +szuSjXEOdMWLyEz59JuOuDxp7W87UC9Y7cSw0BwbagzivESq2M0UXZR4Yb8Obtoq +vC8MC3GmsxY/nOb5zJ9TNeIDoKAYv7vxvvTWjIcNQvcGufFt7QSUqP620wbGQGHf +nZ3zVHbOUzoBppJB7ASjjw2i1QnK1sua8e9DXcCrpUHPXFNwcMmIpi3Ua2FzUCaG +YQ5fG8Ir4ozVu53BA0K6lNpfqbDKzE0K70dpAy8i+/Eozr9dUGWokG2zdLAIx6yo +0es+nPxdGoMuK8u180SdOqcXYZaicdNwlhVNt0xz7hlcxVs+Qf6sdWA7G2POAN3a +CJBitOUt7kinaxeZVL6HSuOpXgRM6xBtVNbv8ejyYhbLgGvtPe31HzClrkvJE+2K +AQHJuFFYwGY6sWZLxNUxAmLpdIQM201GLQIDAQABo0IwQDAdBgNVHQ4EFgQU0p+I +36HNLL3s9TsBAZMzJ7LrYEswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMB +Af8wDQYJKoZIhvcNAQEMBQADggIBADLKgLOdPVQG3dLSLvCkASELZ0jKbY7gyKoN +qo0hV4/GPnrK21HUUrPUloSlWGB/5QuOH/XcChWB5Tu2tyIvCZwTFrFsDDUIbatj +cu3cvuzHV+YwIHHW1xDBE1UBjCpD5EHxzzp6U5LOogMFDTjfArsQLtk70pt6wKGm ++LUx5vR1yblTmXVHIloUFcd4G7ad6Qz4G3bxhYTeodoS76TiEJd6eN4MUZeoIUCL +hr0N8F5OSza7OyAfikJW4Qsav3vQIkMsRIz75Sq0bBwcupTgE34h5prCy8VCZLQe +lHsIJchxzIdFV4XTnyliIoNRlwAYl3dqmJLJfGBs32x9SuRwTMKeuB330DTHD8z7 +p/8Dvq1wkNoL3chtl1+afwkyQf3NosxabUzyqkn+Zvjp2DXrDige7kgvOtB5CTh8 +piKCk5XQA76+AqAF3SAi428diDRgxuYKuQl1C/AH6GmWNcf7I4GOODm4RStDeKLR +LBT/DShycpWbXgnbiUSYqqFJu3FS8r/2/yehNq+4tneI3TqkbZs0kNwUXTC/t+sX +5Ie3cdCh13cV1ELX8vMxmV2b3RZtP+oGI/hGoiLtk/bdmuYqh7GYVPEi92tF4+KO +dh2ajcQGjTa3FPOdVGm3jjzVpG2Tgbet9r1ke8LJaDmgkpzNNIaRkPpkUZ3+/uul +9XXeifdy +-----END CERTIFICATE----- + +# Issuer: CN=AC RAIZ FNMT-RCM SERVIDORES SEGUROS O=FNMT-RCM OU=Ceres +# Subject: CN=AC RAIZ FNMT-RCM SERVIDORES SEGUROS O=FNMT-RCM OU=Ceres +# Label: "AC RAIZ FNMT-RCM SERVIDORES SEGUROS" +# Serial: 131542671362353147877283741781055151509 +# MD5 Fingerprint: 19:36:9c:52:03:2f:d2:d1:bb:23:cc:dd:1e:12:55:bb +# SHA1 Fingerprint: 62:ff:d9:9e:c0:65:0d:03:ce:75:93:d2:ed:3f:2d:32:c9:e3:e5:4a +# SHA256 Fingerprint: 55:41:53:b1:3d:2c:f9:dd:b7:53:bf:be:1a:4e:0a:e0:8d:0a:a4:18:70:58:fe:60:a2:b8:62:b2:e4:b8:7b:cb +-----BEGIN CERTIFICATE----- +MIICbjCCAfOgAwIBAgIQYvYybOXE42hcG2LdnC6dlTAKBggqhkjOPQQDAzB4MQsw +CQYDVQQGEwJFUzERMA8GA1UECgwIRk5NVC1SQ00xDjAMBgNVBAsMBUNlcmVzMRgw +FgYDVQRhDA9WQVRFUy1RMjgyNjAwNEoxLDAqBgNVBAMMI0FDIFJBSVogRk5NVC1S +Q00gU0VSVklET1JFUyBTRUdVUk9TMB4XDTE4MTIyMDA5MzczM1oXDTQzMTIyMDA5 +MzczM1oweDELMAkGA1UEBhMCRVMxETAPBgNVBAoMCEZOTVQtUkNNMQ4wDAYDVQQL +DAVDZXJlczEYMBYGA1UEYQwPVkFURVMtUTI4MjYwMDRKMSwwKgYDVQQDDCNBQyBS +QUlaIEZOTVQtUkNNIFNFUlZJRE9SRVMgU0VHVVJPUzB2MBAGByqGSM49AgEGBSuB +BAAiA2IABPa6V1PIyqvfNkpSIeSX0oNnnvBlUdBeh8dHsVnyV0ebAAKTRBdp20LH +sbI6GA60XYyzZl2hNPk2LEnb80b8s0RpRBNm/dfF/a82Tc4DTQdxz69qBdKiQ1oK +Um8BA06Oi6NCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD +VR0OBBYEFAG5L++/EYZg8k/QQW6rcx/n0m5JMAoGCCqGSM49BAMDA2kAMGYCMQCu +SuMrQMN0EfKVrRYj3k4MGuZdpSRea0R7/DjiT8ucRRcRTBQnJlU5dUoDzBOQn5IC +MQD6SmxgiHPz7riYYqnOK8LZiqZwMR2vsJRM60/G49HzYqc8/5MuB1xJAWdpEgJy +v+c= +-----END CERTIFICATE----- + +# Issuer: CN=GlobalSign Root R46 O=GlobalSign nv-sa +# Subject: CN=GlobalSign Root R46 O=GlobalSign nv-sa +# Label: "GlobalSign Root R46" +# Serial: 1552617688466950547958867513931858518042577 +# MD5 Fingerprint: c4:14:30:e4:fa:66:43:94:2a:6a:1b:24:5f:19:d0:ef +# SHA1 Fingerprint: 53:a2:b0:4b:ca:6b:d6:45:e6:39:8a:8e:c4:0d:d2:bf:77:c3:a2:90 +# SHA256 Fingerprint: 4f:a3:12:6d:8d:3a:11:d1:c4:85:5a:4f:80:7c:ba:d6:cf:91:9d:3a:5a:88:b0:3b:ea:2c:63:72:d9:3c:40:c9 +-----BEGIN CERTIFICATE----- +MIIFWjCCA0KgAwIBAgISEdK7udcjGJ5AXwqdLdDfJWfRMA0GCSqGSIb3DQEBDAUA +MEYxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYD +VQQDExNHbG9iYWxTaWduIFJvb3QgUjQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMy +MDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYt +c2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBSNDYwggIiMA0GCSqGSIb3DQEB +AQUAA4ICDwAwggIKAoICAQCsrHQy6LNl5brtQyYdpokNRbopiLKkHWPd08EsCVeJ +OaFV6Wc0dwxu5FUdUiXSE2te4R2pt32JMl8Nnp8semNgQB+msLZ4j5lUlghYruQG +vGIFAha/r6gjA7aUD7xubMLL1aa7DOn2wQL7Id5m3RerdELv8HQvJfTqa1VbkNud +316HCkD7rRlr+/fKYIje2sGP1q7Vf9Q8g+7XFkyDRTNrJ9CG0Bwta/OrffGFqfUo +0q3v84RLHIf8E6M6cqJaESvWJ3En7YEtbWaBkoe0G1h6zD8K+kZPTXhc+CtI4wSE +y132tGqzZfxCnlEmIyDLPRT5ge1lFgBPGmSXZgjPjHvjK8Cd+RTyG/FWaha/LIWF +zXg4mutCagI0GIMXTpRW+LaCtfOW3T3zvn8gdz57GSNrLNRyc0NXfeD412lPFzYE ++cCQYDdF3uYM2HSNrpyibXRdQr4G9dlkbgIQrImwTDsHTUB+JMWKmIJ5jqSngiCN +I/onccnfxkF0oE32kRbcRoxfKWMxWXEM2G/CtjJ9++ZdU6Z+Ffy7dXxd7Pj2Fxzs +x2sZy/N78CsHpdlseVR2bJ0cpm4O6XkMqCNqo98bMDGfsVR7/mrLZqrcZdCinkqa +ByFrgY/bxFn63iLABJzjqls2k+g9vXqhnQt2sQvHnf3PmKgGwvgqo6GDoLclcqUC +4wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV +HQ4EFgQUA1yrc4GHqMywptWU4jaWSf8FmSwwDQYJKoZIhvcNAQEMBQADggIBAHx4 +7PYCLLtbfpIrXTncvtgdokIzTfnvpCo7RGkerNlFo048p9gkUbJUHJNOxO97k4Vg +JuoJSOD1u8fpaNK7ajFxzHmuEajwmf3lH7wvqMxX63bEIaZHU1VNaL8FpO7XJqti +2kM3S+LGteWygxk6x9PbTZ4IevPuzz5i+6zoYMzRx6Fcg0XERczzF2sUyQQCPtIk +pnnpHs6i58FZFZ8d4kuaPp92CC1r2LpXFNqD6v6MVenQTqnMdzGxRBF6XLE+0xRF +FRhiJBPSy03OXIPBNvIQtQ6IbbjhVp+J3pZmOUdkLG5NrmJ7v2B0GbhWrJKsFjLt +rWhV/pi60zTe9Mlhww6G9kuEYO4Ne7UyWHmRVSyBQ7N0H3qqJZ4d16GLuc1CLgSk +ZoNNiTW2bKg2SnkheCLQQrzRQDGQob4Ez8pn7fXwgNNgyYMqIgXQBztSvwyeqiv5 +u+YfjyW6hY0XHgL+XVAEV8/+LbzvXMAaq7afJMbfc2hIkCwU9D9SGuTSyxTDYWnP +4vkYxboznxSjBF25cfe1lNj2M8FawTSLfJvdkzrnE6JwYZ+vj+vYxXX4M2bUdGc6 +N3ec592kD3ZDZopD8p/7DEJ4Y9HiD2971KE9dJeFt0g5QdYg/NA6s/rob8SKunE3 +vouXsXgxT7PntgMTzlSdriVZzH81Xwj3QEUxeCp6 +-----END CERTIFICATE----- + +# Issuer: CN=GlobalSign Root E46 O=GlobalSign nv-sa +# Subject: CN=GlobalSign Root E46 O=GlobalSign nv-sa +# Label: "GlobalSign Root E46" +# Serial: 1552617690338932563915843282459653771421763 +# MD5 Fingerprint: b5:b8:66:ed:de:08:83:e3:c9:e2:01:34:06:ac:51:6f +# SHA1 Fingerprint: 39:b4:6c:d5:fe:80:06:eb:e2:2f:4a:bb:08:33:a0:af:db:b9:dd:84 +# SHA256 Fingerprint: cb:b9:c4:4d:84:b8:04:3e:10:50:ea:31:a6:9f:51:49:55:d7:bf:d2:e2:c6:b4:93:01:01:9a:d6:1d:9f:50:58 +-----BEGIN CERTIFICATE----- +MIICCzCCAZGgAwIBAgISEdK7ujNu1LzmJGjFDYQdmOhDMAoGCCqGSM49BAMDMEYx +CzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYDVQQD +ExNHbG9iYWxTaWduIFJvb3QgRTQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMyMDAw +MDAwMFowRjELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2Ex +HDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBFNDYwdjAQBgcqhkjOPQIBBgUrgQQA +IgNiAAScDrHPt+ieUnd1NPqlRqetMhkytAepJ8qUuwzSChDH2omwlwxwEwkBjtjq +R+q+soArzfwoDdusvKSGN+1wCAB16pMLey5SnCNoIwZD7JIvU4Tb+0cUB+hflGdd +yXqBPCCjQjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud +DgQWBBQxCpCPtsad0kRLgLWi5h+xEk8blTAKBggqhkjOPQQDAwNoADBlAjEA31SQ +7Zvvi5QCkxeCmb6zniz2C5GMn0oUsfZkvLtoURMMA/cVi4RguYv/Uo7njLwcAjA8 ++RHUjE7AwWHCFUyqqx0LMV87HOIAl0Qx5v5zli/altP+CAezNIm8BZ/3Hobui3A= +-----END CERTIFICATE----- + +# Issuer: CN=ANF Secure Server Root CA O=ANF Autoridad de Certificacion OU=ANF CA Raiz +# Subject: CN=ANF Secure Server Root CA O=ANF Autoridad de Certificacion OU=ANF CA Raiz +# Label: "ANF Secure Server Root CA" +# Serial: 996390341000653745 +# MD5 Fingerprint: 26:a6:44:5a:d9:af:4e:2f:b2:1d:b6:65:b0:4e:e8:96 +# SHA1 Fingerprint: 5b:6e:68:d0:cc:15:b6:a0:5f:1e:c1:5f:ae:02:fc:6b:2f:5d:6f:74 +# SHA256 Fingerprint: fb:8f:ec:75:91:69:b9:10:6b:1e:51:16:44:c6:18:c5:13:04:37:3f:6c:06:43:08:8d:8b:ef:fd:1b:99:75:99 +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +# Issuer: CN=Certum EC-384 CA O=Asseco Data Systems S.A. OU=Certum Certification Authority +# Subject: CN=Certum EC-384 CA O=Asseco Data Systems S.A. OU=Certum Certification Authority +# Label: "Certum EC-384 CA" +# Serial: 160250656287871593594747141429395092468 +# MD5 Fingerprint: b6:65:b3:96:60:97:12:a1:ec:4e:e1:3d:a3:c6:c9:f1 +# SHA1 Fingerprint: f3:3e:78:3c:ac:df:f4:a2:cc:ac:67:55:69:56:d7:e5:16:3c:e1:ed +# SHA256 Fingerprint: 6b:32:80:85:62:53:18:aa:50:d1:73:c9:8d:8b:da:09:d5:7e:27:41:3d:11:4c:f7:87:a0:f5:d0:6c:03:0c:f6 +-----BEGIN CERTIFICATE----- +MIICZTCCAeugAwIBAgIQeI8nXIESUiClBNAt3bpz9DAKBggqhkjOPQQDAzB0MQsw +CQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBTLkEuMScw +JQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxGTAXBgNVBAMT +EENlcnR1bSBFQy0zODQgQ0EwHhcNMTgwMzI2MDcyNDU0WhcNNDMwMzI2MDcyNDU0 +WjB0MQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBT +LkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxGTAX +BgNVBAMTEENlcnR1bSBFQy0zODQgQ0EwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATE +KI6rGFtqvm5kN2PkzeyrOvfMobgOgknXhimfoZTy42B4mIF4Bk3y7JoOV2CDn7Tm +Fy8as10CW4kjPMIRBSqniBMY81CE1700LCeJVf/OTOffph8oxPBUw7l8t1Ot68Kj +QjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI0GZnQkdjrzife81r1HfS+8 +EF9LMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNoADBlAjADVS2m5hjEfO/J +UG7BJw+ch69u1RsIGL2SKcHvlJF40jocVYli5RsJHrpka/F2tNQCMQC0QoSZ/6vn +nvuRlydd3LBbMHHOXjgaatkl5+r3YZJW+OraNsKHZZYuciUvf9/DE8k= +-----END CERTIFICATE----- + +# Issuer: CN=Certum Trusted Root CA O=Asseco Data Systems S.A. OU=Certum Certification Authority +# Subject: CN=Certum Trusted Root CA O=Asseco Data Systems S.A. OU=Certum Certification Authority +# Label: "Certum Trusted Root CA" +# Serial: 40870380103424195783807378461123655149 +# MD5 Fingerprint: 51:e1:c2:e7:fe:4c:84:af:59:0e:2f:f4:54:6f:ea:29 +# SHA1 Fingerprint: c8:83:44:c0:18:ae:9f:cc:f1:87:b7:8f:22:d1:c5:d7:45:84:ba:e5 +# SHA256 Fingerprint: fe:76:96:57:38:55:77:3e:37:a9:5e:7a:d4:d9:cc:96:c3:01:57:c1:5d:31:76:5b:a9:b1:57:04:e1:ae:78:fd +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +# Issuer: CN=TunTrust Root CA O=Agence Nationale de Certification Electronique +# Subject: CN=TunTrust Root CA O=Agence Nationale de Certification Electronique +# Label: "TunTrust Root CA" +# Serial: 108534058042236574382096126452369648152337120275 +# MD5 Fingerprint: 85:13:b9:90:5b:36:5c:b6:5e:b8:5a:f8:e0:31:57:b4 +# SHA1 Fingerprint: cf:e9:70:84:0f:e0:73:0f:9d:f6:0c:7f:2c:4b:ee:20:46:34:9c:bb +# SHA256 Fingerprint: 2e:44:10:2a:b5:8c:b8:54:19:45:1c:8e:19:d9:ac:f3:66:2c:af:bc:61:4b:6a:53:96:0a:30:f7:d0:e2:eb:41 +-----BEGIN CERTIFICATE----- +MIIFszCCA5ugAwIBAgIUEwLV4kBMkkaGFmddtLu7sms+/BMwDQYJKoZIhvcNAQEL +BQAwYTELMAkGA1UEBhMCVE4xNzA1BgNVBAoMLkFnZW5jZSBOYXRpb25hbGUgZGUg +Q2VydGlmaWNhdGlvbiBFbGVjdHJvbmlxdWUxGTAXBgNVBAMMEFR1blRydXN0IFJv +b3QgQ0EwHhcNMTkwNDI2MDg1NzU2WhcNNDQwNDI2MDg1NzU2WjBhMQswCQYDVQQG +EwJUTjE3MDUGA1UECgwuQWdlbmNlIE5hdGlvbmFsZSBkZSBDZXJ0aWZpY2F0aW9u +IEVsZWN0cm9uaXF1ZTEZMBcGA1UEAwwQVHVuVHJ1c3QgUm9vdCBDQTCCAiIwDQYJ +KoZIhvcNAQEBBQADggIPADCCAgoCggIBAMPN0/y9BFPdDCA61YguBUtB9YOCfvdZ +n56eY+hz2vYGqU8ftPkLHzmMmiDQfgbU7DTZhrx1W4eI8NLZ1KMKsmwb60ksPqxd +2JQDoOw05TDENX37Jk0bbjBU2PWARZw5rZzJJQRNmpA+TkBuimvNKWfGzC3gdOgF +VwpIUPp6Q9p+7FuaDmJ2/uqdHYVy7BG7NegfJ7/Boce7SBbdVtfMTqDhuazb1YMZ +GoXRlJfXyqNlC/M4+QKu3fZnz8k/9YosRxqZbwUN/dAdgjH8KcwAWJeRTIAAHDOF +li/LQcKLEITDCSSJH7UP2dl3RxiSlGBcx5kDPP73lad9UKGAwqmDrViWVSHbhlnU +r8a83YFuB9tgYv7sEG7aaAH0gxupPqJbI9dkxt/con3YS7qC0lH4Zr8GRuR5KiY2 +eY8fTpkdso8MDhz/yV3A/ZAQprE38806JG60hZC/gLkMjNWb1sjxVj8agIl6qeIb +MlEsPvLfe/ZdeikZjuXIvTZxi11Mwh0/rViizz1wTaZQmCXcI/m4WEEIcb9PuISg +jwBUFfyRbVinljvrS5YnzWuioYasDXxU5mZMZl+QviGaAkYt5IPCgLnPSz7ofzwB +7I9ezX/SKEIBlYrilz0QIX32nRzFNKHsLA4KUiwSVXAkPcvCFDVDXSdOvsC9qnyW +5/yeYa1E0wCXAgMBAAGjYzBhMB0GA1UdDgQWBBQGmpsfU33x9aTI04Y+oXNZtPdE +ITAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFAaamx9TffH1pMjThj6hc1m0 +90QhMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAqgVutt0Vyb+z +xiD2BkewhpMl0425yAA/l/VSJ4hxyXT968pk21vvHl26v9Hr7lxpuhbI87mP0zYu +QEkHDVneixCwSQXi/5E/S7fdAo74gShczNxtr18UnH1YeA32gAm56Q6XKRm4t+v4 +FstVEuTGfbvE7Pi1HE4+Z7/FXxttbUcoqgRYYdZ2vyJ/0Adqp2RT8JeNnYA/u8EH +22Wv5psymsNUk8QcCMNE+3tjEUPRahphanltkE8pjkcFwRJpadbGNjHh/PqAulxP +xOu3Mqz4dWEX1xAZufHSCe96Qp1bWgvUxpVOKs7/B9dPfhgGiPEZtdmYu65xxBzn +dFlY7wyJz4sfdZMaBBSSSFCp61cpABbjNhzI+L/wM9VBD8TMPN3pM0MBkRArHtG5 +Xc0yGYuPjCB31yLEQtyEFpslbei0VXF/sHyz03FJuc9SpAQ/3D2gu68zngowYI7b +nV2UqL1g52KAdoGDDIzMMEZJ4gzSqK/rYXHv5yJiqfdcZGyfFoxnNidF9Ql7v/YQ +CvGwjVRDjAS6oz/v4jXH+XTgbzRB0L9zZVcg+ZtnemZoJE6AZb0QmQZZ8mWvuMZH +u/2QeItBcy6vVR/cO5JyboTT0GFMDcx2V+IthSIVNg3rAZ3r2OvEhJn7wAzMMujj +d9qDRIueVSjAi1jTkD5OGwDxFa2DK5o= +-----END CERTIFICATE----- + +# Issuer: CN=HARICA TLS RSA Root CA 2021 O=Hellenic Academic and Research Institutions CA +# Subject: CN=HARICA TLS RSA Root CA 2021 O=Hellenic Academic and Research Institutions CA +# Label: "HARICA TLS RSA Root CA 2021" +# Serial: 76817823531813593706434026085292783742 +# MD5 Fingerprint: 65:47:9b:58:86:dd:2c:f0:fc:a2:84:1f:1e:96:c4:91 +# SHA1 Fingerprint: 02:2d:05:82:fa:88:ce:14:0c:06:79:de:7f:14:10:e9:45:d7:a5:6d +# SHA256 Fingerprint: d9:5d:0e:8e:da:79:52:5b:f9:be:b1:1b:14:d2:10:0d:32:94:98:5f:0c:62:d9:fa:bd:9c:d9:99:ec:cb:7b:1d +-----BEGIN CERTIFICATE----- +MIIFpDCCA4ygAwIBAgIQOcqTHO9D88aOk8f0ZIk4fjANBgkqhkiG9w0BAQsFADBs +MQswCQYDVQQGEwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJl +c2VhcmNoIEluc3RpdHV0aW9ucyBDQTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBSU0Eg +Um9vdCBDQSAyMDIxMB4XDTIxMDIxOTEwNTUzOFoXDTQ1MDIxMzEwNTUzN1owbDEL +MAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNl +YXJjaCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgUlNBIFJv +b3QgQ0EgMjAyMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAIvC569l +mwVnlskNJLnQDmT8zuIkGCyEf3dRywQRNrhe7Wlxp57kJQmXZ8FHws+RFjZiPTgE +4VGC/6zStGndLuwRo0Xua2s7TL+MjaQenRG56Tj5eg4MmOIjHdFOY9TnuEFE+2uv +a9of08WRiFukiZLRgeaMOVig1mlDqa2YUlhu2wr7a89o+uOkXjpFc5gH6l8Cct4M +pbOfrqkdtx2z/IpZ525yZa31MJQjB/OCFks1mJxTuy/K5FrZx40d/JiZ+yykgmvw +Kh+OC19xXFyuQnspiYHLA6OZyoieC0AJQTPb5lh6/a6ZcMBaD9YThnEvdmn8kN3b +LW7R8pv1GmuebxWMevBLKKAiOIAkbDakO/IwkfN4E8/BPzWr8R0RI7VDIp4BkrcY +AuUR0YLbFQDMYTfBKnya4dC6s1BG7oKsnTH4+yPiAwBIcKMJJnkVU2DzOFytOOqB +AGMUuTNe3QvboEUHGjMJ+E20pwKmafTCWQWIZYVWrkvL4N48fS0ayOn7H6NhStYq +E613TBoYm5EPWNgGVMWX+Ko/IIqmhaZ39qb8HOLubpQzKoNQhArlT4b4UEV4AIHr +W2jjJo3Me1xR9BQsQL4aYB16cmEdH2MtiKrOokWQCPxrvrNQKlr9qEgYRtaQQJKQ +CoReaDH46+0N0x3GfZkYVVYnZS6NRcUk7M7jAgMBAAGjQjBAMA8GA1UdEwEB/wQF +MAMBAf8wHQYDVR0OBBYEFApII6ZgpJIKM+qTW8VX6iVNvRLuMA4GA1UdDwEB/wQE +AwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAPpBIqm5iFSVmewzVjIuJndftTgfvnNAU +X15QvWiWkKQUEapobQk1OUAJ2vQJLDSle1mESSmXdMgHHkdt8s4cUCbjnj1AUz/3 +f5Z2EMVGpdAgS1D0NTsY9FVqQRtHBmg8uwkIYtlfVUKqrFOFrJVWNlar5AWMxaja +H6NpvVMPxP/cyuN+8kyIhkdGGvMA9YCRotxDQpSbIPDRzbLrLFPCU3hKTwSUQZqP +JzLB5UkZv/HywouoCjkxKLR9YjYsTewfM7Z+d21+UPCfDtcRj88YxeMn/ibvBZ3P +zzfF0HvaO7AWhAw6k9a+F9sPPg4ZeAnHqQJyIkv3N3a6dcSFA1pj1bF1BcK5vZSt +jBWZp5N99sXzqnTPBIWUmAD04vnKJGW/4GKvyMX6ssmeVkjaef2WdhW+o45WxLM0 +/L5H9MG0qPzVMIho7suuyWPEdr6sOBjhXlzPrjoiUevRi7PzKzMHVIf6tLITe7pT +BGIBnfHAT+7hOtSLIBD6Alfm78ELt5BGnBkpjNxvoEppaZS3JGWg/6w/zgH7IS79 +aPib8qXPMThcFarmlwDB31qlpzmq6YR/PFGoOtmUW4y/Twhx5duoXNTSpv4Ao8YW +xw/ogM4cKGR0GQjTQuPOAF1/sdwTsOEFy9EgqoZ0njnnkf3/W9b3raYvAwtt41dU +63ZTGI0RmLo= +-----END CERTIFICATE----- + +# Issuer: CN=HARICA TLS ECC Root CA 2021 O=Hellenic Academic and Research Institutions CA +# Subject: CN=HARICA TLS ECC Root CA 2021 O=Hellenic Academic and Research Institutions CA +# Label: "HARICA TLS ECC Root CA 2021" +# Serial: 137515985548005187474074462014555733966 +# MD5 Fingerprint: ae:f7:4c:e5:66:35:d1:b7:9b:8c:22:93:74:d3:4b:b0 +# SHA1 Fingerprint: bc:b0:c1:9d:e9:98:92:70:19:38:57:e9:8d:a7:b4:5d:6e:ee:01:48 +# SHA256 Fingerprint: 3f:99:cc:47:4a:cf:ce:4d:fe:d5:87:94:66:5e:47:8d:15:47:73:9f:2e:78:0f:1b:b4:ca:9b:13:30:97:d4:01 +-----BEGIN CERTIFICATE----- +MIICVDCCAdugAwIBAgIQZ3SdjXfYO2rbIvT/WeK/zjAKBggqhkjOPQQDAzBsMQsw +CQYDVQQGEwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2Vh +cmNoIEluc3RpdHV0aW9ucyBDQTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBFQ0MgUm9v +dCBDQSAyMDIxMB4XDTIxMDIxOTExMDExMFoXDTQ1MDIxMzExMDEwOVowbDELMAkG +A1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJj +aCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgRUNDIFJvb3Qg +Q0EgMjAyMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABDgI/rGgltJ6rK9JOtDA4MM7 +KKrxcm1lAEeIhPyaJmuqS7psBAqIXhfyVYf8MLA04jRYVxqEU+kw2anylnTDUR9Y +STHMmE5gEYd103KUkE+bECUqqHgtvpBBWJAVcqeht6NCMEAwDwYDVR0TAQH/BAUw +AwEB/zAdBgNVHQ4EFgQUyRtTgRL+BNUW0aq8mm+3oJUZbsowDgYDVR0PAQH/BAQD +AgGGMAoGCCqGSM49BAMDA2cAMGQCMBHervjcToiwqfAircJRQO9gcS3ujwLEXQNw +SaSS6sUUiHCm0w2wqsosQJz76YJumgIwK0eaB8bRwoF8yguWGEEbo/QwCZ61IygN +nxS2PFOiTAZpffpskcYqSUXm7LcT4Tps +-----END CERTIFICATE----- + +# Issuer: CN=Autoridad de Certificacion Firmaprofesional CIF A62634068 +# Subject: CN=Autoridad de Certificacion Firmaprofesional CIF A62634068 +# Label: "Autoridad de Certificacion Firmaprofesional CIF A62634068" +# Serial: 1977337328857672817 +# MD5 Fingerprint: 4e:6e:9b:54:4c:ca:b7:fa:48:e4:90:b1:15:4b:1c:a3 +# SHA1 Fingerprint: 0b:be:c2:27:22:49:cb:39:aa:db:35:5c:53:e3:8c:ae:78:ff:b6:fe +# SHA256 Fingerprint: 57:de:05:83:ef:d2:b2:6e:03:61:da:99:da:9d:f4:64:8d:ef:7e:e8:44:1c:3b:72:8a:fa:9b:cd:e0:f9:b2:6a +-----BEGIN CERTIFICATE----- +MIIGFDCCA/ygAwIBAgIIG3Dp0v+ubHEwDQYJKoZIhvcNAQELBQAwUTELMAkGA1UE +BhMCRVMxQjBABgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1h +cHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2ODAeFw0xNDA5MjMxNTIyMDdaFw0zNjA1 +MDUxNTIyMDdaMFExCzAJBgNVBAYTAkVTMUIwQAYDVQQDDDlBdXRvcmlkYWQgZGUg +Q2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBBNjI2MzQwNjgwggIi +MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDDUtd9 +thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQM +cas9UX4PB99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefG +L9ItWY16Ck6WaVICqjaY7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15i +NA9wBj4gGFrO93IbJWyTdBSTo3OxDqqHECNZXyAFGUftaI6SEspd/NYrspI8IM/h +X68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyIplD9amML9ZMWGxmPsu2b +m8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctXMbScyJCy +Z/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirja +EbsXLZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/T +KI8xWVvTyQKmtFLKbpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF +6NkBiDkal4ZkQdU7hwxu+g/GvUgUvzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVh +OSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMB0GA1UdDgQWBBRlzeurNR4APn7VdMAc +tHNHDhpkLzASBgNVHRMBAf8ECDAGAQH/AgEBMIGmBgNVHSAEgZ4wgZswgZgGBFUd +IAAwgY8wLwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuZmlybWFwcm9mZXNpb25hbC5j +b20vY3BzMFwGCCsGAQUFBwICMFAeTgBQAGEAcwBlAG8AIABkAGUAIABsAGEAIABC +AG8AbgBhAG4AbwB2AGEAIAA0ADcAIABCAGEAcgBjAGUAbABvAG4AYQAgADAAOAAw +ADEANzAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQADggIBAHSHKAIrdx9m +iWTtj3QuRhy7qPj4Cx2Dtjqn6EWKB7fgPiDL4QjbEwj4KKE1soCzC1HA01aajTNF +Sa9J8OA9B3pFE1r/yJfY0xgsfZb43aJlQ3CTkBW6kN/oGbDbLIpgD7dvlAceHabJ +hfa9NPhAeGIQcDq+fUs5gakQ1JZBu/hfHAsdCPKxsIl68veg4MSPi3i1O1ilI45P +Vf42O+AMt8oqMEEgtIDNrvx2ZnOorm7hfNoD6JQg5iKj0B+QXSBTFCZX2lSX3xZE +EAEeiGaPcjiT3SC3NL7X8e5jjkd5KAb881lFJWAiMxujX6i6KtoaPc1A6ozuBRWV +1aUsIC+nmCjuRfzxuIgALI9C2lHVnOUTaHFFQ4ueCyE8S1wF3BqfmI7avSKecs2t +CsvMo2ebKHTEm9caPARYpoKdrcd7b/+Alun4jWq9GJAd/0kakFI3ky88Al2CdgtR +5xbHV/g4+afNmyJU72OwFW1TZQNKXkqgsqeOSQBZONXH9IBk9W6VULgRfhVwOEqw +f9DEMnDAGf/JOC0ULGb0QkTmVXYbgBVX/8Cnp6o5qtjTcNAuuuuUavpfNIbnYrX9 +ivAwhZTJryQCL2/W3Wf+47BVTwSYT6RBVuKT0Gro1vP7ZeDOdcQxWQzugsgMYDNK +GbqEZycPvEJdvSRUDewdcAZfpLz6IHxV +-----END CERTIFICATE----- + +# Issuer: CN=vTrus ECC Root CA O=iTrusChina Co.,Ltd. +# Subject: CN=vTrus ECC Root CA O=iTrusChina Co.,Ltd. +# Label: "vTrus ECC Root CA" +# Serial: 630369271402956006249506845124680065938238527194 +# MD5 Fingerprint: de:4b:c1:f5:52:8c:9b:43:e1:3e:8f:55:54:17:8d:85 +# SHA1 Fingerprint: f6:9c:db:b0:fc:f6:02:13:b6:52:32:a6:a3:91:3f:16:70:da:c3:e1 +# SHA256 Fingerprint: 30:fb:ba:2c:32:23:8e:2a:98:54:7a:f9:79:31:e5:50:42:8b:9b:3f:1c:8e:eb:66:33:dc:fa:86:c5:b2:7d:d3 +-----BEGIN CERTIFICATE----- +MIICDzCCAZWgAwIBAgIUbmq8WapTvpg5Z6LSa6Q75m0c1towCgYIKoZIzj0EAwMw +RzELMAkGA1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xGjAY +BgNVBAMTEXZUcnVzIEVDQyBSb290IENBMB4XDTE4MDczMTA3MjY0NFoXDTQzMDcz +MTA3MjY0NFowRzELMAkGA1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28u +LEx0ZC4xGjAYBgNVBAMTEXZUcnVzIEVDQyBSb290IENBMHYwEAYHKoZIzj0CAQYF +K4EEACIDYgAEZVBKrox5lkqqHAjDo6LN/llWQXf9JpRCux3NCNtzslt188+cToL0 +v/hhJoVs1oVbcnDS/dtitN9Ti72xRFhiQgnH+n9bEOf+QP3A2MMrMudwpremIFUd +e4BdS49nTPEQo0IwQDAdBgNVHQ4EFgQUmDnNvtiyjPeyq+GtJK97fKHbH88wDwYD +VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwCgYIKoZIzj0EAwMDaAAwZQIw +V53dVvHH4+m4SVBrm2nDb+zDfSXkV5UTQJtS0zvzQBm8JsctBp61ezaf9SXUY2sA +AjEA6dPGnlaaKsyh2j/IZivTWJwghfqrkYpwcBE4YGQLYgmRWAD5Tfs0aNoJrSEG +GJTO +-----END CERTIFICATE----- + +# Issuer: CN=vTrus Root CA O=iTrusChina Co.,Ltd. +# Subject: CN=vTrus Root CA O=iTrusChina Co.,Ltd. +# Label: "vTrus Root CA" +# Serial: 387574501246983434957692974888460947164905180485 +# MD5 Fingerprint: b8:c9:37:df:fa:6b:31:84:64:c5:ea:11:6a:1b:75:fc +# SHA1 Fingerprint: 84:1a:69:fb:f5:cd:1a:25:34:13:3d:e3:f8:fc:b8:99:d0:c9:14:b7 +# SHA256 Fingerprint: 8a:71:de:65:59:33:6f:42:6c:26:e5:38:80:d0:0d:88:a1:8d:a4:c6:a9:1f:0d:cb:61:94:e2:06:c5:c9:63:87 +-----BEGIN CERTIFICATE----- +MIIFVjCCAz6gAwIBAgIUQ+NxE9izWRRdt86M/TX9b7wFjUUwDQYJKoZIhvcNAQEL +BQAwQzELMAkGA1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4x +FjAUBgNVBAMTDXZUcnVzIFJvb3QgQ0EwHhcNMTgwNzMxMDcyNDA1WhcNNDMwNzMx +MDcyNDA1WjBDMQswCQYDVQQGEwJDTjEcMBoGA1UEChMTaVRydXNDaGluYSBDby4s +THRkLjEWMBQGA1UEAxMNdlRydXMgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQAD +ggIPADCCAgoCggIBAL1VfGHTuB0EYgWgrmy3cLRB6ksDXhA/kFocizuwZotsSKYc +IrrVQJLuM7IjWcmOvFjai57QGfIvWcaMY1q6n6MLsLOaXLoRuBLpDLvPbmyAhykU +AyyNJJrIZIO1aqwTLDPxn9wsYTwaP3BVm60AUn/PBLn+NvqcwBauYv6WTEN+VRS+ +GrPSbcKvdmaVayqwlHeFXgQPYh1jdfdr58tbmnDsPmcF8P4HCIDPKNsFxhQnL4Z9 +8Cfe/+Z+M0jnCx5Y0ScrUw5XSmXX+6KAYPxMvDVTAWqXcoKv8R1w6Jz1717CbMdH +flqUhSZNO7rrTOiwCcJlwp2dCZtOtZcFrPUGoPc2BX70kLJrxLT5ZOrpGgrIDajt +J8nU57O5q4IikCc9Kuh8kO+8T/3iCiSn3mUkpF3qwHYw03dQ+A0Em5Q2AXPKBlim +0zvc+gRGE1WKyURHuFE5Gi7oNOJ5y1lKCn+8pu8fA2dqWSslYpPZUxlmPCdiKYZN +pGvu/9ROutW04o5IWgAZCfEF2c6Rsffr6TlP9m8EQ5pV9T4FFL2/s1m02I4zhKOQ +UqqzApVg+QxMaPnu1RcN+HFXtSXkKe5lXa/R7jwXC1pDxaWG6iSe4gUH3DRCEpHW +OXSuTEGC2/KmSNGzm/MzqvOmwMVO9fSddmPmAsYiS8GVP1BkLFTltvA8Kc9XAgMB +AAGjQjBAMB0GA1UdDgQWBBRUYnBj8XWEQ1iO0RYgscasGrz2iTAPBgNVHRMBAf8E +BTADAQH/MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAKbqSSaet +8PFww+SX8J+pJdVrnjT+5hpk9jprUrIQeBqfTNqK2uwcN1LgQkv7bHbKJAs5EhWd +nxEt/Hlk3ODg9d3gV8mlsnZwUKT+twpw1aA08XXXTUm6EdGz2OyC/+sOxL9kLX1j +bhd47F18iMjrjld22VkE+rxSH0Ws8HqA7Oxvdq6R2xCOBNyS36D25q5J08FsEhvM +Kar5CKXiNxTKsbhm7xqC5PD48acWabfbqWE8n/Uxy+QARsIvdLGx14HuqCaVvIiv +TDUHKgLKeBRtRytAVunLKmChZwOgzoy8sHJnxDHO2zTlJQNgJXtxmOTAGytfdELS +S8VZCAeHvsXDf+eW2eHcKJfWjwXj9ZtOyh1QRwVTsMo554WgicEFOwE30z9J4nfr +I8iIZjs9OXYhRvHsXyO466JmdXTBQPfYaJqT4i2pLr0cox7IdMakLXogqzu4sEb9 +b91fUlV1YvCXoHzXOP0l382gmxDPi7g4Xl7FtKYCNqEeXxzP4padKar9mK5S4fNB +UvupLnKWnyfjqnN9+BojZns7q2WwMgFLFT49ok8MKzWixtlnEjUwzXYuFrOZnk1P +Ti07NEPhmg4NpGaXutIcSkwsKouLgU9xGqndXHt7CMUADTdA43x7VF8vhV929ven +sBxXVsFy6K2ir40zSbofitzmdHxghm+Hl3s= +-----END CERTIFICATE----- + +# Issuer: CN=ISRG Root X2 O=Internet Security Research Group +# Subject: CN=ISRG Root X2 O=Internet Security Research Group +# Label: "ISRG Root X2" +# Serial: 87493402998870891108772069816698636114 +# MD5 Fingerprint: d3:9e:c4:1e:23:3c:a6:df:cf:a3:7e:6d:e0:14:e6:e5 +# SHA1 Fingerprint: bd:b1:b9:3c:d5:97:8d:45:c6:26:14:55:f8:db:95:c7:5a:d1:53:af +# SHA256 Fingerprint: 69:72:9b:8e:15:a8:6e:fc:17:7a:57:af:b7:17:1d:fc:64:ad:d2:8c:2f:ca:8c:f1:50:7e:34:45:3c:cb:14:70 +-----BEGIN CERTIFICATE----- +MIICGzCCAaGgAwIBAgIQQdKd0XLq7qeAwSxs6S+HUjAKBggqhkjOPQQDAzBPMQsw +CQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2gg +R3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBYMjAeFw0yMDA5MDQwMDAwMDBaFw00 +MDA5MTcxNjAwMDBaME8xCzAJBgNVBAYTAlVTMSkwJwYDVQQKEyBJbnRlcm5ldCBT +ZWN1cml0eSBSZXNlYXJjaCBHcm91cDEVMBMGA1UEAxMMSVNSRyBSb290IFgyMHYw +EAYHKoZIzj0CAQYFK4EEACIDYgAEzZvVn4CDCuwJSvMWSj5cz3es3mcFDR0HttwW ++1qLFNvicWDEukWVEYmO6gbf9yoWHKS5xcUy4APgHoIYOIvXRdgKam7mAHf7AlF9 +ItgKbppbd9/w+kHsOdx1ymgHDB/qo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0T +AQH/BAUwAwEB/zAdBgNVHQ4EFgQUfEKWrt5LSDv6kviejM9ti6lyN5UwCgYIKoZI +zj0EAwMDaAAwZQIwe3lORlCEwkSHRhtFcP9Ymd70/aTSVaYgLXTWNLxBo1BfASdW +tL4ndQavEi51mI38AjEAi/V3bNTIZargCyzuFJ0nN6T5U6VR5CmD1/iQMVtCnwr1 +/q4AaOeMSQ+2b1tbFfLn +-----END CERTIFICATE----- + +# Issuer: CN=HiPKI Root CA - G1 O=Chunghwa Telecom Co., Ltd. +# Subject: CN=HiPKI Root CA - G1 O=Chunghwa Telecom Co., Ltd. +# Label: "HiPKI Root CA - G1" +# Serial: 60966262342023497858655262305426234976 +# MD5 Fingerprint: 69:45:df:16:65:4b:e8:68:9a:8f:76:5f:ff:80:9e:d3 +# SHA1 Fingerprint: 6a:92:e4:a8:ee:1b:ec:96:45:37:e3:29:57:49:cd:96:e3:e5:d2:60 +# SHA256 Fingerprint: f0:15:ce:3c:c2:39:bf:ef:06:4b:e9:f1:d2:c4:17:e1:a0:26:4a:0a:94:be:1f:0c:8d:12:18:64:eb:69:49:cc +-----BEGIN CERTIFICATE----- +MIIFajCCA1KgAwIBAgIQLd2szmKXlKFD6LDNdmpeYDANBgkqhkiG9w0BAQsFADBP +MQswCQYDVQQGEwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0 +ZC4xGzAZBgNVBAMMEkhpUEtJIFJvb3QgQ0EgLSBHMTAeFw0xOTAyMjIwOTQ2MDRa +Fw0zNzEyMzExNTU5NTlaME8xCzAJBgNVBAYTAlRXMSMwIQYDVQQKDBpDaHVuZ2h3 +YSBUZWxlY29tIENvLiwgTHRkLjEbMBkGA1UEAwwSSGlQS0kgUm9vdCBDQSAtIEcx +MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA9B5/UnMyDHPkvRN0o9Qw +qNCuS9i233VHZvR85zkEHmpwINJaR3JnVfSl6J3VHiGh8Ge6zCFovkRTv4354twv +Vcg3Px+kwJyz5HdcoEb+d/oaoDjq7Zpy3iu9lFc6uux55199QmQ5eiY29yTw1S+6 +lZgRZq2XNdZ1AYDgr/SEYYwNHl98h5ZeQa/rh+r4XfEuiAU+TCK72h8q3VJGZDnz +Qs7ZngyzsHeXZJzA9KMuH5UHsBffMNsAGJZMoYFL3QRtU6M9/Aes1MU3guvklQgZ +KILSQjqj2FPseYlgSGDIcpJQ3AOPgz+yQlda22rpEZfdhSi8MEyr48KxRURHH+CK +FgeW0iEPU8DtqX7UTuybCeyvQqww1r/REEXgphaypcXTT3OUM3ECoWqj1jOXTyFj +HluP2cFeRXF3D4FdXyGarYPM+l7WjSNfGz1BryB1ZlpK9p/7qxj3ccC2HTHsOyDr +y+K49a6SsvfhhEvyovKTmiKe0xRvNlS9H15ZFblzqMF8b3ti6RZsR1pl8w4Rm0bZ +/W3c1pzAtH2lsN0/Vm+h+fbkEkj9Bn8SV7apI09bA8PgcSojt/ewsTu8mL3WmKgM +a/aOEmem8rJY5AIJEzypuxC00jBF8ez3ABHfZfjcK0NVvxaXxA/VLGGEqnKG/uY6 +fsI/fe78LxQ+5oXdUG+3Se0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNV +HQ4EFgQU8ncX+l6o/vY9cdVouslGDDjYr7AwDgYDVR0PAQH/BAQDAgGGMA0GCSqG +SIb3DQEBCwUAA4ICAQBQUfB13HAE4/+qddRxosuej6ip0691x1TPOhwEmSKsxBHi +7zNKpiMdDg1H2DfHb680f0+BazVP6XKlMeJ45/dOlBhbQH3PayFUhuaVevvGyuqc +SE5XCV0vrPSltJczWNWseanMX/mF+lLFjfiRFOs6DRfQUsJ748JzjkZ4Bjgs6Fza +ZsT0pPBWGTMpWmWSBUdGSquEwx4noR8RkpkndZMPvDY7l1ePJlsMu5wP1G4wB9Tc +XzZoZjmDlicmisjEOf6aIW/Vcobpf2Lll07QJNBAsNB1CI69aO4I1258EHBGG3zg +iLKecoaZAeO/n0kZtCW+VmWuF2PlHt/o/0elv+EmBYTksMCv5wiZqAxeJoBF1Pho +L5aPruJKHJwWDBNvOIf2u8g0X5IDUXlwpt/L9ZlNec1OvFefQ05rLisY+GpzjLrF +Ne85akEez3GoorKGB1s6yeHvP2UEgEcyRHCVTjFnanRbEEV16rCf0OY1/k6fi8wr +kkVbbiVghUbN0aqwdmaTd5a+g744tiROJgvM7XpWGuDpWsZkrUx6AEhEL7lAuxM+ +vhV4nYWBSipX3tUZQ9rbyltHhoMLP7YNdnhzeSJesYAfz77RP1YQmCuVh6EfnWQU +YDksswBVLuT1sw5XxJFBAJw/6KXf6vb/yPCtbVKoF6ubYfwSUTXkJf2vqmqGOQ== +-----END CERTIFICATE----- + +# Issuer: CN=GlobalSign O=GlobalSign OU=GlobalSign ECC Root CA - R4 +# Subject: CN=GlobalSign O=GlobalSign OU=GlobalSign ECC Root CA - R4 +# Label: "GlobalSign ECC Root CA - R4" +# Serial: 159662223612894884239637590694 +# MD5 Fingerprint: 26:29:f8:6d:e1:88:bf:a2:65:7f:aa:c4:cd:0f:7f:fc +# SHA1 Fingerprint: 6b:a0:b0:98:e1:71:ef:5a:ad:fe:48:15:80:77:10:f4:bd:6f:0b:28 +# SHA256 Fingerprint: b0:85:d7:0b:96:4f:19:1a:73:e4:af:0d:54:ae:7a:0e:07:aa:fd:af:9b:71:dd:08:62:13:8a:b7:32:5a:24:a2 +-----BEGIN CERTIFICATE----- +MIIB3DCCAYOgAwIBAgINAgPlfvU/k/2lCSGypjAKBggqhkjOPQQDAjBQMSQwIgYD +VQQLExtHbG9iYWxTaWduIEVDQyBSb290IENBIC0gUjQxEzARBgNVBAoTCkdsb2Jh +bFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMTIxMTEzMDAwMDAwWhcNMzgw +MTE5MDMxNDA3WjBQMSQwIgYDVQQLExtHbG9iYWxTaWduIEVDQyBSb290IENBIC0g +UjQxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wWTAT +BgcqhkjOPQIBBggqhkjOPQMBBwNCAAS4xnnTj2wlDp8uORkcA6SumuU5BwkWymOx +uYb4ilfBV85C+nOh92VC/x7BALJucw7/xyHlGKSq2XE/qNS5zowdo0IwQDAOBgNV +HQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVLB7rUW44kB/ ++wpu+74zyTyjhNUwCgYIKoZIzj0EAwIDRwAwRAIgIk90crlgr/HmnKAWBVBfw147 +bmF0774BxL4YSFlhgjICICadVGNA3jdgUM/I2O2dgq43mLyjj0xMqTQrbO/7lZsm +-----END CERTIFICATE----- + +# Issuer: CN=GTS Root R1 O=Google Trust Services LLC +# Subject: CN=GTS Root R1 O=Google Trust Services LLC +# Label: "GTS Root R1" +# Serial: 159662320309726417404178440727 +# MD5 Fingerprint: 05:fe:d0:bf:71:a8:a3:76:63:da:01:e0:d8:52:dc:40 +# SHA1 Fingerprint: e5:8c:1c:c4:91:3b:38:63:4b:e9:10:6e:e3:ad:8e:6b:9d:d9:81:4a +# SHA256 Fingerprint: d9:47:43:2a:bd:e7:b7:fa:90:fc:2e:6b:59:10:1b:12:80:e0:e1:c7:e4:e4:0f:a3:c6:88:7f:ff:57:a7:f4:cf +-----BEGIN CERTIFICATE----- +MIIFVzCCAz+gAwIBAgINAgPlk28xsBNJiGuiFzANBgkqhkiG9w0BAQwFADBHMQsw +CQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEU +MBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAw +MDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZp +Y2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwggIiMA0GCSqGSIb3DQEBAQUA +A4ICDwAwggIKAoICAQC2EQKLHuOhd5s73L+UPreVp0A8of2C+X0yBoJx9vaMf/vo +27xqLpeXo4xL+Sv2sfnOhB2x+cWX3u+58qPpvBKJXqeqUqv4IyfLpLGcY9vXmX7w +Cl7raKb0xlpHDU0QM+NOsROjyBhsS+z8CZDfnWQpJSMHobTSPS5g4M/SCYe7zUjw +TcLCeoiKu7rPWRnWr4+wB7CeMfGCwcDfLqZtbBkOtdh+JhpFAz2weaSUKK0Pfybl +qAj+lug8aJRT7oM6iCsVlgmy4HqMLnXWnOunVmSPlk9orj2XwoSPwLxAwAtcvfaH +szVsrBhQf4TgTM2S0yDpM7xSma8ytSmzJSq0SPly4cpk9+aCEI3oncKKiPo4Zor8 +Y/kB+Xj9e1x3+naH+uzfsQ55lVe0vSbv1gHR6xYKu44LtcXFilWr06zqkUspzBmk +MiVOKvFlRNACzqrOSbTqn3yDsEB750Orp2yjj32JgfpMpf/VjsPOS+C12LOORc92 +wO1AK/1TD7Cn1TsNsYqiA94xrcx36m97PtbfkSIS5r762DL8EGMUUXLeXdYWk70p +aDPvOmbsB4om3xPXV2V4J95eSRQAogB/mqghtqmxlbCluQ0WEdrHbEg8QOB+DVrN +VjzRlwW5y0vtOUucxD/SVRNuJLDWcfr0wbrM7Rv1/oFB2ACYPTrIrnqYNxgFlQID +AQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E +FgQU5K8rJnEaK0gnhS9SZizv8IkTcT4wDQYJKoZIhvcNAQEMBQADggIBAJ+qQibb +C5u+/x6Wki4+omVKapi6Ist9wTrYggoGxval3sBOh2Z5ofmmWJyq+bXmYOfg6LEe +QkEzCzc9zolwFcq1JKjPa7XSQCGYzyI0zzvFIoTgxQ6KfF2I5DUkzps+GlQebtuy +h6f88/qBVRRiClmpIgUxPoLW7ttXNLwzldMXG+gnoot7TiYaelpkttGsN/H9oPM4 +7HLwEXWdyzRSjeZ2axfG34arJ45JK3VmgRAhpuo+9K4l/3wV3s6MJT/KYnAK9y8J +ZgfIPxz88NtFMN9iiMG1D53Dn0reWVlHxYciNuaCp+0KueIHoI17eko8cdLiA6Ef +MgfdG+RCzgwARWGAtQsgWSl4vflVy2PFPEz0tv/bal8xa5meLMFrUKTX5hgUvYU/ +Z6tGn6D/Qqc6f1zLXbBwHSs09dR2CQzreExZBfMzQsNhFRAbd03OIozUhfJFfbdT +6u9AWpQKXCBfTkBdYiJ23//OYb2MI3jSNwLgjt7RETeJ9r/tSQdirpLsQBqvFAnZ +0E6yove+7u7Y/9waLd64NnHi/Hm3lCXRSHNboTXns5lndcEZOitHTtNCjv0xyBZm +2tIMPNuzjsmhDYAPexZ3FL//2wmUspO8IFgV6dtxQ/PeEMMA3KgqlbbC1j+Qa3bb +bP6MvPJwNQzcmRk13NfIRmPVNnGuV/u3gm3c +-----END CERTIFICATE----- + +# Issuer: CN=GTS Root R2 O=Google Trust Services LLC +# Subject: CN=GTS Root R2 O=Google Trust Services LLC +# Label: "GTS Root R2" +# Serial: 159662449406622349769042896298 +# MD5 Fingerprint: 1e:39:c0:53:e6:1e:29:82:0b:ca:52:55:36:5d:57:dc +# SHA1 Fingerprint: 9a:44:49:76:32:db:de:fa:d0:bc:fb:5a:7b:17:bd:9e:56:09:24:94 +# SHA256 Fingerprint: 8d:25:cd:97:22:9d:bf:70:35:6b:da:4e:b3:cc:73:40:31:e2:4c:f0:0f:af:cf:d3:2d:c7:6e:b5:84:1c:7e:a8 +-----BEGIN CERTIFICATE----- +MIIFVzCCAz+gAwIBAgINAgPlrsWNBCUaqxElqjANBgkqhkiG9w0BAQwFADBHMQsw +CQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEU +MBIGA1UEAxMLR1RTIFJvb3QgUjIwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAw +MDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZp +Y2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwggIiMA0GCSqGSIb3DQEBAQUA +A4ICDwAwggIKAoICAQDO3v2m++zsFDQ8BwZabFn3GTXd98GdVarTzTukk3LvCvpt +nfbwhYBboUhSnznFt+4orO/LdmgUud+tAWyZH8QiHZ/+cnfgLFuv5AS/T3KgGjSY +6Dlo7JUle3ah5mm5hRm9iYz+re026nO8/4Piy33B0s5Ks40FnotJk9/BW9BuXvAu +MC6C/Pq8tBcKSOWIm8Wba96wyrQD8Nr0kLhlZPdcTK3ofmZemde4wj7I0BOdre7k +RXuJVfeKH2JShBKzwkCX44ofR5GmdFrS+LFjKBC4swm4VndAoiaYecb+3yXuPuWg +f9RhD1FLPD+M2uFwdNjCaKH5wQzpoeJ/u1U8dgbuak7MkogwTZq9TwtImoS1mKPV ++3PBV2HdKFZ1E66HjucMUQkQdYhMvI35ezzUIkgfKtzra7tEscszcTJGr61K8Yzo +dDqs5xoic4DSMPclQsciOzsSrZYuxsN2B6ogtzVJV+mSSeh2FnIxZyuWfoqjx5RW +Ir9qS34BIbIjMt/kmkRtWVtd9QCgHJvGeJeNkP+byKq0rxFROV7Z+2et1VsRnTKa +G73VululycslaVNVJ1zgyjbLiGH7HrfQy+4W+9OmTN6SpdTi3/UGVN4unUu0kzCq +gc7dGtxRcw1PcOnlthYhGXmy5okLdWTK1au8CcEYof/UVKGFPP0UJAOyh9OktwID +AQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E +FgQUu//KjiOfT5nK2+JopqUVJxce2Q4wDQYJKoZIhvcNAQEMBQADggIBAB/Kzt3H +vqGf2SdMC9wXmBFqiN495nFWcrKeGk6c1SuYJF2ba3uwM4IJvd8lRuqYnrYb/oM8 +0mJhwQTtzuDFycgTE1XnqGOtjHsB/ncw4c5omwX4Eu55MaBBRTUoCnGkJE+M3DyC +B19m3H0Q/gxhswWV7uGugQ+o+MePTagjAiZrHYNSVc61LwDKgEDg4XSsYPWHgJ2u +NmSRXbBoGOqKYcl3qJfEycel/FVL8/B/uWU9J2jQzGv6U53hkRrJXRqWbTKH7QMg +yALOWr7Z6v2yTcQvG99fevX4i8buMTolUVVnjWQye+mew4K6Ki3pHrTgSAai/Gev +HyICc/sgCq+dVEuhzf9gR7A/Xe8bVr2XIZYtCtFenTgCR2y59PYjJbigapordwj6 +xLEokCZYCDzifqrXPW+6MYgKBesntaFJ7qBFVHvmJ2WZICGoo7z7GJa7Um8M7YNR +TOlZ4iBgxcJlkoKM8xAfDoqXvneCbT+PHV28SSe9zE8P4c52hgQjxcCMElv924Sg +JPFI/2R80L5cFtHvma3AH/vLrrw4IgYmZNralw4/KBVEqE8AyvCazM90arQ+POuV +7LXTWtiBmelDGDfrs7vRWGJB82bSj6p4lVQgw1oudCvV0b4YacCs1aTPObpRhANl +6WLAYv7YTVWW4tAR+kg0Eeye7QUd5MjWHYbL +-----END CERTIFICATE----- + +# Issuer: CN=GTS Root R3 O=Google Trust Services LLC +# Subject: CN=GTS Root R3 O=Google Trust Services LLC +# Label: "GTS Root R3" +# Serial: 159662495401136852707857743206 +# MD5 Fingerprint: 3e:e7:9d:58:02:94:46:51:94:e5:e0:22:4a:8b:e7:73 +# SHA1 Fingerprint: ed:e5:71:80:2b:c8:92:b9:5b:83:3c:d2:32:68:3f:09:cd:a0:1e:46 +# SHA256 Fingerprint: 34:d8:a7:3e:e2:08:d9:bc:db:0d:95:65:20:93:4b:4e:40:e6:94:82:59:6e:8b:6f:73:c8:42:6b:01:0a:6f:48 +-----BEGIN CERTIFICATE----- +MIICCTCCAY6gAwIBAgINAgPluILrIPglJ209ZjAKBggqhkjOPQQDAzBHMQswCQYD +VQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIG +A1UEAxMLR1RTIFJvb3QgUjMwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAw +WjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2Vz +IExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcqhkjOPQIBBgUrgQQAIgNi +AAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUURout736G +jOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2ADDL2 +4CejQjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW +BBTB8Sa6oC2uhYHP0/EqEr24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEA9uEglRR7 +VKOQFhG/hMjqb2sXnh5GmCCbn9MN2azTL818+FsuVbu/3ZL3pAzcMeGiAjEA/Jdm +ZuVDFhOD3cffL74UOO0BzrEXGhF16b0DjyZ+hOXJYKaV11RZt+cRLInUue4X +-----END CERTIFICATE----- + +# Issuer: CN=GTS Root R4 O=Google Trust Services LLC +# Subject: CN=GTS Root R4 O=Google Trust Services LLC +# Label: "GTS Root R4" +# Serial: 159662532700760215368942768210 +# MD5 Fingerprint: 43:96:83:77:19:4d:76:b3:9d:65:52:e4:1d:22:a5:e8 +# SHA1 Fingerprint: 77:d3:03:67:b5:e0:0c:15:f6:0c:38:61:df:7c:e1:3b:92:46:4d:47 +# SHA256 Fingerprint: 34:9d:fa:40:58:c5:e2:63:12:3b:39:8a:e7:95:57:3c:4e:13:13:c8:3f:e6:8f:93:55:6c:d5:e8:03:1b:3c:7d +-----BEGIN CERTIFICATE----- +MIICCTCCAY6gAwIBAgINAgPlwGjvYxqccpBQUjAKBggqhkjOPQQDAzBHMQswCQYD +VQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIG +A1UEAxMLR1RTIFJvb3QgUjQwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAw +WjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2Vz +IExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcqhkjOPQIBBgUrgQQAIgNi +AATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa6zzuhXyi +QHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/lxKvR +HYqjQjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW +BBSATNbrdP9JNqPV2Py1PsVq8JQdjDAKBggqhkjOPQQDAwNpADBmAjEA6ED/g94D +9J+uHXqnLrmvT/aDHQ4thQEd0dlq7A/Cr8deVl5c1RxYIigL9zC2L7F8AjEA8GE8 +p/SgguMh1YQdc4acLa/KNJvxn7kjNuK8YAOdgLOaVsjh4rsUecrNIdSUtUlD +-----END CERTIFICATE----- + +# Issuer: CN=Telia Root CA v2 O=Telia Finland Oyj +# Subject: CN=Telia Root CA v2 O=Telia Finland Oyj +# Label: "Telia Root CA v2" +# Serial: 7288924052977061235122729490515358 +# MD5 Fingerprint: 0e:8f:ac:aa:82:df:85:b1:f4:dc:10:1c:fc:99:d9:48 +# SHA1 Fingerprint: b9:99:cd:d1:73:50:8a:c4:47:05:08:9c:8c:88:fb:be:a0:2b:40:cd +# SHA256 Fingerprint: 24:2b:69:74:2f:cb:1e:5b:2a:bf:98:89:8b:94:57:21:87:54:4e:5b:4d:99:11:78:65:73:62:1f:6a:74:b8:2c +-----BEGIN CERTIFICATE----- +MIIFdDCCA1ygAwIBAgIPAWdfJ9b+euPkrL4JWwWeMA0GCSqGSIb3DQEBCwUAMEQx +CzAJBgNVBAYTAkZJMRowGAYDVQQKDBFUZWxpYSBGaW5sYW5kIE95ajEZMBcGA1UE +AwwQVGVsaWEgUm9vdCBDQSB2MjAeFw0xODExMjkxMTU1NTRaFw00MzExMjkxMTU1 +NTRaMEQxCzAJBgNVBAYTAkZJMRowGAYDVQQKDBFUZWxpYSBGaW5sYW5kIE95ajEZ +MBcGA1UEAwwQVGVsaWEgUm9vdCBDQSB2MjCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBALLQPwe84nvQa5n44ndp586dpAO8gm2h/oFlH0wnrI4AuhZ76zBq +AMCzdGh+sq/H1WKzej9Qyow2RCRj0jbpDIX2Q3bVTKFgcmfiKDOlyzG4OiIjNLh9 +vVYiQJ3q9HsDrWj8soFPmNB06o3lfc1jw6P23pLCWBnglrvFxKk9pXSW/q/5iaq9 +lRdU2HhE8Qx3FZLgmEKnpNaqIJLNwaCzlrI6hEKNfdWV5Nbb6WLEWLN5xYzTNTOD +n3WhUidhOPFZPY5Q4L15POdslv5e2QJltI5c0BE0312/UqeBAMN/mUWZFdUXyApT +7GPzmX3MaRKGwhfwAZ6/hLzRUssbkmbOpFPlob/E2wnW5olWK8jjfN7j/4nlNW4o +6GwLI1GpJQXrSPjdscr6bAhR77cYbETKJuFzxokGgeWKrLDiKca5JLNrRBH0pUPC +TEPlcDaMtjNXepUugqD0XBCzYYP2AgWGLnwtbNwDRm41k9V6lS/eINhbfpSQBGq6 +WT0EBXWdN6IOLj3rwaRSg/7Qa9RmjtzG6RJOHSpXqhC8fF6CfaamyfItufUXJ63R +DolUK5X6wK0dmBR4M0KGCqlztft0DbcbMBnEWg4cJ7faGND/isgFuvGqHKI3t+ZI +pEYslOqodmJHixBTB0hXbOKSTbauBcvcwUpej6w9GU7C7WB1K9vBykLVAgMBAAGj +YzBhMB8GA1UdIwQYMBaAFHKs5DN5qkWH9v2sHZ7Wxy+G2CQ5MB0GA1UdDgQWBBRy +rOQzeapFh/b9rB2e1scvhtgkOTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUw +AwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAoDtZpwmUPjaE0n4vOaWWl/oRrfxn83EJ +8rKJhGdEr7nv7ZbsnGTbMjBvZ5qsfl+yqwE2foH65IRe0qw24GtixX1LDoJt0nZi +0f6X+J8wfBj5tFJ3gh1229MdqfDBmgC9bXXYfef6xzijnHDoRnkDry5023X4blMM +A8iZGok1GTzTyVR8qPAs5m4HeW9q4ebqkYJpCh3DflminmtGFZhb069GHWLIzoBS +SRE/yQQSwxN8PzuKlts8oB4KtItUsiRnDe+Cy748fdHif64W1lZYudogsYMVoe+K +TTJvQS8TUoKU1xrBeKJR3Stwbbca+few4GeXVtt8YVMJAygCQMez2P2ccGrGKMOF +6eLtGpOg3kuYooQ+BXcBlj37tCAPnHICehIv1aO6UXivKitEZU61/Qrowc15h2Er +3oBXRb9n8ZuRXqWk7FlIEA04x7D6w0RtBPV4UBySllva9bguulvP5fBqnUsvWHMt +Ty3EHD70sz+rFQ47GUGKpMFXEmZxTPpT41frYpUJnlTd0cI8Vzy9OK2YZLe4A5pT +VmBds9hCG1xLEooc6+t9xnppxyd/pPiL8uSUZodL6ZQHCRJ5irLrdATczvREWeAW +ysUsWNc8e89ihmpQfTU2Zqf7N+cox9jQraVplI/owd8k+BsHMYeB2F326CjYSlKA +rBPuUBQemMc= +-----END CERTIFICATE----- + +# Issuer: CN=D-TRUST BR Root CA 1 2020 O=D-Trust GmbH +# Subject: CN=D-TRUST BR Root CA 1 2020 O=D-Trust GmbH +# Label: "D-TRUST BR Root CA 1 2020" +# Serial: 165870826978392376648679885835942448534 +# MD5 Fingerprint: b5:aa:4b:d5:ed:f7:e3:55:2e:8f:72:0a:f3:75:b8:ed +# SHA1 Fingerprint: 1f:5b:98:f0:e3:b5:f7:74:3c:ed:e6:b0:36:7d:32:cd:f4:09:41:67 +# SHA256 Fingerprint: e5:9a:aa:81:60:09:c2:2b:ff:5b:25:ba:d3:7d:f3:06:f0:49:79:7c:1f:81:d8:5a:b0:89:e6:57:bd:8f:00:44 +-----BEGIN CERTIFICATE----- +MIIC2zCCAmCgAwIBAgIQfMmPK4TX3+oPyWWa00tNljAKBggqhkjOPQQDAzBIMQsw +CQYDVQQGEwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRS +VVNUIEJSIFJvb3QgQ0EgMSAyMDIwMB4XDTIwMDIxMTA5NDUwMFoXDTM1MDIxMTA5 +NDQ1OVowSDELMAkGA1UEBhMCREUxFTATBgNVBAoTDEQtVHJ1c3QgR21iSDEiMCAG +A1UEAxMZRC1UUlVTVCBCUiBSb290IENBIDEgMjAyMDB2MBAGByqGSM49AgEGBSuB +BAAiA2IABMbLxyjR+4T1mu9CFCDhQ2tuda38KwOE1HaTJddZO0Flax7mNCq7dPYS +zuht56vkPE4/RAiLzRZxy7+SmfSk1zxQVFKQhYN4lGdnoxwJGT11NIXe7WB9xwy0 +QVK5buXuQqOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFHOREKv/ +VbNafAkl1bK6CKBrqx9tMA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6g +PKA6hjhodHRwOi8vY3JsLmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X2JyX3Jvb3Rf +Y2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVjdG9yeS5kLXRydXN0Lm5l +dC9DTj1ELVRSVVNUJTIwQlIlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxPPUQtVHJ1 +c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjO +PQQDAwNpADBmAjEAlJAtE/rhY/hhY+ithXhUkZy4kzg+GkHaQBZTQgjKL47xPoFW +wKrY7RjEsK70PvomAjEA8yjixtsrmfu3Ubgko6SUeho/5jbiA1czijDLgsfWFBHV +dWNbFJWcHwHP2NVypw87 +-----END CERTIFICATE----- + +# Issuer: CN=D-TRUST EV Root CA 1 2020 O=D-Trust GmbH +# Subject: CN=D-TRUST EV Root CA 1 2020 O=D-Trust GmbH +# Label: "D-TRUST EV Root CA 1 2020" +# Serial: 126288379621884218666039612629459926992 +# MD5 Fingerprint: 8c:2d:9d:70:9f:48:99:11:06:11:fb:e9:cb:30:c0:6e +# SHA1 Fingerprint: 61:db:8c:21:59:69:03:90:d8:7c:9c:12:86:54:cf:9d:3d:f4:dd:07 +# SHA256 Fingerprint: 08:17:0d:1a:a3:64:53:90:1a:2f:95:92:45:e3:47:db:0c:8d:37:ab:aa:bc:56:b8:1a:a1:00:dc:95:89:70:db +-----BEGIN CERTIFICATE----- +MIIC2zCCAmCgAwIBAgIQXwJB13qHfEwDo6yWjfv/0DAKBggqhkjOPQQDAzBIMQsw +CQYDVQQGEwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRS +VVNUIEVWIFJvb3QgQ0EgMSAyMDIwMB4XDTIwMDIxMTEwMDAwMFoXDTM1MDIxMTA5 +NTk1OVowSDELMAkGA1UEBhMCREUxFTATBgNVBAoTDEQtVHJ1c3QgR21iSDEiMCAG +A1UEAxMZRC1UUlVTVCBFViBSb290IENBIDEgMjAyMDB2MBAGByqGSM49AgEGBSuB +BAAiA2IABPEL3YZDIBnfl4XoIkqbz52Yv7QFJsnL46bSj8WeeHsxiamJrSc8ZRCC +/N/DnU7wMyPE0jL1HLDfMxddxfCxivnvubcUyilKwg+pf3VlSSowZ/Rk99Yad9rD +wpdhQntJraOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFH8QARY3 +OqQo5FD4pPfsazK2/umLMA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6g +PKA6hjhodHRwOi8vY3JsLmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X2V2X3Jvb3Rf +Y2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVjdG9yeS5kLXRydXN0Lm5l +dC9DTj1ELVRSVVNUJTIwRVYlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxPPUQtVHJ1 +c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjO +PQQDAwNpADBmAjEAyjzGKnXCXnViOTYAYFqLwZOZzNnbQTs7h5kXO9XMT8oi96CA +y/m0sRtW9XLS/BnRAjEAkfcwkz8QRitxpNA7RJvAKQIFskF3UfN5Wp6OFKBOQtJb +gfM0agPnIjhQW+0ZT0MW +-----END CERTIFICATE----- + +# Issuer: CN=DigiCert TLS ECC P384 Root G5 O=DigiCert, Inc. +# Subject: CN=DigiCert TLS ECC P384 Root G5 O=DigiCert, Inc. +# Label: "DigiCert TLS ECC P384 Root G5" +# Serial: 13129116028163249804115411775095713523 +# MD5 Fingerprint: d3:71:04:6a:43:1c:db:a6:59:e1:a8:a3:aa:c5:71:ed +# SHA1 Fingerprint: 17:f3:de:5e:9f:0f:19:e9:8e:f6:1f:32:26:6e:20:c4:07:ae:30:ee +# SHA256 Fingerprint: 01:8e:13:f0:77:25:32:cf:80:9b:d1:b1:72:81:86:72:83:fc:48:c6:e1:3b:e9:c6:98:12:85:4a:49:0c:1b:05 +-----BEGIN CERTIFICATE----- +MIICGTCCAZ+gAwIBAgIQCeCTZaz32ci5PhwLBCou8zAKBggqhkjOPQQDAzBOMQsw +CQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJjAkBgNVBAMTHURp +Z2lDZXJ0IFRMUyBFQ0MgUDM4NCBSb290IEc1MB4XDTIxMDExNTAwMDAwMFoXDTQ2 +MDExNDIzNTk1OVowTjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJ +bmMuMSYwJAYDVQQDEx1EaWdpQ2VydCBUTFMgRUNDIFAzODQgUm9vdCBHNTB2MBAG +ByqGSM49AgEGBSuBBAAiA2IABMFEoc8Rl1Ca3iOCNQfN0MsYndLxf3c1TzvdlHJS +7cI7+Oz6e2tYIOyZrsn8aLN1udsJ7MgT9U7GCh1mMEy7H0cKPGEQQil8pQgO4CLp +0zVozptjn4S1mU1YoI71VOeVyaNCMEAwHQYDVR0OBBYEFMFRRVBZqz7nLFr6ICIS +B4CIfBFqMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49 +BAMDA2gAMGUCMQCJao1H5+z8blUD2WdsJk6Dxv3J+ysTvLd6jLRl0mlpYxNjOyZQ +LgGheQaRnUi/wr4CMEfDFXuxoJGZSZOoPHzoRgaLLPIxAJSdYsiJvRmEFOml+wG4 +DXZDjC5Ty3zfDBeWUA== +-----END CERTIFICATE----- + +# Issuer: CN=DigiCert TLS RSA4096 Root G5 O=DigiCert, Inc. +# Subject: CN=DigiCert TLS RSA4096 Root G5 O=DigiCert, Inc. +# Label: "DigiCert TLS RSA4096 Root G5" +# Serial: 11930366277458970227240571539258396554 +# MD5 Fingerprint: ac:fe:f7:34:96:a9:f2:b3:b4:12:4b:e4:27:41:6f:e1 +# SHA1 Fingerprint: a7:88:49:dc:5d:7c:75:8c:8c:de:39:98:56:b3:aa:d0:b2:a5:71:35 +# SHA256 Fingerprint: 37:1a:00:dc:05:33:b3:72:1a:7e:eb:40:e8:41:9e:70:79:9d:2b:0a:0f:2c:1d:80:69:31:65:f7:ce:c4:ad:75 +-----BEGIN CERTIFICATE----- +MIIFZjCCA06gAwIBAgIQCPm0eKj6ftpqMzeJ3nzPijANBgkqhkiG9w0BAQwFADBN +MQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMT +HERpZ2lDZXJ0IFRMUyBSU0E0MDk2IFJvb3QgRzUwHhcNMjEwMTE1MDAwMDAwWhcN +NDYwMTE0MjM1OTU5WjBNMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQs +IEluYy4xJTAjBgNVBAMTHERpZ2lDZXJ0IFRMUyBSU0E0MDk2IFJvb3QgRzUwggIi +MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCz0PTJeRGd/fxmgefM1eS87IE+ +ajWOLrfn3q/5B03PMJ3qCQuZvWxX2hhKuHisOjmopkisLnLlvevxGs3npAOpPxG0 +2C+JFvuUAT27L/gTBaF4HI4o4EXgg/RZG5Wzrn4DReW+wkL+7vI8toUTmDKdFqgp +wgscONyfMXdcvyej/Cestyu9dJsXLfKB2l2w4SMXPohKEiPQ6s+d3gMXsUJKoBZM +pG2T6T867jp8nVid9E6P/DsjyG244gXazOvswzH016cpVIDPRFtMbzCe88zdH5RD +nU1/cHAN1DrRN/BsnZvAFJNY781BOHW8EwOVfH/jXOnVDdXifBBiqmvwPXbzP6Po +sMH976pXTayGpxi0KcEsDr9kvimM2AItzVwv8n/vFfQMFawKsPHTDU9qTXeXAaDx +Zre3zu/O7Oyldcqs4+Fj97ihBMi8ez9dLRYiVu1ISf6nL3kwJZu6ay0/nTvEF+cd +Lvvyz6b84xQslpghjLSR6Rlgg/IwKwZzUNWYOwbpx4oMYIwo+FKbbuH2TbsGJJvX +KyY//SovcfXWJL5/MZ4PbeiPT02jP/816t9JXkGPhvnxd3lLG7SjXi/7RgLQZhNe +XoVPzthwiHvOAbWWl9fNff2C+MIkwcoBOU+NosEUQB+cZtUMCUbW8tDRSHZWOkPL +tgoRObqME2wGtZ7P6wIDAQABo0IwQDAdBgNVHQ4EFgQUUTMc7TZArxfTJc1paPKv +TiM+s0EwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcN +AQEMBQADggIBAGCmr1tfV9qJ20tQqcQjNSH/0GEwhJG3PxDPJY7Jv0Y02cEhJhxw +GXIeo8mH/qlDZJY6yFMECrZBu8RHANmfGBg7sg7zNOok992vIGCukihfNudd5N7H +PNtQOa27PShNlnx2xlv0wdsUpasZYgcYQF+Xkdycx6u1UQ3maVNVzDl92sURVXLF +O4uJ+DQtpBflF+aZfTCIITfNMBc9uPK8qHWgQ9w+iUuQrm0D4ByjoJYJu32jtyoQ +REtGBzRj7TG5BO6jm5qu5jF49OokYTurWGT/u4cnYiWB39yhL/btp/96j1EuMPik +AdKFOV8BmZZvWltwGUb+hmA+rYAQCd05JS9Yf7vSdPD3Rh9GOUrYU9DzLjtxpdRv +/PNn5AeP3SYZ4Y1b+qOTEZvpyDrDVWiakuFSdjjo4bq9+0/V77PnSIMx8IIh47a+ +p6tv75/fTM8BuGJqIz3nCU2AG3swpMPdB380vqQmsvZB6Akd4yCYqjdP//fx4ilw +MUc/dNAUFvohigLVigmUdy7yWSiLfFCSCmZ4OIN1xLVaqBHG5cGdZlXPU8Sv13WF +qUITVuwhd4GTWgzqltlJyqEI8pc7bZsEGCREjnwB8twl2F6GmrE52/WRMmrRpnCK +ovfepEWFJqgejF0pW8hL2JpqA15w8oVPbEtoL8pU9ozaMv7Da4M/OMZ+ +-----END CERTIFICATE----- + +# Issuer: CN=Certainly Root R1 O=Certainly +# Subject: CN=Certainly Root R1 O=Certainly +# Label: "Certainly Root R1" +# Serial: 188833316161142517227353805653483829216 +# MD5 Fingerprint: 07:70:d4:3e:82:87:a0:fa:33:36:13:f4:fa:33:e7:12 +# SHA1 Fingerprint: a0:50:ee:0f:28:71:f4:27:b2:12:6d:6f:50:96:25:ba:cc:86:42:af +# SHA256 Fingerprint: 77:b8:2c:d8:64:4c:43:05:f7:ac:c5:cb:15:6b:45:67:50:04:03:3d:51:c6:0c:62:02:a8:e0:c3:34:67:d3:a0 +-----BEGIN CERTIFICATE----- +MIIFRzCCAy+gAwIBAgIRAI4P+UuQcWhlM1T01EQ5t+AwDQYJKoZIhvcNAQELBQAw +PTELMAkGA1UEBhMCVVMxEjAQBgNVBAoTCUNlcnRhaW5seTEaMBgGA1UEAxMRQ2Vy +dGFpbmx5IFJvb3QgUjEwHhcNMjEwNDAxMDAwMDAwWhcNNDYwNDAxMDAwMDAwWjA9 +MQswCQYDVQQGEwJVUzESMBAGA1UEChMJQ2VydGFpbmx5MRowGAYDVQQDExFDZXJ0 +YWlubHkgUm9vdCBSMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANA2 +1B/q3avk0bbm+yLA3RMNansiExyXPGhjZjKcA7WNpIGD2ngwEc/csiu+kr+O5MQT +vqRoTNoCaBZ0vrLdBORrKt03H2As2/X3oXyVtwxwhi7xOu9S98zTm/mLvg7fMbed +aFySpvXl8wo0tf97ouSHocavFwDvA5HtqRxOcT3Si2yJ9HiG5mpJoM610rCrm/b0 +1C7jcvk2xusVtyWMOvwlDbMicyF0yEqWYZL1LwsYpfSt4u5BvQF5+paMjRcCMLT5 +r3gajLQ2EBAHBXDQ9DGQilHFhiZ5shGIXsXwClTNSaa/ApzSRKft43jvRl5tcdF5 +cBxGX1HpyTfcX35pe0HfNEXgO4T0oYoKNp43zGJS4YkNKPl6I7ENPT2a/Z2B7yyQ +wHtETrtJ4A5KVpK8y7XdeReJkd5hiXSSqOMyhb5OhaRLWcsrxXiOcVTQAjeZjOVJ +6uBUcqQRBi8LjMFbvrWhsFNunLhgkR9Za/kt9JQKl7XsxXYDVBtlUrpMklZRNaBA +2CnbrlJ2Oy0wQJuK0EJWtLeIAaSHO1OWzaMWj/Nmqhexx2DgwUMFDO6bW2BvBlyH +Wyf5QBGenDPBt+U1VwV/J84XIIwc/PH72jEpSe31C4SnT8H2TsIonPru4K8H+zMR +eiFPCyEQtkA6qyI6BJyLm4SGcprSp6XEtHWRqSsjAgMBAAGjQjBAMA4GA1UdDwEB +/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTgqj8ljZ9EXME66C6u +d0yEPmcM9DANBgkqhkiG9w0BAQsFAAOCAgEAuVevuBLaV4OPaAszHQNTVfSVcOQr +PbA56/qJYv331hgELyE03fFo8NWWWt7CgKPBjcZq91l3rhVkz1t5BXdm6ozTaw3d +8VkswTOlMIAVRQdFGjEitpIAq5lNOo93r6kiyi9jyhXWx8bwPWz8HA2YEGGeEaIi +1wrykXprOQ4vMMM2SZ/g6Q8CRFA3lFV96p/2O7qUpUzpvD5RtOjKkjZUbVwlKNrd +rRT90+7iIgXr0PK3aBLXWopBGsaSpVo7Y0VPv+E6dyIvXL9G+VoDhRNCX8reU9di +taY1BMJH/5n9hN9czulegChB8n3nHpDYT3Y+gjwN/KUD+nsa2UUeYNrEjvn8K8l7 +lcUq/6qJ34IxD3L/DCfXCh5WAFAeDJDBlrXYFIW7pw0WwfgHJBu6haEaBQmAupVj +yTrsJZ9/nbqkRxWbRHDxakvWOF5D8xh+UG7pWijmZeZ3Gzr9Hb4DJqPb1OG7fpYn +Kx3upPvaJVQTA945xsMfTZDsjxtK0hzthZU4UHlG1sGQUDGpXJpuHfUzVounmdLy +yCwzk5Iwx06MZTMQZBf9JBeW0Y3COmor6xOLRPIh80oat3df1+2IpHLlOR+Vnb5n +wXARPbv0+Em34yaXOp/SX3z7wJl8OSngex2/DaeP0ik0biQVy96QXr8axGbqwua6 +OV+KmalBWQewLK8= +-----END CERTIFICATE----- + +# Issuer: CN=Certainly Root E1 O=Certainly +# Subject: CN=Certainly Root E1 O=Certainly +# Label: "Certainly Root E1" +# Serial: 8168531406727139161245376702891150584 +# MD5 Fingerprint: 0a:9e:ca:cd:3e:52:50:c6:36:f3:4b:a3:ed:a7:53:e9 +# SHA1 Fingerprint: f9:e1:6d:dc:01:89:cf:d5:82:45:63:3e:c5:37:7d:c2:eb:93:6f:2b +# SHA256 Fingerprint: b4:58:5f:22:e4:ac:75:6a:4e:86:12:a1:36:1c:5d:9d:03:1a:93:fd:84:fe:bb:77:8f:a3:06:8b:0f:c4:2d:c2 +-----BEGIN CERTIFICATE----- +MIIB9zCCAX2gAwIBAgIQBiUzsUcDMydc+Y2aub/M+DAKBggqhkjOPQQDAzA9MQsw +CQYDVQQGEwJVUzESMBAGA1UEChMJQ2VydGFpbmx5MRowGAYDVQQDExFDZXJ0YWlu +bHkgUm9vdCBFMTAeFw0yMTA0MDEwMDAwMDBaFw00NjA0MDEwMDAwMDBaMD0xCzAJ +BgNVBAYTAlVTMRIwEAYDVQQKEwlDZXJ0YWlubHkxGjAYBgNVBAMTEUNlcnRhaW5s +eSBSb290IEUxMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE3m/4fxzf7flHh4axpMCK ++IKXgOqPyEpeKn2IaKcBYhSRJHpcnqMXfYqGITQYUBsQ3tA3SybHGWCA6TS9YBk2 +QNYphwk8kXr2vBMj3VlOBF7PyAIcGFPBMdjaIOlEjeR2o0IwQDAOBgNVHQ8BAf8E +BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ygYy2R17ikq6+2uI1g4 +hevIIgcwCgYIKoZIzj0EAwMDaAAwZQIxALGOWiDDshliTd6wT99u0nCK8Z9+aozm +ut6Dacpps6kFtZaSF4fC0urQe87YQVt8rgIwRt7qy12a7DLCZRawTDBcMPPaTnOG +BtjOiQRINzf43TNRnXCve1XYAS59BWQOhriR +-----END CERTIFICATE----- + +# Issuer: CN=Security Communication ECC RootCA1 O=SECOM Trust Systems CO.,LTD. +# Subject: CN=Security Communication ECC RootCA1 O=SECOM Trust Systems CO.,LTD. +# Label: "Security Communication ECC RootCA1" +# Serial: 15446673492073852651 +# MD5 Fingerprint: 7e:43:b0:92:68:ec:05:43:4c:98:ab:5d:35:2e:7e:86 +# SHA1 Fingerprint: b8:0e:26:a9:bf:d2:b2:3b:c0:ef:46:c9:ba:c7:bb:f6:1d:0d:41:41 +# SHA256 Fingerprint: e7:4f:bd:a5:5b:d5:64:c4:73:a3:6b:44:1a:a7:99:c8:a6:8e:07:74:40:e8:28:8b:9f:a1:e5:0e:4b:ba:ca:11 +-----BEGIN CERTIFICATE----- +MIICODCCAb6gAwIBAgIJANZdm7N4gS7rMAoGCCqGSM49BAMDMGExCzAJBgNVBAYT +AkpQMSUwIwYDVQQKExxTRUNPTSBUcnVzdCBTeXN0ZW1zIENPLixMVEQuMSswKQYD +VQQDEyJTZWN1cml0eSBDb21tdW5pY2F0aW9uIEVDQyBSb290Q0ExMB4XDTE2MDYx +NjA1MTUyOFoXDTM4MDExODA1MTUyOFowYTELMAkGA1UEBhMCSlAxJTAjBgNVBAoT +HFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKzApBgNVBAMTIlNlY3VyaXR5 +IENvbW11bmljYXRpb24gRUNDIFJvb3RDQTEwdjAQBgcqhkjOPQIBBgUrgQQAIgNi +AASkpW9gAwPDvTH00xecK4R1rOX9PVdu12O/5gSJko6BnOPpR27KkBLIE+Cnnfdl +dB9sELLo5OnvbYUymUSxXv3MdhDYW72ixvnWQuRXdtyQwjWpS4g8EkdtXP9JTxpK +ULGjQjBAMB0GA1UdDgQWBBSGHOf+LaVKiwj+KBH6vqNm+GBZLzAOBgNVHQ8BAf8E +BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjAVXUI9/Lbu +9zuxNuie9sRGKEkz0FhDKmMpzE2xtHqiuQ04pV1IKv3LsnNdo4gIxwwCMQDAqy0O +be0YottT6SXbVQjgUMzfRGEWgqtJsLKB7HOHeLRMsmIbEvoWTSVLY70eN9k= +-----END CERTIFICATE----- + +# Issuer: CN=BJCA Global Root CA1 O=BEIJING CERTIFICATE AUTHORITY +# Subject: CN=BJCA Global Root CA1 O=BEIJING CERTIFICATE AUTHORITY +# Label: "BJCA Global Root CA1" +# Serial: 113562791157148395269083148143378328608 +# MD5 Fingerprint: 42:32:99:76:43:33:36:24:35:07:82:9b:28:f9:d0:90 +# SHA1 Fingerprint: d5:ec:8d:7b:4c:ba:79:f4:e7:e8:cb:9d:6b:ae:77:83:10:03:21:6a +# SHA256 Fingerprint: f3:89:6f:88:fe:7c:0a:88:27:66:a7:fa:6a:d2:74:9f:b5:7a:7f:3e:98:fb:76:9c:1f:a7:b0:9c:2c:44:d5:ae +-----BEGIN CERTIFICATE----- +MIIFdDCCA1ygAwIBAgIQVW9l47TZkGobCdFsPsBsIDANBgkqhkiG9w0BAQsFADBU +MQswCQYDVQQGEwJDTjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRI +T1JJVFkxHTAbBgNVBAMMFEJKQ0EgR2xvYmFsIFJvb3QgQ0ExMB4XDTE5MTIxOTAz +MTYxN1oXDTQ0MTIxMjAzMTYxN1owVDELMAkGA1UEBhMCQ04xJjAkBgNVBAoMHUJF +SUpJTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQDDBRCSkNBIEdsb2Jh +bCBSb290IENBMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAPFmCL3Z +xRVhy4QEQaVpN3cdwbB7+sN3SJATcmTRuHyQNZ0YeYjjlwE8R4HyDqKYDZ4/N+AZ +spDyRhySsTphzvq3Rp4Dhtczbu33RYx2N95ulpH3134rhxfVizXuhJFyV9xgw8O5 +58dnJCNPYwpj9mZ9S1WnP3hkSWkSl+BMDdMJoDIwOvqfwPKcxRIqLhy1BDPapDgR +at7GGPZHOiJBhyL8xIkoVNiMpTAK+BcWyqw3/XmnkRd4OJmtWO2y3syJfQOcs4ll +5+M7sSKGjwZteAf9kRJ/sGsciQ35uMt0WwfCyPQ10WRjeulumijWML3mG90Vr4Tq +nMfK9Q7q8l0ph49pczm+LiRvRSGsxdRpJQaDrXpIhRMsDQa4bHlW/KNnMoH1V6XK +V0Jp6VwkYe/iMBhORJhVb3rCk9gZtt58R4oRTklH2yiUAguUSiz5EtBP6DF+bHq/ +pj+bOT0CFqMYs2esWz8sgytnOYFcuX6U1WTdno9uruh8W7TXakdI136z1C2OVnZO +z2nxbkRs1CTqjSShGL+9V/6pmTW12xB3uD1IutbB5/EjPtffhZ0nPNRAvQoMvfXn +jSXWgXSHRtQpdaJCbPdzied9v3pKH9MiyRVVz99vfFXQpIsHETdfg6YmV6YBW37+ +WGgHqel62bno/1Afq8K0wM7o6v0PvY1NuLxxAgMBAAGjQjBAMB0GA1UdDgQWBBTF +7+3M2I0hxkjk49cULqcWk+WYATAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE +AwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAUoKsITQfI/Ki2Pm4rzc2IInRNwPWaZ+4 +YRC6ojGYWUfo0Q0lHhVBDOAqVdVXUsv45Mdpox1NcQJeXyFFYEhcCY5JEMEE3Kli +awLwQ8hOnThJdMkycFRtwUf8jrQ2ntScvd0g1lPJGKm1Vrl2i5VnZu69mP6u775u ++2D2/VnGKhs/I0qUJDAnyIm860Qkmss9vk/Ves6OF8tiwdneHg56/0OGNFK8YT88 +X7vZdrRTvJez/opMEi4r89fO4aL/3Xtw+zuhTaRjAv04l5U/BXCga99igUOLtFkN +SoxUnMW7gZ/NfaXvCyUeOiDbHPwfmGcCCtRzRBPbUYQaVQNW4AB+dAb/OMRyHdOo +P2gxXdMJxy6MW2Pg6Nwe0uxhHvLe5e/2mXZgLR6UcnHGCyoyx5JO1UbXHfmpGQrI ++pXObSOYqgs4rZpWDW+N8TEAiMEXnM0ZNjX+VVOg4DwzX5Ze4jLp3zO7Bkqp2IRz +znfSxqxx4VyjHQy7Ct9f4qNx2No3WqB4K/TUfet27fJhcKVlmtOJNBir+3I+17Q9 +eVzYH6Eze9mCUAyTF6ps3MKCuwJXNq+YJyo5UOGwifUll35HaBC07HPKs5fRJNz2 +YqAo07WjuGS3iGJCz51TzZm+ZGiPTx4SSPfSKcOYKMryMguTjClPPGAyzQWWYezy +r/6zcCwupvI= +-----END CERTIFICATE----- + +# Issuer: CN=BJCA Global Root CA2 O=BEIJING CERTIFICATE AUTHORITY +# Subject: CN=BJCA Global Root CA2 O=BEIJING CERTIFICATE AUTHORITY +# Label: "BJCA Global Root CA2" +# Serial: 58605626836079930195615843123109055211 +# MD5 Fingerprint: 5e:0a:f6:47:5f:a6:14:e8:11:01:95:3f:4d:01:eb:3c +# SHA1 Fingerprint: f4:27:86:eb:6e:b8:6d:88:31:67:02:fb:ba:66:a4:53:00:aa:7a:a6 +# SHA256 Fingerprint: 57:4d:f6:93:1e:27:80:39:66:7b:72:0a:fd:c1:60:0f:c2:7e:b6:6d:d3:09:29:79:fb:73:85:64:87:21:28:82 +-----BEGIN CERTIFICATE----- +MIICJTCCAaugAwIBAgIQLBcIfWQqwP6FGFkGz7RK6zAKBggqhkjOPQQDAzBUMQsw +CQYDVQQGEwJDTjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRIT1JJ +VFkxHTAbBgNVBAMMFEJKQ0EgR2xvYmFsIFJvb3QgQ0EyMB4XDTE5MTIxOTAzMTgy +MVoXDTQ0MTIxMjAzMTgyMVowVDELMAkGA1UEBhMCQ04xJjAkBgNVBAoMHUJFSUpJ +TkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQDDBRCSkNBIEdsb2JhbCBS +b290IENBMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABJ3LgJGNU2e1uVCxA/jlSR9B +IgmwUVJY1is0j8USRhTFiy8shP8sbqjV8QnjAyEUxEM9fMEsxEtqSs3ph+B99iK+ ++kpRuDCK/eHeGBIK9ke35xe/J4rUQUyWPGCWwf0VHKNCMEAwHQYDVR0OBBYEFNJK +sVF/BvDRgh9Obl+rg/xI1LCRMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD +AgEGMAoGCCqGSM49BAMDA2gAMGUCMBq8W9f+qdJUDkpd0m2xQNz0Q9XSSpkZElaA +94M04TVOSG0ED1cxMDAtsaqdAzjbBgIxAMvMh1PLet8gUXOQwKhbYdDFUDn9hf7B +43j4ptZLvZuHjw/l1lOWqzzIQNph91Oj9w== +-----END CERTIFICATE----- + +# Issuer: CN=Sectigo Public Server Authentication Root E46 O=Sectigo Limited +# Subject: CN=Sectigo Public Server Authentication Root E46 O=Sectigo Limited +# Label: "Sectigo Public Server Authentication Root E46" +# Serial: 88989738453351742415770396670917916916 +# MD5 Fingerprint: 28:23:f8:b2:98:5c:37:16:3b:3e:46:13:4e:b0:b3:01 +# SHA1 Fingerprint: ec:8a:39:6c:40:f0:2e:bc:42:75:d4:9f:ab:1c:1a:5b:67:be:d2:9a +# SHA256 Fingerprint: c9:0f:26:f0:fb:1b:40:18:b2:22:27:51:9b:5c:a2:b5:3e:2c:a5:b3:be:5c:f1:8e:fe:1b:ef:47:38:0c:53:83 +-----BEGIN CERTIFICATE----- +MIICOjCCAcGgAwIBAgIQQvLM2htpN0RfFf51KBC49DAKBggqhkjOPQQDAzBfMQsw +CQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1T +ZWN0aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwHhcN +MjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1OTU5WjBfMQswCQYDVQQGEwJHQjEYMBYG +A1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1YmxpYyBT +ZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwdjAQBgcqhkjOPQIBBgUrgQQA +IgNiAAR2+pmpbiDt+dd34wc7qNs9Xzjoq1WmVk/WSOrsfy2qw7LFeeyZYX8QeccC +WvkEN/U0NSt3zn8gj1KjAIns1aeibVvjS5KToID1AZTc8GgHHs3u/iVStSBDHBv+ +6xnOQ6OjQjBAMB0GA1UdDgQWBBTRItpMWfFLXyY4qp3W7usNw/upYTAOBgNVHQ8B +Af8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNnADBkAjAn7qRa +qCG76UeXlImldCBteU/IvZNeWBj7LRoAasm4PdCkT0RHlAFWovgzJQxC36oCMB3q +4S6ILuH5px0CMk7yn2xVdOOurvulGu7t0vzCAxHrRVxgED1cf5kDW21USAGKcw== +-----END CERTIFICATE----- + +# Issuer: CN=Sectigo Public Server Authentication Root R46 O=Sectigo Limited +# Subject: CN=Sectigo Public Server Authentication Root R46 O=Sectigo Limited +# Label: "Sectigo Public Server Authentication Root R46" +# Serial: 156256931880233212765902055439220583700 +# MD5 Fingerprint: 32:10:09:52:00:d5:7e:6c:43:df:15:c0:b1:16:93:e5 +# SHA1 Fingerprint: ad:98:f9:f3:e4:7d:75:3b:65:d4:82:b3:a4:52:17:bb:6e:f5:e4:38 +# SHA256 Fingerprint: 7b:b6:47:a6:2a:ee:ac:88:bf:25:7a:a5:22:d0:1f:fe:a3:95:e0:ab:45:c7:3f:93:f6:56:54:ec:38:f2:5a:06 +-----BEGIN CERTIFICATE----- +MIIFijCCA3KgAwIBAgIQdY39i658BwD6qSWn4cetFDANBgkqhkiG9w0BAQwFADBf +MQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQD +Ey1TZWN0aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYw +HhcNMjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1OTU5WjBfMQswCQYDVQQGEwJHQjEY +MBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1Ymxp +YyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYwggIiMA0GCSqGSIb3DQEB +AQUAA4ICDwAwggIKAoICAQCTvtU2UnXYASOgHEdCSe5jtrch/cSV1UgrJnwUUxDa +ef0rty2k1Cz66jLdScK5vQ9IPXtamFSvnl0xdE8H/FAh3aTPaE8bEmNtJZlMKpnz +SDBh+oF8HqcIStw+KxwfGExxqjWMrfhu6DtK2eWUAtaJhBOqbchPM8xQljeSM9xf +iOefVNlI8JhD1mb9nxc4Q8UBUQvX4yMPFF1bFOdLvt30yNoDN9HWOaEhUTCDsG3X +ME6WW5HwcCSrv0WBZEMNvSE6Lzzpng3LILVCJ8zab5vuZDCQOc2TZYEhMbUjUDM3 +IuM47fgxMMxF/mL50V0yeUKH32rMVhlATc6qu/m1dkmU8Sf4kaWD5QazYw6A3OAS +VYCmO2a0OYctyPDQ0RTp5A1NDvZdV3LFOxxHVp3i1fuBYYzMTYCQNFu31xR13NgE +SJ/AwSiItOkcyqex8Va3e0lMWeUgFaiEAin6OJRpmkkGj80feRQXEgyDet4fsZfu ++Zd4KKTIRJLpfSYFplhym3kT2BFfrsU4YjRosoYwjviQYZ4ybPUHNs2iTG7sijbt +8uaZFURww3y8nDnAtOFr94MlI1fZEoDlSfB1D++N6xybVCi0ITz8fAr/73trdf+L +HaAZBav6+CuBQug4urv7qv094PPK306Xlynt8xhW6aWWrL3DkJiy4Pmi1KZHQ3xt +zwIDAQABo0IwQDAdBgNVHQ4EFgQUVnNYZJX5khqwEioEYnmhQBWIIUkwDgYDVR0P +AQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAC9c +mTz8Bl6MlC5w6tIyMY208FHVvArzZJ8HXtXBc2hkeqK5Duj5XYUtqDdFqij0lgVQ +YKlJfp/imTYpE0RHap1VIDzYm/EDMrraQKFz6oOht0SmDpkBm+S8f74TlH7Kph52 +gDY9hAaLMyZlbcp+nv4fjFg4exqDsQ+8FxG75gbMY/qB8oFM2gsQa6H61SilzwZA +Fv97fRheORKkU55+MkIQpiGRqRxOF3yEvJ+M0ejf5lG5Nkc/kLnHvALcWxxPDkjB +JYOcCj+esQMzEhonrPcibCTRAUH4WAP+JWgiH5paPHxsnnVI84HxZmduTILA7rpX +DhjvLpr3Etiga+kFpaHpaPi8TD8SHkXoUsCjvxInebnMMTzD9joiFgOgyY9mpFui +TdaBJQbpdqQACj7LzTWb4OE4y2BThihCQRxEV+ioratF4yUQvNs+ZUH7G6aXD+u5 +dHn5HrwdVw1Hr8Mvn4dGp+smWg9WY7ViYG4A++MnESLn/pmPNPW56MORcr3Ywx65 +LvKRRFHQV80MNNVIIb/bE/FmJUNS0nAiNs2fxBx1IK1jcmMGDw4nztJqDby1ORrp +0XZ60Vzk50lJLVU3aPAaOpg+VBeHVOmmJ1CJeyAvP/+/oYtKR5j/K3tJPsMpRmAY +QqszKbrAKbkTidOIijlBO8n9pu0f9GBj39ItVQGL +-----END CERTIFICATE----- + +# Issuer: CN=SSL.com TLS RSA Root CA 2022 O=SSL Corporation +# Subject: CN=SSL.com TLS RSA Root CA 2022 O=SSL Corporation +# Label: "SSL.com TLS RSA Root CA 2022" +# Serial: 148535279242832292258835760425842727825 +# MD5 Fingerprint: d8:4e:c6:59:30:d8:fe:a0:d6:7a:5a:2c:2c:69:78:da +# SHA1 Fingerprint: ec:2c:83:40:72:af:26:95:10:ff:0e:f2:03:ee:31:70:f6:78:9d:ca +# SHA256 Fingerprint: 8f:af:7d:2e:2c:b4:70:9b:b8:e0:b3:36:66:bf:75:a5:dd:45:b5:de:48:0f:8e:a8:d4:bf:e6:be:bc:17:f2:ed +-----BEGIN CERTIFICATE----- +MIIFiTCCA3GgAwIBAgIQb77arXO9CEDii02+1PdbkTANBgkqhkiG9w0BAQsFADBO +MQswCQYDVQQGEwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQD +DBxTU0wuY29tIFRMUyBSU0EgUm9vdCBDQSAyMDIyMB4XDTIyMDgyNTE2MzQyMloX +DTQ2MDgxOTE2MzQyMVowTjELMAkGA1UEBhMCVVMxGDAWBgNVBAoMD1NTTCBDb3Jw +b3JhdGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgUlNBIFJvb3QgQ0EgMjAyMjCC +AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANCkCXJPQIgSYT41I57u9nTP +L3tYPc48DRAokC+X94xI2KDYJbFMsBFMF3NQ0CJKY7uB0ylu1bUJPiYYf7ISf5OY +t6/wNr/y7hienDtSxUcZXXTzZGbVXcdotL8bHAajvI9AI7YexoS9UcQbOcGV0ins +S657Lb85/bRi3pZ7QcacoOAGcvvwB5cJOYF0r/c0WRFXCsJbwST0MXMwgsadugL3 +PnxEX4MN8/HdIGkWCVDi1FW24IBydm5MR7d1VVm0U3TZlMZBrViKMWYPHqIbKUBO +L9975hYsLfy/7PO0+r4Y9ptJ1O4Fbtk085zx7AGL0SDGD6C1vBdOSHtRwvzpXGk3 +R2azaPgVKPC506QVzFpPulJwoxJF3ca6TvvC0PeoUidtbnm1jPx7jMEWTO6Af77w +dr5BUxIzrlo4QqvXDz5BjXYHMtWrifZOZ9mxQnUjbvPNQrL8VfVThxc7wDNY8VLS ++YCk8OjwO4s4zKTGkH8PnP2L0aPP2oOnaclQNtVcBdIKQXTbYxE3waWglksejBYS +d66UNHsef8JmAOSqg+qKkK3ONkRN0VHpvB/zagX9wHQfJRlAUW7qglFA35u5CCoG +AtUjHBPW6dvbxrB6y3snm/vg1UYk7RBLY0ulBY+6uB0rpvqR4pJSvezrZ5dtmi2f +gTIFZzL7SAg/2SW4BCUvAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0j +BBgwFoAU+y437uOEeicuzRk1sTN8/9REQrkwHQYDVR0OBBYEFPsuN+7jhHonLs0Z +NbEzfP/UREK5MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAjYlt +hEUY8U+zoO9opMAdrDC8Z2awms22qyIZZtM7QbUQnRC6cm4pJCAcAZli05bg4vsM +QtfhWsSWTVTNj8pDU/0quOr4ZcoBwq1gaAafORpR2eCNJvkLTqVTJXojpBzOCBvf +R4iyrT7gJ4eLSYwfqUdYe5byiB0YrrPRpgqU+tvT5TgKa3kSM/tKWTcWQA673vWJ +DPFs0/dRa1419dvAJuoSc06pkZCmF8NsLzjUo3KUQyxi4U5cMj29TH0ZR6LDSeeW +P4+a0zvkEdiLA9z2tmBVGKaBUfPhqBVq6+AL8BQx1rmMRTqoENjwuSfr98t67wVy +lrXEj5ZzxOhWc5y8aVFjvO9nHEMaX3cZHxj4HCUp+UmZKbaSPaKDN7EgkaibMOlq +bLQjk2UEqxHzDh1TJElTHaE/nUiSEeJ9DU/1172iWD54nR4fK/4huxoTtrEoZP2w +AgDHbICivRZQIA9ygV/MlP+7mea6kMvq+cYMwq7FGc4zoWtcu358NFcXrfA/rs3q +r5nsLFR+jM4uElZI7xc7P0peYNLcdDa8pUNjyw9bowJWCZ4kLOGGgYz+qxcs+sji +Mho6/4UIyYOf8kpIEFR3N+2ivEC+5BB09+Rbu7nzifmPQdjH5FCQNYA+HLhNkNPU +98OwoX6EyneSMSy4kLGCenROmxMmtNVQZlR4rmA= +-----END CERTIFICATE----- + +# Issuer: CN=SSL.com TLS ECC Root CA 2022 O=SSL Corporation +# Subject: CN=SSL.com TLS ECC Root CA 2022 O=SSL Corporation +# Label: "SSL.com TLS ECC Root CA 2022" +# Serial: 26605119622390491762507526719404364228 +# MD5 Fingerprint: 99:d7:5c:f1:51:36:cc:e9:ce:d9:19:2e:77:71:56:c5 +# SHA1 Fingerprint: 9f:5f:d9:1a:54:6d:f5:0c:71:f0:ee:7a:bd:17:49:98:84:73:e2:39 +# SHA256 Fingerprint: c3:2f:fd:9f:46:f9:36:d1:6c:36:73:99:09:59:43:4b:9a:d6:0a:af:bb:9e:7c:f3:36:54:f1:44:cc:1b:a1:43 +-----BEGIN CERTIFICATE----- +MIICOjCCAcCgAwIBAgIQFAP1q/s3ixdAW+JDsqXRxDAKBggqhkjOPQQDAzBOMQsw +CQYDVQQGEwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQDDBxT +U0wuY29tIFRMUyBFQ0MgUm9vdCBDQSAyMDIyMB4XDTIyMDgyNTE2MzM0OFoXDTQ2 +MDgxOTE2MzM0N1owTjELMAkGA1UEBhMCVVMxGDAWBgNVBAoMD1NTTCBDb3Jwb3Jh +dGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgRUNDIFJvb3QgQ0EgMjAyMjB2MBAG +ByqGSM49AgEGBSuBBAAiA2IABEUpNXP6wrgjzhR9qLFNoFs27iosU8NgCTWyJGYm +acCzldZdkkAZDsalE3D07xJRKF3nzL35PIXBz5SQySvOkkJYWWf9lCcQZIxPBLFN +SeR7T5v15wj4A4j3p8OSSxlUgaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSME +GDAWgBSJjy+j6CugFFR781a4Jl9nOAuc0DAdBgNVHQ4EFgQUiY8vo+groBRUe/NW +uCZfZzgLnNAwDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMDA2gAMGUCMFXjIlbp +15IkWE8elDIPDAI2wv2sdDJO4fscgIijzPvX6yv/N33w7deedWo1dlJF4AIxAMeN +b0Igj762TVntd00pxCAgRWSGOlDGxK0tk/UYfXLtqc/ErFc2KAhl3zx5Zn6g6g== +-----END CERTIFICATE----- + +# Issuer: CN=Atos TrustedRoot Root CA ECC TLS 2021 O=Atos +# Subject: CN=Atos TrustedRoot Root CA ECC TLS 2021 O=Atos +# Label: "Atos TrustedRoot Root CA ECC TLS 2021" +# Serial: 81873346711060652204712539181482831616 +# MD5 Fingerprint: 16:9f:ad:f1:70:ad:79:d6:ed:29:b4:d1:c5:79:70:a8 +# SHA1 Fingerprint: 9e:bc:75:10:42:b3:02:f3:81:f4:f7:30:62:d4:8f:c3:a7:51:b2:dd +# SHA256 Fingerprint: b2:fa:e5:3e:14:cc:d7:ab:92:12:06:47:01:ae:27:9c:1d:89:88:fa:cb:77:5f:a8:a0:08:91:4e:66:39:88:a8 +-----BEGIN CERTIFICATE----- +MIICFTCCAZugAwIBAgIQPZg7pmY9kGP3fiZXOATvADAKBggqhkjOPQQDAzBMMS4w +LAYDVQQDDCVBdG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgRUNDIFRMUyAyMDIxMQ0w +CwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0yMTA0MjIwOTI2MjNaFw00MTA0 +MTcwOTI2MjJaMEwxLjAsBgNVBAMMJUF0b3MgVHJ1c3RlZFJvb3QgUm9vdCBDQSBF +Q0MgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNVBAYTAkRFMHYwEAYHKoZI +zj0CAQYFK4EEACIDYgAEloZYKDcKZ9Cg3iQZGeHkBQcfl+3oZIK59sRxUM6KDP/X +tXa7oWyTbIOiaG6l2b4siJVBzV3dscqDY4PMwL502eCdpO5KTlbgmClBk1IQ1SQ4 +AjJn8ZQSb+/Xxd4u/RmAo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR2 +KCXWfeBmmnoJsmo7jjPXNtNPojAOBgNVHQ8BAf8EBAMCAYYwCgYIKoZIzj0EAwMD +aAAwZQIwW5kp85wxtolrbNa9d+F851F+uDrNozZffPc8dz7kUK2o59JZDCaOMDtu +CCrCp1rIAjEAmeMM56PDr9NJLkaCI2ZdyQAUEv049OGYa3cpetskz2VAv9LcjBHo +9H1/IISpQuQo +-----END CERTIFICATE----- + +# Issuer: CN=Atos TrustedRoot Root CA RSA TLS 2021 O=Atos +# Subject: CN=Atos TrustedRoot Root CA RSA TLS 2021 O=Atos +# Label: "Atos TrustedRoot Root CA RSA TLS 2021" +# Serial: 111436099570196163832749341232207667876 +# MD5 Fingerprint: d4:d3:46:b8:9a:c0:9c:76:5d:9e:3a:c3:b9:99:31:d2 +# SHA1 Fingerprint: 18:52:3b:0d:06:37:e4:d6:3a:df:23:e4:98:fb:5b:16:fb:86:74:48 +# SHA256 Fingerprint: 81:a9:08:8e:a5:9f:b3:64:c5:48:a6:f8:55:59:09:9b:6f:04:05:ef:bf:18:e5:32:4e:c9:f4:57:ba:00:11:2f +-----BEGIN CERTIFICATE----- +MIIFZDCCA0ygAwIBAgIQU9XP5hmTC/srBRLYwiqipDANBgkqhkiG9w0BAQwFADBM +MS4wLAYDVQQDDCVBdG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgUlNBIFRMUyAyMDIx +MQ0wCwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0yMTA0MjIwOTIxMTBaFw00 +MTA0MTcwOTIxMDlaMEwxLjAsBgNVBAMMJUF0b3MgVHJ1c3RlZFJvb3QgUm9vdCBD +QSBSU0EgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNVBAYTAkRFMIICIjAN +BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtoAOxHm9BYx9sKOdTSJNy/BBl01Z +4NH+VoyX8te9j2y3I49f1cTYQcvyAh5x5en2XssIKl4w8i1mx4QbZFc4nXUtVsYv +Ye+W/CBGvevUez8/fEc4BKkbqlLfEzfTFRVOvV98r61jx3ncCHvVoOX3W3WsgFWZ +kmGbzSoXfduP9LVq6hdKZChmFSlsAvFr1bqjM9xaZ6cF4r9lthawEO3NUDPJcFDs +GY6wx/J0W2tExn2WuZgIWWbeKQGb9Cpt0xU6kGpn8bRrZtkh68rZYnxGEFzedUln +nkL5/nWpo63/dgpnQOPF943HhZpZnmKaau1Fh5hnstVKPNe0OwANwI8f4UDErmwh +3El+fsqyjW22v5MvoVw+j8rtgI5Y4dtXz4U2OLJxpAmMkokIiEjxQGMYsluMWuPD +0xeqqxmjLBvk1cbiZnrXghmmOxYsL3GHX0WelXOTwkKBIROW1527k2gV+p2kHYzy +geBYBr3JtuP2iV2J+axEoctr+hbxx1A9JNr3w+SH1VbxT5Aw+kUJWdo0zuATHAR8 +ANSbhqRAvNncTFd+rrcztl524WWLZt+NyteYr842mIycg5kDcPOvdO3GDjbnvezB +c6eUWsuSZIKmAMFwoW4sKeFYV+xafJlrJaSQOoD0IJ2azsct+bJLKZWD6TWNp0lI +pw9MGZHQ9b8Q4HECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU +dEmZ0f+0emhFdcN+tNzMzjkz2ggwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB +DAUAA4ICAQAjQ1MkYlxt/T7Cz1UAbMVWiLkO3TriJQ2VSpfKgInuKs1l+NsW4AmS +4BjHeJi78+xCUvuppILXTdiK/ORO/auQxDh1MoSf/7OwKwIzNsAQkG8dnK/haZPs +o0UvFJ/1TCplQ3IM98P4lYsU84UgYt1UU90s3BiVaU+DR3BAM1h3Egyi61IxHkzJ +qM7F78PRreBrAwA0JrRUITWXAdxfG/F851X6LWh3e9NpzNMOa7pNdkTWwhWaJuyw +xfW70Xp0wmzNxbVe9kzmWy2B27O3Opee7c9GslA9hGCZcbUztVdF5kJHdWoOsAgM +rr3e97sPWD2PAzHoPYJQyi9eDF20l74gNAf0xBLh7tew2VktafcxBPTy+av5EzH4 +AXcOPUIjJsyacmdRIXrMPIWo6iFqO9taPKU0nprALN+AnCng33eU0aKAQv9qTFsR +0PXNor6uzFFcw9VUewyu1rkGd4Di7wcaaMxZUa1+XGdrudviB0JbuAEFWDlN5LuY +o7Ey7Nmj1m+UI/87tyll5gfp77YZ6ufCOB0yiJA8EytuzO+rdwY0d4RPcuSBhPm5 +dDTedk+SKlOxJTnbPP/lPqYO5Wue/9vsL3SD3460s6neFE3/MaNFcyT6lSnMEpcE +oji2jbDwN/zIIX8/syQbPYtuzE2wFg2WHYMfRsCbvUOZ58SWLs5fyQ== +-----END CERTIFICATE----- + +# Issuer: CN=TrustAsia Global Root CA G3 O=TrustAsia Technologies, Inc. +# Subject: CN=TrustAsia Global Root CA G3 O=TrustAsia Technologies, Inc. +# Label: "TrustAsia Global Root CA G3" +# Serial: 576386314500428537169965010905813481816650257167 +# MD5 Fingerprint: 30:42:1b:b7:bb:81:75:35:e4:16:4f:53:d2:94:de:04 +# SHA1 Fingerprint: 63:cf:b6:c1:27:2b:56:e4:88:8e:1c:23:9a:b6:2e:81:47:24:c3:c7 +# SHA256 Fingerprint: e0:d3:22:6a:eb:11:63:c2:e4:8f:f9:be:3b:50:b4:c6:43:1b:e7:bb:1e:ac:c5:c3:6b:5d:5e:c5:09:03:9a:08 +-----BEGIN CERTIFICATE----- +MIIFpTCCA42gAwIBAgIUZPYOZXdhaqs7tOqFhLuxibhxkw8wDQYJKoZIhvcNAQEM +BQAwWjELMAkGA1UEBhMCQ04xJTAjBgNVBAoMHFRydXN0QXNpYSBUZWNobm9sb2dp +ZXMsIEluYy4xJDAiBgNVBAMMG1RydXN0QXNpYSBHbG9iYWwgUm9vdCBDQSBHMzAe +Fw0yMTA1MjAwMjEwMTlaFw00NjA1MTkwMjEwMTlaMFoxCzAJBgNVBAYTAkNOMSUw +IwYDVQQKDBxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMuMSQwIgYDVQQDDBtU +cnVzdEFzaWEgR2xvYmFsIFJvb3QgQ0EgRzMwggIiMA0GCSqGSIb3DQEBAQUAA4IC +DwAwggIKAoICAQDAMYJhkuSUGwoqZdC+BqmHO1ES6nBBruL7dOoKjbmzTNyPtxNS +T1QY4SxzlZHFZjtqz6xjbYdT8PfxObegQ2OwxANdV6nnRM7EoYNl9lA+sX4WuDqK +AtCWHwDNBSHvBm3dIZwZQ0WhxeiAysKtQGIXBsaqvPPW5vxQfmZCHzyLpnl5hkA1 +nyDvP+uLRx+PjsXUjrYsyUQE49RDdT/VP68czH5GX6zfZBCK70bwkPAPLfSIC7Ep +qq+FqklYqL9joDiR5rPmd2jE+SoZhLsO4fWvieylL1AgdB4SQXMeJNnKziyhWTXA +yB1GJ2Faj/lN03J5Zh6fFZAhLf3ti1ZwA0pJPn9pMRJpxx5cynoTi+jm9WAPzJMs +hH/x/Gr8m0ed262IPfN2dTPXS6TIi/n1Q1hPy8gDVI+lhXgEGvNz8teHHUGf59gX +zhqcD0r83ERoVGjiQTz+LISGNzzNPy+i2+f3VANfWdP3kXjHi3dqFuVJhZBFcnAv +kV34PmVACxmZySYgWmjBNb9Pp1Hx2BErW+Canig7CjoKH8GB5S7wprlppYiU5msT +f9FkPz2ccEblooV7WIQn3MSAPmeamseaMQ4w7OYXQJXZRe0Blqq/DPNL0WP3E1jA +uPP6Z92bfW1K/zJMtSU7/xxnD4UiWQWRkUF3gdCFTIcQcf+eQxuulXUtgQIDAQAB +o2MwYTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFEDk5PIj7zjKsK5Xf/Ih +MBY027ySMB0GA1UdDgQWBBRA5OTyI+84yrCuV3/yITAWNNu8kjAOBgNVHQ8BAf8E +BAMCAQYwDQYJKoZIhvcNAQEMBQADggIBACY7UeFNOPMyGLS0XuFlXsSUT9SnYaP4 +wM8zAQLpw6o1D/GUE3d3NZ4tVlFEbuHGLige/9rsR82XRBf34EzC4Xx8MnpmyFq2 +XFNFV1pF1AWZLy4jVe5jaN/TG3inEpQGAHUNcoTpLrxaatXeL1nHo+zSh2bbt1S1 +JKv0Q3jbSwTEb93mPmY+KfJLaHEih6D4sTNjduMNhXJEIlU/HHzp/LgV6FL6qj6j +ITk1dImmasI5+njPtqzn59ZW/yOSLlALqbUHM/Q4X6RJpstlcHboCoWASzY9M/eV +VHUl2qzEc4Jl6VL1XP04lQJqaTDFHApXB64ipCz5xUG3uOyfT0gA+QEEVcys+TIx +xHWVBqB/0Y0n3bOppHKH/lmLmnp0Ft0WpWIp6zqW3IunaFnT63eROfjXy9mPX1on +AX1daBli2MjN9LdyR75bl87yraKZk62Uy5P2EgmVtqvXO9A/EcswFi55gORngS1d +7XB4tmBZrOFdRWOPyN9yaFvqHbgB8X7754qz41SgOAngPN5C8sLtLpvzHzW2Ntjj +gKGLzZlkD8Kqq7HK9W+eQ42EVJmzbsASZthwEPEGNTNDqJwuuhQxzhB/HIbjj9LV ++Hfsm6vxL2PZQl/gZ4FkkfGXL/xuJvYz+NO1+MRiqzFRJQJ6+N1rZdVtTTDIZbpo +FGWsJwt0ivKH +-----END CERTIFICATE----- + +# Issuer: CN=TrustAsia Global Root CA G4 O=TrustAsia Technologies, Inc. +# Subject: CN=TrustAsia Global Root CA G4 O=TrustAsia Technologies, Inc. +# Label: "TrustAsia Global Root CA G4" +# Serial: 451799571007117016466790293371524403291602933463 +# MD5 Fingerprint: 54:dd:b2:d7:5f:d8:3e:ed:7c:e0:0b:2e:cc:ed:eb:eb +# SHA1 Fingerprint: 57:73:a5:61:5d:80:b2:e6:ac:38:82:fc:68:07:31:ac:9f:b5:92:5a +# SHA256 Fingerprint: be:4b:56:cb:50:56:c0:13:6a:52:6d:f4:44:50:8d:aa:36:a0:b5:4f:42:e4:ac:38:f7:2a:f4:70:e4:79:65:4c +-----BEGIN CERTIFICATE----- +MIICVTCCAdygAwIBAgIUTyNkuI6XY57GU4HBdk7LKnQV1tcwCgYIKoZIzj0EAwMw +WjELMAkGA1UEBhMCQ04xJTAjBgNVBAoMHFRydXN0QXNpYSBUZWNobm9sb2dpZXMs +IEluYy4xJDAiBgNVBAMMG1RydXN0QXNpYSBHbG9iYWwgUm9vdCBDQSBHNDAeFw0y +MTA1MjAwMjEwMjJaFw00NjA1MTkwMjEwMjJaMFoxCzAJBgNVBAYTAkNOMSUwIwYD +VQQKDBxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMuMSQwIgYDVQQDDBtUcnVz +dEFzaWEgR2xvYmFsIFJvb3QgQ0EgRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATx +s8045CVD5d4ZCbuBeaIVXxVjAd7Cq92zphtnS4CDr5nLrBfbK5bKfFJV4hrhPVbw +LxYI+hW8m7tH5j/uqOFMjPXTNvk4XatwmkcN4oFBButJ+bAp3TPsUKV/eSm4IJij +YzBhMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUpbtKl86zK3+kMd6Xg1mD +pm9xy94wHQYDVR0OBBYEFKW7SpfOsyt/pDHel4NZg6ZvccveMA4GA1UdDwEB/wQE +AwIBBjAKBggqhkjOPQQDAwNnADBkAjBe8usGzEkxn0AAbbd+NvBNEU/zy4k6LHiR +UKNbwMp1JvK/kF0LgoxgKJ/GcJpo5PECMFxYDlZ2z1jD1xCMuo6u47xkdUfFVZDj +/bpV6wfEU6s3qe4hsiFbYI89MvHVI5TWWA== +-----END CERTIFICATE----- + +# Issuer: CN=CommScope Public Trust ECC Root-01 O=CommScope +# Subject: CN=CommScope Public Trust ECC Root-01 O=CommScope +# Label: "CommScope Public Trust ECC Root-01" +# Serial: 385011430473757362783587124273108818652468453534 +# MD5 Fingerprint: 3a:40:a7:fc:03:8c:9c:38:79:2f:3a:a2:6c:b6:0a:16 +# SHA1 Fingerprint: 07:86:c0:d8:dd:8e:c0:80:98:06:98:d0:58:7a:ef:de:a6:cc:a2:5d +# SHA256 Fingerprint: 11:43:7c:da:7b:b4:5e:41:36:5f:45:b3:9a:38:98:6b:0d:e0:0d:ef:34:8e:0c:7b:b0:87:36:33:80:0b:c3:8b +-----BEGIN CERTIFICATE----- +MIICHTCCAaOgAwIBAgIUQ3CCd89NXTTxyq4yLzf39H91oJ4wCgYIKoZIzj0EAwMw +TjELMAkGA1UEBhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29t +bVNjb3BlIFB1YmxpYyBUcnVzdCBFQ0MgUm9vdC0wMTAeFw0yMTA0MjgxNzM1NDNa +Fw00NjA0MjgxNzM1NDJaME4xCzAJBgNVBAYTAlVTMRIwEAYDVQQKDAlDb21tU2Nv +cGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1c3QgRUNDIFJvb3QtMDEw +djAQBgcqhkjOPQIBBgUrgQQAIgNiAARLNumuV16ocNfQj3Rid8NeeqrltqLxeP0C +flfdkXmcbLlSiFS8LwS+uM32ENEp7LXQoMPwiXAZu1FlxUOcw5tjnSCDPgYLpkJE +hRGnSjot6dZoL0hOUysHP029uax3OVejQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSOB2LAUN3GGQYARnQE9/OufXVNMDAKBggq +hkjOPQQDAwNoADBlAjEAnDPfQeMjqEI2Jpc1XHvr20v4qotzVRVcrHgpD7oh2MSg +2NED3W3ROT3Ek2DS43KyAjB8xX6I01D1HiXo+k515liWpDVfG2XqYZpwI7UNo5uS +Um9poIyNStDuiw7LR47QjRE= +-----END CERTIFICATE----- + +# Issuer: CN=CommScope Public Trust ECC Root-02 O=CommScope +# Subject: CN=CommScope Public Trust ECC Root-02 O=CommScope +# Label: "CommScope Public Trust ECC Root-02" +# Serial: 234015080301808452132356021271193974922492992893 +# MD5 Fingerprint: 59:b0:44:d5:65:4d:b8:5c:55:19:92:02:b6:d1:94:b2 +# SHA1 Fingerprint: 3c:3f:ef:57:0f:fe:65:93:86:9e:a0:fe:b0:f6:ed:8e:d1:13:c7:e5 +# SHA256 Fingerprint: 2f:fb:7f:81:3b:bb:b3:c8:9a:b4:e8:16:2d:0f:16:d7:15:09:a8:30:cc:9d:73:c2:62:e5:14:08:75:d1:ad:4a +-----BEGIN CERTIFICATE----- +MIICHDCCAaOgAwIBAgIUKP2ZYEFHpgE6yhR7H+/5aAiDXX0wCgYIKoZIzj0EAwMw +TjELMAkGA1UEBhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29t +bVNjb3BlIFB1YmxpYyBUcnVzdCBFQ0MgUm9vdC0wMjAeFw0yMTA0MjgxNzQ0NTRa +Fw00NjA0MjgxNzQ0NTNaME4xCzAJBgNVBAYTAlVTMRIwEAYDVQQKDAlDb21tU2Nv +cGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1c3QgRUNDIFJvb3QtMDIw +djAQBgcqhkjOPQIBBgUrgQQAIgNiAAR4MIHoYx7l63FRD/cHB8o5mXxO1Q/MMDAL +j2aTPs+9xYa9+bG3tD60B8jzljHz7aRP+KNOjSkVWLjVb3/ubCK1sK9IRQq9qEmU +v4RDsNuESgMjGWdqb8FuvAY5N9GIIvejQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTmGHX/72DehKT1RsfeSlXjMjZ59TAKBggq +hkjOPQQDAwNnADBkAjAmc0l6tqvmSfR9Uj/UQQSugEODZXW5hYA4O9Zv5JOGq4/n +ich/m35rChJVYaoR4HkCMHfoMXGsPHED1oQmHhS48zs73u1Z/GtMMH9ZzkXpc2AV +mkzw5l4lIhVtwodZ0LKOag== +-----END CERTIFICATE----- + +# Issuer: CN=CommScope Public Trust RSA Root-01 O=CommScope +# Subject: CN=CommScope Public Trust RSA Root-01 O=CommScope +# Label: "CommScope Public Trust RSA Root-01" +# Serial: 354030733275608256394402989253558293562031411421 +# MD5 Fingerprint: 0e:b4:15:bc:87:63:5d:5d:02:73:d4:26:38:68:73:d8 +# SHA1 Fingerprint: 6d:0a:5f:f7:b4:23:06:b4:85:b3:b7:97:64:fc:ac:75:f5:33:f2:93 +# SHA256 Fingerprint: 02:bd:f9:6e:2a:45:dd:9b:f1:8f:c7:e1:db:df:21:a0:37:9b:a3:c9:c2:61:03:44:cf:d8:d6:06:fe:c1:ed:81 +-----BEGIN CERTIFICATE----- +MIIFbDCCA1SgAwIBAgIUPgNJgXUWdDGOTKvVxZAplsU5EN0wDQYJKoZIhvcNAQEL +BQAwTjELMAkGA1UEBhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwi +Q29tbVNjb3BlIFB1YmxpYyBUcnVzdCBSU0EgUm9vdC0wMTAeFw0yMTA0MjgxNjQ1 +NTRaFw00NjA0MjgxNjQ1NTNaME4xCzAJBgNVBAYTAlVTMRIwEAYDVQQKDAlDb21t +U2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1c3QgUlNBIFJvb3Qt +MDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwSGWjDR1C45FtnYSk +YZYSwu3D2iM0GXb26v1VWvZVAVMP8syMl0+5UMuzAURWlv2bKOx7dAvnQmtVzslh +suitQDy6uUEKBU8bJoWPQ7VAtYXR1HHcg0Hz9kXHgKKEUJdGzqAMxGBWBB0HW0al +DrJLpA6lfO741GIDuZNqihS4cPgugkY4Iw50x2tBt9Apo52AsH53k2NC+zSDO3Oj +WiE260f6GBfZumbCk6SP/F2krfxQapWsvCQz0b2If4b19bJzKo98rwjyGpg/qYFl +P8GMicWWMJoKz/TUyDTtnS+8jTiGU+6Xn6myY5QXjQ/cZip8UlF1y5mO6D1cv547 +KI2DAg+pn3LiLCuz3GaXAEDQpFSOm117RTYm1nJD68/A6g3czhLmfTifBSeolz7p +UcZsBSjBAg/pGG3svZwG1KdJ9FQFa2ww8esD1eo9anbCyxooSU1/ZOD6K9pzg4H/ +kQO9lLvkuI6cMmPNn7togbGEW682v3fuHX/3SZtS7NJ3Wn2RnU3COS3kuoL4b/JO +Hg9O5j9ZpSPcPYeoKFgo0fEbNttPxP/hjFtyjMcmAyejOQoBqsCyMWCDIqFPEgkB +Ea801M/XrmLTBQe0MXXgDW1XT2mH+VepuhX2yFJtocucH+X8eKg1mp9BFM6ltM6U +CBwJrVbl2rZJmkrqYxhTnCwuwwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4G +A1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUN12mmnQywsL5x6YVEFm45P3luG0wDQYJ +KoZIhvcNAQELBQADggIBAK+nz97/4L1CjU3lIpbfaOp9TSp90K09FlxD533Ahuh6 +NWPxzIHIxgvoLlI1pKZJkGNRrDSsBTtXAOnTYtPZKdVUvhwQkZyybf5Z/Xn36lbQ +nmhUQo8mUuJM3y+Xpi/SB5io82BdS5pYV4jvguX6r2yBS5KPQJqTRlnLX3gWsWc+ +QgvfKNmwrZggvkN80V4aCRckjXtdlemrwWCrWxhkgPut4AZ9HcpZuPN4KWfGVh2v +trV0KnahP/t1MJ+UXjulYPPLXAziDslg+MkfFoom3ecnf+slpoq9uC02EJqxWE2a +aE9gVOX2RhOOiKy8IUISrcZKiX2bwdgt6ZYD9KJ0DLwAHb/WNyVntHKLr4W96ioD +j8z7PEQkguIBpQtZtjSNMgsSDesnwv1B10A8ckYpwIzqug/xBpMu95yo9GA+o/E4 +Xo4TwbM6l4c/ksp4qRyv0LAbJh6+cOx69TOY6lz/KwsETkPdY34Op054A5U+1C0w +lREQKC6/oAI+/15Z0wUOlV9TRe9rh9VIzRamloPh37MG88EU26fsHItdkJANclHn +YfkUyq+Dj7+vsQpZXdxc1+SWrVtgHdqul7I52Qb1dgAT+GhMIbA1xNxVssnBQVoc +icCMb3SgazNNtQEo/a2tiRc7ppqEvOuM6sRxJKi6KfkIsidWNTJf6jn7MZrVGczw +-----END CERTIFICATE----- + +# Issuer: CN=CommScope Public Trust RSA Root-02 O=CommScope +# Subject: CN=CommScope Public Trust RSA Root-02 O=CommScope +# Label: "CommScope Public Trust RSA Root-02" +# Serial: 480062499834624527752716769107743131258796508494 +# MD5 Fingerprint: e1:29:f9:62:7b:76:e2:96:6d:f3:d4:d7:0f:ae:1f:aa +# SHA1 Fingerprint: ea:b0:e2:52:1b:89:93:4c:11:68:f2:d8:9a:ac:22:4c:a3:8a:57:ae +# SHA256 Fingerprint: ff:e9:43:d7:93:42:4b:4f:7c:44:0c:1c:3d:64:8d:53:63:f3:4b:82:dc:87:aa:7a:9f:11:8f:c5:de:e1:01:f1 +-----BEGIN CERTIFICATE----- +MIIFbDCCA1SgAwIBAgIUVBa/O345lXGN0aoApYYNK496BU4wDQYJKoZIhvcNAQEL +BQAwTjELMAkGA1UEBhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwi +Q29tbVNjb3BlIFB1YmxpYyBUcnVzdCBSU0EgUm9vdC0wMjAeFw0yMTA0MjgxNzE2 +NDNaFw00NjA0MjgxNzE2NDJaME4xCzAJBgNVBAYTAlVTMRIwEAYDVQQKDAlDb21t +U2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1c3QgUlNBIFJvb3Qt +MDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDh+g77aAASyE3VrCLE +NQE7xVTlWXZjpX/rwcRqmL0yjReA61260WI9JSMZNRTpf4mnG2I81lDnNJUDMrG0 +kyI9p+Kx7eZ7Ti6Hmw0zdQreqjXnfuU2mKKuJZ6VszKWpCtYHu8//mI0SFHRtI1C +rWDaSWqVcN3SAOLMV2MCe5bdSZdbkk6V0/nLKR8YSvgBKtJjCW4k6YnS5cciTNxz +hkcAqg2Ijq6FfUrpuzNPDlJwnZXjfG2WWy09X6GDRl224yW4fKcZgBzqZUPckXk2 +LHR88mcGyYnJ27/aaL8j7dxrrSiDeS/sOKUNNwFnJ5rpM9kzXzehxfCrPfp4sOcs +n/Y+n2Dg70jpkEUeBVF4GiwSLFworA2iI540jwXmojPOEXcT1A6kHkIfhs1w/tku +FT0du7jyU1fbzMZ0KZwYszZ1OC4PVKH4kh+Jlk+71O6d6Ts2QrUKOyrUZHk2EOH5 +kQMreyBUzQ0ZGshBMjTRsJnhkB4BQDa1t/qp5Xd1pCKBXbCL5CcSD1SIxtuFdOa3 +wNemKfrb3vOTlycEVS8KbzfFPROvCgCpLIscgSjX74Yxqa7ybrjKaixUR9gqiC6v +wQcQeKwRoi9C8DfF8rhW3Q5iLc4tVn5V8qdE9isy9COoR+jUKgF4z2rDN6ieZdIs +5fq6M8EGRPbmz6UNp2YINIos8wIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4G +A1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUR9DnsSL/nSz12Vdgs7GxcJXvYXowDQYJ +KoZIhvcNAQELBQADggIBAIZpsU0v6Z9PIpNojuQhmaPORVMbc0RTAIFhzTHjCLqB +KCh6krm2qMhDnscTJk3C2OVVnJJdUNjCK9v+5qiXz1I6JMNlZFxHMaNlNRPDk7n3 ++VGXu6TwYofF1gbTl4MgqX67tiHCpQ2EAOHyJxCDut0DgdXdaMNmEMjRdrSzbyme +APnCKfWxkxlSaRosTKCL4BWaMS/TiJVZbuXEs1DIFAhKm4sTg7GkcrI7djNB3Nyq +pgdvHSQSn8h2vS/ZjvQs7rfSOBAkNlEv41xdgSGn2rtO/+YHqP65DSdsu3BaVXoT +6fEqSWnHX4dXTEN5bTpl6TBcQe7rd6VzEojov32u5cSoHw2OHG1QAk8mGEPej1WF +sQs3BWDJVTkSBKEqz3EWnzZRSb9wO55nnPt7eck5HHisd5FUmrh1CoFSl+NmYWvt +PjgelmFV4ZFUjO2MJB+ByRCac5krFk5yAD9UG/iNuovnFNa2RU9g7Jauwy8CTl2d +lklyALKrdVwPaFsdZcJfMw8eD/A7hvWwTruc9+olBdytoptLFwG+Qt81IR2tq670 +v64fG9PiO/yzcnMcmyiQiRM9HcEARwmWmjgb3bHPDcK0RPOWlc4yOo80nOAXx17O +rg3bhzjlP1v9mxnhMUF6cKojawHhRUzNlM47ni3niAIi9G7oyOzWPPO5std3eqx7 +-----END CERTIFICATE----- + +# Issuer: CN=Telekom Security TLS ECC Root 2020 O=Deutsche Telekom Security GmbH +# Subject: CN=Telekom Security TLS ECC Root 2020 O=Deutsche Telekom Security GmbH +# Label: "Telekom Security TLS ECC Root 2020" +# Serial: 72082518505882327255703894282316633856 +# MD5 Fingerprint: c1:ab:fe:6a:10:2c:03:8d:bc:1c:22:32:c0:85:a7:fd +# SHA1 Fingerprint: c0:f8:96:c5:a9:3b:01:06:21:07:da:18:42:48:bc:e9:9d:88:d5:ec +# SHA256 Fingerprint: 57:8a:f4:de:d0:85:3f:4e:59:98:db:4a:ea:f9:cb:ea:8d:94:5f:60:b6:20:a3:8d:1a:3c:13:b2:bc:7b:a8:e1 +-----BEGIN CERTIFICATE----- +MIICQjCCAcmgAwIBAgIQNjqWjMlcsljN0AFdxeVXADAKBggqhkjOPQQDAzBjMQsw +CQYDVQQGEwJERTEnMCUGA1UECgweRGV1dHNjaGUgVGVsZWtvbSBTZWN1cml0eSBH +bWJIMSswKQYDVQQDDCJUZWxla29tIFNlY3VyaXR5IFRMUyBFQ0MgUm9vdCAyMDIw +MB4XDTIwMDgyNTA3NDgyMFoXDTQ1MDgyNTIzNTk1OVowYzELMAkGA1UEBhMCREUx +JzAlBgNVBAoMHkRldXRzY2hlIFRlbGVrb20gU2VjdXJpdHkgR21iSDErMCkGA1UE +AwwiVGVsZWtvbSBTZWN1cml0eSBUTFMgRUNDIFJvb3QgMjAyMDB2MBAGByqGSM49 +AgEGBSuBBAAiA2IABM6//leov9Wq9xCazbzREaK9Z0LMkOsVGJDZos0MKiXrPk/O +tdKPD/M12kOLAoC+b1EkHQ9rK8qfwm9QMuU3ILYg/4gND21Ju9sGpIeQkpT0CdDP +f8iAC8GXs7s1J8nCG6NCMEAwHQYDVR0OBBYEFONyzG6VmUex5rNhTNHLq+O6zd6f +MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2cA +MGQCMHVSi7ekEE+uShCLsoRbQuHmKjYC2qBuGT8lv9pZMo7k+5Dck2TOrbRBR2Di +z6fLHgIwN0GMZt9Ba9aDAEH9L1r3ULRn0SyocddDypwnJJGDSA3PzfdUga/sf+Rn +27iQ7t0l +-----END CERTIFICATE----- + +# Issuer: CN=Telekom Security TLS RSA Root 2023 O=Deutsche Telekom Security GmbH +# Subject: CN=Telekom Security TLS RSA Root 2023 O=Deutsche Telekom Security GmbH +# Label: "Telekom Security TLS RSA Root 2023" +# Serial: 44676229530606711399881795178081572759 +# MD5 Fingerprint: bf:5b:eb:54:40:cd:48:71:c4:20:8d:7d:de:0a:42:f2 +# SHA1 Fingerprint: 54:d3:ac:b3:bd:57:56:f6:85:9d:ce:e5:c3:21:e2:d4:ad:83:d0:93 +# SHA256 Fingerprint: ef:c6:5c:ad:bb:59:ad:b6:ef:e8:4d:a2:23:11:b3:56:24:b7:1b:3b:1e:a0:da:8b:66:55:17:4e:c8:97:86:46 +-----BEGIN CERTIFICATE----- +MIIFszCCA5ugAwIBAgIQIZxULej27HF3+k7ow3BXlzANBgkqhkiG9w0BAQwFADBj +MQswCQYDVQQGEwJERTEnMCUGA1UECgweRGV1dHNjaGUgVGVsZWtvbSBTZWN1cml0 +eSBHbWJIMSswKQYDVQQDDCJUZWxla29tIFNlY3VyaXR5IFRMUyBSU0EgUm9vdCAy +MDIzMB4XDTIzMDMyODEyMTY0NVoXDTQ4MDMyNzIzNTk1OVowYzELMAkGA1UEBhMC +REUxJzAlBgNVBAoMHkRldXRzY2hlIFRlbGVrb20gU2VjdXJpdHkgR21iSDErMCkG +A1UEAwwiVGVsZWtvbSBTZWN1cml0eSBUTFMgUlNBIFJvb3QgMjAyMzCCAiIwDQYJ +KoZIhvcNAQEBBQADggIPADCCAgoCggIBAO01oYGA88tKaVvC+1GDrib94W7zgRJ9 +cUD/h3VCKSHtgVIs3xLBGYSJwb3FKNXVS2xE1kzbB5ZKVXrKNoIENqil/Cf2SfHV +cp6R+SPWcHu79ZvB7JPPGeplfohwoHP89v+1VmLhc2o0mD6CuKyVU/QBoCcHcqMA +U6DksquDOFczJZSfvkgdmOGjup5czQRxUX11eKvzWarE4GC+j4NSuHUaQTXtvPM6 +Y+mpFEXX5lLRbtLevOP1Czvm4MS9Q2QTps70mDdsipWol8hHD/BeEIvnHRz+sTug +BTNoBUGCwQMrAcjnj02r6LX2zWtEtefdi+zqJbQAIldNsLGyMcEWzv/9FIS3R/qy +8XDe24tsNlikfLMR0cN3f1+2JeANxdKz+bi4d9s3cXFH42AYTyS2dTd4uaNir73J +co4vzLuu2+QVUhkHM/tqty1LkCiCc/4YizWN26cEar7qwU02OxY2kTLvtkCJkUPg +8qKrBC7m8kwOFjQgrIfBLX7JZkcXFBGk8/ehJImr2BrIoVyxo/eMbcgByU/J7MT8 +rFEz0ciD0cmfHdRHNCk+y7AO+oMLKFjlKdw/fKifybYKu6boRhYPluV75Gp6SG12 +mAWl3G0eQh5C2hrgUve1g8Aae3g1LDj1H/1Joy7SWWO/gLCMk3PLNaaZlSJhZQNg ++y+TS/qanIA7AgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUtqeX +gj10hZv3PJ+TmpV5dVKMbUcwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBS2 +p5eCPXSFm/c8n5OalXl1UoxtRzANBgkqhkiG9w0BAQwFAAOCAgEAqMxhpr51nhVQ +pGv7qHBFfLp+sVr8WyP6Cnf4mHGCDG3gXkaqk/QeoMPhk9tLrbKmXauw1GLLXrtm +9S3ul0A8Yute1hTWjOKWi0FpkzXmuZlrYrShF2Y0pmtjxrlO8iLpWA1WQdH6DErw +M807u20hOq6OcrXDSvvpfeWxm4bu4uB9tPcy/SKE8YXJN3nptT+/XOR0so8RYgDd +GGah2XsjX/GO1WfoVNpbOms2b/mBsTNHM3dA+VKq3dSDz4V4mZqTuXNnQkYRIer+ +CqkbGmVps4+uFrb2S1ayLfmlyOw7YqPta9BO1UAJpB+Y1zqlklkg5LB9zVtzaL1t +xKITDmcZuI1CfmwMmm6gJC3VRRvcxAIU/oVbZZfKTpBQCHpCNfnqwmbU+AGuHrS+ +w6jv/naaoqYfRvaE7fzbzsQCzndILIyy7MMAo+wsVRjBfhnu4S/yrYObnqsZ38aK +L4x35bcF7DvB7L6Gs4a8wPfc5+pbrrLMtTWGS9DiP7bY+A4A7l3j941Y/8+LN+lj +X273CXE2whJdV/LItM3z7gLfEdxquVeEHVlNjM7IDiPCtyaaEBRx/pOyiriA8A4Q +ntOoUAw3gi/q4Iqd4Sw5/7W0cwDk90imc6y/st53BIe0o82bNSQ3+pCTE4FCxpgm +dTdmQRCsu/WU48IxK63nI1bMNSWSs1A= +-----END CERTIFICATE----- + +# Issuer: CN=FIRMAPROFESIONAL CA ROOT-A WEB O=Firmaprofesional SA +# Subject: CN=FIRMAPROFESIONAL CA ROOT-A WEB O=Firmaprofesional SA +# Label: "FIRMAPROFESIONAL CA ROOT-A WEB" +# Serial: 65916896770016886708751106294915943533 +# MD5 Fingerprint: 82:b2:ad:45:00:82:b0:66:63:f8:5f:c3:67:4e:ce:a3 +# SHA1 Fingerprint: a8:31:11:74:a6:14:15:0d:ca:77:dd:0e:e4:0c:5d:58:fc:a0:72:a5 +# SHA256 Fingerprint: be:f2:56:da:f2:6e:9c:69:bd:ec:16:02:35:97:98:f3:ca:f7:18:21:a0:3e:01:82:57:c5:3c:65:61:7f:3d:4a +-----BEGIN CERTIFICATE----- +MIICejCCAgCgAwIBAgIQMZch7a+JQn81QYehZ1ZMbTAKBggqhkjOPQQDAzBuMQsw +CQYDVQQGEwJFUzEcMBoGA1UECgwTRmlybWFwcm9mZXNpb25hbCBTQTEYMBYGA1UE +YQwPVkFURVMtQTYyNjM0MDY4MScwJQYDVQQDDB5GSVJNQVBST0ZFU0lPTkFMIENB +IFJPT1QtQSBXRUIwHhcNMjIwNDA2MDkwMTM2WhcNNDcwMzMxMDkwMTM2WjBuMQsw +CQYDVQQGEwJFUzEcMBoGA1UECgwTRmlybWFwcm9mZXNpb25hbCBTQTEYMBYGA1UE +YQwPVkFURVMtQTYyNjM0MDY4MScwJQYDVQQDDB5GSVJNQVBST0ZFU0lPTkFMIENB +IFJPT1QtQSBXRUIwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARHU+osEaR3xyrq89Zf +e9MEkVz6iMYiuYMQYneEMy3pA4jU4DP37XcsSmDq5G+tbbT4TIqk5B/K6k84Si6C +cyvHZpsKjECcfIr28jlgst7L7Ljkb+qbXbdTkBgyVcUgt5SjYzBhMA8GA1UdEwEB +/wQFMAMBAf8wHwYDVR0jBBgwFoAUk+FDY1w8ndYn81LsF7Kpryz3dvgwHQYDVR0O +BBYEFJPhQ2NcPJ3WJ/NS7Beyqa8s93b4MA4GA1UdDwEB/wQEAwIBBjAKBggqhkjO +PQQDAwNoADBlAjAdfKR7w4l1M+E7qUW/Runpod3JIha3RxEL2Jq68cgLcFBTApFw +hVmpHqTm6iMxoAACMQD94vizrxa5HnPEluPBMBnYfubDl94cT7iJLzPrSA8Z94dG +XSaQpYXFuXqUPoeovQA= +-----END CERTIFICATE----- + +# Issuer: CN=TWCA CYBER Root CA O=TAIWAN-CA OU=Root CA +# Subject: CN=TWCA CYBER Root CA O=TAIWAN-CA OU=Root CA +# Label: "TWCA CYBER Root CA" +# Serial: 85076849864375384482682434040119489222 +# MD5 Fingerprint: 0b:33:a0:97:52:95:d4:a9:fd:bb:db:6e:a3:55:5b:51 +# SHA1 Fingerprint: f6:b1:1c:1a:83:38:e9:7b:db:b3:a8:c8:33:24:e0:2d:9c:7f:26:66 +# SHA256 Fingerprint: 3f:63:bb:28:14:be:17:4e:c8:b6:43:9c:f0:8d:6d:56:f0:b7:c4:05:88:3a:56:48:a3:34:42:4d:6b:3e:c5:58 +-----BEGIN CERTIFICATE----- +MIIFjTCCA3WgAwIBAgIQQAE0jMIAAAAAAAAAATzyxjANBgkqhkiG9w0BAQwFADBQ +MQswCQYDVQQGEwJUVzESMBAGA1UEChMJVEFJV0FOLUNBMRAwDgYDVQQLEwdSb290 +IENBMRswGQYDVQQDExJUV0NBIENZQkVSIFJvb3QgQ0EwHhcNMjIxMTIyMDY1NDI5 +WhcNNDcxMTIyMTU1OTU5WjBQMQswCQYDVQQGEwJUVzESMBAGA1UEChMJVEFJV0FO +LUNBMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJUV0NBIENZQkVSIFJvb3Qg +Q0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDG+Moe2Qkgfh1sTs6P +40czRJzHyWmqOlt47nDSkvgEs1JSHWdyKKHfi12VCv7qze33Kc7wb3+szT3vsxxF +avcokPFhV8UMxKNQXd7UtcsZyoC5dc4pztKFIuwCY8xEMCDa6pFbVuYdHNWdZsc/ +34bKS1PE2Y2yHer43CdTo0fhYcx9tbD47nORxc5zb87uEB8aBs/pJ2DFTxnk684i +JkXXYJndzk834H/nY62wuFm40AZoNWDTNq5xQwTxaWV4fPMf88oon1oglWa0zbfu +j3ikRRjpJi+NmykosaS3Om251Bw4ckVYsV7r8Cibt4LK/c/WMw+f+5eesRycnupf +Xtuq3VTpMCEobY5583WSjCb+3MX2w7DfRFlDo7YDKPYIMKoNM+HvnKkHIuNZW0CP +2oi3aQiotyMuRAlZN1vH4xfyIutuOVLF3lSnmMlLIJXcRolftBL5hSmO68gnFSDA +S9TMfAxsNAwmmyYxpjyn9tnQS6Jk/zuZQXLB4HCX8SS7K8R0IrGsayIyJNN4KsDA +oS/xUgXJP+92ZuJF2A09rZXIx4kmyA+upwMu+8Ff+iDhcK2wZSA3M2Cw1a/XDBzC +kHDXShi8fgGwsOsVHkQGzaRP6AzRwyAQ4VRlnrZR0Bp2a0JaWHY06rc3Ga4udfmW +5cFZ95RXKSWNOkyrTZpB0F8mAwIDAQABo2MwYTAOBgNVHQ8BAf8EBAMCAQYwDwYD +VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBSdhWEUfMFib5do5E83QOGt4A1WNzAd +BgNVHQ4EFgQUnYVhFHzBYm+XaORPN0DhreANVjcwDQYJKoZIhvcNAQEMBQADggIB +AGSPesRiDrWIzLjHhg6hShbNcAu3p4ULs3a2D6f/CIsLJc+o1IN1KriWiLb73y0t +tGlTITVX1olNc79pj3CjYcya2x6a4CD4bLubIp1dhDGaLIrdaqHXKGnK/nZVekZn +68xDiBaiA9a5F/gZbG0jAn/xX9AKKSM70aoK7akXJlQKTcKlTfjF/biBzysseKNn +TKkHmvPfXvt89YnNdJdhEGoHK4Fa0o635yDRIG4kqIQnoVesqlVYL9zZyvpoBJ7t +RCT5dEA7IzOrg1oYJkK2bVS1FmAwbLGg+LhBoF1JSdJlBTrq/p1hvIbZv97Tujqx +f36SNI7JAG7cmL3c7IAFrQI932XtCwP39xaEBDG6k5TY8hL4iuO/Qq+n1M0RFxbI +Qh0UqEL20kCGoE8jypZFVmAGzbdVAaYBlGX+bgUJurSkquLvWL69J1bY73NxW0Qz +8ppy6rBePm6pUlvscG21h483XjyMnM7k8M4MZ0HMzvaAq07MTFb1wWFZk7Q+ptq4 +NxKfKjLji7gh7MMrZQzvIt6IKTtM1/r+t+FHvpw+PoP7UV31aPcuIYXcv/Fa4nzX +xeSDwWrruoBa3lwtcHb4yOWHh8qgnaHlIhInD0Q9HWzq1MKLL295q39QpsQZp6F6 +t5b5wR9iWqJDB0BeJsas7a5wFsWqynKKTbDPAYsDP27X +-----END CERTIFICATE----- + +# Issuer: CN=SecureSign Root CA12 O=Cybertrust Japan Co., Ltd. +# Subject: CN=SecureSign Root CA12 O=Cybertrust Japan Co., Ltd. +# Label: "SecureSign Root CA12" +# Serial: 587887345431707215246142177076162061960426065942 +# MD5 Fingerprint: c6:89:ca:64:42:9b:62:08:49:0b:1e:7f:e9:07:3d:e8 +# SHA1 Fingerprint: 7a:22:1e:3d:de:1b:06:ac:9e:c8:47:70:16:8e:3c:e5:f7:6b:06:f4 +# SHA256 Fingerprint: 3f:03:4b:b5:70:4d:44:b2:d0:85:45:a0:20:57:de:93:eb:f3:90:5f:ce:72:1a:cb:c7:30:c0:6d:da:ee:90:4e +-----BEGIN CERTIFICATE----- +MIIDcjCCAlqgAwIBAgIUZvnHwa/swlG07VOX5uaCwysckBYwDQYJKoZIhvcNAQEL +BQAwUTELMAkGA1UEBhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28u +LCBMdGQuMR0wGwYDVQQDExRTZWN1cmVTaWduIFJvb3QgQ0ExMjAeFw0yMDA0MDgw +NTM2NDZaFw00MDA0MDgwNTM2NDZaMFExCzAJBgNVBAYTAkpQMSMwIQYDVQQKExpD +eWJlcnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMUU2VjdXJlU2lnbiBS +b290IENBMTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6OcE3emhF +KxS06+QT61d1I02PJC0W6K6OyX2kVzsqdiUzg2zqMoqUm048luT9Ub+ZyZN+v/mt +p7JIKwccJ/VMvHASd6SFVLX9kHrko+RRWAPNEHl57muTH2SOa2SroxPjcf59q5zd +J1M3s6oYwlkm7Fsf0uZlfO+TvdhYXAvA42VvPMfKWeP+bl+sg779XSVOKik71gur +FzJ4pOE+lEa+Ym6b3kaosRbnhW70CEBFEaCeVESE99g2zvVQR9wsMJvuwPWW0v4J +hscGWa5Pro4RmHvzC1KqYiaqId+OJTN5lxZJjfU+1UefNzFJM3IFTQy2VYzxV4+K +h9GtxRESOaCtAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD +AgEGMB0GA1UdDgQWBBRXNPN0zwRL1SXm8UC2LEzZLemgrTANBgkqhkiG9w0BAQsF +AAOCAQEAPrvbFxbS8hQBICw4g0utvsqFepq2m2um4fylOqyttCg6r9cBg0krY6Ld +mmQOmFxv3Y67ilQiLUoT865AQ9tPkbeGGuwAtEGBpE/6aouIs3YIcipJQMPTw4WJ +mBClnW8Zt7vPemVV2zfrPIpyMpcemik+rY3moxtt9XUa5rBouVui7mlHJzWhhpmA +8zNL4WukJsPvdFlseqJkth5Ew1DgDzk9qTPxpfPSvWKErI4cqc1avTc7bgoitPQV +55FYxTpE05Uo2cBl6XLK0A+9H7MV2anjpEcJnuDLN/v9vZfVvhgaaaI5gdka9at/ +yOPiZwud9AzqVN/Ssq+xIvEg37xEHA== +-----END CERTIFICATE----- + +# Issuer: CN=SecureSign Root CA14 O=Cybertrust Japan Co., Ltd. +# Subject: CN=SecureSign Root CA14 O=Cybertrust Japan Co., Ltd. +# Label: "SecureSign Root CA14" +# Serial: 575790784512929437950770173562378038616896959179 +# MD5 Fingerprint: 71:0d:72:fa:92:19:65:5e:89:04:ac:16:33:f0:bc:d5 +# SHA1 Fingerprint: dd:50:c0:f7:79:b3:64:2e:74:a2:b8:9d:9f:d3:40:dd:bb:f0:f2:4f +# SHA256 Fingerprint: 4b:00:9c:10:34:49:4f:9a:b5:6b:ba:3b:a1:d6:27:31:fc:4d:20:d8:95:5a:dc:ec:10:a9:25:60:72:61:e3:38 +-----BEGIN CERTIFICATE----- +MIIFcjCCA1qgAwIBAgIUZNtaDCBO6Ncpd8hQJ6JaJ90t8sswDQYJKoZIhvcNAQEM +BQAwUTELMAkGA1UEBhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28u +LCBMdGQuMR0wGwYDVQQDExRTZWN1cmVTaWduIFJvb3QgQ0ExNDAeFw0yMDA0MDgw +NzA2MTlaFw00NTA0MDgwNzA2MTlaMFExCzAJBgNVBAYTAkpQMSMwIQYDVQQKExpD +eWJlcnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMUU2VjdXJlU2lnbiBS +b290IENBMTQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDF0nqh1oq/ +FjHQmNE6lPxauG4iwWL3pwon71D2LrGeaBLwbCRjOfHw3xDG3rdSINVSW0KZnvOg +vlIfX8xnbacuUKLBl422+JX1sLrcneC+y9/3OPJH9aaakpUqYllQC6KxNedlsmGy +6pJxaeQp8E+BgQQ8sqVb1MWoWWd7VRxJq3qdwudzTe/NCcLEVxLbAQ4jeQkHO6Lo +/IrPj8BGJJw4J+CDnRugv3gVEOuGTgpa/d/aLIJ+7sr2KeH6caH3iGicnPCNvg9J +kdjqOvn90Ghx2+m1K06Ckm9mH+Dw3EzsytHqunQG+bOEkJTRX45zGRBdAuVwpcAQ +0BB8b8VYSbSwbprafZX1zNoCr7gsfXmPvkPx+SgojQlD+Ajda8iLLCSxjVIHvXib +y8posqTdDEx5YMaZ0ZPxMBoH064iwurO8YQJzOAUbn8/ftKChazcqRZOhaBgy/ac +18izju3Gm5h1DVXoX+WViwKkrkMpKBGk5hIwAUt1ax5mnXkvpXYvHUC0bcl9eQjs +0Wq2XSqypWa9a4X0dFbD9ed1Uigspf9mR6XU/v6eVL9lfgHWMI+lNpyiUBzuOIAB +SMbHdPTGrMNASRZhdCyvjG817XsYAFs2PJxQDcqSMxDxJklt33UkN4Ii1+iW/RVL +ApY+B3KVfqs9TC7XyvDf4Fg/LS8EmjijAQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUBpOjCl4oaTeqYR3r6/wtbyPk +86AwDQYJKoZIhvcNAQEMBQADggIBAJaAcgkGfpzMkwQWu6A6jZJOtxEaCnFxEM0E +rX+lRVAQZk5KQaID2RFPeje5S+LGjzJmdSX7684/AykmjbgWHfYfM25I5uj4V7Ib +ed87hwriZLoAymzvftAj63iP/2SbNDefNWWipAA9EiOWWF3KY4fGoweITedpdopT +zfFP7ELyk+OZpDc8h7hi2/DsHzc/N19DzFGdtfCXwreFamgLRB7lUe6TzktuhsHS +DCRZNhqfLJGP4xjblJUK7ZGqDpncllPjYYPGFrojutzdfhrGe0K22VoF3Jpf1d+4 +2kd92jjbrDnVHmtsKheMYc2xbXIBw8MgAGJoFjHVdqqGuw6qnsb58Nn4DSEC5MUo +FlkRudlpcyqSeLiSV5sI8jrlL5WwWLdrIBRtFO8KvH7YVdiI2i/6GaX7i+B/OfVy +K4XELKzvGUWSTLNhB9xNH27SgRNcmvMSZ4PPmz+Ln52kuaiWA3rF7iDeM9ovnhp6 +dB7h7sxaOgTdsxoEqBRjrLdHEoOabPXm6RUVkRqEGQ6UROcSjiVbgGcZ3GOTEAtl +Lor6CZpO2oYofaphNdgOpygau1LgePhsumywbrmHXumZNTfxPWQrqaA0k89jL9WB +365jJ6UeTo3cKXhZ+PmhIIynJkBugnLNeLLIjzwec+fBH7/PzqUqm9tEZDKgu39c +JRNItX+S +-----END CERTIFICATE----- + +# Issuer: CN=SecureSign Root CA15 O=Cybertrust Japan Co., Ltd. +# Subject: CN=SecureSign Root CA15 O=Cybertrust Japan Co., Ltd. +# Label: "SecureSign Root CA15" +# Serial: 126083514594751269499665114766174399806381178503 +# MD5 Fingerprint: 13:30:fc:c4:62:a6:a9:de:b5:c1:68:af:b5:d2:31:47 +# SHA1 Fingerprint: cb:ba:83:c8:c1:5a:5d:f1:f9:73:6f:ca:d7:ef:28:13:06:4a:07:7d +# SHA256 Fingerprint: e7:78:f0:f0:95:fe:84:37:29:cd:1a:00:82:17:9e:53:14:a9:c2:91:44:28:05:e1:fb:1d:8f:b6:b8:88:6c:3a +-----BEGIN CERTIFICATE----- +MIICIzCCAamgAwIBAgIUFhXHw9hJp75pDIqI7fBw+d23PocwCgYIKoZIzj0EAwMw +UTELMAkGA1UEBhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28uLCBM +dGQuMR0wGwYDVQQDExRTZWN1cmVTaWduIFJvb3QgQ0ExNTAeFw0yMDA0MDgwODMy +NTZaFw00NTA0MDgwODMyNTZaMFExCzAJBgNVBAYTAkpQMSMwIQYDVQQKExpDeWJl +cnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMUU2VjdXJlU2lnbiBSb290 +IENBMTUwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQLUHSNZDKZmbPSYAi4Io5GdCx4 +wCtELW1fHcmuS1Iggz24FG1Th2CeX2yF2wYUleDHKP+dX+Sq8bOLbe1PL0vJSpSR +ZHX+AezB2Ot6lHhWGENfa4HL9rzatAy2KZMIaY+jQjBAMA8GA1UdEwEB/wQFMAMB +Af8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTrQciu/NWeUUj1vYv0hyCTQSvT +9DAKBggqhkjOPQQDAwNoADBlAjEA2S6Jfl5OpBEHvVnCB96rMjhTKkZEBhd6zlHp +4P9mLQlO4E/0BdGF9jVg3PVys0Z9AjBEmEYagoUeYWmJSwdLZrWeqrqgHkHZAXQ6 +bkU6iYAZezKYVWOr62Nuk22rGwlgMU4= +-----END CERTIFICATE----- + +# Issuer: CN=D-TRUST BR Root CA 2 2023 O=D-Trust GmbH +# Subject: CN=D-TRUST BR Root CA 2 2023 O=D-Trust GmbH +# Label: "D-TRUST BR Root CA 2 2023" +# Serial: 153168538924886464690566649552453098598 +# MD5 Fingerprint: e1:09:ed:d3:60:d4:56:1b:47:1f:b7:0c:5f:1b:5f:85 +# SHA1 Fingerprint: 2d:b0:70:ee:71:94:af:69:68:17:db:79:ce:58:9f:a0:6b:96:f7:87 +# SHA256 Fingerprint: 05:52:e6:f8:3f:df:65:e8:fa:96:70:e6:66:df:28:a4:e2:13:40:b5:10:cb:e5:25:66:f9:7c:4f:b9:4b:2b:d1 +-----BEGIN CERTIFICATE----- +MIIFqTCCA5GgAwIBAgIQczswBEhb2U14LnNLyaHcZjANBgkqhkiG9w0BAQ0FADBI +MQswCQYDVQQGEwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlE +LVRSVVNUIEJSIFJvb3QgQ0EgMiAyMDIzMB4XDTIzMDUwOTA4NTYzMVoXDTM4MDUw +OTA4NTYzMFowSDELMAkGA1UEBhMCREUxFTATBgNVBAoTDEQtVHJ1c3QgR21iSDEi +MCAGA1UEAxMZRC1UUlVTVCBCUiBSb290IENBIDIgMjAyMzCCAiIwDQYJKoZIhvcN +AQEBBQADggIPADCCAgoCggIBAK7/CVmRgApKaOYkP7in5Mg6CjoWzckjYaCTcfKr +i3OPoGdlYNJUa2NRb0kz4HIHE304zQaSBylSa053bATTlfrdTIzZXcFhfUvnKLNE +gXtRr90zsWh81k5M/itoucpmacTsXld/9w3HnDY25QdgrMBM6ghs7wZ8T1soegj8 +k12b9py0i4a6Ibn08OhZWiihNIQaJZG2tY/vsvmA+vk9PBFy2OMvhnbFeSzBqZCT +Rphny4NqoFAjpzv2gTng7fC5v2Xx2Mt6++9zA84A9H3X4F07ZrjcjrqDy4d2A/wl +2ecjbwb9Z/Pg/4S8R7+1FhhGaRTMBffb00msa8yr5LULQyReS2tNZ9/WtT5PeB+U +cSTq3nD88ZP+npNa5JRal1QMNXtfbO4AHyTsA7oC9Xb0n9Sa7YUsOCIvx9gvdhFP +/Wxc6PWOJ4d/GUohR5AdeY0cW/jPSoXk7bNbjb7EZChdQcRurDhaTyN0dKkSw/bS +uREVMweR2Ds3OmMwBtHFIjYoYiMQ4EbMl6zWK11kJNXuHA7e+whadSr2Y23OC0K+ +0bpwHJwh5Q8xaRfX/Aq03u2AnMuStIv13lmiWAmlY0cL4UEyNEHZmrHZqLAbWt4N +DfTisl01gLmB1IRpkQLLddCNxbU9CZEJjxShFHR5PtbJFR2kWVki3PaKRT08EtY+ +XTIvAgMBAAGjgY4wgYswDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUZ5Dw1t61 +GNVGKX5cq/ieCLxklRAwDgYDVR0PAQH/BAQDAgEGMEkGA1UdHwRCMEAwPqA8oDqG +OGh0dHA6Ly9jcmwuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3RfYnJfcm9vdF9jYV8y +XzIwMjMuY3JsMA0GCSqGSIb3DQEBDQUAA4ICAQA097N3U9swFrktpSHxQCF16+tI +FoE9c+CeJyrrd6kTpGoKWloUMz1oH4Guaf2Mn2VsNELZLdB/eBaxOqwjMa1ef67n +riv6uvw8l5VAk1/DLQOj7aRvU9f6QA4w9QAgLABMjDu0ox+2v5Eyq6+SmNMW5tTR +VFxDWy6u71cqqLRvpO8NVhTaIasgdp4D/Ca4nj8+AybmTNudX0KEPUUDAxxZiMrc +LmEkWqTqJwtzEr5SswrPMhfiHocaFpVIbVrg0M8JkiZmkdijYQ6qgYF/6FKC0ULn +4B0Y+qSFNueG4A3rvNTJ1jxD8V1Jbn6Bm2m1iWKPiFLY1/4nwSPFyysCu7Ff/vtD +hQNGvl3GyiEm/9cCnnRK3PgTFbGBVzbLZVzRHTF36SXDw7IyN9XxmAnkbWOACKsG +koHU6XCPpz+y7YaMgmo1yEJagtFSGkUPFaUA8JR7ZSdXOUPPfH/mvTWze/EZTN46 +ls/pdu4D58JDUjxqgejBWoC9EV2Ta/vH5mQ/u2kc6d0li690yVRAysuTEwrt+2aS +Ecr1wPrYg1UDfNPFIkZ1cGt5SAYqgpq/5usWDiJFAbzdNpQ0qTUmiteXue4Icr80 +knCDgKs4qllo3UCkGJCy89UDyibK79XH4I9TjvAA46jtn/mtd+ArY0+ew+43u3gJ +hJ65bvspmZDogNOfJA== +-----END CERTIFICATE----- + +# Issuer: CN=TrustAsia TLS ECC Root CA O=TrustAsia Technologies, Inc. +# Subject: CN=TrustAsia TLS ECC Root CA O=TrustAsia Technologies, Inc. +# Label: "TrustAsia TLS ECC Root CA" +# Serial: 310892014698942880364840003424242768478804666567 +# MD5 Fingerprint: 09:48:04:77:d2:fc:65:93:71:66:b1:11:95:4f:06:8c +# SHA1 Fingerprint: b5:ec:39:f3:a1:66:37:ae:c3:05:94:57:e2:be:11:be:b7:a1:7f:36 +# SHA256 Fingerprint: c0:07:6b:9e:f0:53:1f:b1:a6:56:d6:7c:4e:be:97:cd:5d:ba:a4:1e:f4:45:98:ac:c2:48:98:78:c9:2d:87:11 +-----BEGIN CERTIFICATE----- +MIICMTCCAbegAwIBAgIUNnThTXxlE8msg1UloD5Sfi9QaMcwCgYIKoZIzj0EAwMw +WDELMAkGA1UEBhMCQ04xJTAjBgNVBAoTHFRydXN0QXNpYSBUZWNobm9sb2dpZXMs +IEluYy4xIjAgBgNVBAMTGVRydXN0QXNpYSBUTFMgRUNDIFJvb3QgQ0EwHhcNMjQw +NTE1MDU0MTU2WhcNNDQwNTE1MDU0MTU1WjBYMQswCQYDVQQGEwJDTjElMCMGA1UE +ChMcVHJ1c3RBc2lhIFRlY2hub2xvZ2llcywgSW5jLjEiMCAGA1UEAxMZVHJ1c3RB +c2lhIFRMUyBFQ0MgUm9vdCBDQTB2MBAGByqGSM49AgEGBSuBBAAiA2IABLh/pVs/ +AT598IhtrimY4ZtcU5nb9wj/1WrgjstEpvDBjL1P1M7UiFPoXlfXTr4sP/MSpwDp +guMqWzJ8S5sUKZ74LYO1644xST0mYekdcouJtgq7nDM1D9rs3qlKH8kzsaNCMEAw +DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQULIVTu7FDzTLqnqOH/qKYqKaT6RAw +DgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2gAMGUCMFRH18MtYYZI9HlaVQ01 +L18N9mdsd0AaRuf4aFtOJx24mH1/k78ITcTaRTChD15KeAIxAKORh/IRM4PDwYqR +OkwrULG9IpRdNYlzg8WbGf60oenUoWa2AaU2+dhoYSi3dOGiMQ== +-----END CERTIFICATE----- + +# Issuer: CN=TrustAsia TLS RSA Root CA O=TrustAsia Technologies, Inc. +# Subject: CN=TrustAsia TLS RSA Root CA O=TrustAsia Technologies, Inc. +# Label: "TrustAsia TLS RSA Root CA" +# Serial: 160405846464868906657516898462547310235378010780 +# MD5 Fingerprint: 3b:9e:c3:86:0f:34:3c:6b:c5:46:c4:8e:1d:e7:19:12 +# SHA1 Fingerprint: a5:46:50:c5:62:ea:95:9a:1a:a7:04:6f:17:58:c7:29:53:3d:03:fa +# SHA256 Fingerprint: 06:c0:8d:7d:af:d8:76:97:1e:b1:12:4f:e6:7f:84:7e:c0:c7:a1:58:d3:ea:53:cb:e9:40:e2:ea:97:91:f4:c3 +-----BEGIN CERTIFICATE----- +MIIFgDCCA2igAwIBAgIUHBjYz+VTPyI1RlNUJDxsR9FcSpwwDQYJKoZIhvcNAQEM +BQAwWDELMAkGA1UEBhMCQ04xJTAjBgNVBAoTHFRydXN0QXNpYSBUZWNobm9sb2dp +ZXMsIEluYy4xIjAgBgNVBAMTGVRydXN0QXNpYSBUTFMgUlNBIFJvb3QgQ0EwHhcN +MjQwNTE1MDU0MTU3WhcNNDQwNTE1MDU0MTU2WjBYMQswCQYDVQQGEwJDTjElMCMG +A1UEChMcVHJ1c3RBc2lhIFRlY2hub2xvZ2llcywgSW5jLjEiMCAGA1UEAxMZVHJ1 +c3RBc2lhIFRMUyBSU0EgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC +AgoCggIBAMMWuBtqpERz5dZO9LnPWwvB0ZqB9WOwj0PBuwhaGnrhB3YmH49pVr7+ +NmDQDIPNlOrnxS1cLwUWAp4KqC/lYCZUlviYQB2srp10Zy9U+5RjmOMmSoPGlbYJ +Q1DNDX3eRA5gEk9bNb2/mThtfWza4mhzH/kxpRkQcwUqwzIZheo0qt1CHjCNP561 +HmHVb70AcnKtEj+qpklz8oYVlQwQX1Fkzv93uMltrOXVmPGZLmzjyUT5tUMnCE32 +ft5EebuyjBza00tsLtbDeLdM1aTk2tyKjg7/D8OmYCYozza/+lcK7Fs/6TAWe8Tb +xNRkoDD75f0dcZLdKY9BWN4ArTr9PXwaqLEX8E40eFgl1oUh63kd0Nyrz2I8sMeX +i9bQn9P+PN7F4/w6g3CEIR0JwqH8uyghZVNgepBtljhb//HXeltt08lwSUq6HTrQ +UNoyIBnkiz/r1RYmNzz7dZ6wB3C4FGB33PYPXFIKvF1tjVEK2sUYyJtt3LCDs3+j +TnhMmCWr8n4uIF6CFabW2I+s5c0yhsj55NqJ4js+k8UTav/H9xj8Z7XvGCxUq0DT +bE3txci3OE9kxJRMT6DNrqXGJyV1J23G2pyOsAWZ1SgRxSHUuPzHlqtKZFlhaxP8 +S8ySpg+kUb8OWJDZgoM5pl+z+m6Ss80zDoWo8SnTq1mt1tve1CuBAgMBAAGjQjBA +MA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFLgHkXlcBvRG/XtZylomkadFK/hT +MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQwFAAOCAgEAIZtqBSBdGBanEqT3 +Rz/NyjuujsCCztxIJXgXbODgcMTWltnZ9r96nBO7U5WS/8+S4PPFJzVXqDuiGev4 +iqME3mmL5Dw8veWv0BIb5Ylrc5tvJQJLkIKvQMKtuppgJFqBTQUYo+IzeXoLH5Pt +7DlK9RME7I10nYEKqG/odv6LTytpEoYKNDbdgptvT+Bz3Ul/KD7JO6NXBNiT2Twp +2xIQaOHEibgGIOcberyxk2GaGUARtWqFVwHxtlotJnMnlvm5P1vQiJ3koP26TpUJ +g3933FEFlJ0gcXax7PqJtZwuhfG5WyRasQmr2soaB82G39tp27RIGAAtvKLEiUUj +pQ7hRGU+isFqMB3iYPg6qocJQrmBktwliJiJ8Xw18WLK7nn4GS/+X/jbh87qqA8M +pugLoDzga5SYnH+tBuYc6kIQX+ImFTw3OffXvO645e8D7r0i+yiGNFjEWn9hongP +XvPKnbwbPKfILfanIhHKA9jnZwqKDss1jjQ52MjqjZ9k4DewbNfFj8GQYSbbJIwe +SsCI3zWQzj8C9GRh3sfIB5XeMhg6j6JCQCTl1jNdfK7vsU1P1FeQNWrcrgSXSYk0 +ly4wBOeY99sLAZDBHwo/+ML+TvrbmnNzFrwFuHnYWa8G5z9nODmxfKuU4CkUpijy +323imttUQ/hHWKNddBWcwauwxzQ= +-----END CERTIFICATE----- + +# Issuer: CN=D-TRUST EV Root CA 2 2023 O=D-Trust GmbH +# Subject: CN=D-TRUST EV Root CA 2 2023 O=D-Trust GmbH +# Label: "D-TRUST EV Root CA 2 2023" +# Serial: 139766439402180512324132425437959641711 +# MD5 Fingerprint: 96:b4:78:09:f0:09:cb:77:eb:bb:1b:4d:6f:36:bc:b6 +# SHA1 Fingerprint: a5:5b:d8:47:6c:8f:19:f7:4c:f4:6d:6b:b6:c2:79:82:22:df:54:8b +# SHA256 Fingerprint: 8e:82:21:b2:e7:d4:00:78:36:a1:67:2f:0d:cc:29:9c:33:bc:07:d3:16:f1:32:fa:1a:20:6d:58:71:50:f1:ce +-----BEGIN CERTIFICATE----- +MIIFqTCCA5GgAwIBAgIQaSYJfoBLTKCnjHhiU19abzANBgkqhkiG9w0BAQ0FADBI +MQswCQYDVQQGEwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlE +LVRSVVNUIEVWIFJvb3QgQ0EgMiAyMDIzMB4XDTIzMDUwOTA5MTAzM1oXDTM4MDUw +OTA5MTAzMlowSDELMAkGA1UEBhMCREUxFTATBgNVBAoTDEQtVHJ1c3QgR21iSDEi +MCAGA1UEAxMZRC1UUlVTVCBFViBSb290IENBIDIgMjAyMzCCAiIwDQYJKoZIhvcN +AQEBBQADggIPADCCAgoCggIBANiOo4mAC7JXUtypU0w3uX9jFxPvp1sjW2l1sJkK +F8GLxNuo4MwxusLyzV3pt/gdr2rElYfXR8mV2IIEUD2BCP/kPbOx1sWy/YgJ25yE +7CUXFId/MHibaljJtnMoPDT3mfd/06b4HEV8rSyMlD/YZxBTfiLNTiVR8CUkNRFe +EMbsh2aJgWi6zCudR3Mfvc2RpHJqnKIbGKBv7FD0fUDCqDDPvXPIEysQEx6Lmqg6 +lHPTGGkKSv/BAQP/eX+1SH977ugpbzZMlWGG2Pmic4ruri+W7mjNPU0oQvlFKzIb +RlUWaqZLKfm7lVa/Rh3sHZMdwGWyH6FDrlaeoLGPaxK3YG14C8qKXO0elg6DpkiV +jTujIcSuWMYAsoS0I6SWhjW42J7YrDRJmGOVxcttSEfi8i4YHtAxq9107PncjLgc +jmgjutDzUNzPZY9zOjLHfP7KgiJPvo5iR2blzYfi6NUPGJ/lBHJLRjwQ8kTCZFZx +TnXonMkmdMV9WdEKWw9t/p51HBjGGjp82A0EzM23RWV6sY+4roRIPrN6TagD4uJ+ +ARZZaBhDM7DS3LAaQzXupdqpRlyuhoFBAUp0JuyfBr/CBTdkdXgpaP3F9ev+R/nk +hbDhezGdpn9yo7nELC7MmVcOIQxFAZRl62UJxmMiCzNJkkg8/M3OsD6Onov4/knF +NXJHAgMBAAGjgY4wgYswDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUqvyREBuH +kV8Wub9PS5FeAByxMoAwDgYDVR0PAQH/BAQDAgEGMEkGA1UdHwRCMEAwPqA8oDqG +OGh0dHA6Ly9jcmwuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3RfZXZfcm9vdF9jYV8y +XzIwMjMuY3JsMA0GCSqGSIb3DQEBDQUAA4ICAQCTy6UfmRHsmg1fLBWTxj++EI14 +QvBukEdHjqOSMo1wj/Zbjb6JzkcBahsgIIlbyIIQbODnmaprxiqgYzWRaoUlrRc4 +pZt+UPJ26oUFKidBK7GB0aL2QHWpDsvxVUjY7NHss+jOFKE17MJeNRqrphYBBo7q +3C+jisosketSjl8MmxfPy3MHGcRqwnNU73xDUmPBEcrCRbH0O1P1aa4846XerOhU +t7KR/aypH/KH5BfGSah82ApB9PI+53c0BFLd6IHyTS9URZ0V4U/M5d40VxDJI3IX +cI1QcB9WbMy5/zpaT2N6w25lBx2Eof+pDGOJbbJAiDnXH3dotfyc1dZnaVuodNv8 +ifYbMvekJKZ2t0dT741Jj6m2g1qllpBFYfXeA08mD6iL8AOWsKwV0HFaanuU5nCT +2vFp4LJiTZ6P/4mdm13NRemUAiKN4DV/6PEEeXFsVIP4M7kFMhtYVRFP0OUnR3Hs +7dpn1mKmS00PaaLJvOwiS5THaJQXfuKOKD62xur1NGyfN4gHONuGcfrNlUhDbqNP +gofXNJhuS5N5YHVpD/Aa1VP6IQzCP+k/HxiMkl14p3ZnGbuy6n/pcAlWVqOwDAst +Nl7F6cTVg8uGF5csbBNvh1qvSaYd2804BC5f4ko1Di1L+KIkBI3Y4WNeApI02phh +XBxvWHZks/wCuPWdCg== +-----END CERTIFICATE----- + +# Issuer: CN=SwissSign RSA TLS Root CA 2022 - 1 O=SwissSign AG +# Subject: CN=SwissSign RSA TLS Root CA 2022 - 1 O=SwissSign AG +# Label: "SwissSign RSA TLS Root CA 2022 - 1" +# Serial: 388078645722908516278762308316089881486363258315 +# MD5 Fingerprint: 16:2e:e4:19:76:81:85:ba:8e:91:58:f1:15:ef:72:39 +# SHA1 Fingerprint: 81:34:0a:be:4c:cd:ce:cc:e7:7d:cc:8a:d4:57:e2:45:a0:77:5d:ce +# SHA256 Fingerprint: 19:31:44:f4:31:e0:fd:db:74:07:17:d4:de:92:6a:57:11:33:88:4b:43:60:d3:0e:27:29:13:cb:e6:60:ce:41 +-----BEGIN CERTIFICATE----- +MIIFkzCCA3ugAwIBAgIUQ/oMX04bgBhE79G0TzUfRPSA7cswDQYJKoZIhvcNAQEL +BQAwUTELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBBRzErMCkGA1UE +AxMiU3dpc3NTaWduIFJTQSBUTFMgUm9vdCBDQSAyMDIyIC0gMTAeFw0yMjA2MDgx +MTA4MjJaFw00NzA2MDgxMTA4MjJaMFExCzAJBgNVBAYTAkNIMRUwEwYDVQQKEwxT +d2lzc1NpZ24gQUcxKzApBgNVBAMTIlN3aXNzU2lnbiBSU0EgVExTIFJvb3QgQ0Eg +MjAyMiAtIDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDLKmjiC8NX +vDVjvHClO/OMPE5Xlm7DTjak9gLKHqquuN6orx122ro10JFwB9+zBvKK8i5VUXu7 +LCTLf5ImgKO0lPaCoaTo+nUdWfMHamFk4saMla+ju45vVs9xzF6BYQ1t8qsCLqSX +5XH8irCRIFucdFJtrhUnWXjyCcplDn/L9Ovn3KlMd/YrFgSVrpxxpT8q2kFC5zyE +EPThPYxr4iuRR1VPuFa+Rd4iUU1OKNlfGUEGjw5NBuBwQCMBauTLE5tzrE0USJIt +/m2n+IdreXXhvhCxqohAWVTXz8TQm0SzOGlkjIHRI36qOTw7D59Ke4LKa2/KIj4x +0LDQKhySio/YGZxH5D4MucLNvkEM+KRHBdvBFzA4OmnczcNpI/2aDwLOEGrOyvi5 +KaM2iYauC8BPY7kGWUleDsFpswrzd34unYyzJ5jSmY0lpx+Gs6ZUcDj8fV3oT4MM +0ZPlEuRU2j7yrTrePjxF8CgPBrnh25d7mUWe3f6VWQQvdT/TromZhqwUtKiE+shd +OxtYk8EXlFXIC+OCeYSf8wCENO7cMdWP8vpPlkwGqnj73mSiI80fPsWMvDdUDrta +clXvyFu1cvh43zcgTFeRc5JzrBh3Q4IgaezprClG5QtO+DdziZaKHG29777YtvTK +wP1H8K4LWCDFyB02rpeNUIMmJCn3nTsPBQIDAQABo2MwYTAPBgNVHRMBAf8EBTAD +AQH/MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBRvjmKLk0Ow4UD2p8P98Q+4 +DxU4pTAdBgNVHQ4EFgQUb45ii5NDsOFA9qfD/fEPuA8VOKUwDQYJKoZIhvcNAQEL +BQADggIBAKwsKUF9+lz1GpUYvyypiqkkVHX1uECry6gkUSsYP2OprphWKwVDIqO3 +10aewCoSPY6WlkDfDDOLazeROpW7OSltwAJsipQLBwJNGD77+3v1dj2b9l4wBlgz +Hqp41eZUBDqyggmNzhYzWUUo8aWjlw5DI/0LIICQ/+Mmz7hkkeUFjxOgdg3XNwwQ +iJb0Pr6VvfHDffCjw3lHC1ySFWPtUnWK50Zpy1FVCypM9fJkT6lc/2cyjlUtMoIc +gC9qkfjLvH4YoiaoLqNTKIftV+Vlek4ASltOU8liNr3CjlvrzG4ngRhZi0Rjn9UM +ZfQpZX+RLOV/fuiJz48gy20HQhFRJjKKLjpHE7iNvUcNCfAWpO2Whi4Z2L6MOuhF +LhG6rlrnub+xzI/goP+4s9GFe3lmozm1O2bYQL7Pt2eLSMkZJVX8vY3PXtpOpvJp +zv1/THfQwUY1mFwjmwJFQ5Ra3bxHrSL+ul4vkSkphnsh3m5kt8sNjzdbowhq6/Td +Ao9QAwKxuDdollDruF/UKIqlIgyKhPBZLtU30WHlQnNYKoH3dtvi4k0NX/a3vgW0 +rk4N3hY9A4GzJl5LuEsAz/+MF7psYC0nhzck5npgL7XTgwSqT0N1osGDsieYK7EO +gLrAhV5Cud+xYJHT6xh+cHiudoO+cVrQkOPKwRYlZ0rwtnu64ZzZ +-----END CERTIFICATE----- diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi/core.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi/core.py new file mode 100644 index 0000000..1c9661c --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi/core.py @@ -0,0 +1,83 @@ +""" +certifi.py +~~~~~~~~~~ + +This module returns the installation location of cacert.pem or its contents. +""" +import sys +import atexit + +def exit_cacert_ctx() -> None: + _CACERT_CTX.__exit__(None, None, None) # type: ignore[union-attr] + + +if sys.version_info >= (3, 11): + + from importlib.resources import as_file, files + + _CACERT_CTX = None + _CACERT_PATH = None + + def where() -> str: + # This is slightly terrible, but we want to delay extracting the file + # in cases where we're inside of a zipimport situation until someone + # actually calls where(), but we don't want to re-extract the file + # on every call of where(), so we'll do it once then store it in a + # global variable. + global _CACERT_CTX + global _CACERT_PATH + if _CACERT_PATH is None: + # This is slightly janky, the importlib.resources API wants you to + # manage the cleanup of this file, so it doesn't actually return a + # path, it returns a context manager that will give you the path + # when you enter it and will do any cleanup when you leave it. In + # the common case of not needing a temporary file, it will just + # return the file system location and the __exit__() is a no-op. + # + # We also have to hold onto the actual context manager, because + # it will do the cleanup whenever it gets garbage collected, so + # we will also store that at the global level as well. + _CACERT_CTX = as_file(files("certifi").joinpath("cacert.pem")) + _CACERT_PATH = str(_CACERT_CTX.__enter__()) + atexit.register(exit_cacert_ctx) + + return _CACERT_PATH + + def contents() -> str: + return files("certifi").joinpath("cacert.pem").read_text(encoding="ascii") + +else: + + from importlib.resources import path as get_path, read_text + + _CACERT_CTX = None + _CACERT_PATH = None + + def where() -> str: + # This is slightly terrible, but we want to delay extracting the + # file in cases where we're inside of a zipimport situation until + # someone actually calls where(), but we don't want to re-extract + # the file on every call of where(), so we'll do it once then store + # it in a global variable. + global _CACERT_CTX + global _CACERT_PATH + if _CACERT_PATH is None: + # This is slightly janky, the importlib.resources API wants you + # to manage the cleanup of this file, so it doesn't actually + # return a path, it returns a context manager that will give + # you the path when you enter it and will do any cleanup when + # you leave it. In the common case of not needing a temporary + # file, it will just return the file system location and the + # __exit__() is a no-op. + # + # We also have to hold onto the actual context manager, because + # it will do the cleanup whenever it gets garbage collected, so + # we will also store that at the global level as well. + _CACERT_CTX = get_path("certifi", "cacert.pem") + _CACERT_PATH = str(_CACERT_CTX.__enter__()) + atexit.register(exit_cacert_ctx) + + return _CACERT_PATH + + def contents() -> str: + return read_text("certifi", "cacert.pem", encoding="ascii") diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi/py.typed b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/certifi/py.typed new file mode 100644 index 0000000..e69de29 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer-2.0.12.dist-info/INSTALLER b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer-2.0.12.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer-2.0.12.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer-2.0.12.dist-info/LICENSE b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer-2.0.12.dist-info/LICENSE new file mode 100644 index 0000000..ad82355 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer-2.0.12.dist-info/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 TAHRI Ahmed R. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer-2.0.12.dist-info/METADATA b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer-2.0.12.dist-info/METADATA new file mode 100644 index 0000000..1b04ed4 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer-2.0.12.dist-info/METADATA @@ -0,0 +1,269 @@ +Metadata-Version: 2.1 +Name: charset-normalizer +Version: 2.0.12 +Summary: The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet. +Home-page: https://github.com/ousret/charset_normalizer +Author: Ahmed TAHRI @Ousret +Author-email: ahmed.tahri@cloudnursery.dev +License: MIT +Project-URL: Bug Reports, https://github.com/Ousret/charset_normalizer/issues +Project-URL: Documentation, https://charset-normalizer.readthedocs.io/en/latest +Keywords: encoding,i18n,txt,text,charset,charset-detector,normalization,unicode,chardet +Platform: UNKNOWN +Classifier: License :: OSI Approved :: MIT License +Classifier: Intended Audience :: Developers +Classifier: Topic :: Software Development :: Libraries :: Python Modules +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Topic :: Text Processing :: Linguistic +Classifier: Topic :: Utilities +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Typing :: Typed +Requires-Python: >=3.5.0 +Description-Content-Type: text/markdown +License-File: LICENSE +Provides-Extra: unicode_backport +Requires-Dist: unicodedata2 ; extra == 'unicode_backport' + + +

      Charset Detection, for Everyone 👋

      + +

      + The Real First Universal Charset Detector
      + + + + + + + + Download Count Total + +

      + +> A library that helps you read text from an unknown charset encoding.
      Motivated by `chardet`, +> I'm trying to resolve the issue by taking a new approach. +> All IANA character set names for which the Python core library provides codecs are supported. + +

      + >>>>> 👉 Try Me Online Now, Then Adopt Me 👈 <<<<< +

      + +This project offers you an alternative to **Universal Charset Encoding Detector**, also known as **Chardet**. + +| Feature | [Chardet](https://github.com/chardet/chardet) | Charset Normalizer | [cChardet](https://github.com/PyYoshi/cChardet) | +| ------------- | :-------------: | :------------------: | :------------------: | +| `Fast` | ❌
      | ✅
      | ✅
      | +| `Universal**` | ❌ | ✅ | ❌ | +| `Reliable` **without** distinguishable standards | ❌ | ✅ | ✅ | +| `Reliable` **with** distinguishable standards | ✅ | ✅ | ✅ | +| `Free & Open` | ✅ | ✅ | ✅ | +| `License` | LGPL-2.1 | MIT | MPL-1.1 +| `Native Python` | ✅ | ✅ | ❌ | +| `Detect spoken language` | ❌ | ✅ | N/A | +| `Supported Encoding` | 30 | :tada: [93](https://charset-normalizer.readthedocs.io/en/latest/user/support.html#supported-encodings) | 40 + +

      +Reading Normalized TextCat Reading Text + +*\*\* : They are clearly using specific code for a specific encoding even if covering most of used one*
      +Did you got there because of the logs? See [https://charset-normalizer.readthedocs.io/en/latest/user/miscellaneous.html](https://charset-normalizer.readthedocs.io/en/latest/user/miscellaneous.html) + +## ⭐ Your support + +*Fork, test-it, star-it, submit your ideas! We do listen.* + +## ⚡ Performance + +This package offer better performance than its counterpart Chardet. Here are some numbers. + +| Package | Accuracy | Mean per file (ms) | File per sec (est) | +| ------------- | :-------------: | :------------------: | :------------------: | +| [chardet](https://github.com/chardet/chardet) | 92 % | 220 ms | 5 file/sec | +| charset-normalizer | **98 %** | **40 ms** | 25 file/sec | + +| Package | 99th percentile | 95th percentile | 50th percentile | +| ------------- | :-------------: | :------------------: | :------------------: | +| [chardet](https://github.com/chardet/chardet) | 1115 ms | 300 ms | 27 ms | +| charset-normalizer | 460 ms | 240 ms | 18 ms | + +Chardet's performance on larger file (1MB+) are very poor. Expect huge difference on large payload. + +> Stats are generated using 400+ files using default parameters. More details on used files, see GHA workflows. +> And yes, these results might change at any time. The dataset can be updated to include more files. +> The actual delays heavily depends on your CPU capabilities. The factors should remain the same. + +[cchardet](https://github.com/PyYoshi/cChardet) is a non-native (cpp binding) and unmaintained faster alternative with +a better accuracy than chardet but lower than this package. If speed is the most important factor, you should try it. + +## ✨ Installation + +Using PyPi for latest stable +```sh +pip install charset-normalizer -U +``` + +If you want a more up-to-date `unicodedata` than the one available in your Python setup. +```sh +pip install charset-normalizer[unicode_backport] -U +``` + +## 🚀 Basic Usage + +### CLI +This package comes with a CLI. + +``` +usage: normalizer [-h] [-v] [-a] [-n] [-m] [-r] [-f] [-t THRESHOLD] + file [file ...] + +The Real First Universal Charset Detector. Discover originating encoding used +on text file. Normalize text to unicode. + +positional arguments: + files File(s) to be analysed + +optional arguments: + -h, --help show this help message and exit + -v, --verbose Display complementary information about file if any. + Stdout will contain logs about the detection process. + -a, --with-alternative + Output complementary possibilities if any. Top-level + JSON WILL be a list. + -n, --normalize Permit to normalize input file. If not set, program + does not write anything. + -m, --minimal Only output the charset detected to STDOUT. Disabling + JSON output. + -r, --replace Replace file when trying to normalize it instead of + creating a new one. + -f, --force Replace file without asking if you are sure, use this + flag with caution. + -t THRESHOLD, --threshold THRESHOLD + Define a custom maximum amount of chaos allowed in + decoded content. 0. <= chaos <= 1. + --version Show version information and exit. +``` + +```bash +normalizer ./data/sample.1.fr.srt +``` + +:tada: Since version 1.4.0 the CLI produce easily usable stdout result in JSON format. + +```json +{ + "path": "/home/default/projects/charset_normalizer/data/sample.1.fr.srt", + "encoding": "cp1252", + "encoding_aliases": [ + "1252", + "windows_1252" + ], + "alternative_encodings": [ + "cp1254", + "cp1256", + "cp1258", + "iso8859_14", + "iso8859_15", + "iso8859_16", + "iso8859_3", + "iso8859_9", + "latin_1", + "mbcs" + ], + "language": "French", + "alphabets": [ + "Basic Latin", + "Latin-1 Supplement" + ], + "has_sig_or_bom": false, + "chaos": 0.149, + "coherence": 97.152, + "unicode_path": null, + "is_preferred": true +} +``` + +### Python +*Just print out normalized text* +```python +from charset_normalizer import from_path + +results = from_path('./my_subtitle.srt') + +print(str(results.best())) +``` + +*Normalize any text file* +```python +from charset_normalizer import normalize +try: + normalize('./my_subtitle.srt') # should write to disk my_subtitle-***.srt +except IOError as e: + print('Sadly, we are unable to perform charset normalization.', str(e)) +``` + +*Upgrade your code without effort* +```python +from charset_normalizer import detect +``` + +The above code will behave the same as **chardet**. We ensure that we offer the best (reasonable) BC result possible. + +See the docs for advanced usage : [readthedocs.io](https://charset-normalizer.readthedocs.io/en/latest/) + +## 😇 Why + +When I started using Chardet, I noticed that it was not suited to my expectations, and I wanted to propose a +reliable alternative using a completely different method. Also! I never back down on a good challenge! + +I **don't care** about the **originating charset** encoding, because **two different tables** can +produce **two identical rendered string.** +What I want is to get readable text, the best I can. + +In a way, **I'm brute forcing text decoding.** How cool is that ? 😎 + +Don't confuse package **ftfy** with charset-normalizer or chardet. ftfy goal is to repair unicode string whereas charset-normalizer to convert raw file in unknown encoding to unicode. + +## 🍰 How + + - Discard all charset encoding table that could not fit the binary content. + - Measure chaos, or the mess once opened (by chunks) with a corresponding charset encoding. + - Extract matches with the lowest mess detected. + - Additionally, we measure coherence / probe for a language. + +**Wait a minute**, what is chaos/mess and coherence according to **YOU ?** + +*Chaos :* I opened hundred of text files, **written by humans**, with the wrong encoding table. **I observed**, then +**I established** some ground rules about **what is obvious** when **it seems like** a mess. + I know that my interpretation of what is chaotic is very subjective, feel free to contribute in order to + improve or rewrite it. + +*Coherence :* For each language there is on earth, we have computed ranked letter appearance occurrences (the best we can). So I thought +that intel is worth something here. So I use those records against decoded text to check if I can detect intelligent design. + +## ⚡ Known limitations + + - Language detection is unreliable when text contains two or more languages sharing identical letters. (eg. HTML (english tags) + Turkish content (Sharing Latin characters)) + - Every charset detector heavily depends on sufficient content. In common cases, do not bother run detection on very tiny content. + +## 👤 Contributing + +Contributions, issues and feature requests are very much welcome.
      +Feel free to check [issues page](https://github.com/ousret/charset_normalizer/issues) if you want to contribute. + +## 📝 License + +Copyright © 2019 [Ahmed TAHRI @Ousret](https://github.com/Ousret).
      +This project is [MIT](https://github.com/Ousret/charset_normalizer/blob/master/LICENSE) licensed. + +Characters frequencies used in this project © 2012 [Denny Vrandečić](http://simia.net/letters/) + + diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer-2.0.12.dist-info/RECORD b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer-2.0.12.dist-info/RECORD new file mode 100644 index 0000000..2195329 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer-2.0.12.dist-info/RECORD @@ -0,0 +1,22 @@ +../../bin/normalizer,sha256=ogoCfwDXKDWFNNXUVlqX7bTuxYv9AWxMpBCyxiw-pNk,247 +charset_normalizer-2.0.12.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +charset_normalizer-2.0.12.dist-info/LICENSE,sha256=6zGgxaT7Cbik4yBV0lweX5w1iidS_vPNcgIT0cz-4kE,1070 +charset_normalizer-2.0.12.dist-info/METADATA,sha256=eX-U3s7nb6wcvXZFyM1mdBf1yz4I0msVBgNvLEscAbo,11713 +charset_normalizer-2.0.12.dist-info/RECORD,, +charset_normalizer-2.0.12.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +charset_normalizer-2.0.12.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92 +charset_normalizer-2.0.12.dist-info/entry_points.txt,sha256=5AJq_EPtGGUwJPgQLnBZfbVr-FYCIwT0xP7dIEZO3NI,77 +charset_normalizer-2.0.12.dist-info/top_level.txt,sha256=7ASyzePr8_xuZWJsnqJjIBtyV8vhEo0wBCv1MPRRi3Q,19 +charset_normalizer/__init__.py,sha256=x2A2OW29MBcqdxsvy6t1wzkUlH3ma0guxL6ZCfS8J94,1790 +charset_normalizer/api.py,sha256=r__Wz85F5pYOkRwEY5imXY_pCZ2Nil1DkdaAJY7T5o0,20303 +charset_normalizer/assets/__init__.py,sha256=FPnfk8limZRb8ZIUQcTvPEcbuM1eqOdWGw0vbWGycDs,25485 +charset_normalizer/cd.py,sha256=a9Kzzd9tHl_W08ExbCFMmRJqdo2k7EBQ8Z_3y9DmYsg,11076 +charset_normalizer/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +charset_normalizer/cli/normalizer.py,sha256=LkeFIRc1l28rOgXpEby695x0bcKQv4D8z9FmA3Z2c3A,9364 +charset_normalizer/constant.py,sha256=51u_RS10I1vYVpBao__xHqf--HHNrR6me1A1se5r5Y0,19449 +charset_normalizer/legacy.py,sha256=XKeZOts_HdYQU_Jb3C9ZfOjY2CiUL132k9_nXer8gig,3384 +charset_normalizer/md.py,sha256=WEwnu2MyIiMeEaorRduqcTxGjIBclWIG3i-9_UL6LLs,18191 +charset_normalizer/models.py,sha256=XrGpVxfonhcilIWC1WeiP3-ZORGEe_RG3sgrfPLl9qM,13303 +charset_normalizer/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +charset_normalizer/utils.py,sha256=AWSL0z1B42IwdLfjX4ZMASA9cTUsTp0PweCdW98SI-4,9308 +charset_normalizer/version.py,sha256=uxO2cT0YIavQv4dQlNGmHPIOOwOa-exspxXi3IR7dck,80 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer-2.0.12.dist-info/REQUESTED b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer-2.0.12.dist-info/REQUESTED new file mode 100644 index 0000000..e69de29 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer-2.0.12.dist-info/WHEEL b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer-2.0.12.dist-info/WHEEL new file mode 100644 index 0000000..becc9a6 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer-2.0.12.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.37.1) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer-2.0.12.dist-info/entry_points.txt b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer-2.0.12.dist-info/entry_points.txt new file mode 100644 index 0000000..a67f60b --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer-2.0.12.dist-info/entry_points.txt @@ -0,0 +1,3 @@ +[console_scripts] +normalizer = charset_normalizer.cli.normalizer:cli_detect + diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer-2.0.12.dist-info/top_level.txt b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer-2.0.12.dist-info/top_level.txt new file mode 100644 index 0000000..66958f0 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer-2.0.12.dist-info/top_level.txt @@ -0,0 +1 @@ +charset_normalizer diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer/__init__.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer/__init__.py new file mode 100644 index 0000000..1aea851 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer/__init__.py @@ -0,0 +1,56 @@ +# -*- coding: utf_8 -*- +""" +Charset-Normalizer +~~~~~~~~~~~~~~ +The Real First Universal Charset Detector. +A library that helps you read text from an unknown charset encoding. +Motivated by chardet, This package is trying to resolve the issue by taking a new approach. +All IANA character set names for which the Python core library provides codecs are supported. + +Basic usage: + >>> from charset_normalizer import from_bytes + >>> results = from_bytes('Bсеки човек има право на образование. Oбразованието!'.encode('utf_8')) + >>> best_guess = results.best() + >>> str(best_guess) + 'Bсеки човек има право на образование. Oбразованието!' + +Others methods and usages are available - see the full documentation +at . +:copyright: (c) 2021 by Ahmed TAHRI +:license: MIT, see LICENSE for more details. +""" +import logging + +from .api import from_bytes, from_fp, from_path, normalize +from .legacy import ( + CharsetDetector, + CharsetDoctor, + CharsetNormalizerMatch, + CharsetNormalizerMatches, + detect, +) +from .models import CharsetMatch, CharsetMatches +from .utils import set_logging_handler +from .version import VERSION, __version__ + +__all__ = ( + "from_fp", + "from_path", + "from_bytes", + "normalize", + "detect", + "CharsetMatch", + "CharsetMatches", + "CharsetNormalizerMatch", + "CharsetNormalizerMatches", + "CharsetDetector", + "CharsetDoctor", + "__version__", + "VERSION", + "set_logging_handler", +) + +# Attach a NullHandler to the top level logger by default +# https://docs.python.org/3.3/howto/logging.html#configuring-logging-for-a-library + +logging.getLogger("charset_normalizer").addHandler(logging.NullHandler()) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer/api.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer/api.py new file mode 100644 index 0000000..bdc8ed9 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer/api.py @@ -0,0 +1,608 @@ +import logging +from os.path import basename, splitext +from typing import BinaryIO, List, Optional, Set + +try: + from os import PathLike +except ImportError: # pragma: no cover + PathLike = str # type: ignore + +from .cd import ( + coherence_ratio, + encoding_languages, + mb_encoding_languages, + merge_coherence_ratios, +) +from .constant import IANA_SUPPORTED, TOO_BIG_SEQUENCE, TOO_SMALL_SEQUENCE, TRACE +from .md import mess_ratio +from .models import CharsetMatch, CharsetMatches +from .utils import ( + any_specified_encoding, + iana_name, + identify_sig_or_bom, + is_cp_similar, + is_multi_byte_encoding, + should_strip_sig_or_bom, +) + +# Will most likely be controversial +# logging.addLevelName(TRACE, "TRACE") +logger = logging.getLogger("charset_normalizer") +explain_handler = logging.StreamHandler() +explain_handler.setFormatter( + logging.Formatter("%(asctime)s | %(levelname)s | %(message)s") +) + + +def from_bytes( + sequences: bytes, + steps: int = 5, + chunk_size: int = 512, + threshold: float = 0.2, + cp_isolation: List[str] = None, + cp_exclusion: List[str] = None, + preemptive_behaviour: bool = True, + explain: bool = False, +) -> CharsetMatches: + """ + Given a raw bytes sequence, return the best possibles charset usable to render str objects. + If there is no results, it is a strong indicator that the source is binary/not text. + By default, the process will extract 5 blocs of 512o each to assess the mess and coherence of a given sequence. + And will give up a particular code page after 20% of measured mess. Those criteria are customizable at will. + + The preemptive behavior DOES NOT replace the traditional detection workflow, it prioritize a particular code page + but never take it for granted. Can improve the performance. + + You may want to focus your attention to some code page or/and not others, use cp_isolation and cp_exclusion for that + purpose. + + This function will strip the SIG in the payload/sequence every time except on UTF-16, UTF-32. + By default the library does not setup any handler other than the NullHandler, if you choose to set the 'explain' + toggle to True it will alter the logger configuration to add a StreamHandler that is suitable for debugging. + Custom logging format and handler can be set manually. + """ + + if not isinstance(sequences, (bytearray, bytes)): + raise TypeError( + "Expected object of type bytes or bytearray, got: {0}".format( + type(sequences) + ) + ) + + if explain: + previous_logger_level = logger.level # type: int + logger.addHandler(explain_handler) + logger.setLevel(TRACE) + + length = len(sequences) # type: int + + if length == 0: + logger.debug("Encoding detection on empty bytes, assuming utf_8 intention.") + if explain: + logger.removeHandler(explain_handler) + logger.setLevel(previous_logger_level or logging.WARNING) + return CharsetMatches([CharsetMatch(sequences, "utf_8", 0.0, False, [], "")]) + + if cp_isolation is not None: + logger.log( + TRACE, + "cp_isolation is set. use this flag for debugging purpose. " + "limited list of encoding allowed : %s.", + ", ".join(cp_isolation), + ) + cp_isolation = [iana_name(cp, False) for cp in cp_isolation] + else: + cp_isolation = [] + + if cp_exclusion is not None: + logger.log( + TRACE, + "cp_exclusion is set. use this flag for debugging purpose. " + "limited list of encoding excluded : %s.", + ", ".join(cp_exclusion), + ) + cp_exclusion = [iana_name(cp, False) for cp in cp_exclusion] + else: + cp_exclusion = [] + + if length <= (chunk_size * steps): + logger.log( + TRACE, + "override steps (%i) and chunk_size (%i) as content does not fit (%i byte(s) given) parameters.", + steps, + chunk_size, + length, + ) + steps = 1 + chunk_size = length + + if steps > 1 and length / steps < chunk_size: + chunk_size = int(length / steps) + + is_too_small_sequence = len(sequences) < TOO_SMALL_SEQUENCE # type: bool + is_too_large_sequence = len(sequences) >= TOO_BIG_SEQUENCE # type: bool + + if is_too_small_sequence: + logger.log( + TRACE, + "Trying to detect encoding from a tiny portion of ({}) byte(s).".format( + length + ), + ) + elif is_too_large_sequence: + logger.log( + TRACE, + "Using lazy str decoding because the payload is quite large, ({}) byte(s).".format( + length + ), + ) + + prioritized_encodings = [] # type: List[str] + + specified_encoding = ( + any_specified_encoding(sequences) if preemptive_behaviour else None + ) # type: Optional[str] + + if specified_encoding is not None: + prioritized_encodings.append(specified_encoding) + logger.log( + TRACE, + "Detected declarative mark in sequence. Priority +1 given for %s.", + specified_encoding, + ) + + tested = set() # type: Set[str] + tested_but_hard_failure = [] # type: List[str] + tested_but_soft_failure = [] # type: List[str] + + fallback_ascii = None # type: Optional[CharsetMatch] + fallback_u8 = None # type: Optional[CharsetMatch] + fallback_specified = None # type: Optional[CharsetMatch] + + results = CharsetMatches() # type: CharsetMatches + + sig_encoding, sig_payload = identify_sig_or_bom(sequences) + + if sig_encoding is not None: + prioritized_encodings.append(sig_encoding) + logger.log( + TRACE, + "Detected a SIG or BOM mark on first %i byte(s). Priority +1 given for %s.", + len(sig_payload), + sig_encoding, + ) + + prioritized_encodings.append("ascii") + + if "utf_8" not in prioritized_encodings: + prioritized_encodings.append("utf_8") + + for encoding_iana in prioritized_encodings + IANA_SUPPORTED: + + if cp_isolation and encoding_iana not in cp_isolation: + continue + + if cp_exclusion and encoding_iana in cp_exclusion: + continue + + if encoding_iana in tested: + continue + + tested.add(encoding_iana) + + decoded_payload = None # type: Optional[str] + bom_or_sig_available = sig_encoding == encoding_iana # type: bool + strip_sig_or_bom = bom_or_sig_available and should_strip_sig_or_bom( + encoding_iana + ) # type: bool + + if encoding_iana in {"utf_16", "utf_32"} and not bom_or_sig_available: + logger.log( + TRACE, + "Encoding %s wont be tested as-is because it require a BOM. Will try some sub-encoder LE/BE.", + encoding_iana, + ) + continue + + try: + is_multi_byte_decoder = is_multi_byte_encoding(encoding_iana) # type: bool + except (ModuleNotFoundError, ImportError): + logger.log( + TRACE, + "Encoding %s does not provide an IncrementalDecoder", + encoding_iana, + ) + continue + + try: + if is_too_large_sequence and is_multi_byte_decoder is False: + str( + sequences[: int(50e4)] + if strip_sig_or_bom is False + else sequences[len(sig_payload) : int(50e4)], + encoding=encoding_iana, + ) + else: + decoded_payload = str( + sequences + if strip_sig_or_bom is False + else sequences[len(sig_payload) :], + encoding=encoding_iana, + ) + except (UnicodeDecodeError, LookupError) as e: + if not isinstance(e, LookupError): + logger.log( + TRACE, + "Code page %s does not fit given bytes sequence at ALL. %s", + encoding_iana, + str(e), + ) + tested_but_hard_failure.append(encoding_iana) + continue + + similar_soft_failure_test = False # type: bool + + for encoding_soft_failed in tested_but_soft_failure: + if is_cp_similar(encoding_iana, encoding_soft_failed): + similar_soft_failure_test = True + break + + if similar_soft_failure_test: + logger.log( + TRACE, + "%s is deemed too similar to code page %s and was consider unsuited already. Continuing!", + encoding_iana, + encoding_soft_failed, + ) + continue + + r_ = range( + 0 if not bom_or_sig_available else len(sig_payload), + length, + int(length / steps), + ) + + multi_byte_bonus = ( + is_multi_byte_decoder + and decoded_payload is not None + and len(decoded_payload) < length + ) # type: bool + + if multi_byte_bonus: + logger.log( + TRACE, + "Code page %s is a multi byte encoding table and it appear that at least one character " + "was encoded using n-bytes.", + encoding_iana, + ) + + max_chunk_gave_up = int(len(r_) / 4) # type: int + + max_chunk_gave_up = max(max_chunk_gave_up, 2) + early_stop_count = 0 # type: int + lazy_str_hard_failure = False + + md_chunks = [] # type: List[str] + md_ratios = [] + + for i in r_: + if i + chunk_size > length + 8: + continue + + cut_sequence = sequences[i : i + chunk_size] + + if bom_or_sig_available and strip_sig_or_bom is False: + cut_sequence = sig_payload + cut_sequence + + try: + chunk = cut_sequence.decode( + encoding_iana, + errors="ignore" if is_multi_byte_decoder else "strict", + ) # type: str + except UnicodeDecodeError as e: # Lazy str loading may have missed something there + logger.log( + TRACE, + "LazyStr Loading: After MD chunk decode, code page %s does not fit given bytes sequence at ALL. %s", + encoding_iana, + str(e), + ) + early_stop_count = max_chunk_gave_up + lazy_str_hard_failure = True + break + + # multi-byte bad cutting detector and adjustment + # not the cleanest way to perform that fix but clever enough for now. + if is_multi_byte_decoder and i > 0 and sequences[i] >= 0x80: + + chunk_partial_size_chk = min(chunk_size, 16) # type: int + + if ( + decoded_payload + and chunk[:chunk_partial_size_chk] not in decoded_payload + ): + for j in range(i, i - 4, -1): + cut_sequence = sequences[j : i + chunk_size] + + if bom_or_sig_available and strip_sig_or_bom is False: + cut_sequence = sig_payload + cut_sequence + + chunk = cut_sequence.decode(encoding_iana, errors="ignore") + + if chunk[:chunk_partial_size_chk] in decoded_payload: + break + + md_chunks.append(chunk) + + md_ratios.append(mess_ratio(chunk, threshold)) + + if md_ratios[-1] >= threshold: + early_stop_count += 1 + + if (early_stop_count >= max_chunk_gave_up) or ( + bom_or_sig_available and strip_sig_or_bom is False + ): + break + + # We might want to check the sequence again with the whole content + # Only if initial MD tests passes + if ( + not lazy_str_hard_failure + and is_too_large_sequence + and not is_multi_byte_decoder + ): + try: + sequences[int(50e3) :].decode(encoding_iana, errors="strict") + except UnicodeDecodeError as e: + logger.log( + TRACE, + "LazyStr Loading: After final lookup, code page %s does not fit given bytes sequence at ALL. %s", + encoding_iana, + str(e), + ) + tested_but_hard_failure.append(encoding_iana) + continue + + mean_mess_ratio = ( + sum(md_ratios) / len(md_ratios) if md_ratios else 0.0 + ) # type: float + if mean_mess_ratio >= threshold or early_stop_count >= max_chunk_gave_up: + tested_but_soft_failure.append(encoding_iana) + logger.log( + TRACE, + "%s was excluded because of initial chaos probing. Gave up %i time(s). " + "Computed mean chaos is %f %%.", + encoding_iana, + early_stop_count, + round(mean_mess_ratio * 100, ndigits=3), + ) + # Preparing those fallbacks in case we got nothing. + if ( + encoding_iana in ["ascii", "utf_8", specified_encoding] + and not lazy_str_hard_failure + ): + fallback_entry = CharsetMatch( + sequences, encoding_iana, threshold, False, [], decoded_payload + ) + if encoding_iana == specified_encoding: + fallback_specified = fallback_entry + elif encoding_iana == "ascii": + fallback_ascii = fallback_entry + else: + fallback_u8 = fallback_entry + continue + + logger.log( + TRACE, + "%s passed initial chaos probing. Mean measured chaos is %f %%", + encoding_iana, + round(mean_mess_ratio * 100, ndigits=3), + ) + + if not is_multi_byte_decoder: + target_languages = encoding_languages(encoding_iana) # type: List[str] + else: + target_languages = mb_encoding_languages(encoding_iana) + + if target_languages: + logger.log( + TRACE, + "{} should target any language(s) of {}".format( + encoding_iana, str(target_languages) + ), + ) + + cd_ratios = [] + + # We shall skip the CD when its about ASCII + # Most of the time its not relevant to run "language-detection" on it. + if encoding_iana != "ascii": + for chunk in md_chunks: + chunk_languages = coherence_ratio( + chunk, 0.1, ",".join(target_languages) if target_languages else None + ) + + cd_ratios.append(chunk_languages) + + cd_ratios_merged = merge_coherence_ratios(cd_ratios) + + if cd_ratios_merged: + logger.log( + TRACE, + "We detected language {} using {}".format( + cd_ratios_merged, encoding_iana + ), + ) + + results.append( + CharsetMatch( + sequences, + encoding_iana, + mean_mess_ratio, + bom_or_sig_available, + cd_ratios_merged, + decoded_payload, + ) + ) + + if ( + encoding_iana in [specified_encoding, "ascii", "utf_8"] + and mean_mess_ratio < 0.1 + ): + logger.debug( + "Encoding detection: %s is most likely the one.", encoding_iana + ) + if explain: + logger.removeHandler(explain_handler) + logger.setLevel(previous_logger_level) + return CharsetMatches([results[encoding_iana]]) + + if encoding_iana == sig_encoding: + logger.debug( + "Encoding detection: %s is most likely the one as we detected a BOM or SIG within " + "the beginning of the sequence.", + encoding_iana, + ) + if explain: + logger.removeHandler(explain_handler) + logger.setLevel(previous_logger_level) + return CharsetMatches([results[encoding_iana]]) + + if len(results) == 0: + if fallback_u8 or fallback_ascii or fallback_specified: + logger.log( + TRACE, + "Nothing got out of the detection process. Using ASCII/UTF-8/Specified fallback.", + ) + + if fallback_specified: + logger.debug( + "Encoding detection: %s will be used as a fallback match", + fallback_specified.encoding, + ) + results.append(fallback_specified) + elif ( + (fallback_u8 and fallback_ascii is None) + or ( + fallback_u8 + and fallback_ascii + and fallback_u8.fingerprint != fallback_ascii.fingerprint + ) + or (fallback_u8 is not None) + ): + logger.debug("Encoding detection: utf_8 will be used as a fallback match") + results.append(fallback_u8) + elif fallback_ascii: + logger.debug("Encoding detection: ascii will be used as a fallback match") + results.append(fallback_ascii) + + if results: + logger.debug( + "Encoding detection: Found %s as plausible (best-candidate) for content. With %i alternatives.", + results.best().encoding, # type: ignore + len(results) - 1, + ) + else: + logger.debug("Encoding detection: Unable to determine any suitable charset.") + + if explain: + logger.removeHandler(explain_handler) + logger.setLevel(previous_logger_level) + + return results + + +def from_fp( + fp: BinaryIO, + steps: int = 5, + chunk_size: int = 512, + threshold: float = 0.20, + cp_isolation: List[str] = None, + cp_exclusion: List[str] = None, + preemptive_behaviour: bool = True, + explain: bool = False, +) -> CharsetMatches: + """ + Same thing than the function from_bytes but using a file pointer that is already ready. + Will not close the file pointer. + """ + return from_bytes( + fp.read(), + steps, + chunk_size, + threshold, + cp_isolation, + cp_exclusion, + preemptive_behaviour, + explain, + ) + + +def from_path( + path: PathLike, + steps: int = 5, + chunk_size: int = 512, + threshold: float = 0.20, + cp_isolation: List[str] = None, + cp_exclusion: List[str] = None, + preemptive_behaviour: bool = True, + explain: bool = False, +) -> CharsetMatches: + """ + Same thing than the function from_bytes but with one extra step. Opening and reading given file path in binary mode. + Can raise IOError. + """ + with open(path, "rb") as fp: + return from_fp( + fp, + steps, + chunk_size, + threshold, + cp_isolation, + cp_exclusion, + preemptive_behaviour, + explain, + ) + + +def normalize( + path: PathLike, + steps: int = 5, + chunk_size: int = 512, + threshold: float = 0.20, + cp_isolation: List[str] = None, + cp_exclusion: List[str] = None, + preemptive_behaviour: bool = True, +) -> CharsetMatch: + """ + Take a (text-based) file path and try to create another file next to it, this time using UTF-8. + """ + results = from_path( + path, + steps, + chunk_size, + threshold, + cp_isolation, + cp_exclusion, + preemptive_behaviour, + ) + + filename = basename(path) + target_extensions = list(splitext(filename)) + + if len(results) == 0: + raise IOError( + 'Unable to normalize "{}", no encoding charset seems to fit.'.format( + filename + ) + ) + + result = results.best() + + target_extensions[0] += "-" + result.encoding # type: ignore + + with open( + "{}".format(str(path).replace(filename, "".join(target_extensions))), "wb" + ) as fp: + fp.write(result.output()) # type: ignore + + return result # type: ignore diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer/assets/__init__.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer/assets/__init__.py new file mode 100644 index 0000000..b2e56ff --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer/assets/__init__.py @@ -0,0 +1,1244 @@ +# -*- coding: utf_8 -*- +from collections import OrderedDict + +FREQUENCIES = OrderedDict( + [ + ( + "English", + [ + "e", + "a", + "t", + "i", + "o", + "n", + "s", + "r", + "h", + "l", + "d", + "c", + "u", + "m", + "f", + "p", + "g", + "w", + "y", + "b", + "v", + "k", + "x", + "j", + "z", + "q", + ], + ), + ( + "German", + [ + "e", + "n", + "i", + "r", + "s", + "t", + "a", + "d", + "h", + "u", + "l", + "g", + "o", + "c", + "m", + "b", + "f", + "k", + "w", + "z", + "p", + "v", + "ü", + "ä", + "ö", + "j", + ], + ), + ( + "French", + [ + "e", + "a", + "s", + "n", + "i", + "t", + "r", + "l", + "u", + "o", + "d", + "c", + "p", + "m", + "é", + "v", + "g", + "f", + "b", + "h", + "q", + "à", + "x", + "è", + "y", + "j", + ], + ), + ( + "Dutch", + [ + "e", + "n", + "a", + "i", + "r", + "t", + "o", + "d", + "s", + "l", + "g", + "h", + "v", + "m", + "u", + "k", + "c", + "p", + "b", + "w", + "j", + "z", + "f", + "y", + "x", + "ë", + ], + ), + ( + "Italian", + [ + "e", + "i", + "a", + "o", + "n", + "l", + "t", + "r", + "s", + "c", + "d", + "u", + "p", + "m", + "g", + "v", + "f", + "b", + "z", + "h", + "q", + "è", + "à", + "k", + "y", + "ò", + ], + ), + ( + "Polish", + [ + "a", + "i", + "o", + "e", + "n", + "r", + "z", + "w", + "s", + "c", + "t", + "k", + "y", + "d", + "p", + "m", + "u", + "l", + "j", + "ł", + "g", + "b", + "h", + "ą", + "ę", + "ó", + ], + ), + ( + "Spanish", + [ + "e", + "a", + "o", + "n", + "s", + "r", + "i", + "l", + "d", + "t", + "c", + "u", + "m", + "p", + "b", + "g", + "v", + "f", + "y", + "ó", + "h", + "q", + "í", + "j", + "z", + "á", + ], + ), + ( + "Russian", + [ + "о", + "а", + "е", + "и", + "н", + "с", + "т", + "р", + "в", + "л", + "к", + "м", + "д", + "п", + "у", + "г", + "я", + "ы", + "з", + "б", + "й", + "ь", + "ч", + "х", + "ж", + "ц", + ], + ), + ( + "Japanese", + [ + "の", + "に", + "る", + "た", + "は", + "ー", + "と", + "し", + "を", + "で", + "て", + "が", + "い", + "ン", + "れ", + "な", + "年", + "ス", + "っ", + "ル", + "か", + "ら", + "あ", + "さ", + "も", + "り", + ], + ), + ( + "Portuguese", + [ + "a", + "e", + "o", + "s", + "i", + "r", + "d", + "n", + "t", + "m", + "u", + "c", + "l", + "p", + "g", + "v", + "b", + "f", + "h", + "ã", + "q", + "é", + "ç", + "á", + "z", + "í", + ], + ), + ( + "Swedish", + [ + "e", + "a", + "n", + "r", + "t", + "s", + "i", + "l", + "d", + "o", + "m", + "k", + "g", + "v", + "h", + "f", + "u", + "p", + "ä", + "c", + "b", + "ö", + "å", + "y", + "j", + "x", + ], + ), + ( + "Chinese", + [ + "的", + "一", + "是", + "不", + "了", + "在", + "人", + "有", + "我", + "他", + "这", + "个", + "们", + "中", + "来", + "上", + "大", + "为", + "和", + "国", + "地", + "到", + "以", + "说", + "时", + "要", + "就", + "出", + "会", + ], + ), + ( + "Ukrainian", + [ + "о", + "а", + "н", + "і", + "и", + "р", + "в", + "т", + "е", + "с", + "к", + "л", + "у", + "д", + "м", + "п", + "з", + "я", + "ь", + "б", + "г", + "й", + "ч", + "х", + "ц", + "ї", + ], + ), + ( + "Norwegian", + [ + "e", + "r", + "n", + "t", + "a", + "s", + "i", + "o", + "l", + "d", + "g", + "k", + "m", + "v", + "f", + "p", + "u", + "b", + "h", + "å", + "y", + "j", + "ø", + "c", + "æ", + "w", + ], + ), + ( + "Finnish", + [ + "a", + "i", + "n", + "t", + "e", + "s", + "l", + "o", + "u", + "k", + "ä", + "m", + "r", + "v", + "j", + "h", + "p", + "y", + "d", + "ö", + "g", + "c", + "b", + "f", + "w", + "z", + ], + ), + ( + "Vietnamese", + [ + "n", + "h", + "t", + "i", + "c", + "g", + "a", + "o", + "u", + "m", + "l", + "r", + "à", + "đ", + "s", + "e", + "v", + "p", + "b", + "y", + "ư", + "d", + "á", + "k", + "ộ", + "ế", + ], + ), + ( + "Czech", + [ + "o", + "e", + "a", + "n", + "t", + "s", + "i", + "l", + "v", + "r", + "k", + "d", + "u", + "m", + "p", + "í", + "c", + "h", + "z", + "á", + "y", + "j", + "b", + "ě", + "é", + "ř", + ], + ), + ( + "Hungarian", + [ + "e", + "a", + "t", + "l", + "s", + "n", + "k", + "r", + "i", + "o", + "z", + "á", + "é", + "g", + "m", + "b", + "y", + "v", + "d", + "h", + "u", + "p", + "j", + "ö", + "f", + "c", + ], + ), + ( + "Korean", + [ + "이", + "다", + "에", + "의", + "는", + "로", + "하", + "을", + "가", + "고", + "지", + "서", + "한", + "은", + "기", + "으", + "년", + "대", + "사", + "시", + "를", + "리", + "도", + "인", + "스", + "일", + ], + ), + ( + "Indonesian", + [ + "a", + "n", + "e", + "i", + "r", + "t", + "u", + "s", + "d", + "k", + "m", + "l", + "g", + "p", + "b", + "o", + "h", + "y", + "j", + "c", + "w", + "f", + "v", + "z", + "x", + "q", + ], + ), + ( + "Turkish", + [ + "a", + "e", + "i", + "n", + "r", + "l", + "ı", + "k", + "d", + "t", + "s", + "m", + "y", + "u", + "o", + "b", + "ü", + "ş", + "v", + "g", + "z", + "h", + "c", + "p", + "ç", + "ğ", + ], + ), + ( + "Romanian", + [ + "e", + "i", + "a", + "r", + "n", + "t", + "u", + "l", + "o", + "c", + "s", + "d", + "p", + "m", + "ă", + "f", + "v", + "î", + "g", + "b", + "ș", + "ț", + "z", + "h", + "â", + "j", + ], + ), + ( + "Farsi", + [ + "ا", + "ی", + "ر", + "د", + "ن", + "ه", + "و", + "م", + "ت", + "ب", + "س", + "ل", + "ک", + "ش", + "ز", + "ف", + "گ", + "ع", + "خ", + "ق", + "ج", + "آ", + "پ", + "ح", + "ط", + "ص", + ], + ), + ( + "Arabic", + [ + "ا", + "ل", + "ي", + "م", + "و", + "ن", + "ر", + "ت", + "ب", + "ة", + "ع", + "د", + "س", + "ف", + "ه", + "ك", + "ق", + "أ", + "ح", + "ج", + "ش", + "ط", + "ص", + "ى", + "خ", + "إ", + ], + ), + ( + "Danish", + [ + "e", + "r", + "n", + "t", + "a", + "i", + "s", + "d", + "l", + "o", + "g", + "m", + "k", + "f", + "v", + "u", + "b", + "h", + "p", + "å", + "y", + "ø", + "æ", + "c", + "j", + "w", + ], + ), + ( + "Serbian", + [ + "а", + "и", + "о", + "е", + "н", + "р", + "с", + "у", + "т", + "к", + "ј", + "в", + "д", + "м", + "п", + "л", + "г", + "з", + "б", + "a", + "i", + "e", + "o", + "n", + "ц", + "ш", + ], + ), + ( + "Lithuanian", + [ + "i", + "a", + "s", + "o", + "r", + "e", + "t", + "n", + "u", + "k", + "m", + "l", + "p", + "v", + "d", + "j", + "g", + "ė", + "b", + "y", + "ų", + "š", + "ž", + "c", + "ą", + "į", + ], + ), + ( + "Slovene", + [ + "e", + "a", + "i", + "o", + "n", + "r", + "s", + "l", + "t", + "j", + "v", + "k", + "d", + "p", + "m", + "u", + "z", + "b", + "g", + "h", + "č", + "c", + "š", + "ž", + "f", + "y", + ], + ), + ( + "Slovak", + [ + "o", + "a", + "e", + "n", + "i", + "r", + "v", + "t", + "s", + "l", + "k", + "d", + "m", + "p", + "u", + "c", + "h", + "j", + "b", + "z", + "á", + "y", + "ý", + "í", + "č", + "é", + ], + ), + ( + "Hebrew", + [ + "י", + "ו", + "ה", + "ל", + "ר", + "ב", + "ת", + "מ", + "א", + "ש", + "נ", + "ע", + "ם", + "ד", + "ק", + "ח", + "פ", + "ס", + "כ", + "ג", + "ט", + "צ", + "ן", + "ז", + "ך", + ], + ), + ( + "Bulgarian", + [ + "а", + "и", + "о", + "е", + "н", + "т", + "р", + "с", + "в", + "л", + "к", + "д", + "п", + "м", + "з", + "г", + "я", + "ъ", + "у", + "б", + "ч", + "ц", + "й", + "ж", + "щ", + "х", + ], + ), + ( + "Croatian", + [ + "a", + "i", + "o", + "e", + "n", + "r", + "j", + "s", + "t", + "u", + "k", + "l", + "v", + "d", + "m", + "p", + "g", + "z", + "b", + "c", + "č", + "h", + "š", + "ž", + "ć", + "f", + ], + ), + ( + "Hindi", + [ + "क", + "र", + "स", + "न", + "त", + "म", + "ह", + "प", + "य", + "ल", + "व", + "ज", + "द", + "ग", + "ब", + "श", + "ट", + "अ", + "ए", + "थ", + "भ", + "ड", + "च", + "ध", + "ष", + "इ", + ], + ), + ( + "Estonian", + [ + "a", + "i", + "e", + "s", + "t", + "l", + "u", + "n", + "o", + "k", + "r", + "d", + "m", + "v", + "g", + "p", + "j", + "h", + "ä", + "b", + "õ", + "ü", + "f", + "c", + "ö", + "y", + ], + ), + ( + "Simple English", + [ + "e", + "a", + "t", + "i", + "o", + "n", + "s", + "r", + "h", + "l", + "d", + "c", + "m", + "u", + "f", + "p", + "g", + "w", + "b", + "y", + "v", + "k", + "j", + "x", + "z", + "q", + ], + ), + ( + "Thai", + [ + "า", + "น", + "ร", + "อ", + "ก", + "เ", + "ง", + "ม", + "ย", + "ล", + "ว", + "ด", + "ท", + "ส", + "ต", + "ะ", + "ป", + "บ", + "ค", + "ห", + "แ", + "จ", + "พ", + "ช", + "ข", + "ใ", + ], + ), + ( + "Greek", + [ + "α", + "τ", + "ο", + "ι", + "ε", + "ν", + "ρ", + "σ", + "κ", + "η", + "π", + "ς", + "υ", + "μ", + "λ", + "ί", + "ό", + "ά", + "γ", + "έ", + "δ", + "ή", + "ω", + "χ", + "θ", + "ύ", + ], + ), + ( + "Tamil", + [ + "க", + "த", + "ப", + "ட", + "ர", + "ம", + "ல", + "ன", + "வ", + "ற", + "ய", + "ள", + "ச", + "ந", + "இ", + "ண", + "அ", + "ஆ", + "ழ", + "ங", + "எ", + "உ", + "ஒ", + "ஸ", + ], + ), + ( + "Classical Chinese", + [ + "之", + "年", + "為", + "也", + "以", + "一", + "人", + "其", + "者", + "國", + "有", + "二", + "十", + "於", + "曰", + "三", + "不", + "大", + "而", + "子", + "中", + "五", + "四", + ], + ), + ( + "Kazakh", + [ + "а", + "ы", + "е", + "н", + "т", + "р", + "л", + "і", + "д", + "с", + "м", + "қ", + "к", + "о", + "б", + "и", + "у", + "ғ", + "ж", + "ң", + "з", + "ш", + "й", + "п", + "г", + "ө", + ], + ), + ] +) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer/cd.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer/cd.py new file mode 100644 index 0000000..8429a0e --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer/cd.py @@ -0,0 +1,340 @@ +import importlib +from codecs import IncrementalDecoder +from collections import Counter, OrderedDict +from functools import lru_cache +from typing import Dict, List, Optional, Tuple + +from .assets import FREQUENCIES +from .constant import KO_NAMES, LANGUAGE_SUPPORTED_COUNT, TOO_SMALL_SEQUENCE, ZH_NAMES +from .md import is_suspiciously_successive_range +from .models import CoherenceMatches +from .utils import ( + is_accentuated, + is_latin, + is_multi_byte_encoding, + is_unicode_range_secondary, + unicode_range, +) + + +def encoding_unicode_range(iana_name: str) -> List[str]: + """ + Return associated unicode ranges in a single byte code page. + """ + if is_multi_byte_encoding(iana_name): + raise IOError("Function not supported on multi-byte code page") + + decoder = importlib.import_module("encodings.{}".format(iana_name)).IncrementalDecoder # type: ignore + + p = decoder(errors="ignore") # type: IncrementalDecoder + seen_ranges = {} # type: Dict[str, int] + character_count = 0 # type: int + + for i in range(0x40, 0xFF): + chunk = p.decode(bytes([i])) # type: str + + if chunk: + character_range = unicode_range(chunk) # type: Optional[str] + + if character_range is None: + continue + + if is_unicode_range_secondary(character_range) is False: + if character_range not in seen_ranges: + seen_ranges[character_range] = 0 + seen_ranges[character_range] += 1 + character_count += 1 + + return sorted( + [ + character_range + for character_range in seen_ranges + if seen_ranges[character_range] / character_count >= 0.15 + ] + ) + + +def unicode_range_languages(primary_range: str) -> List[str]: + """ + Return inferred languages used with a unicode range. + """ + languages = [] # type: List[str] + + for language, characters in FREQUENCIES.items(): + for character in characters: + if unicode_range(character) == primary_range: + languages.append(language) + break + + return languages + + +@lru_cache() +def encoding_languages(iana_name: str) -> List[str]: + """ + Single-byte encoding language association. Some code page are heavily linked to particular language(s). + This function does the correspondence. + """ + unicode_ranges = encoding_unicode_range(iana_name) # type: List[str] + primary_range = None # type: Optional[str] + + for specified_range in unicode_ranges: + if "Latin" not in specified_range: + primary_range = specified_range + break + + if primary_range is None: + return ["Latin Based"] + + return unicode_range_languages(primary_range) + + +@lru_cache() +def mb_encoding_languages(iana_name: str) -> List[str]: + """ + Multi-byte encoding language association. Some code page are heavily linked to particular language(s). + This function does the correspondence. + """ + if ( + iana_name.startswith("shift_") + or iana_name.startswith("iso2022_jp") + or iana_name.startswith("euc_j") + or iana_name == "cp932" + ): + return ["Japanese"] + if iana_name.startswith("gb") or iana_name in ZH_NAMES: + return ["Chinese", "Classical Chinese"] + if iana_name.startswith("iso2022_kr") or iana_name in KO_NAMES: + return ["Korean"] + + return [] + + +@lru_cache(maxsize=LANGUAGE_SUPPORTED_COUNT) +def get_target_features(language: str) -> Tuple[bool, bool]: + """ + Determine main aspects from a supported language if it contains accents and if is pure Latin. + """ + target_have_accents = False # type: bool + target_pure_latin = True # type: bool + + for character in FREQUENCIES[language]: + if not target_have_accents and is_accentuated(character): + target_have_accents = True + if target_pure_latin and is_latin(character) is False: + target_pure_latin = False + + return target_have_accents, target_pure_latin + + +def alphabet_languages( + characters: List[str], ignore_non_latin: bool = False +) -> List[str]: + """ + Return associated languages associated to given characters. + """ + languages = [] # type: List[Tuple[str, float]] + + source_have_accents = any(is_accentuated(character) for character in characters) + + for language, language_characters in FREQUENCIES.items(): + + target_have_accents, target_pure_latin = get_target_features(language) + + if ignore_non_latin and target_pure_latin is False: + continue + + if target_have_accents is False and source_have_accents: + continue + + character_count = len(language_characters) # type: int + + character_match_count = len( + [c for c in language_characters if c in characters] + ) # type: int + + ratio = character_match_count / character_count # type: float + + if ratio >= 0.2: + languages.append((language, ratio)) + + languages = sorted(languages, key=lambda x: x[1], reverse=True) + + return [compatible_language[0] for compatible_language in languages] + + +def characters_popularity_compare( + language: str, ordered_characters: List[str] +) -> float: + """ + Determine if a ordered characters list (by occurrence from most appearance to rarest) match a particular language. + The result is a ratio between 0. (absolutely no correspondence) and 1. (near perfect fit). + Beware that is function is not strict on the match in order to ease the detection. (Meaning close match is 1.) + """ + if language not in FREQUENCIES: + raise ValueError("{} not available".format(language)) + + character_approved_count = 0 # type: int + + for character in ordered_characters: + if character not in FREQUENCIES[language]: + continue + + characters_before_source = FREQUENCIES[language][ + 0 : FREQUENCIES[language].index(character) + ] # type: List[str] + characters_after_source = FREQUENCIES[language][ + FREQUENCIES[language].index(character) : + ] # type: List[str] + + characters_before = ordered_characters[ + 0 : ordered_characters.index(character) + ] # type: List[str] + characters_after = ordered_characters[ + ordered_characters.index(character) : + ] # type: List[str] + + before_match_count = [ + e in characters_before for e in characters_before_source + ].count( + True + ) # type: int + after_match_count = [ + e in characters_after for e in characters_after_source + ].count( + True + ) # type: int + + if len(characters_before_source) == 0 and before_match_count <= 4: + character_approved_count += 1 + continue + + if len(characters_after_source) == 0 and after_match_count <= 4: + character_approved_count += 1 + continue + + if ( + before_match_count / len(characters_before_source) >= 0.4 + or after_match_count / len(characters_after_source) >= 0.4 + ): + character_approved_count += 1 + continue + + return character_approved_count / len(ordered_characters) + + +def alpha_unicode_split(decoded_sequence: str) -> List[str]: + """ + Given a decoded text sequence, return a list of str. Unicode range / alphabet separation. + Ex. a text containing English/Latin with a bit a Hebrew will return two items in the resulting list; + One containing the latin letters and the other hebrew. + """ + layers = OrderedDict() # type: Dict[str, str] + + for character in decoded_sequence: + if character.isalpha() is False: + continue + + character_range = unicode_range(character) # type: Optional[str] + + if character_range is None: + continue + + layer_target_range = None # type: Optional[str] + + for discovered_range in layers: + if ( + is_suspiciously_successive_range(discovered_range, character_range) + is False + ): + layer_target_range = discovered_range + break + + if layer_target_range is None: + layer_target_range = character_range + + if layer_target_range not in layers: + layers[layer_target_range] = character.lower() + continue + + layers[layer_target_range] += character.lower() + + return list(layers.values()) + + +def merge_coherence_ratios(results: List[CoherenceMatches]) -> CoherenceMatches: + """ + This function merge results previously given by the function coherence_ratio. + The return type is the same as coherence_ratio. + """ + per_language_ratios = OrderedDict() # type: Dict[str, List[float]] + for result in results: + for sub_result in result: + language, ratio = sub_result + if language not in per_language_ratios: + per_language_ratios[language] = [ratio] + continue + per_language_ratios[language].append(ratio) + + merge = [ + ( + language, + round( + sum(per_language_ratios[language]) / len(per_language_ratios[language]), + 4, + ), + ) + for language in per_language_ratios + ] + + return sorted(merge, key=lambda x: x[1], reverse=True) + + +@lru_cache(maxsize=2048) +def coherence_ratio( + decoded_sequence: str, threshold: float = 0.1, lg_inclusion: Optional[str] = None +) -> CoherenceMatches: + """ + Detect ANY language that can be identified in given sequence. The sequence will be analysed by layers. + A layer = Character extraction by alphabets/ranges. + """ + + results = [] # type: List[Tuple[str, float]] + ignore_non_latin = False # type: bool + + sufficient_match_count = 0 # type: int + + lg_inclusion_list = lg_inclusion.split(",") if lg_inclusion is not None else [] + if "Latin Based" in lg_inclusion_list: + ignore_non_latin = True + lg_inclusion_list.remove("Latin Based") + + for layer in alpha_unicode_split(decoded_sequence): + sequence_frequencies = Counter(layer) # type: Counter + most_common = sequence_frequencies.most_common() + + character_count = sum(o for c, o in most_common) # type: int + + if character_count <= TOO_SMALL_SEQUENCE: + continue + + popular_character_ordered = [c for c, o in most_common] # type: List[str] + + for language in lg_inclusion_list or alphabet_languages( + popular_character_ordered, ignore_non_latin + ): + ratio = characters_popularity_compare( + language, popular_character_ordered + ) # type: float + + if ratio < threshold: + continue + elif ratio >= 0.8: + sufficient_match_count += 1 + + results.append((language, round(ratio, 4))) + + if sufficient_match_count >= 3: + break + + return sorted(results, key=lambda x: x[1], reverse=True) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer/cli/__init__.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer/cli/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer/cli/normalizer.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer/cli/normalizer.py new file mode 100644 index 0000000..5f912c9 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer/cli/normalizer.py @@ -0,0 +1,290 @@ +import argparse +import sys +from json import dumps +from os.path import abspath +from platform import python_version +from typing import List + +from charset_normalizer import from_fp +from charset_normalizer.models import CliDetectionResult +from charset_normalizer.version import __version__ + + +def query_yes_no(question: str, default: str = "yes") -> bool: + """Ask a yes/no question via input() and return their answer. + + "question" is a string that is presented to the user. + "default" is the presumed answer if the user just hits . + It must be "yes" (the default), "no" or None (meaning + an answer is required of the user). + + The "answer" return value is True for "yes" or False for "no". + + Credit goes to (c) https://stackoverflow.com/questions/3041986/apt-command-line-interface-like-yes-no-input + """ + valid = {"yes": True, "y": True, "ye": True, "no": False, "n": False} + if default is None: + prompt = " [y/n] " + elif default == "yes": + prompt = " [Y/n] " + elif default == "no": + prompt = " [y/N] " + else: + raise ValueError("invalid default answer: '%s'" % default) + + while True: + sys.stdout.write(question + prompt) + choice = input().lower() + if default is not None and choice == "": + return valid[default] + elif choice in valid: + return valid[choice] + else: + sys.stdout.write("Please respond with 'yes' or 'no' " "(or 'y' or 'n').\n") + + +def cli_detect(argv: List[str] = None) -> int: + """ + CLI assistant using ARGV and ArgumentParser + :param argv: + :return: 0 if everything is fine, anything else equal trouble + """ + parser = argparse.ArgumentParser( + description="The Real First Universal Charset Detector. " + "Discover originating encoding used on text file. " + "Normalize text to unicode." + ) + + parser.add_argument( + "files", type=argparse.FileType("rb"), nargs="+", help="File(s) to be analysed" + ) + parser.add_argument( + "-v", + "--verbose", + action="store_true", + default=False, + dest="verbose", + help="Display complementary information about file if any. " + "Stdout will contain logs about the detection process.", + ) + parser.add_argument( + "-a", + "--with-alternative", + action="store_true", + default=False, + dest="alternatives", + help="Output complementary possibilities if any. Top-level JSON WILL be a list.", + ) + parser.add_argument( + "-n", + "--normalize", + action="store_true", + default=False, + dest="normalize", + help="Permit to normalize input file. If not set, program does not write anything.", + ) + parser.add_argument( + "-m", + "--minimal", + action="store_true", + default=False, + dest="minimal", + help="Only output the charset detected to STDOUT. Disabling JSON output.", + ) + parser.add_argument( + "-r", + "--replace", + action="store_true", + default=False, + dest="replace", + help="Replace file when trying to normalize it instead of creating a new one.", + ) + parser.add_argument( + "-f", + "--force", + action="store_true", + default=False, + dest="force", + help="Replace file without asking if you are sure, use this flag with caution.", + ) + parser.add_argument( + "-t", + "--threshold", + action="store", + default=0.1, + type=float, + dest="threshold", + help="Define a custom maximum amount of chaos allowed in decoded content. 0. <= chaos <= 1.", + ) + parser.add_argument( + "--version", + action="version", + version="Charset-Normalizer {} - Python {}".format( + __version__, python_version() + ), + help="Show version information and exit.", + ) + + args = parser.parse_args(argv) + + if args.replace is True and args.normalize is False: + print("Use --replace in addition of --normalize only.", file=sys.stderr) + return 1 + + if args.force is True and args.replace is False: + print("Use --force in addition of --replace only.", file=sys.stderr) + return 1 + + if args.threshold < 0.0 or args.threshold > 1.0: + print("--threshold VALUE should be between 0. AND 1.", file=sys.stderr) + return 1 + + x_ = [] + + for my_file in args.files: + + matches = from_fp(my_file, threshold=args.threshold, explain=args.verbose) + + best_guess = matches.best() + + if best_guess is None: + print( + 'Unable to identify originating encoding for "{}". {}'.format( + my_file.name, + "Maybe try increasing maximum amount of chaos." + if args.threshold < 1.0 + else "", + ), + file=sys.stderr, + ) + x_.append( + CliDetectionResult( + abspath(my_file.name), + None, + [], + [], + "Unknown", + [], + False, + 1.0, + 0.0, + None, + True, + ) + ) + else: + x_.append( + CliDetectionResult( + abspath(my_file.name), + best_guess.encoding, + best_guess.encoding_aliases, + [ + cp + for cp in best_guess.could_be_from_charset + if cp != best_guess.encoding + ], + best_guess.language, + best_guess.alphabets, + best_guess.bom, + best_guess.percent_chaos, + best_guess.percent_coherence, + None, + True, + ) + ) + + if len(matches) > 1 and args.alternatives: + for el in matches: + if el != best_guess: + x_.append( + CliDetectionResult( + abspath(my_file.name), + el.encoding, + el.encoding_aliases, + [ + cp + for cp in el.could_be_from_charset + if cp != el.encoding + ], + el.language, + el.alphabets, + el.bom, + el.percent_chaos, + el.percent_coherence, + None, + False, + ) + ) + + if args.normalize is True: + + if best_guess.encoding.startswith("utf") is True: + print( + '"{}" file does not need to be normalized, as it already came from unicode.'.format( + my_file.name + ), + file=sys.stderr, + ) + if my_file.closed is False: + my_file.close() + continue + + o_ = my_file.name.split(".") # type: List[str] + + if args.replace is False: + o_.insert(-1, best_guess.encoding) + if my_file.closed is False: + my_file.close() + elif ( + args.force is False + and query_yes_no( + 'Are you sure to normalize "{}" by replacing it ?'.format( + my_file.name + ), + "no", + ) + is False + ): + if my_file.closed is False: + my_file.close() + continue + + try: + x_[0].unicode_path = abspath("./{}".format(".".join(o_))) + + with open(x_[0].unicode_path, "w", encoding="utf-8") as fp: + fp.write(str(best_guess)) + except IOError as e: + print(str(e), file=sys.stderr) + if my_file.closed is False: + my_file.close() + return 2 + + if my_file.closed is False: + my_file.close() + + if args.minimal is False: + print( + dumps( + [el.__dict__ for el in x_] if len(x_) > 1 else x_[0].__dict__, + ensure_ascii=True, + indent=4, + ) + ) + else: + for my_file in args.files: + print( + ", ".join( + [ + el.encoding or "undefined" + for el in x_ + if el.path == abspath(my_file.name) + ] + ) + ) + + return 0 + + +if __name__ == "__main__": + cli_detect() diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer/constant.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer/constant.py new file mode 100644 index 0000000..c32f5cf --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer/constant.py @@ -0,0 +1,503 @@ +from codecs import BOM_UTF8, BOM_UTF16_BE, BOM_UTF16_LE, BOM_UTF32_BE, BOM_UTF32_LE +from collections import OrderedDict +from encodings.aliases import aliases +from re import IGNORECASE, compile as re_compile +from typing import Dict, List, Set, Union + +from .assets import FREQUENCIES + +# Contain for each eligible encoding a list of/item bytes SIG/BOM +ENCODING_MARKS = OrderedDict( + [ + ("utf_8", BOM_UTF8), + ( + "utf_7", + [ + b"\x2b\x2f\x76\x38", + b"\x2b\x2f\x76\x39", + b"\x2b\x2f\x76\x2b", + b"\x2b\x2f\x76\x2f", + b"\x2b\x2f\x76\x38\x2d", + ], + ), + ("gb18030", b"\x84\x31\x95\x33"), + ("utf_32", [BOM_UTF32_BE, BOM_UTF32_LE]), + ("utf_16", [BOM_UTF16_BE, BOM_UTF16_LE]), + ] +) # type: Dict[str, Union[bytes, List[bytes]]] + +TOO_SMALL_SEQUENCE = 32 # type: int +TOO_BIG_SEQUENCE = int(10e6) # type: int + +UTF8_MAXIMAL_ALLOCATION = 1112064 # type: int + +UNICODE_RANGES_COMBINED = { + "Control character": range(31 + 1), + "Basic Latin": range(32, 127 + 1), + "Latin-1 Supplement": range(128, 255 + 1), + "Latin Extended-A": range(256, 383 + 1), + "Latin Extended-B": range(384, 591 + 1), + "IPA Extensions": range(592, 687 + 1), + "Spacing Modifier Letters": range(688, 767 + 1), + "Combining Diacritical Marks": range(768, 879 + 1), + "Greek and Coptic": range(880, 1023 + 1), + "Cyrillic": range(1024, 1279 + 1), + "Cyrillic Supplement": range(1280, 1327 + 1), + "Armenian": range(1328, 1423 + 1), + "Hebrew": range(1424, 1535 + 1), + "Arabic": range(1536, 1791 + 1), + "Syriac": range(1792, 1871 + 1), + "Arabic Supplement": range(1872, 1919 + 1), + "Thaana": range(1920, 1983 + 1), + "NKo": range(1984, 2047 + 1), + "Samaritan": range(2048, 2111 + 1), + "Mandaic": range(2112, 2143 + 1), + "Syriac Supplement": range(2144, 2159 + 1), + "Arabic Extended-A": range(2208, 2303 + 1), + "Devanagari": range(2304, 2431 + 1), + "Bengali": range(2432, 2559 + 1), + "Gurmukhi": range(2560, 2687 + 1), + "Gujarati": range(2688, 2815 + 1), + "Oriya": range(2816, 2943 + 1), + "Tamil": range(2944, 3071 + 1), + "Telugu": range(3072, 3199 + 1), + "Kannada": range(3200, 3327 + 1), + "Malayalam": range(3328, 3455 + 1), + "Sinhala": range(3456, 3583 + 1), + "Thai": range(3584, 3711 + 1), + "Lao": range(3712, 3839 + 1), + "Tibetan": range(3840, 4095 + 1), + "Myanmar": range(4096, 4255 + 1), + "Georgian": range(4256, 4351 + 1), + "Hangul Jamo": range(4352, 4607 + 1), + "Ethiopic": range(4608, 4991 + 1), + "Ethiopic Supplement": range(4992, 5023 + 1), + "Cherokee": range(5024, 5119 + 1), + "Unified Canadian Aboriginal Syllabics": range(5120, 5759 + 1), + "Ogham": range(5760, 5791 + 1), + "Runic": range(5792, 5887 + 1), + "Tagalog": range(5888, 5919 + 1), + "Hanunoo": range(5920, 5951 + 1), + "Buhid": range(5952, 5983 + 1), + "Tagbanwa": range(5984, 6015 + 1), + "Khmer": range(6016, 6143 + 1), + "Mongolian": range(6144, 6319 + 1), + "Unified Canadian Aboriginal Syllabics Extended": range(6320, 6399 + 1), + "Limbu": range(6400, 6479 + 1), + "Tai Le": range(6480, 6527 + 1), + "New Tai Lue": range(6528, 6623 + 1), + "Khmer Symbols": range(6624, 6655 + 1), + "Buginese": range(6656, 6687 + 1), + "Tai Tham": range(6688, 6831 + 1), + "Combining Diacritical Marks Extended": range(6832, 6911 + 1), + "Balinese": range(6912, 7039 + 1), + "Sundanese": range(7040, 7103 + 1), + "Batak": range(7104, 7167 + 1), + "Lepcha": range(7168, 7247 + 1), + "Ol Chiki": range(7248, 7295 + 1), + "Cyrillic Extended C": range(7296, 7311 + 1), + "Sundanese Supplement": range(7360, 7375 + 1), + "Vedic Extensions": range(7376, 7423 + 1), + "Phonetic Extensions": range(7424, 7551 + 1), + "Phonetic Extensions Supplement": range(7552, 7615 + 1), + "Combining Diacritical Marks Supplement": range(7616, 7679 + 1), + "Latin Extended Additional": range(7680, 7935 + 1), + "Greek Extended": range(7936, 8191 + 1), + "General Punctuation": range(8192, 8303 + 1), + "Superscripts and Subscripts": range(8304, 8351 + 1), + "Currency Symbols": range(8352, 8399 + 1), + "Combining Diacritical Marks for Symbols": range(8400, 8447 + 1), + "Letterlike Symbols": range(8448, 8527 + 1), + "Number Forms": range(8528, 8591 + 1), + "Arrows": range(8592, 8703 + 1), + "Mathematical Operators": range(8704, 8959 + 1), + "Miscellaneous Technical": range(8960, 9215 + 1), + "Control Pictures": range(9216, 9279 + 1), + "Optical Character Recognition": range(9280, 9311 + 1), + "Enclosed Alphanumerics": range(9312, 9471 + 1), + "Box Drawing": range(9472, 9599 + 1), + "Block Elements": range(9600, 9631 + 1), + "Geometric Shapes": range(9632, 9727 + 1), + "Miscellaneous Symbols": range(9728, 9983 + 1), + "Dingbats": range(9984, 10175 + 1), + "Miscellaneous Mathematical Symbols-A": range(10176, 10223 + 1), + "Supplemental Arrows-A": range(10224, 10239 + 1), + "Braille Patterns": range(10240, 10495 + 1), + "Supplemental Arrows-B": range(10496, 10623 + 1), + "Miscellaneous Mathematical Symbols-B": range(10624, 10751 + 1), + "Supplemental Mathematical Operators": range(10752, 11007 + 1), + "Miscellaneous Symbols and Arrows": range(11008, 11263 + 1), + "Glagolitic": range(11264, 11359 + 1), + "Latin Extended-C": range(11360, 11391 + 1), + "Coptic": range(11392, 11519 + 1), + "Georgian Supplement": range(11520, 11567 + 1), + "Tifinagh": range(11568, 11647 + 1), + "Ethiopic Extended": range(11648, 11743 + 1), + "Cyrillic Extended-A": range(11744, 11775 + 1), + "Supplemental Punctuation": range(11776, 11903 + 1), + "CJK Radicals Supplement": range(11904, 12031 + 1), + "Kangxi Radicals": range(12032, 12255 + 1), + "Ideographic Description Characters": range(12272, 12287 + 1), + "CJK Symbols and Punctuation": range(12288, 12351 + 1), + "Hiragana": range(12352, 12447 + 1), + "Katakana": range(12448, 12543 + 1), + "Bopomofo": range(12544, 12591 + 1), + "Hangul Compatibility Jamo": range(12592, 12687 + 1), + "Kanbun": range(12688, 12703 + 1), + "Bopomofo Extended": range(12704, 12735 + 1), + "CJK Strokes": range(12736, 12783 + 1), + "Katakana Phonetic Extensions": range(12784, 12799 + 1), + "Enclosed CJK Letters and Months": range(12800, 13055 + 1), + "CJK Compatibility": range(13056, 13311 + 1), + "CJK Unified Ideographs Extension A": range(13312, 19903 + 1), + "Yijing Hexagram Symbols": range(19904, 19967 + 1), + "CJK Unified Ideographs": range(19968, 40959 + 1), + "Yi Syllables": range(40960, 42127 + 1), + "Yi Radicals": range(42128, 42191 + 1), + "Lisu": range(42192, 42239 + 1), + "Vai": range(42240, 42559 + 1), + "Cyrillic Extended-B": range(42560, 42655 + 1), + "Bamum": range(42656, 42751 + 1), + "Modifier Tone Letters": range(42752, 42783 + 1), + "Latin Extended-D": range(42784, 43007 + 1), + "Syloti Nagri": range(43008, 43055 + 1), + "Common Indic Number Forms": range(43056, 43071 + 1), + "Phags-pa": range(43072, 43135 + 1), + "Saurashtra": range(43136, 43231 + 1), + "Devanagari Extended": range(43232, 43263 + 1), + "Kayah Li": range(43264, 43311 + 1), + "Rejang": range(43312, 43359 + 1), + "Hangul Jamo Extended-A": range(43360, 43391 + 1), + "Javanese": range(43392, 43487 + 1), + "Myanmar Extended-B": range(43488, 43519 + 1), + "Cham": range(43520, 43615 + 1), + "Myanmar Extended-A": range(43616, 43647 + 1), + "Tai Viet": range(43648, 43743 + 1), + "Meetei Mayek Extensions": range(43744, 43775 + 1), + "Ethiopic Extended-A": range(43776, 43823 + 1), + "Latin Extended-E": range(43824, 43887 + 1), + "Cherokee Supplement": range(43888, 43967 + 1), + "Meetei Mayek": range(43968, 44031 + 1), + "Hangul Syllables": range(44032, 55215 + 1), + "Hangul Jamo Extended-B": range(55216, 55295 + 1), + "High Surrogates": range(55296, 56191 + 1), + "High Private Use Surrogates": range(56192, 56319 + 1), + "Low Surrogates": range(56320, 57343 + 1), + "Private Use Area": range(57344, 63743 + 1), + "CJK Compatibility Ideographs": range(63744, 64255 + 1), + "Alphabetic Presentation Forms": range(64256, 64335 + 1), + "Arabic Presentation Forms-A": range(64336, 65023 + 1), + "Variation Selectors": range(65024, 65039 + 1), + "Vertical Forms": range(65040, 65055 + 1), + "Combining Half Marks": range(65056, 65071 + 1), + "CJK Compatibility Forms": range(65072, 65103 + 1), + "Small Form Variants": range(65104, 65135 + 1), + "Arabic Presentation Forms-B": range(65136, 65279 + 1), + "Halfwidth and Fullwidth Forms": range(65280, 65519 + 1), + "Specials": range(65520, 65535 + 1), + "Linear B Syllabary": range(65536, 65663 + 1), + "Linear B Ideograms": range(65664, 65791 + 1), + "Aegean Numbers": range(65792, 65855 + 1), + "Ancient Greek Numbers": range(65856, 65935 + 1), + "Ancient Symbols": range(65936, 65999 + 1), + "Phaistos Disc": range(66000, 66047 + 1), + "Lycian": range(66176, 66207 + 1), + "Carian": range(66208, 66271 + 1), + "Coptic Epact Numbers": range(66272, 66303 + 1), + "Old Italic": range(66304, 66351 + 1), + "Gothic": range(66352, 66383 + 1), + "Old Permic": range(66384, 66431 + 1), + "Ugaritic": range(66432, 66463 + 1), + "Old Persian": range(66464, 66527 + 1), + "Deseret": range(66560, 66639 + 1), + "Shavian": range(66640, 66687 + 1), + "Osmanya": range(66688, 66735 + 1), + "Osage": range(66736, 66815 + 1), + "Elbasan": range(66816, 66863 + 1), + "Caucasian Albanian": range(66864, 66927 + 1), + "Linear A": range(67072, 67455 + 1), + "Cypriot Syllabary": range(67584, 67647 + 1), + "Imperial Aramaic": range(67648, 67679 + 1), + "Palmyrene": range(67680, 67711 + 1), + "Nabataean": range(67712, 67759 + 1), + "Hatran": range(67808, 67839 + 1), + "Phoenician": range(67840, 67871 + 1), + "Lydian": range(67872, 67903 + 1), + "Meroitic Hieroglyphs": range(67968, 67999 + 1), + "Meroitic Cursive": range(68000, 68095 + 1), + "Kharoshthi": range(68096, 68191 + 1), + "Old South Arabian": range(68192, 68223 + 1), + "Old North Arabian": range(68224, 68255 + 1), + "Manichaean": range(68288, 68351 + 1), + "Avestan": range(68352, 68415 + 1), + "Inscriptional Parthian": range(68416, 68447 + 1), + "Inscriptional Pahlavi": range(68448, 68479 + 1), + "Psalter Pahlavi": range(68480, 68527 + 1), + "Old Turkic": range(68608, 68687 + 1), + "Old Hungarian": range(68736, 68863 + 1), + "Rumi Numeral Symbols": range(69216, 69247 + 1), + "Brahmi": range(69632, 69759 + 1), + "Kaithi": range(69760, 69839 + 1), + "Sora Sompeng": range(69840, 69887 + 1), + "Chakma": range(69888, 69967 + 1), + "Mahajani": range(69968, 70015 + 1), + "Sharada": range(70016, 70111 + 1), + "Sinhala Archaic Numbers": range(70112, 70143 + 1), + "Khojki": range(70144, 70223 + 1), + "Multani": range(70272, 70319 + 1), + "Khudawadi": range(70320, 70399 + 1), + "Grantha": range(70400, 70527 + 1), + "Newa": range(70656, 70783 + 1), + "Tirhuta": range(70784, 70879 + 1), + "Siddham": range(71040, 71167 + 1), + "Modi": range(71168, 71263 + 1), + "Mongolian Supplement": range(71264, 71295 + 1), + "Takri": range(71296, 71375 + 1), + "Ahom": range(71424, 71487 + 1), + "Warang Citi": range(71840, 71935 + 1), + "Zanabazar Square": range(72192, 72271 + 1), + "Soyombo": range(72272, 72367 + 1), + "Pau Cin Hau": range(72384, 72447 + 1), + "Bhaiksuki": range(72704, 72815 + 1), + "Marchen": range(72816, 72895 + 1), + "Masaram Gondi": range(72960, 73055 + 1), + "Cuneiform": range(73728, 74751 + 1), + "Cuneiform Numbers and Punctuation": range(74752, 74879 + 1), + "Early Dynastic Cuneiform": range(74880, 75087 + 1), + "Egyptian Hieroglyphs": range(77824, 78895 + 1), + "Anatolian Hieroglyphs": range(82944, 83583 + 1), + "Bamum Supplement": range(92160, 92735 + 1), + "Mro": range(92736, 92783 + 1), + "Bassa Vah": range(92880, 92927 + 1), + "Pahawh Hmong": range(92928, 93071 + 1), + "Miao": range(93952, 94111 + 1), + "Ideographic Symbols and Punctuation": range(94176, 94207 + 1), + "Tangut": range(94208, 100351 + 1), + "Tangut Components": range(100352, 101119 + 1), + "Kana Supplement": range(110592, 110847 + 1), + "Kana Extended-A": range(110848, 110895 + 1), + "Nushu": range(110960, 111359 + 1), + "Duployan": range(113664, 113823 + 1), + "Shorthand Format Controls": range(113824, 113839 + 1), + "Byzantine Musical Symbols": range(118784, 119039 + 1), + "Musical Symbols": range(119040, 119295 + 1), + "Ancient Greek Musical Notation": range(119296, 119375 + 1), + "Tai Xuan Jing Symbols": range(119552, 119647 + 1), + "Counting Rod Numerals": range(119648, 119679 + 1), + "Mathematical Alphanumeric Symbols": range(119808, 120831 + 1), + "Sutton SignWriting": range(120832, 121519 + 1), + "Glagolitic Supplement": range(122880, 122927 + 1), + "Mende Kikakui": range(124928, 125151 + 1), + "Adlam": range(125184, 125279 + 1), + "Arabic Mathematical Alphabetic Symbols": range(126464, 126719 + 1), + "Mahjong Tiles": range(126976, 127023 + 1), + "Domino Tiles": range(127024, 127135 + 1), + "Playing Cards": range(127136, 127231 + 1), + "Enclosed Alphanumeric Supplement": range(127232, 127487 + 1), + "Enclosed Ideographic Supplement": range(127488, 127743 + 1), + "Miscellaneous Symbols and Pictographs": range(127744, 128511 + 1), + "Emoticons range(Emoji)": range(128512, 128591 + 1), + "Ornamental Dingbats": range(128592, 128639 + 1), + "Transport and Map Symbols": range(128640, 128767 + 1), + "Alchemical Symbols": range(128768, 128895 + 1), + "Geometric Shapes Extended": range(128896, 129023 + 1), + "Supplemental Arrows-C": range(129024, 129279 + 1), + "Supplemental Symbols and Pictographs": range(129280, 129535 + 1), + "CJK Unified Ideographs Extension B": range(131072, 173791 + 1), + "CJK Unified Ideographs Extension C": range(173824, 177983 + 1), + "CJK Unified Ideographs Extension D": range(177984, 178207 + 1), + "CJK Unified Ideographs Extension E": range(178208, 183983 + 1), + "CJK Unified Ideographs Extension F": range(183984, 191471 + 1), + "CJK Compatibility Ideographs Supplement": range(194560, 195103 + 1), + "Tags": range(917504, 917631 + 1), + "Variation Selectors Supplement": range(917760, 917999 + 1), +} # type: Dict[str, range] + + +UNICODE_SECONDARY_RANGE_KEYWORD = [ + "Supplement", + "Extended", + "Extensions", + "Modifier", + "Marks", + "Punctuation", + "Symbols", + "Forms", + "Operators", + "Miscellaneous", + "Drawing", + "Block", + "Shapes", + "Supplemental", + "Tags", +] # type: List[str] + +RE_POSSIBLE_ENCODING_INDICATION = re_compile( + r"(?:(?:encoding)|(?:charset)|(?:coding))(?:[\:= ]{1,10})(?:[\"\']?)([a-zA-Z0-9\-_]+)(?:[\"\']?)", + IGNORECASE, +) + +IANA_SUPPORTED = sorted( + filter( + lambda x: x.endswith("_codec") is False + and x not in {"rot_13", "tactis", "mbcs"}, + list(set(aliases.values())), + ) +) # type: List[str] + +IANA_SUPPORTED_COUNT = len(IANA_SUPPORTED) # type: int + +# pre-computed code page that are similar using the function cp_similarity. +IANA_SUPPORTED_SIMILAR = { + "cp037": ["cp1026", "cp1140", "cp273", "cp500"], + "cp1026": ["cp037", "cp1140", "cp273", "cp500"], + "cp1125": ["cp866"], + "cp1140": ["cp037", "cp1026", "cp273", "cp500"], + "cp1250": ["iso8859_2"], + "cp1251": ["kz1048", "ptcp154"], + "cp1252": ["iso8859_15", "iso8859_9", "latin_1"], + "cp1253": ["iso8859_7"], + "cp1254": ["iso8859_15", "iso8859_9", "latin_1"], + "cp1257": ["iso8859_13"], + "cp273": ["cp037", "cp1026", "cp1140", "cp500"], + "cp437": ["cp850", "cp858", "cp860", "cp861", "cp862", "cp863", "cp865"], + "cp500": ["cp037", "cp1026", "cp1140", "cp273"], + "cp850": ["cp437", "cp857", "cp858", "cp865"], + "cp857": ["cp850", "cp858", "cp865"], + "cp858": ["cp437", "cp850", "cp857", "cp865"], + "cp860": ["cp437", "cp861", "cp862", "cp863", "cp865"], + "cp861": ["cp437", "cp860", "cp862", "cp863", "cp865"], + "cp862": ["cp437", "cp860", "cp861", "cp863", "cp865"], + "cp863": ["cp437", "cp860", "cp861", "cp862", "cp865"], + "cp865": ["cp437", "cp850", "cp857", "cp858", "cp860", "cp861", "cp862", "cp863"], + "cp866": ["cp1125"], + "iso8859_10": ["iso8859_14", "iso8859_15", "iso8859_4", "iso8859_9", "latin_1"], + "iso8859_11": ["tis_620"], + "iso8859_13": ["cp1257"], + "iso8859_14": [ + "iso8859_10", + "iso8859_15", + "iso8859_16", + "iso8859_3", + "iso8859_9", + "latin_1", + ], + "iso8859_15": [ + "cp1252", + "cp1254", + "iso8859_10", + "iso8859_14", + "iso8859_16", + "iso8859_3", + "iso8859_9", + "latin_1", + ], + "iso8859_16": [ + "iso8859_14", + "iso8859_15", + "iso8859_2", + "iso8859_3", + "iso8859_9", + "latin_1", + ], + "iso8859_2": ["cp1250", "iso8859_16", "iso8859_4"], + "iso8859_3": ["iso8859_14", "iso8859_15", "iso8859_16", "iso8859_9", "latin_1"], + "iso8859_4": ["iso8859_10", "iso8859_2", "iso8859_9", "latin_1"], + "iso8859_7": ["cp1253"], + "iso8859_9": [ + "cp1252", + "cp1254", + "cp1258", + "iso8859_10", + "iso8859_14", + "iso8859_15", + "iso8859_16", + "iso8859_3", + "iso8859_4", + "latin_1", + ], + "kz1048": ["cp1251", "ptcp154"], + "latin_1": [ + "cp1252", + "cp1254", + "cp1258", + "iso8859_10", + "iso8859_14", + "iso8859_15", + "iso8859_16", + "iso8859_3", + "iso8859_4", + "iso8859_9", + ], + "mac_iceland": ["mac_roman", "mac_turkish"], + "mac_roman": ["mac_iceland", "mac_turkish"], + "mac_turkish": ["mac_iceland", "mac_roman"], + "ptcp154": ["cp1251", "kz1048"], + "tis_620": ["iso8859_11"], +} # type: Dict[str, List[str]] + + +CHARDET_CORRESPONDENCE = { + "iso2022_kr": "ISO-2022-KR", + "iso2022_jp": "ISO-2022-JP", + "euc_kr": "EUC-KR", + "tis_620": "TIS-620", + "utf_32": "UTF-32", + "euc_jp": "EUC-JP", + "koi8_r": "KOI8-R", + "iso8859_1": "ISO-8859-1", + "iso8859_2": "ISO-8859-2", + "iso8859_5": "ISO-8859-5", + "iso8859_6": "ISO-8859-6", + "iso8859_7": "ISO-8859-7", + "iso8859_8": "ISO-8859-8", + "utf_16": "UTF-16", + "cp855": "IBM855", + "mac_cyrillic": "MacCyrillic", + "gb2312": "GB2312", + "gb18030": "GB18030", + "cp932": "CP932", + "cp866": "IBM866", + "utf_8": "utf-8", + "utf_8_sig": "UTF-8-SIG", + "shift_jis": "SHIFT_JIS", + "big5": "Big5", + "cp1250": "windows-1250", + "cp1251": "windows-1251", + "cp1252": "Windows-1252", + "cp1253": "windows-1253", + "cp1255": "windows-1255", + "cp1256": "windows-1256", + "cp1254": "Windows-1254", + "cp949": "CP949", +} # type: Dict[str, str] + + +COMMON_SAFE_ASCII_CHARACTERS = { + "<", + ">", + "=", + ":", + "/", + "&", + ";", + "{", + "}", + "[", + "]", + ",", + "|", + '"', + "-", +} # type: Set[str] + + +KO_NAMES = {"johab", "cp949", "euc_kr"} # type: Set[str] +ZH_NAMES = {"big5", "cp950", "big5hkscs", "hz"} # type: Set[str] + +NOT_PRINTABLE_PATTERN = re_compile(r"[0-9\W\n\r\t]+") + +LANGUAGE_SUPPORTED_COUNT = len(FREQUENCIES) # type: int + +# Logging LEVEL bellow DEBUG +TRACE = 5 # type: int diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer/legacy.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer/legacy.py new file mode 100644 index 0000000..cdebe2b --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer/legacy.py @@ -0,0 +1,95 @@ +import warnings +from typing import Dict, Optional, Union + +from .api import from_bytes, from_fp, from_path, normalize +from .constant import CHARDET_CORRESPONDENCE +from .models import CharsetMatch, CharsetMatches + + +def detect(byte_str: bytes) -> Dict[str, Optional[Union[str, float]]]: + """ + chardet legacy method + Detect the encoding of the given byte string. It should be mostly backward-compatible. + Encoding name will match Chardet own writing whenever possible. (Not on encoding name unsupported by it) + This function is deprecated and should be used to migrate your project easily, consult the documentation for + further information. Not planned for removal. + + :param byte_str: The byte sequence to examine. + """ + if not isinstance(byte_str, (bytearray, bytes)): + raise TypeError( # pragma: nocover + "Expected object of type bytes or bytearray, got: " + "{0}".format(type(byte_str)) + ) + + if isinstance(byte_str, bytearray): + byte_str = bytes(byte_str) + + r = from_bytes(byte_str).best() + + encoding = r.encoding if r is not None else None + language = r.language if r is not None and r.language != "Unknown" else "" + confidence = 1.0 - r.chaos if r is not None else None + + # Note: CharsetNormalizer does not return 'UTF-8-SIG' as the sig get stripped in the detection/normalization process + # but chardet does return 'utf-8-sig' and it is a valid codec name. + if r is not None and encoding == "utf_8" and r.bom: + encoding += "_sig" + + return { + "encoding": encoding + if encoding not in CHARDET_CORRESPONDENCE + else CHARDET_CORRESPONDENCE[encoding], + "language": language, + "confidence": confidence, + } + + +class CharsetNormalizerMatch(CharsetMatch): + pass + + +class CharsetNormalizerMatches(CharsetMatches): + @staticmethod + def from_fp(*args, **kwargs): # type: ignore + warnings.warn( # pragma: nocover + "staticmethod from_fp, from_bytes, from_path and normalize are deprecated " + "and scheduled to be removed in 3.0", + DeprecationWarning, + ) + return from_fp(*args, **kwargs) # pragma: nocover + + @staticmethod + def from_bytes(*args, **kwargs): # type: ignore + warnings.warn( # pragma: nocover + "staticmethod from_fp, from_bytes, from_path and normalize are deprecated " + "and scheduled to be removed in 3.0", + DeprecationWarning, + ) + return from_bytes(*args, **kwargs) # pragma: nocover + + @staticmethod + def from_path(*args, **kwargs): # type: ignore + warnings.warn( # pragma: nocover + "staticmethod from_fp, from_bytes, from_path and normalize are deprecated " + "and scheduled to be removed in 3.0", + DeprecationWarning, + ) + return from_path(*args, **kwargs) # pragma: nocover + + @staticmethod + def normalize(*args, **kwargs): # type: ignore + warnings.warn( # pragma: nocover + "staticmethod from_fp, from_bytes, from_path and normalize are deprecated " + "and scheduled to be removed in 3.0", + DeprecationWarning, + ) + return normalize(*args, **kwargs) # pragma: nocover + + +class CharsetDetector(CharsetNormalizerMatches): + pass + + +class CharsetDoctor(CharsetNormalizerMatches): + pass diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer/md.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer/md.py new file mode 100644 index 0000000..f3d6505 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer/md.py @@ -0,0 +1,559 @@ +from functools import lru_cache +from typing import List, Optional + +from .constant import COMMON_SAFE_ASCII_CHARACTERS, UNICODE_SECONDARY_RANGE_KEYWORD +from .utils import ( + is_accentuated, + is_ascii, + is_case_variable, + is_cjk, + is_emoticon, + is_hangul, + is_hiragana, + is_katakana, + is_latin, + is_punctuation, + is_separator, + is_symbol, + is_thai, + remove_accent, + unicode_range, +) + + +class MessDetectorPlugin: + """ + Base abstract class used for mess detection plugins. + All detectors MUST extend and implement given methods. + """ + + def eligible(self, character: str) -> bool: + """ + Determine if given character should be fed in. + """ + raise NotImplementedError # pragma: nocover + + def feed(self, character: str) -> None: + """ + The main routine to be executed upon character. + Insert the logic in witch the text would be considered chaotic. + """ + raise NotImplementedError # pragma: nocover + + def reset(self) -> None: # pragma: no cover + """ + Permit to reset the plugin to the initial state. + """ + raise NotImplementedError + + @property + def ratio(self) -> float: + """ + Compute the chaos ratio based on what your feed() has seen. + Must NOT be lower than 0.; No restriction gt 0. + """ + raise NotImplementedError # pragma: nocover + + +class TooManySymbolOrPunctuationPlugin(MessDetectorPlugin): + def __init__(self) -> None: + self._punctuation_count = 0 # type: int + self._symbol_count = 0 # type: int + self._character_count = 0 # type: int + + self._last_printable_char = None # type: Optional[str] + self._frenzy_symbol_in_word = False # type: bool + + def eligible(self, character: str) -> bool: + return character.isprintable() + + def feed(self, character: str) -> None: + self._character_count += 1 + + if ( + character != self._last_printable_char + and character not in COMMON_SAFE_ASCII_CHARACTERS + ): + if is_punctuation(character): + self._punctuation_count += 1 + elif ( + character.isdigit() is False + and is_symbol(character) + and is_emoticon(character) is False + ): + self._symbol_count += 2 + + self._last_printable_char = character + + def reset(self) -> None: # pragma: no cover + self._punctuation_count = 0 + self._character_count = 0 + self._symbol_count = 0 + + @property + def ratio(self) -> float: + if self._character_count == 0: + return 0.0 + + ratio_of_punctuation = ( + self._punctuation_count + self._symbol_count + ) / self._character_count # type: float + + return ratio_of_punctuation if ratio_of_punctuation >= 0.3 else 0.0 + + +class TooManyAccentuatedPlugin(MessDetectorPlugin): + def __init__(self) -> None: + self._character_count = 0 # type: int + self._accentuated_count = 0 # type: int + + def eligible(self, character: str) -> bool: + return character.isalpha() + + def feed(self, character: str) -> None: + self._character_count += 1 + + if is_accentuated(character): + self._accentuated_count += 1 + + def reset(self) -> None: # pragma: no cover + self._character_count = 0 + self._accentuated_count = 0 + + @property + def ratio(self) -> float: + if self._character_count == 0: + return 0.0 + ratio_of_accentuation = ( + self._accentuated_count / self._character_count + ) # type: float + return ratio_of_accentuation if ratio_of_accentuation >= 0.35 else 0.0 + + +class UnprintablePlugin(MessDetectorPlugin): + def __init__(self) -> None: + self._unprintable_count = 0 # type: int + self._character_count = 0 # type: int + + def eligible(self, character: str) -> bool: + return True + + def feed(self, character: str) -> None: + if ( + character.isspace() is False # includes \n \t \r \v + and character.isprintable() is False + and character != "\x1A" # Why? Its the ASCII substitute character. + ): + self._unprintable_count += 1 + self._character_count += 1 + + def reset(self) -> None: # pragma: no cover + self._unprintable_count = 0 + + @property + def ratio(self) -> float: + if self._character_count == 0: + return 0.0 + + return (self._unprintable_count * 8) / self._character_count + + +class SuspiciousDuplicateAccentPlugin(MessDetectorPlugin): + def __init__(self) -> None: + self._successive_count = 0 # type: int + self._character_count = 0 # type: int + + self._last_latin_character = None # type: Optional[str] + + def eligible(self, character: str) -> bool: + return character.isalpha() and is_latin(character) + + def feed(self, character: str) -> None: + self._character_count += 1 + if ( + self._last_latin_character is not None + and is_accentuated(character) + and is_accentuated(self._last_latin_character) + ): + if character.isupper() and self._last_latin_character.isupper(): + self._successive_count += 1 + # Worse if its the same char duplicated with different accent. + if remove_accent(character) == remove_accent(self._last_latin_character): + self._successive_count += 1 + self._last_latin_character = character + + def reset(self) -> None: # pragma: no cover + self._successive_count = 0 + self._character_count = 0 + self._last_latin_character = None + + @property + def ratio(self) -> float: + if self._character_count == 0: + return 0.0 + + return (self._successive_count * 2) / self._character_count + + +class SuspiciousRange(MessDetectorPlugin): + def __init__(self) -> None: + self._suspicious_successive_range_count = 0 # type: int + self._character_count = 0 # type: int + self._last_printable_seen = None # type: Optional[str] + + def eligible(self, character: str) -> bool: + return character.isprintable() + + def feed(self, character: str) -> None: + self._character_count += 1 + + if ( + character.isspace() + or is_punctuation(character) + or character in COMMON_SAFE_ASCII_CHARACTERS + ): + self._last_printable_seen = None + return + + if self._last_printable_seen is None: + self._last_printable_seen = character + return + + unicode_range_a = unicode_range( + self._last_printable_seen + ) # type: Optional[str] + unicode_range_b = unicode_range(character) # type: Optional[str] + + if is_suspiciously_successive_range(unicode_range_a, unicode_range_b): + self._suspicious_successive_range_count += 1 + + self._last_printable_seen = character + + def reset(self) -> None: # pragma: no cover + self._character_count = 0 + self._suspicious_successive_range_count = 0 + self._last_printable_seen = None + + @property + def ratio(self) -> float: + if self._character_count == 0: + return 0.0 + + ratio_of_suspicious_range_usage = ( + self._suspicious_successive_range_count * 2 + ) / self._character_count # type: float + + if ratio_of_suspicious_range_usage < 0.1: + return 0.0 + + return ratio_of_suspicious_range_usage + + +class SuperWeirdWordPlugin(MessDetectorPlugin): + def __init__(self) -> None: + self._word_count = 0 # type: int + self._bad_word_count = 0 # type: int + self._foreign_long_count = 0 # type: int + + self._is_current_word_bad = False # type: bool + self._foreign_long_watch = False # type: bool + + self._character_count = 0 # type: int + self._bad_character_count = 0 # type: int + + self._buffer = "" # type: str + self._buffer_accent_count = 0 # type: int + + def eligible(self, character: str) -> bool: + return True + + def feed(self, character: str) -> None: + if character.isalpha(): + self._buffer = "".join([self._buffer, character]) + if is_accentuated(character): + self._buffer_accent_count += 1 + if ( + self._foreign_long_watch is False + and (is_latin(character) is False or is_accentuated(character)) + and is_cjk(character) is False + and is_hangul(character) is False + and is_katakana(character) is False + and is_hiragana(character) is False + and is_thai(character) is False + ): + self._foreign_long_watch = True + return + if not self._buffer: + return + if ( + character.isspace() or is_punctuation(character) or is_separator(character) + ) and self._buffer: + self._word_count += 1 + buffer_length = len(self._buffer) # type: int + + self._character_count += buffer_length + + if buffer_length >= 4: + if self._buffer_accent_count / buffer_length > 0.34: + self._is_current_word_bad = True + # Word/Buffer ending with a upper case accentuated letter are so rare, + # that we will consider them all as suspicious. Same weight as foreign_long suspicious. + if is_accentuated(self._buffer[-1]) and self._buffer[-1].isupper(): + self._foreign_long_count += 1 + self._is_current_word_bad = True + if buffer_length >= 24 and self._foreign_long_watch: + self._foreign_long_count += 1 + self._is_current_word_bad = True + + if self._is_current_word_bad: + self._bad_word_count += 1 + self._bad_character_count += len(self._buffer) + self._is_current_word_bad = False + + self._foreign_long_watch = False + self._buffer = "" + self._buffer_accent_count = 0 + elif ( + character not in {"<", ">", "-", "=", "~", "|", "_"} + and character.isdigit() is False + and is_symbol(character) + ): + self._is_current_word_bad = True + self._buffer += character + + def reset(self) -> None: # pragma: no cover + self._buffer = "" + self._is_current_word_bad = False + self._foreign_long_watch = False + self._bad_word_count = 0 + self._word_count = 0 + self._character_count = 0 + self._bad_character_count = 0 + self._foreign_long_count = 0 + + @property + def ratio(self) -> float: + if self._word_count <= 10 and self._foreign_long_count == 0: + return 0.0 + + return self._bad_character_count / self._character_count + + +class CjkInvalidStopPlugin(MessDetectorPlugin): + """ + GB(Chinese) based encoding often render the stop incorrectly when the content does not fit and + can be easily detected. Searching for the overuse of '丅' and '丄'. + """ + + def __init__(self) -> None: + self._wrong_stop_count = 0 # type: int + self._cjk_character_count = 0 # type: int + + def eligible(self, character: str) -> bool: + return True + + def feed(self, character: str) -> None: + if character in {"丅", "丄"}: + self._wrong_stop_count += 1 + return + if is_cjk(character): + self._cjk_character_count += 1 + + def reset(self) -> None: # pragma: no cover + self._wrong_stop_count = 0 + self._cjk_character_count = 0 + + @property + def ratio(self) -> float: + if self._cjk_character_count < 16: + return 0.0 + return self._wrong_stop_count / self._cjk_character_count + + +class ArchaicUpperLowerPlugin(MessDetectorPlugin): + def __init__(self) -> None: + self._buf = False # type: bool + + self._character_count_since_last_sep = 0 # type: int + + self._successive_upper_lower_count = 0 # type: int + self._successive_upper_lower_count_final = 0 # type: int + + self._character_count = 0 # type: int + + self._last_alpha_seen = None # type: Optional[str] + self._current_ascii_only = True # type: bool + + def eligible(self, character: str) -> bool: + return True + + def feed(self, character: str) -> None: + is_concerned = character.isalpha() and is_case_variable(character) + chunk_sep = is_concerned is False + + if chunk_sep and self._character_count_since_last_sep > 0: + if ( + self._character_count_since_last_sep <= 64 + and character.isdigit() is False + and self._current_ascii_only is False + ): + self._successive_upper_lower_count_final += ( + self._successive_upper_lower_count + ) + + self._successive_upper_lower_count = 0 + self._character_count_since_last_sep = 0 + self._last_alpha_seen = None + self._buf = False + self._character_count += 1 + self._current_ascii_only = True + + return + + if self._current_ascii_only is True and is_ascii(character) is False: + self._current_ascii_only = False + + if self._last_alpha_seen is not None: + if (character.isupper() and self._last_alpha_seen.islower()) or ( + character.islower() and self._last_alpha_seen.isupper() + ): + if self._buf is True: + self._successive_upper_lower_count += 2 + self._buf = False + else: + self._buf = True + else: + self._buf = False + + self._character_count += 1 + self._character_count_since_last_sep += 1 + self._last_alpha_seen = character + + def reset(self) -> None: # pragma: no cover + self._character_count = 0 + self._character_count_since_last_sep = 0 + self._successive_upper_lower_count = 0 + self._successive_upper_lower_count_final = 0 + self._last_alpha_seen = None + self._buf = False + self._current_ascii_only = True + + @property + def ratio(self) -> float: + if self._character_count == 0: + return 0.0 + + return self._successive_upper_lower_count_final / self._character_count + + +def is_suspiciously_successive_range( + unicode_range_a: Optional[str], unicode_range_b: Optional[str] +) -> bool: + """ + Determine if two Unicode range seen next to each other can be considered as suspicious. + """ + if unicode_range_a is None or unicode_range_b is None: + return True + + if unicode_range_a == unicode_range_b: + return False + + if "Latin" in unicode_range_a and "Latin" in unicode_range_b: + return False + + if "Emoticons" in unicode_range_a or "Emoticons" in unicode_range_b: + return False + + # Latin characters can be accompanied with a combining diacritical mark + # eg. Vietnamese. + if ("Latin" in unicode_range_a or "Latin" in unicode_range_b) and ( + "Combining" in unicode_range_a or "Combining" in unicode_range_b + ): + return False + + keywords_range_a, keywords_range_b = unicode_range_a.split( + " " + ), unicode_range_b.split(" ") + + for el in keywords_range_a: + if el in UNICODE_SECONDARY_RANGE_KEYWORD: + continue + if el in keywords_range_b: + return False + + # Japanese Exception + range_a_jp_chars, range_b_jp_chars = ( + unicode_range_a + in ( + "Hiragana", + "Katakana", + ), + unicode_range_b in ("Hiragana", "Katakana"), + ) + if (range_a_jp_chars or range_b_jp_chars) and ( + "CJK" in unicode_range_a or "CJK" in unicode_range_b + ): + return False + if range_a_jp_chars and range_b_jp_chars: + return False + + if "Hangul" in unicode_range_a or "Hangul" in unicode_range_b: + if "CJK" in unicode_range_a or "CJK" in unicode_range_b: + return False + if unicode_range_a == "Basic Latin" or unicode_range_b == "Basic Latin": + return False + + # Chinese/Japanese use dedicated range for punctuation and/or separators. + if ("CJK" in unicode_range_a or "CJK" in unicode_range_b) or ( + unicode_range_a in ["Katakana", "Hiragana"] + and unicode_range_b in ["Katakana", "Hiragana"] + ): + if "Punctuation" in unicode_range_a or "Punctuation" in unicode_range_b: + return False + if "Forms" in unicode_range_a or "Forms" in unicode_range_b: + return False + + return True + + +@lru_cache(maxsize=2048) +def mess_ratio( + decoded_sequence: str, maximum_threshold: float = 0.2, debug: bool = False +) -> float: + """ + Compute a mess ratio given a decoded bytes sequence. The maximum threshold does stop the computation earlier. + """ + + detectors = [ + md_class() for md_class in MessDetectorPlugin.__subclasses__() + ] # type: List[MessDetectorPlugin] + + length = len(decoded_sequence) + 1 # type: int + + mean_mess_ratio = 0.0 # type: float + + if length < 512: + intermediary_mean_mess_ratio_calc = 32 # type: int + elif length <= 1024: + intermediary_mean_mess_ratio_calc = 64 + else: + intermediary_mean_mess_ratio_calc = 128 + + for character, index in zip(decoded_sequence + "\n", range(length)): + for detector in detectors: + if detector.eligible(character): + detector.feed(character) + + if ( + index > 0 and index % intermediary_mean_mess_ratio_calc == 0 + ) or index == length - 1: + mean_mess_ratio = sum(dt.ratio for dt in detectors) + + if mean_mess_ratio >= maximum_threshold: + break + + if debug: + for dt in detectors: # pragma: nocover + print(dt.__class__, dt.ratio) + + return round(mean_mess_ratio, 3) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer/models.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer/models.py new file mode 100644 index 0000000..c38da31 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer/models.py @@ -0,0 +1,392 @@ +import warnings +from collections import Counter +from encodings.aliases import aliases +from hashlib import sha256 +from json import dumps +from re import sub +from typing import Any, Dict, Iterator, List, Optional, Tuple, Union + +from .constant import NOT_PRINTABLE_PATTERN, TOO_BIG_SEQUENCE +from .md import mess_ratio +from .utils import iana_name, is_multi_byte_encoding, unicode_range + + +class CharsetMatch: + def __init__( + self, + payload: bytes, + guessed_encoding: str, + mean_mess_ratio: float, + has_sig_or_bom: bool, + languages: "CoherenceMatches", + decoded_payload: Optional[str] = None, + ): + self._payload = payload # type: bytes + + self._encoding = guessed_encoding # type: str + self._mean_mess_ratio = mean_mess_ratio # type: float + self._languages = languages # type: CoherenceMatches + self._has_sig_or_bom = has_sig_or_bom # type: bool + self._unicode_ranges = None # type: Optional[List[str]] + + self._leaves = [] # type: List[CharsetMatch] + self._mean_coherence_ratio = 0.0 # type: float + + self._output_payload = None # type: Optional[bytes] + self._output_encoding = None # type: Optional[str] + + self._string = decoded_payload # type: Optional[str] + + def __eq__(self, other: object) -> bool: + if not isinstance(other, CharsetMatch): + raise TypeError( + "__eq__ cannot be invoked on {} and {}.".format( + str(other.__class__), str(self.__class__) + ) + ) + return self.encoding == other.encoding and self.fingerprint == other.fingerprint + + def __lt__(self, other: object) -> bool: + """ + Implemented to make sorted available upon CharsetMatches items. + """ + if not isinstance(other, CharsetMatch): + raise ValueError + + chaos_difference = abs(self.chaos - other.chaos) # type: float + coherence_difference = abs(self.coherence - other.coherence) # type: float + + # Bellow 1% difference --> Use Coherence + if chaos_difference < 0.01 and coherence_difference > 0.02: + # When having a tough decision, use the result that decoded as many multi-byte as possible. + if chaos_difference == 0.0 and self.coherence == other.coherence: + return self.multi_byte_usage > other.multi_byte_usage + return self.coherence > other.coherence + + return self.chaos < other.chaos + + @property + def multi_byte_usage(self) -> float: + return 1.0 - len(str(self)) / len(self.raw) + + @property + def chaos_secondary_pass(self) -> float: + """ + Check once again chaos in decoded text, except this time, with full content. + Use with caution, this can be very slow. + Notice: Will be removed in 3.0 + """ + warnings.warn( + "chaos_secondary_pass is deprecated and will be removed in 3.0", + DeprecationWarning, + ) + return mess_ratio(str(self), 1.0) + + @property + def coherence_non_latin(self) -> float: + """ + Coherence ratio on the first non-latin language detected if ANY. + Notice: Will be removed in 3.0 + """ + warnings.warn( + "coherence_non_latin is deprecated and will be removed in 3.0", + DeprecationWarning, + ) + return 0.0 + + @property + def w_counter(self) -> Counter: + """ + Word counter instance on decoded text. + Notice: Will be removed in 3.0 + """ + warnings.warn( + "w_counter is deprecated and will be removed in 3.0", DeprecationWarning + ) + + string_printable_only = sub(NOT_PRINTABLE_PATTERN, " ", str(self).lower()) + + return Counter(string_printable_only.split()) + + def __str__(self) -> str: + # Lazy Str Loading + if self._string is None: + self._string = str(self._payload, self._encoding, "strict") + return self._string + + def __repr__(self) -> str: + return "".format(self.encoding, self.fingerprint) + + def add_submatch(self, other: "CharsetMatch") -> None: + if not isinstance(other, CharsetMatch) or other == self: + raise ValueError( + "Unable to add instance <{}> as a submatch of a CharsetMatch".format( + other.__class__ + ) + ) + + other._string = None # Unload RAM usage; dirty trick. + self._leaves.append(other) + + @property + def encoding(self) -> str: + return self._encoding + + @property + def encoding_aliases(self) -> List[str]: + """ + Encoding name are known by many name, using this could help when searching for IBM855 when it's listed as CP855. + """ + also_known_as = [] # type: List[str] + for u, p in aliases.items(): + if self.encoding == u: + also_known_as.append(p) + elif self.encoding == p: + also_known_as.append(u) + return also_known_as + + @property + def bom(self) -> bool: + return self._has_sig_or_bom + + @property + def byte_order_mark(self) -> bool: + return self._has_sig_or_bom + + @property + def languages(self) -> List[str]: + """ + Return the complete list of possible languages found in decoded sequence. + Usually not really useful. Returned list may be empty even if 'language' property return something != 'Unknown'. + """ + return [e[0] for e in self._languages] + + @property + def language(self) -> str: + """ + Most probable language found in decoded sequence. If none were detected or inferred, the property will return + "Unknown". + """ + if not self._languages: + # Trying to infer the language based on the given encoding + # Its either English or we should not pronounce ourselves in certain cases. + if "ascii" in self.could_be_from_charset: + return "English" + + # doing it there to avoid circular import + from charset_normalizer.cd import encoding_languages, mb_encoding_languages + + languages = ( + mb_encoding_languages(self.encoding) + if is_multi_byte_encoding(self.encoding) + else encoding_languages(self.encoding) + ) + + if len(languages) == 0 or "Latin Based" in languages: + return "Unknown" + + return languages[0] + + return self._languages[0][0] + + @property + def chaos(self) -> float: + return self._mean_mess_ratio + + @property + def coherence(self) -> float: + if not self._languages: + return 0.0 + return self._languages[0][1] + + @property + def percent_chaos(self) -> float: + return round(self.chaos * 100, ndigits=3) + + @property + def percent_coherence(self) -> float: + return round(self.coherence * 100, ndigits=3) + + @property + def raw(self) -> bytes: + """ + Original untouched bytes. + """ + return self._payload + + @property + def submatch(self) -> List["CharsetMatch"]: + return self._leaves + + @property + def has_submatch(self) -> bool: + return len(self._leaves) > 0 + + @property + def alphabets(self) -> List[str]: + if self._unicode_ranges is not None: + return self._unicode_ranges + # list detected ranges + detected_ranges = [ + unicode_range(char) for char in str(self) + ] # type: List[Optional[str]] + # filter and sort + self._unicode_ranges = sorted(list({r for r in detected_ranges if r})) + return self._unicode_ranges + + @property + def could_be_from_charset(self) -> List[str]: + """ + The complete list of encoding that output the exact SAME str result and therefore could be the originating + encoding. + This list does include the encoding available in property 'encoding'. + """ + return [self._encoding] + [m.encoding for m in self._leaves] + + def first(self) -> "CharsetMatch": + """ + Kept for BC reasons. Will be removed in 3.0. + """ + return self + + def best(self) -> "CharsetMatch": + """ + Kept for BC reasons. Will be removed in 3.0. + """ + return self + + def output(self, encoding: str = "utf_8") -> bytes: + """ + Method to get re-encoded bytes payload using given target encoding. Default to UTF-8. + Any errors will be simply ignored by the encoder NOT replaced. + """ + if self._output_encoding is None or self._output_encoding != encoding: + self._output_encoding = encoding + self._output_payload = str(self).encode(encoding, "replace") + + return self._output_payload # type: ignore + + @property + def fingerprint(self) -> str: + """ + Retrieve the unique SHA256 computed using the transformed (re-encoded) payload. Not the original one. + """ + return sha256(self.output()).hexdigest() + + +class CharsetMatches: + """ + Container with every CharsetMatch items ordered by default from most probable to the less one. + Act like a list(iterable) but does not implements all related methods. + """ + + def __init__(self, results: List[CharsetMatch] = None): + self._results = sorted(results) if results else [] # type: List[CharsetMatch] + + def __iter__(self) -> Iterator[CharsetMatch]: + yield from self._results + + def __getitem__(self, item: Union[int, str]) -> CharsetMatch: + """ + Retrieve a single item either by its position or encoding name (alias may be used here). + Raise KeyError upon invalid index or encoding not present in results. + """ + if isinstance(item, int): + return self._results[item] + if isinstance(item, str): + item = iana_name(item, False) + for result in self._results: + if item in result.could_be_from_charset: + return result + raise KeyError + + def __len__(self) -> int: + return len(self._results) + + def __bool__(self) -> bool: + return len(self._results) > 0 + + def append(self, item: CharsetMatch) -> None: + """ + Insert a single match. Will be inserted accordingly to preserve sort. + Can be inserted as a submatch. + """ + if not isinstance(item, CharsetMatch): + raise ValueError( + "Cannot append instance '{}' to CharsetMatches".format( + str(item.__class__) + ) + ) + # We should disable the submatch factoring when the input file is too heavy (conserve RAM usage) + if len(item.raw) <= TOO_BIG_SEQUENCE: + for match in self._results: + if match.fingerprint == item.fingerprint and match.chaos == item.chaos: + match.add_submatch(item) + return + self._results.append(item) + self._results = sorted(self._results) + + def best(self) -> Optional["CharsetMatch"]: + """ + Simply return the first match. Strict equivalent to matches[0]. + """ + if not self._results: + return None + return self._results[0] + + def first(self) -> Optional["CharsetMatch"]: + """ + Redundant method, call the method best(). Kept for BC reasons. + """ + return self.best() + + +CoherenceMatch = Tuple[str, float] +CoherenceMatches = List[CoherenceMatch] + + +class CliDetectionResult: + def __init__( + self, + path: str, + encoding: Optional[str], + encoding_aliases: List[str], + alternative_encodings: List[str], + language: str, + alphabets: List[str], + has_sig_or_bom: bool, + chaos: float, + coherence: float, + unicode_path: Optional[str], + is_preferred: bool, + ): + self.path = path # type: str + self.unicode_path = unicode_path # type: Optional[str] + self.encoding = encoding # type: Optional[str] + self.encoding_aliases = encoding_aliases # type: List[str] + self.alternative_encodings = alternative_encodings # type: List[str] + self.language = language # type: str + self.alphabets = alphabets # type: List[str] + self.has_sig_or_bom = has_sig_or_bom # type: bool + self.chaos = chaos # type: float + self.coherence = coherence # type: float + self.is_preferred = is_preferred # type: bool + + @property + def __dict__(self) -> Dict[str, Any]: # type: ignore + return { + "path": self.path, + "encoding": self.encoding, + "encoding_aliases": self.encoding_aliases, + "alternative_encodings": self.alternative_encodings, + "language": self.language, + "alphabets": self.alphabets, + "has_sig_or_bom": self.has_sig_or_bom, + "chaos": self.chaos, + "coherence": self.coherence, + "unicode_path": self.unicode_path, + "is_preferred": self.is_preferred, + } + + def to_json(self) -> str: + return dumps(self.__dict__, ensure_ascii=True, indent=4) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer/py.typed b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer/py.typed new file mode 100644 index 0000000..e69de29 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer/utils.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer/utils.py new file mode 100644 index 0000000..dcb14df --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer/utils.py @@ -0,0 +1,342 @@ +try: + import unicodedata2 as unicodedata +except ImportError: + import unicodedata # type: ignore[no-redef] + +import importlib +import logging +from codecs import IncrementalDecoder +from encodings.aliases import aliases +from functools import lru_cache +from re import findall +from typing import List, Optional, Set, Tuple, Union + +from _multibytecodec import MultibyteIncrementalDecoder # type: ignore + +from .constant import ( + ENCODING_MARKS, + IANA_SUPPORTED_SIMILAR, + RE_POSSIBLE_ENCODING_INDICATION, + UNICODE_RANGES_COMBINED, + UNICODE_SECONDARY_RANGE_KEYWORD, + UTF8_MAXIMAL_ALLOCATION, +) + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_accentuated(character: str) -> bool: + try: + description = unicodedata.name(character) # type: str + except ValueError: + return False + return ( + "WITH GRAVE" in description + or "WITH ACUTE" in description + or "WITH CEDILLA" in description + or "WITH DIAERESIS" in description + or "WITH CIRCUMFLEX" in description + or "WITH TILDE" in description + ) + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def remove_accent(character: str) -> str: + decomposed = unicodedata.decomposition(character) # type: str + if not decomposed: + return character + + codes = decomposed.split(" ") # type: List[str] + + return chr(int(codes[0], 16)) + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def unicode_range(character: str) -> Optional[str]: + """ + Retrieve the Unicode range official name from a single character. + """ + character_ord = ord(character) # type: int + + for range_name, ord_range in UNICODE_RANGES_COMBINED.items(): + if character_ord in ord_range: + return range_name + + return None + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_latin(character: str) -> bool: + try: + description = unicodedata.name(character) # type: str + except ValueError: + return False + return "LATIN" in description + + +def is_ascii(character: str) -> bool: + try: + character.encode("ascii") + except UnicodeEncodeError: + return False + return True + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_punctuation(character: str) -> bool: + character_category = unicodedata.category(character) # type: str + + if "P" in character_category: + return True + + character_range = unicode_range(character) # type: Optional[str] + + if character_range is None: + return False + + return "Punctuation" in character_range + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_symbol(character: str) -> bool: + character_category = unicodedata.category(character) # type: str + + if "S" in character_category or "N" in character_category: + return True + + character_range = unicode_range(character) # type: Optional[str] + + if character_range is None: + return False + + return "Forms" in character_range + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_emoticon(character: str) -> bool: + character_range = unicode_range(character) # type: Optional[str] + + if character_range is None: + return False + + return "Emoticons" in character_range + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_separator(character: str) -> bool: + if character.isspace() or character in {"|", "+", ",", ";", "<", ">"}: + return True + + character_category = unicodedata.category(character) # type: str + + return "Z" in character_category + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_case_variable(character: str) -> bool: + return character.islower() != character.isupper() + + +def is_private_use_only(character: str) -> bool: + character_category = unicodedata.category(character) # type: str + + return character_category == "Co" + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_cjk(character: str) -> bool: + try: + character_name = unicodedata.name(character) + except ValueError: + return False + + return "CJK" in character_name + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_hiragana(character: str) -> bool: + try: + character_name = unicodedata.name(character) + except ValueError: + return False + + return "HIRAGANA" in character_name + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_katakana(character: str) -> bool: + try: + character_name = unicodedata.name(character) + except ValueError: + return False + + return "KATAKANA" in character_name + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_hangul(character: str) -> bool: + try: + character_name = unicodedata.name(character) + except ValueError: + return False + + return "HANGUL" in character_name + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_thai(character: str) -> bool: + try: + character_name = unicodedata.name(character) + except ValueError: + return False + + return "THAI" in character_name + + +@lru_cache(maxsize=len(UNICODE_RANGES_COMBINED)) +def is_unicode_range_secondary(range_name: str) -> bool: + return any(keyword in range_name for keyword in UNICODE_SECONDARY_RANGE_KEYWORD) + + +def any_specified_encoding(sequence: bytes, search_zone: int = 4096) -> Optional[str]: + """ + Extract using ASCII-only decoder any specified encoding in the first n-bytes. + """ + if not isinstance(sequence, bytes): + raise TypeError + + seq_len = len(sequence) # type: int + + results = findall( + RE_POSSIBLE_ENCODING_INDICATION, + sequence[: min(seq_len, search_zone)].decode("ascii", errors="ignore"), + ) # type: List[str] + + if len(results) == 0: + return None + + for specified_encoding in results: + specified_encoding = specified_encoding.lower().replace("-", "_") + + for encoding_alias, encoding_iana in aliases.items(): + if encoding_alias == specified_encoding: + return encoding_iana + if encoding_iana == specified_encoding: + return encoding_iana + + return None + + +@lru_cache(maxsize=128) +def is_multi_byte_encoding(name: str) -> bool: + """ + Verify is a specific encoding is a multi byte one based on it IANA name + """ + return name in { + "utf_8", + "utf_8_sig", + "utf_16", + "utf_16_be", + "utf_16_le", + "utf_32", + "utf_32_le", + "utf_32_be", + "utf_7", + } or issubclass( + importlib.import_module("encodings.{}".format(name)).IncrementalDecoder, # type: ignore + MultibyteIncrementalDecoder, + ) + + +def identify_sig_or_bom(sequence: bytes) -> Tuple[Optional[str], bytes]: + """ + Identify and extract SIG/BOM in given sequence. + """ + + for iana_encoding in ENCODING_MARKS: + marks = ENCODING_MARKS[iana_encoding] # type: Union[bytes, List[bytes]] + + if isinstance(marks, bytes): + marks = [marks] + + for mark in marks: + if sequence.startswith(mark): + return iana_encoding, mark + + return None, b"" + + +def should_strip_sig_or_bom(iana_encoding: str) -> bool: + return iana_encoding not in {"utf_16", "utf_32"} + + +def iana_name(cp_name: str, strict: bool = True) -> str: + cp_name = cp_name.lower().replace("-", "_") + + for encoding_alias, encoding_iana in aliases.items(): + if cp_name in [encoding_alias, encoding_iana]: + return encoding_iana + + if strict: + raise ValueError("Unable to retrieve IANA for '{}'".format(cp_name)) + + return cp_name + + +def range_scan(decoded_sequence: str) -> List[str]: + ranges = set() # type: Set[str] + + for character in decoded_sequence: + character_range = unicode_range(character) # type: Optional[str] + + if character_range is None: + continue + + ranges.add(character_range) + + return list(ranges) + + +def cp_similarity(iana_name_a: str, iana_name_b: str) -> float: + + if is_multi_byte_encoding(iana_name_a) or is_multi_byte_encoding(iana_name_b): + return 0.0 + + decoder_a = importlib.import_module("encodings.{}".format(iana_name_a)).IncrementalDecoder # type: ignore + decoder_b = importlib.import_module("encodings.{}".format(iana_name_b)).IncrementalDecoder # type: ignore + + id_a = decoder_a(errors="ignore") # type: IncrementalDecoder + id_b = decoder_b(errors="ignore") # type: IncrementalDecoder + + character_match_count = 0 # type: int + + for i in range(255): + to_be_decoded = bytes([i]) # type: bytes + if id_a.decode(to_be_decoded) == id_b.decode(to_be_decoded): + character_match_count += 1 + + return character_match_count / 254 + + +def is_cp_similar(iana_name_a: str, iana_name_b: str) -> bool: + """ + Determine if two code page are at least 80% similar. IANA_SUPPORTED_SIMILAR dict was generated using + the function cp_similarity. + """ + return ( + iana_name_a in IANA_SUPPORTED_SIMILAR + and iana_name_b in IANA_SUPPORTED_SIMILAR[iana_name_a] + ) + + +def set_logging_handler( + name: str = "charset_normalizer", + level: int = logging.INFO, + format_string: str = "%(asctime)s | %(levelname)s | %(message)s", +) -> None: + + logger = logging.getLogger(name) + logger.setLevel(level) + + handler = logging.StreamHandler() + handler.setFormatter(logging.Formatter(format_string)) + logger.addHandler(handler) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer/version.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer/version.py new file mode 100644 index 0000000..77cfff2 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/charset_normalizer/version.py @@ -0,0 +1,6 @@ +""" +Expose version +""" + +__version__ = "2.0.12" +VERSION = __version__.split(".") diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.1.3.dist-info/INSTALLER b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.1.3.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.1.3.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.1.3.dist-info/LICENSE b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.1.3.dist-info/LICENSE new file mode 100644 index 0000000..d13065d --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.1.3.dist-info/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2021 Splunk Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.1.3.dist-info/METADATA b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.1.3.dist-info/METADATA new file mode 100644 index 0000000..21ffdb5 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.1.3.dist-info/METADATA @@ -0,0 +1,30 @@ +Metadata-Version: 2.1 +Name: cloudconnectlib +Version: 3.1.3 +Summary: APP Cloud Connect +License: Apache-2.0 +Author: Addon Factory template +Author-email: addonfactory@splunk.com +Requires-Python: >=3.7,<4.0 +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: Apache Software License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.7 +Requires-Dist: PySocks (>=1.7.1,<2.0.0) +Requires-Dist: decorator (==5.1.1) +Requires-Dist: jinja2 (>=2.10.1,<4.0.0) +Requires-Dist: jsonpath-ng (>=1.5.2,<2.0.0) +Requires-Dist: jsonschema (>=4.4.0,<5.0.0) +Requires-Dist: munch (>=2.3.2,<3.0.0) +Requires-Dist: requests (>=2.27.1,<3.0.0) +Requires-Dist: solnlib (>=4.6.0,<5.0.0) +Requires-Dist: splunk-sdk (>=1.6,<2.0) +Requires-Dist: splunktalib (==3.0.0) +Requires-Dist: splunktaucclib (==6.0.0) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.1.3.dist-info/RECORD b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.1.3.dist-info/RECORD new file mode 100644 index 0000000..89f801a --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.1.3.dist-info/RECORD @@ -0,0 +1,47 @@ +cloudconnectlib-3.1.3.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +cloudconnectlib-3.1.3.dist-info/LICENSE,sha256=Xvvd894DEl8lUHPEeFU-Ya18RW7Hc2IlPTZS_bE3Hgs,11341 +cloudconnectlib-3.1.3.dist-info/METADATA,sha256=b8QBy1ykc1bv6IlFv5cszhuuR6nqNCXOsr61YwA07k4,1188 +cloudconnectlib-3.1.3.dist-info/RECORD,, +cloudconnectlib-3.1.3.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +cloudconnectlib-3.1.3.dist-info/WHEEL,sha256=vVCvjcmxuUltf8cYhJ0sJMRDLr1XsPuxEId8YDzbyCY,88 +cloudconnectlib/__init__.py,sha256=KPOnKSsmH-eAGJwZ3LQey4CMmJiCQOLsf8xvKjSiiUE,628 +cloudconnectlib/client.py,sha256=bCb28NRHRmDBkFLLa0eYK-CUsH8m4oU9jR00hQMShsc,3124 +cloudconnectlib/common/__init__.py,sha256=TB1W22zY5u1d91XSos8Qa2V5NMCpgLTgIiV2wT4hx3Y,575 +cloudconnectlib/common/lib_util.py,sha256=GqAdYWwzvpOXnbjY__ioyDILwhZC2LeOaHiKcl0s7I4,1669 +cloudconnectlib/common/log.py,sha256=HJ10AfdwC-hMYkCYkhW0W27FYScGavxMbu3mCUFfv_I,1788 +cloudconnectlib/common/util.py,sha256=p3tTSMAOAEkeT0WmUFNWgXTYspL_vvxsoPCHWX-jWck,1942 +cloudconnectlib/configuration/__init__.py,sha256=vDmcGJjnxxkHIICiIOeK0FSJK_hxl3SJGHwdCDbYzMc,617 +cloudconnectlib/configuration/loader.py,sha256=jgzTkjp-HsHRWdKYRR4dRcGcLa3Fv43sZAQgh-iSnro,10605 +cloudconnectlib/configuration/schema_1_0_0.json,sha256=WKWbZJAyWu-rt-OLwvNoMo_UqBi3iwxHbIcRy0aSRy0,11645 +cloudconnectlib/core/__init__.py,sha256=02DdxhQvHpl-ncbu3B3GY1qvoWVHhhpSyYP4Gez9bxU,665 +cloudconnectlib/core/checkpoint.py,sha256=YkpN8pUFb8Z2iScivQHHW9HN9RqlX7FuqqpqNcGfFK8,1816 +cloudconnectlib/core/defaults.py,sha256=VRwIIKxLGkDQiLB7c776y2rHsb0AmMi3F-hmzJKVdUw,1317 +cloudconnectlib/core/engine.py,sha256=Lt0RQR28YFa_X1cEpOH_LpT3hUcIzGe2lT7tHnw3KGA,10924 +cloudconnectlib/core/engine_v2.py,sha256=FTGYnoVSFUsuvuOh_0AwpsDRN4hxAGwYqdUqSQcUmok,5217 +cloudconnectlib/core/exceptions.py,sha256=pv35SgTgVc6ohLp7sopGYPeIMxcL8N1lWH0Tb6n6_wE,1314 +cloudconnectlib/core/ext.py,sha256=mn_ddquSQ6-6G7bKeSqeg5MYfjRWT0yuxpDY7eDjEVQ,12277 +cloudconnectlib/core/http.py,sha256=vLOnciuoEGt45Ygkrll56KxiSN2DX3tTiKVbiUpbdKw,10992 +cloudconnectlib/core/job.py,sha256=77nHgtyiAZBSvrQiEenb2oiIJ1tbzb3PCvL9AuzrtUc,4873 +cloudconnectlib/core/models.py,sha256=wYrknbeNN6861asiRCKR_5qMpAvHIaDvKE9bFzpW2cU,10002 +cloudconnectlib/core/pipemgr.py,sha256=KAOPjL6ktPQfo1f7pepsiVEOGzN6ut2SjvbyOIZRCIY,929 +cloudconnectlib/core/plugin.py,sha256=GNyOhpT8-HhgAMqG26D5pgE0WcFTkD7QJFUlLEDY6Pc,3592 +cloudconnectlib/core/task.py,sha256=HahqiR6WaS8A4AMBHv4Tss-CNq5HC0Z07l9XJHdqm_A,20996 +cloudconnectlib/core/template.py,sha256=lrnl-xVai45ngNMNg4nfOYYITs9mk16j5nEB9tR3ZpY,1153 +cloudconnectlib/splunktacollectorlib/__init__.py,sha256=TB1W22zY5u1d91XSos8Qa2V5NMCpgLTgIiV2wT4hx3Y,575 +cloudconnectlib/splunktacollectorlib/cloud_connect_mod_input.py,sha256=5tKhEfXcG3OBaZPwFq9d2nuhVkUbjmJdAAg6H54O81A,2915 +cloudconnectlib/splunktacollectorlib/common/__init__.py,sha256=zUQIoODTieWPOAgrAKU0dP1SAS_c6IF1l1LEXO5LvfU,1624 +cloudconnectlib/splunktacollectorlib/common/log.py,sha256=Feu868c98qJYDG2XRZ36aPlm8mLwklVshBFp-2p_W88,1919 +cloudconnectlib/splunktacollectorlib/common/rwlock.py,sha256=PftXe5_OKBCHqueVBzSaAZteSbbJnRypqglxuitpTgo,2065 +cloudconnectlib/splunktacollectorlib/common/schema_meta.py,sha256=k3oKBoU7nvBXIJB5lWvIdykKPpvBV29zyvayd2bv2OQ,803 +cloudconnectlib/splunktacollectorlib/config.py,sha256=QfheX8Z_8HTlSYlqxRlPpLfgdGLMJNL0HZ_6pxdGC4c,14530 +cloudconnectlib/splunktacollectorlib/data_collection/__init__.py,sha256=KD_6X3x7TBHyyDAygJI-_evQkuvkDFtuHHxioYKC9C0,597 +cloudconnectlib/splunktacollectorlib/data_collection/ta_checkpoint_manager.py,sha256=V-QOELo14sNtv48MD_KceEaBhWwBwYdSQ2n2FE2Exs8,6324 +cloudconnectlib/splunktacollectorlib/data_collection/ta_config.py,sha256=iQnPwlcNhW0WzdCDu3TPH8bqSZlMIRrhpHl6D38hbtU,6880 +cloudconnectlib/splunktacollectorlib/data_collection/ta_consts.py,sha256=9ns0y9TOzOzFIfTz0AVHS2Dw66bD1eeFXoH5xGb4-BQ,1897 +cloudconnectlib/splunktacollectorlib/data_collection/ta_data_client.py,sha256=EVzIU1-mYqZ8kg31A_bHD0TVyd_4N7D2T5zWngPnBXk,2876 +cloudconnectlib/splunktacollectorlib/data_collection/ta_data_collector.py,sha256=BhCoFr39FWUDqo6itfcPQy8F9QGXqBV_zzp2KVpAUgA,5701 +cloudconnectlib/splunktacollectorlib/data_collection/ta_data_loader.py,sha256=5LCshOxw4I5esnSwZY-GSEP2Qfo7WwKc_7yU0x7Uyjk,5503 +cloudconnectlib/splunktacollectorlib/data_collection/ta_helper.py,sha256=khCUCJE4XjzXmqYmouyieN6uuFIhDD0D5j87U0ii2lY,5514 +cloudconnectlib/splunktacollectorlib/data_collection/ta_mod_input.py,sha256=W4Wr2aSA1aBuuqLZwRiGl9Dhb187dYxX15206QOEVNE,8355 +cloudconnectlib/splunktacollectorlib/splunk_ta_import_declare.py,sha256=DH8W8j85sDqpVBSoT7uxlp3aqp_LMcG8pyPTblgrPnU,1132 +cloudconnectlib/splunktacollectorlib/ta_cloud_connect_client.py,sha256=88pz8BNSgID2Z_6tmUeLU8wEaZ46GxUHfLi_gEjSc50,1755 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.1.3.dist-info/REQUESTED b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.1.3.dist-info/REQUESTED new file mode 100644 index 0000000..e69de29 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.1.3.dist-info/WHEEL b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.1.3.dist-info/WHEEL new file mode 100644 index 0000000..4ba7671 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.1.3.dist-info/WHEEL @@ -0,0 +1,4 @@ +Wheel-Version: 1.0 +Generator: poetry-core 1.4.0 +Root-Is-Purelib: true +Tag: py3-none-any diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.2.0.dist-info/INSTALLER b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.2.0.dist-info/INSTALLER new file mode 100755 index 0000000..a1b589e --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.2.0.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.2.0.dist-info/LICENSE b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.2.0.dist-info/LICENSE new file mode 100755 index 0000000..d13065d --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.2.0.dist-info/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2021 Splunk Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.2.0.dist-info/METADATA b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.2.0.dist-info/METADATA new file mode 100755 index 0000000..ece99af --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.2.0.dist-info/METADATA @@ -0,0 +1,28 @@ +Metadata-Version: 2.1 +Name: cloudconnectlib +Version: 3.2.0 +Summary: APP Cloud Connect +License: Apache-2.0 +Author: Addon Factory template +Author-email: addonfactory@splunk.com +Requires-Python: >=3.7,<3.13 +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: Apache Software License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Requires-Dist: PySocks (>=1.7.1,<2.0.0) +Requires-Dist: decorator (==5.1.1) +Requires-Dist: jinja2 (>=2.10.1,<4.0.0) +Requires-Dist: jsonpath-ng (>=1.5.2,<2.0.0) +Requires-Dist: jsonschema (>=4.4.0,<5.0.0) +Requires-Dist: munch (>=2.3.2,<3.0.0) +Requires-Dist: requests (>=2.27.1,<3.0.0) +Requires-Dist: solnlib (>=6.0.1,<7.0.0) +Requires-Dist: splunktalib (==3.0.5) +Requires-Dist: splunktaucclib (==6.5.3) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.2.0.dist-info/RECORD b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.2.0.dist-info/RECORD new file mode 100755 index 0000000..3682e35 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.2.0.dist-info/RECORD @@ -0,0 +1,47 @@ +cloudconnectlib-3.2.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +cloudconnectlib-3.2.0.dist-info/LICENSE,sha256=Xvvd894DEl8lUHPEeFU-Ya18RW7Hc2IlPTZS_bE3Hgs,11341 +cloudconnectlib-3.2.0.dist-info/METADATA,sha256=W9TprzuZWoLAGYe5u6bF5ci8cole9igjD99VREPlPPQ,1100 +cloudconnectlib-3.2.0.dist-info/RECORD,, +cloudconnectlib-3.2.0.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +cloudconnectlib-3.2.0.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88 +cloudconnectlib/__init__.py,sha256=jUtZA-HbOvOt47fhTO8R_Gt-xohyvYcYngY8endV1Tk,632 +cloudconnectlib/client.py,sha256=0IjoEHJZjvA0Z2RQGRsZtODsbfRfv3DgLvuDyE9vKCc,3128 +cloudconnectlib/common/__init__.py,sha256=s2TnJWC_ggs1qS-6CEsKHi2Yz1f1fAKDkBTKprJ37vg,579 +cloudconnectlib/common/lib_util.py,sha256=fA4U2HXoihau_lSEOIusANdwXRqcQgc4ytI1AYyIyL0,1673 +cloudconnectlib/common/log.py,sha256=qTF2i43mjdo8RZWl9R5VrOh2SUzI-B27b6_EEDWiOW0,1792 +cloudconnectlib/common/util.py,sha256=v1EIq1Pxy-ecTpeVQgllAzlgd8EPGreZZjYa_BGyvM0,1946 +cloudconnectlib/configuration/__init__.py,sha256=m_tmCZ-XeDigEQrxN2T-YyLufAVKsrGZ1Q-sZJNgiOc,621 +cloudconnectlib/configuration/loader.py,sha256=Zvz2sssHQMIoDIZlkjmDZV-RWZWmisgNif7VKCj6OaY,10609 +cloudconnectlib/configuration/schema_1_0_0.json,sha256=WKWbZJAyWu-rt-OLwvNoMo_UqBi3iwxHbIcRy0aSRy0,11645 +cloudconnectlib/core/__init__.py,sha256=yYuCcmxu7cJzYltLM5l2AGPUF9F8KDX4shro7ZrTDH0,669 +cloudconnectlib/core/checkpoint.py,sha256=Bnff3J7JNELK7NgefzHzeY85H8FVnAJFNXyRgL9F5m4,1820 +cloudconnectlib/core/defaults.py,sha256=WCPK1a2kA7_pqfORcKAch77_Z12nCYaWmNFIX43t6_U,1321 +cloudconnectlib/core/engine.py,sha256=dsBZsd-oX8pyOPpZogQpYNwEYqD2OFBBF2GeAhWzG_U,10928 +cloudconnectlib/core/engine_v2.py,sha256=DPTiUwDT5NTEBLib1y9IjGoIjQqwsks5eDgTxjDGaz4,5221 +cloudconnectlib/core/exceptions.py,sha256=T5ppHgGb8EqdaJ2hLOAS7UrG0X8MlTmRPCYvbG7-L-E,1318 +cloudconnectlib/core/ext.py,sha256=zDAlhShPWx6GYYd01m8H4Xn03cuJVQDNRs-SVZ3ArTA,12281 +cloudconnectlib/core/http.py,sha256=6kelKkdDdWhvbVtBoArEfroI8gPNqQ_JKEGMiNxDmIY,10996 +cloudconnectlib/core/job.py,sha256=FiKxiGA90fsiaGNxgeOo2RxQbgh9SHn9gz4qSA91WIU,4877 +cloudconnectlib/core/models.py,sha256=tVuYfZJLuv03fL5bmdQG3Nhw6ZcHcyuJX8JmG0227lw,10006 +cloudconnectlib/core/pipemgr.py,sha256=cTinql81RZJ0t_CXaeL1D76EnwR3JxKLdHnMC30zhDc,933 +cloudconnectlib/core/plugin.py,sha256=tdeHYaUBNcvu6G3IgYX91ZDpowyIDZmsmj-ADTpesF8,3596 +cloudconnectlib/core/task.py,sha256=l0dkwp4yaU6o_dl04aa-Pj5jXiXht_nTp3KDl6g91ns,21000 +cloudconnectlib/core/template.py,sha256=Gdsouf_N2uy-2Z_Q4yuQSqVG5RSdbw_9xWuKXUUJnrc,1157 +cloudconnectlib/splunktacollectorlib/__init__.py,sha256=s2TnJWC_ggs1qS-6CEsKHi2Yz1f1fAKDkBTKprJ37vg,579 +cloudconnectlib/splunktacollectorlib/cloud_connect_mod_input.py,sha256=qEOn1woMmSyXaTnj7iWxVnzf2bgVVkQb97AKfIJc-ZI,2919 +cloudconnectlib/splunktacollectorlib/common/__init__.py,sha256=pe0kxKRa1Qv0KOl_oMJWs93fOzD3xjaJ7L1T673Gyg8,1628 +cloudconnectlib/splunktacollectorlib/common/log.py,sha256=trk_p92ULdb55NXrp4bXuvf5EmQ2Zz18l_Bd4DUPiFA,1923 +cloudconnectlib/splunktacollectorlib/common/rwlock.py,sha256=CdnNILeKsxAnlcT40bP3QRJY1fWmL2I9Px3QounAzKU,2069 +cloudconnectlib/splunktacollectorlib/common/schema_meta.py,sha256=tSJkupgfv4CJ0yuiKNOZvdU7_YSK8Xbzld8JxfByV70,807 +cloudconnectlib/splunktacollectorlib/config.py,sha256=GndBaI7xpuRjBaK_eNorgiUhSbZoEH_XPSdkS0Oc3ek,14534 +cloudconnectlib/splunktacollectorlib/data_collection/__init__.py,sha256=WfJ4-D9E7CBjRxzYPP2kfpEznd6t81HkHVe4DbghTJo,601 +cloudconnectlib/splunktacollectorlib/data_collection/ta_checkpoint_manager.py,sha256=Sv8bMwp7FkLAoJW9y65A5LUGHNsbNrZao5QIh57rpzk,6328 +cloudconnectlib/splunktacollectorlib/data_collection/ta_config.py,sha256=rjgaN-AF1UbUa3HC8neNXImO0iQIT7FZX63kLplv9sw,6884 +cloudconnectlib/splunktacollectorlib/data_collection/ta_consts.py,sha256=B5CRnx2uATV65MInIh3HSiEUt9JOIUJRJ2OCqxOhTzc,1901 +cloudconnectlib/splunktacollectorlib/data_collection/ta_data_client.py,sha256=tQwGSEcFjGYpWqTTISm8EaDaTts4S9RYCnDQ1ZXGLVw,2880 +cloudconnectlib/splunktacollectorlib/data_collection/ta_data_collector.py,sha256=P9ZOgoXXpaQOhVbYOwwPl2HVQafvz9Aw2alFZSnu9oQ,5705 +cloudconnectlib/splunktacollectorlib/data_collection/ta_data_loader.py,sha256=knpNAoXl6hsXhFAENee6DVNOwQAFY_CcB31BfYDa8DQ,5507 +cloudconnectlib/splunktacollectorlib/data_collection/ta_helper.py,sha256=93rX8r3Ga_CGjw1ynqbuKf3EARdtnzvBs-1XYk6xD_A,5518 +cloudconnectlib/splunktacollectorlib/data_collection/ta_mod_input.py,sha256=3b7cpITnA2yfj5A_g30qRxuTnDj5OWUYlC_VpV118aQ,8359 +cloudconnectlib/splunktacollectorlib/splunk_ta_import_declare.py,sha256=JQtFqfcgiYRjGe_nEODw0lj_sBog-XECgJiWXLZEVpg,1136 +cloudconnectlib/splunktacollectorlib/ta_cloud_connect_client.py,sha256=OvbahjJXJVMWSr8E61PaMTZman6dDbtRIpwySRXqKFc,1759 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.2.0.dist-info/REQUESTED b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.2.0.dist-info/REQUESTED new file mode 100755 index 0000000..e69de29 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.2.0.dist-info/WHEEL b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.2.0.dist-info/WHEEL new file mode 100755 index 0000000..258a6ff --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.2.0.dist-info/WHEEL @@ -0,0 +1,4 @@ +Wheel-Version: 1.0 +Generator: poetry-core 1.6.1 +Root-Is-Purelib: true +Tag: py3-none-any diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.3.0.dist-info/INSTALLER b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.3.0.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.3.0.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.3.0.dist-info/LICENSE b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.3.0.dist-info/LICENSE new file mode 100644 index 0000000..d13065d --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.3.0.dist-info/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2021 Splunk Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.3.0.dist-info/METADATA b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.3.0.dist-info/METADATA new file mode 100644 index 0000000..096ecdb --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.3.0.dist-info/METADATA @@ -0,0 +1,28 @@ +Metadata-Version: 2.1 +Name: cloudconnectlib +Version: 3.3.0 +Summary: APP Cloud Connect +License: Apache-2.0 +Author: Addon Factory template +Author-email: addonfactory@splunk.com +Requires-Python: >=3.7,<3.13 +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: Apache Software License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Requires-Dist: PySocks (>=1.7.1,<2.0.0) +Requires-Dist: decorator (==5.1.1) +Requires-Dist: jinja2 (>=2.10.1,<4.0.0) +Requires-Dist: jsonpath-ng (>=1.5.2,<2.0.0) +Requires-Dist: jsonschema (>=4.4.0,<5.0.0) +Requires-Dist: munch (>=2.3.2,<3.0.0) +Requires-Dist: requests (>=2.27.1,<3.0.0) +Requires-Dist: solnlib (>=6.0.1,<7.0.0) +Requires-Dist: splunktalib (==3.0.5) +Requires-Dist: splunktaucclib (>=6.5.3,<9.0.0) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.3.0.dist-info/RECORD b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.3.0.dist-info/RECORD new file mode 100644 index 0000000..d414a0b --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.3.0.dist-info/RECORD @@ -0,0 +1,47 @@ +cloudconnectlib-3.3.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +cloudconnectlib-3.3.0.dist-info/LICENSE,sha256=Xvvd894DEl8lUHPEeFU-Ya18RW7Hc2IlPTZS_bE3Hgs,11341 +cloudconnectlib-3.3.0.dist-info/METADATA,sha256=JJeqM96pBcflFshaH5LvfchyEJIILzc97KhnjckOdSI,1107 +cloudconnectlib-3.3.0.dist-info/RECORD,, +cloudconnectlib-3.3.0.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +cloudconnectlib-3.3.0.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88 +cloudconnectlib/__init__.py,sha256=OmnTl-agqeNw4ZnbK9ZqQkTu9azflefFMSk_hpkzXrU,632 +cloudconnectlib/client.py,sha256=ANhZbAcDIr07bPxnbEmiPYxHmnk_9_x-ifSlv4zKpAw,3128 +cloudconnectlib/common/__init__.py,sha256=rxI-uxSKeWik2u12--0H8dFKpyL0nK64bLOH7pwzl_M,579 +cloudconnectlib/common/lib_util.py,sha256=mjf2dwJnDTpP-3QbIABoj2GQKtj3-6TzYXPZcH_aCuY,1673 +cloudconnectlib/common/log.py,sha256=nFbWsZdhFlhMLoXAxZWkABk4AFdevb-zASV3gQZ43B8,1792 +cloudconnectlib/common/util.py,sha256=FLWREHSgCjLM0nJsJ0QOEj61ejY4pa6sx-_9KnpHCoI,1946 +cloudconnectlib/configuration/__init__.py,sha256=omNLeyLD7ykxCoVbtGaE7IS2JPFFqEbI7N6m0Ix0AcY,621 +cloudconnectlib/configuration/loader.py,sha256=UVzqVjB9zGcMC7s7IXNJQPYIEfeRG87HMgM9Pzq-4aA,10609 +cloudconnectlib/configuration/schema_1_0_0.json,sha256=WKWbZJAyWu-rt-OLwvNoMo_UqBi3iwxHbIcRy0aSRy0,11645 +cloudconnectlib/core/__init__.py,sha256=NEKyhdMTqOWx9QE5K0AF6LHmHaQsKVfMZd6-miwnTwQ,669 +cloudconnectlib/core/checkpoint.py,sha256=cYA6nFbxCQgXk89P0EfCEF43Lb1peY5BdnY6FobXUjI,1820 +cloudconnectlib/core/defaults.py,sha256=Q2VpWpPlHIAVE5CmmXZTv3J6TcNGndLzrN55EaxIxSI,1321 +cloudconnectlib/core/engine.py,sha256=vMqBXey78ry0TGduzDFnV13Vpfbp98K3WUS1pTugMTQ,10928 +cloudconnectlib/core/engine_v2.py,sha256=9uRklcZenuj72AHTW2A8YQcU0fhOLK3r1hVDnJh1KJA,5221 +cloudconnectlib/core/exceptions.py,sha256=R_rjUIPWVejh-sJ6n42uMuYbSDkz6CNAjMnEw96ZMCM,1318 +cloudconnectlib/core/ext.py,sha256=mB-zPWbfcTnXBiOkIz57NfLeXeKEt3S7SE7eF4zA8m8,12281 +cloudconnectlib/core/http.py,sha256=wFASTYm5zXUAA0qDVLttcZcxt5Ps4SYaXL-7lQRuCQs,10996 +cloudconnectlib/core/job.py,sha256=Y-wmOLK6U5TgH0B9sG0YkPrCKT_cBLArMWCdOZEEh70,4877 +cloudconnectlib/core/models.py,sha256=4H5chnvFY7uFRW7IId3ol2YUkXZEOfhn3iSqML72n6c,10006 +cloudconnectlib/core/pipemgr.py,sha256=JqZGOkNe4EBeALruGRb7zMBznED1fHJiI6Ip6YY8Te8,933 +cloudconnectlib/core/plugin.py,sha256=pR59EjDA6N-ykBdlr1KrPXt3vLSuSTi8c3_I5hEghR0,3596 +cloudconnectlib/core/task.py,sha256=C4PbxchWWfLn4wQ8w9N2DbEwdVqeK81PLQRgZm-ZsZY,21000 +cloudconnectlib/core/template.py,sha256=iT9dpMNT7pNQUFPEPT6UUi5VR_YgB2wXu45cNS-IAlA,1157 +cloudconnectlib/splunktacollectorlib/__init__.py,sha256=rxI-uxSKeWik2u12--0H8dFKpyL0nK64bLOH7pwzl_M,579 +cloudconnectlib/splunktacollectorlib/cloud_connect_mod_input.py,sha256=DitMkKpkPbXeC4Ex8xwR8WI2i3fbGzpyF5HhXkhOcOk,2919 +cloudconnectlib/splunktacollectorlib/common/__init__.py,sha256=cG37onGSdPzs3xTeTezI5YrV2qft4jKhJ5KXRLJ1nD4,1628 +cloudconnectlib/splunktacollectorlib/common/log.py,sha256=5NPueTb6o3HB8tpa0uMb5ymrS659V0Ny6_UhQsR8QEg,1923 +cloudconnectlib/splunktacollectorlib/common/rwlock.py,sha256=1iYi88bpNzKO-uYlstjV2QFOwch3qpb9f1I0Z_o0f2A,2069 +cloudconnectlib/splunktacollectorlib/common/schema_meta.py,sha256=xq5FCDvsb_XnwUYrUHEVf3f6MsiSnfqGkn_zJEF53Xs,807 +cloudconnectlib/splunktacollectorlib/config.py,sha256=Ae1hSJZ6p7Rd-iONIUbrRW9mVxX88QbyMX8X99fWyyQ,14534 +cloudconnectlib/splunktacollectorlib/data_collection/__init__.py,sha256=W6J_wdRAlDoi2nUFA4RHLwCLQhM7jwhOcdOWaPoST3g,601 +cloudconnectlib/splunktacollectorlib/data_collection/ta_checkpoint_manager.py,sha256=xf0aVM3ZVvrmT_sSVvimaQUKKGtJjAw0NVybe0t_M-I,6328 +cloudconnectlib/splunktacollectorlib/data_collection/ta_config.py,sha256=FvTuVO54NNn8SKkYqtHFH2p0N_20gte_bBiq7zRK7l4,6884 +cloudconnectlib/splunktacollectorlib/data_collection/ta_consts.py,sha256=Bk_TuyhYTrXzyIe3j4aKZDt1lPB-5or5_Je7Fg7aASw,1901 +cloudconnectlib/splunktacollectorlib/data_collection/ta_data_client.py,sha256=QzjS-4gGv2fkU5khlvJzI2UnNhJuOVR-_hlNPcqtYeg,2880 +cloudconnectlib/splunktacollectorlib/data_collection/ta_data_collector.py,sha256=9JhdjRxOunkxJIQ3U5I2bb4fCkTnAz3xedvrJdiBCzc,5705 +cloudconnectlib/splunktacollectorlib/data_collection/ta_data_loader.py,sha256=9stFBmsDHYwhhWT71O40hGH0y9Fox39qWJctogvDdxQ,5507 +cloudconnectlib/splunktacollectorlib/data_collection/ta_helper.py,sha256=tl4dTcSk-wuIWDkcGqe_LJbTM3ISI9P0bE4nATM-pCA,5518 +cloudconnectlib/splunktacollectorlib/data_collection/ta_mod_input.py,sha256=iFzVH8-CS6r2xy8k7q8eRcnpzMK2QVAxFrI5jHr1vno,8359 +cloudconnectlib/splunktacollectorlib/splunk_ta_import_declare.py,sha256=AHxSKSnC6SYqjBlEZoz8hOp931s1mGCFPj70MFzKLUw,1136 +cloudconnectlib/splunktacollectorlib/ta_cloud_connect_client.py,sha256=T-P3dgg0XKMTnOmu321LIcMnMBs7lu9sUcrVCqIN9JU,1759 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.3.0.dist-info/REQUESTED b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.3.0.dist-info/REQUESTED new file mode 100644 index 0000000..e69de29 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.3.0.dist-info/WHEEL b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.3.0.dist-info/WHEEL new file mode 100644 index 0000000..258a6ff --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib-3.3.0.dist-info/WHEEL @@ -0,0 +1,4 @@ +Wheel-Version: 1.0 +Generator: poetry-core 1.6.1 +Root-Is-Purelib: true +Tag: py3-none-any diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/__init__.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/__init__.py new file mode 100755 index 0000000..6f562d1 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/__init__.py @@ -0,0 +1,20 @@ +# +# Copyright 2025 Splunk Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +""" +Cloud Connect library +""" + +__version__ = "3.3.0" diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/client.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/client.py new file mode 100755 index 0000000..3c2596b --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/client.py @@ -0,0 +1,91 @@ +# +# Copyright 2025 Splunk Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +import copy +import os.path +import traceback + +from .common.log import get_cc_logger +from .common.util import load_json_file +from .configuration import get_loader_by_version +from .core import CloudConnectEngine +from .core.exceptions import ConfigException + +_logger = get_cc_logger() + + +class CloudConnectClient: + """The client of cloud connect used to start a cloud connect engine instance.""" + + def __init__(self, context, config_file, checkpoint_mgr): + """ + Constructs a `CloudConnectClient` with `context` which contains variables + to render template in the configuration parsed from file `config_file`. + :param context: context to render template. + :param config_file: file path for load user passed interface. + """ + self._context = context + self._config_file = config_file + self._engine = None + self._config = None + self._checkpoint_mgr = checkpoint_mgr + + def _load_config(self): + """Load a JSON based configuration definition from file. + :return: A `dict` contains user defined JSON interface. + """ + try: + conf = load_json_file(self._config_file) + except: + raise ConfigException( + "Unable to load configuration file %s: %s" + % (self._config_file, traceback.format_exc()) + ) + + version = conf.get("meta", {"apiVersion", None}).get("apiVersion", None) + if not version: + raise ConfigException( + f"Config meta or api version not present in {self._config_file}" + ) + + config_loader, schema_file = get_loader_by_version(version) + schema_path = os.path.join( + os.path.dirname(__file__), "configuration", schema_file + ) + + return config_loader.load(conf, schema_path, self._context) + + def start(self): + """ + Initialize a new `CloudConnectEngine` instance and start it. + """ + try: + if self._config is None: + self._config = self._load_config() + + self._engine = CloudConnectEngine() + self._engine.start( + context=copy.deepcopy(self._context), + config=self._config, + checkpoint_mgr=self._checkpoint_mgr, + ) + except Exception as ex: + _logger.exception("Error while starting client") + raise ex + + def stop(self): + """Stop the current cloud connect engine.""" + if self._engine: + self._engine.stop() diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/common/__init__.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/common/__init__.py new file mode 100755 index 0000000..cb8e7bb --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/common/__init__.py @@ -0,0 +1,15 @@ +# +# Copyright 2025 Splunk Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/common/lib_util.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/common/lib_util.py new file mode 100755 index 0000000..95d3c11 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/common/lib_util.py @@ -0,0 +1,58 @@ +# +# Copyright 2025 Splunk Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +import os +import os.path as op +import platform +import sys + +import __main__ + + +def get_main_file(): + """Return the running mod input file""" + return __main__.__file__ + + +def get_app_root_dir(): + """Return the root dir of app""" + return op.dirname(op.dirname(op.abspath(get_main_file()))) + + +def get_mod_input_script_name(): + """Return the name of running mod input""" + script_name = os.path.basename(get_main_file()) + if script_name.lower().endswith(".py"): + script_name = script_name[:-3] + return script_name + + +def register_module(new_path): + """register_module(new_path): adds a directory to sys.path. + Do nothing if it does not exist or if it's already in sys.path. + """ + if not os.path.exists(new_path): + return + + new_path = os.path.abspath(new_path) + if platform.system() == "Windows": + new_path = new_path.lower() + for x in sys.path: + x = os.path.abspath(x) + if platform.system() == "Windows": + x = x.lower() + if new_path in (x, x + os.sep): + return + sys.path.insert(0, new_path) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/common/log.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/common/log.py new file mode 100755 index 0000000..729a774 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/common/log.py @@ -0,0 +1,57 @@ +# +# Copyright 2025 Splunk Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +import logging + +from solnlib.pattern import Singleton + +from ..splunktacollectorlib.common import log as stulog +from ..splunktacollectorlib.data_collection import ta_helper as th +from .lib_util import get_mod_input_script_name + + +class CloudClientLogAdapter(logging.LoggerAdapter, metaclass=Singleton): + def __init__(self, logger=None, extra=None, prefix=""): + super().__init__(logger, extra) + self.cc_prefix = prefix if prefix else "" + + def process(self, msg, kwargs): + msg = f"{self.cc_prefix} {msg}" + return super().process(msg, kwargs) + + def set_level(self, val): + self.logger.setLevel(val) + + +_adapter = CloudClientLogAdapter(stulog.logger) + + +def set_cc_logger(logger, logger_prefix=""): + global _adapter + _adapter.logger = logger + _adapter.cc_prefix = logger_prefix or "" + + +def get_cc_logger(): + return _adapter + + +def reset_cc_logger(stanza_name, logging_level, logger_prefix=""): + script_name = get_mod_input_script_name() + logger_name = script_name + "_" + th.format_name_for_file(stanza_name) + stulog.reset_logger(logger_name) + stulog.set_log_level(logging_level) + set_cc_logger(stulog.logger, logger_prefix) + return get_cc_logger() diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/common/util.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/common/util.py new file mode 100755 index 0000000..d91660d --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/common/util.py @@ -0,0 +1,79 @@ +# +# Copyright 2025 Splunk Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +import json + +from solnlib import utils +from solnlib.modular_input.event import XMLEvent + + +def is_valid_bool(val): + """Check whether a string can be convert to bool. + :param val: value as string. + :return: `True` if value can be convert to bool else `False`. + """ + return utils.is_true(val) or utils.is_false(val) + + +def is_true(val): + return utils.is_true(val) + + +def is_valid_port(port): + """Check whether a port is valid. + :param port: port to check. + :return: `True` if port is valid else `False`. + """ + try: + return 1 <= int(port) <= 65535 + except ValueError: + return False + + +def load_json_file(file_path): + """ + Load a dict from a JSON file. + :param file_path: JSON file path. + :return: A `dict` object. + """ + with open(file_path) as file_pointer: + return json.load(file_pointer) + + +def format_events( + raw_events, + time=None, + index=None, + host=None, + source=None, + sourcetype=None, + stanza=None, + unbroken=False, + done=False, +): + return XMLEvent.format_events( + XMLEvent( + data, + time=time, + index=index, + host=host, + source=source, + sourcetype=sourcetype, + stanza=stanza, + unbroken=unbroken, + done=done, + ) + for data in raw_events + ) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/configuration/__init__.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/configuration/__init__.py new file mode 100755 index 0000000..3ef80c0 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/configuration/__init__.py @@ -0,0 +1,16 @@ +# +# Copyright 2025 Splunk Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +from .loader import get_loader_by_version diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/configuration/loader.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/configuration/loader.py new file mode 100755 index 0000000..14c8765 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/configuration/loader.py @@ -0,0 +1,316 @@ +# +# Copyright 2025 Splunk Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +import logging +import re +import traceback +from abc import abstractmethod + +from jsonschema import ValidationError, validate +from munch import munchify + +from ..common.log import get_cc_logger +from ..common.util import is_true, is_valid_bool, is_valid_port, load_json_file +from ..core.exceptions import ConfigException +from ..core.ext import lookup_method +from ..core.models import ( + BasicAuthorization, + Checkpoint, + Condition, + DictToken, + IterationMode, + Processor, + RequestParams, + Task, +) + +_logger = get_cc_logger() + +_PROXY_TYPES = ["http", "socks4", "socks5", "http_no_tunnel"] +_AUTH_TYPES = {"basic_auth": BasicAuthorization} + +_LOGGING_LEVELS = { + "DEBUG": logging.DEBUG, + "INFO": logging.INFO, + "WARNING": logging.WARNING, + "ERROR": logging.ERROR, + "FATAL": logging.FATAL, + "CRITICAL": logging.CRITICAL, +} + +# FIXME Make this configurable +_DEFAULT_LOG_LEVEL = "INFO" + + +class CloudConnectConfigLoader: + """The Base cloud connect configuration loader""" + + @staticmethod + def _get_schema_from_file(schema_file): + """Load JSON based schema definition from schema file path. + :return: A `dict` contains schema. + """ + try: + return load_json_file(schema_file) + except: + raise ConfigException( + "Cannot load schema from file {}: {}".format( + schema_file, traceback.format_exc() + ) + ) + + @abstractmethod + def load(self, definition, schema_file, context): + pass + + +class CloudConnectConfigLoaderV1(CloudConnectConfigLoader): + @staticmethod + def _render_from_dict(source, ctx): + rendered = DictToken(source).render(ctx) + + return {k: v.strip() if isinstance(v, str) else v for k, v in rendered.items()} + + def _load_proxy(self, candidate, variables): + """ + Render and validate proxy setting with given variables. + :param candidate: raw proxy setting as `dict` + :param variables: variables to render template in proxy setting. + :return: A `dict` contains rendered proxy setting. + """ + if not candidate: + return {} + + proxy = self._render_from_dict(candidate, variables) + + enabled = proxy.get("enabled", "0") + if not is_valid_bool(enabled): + raise ValueError(f'Proxy "enabled" expect to be bool type: {enabled}') + + proxy["enabled"] = is_true(enabled) + + host, port = proxy.get("host"), proxy.get("port") + + if host or port: + if not host: + raise ValueError('Proxy "host" must not be empty') + + if not is_valid_port(port): + raise ValueError( + 'Proxy "port" expect to be in range [1,65535]: %s' % port + ) + + # proxy type default to 'http' + proxy_type = proxy.get("type") + proxy_type = proxy_type.lower() if proxy_type else "http" + if proxy_type not in _PROXY_TYPES: + raise ValueError( + 'Proxy "type" expect to be one of [{}]: {}'.format( + ",".join(_PROXY_TYPES), proxy_type + ) + ) + else: + proxy["type"] = proxy_type + + # proxy rdns default to '0' + proxy_rdns = proxy.get("rdns", "0") + if not is_valid_bool(proxy_rdns): + raise ValueError(f'Proxy "rdns" expect to be bool type: {proxy_rdns}') + else: + proxy["rdns"] = is_true(proxy_rdns) + + return proxy + + @staticmethod + def _get_log_level(level_name): + if level_name: + level_name = level_name.upper().strip() + + for k, v in _LOGGING_LEVELS.items(): + if k.startswith(level_name): + return v + + _logger.warning( + 'The log level "%s" is invalid, set it to default: "%s"', + level_name, + _DEFAULT_LOG_LEVEL, + ) + + return _LOGGING_LEVELS[_DEFAULT_LOG_LEVEL] + + def _load_logging(self, log_setting, variables): + logger = self._render_from_dict(log_setting, variables) + + logger["level"] = self._get_log_level(logger.get("level")) + + return logger + + def _load_global_setting(self, candidate, variables): + """ + Load and render global setting with variables. + :param candidate: Global setting as a `dict` + :param variables: variables from context to render setting + :return: A `Munch` object + """ + candidate = candidate or {} + proxy_setting = self._load_proxy(candidate.get("proxy"), variables) + log_setting = self._load_logging(candidate.get("logging"), variables) + + return munchify({"proxy": proxy_setting, "logging": log_setting}) + + @staticmethod + def _load_authorization(candidate): + if candidate is None: + return None + auth_type = candidate["type"].lower() + + if auth_type not in _AUTH_TYPES: + raise ValueError( + "Auth type expect to be one of [{}]: {}".format( + ",".join(list(_AUTH_TYPES.keys())), auth_type + ) + ) + return _AUTH_TYPES[auth_type](candidate["options"]) + + def _load_options(self, options): + return RequestParams( + auth=self._load_authorization(options.get("auth")), + url=options["url"], + method=options.get("method", "GET"), + header=options.get("headers", {}), + body=options.get("body", {}), + ) + + @staticmethod + def _validate_method(method): + if lookup_method(method) is None: + raise ValueError(f"Unimplemented method: {method}") + + def _parse_tasks(self, raw_tasks): + tasks = [] + for item in raw_tasks: + self._validate_method(item["method"]) + tasks.append(Task(item["input"], item["method"], item.get("output"))) + return tasks + + def _parse_conditions(self, raw_conditions): + conditions = [] + for item in raw_conditions: + self._validate_method(item["method"]) + conditions.append(Condition(item["input"], item["method"])) + return conditions + + @staticmethod + def _load_checkpoint(checkpoint): + if not checkpoint: + return None + return Checkpoint(checkpoint.get("namespace", []), checkpoint["content"]) + + def _load_iteration_mode(self, iteration_mode): + count = iteration_mode.get("iteration_count", "0") + try: + iteration_count = int(count) + except ValueError: + raise ValueError('"iteration_count" must be an integer: %s' % count) + + stop_conditions = self._parse_conditions(iteration_mode["stop_conditions"]) + + return IterationMode( + iteration_count=iteration_count, conditions=stop_conditions + ) + + def _load_processor(self, processor): + skip_conditions = self._parse_conditions(processor.get("skip_conditions", [])) + pipeline = self._parse_tasks(processor.get("pipeline", [])) + return Processor(skip_conditions=skip_conditions, pipeline=pipeline) + + def _load_request(self, request): + options = self._load_options(request["request"]) + + pre_process = self._load_processor(request.get("pre_process", {})) + post_process = self._load_processor(request["post_process"]) + checkpoint = self._load_checkpoint(request.get("checkpoint")) + iteration_mode = self._load_iteration_mode(request["iteration_mode"]) + + return munchify( + { + "request": options, + "pre_process": pre_process, + "post_process": post_process, + "checkpoint": checkpoint, + "iteration_mode": iteration_mode, + } + ) + + def load(self, definition, schema_file, context): + """Load cloud connect configuration from a `dict` and validate + it with schema and global settings will be rendered. + :param schema_file: Schema file location used to validate config. + :param definition: A dictionary contains raw configs. + :param context: variables to render template in global setting. + :return: A `Munch` object. + """ + try: + validate(definition, self._get_schema_from_file(schema_file)) + except ValidationError: + raise ConfigException( + "Failed to validate interface with schema: {}".format( + traceback.format_exc() + ) + ) + + try: + global_settings = self._load_global_setting( + definition.get("global_settings"), context + ) + + requests = [self._load_request(item) for item in definition["requests"]] + + return munchify( + { + "meta": munchify(definition["meta"]), + "tokens": definition["tokens"], + "global_settings": global_settings, + "requests": requests, + } + ) + except Exception as ex: + error = "Unable to load configuration: %s" % str(ex) + _logger.exception(error) + raise ConfigException(error) + + +_loader_and_schema_by_version = { + r"1\.0\.0": (CloudConnectConfigLoaderV1, "schema_1_0_0.json"), +} + + +def get_loader_by_version(version): + """Instantiate a configuration loader on basis of a given version. + A `ConfigException` will raised if the version is not supported. + :param version: Version to lookup config loader. + :return: A config loader. + """ + for support_version in _loader_and_schema_by_version: + if re.match(support_version, version): + loader_cls, schema = _loader_and_schema_by_version[support_version] + return loader_cls(), schema + + raise ConfigException( + "Unsupported schema version {}, current supported" + " versions should match these regex [{}]".format( + version, ",".join(_loader_and_schema_by_version) + ) + ) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/configuration/schema_1_0_0.json b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/configuration/schema_1_0_0.json new file mode 100755 index 0000000..100e7b6 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/configuration/schema_1_0_0.json @@ -0,0 +1,344 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "definitions": { + "Authentication": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "digest", + "basic_auth" + ] + }, + "options": { + "type": "object" + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + "Checkpoint": { + "type": "object", + "properties": { + "namespace": { + "type": "array", + "items": { + "type": "string" + } + }, + "content": { + "type": "object" + } + }, + "required": [ + "content" + ], + "additionalProperties": false + }, + "GlobalSettings": { + "type": "object", + "properties": { + "proxy": { + "$ref": "#/definitions/Proxy" + }, + "logging": { + "type": "object", + "properties": { + "level": { + "type": "string" + } + } + } + }, + "additionalProperties": false + }, + "IterationMode": { + "type": "object", + "properties": { + "iteration_count": { + "oneOf": [ + { + "type": "string", + "pattern": "^[+-]?[1-9]\\d*|0$" + }, + { + "type": "integer" + } + ] + }, + "stop_conditions": { + "type": "array", + "items": { + "type": "object", + "properties": { + "input": { + "type": "array", + "items": { + "type": "string" + } + }, + "method": { + "type": "string" + } + }, + "required": [ + "input", + "method" + ], + "additionalProperties": false + } + } + }, + "additionalProperties": false + }, + "Meta": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "pattern": "(?:\\d{1,3}\\.){2}[\\w\\-]{1,15}" + } + }, + "required": [ + "apiVersion" + ], + "additionalProperties": false + }, + "Proxy": { + "type": "object", + "properties": { + "enabled": { + "default": false, + "oneOf": [ + { + "type": "string" + }, + { + "type": "boolean" + }, + { + "type": "integer" + } + ] + }, + "host": { + "type": "string" + }, + "port": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer", + "minimum": 1, + "exclusiveMinimum": true, + "maximum": 65535, + "exclusiveMaximum": true + } + ] + }, + "username": { + "type": "string" + }, + "password": { + "type": "string" + }, + "rdns": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "host", + "port" + ], + "additionalProperties": false + }, + "Request": { + "type": "object", + "properties": { + "request": { + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "method": { + "type": "string", + "enum": [ + "GET", + "POST" + ], + "default": "GET" + }, + "headers": { + "type": "object" + }, + "auth": { + "$ref": "#/definitions/Authentication" + }, + "body": { + "type": "object" + } + }, + "required": [ + "url" + ], + "additionalProperties": false + }, + "pre_process": { + "type": "object", + "properties": { + "skip_conditions": { + "type": "array", + "items": { + "type": "object", + "properties": { + "input": { + "type": "array", + "items": { + "type": "string" + } + }, + "method": { + "type": "string" + } + }, + "required": [ + "input", + "method" + ], + "additionalProperties": false + } + }, + "pipeline": { + "type": "array", + "items": { + "type": "object", + "properties": { + "input": { + "type": "array", + "items": { + "type": "string" + } + }, + "method": { + "type": "string" + }, + "output": { + "type": "string" + } + }, + "required": [ + "input", + "method" + ], + "additionalProperties": false + } + } + }, + "additionalProperties": false + }, + "post_process": { + "type": "object", + "properties": { + "skip_conditions": { + "type": "array", + "items": { + "type": "object", + "properties": { + "input": { + "type": "array", + "items": { + "type": "string" + } + }, + "method": { + "type": "string" + } + }, + "required": [ + "input", + "method" + ], + "additionalProperties": false + } + }, + "pipeline": { + "type": "array", + "items": { + "type": "object", + "properties": { + "input": { + "type": "array", + "items": { + "type": "string" + } + }, + "method": { + "type": "string" + }, + "output": { + "type": "string" + } + }, + "required": [ + "input", + "method" + ], + "additionalProperties": false + } + } + }, + "additionalProperties": false + }, + "iteration_mode": { + "$ref": "#/definitions/IterationMode" + }, + "checkpoint": { + "$ref": "#/definitions/Checkpoint" + } + }, + "required": [ + "request", + "post_process", + "iteration_mode" + ], + "additionalProperties": false + } + }, + "type": "object", + "properties": { + "meta": { + "$ref": "#/definitions/Meta" + }, + "tokens": { + "type": "array", + "items": { + "type": "string" + } + }, + "global_settings": { + "$ref": "#/definitions/GlobalSettings" + }, + "requests": { + "type": "array", + "items": { + "$ref": "#/definitions/Request" + }, + "minItems": 1 + } + }, + "required": [ + "meta", + "tokens", + "requests" + ], + "additionalProperties": false +} \ No newline at end of file diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/core/__init__.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/core/__init__.py new file mode 100755 index 0000000..b9565b3 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/core/__init__.py @@ -0,0 +1,17 @@ +# +# Copyright 2025 Splunk Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +from .engine import CloudConnectEngine +from .exceptions import ConfigException, HTTPError diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/core/checkpoint.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/core/checkpoint.py new file mode 100644 index 0000000..5774bb1 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/core/checkpoint.py @@ -0,0 +1,50 @@ +# +# Copyright 2025 Splunk Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +import cloudconnectlib.splunktacollectorlib.data_collection.ta_checkpoint_manager as tacm +from cloudconnectlib.common.log import get_cc_logger +from cloudconnectlib.core.models import DictToken, _Token + +logger = get_cc_logger() + + +class CheckpointManagerAdapter(tacm.TACheckPointMgr): + """Wrap TACheckPointMgr for custom usage""" + + def __init__(self, namespaces, content, meta_config, task_config): + super().__init__(meta_config, task_config) + if isinstance(namespaces, (list, tuple)): + self.namespaces = (_Token(t) for t in namespaces) + else: + self.namespaces = [_Token(namespaces)] + self.content = DictToken(content) + + def _namespaces_for(self, ctx): + return [item.render(ctx) for item in self.namespaces] + + def save(self, ctx): + """Save checkpoint""" + super().update_ckpt( + ckpt=self.content.render(ctx), namespaces=self._namespaces_for(ctx) + ) + + def load(self, ctx): + """Load checkpoint""" + namespaces = self._namespaces_for(ctx) + checkpoint = super().get_ckpt(namespaces) + if checkpoint is None: + logger.info("No existing checkpoint found") + checkpoint = {} + return checkpoint diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/core/defaults.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/core/defaults.py new file mode 100755 index 0000000..2151ac6 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/core/defaults.py @@ -0,0 +1,50 @@ +# +# Copyright 2025 Splunk Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +"""Default config for cloud connect""" + +timeout = 120 # request timeout is two minutes + +disable_ssl_cert_validation = False # default enable SSL validation + +success_statuses = (200, 201) # statuses be treated as success. + +# response status which need to retry. +retry_statuses = (429, 500, 501, 502, 503, 504, 505, 506, 507, 509, 510, 511) + +# response status which need print a warning log. +warning_statuses = ( + 203, + 204, + 205, + 206, + 207, + 208, + 226, + 300, + 301, + 302, + 303, + 304, + 305, + 306, + 307, + 308, +) +retries = 3 # Default maximum retry times. + +max_iteration_count = 100 # maximum iteration loop count + +charset = "utf-8" # Default response charset if not found in response header diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/core/engine.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/core/engine.py new file mode 100755 index 0000000..9f2f6cf --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/core/engine.py @@ -0,0 +1,341 @@ +# +# Copyright 2025 Splunk Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +import threading + +from ..common.log import get_cc_logger +from . import defaults +from .exceptions import HTTPError, StopCCEIteration +from .http import HttpClient + +_logger = get_cc_logger() + + +class CloudConnectEngine: + """The cloud connect engine to process request instantiated + from user options.""" + + def __init__(self): + self._stopped = False + self._running_job = None + + @staticmethod + def _set_logging(log_setting): + _logger.set_level(log_setting.level) + + def start(self, context, config, checkpoint_mgr): + """Start current client instance to execute each request parsed + from config. + """ + if not config: + raise ValueError("Config must not be empty") + + context = context or {} + global_setting = config.global_settings + + CloudConnectEngine._set_logging(global_setting.logging) + + _logger.info("Start to execute requests jobs.") + processed = 0 + + for request in config.requests: + job = Job( + request=request, + context=context, + checkpoint_mgr=checkpoint_mgr, + proxy=global_setting.proxy, + ) + self._running_job = job + job.run() + + processed += 1 + _logger.info("%s job(s) process finished", processed) + + if self._stopped: + _logger.info("Engine has been stopped, stopping to execute jobs.") + break + + self._stopped = True + _logger.info("Engine executing finished") + + def stop(self): + """Stops engine and running job. Do nothing if engine already + been stopped.""" + if self._stopped: + _logger.info("Engine already stopped, do nothing.") + return + + _logger.info("Stopping engine") + + if self._running_job: + _logger.info("Attempting to stop the running job.") + self._running_job.terminate() + _logger.info("Stopping job finished.") + + self._stopped = True + + +class Job: + """Job class represents a single request to send HTTP request until + reached it's stop condition. + """ + + def __init__(self, request, context, checkpoint_mgr, proxy=None): + """ + Constructs a `Job` with properties request, context and a + optional proxy setting. + :param request: A `Request` instance which contains request settings. + :param context: A values set contains initial values for template + variables. + :param proxy: A optional `Proxy` object contains proxy related + settings. + """ + self._request = request + self._context = context + self._checkpoint_mgr = checkpoint_mgr + self._client = HttpClient(proxy) + self._stopped = True + self._should_stop = False + + self._request_iterated_count = 0 + self._iteration_mode = self._request.iteration_mode + self._max_iteration_count = self._get_max_iteration_count() + + self._running_thread = None + self._terminated = threading.Event() + + def _get_max_iteration_count(self): + mode_max_count = self._iteration_mode.iteration_count + default_max_count = defaults.max_iteration_count + return ( + min(default_max_count, mode_max_count) + if mode_max_count > 0 + else default_max_count + ) + + def terminate(self, block=True, timeout=30): + """Terminate this job, the current thread will blocked util + the job is terminate finished if block is True""" + if self.is_stopped(): + _logger.info("Job already been stopped.") + return + + if self._running_thread == threading.current_thread(): + _logger.warning("Job cannot terminate itself.") + return + + _logger.info("Stopping job") + self._should_stop = True + + if not block: + return + if not self._terminated.wait(timeout): + _logger.warning("Terminating job timeout.") + + def _set_context(self, key, value): + self._context[key] = value + + def _execute_tasks(self, tasks): + if not tasks: + return + for task in tasks: + if self._check_should_stop(): + return + self._context.update(task.execute(self._context)) + + def _on_pre_process(self): + """ + Execute tasks in pre process one by one if condition satisfied. + """ + pre_processor = self._request.pre_process + + if pre_processor.should_skipped(self._context): + _logger.info("Skip pre process condition satisfied, do nothing") + return + + tasks = pre_processor.pipeline + _logger.debug("Got %s tasks need be executed before process", len(tasks)) + self._execute_tasks(tasks) + + def _on_post_process(self): + """ + Execute tasks in post process one by one if condition satisfied. + """ + post_processor = self._request.post_process + + if post_processor.should_skipped(self._context): + _logger.info("Skip post process condition satisfied, " "do nothing") + return + + tasks = post_processor.pipeline + _logger.debug("Got %s tasks need to be executed after process", len(tasks)) + self._execute_tasks(tasks) + + def _update_checkpoint(self): + """Updates checkpoint based on checkpoint namespace and content.""" + checkpoint = self._request.checkpoint + if not checkpoint: + _logger.info("Checkpoint not specified, do not update it.") + return + + self._checkpoint_mgr.update_ckpt( + checkpoint.normalize_content(self._context), + namespaces=checkpoint.normalize_namespace(self._context), + ) + + def _get_checkpoint(self): + checkpoint = self._request.checkpoint + if not checkpoint: + _logger.info("Checkpoint not specified, do not read it.") + return + + namespaces = checkpoint.normalize_namespace(self._context) + checkpoint = self._checkpoint_mgr.get_ckpt(namespaces) + if checkpoint: + self._context.update(checkpoint) + + def _is_stoppable(self): + """Check if repeat mode conditions satisfied.""" + if self._request_iterated_count >= self._max_iteration_count: + _logger.info( + "Job iteration count is %s, current request count is %s," + " stop condition satisfied.", + self._max_iteration_count, + self._request_iterated_count, + ) + return True + + if self._iteration_mode.passed(self._context): + _logger.info("Job stop condition satisfied.") + return True + + return False + + def is_stopped(self): + """Return if this job is stopped.""" + return self._stopped + + def run(self): + """Start job and exit util meet stop condition.""" + _logger.info("Start to process job") + + self._stopped = False + try: + self._running_thread = threading.current_thread() + self._run() + except Exception: + _logger.exception("Error encountered while running job.") + raise + finally: + self._terminated.set() + self._stopped = True + + _logger.info("Job processing finished") + + def _check_should_stop(self): + if self._should_stop: + _logger.info("Job should been stopped.") + return self._should_stop + + def _run(self): + request = self._request.request + authorizer = request.auth + self._get_checkpoint() + + while 1: + if self._check_should_stop(): + return + + try: + self._on_pre_process() + except StopCCEIteration: + _logger.info( + "Stop iteration command in pre process is received, exit job now." + ) + return + + r = request.render(self._context) + + if authorizer: + authorizer(r.headers, self._context) + + if self._check_should_stop(): + return + + response, need_terminate = self._send_request(r) + + if need_terminate: + _logger.info("This job need to be terminated.") + break + + self._request_iterated_count += 1 + self._set_context("__response__", response) + if self._check_should_stop(): + return + + try: + self._on_post_process() + except StopCCEIteration: + _logger.info( + "Stop iteration command in post process is received, exit job now." + ) + return + + if self._check_should_stop(): + return + self._update_checkpoint() + + if self._is_stoppable(): + _logger.info("Stop condition reached, exit job now") + break + + def _send_request(self, request): + """Do send request with a simple error handling strategy. Refer to + https://confluence.splunk.com/display/PROD/CC+1.0+-+Detail+Design""" + try: + response = self._client.send(request) + except HTTPError as error: + _logger.exception( + "HTTPError reason=%s when sending request to " "url=%s method=%s", + error.reason, + request.url, + request.method, + ) + return None, True + + status = response.status_code + + if status in defaults.success_statuses: + if not (response.body or "").strip(): + _logger.info( + "The response body of request which url=%s and" + " method=%s is empty, status=%s.", + request.url, + request.method, + status, + ) + return None, True + return response, False + + error_log = ( + "The response status=%s for request which url=%s and" " method=%s." + ) % (status, request.url, request.method) + + if status in defaults.warning_statuses: + _logger.warning(error_log) + else: + _logger.error(error_log) + + return None, True diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/core/engine_v2.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/core/engine_v2.py new file mode 100644 index 0000000..54797fc --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/core/engine_v2.py @@ -0,0 +1,140 @@ +# +# Copyright 2025 Splunk Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +import concurrent.futures as cf +import threading +from collections import Iterable +from os import path as op + +from ..common.log import get_cc_logger +from .plugin import init_pipeline_plugins + +logger = get_cc_logger() + + +class CloudConnectEngine: + def __init__(self, max_workers=4, plugin_dir=""): + """ + Initialize CloudConnectEngine object + :param max_workers: maximum number of Threads to execute the given calls + :param plugin_dir: Absolute path of directory containing cce_plugin_*.py + """ + self._executor = cf.ThreadPoolExecutor(max_workers) + self._pending_job_results = set() + self._shutdown = False + self._pending_jobs = [] + self._counter = 0 + self._lock = threading.RLock() + plugin_dir = plugin_dir or op.join(op.dirname(op.dirname(__file__)), "plugin") + init_pipeline_plugins(plugin_dir) + + def start(self, jobs=None): + """ + Engine starts to run jobs + :param jobs: A list contains at least one job + :return: + """ + try: + if not jobs: + logger.warning("CloudConnectEngine just exits with no jobs to run") + return + for job in jobs: + self._add_job(job) + while not self._shutdown: + logger.info("CloudConnectEngine starts to run...") + if not self._pending_job_results: + logger.info("CloudConnectEngine has no more jobs to run") + break + # check the intermediate results to find the done jobs and not + # done jobs + done_and_not_done_jobs = cf.wait( + self._pending_job_results, return_when=cf.FIRST_COMPLETED + ) + self._pending_job_results = done_and_not_done_jobs.not_done + done_job_results = done_and_not_done_jobs.done + for future in done_job_results: + # get the result of each done jobs and add new jobs to the + # engine if the result spawns more jobs + result = future.result() + if result: + if isinstance(result, Iterable): + for temp in result: + self._add_job(temp) + else: + self._add_job(result) + except Exception: + logger.exception("CloudConnectEngine encountered exception") + finally: + self._teardown() + + def _add_job(self, job): + """ + add job to engine for scheduling later + :param job: job should have a 'run' method + :return:True when the jobs is added successfully and False when the + engine has shut down + """ + if self._shutdown: + return False + self._pending_jobs.append(job) + result = self._executor.submit(self._invoke_job, job) + self._pending_job_results.add(result) + self._counter += 1 + logger.debug("%s job(s) have been added to the engine now", self._counter) + return True + + def _invoke_job(self, job): + """ + Wrap the run method of jobs + :param job: job should have a 'run' method + :return: + """ + try: + # just return when the engine has shut down + if self._shutdown: + return None + invoke_result = job.run() + return invoke_result + except Exception: + logger.exception("job %s is invoked with exception", job) + return None + finally: + # remove the job from pending_jobs when it's done + with self._lock: + self._pending_jobs.remove(job) + + def shutdown(self): + """ + set the shutdown flag to True + often called by another thread which needs to shut down + CloudConnectEngine when e.g. receives a exit signal from external system + :return: + """ + self._shutdown = True + logger.info("CloudConnectEngine receives shutdown signal") + + def _teardown(self): + """ + internal method which will call stop method of each running jobs + firstly and then wait for the thread pool to shutdown in a blocked way + :return: + """ + logger.info("CloudConnectEngine is going to tear down...") + self._shutdown = True + with self._lock: + for job in self._pending_jobs: + job.stop() + self._executor.shutdown(wait=True) + logger.info("CloudConnectEngine successfully tears down") diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/core/exceptions.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/core/exceptions.py new file mode 100755 index 0000000..188e75e --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/core/exceptions.py @@ -0,0 +1,59 @@ +# +# Copyright 2025 Splunk Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +"""APP Cloud Connect errors""" + + +class CCEError(Exception): + pass + + +class ConfigException(CCEError): + """Config exception""" + + pass + + +class FuncException(CCEError): + """Ext function call exception""" + + pass + + +class HTTPError(CCEError): + """HTTPError raised when HTTP request returned a error.""" + + def __init__(self, reason=None): + """ + Initialize HTTPError with `response` object and `status`. + """ + self.reason = reason + super().__init__(reason) + + +class StopCCEIteration(CCEError): + """Exception to exit from the engine iteration.""" + + pass + + +class CCESplitError(CCEError): + """Exception to exit the job in Split Task""" + + pass + + +class QuitJobError(CCEError): + pass diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/core/ext.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/core/ext.py new file mode 100755 index 0000000..504ba74 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/core/ext.py @@ -0,0 +1,397 @@ +# +# Copyright 2025 Splunk Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +import calendar +import json +import re +import traceback +from collections import Iterable +from datetime import datetime + +from jsonpath_ng import parse + +from ..common import log, util +from .exceptions import FuncException, QuitJobError, StopCCEIteration +from .pipemgr import PipeManager + +_logger = log.get_cc_logger() + + +def regex_search(pattern, source, flags=0): + """Search substring in source through regex""" + if not isinstance(source, str): + _logger.warning("Cannot apply regex search on non-string: %s", type(source)) + return {} + try: + matches = re.search(pattern=pattern, string=source, flags=flags) + except Exception: + _logger.warning( + "Unable to search pattern=%s and flags=%s in string, error=%s", + pattern, + flags, + traceback.format_exc(), + ) + return {} + else: + return matches.groupdict() if matches else {} + + +def regex_match(pattern, source, flags=0): + """ + Determine whether a string is match a regex pattern. + + :param pattern: regex pattern + :param source: candidate to match regex + :param flags: flags for regex match + :return: `True` if candidate match pattern else `False` + """ + try: + return re.match(pattern, source, flags) is not None + except Exception: + _logger.warning( + "Unable to match source with pattern=%s, cause=%s", + pattern, + traceback.format_exc(), + ) + return False + + +def json_path(source, json_path_expr): + """Extract value from string with JSONPATH expression. + :param json_path_expr: JSONPATH expression + :param source: string to extract value + :return: A `list` contains all values extracted + """ + if not source: + _logger.debug("source to apply JSONPATH is empty, return empty.") + return "" + + if isinstance(source, str): + _logger.debug( + "source expected is a JSON, not %s. Attempt to" " convert it to JSON", + type(source), + ) + try: + source = json.loads(source) + except Exception as ex: + _logger.warning( + "Unable to load JSON from source: %s. " + 'Attempt to apply JSONPATH "%s" on source directly.', + ex, + json_path_expr, + ) + + try: + expression = parse(json_path_expr) + results = [match.value for match in expression.find(source)] + + _logger.debug( + 'Got %s elements extracted with JSONPATH expression "%s"', + len(results), + json_path_expr, + ) + + if not results: + return "" + + return results[0] or "" if len(results) == 1 else results + except Exception as ex: + _logger.warning( + 'Unable to apply JSONPATH expression "%s" on source,' + " message=%s cause=%s", + json_path_expr, + ex, + traceback.format_exc(), + ) + return "" + + +def splunk_xml( + candidates, time=None, index=None, host=None, source=None, sourcetype=None +): + """Wrap a event with splunk xml format. + :param candidates: data used to wrap as event + :param time: timestamp which must be empty or a valid float + :param index: index name for event + :param host: host for event + :param source: source for event + :param sourcetype: sourcetype for event + :return: A wrapped event with splunk xml format. + """ + if not isinstance(candidates, (list, tuple)): + candidates = [candidates] + + time = time or None + if time: + try: + time = float(time) + except ValueError: + _logger.warning( + '"time" %s is expected to be a float, set "time" to None', time + ) + time = None + xml_events = util.format_events( + candidates, + time=time, + index=index, + host=host, + source=source, + sourcetype=sourcetype, + ) + _logger.info("[%s] events are formated as splunk stream xml", len(candidates)) + return xml_events + + +def std_output(candidates): + """Output a string to stdout. + :param candidates: List of string to output to stdout or a single string. + """ + if isinstance(candidates, str): + candidates = [candidates] + + all_str = True + for candidate in candidates: + if all_str and not isinstance(candidate, str): + all_str = False + _logger.debug( + 'The type of data needs to print is "%s" rather than str', + type(candidate), + ) + try: + candidate = json.dumps(candidate) + except: + _logger.exception( + 'The type of data needs to print is "%s"' " rather than str", + type(candidate), + ) + + if not PipeManager().write_events(candidate): + raise FuncException( + "Fail to output data to stdout. The event" + " writer is stopped or encountered exception" + ) + + _logger.debug("Writing events to stdout finished.") + return True + + +def _parse_json(source, json_path_expr=None): + if not source: + _logger.debug("Unable to parse JSON from empty source, return empty.") + return {} + + if json_path_expr: + _logger.debug( + "Try to extract JSON from source with JSONPATH expression: %s, ", + json_path_expr, + ) + source = json_path(source, json_path_expr) + + elif isinstance(source, str): + source = json.loads(source) + + return source + + +def json_empty(source, json_path_expr=None): + """Check whether a JSON is empty, return True only if the JSON to + check is a valid JSON and is empty. + :param json_path_expr: A optional JSONPATH expression + :param source: source to extract JSON + :return: `True` if the result JSON is empty + """ + try: + data = _parse_json(source, json_path_expr) + + if isinstance(data, (list, tuple)): + return all(len(ele) == 0 for ele in data) + return len(data) == 0 + except Exception as ex: + _logger.warning( + "Unable to determine whether source is json_empty, treat it as " + "not json_empty: %s", + ex, + ) + return False + + +def json_not_empty(source, json_path_expr=None): + """Check if a JSON object is not empty, return True only if the + source is a valid JSON object and the value leading by + json_path_expr is empty. + :param json_path_expr: A optional JSONPATH expression + :param source: source to extract JSON + :return: `True` if the result JSON is not empty + """ + try: + data = _parse_json(source, json_path_expr) + + if isinstance(data, (list, tuple)): + return any(len(ele) > 0 for ele in data) + return len(data) > 0 + except Exception as ex: + _logger.warning( + "Unable to determine whether source is json_not_empty, " + "treat it as not json_not_empty: %s", + ex, + ) + return False + + +def set_var(value): + """Set a variable which name should be specified in `output` with value""" + return value + + +def _fix_microsecond_format(fmt, micros): + """ + implement %Nf so that user can control the digital number of microsecond. + If number of % is even, don't do replacement. + If N is not in [1-6], don't do replacement. + If time length m is less than N, convert it to 6 digitals and return N + digitals. + """ + micros = str(micros).zfill(6) + + def do_replacement(x, micros): + if int(x.group(1)) in range(1, 7) and len(x.group()) % 2: + return x.group().replace( + "%" + x.group(1) + "f", micros[: min(int(x.group(1)), len(micros))] + ) + return x.group() + + return re.sub(r"%+([1-6])f", lambda x: do_replacement(x, micros), fmt) + + +def _fix_timestamp_format(fmt, timestamp): + """Replace '%s' in time format with timestamp if the number + of '%' before 's' is odd.""" + return re.sub( + r"%+s", + ( + lambda x: x.group() + if len(x.group()) % 2 + else x.group().replace("%s", timestamp) + ), + fmt, + ) + + +def time_str2str(date_string, from_format, to_format): + """Convert a date string with given format to another format. Return + the original date string if it's type is not string or failed to parse or + convert it with format.""" + if not isinstance(date_string, str): + _logger.warning( + '"date_string" must be a string type, found %s,' + " return the original date_string directly.", + type(date_string), + ) + return date_string + + try: + dt = datetime.strptime(date_string, from_format) + # Need to pre process '%s' in to_format here because '%s' is not + # available on all platforms. Even on supported platforms, the + # result may be different because it depends on implementation on each + # platform. Replace it with UTC timestamp here directly. + if to_format: + timestamp = calendar.timegm(dt.timetuple()) + to_format = _fix_timestamp_format(to_format, str(timestamp)) + to_format = _fix_microsecond_format(to_format, str(dt.microsecond)) + return dt.strftime(to_format) + except Exception: + _logger.warning( + 'Unable to convert date_string "%s" from format "%s" to "%s",' + " return the original date_string, cause=%s", + date_string, + from_format, + to_format, + traceback.format_exc(), + ) + return date_string + + +def is_true(value): + """Determine whether value is True""" + return str(value).strip().lower() == "true" + + +def exit_if_true(value): + """Raise a StopCCEIteration exception if value is True""" + if is_true(value): + raise StopCCEIteration + + +def exit_job_if_true(value): + """Raise a QuitJob exception if value is True""" + if is_true(value): + raise QuitJobError + + +def assert_true(value, message=None): + """Assert value is True""" + if not is_true(value): + raise AssertionError(message or f'"{value}" is not true') + + +def split_by(source, target, separator=None): + """Split the source to multiple values by the separator""" + try: + if not source: + return [] + elif isinstance(source, str) and separator: + values = source.split(separator) + return [{target: value.strip()} for value in values] + elif isinstance(source, str): + return [{target: source}] + elif isinstance(source, Iterable): + return [{target: value} for value in source] + else: + return [{target: source}] + except Exception as ex: + _logger.warning( + "split_by method encountered exception " "source=%s message=%s cause=%s", + source, + ex, + traceback.format_exc(), + ) + return [] + + +_extension_functions = { + "assert_true": assert_true, + "exit_if_true": exit_if_true, + "exit_job_if_true": exit_job_if_true, + "is_true": is_true, + "regex_match": regex_match, + "regex_search": regex_search, + "set_var": set_var, + "splunk_xml": splunk_xml, + "std_output": std_output, + "json_path": json_path, + "json_empty": json_empty, + "json_not_empty": json_not_empty, + "time_str2str": time_str2str, + "split_by": split_by, +} + + +def lookup_method(name): + """Find a predefined function with given function name. + :param name: function name. + :return: A function with given name. + """ + return _extension_functions.get(name) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/core/http.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/core/http.py new file mode 100755 index 0000000..695520d --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/core/http.py @@ -0,0 +1,315 @@ +# +# Copyright 2025 Splunk Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +import time +import traceback +import requests + +import munch +from requests import PreparedRequest, Session, utils +from solnlib.utils import is_true + +from cloudconnectlib.common import util +from cloudconnectlib.common.log import get_cc_logger +from cloudconnectlib.core import defaults +from cloudconnectlib.core.exceptions import HTTPError + +_logger = get_cc_logger() + + +class HTTPResponse: + """ + HTTPResponse class wraps response of HTTP request for later use. + """ + + def __init__(self, response, content): + """Construct a HTTPResponse from response and content returned + with requests.Session() request""" + self._status_code = response.status_code + self._header = response + self._body = self._decode_content(response.headers, content) + + @staticmethod + def _decode_content(response, content): + if not content: + return "" + + charset = utils.get_encoding_from_headers(response) + + if charset is None: + charset = defaults.charset + _logger.info( + "Unable to find charset in response headers," ' set it to default "%s"', + charset, + ) + + _logger.info("Decoding response content with charset=%s", charset) + + try: + return content.decode(charset, errors="replace") + except Exception as ex: + _logger.warning( + "Failure decoding response content with charset=%s," + " decode it with utf-8: %s", + charset, + ex, + ) + + return content.decode("utf-8", errors="replace") + + @property + def header(self): + return self._header + + @property + def body(self): + """ + Return response body as a `string`. + :return: A `string` + """ + return self._body + + @property + def status_code(self): + """ + Return response status code. + :return: A `integer` + """ + return self._status_code + + +def _make_prepare_url_func(): + """Expose prepare_url in `PreparedRequest`""" + pr = PreparedRequest() + + def prepare_url(url, params=None): + """Prepare the given HTTP URL with ability provided in requests lib. + For some illegal characters in URL or parameters like space(' ') will + be escaped to make sure we can request the correct URL.""" + pr.prepare_url(url, params=params) + return pr.url + + return prepare_url + + +def get_proxy_info(proxy_config: dict) -> dict: + """ + @proxy_config: dict like object of the format - + { + "proxy_url": my-proxy.server.com, + "proxy_port": 0000, + "proxy_username": username, + "proxy_password": password, + "proxy_type": http or sock5, + "proxy_rdns": 0 or 1, + } + """ + proxy_info = {} + + if not proxy_config or not is_true(proxy_config.get("proxy_enabled")): + _logger.info("Proxy is not enabled") + return {} + + proxy_type = proxy_config.get("proxy_type", "").lower() + if proxy_type not in ("http", "socks5"): + proxy_type = "http" + _logger.info('Proxy type not found, set to "HTTP"') + + if is_true(proxy_config.get("proxy_rdns")) and proxy_type == "socks5": + proxy_type = "socks5h" + + url = proxy_config.get("proxy_url") + port = proxy_config.get("proxy_port") + + if url or port: + if not url: + raise ValueError('Proxy "url" must not be empty') + if not util.is_valid_port(port): + raise ValueError('Proxy "port" must be in range [1,65535]: %s' % port) + + proxy_info["http"] = f"{proxy_type}://{url}:{int(port)}" + user = proxy_config.get("proxy_username") + password = proxy_config.get("proxy_password") + + if all((user, password)): + proxy_info["http"] = f"{proxy_type}://{user}:{password}@{url}:{int(port)}" + else: + _logger.info("Proxy has no credentials found") + + proxy_info["https"] = proxy_info["http"] + return proxy_info + + +def standardize_proxy_config(proxy_config): + """ + This function is used to standardize the proxy information structure to + get it evaluated through `get_proxy_info` function + """ + + if not isinstance(proxy_config, dict): + raise ValueError( + "Received unexpected format of proxy configuration. " + "Expected format: object, Actual format: {}".format(type(proxy_config)) + ) + + standard_proxy_config = { + "proxy_enabled": proxy_config.get("enabled", proxy_config.get("proxy_enabled")), + "proxy_username": proxy_config.get( + "username", proxy_config.get("proxy_username") + ), + "proxy_password": proxy_config.get( + "password", proxy_config.get("proxy_password") + ), + "proxy_url": proxy_config.get("host", proxy_config.get("proxy_url")), + "proxy_type": proxy_config.get("type", proxy_config.get("proxy_type")), + "proxy_port": proxy_config.get("port", proxy_config.get("proxy_port")), + "proxy_rdns": proxy_config.get("rdns", proxy_config.get("proxy_rdns")), + } + + return standard_proxy_config + + +class HttpClient: + def __init__(self, proxy_info=None, verify=True): + """ + Constructs a `HTTPRequest` with a optional proxy setting. + :param proxy_info: a dictionary of proxy details. It could directly match the input signature + of `requests` library, otherwise will be standardized and converted to match the input signature. + :param verify: same as the `verify` parameter of requests.request() method + """ + self._connection = None + self.requests_verify = verify + + if proxy_info: + if isinstance(proxy_info, munch.Munch): + proxy_info = dict(proxy_info) + + if all((len(proxy_info) == 2, "http" in proxy_info, "https" in proxy_info)): + # when `proxy_info` already matches the input signature of `requests` library's proxy dict + self._proxy_info = proxy_info + else: + # Updating the proxy_info object to make it compatible for getting evaluated + # through `get_proxy_info` function + proxy_info = standardize_proxy_config(proxy_info) + self._proxy_info = get_proxy_info(proxy_info) + else: + self._proxy_info = proxy_info + self._url_preparer = PreparedRequest() + + def _send_internal(self, uri, method, headers=None, body=None): + """Do send request to target URL, validate SSL cert by default and return the response.""" + return self._connection.request( + url=uri, + data=body, + method=method, + headers=headers, + timeout=defaults.timeout, + verify=self.requests_verify, + ) + + def _retry_send_request_if_needed(self, uri, method="GET", headers=None, body=None): + """Invokes request and auto retry with an exponential backoff + if the response status is configured in defaults.retry_statuses.""" + retries = max(defaults.retries, 0) + _logger.info("Invoking request to [%s] using [%s] method", uri, method) + for i in range(retries + 1): + try: + resp = self._send_internal( + uri=uri, body=body, method=method, headers=headers + ) + content = resp.content + response = resp + except requests.exceptions.SSLError as err: + _logger.error( + "[SSL: CERTIFICATE_VERIFY_FAILED] certificate verification failed. " + "The certificate of the https server [%s] is not trusted, " + "You may need to check the certificate and " + "refer to the documentation and add it to the trust list. %s", + uri, + traceback.format_exc(), + ) + raise HTTPError(f"HTTP Error {err}") from err + except Exception as err: + _logger.exception( + "Could not send request url=%s method=%s", uri, method + ) + raise HTTPError(f"HTTP Error {err}") from err + + status = resp.status_code + + if self._is_need_retry(status, i, retries): + delay = 2**i + _logger.warning( + "The response status=%s of request which url=%s and" + " method=%s. Retry after %s seconds.", + status, + uri, + method, + delay, + ) + time.sleep(delay) + continue + + return HTTPResponse(response, content) + + def _prepare_url(self, url, params=None): + self._url_preparer.prepare_url(url, params) + return self._url_preparer.url + + def _initialize_connection(self): + if self._proxy_info: + _logger.info("Proxy is enabled for http connection.") + else: + _logger.info("Proxy is not enabled for http connection.") + self._connection = self._build_http_connection(self._proxy_info) + + def send(self, request): + if not request: + raise ValueError("The request is none") + if request.body and not isinstance(request.body, str): + raise TypeError(f"Invalid request body type: {request.body}") + + if self._connection is None: + self._initialize_connection() + + try: + url = self._prepare_url(request.url) + except Exception: + _logger.warning( + "Failed to encode url=%s: %s", request.url, traceback.format_exc() + ) + url = request.url + + return self._retry_send_request_if_needed( + url, request.method, request.headers, request.body + ) + + @staticmethod + def _build_http_connection( + proxy_info=None, + disable_ssl_cert_validation=defaults.disable_ssl_cert_validation, + ): + """ + Creates a `request.Session()` object, sets the verify + and proxy_info parameter and returns this object + """ + s = Session() + s.verify = not disable_ssl_cert_validation + s.proxies = proxy_info or {} + return s + + @staticmethod + def _is_need_retry(status, retried, maximum_retries): + return retried < maximum_retries and status in defaults.retry_statuses diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/core/job.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/core/job.py new file mode 100644 index 0000000..aa7405e --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/core/job.py @@ -0,0 +1,160 @@ +# +# Copyright 2025 Splunk Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +import threading + +from ..common import log +from .exceptions import QuitJobError +from .task import BaseTask + +logger = log.get_cc_logger() + + +class CCEJob: + """ + One CCEJob is composed of a list of tasks. The task could be HTTP + task or Split task(currently supported task types). + Job is an executing unit of CCE engine. + All tasks in one job will be run sequentially but different jobs + could be run concurrently. + So if there is no dependency among tasks, then suggest to create + different Job for them to improve performance. + """ + + def __init__(self, context, tasks=None): + self._context = context + self._rest_tasks = [] + + self._stop_signal_received = False + self._stopped = threading.Event() + + if tasks: + self._rest_tasks.extend(tasks) + self._running_task = None + self._proxy_info = None + + def set_proxy(self, proxy_setting): + """ + Setup the proxy setting. + + :param proxy_setting: Proxy setting should include the following fields + "proxy_enabled": , + "proxy_url":, + "proxy_port": , + "proxy_username": , + "proxy_password": , + "proxy_rdns": , + "proxy_type": , + :type proxy_setting: ``dict`` + """ + self._proxy_info = proxy_setting + logger.debug( + "CCEJob proxy info: proxy_enabled='%s', proxy_url='%s', " + "proxy_port='%s', proxy_rdns='%s', proxy_type='%s', " + "proxy_username='%s'", + proxy_setting.get("proxy_enabled"), + proxy_setting.get("proxy_url"), + proxy_setting.get("proxy_port"), + proxy_setting.get("proxy_rdns"), + proxy_setting.get("proxy_type"), + proxy_setting.get("proxy_username"), + ) + + def add_task(self, task): + """ + Add a task instance into a job. + + :param task: TBD + :type task: TBD + """ + if not isinstance(task, BaseTask): + raise ValueError(f"Unsupported task type: {type(task)}") + if callable(getattr(task, "set_proxy", None)) and self._proxy_info: + task.set_proxy(self._proxy_info) + self._rest_tasks.append(task) + + def _check_if_stop_needed(self): + if self._stop_signal_received: + logger.info("Stop job signal received, stopping job.") + self._stopped.set() + return True + return False + + def run(self): + """ + Run current job, which executes tasks in it sequentially. + """ + logger.debug("Start to run job") + + if not self._rest_tasks: + logger.info("No task found in job") + return + + if self._check_if_stop_needed(): + return + + self._running_task = self._rest_tasks[0] + self._rest_tasks = self._rest_tasks[1:] + + try: + contexts = list(self._running_task.perform(self._context) or ()) + except QuitJobError: + logger.info("Quit job signal received, exiting job") + return + + if self._check_if_stop_needed(): + return + + if not self._rest_tasks: + logger.info("No more task need to perform, exiting job") + return + + count = 0 + + for ctx in contexts: + count += 1 + yield CCEJob(context=ctx, tasks=self._rest_tasks) + + if self._check_if_stop_needed(): + break + + logger.debug("Generated %s job in total", count) + logger.debug("Job execution finished successfully.") + self._stopped.set() + + def stop(self, block=False, timeout=30): + """ + Stop current job. + """ + if self._stopped.is_set(): + logger.info("Job is not running, cannot stop it.") + return + self._stop_signal_received = True + + if self._running_task: + self._running_task.stop(block, timeout) + if not block: + return + + if not self._stopped.wait(timeout): + logger.info("Waiting for stop job timeout") + + def __str__(self): + if self._running_task: + return f"Job(running task={self._running_task})" + return "Job(no running task)" + + def __repr__(self): + return self.__str__() diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/core/models.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/core/models.py new file mode 100755 index 0000000..c33b89b --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/core/models.py @@ -0,0 +1,338 @@ +# +# Copyright 2025 Splunk Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +import base64 +import json +import sys +import traceback + +from ..common.log import get_cc_logger +from .ext import lookup_method +from .template import compile_template + +_logger = get_cc_logger() + + +class _Token: + """Token class wraps a template expression""" + + def __init__(self, source): + """Constructs _Token from source. A rendered template + will be created if source is string type because Jinja + template must be a string.""" + self._source = source + self._value_for = compile_template(source) if isinstance(source, str) else None + + def render(self, variables): + """Render value with variables if source is a string. + Otherwise return source directly.""" + if self._value_for is None: + return self._source + try: + return self._value_for(variables) + except Exception as ex: + _logger.warning( + 'Unable to render template "%s". Please make sure template is' + " a valid Jinja2 template and token is exist in variables. " + "message=%s cause=%s", + self._source, + ex, + traceback.format_exc(), + ) + return self._source + + +class DictToken: + """DictToken wraps a dict which value is template expression""" + + def __init__(self, template_expr): + self._tokens = {k: _Token(v) for k, v in (template_expr or {}).items()} + + def render(self, variables): + return {k: v.render(variables) for k, v in self._tokens.items()} + + +class BaseAuth: + """A base class for all authorization classes""" + + def __call__(self, headers, context): + raise NotImplementedError("Auth must be callable.") + + +class BasicAuthorization(BaseAuth): + """BasicAuthorization class implements basic auth""" + + def __init__(self, options): + if not options: + raise ValueError("Options for basic auth unexpected to be empty") + + username = options.get("username") + if not username: + raise ValueError("Username is mandatory for basic auth") + password = options.get("password") + if not password: + raise ValueError("Password is mandatory for basic auth") + + self._username = _Token(username) + self._password = _Token(password) + + def to_native_string(self, string, encoding="ascii"): + """ + According to rfc7230: + Historically, HTTP has allowed field content with text in the + ISO-8859-1 charset [ISO-8859-1], supporting other charsets only + through use of [RFC2047] encoding. In practice, most HTTP header + field values use only a subset of the US-ASCII charset [USASCII]. + Newly defined header fields SHOULD limit their field values to + US-ASCII octets. A recipient SHOULD treat other octets in field + content (obs-text) as opaque data. + """ + is_py2 = sys.version_info[0] == 2 + if isinstance(string, str): + out = string + else: + if is_py2: + out = string.encode(encoding) + else: + out = string.decode(encoding) + + return out + + def __call__(self, headers, context): + username = self._username.render(context) + password = self._password.render(context) + headers["Authorization"] = ( + "Basic %s" + % self.to_native_string( + base64.b64encode((username + ":" + password).encode("latin1")) + ).strip() + ) + + +class RequestParams: + def __init__(self, url, method, header=None, auth=None, body=None): + self._header = DictToken(header) + self._url = _Token(url) + self._method = method.upper() + self._auth = auth + self._body = DictToken(body) + + @property + def header(self): + return self._header + + @property + def url(self): + return self._url + + @property + def method(self): + return self._method + + @property + def auth(self): + return self._auth + + @property + def body(self): + return self._body + + def render(self, ctx): + return Request( + url=self._url.render(ctx), + method=self._method, + headers=self.normalize_headers(ctx), + body=self.body.render(ctx), + ) + + def normalize_url(self, context): + """Normalize url""" + return self._url.render(context) + + def normalize_headers(self, context): + """Normalize headers which must be a dict which keys and values are + string.""" + header = self.header.render(context) + return {k: str(v) for k, v in header.items()} + + def normalize_body(self, context): + """Normalize body""" + return self.body.render(context) + + +class Request: + def __init__(self, method, url, headers, body): + self.method = method + self.url = url + self.headers = headers + if not body: + body = None + elif not isinstance(body, str): + body = json.dumps(body) + self.body = body + + +class _Function: + def __init__(self, inputs, function): + self._inputs = tuple(_Token(expr) for expr in inputs or []) + self._function = function + + @property + def inputs(self): + return self._inputs + + def inputs_values(self, context): + """ + Get rendered input values. + """ + for arg in self._inputs: + yield arg.render(context) + + @property + def function(self): + return self._function + + +class Task(_Function): + """Task class wraps a task in processor pipeline""" + + def __init__(self, inputs, function, output=None): + super().__init__(inputs, function) + self._output = output + + @property + def output(self): + return self._output + + def execute(self, context): + """Execute task with arguments which rendered from context""" + args = [arg for arg in self.inputs_values(context)] + caller = lookup_method(self.function) + output = self._output + + _logger.info( + "Executing task method: [%s], input size: [%s], output: [%s]", + self.function, + len(args), + output, + ) + + if output is None: + caller(*args) + return {} + + return {output: caller(*args)} + + +class Condition(_Function): + """A condition return the value calculated from input and function""" + + def calculate(self, context): + """Calculate condition with input arguments rendered from context + and method which expected return a bool result. + :param context: context contains key value pairs + :return A bool value returned from the corresponding method + """ + args = [arg for arg in self.inputs_values(context)] + callable_method = lookup_method(self.function) + + _logger.debug( + "Calculating condition with method: [%s], input size: [%s]", + self.function, + len(args), + ) + + result = callable_method(*args) + + _logger.debug("Calculated result: %s", result) + + return result + + +class _Conditional: + """A base class for all conditional action""" + + def __init__(self, conditions): + self._conditions = conditions or [] + + @property + def conditions(self): + return self._conditions + + def passed(self, context): + """Determine if any condition is satisfied. + :param context: variables to render template + :return: `True` if all passed else `False` + """ + return any(condition.calculate(context) for condition in self._conditions) + + +class Processor(_Conditional): + """Processor class contains a conditional data process pipeline""" + + def __init__(self, skip_conditions, pipeline): + super().__init__(skip_conditions) + self._pipeline = pipeline or [] + + @property + def pipeline(self): + return self._pipeline + + def should_skipped(self, context): + """Determine processor if should skip process""" + return self.passed(context) + + +class IterationMode(_Conditional): + def __init__(self, iteration_count, conditions): + super().__init__(conditions) + self._iteration_count = iteration_count + + @property + def iteration_count(self): + return self._iteration_count + + @property + def conditions(self): + return self._conditions + + +class Checkpoint: + """A checkpoint includes a namespace to determine the checkpoint location + and a content defined the format of content stored in checkpoint.""" + + def __init__(self, namespace, content): + """Constructs checkpoint with given namespace and content template.""" + if not content: + raise ValueError("Checkpoint content must not be empty") + + self._namespace = tuple(_Token(expr) for expr in namespace or ()) + self._content = DictToken(content) + + @property + def namespace(self): + return self._namespace + + def normalize_namespace(self, ctx): + """Normalize namespace with context used to render template.""" + return [token.render(ctx) for token in self._namespace] + + @property + def content(self): + return self._content + + def normalize_content(self, ctx): + """Normalize checkpoint with context used to render template.""" + return self._content.render(ctx) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/core/pipemgr.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/core/pipemgr.py new file mode 100755 index 0000000..6358628 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/core/pipemgr.py @@ -0,0 +1,27 @@ +# +# Copyright 2025 Splunk Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +from solnlib.pattern import Singleton + + +class PipeManager(metaclass=Singleton): + def __init__(self, event_writer=None): + self._event_writer = event_writer + + def write_events(self, events): + if not self._event_writer: + print(events, flush=True) + return True + return self._event_writer.write_events(events) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/core/plugin.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/core/plugin.py new file mode 100644 index 0000000..b3d313b --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/core/plugin.py @@ -0,0 +1,119 @@ +# +# Copyright 2025 Splunk Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +import importlib +import sys +import traceback +from os import path as op +from os import walk + +from ..common import log +from .ext import _extension_functions + +logger = log.get_cc_logger() + + +def cce_pipeline_plugin(func): + """ + Decorator for pipeline plugin functions. + + This docorator helps to register user defined pipeline function into CCE + engine so that it could be looked up when executing jobs. + + :param func: User defined function object + :type func: ``function`` + + Usage:: + >>> @cce_pipeline_plugin + >>> def my_function(arg): + >>> do_work() + """ + if not callable(func): + logger.debug( + "Function %s is not callable, don't add it as a pipeline function", + func.__name__, + ) + else: + if func.__name__ in list(_extension_functions.keys()): + logger.warning( + "Pipeline function %s already exists, please rename it!", + func.__name__, + ) + else: + _extension_functions[func.__name__] = func + logger.debug("Added function %s to pipeline plugin system", func.__name__) + + def pipeline_func(*args, **kwargs): + return func(*args, **kwargs) + + return pipeline_func + + +def import_plugin_file(file_name): + """ + Import a module. + 1. If the module with the same name already in sys.modules, then log a + warning and exit without reloading it. + 2. If failed to import the file, then log a warning and exit + """ + if file_name.endswith(".py"): + module_name = file_name[:-3] + else: + logger.warning( + "Plugin file %s is with unsupported extension, the supported are py", + file_name, + ) + return + + if module_name in list(sys.modules.keys()): + logger.debug( + "Module %s already exists and it won't be reload, " + "please rename your plugin module if it is required.", + module_name, + ) + return + + try: + importlib.import_module(module_name) + except Exception: + logger.warning(f"Failed to load module {module_name}, {traceback.format_exc()}") + return + + logger.info("Module %s is imported", module_name) + return + + +def init_pipeline_plugins(plugin_dir): + """ + Initialize the pipeline plugins which triggers the auto registering of user + defined pipeline functions. + 1. Add the plugin_dir into sys.path. + 2. Import the file under plugin_dir that starts with "cce_plugin_" and ends + with ".py" + """ + if not op.isdir(plugin_dir): + logger.warning( + "%s is not a directory! Pipeline plugin files won't be loaded.", plugin_dir + ) + return + + if plugin_dir not in sys.path: + sys.path.append(plugin_dir) + + for file_name in next(walk(plugin_dir))[2]: + if file_name == "__init__.py" or not file_name.startswith("cce_plugin_"): + continue + if file_name.endswith(".py"): + import_plugin_file(file_name) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/core/task.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/core/task.py new file mode 100644 index 0000000..cd4e000 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/core/task.py @@ -0,0 +1,600 @@ +# +# Copyright 2025 Splunk Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +import copy +import threading +from abc import abstractmethod + +from cloudconnectlib.common.log import get_cc_logger +from cloudconnectlib.core import defaults +from cloudconnectlib.core.checkpoint import CheckpointManagerAdapter +from cloudconnectlib.core.exceptions import ( + CCESplitError, + HTTPError, + QuitJobError, + StopCCEIteration, +) +from cloudconnectlib.core.ext import lookup_method +from cloudconnectlib.core.http import HttpClient, get_proxy_info +from cloudconnectlib.core.models import BasicAuthorization, DictToken, Request, _Token + +logger = get_cc_logger() + +_RESPONSE_KEY = "__response__" +_AUTH_TYPES = {"basic_auth": BasicAuthorization} + + +class ProcessHandler: + def __init__(self, method, arguments, output): + self.method = method + self.arguments = [_Token(arg) for arg in arguments or ()] + self.output = output + + def execute(self, context): + args = [arg.render(context) for arg in self.arguments] + logger.debug("%s arguments found for method %s", len(args), self.method) + callable_method = lookup_method(self.method) + result = callable_method(*args) + + data = {} + if self.output: + data[self.output] = result + + return data + + +class Condition: + def __init__(self, method, arguments): + self.method = method + self.arguments = [_Token(arg) for arg in arguments or ()] + + def is_meet(self, context): + args = [arg.render(context) for arg in self.arguments] + callable_method = lookup_method(self.method) + logger.debug("%s arguments found for method %s", len(args), self.method) + return callable_method(*args) + + +class ConditionGroup: + def __init__(self): + self._conditions = [] + + def add(self, condition): + self._conditions.append(condition) + + def is_meet(self, context): + return any(cdn.is_meet(context) for cdn in self._conditions) + + +class ProxyTemplate: + def __init__(self, proxy_setting): + self._proxy = DictToken(proxy_setting or {}) + + def render(self, context): + rendered = self._proxy.render(context) + return get_proxy_info(rendered) + + +class RequestTemplate: + def __init__(self, request): + if not request: + raise ValueError("The request is none") + url = request.get("url") + if not url: + raise ValueError("The request doesn't contain a url or it's empty") + self.url = _Token(url) + self.nextpage_url = _Token(request.get("nextpage_url", url)) + self.headers = DictToken(request.get("headers", {})) + + # Request body could be string or dict + body = request.get("body") + if isinstance(body, dict): + self.body = DictToken(body) + elif isinstance(body, str): + self.body = _Token(body) + else: + if body: + logger.warning("Invalid request body: %s", body) + self.body = None + + method = request.get("method", "GET") + if not method or method.upper() not in ("GET", "POST"): + raise ValueError(f"Unsupported value for request method: {method}") + self.method = _Token(method) + + self.count = 0 + + def reset(self): + self.count = 0 + + def render(self, context): + if self.count == 0 or not self.nextpage_url: + url = self.url.render(context) + else: + url = self.nextpage_url.render(context) + + self.count += 1 + return Request( + url=url, + method=self.method.render(context), + headers=self.headers.render(context), + body=self.body.render(context) if self.body else None, + ) + + +class BaseTask: + def __init__(self, name): + self._name = name + self._pre_process_handler = [] + self._post_process_handler = [] + self._skip_pre_conditions = ConditionGroup() + self._skip_post_conditions = ConditionGroup() + + def add_preprocess_handler(self, method, input, output=None): + """ + Add a preprocess handler. All handlers will be maintained and + executed sequentially. + :param method: The method name. + :type method: ``string`` + :param input: The input of the method. + :type input: ``list`` + :param output: The output variable name. + :type output: ``string`` + """ + handler = ProcessHandler(method, input, output) + self._pre_process_handler.append(handler) + + def add_preprocess_handler_batch(self, handlers): + """ + Add multiple preprocess handlers. All handlers will be maintained and + executed sequentially. + :param handlers: preprocess handler list + :type handlers: tuple + """ + for method, args, output in handlers: + self.add_preprocess_handler(method, args, output) + + def add_preprocess_skip_condition(self, method, input): + """ + Add a preprocess skip condition. The skip_conditions for preprocess + defines a group of conditions and the relation of them is OR which + means if any one of them returns True then the whole skip_conditions + returns True. If it returns True, then the preprocess pipeline will + be skipped. + :param method: The method name. + :type method: ``string`` + :param input: The input of the method. + :type input: ``list`` + """ + self._skip_pre_conditions.add(Condition(method, input)) + + def add_postprocess_handler(self, method, input, output=None): + """ + Add a postprocess handler. All handlers will be maintained and + executed sequentially. + :param method: The method name. + :type method: ``string`` + :param input: The input of the method. + :type input: ``list`` + :param output: The output variable name. + :type output: ``string`` + """ + handler = ProcessHandler(method, input, output) + self._post_process_handler.append(handler) + + def add_postprocess_handler_batch(self, handlers): + """ + Add multiple postprocess handlers. All handlers will be maintained and + executed sequentially. + :param handlers: postprocess handler list + :type handlers: tuple + """ + for method, args, output in handlers: + self.add_postprocess_handler(method, args, output) + + def add_postprocess_skip_condition(self, method, input): + """ + Add a preprocess skip condition. The skip_conditions for postprocess + defines a group of conditions and the relation of them is OR which means + if any one of them returns True then the whole skip_conditions returns + True. If it returns True, then the postprocess pipeline will be skipped. + + :param method: The method name. + :type method: ``string`` + :param input: The input of the method. + :type input: ``list`` + """ + self._skip_post_conditions.add(Condition(method, input)) + + @staticmethod + def _execute_handlers(skip_conditions, handlers, context, phase): + if skip_conditions.is_meet(context): + logger.debug("%s process skip conditions are met", phase.capitalize()) + return + if not handlers: + logger.debug("No handler found in %s process", phase) + return + + for handler in handlers: + data = handler.execute(context) + if data: + # FIXME + context.update(data) + if context.get("is_token_refreshed"): + # In case of OAuth flow after refreshing access token retrying again with the query to collect records + logger.info( + "The access token is refreshed hence skipping the rest post process handler tasks. Retrying again." + ) + return + logger.debug("Execute handlers finished successfully.") + + def _pre_process(self, context): + self._execute_handlers( + self._skip_pre_conditions, self._pre_process_handler, context, "pre" + ) + + def _post_process(self, context): + self._execute_handlers( + self._skip_post_conditions, self._post_process_handler, context, "post" + ) + + @abstractmethod + def perform(self, context): + pass + + def stop(self, block=False, timeout=30): + pass + + def __str__(self): + return self._name + + def __repr__(self): + return self.__str__() + + +class CCESplitTask(BaseTask): + OUTPUT_KEY = "__cce_split_result__" + + def __init__(self, name): + super().__init__(name) + self._process_handler = None + self._source = None + + def configure_split(self, method, source, output, separator=None): + arguments = [source, output, separator] + self._source = source + self._process_handler = ProcessHandler( + method, arguments, CCESplitTask.OUTPUT_KEY + ) + + def perform(self, context): + logger.debug("Task=%s start to run", self) + try: + self._pre_process(context) + except StopCCEIteration: + logger.info("Task=%s exits in pre_process stage", self) + yield context + return + + if not self._process_handler: + logger.info("Task=%s has no split method", self) + raise CCESplitError + + try: + invoke_results = self._process_handler.execute(context) + except Exception: + logger.exception("Task=%s encountered exception", self) + raise CCESplitError + if not invoke_results or not invoke_results.get(CCESplitTask.OUTPUT_KEY): + raise CCESplitError + for invoke_result in invoke_results[CCESplitTask.OUTPUT_KEY]: + new_context = copy.deepcopy(context) + new_context.update(invoke_result) + yield new_context + + logger.debug("Task=%s finished", self) + + +class CCEHTTPRequestTask(BaseTask): + """ + CCEHTTPTask represents a HTTP request's properties and its methods. + It can configure all properties covered by request JSON schema, + like url, method, auth, pre-process, post-process, skip conditions etc. + All properties could contain jinja2 template which will be render + from context when executing. + """ + + def __init__(self, request, name, meta_config=None, task_config=None, **kwargs): + """ + :param verify: Absolute path to server certificate, otherwise uses + requests' default certificate to verify server's TLS certificate. + Explicitly set it to False to not verify TLS certificate. + :type verify: ``string or bool`` + :param custom_func: Custom error code handling for HTTP codes: + the function should accept `request`, `response` and `logger` parameters + To let the library handle the status code, return a non-list object + To handle status code using custom logic, return (response, bool). + Bool decides whether to break or continue the code flow + :type custom_func: ``function`` + """ + super().__init__(name) + self._request = RequestTemplate(request) + self._stop_conditions = ConditionGroup() + self._proxy_info = None + self._max_iteration_count = defaults.max_iteration_count + + self._checkpointer = None + self._task_config = task_config + self._meta_config = meta_config + + self._http_client = None + self._authorizer = None + self._stopped = threading.Event() + self._stop_signal_received = False + if kwargs.get("custom_func"): + self.custom_handle_status_code = kwargs["custom_func"] + self.requests_verify = kwargs.get("verify", True) + + def stop(self, block=False, timeout=30): + """ + Stop current task. + """ + if self._stopped.is_set(): + logger.info("Task=%s is not running, cannot stop it.", self) + return + self._stop_signal_received = True + + if not block: + return + + if not self._stopped.wait(timeout): + logger.info("Waiting for stop task %s timeout", self) + + def _check_if_stop_needed(self): + if self._stop_signal_received: + logger.info("Stop task signal received, stopping task %s.", self) + self._stopped.set() + return True + return False + + def set_proxy(self, proxy_setting): + """ + Setup the proxy setting. + + :param proxy_setting: Proxy setting should include the following fields + "proxy_enabled": , + "proxy_url":, + "proxy_port": , + "proxy_username": , + "proxy_password": , + "proxy_rdns": , + "proxy_type": , + :type proxy_setting: ``dict`` + """ + self._proxy_info = ProxyTemplate(proxy_setting) + + def set_auth(self, auth_type, settings): + """ + Set the authentication of HTTP request. + :param auth_type: Authentication type. + :type auth_type: ``string`` + :param settings: The detail setting of authentication. It + could contain jinja2 + template. For example: + {"username": xxx, "password": xxx} + :type settings: ``dict`` + """ + if not auth_type: + raise ValueError(f"Invalid auth type={auth_type}") + authorizer_cls = _AUTH_TYPES.get(auth_type.lower()) + if not authorizer_cls: + raise ValueError(f"Unsupported auth type={auth_type}") + self._authorizer = authorizer_cls(settings) + + def set_iteration_count(self, count): + """ + Set the maximum loop count for the request. The request will ignore + this field if it's less or equal to 0 and will not stopped until + the stop conditions satisfied. Otherwise if the request count + reaches the iteration_count, the request will stop. + :param count: Iteration count. + :type count: ``integer`` + """ + try: + self._max_iteration_count = int(count) + except ValueError: + self._max_iteration_count = defaults.max_iteration_count + logger.warning( + "Invalid iteration count: %s, using default max iteration count: %s", + count, + self._max_iteration_count, + ) + + def add_stop_condition(self, method, input): + """ + Add a stop condition. The stop_conditions is a group of conditions + which defines when the request loop should be stopped and the + relation of them is OR which means if any one of them returns + True, then the whole skip_conditions returns True. If it + returns True, then stop looping the request. + :param method: The method name. + :type method: ``string`` + :param input: The input of the method. + :type input: ``list`` + """ + self._stop_conditions.add(Condition(method, input)) + + def configure_checkpoint(self, name, content): + """ + :param name: The checkpoint name. + :type name: ``string`` + :param content: The checkpoint content. + :type content: ``dict`` + """ + if not name or not name.strip(): + raise ValueError(f'Invalid checkpoint name: "{name}"') + if not content: + raise ValueError(f"Invalid checkpoint content: {content}") + self._checkpointer = CheckpointManagerAdapter( + namespaces=name, + content=content, + meta_config=self._meta_config, + task_config=self._task_config, + ) + + def _should_exit(self, done_count, context): + if 0 < self._max_iteration_count <= done_count: + logger.info("Iteration count reached %s", self._max_iteration_count) + return True + + if self._stop_conditions.is_meet(context): + logger.info("Stop conditions are met") + return True + return False + + def _send_request(self, request): + try: + response = self._http_client.send(request) + except HTTPError as error: + logger.exception( + "Error occurred in request url=%s method=%s reason=%s", + request.url, + request.method, + error.reason, + ) + return None, True + + status = response.status_code + + if status in defaults.success_statuses: + if not (response.body or "").strip(): + logger.info( + "The response body of request which url=%s and" + " method=%s is empty, status=%s.", + request.url, + request.method, + status, + ) + return None, True + return response, False + + if "custom_handle_status_code" in dir(self): + returned_items = self.custom_handle_status_code(request, response, logger) + if isinstance(returned_items, (list, tuple)): + return returned_items[0], returned_items[1] + + error_log = ( + "The response status=%s for request which url=%s and" + " method=%s and message=%s " + ) % (status, request.url, request.method, response.body) + + if status in defaults.warning_statuses: + logger.warning(error_log) + else: + logger.error(error_log) + + return response, True + + def _persist_checkpoint(self, context): + if not self._checkpointer: + logger.debug("Checkpoint is not configured. Skip persisting checkpoint.") + return + try: + self._checkpointer.save(context) + except Exception: + logger.exception("Error while persisting checkpoint") + else: + logger.debug("Checkpoint has been updated successfully.") + + def _load_checkpoint(self, ctx): + if not self._checkpointer: + logger.debug("Checkpoint is not configured. Skip loading checkpoint.") + return {} + return self._checkpointer.load(ctx=ctx) + + def _prepare_http_client(self, ctx): + proxy = self._proxy_info.render(ctx) if self._proxy_info else None + self._http_client = HttpClient(proxy, self.requests_verify) + + def _flush_checkpoint(self): + if self._checkpointer: + # Flush checkpoint cache to disk + self._checkpointer.close() + + def perform(self, context): + logger.info("Starting to perform task=%s", self) + + self._prepare_http_client(context) + done_count = 0 + + context.update(self._load_checkpoint(context)) + update_source = False if context.get("source") else True + self._request.reset() + + while True: + try: + self._pre_process(context) + except StopCCEIteration: + logger.info("Task=%s exits in pre_process stage", self) + break + except QuitJobError: + self._flush_checkpoint() + raise + + if self._check_if_stop_needed(): + break + + r = self._request.render(context) + if self._authorizer: + self._authorizer(r.headers, context) + + response, need_exit = self._send_request(r) + context[_RESPONSE_KEY] = response + + if need_exit: + logger.info( + "Task=%s need been terminated due to request response", self + ) + break + if self._check_if_stop_needed(): + break + + if update_source: + context["source"] = r.url.split("?")[0] + + try: + self._post_process(context) + except StopCCEIteration: + logger.info("Task=%s exits in post_process stage", self) + break + except QuitJobError: + self._flush_checkpoint() + raise + + self._persist_checkpoint(context) + + if self._check_if_stop_needed(): + break + + done_count += 1 + if self._should_exit(done_count, context): + break + if update_source and context.get("source"): + del context["source"] + yield context + + self._stopped.set() + self._flush_checkpoint() + logger.info("Perform task=%s finished", self) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/core/template.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/core/template.py new file mode 100755 index 0000000..c488001 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/core/template.py @@ -0,0 +1,36 @@ +# +# Copyright 2025 Splunk Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +import re + +from jinja2 import Template + +# This pattern matches the template with only one token inside like "{{ +# token1}}", "{{ token2 }" +PATTERN = re.compile(r"^\{\{\s*(\w+)\s*\}\}$") + + +def compile_template(template): + _origin_template = template + _template = Template(template) + + def translate_internal(context): + match = re.match(PATTERN, _origin_template) + if match: + context_var = context.get(match.groups()[0]) + return context_var if context_var else "" + return _template.render(context) + + return translate_internal diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/__init__.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/__init__.py new file mode 100755 index 0000000..cb8e7bb --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/__init__.py @@ -0,0 +1,15 @@ +# +# Copyright 2025 Splunk Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/cloud_connect_mod_input.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/cloud_connect_mod_input.py new file mode 100755 index 0000000..d54b5de --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/cloud_connect_mod_input.py @@ -0,0 +1,85 @@ +# +# Copyright 2025 Splunk Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +import configparser +import os.path as op + +from ..common.lib_util import get_app_root_dir, get_main_file, get_mod_input_script_name +from .data_collection import ta_mod_input as ta_input +from .ta_cloud_connect_client import TACloudConnectClient as CollectorCls + + +def _load_options_from_inputs_spec(app_root, stanza_name): + input_spec_file = "inputs.conf.spec" + file_path = op.join(app_root, "README", input_spec_file) + + if not op.isfile(file_path): + raise RuntimeError("README/%s doesn't exist" % input_spec_file) + + parser = configparser.RawConfigParser(allow_no_value=True) + parser.read(file_path) + options = list(parser.defaults().keys()) + stanza_prefix = "%s://" % stanza_name + + stanza_exist = False + for section in parser.sections(): + if section == stanza_name or section.startswith(stanza_prefix): + options.extend(parser.options(section)) + stanza_exist = True + if not stanza_exist: + raise RuntimeError("Stanza %s doesn't exist" % stanza_name) + return set(options) + + +def _find_ucc_global_config_json(app_root, ucc_config_filename): + """Find UCC config file from all possible directories""" + candidates = [ + "local", + "default", + "bin", + op.join("appserver", "static", "js", "build"), + ] + + for candidate in candidates: + file_path = op.join(app_root, candidate, ucc_config_filename) + if op.isfile(file_path): + return file_path + raise RuntimeError( + "Unable to load {} from [{}]".format(ucc_config_filename, ",".join(candidates)) + ) + + +def _get_cloud_connect_config_json(script_name): + config_file_name = ".".join([script_name, "cc.json"]) + return op.join(op.dirname(get_main_file()), config_file_name) + + +def run(single_instance=False): + script_name = get_mod_input_script_name() + + cce_config_file = _get_cloud_connect_config_json(script_name) + + app_root = get_app_root_dir() + ucc_config_path = _find_ucc_global_config_json(app_root, "globalConfig.json") + + schema_params = _load_options_from_inputs_spec(app_root, script_name) + ta_input.main( + CollectorCls, + schema_file_path=ucc_config_path, + log_suffix=script_name, + cc_json_file=cce_config_file, + schema_para_list=schema_params, + single_instance=single_instance, + ) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/common/__init__.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/common/__init__.py new file mode 100755 index 0000000..0abce14 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/common/__init__.py @@ -0,0 +1,66 @@ +# +# Copyright 2025 Splunk Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +import hashlib +import json + + +def load_schema_file(schema_file): + """ + Load schema file. + """ + + with open(schema_file) as f: + ret = json.load(f) + + common = ret.get("_common_", dict()) + if common: + for k, v in list(ret.items()): + if k == "_common_" or not isinstance(v, dict): + continue + # merge common into other values + for _k, _v in list(common.items()): + if _k not in v: + v[_k] = _v + ret[k] = v + + return ret + + +def md5_of_dict(data): + """ + MD5 of dict data. + """ + + md5 = hashlib.sha256() + if isinstance(data, dict): + for key in sorted(data.keys()): + md5.update(repr(key)) + md5.update(md5_of_dict(data[key])) + elif isinstance(data, list): + for item in sorted(data): + md5.update(md5_of_dict(item)) + else: + md5.update(repr(data)) + + return md5.hexdigest() + + +class UCCException(Exception): + """ + Dispatch engine exception. + """ + + pass diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/common/log.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/common/log.py new file mode 100755 index 0000000..e5a4590 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/common/log.py @@ -0,0 +1,67 @@ +# +# Copyright 2025 Splunk Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +import logging + +from solnlib import log + + +def set_log_level(log_level): + """ + Set log level. + """ + + if isinstance(log_level, str): + if log_level.upper() == "DEBUG": + log.Logs().set_level(logging.DEBUG) + elif log_level.upper() == "INFO": + log.Logs().set_level(logging.INFO) + elif log_level.upper() == "WARN": + log.Logs().set_level(logging.WARN) + elif log_level.upper() == "ERROR": + log.Logs().set_level(logging.ERROR) + elif log_level.upper() == "WARNING": + log.Logs().set_level(logging.WARNING) + elif log_level.upper() == "CRITICAL": + log.Logs().set_level(logging.CRITICAL) + else: + log.Logs().set_level(logging.INFO) + elif isinstance(log_level, int): + if log_level in [ + logging.DEBUG, + logging.INFO, + logging.ERROR, + logging.WARN, + logging.WARNING, + logging.CRITICAL, + ]: + log.Logs().set_level(log_level) + else: + log.Logs().set_level(logging.INFO) + else: + log.Logs().set_level(logging.INFO) + + +# Global logger +logger = log.Logs().get_logger("cloud_connect_engine") + + +def reset_logger(name): + """ + Reset logger. + """ + + global logger + logger = log.Logs().get_logger(name) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/common/rwlock.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/common/rwlock.py new file mode 100755 index 0000000..18c6edd --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/common/rwlock.py @@ -0,0 +1,85 @@ +# +# Copyright 2025 Splunk Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +""" +This module provides Read-Write lock. +""" + +import threading + + +class _ReadLocker: + def __init__(self, lock): + self.lock = lock + + def __enter__(self): + self.lock.acquire_read() + + def __exit__(self, exc_type, exc_val, exc_tb): + self.lock.release_read() + return False + + +class _WriteLocker: + def __init__(self, lock): + self.lock = lock + + def __enter__(self): + self.lock.acquire_write() + + def __exit__(self, exc_type, exc_val, exc_tb): + self.lock.release_write() + return False + + +class RWLock: + """Simple Read-Write lock. + + Allow multiple read but only one writing concurrently. + """ + + def __init__(self): + self._condition = threading.Condition(threading.Lock()) + self._readers = 0 + + def acquire_read(self): + self._condition.acquire() + self._readers += 1 + self._condition.release() + + def release_read(self): + self._condition.acquire() + try: + self._readers -= 1 + if not self._readers: + self._condition.notifyAll() + finally: + self._condition.release() + + def acquire_write(self): + self._condition.acquire() + while self._readers > 0: + self._condition.wait() + + def release_write(self): + self._condition.release() + + @property + def reader_lock(self): + return _ReadLocker(self) + + @property + def writer_lock(self): + return _WriteLocker(self) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/common/schema_meta.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/common/schema_meta.py new file mode 100755 index 0000000..0b40aa0 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/common/schema_meta.py @@ -0,0 +1,21 @@ +# +# Copyright 2025 Splunk Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +FIELD_PRODUCT = "_product" +FIELD_REST_NAMESPACE = "_rest_namespace" +FIELD_REST_PREFIX = "_rest_prefix" +FIELD_PROTOCOL_VERSION = "_protocol_version" +FIELD_VERSION = "_version" +FIELD_ENCRYPTION_FORMATTER = "_encryption_formatter" diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/config.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/config.py new file mode 100755 index 0000000..61a672d --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/config.py @@ -0,0 +1,427 @@ +# +# Copyright 2025 Splunk Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +"""UCC Config Module +This is for load/save configuration in UCC server or TA. +The load/save action is based on specified schema. +""" +import json +import logging +import time +import traceback +from urllib.parse import quote + +from solnlib import utils +from splunktalib.rest import code_to_msg, splunkd_request + +from .common import UCCException +from .common import log as stulog + +LOGGING_STOPPED = False + + +def stop_logging(): + """ + Stop Config Logging. This is for not showing REST request error + while splunkd shutting down. + :return: + """ + global LOGGING_STOPPED + LOGGING_STOPPED = True + + +def log(msg, msgx="", level=logging.INFO, need_tb=False): + """ + Logging in UCC Config Module. + :param msg: message content + :param msgx: detail info. + :param level: logging level + :param need_tb: if need logging traceback + :return: + """ + global LOGGING_STOPPED + if LOGGING_STOPPED: + return + + msgx = " - " + msgx if msgx else "" + content = f"UCC Config Module: {msg}{msgx}" + if need_tb: + stack = "".join(traceback.format_stack()) + content = f"{content}\r\n{stack}" + stulog.logger.log(level, content, exc_info=1) + + +class ConfigException(UCCException): + """Exception for UCC Config Exception""" + + pass + + +class Config: + """UCC Config Module""" + + # Placeholder stands for any field + FIELD_PLACEHOLDER = "*" + + # Head of non-processing endpoint + NON_PROC_ENDPOINT = "#" + + # Some meta fields in UCC Config schema + META_FIELDS = ( + "_product", + "_rest_namespace", + "_rest_prefix", + "_protocol_version", + "_version", + "_encryption_formatter", + ) + + # Default Values for Meta fields + META_FIELDS_DEFAULT = { + "_encryption_formatter": "", + } + + def __init__(self, splunkd_uri, session_key, schema, user="nobody", app="-"): + """ + :param splunkd_uri: the root uri of Splunk server, + like https://127.0.0.1:8089 + :param session_key: session key for Splunk server + :param schema: + :param user: owner of the resources requested + :param app: namespace of the resources requested + :return: + """ + self.splunkd_uri = splunkd_uri.strip("/") + self.session_key = session_key + self.user, self.app = user, app + self._parse_schema(schema) + self._check_protocol_version() + + def load(self): + """Load Configurations in UCC according to the schema + It will raise exception if failing to load any endpoint, + because it make no sense with not complete configuration info. + """ + log('"load" method in', level=logging.DEBUG) + + ret = { + meta_field: getattr(self, meta_field) for meta_field in Config.META_FIELDS + } + + for ep_id, ep in self._endpoints.items(): + data = {"output_mode": "json", "--cred--": "1"} + + retries = 4 + waiting_time = [1, 2, 2] + for retry in range(retries): + response = splunkd_request( + splunkd_uri=self.make_uri(ep_id), + session_key=self.session_key, + data=data, + retry=3, + ) + cont = response.text + if response is None or response.status_code != 200: + msg = 'Fail to load endpoint "{ep_id}" - {err}' "".format( + ep_id=ep_id, err=code_to_msg(response) + ) + log(msg, level=logging.ERROR, need_tb=True) + raise ConfigException(msg) + + try: + ret[ep_id] = self._parse_content(ep_id, cont) + except ConfigException as exc: + log(exc, level=logging.WARNING, need_tb=True) + if retry < retries - 1: + time.sleep(waiting_time[retry]) + else: + break + else: + log(exc, level=logging.ERROR, need_tb=True) + raise exc + + log('"load" method out', level=logging.DEBUG) + return ret + + def update_items( + self, endpoint_id, item_names, field_names, data, raise_if_failed=False + ): + """Update items in specified endpoint with given fields in data + :param endpoint_id: endpoint id in schema, the key name in schema + :param item_names: a list of item name + :param field_names: a list of updated fields + :param data: a dict of content for items, for example: + { + "item_name_1": { + "field_name_1": "value_1", + "field_name_2": "value_2", + }, + "item_name_2": { + "field_name_1": "value_1x", + "field_name_2": "value_2x", + } + } + :raise_if_failed: raise an exception if updating failed. + :return: a list of endpoint ids, which are failed to be updated. + If raise_if_failed is True, it will exist with an exception + on any updating failed. + """ + log( + '"update_items" method in', + msgx="endpoint_id=%s, item_names=%s, field_names=%s" + % (endpoint_id, item_names, field_names), + level=logging.DEBUG, + ) + + assert ( + endpoint_id in self._endpoints + ), "Unexpected endpoint id in given schema - {ep_id}" "".format( + ep_id=endpoint_id + ) + + item_names_failed = [] + for item_name in item_names: + item_data = data.get(item_name, {}) + item_data = { + field_name: self.dump_value( + endpoint_id, item_name, field_name, item_data[field_name] + ) + for field_name in field_names + if field_name in item_data + } + if not item_data: + continue + item_uri = self.make_uri(endpoint_id, item_name=item_name) + + response = splunkd_request( + splunkd_uri=item_uri, + session_key=self.session_key, + data=item_data, + method="POST", + retry=3, + ) + if response is None or response.status_code not in (200, 201): + msg = ( + 'Fail to update item "{item}" in endpoint "{ep_id}"' + " - {err}".format( + ep_id=endpoint_id, + item=item_name, + err=code_to_msg(response), + ) + ) + log(msg, level=logging.ERROR) + if raise_if_failed: + raise ConfigException(msg) + item_names_failed.append(item_name) + + log('"update_items" method out', level=logging.DEBUG) + return item_names_failed + + def make_uri(self, endpoint_id, item_name=None): + """Make uri for REST endpoint in TA according to given schema + :param endpoint_id: endpoint id in schema + :param item_name: item name for given endpoint. None for listing all + :return: + """ + endpoint = self._endpoints[endpoint_id]["endpoint"] + ep_full = ( + endpoint[1:].strip("/") + if endpoint.startswith(Config.NON_PROC_ENDPOINT) + else "{admin_match}/{protocol_version}/{endpoint}" + "".format( + admin_match=self._rest_namespace, + protocol_version=self._protocol_version, + endpoint=(self._rest_prefix + self._endpoints[endpoint_id]["endpoint"]), + ) + ) + ep_uri = ( + None + if endpoint_id not in self._endpoints + else "{splunkd_uri}/servicesNS/{user}/{app}/{endpoint_full}" + "".format( + splunkd_uri=self.splunkd_uri, + user=self.user, + app=self.app, + endpoint_full=ep_full, + ) + ) + + url = ( + ep_uri + if item_name is None + else "{ep_uri}/{item_name}".format( + ep_uri=ep_uri, item_name=quote(item_name) + ) + ) + if item_name is None: + url += "?count=-1" + log('"make_uri" method', msgx="url=%s" % url, level=logging.DEBUG) + return url + + def _parse_content(self, endpoint_id, content): + """Parse content returned from REST + :param content: a JSON string returned from REST. + """ + try: + content = json.loads(content)["entry"] + ret = {ent["name"]: ent["content"] for ent in content} + except Exception as exc: + msg = "Fail to parse content from endpoint_id=%s" " - %s" % ( + endpoint_id, + exc, + ) + log(msg, level=logging.ERROR, need_tb=True) + raise ConfigException(msg) + + ret = { + name: { + key: self.load_value(endpoint_id, name, key, val) + for key, val in ent.items() + if not key.startswith("eai:") + } + for name, ent in ret.items() + } + return ret + + def _parse_schema(self, ucc_config_schema): + try: + ucc_config_schema = json.loads(ucc_config_schema) + except ValueError: + msg = "Invalid JSON content of schema" + log(msg, level=logging.ERROR, need_tb=True) + raise ConfigException(msg) + except Exception as exc: + log(exc, level=logging.ERROR, need_tb=True) + raise ConfigException(exc) + + ucc_config_schema.update( + { + key: val + for key, val in Config.META_FIELDS_DEFAULT.items() + if key not in ucc_config_schema + } + ) + for field in Config.META_FIELDS: + assert field in ucc_config_schema and isinstance( + ucc_config_schema[field], str + ), ('Missing or invalid field "%s" in given schema' % field) + setattr(self, field, ucc_config_schema[field]) + + self._endpoints = {} + for key, val in ucc_config_schema.items(): + if key.startswith("_"): + continue + + assert isinstance(val, dict), ( + 'The schema of endpoint "%s" should be dict' % key + ) + assert "endpoint" in val, 'The endpoint "%s" has no endpoint entry' % key + + self._endpoints[key] = val + + def _check_protocol_version(self): + """ + Check if the protocol version in given schema is supported. + :return: + """ + if not self._protocol_version: + return + if not self._protocol_version.startswith("1."): + raise ConfigException( + 'Unsupported protocol version "%s" ' + "in given schema" % self._protocol_version + ) + + def load_value(self, endpoint_id, item_name, fname, fval): + field_type = self._get_field_type(endpoint_id, item_name, fname) + if field_type == "": + return fval + + try: + field_type = field_type.lower() + if field_type == "bool": + return True if utils.is_true(fval) else False + elif field_type == "int": + return int(fval) + elif field_type == "json": + return json.loads(fval) + except Exception as exc: + msg = ( + 'Fail to load value of "{type_name}" - ' + "endpoint={endpoint}, item={item}, field={field}" + "".format( + type_name=field_type, + endpoint=endpoint_id, + item=item_name, + field=fname, + ) + ) + log(msg, msgx=str(exc), level=logging.WARNING, need_tb=True) + raise ConfigException(msg) + + def dump_value(self, endpoint_id, item_name, fname, fval): + field_type = self._get_field_type(endpoint_id, item_name, fname) + if field_type == "": + return fval + + try: + field_type = field_type.lower() + if field_type == "bool": + return str(fval).lower() + elif field_type == "json": + return json.dumps(fval) + else: + return fval + except Exception as exc: + msg = ( + 'Fail to dump value of "{type_name}" - ' + "endpoint={endpoint}, item={item}, field={field}" + "".format( + type_name=field_type, + endpoint=endpoint_id, + item=item_name, + field=fname, + ) + ) + log(msg, msgx=str(exc), level=logging.ERROR, need_tb=True) + raise ConfigException(msg) + + def _get_field_type(self, endpoint_id, item_name, fname): + field_types = self._endpoints[endpoint_id].get("field_types", {}) + if item_name in field_types: + fields = field_types[item_name] + elif Config.FIELD_PLACEHOLDER in field_types: + fields = field_types[Config.FIELD_PLACEHOLDER] + else: + fields = {} + + field_type = fields.get(fname, "") + if field_type not in ("", "bool", "int", "json"): + msg = ( + 'Unsupported type "{type_name}" for value in schema - ' + "endpoint={endpoint}, item={item}, field={field}" + "".format( + type_name=field_type, + endpoint=endpoint_id, + item=item_name, + field=fname, + ) + ) + log(msg, level=logging.ERROR, need_tb=True) + raise ConfigException(msg) + return field_type + + def get_endpoints(self): + return self._endpoints diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/data_collection/__init__.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/data_collection/__init__.py new file mode 100755 index 0000000..6a2c312 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/data_collection/__init__.py @@ -0,0 +1,16 @@ +# +# Copyright 2025 Splunk Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +__version__ = "1.0.2" diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/data_collection/ta_checkpoint_manager.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/data_collection/ta_checkpoint_manager.py new file mode 100755 index 0000000..ed275b6 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/data_collection/ta_checkpoint_manager.py @@ -0,0 +1,174 @@ +# +# Copyright 2025 Splunk Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +import json +import re + +from solnlib.utils import is_true +from splunktalib import state_store as ss + +from ..common import log as stulog +from . import ta_consts as c +from . import ta_helper as th + + +class TACheckPointMgr: + SEPARATOR = "_" * 3 + + # FIXME We'd better move all default values together + _DEFAULT_MAX_CACHE_SECONDS = 5 + _MAXIMUM_MAX_CACHE_SECONDS = 3600 + + def __init__(self, meta_config, task_config): + self._task_config = task_config + self._store = self._create_state_store( + meta_config, + task_config.get(c.checkpoint_storage_type), + task_config[c.appname], + ) + + def _create_state_store(self, meta_config, storage_type, app_name): + stulog.logger.debug("Got checkpoint storage type=%s", storage_type) + + if storage_type == c.checkpoint_kv_storage: + collection_name = self._get_collection_name() + stulog.logger.debug( + "Creating KV state store, collection name=%s", collection_name + ) + return ss.get_state_store( + meta_config, + appname=app_name, + collection_name=collection_name, + use_kv_store=True, + ) + + use_cache_file = self._use_cache_file() + max_cache_seconds = self._get_max_cache_seconds() if use_cache_file else None + + stulog.logger.debug( + "Creating file state store, use_cache_file=%s, max_cache_seconds=%s", + use_cache_file, + max_cache_seconds, + ) + + return ss.get_state_store( + meta_config, app_name, use_cached_store=use_cache_file + ) + + def _get_collection_name(self): + collection = self._task_config.get(c.collection_name) + collection = collection.strip() if collection else "" + + if not collection: + input_name = self._task_config[c.mod_input_name] + stulog.logger.info( + 'Collection name="%s" is empty, set it to "%s"', collection, input_name + ) + collection = input_name + return re.sub(r"[^\w]+", "_", collection) + + def _use_cache_file(self): + # TODO Move the default value outside code + use_cache_file = is_true(self._task_config.get(c.use_cache_file, True)) + if use_cache_file: + stulog.logger.info( + "Stanza=%s using cached file store to create checkpoint", + self._task_config[c.stanza_name], + ) + return use_cache_file + + def _get_max_cache_seconds(self): + default = self._DEFAULT_MAX_CACHE_SECONDS + seconds = self._task_config.get(c.max_cache_seconds, default) + try: + seconds = int(seconds) + except ValueError: + stulog.logger.warning( + "The max_cache_seconds '%s' is not a valid integer," + " so set this variable to default value %s", + seconds, + default, + ) + seconds = default + else: + maximum = self._MAXIMUM_MAX_CACHE_SECONDS + if not (1 <= seconds <= maximum): + # for seconds>3600 set it to 3600. for seconds <=0 set it to default. + adjusted = max(min(seconds, maximum), default) + stulog.logger.warning( + "The max_cache_seconds (%s) is expected in range[1,%s]," + " set it to %s", + seconds, + maximum, + adjusted, + ) + seconds = adjusted + return seconds + + def get_ckpt_key(self, namespaces=None): + return self._key_formatter(namespaces) + + def get_ckpt(self, namespaces=None, show_namespaces=False): + key, namespaces = self.get_ckpt_key(namespaces) + raw_checkpoint = self._store.get_state(key) + stulog.logger.debug( + "Get checkpoint key='%s' value='%s'", key, json.dumps(raw_checkpoint) + ) + if not show_namespaces and raw_checkpoint: + return raw_checkpoint.get("data") + return raw_checkpoint + + def delete_if_exists(self, namespaces=None): + """Return true if exist and deleted else False""" + key, _ = self._key_formatter(namespaces) + try: + self._store.delete_state(key) + return True + except Exception: + return False + + def update_ckpt(self, ckpt, namespaces=None): + if not ckpt: + stulog.logger.warning("Checkpoint expect to be not empty.") + return + key, namespaces = self.get_ckpt_key(namespaces) + value = {"namespaces": namespaces, "data": ckpt} + stulog.logger.info( + "Update checkpoint key='%s' value='%s'", key, json.dumps(value) + ) + self._store.update_state(key, value) + + def remove_ckpt(self, namespaces=None): + key, namespaces = self.get_ckpt_key(namespaces) + self._store.delete_state(key) + + def _key_formatter(self, namespaces=None): + if not namespaces: + stanza = self._task_config[c.stanza_name] + stulog.logger.info( + f"Namespaces is empty, using stanza name {stanza} instead." + ) + namespaces = [stanza] + key_str = TACheckPointMgr.SEPARATOR.join(namespaces) + hashed_file = th.format_name_for_file(key_str) + stulog.logger.info("raw_file='%s' hashed_file='%s'", key_str, hashed_file) + return hashed_file, namespaces + + def close(self, key=None): + try: + self._store.close(key) + stulog.logger.info("Closed state store successfully. key=%s", key) + except Exception: + stulog.logger.exception("Error closing state store. key=%s", key) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/data_collection/ta_config.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/data_collection/ta_config.py new file mode 100755 index 0000000..6741cad --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/data_collection/ta_config.py @@ -0,0 +1,192 @@ +# +# Copyright 2025 Splunk Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +import os.path as op +import socket + +from solnlib import server_info +from splunktalib import modinput as modinput +from splunktalib.common import util + +from ..common import log as stulog +from . import ta_consts as c +from . import ta_helper as th + + +# methods can be overrided by subclass : process_task_configs +class TaConfig: + _current_hostname = socket.gethostname() + _appname = util.get_appname_from_path(op.abspath(__file__)) + + def __init__( + self, + meta_config, + client_schema, + log_suffix=None, + stanza_name=None, + input_type=None, + single_instance=True, + ): + self._meta_config = meta_config + self._stanza_name = stanza_name + self._input_type = input_type + self._log_suffix = log_suffix + self._single_instance = single_instance + self._task_configs = [] + self._client_schema = client_schema + self._server_info = server_info.ServerInfo.from_server_uri( + meta_config[c.server_uri], meta_config[c.session_key] + ) + self._all_conf_contents = {} + self._get_division_settings = {} + self.set_logging() + self._load_task_configs() + + def is_shc_member(self): + return self._server_info.is_shc_member() + + def is_search_head(self): + return self._server_info.is_search_head() + + def is_single_instance(self): + return self._single_instance + + def get_meta_config(self): + return self._meta_config + + def get_task_configs(self): + return self._task_configs + + def get_all_conf_contents(self): + if self._all_conf_contents: + return ( + self._all_conf_contents.get(c.inputs), + self._all_conf_contents.get(c.all_configs), + self._all_conf_contents.get(c.global_settings), + ) + + inputs, configs, global_settings = th.get_all_conf_contents( + self._meta_config[c.server_uri], + self._meta_config[c.session_key], + self._client_schema, + self._input_type, + ) + self._all_conf_contents[c.inputs] = inputs + self._all_conf_contents[c.all_configs] = configs + self._all_conf_contents[c.global_settings] = global_settings + return inputs, configs, global_settings + + def set_logging(self): + # The default logger name is "cloud_connect_engine" + if self._stanza_name and self._log_suffix: + logger_name = ( + self._log_suffix + "_" + th.format_name_for_file(self._stanza_name) + ) + stulog.reset_logger(logger_name) + inputs, configs, global_settings = self.get_all_conf_contents() + log_level = "INFO" + for item in global_settings.get("settings"): + if item.get(c.name) == "logging" and item.get("loglevel"): + log_level = item["loglevel"] + break + stulog.set_log_level(log_level) + stulog.logger.info(f"Set log_level={log_level}") + stulog.logger.info(f"Start {self._stanza_name} task") + + def get_input_type(self): + return self._input_type + + def _get_checkpoint_storage_type(self, config): + cs_type = config.get(c.checkpoint_storage_type) + stulog.logger.debug("Checkpoint storage type=%s", cs_type) + + cs_type = cs_type.strip() if cs_type else c.checkpoint_auto + + # Allow user configure 'auto' and 'file' only. + if cs_type not in (c.checkpoint_auto, c.checkpoint_file): + stulog.logger.warning( + "Checkpoint storage type='%s' is invalid, change it to '%s'", + cs_type, + c.checkpoint_auto, + ) + cs_type = c.checkpoint_auto + + if cs_type == c.checkpoint_auto and self.is_search_head(): + stulog.logger.info( + "Checkpoint storage type is '%s' and instance is " + "search head, set checkpoint storage type to '%s'.", + c.checkpoint_auto, + c.checkpoint_kv_storage, + ) + cs_type = c.checkpoint_kv_storage + return cs_type + + def _load_task_configs(self): + inputs, configs, global_settings = self.get_all_conf_contents() + if self._input_type: + inputs = inputs.get(self._input_type) + if not self._single_instance: + inputs = [input for input in inputs if input[c.name] == self._stanza_name] + all_task_configs = [] + for input in inputs: + task_config = {} + task_config.update(input) + task_config[c.configs] = configs + task_config[c.settings] = { + item[c.name]: item for item in global_settings["settings"] + } + if self.is_single_instance(): + collection_interval = "collection_interval" + task_config[c.interval] = task_config.get(collection_interval) + task_config[c.interval] = int(task_config[c.interval]) + if task_config[c.interval] <= 0: + raise ValueError( + "The interval value {} is invalid." + " It should be a positive integer".format(task_config[c.interval]) + ) + + task_config[c.checkpoint_storage_type] = self._get_checkpoint_storage_type( + task_config + ) + + task_config[c.appname] = TaConfig._appname + task_config[c.mod_input_name] = self._input_type + task_config[c.stanza_name] = task_config[c.name] + + all_task_configs.append(task_config) + self._task_configs = all_task_configs + + # Override this method if some transforms or validations needs to be done + # before task_configs is exposed + def process_task_configs(self, task_configs): + pass + + +def create_ta_config( + settings, config_cls=TaConfig, log_suffix=None, single_instance=True +): + meta_config, configs = modinput.get_modinput_configs_from_stdin() + stanza_name = None + input_type = None + if configs and "://" in configs[0].get("name", ""): + input_type, stanza_name = configs[0].get("name").split("://", 1) + return config_cls( + meta_config, + settings, + log_suffix, + stanza_name, + input_type, + single_instance=single_instance, + ) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/data_collection/ta_consts.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/data_collection/ta_consts.py new file mode 100755 index 0000000..eb5f66a --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/data_collection/ta_consts.py @@ -0,0 +1,69 @@ +# +# Copyright 2025 Splunk Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +server_uri = "server_uri" +session_key = "session_key" +version = "version" +appname = "appname" +event_writer = "event_writer" +index = "index" +default_index = "default" +source = "source" +sourcetype = "sourcetype" +data_loader = "data_loader" + +meta_configs = "meta_configs" +disabled = "disabled" +resource = "resource" +events = "events" +scope = "scope" +checkpoint_dir = "checkpoint_dir" + +ckpt_dict = "ckpt_dict" +inputs = "inputs" +input_name = "input_name" +input_data = "input_data" +interval = "interval" +data = "data" +batch_size = "batch_size" +time_fmt = "%Y-%m-%dT%H:%M:%S" +utc_time_fmt = "%Y-%m-%dT%H:%M:%S.%fZ" + +# system setting keys +checkpoint_storage_type = "builtin_system_checkpoint_storage_type" + +# Possible values for checkpoint storage type +checkpoint_auto = "auto" +checkpoint_kv_storage = "kv_store" +checkpoint_file = "file" + +# For cache file +use_cache_file = "builtin_system_use_cache_file" +max_cache_seconds = "builtin_system_max_cache_seconds" +# For kv store +collection_name = "builtin_system_kvstore_collection_name" + +settings = "__settings__" +configs = "__configs__" + +name = "name" +config = "config" +division = "division" +stanza_name = "stanza_name" +divide_key = "_divide_key" +divide_endpoint = "_divide_endpoint" +mod_input_name = "mod_input_name" +global_settings = "global_settings" +all_configs = "all_configs" diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/data_collection/ta_data_client.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/data_collection/ta_data_client.py new file mode 100755 index 0000000..9b3f4f3 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/data_collection/ta_data_client.py @@ -0,0 +1,100 @@ +#!/usr/bin/python +# +# Copyright 2025 Splunk Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +from . import ta_checkpoint_manager as cp +from . import ta_data_collector as tdc + + +def build_event( + host=None, + source=None, + sourcetype=None, + time=None, + index=None, + raw_data="", + is_unbroken=False, + is_done=False, +): + if is_unbroken is False and is_done is True: + raise Exception("is_unbroken=False is_done=True is invalid") + return tdc.event_tuple._make( + [host, source, sourcetype, time, index, raw_data, is_unbroken, is_done] + ) + + +class TaDataClient: + def __init__( + self, meta_config, task_config, checkpoint_mgr=None, event_writer=None + ): + self._meta_config = meta_config + self._task_config = task_config + self._checkpoint_mgr = checkpoint_mgr + self._event_writer = event_writer + self._stop = False + + def is_stopped(self): + return self._stop + + def stop(self): + self._stop = True + + def get(self): + raise StopIteration + + +def create_data_collector( + dataloader, tconfig, meta_configs, task_config, data_client_cls, checkpoint_cls=None +): + checkpoint_manager_cls = checkpoint_cls or cp.TACheckPointMgr + return tdc.TADataCollector( + tconfig, + meta_configs, + task_config, + checkpoint_manager_cls, + data_client_cls, + dataloader, + ) + + +def client_adatper(job_func): + class TaDataClientAdapter(TaDataClient): + def __init__(self, all_conf_contents, meta_config, task_config, chp_mgr): + super().__init__(meta_config, task_config, chp_mgr) + self._execute_times = 0 + self._gen = job_func(self._task_config, chp_mgr) + + def stop(self): + """ + overwrite to handle stop control command + """ + + # normaly base class just set self._stop as True + super().stop() + + def get(self): + """ + overwrite to get events + """ + self._execute_times += 1 + if self.is_stopped(): + # send stop signal + self._gen.send(self.is_stopped()) + raise StopIteration + if self._execute_times == 1: + return next(self._gen) + return self._gen.send(self.is_stopped()) + + return TaDataClientAdapter diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/data_collection/ta_data_collector.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/data_collection/ta_data_collector.py new file mode 100755 index 0000000..29cbcbb --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/data_collection/ta_data_collector.py @@ -0,0 +1,191 @@ +#!/usr/bin/python +# +# Copyright 2025 Splunk Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +import threading +import time +from collections import namedtuple + +from splunktalib.common import util as scu + +from ..common import log as stulog +from . import ta_consts as c + +evt_fmt = ( + "{0}" + "" + "" + "" + "{4}" + "" +) + +unbroken_evt_fmt = ( + "" + '' + "{0}" + "" + "" + "" + "{4}" + "" + "{6}" + "" + "" +) + +event_tuple = namedtuple( + "Event", + [ + "host", + "source", + "sourcetype", + "time", + "index", + "raw_data", + "is_unbroken", + "is_done", + ], +) + + +class TADataCollector: + def __init__( + self, + tconfig, + meta_config, + task_config, + checkpoint_manager_cls, + data_client_cls, + data_loader, + ): + self._lock = threading.Lock() + self._ta_config = tconfig + self._meta_config = meta_config + self._task_config = task_config + self._stopped = False + self._p = self._get_logger_prefix() + self._checkpoint_manager = checkpoint_manager_cls(meta_config, task_config) + self.data_client_cls = data_client_cls + self._data_loader = data_loader + self._client = None + + def get_meta_configs(self): + return self._meta_config + + def get_task_config(self): + return self._task_config + + def get_interval(self): + return self._task_config[c.interval] + + def _get_logger_prefix(self): + pairs = [f'{c.stanza_name}="{self._task_config[c.stanza_name]}"'] + return "[{}]".format(" ".join(pairs)) + + def stop(self): + self._stopped = True + if self._client: + self._client.stop() + + def __call__(self): + self.index_data() + + def _build_event(self, events): + if not events: + return None + if not isinstance(events, list): + events = [events] + evts = [] + for event in events: + assert event.raw_data, "the raw data of events is empty" + if event.is_unbroken: + evt = unbroken_evt_fmt.format( + event.host or "", + event.source or "", + event.sourcetype or "", + event.time or "", + event.index or "", + scu.escape_cdata(event.raw_data), + "" if event.is_done else "", + ) + else: + evt = evt_fmt.format( + event.host or "", + event.source or "", + event.sourcetype or "", + event.time or "", + event.index or "", + scu.escape_cdata(event.raw_data), + ) + evts.append(evt) + return evts + + def _create_data_client(self): + return self.data_client_cls( + self._meta_config, + self._task_config, + self._checkpoint_manager, + self._data_loader.get_event_writer(), + ) + + def index_data(self): + if self._lock.locked(): + stulog.logger.debug( + "Last round of stanza={} is not done yet".format( + self._task_config[c.stanza_name] + ) + ) + return + with self._lock: + try: + self._do_safe_index() + self._checkpoint_manager.close() + except Exception: + stulog.logger.exception(f"{self._p} Failed to index data") + stulog.logger.info(f"{self._p} End of indexing data") + if not self._ta_config.is_single_instance(): + self._data_loader.tear_down() + + def _write_events(self, events): + evts = self._build_event(events) + if evts: + if not self._data_loader.write_events(evts): + stulog.logger.info( + "{} the event queue is closed and the " + "received data will be discarded".format(self._p) + ) + return False + return True + + def _do_safe_index(self): + self._client = self._create_data_client() + while not self._stopped: + try: + events = self._client.get() + if not events: + continue + else: + if not self._write_events(events): + break + except StopIteration: + stulog.logger.info(f"{self._p} Finished this round") + return + except Exception: + stulog.logger.exception(f"{self._p} Failed to get msg") + break + # in case encounter exception or fail to write events + if not self._stopped: + self.stop() diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/data_collection/ta_data_loader.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/data_collection/ta_data_loader.py new file mode 100755 index 0000000..1917f79 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/data_collection/ta_data_loader.py @@ -0,0 +1,180 @@ +# +# Copyright 2025 Splunk Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +""" +Data Loader main entry point +""" +import configparser +import os.path as op +import queue + +from solnlib import log +from solnlib import timer_queue as tq +from splunktalib.concurrent import concurrent_executor as ce +from splunktalib.schedule import job as sjob + +# Global logger +logger = log.Logs().get_logger("util") + + +class TADataLoader: + """ + Data Loader boots all underlying facilities to handle data collection + """ + + def __init__(self, job_scheduler, event_writer): + """ + @configs: a list like object containing a list of dict + like object. Each element shall implement dict.get/[] like interfaces + to get the value for a key. + @job_scheduler: schedulering the jobs. shall implement get_ready_jobs + @event_writer: write_events + """ + + self._settings = self._read_default_settings() + self._settings["daemonize_thread"] = False + self._event_writer = event_writer + self._wakeup_queue = queue.Queue() + self._scheduler = job_scheduler + self._timer_queue = tq.TimerQueue() + self._executor = ce.ConcurrentExecutor(self._settings) + self._started = False + + def run(self, jobs): + if self._started: + return + self._started = True + + self._event_writer.start() + self._executor.start() + self._timer_queue.start() + self._scheduler.start() + logger.info("TADataLoader started.") + + def _enqueue_io_job(job): + job_props = job.get_props() + real_job = job_props["real_job"] + self.run_io_jobs((real_job,)) + + for job in jobs: + j = sjob.Job(_enqueue_io_job, {"real_job": job}, job.get_interval()) + self._scheduler.add_jobs((j,)) + + self._wait_for_tear_down() + + for job in jobs: + job.stop() + + self._scheduler.tear_down() + self._timer_queue.stop() + self._executor.tear_down() + self._event_writer.tear_down() + logger.info("DataLoader stopped.") + + def _wait_for_tear_down(self): + wakeup_q = self._wakeup_queue + while 1: + try: + go_exit = wakeup_q.get(timeout=1) + except queue.Empty: + pass + else: + if go_exit: + logger.info("DataLoader got stop signal") + self._stopped = True + break + + def tear_down(self): + self._wakeup_queue.put(True) + logger.info("DataLoader is going to stop.") + + def stopped(self): + return self._stopped + + def run_io_jobs(self, jobs, block=True): + self._executor.enqueue_io_funcs(jobs, block) + + def run_compute_job(self, func, args=(), kwargs={}): + self._executor.run_compute_func_sync(func, args, kwargs) + + def run_compute_job_async(self, func, args=(), kwargs={}, callback=None): + """ + @return: AsyncResult + """ + + return self._executor.run_compute_func_async(func, args, kwargs, callback) + + def add_timer(self, callback, when, interval): + return self._timer_queue.add_timer(callback, when, interval) + + def remove_timer(self, timer): + self._timer_queue.remove_timer(timer) + + def write_events(self, events): + return self._event_writer.write_events(events) + + def get_event_writer(self): + return self._event_writer + + @staticmethod + def _read_default_settings(): + cur_dir = op.dirname(op.abspath(__file__)) + setting_file = op.join(cur_dir, "../../../", "splunktalib", "setting.conf") + parser = configparser.ConfigParser() + parser.read(setting_file) + settings = {} + keys = ("process_size", "thread_min_size", "thread_max_size", "task_queue_size") + for option in keys: + try: + settings[option] = parser.get("global", option) + except configparser.NoOptionError: + settings[option] = -1 + + try: + settings[option] = int(settings[option]) + except ValueError: + settings[option] = -1 + logger.debug("settings: %s", settings) + return settings + + +class GlobalDataLoader: + """Singleton, inited when started""" + + __instance = None + + @staticmethod + def get_data_loader(scheduler, writer): + if GlobalDataLoader.__instance is None: + GlobalDataLoader.__instance = TADataLoader(scheduler, writer) + return GlobalDataLoader.__instance + + @staticmethod + def reset(): + GlobalDataLoader.__instance = None + + +def create_data_loader(): + """ + create a data loader with default event_writer, job_scheudler + """ + + from splunktalib import event_writer as ew + from splunktalib.schedule import scheduler as sched + + writer = ew.EventWriter() + scheduler = sched.Scheduler() + loader = GlobalDataLoader.get_data_loader(scheduler, writer) + return loader diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/data_collection/ta_helper.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/data_collection/ta_helper.py new file mode 100755 index 0000000..6aa188e --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/data_collection/ta_helper.py @@ -0,0 +1,176 @@ +# +# Copyright 2025 Splunk Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +import hashlib +import json +import os.path as op +import re +from calendar import timegm +from datetime import datetime +from functools import lru_cache + +from splunktalib.common import util +from splunktaucclib.global_config import GlobalConfig, GlobalConfigSchema + +from ...splunktacollectorlib import config as sc +from . import ta_consts as c + + +def utc2timestamp(human_time): + regex1 = r"\d{4}-\d{2}-\d{2}.\d{2}:\d{2}:\d{2}" + match = re.search(regex1, human_time) + if match: + formated = match.group() + else: + return None + + strped_time = datetime.strptime(formated, c.time_fmt) + timestamp = timegm(strped_time.utctimetuple()) + + regex2 = r"\d{4}-\d{2}-\d{2}.\d{2}:\d{2}:\d{2}(\.\d+)" + match = re.search(regex2, human_time) + if match: + timestamp += float(match.group(1)) + else: + timestamp += float("0.000000") + return timestamp + + +def get_md5(data): + """ + function name is not change, actually use sha1 instead + :param data: + :return: + """ + assert data is not None, "The input cannot be None" + if isinstance(data, str): + return hashlib.sha256(data.encode("utf-8")).hexdigest() + elif isinstance(data, (list, tuple, dict)): + return hashlib.sha256(json.dumps(data).encode("utf-8")).hexdigest() + + +def get_all_conf_contents(server_uri, sessionkey, settings, input_type=None): + schema = GlobalConfigSchema(settings) + global_config = GlobalConfig(server_uri, sessionkey, schema) + inputs = global_config.inputs.load(input_type=input_type) + configs = global_config.configs.load() + settings = global_config.settings.load() + return inputs, configs, settings + + +@lru_cache(maxsize=64) +def format_name_for_file(name): + return hashlib.sha256(name.encode("utf-8")).hexdigest() + + +class ConfigSchemaHandler: + _app_name = util.get_appname_from_path(op.abspath(__file__)) + # Division schema keys. + TYPE = "type" + + TYPE_SINGLE = "single" + TYPE_MULTI = "multi" + REFER = "refer" + SEPARATOR = "separator" + + def __init__(self, meta_configs, client_schema): + self._config = sc.Config( + splunkd_uri=meta_configs[c.server_uri], + session_key=meta_configs[c.session_key], + schema=json.dumps(client_schema[c.config]), + user="nobody", + app=ConfigSchemaHandler._app_name, + ) + self._client_schema = client_schema + self._all_conf_contents = {} + self._load_conf_contents() + self._division_settings = self._divide_settings() + + def get_endpoints(self): + return self._config.get_endpoints() + + def get_all_conf_contents(self): + return self._all_conf_contents + + def get_single_conf_contents(self, endpoint): + return self._all_conf_contents.get(endpoint) + + def get_division_settings(self): + return self._division_settings + + def _divide_settings(self): + division_schema = self._client_schema[c.division] + division_settings = dict() + for division_endpoint, division_contents in division_schema.items(): + division_settings[division_endpoint] = self._process_division( + division_endpoint, division_contents + ) + return division_settings + + def _load_conf_contents(self): + self._all_conf_contents = self._config.load() + + def _process_division(self, division_endpoint, division_contents): + division_metrics = [] + assert isinstance(division_contents, dict) + for division_key, division_value in division_contents.items(): + try: + assert ( + self.TYPE in division_value + and division_value[self.TYPE] in [self.TYPE_SINGLE, self.TYPE_MULTI] + and self.SEPARATOR in division_value + if division_value[self.TYPE] == self.TYPE_MULTI + else True + ) + except Exception: + raise Exception("Invalid division schema") + division_metrics.append( + DivisionRule( + division_endpoint, + division_key, + division_value[self.TYPE], + division_value.get( + self.SEPARATOR, + ), + division_value.get( + self.REFER, + ), + ) + ) + return division_metrics + + +class DivisionRule: + def __init__(self, endpoint, metric, type, separator, refer): + self._endpoint = endpoint + self._metric = metric + self._type = type + self._separator = separator + self._refer = refer + + def endpoint(self): + return self._endpoint + + def metric(self): + return self._metric + + def type(self): + return self._type + + def separator(self): + return self._separator + + def refer(self): + return self._refer diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/data_collection/ta_mod_input.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/data_collection/ta_mod_input.py new file mode 100755 index 0000000..3afb7bd --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/data_collection/ta_mod_input.py @@ -0,0 +1,310 @@ +#!/usr/bin/python +# +# Copyright 2025 Splunk Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +""" +This is the main entry point for My TA +""" +import os.path as op +import platform +import sys +import time + +from solnlib import file_monitor as fm +from solnlib import orphan_process_monitor as opm +from solnlib import utils +from splunktalib import modinput +from splunktalib.common import util as sc_util + +from ...common.lib_util import get_app_root_dir, get_mod_input_script_name +from ..common import load_schema_file as ld +from ..common import log as stulog +from . import ta_checkpoint_manager as cpmgr +from . import ta_config as tc +from . import ta_data_client as tdc +from . import ta_data_loader as dl + +utils.remove_http_proxy_env_vars() + +__CHECKPOINT_DIR_MAX_LEN__ = 180 + + +def do_scheme( + mod_input_name, + schema_para_list=None, + single_instance=True, +): + """ + Feed splunkd the TA's scheme + + """ + builtin_names = { + "name", + "index", + "sourcetype", + "host", + "source", + "disabled", + "interval", + } + + param_string_list = [] + if schema_para_list is None: + schema_para_list = () + + for param in schema_para_list: + if param in builtin_names: + continue + + param_string_list.append( + """ + + {param} + 0 + 0 + + """.format( + param=param + ) + ) + + description = ( + "Go to the add-on's configuration UI and configure" + " modular inputs under the Inputs menu." + ) + + print( + """ + + {data_input_title} + {description} + true + xml + {single_instance} + + + + {data_input_title} Data Input Name + + {param_str} + + + + """.format( + single_instance=(str(single_instance)).lower(), + data_input_title=mod_input_name, + param_str="".join(param_string_list), + description=description, + ) + ) + + +def _setup_signal_handler(data_loader, ta_short_name): + """ + Setup signal handlers + :data_loader: data_loader.DataLoader instance + """ + + def _handle_exit(signum, frame): + stulog.logger.info(f"{ta_short_name} receives exit signal") + if data_loader is not None: + data_loader.tear_down() + + utils.handle_teardown_signals(_handle_exit) + + +def _handle_file_changes(data_loader): + """ + :reload conf files and exit + """ + + def _handle_refresh(changed_files): + stulog.logger.info(f"Detect {changed_files} changed, reboot itself") + data_loader.tear_down() + + return _handle_refresh + + +def _get_conf_files(settings): + rest_root = settings.get("meta").get("restRoot") + file_list = [rest_root + "_settings.conf"] + if settings.get("pages") and settings.get("pages").get("configuration"): + configs = settings.get("pages").get("configuration") + tabs = configs.get("tabs") if configs.get("tabs") else [] + for tab in tabs: + if tab.get("table"): + file_list.append(rest_root + "_" + tab.get("name") + ".conf") + ta_dir = get_app_root_dir() + return [op.join(ta_dir, "local", f) for f in file_list] + + +def run( + collector_cls, + settings, + checkpoint_cls=None, + config_cls=None, + log_suffix=None, + single_instance=True, + cc_json_file=None, +): + """ + Main loop. Run this TA forever + """ + ta_short_name = settings["meta"]["name"].lower() + + # This is for stdout flush + sc_util.disable_stdout_buffer() + + # http://bugs.python.org/issue7980 + time.strptime("2016-01-01", "%Y-%m-%d") + + loader = dl.create_data_loader() + + # handle signal + _setup_signal_handler(loader, ta_short_name) + + # monitor files to reboot + try: + monitor = fm.FileMonitor( + _handle_file_changes(loader), _get_conf_files(settings) + ) + loader.add_timer(monitor.check_changes, time.time(), 10) + except Exception: + stulog.logger.exception("Fail to add files for monitoring") + + # add orphan process handling, which will check each 1 second + orphan_checker = opm.OrphanProcessChecker(loader.tear_down) + loader.add_timer(orphan_checker.check_orphan, time.time(), 1) + + tconfig = tc.create_ta_config( + settings, config_cls or tc.TaConfig, log_suffix, single_instance=single_instance + ) + task_configs = tconfig.get_task_configs() + + if not task_configs: + stulog.logger.debug("No task and exiting...") + return + meta_config = tconfig.get_meta_config() + meta_config["cc_json_file"] = cc_json_file + + if tconfig.is_shc_member(): + # Don't support SHC env + stulog.logger.error( + "This host is in search head cluster environment , " "will exit." + ) + return + + # In this case, use file for checkpoint + if _is_checkpoint_dir_length_exceed_limit(tconfig, meta_config["checkpoint_dir"]): + stulog.logger.error( + "The length of the checkpoint directory path: '{}' " + "is too long. The max length we support is {}", + meta_config["checkpoint_dir"], + __CHECKPOINT_DIR_MAX_LEN__, + ) + return + + jobs = [ + tdc.create_data_collector( + loader, + tconfig, + meta_config, + task_config, + collector_cls, + checkpoint_cls=checkpoint_cls or cpmgr.TACheckPointMgr, + ) + for task_config in task_configs + ] + + loader.run(jobs) + + +def _is_checkpoint_dir_length_exceed_limit(config, checkpoint_dir): + return ( + platform.system() == "Windows" + and not config.is_search_head() + and len(checkpoint_dir) >= __CHECKPOINT_DIR_MAX_LEN__ + ) + + +def validate_config(): + """ + Validate inputs.conf + """ + + _, configs = modinput.get_modinput_configs_from_stdin() + return 0 + + +def usage(): + """ + Print usage of this binary + """ + + hlp = "%s --scheme|--validate-arguments|-h" + print(hlp % sys.argv[0], file=sys.stderr) + sys.exit(1) + + +def main( + collector_cls, + schema_file_path, + log_suffix="modinput", + checkpoint_cls=None, + config_cls=None, + cc_json_file=None, + schema_para_list=None, + single_instance=True, +): + """ + Main entry point + """ + assert collector_cls, "ucc modinput collector is None." + assert schema_file_path, "ucc modinput schema file is None" + + settings = ld(schema_file_path) + + mod_input_name = get_mod_input_script_name() + + args = sys.argv + if len(args) > 1: + if args[1] == "--scheme": + do_scheme( + mod_input_name=mod_input_name, + schema_para_list=schema_para_list, + single_instance=single_instance, + ) + elif args[1] == "--validate-arguments": + sys.exit(validate_config()) + elif args[1] in ("-h", "--h", "--help"): + usage() + else: + usage() + else: + try: + run( + collector_cls, + settings, + checkpoint_cls=checkpoint_cls, + config_cls=config_cls, + log_suffix=log_suffix, + single_instance=single_instance, + cc_json_file=cc_json_file, + ) + except Exception: + stulog.logger.exception(f"{mod_input_name} task encounter exception") + stulog.logger.info(f"End {mod_input_name} task") + sys.exit(0) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/splunk_ta_import_declare.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/splunk_ta_import_declare.py new file mode 100755 index 0000000..fc05ad7 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/splunk_ta_import_declare.py @@ -0,0 +1,30 @@ +# +# Copyright 2025 Splunk Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +""" +This module is used to filter and reload PATH. +""" + +import os +import re +import sys + +ta_name = os.path.basename(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) +ta_lib_name = re.sub(r"[^\w]+", "_", ta_name.lower()) +assert ta_name or ta_name == "package", "TA name is None or package" +pattern = re.compile(r"[\\/]etc[\\/]apps[\\/][^\\/]+[\\/]bin[\\/]?$") +new_paths = [path for path in sys.path if not pattern.search(path) or ta_name in path] +new_paths.insert(0, os.path.sep.join([os.path.dirname(__file__), ta_lib_name])) +sys.path = new_paths diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/ta_cloud_connect_client.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/ta_cloud_connect_client.py new file mode 100755 index 0000000..ec74839 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/cloudconnectlib/splunktacollectorlib/ta_cloud_connect_client.py @@ -0,0 +1,48 @@ +# +# Copyright 2025 Splunk Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +from ..common.log import set_cc_logger +from ..splunktacollectorlib.common import log as stulog +from ..splunktacollectorlib.data_collection import ta_consts as c +from .data_collection.ta_data_client import TaDataClient + + +class TACloudConnectClient(TaDataClient): + def __init__( + self, meta_config, task_config, checkpoint_mgr=None, event_writer=None + ): + super().__init__(meta_config, task_config, checkpoint_mgr, event_writer) + self._set_log() + self._cc_config_file = self._meta_config["cc_json_file"] + from ..client import CloudConnectClient as Client + from ..core.pipemgr import PipeManager + + self._pipe_mgr = PipeManager(event_writer=event_writer) + self._client = Client(self._task_config, self._cc_config_file, checkpoint_mgr) + + def _set_log(self): + pairs = [f'{c.stanza_name}="{self._task_config[c.stanza_name]}"'] + set_cc_logger(stulog.logger, logger_prefix="[{}]".format(" ".join(pairs))) + + def is_stopped(self): + return self._stop + + def stop(self): + self._stop = True + self._client.stop() + + def get(self): + self._client.start() + raise StopIteration diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/decorator-5.1.1.dist-info/INSTALLER b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/decorator-5.1.1.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/decorator-5.1.1.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/decorator-5.1.1.dist-info/LICENSE.txt b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/decorator-5.1.1.dist-info/LICENSE.txt new file mode 100644 index 0000000..b0ade04 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/decorator-5.1.1.dist-info/LICENSE.txt @@ -0,0 +1,26 @@ +Copyright (c) 2005-2018, Michele Simionato +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + Redistributions in bytecode form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR +TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE +USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/decorator-5.1.1.dist-info/METADATA b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/decorator-5.1.1.dist-info/METADATA new file mode 100644 index 0000000..df407f8 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/decorator-5.1.1.dist-info/METADATA @@ -0,0 +1,127 @@ +Metadata-Version: 2.1 +Name: decorator +Version: 5.1.1 +Summary: Decorators for Humans +Home-page: https://github.com/micheles/decorator +Author: Michele Simionato +Author-email: michele.simionato@gmail.com +License: new BSD License +Keywords: decorators generic utility +Platform: All +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: BSD License +Classifier: Natural Language :: English +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Topic :: Software Development :: Libraries +Classifier: Topic :: Utilities +Requires-Python: >=3.5 + +Decorators for Humans +===================== + +The goal of the decorator module is to make it easy to define +signature-preserving function decorators and decorator factories. +It also includes an implementation of multiple dispatch and other niceties +(please check the docs). It is released under a two-clauses +BSD license, i.e. basically you can do whatever you want with it but I am not +responsible. + +Installation +------------- + +If you are lazy, just perform + + ``$ pip install decorator`` + +which will install just the module on your system. + +If you prefer to install the full distribution from source, including +the documentation, clone the `GitHub repo`_ or download the tarball_, unpack it and run + + ``$ pip install .`` + +in the main directory, possibly as superuser. + +.. _tarball: https://pypi.org/project/decorator/#files +.. _GitHub repo: https://github.com/micheles/decorator + +Testing +-------- + +If you have the source code installation you can run the tests with + + `$ python src/tests/test.py -v` + +or (if you have setuptools installed) + + `$ python setup.py test` + +Notice that you may run into trouble if in your system there +is an older version of the decorator module; in such a case remove the +old version. It is safe even to copy the module `decorator.py` over +an existing one, since we kept backward-compatibility for a long time. + +Repository +--------------- + +The project is hosted on GitHub. You can look at the source here: + + https://github.com/micheles/decorator + +Documentation +--------------- + +The documentation has been moved to https://github.com/micheles/decorator/blob/master/docs/documentation.md + +From there you can get a PDF version by simply using the print +functionality of your browser. + +Here is the documentation for previous versions of the module: + +https://github.com/micheles/decorator/blob/4.3.2/docs/tests.documentation.rst +https://github.com/micheles/decorator/blob/4.2.1/docs/tests.documentation.rst +https://github.com/micheles/decorator/blob/4.1.2/docs/tests.documentation.rst +https://github.com/micheles/decorator/blob/4.0.0/documentation.rst +https://github.com/micheles/decorator/blob/3.4.2/documentation.rst + +For the impatient +----------------- + +Here is an example of how to define a family of decorators tracing slow +operations: + +.. code-block:: python + + from decorator import decorator + + @decorator + def warn_slow(func, timelimit=60, *args, **kw): + t0 = time.time() + result = func(*args, **kw) + dt = time.time() - t0 + if dt > timelimit: + logging.warn('%s took %d seconds', func.__name__, dt) + else: + logging.info('%s took %d seconds', func.__name__, dt) + return result + + @warn_slow # warn if it takes more than 1 minute + def preprocess_input_files(inputdir, tempdir): + ... + + @warn_slow(timelimit=600) # warn if it takes more than 10 minutes + def run_calculation(tempdir, outdir): + ... + +Enjoy! + + diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/decorator-5.1.1.dist-info/RECORD b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/decorator-5.1.1.dist-info/RECORD new file mode 100644 index 0000000..2115358 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/decorator-5.1.1.dist-info/RECORD @@ -0,0 +1,8 @@ +decorator-5.1.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +decorator-5.1.1.dist-info/LICENSE.txt,sha256=_RFmDKvwUyCCxFcGhi-vwpSQfsf44heBgkCkmZgGeC4,1309 +decorator-5.1.1.dist-info/METADATA,sha256=XAr2zbYpRxCkcPbsmg1oaiS5ea7mhTq-j-wb0XjuVho,3955 +decorator-5.1.1.dist-info/RECORD,, +decorator-5.1.1.dist-info/WHEEL,sha256=ewwEueio1C2XeHTvT17n8dZUJgOvyCWCt0WVNLClP9o,92 +decorator-5.1.1.dist-info/pbr.json,sha256=AL84oUUWQHwkd8OCPhLRo2NJjU5MDdmXMqRHv-posqs,47 +decorator-5.1.1.dist-info/top_level.txt,sha256=Kn6eQjo83ctWxXVyBMOYt0_YpjRjBznKYVuNyuC_DSI,10 +decorator.py,sha256=el5cAEgoTEpRQN65tOxGhElue-CccMv0xol-J2MwOc0,16752 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/decorator-5.1.1.dist-info/WHEEL b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/decorator-5.1.1.dist-info/WHEEL new file mode 100644 index 0000000..5bad85f --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/decorator-5.1.1.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.37.0) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/decorator-5.1.1.dist-info/pbr.json b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/decorator-5.1.1.dist-info/pbr.json new file mode 100644 index 0000000..cd04599 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/decorator-5.1.1.dist-info/pbr.json @@ -0,0 +1 @@ +{"is_release": false, "git_version": "8608a46"} \ No newline at end of file diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/decorator-5.1.1.dist-info/top_level.txt b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/decorator-5.1.1.dist-info/top_level.txt new file mode 100644 index 0000000..3fe18a4 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/decorator-5.1.1.dist-info/top_level.txt @@ -0,0 +1 @@ +decorator diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/decorator.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/decorator.py new file mode 100644 index 0000000..2479b6f --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/decorator.py @@ -0,0 +1,451 @@ +# ######################### LICENSE ############################ # + +# Copyright (c) 2005-2021, Michele Simionato +# All rights reserved. + +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: + +# Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# Redistributions in bytecode form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. + +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR +# TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE +# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +# DAMAGE. + +""" +Decorator module, see +https://github.com/micheles/decorator/blob/master/docs/documentation.md +for the documentation. +""" +import re +import sys +import inspect +import operator +import itertools +from contextlib import _GeneratorContextManager +from inspect import getfullargspec, iscoroutinefunction, isgeneratorfunction + +__version__ = '5.1.1' + +DEF = re.compile(r'\s*def\s*([_\w][_\w\d]*)\s*\(') +POS = inspect.Parameter.POSITIONAL_OR_KEYWORD +EMPTY = inspect.Parameter.empty + + +# this is not used anymore in the core, but kept for backward compatibility +class FunctionMaker(object): + """ + An object with the ability to create functions with a given signature. + It has attributes name, doc, module, signature, defaults, dict and + methods update and make. + """ + + # Atomic get-and-increment provided by the GIL + _compile_count = itertools.count() + + # make pylint happy + args = varargs = varkw = defaults = kwonlyargs = kwonlydefaults = () + + def __init__(self, func=None, name=None, signature=None, + defaults=None, doc=None, module=None, funcdict=None): + self.shortsignature = signature + if func: + # func can be a class or a callable, but not an instance method + self.name = func.__name__ + if self.name == '': # small hack for lambda functions + self.name = '_lambda_' + self.doc = func.__doc__ + self.module = func.__module__ + if inspect.isroutine(func): + argspec = getfullargspec(func) + self.annotations = getattr(func, '__annotations__', {}) + for a in ('args', 'varargs', 'varkw', 'defaults', 'kwonlyargs', + 'kwonlydefaults'): + setattr(self, a, getattr(argspec, a)) + for i, arg in enumerate(self.args): + setattr(self, 'arg%d' % i, arg) + allargs = list(self.args) + allshortargs = list(self.args) + if self.varargs: + allargs.append('*' + self.varargs) + allshortargs.append('*' + self.varargs) + elif self.kwonlyargs: + allargs.append('*') # single star syntax + for a in self.kwonlyargs: + allargs.append('%s=None' % a) + allshortargs.append('%s=%s' % (a, a)) + if self.varkw: + allargs.append('**' + self.varkw) + allshortargs.append('**' + self.varkw) + self.signature = ', '.join(allargs) + self.shortsignature = ', '.join(allshortargs) + self.dict = func.__dict__.copy() + # func=None happens when decorating a caller + if name: + self.name = name + if signature is not None: + self.signature = signature + if defaults: + self.defaults = defaults + if doc: + self.doc = doc + if module: + self.module = module + if funcdict: + self.dict = funcdict + # check existence required attributes + assert hasattr(self, 'name') + if not hasattr(self, 'signature'): + raise TypeError('You are decorating a non function: %s' % func) + + def update(self, func, **kw): + """ + Update the signature of func with the data in self + """ + func.__name__ = self.name + func.__doc__ = getattr(self, 'doc', None) + func.__dict__ = getattr(self, 'dict', {}) + func.__defaults__ = self.defaults + func.__kwdefaults__ = self.kwonlydefaults or None + func.__annotations__ = getattr(self, 'annotations', None) + try: + frame = sys._getframe(3) + except AttributeError: # for IronPython and similar implementations + callermodule = '?' + else: + callermodule = frame.f_globals.get('__name__', '?') + func.__module__ = getattr(self, 'module', callermodule) + func.__dict__.update(kw) + + def make(self, src_templ, evaldict=None, addsource=False, **attrs): + """ + Make a new function from a given template and update the signature + """ + src = src_templ % vars(self) # expand name and signature + evaldict = evaldict or {} + mo = DEF.search(src) + if mo is None: + raise SyntaxError('not a valid function template\n%s' % src) + name = mo.group(1) # extract the function name + names = set([name] + [arg.strip(' *') for arg in + self.shortsignature.split(',')]) + for n in names: + if n in ('_func_', '_call_'): + raise NameError('%s is overridden in\n%s' % (n, src)) + + if not src.endswith('\n'): # add a newline for old Pythons + src += '\n' + + # Ensure each generated function has a unique filename for profilers + # (such as cProfile) that depend on the tuple of (, + # , ) being unique. + filename = '' % next(self._compile_count) + try: + code = compile(src, filename, 'single') + exec(code, evaldict) + except Exception: + print('Error in generated code:', file=sys.stderr) + print(src, file=sys.stderr) + raise + func = evaldict[name] + if addsource: + attrs['__source__'] = src + self.update(func, **attrs) + return func + + @classmethod + def create(cls, obj, body, evaldict, defaults=None, + doc=None, module=None, addsource=True, **attrs): + """ + Create a function from the strings name, signature and body. + evaldict is the evaluation dictionary. If addsource is true an + attribute __source__ is added to the result. The attributes attrs + are added, if any. + """ + if isinstance(obj, str): # "name(signature)" + name, rest = obj.strip().split('(', 1) + signature = rest[:-1] # strip a right parens + func = None + else: # a function + name = None + signature = None + func = obj + self = cls(func, name, signature, defaults, doc, module) + ibody = '\n'.join(' ' + line for line in body.splitlines()) + caller = evaldict.get('_call_') # when called from `decorate` + if caller and iscoroutinefunction(caller): + body = ('async def %(name)s(%(signature)s):\n' + ibody).replace( + 'return', 'return await') + else: + body = 'def %(name)s(%(signature)s):\n' + ibody + return self.make(body, evaldict, addsource, **attrs) + + +def fix(args, kwargs, sig): + """ + Fix args and kwargs to be consistent with the signature + """ + ba = sig.bind(*args, **kwargs) + ba.apply_defaults() # needed for test_dan_schult + return ba.args, ba.kwargs + + +def decorate(func, caller, extras=(), kwsyntax=False): + """ + Decorates a function/generator/coroutine using a caller. + If kwsyntax is True calling the decorated functions with keyword + syntax will pass the named arguments inside the ``kw`` dictionary, + even if such argument are positional, similarly to what functools.wraps + does. By default kwsyntax is False and the the arguments are untouched. + """ + sig = inspect.signature(func) + if iscoroutinefunction(caller): + async def fun(*args, **kw): + if not kwsyntax: + args, kw = fix(args, kw, sig) + return await caller(func, *(extras + args), **kw) + elif isgeneratorfunction(caller): + def fun(*args, **kw): + if not kwsyntax: + args, kw = fix(args, kw, sig) + for res in caller(func, *(extras + args), **kw): + yield res + else: + def fun(*args, **kw): + if not kwsyntax: + args, kw = fix(args, kw, sig) + return caller(func, *(extras + args), **kw) + fun.__name__ = func.__name__ + fun.__doc__ = func.__doc__ + fun.__wrapped__ = func + fun.__signature__ = sig + fun.__qualname__ = func.__qualname__ + # builtin functions like defaultdict.__setitem__ lack many attributes + try: + fun.__defaults__ = func.__defaults__ + except AttributeError: + pass + try: + fun.__kwdefaults__ = func.__kwdefaults__ + except AttributeError: + pass + try: + fun.__annotations__ = func.__annotations__ + except AttributeError: + pass + try: + fun.__module__ = func.__module__ + except AttributeError: + pass + try: + fun.__dict__.update(func.__dict__) + except AttributeError: + pass + return fun + + +def decoratorx(caller): + """ + A version of "decorator" implemented via "exec" and not via the + Signature object. Use this if you are want to preserve the `.__code__` + object properties (https://github.com/micheles/decorator/issues/129). + """ + def dec(func): + return FunctionMaker.create( + func, + "return _call_(_func_, %(shortsignature)s)", + dict(_call_=caller, _func_=func), + __wrapped__=func, __qualname__=func.__qualname__) + return dec + + +def decorator(caller, _func=None, kwsyntax=False): + """ + decorator(caller) converts a caller function into a decorator + """ + if _func is not None: # return a decorated function + # this is obsolete behavior; you should use decorate instead + return decorate(_func, caller, (), kwsyntax) + # else return a decorator function + sig = inspect.signature(caller) + dec_params = [p for p in sig.parameters.values() if p.kind is POS] + + def dec(func=None, *args, **kw): + na = len(args) + 1 + extras = args + tuple(kw.get(p.name, p.default) + for p in dec_params[na:] + if p.default is not EMPTY) + if func is None: + return lambda func: decorate(func, caller, extras, kwsyntax) + else: + return decorate(func, caller, extras, kwsyntax) + dec.__signature__ = sig.replace(parameters=dec_params) + dec.__name__ = caller.__name__ + dec.__doc__ = caller.__doc__ + dec.__wrapped__ = caller + dec.__qualname__ = caller.__qualname__ + dec.__kwdefaults__ = getattr(caller, '__kwdefaults__', None) + dec.__dict__.update(caller.__dict__) + return dec + + +# ####################### contextmanager ####################### # + + +class ContextManager(_GeneratorContextManager): + def __init__(self, g, *a, **k): + _GeneratorContextManager.__init__(self, g, a, k) + + def __call__(self, func): + def caller(f, *a, **k): + with self.__class__(self.func, *self.args, **self.kwds): + return f(*a, **k) + return decorate(func, caller) + + +_contextmanager = decorator(ContextManager) + + +def contextmanager(func): + # Enable Pylint config: contextmanager-decorators=decorator.contextmanager + return _contextmanager(func) + + +# ############################ dispatch_on ############################ # + +def append(a, vancestors): + """ + Append ``a`` to the list of the virtual ancestors, unless it is already + included. + """ + add = True + for j, va in enumerate(vancestors): + if issubclass(va, a): + add = False + break + if issubclass(a, va): + vancestors[j] = a + add = False + if add: + vancestors.append(a) + + +# inspired from simplegeneric by P.J. Eby and functools.singledispatch +def dispatch_on(*dispatch_args): + """ + Factory of decorators turning a function into a generic function + dispatching on the given arguments. + """ + assert dispatch_args, 'No dispatch args passed' + dispatch_str = '(%s,)' % ', '.join(dispatch_args) + + def check(arguments, wrong=operator.ne, msg=''): + """Make sure one passes the expected number of arguments""" + if wrong(len(arguments), len(dispatch_args)): + raise TypeError('Expected %d arguments, got %d%s' % + (len(dispatch_args), len(arguments), msg)) + + def gen_func_dec(func): + """Decorator turning a function into a generic function""" + + # first check the dispatch arguments + argset = set(getfullargspec(func).args) + if not set(dispatch_args) <= argset: + raise NameError('Unknown dispatch arguments %s' % dispatch_str) + + typemap = {} + + def vancestors(*types): + """ + Get a list of sets of virtual ancestors for the given types + """ + check(types) + ras = [[] for _ in range(len(dispatch_args))] + for types_ in typemap: + for t, type_, ra in zip(types, types_, ras): + if issubclass(t, type_) and type_ not in t.mro(): + append(type_, ra) + return [set(ra) for ra in ras] + + def ancestors(*types): + """ + Get a list of virtual MROs, one for each type + """ + check(types) + lists = [] + for t, vas in zip(types, vancestors(*types)): + n_vas = len(vas) + if n_vas > 1: + raise RuntimeError( + 'Ambiguous dispatch for %s: %s' % (t, vas)) + elif n_vas == 1: + va, = vas + mro = type('t', (t, va), {}).mro()[1:] + else: + mro = t.mro() + lists.append(mro[:-1]) # discard t and object + return lists + + def register(*types): + """ + Decorator to register an implementation for the given types + """ + check(types) + + def dec(f): + check(getfullargspec(f).args, operator.lt, ' in ' + f.__name__) + typemap[types] = f + return f + return dec + + def dispatch_info(*types): + """ + An utility to introspect the dispatch algorithm + """ + check(types) + lst = [] + for anc in itertools.product(*ancestors(*types)): + lst.append(tuple(a.__name__ for a in anc)) + return lst + + def _dispatch(dispatch_args, *args, **kw): + types = tuple(type(arg) for arg in dispatch_args) + try: # fast path + f = typemap[types] + except KeyError: + pass + else: + return f(*args, **kw) + combinations = itertools.product(*ancestors(*types)) + next(combinations) # the first one has been already tried + for types_ in combinations: + f = typemap.get(types_) + if f is not None: + return f(*args, **kw) + + # else call the default implementation + return func(*args, **kw) + + return FunctionMaker.create( + func, 'return _f_(%s, %%(shortsignature)s)' % dispatch_str, + dict(_f_=_dispatch), register=register, default=func, + typemap=typemap, vancestors=vancestors, ancestors=ancestors, + dispatch_info=dispatch_info, __wrapped__=func) + + gen_func_dec.__name__ = 'dispatch_on' + dispatch_str + return gen_func_dec diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml-0.7.1.dist-info/INSTALLER b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml-0.7.1.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml-0.7.1.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml-0.7.1.dist-info/LICENSE b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml-0.7.1.dist-info/LICENSE new file mode 100644 index 0000000..311690c --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml-0.7.1.dist-info/LICENSE @@ -0,0 +1,49 @@ +PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2 +-------------------------------------------- + +1. This LICENSE AGREEMENT is between the Python Software Foundation +("PSF"), and the Individual or Organization ("Licensee") accessing and +otherwise using this software ("Python") in source or binary form and +its associated documentation. + +2. Subject to the terms and conditions of this License Agreement, PSF +hereby grants Licensee a nonexclusive, royalty-free, world-wide +license to reproduce, analyze, test, perform and/or display publicly, +prepare derivative works, distribute, and otherwise use Python +alone or in any derivative version, provided, however, that PSF's +License Agreement and PSF's notice of copyright, i.e., "Copyright (c) +2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Python Software Foundation; +All Rights Reserved" are retained in Python alone or in any derivative +version prepared by Licensee. + +3. In the event Licensee prepares a derivative work that is based on +or incorporates Python or any part thereof, and wants to make +the derivative work available to others as provided herein, then +Licensee hereby agrees to include in any such work a brief summary of +the changes made to Python. + +4. PSF is making Python available to Licensee on an "AS IS" +basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT +INFRINGE ANY THIRD PARTY RIGHTS. + +5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON +FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS +A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON, +OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + +6. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +7. Nothing in this License Agreement shall be deemed to create any +relationship of agency, partnership, or joint venture between PSF and +Licensee. This License Agreement does not grant permission to use PSF +trademarks or trade name in a trademark sense to endorse or promote +products or services of Licensee, or any third party. + +8. By copying, installing or otherwise using Python, Licensee +agrees to be bound by the terms and conditions of this License +Agreement. + diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml-0.7.1.dist-info/METADATA b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml-0.7.1.dist-info/METADATA new file mode 100644 index 0000000..f916e89 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml-0.7.1.dist-info/METADATA @@ -0,0 +1,978 @@ +Metadata-Version: 2.1 +Name: defusedxml +Version: 0.7.1 +Summary: XML bomb protection for Python stdlib modules +Home-page: https://github.com/tiran/defusedxml +Author: Christian Heimes +Author-email: christian@python.org +Maintainer: Christian Heimes +Maintainer-email: christian@python.org +License: PSFL +Download-URL: https://pypi.python.org/pypi/defusedxml +Keywords: xml bomb DoS +Platform: all +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: Python Software Foundation License +Classifier: Natural Language :: English +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Topic :: Text Processing :: Markup :: XML +Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.* + +=================================================== +defusedxml -- defusing XML bombs and other exploits +=================================================== + +.. image:: https://img.shields.io/pypi/v/defusedxml.svg + :target: https://pypi.org/project/defusedxml/ + :alt: Latest Version + +.. image:: https://img.shields.io/pypi/pyversions/defusedxml.svg + :target: https://pypi.org/project/defusedxml/ + :alt: Supported Python versions + +.. image:: https://travis-ci.org/tiran/defusedxml.svg?branch=master + :target: https://travis-ci.org/tiran/defusedxml + :alt: Travis CI + +.. image:: https://codecov.io/github/tiran/defusedxml/coverage.svg?branch=master + :target: https://codecov.io/github/tiran/defusedxml?branch=master + :alt: codecov + +.. image:: https://img.shields.io/pypi/dm/defusedxml.svg + :target: https://pypistats.org/packages/defusedxml + :alt: PyPI downloads + +.. image:: https://img.shields.io/badge/code%20style-black-000000.svg + :target: https://github.com/psf/black + :alt: Code style: black + +.. + + "It's just XML, what could probably go wrong?" + +Christian Heimes + +Synopsis +======== + +The results of an attack on a vulnerable XML library can be fairly dramatic. +With just a few hundred **Bytes** of XML data an attacker can occupy several +**Gigabytes** of memory within **seconds**. An attacker can also keep +CPUs busy for a long time with a small to medium size request. Under some +circumstances it is even possible to access local files on your +server, to circumvent a firewall, or to abuse services to rebound attacks to +third parties. + +The attacks use and abuse less common features of XML and its parsers. The +majority of developers are unacquainted with features such as processing +instructions and entity expansions that XML inherited from SGML. At best +they know about ```` from experience with HTML but they are not +aware that a document type definition (DTD) can generate an HTTP request +or load a file from the file system. + +None of the issues is new. They have been known for a long time. Billion +laughs was first reported in 2003. Nevertheless some XML libraries and +applications are still vulnerable and even heavy users of XML are +surprised by these features. It's hard to say whom to blame for the +situation. It's too short sighted to shift all blame on XML parsers and +XML libraries for using insecure default settings. After all they +properly implement XML specifications. Application developers must not rely +that a library is always configured for security and potential harmful data +by default. + + +.. contents:: Table of Contents + :depth: 2 + + +Attack vectors +============== + +billion laughs / exponential entity expansion +--------------------------------------------- + +The `Billion Laughs`_ attack -- also known as exponential entity expansion -- +uses multiple levels of nested entities. The original example uses 9 levels +of 10 expansions in each level to expand the string ``lol`` to a string of +3 * 10 :sup:`9` bytes, hence the name "billion laughs". The resulting string +occupies 3 GB (2.79 GiB) of memory; intermediate strings require additional +memory. Because most parsers don't cache the intermediate step for every +expansion it is repeated over and over again. It increases the CPU load even +more. + +An XML document of just a few hundred bytes can disrupt all services on a +machine within seconds. + +Example XML:: + + + + + + ]> + &d; + + +quadratic blowup entity expansion +--------------------------------- + +A quadratic blowup attack is similar to a `Billion Laughs`_ attack; it abuses +entity expansion, too. Instead of nested entities it repeats one large entity +with a couple of thousand chars over and over again. The attack isn't as +efficient as the exponential case but it avoids triggering countermeasures of +parsers against heavily nested entities. Some parsers limit the depth and +breadth of a single entity but not the total amount of expanded text +throughout an entire XML document. + +A medium-sized XML document with a couple of hundred kilobytes can require a +couple of hundred MB to several GB of memory. When the attack is combined +with some level of nested expansion an attacker is able to achieve a higher +ratio of success. + +:: + + + ]> + &a;&a;&a;... repeat + + +external entity expansion (remote) +---------------------------------- + +Entity declarations can contain more than just text for replacement. They can +also point to external resources by public identifiers or system identifiers. +System identifiers are standard URIs. When the URI is a URL (e.g. a +``http://`` locator) some parsers download the resource from the remote +location and embed them into the XML document verbatim. + +Simple example of a parsed external entity:: + + + ]> + + +The case of parsed external entities works only for valid XML content. The +XML standard also supports unparsed external entities with a +``NData declaration``. + +External entity expansion opens the door to plenty of exploits. An attacker +can abuse a vulnerable XML library and application to rebound and forward +network requests with the IP address of the server. It highly depends +on the parser and the application what kind of exploit is possible. For +example: + +* An attacker can circumvent firewalls and gain access to restricted + resources as all the requests are made from an internal and trustworthy + IP address, not from the outside. +* An attacker can abuse a service to attack, spy on or DoS your servers but + also third party services. The attack is disguised with the IP address of + the server and the attacker is able to utilize the high bandwidth of a big + machine. +* An attacker can exhaust additional resources on the machine, e.g. with + requests to a service that doesn't respond or responds with very large + files. +* An attacker may gain knowledge, when, how often and from which IP address + an XML document is accessed. +* An attacker could send mail from inside your network if the URL handler + supports ``smtp://`` URIs. + + +external entity expansion (local file) +-------------------------------------- + +External entities with references to local files are a sub-case of external +entity expansion. It's listed as an extra attack because it deserves extra +attention. Some XML libraries such as lxml disable network access by default +but still allow entity expansion with local file access by default. Local +files are either referenced with a ``file://`` URL or by a file path (either +relative or absolute). + +An attacker may be able to access and download all files that can be read by +the application process. This may include critical configuration files, too. + +:: + + + ]> + + + +DTD retrieval +------------- + +This case is similar to external entity expansion, too. Some XML libraries +like Python's xml.dom.pulldom retrieve document type definitions from remote +or local locations. Several attack scenarios from the external entity case +apply to this issue as well. + +:: + + + + + + text + + + +Python XML Libraries +==================== + +.. csv-table:: vulnerabilities and features + :header: "kind", "sax", "etree", "minidom", "pulldom", "xmlrpc", "lxml", "genshi" + :widths: 24, 7, 8, 8, 7, 8, 8, 8 + :stub-columns: 0 + + "billion laughs", "**True**", "**True**", "**True**", "**True**", "**True**", "False (1)", "False (5)" + "quadratic blowup", "**True**", "**True**", "**True**", "**True**", "**True**", "**True**", "False (5)" + "external entity expansion (remote)", "**True**", "False (3)", "False (4)", "**True**", "false", "False (1)", "False (5)" + "external entity expansion (local file)", "**True**", "False (3)", "False (4)", "**True**", "false", "**True**", "False (5)" + "DTD retrieval", "**True**", "False", "False", "**True**", "false", "False (1)", "False" + "gzip bomb", "False", "False", "False", "False", "**True**", "**partly** (2)", "False" + "xpath support (7)", "False", "False", "False", "False", "False", "**True**", "False" + "xsl(t) support (7)", "False", "False", "False", "False", "False", "**True**", "False" + "xinclude support (7)", "False", "**True** (6)", "False", "False", "False", "**True** (6)", "**True**" + "C library", "expat", "expat", "expat", "expat", "expat", "libxml2", "expat" + +1. Lxml is protected against billion laughs attacks and doesn't do network + lookups by default. +2. libxml2 and lxml are not directly vulnerable to gzip decompression bombs + but they don't protect you against them either. +3. xml.etree doesn't expand entities and raises a ParserError when an entity + occurs. +4. minidom doesn't expand entities and simply returns the unexpanded entity + verbatim. +5. genshi.input of genshi 0.6 doesn't support entity expansion and raises a + ParserError when an entity occurs. +6. Library has (limited) XInclude support but requires an additional step to + process inclusion. +7. These are features but they may introduce exploitable holes, see + `Other things to consider`_ + + +Settings in standard library +---------------------------- + + +xml.sax.handler Features +........................ + +feature_external_ges (http://xml.org/sax/features/external-general-entities) + disables external entity expansion + +feature_external_pes (http://xml.org/sax/features/external-parameter-entities) + the option is ignored and doesn't modify any functionality + +DOM xml.dom.xmlbuilder.Options +.............................. + +external_parameter_entities + ignored + +external_general_entities + ignored + +external_dtd_subset + ignored + +entities + unsure + + +defusedxml +========== + +The `defusedxml package`_ (`defusedxml on PyPI`_) +contains several Python-only workarounds and fixes +for denial of service and other vulnerabilities in Python's XML libraries. +In order to benefit from the protection you just have to import and use the +listed functions / classes from the right defusedxml module instead of the +original module. Merely `defusedxml.xmlrpc`_ is implemented as monkey patch. + +Instead of:: + + >>> from xml.etree.ElementTree import parse + >>> et = parse(xmlfile) + +alter code to:: + + >>> from defusedxml.ElementTree import parse + >>> et = parse(xmlfile) + +Additionally the package has an **untested** function to monkey patch +all stdlib modules with ``defusedxml.defuse_stdlib()``. + +All functions and parser classes accept three additional keyword arguments. +They return either the same objects as the original functions or compatible +subclasses. + +forbid_dtd (default: False) + disallow XML with a ```` processing instruction and raise a + *DTDForbidden* exception when a DTD processing instruction is found. + +forbid_entities (default: True) + disallow XML with ```` declarations inside the DTD and raise an + *EntitiesForbidden* exception when an entity is declared. + +forbid_external (default: True) + disallow any access to remote or local resources in external entities + or DTD and raising an *ExternalReferenceForbidden* exception when a DTD + or entity references an external resource. + + +defusedxml (package) +-------------------- + +DefusedXmlException, DTDForbidden, EntitiesForbidden, +ExternalReferenceForbidden, NotSupportedError + +defuse_stdlib() (*experimental*) + + +defusedxml.cElementTree +----------------------- + +**NOTE** ``defusedxml.cElementTree`` is deprecated and will be removed in a +future release. Import from ``defusedxml.ElementTree`` instead. + +parse(), iterparse(), fromstring(), XMLParser + + +defusedxml.ElementTree +----------------------- + +parse(), iterparse(), fromstring(), XMLParser + + +defusedxml.expatreader +---------------------- + +create_parser(), DefusedExpatParser + + +defusedxml.sax +-------------- + +parse(), parseString(), make_parser() + + +defusedxml.expatbuilder +----------------------- + +parse(), parseString(), DefusedExpatBuilder, DefusedExpatBuilderNS + + +defusedxml.minidom +------------------ + +parse(), parseString() + + +defusedxml.pulldom +------------------ + +parse(), parseString() + + +defusedxml.xmlrpc +----------------- + +The fix is implemented as monkey patch for the stdlib's xmlrpc package (3.x) +or xmlrpclib module (2.x). The function `monkey_patch()` enables the fixes, +`unmonkey_patch()` removes the patch and puts the code in its former state. + +The monkey patch protects against XML related attacks as well as +decompression bombs and excessively large requests or responses. The default +setting is 30 MB for requests, responses and gzip decompression. You can +modify the default by changing the module variable `MAX_DATA`. A value of +`-1` disables the limit. + + +defusedxml.lxml +--------------- + +**DEPRECATED** The module is deprecated and will be removed in a future +release. + +The module acts as an *example* how you could protect code that uses +lxml.etree. It implements a custom Element class that filters out +Entity instances, a custom parser factory and a thread local storage for +parser instances. It also has a check_docinfo() function which inspects +a tree for internal or external DTDs and entity declarations. In order to +check for entities lxml > 3.0 is required. + +parse(), fromstring() +RestrictedElement, GlobalParserTLS, getDefaultParser(), check_docinfo() + + +defusedexpat +============ + +The `defusedexpat package`_ (`defusedexpat on PyPI`_) +comes with binary extensions and a +`modified expat`_ library instead of the standard `expat parser`_. It's +basically a stand-alone version of the patches for Python's standard +library C extensions. + +Modifications in expat +---------------------- + +new definitions:: + + XML_BOMB_PROTECTION + XML_DEFAULT_MAX_ENTITY_INDIRECTIONS + XML_DEFAULT_MAX_ENTITY_EXPANSIONS + XML_DEFAULT_RESET_DTD + +new XML_FeatureEnum members:: + + XML_FEATURE_MAX_ENTITY_INDIRECTIONS + XML_FEATURE_MAX_ENTITY_EXPANSIONS + XML_FEATURE_IGNORE_DTD + +new XML_Error members:: + + XML_ERROR_ENTITY_INDIRECTIONS + XML_ERROR_ENTITY_EXPANSION + +new API functions:: + + int XML_GetFeature(XML_Parser parser, + enum XML_FeatureEnum feature, + long *value); + int XML_SetFeature(XML_Parser parser, + enum XML_FeatureEnum feature, + long value); + int XML_GetFeatureDefault(enum XML_FeatureEnum feature, + long *value); + int XML_SetFeatureDefault(enum XML_FeatureEnum feature, + long value); + +XML_FEATURE_MAX_ENTITY_INDIRECTIONS + Limit the amount of indirections that are allowed to occur during the + expansion of a nested entity. A counter starts when an entity reference + is encountered. It resets after the entity is fully expanded. The limit + protects the parser against exponential entity expansion attacks (aka + billion laughs attack). When the limit is exceeded the parser stops and + fails with `XML_ERROR_ENTITY_INDIRECTIONS`. + A value of 0 disables the protection. + + Supported range + 0 .. UINT_MAX + Default + 40 + +XML_FEATURE_MAX_ENTITY_EXPANSIONS + Limit the total length of all entity expansions throughout the entire + document. The lengths of all entities are accumulated in a parser variable. + The setting protects against quadratic blowup attacks (lots of expansions + of a large entity declaration). When the sum of all entities exceeds + the limit, the parser stops and fails with `XML_ERROR_ENTITY_EXPANSION`. + A value of 0 disables the protection. + + Supported range + 0 .. UINT_MAX + Default + 8 MiB + +XML_FEATURE_RESET_DTD + Reset all DTD information after the block has been parsed. When + the flag is set (default: false) all DTD information after the + endDoctypeDeclHandler has been called. The flag can be set inside the + endDoctypeDeclHandler. Without DTD information any entity reference in + the document body leads to `XML_ERROR_UNDEFINED_ENTITY`. + + Supported range + 0, 1 + Default + 0 + + +How to avoid XML vulnerabilities +================================ + +Best practices +-------------- + +* Don't allow DTDs +* Don't expand entities +* Don't resolve externals +* Limit parse depth +* Limit total input size +* Limit parse time +* Favor a SAX or iterparse-like parser for potential large data +* Validate and properly quote arguments to XSL transformations and + XPath queries +* Don't use XPath expression from untrusted sources +* Don't apply XSL transformations that come untrusted sources + +(based on Brad Hill's `Attacking XML Security`_) + + +Other things to consider +======================== + +XML, XML parsers and processing libraries have more features and possible +issue that could lead to DoS vulnerabilities or security exploits in +applications. I have compiled an incomplete list of theoretical issues that +need further research and more attention. The list is deliberately pessimistic +and a bit paranoid, too. It contains things that might go wrong under daffy +circumstances. + + +attribute blowup / hash collision attack +---------------------------------------- + +XML parsers may use an algorithm with quadratic runtime O(n :sup:`2`) to +handle attributes and namespaces. If it uses hash tables (dictionaries) to +store attributes and namespaces the implementation may be vulnerable to +hash collision attacks, thus reducing the performance to O(n :sup:`2`) again. +In either case an attacker is able to forge a denial of service attack with +an XML document that contains thousands upon thousands of attributes in +a single node. + +I haven't researched yet if expat, pyexpat or libxml2 are vulnerable. + + +decompression bomb +------------------ + +The issue of decompression bombs (aka `ZIP bomb`_) apply to all XML libraries +that can parse compressed XML stream like gzipped HTTP streams or LZMA-ed +files. For an attacker it can reduce the amount of transmitted data by three +magnitudes or more. Gzip is able to compress 1 GiB zeros to roughly 1 MB, +lzma is even better:: + + $ dd if=/dev/zero bs=1M count=1024 | gzip > zeros.gz + $ dd if=/dev/zero bs=1M count=1024 | lzma -z > zeros.xy + $ ls -sh zeros.* + 1020K zeros.gz + 148K zeros.xy + +None of Python's standard XML libraries decompress streams except for +``xmlrpclib``. The module is vulnerable +to decompression bombs. + +lxml can load and process compressed data through libxml2 transparently. +libxml2 can handle even very large blobs of compressed data efficiently +without using too much memory. But it doesn't protect applications from +decompression bombs. A carefully written SAX or iterparse-like approach can +be safe. + + +Processing Instruction +---------------------- + +`PI`_'s like:: + + + +may impose more threats for XML processing. It depends if and how a +processor handles processing instructions. The issue of URL retrieval with +network or local file access apply to processing instructions, too. + + +Other DTD features +------------------ + +`DTD`_ has more features like ````. I haven't researched how +these features may be a security threat. + + +XPath +----- + +XPath statements may introduce DoS vulnerabilities. Code should never execute +queries from untrusted sources. An attacker may also be able to create an XML +document that makes certain XPath queries costly or resource hungry. + + +XPath injection attacks +----------------------- + +XPath injeciton attacks pretty much work like SQL injection attacks. +Arguments to XPath queries must be quoted and validated properly, especially +when they are taken from the user. The page `Avoid the dangers of XPath injection`_ +list some ramifications of XPath injections. + +Python's standard library doesn't have XPath support. Lxml supports +parameterized XPath queries which does proper quoting. You just have to use +its xpath() method correctly:: + + # DON'T + >>> tree.xpath("/tag[@id='%s']" % value) + + # instead do + >>> tree.xpath("/tag[@id=$tagid]", tagid=name) + + +XInclude +-------- + +`XML Inclusion`_ is another way to load and include external files:: + + + + + +This feature should be disabled when XML files from an untrusted source are +processed. Some Python XML libraries and libxml2 support XInclude but don't +have an option to sandbox inclusion and limit it to allowed directories. + + +XMLSchema location +------------------ + +A validating XML parser may download schema files from the information in a +``xsi:schemaLocation`` attribute. + +:: + + + + + +XSL Transformation +------------------ + +You should keep in mind that XSLT is a Turing complete language. Never +process XSLT code from unknown or untrusted source! XSLT processors may +allow you to interact with external resources in ways you can't even imagine. +Some processors even support extensions that allow read/write access to file +system, access to JRE objects or scripting with Jython. + +Example from `Attacking XML Security`_ for Xalan-J:: + + + + + + + + + + + +Related CVEs +============ + +CVE-2013-1664 + Unrestricted entity expansion induces DoS vulnerabilities in Python XML + libraries (XML bomb) + +CVE-2013-1665 + External entity expansion in Python XML libraries inflicts potential + security flaws and DoS vulnerabilities + + +Other languages / frameworks +============================= + +Several other programming languages and frameworks are vulnerable as well. A +couple of them are affected by the fact that libxml2 up to 2.9.0 has no +protection against quadratic blowup attacks. Most of them have potential +dangerous default settings for entity expansion and external entities, too. + +Perl +---- + +Perl's XML::Simple is vulnerable to quadratic entity expansion and external +entity expansion (both local and remote). + + +Ruby +---- + +Ruby's REXML document parser is vulnerable to entity expansion attacks +(both quadratic and exponential) but it doesn't do external entity +expansion by default. In order to counteract entity expansion you have to +disable the feature:: + + REXML::Document.entity_expansion_limit = 0 + +libxml-ruby and hpricot don't expand entities in their default configuration. + + +PHP +--- + +PHP's SimpleXML API is vulnerable to quadratic entity expansion and loads +entities from local and remote resources. The option ``LIBXML_NONET`` disables +network access but still allows local file access. ``LIBXML_NOENT`` seems to +have no effect on entity expansion in PHP 5.4.6. + + +C# / .NET / Mono +---------------- + +Information in `XML DoS and Defenses (MSDN)`_ suggest that .NET is +vulnerable with its default settings. The article contains code snippets +how to create a secure XML reader:: + + XmlReaderSettings settings = new XmlReaderSettings(); + settings.ProhibitDtd = false; + settings.MaxCharactersFromEntities = 1024; + settings.XmlResolver = null; + XmlReader reader = XmlReader.Create(stream, settings); + + +Java +---- + +Untested. The documentation of Xerces and its `Xerces SecurityMananger`_ +sounds like Xerces is also vulnerable to billion laugh attacks with its +default settings. It also does entity resolving when an +``org.xml.sax.EntityResolver`` is configured. I'm not yet sure about the +default setting here. + +Java specialists suggest to have a custom builder factory:: + + DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance(); + builderFactory.setXIncludeAware(False); + builderFactory.setExpandEntityReferences(False); + builderFactory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, True); + # either + builderFactory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", True); + # or if you need DTDs + builderFactory.setFeature("http://xml.org/sax/features/external-general-entities", False); + builderFactory.setFeature("http://xml.org/sax/features/external-parameter-entities", False); + builderFactory.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", False); + builderFactory.setFeature("http://apache.org/xml/features/nonvalidating/load-dtd-grammar", False); + + +TODO +==== + +* DOM: Use xml.dom.xmlbuilder options for entity handling +* SAX: take feature_external_ges and feature_external_pes (?) into account +* test experimental monkey patching of stdlib modules +* improve documentation + + +License +======= + +Copyright (c) 2013-2017 by Christian Heimes + +Licensed to PSF under a Contributor Agreement. + +See https://www.python.org/psf/license for licensing details. + + +Acknowledgements +================ + +Brett Cannon (Python Core developer) + review and code cleanup + +Antoine Pitrou (Python Core developer) + code review + +Aaron Patterson, Ben Murphy and Michael Koziarski (Ruby community) + Many thanks to Aaron, Ben and Michael from the Ruby community for their + report and assistance. + +Thierry Carrez (OpenStack) + Many thanks to Thierry for his report to the Python Security Response + Team on behalf of the OpenStack security team. + +Carl Meyer (Django) + Many thanks to Carl for his report to PSRT on behalf of the Django security + team. + +Daniel Veillard (libxml2) + Many thanks to Daniel for his insight and assistance with libxml2. + +semantics GmbH (https://www.semantics.de/) + Many thanks to my employer semantics for letting me work on the issue + during working hours as part of semantics's open source initiative. + + +References +========== + +* `XML DoS and Defenses (MSDN)`_ +* `Billion Laughs`_ on Wikipedia +* `ZIP bomb`_ on Wikipedia +* `Configure SAX parsers for secure processing`_ +* `Testing for XML Injection`_ + +.. _defusedxml package: https://github.com/tiran/defusedxml +.. _defusedxml on PyPI: https://pypi.python.org/pypi/defusedxml +.. _defusedexpat package: https://github.com/tiran/defusedexpat +.. _defusedexpat on PyPI: https://pypi.python.org/pypi/defusedexpat +.. _modified expat: https://github.com/tiran/expat +.. _expat parser: http://expat.sourceforge.net/ +.. _Attacking XML Security: https://www.isecpartners.com/media/12976/iSEC-HILL-Attacking-XML-Security-bh07.pdf +.. _Billion Laughs: https://en.wikipedia.org/wiki/Billion_laughs +.. _XML DoS and Defenses (MSDN): https://msdn.microsoft.com/en-us/magazine/ee335713.aspx +.. _ZIP bomb: https://en.wikipedia.org/wiki/Zip_bomb +.. _DTD: https://en.wikipedia.org/wiki/Document_Type_Definition +.. _PI: https://en.wikipedia.org/wiki/Processing_Instruction +.. _Avoid the dangers of XPath injection: http://www.ibm.com/developerworks/xml/library/x-xpathinjection/index.html +.. _Configure SAX parsers for secure processing: http://www.ibm.com/developerworks/xml/library/x-tipcfsx/index.html +.. _Testing for XML Injection: https://www.owasp.org/index.php/Testing_for_XML_Injection_(OWASP-DV-008) +.. _Xerces SecurityMananger: https://xerces.apache.org/xerces2-j/javadocs/xerces2/org/apache/xerces/util/SecurityManager.html +.. _XML Inclusion: https://www.w3.org/TR/xinclude/#include_element + +Changelog +========= + +defusedxml 0.7.1 +--------------------- + +*Release date: 08-Mar-2021* + +- Fix regression ``defusedxml.ElementTree.ParseError`` (#63) + The ``ParseError`` exception is now the same class object as + ``xml.etree.ElementTree.ParseError`` again. + + +defusedxml 0.7.0 +---------------- + +*Release date: 4-Mar-2021* + +- No changes + + +defusedxml 0.7.0rc2 +------------------- + +*Release date: 12-Jan-2021* + +- Re-add and deprecate ``defusedxml.cElementTree`` +- Use GitHub Actions instead of TravisCI +- Restore ``ElementTree`` attribute of ``xml.etree`` module after patching + +defusedxml 0.7.0rc1 +------------------- + +*Release date: 04-May-2020* + +- Add support for Python 3.9 +- ``defusedxml.cElementTree`` is not available with Python 3.9. +- Python 2 is deprecate. Support for Python 2 will be removed in 0.8.0. + + +defusedxml 0.6.0 +---------------- + +*Release date: 17-Apr-2019* + +- Increase test coverage. +- Add badges to README. + + +defusedxml 0.6.0rc1 +------------------- + +*Release date: 14-Apr-2019* + +- Test on Python 3.7 stable and 3.8-dev +- Drop support for Python 3.4 +- No longer pass *html* argument to XMLParse. It has been deprecated and + ignored for a long time. The DefusedXMLParser still takes a html argument. + A deprecation warning is issued when the argument is False and a TypeError + when it's True. +- defusedxml now fails early when pyexpat stdlib module is not available or + broken. +- defusedxml.ElementTree.__all__ now lists ParseError as public attribute. +- The defusedxml.ElementTree and defusedxml.cElementTree modules had a typo + and used XMLParse instead of XMLParser as an alias for DefusedXMLParser. + Both the old and fixed name are now available. + + +defusedxml 0.5.0 +---------------- + +*Release date: 07-Feb-2017* + +- No changes + + +defusedxml 0.5.0.rc1 +-------------------- + +*Release date: 28-Jan-2017* + +- Add compatibility with Python 3.6 +- Drop support for Python 2.6, 3.1, 3.2, 3.3 +- Fix lxml tests (XMLSyntaxError: Detected an entity reference loop) + + +defusedxml 0.4.1 +---------------- + +*Release date: 28-Mar-2013* + +- Add more demo exploits, e.g. python_external.py and Xalan XSLT demos. +- Improved documentation. + + +defusedxml 0.4 +-------------- + +*Release date: 25-Feb-2013* + +- As per http://seclists.org/oss-sec/2013/q1/340 please REJECT + CVE-2013-0278, CVE-2013-0279 and CVE-2013-0280 and use CVE-2013-1664, + CVE-2013-1665 for OpenStack/etc. +- Add missing parser_list argument to sax.make_parser(). The argument is + ignored, though. (thanks to Florian Apolloner) +- Add demo exploit for external entity attack on Python's SAX parser, XML-RPC + and WebDAV. + + +defusedxml 0.3 +-------------- + +*Release date: 19-Feb-2013* + +- Improve documentation + + +defusedxml 0.2 +-------------- + +*Release date: 15-Feb-2013* + +- Rename ExternalEntitiesForbidden to ExternalReferenceForbidden +- Rename defusedxml.lxml.check_dtd() to check_docinfo() +- Unify argument names in callbacks +- Add arguments and formatted representation to exceptions +- Add forbid_external argument to all functions and classes +- More tests +- LOTS of documentation +- Add example code for other languages (Ruby, Perl, PHP) and parsers (Genshi) +- Add protection against XML and gzip attacks to xmlrpclib + +defusedxml 0.1 +-------------- + +*Release date: 08-Feb-2013* + +- Initial and internal release for PSRT review + + diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml-0.7.1.dist-info/RECORD b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml-0.7.1.dist-info/RECORD new file mode 100644 index 0000000..0a2fa9c --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml-0.7.1.dist-info/RECORD @@ -0,0 +1,17 @@ +defusedxml-0.7.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +defusedxml-0.7.1.dist-info/LICENSE,sha256=uAzp2oxCofkQeWJ_u-K_JyEK4Qig_-Xwd9WwjgdsJMg,2409 +defusedxml-0.7.1.dist-info/METADATA,sha256=Np0872SHDa-En7pxHLjQWn7-PI2asPdjrcNAef43i7E,32518 +defusedxml-0.7.1.dist-info/RECORD,, +defusedxml-0.7.1.dist-info/WHEEL,sha256=kGT74LWyRUZrL4VgLh6_g12IeVl_9u9ZVhadrgXZUEY,110 +defusedxml-0.7.1.dist-info/top_level.txt,sha256=QGHa90F50pVKhWSFlERI0jtSKtqDiGyfeZX7dQNZAAw,11 +defusedxml/ElementTree.py,sha256=GLSqpCz58oXGPGyzf_HylsPS9_dcGVP5SN4dK7yvyPw,4640 +defusedxml/__init__.py,sha256=RczeaVJG64p2Fgy1jlCzbuRdchEPnEaCBrxgk8JJ_pM,1444 +defusedxml/cElementTree.py,sha256=PpaKMh3rU29sY8amAK4fzHQKl8gcAYD0h1LCoW62Rtk,1449 +defusedxml/common.py,sha256=3d26jNW4fNXzgjWhvUfs83Afiz5EVxFDupQbugkSMZc,4036 +defusedxml/expatbuilder.py,sha256=b4Q05vsBMJ5StkiTFf4my2rGGo1gZyEl_hC5MeFTOAA,3732 +defusedxml/expatreader.py,sha256=KOpSrwkSvj5SGOY9pTXOM26Dnz00rsJt33WueVvzpvc,2196 +defusedxml/lxml.py,sha256=HW-LFKdrfMRzHdi0Vcucq4-n8yz7v_OQwEQWFg1JQYA,4940 +defusedxml/minidom.py,sha256=3QcgygVwJqcWDQ3IZ2iol8zsH4cx3BRX70SPcd0bG2g,1884 +defusedxml/pulldom.py,sha256=DYj2D2lc7xoxZ38gfzujXmdznd8ovzDqGFXqyXbtxjk,1170 +defusedxml/sax.py,sha256=-SF08Msc2mWEYAMw62pJ5FMwWccOctFSnQwDLYLLlVE,1477 +defusedxml/xmlrpc.py,sha256=7rZQey3tqXcc1hrrM3RprOICU6fiFny9B9l4nmTioxA,5364 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml-0.7.1.dist-info/WHEEL b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml-0.7.1.dist-info/WHEEL new file mode 100644 index 0000000..ef99c6c --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml-0.7.1.dist-info/WHEEL @@ -0,0 +1,6 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.34.2) +Root-Is-Purelib: true +Tag: py2-none-any +Tag: py3-none-any + diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml-0.7.1.dist-info/top_level.txt b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml-0.7.1.dist-info/top_level.txt new file mode 100644 index 0000000..36969f2 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml-0.7.1.dist-info/top_level.txt @@ -0,0 +1 @@ +defusedxml diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml/ElementTree.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml/ElementTree.py new file mode 100644 index 0000000..5ba765f --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml/ElementTree.py @@ -0,0 +1,154 @@ +# defusedxml +# +# Copyright (c) 2013 by Christian Heimes +# Licensed to PSF under a Contributor Agreement. +# See https://www.python.org/psf/license for licensing details. +"""Defused xml.etree.ElementTree facade +""" +from __future__ import print_function, absolute_import + +import sys +import warnings +from xml.etree.ElementTree import ParseError +from xml.etree.ElementTree import TreeBuilder as _TreeBuilder +from xml.etree.ElementTree import parse as _parse +from xml.etree.ElementTree import tostring + +from .common import PY3 + +if PY3: + import importlib +else: + from xml.etree.ElementTree import XMLParser as _XMLParser + from xml.etree.ElementTree import iterparse as _iterparse + + +from .common import ( + DTDForbidden, + EntitiesForbidden, + ExternalReferenceForbidden, + _generate_etree_functions, +) + +__origin__ = "xml.etree.ElementTree" + + +def _get_py3_cls(): + """Python 3.3 hides the pure Python code but defusedxml requires it. + + The code is based on test.support.import_fresh_module(). + """ + pymodname = "xml.etree.ElementTree" + cmodname = "_elementtree" + + pymod = sys.modules.pop(pymodname, None) + cmod = sys.modules.pop(cmodname, None) + + sys.modules[cmodname] = None + try: + pure_pymod = importlib.import_module(pymodname) + finally: + # restore module + sys.modules[pymodname] = pymod + if cmod is not None: + sys.modules[cmodname] = cmod + else: + sys.modules.pop(cmodname, None) + # restore attribute on original package + etree_pkg = sys.modules["xml.etree"] + if pymod is not None: + etree_pkg.ElementTree = pymod + elif hasattr(etree_pkg, "ElementTree"): + del etree_pkg.ElementTree + + _XMLParser = pure_pymod.XMLParser + _iterparse = pure_pymod.iterparse + # patch pure module to use ParseError from C extension + pure_pymod.ParseError = ParseError + + return _XMLParser, _iterparse + + +if PY3: + _XMLParser, _iterparse = _get_py3_cls() + + +_sentinel = object() + + +class DefusedXMLParser(_XMLParser): + def __init__( + self, + html=_sentinel, + target=None, + encoding=None, + forbid_dtd=False, + forbid_entities=True, + forbid_external=True, + ): + # Python 2.x old style class + _XMLParser.__init__(self, target=target, encoding=encoding) + if html is not _sentinel: + # the 'html' argument has been deprecated and ignored in all + # supported versions of Python. Python 3.8 finally removed it. + if html: + raise TypeError("'html=True' is no longer supported.") + else: + warnings.warn( + "'html' keyword argument is no longer supported. Pass " + "in arguments as keyword arguments.", + category=DeprecationWarning, + ) + + self.forbid_dtd = forbid_dtd + self.forbid_entities = forbid_entities + self.forbid_external = forbid_external + if PY3: + parser = self.parser + else: + parser = self._parser + if self.forbid_dtd: + parser.StartDoctypeDeclHandler = self.defused_start_doctype_decl + if self.forbid_entities: + parser.EntityDeclHandler = self.defused_entity_decl + parser.UnparsedEntityDeclHandler = self.defused_unparsed_entity_decl + if self.forbid_external: + parser.ExternalEntityRefHandler = self.defused_external_entity_ref_handler + + def defused_start_doctype_decl(self, name, sysid, pubid, has_internal_subset): + raise DTDForbidden(name, sysid, pubid) + + def defused_entity_decl( + self, name, is_parameter_entity, value, base, sysid, pubid, notation_name + ): + raise EntitiesForbidden(name, value, base, sysid, pubid, notation_name) + + def defused_unparsed_entity_decl(self, name, base, sysid, pubid, notation_name): + # expat 1.2 + raise EntitiesForbidden(name, None, base, sysid, pubid, notation_name) # pragma: no cover + + def defused_external_entity_ref_handler(self, context, base, sysid, pubid): + raise ExternalReferenceForbidden(context, base, sysid, pubid) + + +# aliases +# XMLParse is a typo, keep it for backwards compatibility +XMLTreeBuilder = XMLParse = XMLParser = DefusedXMLParser + +parse, iterparse, fromstring = _generate_etree_functions( + DefusedXMLParser, _TreeBuilder, _parse, _iterparse +) +XML = fromstring + + +__all__ = [ + "ParseError", + "XML", + "XMLParse", + "XMLParser", + "XMLTreeBuilder", + "fromstring", + "iterparse", + "parse", + "tostring", +] diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml/__init__.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml/__init__.py new file mode 100644 index 0000000..4b5a230 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml/__init__.py @@ -0,0 +1,67 @@ +# defusedxml +# +# Copyright (c) 2013 by Christian Heimes +# Licensed to PSF under a Contributor Agreement. +# See https://www.python.org/psf/license for licensing details. +"""Defuse XML bomb denial of service vulnerabilities +""" +from __future__ import print_function, absolute_import + +import warnings + +from .common import ( + DefusedXmlException, + DTDForbidden, + EntitiesForbidden, + ExternalReferenceForbidden, + NotSupportedError, + _apply_defusing, +) + + +def defuse_stdlib(): + """Monkey patch and defuse all stdlib packages + + :warning: The monkey patch is an EXPERIMETNAL feature. + """ + defused = {} + + with warnings.catch_warnings(): + from . import cElementTree + from . import ElementTree + from . import minidom + from . import pulldom + from . import sax + from . import expatbuilder + from . import expatreader + from . import xmlrpc + + xmlrpc.monkey_patch() + defused[xmlrpc] = None + + defused_mods = [ + cElementTree, + ElementTree, + minidom, + pulldom, + sax, + expatbuilder, + expatreader, + ] + + for defused_mod in defused_mods: + stdlib_mod = _apply_defusing(defused_mod) + defused[defused_mod] = stdlib_mod + + return defused + + +__version__ = "0.7.1" + +__all__ = [ + "DefusedXmlException", + "DTDForbidden", + "EntitiesForbidden", + "ExternalReferenceForbidden", + "NotSupportedError", +] diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml/cElementTree.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml/cElementTree.py new file mode 100644 index 0000000..84670c6 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml/cElementTree.py @@ -0,0 +1,62 @@ +# defusedxml +# +# Copyright (c) 2013 by Christian Heimes +# Licensed to PSF under a Contributor Agreement. +# See https://www.python.org/psf/license for licensing details. +"""Defused xml.etree.cElementTree +""" +from __future__ import absolute_import + +import warnings + +from .common import _generate_etree_functions + +from xml.etree.cElementTree import TreeBuilder as _TreeBuilder +from xml.etree.cElementTree import parse as _parse +from xml.etree.cElementTree import tostring + +# iterparse from ElementTree! +from xml.etree.ElementTree import iterparse as _iterparse + +# This module is an alias for ElementTree just like xml.etree.cElementTree +from .ElementTree import ( + XML, + XMLParse, + XMLParser, + XMLTreeBuilder, + fromstring, + iterparse, + parse, + tostring, + DefusedXMLParser, + ParseError, +) + +__origin__ = "xml.etree.cElementTree" + + +warnings.warn( + "defusedxml.cElementTree is deprecated, import from defusedxml.ElementTree instead.", + category=DeprecationWarning, + stacklevel=2, +) + +# XMLParse is a typo, keep it for backwards compatibility +XMLTreeBuilder = XMLParse = XMLParser = DefusedXMLParser + +parse, iterparse, fromstring = _generate_etree_functions( + DefusedXMLParser, _TreeBuilder, _parse, _iterparse +) +XML = fromstring + +__all__ = [ + "ParseError", + "XML", + "XMLParse", + "XMLParser", + "XMLTreeBuilder", + "fromstring", + "iterparse", + "parse", + "tostring", +] diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml/common.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml/common.py new file mode 100644 index 0000000..5ceda1f --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml/common.py @@ -0,0 +1,129 @@ +# defusedxml +# +# Copyright (c) 2013 by Christian Heimes +# Licensed to PSF under a Contributor Agreement. +# See https://www.python.org/psf/license for licensing details. +"""Common constants, exceptions and helpe functions +""" +import sys +import xml.parsers.expat + +PY3 = sys.version_info[0] == 3 + +# Fail early when pyexpat is not installed correctly +if not hasattr(xml.parsers.expat, "ParserCreate"): + raise ImportError("pyexpat") # pragma: no cover + + +class DefusedXmlException(ValueError): + """Base exception""" + + def __repr__(self): + return str(self) + + +class DTDForbidden(DefusedXmlException): + """Document type definition is forbidden""" + + def __init__(self, name, sysid, pubid): + super(DTDForbidden, self).__init__() + self.name = name + self.sysid = sysid + self.pubid = pubid + + def __str__(self): + tpl = "DTDForbidden(name='{}', system_id={!r}, public_id={!r})" + return tpl.format(self.name, self.sysid, self.pubid) + + +class EntitiesForbidden(DefusedXmlException): + """Entity definition is forbidden""" + + def __init__(self, name, value, base, sysid, pubid, notation_name): + super(EntitiesForbidden, self).__init__() + self.name = name + self.value = value + self.base = base + self.sysid = sysid + self.pubid = pubid + self.notation_name = notation_name + + def __str__(self): + tpl = "EntitiesForbidden(name='{}', system_id={!r}, public_id={!r})" + return tpl.format(self.name, self.sysid, self.pubid) + + +class ExternalReferenceForbidden(DefusedXmlException): + """Resolving an external reference is forbidden""" + + def __init__(self, context, base, sysid, pubid): + super(ExternalReferenceForbidden, self).__init__() + self.context = context + self.base = base + self.sysid = sysid + self.pubid = pubid + + def __str__(self): + tpl = "ExternalReferenceForbidden(system_id='{}', public_id={})" + return tpl.format(self.sysid, self.pubid) + + +class NotSupportedError(DefusedXmlException): + """The operation is not supported""" + + +def _apply_defusing(defused_mod): + assert defused_mod is sys.modules[defused_mod.__name__] + stdlib_name = defused_mod.__origin__ + __import__(stdlib_name, {}, {}, ["*"]) + stdlib_mod = sys.modules[stdlib_name] + stdlib_names = set(dir(stdlib_mod)) + for name, obj in vars(defused_mod).items(): + if name.startswith("_") or name not in stdlib_names: + continue + setattr(stdlib_mod, name, obj) + return stdlib_mod + + +def _generate_etree_functions(DefusedXMLParser, _TreeBuilder, _parse, _iterparse): + """Factory for functions needed by etree, dependent on whether + cElementTree or ElementTree is used.""" + + def parse(source, parser=None, forbid_dtd=False, forbid_entities=True, forbid_external=True): + if parser is None: + parser = DefusedXMLParser( + target=_TreeBuilder(), + forbid_dtd=forbid_dtd, + forbid_entities=forbid_entities, + forbid_external=forbid_external, + ) + return _parse(source, parser) + + def iterparse( + source, + events=None, + parser=None, + forbid_dtd=False, + forbid_entities=True, + forbid_external=True, + ): + if parser is None: + parser = DefusedXMLParser( + target=_TreeBuilder(), + forbid_dtd=forbid_dtd, + forbid_entities=forbid_entities, + forbid_external=forbid_external, + ) + return _iterparse(source, events, parser) + + def fromstring(text, forbid_dtd=False, forbid_entities=True, forbid_external=True): + parser = DefusedXMLParser( + target=_TreeBuilder(), + forbid_dtd=forbid_dtd, + forbid_entities=forbid_entities, + forbid_external=forbid_external, + ) + parser.feed(text) + return parser.close() + + return parse, iterparse, fromstring diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml/expatbuilder.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml/expatbuilder.py new file mode 100644 index 0000000..7bfc57e --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml/expatbuilder.py @@ -0,0 +1,107 @@ +# defusedxml +# +# Copyright (c) 2013 by Christian Heimes +# Licensed to PSF under a Contributor Agreement. +# See https://www.python.org/psf/license for licensing details. +"""Defused xml.dom.expatbuilder +""" +from __future__ import print_function, absolute_import + +from xml.dom.expatbuilder import ExpatBuilder as _ExpatBuilder +from xml.dom.expatbuilder import Namespaces as _Namespaces + +from .common import DTDForbidden, EntitiesForbidden, ExternalReferenceForbidden + +__origin__ = "xml.dom.expatbuilder" + + +class DefusedExpatBuilder(_ExpatBuilder): + """Defused document builder""" + + def __init__( + self, options=None, forbid_dtd=False, forbid_entities=True, forbid_external=True + ): + _ExpatBuilder.__init__(self, options) + self.forbid_dtd = forbid_dtd + self.forbid_entities = forbid_entities + self.forbid_external = forbid_external + + def defused_start_doctype_decl(self, name, sysid, pubid, has_internal_subset): + raise DTDForbidden(name, sysid, pubid) + + def defused_entity_decl( + self, name, is_parameter_entity, value, base, sysid, pubid, notation_name + ): + raise EntitiesForbidden(name, value, base, sysid, pubid, notation_name) + + def defused_unparsed_entity_decl(self, name, base, sysid, pubid, notation_name): + # expat 1.2 + raise EntitiesForbidden(name, None, base, sysid, pubid, notation_name) # pragma: no cover + + def defused_external_entity_ref_handler(self, context, base, sysid, pubid): + raise ExternalReferenceForbidden(context, base, sysid, pubid) + + def install(self, parser): + _ExpatBuilder.install(self, parser) + + if self.forbid_dtd: + parser.StartDoctypeDeclHandler = self.defused_start_doctype_decl + if self.forbid_entities: + # if self._options.entities: + parser.EntityDeclHandler = self.defused_entity_decl + parser.UnparsedEntityDeclHandler = self.defused_unparsed_entity_decl + if self.forbid_external: + parser.ExternalEntityRefHandler = self.defused_external_entity_ref_handler + + +class DefusedExpatBuilderNS(_Namespaces, DefusedExpatBuilder): + """Defused document builder that supports namespaces.""" + + def install(self, parser): + DefusedExpatBuilder.install(self, parser) + if self._options.namespace_declarations: + parser.StartNamespaceDeclHandler = self.start_namespace_decl_handler + + def reset(self): + DefusedExpatBuilder.reset(self) + self._initNamespaces() + + +def parse(file, namespaces=True, forbid_dtd=False, forbid_entities=True, forbid_external=True): + """Parse a document, returning the resulting Document node. + + 'file' may be either a file name or an open file object. + """ + if namespaces: + build_builder = DefusedExpatBuilderNS + else: + build_builder = DefusedExpatBuilder + builder = build_builder( + forbid_dtd=forbid_dtd, forbid_entities=forbid_entities, forbid_external=forbid_external + ) + + if isinstance(file, str): + fp = open(file, "rb") + try: + result = builder.parseFile(fp) + finally: + fp.close() + else: + result = builder.parseFile(file) + return result + + +def parseString( + string, namespaces=True, forbid_dtd=False, forbid_entities=True, forbid_external=True +): + """Parse a document from a string, returning the resulting + Document node. + """ + if namespaces: + build_builder = DefusedExpatBuilderNS + else: + build_builder = DefusedExpatBuilder + builder = build_builder( + forbid_dtd=forbid_dtd, forbid_entities=forbid_entities, forbid_external=forbid_external + ) + return builder.parseString(string) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml/expatreader.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml/expatreader.py new file mode 100644 index 0000000..890e1d1 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml/expatreader.py @@ -0,0 +1,61 @@ +# defusedxml +# +# Copyright (c) 2013 by Christian Heimes +# Licensed to PSF under a Contributor Agreement. +# See https://www.python.org/psf/license for licensing details. +"""Defused xml.sax.expatreader +""" +from __future__ import print_function, absolute_import + +from xml.sax.expatreader import ExpatParser as _ExpatParser + +from .common import DTDForbidden, EntitiesForbidden, ExternalReferenceForbidden + +__origin__ = "xml.sax.expatreader" + + +class DefusedExpatParser(_ExpatParser): + """Defused SAX driver for the pyexpat C module.""" + + def __init__( + self, + namespaceHandling=0, + bufsize=2 ** 16 - 20, + forbid_dtd=False, + forbid_entities=True, + forbid_external=True, + ): + _ExpatParser.__init__(self, namespaceHandling, bufsize) + self.forbid_dtd = forbid_dtd + self.forbid_entities = forbid_entities + self.forbid_external = forbid_external + + def defused_start_doctype_decl(self, name, sysid, pubid, has_internal_subset): + raise DTDForbidden(name, sysid, pubid) + + def defused_entity_decl( + self, name, is_parameter_entity, value, base, sysid, pubid, notation_name + ): + raise EntitiesForbidden(name, value, base, sysid, pubid, notation_name) + + def defused_unparsed_entity_decl(self, name, base, sysid, pubid, notation_name): + # expat 1.2 + raise EntitiesForbidden(name, None, base, sysid, pubid, notation_name) # pragma: no cover + + def defused_external_entity_ref_handler(self, context, base, sysid, pubid): + raise ExternalReferenceForbidden(context, base, sysid, pubid) + + def reset(self): + _ExpatParser.reset(self) + parser = self._parser + if self.forbid_dtd: + parser.StartDoctypeDeclHandler = self.defused_start_doctype_decl + if self.forbid_entities: + parser.EntityDeclHandler = self.defused_entity_decl + parser.UnparsedEntityDeclHandler = self.defused_unparsed_entity_decl + if self.forbid_external: + parser.ExternalEntityRefHandler = self.defused_external_entity_ref_handler + + +def create_parser(*args, **kwargs): + return DefusedExpatParser(*args, **kwargs) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml/lxml.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml/lxml.py new file mode 100644 index 0000000..99d5be9 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml/lxml.py @@ -0,0 +1,153 @@ +# defusedxml +# +# Copyright (c) 2013 by Christian Heimes +# Licensed to PSF under a Contributor Agreement. +# See https://www.python.org/psf/license for licensing details. +"""DEPRECATED Example code for lxml.etree protection + +The code has NO protection against decompression bombs. +""" +from __future__ import print_function, absolute_import + +import threading +import warnings + +from lxml import etree as _etree + +from .common import DTDForbidden, EntitiesForbidden, NotSupportedError + +LXML3 = _etree.LXML_VERSION[0] >= 3 + +__origin__ = "lxml.etree" + +tostring = _etree.tostring + + +warnings.warn( + "defusedxml.lxml is no longer supported and will be removed in a future release.", + category=DeprecationWarning, + stacklevel=2, +) + + +class RestrictedElement(_etree.ElementBase): + """A restricted Element class that filters out instances of some classes""" + + __slots__ = () + # blacklist = (etree._Entity, etree._ProcessingInstruction, etree._Comment) + blacklist = _etree._Entity + + def _filter(self, iterator): + blacklist = self.blacklist + for child in iterator: + if isinstance(child, blacklist): + continue + yield child + + def __iter__(self): + iterator = super(RestrictedElement, self).__iter__() + return self._filter(iterator) + + def iterchildren(self, tag=None, reversed=False): + iterator = super(RestrictedElement, self).iterchildren(tag=tag, reversed=reversed) + return self._filter(iterator) + + def iter(self, tag=None, *tags): + iterator = super(RestrictedElement, self).iter(tag=tag, *tags) + return self._filter(iterator) + + def iterdescendants(self, tag=None, *tags): + iterator = super(RestrictedElement, self).iterdescendants(tag=tag, *tags) + return self._filter(iterator) + + def itersiblings(self, tag=None, preceding=False): + iterator = super(RestrictedElement, self).itersiblings(tag=tag, preceding=preceding) + return self._filter(iterator) + + def getchildren(self): + iterator = super(RestrictedElement, self).__iter__() + return list(self._filter(iterator)) + + def getiterator(self, tag=None): + iterator = super(RestrictedElement, self).getiterator(tag) + return self._filter(iterator) + + +class GlobalParserTLS(threading.local): + """Thread local context for custom parser instances""" + + parser_config = { + "resolve_entities": False, + # 'remove_comments': True, + # 'remove_pis': True, + } + + element_class = RestrictedElement + + def createDefaultParser(self): + parser = _etree.XMLParser(**self.parser_config) + element_class = self.element_class + if self.element_class is not None: + lookup = _etree.ElementDefaultClassLookup(element=element_class) + parser.set_element_class_lookup(lookup) + return parser + + def setDefaultParser(self, parser): + self._default_parser = parser + + def getDefaultParser(self): + parser = getattr(self, "_default_parser", None) + if parser is None: + parser = self.createDefaultParser() + self.setDefaultParser(parser) + return parser + + +_parser_tls = GlobalParserTLS() +getDefaultParser = _parser_tls.getDefaultParser + + +def check_docinfo(elementtree, forbid_dtd=False, forbid_entities=True): + """Check docinfo of an element tree for DTD and entity declarations + + The check for entity declarations needs lxml 3 or newer. lxml 2.x does + not support dtd.iterentities(). + """ + docinfo = elementtree.docinfo + if docinfo.doctype: + if forbid_dtd: + raise DTDForbidden(docinfo.doctype, docinfo.system_url, docinfo.public_id) + if forbid_entities and not LXML3: + # lxml < 3 has no iterentities() + raise NotSupportedError("Unable to check for entity declarations " "in lxml 2.x") + + if forbid_entities: + for dtd in docinfo.internalDTD, docinfo.externalDTD: + if dtd is None: + continue + for entity in dtd.iterentities(): + raise EntitiesForbidden(entity.name, entity.content, None, None, None, None) + + +def parse(source, parser=None, base_url=None, forbid_dtd=False, forbid_entities=True): + if parser is None: + parser = getDefaultParser() + elementtree = _etree.parse(source, parser, base_url=base_url) + check_docinfo(elementtree, forbid_dtd, forbid_entities) + return elementtree + + +def fromstring(text, parser=None, base_url=None, forbid_dtd=False, forbid_entities=True): + if parser is None: + parser = getDefaultParser() + rootelement = _etree.fromstring(text, parser, base_url=base_url) + elementtree = rootelement.getroottree() + check_docinfo(elementtree, forbid_dtd, forbid_entities) + return rootelement + + +XML = fromstring + + +def iterparse(*args, **kwargs): + raise NotSupportedError("defused lxml.etree.iterparse not available") diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml/minidom.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml/minidom.py new file mode 100644 index 0000000..78033b6 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml/minidom.py @@ -0,0 +1,63 @@ +# defusedxml +# +# Copyright (c) 2013 by Christian Heimes +# Licensed to PSF under a Contributor Agreement. +# See https://www.python.org/psf/license for licensing details. +"""Defused xml.dom.minidom +""" +from __future__ import print_function, absolute_import + +from xml.dom.minidom import _do_pulldom_parse +from . import expatbuilder as _expatbuilder +from . import pulldom as _pulldom + +__origin__ = "xml.dom.minidom" + + +def parse( + file, parser=None, bufsize=None, forbid_dtd=False, forbid_entities=True, forbid_external=True +): + """Parse a file into a DOM by filename or file object.""" + if parser is None and not bufsize: + return _expatbuilder.parse( + file, + forbid_dtd=forbid_dtd, + forbid_entities=forbid_entities, + forbid_external=forbid_external, + ) + else: + return _do_pulldom_parse( + _pulldom.parse, + (file,), + { + "parser": parser, + "bufsize": bufsize, + "forbid_dtd": forbid_dtd, + "forbid_entities": forbid_entities, + "forbid_external": forbid_external, + }, + ) + + +def parseString( + string, parser=None, forbid_dtd=False, forbid_entities=True, forbid_external=True +): + """Parse a file into a DOM from a string.""" + if parser is None: + return _expatbuilder.parseString( + string, + forbid_dtd=forbid_dtd, + forbid_entities=forbid_entities, + forbid_external=forbid_external, + ) + else: + return _do_pulldom_parse( + _pulldom.parseString, + (string,), + { + "parser": parser, + "forbid_dtd": forbid_dtd, + "forbid_entities": forbid_entities, + "forbid_external": forbid_external, + }, + ) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml/pulldom.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml/pulldom.py new file mode 100644 index 0000000..e3b10a4 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml/pulldom.py @@ -0,0 +1,41 @@ +# defusedxml +# +# Copyright (c) 2013 by Christian Heimes +# Licensed to PSF under a Contributor Agreement. +# See https://www.python.org/psf/license for licensing details. +"""Defused xml.dom.pulldom +""" +from __future__ import print_function, absolute_import + +from xml.dom.pulldom import parse as _parse +from xml.dom.pulldom import parseString as _parseString +from .sax import make_parser + +__origin__ = "xml.dom.pulldom" + + +def parse( + stream_or_string, + parser=None, + bufsize=None, + forbid_dtd=False, + forbid_entities=True, + forbid_external=True, +): + if parser is None: + parser = make_parser() + parser.forbid_dtd = forbid_dtd + parser.forbid_entities = forbid_entities + parser.forbid_external = forbid_external + return _parse(stream_or_string, parser, bufsize) + + +def parseString( + string, parser=None, forbid_dtd=False, forbid_entities=True, forbid_external=True +): + if parser is None: + parser = make_parser() + parser.forbid_dtd = forbid_dtd + parser.forbid_entities = forbid_entities + parser.forbid_external = forbid_external + return _parseString(string, parser) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml/sax.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml/sax.py new file mode 100644 index 0000000..b2786f7 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml/sax.py @@ -0,0 +1,60 @@ +# defusedxml +# +# Copyright (c) 2013 by Christian Heimes +# Licensed to PSF under a Contributor Agreement. +# See https://www.python.org/psf/license for licensing details. +"""Defused xml.sax +""" +from __future__ import print_function, absolute_import + +from xml.sax import InputSource as _InputSource +from xml.sax import ErrorHandler as _ErrorHandler + +from . import expatreader + +__origin__ = "xml.sax" + + +def parse( + source, + handler, + errorHandler=_ErrorHandler(), + forbid_dtd=False, + forbid_entities=True, + forbid_external=True, +): + parser = make_parser() + parser.setContentHandler(handler) + parser.setErrorHandler(errorHandler) + parser.forbid_dtd = forbid_dtd + parser.forbid_entities = forbid_entities + parser.forbid_external = forbid_external + parser.parse(source) + + +def parseString( + string, + handler, + errorHandler=_ErrorHandler(), + forbid_dtd=False, + forbid_entities=True, + forbid_external=True, +): + from io import BytesIO + + if errorHandler is None: + errorHandler = _ErrorHandler() + parser = make_parser() + parser.setContentHandler(handler) + parser.setErrorHandler(errorHandler) + parser.forbid_dtd = forbid_dtd + parser.forbid_entities = forbid_entities + parser.forbid_external = forbid_external + + inpsrc = _InputSource() + inpsrc.setByteStream(BytesIO(string)) + parser.parse(inpsrc) + + +def make_parser(parser_list=[]): + return expatreader.create_parser() diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml/xmlrpc.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml/xmlrpc.py new file mode 100644 index 0000000..fbc674d --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/defusedxml/xmlrpc.py @@ -0,0 +1,153 @@ +# defusedxml +# +# Copyright (c) 2013 by Christian Heimes +# Licensed to PSF under a Contributor Agreement. +# See https://www.python.org/psf/license for licensing details. +"""Defused xmlrpclib + +Also defuses gzip bomb +""" +from __future__ import print_function, absolute_import + +import io + +from .common import DTDForbidden, EntitiesForbidden, ExternalReferenceForbidden, PY3 + +if PY3: + __origin__ = "xmlrpc.client" + from xmlrpc.client import ExpatParser + from xmlrpc import client as xmlrpc_client + from xmlrpc import server as xmlrpc_server + from xmlrpc.client import gzip_decode as _orig_gzip_decode + from xmlrpc.client import GzipDecodedResponse as _OrigGzipDecodedResponse +else: + __origin__ = "xmlrpclib" + from xmlrpclib import ExpatParser + import xmlrpclib as xmlrpc_client + + xmlrpc_server = None + from xmlrpclib import gzip_decode as _orig_gzip_decode + from xmlrpclib import GzipDecodedResponse as _OrigGzipDecodedResponse + +try: + import gzip +except ImportError: # pragma: no cover + gzip = None + + +# Limit maximum request size to prevent resource exhaustion DoS +# Also used to limit maximum amount of gzip decoded data in order to prevent +# decompression bombs +# A value of -1 or smaller disables the limit +MAX_DATA = 30 * 1024 * 1024 # 30 MB + + +def defused_gzip_decode(data, limit=None): + """gzip encoded data -> unencoded data + + Decode data using the gzip content encoding as described in RFC 1952 + """ + if not gzip: # pragma: no cover + raise NotImplementedError + if limit is None: + limit = MAX_DATA + f = io.BytesIO(data) + gzf = gzip.GzipFile(mode="rb", fileobj=f) + try: + if limit < 0: # no limit + decoded = gzf.read() + else: + decoded = gzf.read(limit + 1) + except IOError: # pragma: no cover + raise ValueError("invalid data") + f.close() + gzf.close() + if limit >= 0 and len(decoded) > limit: + raise ValueError("max gzipped payload length exceeded") + return decoded + + +class DefusedGzipDecodedResponse(gzip.GzipFile if gzip else object): + """a file-like object to decode a response encoded with the gzip + method, as described in RFC 1952. + """ + + def __init__(self, response, limit=None): + # response doesn't support tell() and read(), required by + # GzipFile + if not gzip: # pragma: no cover + raise NotImplementedError + self.limit = limit = limit if limit is not None else MAX_DATA + if limit < 0: # no limit + data = response.read() + self.readlength = None + else: + data = response.read(limit + 1) + self.readlength = 0 + if limit >= 0 and len(data) > limit: + raise ValueError("max payload length exceeded") + self.stringio = io.BytesIO(data) + gzip.GzipFile.__init__(self, mode="rb", fileobj=self.stringio) + + def read(self, n): + if self.limit >= 0: + left = self.limit - self.readlength + n = min(n, left + 1) + data = gzip.GzipFile.read(self, n) + self.readlength += len(data) + if self.readlength > self.limit: + raise ValueError("max payload length exceeded") + return data + else: + return gzip.GzipFile.read(self, n) + + def close(self): + gzip.GzipFile.close(self) + self.stringio.close() + + +class DefusedExpatParser(ExpatParser): + def __init__(self, target, forbid_dtd=False, forbid_entities=True, forbid_external=True): + ExpatParser.__init__(self, target) + self.forbid_dtd = forbid_dtd + self.forbid_entities = forbid_entities + self.forbid_external = forbid_external + parser = self._parser + if self.forbid_dtd: + parser.StartDoctypeDeclHandler = self.defused_start_doctype_decl + if self.forbid_entities: + parser.EntityDeclHandler = self.defused_entity_decl + parser.UnparsedEntityDeclHandler = self.defused_unparsed_entity_decl + if self.forbid_external: + parser.ExternalEntityRefHandler = self.defused_external_entity_ref_handler + + def defused_start_doctype_decl(self, name, sysid, pubid, has_internal_subset): + raise DTDForbidden(name, sysid, pubid) + + def defused_entity_decl( + self, name, is_parameter_entity, value, base, sysid, pubid, notation_name + ): + raise EntitiesForbidden(name, value, base, sysid, pubid, notation_name) + + def defused_unparsed_entity_decl(self, name, base, sysid, pubid, notation_name): + # expat 1.2 + raise EntitiesForbidden(name, None, base, sysid, pubid, notation_name) # pragma: no cover + + def defused_external_entity_ref_handler(self, context, base, sysid, pubid): + raise ExternalReferenceForbidden(context, base, sysid, pubid) + + +def monkey_patch(): + xmlrpc_client.FastParser = DefusedExpatParser + xmlrpc_client.GzipDecodedResponse = DefusedGzipDecodedResponse + xmlrpc_client.gzip_decode = defused_gzip_decode + if xmlrpc_server: + xmlrpc_server.gzip_decode = defused_gzip_decode + + +def unmonkey_patch(): + xmlrpc_client.FastParser = None + xmlrpc_client.GzipDecodedResponse = _OrigGzipDecodedResponse + xmlrpc_client.gzip_decode = _orig_gzip_decode + if xmlrpc_server: + xmlrpc_server.gzip_decode = _orig_gzip_decode diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/deprecation-2.1.0.dist-info/INSTALLER b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/deprecation-2.1.0.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/deprecation-2.1.0.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/deprecation-2.1.0.dist-info/LICENSE b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/deprecation-2.1.0.dist-info/LICENSE new file mode 100644 index 0000000..8dada3e --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/deprecation-2.1.0.dist-info/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/deprecation-2.1.0.dist-info/METADATA b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/deprecation-2.1.0.dist-info/METADATA new file mode 100644 index 0000000..1d44ff8 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/deprecation-2.1.0.dist-info/METADATA @@ -0,0 +1,114 @@ +Metadata-Version: 2.1 +Name: deprecation +Version: 2.1.0 +Summary: A library to handle automated deprecations +Home-page: http://deprecation.readthedocs.io/ +Author: Brian Curtin +Author-email: brian@python.org +Maintainer: Brian Curtin +Maintainer-email: brian@python.org +License: Apache 2 +Project-URL: Documentation, http://deprecation.readthedocs.io/en/latest/ +Project-URL: Source, https://github.com/briancurtin/deprecation +Project-URL: Bug Tracker, https://github.com/briancurtin/deprecation/issues +Keywords: deprecation +Platform: UNKNOWN +Classifier: Development Status :: 5 - Production/Stable +Classifier: License :: OSI Approved :: Apache Software License +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Topic :: Software Development :: Libraries :: Python Modules +Requires-Dist: packaging + +deprecation +=========== + +.. image:: https://readthedocs.org/projects/deprecation/badge/?version=latest + :target: http://deprecation.readthedocs.io/en/latest/ + :alt: Documentation Status + +.. image:: https://travis-ci.org/briancurtin/deprecation.svg?branch=master + :target: https://travis-ci.org/briancurtin/deprecation + +.. image:: https://codecov.io/gh/briancurtin/deprecation/branch/master/graph/badge.svg + :target: https://codecov.io/gh/briancurtin/deprecation + +The ``deprecation`` library provides a ``deprecated`` decorator and a +``fail_if_not_removed`` decorator for your tests. Together, the two +enable the automation of several things: + +1. The docstring of a deprecated method gets the deprecation details + appended to the end of it. If you generate your API docs direct + from your source, you don't need to worry about writing your own + notification. You also don't need to worry about forgetting to + write it. It's done for you. +2. Rather than having code live on forever because you only deprecated + it but never actually moved on from it, you can have your tests + tell you when it's time to remove the code. The ``@deprecated`` + decorator can be told when it's time to entirely remove the code, + which causes ``@fail_if_not_removed`` to raise an ``AssertionError``, + causing either your unittest or py.test tests to fail. + +See http://deprecation.readthedocs.io/ for the full documentation. + +Installation +============ + + :: + + pip install deprecation + +Usage +===== + + :: + + import deprecation + + @deprecation.deprecated(deprecated_in="1.0", removed_in="2.0", + current_version=__version__, + details="Use the bar function instead") + def foo(): + """Do some stuff""" + return 1 + +...but doesn't Python ignore ``DeprecationWarning``? +==================================================== + +Yes, by default since 2.7—and for good reason [#]_ —and this works fine +with that. + +1. It often makes sense for you to run your tests with a ``-W`` flag or + the ``PYTHONWARNINGS`` environment variable so you catch warnings + in development and handle them appropriately. The warnings raised by + this library show up there, as they're subclasses of the built-in + ``DeprecationWarning``. See the `Command Line + `_ + and `Environment Variable + `_ + documentation for more details. +2. Even if you don't enable those things, the behavior of this library + remains the same. The docstrings will still be updated and the tests + will still fail when they need to. You'll get the benefits regardless + of what Python cares about ``DeprecationWarning``. + +---- + +.. [#] Exposing application users to ``DeprecationWarning``\s that are + emitted by lower-level code needlessly involves end-users in + "how things are done." It often leads to users raising issues + about warnings they're presented, which on one hand is done + rightfully so, as it's been presented to them as some sort of + issue to resolve. However, at the same time, the warning could + be well known and planned for. From either side, loud + ``DeprecationWarning``\s can be seen as noise that isn't + necessary outside of development. + + diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/deprecation-2.1.0.dist-info/RECORD b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/deprecation-2.1.0.dist-info/RECORD new file mode 100644 index 0000000..df4f33e --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/deprecation-2.1.0.dist-info/RECORD @@ -0,0 +1,7 @@ +deprecation-2.1.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +deprecation-2.1.0.dist-info/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357 +deprecation-2.1.0.dist-info/METADATA,sha256=AmlhU86t_lQQh858jSMZMZpoYM6gfnnLSKKe5DgGU88,4604 +deprecation-2.1.0.dist-info/RECORD,, +deprecation-2.1.0.dist-info/WHEEL,sha256=kGT74LWyRUZrL4VgLh6_g12IeVl_9u9ZVhadrgXZUEY,110 +deprecation-2.1.0.dist-info/top_level.txt,sha256=ztDh9pLraFksBgQ6iXWE_OnukoBC6_jkPQ4Y6p7771o,12 +deprecation.py,sha256=Z8qPVC-janAf7Ppoc1wYTiTWvGSdSjErOV1jDhnHN0Y,12895 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/deprecation-2.1.0.dist-info/WHEEL b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/deprecation-2.1.0.dist-info/WHEEL new file mode 100644 index 0000000..ef99c6c --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/deprecation-2.1.0.dist-info/WHEEL @@ -0,0 +1,6 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.34.2) +Root-Is-Purelib: true +Tag: py2-none-any +Tag: py3-none-any + diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/deprecation-2.1.0.dist-info/top_level.txt b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/deprecation-2.1.0.dist-info/top_level.txt new file mode 100644 index 0000000..4ba9b75 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/deprecation-2.1.0.dist-info/top_level.txt @@ -0,0 +1 @@ +deprecation diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/deprecation.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/deprecation.py new file mode 100644 index 0000000..0217b58 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/deprecation.py @@ -0,0 +1,290 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +import collections +import functools +import textwrap +import warnings + +from packaging import version +from datetime import date + +__version__ = "2.1.0" + +# This is mostly here so automodule docs are ordered more ideally. +__all__ = ["deprecated", "message_location", "fail_if_not_removed", + "DeprecatedWarning", "UnsupportedWarning"] + +#: Location where the details are added to a deprecated docstring +#: +#: When set to ``"bottom"``, the details are appended to the end. +#: When set to ``"top"``, the details are inserted between the +#: summary line and docstring contents. +message_location = "bottom" + + +class DeprecatedWarning(DeprecationWarning): + """A warning class for deprecated methods + + This is a specialization of the built-in :class:`DeprecationWarning`, + adding parameters that allow us to get information into the __str__ + that ends up being sent through the :mod:`warnings` system. + The attributes aren't able to be retrieved after the warning gets + raised and passed through the system as only the class--not the + instance--and message are what gets preserved. + + :param function: The function being deprecated. + :param deprecated_in: The version that ``function`` is deprecated in + :param removed_in: The version or :class:`datetime.date` specifying + when ``function`` gets removed. + :param details: Optional details about the deprecation. Most often + this will include directions on what to use instead + of the now deprecated code. + """ + + def __init__(self, function, deprecated_in, removed_in, details=""): + # NOTE: The docstring only works for this class if it appears up + # near the class name, not here inside __init__. I think it has + # to do with being an exception class. + self.function = function + self.deprecated_in = deprecated_in + self.removed_in = removed_in + self.details = details + super(DeprecatedWarning, self).__init__(function, deprecated_in, + removed_in, details) + + def __str__(self): + # Use a defaultdict to give us the empty string + # when a part isn't included. + parts = collections.defaultdict(str) + parts["function"] = self.function + + if self.deprecated_in: + parts["deprecated"] = " as of %s" % self.deprecated_in + if self.removed_in: + parts["removed"] = " and will be removed {} {}".format("on" if isinstance(self.removed_in, date) else "in", + self.removed_in) + if any([self.deprecated_in, self.removed_in, self.details]): + parts["period"] = "." + if self.details: + parts["details"] = " %s" % self.details + + return ("%(function)s is deprecated%(deprecated)s%(removed)s" + "%(period)s%(details)s" % (parts)) + + +class UnsupportedWarning(DeprecatedWarning): + """A warning class for methods to be removed + + This is a subclass of :class:`~deprecation.DeprecatedWarning` and is used + to output a proper message about a function being unsupported. + Additionally, the :func:`~deprecation.fail_if_not_removed` decorator + will handle this warning and cause any tests to fail if the system + under test uses code that raises this warning. + """ + + def __str__(self): + parts = collections.defaultdict(str) + parts["function"] = self.function + parts["removed"] = self.removed_in + + if self.details: + parts["details"] = " %s" % self.details + + return ("%(function)s is unsupported as of %(removed)s." + "%(details)s" % (parts)) + + +def deprecated(deprecated_in=None, removed_in=None, current_version=None, + details=""): + """Decorate a function to signify its deprecation + + This function wraps a method that will soon be removed and does two things: + * The docstring of the method will be modified to include a notice + about deprecation, e.g., "Deprecated since 0.9.11. Use foo instead." + * Raises a :class:`~deprecation.DeprecatedWarning` + via the :mod:`warnings` module, which is a subclass of the built-in + :class:`DeprecationWarning`. Note that built-in + :class:`DeprecationWarning`s are ignored by default, so for users + to be informed of said warnings they will need to enable them--see + the :mod:`warnings` module documentation for more details. + + :param deprecated_in: The version at which the decorated method is + considered deprecated. This will usually be the + next version to be released when the decorator is + added. The default is **None**, which effectively + means immediate deprecation. If this is not + specified, then the `removed_in` and + `current_version` arguments are ignored. + :param removed_in: The version or :class:`datetime.date` when the decorated + method will be removed. The default is **None**, + specifying that the function is not currently planned + to be removed. + Note: This parameter cannot be set to a value if + `deprecated_in=None`. + :param current_version: The source of version information for the + currently running code. This will usually be + a `__version__` attribute on your library. + The default is `None`. + When `current_version=None` the automation to + determine if the wrapped function is actually + in a period of deprecation or time for removal + does not work, causing a + :class:`~deprecation.DeprecatedWarning` + to be raised in all cases. + :param details: Extra details to be added to the method docstring and + warning. For example, the details may point users to + a replacement method, such as "Use the foo_bar + method instead". By default there are no details. + """ + # You can't just jump to removal. It's weird, unfair, and also makes + # building up the docstring weird. + if deprecated_in is None and removed_in is not None: + raise TypeError("Cannot set removed_in to a value " + "without also setting deprecated_in") + + # Only warn when it's appropriate. There may be cases when it makes sense + # to add this decorator before a formal deprecation period begins. + # In CPython, PendingDeprecatedWarning gets used in that period, + # so perhaps mimick that at some point. + is_deprecated = False + is_unsupported = False + + # StrictVersion won't take a None or a "", so make whatever goes to it + # is at least *something*. Compare versions only if removed_in is not + # of type datetime.date + if isinstance(removed_in, date): + if date.today() >= removed_in: + is_unsupported = True + else: + is_deprecated = True + elif current_version: + current_version = version.parse(current_version) + + if (removed_in + and current_version >= version.parse(removed_in)): + is_unsupported = True + elif (deprecated_in + and current_version >= version.parse(deprecated_in)): + is_deprecated = True + else: + # If we can't actually calculate that we're in a period of + # deprecation...well, they used the decorator, so it's deprecated. + # This will cover the case of someone just using + # @deprecated("1.0") without the other advantages. + is_deprecated = True + + should_warn = any([is_deprecated, is_unsupported]) + + def _function_wrapper(function): + if should_warn: + # Everything *should* have a docstring, but just in case... + existing_docstring = function.__doc__ or "" + + # The various parts of this decorator being optional makes for + # a number of ways the deprecation notice could go. The following + # makes for a nicely constructed sentence with or without any + # of the parts. + + # If removed_in is a date, use "removed on" + # If removed_in is a version, use "removed in" + parts = { + "deprecated_in": + " %s" % deprecated_in if deprecated_in else "", + "removed_in": + "\n This will be removed {} {}.".format("on" if isinstance(removed_in, date) else "in", + removed_in) if removed_in else "", + "details": + " %s" % details if details else ""} + + deprecation_note = (".. deprecated::{deprecated_in}" + "{removed_in}{details}".format(**parts)) + + # default location for insertion of deprecation note + loc = 1 + + # split docstring at first occurrence of newline + string_list = existing_docstring.split("\n", 1) + + if len(string_list) > 1: + # With a multi-line docstring, when we modify + # existing_docstring to add our deprecation_note, + # if we're not careful we'll interfere with the + # indentation levels of the contents below the + # first line, or as PEP 257 calls it, the summary + # line. Since the summary line can start on the + # same line as the """, dedenting the whole thing + # won't help. Split the summary and contents up, + # dedent the contents independently, then join + # summary, dedent'ed contents, and our + # deprecation_note. + + # in-place dedent docstring content + string_list[1] = textwrap.dedent(string_list[1]) + + # we need another newline + string_list.insert(loc, "\n") + + # change the message_location if we add to end of docstring + # do this always if not "top" + if message_location != "top": + loc = 3 + + # insert deprecation note and dual newline + string_list.insert(loc, deprecation_note) + string_list.insert(loc, "\n\n") + + function.__doc__ = "".join(string_list) + + @functools.wraps(function) + def _inner(*args, **kwargs): + if should_warn: + if is_unsupported: + cls = UnsupportedWarning + else: + cls = DeprecatedWarning + + the_warning = cls(function.__name__, deprecated_in, + removed_in, details) + warnings.warn(the_warning, category=DeprecationWarning, + stacklevel=2) + + return function(*args, **kwargs) + return _inner + return _function_wrapper + + +def fail_if_not_removed(method): + """Decorate a test method to track removal of deprecated code + + This decorator catches :class:`~deprecation.UnsupportedWarning` + warnings that occur during testing and causes unittests to fail, + making it easier to keep track of when code should be removed. + + :raises: :class:`AssertionError` if an + :class:`~deprecation.UnsupportedWarning` + is raised while running the test method. + """ + # NOTE(briancurtin): Unless this is named test_inner, nose won't work + # properly. See Issue #32. + @functools.wraps(method) + def test_inner(*args, **kwargs): + with warnings.catch_warnings(record=True) as caught_warnings: + warnings.simplefilter("always") + rv = method(*args, **kwargs) + + for warning in caught_warnings: + if warning.category == UnsupportedWarning: + raise AssertionError( + ("%s uses a function that should be removed: %s" % + (method, str(warning.message)))) + return rv + return test_inner diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/filigran_sseclient-1.0.2.dist-info/INSTALLER b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/filigran_sseclient-1.0.2.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/filigran_sseclient-1.0.2.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/filigran_sseclient-1.0.2.dist-info/LICENSE b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/filigran_sseclient-1.0.2.dist-info/LICENSE new file mode 100644 index 0000000..fc49ad9 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/filigran_sseclient-1.0.2.dist-info/LICENSE @@ -0,0 +1,25 @@ +Copyright (c) 2015 Brent Tubbs + + + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + + + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + + + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/filigran_sseclient-1.0.2.dist-info/METADATA b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/filigran_sseclient-1.0.2.dist-info/METADATA new file mode 100644 index 0000000..734b179 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/filigran_sseclient-1.0.2.dist-info/METADATA @@ -0,0 +1,44 @@ +Metadata-Version: 2.1 +Name: filigran_sseclient +Version: 1.0.2 +Summary: Python API client for OpenCTI. +Home-page: https://github.com/FiligranHQ/filigran-sseclient +Author: Filigran +Author-email: contact@filigran.io +Maintainer: Filigran +License: Copyright (c) 2015 Brent Tubbs +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: MIT License +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3 +Requires-Python: >=3.7 +Description-Content-Type: text/markdown +License-File: LICENSE +Requires-Dist: requests>=2.9 +Requires-Dist: six +Provides-Extra: dev +Requires-Dist: black~=23.1.0; extra == "dev" +Requires-Dist: build~=0.8.0; extra == "dev" +Requires-Dist: isort~=5.10.1; extra == "dev" +Requires-Dist: types-pytz~=2022.2.1.0; extra == "dev" +Requires-Dist: pre-commit~=2.20.0; extra == "dev" +Requires-Dist: pytest-cases~=3.6.13; extra == "dev" +Requires-Dist: pytest-cov~=3.0.0; extra == "dev" +Requires-Dist: pytest_randomly~=3.12.0; extra == "dev" +Requires-Dist: pytest~=7.1.2; extra == "dev" +Requires-Dist: types-python-dateutil~=2.8.19; extra == "dev" +Requires-Dist: wheel~=0.37.1; extra == "dev" +Provides-Extra: doc +Requires-Dist: autoapi~=2.0.1; extra == "doc" +Requires-Dist: sphinx-autodoc-typehints~=1.19.2; extra == "doc" +Requires-Dist: sphinx-rtd-theme~=1.0.0; extra == "doc" + +# Filigran Python SSE Client + +This is a Python client library for iterating over http Server Sent Event (SSE) +streams (also known as EventSource, after the name of the Javascript interface +inside browsers). The SSEClient class accepts a url on init, and is then an +iterator over messages coming from the server. + +Forked from btubbs/sseclient to mainly support chunk stream messages, thanks to @ristowee diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/filigran_sseclient-1.0.2.dist-info/RECORD b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/filigran_sseclient-1.0.2.dist-info/RECORD new file mode 100644 index 0000000..dda91f9 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/filigran_sseclient-1.0.2.dist-info/RECORD @@ -0,0 +1,11 @@ +filigran_sseclient-1.0.2.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +filigran_sseclient-1.0.2.dist-info/LICENSE,sha256=JG5WIzhHLJEXmX111sTkQJuE9v2uaeXJYJTZrr4yC04,1088 +filigran_sseclient-1.0.2.dist-info/METADATA,sha256=thig25fwpl0q-_1dOHx5gaDsyO_cFDuWZbw-NdijLRo,1855 +filigran_sseclient-1.0.2.dist-info/RECORD,, +filigran_sseclient-1.0.2.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +filigran_sseclient-1.0.2.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91 +filigran_sseclient-1.0.2.dist-info/top_level.txt,sha256=EwGXWyTELjIDm1mFTyFaYbegkrIeIX2aFdj4_hrdOWU,19 +filigran_sseclient/__init__.py,sha256=q8VnSpp7lBMfkUxCzf6hsuMSfqNM365xFgwC-xdR2m4,120 +filigran_sseclient/__pycache__/__init__.cpython-312.pyc,, +filigran_sseclient/__pycache__/sseclient.cpython-312.pyc,, +filigran_sseclient/sseclient.py,sha256=Mlp6p4N5wP5T6eIAlfINw_JzDW1J42HzltflQ5lQh-U,7886 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/filigran_sseclient-1.0.2.dist-info/REQUESTED b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/filigran_sseclient-1.0.2.dist-info/REQUESTED new file mode 100644 index 0000000..e69de29 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/filigran_sseclient-1.0.2.dist-info/WHEEL b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/filigran_sseclient-1.0.2.dist-info/WHEEL new file mode 100644 index 0000000..ae527e7 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/filigran_sseclient-1.0.2.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: setuptools (75.6.0) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/filigran_sseclient-1.0.2.dist-info/top_level.txt b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/filigran_sseclient-1.0.2.dist-info/top_level.txt new file mode 100644 index 0000000..d644c37 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/filigran_sseclient-1.0.2.dist-info/top_level.txt @@ -0,0 +1 @@ +filigran_sseclient diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/filigran_sseclient/__init__.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/filigran_sseclient/__init__.py new file mode 100644 index 0000000..3642633 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/filigran_sseclient/__init__.py @@ -0,0 +1,8 @@ +# -*- coding: utf-8 -*- +__version__ = "1.0.2" + +from .sseclient import SSEClient + +__all__ = [ + "SSEClient", +] diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/filigran_sseclient/sseclient.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/filigran_sseclient/sseclient.py new file mode 100644 index 0000000..3ac7bce --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/filigran_sseclient/sseclient.py @@ -0,0 +1,226 @@ +#!/usr/bin/env python +"""client library for iterating over http Server Sent Event (SSE) streams""" +# +# Distributed under the terms of the MIT license. +# +from __future__ import unicode_literals + +import codecs +import re +import time +import warnings + +import six + +import requests + +__version__ = "1.0.0" + +# Technically, we should support streams that mix line endings. This regex, +# however, assumes that a system will provide consistent line endings. +end_of_field = re.compile(r"\r\n\r\n|\r\r|\n\n") + +# We only supports this newlines char to split message. Formatting could be present in data. +# b"\xc2\x85", # NEL +# b"\xe2\x80\xa8", # LineSeparator +# b"\xe2\x80\xa9", # ParagraphSeparator +# b"\v", # Line Tabulation +# b"\f", # Form Feed +# b"\x1c", File Separator +# b"\x1d", Group Separator +# b"\x1e", Record Separator +# see https://docs.python.org/3.11/library/stdtypes.html#str.splitlines +NEWLINE_MESSAGE_CHARS = b'\r\n', b'\n', b'\r', +DECODED_NEWLINE_MESSAGE_CHARS = [nc.decode('utf-8') for nc in NEWLINE_MESSAGE_CHARS] +SPLIT_PATTERN = re.compile('|'.join(map(re.escape, DECODED_NEWLINE_MESSAGE_CHARS))) + +class SSEClient(object): + def __init__( + self, url, last_id=None, retry=3000, session=None, chunk_size=1024, **kwargs + ): + self.url = url + self.last_id = last_id + self.retry = retry + self.chunk_size = chunk_size + + # Optional support for passing in a requests.Session() + self.session = session + + # Any extra kwargs will be fed into the requests.get call later. + self.requests_kwargs = kwargs + + # The SSE spec requires making requests with Cache-Control: nocache + if "headers" not in self.requests_kwargs: + self.requests_kwargs["headers"] = {} + self.requests_kwargs["headers"]["Cache-Control"] = "no-cache" + + # The 'Accept' header is not required, but explicit > implicit + self.requests_kwargs["headers"]["Accept"] = "text/event-stream" + + # Keep data here as it streams in + self.buf = "" + + self._connect() + + def _connect(self): + if self.last_id: + self.requests_kwargs["headers"]["Last-Event-ID"] = self.last_id + + # Use session if set. Otherwise fall back to requests module. + requester = self.session or requests + self.resp = requester.get(self.url, stream=True, **self.requests_kwargs) + transfer_encoding = self.resp.headers.get("transfer-encoding", "") + if transfer_encoding.lower() == "chunked": + self.resp_iterator = self.resp.iter_content(chunk_size=None) + else: + self.resp_iterator = self.iter_content() + encoding = self.resp.encoding or self.resp.apparent_encoding + self.decoder = codecs.getincrementaldecoder(encoding)(errors="replace") + + # TODO: Ensure we're handling redirects. Might also stick the 'origin' + # attribute on Events like the Javascript spec requires. + self.resp.raise_for_status() + + def iter_content(self): + def generate(): + while True: + if ( + hasattr(self.resp.raw, "_fp") + and hasattr(self.resp.raw._fp, "fp") + and hasattr(self.resp.raw._fp.fp, "read1") + ): + chunk = self.resp.raw._fp.fp.read1(self.chunk_size) + else: + # _fp is not available, this means that we cannot use short + # reads and this will block until the full chunk size is + # actually read + chunk = self.resp.raw.read(self.chunk_size) + if not chunk: + break + yield chunk + + return generate() + + def _event_complete(self): + return re.search(end_of_field, self.buf) is not None + + def __iter__(self): + return self + + def __next__(self): + while not self._event_complete(): + try: + next_chunk = next(self.resp_iterator) + if not next_chunk: + raise EOFError() + self.buf += self.decoder.decode(next_chunk) + + except ( + StopIteration, + requests.RequestException, + EOFError, + six.moves.http_client.IncompleteRead, + ) as e: + print(e) + time.sleep(self.retry / 1000.0) + self._connect() + + # The SSE spec only supports resuming from a whole message, so + # if we have half a message we should throw it out. + head, sep, tail = self.buf.rpartition("\n") + self.buf = head + sep + continue + + # Split the complete event (up to the end_of_field) into event_string, + # and retain anything after the current complete event in self.buf + # for next time. + (event_string, self.buf) = re.split(end_of_field, self.buf, maxsplit=1) + msg = Event.parse(event_string) + + # If the server requests a specific retry delay, we need to honor it. + if msg.retry: + self.retry = msg.retry + + # last_id should only be set if included in the message. It's not + # forgotten if a message omits it. + if msg.id: + self.last_id = msg.id + + return msg + + if six.PY2: + next = __next__ + + +class Event(object): + sse_line_pattern = re.compile("(?P[^:]*):?( ?(?P.*))?") + + def __init__(self, data="", event="message", id=None, retry=None): + assert isinstance(data, six.string_types), "Data must be text" + self.data = data + self.event = event + self.id = id + self.retry = retry + + def dump(self): + lines = [] + if self.id: + lines.append("id: %s" % self.id) + + # Only include an event line if it's not the default already. + if self.event != "message": + lines.append("event: %s" % self.event) + + if self.retry: + lines.append("retry: %s" % self.retry) + + lines.extend("data: %s" % d for d in self.data.split("\n")) + return "\n".join(lines) + "\n\n" + + @staticmethod + def splitlines(raw): + """ + Yield each line from the input string, split by the precompiled newline pattern. + """ + for line in SPLIT_PATTERN.split(raw): + if line: # Skip any empty results + yield line + + @classmethod + def parse(cls, raw): + """ + Given a possibly-multiline string representing an SSE message, parse it + and return a Event object. + """ + msg = cls() + for line in cls.splitlines(raw): + m = cls.sse_line_pattern.match(line) + if m is None: + # Malformed line. Discard but warn. + warnings.warn('Invalid SSE line: "%s"' % line, SyntaxWarning) + continue + + name = m.group("name") + if name == "": + # line began with a ":", so is a comment. Ignore + continue + value = m.group("value") + + if name == "data": + # If we already have some data, then join to it with a newline. + # Else this is it. + if msg.data: + msg.data = "%s\n%s" % (msg.data, value) + else: + msg.data = value + elif name == "event": + msg.event = value + elif name == "id": + msg.id = value + elif name == "retry": + msg.retry = int(value) + + return msg + + def __str__(self): + return self.data diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna-3.10.dist-info/INSTALLER b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna-3.10.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna-3.10.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna-3.10.dist-info/LICENSE.md b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna-3.10.dist-info/LICENSE.md new file mode 100644 index 0000000..19b6b45 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna-3.10.dist-info/LICENSE.md @@ -0,0 +1,31 @@ +BSD 3-Clause License + +Copyright (c) 2013-2024, Kim Davies and contributors. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna-3.10.dist-info/METADATA b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna-3.10.dist-info/METADATA new file mode 100644 index 0000000..c42623e --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna-3.10.dist-info/METADATA @@ -0,0 +1,250 @@ +Metadata-Version: 2.1 +Name: idna +Version: 3.10 +Summary: Internationalized Domain Names in Applications (IDNA) +Author-email: Kim Davies +Requires-Python: >=3.6 +Description-Content-Type: text/x-rst +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: Intended Audience :: System Administrators +Classifier: License :: OSI Approved :: BSD License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Topic :: Internet :: Name Service (DNS) +Classifier: Topic :: Software Development :: Libraries :: Python Modules +Classifier: Topic :: Utilities +Requires-Dist: ruff >= 0.6.2 ; extra == "all" +Requires-Dist: mypy >= 1.11.2 ; extra == "all" +Requires-Dist: pytest >= 8.3.2 ; extra == "all" +Requires-Dist: flake8 >= 7.1.1 ; extra == "all" +Project-URL: Changelog, https://github.com/kjd/idna/blob/master/HISTORY.rst +Project-URL: Issue tracker, https://github.com/kjd/idna/issues +Project-URL: Source, https://github.com/kjd/idna +Provides-Extra: all + +Internationalized Domain Names in Applications (IDNA) +===================================================== + +Support for the Internationalized Domain Names in +Applications (IDNA) protocol as specified in `RFC 5891 +`_. This is the latest version of +the protocol and is sometimes referred to as “IDNA 2008”. + +This library also provides support for Unicode Technical +Standard 46, `Unicode IDNA Compatibility Processing +`_. + +This acts as a suitable replacement for the “encodings.idna” +module that comes with the Python standard library, but which +only supports the older superseded IDNA specification (`RFC 3490 +`_). + +Basic functions are simply executed: + +.. code-block:: pycon + + >>> import idna + >>> idna.encode('ドメイン.テスト') + b'xn--eckwd4c7c.xn--zckzah' + >>> print(idna.decode('xn--eckwd4c7c.xn--zckzah')) + ドメイン.テスト + + +Installation +------------ + +This package is available for installation from PyPI: + +.. code-block:: bash + + $ python3 -m pip install idna + + +Usage +----- + +For typical usage, the ``encode`` and ``decode`` functions will take a +domain name argument and perform a conversion to A-labels or U-labels +respectively. + +.. code-block:: pycon + + >>> import idna + >>> idna.encode('ドメイン.テスト') + b'xn--eckwd4c7c.xn--zckzah' + >>> print(idna.decode('xn--eckwd4c7c.xn--zckzah')) + ドメイン.テスト + +You may use the codec encoding and decoding methods using the +``idna.codec`` module: + +.. code-block:: pycon + + >>> import idna.codec + >>> print('домен.испытание'.encode('idna2008')) + b'xn--d1acufc.xn--80akhbyknj4f' + >>> print(b'xn--d1acufc.xn--80akhbyknj4f'.decode('idna2008')) + домен.испытание + +Conversions can be applied at a per-label basis using the ``ulabel`` or +``alabel`` functions if necessary: + +.. code-block:: pycon + + >>> idna.alabel('测试') + b'xn--0zwm56d' + +Compatibility Mapping (UTS #46) ++++++++++++++++++++++++++++++++ + +As described in `RFC 5895 `_, the +IDNA specification does not normalize input from different potential +ways a user may input a domain name. This functionality, known as +a “mapping”, is considered by the specification to be a local +user-interface issue distinct from IDNA conversion functionality. + +This library provides one such mapping that was developed by the +Unicode Consortium. Known as `Unicode IDNA Compatibility Processing +`_, it provides for both a regular +mapping for typical applications, as well as a transitional mapping to +help migrate from older IDNA 2003 applications. Strings are +preprocessed according to Section 4.4 “Preprocessing for IDNA2008” +prior to the IDNA operations. + +For example, “Königsgäßchen” is not a permissible label as *LATIN +CAPITAL LETTER K* is not allowed (nor are capital letters in general). +UTS 46 will convert this into lower case prior to applying the IDNA +conversion. + +.. code-block:: pycon + + >>> import idna + >>> idna.encode('Königsgäßchen') + ... + idna.core.InvalidCodepoint: Codepoint U+004B at position 1 of 'Königsgäßchen' not allowed + >>> idna.encode('Königsgäßchen', uts46=True) + b'xn--knigsgchen-b4a3dun' + >>> print(idna.decode('xn--knigsgchen-b4a3dun')) + königsgäßchen + +Transitional processing provides conversions to help transition from +the older 2003 standard to the current standard. For example, in the +original IDNA specification, the *LATIN SMALL LETTER SHARP S* (ß) was +converted into two *LATIN SMALL LETTER S* (ss), whereas in the current +IDNA specification this conversion is not performed. + +.. code-block:: pycon + + >>> idna.encode('Königsgäßchen', uts46=True, transitional=True) + 'xn--knigsgsschen-lcb0w' + +Implementers should use transitional processing with caution, only in +rare cases where conversion from legacy labels to current labels must be +performed (i.e. IDNA implementations that pre-date 2008). For typical +applications that just need to convert labels, transitional processing +is unlikely to be beneficial and could produce unexpected incompatible +results. + +``encodings.idna`` Compatibility +++++++++++++++++++++++++++++++++ + +Function calls from the Python built-in ``encodings.idna`` module are +mapped to their IDNA 2008 equivalents using the ``idna.compat`` module. +Simply substitute the ``import`` clause in your code to refer to the new +module name. + +Exceptions +---------- + +All errors raised during the conversion following the specification +should raise an exception derived from the ``idna.IDNAError`` base +class. + +More specific exceptions that may be generated as ``idna.IDNABidiError`` +when the error reflects an illegal combination of left-to-right and +right-to-left characters in a label; ``idna.InvalidCodepoint`` when +a specific codepoint is an illegal character in an IDN label (i.e. +INVALID); and ``idna.InvalidCodepointContext`` when the codepoint is +illegal based on its positional context (i.e. it is CONTEXTO or CONTEXTJ +but the contextual requirements are not satisfied.) + +Building and Diagnostics +------------------------ + +The IDNA and UTS 46 functionality relies upon pre-calculated lookup +tables for performance. These tables are derived from computing against +eligibility criteria in the respective standards. These tables are +computed using the command-line script ``tools/idna-data``. + +This tool will fetch relevant codepoint data from the Unicode repository +and perform the required calculations to identify eligibility. There are +three main modes: + +* ``idna-data make-libdata``. Generates ``idnadata.py`` and + ``uts46data.py``, the pre-calculated lookup tables used for IDNA and + UTS 46 conversions. Implementers who wish to track this library against + a different Unicode version may use this tool to manually generate a + different version of the ``idnadata.py`` and ``uts46data.py`` files. + +* ``idna-data make-table``. Generate a table of the IDNA disposition + (e.g. PVALID, CONTEXTJ, CONTEXTO) in the format found in Appendix + B.1 of RFC 5892 and the pre-computed tables published by `IANA + `_. + +* ``idna-data U+0061``. Prints debugging output on the various + properties associated with an individual Unicode codepoint (in this + case, U+0061), that are used to assess the IDNA and UTS 46 status of a + codepoint. This is helpful in debugging or analysis. + +The tool accepts a number of arguments, described using ``idna-data +-h``. Most notably, the ``--version`` argument allows the specification +of the version of Unicode to be used in computing the table data. For +example, ``idna-data --version 9.0.0 make-libdata`` will generate +library data against Unicode 9.0.0. + + +Additional Notes +---------------- + +* **Packages**. The latest tagged release version is published in the + `Python Package Index `_. + +* **Version support**. This library supports Python 3.6 and higher. + As this library serves as a low-level toolkit for a variety of + applications, many of which strive for broad compatibility with older + Python versions, there is no rush to remove older interpreter support. + Removing support for older versions should be well justified in that the + maintenance burden has become too high. + +* **Python 2**. Python 2 is supported by version 2.x of this library. + Use "idna<3" in your requirements file if you need this library for + a Python 2 application. Be advised that these versions are no longer + actively developed. + +* **Testing**. The library has a test suite based on each rule of the + IDNA specification, as well as tests that are provided as part of the + Unicode Technical Standard 46, `Unicode IDNA Compatibility Processing + `_. + +* **Emoji**. It is an occasional request to support emoji domains in + this library. Encoding of symbols like emoji is expressly prohibited by + the technical standard IDNA 2008 and emoji domains are broadly phased + out across the domain industry due to associated security risks. For + now, applications that need to support these non-compliant labels + may wish to consider trying the encode/decode operation in this library + first, and then falling back to using `encodings.idna`. See `the Github + project `_ for more discussion. + diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna-3.10.dist-info/RECORD b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna-3.10.dist-info/RECORD new file mode 100644 index 0000000..e5d08b7 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna-3.10.dist-info/RECORD @@ -0,0 +1,14 @@ +idna-3.10.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +idna-3.10.dist-info/LICENSE.md,sha256=pZ8LDvNjWHQQmkRhykT_enDVBpboFHZ7-vch1Mmw2w8,1541 +idna-3.10.dist-info/METADATA,sha256=URR5ZyDfQ1PCEGhkYoojqfi2Ra0tau2--lhwG4XSfjI,10158 +idna-3.10.dist-info/RECORD,, +idna-3.10.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81 +idna/__init__.py,sha256=MPqNDLZbXqGaNdXxAFhiqFPKEQXju2jNQhCey6-5eJM,868 +idna/codec.py,sha256=PEew3ItwzjW4hymbasnty2N2OXvNcgHB-JjrBuxHPYY,3422 +idna/compat.py,sha256=RzLy6QQCdl9784aFhb2EX9EKGCJjg0P3PilGdeXXcx8,316 +idna/core.py,sha256=YJYyAMnwiQEPjVC4-Fqu_p4CJ6yKKuDGmppBNQNQpFs,13239 +idna/idnadata.py,sha256=W30GcIGvtOWYwAjZj4ZjuouUutC6ffgNuyjJy7fZ-lo,78306 +idna/intranges.py,sha256=amUtkdhYcQG8Zr-CoMM_kVRacxkivC1WgxN1b63KKdU,1898 +idna/package_data.py,sha256=q59S3OXsc5VI8j6vSD0sGBMyk6zZ4vWFREE88yCJYKs,21 +idna/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +idna/uts46data.py,sha256=rt90K9J40gUSwppDPCrhjgi5AA6pWM65dEGRSf6rIhM,239289 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna-3.10.dist-info/WHEEL b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna-3.10.dist-info/WHEEL new file mode 100644 index 0000000..3b5e64b --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna-3.10.dist-info/WHEEL @@ -0,0 +1,4 @@ +Wheel-Version: 1.0 +Generator: flit 3.9.0 +Root-Is-Purelib: true +Tag: py3-none-any diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna-3.6.dist-info/INSTALLER b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna-3.6.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna-3.6.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna-3.6.dist-info/LICENSE.md b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna-3.6.dist-info/LICENSE.md new file mode 100644 index 0000000..ce36701 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna-3.6.dist-info/LICENSE.md @@ -0,0 +1,31 @@ +BSD 3-Clause License + +Copyright (c) 2013-2023, Kim Davies and contributors. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna-3.6.dist-info/METADATA b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna-3.6.dist-info/METADATA new file mode 100644 index 0000000..9be8060 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna-3.6.dist-info/METADATA @@ -0,0 +1,243 @@ +Metadata-Version: 2.1 +Name: idna +Version: 3.6 +Summary: Internationalized Domain Names in Applications (IDNA) +Author-email: Kim Davies +Requires-Python: >=3.5 +Description-Content-Type: text/x-rst +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: Intended Audience :: System Administrators +Classifier: License :: OSI Approved :: BSD License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Topic :: Internet :: Name Service (DNS) +Classifier: Topic :: Software Development :: Libraries :: Python Modules +Classifier: Topic :: Utilities +Project-URL: Changelog, https://github.com/kjd/idna/blob/master/HISTORY.rst +Project-URL: Issue tracker, https://github.com/kjd/idna/issues +Project-URL: Source, https://github.com/kjd/idna + +Internationalized Domain Names in Applications (IDNA) +===================================================== + +Support for the Internationalized Domain Names in +Applications (IDNA) protocol as specified in `RFC 5891 +`_. This is the latest version of +the protocol and is sometimes referred to as “IDNA 2008”. + +This library also provides support for Unicode Technical +Standard 46, `Unicode IDNA Compatibility Processing +`_. + +This acts as a suitable replacement for the “encodings.idna” +module that comes with the Python standard library, but which +only supports the older superseded IDNA specification (`RFC 3490 +`_). + +Basic functions are simply executed: + +.. code-block:: pycon + + >>> import idna + >>> idna.encode('ドメイン.テスト') + b'xn--eckwd4c7c.xn--zckzah' + >>> print(idna.decode('xn--eckwd4c7c.xn--zckzah')) + ドメイン.テスト + + +Installation +------------ + +This package is available for installation from PyPI: + +.. code-block:: bash + + $ python3 -m pip install idna + + +Usage +----- + +For typical usage, the ``encode`` and ``decode`` functions will take a +domain name argument and perform a conversion to A-labels or U-labels +respectively. + +.. code-block:: pycon + + >>> import idna + >>> idna.encode('ドメイン.テスト') + b'xn--eckwd4c7c.xn--zckzah' + >>> print(idna.decode('xn--eckwd4c7c.xn--zckzah')) + ドメイン.テスト + +You may use the codec encoding and decoding methods using the +``idna.codec`` module: + +.. code-block:: pycon + + >>> import idna.codec + >>> print('домен.испытание'.encode('idna2008')) + b'xn--d1acufc.xn--80akhbyknj4f' + >>> print(b'xn--d1acufc.xn--80akhbyknj4f'.decode('idna2008')) + домен.испытание + +Conversions can be applied at a per-label basis using the ``ulabel`` or +``alabel`` functions if necessary: + +.. code-block:: pycon + + >>> idna.alabel('测试') + b'xn--0zwm56d' + +Compatibility Mapping (UTS #46) ++++++++++++++++++++++++++++++++ + +As described in `RFC 5895 `_, the +IDNA specification does not normalize input from different potential +ways a user may input a domain name. This functionality, known as +a “mapping”, is considered by the specification to be a local +user-interface issue distinct from IDNA conversion functionality. + +This library provides one such mapping that was developed by the +Unicode Consortium. Known as `Unicode IDNA Compatibility Processing +`_, it provides for both a regular +mapping for typical applications, as well as a transitional mapping to +help migrate from older IDNA 2003 applications. + +For example, “Königsgäßchen” is not a permissible label as *LATIN +CAPITAL LETTER K* is not allowed (nor are capital letters in general). +UTS 46 will convert this into lower case prior to applying the IDNA +conversion. + +.. code-block:: pycon + + >>> import idna + >>> idna.encode('Königsgäßchen') + ... + idna.core.InvalidCodepoint: Codepoint U+004B at position 1 of 'Königsgäßchen' not allowed + >>> idna.encode('Königsgäßchen', uts46=True) + b'xn--knigsgchen-b4a3dun' + >>> print(idna.decode('xn--knigsgchen-b4a3dun')) + königsgäßchen + +Transitional processing provides conversions to help transition from +the older 2003 standard to the current standard. For example, in the +original IDNA specification, the *LATIN SMALL LETTER SHARP S* (ß) was +converted into two *LATIN SMALL LETTER S* (ss), whereas in the current +IDNA specification this conversion is not performed. + +.. code-block:: pycon + + >>> idna.encode('Königsgäßchen', uts46=True, transitional=True) + 'xn--knigsgsschen-lcb0w' + +Implementers should use transitional processing with caution, only in +rare cases where conversion from legacy labels to current labels must be +performed (i.e. IDNA implementations that pre-date 2008). For typical +applications that just need to convert labels, transitional processing +is unlikely to be beneficial and could produce unexpected incompatible +results. + +``encodings.idna`` Compatibility +++++++++++++++++++++++++++++++++ + +Function calls from the Python built-in ``encodings.idna`` module are +mapped to their IDNA 2008 equivalents using the ``idna.compat`` module. +Simply substitute the ``import`` clause in your code to refer to the new +module name. + +Exceptions +---------- + +All errors raised during the conversion following the specification +should raise an exception derived from the ``idna.IDNAError`` base +class. + +More specific exceptions that may be generated as ``idna.IDNABidiError`` +when the error reflects an illegal combination of left-to-right and +right-to-left characters in a label; ``idna.InvalidCodepoint`` when +a specific codepoint is an illegal character in an IDN label (i.e. +INVALID); and ``idna.InvalidCodepointContext`` when the codepoint is +illegal based on its positional context (i.e. it is CONTEXTO or CONTEXTJ +but the contextual requirements are not satisfied.) + +Building and Diagnostics +------------------------ + +The IDNA and UTS 46 functionality relies upon pre-calculated lookup +tables for performance. These tables are derived from computing against +eligibility criteria in the respective standards. These tables are +computed using the command-line script ``tools/idna-data``. + +This tool will fetch relevant codepoint data from the Unicode repository +and perform the required calculations to identify eligibility. There are +three main modes: + +* ``idna-data make-libdata``. Generates ``idnadata.py`` and + ``uts46data.py``, the pre-calculated lookup tables used for IDNA and + UTS 46 conversions. Implementers who wish to track this library against + a different Unicode version may use this tool to manually generate a + different version of the ``idnadata.py`` and ``uts46data.py`` files. + +* ``idna-data make-table``. Generate a table of the IDNA disposition + (e.g. PVALID, CONTEXTJ, CONTEXTO) in the format found in Appendix + B.1 of RFC 5892 and the pre-computed tables published by `IANA + `_. + +* ``idna-data U+0061``. Prints debugging output on the various + properties associated with an individual Unicode codepoint (in this + case, U+0061), that are used to assess the IDNA and UTS 46 status of a + codepoint. This is helpful in debugging or analysis. + +The tool accepts a number of arguments, described using ``idna-data +-h``. Most notably, the ``--version`` argument allows the specification +of the version of Unicode to be used in computing the table data. For +example, ``idna-data --version 9.0.0 make-libdata`` will generate +library data against Unicode 9.0.0. + + +Additional Notes +---------------- + +* **Packages**. The latest tagged release version is published in the + `Python Package Index `_. + +* **Version support**. This library supports Python 3.5 and higher. + As this library serves as a low-level toolkit for a variety of + applications, many of which strive for broad compatibility with older + Python versions, there is no rush to remove older interpreter support. + Removing support for older versions should be well justified in that the + maintenance burden has become too high. + +* **Python 2**. Python 2 is supported by version 2.x of this library. + While active development of the version 2.x series has ended, notable + issues being corrected may be backported to 2.x. Use "idna<3" in your + requirements file if you need this library for a Python 2 application. + +* **Testing**. The library has a test suite based on each rule of the + IDNA specification, as well as tests that are provided as part of the + Unicode Technical Standard 46, `Unicode IDNA Compatibility Processing + `_. + +* **Emoji**. It is an occasional request to support emoji domains in + this library. Encoding of symbols like emoji is expressly prohibited by + the technical standard IDNA 2008 and emoji domains are broadly phased + out across the domain industry due to associated security risks. For + now, applications that need to support these non-compliant labels + may wish to consider trying the encode/decode operation in this library + first, and then falling back to using `encodings.idna`. See `the Github + project `_ for more discussion. + diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna-3.6.dist-info/RECORD b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna-3.6.dist-info/RECORD new file mode 100644 index 0000000..e5f7b89 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna-3.6.dist-info/RECORD @@ -0,0 +1,14 @@ +idna-3.6.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +idna-3.6.dist-info/LICENSE.md,sha256=yy-vDKGMbTh-x8tm8yGTn7puZ-nawJ0xR3y52NP-aJk,1541 +idna-3.6.dist-info/METADATA,sha256=N93B509dkvvkd_Y0E_VxCHPkVkrD6InxoyfXvX4egds,9888 +idna-3.6.dist-info/RECORD,, +idna-3.6.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81 +idna/__init__.py,sha256=KJQN1eQBr8iIK5SKrJ47lXvxG0BJ7Lm38W4zT0v_8lk,849 +idna/codec.py,sha256=PS6m-XmdST7Wj7J7ulRMakPDt5EBJyYrT3CPtjh-7t4,3426 +idna/compat.py,sha256=0_sOEUMT4CVw9doD3vyRhX80X19PwqFoUBs7gWsFME4,321 +idna/core.py,sha256=Bxz9L1rH0N5U-yukGfPuDRTxR2jDUl96NCq1ql3YAUw,12908 +idna/idnadata.py,sha256=9u3Ec_GRrhlcbs7QM3pAZ2ObEQzPIOm99FaVOm91UGg,44351 +idna/intranges.py,sha256=YBr4fRYuWH7kTKS2tXlFjM24ZF1Pdvcir-aywniInqg,1881 +idna/package_data.py,sha256=y-iv-qJdmHsWVR5FszYwsMo1AQg8qpdU2aU5nT-S2oQ,21 +idna/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +idna/uts46data.py,sha256=1KuksWqLuccPXm2uyRVkhfiFLNIhM_H2m4azCcnOqEU,206503 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna-3.6.dist-info/WHEEL b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna-3.6.dist-info/WHEEL new file mode 100644 index 0000000..3b5e64b --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna-3.6.dist-info/WHEEL @@ -0,0 +1,4 @@ +Wheel-Version: 1.0 +Generator: flit 3.9.0 +Root-Is-Purelib: true +Tag: py3-none-any diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna/__init__.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna/__init__.py new file mode 100644 index 0000000..cfdc030 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna/__init__.py @@ -0,0 +1,45 @@ +from .core import ( + IDNABidiError, + IDNAError, + InvalidCodepoint, + InvalidCodepointContext, + alabel, + check_bidi, + check_hyphen_ok, + check_initial_combiner, + check_label, + check_nfc, + decode, + encode, + ulabel, + uts46_remap, + valid_contextj, + valid_contexto, + valid_label_length, + valid_string_length, +) +from .intranges import intranges_contain +from .package_data import __version__ + +__all__ = [ + "__version__", + "IDNABidiError", + "IDNAError", + "InvalidCodepoint", + "InvalidCodepointContext", + "alabel", + "check_bidi", + "check_hyphen_ok", + "check_initial_combiner", + "check_label", + "check_nfc", + "decode", + "encode", + "intranges_contain", + "ulabel", + "uts46_remap", + "valid_contextj", + "valid_contexto", + "valid_label_length", + "valid_string_length", +] diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna/codec.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna/codec.py new file mode 100644 index 0000000..913abfd --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna/codec.py @@ -0,0 +1,122 @@ +import codecs +import re +from typing import Any, Optional, Tuple + +from .core import IDNAError, alabel, decode, encode, ulabel + +_unicode_dots_re = re.compile("[\u002e\u3002\uff0e\uff61]") + + +class Codec(codecs.Codec): + def encode(self, data: str, errors: str = "strict") -> Tuple[bytes, int]: + if errors != "strict": + raise IDNAError('Unsupported error handling "{}"'.format(errors)) + + if not data: + return b"", 0 + + return encode(data), len(data) + + def decode(self, data: bytes, errors: str = "strict") -> Tuple[str, int]: + if errors != "strict": + raise IDNAError('Unsupported error handling "{}"'.format(errors)) + + if not data: + return "", 0 + + return decode(data), len(data) + + +class IncrementalEncoder(codecs.BufferedIncrementalEncoder): + def _buffer_encode(self, data: str, errors: str, final: bool) -> Tuple[bytes, int]: + if errors != "strict": + raise IDNAError('Unsupported error handling "{}"'.format(errors)) + + if not data: + return b"", 0 + + labels = _unicode_dots_re.split(data) + trailing_dot = b"" + if labels: + if not labels[-1]: + trailing_dot = b"." + del labels[-1] + elif not final: + # Keep potentially unfinished label until the next call + del labels[-1] + if labels: + trailing_dot = b"." + + result = [] + size = 0 + for label in labels: + result.append(alabel(label)) + if size: + size += 1 + size += len(label) + + # Join with U+002E + result_bytes = b".".join(result) + trailing_dot + size += len(trailing_dot) + return result_bytes, size + + +class IncrementalDecoder(codecs.BufferedIncrementalDecoder): + def _buffer_decode(self, data: Any, errors: str, final: bool) -> Tuple[str, int]: + if errors != "strict": + raise IDNAError('Unsupported error handling "{}"'.format(errors)) + + if not data: + return ("", 0) + + if not isinstance(data, str): + data = str(data, "ascii") + + labels = _unicode_dots_re.split(data) + trailing_dot = "" + if labels: + if not labels[-1]: + trailing_dot = "." + del labels[-1] + elif not final: + # Keep potentially unfinished label until the next call + del labels[-1] + if labels: + trailing_dot = "." + + result = [] + size = 0 + for label in labels: + result.append(ulabel(label)) + if size: + size += 1 + size += len(label) + + result_str = ".".join(result) + trailing_dot + size += len(trailing_dot) + return (result_str, size) + + +class StreamWriter(Codec, codecs.StreamWriter): + pass + + +class StreamReader(Codec, codecs.StreamReader): + pass + + +def search_function(name: str) -> Optional[codecs.CodecInfo]: + if name != "idna2008": + return None + return codecs.CodecInfo( + name=name, + encode=Codec().encode, + decode=Codec().decode, + incrementalencoder=IncrementalEncoder, + incrementaldecoder=IncrementalDecoder, + streamwriter=StreamWriter, + streamreader=StreamReader, + ) + + +codecs.register(search_function) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna/compat.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna/compat.py new file mode 100644 index 0000000..1df9f2a --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna/compat.py @@ -0,0 +1,15 @@ +from typing import Any, Union + +from .core import decode, encode + + +def ToASCII(label: str) -> bytes: + return encode(label) + + +def ToUnicode(label: Union[bytes, bytearray]) -> str: + return decode(label) + + +def nameprep(s: Any) -> None: + raise NotImplementedError("IDNA 2008 does not utilise nameprep protocol") diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna/core.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna/core.py new file mode 100644 index 0000000..9115f12 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna/core.py @@ -0,0 +1,437 @@ +import bisect +import re +import unicodedata +from typing import Optional, Union + +from . import idnadata +from .intranges import intranges_contain + +_virama_combining_class = 9 +_alabel_prefix = b"xn--" +_unicode_dots_re = re.compile("[\u002e\u3002\uff0e\uff61]") + + +class IDNAError(UnicodeError): + """Base exception for all IDNA-encoding related problems""" + + pass + + +class IDNABidiError(IDNAError): + """Exception when bidirectional requirements are not satisfied""" + + pass + + +class InvalidCodepoint(IDNAError): + """Exception when a disallowed or unallocated codepoint is used""" + + pass + + +class InvalidCodepointContext(IDNAError): + """Exception when the codepoint is not valid in the context it is used""" + + pass + + +def _combining_class(cp: int) -> int: + v = unicodedata.combining(chr(cp)) + if v == 0: + if not unicodedata.name(chr(cp)): + raise ValueError("Unknown character in unicodedata") + return v + + +def _is_script(cp: str, script: str) -> bool: + return intranges_contain(ord(cp), idnadata.scripts[script]) + + +def _punycode(s: str) -> bytes: + return s.encode("punycode") + + +def _unot(s: int) -> str: + return "U+{:04X}".format(s) + + +def valid_label_length(label: Union[bytes, str]) -> bool: + if len(label) > 63: + return False + return True + + +def valid_string_length(label: Union[bytes, str], trailing_dot: bool) -> bool: + if len(label) > (254 if trailing_dot else 253): + return False + return True + + +def check_bidi(label: str, check_ltr: bool = False) -> bool: + # Bidi rules should only be applied if string contains RTL characters + bidi_label = False + for idx, cp in enumerate(label, 1): + direction = unicodedata.bidirectional(cp) + if direction == "": + # String likely comes from a newer version of Unicode + raise IDNABidiError("Unknown directionality in label {} at position {}".format(repr(label), idx)) + if direction in ["R", "AL", "AN"]: + bidi_label = True + if not bidi_label and not check_ltr: + return True + + # Bidi rule 1 + direction = unicodedata.bidirectional(label[0]) + if direction in ["R", "AL"]: + rtl = True + elif direction == "L": + rtl = False + else: + raise IDNABidiError("First codepoint in label {} must be directionality L, R or AL".format(repr(label))) + + valid_ending = False + number_type: Optional[str] = None + for idx, cp in enumerate(label, 1): + direction = unicodedata.bidirectional(cp) + + if rtl: + # Bidi rule 2 + if direction not in [ + "R", + "AL", + "AN", + "EN", + "ES", + "CS", + "ET", + "ON", + "BN", + "NSM", + ]: + raise IDNABidiError("Invalid direction for codepoint at position {} in a right-to-left label".format(idx)) + # Bidi rule 3 + if direction in ["R", "AL", "EN", "AN"]: + valid_ending = True + elif direction != "NSM": + valid_ending = False + # Bidi rule 4 + if direction in ["AN", "EN"]: + if not number_type: + number_type = direction + else: + if number_type != direction: + raise IDNABidiError("Can not mix numeral types in a right-to-left label") + else: + # Bidi rule 5 + if direction not in ["L", "EN", "ES", "CS", "ET", "ON", "BN", "NSM"]: + raise IDNABidiError("Invalid direction for codepoint at position {} in a left-to-right label".format(idx)) + # Bidi rule 6 + if direction in ["L", "EN"]: + valid_ending = True + elif direction != "NSM": + valid_ending = False + + if not valid_ending: + raise IDNABidiError("Label ends with illegal codepoint directionality") + + return True + + +def check_initial_combiner(label: str) -> bool: + if unicodedata.category(label[0])[0] == "M": + raise IDNAError("Label begins with an illegal combining character") + return True + + +def check_hyphen_ok(label: str) -> bool: + if label[2:4] == "--": + raise IDNAError("Label has disallowed hyphens in 3rd and 4th position") + if label[0] == "-" or label[-1] == "-": + raise IDNAError("Label must not start or end with a hyphen") + return True + + +def check_nfc(label: str) -> None: + if unicodedata.normalize("NFC", label) != label: + raise IDNAError("Label must be in Normalization Form C") + + +def valid_contextj(label: str, pos: int) -> bool: + cp_value = ord(label[pos]) + + if cp_value == 0x200C: + if pos > 0: + if _combining_class(ord(label[pos - 1])) == _virama_combining_class: + return True + + ok = False + for i in range(pos - 1, -1, -1): + joining_type = idnadata.joining_types.get(ord(label[i])) + if joining_type == ord("T"): + continue + elif joining_type in [ord("L"), ord("D")]: + ok = True + break + else: + break + + if not ok: + return False + + ok = False + for i in range(pos + 1, len(label)): + joining_type = idnadata.joining_types.get(ord(label[i])) + if joining_type == ord("T"): + continue + elif joining_type in [ord("R"), ord("D")]: + ok = True + break + else: + break + return ok + + if cp_value == 0x200D: + if pos > 0: + if _combining_class(ord(label[pos - 1])) == _virama_combining_class: + return True + return False + + else: + return False + + +def valid_contexto(label: str, pos: int, exception: bool = False) -> bool: + cp_value = ord(label[pos]) + + if cp_value == 0x00B7: + if 0 < pos < len(label) - 1: + if ord(label[pos - 1]) == 0x006C and ord(label[pos + 1]) == 0x006C: + return True + return False + + elif cp_value == 0x0375: + if pos < len(label) - 1 and len(label) > 1: + return _is_script(label[pos + 1], "Greek") + return False + + elif cp_value == 0x05F3 or cp_value == 0x05F4: + if pos > 0: + return _is_script(label[pos - 1], "Hebrew") + return False + + elif cp_value == 0x30FB: + for cp in label: + if cp == "\u30fb": + continue + if _is_script(cp, "Hiragana") or _is_script(cp, "Katakana") or _is_script(cp, "Han"): + return True + return False + + elif 0x660 <= cp_value <= 0x669: + for cp in label: + if 0x6F0 <= ord(cp) <= 0x06F9: + return False + return True + + elif 0x6F0 <= cp_value <= 0x6F9: + for cp in label: + if 0x660 <= ord(cp) <= 0x0669: + return False + return True + + return False + + +def check_label(label: Union[str, bytes, bytearray]) -> None: + if isinstance(label, (bytes, bytearray)): + label = label.decode("utf-8") + if len(label) == 0: + raise IDNAError("Empty Label") + + check_nfc(label) + check_hyphen_ok(label) + check_initial_combiner(label) + + for pos, cp in enumerate(label): + cp_value = ord(cp) + if intranges_contain(cp_value, idnadata.codepoint_classes["PVALID"]): + continue + elif intranges_contain(cp_value, idnadata.codepoint_classes["CONTEXTJ"]): + try: + if not valid_contextj(label, pos): + raise InvalidCodepointContext( + "Joiner {} not allowed at position {} in {}".format(_unot(cp_value), pos + 1, repr(label)) + ) + except ValueError: + raise IDNAError( + "Unknown codepoint adjacent to joiner {} at position {} in {}".format( + _unot(cp_value), pos + 1, repr(label) + ) + ) + elif intranges_contain(cp_value, idnadata.codepoint_classes["CONTEXTO"]): + if not valid_contexto(label, pos): + raise InvalidCodepointContext( + "Codepoint {} not allowed at position {} in {}".format(_unot(cp_value), pos + 1, repr(label)) + ) + else: + raise InvalidCodepoint( + "Codepoint {} at position {} of {} not allowed".format(_unot(cp_value), pos + 1, repr(label)) + ) + + check_bidi(label) + + +def alabel(label: str) -> bytes: + try: + label_bytes = label.encode("ascii") + ulabel(label_bytes) + if not valid_label_length(label_bytes): + raise IDNAError("Label too long") + return label_bytes + except UnicodeEncodeError: + pass + + check_label(label) + label_bytes = _alabel_prefix + _punycode(label) + + if not valid_label_length(label_bytes): + raise IDNAError("Label too long") + + return label_bytes + + +def ulabel(label: Union[str, bytes, bytearray]) -> str: + if not isinstance(label, (bytes, bytearray)): + try: + label_bytes = label.encode("ascii") + except UnicodeEncodeError: + check_label(label) + return label + else: + label_bytes = label + + label_bytes = label_bytes.lower() + if label_bytes.startswith(_alabel_prefix): + label_bytes = label_bytes[len(_alabel_prefix) :] + if not label_bytes: + raise IDNAError("Malformed A-label, no Punycode eligible content found") + if label_bytes.decode("ascii")[-1] == "-": + raise IDNAError("A-label must not end with a hyphen") + else: + check_label(label_bytes) + return label_bytes.decode("ascii") + + try: + label = label_bytes.decode("punycode") + except UnicodeError: + raise IDNAError("Invalid A-label") + check_label(label) + return label + + +def uts46_remap(domain: str, std3_rules: bool = True, transitional: bool = False) -> str: + """Re-map the characters in the string according to UTS46 processing.""" + from .uts46data import uts46data + + output = "" + + for pos, char in enumerate(domain): + code_point = ord(char) + try: + uts46row = uts46data[code_point if code_point < 256 else bisect.bisect_left(uts46data, (code_point, "Z")) - 1] + status = uts46row[1] + replacement: Optional[str] = None + if len(uts46row) == 3: + replacement = uts46row[2] + if ( + status == "V" + or (status == "D" and not transitional) + or (status == "3" and not std3_rules and replacement is None) + ): + output += char + elif replacement is not None and ( + status == "M" or (status == "3" and not std3_rules) or (status == "D" and transitional) + ): + output += replacement + elif status != "I": + raise IndexError() + except IndexError: + raise InvalidCodepoint( + "Codepoint {} not allowed at position {} in {}".format(_unot(code_point), pos + 1, repr(domain)) + ) + + return unicodedata.normalize("NFC", output) + + +def encode( + s: Union[str, bytes, bytearray], + strict: bool = False, + uts46: bool = False, + std3_rules: bool = False, + transitional: bool = False, +) -> bytes: + if not isinstance(s, str): + try: + s = str(s, "ascii") + except UnicodeDecodeError: + raise IDNAError("should pass a unicode string to the function rather than a byte string.") + if uts46: + s = uts46_remap(s, std3_rules, transitional) + trailing_dot = False + result = [] + if strict: + labels = s.split(".") + else: + labels = _unicode_dots_re.split(s) + if not labels or labels == [""]: + raise IDNAError("Empty domain") + if labels[-1] == "": + del labels[-1] + trailing_dot = True + for label in labels: + s = alabel(label) + if s: + result.append(s) + else: + raise IDNAError("Empty label") + if trailing_dot: + result.append(b"") + s = b".".join(result) + if not valid_string_length(s, trailing_dot): + raise IDNAError("Domain too long") + return s + + +def decode( + s: Union[str, bytes, bytearray], + strict: bool = False, + uts46: bool = False, + std3_rules: bool = False, +) -> str: + try: + if not isinstance(s, str): + s = str(s, "ascii") + except UnicodeDecodeError: + raise IDNAError("Invalid ASCII in A-label") + if uts46: + s = uts46_remap(s, std3_rules, False) + trailing_dot = False + result = [] + if not strict: + labels = _unicode_dots_re.split(s) + else: + labels = s.split(".") + if not labels or labels == [""]: + raise IDNAError("Empty domain") + if not labels[-1]: + del labels[-1] + trailing_dot = True + for label in labels: + s = ulabel(label) + if s: + result.append(s) + else: + raise IDNAError("Empty label") + if trailing_dot: + result.append("") + return ".".join(result) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna/idnadata.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna/idnadata.py new file mode 100644 index 0000000..4be6004 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna/idnadata.py @@ -0,0 +1,4243 @@ +# This file is automatically generated by tools/idna-data + +__version__ = "15.1.0" +scripts = { + "Greek": ( + 0x37000000374, + 0x37500000378, + 0x37A0000037E, + 0x37F00000380, + 0x38400000385, + 0x38600000387, + 0x3880000038B, + 0x38C0000038D, + 0x38E000003A2, + 0x3A3000003E2, + 0x3F000000400, + 0x1D2600001D2B, + 0x1D5D00001D62, + 0x1D6600001D6B, + 0x1DBF00001DC0, + 0x1F0000001F16, + 0x1F1800001F1E, + 0x1F2000001F46, + 0x1F4800001F4E, + 0x1F5000001F58, + 0x1F5900001F5A, + 0x1F5B00001F5C, + 0x1F5D00001F5E, + 0x1F5F00001F7E, + 0x1F8000001FB5, + 0x1FB600001FC5, + 0x1FC600001FD4, + 0x1FD600001FDC, + 0x1FDD00001FF0, + 0x1FF200001FF5, + 0x1FF600001FFF, + 0x212600002127, + 0xAB650000AB66, + 0x101400001018F, + 0x101A0000101A1, + 0x1D2000001D246, + ), + "Han": ( + 0x2E8000002E9A, + 0x2E9B00002EF4, + 0x2F0000002FD6, + 0x300500003006, + 0x300700003008, + 0x30210000302A, + 0x30380000303C, + 0x340000004DC0, + 0x4E000000A000, + 0xF9000000FA6E, + 0xFA700000FADA, + 0x16FE200016FE4, + 0x16FF000016FF2, + 0x200000002A6E0, + 0x2A7000002B73A, + 0x2B7400002B81E, + 0x2B8200002CEA2, + 0x2CEB00002EBE1, + 0x2EBF00002EE5E, + 0x2F8000002FA1E, + 0x300000003134B, + 0x31350000323B0, + ), + "Hebrew": ( + 0x591000005C8, + 0x5D0000005EB, + 0x5EF000005F5, + 0xFB1D0000FB37, + 0xFB380000FB3D, + 0xFB3E0000FB3F, + 0xFB400000FB42, + 0xFB430000FB45, + 0xFB460000FB50, + ), + "Hiragana": ( + 0x304100003097, + 0x309D000030A0, + 0x1B0010001B120, + 0x1B1320001B133, + 0x1B1500001B153, + 0x1F2000001F201, + ), + "Katakana": ( + 0x30A1000030FB, + 0x30FD00003100, + 0x31F000003200, + 0x32D0000032FF, + 0x330000003358, + 0xFF660000FF70, + 0xFF710000FF9E, + 0x1AFF00001AFF4, + 0x1AFF50001AFFC, + 0x1AFFD0001AFFF, + 0x1B0000001B001, + 0x1B1200001B123, + 0x1B1550001B156, + 0x1B1640001B168, + ), +} +joining_types = { + 0xAD: 84, + 0x300: 84, + 0x301: 84, + 0x302: 84, + 0x303: 84, + 0x304: 84, + 0x305: 84, + 0x306: 84, + 0x307: 84, + 0x308: 84, + 0x309: 84, + 0x30A: 84, + 0x30B: 84, + 0x30C: 84, + 0x30D: 84, + 0x30E: 84, + 0x30F: 84, + 0x310: 84, + 0x311: 84, + 0x312: 84, + 0x313: 84, + 0x314: 84, + 0x315: 84, + 0x316: 84, + 0x317: 84, + 0x318: 84, + 0x319: 84, + 0x31A: 84, + 0x31B: 84, + 0x31C: 84, + 0x31D: 84, + 0x31E: 84, + 0x31F: 84, + 0x320: 84, + 0x321: 84, + 0x322: 84, + 0x323: 84, + 0x324: 84, + 0x325: 84, + 0x326: 84, + 0x327: 84, + 0x328: 84, + 0x329: 84, + 0x32A: 84, + 0x32B: 84, + 0x32C: 84, + 0x32D: 84, + 0x32E: 84, + 0x32F: 84, + 0x330: 84, + 0x331: 84, + 0x332: 84, + 0x333: 84, + 0x334: 84, + 0x335: 84, + 0x336: 84, + 0x337: 84, + 0x338: 84, + 0x339: 84, + 0x33A: 84, + 0x33B: 84, + 0x33C: 84, + 0x33D: 84, + 0x33E: 84, + 0x33F: 84, + 0x340: 84, + 0x341: 84, + 0x342: 84, + 0x343: 84, + 0x344: 84, + 0x345: 84, + 0x346: 84, + 0x347: 84, + 0x348: 84, + 0x349: 84, + 0x34A: 84, + 0x34B: 84, + 0x34C: 84, + 0x34D: 84, + 0x34E: 84, + 0x34F: 84, + 0x350: 84, + 0x351: 84, + 0x352: 84, + 0x353: 84, + 0x354: 84, + 0x355: 84, + 0x356: 84, + 0x357: 84, + 0x358: 84, + 0x359: 84, + 0x35A: 84, + 0x35B: 84, + 0x35C: 84, + 0x35D: 84, + 0x35E: 84, + 0x35F: 84, + 0x360: 84, + 0x361: 84, + 0x362: 84, + 0x363: 84, + 0x364: 84, + 0x365: 84, + 0x366: 84, + 0x367: 84, + 0x368: 84, + 0x369: 84, + 0x36A: 84, + 0x36B: 84, + 0x36C: 84, + 0x36D: 84, + 0x36E: 84, + 0x36F: 84, + 0x483: 84, + 0x484: 84, + 0x485: 84, + 0x486: 84, + 0x487: 84, + 0x488: 84, + 0x489: 84, + 0x591: 84, + 0x592: 84, + 0x593: 84, + 0x594: 84, + 0x595: 84, + 0x596: 84, + 0x597: 84, + 0x598: 84, + 0x599: 84, + 0x59A: 84, + 0x59B: 84, + 0x59C: 84, + 0x59D: 84, + 0x59E: 84, + 0x59F: 84, + 0x5A0: 84, + 0x5A1: 84, + 0x5A2: 84, + 0x5A3: 84, + 0x5A4: 84, + 0x5A5: 84, + 0x5A6: 84, + 0x5A7: 84, + 0x5A8: 84, + 0x5A9: 84, + 0x5AA: 84, + 0x5AB: 84, + 0x5AC: 84, + 0x5AD: 84, + 0x5AE: 84, + 0x5AF: 84, + 0x5B0: 84, + 0x5B1: 84, + 0x5B2: 84, + 0x5B3: 84, + 0x5B4: 84, + 0x5B5: 84, + 0x5B6: 84, + 0x5B7: 84, + 0x5B8: 84, + 0x5B9: 84, + 0x5BA: 84, + 0x5BB: 84, + 0x5BC: 84, + 0x5BD: 84, + 0x5BF: 84, + 0x5C1: 84, + 0x5C2: 84, + 0x5C4: 84, + 0x5C5: 84, + 0x5C7: 84, + 0x610: 84, + 0x611: 84, + 0x612: 84, + 0x613: 84, + 0x614: 84, + 0x615: 84, + 0x616: 84, + 0x617: 84, + 0x618: 84, + 0x619: 84, + 0x61A: 84, + 0x61C: 84, + 0x620: 68, + 0x622: 82, + 0x623: 82, + 0x624: 82, + 0x625: 82, + 0x626: 68, + 0x627: 82, + 0x628: 68, + 0x629: 82, + 0x62A: 68, + 0x62B: 68, + 0x62C: 68, + 0x62D: 68, + 0x62E: 68, + 0x62F: 82, + 0x630: 82, + 0x631: 82, + 0x632: 82, + 0x633: 68, + 0x634: 68, + 0x635: 68, + 0x636: 68, + 0x637: 68, + 0x638: 68, + 0x639: 68, + 0x63A: 68, + 0x63B: 68, + 0x63C: 68, + 0x63D: 68, + 0x63E: 68, + 0x63F: 68, + 0x640: 67, + 0x641: 68, + 0x642: 68, + 0x643: 68, + 0x644: 68, + 0x645: 68, + 0x646: 68, + 0x647: 68, + 0x648: 82, + 0x649: 68, + 0x64A: 68, + 0x64B: 84, + 0x64C: 84, + 0x64D: 84, + 0x64E: 84, + 0x64F: 84, + 0x650: 84, + 0x651: 84, + 0x652: 84, + 0x653: 84, + 0x654: 84, + 0x655: 84, + 0x656: 84, + 0x657: 84, + 0x658: 84, + 0x659: 84, + 0x65A: 84, + 0x65B: 84, + 0x65C: 84, + 0x65D: 84, + 0x65E: 84, + 0x65F: 84, + 0x66E: 68, + 0x66F: 68, + 0x670: 84, + 0x671: 82, + 0x672: 82, + 0x673: 82, + 0x675: 82, + 0x676: 82, + 0x677: 82, + 0x678: 68, + 0x679: 68, + 0x67A: 68, + 0x67B: 68, + 0x67C: 68, + 0x67D: 68, + 0x67E: 68, + 0x67F: 68, + 0x680: 68, + 0x681: 68, + 0x682: 68, + 0x683: 68, + 0x684: 68, + 0x685: 68, + 0x686: 68, + 0x687: 68, + 0x688: 82, + 0x689: 82, + 0x68A: 82, + 0x68B: 82, + 0x68C: 82, + 0x68D: 82, + 0x68E: 82, + 0x68F: 82, + 0x690: 82, + 0x691: 82, + 0x692: 82, + 0x693: 82, + 0x694: 82, + 0x695: 82, + 0x696: 82, + 0x697: 82, + 0x698: 82, + 0x699: 82, + 0x69A: 68, + 0x69B: 68, + 0x69C: 68, + 0x69D: 68, + 0x69E: 68, + 0x69F: 68, + 0x6A0: 68, + 0x6A1: 68, + 0x6A2: 68, + 0x6A3: 68, + 0x6A4: 68, + 0x6A5: 68, + 0x6A6: 68, + 0x6A7: 68, + 0x6A8: 68, + 0x6A9: 68, + 0x6AA: 68, + 0x6AB: 68, + 0x6AC: 68, + 0x6AD: 68, + 0x6AE: 68, + 0x6AF: 68, + 0x6B0: 68, + 0x6B1: 68, + 0x6B2: 68, + 0x6B3: 68, + 0x6B4: 68, + 0x6B5: 68, + 0x6B6: 68, + 0x6B7: 68, + 0x6B8: 68, + 0x6B9: 68, + 0x6BA: 68, + 0x6BB: 68, + 0x6BC: 68, + 0x6BD: 68, + 0x6BE: 68, + 0x6BF: 68, + 0x6C0: 82, + 0x6C1: 68, + 0x6C2: 68, + 0x6C3: 82, + 0x6C4: 82, + 0x6C5: 82, + 0x6C6: 82, + 0x6C7: 82, + 0x6C8: 82, + 0x6C9: 82, + 0x6CA: 82, + 0x6CB: 82, + 0x6CC: 68, + 0x6CD: 82, + 0x6CE: 68, + 0x6CF: 82, + 0x6D0: 68, + 0x6D1: 68, + 0x6D2: 82, + 0x6D3: 82, + 0x6D5: 82, + 0x6D6: 84, + 0x6D7: 84, + 0x6D8: 84, + 0x6D9: 84, + 0x6DA: 84, + 0x6DB: 84, + 0x6DC: 84, + 0x6DF: 84, + 0x6E0: 84, + 0x6E1: 84, + 0x6E2: 84, + 0x6E3: 84, + 0x6E4: 84, + 0x6E7: 84, + 0x6E8: 84, + 0x6EA: 84, + 0x6EB: 84, + 0x6EC: 84, + 0x6ED: 84, + 0x6EE: 82, + 0x6EF: 82, + 0x6FA: 68, + 0x6FB: 68, + 0x6FC: 68, + 0x6FF: 68, + 0x70F: 84, + 0x710: 82, + 0x711: 84, + 0x712: 68, + 0x713: 68, + 0x714: 68, + 0x715: 82, + 0x716: 82, + 0x717: 82, + 0x718: 82, + 0x719: 82, + 0x71A: 68, + 0x71B: 68, + 0x71C: 68, + 0x71D: 68, + 0x71E: 82, + 0x71F: 68, + 0x720: 68, + 0x721: 68, + 0x722: 68, + 0x723: 68, + 0x724: 68, + 0x725: 68, + 0x726: 68, + 0x727: 68, + 0x728: 82, + 0x729: 68, + 0x72A: 82, + 0x72B: 68, + 0x72C: 82, + 0x72D: 68, + 0x72E: 68, + 0x72F: 82, + 0x730: 84, + 0x731: 84, + 0x732: 84, + 0x733: 84, + 0x734: 84, + 0x735: 84, + 0x736: 84, + 0x737: 84, + 0x738: 84, + 0x739: 84, + 0x73A: 84, + 0x73B: 84, + 0x73C: 84, + 0x73D: 84, + 0x73E: 84, + 0x73F: 84, + 0x740: 84, + 0x741: 84, + 0x742: 84, + 0x743: 84, + 0x744: 84, + 0x745: 84, + 0x746: 84, + 0x747: 84, + 0x748: 84, + 0x749: 84, + 0x74A: 84, + 0x74D: 82, + 0x74E: 68, + 0x74F: 68, + 0x750: 68, + 0x751: 68, + 0x752: 68, + 0x753: 68, + 0x754: 68, + 0x755: 68, + 0x756: 68, + 0x757: 68, + 0x758: 68, + 0x759: 82, + 0x75A: 82, + 0x75B: 82, + 0x75C: 68, + 0x75D: 68, + 0x75E: 68, + 0x75F: 68, + 0x760: 68, + 0x761: 68, + 0x762: 68, + 0x763: 68, + 0x764: 68, + 0x765: 68, + 0x766: 68, + 0x767: 68, + 0x768: 68, + 0x769: 68, + 0x76A: 68, + 0x76B: 82, + 0x76C: 82, + 0x76D: 68, + 0x76E: 68, + 0x76F: 68, + 0x770: 68, + 0x771: 82, + 0x772: 68, + 0x773: 82, + 0x774: 82, + 0x775: 68, + 0x776: 68, + 0x777: 68, + 0x778: 82, + 0x779: 82, + 0x77A: 68, + 0x77B: 68, + 0x77C: 68, + 0x77D: 68, + 0x77E: 68, + 0x77F: 68, + 0x7A6: 84, + 0x7A7: 84, + 0x7A8: 84, + 0x7A9: 84, + 0x7AA: 84, + 0x7AB: 84, + 0x7AC: 84, + 0x7AD: 84, + 0x7AE: 84, + 0x7AF: 84, + 0x7B0: 84, + 0x7CA: 68, + 0x7CB: 68, + 0x7CC: 68, + 0x7CD: 68, + 0x7CE: 68, + 0x7CF: 68, + 0x7D0: 68, + 0x7D1: 68, + 0x7D2: 68, + 0x7D3: 68, + 0x7D4: 68, + 0x7D5: 68, + 0x7D6: 68, + 0x7D7: 68, + 0x7D8: 68, + 0x7D9: 68, + 0x7DA: 68, + 0x7DB: 68, + 0x7DC: 68, + 0x7DD: 68, + 0x7DE: 68, + 0x7DF: 68, + 0x7E0: 68, + 0x7E1: 68, + 0x7E2: 68, + 0x7E3: 68, + 0x7E4: 68, + 0x7E5: 68, + 0x7E6: 68, + 0x7E7: 68, + 0x7E8: 68, + 0x7E9: 68, + 0x7EA: 68, + 0x7EB: 84, + 0x7EC: 84, + 0x7ED: 84, + 0x7EE: 84, + 0x7EF: 84, + 0x7F0: 84, + 0x7F1: 84, + 0x7F2: 84, + 0x7F3: 84, + 0x7FA: 67, + 0x7FD: 84, + 0x816: 84, + 0x817: 84, + 0x818: 84, + 0x819: 84, + 0x81B: 84, + 0x81C: 84, + 0x81D: 84, + 0x81E: 84, + 0x81F: 84, + 0x820: 84, + 0x821: 84, + 0x822: 84, + 0x823: 84, + 0x825: 84, + 0x826: 84, + 0x827: 84, + 0x829: 84, + 0x82A: 84, + 0x82B: 84, + 0x82C: 84, + 0x82D: 84, + 0x840: 82, + 0x841: 68, + 0x842: 68, + 0x843: 68, + 0x844: 68, + 0x845: 68, + 0x846: 82, + 0x847: 82, + 0x848: 68, + 0x849: 82, + 0x84A: 68, + 0x84B: 68, + 0x84C: 68, + 0x84D: 68, + 0x84E: 68, + 0x84F: 68, + 0x850: 68, + 0x851: 68, + 0x852: 68, + 0x853: 68, + 0x854: 82, + 0x855: 68, + 0x856: 82, + 0x857: 82, + 0x858: 82, + 0x859: 84, + 0x85A: 84, + 0x85B: 84, + 0x860: 68, + 0x862: 68, + 0x863: 68, + 0x864: 68, + 0x865: 68, + 0x867: 82, + 0x868: 68, + 0x869: 82, + 0x86A: 82, + 0x870: 82, + 0x871: 82, + 0x872: 82, + 0x873: 82, + 0x874: 82, + 0x875: 82, + 0x876: 82, + 0x877: 82, + 0x878: 82, + 0x879: 82, + 0x87A: 82, + 0x87B: 82, + 0x87C: 82, + 0x87D: 82, + 0x87E: 82, + 0x87F: 82, + 0x880: 82, + 0x881: 82, + 0x882: 82, + 0x883: 67, + 0x884: 67, + 0x885: 67, + 0x886: 68, + 0x889: 68, + 0x88A: 68, + 0x88B: 68, + 0x88C: 68, + 0x88D: 68, + 0x88E: 82, + 0x898: 84, + 0x899: 84, + 0x89A: 84, + 0x89B: 84, + 0x89C: 84, + 0x89D: 84, + 0x89E: 84, + 0x89F: 84, + 0x8A0: 68, + 0x8A1: 68, + 0x8A2: 68, + 0x8A3: 68, + 0x8A4: 68, + 0x8A5: 68, + 0x8A6: 68, + 0x8A7: 68, + 0x8A8: 68, + 0x8A9: 68, + 0x8AA: 82, + 0x8AB: 82, + 0x8AC: 82, + 0x8AE: 82, + 0x8AF: 68, + 0x8B0: 68, + 0x8B1: 82, + 0x8B2: 82, + 0x8B3: 68, + 0x8B4: 68, + 0x8B5: 68, + 0x8B6: 68, + 0x8B7: 68, + 0x8B8: 68, + 0x8B9: 82, + 0x8BA: 68, + 0x8BB: 68, + 0x8BC: 68, + 0x8BD: 68, + 0x8BE: 68, + 0x8BF: 68, + 0x8C0: 68, + 0x8C1: 68, + 0x8C2: 68, + 0x8C3: 68, + 0x8C4: 68, + 0x8C5: 68, + 0x8C6: 68, + 0x8C7: 68, + 0x8C8: 68, + 0x8CA: 84, + 0x8CB: 84, + 0x8CC: 84, + 0x8CD: 84, + 0x8CE: 84, + 0x8CF: 84, + 0x8D0: 84, + 0x8D1: 84, + 0x8D2: 84, + 0x8D3: 84, + 0x8D4: 84, + 0x8D5: 84, + 0x8D6: 84, + 0x8D7: 84, + 0x8D8: 84, + 0x8D9: 84, + 0x8DA: 84, + 0x8DB: 84, + 0x8DC: 84, + 0x8DD: 84, + 0x8DE: 84, + 0x8DF: 84, + 0x8E0: 84, + 0x8E1: 84, + 0x8E3: 84, + 0x8E4: 84, + 0x8E5: 84, + 0x8E6: 84, + 0x8E7: 84, + 0x8E8: 84, + 0x8E9: 84, + 0x8EA: 84, + 0x8EB: 84, + 0x8EC: 84, + 0x8ED: 84, + 0x8EE: 84, + 0x8EF: 84, + 0x8F0: 84, + 0x8F1: 84, + 0x8F2: 84, + 0x8F3: 84, + 0x8F4: 84, + 0x8F5: 84, + 0x8F6: 84, + 0x8F7: 84, + 0x8F8: 84, + 0x8F9: 84, + 0x8FA: 84, + 0x8FB: 84, + 0x8FC: 84, + 0x8FD: 84, + 0x8FE: 84, + 0x8FF: 84, + 0x900: 84, + 0x901: 84, + 0x902: 84, + 0x93A: 84, + 0x93C: 84, + 0x941: 84, + 0x942: 84, + 0x943: 84, + 0x944: 84, + 0x945: 84, + 0x946: 84, + 0x947: 84, + 0x948: 84, + 0x94D: 84, + 0x951: 84, + 0x952: 84, + 0x953: 84, + 0x954: 84, + 0x955: 84, + 0x956: 84, + 0x957: 84, + 0x962: 84, + 0x963: 84, + 0x981: 84, + 0x9BC: 84, + 0x9C1: 84, + 0x9C2: 84, + 0x9C3: 84, + 0x9C4: 84, + 0x9CD: 84, + 0x9E2: 84, + 0x9E3: 84, + 0x9FE: 84, + 0xA01: 84, + 0xA02: 84, + 0xA3C: 84, + 0xA41: 84, + 0xA42: 84, + 0xA47: 84, + 0xA48: 84, + 0xA4B: 84, + 0xA4C: 84, + 0xA4D: 84, + 0xA51: 84, + 0xA70: 84, + 0xA71: 84, + 0xA75: 84, + 0xA81: 84, + 0xA82: 84, + 0xABC: 84, + 0xAC1: 84, + 0xAC2: 84, + 0xAC3: 84, + 0xAC4: 84, + 0xAC5: 84, + 0xAC7: 84, + 0xAC8: 84, + 0xACD: 84, + 0xAE2: 84, + 0xAE3: 84, + 0xAFA: 84, + 0xAFB: 84, + 0xAFC: 84, + 0xAFD: 84, + 0xAFE: 84, + 0xAFF: 84, + 0xB01: 84, + 0xB3C: 84, + 0xB3F: 84, + 0xB41: 84, + 0xB42: 84, + 0xB43: 84, + 0xB44: 84, + 0xB4D: 84, + 0xB55: 84, + 0xB56: 84, + 0xB62: 84, + 0xB63: 84, + 0xB82: 84, + 0xBC0: 84, + 0xBCD: 84, + 0xC00: 84, + 0xC04: 84, + 0xC3C: 84, + 0xC3E: 84, + 0xC3F: 84, + 0xC40: 84, + 0xC46: 84, + 0xC47: 84, + 0xC48: 84, + 0xC4A: 84, + 0xC4B: 84, + 0xC4C: 84, + 0xC4D: 84, + 0xC55: 84, + 0xC56: 84, + 0xC62: 84, + 0xC63: 84, + 0xC81: 84, + 0xCBC: 84, + 0xCBF: 84, + 0xCC6: 84, + 0xCCC: 84, + 0xCCD: 84, + 0xCE2: 84, + 0xCE3: 84, + 0xD00: 84, + 0xD01: 84, + 0xD3B: 84, + 0xD3C: 84, + 0xD41: 84, + 0xD42: 84, + 0xD43: 84, + 0xD44: 84, + 0xD4D: 84, + 0xD62: 84, + 0xD63: 84, + 0xD81: 84, + 0xDCA: 84, + 0xDD2: 84, + 0xDD3: 84, + 0xDD4: 84, + 0xDD6: 84, + 0xE31: 84, + 0xE34: 84, + 0xE35: 84, + 0xE36: 84, + 0xE37: 84, + 0xE38: 84, + 0xE39: 84, + 0xE3A: 84, + 0xE47: 84, + 0xE48: 84, + 0xE49: 84, + 0xE4A: 84, + 0xE4B: 84, + 0xE4C: 84, + 0xE4D: 84, + 0xE4E: 84, + 0xEB1: 84, + 0xEB4: 84, + 0xEB5: 84, + 0xEB6: 84, + 0xEB7: 84, + 0xEB8: 84, + 0xEB9: 84, + 0xEBA: 84, + 0xEBB: 84, + 0xEBC: 84, + 0xEC8: 84, + 0xEC9: 84, + 0xECA: 84, + 0xECB: 84, + 0xECC: 84, + 0xECD: 84, + 0xECE: 84, + 0xF18: 84, + 0xF19: 84, + 0xF35: 84, + 0xF37: 84, + 0xF39: 84, + 0xF71: 84, + 0xF72: 84, + 0xF73: 84, + 0xF74: 84, + 0xF75: 84, + 0xF76: 84, + 0xF77: 84, + 0xF78: 84, + 0xF79: 84, + 0xF7A: 84, + 0xF7B: 84, + 0xF7C: 84, + 0xF7D: 84, + 0xF7E: 84, + 0xF80: 84, + 0xF81: 84, + 0xF82: 84, + 0xF83: 84, + 0xF84: 84, + 0xF86: 84, + 0xF87: 84, + 0xF8D: 84, + 0xF8E: 84, + 0xF8F: 84, + 0xF90: 84, + 0xF91: 84, + 0xF92: 84, + 0xF93: 84, + 0xF94: 84, + 0xF95: 84, + 0xF96: 84, + 0xF97: 84, + 0xF99: 84, + 0xF9A: 84, + 0xF9B: 84, + 0xF9C: 84, + 0xF9D: 84, + 0xF9E: 84, + 0xF9F: 84, + 0xFA0: 84, + 0xFA1: 84, + 0xFA2: 84, + 0xFA3: 84, + 0xFA4: 84, + 0xFA5: 84, + 0xFA6: 84, + 0xFA7: 84, + 0xFA8: 84, + 0xFA9: 84, + 0xFAA: 84, + 0xFAB: 84, + 0xFAC: 84, + 0xFAD: 84, + 0xFAE: 84, + 0xFAF: 84, + 0xFB0: 84, + 0xFB1: 84, + 0xFB2: 84, + 0xFB3: 84, + 0xFB4: 84, + 0xFB5: 84, + 0xFB6: 84, + 0xFB7: 84, + 0xFB8: 84, + 0xFB9: 84, + 0xFBA: 84, + 0xFBB: 84, + 0xFBC: 84, + 0xFC6: 84, + 0x102D: 84, + 0x102E: 84, + 0x102F: 84, + 0x1030: 84, + 0x1032: 84, + 0x1033: 84, + 0x1034: 84, + 0x1035: 84, + 0x1036: 84, + 0x1037: 84, + 0x1039: 84, + 0x103A: 84, + 0x103D: 84, + 0x103E: 84, + 0x1058: 84, + 0x1059: 84, + 0x105E: 84, + 0x105F: 84, + 0x1060: 84, + 0x1071: 84, + 0x1072: 84, + 0x1073: 84, + 0x1074: 84, + 0x1082: 84, + 0x1085: 84, + 0x1086: 84, + 0x108D: 84, + 0x109D: 84, + 0x135D: 84, + 0x135E: 84, + 0x135F: 84, + 0x1712: 84, + 0x1713: 84, + 0x1714: 84, + 0x1732: 84, + 0x1733: 84, + 0x1752: 84, + 0x1753: 84, + 0x1772: 84, + 0x1773: 84, + 0x17B4: 84, + 0x17B5: 84, + 0x17B7: 84, + 0x17B8: 84, + 0x17B9: 84, + 0x17BA: 84, + 0x17BB: 84, + 0x17BC: 84, + 0x17BD: 84, + 0x17C6: 84, + 0x17C9: 84, + 0x17CA: 84, + 0x17CB: 84, + 0x17CC: 84, + 0x17CD: 84, + 0x17CE: 84, + 0x17CF: 84, + 0x17D0: 84, + 0x17D1: 84, + 0x17D2: 84, + 0x17D3: 84, + 0x17DD: 84, + 0x1807: 68, + 0x180A: 67, + 0x180B: 84, + 0x180C: 84, + 0x180D: 84, + 0x180F: 84, + 0x1820: 68, + 0x1821: 68, + 0x1822: 68, + 0x1823: 68, + 0x1824: 68, + 0x1825: 68, + 0x1826: 68, + 0x1827: 68, + 0x1828: 68, + 0x1829: 68, + 0x182A: 68, + 0x182B: 68, + 0x182C: 68, + 0x182D: 68, + 0x182E: 68, + 0x182F: 68, + 0x1830: 68, + 0x1831: 68, + 0x1832: 68, + 0x1833: 68, + 0x1834: 68, + 0x1835: 68, + 0x1836: 68, + 0x1837: 68, + 0x1838: 68, + 0x1839: 68, + 0x183A: 68, + 0x183B: 68, + 0x183C: 68, + 0x183D: 68, + 0x183E: 68, + 0x183F: 68, + 0x1840: 68, + 0x1841: 68, + 0x1842: 68, + 0x1843: 68, + 0x1844: 68, + 0x1845: 68, + 0x1846: 68, + 0x1847: 68, + 0x1848: 68, + 0x1849: 68, + 0x184A: 68, + 0x184B: 68, + 0x184C: 68, + 0x184D: 68, + 0x184E: 68, + 0x184F: 68, + 0x1850: 68, + 0x1851: 68, + 0x1852: 68, + 0x1853: 68, + 0x1854: 68, + 0x1855: 68, + 0x1856: 68, + 0x1857: 68, + 0x1858: 68, + 0x1859: 68, + 0x185A: 68, + 0x185B: 68, + 0x185C: 68, + 0x185D: 68, + 0x185E: 68, + 0x185F: 68, + 0x1860: 68, + 0x1861: 68, + 0x1862: 68, + 0x1863: 68, + 0x1864: 68, + 0x1865: 68, + 0x1866: 68, + 0x1867: 68, + 0x1868: 68, + 0x1869: 68, + 0x186A: 68, + 0x186B: 68, + 0x186C: 68, + 0x186D: 68, + 0x186E: 68, + 0x186F: 68, + 0x1870: 68, + 0x1871: 68, + 0x1872: 68, + 0x1873: 68, + 0x1874: 68, + 0x1875: 68, + 0x1876: 68, + 0x1877: 68, + 0x1878: 68, + 0x1885: 84, + 0x1886: 84, + 0x1887: 68, + 0x1888: 68, + 0x1889: 68, + 0x188A: 68, + 0x188B: 68, + 0x188C: 68, + 0x188D: 68, + 0x188E: 68, + 0x188F: 68, + 0x1890: 68, + 0x1891: 68, + 0x1892: 68, + 0x1893: 68, + 0x1894: 68, + 0x1895: 68, + 0x1896: 68, + 0x1897: 68, + 0x1898: 68, + 0x1899: 68, + 0x189A: 68, + 0x189B: 68, + 0x189C: 68, + 0x189D: 68, + 0x189E: 68, + 0x189F: 68, + 0x18A0: 68, + 0x18A1: 68, + 0x18A2: 68, + 0x18A3: 68, + 0x18A4: 68, + 0x18A5: 68, + 0x18A6: 68, + 0x18A7: 68, + 0x18A8: 68, + 0x18A9: 84, + 0x18AA: 68, + 0x1920: 84, + 0x1921: 84, + 0x1922: 84, + 0x1927: 84, + 0x1928: 84, + 0x1932: 84, + 0x1939: 84, + 0x193A: 84, + 0x193B: 84, + 0x1A17: 84, + 0x1A18: 84, + 0x1A1B: 84, + 0x1A56: 84, + 0x1A58: 84, + 0x1A59: 84, + 0x1A5A: 84, + 0x1A5B: 84, + 0x1A5C: 84, + 0x1A5D: 84, + 0x1A5E: 84, + 0x1A60: 84, + 0x1A62: 84, + 0x1A65: 84, + 0x1A66: 84, + 0x1A67: 84, + 0x1A68: 84, + 0x1A69: 84, + 0x1A6A: 84, + 0x1A6B: 84, + 0x1A6C: 84, + 0x1A73: 84, + 0x1A74: 84, + 0x1A75: 84, + 0x1A76: 84, + 0x1A77: 84, + 0x1A78: 84, + 0x1A79: 84, + 0x1A7A: 84, + 0x1A7B: 84, + 0x1A7C: 84, + 0x1A7F: 84, + 0x1AB0: 84, + 0x1AB1: 84, + 0x1AB2: 84, + 0x1AB3: 84, + 0x1AB4: 84, + 0x1AB5: 84, + 0x1AB6: 84, + 0x1AB7: 84, + 0x1AB8: 84, + 0x1AB9: 84, + 0x1ABA: 84, + 0x1ABB: 84, + 0x1ABC: 84, + 0x1ABD: 84, + 0x1ABE: 84, + 0x1ABF: 84, + 0x1AC0: 84, + 0x1AC1: 84, + 0x1AC2: 84, + 0x1AC3: 84, + 0x1AC4: 84, + 0x1AC5: 84, + 0x1AC6: 84, + 0x1AC7: 84, + 0x1AC8: 84, + 0x1AC9: 84, + 0x1ACA: 84, + 0x1ACB: 84, + 0x1ACC: 84, + 0x1ACD: 84, + 0x1ACE: 84, + 0x1B00: 84, + 0x1B01: 84, + 0x1B02: 84, + 0x1B03: 84, + 0x1B34: 84, + 0x1B36: 84, + 0x1B37: 84, + 0x1B38: 84, + 0x1B39: 84, + 0x1B3A: 84, + 0x1B3C: 84, + 0x1B42: 84, + 0x1B6B: 84, + 0x1B6C: 84, + 0x1B6D: 84, + 0x1B6E: 84, + 0x1B6F: 84, + 0x1B70: 84, + 0x1B71: 84, + 0x1B72: 84, + 0x1B73: 84, + 0x1B80: 84, + 0x1B81: 84, + 0x1BA2: 84, + 0x1BA3: 84, + 0x1BA4: 84, + 0x1BA5: 84, + 0x1BA8: 84, + 0x1BA9: 84, + 0x1BAB: 84, + 0x1BAC: 84, + 0x1BAD: 84, + 0x1BE6: 84, + 0x1BE8: 84, + 0x1BE9: 84, + 0x1BED: 84, + 0x1BEF: 84, + 0x1BF0: 84, + 0x1BF1: 84, + 0x1C2C: 84, + 0x1C2D: 84, + 0x1C2E: 84, + 0x1C2F: 84, + 0x1C30: 84, + 0x1C31: 84, + 0x1C32: 84, + 0x1C33: 84, + 0x1C36: 84, + 0x1C37: 84, + 0x1CD0: 84, + 0x1CD1: 84, + 0x1CD2: 84, + 0x1CD4: 84, + 0x1CD5: 84, + 0x1CD6: 84, + 0x1CD7: 84, + 0x1CD8: 84, + 0x1CD9: 84, + 0x1CDA: 84, + 0x1CDB: 84, + 0x1CDC: 84, + 0x1CDD: 84, + 0x1CDE: 84, + 0x1CDF: 84, + 0x1CE0: 84, + 0x1CE2: 84, + 0x1CE3: 84, + 0x1CE4: 84, + 0x1CE5: 84, + 0x1CE6: 84, + 0x1CE7: 84, + 0x1CE8: 84, + 0x1CED: 84, + 0x1CF4: 84, + 0x1CF8: 84, + 0x1CF9: 84, + 0x1DC0: 84, + 0x1DC1: 84, + 0x1DC2: 84, + 0x1DC3: 84, + 0x1DC4: 84, + 0x1DC5: 84, + 0x1DC6: 84, + 0x1DC7: 84, + 0x1DC8: 84, + 0x1DC9: 84, + 0x1DCA: 84, + 0x1DCB: 84, + 0x1DCC: 84, + 0x1DCD: 84, + 0x1DCE: 84, + 0x1DCF: 84, + 0x1DD0: 84, + 0x1DD1: 84, + 0x1DD2: 84, + 0x1DD3: 84, + 0x1DD4: 84, + 0x1DD5: 84, + 0x1DD6: 84, + 0x1DD7: 84, + 0x1DD8: 84, + 0x1DD9: 84, + 0x1DDA: 84, + 0x1DDB: 84, + 0x1DDC: 84, + 0x1DDD: 84, + 0x1DDE: 84, + 0x1DDF: 84, + 0x1DE0: 84, + 0x1DE1: 84, + 0x1DE2: 84, + 0x1DE3: 84, + 0x1DE4: 84, + 0x1DE5: 84, + 0x1DE6: 84, + 0x1DE7: 84, + 0x1DE8: 84, + 0x1DE9: 84, + 0x1DEA: 84, + 0x1DEB: 84, + 0x1DEC: 84, + 0x1DED: 84, + 0x1DEE: 84, + 0x1DEF: 84, + 0x1DF0: 84, + 0x1DF1: 84, + 0x1DF2: 84, + 0x1DF3: 84, + 0x1DF4: 84, + 0x1DF5: 84, + 0x1DF6: 84, + 0x1DF7: 84, + 0x1DF8: 84, + 0x1DF9: 84, + 0x1DFA: 84, + 0x1DFB: 84, + 0x1DFC: 84, + 0x1DFD: 84, + 0x1DFE: 84, + 0x1DFF: 84, + 0x200B: 84, + 0x200D: 67, + 0x200E: 84, + 0x200F: 84, + 0x202A: 84, + 0x202B: 84, + 0x202C: 84, + 0x202D: 84, + 0x202E: 84, + 0x2060: 84, + 0x2061: 84, + 0x2062: 84, + 0x2063: 84, + 0x2064: 84, + 0x206A: 84, + 0x206B: 84, + 0x206C: 84, + 0x206D: 84, + 0x206E: 84, + 0x206F: 84, + 0x20D0: 84, + 0x20D1: 84, + 0x20D2: 84, + 0x20D3: 84, + 0x20D4: 84, + 0x20D5: 84, + 0x20D6: 84, + 0x20D7: 84, + 0x20D8: 84, + 0x20D9: 84, + 0x20DA: 84, + 0x20DB: 84, + 0x20DC: 84, + 0x20DD: 84, + 0x20DE: 84, + 0x20DF: 84, + 0x20E0: 84, + 0x20E1: 84, + 0x20E2: 84, + 0x20E3: 84, + 0x20E4: 84, + 0x20E5: 84, + 0x20E6: 84, + 0x20E7: 84, + 0x20E8: 84, + 0x20E9: 84, + 0x20EA: 84, + 0x20EB: 84, + 0x20EC: 84, + 0x20ED: 84, + 0x20EE: 84, + 0x20EF: 84, + 0x20F0: 84, + 0x2CEF: 84, + 0x2CF0: 84, + 0x2CF1: 84, + 0x2D7F: 84, + 0x2DE0: 84, + 0x2DE1: 84, + 0x2DE2: 84, + 0x2DE3: 84, + 0x2DE4: 84, + 0x2DE5: 84, + 0x2DE6: 84, + 0x2DE7: 84, + 0x2DE8: 84, + 0x2DE9: 84, + 0x2DEA: 84, + 0x2DEB: 84, + 0x2DEC: 84, + 0x2DED: 84, + 0x2DEE: 84, + 0x2DEF: 84, + 0x2DF0: 84, + 0x2DF1: 84, + 0x2DF2: 84, + 0x2DF3: 84, + 0x2DF4: 84, + 0x2DF5: 84, + 0x2DF6: 84, + 0x2DF7: 84, + 0x2DF8: 84, + 0x2DF9: 84, + 0x2DFA: 84, + 0x2DFB: 84, + 0x2DFC: 84, + 0x2DFD: 84, + 0x2DFE: 84, + 0x2DFF: 84, + 0x302A: 84, + 0x302B: 84, + 0x302C: 84, + 0x302D: 84, + 0x3099: 84, + 0x309A: 84, + 0xA66F: 84, + 0xA670: 84, + 0xA671: 84, + 0xA672: 84, + 0xA674: 84, + 0xA675: 84, + 0xA676: 84, + 0xA677: 84, + 0xA678: 84, + 0xA679: 84, + 0xA67A: 84, + 0xA67B: 84, + 0xA67C: 84, + 0xA67D: 84, + 0xA69E: 84, + 0xA69F: 84, + 0xA6F0: 84, + 0xA6F1: 84, + 0xA802: 84, + 0xA806: 84, + 0xA80B: 84, + 0xA825: 84, + 0xA826: 84, + 0xA82C: 84, + 0xA840: 68, + 0xA841: 68, + 0xA842: 68, + 0xA843: 68, + 0xA844: 68, + 0xA845: 68, + 0xA846: 68, + 0xA847: 68, + 0xA848: 68, + 0xA849: 68, + 0xA84A: 68, + 0xA84B: 68, + 0xA84C: 68, + 0xA84D: 68, + 0xA84E: 68, + 0xA84F: 68, + 0xA850: 68, + 0xA851: 68, + 0xA852: 68, + 0xA853: 68, + 0xA854: 68, + 0xA855: 68, + 0xA856: 68, + 0xA857: 68, + 0xA858: 68, + 0xA859: 68, + 0xA85A: 68, + 0xA85B: 68, + 0xA85C: 68, + 0xA85D: 68, + 0xA85E: 68, + 0xA85F: 68, + 0xA860: 68, + 0xA861: 68, + 0xA862: 68, + 0xA863: 68, + 0xA864: 68, + 0xA865: 68, + 0xA866: 68, + 0xA867: 68, + 0xA868: 68, + 0xA869: 68, + 0xA86A: 68, + 0xA86B: 68, + 0xA86C: 68, + 0xA86D: 68, + 0xA86E: 68, + 0xA86F: 68, + 0xA870: 68, + 0xA871: 68, + 0xA872: 76, + 0xA8C4: 84, + 0xA8C5: 84, + 0xA8E0: 84, + 0xA8E1: 84, + 0xA8E2: 84, + 0xA8E3: 84, + 0xA8E4: 84, + 0xA8E5: 84, + 0xA8E6: 84, + 0xA8E7: 84, + 0xA8E8: 84, + 0xA8E9: 84, + 0xA8EA: 84, + 0xA8EB: 84, + 0xA8EC: 84, + 0xA8ED: 84, + 0xA8EE: 84, + 0xA8EF: 84, + 0xA8F0: 84, + 0xA8F1: 84, + 0xA8FF: 84, + 0xA926: 84, + 0xA927: 84, + 0xA928: 84, + 0xA929: 84, + 0xA92A: 84, + 0xA92B: 84, + 0xA92C: 84, + 0xA92D: 84, + 0xA947: 84, + 0xA948: 84, + 0xA949: 84, + 0xA94A: 84, + 0xA94B: 84, + 0xA94C: 84, + 0xA94D: 84, + 0xA94E: 84, + 0xA94F: 84, + 0xA950: 84, + 0xA951: 84, + 0xA980: 84, + 0xA981: 84, + 0xA982: 84, + 0xA9B3: 84, + 0xA9B6: 84, + 0xA9B7: 84, + 0xA9B8: 84, + 0xA9B9: 84, + 0xA9BC: 84, + 0xA9BD: 84, + 0xA9E5: 84, + 0xAA29: 84, + 0xAA2A: 84, + 0xAA2B: 84, + 0xAA2C: 84, + 0xAA2D: 84, + 0xAA2E: 84, + 0xAA31: 84, + 0xAA32: 84, + 0xAA35: 84, + 0xAA36: 84, + 0xAA43: 84, + 0xAA4C: 84, + 0xAA7C: 84, + 0xAAB0: 84, + 0xAAB2: 84, + 0xAAB3: 84, + 0xAAB4: 84, + 0xAAB7: 84, + 0xAAB8: 84, + 0xAABE: 84, + 0xAABF: 84, + 0xAAC1: 84, + 0xAAEC: 84, + 0xAAED: 84, + 0xAAF6: 84, + 0xABE5: 84, + 0xABE8: 84, + 0xABED: 84, + 0xFB1E: 84, + 0xFE00: 84, + 0xFE01: 84, + 0xFE02: 84, + 0xFE03: 84, + 0xFE04: 84, + 0xFE05: 84, + 0xFE06: 84, + 0xFE07: 84, + 0xFE08: 84, + 0xFE09: 84, + 0xFE0A: 84, + 0xFE0B: 84, + 0xFE0C: 84, + 0xFE0D: 84, + 0xFE0E: 84, + 0xFE0F: 84, + 0xFE20: 84, + 0xFE21: 84, + 0xFE22: 84, + 0xFE23: 84, + 0xFE24: 84, + 0xFE25: 84, + 0xFE26: 84, + 0xFE27: 84, + 0xFE28: 84, + 0xFE29: 84, + 0xFE2A: 84, + 0xFE2B: 84, + 0xFE2C: 84, + 0xFE2D: 84, + 0xFE2E: 84, + 0xFE2F: 84, + 0xFEFF: 84, + 0xFFF9: 84, + 0xFFFA: 84, + 0xFFFB: 84, + 0x101FD: 84, + 0x102E0: 84, + 0x10376: 84, + 0x10377: 84, + 0x10378: 84, + 0x10379: 84, + 0x1037A: 84, + 0x10A01: 84, + 0x10A02: 84, + 0x10A03: 84, + 0x10A05: 84, + 0x10A06: 84, + 0x10A0C: 84, + 0x10A0D: 84, + 0x10A0E: 84, + 0x10A0F: 84, + 0x10A38: 84, + 0x10A39: 84, + 0x10A3A: 84, + 0x10A3F: 84, + 0x10AC0: 68, + 0x10AC1: 68, + 0x10AC2: 68, + 0x10AC3: 68, + 0x10AC4: 68, + 0x10AC5: 82, + 0x10AC7: 82, + 0x10AC9: 82, + 0x10ACA: 82, + 0x10ACD: 76, + 0x10ACE: 82, + 0x10ACF: 82, + 0x10AD0: 82, + 0x10AD1: 82, + 0x10AD2: 82, + 0x10AD3: 68, + 0x10AD4: 68, + 0x10AD5: 68, + 0x10AD6: 68, + 0x10AD7: 76, + 0x10AD8: 68, + 0x10AD9: 68, + 0x10ADA: 68, + 0x10ADB: 68, + 0x10ADC: 68, + 0x10ADD: 82, + 0x10ADE: 68, + 0x10ADF: 68, + 0x10AE0: 68, + 0x10AE1: 82, + 0x10AE4: 82, + 0x10AE5: 84, + 0x10AE6: 84, + 0x10AEB: 68, + 0x10AEC: 68, + 0x10AED: 68, + 0x10AEE: 68, + 0x10AEF: 82, + 0x10B80: 68, + 0x10B81: 82, + 0x10B82: 68, + 0x10B83: 82, + 0x10B84: 82, + 0x10B85: 82, + 0x10B86: 68, + 0x10B87: 68, + 0x10B88: 68, + 0x10B89: 82, + 0x10B8A: 68, + 0x10B8B: 68, + 0x10B8C: 82, + 0x10B8D: 68, + 0x10B8E: 82, + 0x10B8F: 82, + 0x10B90: 68, + 0x10B91: 82, + 0x10BA9: 82, + 0x10BAA: 82, + 0x10BAB: 82, + 0x10BAC: 82, + 0x10BAD: 68, + 0x10BAE: 68, + 0x10D00: 76, + 0x10D01: 68, + 0x10D02: 68, + 0x10D03: 68, + 0x10D04: 68, + 0x10D05: 68, + 0x10D06: 68, + 0x10D07: 68, + 0x10D08: 68, + 0x10D09: 68, + 0x10D0A: 68, + 0x10D0B: 68, + 0x10D0C: 68, + 0x10D0D: 68, + 0x10D0E: 68, + 0x10D0F: 68, + 0x10D10: 68, + 0x10D11: 68, + 0x10D12: 68, + 0x10D13: 68, + 0x10D14: 68, + 0x10D15: 68, + 0x10D16: 68, + 0x10D17: 68, + 0x10D18: 68, + 0x10D19: 68, + 0x10D1A: 68, + 0x10D1B: 68, + 0x10D1C: 68, + 0x10D1D: 68, + 0x10D1E: 68, + 0x10D1F: 68, + 0x10D20: 68, + 0x10D21: 68, + 0x10D22: 82, + 0x10D23: 68, + 0x10D24: 84, + 0x10D25: 84, + 0x10D26: 84, + 0x10D27: 84, + 0x10EAB: 84, + 0x10EAC: 84, + 0x10EFD: 84, + 0x10EFE: 84, + 0x10EFF: 84, + 0x10F30: 68, + 0x10F31: 68, + 0x10F32: 68, + 0x10F33: 82, + 0x10F34: 68, + 0x10F35: 68, + 0x10F36: 68, + 0x10F37: 68, + 0x10F38: 68, + 0x10F39: 68, + 0x10F3A: 68, + 0x10F3B: 68, + 0x10F3C: 68, + 0x10F3D: 68, + 0x10F3E: 68, + 0x10F3F: 68, + 0x10F40: 68, + 0x10F41: 68, + 0x10F42: 68, + 0x10F43: 68, + 0x10F44: 68, + 0x10F46: 84, + 0x10F47: 84, + 0x10F48: 84, + 0x10F49: 84, + 0x10F4A: 84, + 0x10F4B: 84, + 0x10F4C: 84, + 0x10F4D: 84, + 0x10F4E: 84, + 0x10F4F: 84, + 0x10F50: 84, + 0x10F51: 68, + 0x10F52: 68, + 0x10F53: 68, + 0x10F54: 82, + 0x10F70: 68, + 0x10F71: 68, + 0x10F72: 68, + 0x10F73: 68, + 0x10F74: 82, + 0x10F75: 82, + 0x10F76: 68, + 0x10F77: 68, + 0x10F78: 68, + 0x10F79: 68, + 0x10F7A: 68, + 0x10F7B: 68, + 0x10F7C: 68, + 0x10F7D: 68, + 0x10F7E: 68, + 0x10F7F: 68, + 0x10F80: 68, + 0x10F81: 68, + 0x10F82: 84, + 0x10F83: 84, + 0x10F84: 84, + 0x10F85: 84, + 0x10FB0: 68, + 0x10FB2: 68, + 0x10FB3: 68, + 0x10FB4: 82, + 0x10FB5: 82, + 0x10FB6: 82, + 0x10FB8: 68, + 0x10FB9: 82, + 0x10FBA: 82, + 0x10FBB: 68, + 0x10FBC: 68, + 0x10FBD: 82, + 0x10FBE: 68, + 0x10FBF: 68, + 0x10FC1: 68, + 0x10FC2: 82, + 0x10FC3: 82, + 0x10FC4: 68, + 0x10FC9: 82, + 0x10FCA: 68, + 0x10FCB: 76, + 0x11001: 84, + 0x11038: 84, + 0x11039: 84, + 0x1103A: 84, + 0x1103B: 84, + 0x1103C: 84, + 0x1103D: 84, + 0x1103E: 84, + 0x1103F: 84, + 0x11040: 84, + 0x11041: 84, + 0x11042: 84, + 0x11043: 84, + 0x11044: 84, + 0x11045: 84, + 0x11046: 84, + 0x11070: 84, + 0x11073: 84, + 0x11074: 84, + 0x1107F: 84, + 0x11080: 84, + 0x11081: 84, + 0x110B3: 84, + 0x110B4: 84, + 0x110B5: 84, + 0x110B6: 84, + 0x110B9: 84, + 0x110BA: 84, + 0x110C2: 84, + 0x11100: 84, + 0x11101: 84, + 0x11102: 84, + 0x11127: 84, + 0x11128: 84, + 0x11129: 84, + 0x1112A: 84, + 0x1112B: 84, + 0x1112D: 84, + 0x1112E: 84, + 0x1112F: 84, + 0x11130: 84, + 0x11131: 84, + 0x11132: 84, + 0x11133: 84, + 0x11134: 84, + 0x11173: 84, + 0x11180: 84, + 0x11181: 84, + 0x111B6: 84, + 0x111B7: 84, + 0x111B8: 84, + 0x111B9: 84, + 0x111BA: 84, + 0x111BB: 84, + 0x111BC: 84, + 0x111BD: 84, + 0x111BE: 84, + 0x111C9: 84, + 0x111CA: 84, + 0x111CB: 84, + 0x111CC: 84, + 0x111CF: 84, + 0x1122F: 84, + 0x11230: 84, + 0x11231: 84, + 0x11234: 84, + 0x11236: 84, + 0x11237: 84, + 0x1123E: 84, + 0x11241: 84, + 0x112DF: 84, + 0x112E3: 84, + 0x112E4: 84, + 0x112E5: 84, + 0x112E6: 84, + 0x112E7: 84, + 0x112E8: 84, + 0x112E9: 84, + 0x112EA: 84, + 0x11300: 84, + 0x11301: 84, + 0x1133B: 84, + 0x1133C: 84, + 0x11340: 84, + 0x11366: 84, + 0x11367: 84, + 0x11368: 84, + 0x11369: 84, + 0x1136A: 84, + 0x1136B: 84, + 0x1136C: 84, + 0x11370: 84, + 0x11371: 84, + 0x11372: 84, + 0x11373: 84, + 0x11374: 84, + 0x11438: 84, + 0x11439: 84, + 0x1143A: 84, + 0x1143B: 84, + 0x1143C: 84, + 0x1143D: 84, + 0x1143E: 84, + 0x1143F: 84, + 0x11442: 84, + 0x11443: 84, + 0x11444: 84, + 0x11446: 84, + 0x1145E: 84, + 0x114B3: 84, + 0x114B4: 84, + 0x114B5: 84, + 0x114B6: 84, + 0x114B7: 84, + 0x114B8: 84, + 0x114BA: 84, + 0x114BF: 84, + 0x114C0: 84, + 0x114C2: 84, + 0x114C3: 84, + 0x115B2: 84, + 0x115B3: 84, + 0x115B4: 84, + 0x115B5: 84, + 0x115BC: 84, + 0x115BD: 84, + 0x115BF: 84, + 0x115C0: 84, + 0x115DC: 84, + 0x115DD: 84, + 0x11633: 84, + 0x11634: 84, + 0x11635: 84, + 0x11636: 84, + 0x11637: 84, + 0x11638: 84, + 0x11639: 84, + 0x1163A: 84, + 0x1163D: 84, + 0x1163F: 84, + 0x11640: 84, + 0x116AB: 84, + 0x116AD: 84, + 0x116B0: 84, + 0x116B1: 84, + 0x116B2: 84, + 0x116B3: 84, + 0x116B4: 84, + 0x116B5: 84, + 0x116B7: 84, + 0x1171D: 84, + 0x1171E: 84, + 0x1171F: 84, + 0x11722: 84, + 0x11723: 84, + 0x11724: 84, + 0x11725: 84, + 0x11727: 84, + 0x11728: 84, + 0x11729: 84, + 0x1172A: 84, + 0x1172B: 84, + 0x1182F: 84, + 0x11830: 84, + 0x11831: 84, + 0x11832: 84, + 0x11833: 84, + 0x11834: 84, + 0x11835: 84, + 0x11836: 84, + 0x11837: 84, + 0x11839: 84, + 0x1183A: 84, + 0x1193B: 84, + 0x1193C: 84, + 0x1193E: 84, + 0x11943: 84, + 0x119D4: 84, + 0x119D5: 84, + 0x119D6: 84, + 0x119D7: 84, + 0x119DA: 84, + 0x119DB: 84, + 0x119E0: 84, + 0x11A01: 84, + 0x11A02: 84, + 0x11A03: 84, + 0x11A04: 84, + 0x11A05: 84, + 0x11A06: 84, + 0x11A07: 84, + 0x11A08: 84, + 0x11A09: 84, + 0x11A0A: 84, + 0x11A33: 84, + 0x11A34: 84, + 0x11A35: 84, + 0x11A36: 84, + 0x11A37: 84, + 0x11A38: 84, + 0x11A3B: 84, + 0x11A3C: 84, + 0x11A3D: 84, + 0x11A3E: 84, + 0x11A47: 84, + 0x11A51: 84, + 0x11A52: 84, + 0x11A53: 84, + 0x11A54: 84, + 0x11A55: 84, + 0x11A56: 84, + 0x11A59: 84, + 0x11A5A: 84, + 0x11A5B: 84, + 0x11A8A: 84, + 0x11A8B: 84, + 0x11A8C: 84, + 0x11A8D: 84, + 0x11A8E: 84, + 0x11A8F: 84, + 0x11A90: 84, + 0x11A91: 84, + 0x11A92: 84, + 0x11A93: 84, + 0x11A94: 84, + 0x11A95: 84, + 0x11A96: 84, + 0x11A98: 84, + 0x11A99: 84, + 0x11C30: 84, + 0x11C31: 84, + 0x11C32: 84, + 0x11C33: 84, + 0x11C34: 84, + 0x11C35: 84, + 0x11C36: 84, + 0x11C38: 84, + 0x11C39: 84, + 0x11C3A: 84, + 0x11C3B: 84, + 0x11C3C: 84, + 0x11C3D: 84, + 0x11C3F: 84, + 0x11C92: 84, + 0x11C93: 84, + 0x11C94: 84, + 0x11C95: 84, + 0x11C96: 84, + 0x11C97: 84, + 0x11C98: 84, + 0x11C99: 84, + 0x11C9A: 84, + 0x11C9B: 84, + 0x11C9C: 84, + 0x11C9D: 84, + 0x11C9E: 84, + 0x11C9F: 84, + 0x11CA0: 84, + 0x11CA1: 84, + 0x11CA2: 84, + 0x11CA3: 84, + 0x11CA4: 84, + 0x11CA5: 84, + 0x11CA6: 84, + 0x11CA7: 84, + 0x11CAA: 84, + 0x11CAB: 84, + 0x11CAC: 84, + 0x11CAD: 84, + 0x11CAE: 84, + 0x11CAF: 84, + 0x11CB0: 84, + 0x11CB2: 84, + 0x11CB3: 84, + 0x11CB5: 84, + 0x11CB6: 84, + 0x11D31: 84, + 0x11D32: 84, + 0x11D33: 84, + 0x11D34: 84, + 0x11D35: 84, + 0x11D36: 84, + 0x11D3A: 84, + 0x11D3C: 84, + 0x11D3D: 84, + 0x11D3F: 84, + 0x11D40: 84, + 0x11D41: 84, + 0x11D42: 84, + 0x11D43: 84, + 0x11D44: 84, + 0x11D45: 84, + 0x11D47: 84, + 0x11D90: 84, + 0x11D91: 84, + 0x11D95: 84, + 0x11D97: 84, + 0x11EF3: 84, + 0x11EF4: 84, + 0x11F00: 84, + 0x11F01: 84, + 0x11F36: 84, + 0x11F37: 84, + 0x11F38: 84, + 0x11F39: 84, + 0x11F3A: 84, + 0x11F40: 84, + 0x11F42: 84, + 0x13430: 84, + 0x13431: 84, + 0x13432: 84, + 0x13433: 84, + 0x13434: 84, + 0x13435: 84, + 0x13436: 84, + 0x13437: 84, + 0x13438: 84, + 0x13439: 84, + 0x1343A: 84, + 0x1343B: 84, + 0x1343C: 84, + 0x1343D: 84, + 0x1343E: 84, + 0x1343F: 84, + 0x13440: 84, + 0x13447: 84, + 0x13448: 84, + 0x13449: 84, + 0x1344A: 84, + 0x1344B: 84, + 0x1344C: 84, + 0x1344D: 84, + 0x1344E: 84, + 0x1344F: 84, + 0x13450: 84, + 0x13451: 84, + 0x13452: 84, + 0x13453: 84, + 0x13454: 84, + 0x13455: 84, + 0x16AF0: 84, + 0x16AF1: 84, + 0x16AF2: 84, + 0x16AF3: 84, + 0x16AF4: 84, + 0x16B30: 84, + 0x16B31: 84, + 0x16B32: 84, + 0x16B33: 84, + 0x16B34: 84, + 0x16B35: 84, + 0x16B36: 84, + 0x16F4F: 84, + 0x16F8F: 84, + 0x16F90: 84, + 0x16F91: 84, + 0x16F92: 84, + 0x16FE4: 84, + 0x1BC9D: 84, + 0x1BC9E: 84, + 0x1BCA0: 84, + 0x1BCA1: 84, + 0x1BCA2: 84, + 0x1BCA3: 84, + 0x1CF00: 84, + 0x1CF01: 84, + 0x1CF02: 84, + 0x1CF03: 84, + 0x1CF04: 84, + 0x1CF05: 84, + 0x1CF06: 84, + 0x1CF07: 84, + 0x1CF08: 84, + 0x1CF09: 84, + 0x1CF0A: 84, + 0x1CF0B: 84, + 0x1CF0C: 84, + 0x1CF0D: 84, + 0x1CF0E: 84, + 0x1CF0F: 84, + 0x1CF10: 84, + 0x1CF11: 84, + 0x1CF12: 84, + 0x1CF13: 84, + 0x1CF14: 84, + 0x1CF15: 84, + 0x1CF16: 84, + 0x1CF17: 84, + 0x1CF18: 84, + 0x1CF19: 84, + 0x1CF1A: 84, + 0x1CF1B: 84, + 0x1CF1C: 84, + 0x1CF1D: 84, + 0x1CF1E: 84, + 0x1CF1F: 84, + 0x1CF20: 84, + 0x1CF21: 84, + 0x1CF22: 84, + 0x1CF23: 84, + 0x1CF24: 84, + 0x1CF25: 84, + 0x1CF26: 84, + 0x1CF27: 84, + 0x1CF28: 84, + 0x1CF29: 84, + 0x1CF2A: 84, + 0x1CF2B: 84, + 0x1CF2C: 84, + 0x1CF2D: 84, + 0x1CF30: 84, + 0x1CF31: 84, + 0x1CF32: 84, + 0x1CF33: 84, + 0x1CF34: 84, + 0x1CF35: 84, + 0x1CF36: 84, + 0x1CF37: 84, + 0x1CF38: 84, + 0x1CF39: 84, + 0x1CF3A: 84, + 0x1CF3B: 84, + 0x1CF3C: 84, + 0x1CF3D: 84, + 0x1CF3E: 84, + 0x1CF3F: 84, + 0x1CF40: 84, + 0x1CF41: 84, + 0x1CF42: 84, + 0x1CF43: 84, + 0x1CF44: 84, + 0x1CF45: 84, + 0x1CF46: 84, + 0x1D167: 84, + 0x1D168: 84, + 0x1D169: 84, + 0x1D173: 84, + 0x1D174: 84, + 0x1D175: 84, + 0x1D176: 84, + 0x1D177: 84, + 0x1D178: 84, + 0x1D179: 84, + 0x1D17A: 84, + 0x1D17B: 84, + 0x1D17C: 84, + 0x1D17D: 84, + 0x1D17E: 84, + 0x1D17F: 84, + 0x1D180: 84, + 0x1D181: 84, + 0x1D182: 84, + 0x1D185: 84, + 0x1D186: 84, + 0x1D187: 84, + 0x1D188: 84, + 0x1D189: 84, + 0x1D18A: 84, + 0x1D18B: 84, + 0x1D1AA: 84, + 0x1D1AB: 84, + 0x1D1AC: 84, + 0x1D1AD: 84, + 0x1D242: 84, + 0x1D243: 84, + 0x1D244: 84, + 0x1DA00: 84, + 0x1DA01: 84, + 0x1DA02: 84, + 0x1DA03: 84, + 0x1DA04: 84, + 0x1DA05: 84, + 0x1DA06: 84, + 0x1DA07: 84, + 0x1DA08: 84, + 0x1DA09: 84, + 0x1DA0A: 84, + 0x1DA0B: 84, + 0x1DA0C: 84, + 0x1DA0D: 84, + 0x1DA0E: 84, + 0x1DA0F: 84, + 0x1DA10: 84, + 0x1DA11: 84, + 0x1DA12: 84, + 0x1DA13: 84, + 0x1DA14: 84, + 0x1DA15: 84, + 0x1DA16: 84, + 0x1DA17: 84, + 0x1DA18: 84, + 0x1DA19: 84, + 0x1DA1A: 84, + 0x1DA1B: 84, + 0x1DA1C: 84, + 0x1DA1D: 84, + 0x1DA1E: 84, + 0x1DA1F: 84, + 0x1DA20: 84, + 0x1DA21: 84, + 0x1DA22: 84, + 0x1DA23: 84, + 0x1DA24: 84, + 0x1DA25: 84, + 0x1DA26: 84, + 0x1DA27: 84, + 0x1DA28: 84, + 0x1DA29: 84, + 0x1DA2A: 84, + 0x1DA2B: 84, + 0x1DA2C: 84, + 0x1DA2D: 84, + 0x1DA2E: 84, + 0x1DA2F: 84, + 0x1DA30: 84, + 0x1DA31: 84, + 0x1DA32: 84, + 0x1DA33: 84, + 0x1DA34: 84, + 0x1DA35: 84, + 0x1DA36: 84, + 0x1DA3B: 84, + 0x1DA3C: 84, + 0x1DA3D: 84, + 0x1DA3E: 84, + 0x1DA3F: 84, + 0x1DA40: 84, + 0x1DA41: 84, + 0x1DA42: 84, + 0x1DA43: 84, + 0x1DA44: 84, + 0x1DA45: 84, + 0x1DA46: 84, + 0x1DA47: 84, + 0x1DA48: 84, + 0x1DA49: 84, + 0x1DA4A: 84, + 0x1DA4B: 84, + 0x1DA4C: 84, + 0x1DA4D: 84, + 0x1DA4E: 84, + 0x1DA4F: 84, + 0x1DA50: 84, + 0x1DA51: 84, + 0x1DA52: 84, + 0x1DA53: 84, + 0x1DA54: 84, + 0x1DA55: 84, + 0x1DA56: 84, + 0x1DA57: 84, + 0x1DA58: 84, + 0x1DA59: 84, + 0x1DA5A: 84, + 0x1DA5B: 84, + 0x1DA5C: 84, + 0x1DA5D: 84, + 0x1DA5E: 84, + 0x1DA5F: 84, + 0x1DA60: 84, + 0x1DA61: 84, + 0x1DA62: 84, + 0x1DA63: 84, + 0x1DA64: 84, + 0x1DA65: 84, + 0x1DA66: 84, + 0x1DA67: 84, + 0x1DA68: 84, + 0x1DA69: 84, + 0x1DA6A: 84, + 0x1DA6B: 84, + 0x1DA6C: 84, + 0x1DA75: 84, + 0x1DA84: 84, + 0x1DA9B: 84, + 0x1DA9C: 84, + 0x1DA9D: 84, + 0x1DA9E: 84, + 0x1DA9F: 84, + 0x1DAA1: 84, + 0x1DAA2: 84, + 0x1DAA3: 84, + 0x1DAA4: 84, + 0x1DAA5: 84, + 0x1DAA6: 84, + 0x1DAA7: 84, + 0x1DAA8: 84, + 0x1DAA9: 84, + 0x1DAAA: 84, + 0x1DAAB: 84, + 0x1DAAC: 84, + 0x1DAAD: 84, + 0x1DAAE: 84, + 0x1DAAF: 84, + 0x1E000: 84, + 0x1E001: 84, + 0x1E002: 84, + 0x1E003: 84, + 0x1E004: 84, + 0x1E005: 84, + 0x1E006: 84, + 0x1E008: 84, + 0x1E009: 84, + 0x1E00A: 84, + 0x1E00B: 84, + 0x1E00C: 84, + 0x1E00D: 84, + 0x1E00E: 84, + 0x1E00F: 84, + 0x1E010: 84, + 0x1E011: 84, + 0x1E012: 84, + 0x1E013: 84, + 0x1E014: 84, + 0x1E015: 84, + 0x1E016: 84, + 0x1E017: 84, + 0x1E018: 84, + 0x1E01B: 84, + 0x1E01C: 84, + 0x1E01D: 84, + 0x1E01E: 84, + 0x1E01F: 84, + 0x1E020: 84, + 0x1E021: 84, + 0x1E023: 84, + 0x1E024: 84, + 0x1E026: 84, + 0x1E027: 84, + 0x1E028: 84, + 0x1E029: 84, + 0x1E02A: 84, + 0x1E08F: 84, + 0x1E130: 84, + 0x1E131: 84, + 0x1E132: 84, + 0x1E133: 84, + 0x1E134: 84, + 0x1E135: 84, + 0x1E136: 84, + 0x1E2AE: 84, + 0x1E2EC: 84, + 0x1E2ED: 84, + 0x1E2EE: 84, + 0x1E2EF: 84, + 0x1E4EC: 84, + 0x1E4ED: 84, + 0x1E4EE: 84, + 0x1E4EF: 84, + 0x1E8D0: 84, + 0x1E8D1: 84, + 0x1E8D2: 84, + 0x1E8D3: 84, + 0x1E8D4: 84, + 0x1E8D5: 84, + 0x1E8D6: 84, + 0x1E900: 68, + 0x1E901: 68, + 0x1E902: 68, + 0x1E903: 68, + 0x1E904: 68, + 0x1E905: 68, + 0x1E906: 68, + 0x1E907: 68, + 0x1E908: 68, + 0x1E909: 68, + 0x1E90A: 68, + 0x1E90B: 68, + 0x1E90C: 68, + 0x1E90D: 68, + 0x1E90E: 68, + 0x1E90F: 68, + 0x1E910: 68, + 0x1E911: 68, + 0x1E912: 68, + 0x1E913: 68, + 0x1E914: 68, + 0x1E915: 68, + 0x1E916: 68, + 0x1E917: 68, + 0x1E918: 68, + 0x1E919: 68, + 0x1E91A: 68, + 0x1E91B: 68, + 0x1E91C: 68, + 0x1E91D: 68, + 0x1E91E: 68, + 0x1E91F: 68, + 0x1E920: 68, + 0x1E921: 68, + 0x1E922: 68, + 0x1E923: 68, + 0x1E924: 68, + 0x1E925: 68, + 0x1E926: 68, + 0x1E927: 68, + 0x1E928: 68, + 0x1E929: 68, + 0x1E92A: 68, + 0x1E92B: 68, + 0x1E92C: 68, + 0x1E92D: 68, + 0x1E92E: 68, + 0x1E92F: 68, + 0x1E930: 68, + 0x1E931: 68, + 0x1E932: 68, + 0x1E933: 68, + 0x1E934: 68, + 0x1E935: 68, + 0x1E936: 68, + 0x1E937: 68, + 0x1E938: 68, + 0x1E939: 68, + 0x1E93A: 68, + 0x1E93B: 68, + 0x1E93C: 68, + 0x1E93D: 68, + 0x1E93E: 68, + 0x1E93F: 68, + 0x1E940: 68, + 0x1E941: 68, + 0x1E942: 68, + 0x1E943: 68, + 0x1E944: 84, + 0x1E945: 84, + 0x1E946: 84, + 0x1E947: 84, + 0x1E948: 84, + 0x1E949: 84, + 0x1E94A: 84, + 0x1E94B: 84, + 0xE0001: 84, + 0xE0020: 84, + 0xE0021: 84, + 0xE0022: 84, + 0xE0023: 84, + 0xE0024: 84, + 0xE0025: 84, + 0xE0026: 84, + 0xE0027: 84, + 0xE0028: 84, + 0xE0029: 84, + 0xE002A: 84, + 0xE002B: 84, + 0xE002C: 84, + 0xE002D: 84, + 0xE002E: 84, + 0xE002F: 84, + 0xE0030: 84, + 0xE0031: 84, + 0xE0032: 84, + 0xE0033: 84, + 0xE0034: 84, + 0xE0035: 84, + 0xE0036: 84, + 0xE0037: 84, + 0xE0038: 84, + 0xE0039: 84, + 0xE003A: 84, + 0xE003B: 84, + 0xE003C: 84, + 0xE003D: 84, + 0xE003E: 84, + 0xE003F: 84, + 0xE0040: 84, + 0xE0041: 84, + 0xE0042: 84, + 0xE0043: 84, + 0xE0044: 84, + 0xE0045: 84, + 0xE0046: 84, + 0xE0047: 84, + 0xE0048: 84, + 0xE0049: 84, + 0xE004A: 84, + 0xE004B: 84, + 0xE004C: 84, + 0xE004D: 84, + 0xE004E: 84, + 0xE004F: 84, + 0xE0050: 84, + 0xE0051: 84, + 0xE0052: 84, + 0xE0053: 84, + 0xE0054: 84, + 0xE0055: 84, + 0xE0056: 84, + 0xE0057: 84, + 0xE0058: 84, + 0xE0059: 84, + 0xE005A: 84, + 0xE005B: 84, + 0xE005C: 84, + 0xE005D: 84, + 0xE005E: 84, + 0xE005F: 84, + 0xE0060: 84, + 0xE0061: 84, + 0xE0062: 84, + 0xE0063: 84, + 0xE0064: 84, + 0xE0065: 84, + 0xE0066: 84, + 0xE0067: 84, + 0xE0068: 84, + 0xE0069: 84, + 0xE006A: 84, + 0xE006B: 84, + 0xE006C: 84, + 0xE006D: 84, + 0xE006E: 84, + 0xE006F: 84, + 0xE0070: 84, + 0xE0071: 84, + 0xE0072: 84, + 0xE0073: 84, + 0xE0074: 84, + 0xE0075: 84, + 0xE0076: 84, + 0xE0077: 84, + 0xE0078: 84, + 0xE0079: 84, + 0xE007A: 84, + 0xE007B: 84, + 0xE007C: 84, + 0xE007D: 84, + 0xE007E: 84, + 0xE007F: 84, + 0xE0100: 84, + 0xE0101: 84, + 0xE0102: 84, + 0xE0103: 84, + 0xE0104: 84, + 0xE0105: 84, + 0xE0106: 84, + 0xE0107: 84, + 0xE0108: 84, + 0xE0109: 84, + 0xE010A: 84, + 0xE010B: 84, + 0xE010C: 84, + 0xE010D: 84, + 0xE010E: 84, + 0xE010F: 84, + 0xE0110: 84, + 0xE0111: 84, + 0xE0112: 84, + 0xE0113: 84, + 0xE0114: 84, + 0xE0115: 84, + 0xE0116: 84, + 0xE0117: 84, + 0xE0118: 84, + 0xE0119: 84, + 0xE011A: 84, + 0xE011B: 84, + 0xE011C: 84, + 0xE011D: 84, + 0xE011E: 84, + 0xE011F: 84, + 0xE0120: 84, + 0xE0121: 84, + 0xE0122: 84, + 0xE0123: 84, + 0xE0124: 84, + 0xE0125: 84, + 0xE0126: 84, + 0xE0127: 84, + 0xE0128: 84, + 0xE0129: 84, + 0xE012A: 84, + 0xE012B: 84, + 0xE012C: 84, + 0xE012D: 84, + 0xE012E: 84, + 0xE012F: 84, + 0xE0130: 84, + 0xE0131: 84, + 0xE0132: 84, + 0xE0133: 84, + 0xE0134: 84, + 0xE0135: 84, + 0xE0136: 84, + 0xE0137: 84, + 0xE0138: 84, + 0xE0139: 84, + 0xE013A: 84, + 0xE013B: 84, + 0xE013C: 84, + 0xE013D: 84, + 0xE013E: 84, + 0xE013F: 84, + 0xE0140: 84, + 0xE0141: 84, + 0xE0142: 84, + 0xE0143: 84, + 0xE0144: 84, + 0xE0145: 84, + 0xE0146: 84, + 0xE0147: 84, + 0xE0148: 84, + 0xE0149: 84, + 0xE014A: 84, + 0xE014B: 84, + 0xE014C: 84, + 0xE014D: 84, + 0xE014E: 84, + 0xE014F: 84, + 0xE0150: 84, + 0xE0151: 84, + 0xE0152: 84, + 0xE0153: 84, + 0xE0154: 84, + 0xE0155: 84, + 0xE0156: 84, + 0xE0157: 84, + 0xE0158: 84, + 0xE0159: 84, + 0xE015A: 84, + 0xE015B: 84, + 0xE015C: 84, + 0xE015D: 84, + 0xE015E: 84, + 0xE015F: 84, + 0xE0160: 84, + 0xE0161: 84, + 0xE0162: 84, + 0xE0163: 84, + 0xE0164: 84, + 0xE0165: 84, + 0xE0166: 84, + 0xE0167: 84, + 0xE0168: 84, + 0xE0169: 84, + 0xE016A: 84, + 0xE016B: 84, + 0xE016C: 84, + 0xE016D: 84, + 0xE016E: 84, + 0xE016F: 84, + 0xE0170: 84, + 0xE0171: 84, + 0xE0172: 84, + 0xE0173: 84, + 0xE0174: 84, + 0xE0175: 84, + 0xE0176: 84, + 0xE0177: 84, + 0xE0178: 84, + 0xE0179: 84, + 0xE017A: 84, + 0xE017B: 84, + 0xE017C: 84, + 0xE017D: 84, + 0xE017E: 84, + 0xE017F: 84, + 0xE0180: 84, + 0xE0181: 84, + 0xE0182: 84, + 0xE0183: 84, + 0xE0184: 84, + 0xE0185: 84, + 0xE0186: 84, + 0xE0187: 84, + 0xE0188: 84, + 0xE0189: 84, + 0xE018A: 84, + 0xE018B: 84, + 0xE018C: 84, + 0xE018D: 84, + 0xE018E: 84, + 0xE018F: 84, + 0xE0190: 84, + 0xE0191: 84, + 0xE0192: 84, + 0xE0193: 84, + 0xE0194: 84, + 0xE0195: 84, + 0xE0196: 84, + 0xE0197: 84, + 0xE0198: 84, + 0xE0199: 84, + 0xE019A: 84, + 0xE019B: 84, + 0xE019C: 84, + 0xE019D: 84, + 0xE019E: 84, + 0xE019F: 84, + 0xE01A0: 84, + 0xE01A1: 84, + 0xE01A2: 84, + 0xE01A3: 84, + 0xE01A4: 84, + 0xE01A5: 84, + 0xE01A6: 84, + 0xE01A7: 84, + 0xE01A8: 84, + 0xE01A9: 84, + 0xE01AA: 84, + 0xE01AB: 84, + 0xE01AC: 84, + 0xE01AD: 84, + 0xE01AE: 84, + 0xE01AF: 84, + 0xE01B0: 84, + 0xE01B1: 84, + 0xE01B2: 84, + 0xE01B3: 84, + 0xE01B4: 84, + 0xE01B5: 84, + 0xE01B6: 84, + 0xE01B7: 84, + 0xE01B8: 84, + 0xE01B9: 84, + 0xE01BA: 84, + 0xE01BB: 84, + 0xE01BC: 84, + 0xE01BD: 84, + 0xE01BE: 84, + 0xE01BF: 84, + 0xE01C0: 84, + 0xE01C1: 84, + 0xE01C2: 84, + 0xE01C3: 84, + 0xE01C4: 84, + 0xE01C5: 84, + 0xE01C6: 84, + 0xE01C7: 84, + 0xE01C8: 84, + 0xE01C9: 84, + 0xE01CA: 84, + 0xE01CB: 84, + 0xE01CC: 84, + 0xE01CD: 84, + 0xE01CE: 84, + 0xE01CF: 84, + 0xE01D0: 84, + 0xE01D1: 84, + 0xE01D2: 84, + 0xE01D3: 84, + 0xE01D4: 84, + 0xE01D5: 84, + 0xE01D6: 84, + 0xE01D7: 84, + 0xE01D8: 84, + 0xE01D9: 84, + 0xE01DA: 84, + 0xE01DB: 84, + 0xE01DC: 84, + 0xE01DD: 84, + 0xE01DE: 84, + 0xE01DF: 84, + 0xE01E0: 84, + 0xE01E1: 84, + 0xE01E2: 84, + 0xE01E3: 84, + 0xE01E4: 84, + 0xE01E5: 84, + 0xE01E6: 84, + 0xE01E7: 84, + 0xE01E8: 84, + 0xE01E9: 84, + 0xE01EA: 84, + 0xE01EB: 84, + 0xE01EC: 84, + 0xE01ED: 84, + 0xE01EE: 84, + 0xE01EF: 84, +} +codepoint_classes = { + "PVALID": ( + 0x2D0000002E, + 0x300000003A, + 0x610000007B, + 0xDF000000F7, + 0xF800000100, + 0x10100000102, + 0x10300000104, + 0x10500000106, + 0x10700000108, + 0x1090000010A, + 0x10B0000010C, + 0x10D0000010E, + 0x10F00000110, + 0x11100000112, + 0x11300000114, + 0x11500000116, + 0x11700000118, + 0x1190000011A, + 0x11B0000011C, + 0x11D0000011E, + 0x11F00000120, + 0x12100000122, + 0x12300000124, + 0x12500000126, + 0x12700000128, + 0x1290000012A, + 0x12B0000012C, + 0x12D0000012E, + 0x12F00000130, + 0x13100000132, + 0x13500000136, + 0x13700000139, + 0x13A0000013B, + 0x13C0000013D, + 0x13E0000013F, + 0x14200000143, + 0x14400000145, + 0x14600000147, + 0x14800000149, + 0x14B0000014C, + 0x14D0000014E, + 0x14F00000150, + 0x15100000152, + 0x15300000154, + 0x15500000156, + 0x15700000158, + 0x1590000015A, + 0x15B0000015C, + 0x15D0000015E, + 0x15F00000160, + 0x16100000162, + 0x16300000164, + 0x16500000166, + 0x16700000168, + 0x1690000016A, + 0x16B0000016C, + 0x16D0000016E, + 0x16F00000170, + 0x17100000172, + 0x17300000174, + 0x17500000176, + 0x17700000178, + 0x17A0000017B, + 0x17C0000017D, + 0x17E0000017F, + 0x18000000181, + 0x18300000184, + 0x18500000186, + 0x18800000189, + 0x18C0000018E, + 0x19200000193, + 0x19500000196, + 0x1990000019C, + 0x19E0000019F, + 0x1A1000001A2, + 0x1A3000001A4, + 0x1A5000001A6, + 0x1A8000001A9, + 0x1AA000001AC, + 0x1AD000001AE, + 0x1B0000001B1, + 0x1B4000001B5, + 0x1B6000001B7, + 0x1B9000001BC, + 0x1BD000001C4, + 0x1CE000001CF, + 0x1D0000001D1, + 0x1D2000001D3, + 0x1D4000001D5, + 0x1D6000001D7, + 0x1D8000001D9, + 0x1DA000001DB, + 0x1DC000001DE, + 0x1DF000001E0, + 0x1E1000001E2, + 0x1E3000001E4, + 0x1E5000001E6, + 0x1E7000001E8, + 0x1E9000001EA, + 0x1EB000001EC, + 0x1ED000001EE, + 0x1EF000001F1, + 0x1F5000001F6, + 0x1F9000001FA, + 0x1FB000001FC, + 0x1FD000001FE, + 0x1FF00000200, + 0x20100000202, + 0x20300000204, + 0x20500000206, + 0x20700000208, + 0x2090000020A, + 0x20B0000020C, + 0x20D0000020E, + 0x20F00000210, + 0x21100000212, + 0x21300000214, + 0x21500000216, + 0x21700000218, + 0x2190000021A, + 0x21B0000021C, + 0x21D0000021E, + 0x21F00000220, + 0x22100000222, + 0x22300000224, + 0x22500000226, + 0x22700000228, + 0x2290000022A, + 0x22B0000022C, + 0x22D0000022E, + 0x22F00000230, + 0x23100000232, + 0x2330000023A, + 0x23C0000023D, + 0x23F00000241, + 0x24200000243, + 0x24700000248, + 0x2490000024A, + 0x24B0000024C, + 0x24D0000024E, + 0x24F000002B0, + 0x2B9000002C2, + 0x2C6000002D2, + 0x2EC000002ED, + 0x2EE000002EF, + 0x30000000340, + 0x34200000343, + 0x3460000034F, + 0x35000000370, + 0x37100000372, + 0x37300000374, + 0x37700000378, + 0x37B0000037E, + 0x39000000391, + 0x3AC000003CF, + 0x3D7000003D8, + 0x3D9000003DA, + 0x3DB000003DC, + 0x3DD000003DE, + 0x3DF000003E0, + 0x3E1000003E2, + 0x3E3000003E4, + 0x3E5000003E6, + 0x3E7000003E8, + 0x3E9000003EA, + 0x3EB000003EC, + 0x3ED000003EE, + 0x3EF000003F0, + 0x3F3000003F4, + 0x3F8000003F9, + 0x3FB000003FD, + 0x43000000460, + 0x46100000462, + 0x46300000464, + 0x46500000466, + 0x46700000468, + 0x4690000046A, + 0x46B0000046C, + 0x46D0000046E, + 0x46F00000470, + 0x47100000472, + 0x47300000474, + 0x47500000476, + 0x47700000478, + 0x4790000047A, + 0x47B0000047C, + 0x47D0000047E, + 0x47F00000480, + 0x48100000482, + 0x48300000488, + 0x48B0000048C, + 0x48D0000048E, + 0x48F00000490, + 0x49100000492, + 0x49300000494, + 0x49500000496, + 0x49700000498, + 0x4990000049A, + 0x49B0000049C, + 0x49D0000049E, + 0x49F000004A0, + 0x4A1000004A2, + 0x4A3000004A4, + 0x4A5000004A6, + 0x4A7000004A8, + 0x4A9000004AA, + 0x4AB000004AC, + 0x4AD000004AE, + 0x4AF000004B0, + 0x4B1000004B2, + 0x4B3000004B4, + 0x4B5000004B6, + 0x4B7000004B8, + 0x4B9000004BA, + 0x4BB000004BC, + 0x4BD000004BE, + 0x4BF000004C0, + 0x4C2000004C3, + 0x4C4000004C5, + 0x4C6000004C7, + 0x4C8000004C9, + 0x4CA000004CB, + 0x4CC000004CD, + 0x4CE000004D0, + 0x4D1000004D2, + 0x4D3000004D4, + 0x4D5000004D6, + 0x4D7000004D8, + 0x4D9000004DA, + 0x4DB000004DC, + 0x4DD000004DE, + 0x4DF000004E0, + 0x4E1000004E2, + 0x4E3000004E4, + 0x4E5000004E6, + 0x4E7000004E8, + 0x4E9000004EA, + 0x4EB000004EC, + 0x4ED000004EE, + 0x4EF000004F0, + 0x4F1000004F2, + 0x4F3000004F4, + 0x4F5000004F6, + 0x4F7000004F8, + 0x4F9000004FA, + 0x4FB000004FC, + 0x4FD000004FE, + 0x4FF00000500, + 0x50100000502, + 0x50300000504, + 0x50500000506, + 0x50700000508, + 0x5090000050A, + 0x50B0000050C, + 0x50D0000050E, + 0x50F00000510, + 0x51100000512, + 0x51300000514, + 0x51500000516, + 0x51700000518, + 0x5190000051A, + 0x51B0000051C, + 0x51D0000051E, + 0x51F00000520, + 0x52100000522, + 0x52300000524, + 0x52500000526, + 0x52700000528, + 0x5290000052A, + 0x52B0000052C, + 0x52D0000052E, + 0x52F00000530, + 0x5590000055A, + 0x56000000587, + 0x58800000589, + 0x591000005BE, + 0x5BF000005C0, + 0x5C1000005C3, + 0x5C4000005C6, + 0x5C7000005C8, + 0x5D0000005EB, + 0x5EF000005F3, + 0x6100000061B, + 0x62000000640, + 0x64100000660, + 0x66E00000675, + 0x679000006D4, + 0x6D5000006DD, + 0x6DF000006E9, + 0x6EA000006F0, + 0x6FA00000700, + 0x7100000074B, + 0x74D000007B2, + 0x7C0000007F6, + 0x7FD000007FE, + 0x8000000082E, + 0x8400000085C, + 0x8600000086B, + 0x87000000888, + 0x8890000088F, + 0x898000008E2, + 0x8E300000958, + 0x96000000964, + 0x96600000970, + 0x97100000984, + 0x9850000098D, + 0x98F00000991, + 0x993000009A9, + 0x9AA000009B1, + 0x9B2000009B3, + 0x9B6000009BA, + 0x9BC000009C5, + 0x9C7000009C9, + 0x9CB000009CF, + 0x9D7000009D8, + 0x9E0000009E4, + 0x9E6000009F2, + 0x9FC000009FD, + 0x9FE000009FF, + 0xA0100000A04, + 0xA0500000A0B, + 0xA0F00000A11, + 0xA1300000A29, + 0xA2A00000A31, + 0xA3200000A33, + 0xA3500000A36, + 0xA3800000A3A, + 0xA3C00000A3D, + 0xA3E00000A43, + 0xA4700000A49, + 0xA4B00000A4E, + 0xA5100000A52, + 0xA5C00000A5D, + 0xA6600000A76, + 0xA8100000A84, + 0xA8500000A8E, + 0xA8F00000A92, + 0xA9300000AA9, + 0xAAA00000AB1, + 0xAB200000AB4, + 0xAB500000ABA, + 0xABC00000AC6, + 0xAC700000ACA, + 0xACB00000ACE, + 0xAD000000AD1, + 0xAE000000AE4, + 0xAE600000AF0, + 0xAF900000B00, + 0xB0100000B04, + 0xB0500000B0D, + 0xB0F00000B11, + 0xB1300000B29, + 0xB2A00000B31, + 0xB3200000B34, + 0xB3500000B3A, + 0xB3C00000B45, + 0xB4700000B49, + 0xB4B00000B4E, + 0xB5500000B58, + 0xB5F00000B64, + 0xB6600000B70, + 0xB7100000B72, + 0xB8200000B84, + 0xB8500000B8B, + 0xB8E00000B91, + 0xB9200000B96, + 0xB9900000B9B, + 0xB9C00000B9D, + 0xB9E00000BA0, + 0xBA300000BA5, + 0xBA800000BAB, + 0xBAE00000BBA, + 0xBBE00000BC3, + 0xBC600000BC9, + 0xBCA00000BCE, + 0xBD000000BD1, + 0xBD700000BD8, + 0xBE600000BF0, + 0xC0000000C0D, + 0xC0E00000C11, + 0xC1200000C29, + 0xC2A00000C3A, + 0xC3C00000C45, + 0xC4600000C49, + 0xC4A00000C4E, + 0xC5500000C57, + 0xC5800000C5B, + 0xC5D00000C5E, + 0xC6000000C64, + 0xC6600000C70, + 0xC8000000C84, + 0xC8500000C8D, + 0xC8E00000C91, + 0xC9200000CA9, + 0xCAA00000CB4, + 0xCB500000CBA, + 0xCBC00000CC5, + 0xCC600000CC9, + 0xCCA00000CCE, + 0xCD500000CD7, + 0xCDD00000CDF, + 0xCE000000CE4, + 0xCE600000CF0, + 0xCF100000CF4, + 0xD0000000D0D, + 0xD0E00000D11, + 0xD1200000D45, + 0xD4600000D49, + 0xD4A00000D4F, + 0xD5400000D58, + 0xD5F00000D64, + 0xD6600000D70, + 0xD7A00000D80, + 0xD8100000D84, + 0xD8500000D97, + 0xD9A00000DB2, + 0xDB300000DBC, + 0xDBD00000DBE, + 0xDC000000DC7, + 0xDCA00000DCB, + 0xDCF00000DD5, + 0xDD600000DD7, + 0xDD800000DE0, + 0xDE600000DF0, + 0xDF200000DF4, + 0xE0100000E33, + 0xE3400000E3B, + 0xE4000000E4F, + 0xE5000000E5A, + 0xE8100000E83, + 0xE8400000E85, + 0xE8600000E8B, + 0xE8C00000EA4, + 0xEA500000EA6, + 0xEA700000EB3, + 0xEB400000EBE, + 0xEC000000EC5, + 0xEC600000EC7, + 0xEC800000ECF, + 0xED000000EDA, + 0xEDE00000EE0, + 0xF0000000F01, + 0xF0B00000F0C, + 0xF1800000F1A, + 0xF2000000F2A, + 0xF3500000F36, + 0xF3700000F38, + 0xF3900000F3A, + 0xF3E00000F43, + 0xF4400000F48, + 0xF4900000F4D, + 0xF4E00000F52, + 0xF5300000F57, + 0xF5800000F5C, + 0xF5D00000F69, + 0xF6A00000F6D, + 0xF7100000F73, + 0xF7400000F75, + 0xF7A00000F81, + 0xF8200000F85, + 0xF8600000F93, + 0xF9400000F98, + 0xF9900000F9D, + 0xF9E00000FA2, + 0xFA300000FA7, + 0xFA800000FAC, + 0xFAD00000FB9, + 0xFBA00000FBD, + 0xFC600000FC7, + 0x10000000104A, + 0x10500000109E, + 0x10D0000010FB, + 0x10FD00001100, + 0x120000001249, + 0x124A0000124E, + 0x125000001257, + 0x125800001259, + 0x125A0000125E, + 0x126000001289, + 0x128A0000128E, + 0x1290000012B1, + 0x12B2000012B6, + 0x12B8000012BF, + 0x12C0000012C1, + 0x12C2000012C6, + 0x12C8000012D7, + 0x12D800001311, + 0x131200001316, + 0x13180000135B, + 0x135D00001360, + 0x138000001390, + 0x13A0000013F6, + 0x14010000166D, + 0x166F00001680, + 0x16810000169B, + 0x16A0000016EB, + 0x16F1000016F9, + 0x170000001716, + 0x171F00001735, + 0x174000001754, + 0x17600000176D, + 0x176E00001771, + 0x177200001774, + 0x1780000017B4, + 0x17B6000017D4, + 0x17D7000017D8, + 0x17DC000017DE, + 0x17E0000017EA, + 0x18100000181A, + 0x182000001879, + 0x1880000018AB, + 0x18B0000018F6, + 0x19000000191F, + 0x19200000192C, + 0x19300000193C, + 0x19460000196E, + 0x197000001975, + 0x1980000019AC, + 0x19B0000019CA, + 0x19D0000019DA, + 0x1A0000001A1C, + 0x1A2000001A5F, + 0x1A6000001A7D, + 0x1A7F00001A8A, + 0x1A9000001A9A, + 0x1AA700001AA8, + 0x1AB000001ABE, + 0x1ABF00001ACF, + 0x1B0000001B4D, + 0x1B5000001B5A, + 0x1B6B00001B74, + 0x1B8000001BF4, + 0x1C0000001C38, + 0x1C4000001C4A, + 0x1C4D00001C7E, + 0x1CD000001CD3, + 0x1CD400001CFB, + 0x1D0000001D2C, + 0x1D2F00001D30, + 0x1D3B00001D3C, + 0x1D4E00001D4F, + 0x1D6B00001D78, + 0x1D7900001D9B, + 0x1DC000001E00, + 0x1E0100001E02, + 0x1E0300001E04, + 0x1E0500001E06, + 0x1E0700001E08, + 0x1E0900001E0A, + 0x1E0B00001E0C, + 0x1E0D00001E0E, + 0x1E0F00001E10, + 0x1E1100001E12, + 0x1E1300001E14, + 0x1E1500001E16, + 0x1E1700001E18, + 0x1E1900001E1A, + 0x1E1B00001E1C, + 0x1E1D00001E1E, + 0x1E1F00001E20, + 0x1E2100001E22, + 0x1E2300001E24, + 0x1E2500001E26, + 0x1E2700001E28, + 0x1E2900001E2A, + 0x1E2B00001E2C, + 0x1E2D00001E2E, + 0x1E2F00001E30, + 0x1E3100001E32, + 0x1E3300001E34, + 0x1E3500001E36, + 0x1E3700001E38, + 0x1E3900001E3A, + 0x1E3B00001E3C, + 0x1E3D00001E3E, + 0x1E3F00001E40, + 0x1E4100001E42, + 0x1E4300001E44, + 0x1E4500001E46, + 0x1E4700001E48, + 0x1E4900001E4A, + 0x1E4B00001E4C, + 0x1E4D00001E4E, + 0x1E4F00001E50, + 0x1E5100001E52, + 0x1E5300001E54, + 0x1E5500001E56, + 0x1E5700001E58, + 0x1E5900001E5A, + 0x1E5B00001E5C, + 0x1E5D00001E5E, + 0x1E5F00001E60, + 0x1E6100001E62, + 0x1E6300001E64, + 0x1E6500001E66, + 0x1E6700001E68, + 0x1E6900001E6A, + 0x1E6B00001E6C, + 0x1E6D00001E6E, + 0x1E6F00001E70, + 0x1E7100001E72, + 0x1E7300001E74, + 0x1E7500001E76, + 0x1E7700001E78, + 0x1E7900001E7A, + 0x1E7B00001E7C, + 0x1E7D00001E7E, + 0x1E7F00001E80, + 0x1E8100001E82, + 0x1E8300001E84, + 0x1E8500001E86, + 0x1E8700001E88, + 0x1E8900001E8A, + 0x1E8B00001E8C, + 0x1E8D00001E8E, + 0x1E8F00001E90, + 0x1E9100001E92, + 0x1E9300001E94, + 0x1E9500001E9A, + 0x1E9C00001E9E, + 0x1E9F00001EA0, + 0x1EA100001EA2, + 0x1EA300001EA4, + 0x1EA500001EA6, + 0x1EA700001EA8, + 0x1EA900001EAA, + 0x1EAB00001EAC, + 0x1EAD00001EAE, + 0x1EAF00001EB0, + 0x1EB100001EB2, + 0x1EB300001EB4, + 0x1EB500001EB6, + 0x1EB700001EB8, + 0x1EB900001EBA, + 0x1EBB00001EBC, + 0x1EBD00001EBE, + 0x1EBF00001EC0, + 0x1EC100001EC2, + 0x1EC300001EC4, + 0x1EC500001EC6, + 0x1EC700001EC8, + 0x1EC900001ECA, + 0x1ECB00001ECC, + 0x1ECD00001ECE, + 0x1ECF00001ED0, + 0x1ED100001ED2, + 0x1ED300001ED4, + 0x1ED500001ED6, + 0x1ED700001ED8, + 0x1ED900001EDA, + 0x1EDB00001EDC, + 0x1EDD00001EDE, + 0x1EDF00001EE0, + 0x1EE100001EE2, + 0x1EE300001EE4, + 0x1EE500001EE6, + 0x1EE700001EE8, + 0x1EE900001EEA, + 0x1EEB00001EEC, + 0x1EED00001EEE, + 0x1EEF00001EF0, + 0x1EF100001EF2, + 0x1EF300001EF4, + 0x1EF500001EF6, + 0x1EF700001EF8, + 0x1EF900001EFA, + 0x1EFB00001EFC, + 0x1EFD00001EFE, + 0x1EFF00001F08, + 0x1F1000001F16, + 0x1F2000001F28, + 0x1F3000001F38, + 0x1F4000001F46, + 0x1F5000001F58, + 0x1F6000001F68, + 0x1F7000001F71, + 0x1F7200001F73, + 0x1F7400001F75, + 0x1F7600001F77, + 0x1F7800001F79, + 0x1F7A00001F7B, + 0x1F7C00001F7D, + 0x1FB000001FB2, + 0x1FB600001FB7, + 0x1FC600001FC7, + 0x1FD000001FD3, + 0x1FD600001FD8, + 0x1FE000001FE3, + 0x1FE400001FE8, + 0x1FF600001FF7, + 0x214E0000214F, + 0x218400002185, + 0x2C3000002C60, + 0x2C6100002C62, + 0x2C6500002C67, + 0x2C6800002C69, + 0x2C6A00002C6B, + 0x2C6C00002C6D, + 0x2C7100002C72, + 0x2C7300002C75, + 0x2C7600002C7C, + 0x2C8100002C82, + 0x2C8300002C84, + 0x2C8500002C86, + 0x2C8700002C88, + 0x2C8900002C8A, + 0x2C8B00002C8C, + 0x2C8D00002C8E, + 0x2C8F00002C90, + 0x2C9100002C92, + 0x2C9300002C94, + 0x2C9500002C96, + 0x2C9700002C98, + 0x2C9900002C9A, + 0x2C9B00002C9C, + 0x2C9D00002C9E, + 0x2C9F00002CA0, + 0x2CA100002CA2, + 0x2CA300002CA4, + 0x2CA500002CA6, + 0x2CA700002CA8, + 0x2CA900002CAA, + 0x2CAB00002CAC, + 0x2CAD00002CAE, + 0x2CAF00002CB0, + 0x2CB100002CB2, + 0x2CB300002CB4, + 0x2CB500002CB6, + 0x2CB700002CB8, + 0x2CB900002CBA, + 0x2CBB00002CBC, + 0x2CBD00002CBE, + 0x2CBF00002CC0, + 0x2CC100002CC2, + 0x2CC300002CC4, + 0x2CC500002CC6, + 0x2CC700002CC8, + 0x2CC900002CCA, + 0x2CCB00002CCC, + 0x2CCD00002CCE, + 0x2CCF00002CD0, + 0x2CD100002CD2, + 0x2CD300002CD4, + 0x2CD500002CD6, + 0x2CD700002CD8, + 0x2CD900002CDA, + 0x2CDB00002CDC, + 0x2CDD00002CDE, + 0x2CDF00002CE0, + 0x2CE100002CE2, + 0x2CE300002CE5, + 0x2CEC00002CED, + 0x2CEE00002CF2, + 0x2CF300002CF4, + 0x2D0000002D26, + 0x2D2700002D28, + 0x2D2D00002D2E, + 0x2D3000002D68, + 0x2D7F00002D97, + 0x2DA000002DA7, + 0x2DA800002DAF, + 0x2DB000002DB7, + 0x2DB800002DBF, + 0x2DC000002DC7, + 0x2DC800002DCF, + 0x2DD000002DD7, + 0x2DD800002DDF, + 0x2DE000002E00, + 0x2E2F00002E30, + 0x300500003008, + 0x302A0000302E, + 0x303C0000303D, + 0x304100003097, + 0x30990000309B, + 0x309D0000309F, + 0x30A1000030FB, + 0x30FC000030FF, + 0x310500003130, + 0x31A0000031C0, + 0x31F000003200, + 0x340000004DC0, + 0x4E000000A48D, + 0xA4D00000A4FE, + 0xA5000000A60D, + 0xA6100000A62C, + 0xA6410000A642, + 0xA6430000A644, + 0xA6450000A646, + 0xA6470000A648, + 0xA6490000A64A, + 0xA64B0000A64C, + 0xA64D0000A64E, + 0xA64F0000A650, + 0xA6510000A652, + 0xA6530000A654, + 0xA6550000A656, + 0xA6570000A658, + 0xA6590000A65A, + 0xA65B0000A65C, + 0xA65D0000A65E, + 0xA65F0000A660, + 0xA6610000A662, + 0xA6630000A664, + 0xA6650000A666, + 0xA6670000A668, + 0xA6690000A66A, + 0xA66B0000A66C, + 0xA66D0000A670, + 0xA6740000A67E, + 0xA67F0000A680, + 0xA6810000A682, + 0xA6830000A684, + 0xA6850000A686, + 0xA6870000A688, + 0xA6890000A68A, + 0xA68B0000A68C, + 0xA68D0000A68E, + 0xA68F0000A690, + 0xA6910000A692, + 0xA6930000A694, + 0xA6950000A696, + 0xA6970000A698, + 0xA6990000A69A, + 0xA69B0000A69C, + 0xA69E0000A6E6, + 0xA6F00000A6F2, + 0xA7170000A720, + 0xA7230000A724, + 0xA7250000A726, + 0xA7270000A728, + 0xA7290000A72A, + 0xA72B0000A72C, + 0xA72D0000A72E, + 0xA72F0000A732, + 0xA7330000A734, + 0xA7350000A736, + 0xA7370000A738, + 0xA7390000A73A, + 0xA73B0000A73C, + 0xA73D0000A73E, + 0xA73F0000A740, + 0xA7410000A742, + 0xA7430000A744, + 0xA7450000A746, + 0xA7470000A748, + 0xA7490000A74A, + 0xA74B0000A74C, + 0xA74D0000A74E, + 0xA74F0000A750, + 0xA7510000A752, + 0xA7530000A754, + 0xA7550000A756, + 0xA7570000A758, + 0xA7590000A75A, + 0xA75B0000A75C, + 0xA75D0000A75E, + 0xA75F0000A760, + 0xA7610000A762, + 0xA7630000A764, + 0xA7650000A766, + 0xA7670000A768, + 0xA7690000A76A, + 0xA76B0000A76C, + 0xA76D0000A76E, + 0xA76F0000A770, + 0xA7710000A779, + 0xA77A0000A77B, + 0xA77C0000A77D, + 0xA77F0000A780, + 0xA7810000A782, + 0xA7830000A784, + 0xA7850000A786, + 0xA7870000A789, + 0xA78C0000A78D, + 0xA78E0000A790, + 0xA7910000A792, + 0xA7930000A796, + 0xA7970000A798, + 0xA7990000A79A, + 0xA79B0000A79C, + 0xA79D0000A79E, + 0xA79F0000A7A0, + 0xA7A10000A7A2, + 0xA7A30000A7A4, + 0xA7A50000A7A6, + 0xA7A70000A7A8, + 0xA7A90000A7AA, + 0xA7AF0000A7B0, + 0xA7B50000A7B6, + 0xA7B70000A7B8, + 0xA7B90000A7BA, + 0xA7BB0000A7BC, + 0xA7BD0000A7BE, + 0xA7BF0000A7C0, + 0xA7C10000A7C2, + 0xA7C30000A7C4, + 0xA7C80000A7C9, + 0xA7CA0000A7CB, + 0xA7D10000A7D2, + 0xA7D30000A7D4, + 0xA7D50000A7D6, + 0xA7D70000A7D8, + 0xA7D90000A7DA, + 0xA7F60000A7F8, + 0xA7FA0000A828, + 0xA82C0000A82D, + 0xA8400000A874, + 0xA8800000A8C6, + 0xA8D00000A8DA, + 0xA8E00000A8F8, + 0xA8FB0000A8FC, + 0xA8FD0000A92E, + 0xA9300000A954, + 0xA9800000A9C1, + 0xA9CF0000A9DA, + 0xA9E00000A9FF, + 0xAA000000AA37, + 0xAA400000AA4E, + 0xAA500000AA5A, + 0xAA600000AA77, + 0xAA7A0000AAC3, + 0xAADB0000AADE, + 0xAAE00000AAF0, + 0xAAF20000AAF7, + 0xAB010000AB07, + 0xAB090000AB0F, + 0xAB110000AB17, + 0xAB200000AB27, + 0xAB280000AB2F, + 0xAB300000AB5B, + 0xAB600000AB69, + 0xABC00000ABEB, + 0xABEC0000ABEE, + 0xABF00000ABFA, + 0xAC000000D7A4, + 0xFA0E0000FA10, + 0xFA110000FA12, + 0xFA130000FA15, + 0xFA1F0000FA20, + 0xFA210000FA22, + 0xFA230000FA25, + 0xFA270000FA2A, + 0xFB1E0000FB1F, + 0xFE200000FE30, + 0xFE730000FE74, + 0x100000001000C, + 0x1000D00010027, + 0x100280001003B, + 0x1003C0001003E, + 0x1003F0001004E, + 0x100500001005E, + 0x10080000100FB, + 0x101FD000101FE, + 0x102800001029D, + 0x102A0000102D1, + 0x102E0000102E1, + 0x1030000010320, + 0x1032D00010341, + 0x103420001034A, + 0x103500001037B, + 0x103800001039E, + 0x103A0000103C4, + 0x103C8000103D0, + 0x104280001049E, + 0x104A0000104AA, + 0x104D8000104FC, + 0x1050000010528, + 0x1053000010564, + 0x10597000105A2, + 0x105A3000105B2, + 0x105B3000105BA, + 0x105BB000105BD, + 0x1060000010737, + 0x1074000010756, + 0x1076000010768, + 0x1078000010781, + 0x1080000010806, + 0x1080800010809, + 0x1080A00010836, + 0x1083700010839, + 0x1083C0001083D, + 0x1083F00010856, + 0x1086000010877, + 0x108800001089F, + 0x108E0000108F3, + 0x108F4000108F6, + 0x1090000010916, + 0x109200001093A, + 0x10980000109B8, + 0x109BE000109C0, + 0x10A0000010A04, + 0x10A0500010A07, + 0x10A0C00010A14, + 0x10A1500010A18, + 0x10A1900010A36, + 0x10A3800010A3B, + 0x10A3F00010A40, + 0x10A6000010A7D, + 0x10A8000010A9D, + 0x10AC000010AC8, + 0x10AC900010AE7, + 0x10B0000010B36, + 0x10B4000010B56, + 0x10B6000010B73, + 0x10B8000010B92, + 0x10C0000010C49, + 0x10CC000010CF3, + 0x10D0000010D28, + 0x10D3000010D3A, + 0x10E8000010EAA, + 0x10EAB00010EAD, + 0x10EB000010EB2, + 0x10EFD00010F1D, + 0x10F2700010F28, + 0x10F3000010F51, + 0x10F7000010F86, + 0x10FB000010FC5, + 0x10FE000010FF7, + 0x1100000011047, + 0x1106600011076, + 0x1107F000110BB, + 0x110C2000110C3, + 0x110D0000110E9, + 0x110F0000110FA, + 0x1110000011135, + 0x1113600011140, + 0x1114400011148, + 0x1115000011174, + 0x1117600011177, + 0x11180000111C5, + 0x111C9000111CD, + 0x111CE000111DB, + 0x111DC000111DD, + 0x1120000011212, + 0x1121300011238, + 0x1123E00011242, + 0x1128000011287, + 0x1128800011289, + 0x1128A0001128E, + 0x1128F0001129E, + 0x1129F000112A9, + 0x112B0000112EB, + 0x112F0000112FA, + 0x1130000011304, + 0x113050001130D, + 0x1130F00011311, + 0x1131300011329, + 0x1132A00011331, + 0x1133200011334, + 0x113350001133A, + 0x1133B00011345, + 0x1134700011349, + 0x1134B0001134E, + 0x1135000011351, + 0x1135700011358, + 0x1135D00011364, + 0x113660001136D, + 0x1137000011375, + 0x114000001144B, + 0x114500001145A, + 0x1145E00011462, + 0x11480000114C6, + 0x114C7000114C8, + 0x114D0000114DA, + 0x11580000115B6, + 0x115B8000115C1, + 0x115D8000115DE, + 0x1160000011641, + 0x1164400011645, + 0x116500001165A, + 0x11680000116B9, + 0x116C0000116CA, + 0x117000001171B, + 0x1171D0001172C, + 0x117300001173A, + 0x1174000011747, + 0x118000001183B, + 0x118C0000118EA, + 0x118FF00011907, + 0x119090001190A, + 0x1190C00011914, + 0x1191500011917, + 0x1191800011936, + 0x1193700011939, + 0x1193B00011944, + 0x119500001195A, + 0x119A0000119A8, + 0x119AA000119D8, + 0x119DA000119E2, + 0x119E3000119E5, + 0x11A0000011A3F, + 0x11A4700011A48, + 0x11A5000011A9A, + 0x11A9D00011A9E, + 0x11AB000011AF9, + 0x11C0000011C09, + 0x11C0A00011C37, + 0x11C3800011C41, + 0x11C5000011C5A, + 0x11C7200011C90, + 0x11C9200011CA8, + 0x11CA900011CB7, + 0x11D0000011D07, + 0x11D0800011D0A, + 0x11D0B00011D37, + 0x11D3A00011D3B, + 0x11D3C00011D3E, + 0x11D3F00011D48, + 0x11D5000011D5A, + 0x11D6000011D66, + 0x11D6700011D69, + 0x11D6A00011D8F, + 0x11D9000011D92, + 0x11D9300011D99, + 0x11DA000011DAA, + 0x11EE000011EF7, + 0x11F0000011F11, + 0x11F1200011F3B, + 0x11F3E00011F43, + 0x11F5000011F5A, + 0x11FB000011FB1, + 0x120000001239A, + 0x1248000012544, + 0x12F9000012FF1, + 0x1300000013430, + 0x1344000013456, + 0x1440000014647, + 0x1680000016A39, + 0x16A4000016A5F, + 0x16A6000016A6A, + 0x16A7000016ABF, + 0x16AC000016ACA, + 0x16AD000016AEE, + 0x16AF000016AF5, + 0x16B0000016B37, + 0x16B4000016B44, + 0x16B5000016B5A, + 0x16B6300016B78, + 0x16B7D00016B90, + 0x16E6000016E80, + 0x16F0000016F4B, + 0x16F4F00016F88, + 0x16F8F00016FA0, + 0x16FE000016FE2, + 0x16FE300016FE5, + 0x16FF000016FF2, + 0x17000000187F8, + 0x1880000018CD6, + 0x18D0000018D09, + 0x1AFF00001AFF4, + 0x1AFF50001AFFC, + 0x1AFFD0001AFFF, + 0x1B0000001B123, + 0x1B1320001B133, + 0x1B1500001B153, + 0x1B1550001B156, + 0x1B1640001B168, + 0x1B1700001B2FC, + 0x1BC000001BC6B, + 0x1BC700001BC7D, + 0x1BC800001BC89, + 0x1BC900001BC9A, + 0x1BC9D0001BC9F, + 0x1CF000001CF2E, + 0x1CF300001CF47, + 0x1DA000001DA37, + 0x1DA3B0001DA6D, + 0x1DA750001DA76, + 0x1DA840001DA85, + 0x1DA9B0001DAA0, + 0x1DAA10001DAB0, + 0x1DF000001DF1F, + 0x1DF250001DF2B, + 0x1E0000001E007, + 0x1E0080001E019, + 0x1E01B0001E022, + 0x1E0230001E025, + 0x1E0260001E02B, + 0x1E08F0001E090, + 0x1E1000001E12D, + 0x1E1300001E13E, + 0x1E1400001E14A, + 0x1E14E0001E14F, + 0x1E2900001E2AF, + 0x1E2C00001E2FA, + 0x1E4D00001E4FA, + 0x1E7E00001E7E7, + 0x1E7E80001E7EC, + 0x1E7ED0001E7EF, + 0x1E7F00001E7FF, + 0x1E8000001E8C5, + 0x1E8D00001E8D7, + 0x1E9220001E94C, + 0x1E9500001E95A, + 0x200000002A6E0, + 0x2A7000002B73A, + 0x2B7400002B81E, + 0x2B8200002CEA2, + 0x2CEB00002EBE1, + 0x2EBF00002EE5E, + 0x300000003134B, + 0x31350000323B0, + ), + "CONTEXTJ": (0x200C0000200E,), + "CONTEXTO": ( + 0xB7000000B8, + 0x37500000376, + 0x5F3000005F5, + 0x6600000066A, + 0x6F0000006FA, + 0x30FB000030FC, + ), +} diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna/intranges.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna/intranges.py new file mode 100644 index 0000000..7bfaa8d --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna/intranges.py @@ -0,0 +1,57 @@ +""" +Given a list of integers, made up of (hopefully) a small number of long runs +of consecutive integers, compute a representation of the form +((start1, end1), (start2, end2) ...). Then answer the question "was x present +in the original list?" in time O(log(# runs)). +""" + +import bisect +from typing import List, Tuple + + +def intranges_from_list(list_: List[int]) -> Tuple[int, ...]: + """Represent a list of integers as a sequence of ranges: + ((start_0, end_0), (start_1, end_1), ...), such that the original + integers are exactly those x such that start_i <= x < end_i for some i. + + Ranges are encoded as single integers (start << 32 | end), not as tuples. + """ + + sorted_list = sorted(list_) + ranges = [] + last_write = -1 + for i in range(len(sorted_list)): + if i + 1 < len(sorted_list): + if sorted_list[i] == sorted_list[i + 1] - 1: + continue + current_range = sorted_list[last_write + 1 : i + 1] + ranges.append(_encode_range(current_range[0], current_range[-1] + 1)) + last_write = i + + return tuple(ranges) + + +def _encode_range(start: int, end: int) -> int: + return (start << 32) | end + + +def _decode_range(r: int) -> Tuple[int, int]: + return (r >> 32), (r & ((1 << 32) - 1)) + + +def intranges_contain(int_: int, ranges: Tuple[int, ...]) -> bool: + """Determine if `int_` falls into one of the ranges in `ranges`.""" + tuple_ = _encode_range(int_, 0) + pos = bisect.bisect_left(ranges, tuple_) + # we could be immediately ahead of a tuple (start, end) + # with start < int_ <= end + if pos > 0: + left, right = _decode_range(ranges[pos - 1]) + if left <= int_ < right: + return True + # or we could be immediately behind a tuple (int_, end) + if pos < len(ranges): + left, _ = _decode_range(ranges[pos]) + if left == int_: + return True + return False diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna/package_data.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna/package_data.py new file mode 100644 index 0000000..514ff7e --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna/package_data.py @@ -0,0 +1 @@ +__version__ = "3.10" diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna/py.typed b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna/py.typed new file mode 100644 index 0000000..e69de29 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna/uts46data.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna/uts46data.py new file mode 100644 index 0000000..eb89432 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/idna/uts46data.py @@ -0,0 +1,8681 @@ +# This file is automatically generated by tools/idna-data +# vim: set fileencoding=utf-8 : + +from typing import List, Tuple, Union + +"""IDNA Mapping Table from UTS46.""" + + +__version__ = "15.1.0" + + +def _seg_0() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x0, "3"), + (0x1, "3"), + (0x2, "3"), + (0x3, "3"), + (0x4, "3"), + (0x5, "3"), + (0x6, "3"), + (0x7, "3"), + (0x8, "3"), + (0x9, "3"), + (0xA, "3"), + (0xB, "3"), + (0xC, "3"), + (0xD, "3"), + (0xE, "3"), + (0xF, "3"), + (0x10, "3"), + (0x11, "3"), + (0x12, "3"), + (0x13, "3"), + (0x14, "3"), + (0x15, "3"), + (0x16, "3"), + (0x17, "3"), + (0x18, "3"), + (0x19, "3"), + (0x1A, "3"), + (0x1B, "3"), + (0x1C, "3"), + (0x1D, "3"), + (0x1E, "3"), + (0x1F, "3"), + (0x20, "3"), + (0x21, "3"), + (0x22, "3"), + (0x23, "3"), + (0x24, "3"), + (0x25, "3"), + (0x26, "3"), + (0x27, "3"), + (0x28, "3"), + (0x29, "3"), + (0x2A, "3"), + (0x2B, "3"), + (0x2C, "3"), + (0x2D, "V"), + (0x2E, "V"), + (0x2F, "3"), + (0x30, "V"), + (0x31, "V"), + (0x32, "V"), + (0x33, "V"), + (0x34, "V"), + (0x35, "V"), + (0x36, "V"), + (0x37, "V"), + (0x38, "V"), + (0x39, "V"), + (0x3A, "3"), + (0x3B, "3"), + (0x3C, "3"), + (0x3D, "3"), + (0x3E, "3"), + (0x3F, "3"), + (0x40, "3"), + (0x41, "M", "a"), + (0x42, "M", "b"), + (0x43, "M", "c"), + (0x44, "M", "d"), + (0x45, "M", "e"), + (0x46, "M", "f"), + (0x47, "M", "g"), + (0x48, "M", "h"), + (0x49, "M", "i"), + (0x4A, "M", "j"), + (0x4B, "M", "k"), + (0x4C, "M", "l"), + (0x4D, "M", "m"), + (0x4E, "M", "n"), + (0x4F, "M", "o"), + (0x50, "M", "p"), + (0x51, "M", "q"), + (0x52, "M", "r"), + (0x53, "M", "s"), + (0x54, "M", "t"), + (0x55, "M", "u"), + (0x56, "M", "v"), + (0x57, "M", "w"), + (0x58, "M", "x"), + (0x59, "M", "y"), + (0x5A, "M", "z"), + (0x5B, "3"), + (0x5C, "3"), + (0x5D, "3"), + (0x5E, "3"), + (0x5F, "3"), + (0x60, "3"), + (0x61, "V"), + (0x62, "V"), + (0x63, "V"), + ] + + +def _seg_1() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x64, "V"), + (0x65, "V"), + (0x66, "V"), + (0x67, "V"), + (0x68, "V"), + (0x69, "V"), + (0x6A, "V"), + (0x6B, "V"), + (0x6C, "V"), + (0x6D, "V"), + (0x6E, "V"), + (0x6F, "V"), + (0x70, "V"), + (0x71, "V"), + (0x72, "V"), + (0x73, "V"), + (0x74, "V"), + (0x75, "V"), + (0x76, "V"), + (0x77, "V"), + (0x78, "V"), + (0x79, "V"), + (0x7A, "V"), + (0x7B, "3"), + (0x7C, "3"), + (0x7D, "3"), + (0x7E, "3"), + (0x7F, "3"), + (0x80, "X"), + (0x81, "X"), + (0x82, "X"), + (0x83, "X"), + (0x84, "X"), + (0x85, "X"), + (0x86, "X"), + (0x87, "X"), + (0x88, "X"), + (0x89, "X"), + (0x8A, "X"), + (0x8B, "X"), + (0x8C, "X"), + (0x8D, "X"), + (0x8E, "X"), + (0x8F, "X"), + (0x90, "X"), + (0x91, "X"), + (0x92, "X"), + (0x93, "X"), + (0x94, "X"), + (0x95, "X"), + (0x96, "X"), + (0x97, "X"), + (0x98, "X"), + (0x99, "X"), + (0x9A, "X"), + (0x9B, "X"), + (0x9C, "X"), + (0x9D, "X"), + (0x9E, "X"), + (0x9F, "X"), + (0xA0, "3", " "), + (0xA1, "V"), + (0xA2, "V"), + (0xA3, "V"), + (0xA4, "V"), + (0xA5, "V"), + (0xA6, "V"), + (0xA7, "V"), + (0xA8, "3", " ̈"), + (0xA9, "V"), + (0xAA, "M", "a"), + (0xAB, "V"), + (0xAC, "V"), + (0xAD, "I"), + (0xAE, "V"), + (0xAF, "3", " ̄"), + (0xB0, "V"), + (0xB1, "V"), + (0xB2, "M", "2"), + (0xB3, "M", "3"), + (0xB4, "3", " ́"), + (0xB5, "M", "μ"), + (0xB6, "V"), + (0xB7, "V"), + (0xB8, "3", " ̧"), + (0xB9, "M", "1"), + (0xBA, "M", "o"), + (0xBB, "V"), + (0xBC, "M", "1⁄4"), + (0xBD, "M", "1⁄2"), + (0xBE, "M", "3⁄4"), + (0xBF, "V"), + (0xC0, "M", "à"), + (0xC1, "M", "á"), + (0xC2, "M", "â"), + (0xC3, "M", "ã"), + (0xC4, "M", "ä"), + (0xC5, "M", "å"), + (0xC6, "M", "æ"), + (0xC7, "M", "ç"), + ] + + +def _seg_2() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0xC8, "M", "è"), + (0xC9, "M", "é"), + (0xCA, "M", "ê"), + (0xCB, "M", "ë"), + (0xCC, "M", "ì"), + (0xCD, "M", "í"), + (0xCE, "M", "î"), + (0xCF, "M", "ï"), + (0xD0, "M", "ð"), + (0xD1, "M", "ñ"), + (0xD2, "M", "ò"), + (0xD3, "M", "ó"), + (0xD4, "M", "ô"), + (0xD5, "M", "õ"), + (0xD6, "M", "ö"), + (0xD7, "V"), + (0xD8, "M", "ø"), + (0xD9, "M", "ù"), + (0xDA, "M", "ú"), + (0xDB, "M", "û"), + (0xDC, "M", "ü"), + (0xDD, "M", "ý"), + (0xDE, "M", "þ"), + (0xDF, "D", "ss"), + (0xE0, "V"), + (0xE1, "V"), + (0xE2, "V"), + (0xE3, "V"), + (0xE4, "V"), + (0xE5, "V"), + (0xE6, "V"), + (0xE7, "V"), + (0xE8, "V"), + (0xE9, "V"), + (0xEA, "V"), + (0xEB, "V"), + (0xEC, "V"), + (0xED, "V"), + (0xEE, "V"), + (0xEF, "V"), + (0xF0, "V"), + (0xF1, "V"), + (0xF2, "V"), + (0xF3, "V"), + (0xF4, "V"), + (0xF5, "V"), + (0xF6, "V"), + (0xF7, "V"), + (0xF8, "V"), + (0xF9, "V"), + (0xFA, "V"), + (0xFB, "V"), + (0xFC, "V"), + (0xFD, "V"), + (0xFE, "V"), + (0xFF, "V"), + (0x100, "M", "ā"), + (0x101, "V"), + (0x102, "M", "ă"), + (0x103, "V"), + (0x104, "M", "ą"), + (0x105, "V"), + (0x106, "M", "ć"), + (0x107, "V"), + (0x108, "M", "ĉ"), + (0x109, "V"), + (0x10A, "M", "ċ"), + (0x10B, "V"), + (0x10C, "M", "č"), + (0x10D, "V"), + (0x10E, "M", "ď"), + (0x10F, "V"), + (0x110, "M", "đ"), + (0x111, "V"), + (0x112, "M", "ē"), + (0x113, "V"), + (0x114, "M", "ĕ"), + (0x115, "V"), + (0x116, "M", "ė"), + (0x117, "V"), + (0x118, "M", "ę"), + (0x119, "V"), + (0x11A, "M", "ě"), + (0x11B, "V"), + (0x11C, "M", "ĝ"), + (0x11D, "V"), + (0x11E, "M", "ğ"), + (0x11F, "V"), + (0x120, "M", "ġ"), + (0x121, "V"), + (0x122, "M", "ģ"), + (0x123, "V"), + (0x124, "M", "ĥ"), + (0x125, "V"), + (0x126, "M", "ħ"), + (0x127, "V"), + (0x128, "M", "ĩ"), + (0x129, "V"), + (0x12A, "M", "ī"), + (0x12B, "V"), + ] + + +def _seg_3() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x12C, "M", "ĭ"), + (0x12D, "V"), + (0x12E, "M", "į"), + (0x12F, "V"), + (0x130, "M", "i̇"), + (0x131, "V"), + (0x132, "M", "ij"), + (0x134, "M", "ĵ"), + (0x135, "V"), + (0x136, "M", "ķ"), + (0x137, "V"), + (0x139, "M", "ĺ"), + (0x13A, "V"), + (0x13B, "M", "ļ"), + (0x13C, "V"), + (0x13D, "M", "ľ"), + (0x13E, "V"), + (0x13F, "M", "l·"), + (0x141, "M", "ł"), + (0x142, "V"), + (0x143, "M", "ń"), + (0x144, "V"), + (0x145, "M", "ņ"), + (0x146, "V"), + (0x147, "M", "ň"), + (0x148, "V"), + (0x149, "M", "ʼn"), + (0x14A, "M", "ŋ"), + (0x14B, "V"), + (0x14C, "M", "ō"), + (0x14D, "V"), + (0x14E, "M", "ŏ"), + (0x14F, "V"), + (0x150, "M", "ő"), + (0x151, "V"), + (0x152, "M", "œ"), + (0x153, "V"), + (0x154, "M", "ŕ"), + (0x155, "V"), + (0x156, "M", "ŗ"), + (0x157, "V"), + (0x158, "M", "ř"), + (0x159, "V"), + (0x15A, "M", "ś"), + (0x15B, "V"), + (0x15C, "M", "ŝ"), + (0x15D, "V"), + (0x15E, "M", "ş"), + (0x15F, "V"), + (0x160, "M", "š"), + (0x161, "V"), + (0x162, "M", "ţ"), + (0x163, "V"), + (0x164, "M", "ť"), + (0x165, "V"), + (0x166, "M", "ŧ"), + (0x167, "V"), + (0x168, "M", "ũ"), + (0x169, "V"), + (0x16A, "M", "ū"), + (0x16B, "V"), + (0x16C, "M", "ŭ"), + (0x16D, "V"), + (0x16E, "M", "ů"), + (0x16F, "V"), + (0x170, "M", "ű"), + (0x171, "V"), + (0x172, "M", "ų"), + (0x173, "V"), + (0x174, "M", "ŵ"), + (0x175, "V"), + (0x176, "M", "ŷ"), + (0x177, "V"), + (0x178, "M", "ÿ"), + (0x179, "M", "ź"), + (0x17A, "V"), + (0x17B, "M", "ż"), + (0x17C, "V"), + (0x17D, "M", "ž"), + (0x17E, "V"), + (0x17F, "M", "s"), + (0x180, "V"), + (0x181, "M", "ɓ"), + (0x182, "M", "ƃ"), + (0x183, "V"), + (0x184, "M", "ƅ"), + (0x185, "V"), + (0x186, "M", "ɔ"), + (0x187, "M", "ƈ"), + (0x188, "V"), + (0x189, "M", "ɖ"), + (0x18A, "M", "ɗ"), + (0x18B, "M", "ƌ"), + (0x18C, "V"), + (0x18E, "M", "ǝ"), + (0x18F, "M", "ə"), + (0x190, "M", "ɛ"), + (0x191, "M", "ƒ"), + (0x192, "V"), + (0x193, "M", "ɠ"), + ] + + +def _seg_4() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x194, "M", "ɣ"), + (0x195, "V"), + (0x196, "M", "ɩ"), + (0x197, "M", "ɨ"), + (0x198, "M", "ƙ"), + (0x199, "V"), + (0x19C, "M", "ɯ"), + (0x19D, "M", "ɲ"), + (0x19E, "V"), + (0x19F, "M", "ɵ"), + (0x1A0, "M", "ơ"), + (0x1A1, "V"), + (0x1A2, "M", "ƣ"), + (0x1A3, "V"), + (0x1A4, "M", "ƥ"), + (0x1A5, "V"), + (0x1A6, "M", "ʀ"), + (0x1A7, "M", "ƨ"), + (0x1A8, "V"), + (0x1A9, "M", "ʃ"), + (0x1AA, "V"), + (0x1AC, "M", "ƭ"), + (0x1AD, "V"), + (0x1AE, "M", "ʈ"), + (0x1AF, "M", "ư"), + (0x1B0, "V"), + (0x1B1, "M", "ʊ"), + (0x1B2, "M", "ʋ"), + (0x1B3, "M", "ƴ"), + (0x1B4, "V"), + (0x1B5, "M", "ƶ"), + (0x1B6, "V"), + (0x1B7, "M", "ʒ"), + (0x1B8, "M", "ƹ"), + (0x1B9, "V"), + (0x1BC, "M", "ƽ"), + (0x1BD, "V"), + (0x1C4, "M", "dž"), + (0x1C7, "M", "lj"), + (0x1CA, "M", "nj"), + (0x1CD, "M", "ǎ"), + (0x1CE, "V"), + (0x1CF, "M", "ǐ"), + (0x1D0, "V"), + (0x1D1, "M", "ǒ"), + (0x1D2, "V"), + (0x1D3, "M", "ǔ"), + (0x1D4, "V"), + (0x1D5, "M", "ǖ"), + (0x1D6, "V"), + (0x1D7, "M", "ǘ"), + (0x1D8, "V"), + (0x1D9, "M", "ǚ"), + (0x1DA, "V"), + (0x1DB, "M", "ǜ"), + (0x1DC, "V"), + (0x1DE, "M", "ǟ"), + (0x1DF, "V"), + (0x1E0, "M", "ǡ"), + (0x1E1, "V"), + (0x1E2, "M", "ǣ"), + (0x1E3, "V"), + (0x1E4, "M", "ǥ"), + (0x1E5, "V"), + (0x1E6, "M", "ǧ"), + (0x1E7, "V"), + (0x1E8, "M", "ǩ"), + (0x1E9, "V"), + (0x1EA, "M", "ǫ"), + (0x1EB, "V"), + (0x1EC, "M", "ǭ"), + (0x1ED, "V"), + (0x1EE, "M", "ǯ"), + (0x1EF, "V"), + (0x1F1, "M", "dz"), + (0x1F4, "M", "ǵ"), + (0x1F5, "V"), + (0x1F6, "M", "ƕ"), + (0x1F7, "M", "ƿ"), + (0x1F8, "M", "ǹ"), + (0x1F9, "V"), + (0x1FA, "M", "ǻ"), + (0x1FB, "V"), + (0x1FC, "M", "ǽ"), + (0x1FD, "V"), + (0x1FE, "M", "ǿ"), + (0x1FF, "V"), + (0x200, "M", "ȁ"), + (0x201, "V"), + (0x202, "M", "ȃ"), + (0x203, "V"), + (0x204, "M", "ȅ"), + (0x205, "V"), + (0x206, "M", "ȇ"), + (0x207, "V"), + (0x208, "M", "ȉ"), + (0x209, "V"), + (0x20A, "M", "ȋ"), + (0x20B, "V"), + (0x20C, "M", "ȍ"), + ] + + +def _seg_5() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x20D, "V"), + (0x20E, "M", "ȏ"), + (0x20F, "V"), + (0x210, "M", "ȑ"), + (0x211, "V"), + (0x212, "M", "ȓ"), + (0x213, "V"), + (0x214, "M", "ȕ"), + (0x215, "V"), + (0x216, "M", "ȗ"), + (0x217, "V"), + (0x218, "M", "ș"), + (0x219, "V"), + (0x21A, "M", "ț"), + (0x21B, "V"), + (0x21C, "M", "ȝ"), + (0x21D, "V"), + (0x21E, "M", "ȟ"), + (0x21F, "V"), + (0x220, "M", "ƞ"), + (0x221, "V"), + (0x222, "M", "ȣ"), + (0x223, "V"), + (0x224, "M", "ȥ"), + (0x225, "V"), + (0x226, "M", "ȧ"), + (0x227, "V"), + (0x228, "M", "ȩ"), + (0x229, "V"), + (0x22A, "M", "ȫ"), + (0x22B, "V"), + (0x22C, "M", "ȭ"), + (0x22D, "V"), + (0x22E, "M", "ȯ"), + (0x22F, "V"), + (0x230, "M", "ȱ"), + (0x231, "V"), + (0x232, "M", "ȳ"), + (0x233, "V"), + (0x23A, "M", "ⱥ"), + (0x23B, "M", "ȼ"), + (0x23C, "V"), + (0x23D, "M", "ƚ"), + (0x23E, "M", "ⱦ"), + (0x23F, "V"), + (0x241, "M", "ɂ"), + (0x242, "V"), + (0x243, "M", "ƀ"), + (0x244, "M", "ʉ"), + (0x245, "M", "ʌ"), + (0x246, "M", "ɇ"), + (0x247, "V"), + (0x248, "M", "ɉ"), + (0x249, "V"), + (0x24A, "M", "ɋ"), + (0x24B, "V"), + (0x24C, "M", "ɍ"), + (0x24D, "V"), + (0x24E, "M", "ɏ"), + (0x24F, "V"), + (0x2B0, "M", "h"), + (0x2B1, "M", "ɦ"), + (0x2B2, "M", "j"), + (0x2B3, "M", "r"), + (0x2B4, "M", "ɹ"), + (0x2B5, "M", "ɻ"), + (0x2B6, "M", "ʁ"), + (0x2B7, "M", "w"), + (0x2B8, "M", "y"), + (0x2B9, "V"), + (0x2D8, "3", " ̆"), + (0x2D9, "3", " ̇"), + (0x2DA, "3", " ̊"), + (0x2DB, "3", " ̨"), + (0x2DC, "3", " ̃"), + (0x2DD, "3", " ̋"), + (0x2DE, "V"), + (0x2E0, "M", "ɣ"), + (0x2E1, "M", "l"), + (0x2E2, "M", "s"), + (0x2E3, "M", "x"), + (0x2E4, "M", "ʕ"), + (0x2E5, "V"), + (0x340, "M", "̀"), + (0x341, "M", "́"), + (0x342, "V"), + (0x343, "M", "̓"), + (0x344, "M", "̈́"), + (0x345, "M", "ι"), + (0x346, "V"), + (0x34F, "I"), + (0x350, "V"), + (0x370, "M", "ͱ"), + (0x371, "V"), + (0x372, "M", "ͳ"), + (0x373, "V"), + (0x374, "M", "ʹ"), + (0x375, "V"), + (0x376, "M", "ͷ"), + (0x377, "V"), + ] + + +def _seg_6() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x378, "X"), + (0x37A, "3", " ι"), + (0x37B, "V"), + (0x37E, "3", ";"), + (0x37F, "M", "ϳ"), + (0x380, "X"), + (0x384, "3", " ́"), + (0x385, "3", " ̈́"), + (0x386, "M", "ά"), + (0x387, "M", "·"), + (0x388, "M", "έ"), + (0x389, "M", "ή"), + (0x38A, "M", "ί"), + (0x38B, "X"), + (0x38C, "M", "ό"), + (0x38D, "X"), + (0x38E, "M", "ύ"), + (0x38F, "M", "ώ"), + (0x390, "V"), + (0x391, "M", "α"), + (0x392, "M", "β"), + (0x393, "M", "γ"), + (0x394, "M", "δ"), + (0x395, "M", "ε"), + (0x396, "M", "ζ"), + (0x397, "M", "η"), + (0x398, "M", "θ"), + (0x399, "M", "ι"), + (0x39A, "M", "κ"), + (0x39B, "M", "λ"), + (0x39C, "M", "μ"), + (0x39D, "M", "ν"), + (0x39E, "M", "ξ"), + (0x39F, "M", "ο"), + (0x3A0, "M", "π"), + (0x3A1, "M", "ρ"), + (0x3A2, "X"), + (0x3A3, "M", "σ"), + (0x3A4, "M", "τ"), + (0x3A5, "M", "υ"), + (0x3A6, "M", "φ"), + (0x3A7, "M", "χ"), + (0x3A8, "M", "ψ"), + (0x3A9, "M", "ω"), + (0x3AA, "M", "ϊ"), + (0x3AB, "M", "ϋ"), + (0x3AC, "V"), + (0x3C2, "D", "σ"), + (0x3C3, "V"), + (0x3CF, "M", "ϗ"), + (0x3D0, "M", "β"), + (0x3D1, "M", "θ"), + (0x3D2, "M", "υ"), + (0x3D3, "M", "ύ"), + (0x3D4, "M", "ϋ"), + (0x3D5, "M", "φ"), + (0x3D6, "M", "π"), + (0x3D7, "V"), + (0x3D8, "M", "ϙ"), + (0x3D9, "V"), + (0x3DA, "M", "ϛ"), + (0x3DB, "V"), + (0x3DC, "M", "ϝ"), + (0x3DD, "V"), + (0x3DE, "M", "ϟ"), + (0x3DF, "V"), + (0x3E0, "M", "ϡ"), + (0x3E1, "V"), + (0x3E2, "M", "ϣ"), + (0x3E3, "V"), + (0x3E4, "M", "ϥ"), + (0x3E5, "V"), + (0x3E6, "M", "ϧ"), + (0x3E7, "V"), + (0x3E8, "M", "ϩ"), + (0x3E9, "V"), + (0x3EA, "M", "ϫ"), + (0x3EB, "V"), + (0x3EC, "M", "ϭ"), + (0x3ED, "V"), + (0x3EE, "M", "ϯ"), + (0x3EF, "V"), + (0x3F0, "M", "κ"), + (0x3F1, "M", "ρ"), + (0x3F2, "M", "σ"), + (0x3F3, "V"), + (0x3F4, "M", "θ"), + (0x3F5, "M", "ε"), + (0x3F6, "V"), + (0x3F7, "M", "ϸ"), + (0x3F8, "V"), + (0x3F9, "M", "σ"), + (0x3FA, "M", "ϻ"), + (0x3FB, "V"), + (0x3FD, "M", "ͻ"), + (0x3FE, "M", "ͼ"), + (0x3FF, "M", "ͽ"), + (0x400, "M", "ѐ"), + (0x401, "M", "ё"), + (0x402, "M", "ђ"), + ] + + +def _seg_7() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x403, "M", "ѓ"), + (0x404, "M", "є"), + (0x405, "M", "ѕ"), + (0x406, "M", "і"), + (0x407, "M", "ї"), + (0x408, "M", "ј"), + (0x409, "M", "љ"), + (0x40A, "M", "њ"), + (0x40B, "M", "ћ"), + (0x40C, "M", "ќ"), + (0x40D, "M", "ѝ"), + (0x40E, "M", "ў"), + (0x40F, "M", "џ"), + (0x410, "M", "а"), + (0x411, "M", "б"), + (0x412, "M", "в"), + (0x413, "M", "г"), + (0x414, "M", "д"), + (0x415, "M", "е"), + (0x416, "M", "ж"), + (0x417, "M", "з"), + (0x418, "M", "и"), + (0x419, "M", "й"), + (0x41A, "M", "к"), + (0x41B, "M", "л"), + (0x41C, "M", "м"), + (0x41D, "M", "н"), + (0x41E, "M", "о"), + (0x41F, "M", "п"), + (0x420, "M", "р"), + (0x421, "M", "с"), + (0x422, "M", "т"), + (0x423, "M", "у"), + (0x424, "M", "ф"), + (0x425, "M", "х"), + (0x426, "M", "ц"), + (0x427, "M", "ч"), + (0x428, "M", "ш"), + (0x429, "M", "щ"), + (0x42A, "M", "ъ"), + (0x42B, "M", "ы"), + (0x42C, "M", "ь"), + (0x42D, "M", "э"), + (0x42E, "M", "ю"), + (0x42F, "M", "я"), + (0x430, "V"), + (0x460, "M", "ѡ"), + (0x461, "V"), + (0x462, "M", "ѣ"), + (0x463, "V"), + (0x464, "M", "ѥ"), + (0x465, "V"), + (0x466, "M", "ѧ"), + (0x467, "V"), + (0x468, "M", "ѩ"), + (0x469, "V"), + (0x46A, "M", "ѫ"), + (0x46B, "V"), + (0x46C, "M", "ѭ"), + (0x46D, "V"), + (0x46E, "M", "ѯ"), + (0x46F, "V"), + (0x470, "M", "ѱ"), + (0x471, "V"), + (0x472, "M", "ѳ"), + (0x473, "V"), + (0x474, "M", "ѵ"), + (0x475, "V"), + (0x476, "M", "ѷ"), + (0x477, "V"), + (0x478, "M", "ѹ"), + (0x479, "V"), + (0x47A, "M", "ѻ"), + (0x47B, "V"), + (0x47C, "M", "ѽ"), + (0x47D, "V"), + (0x47E, "M", "ѿ"), + (0x47F, "V"), + (0x480, "M", "ҁ"), + (0x481, "V"), + (0x48A, "M", "ҋ"), + (0x48B, "V"), + (0x48C, "M", "ҍ"), + (0x48D, "V"), + (0x48E, "M", "ҏ"), + (0x48F, "V"), + (0x490, "M", "ґ"), + (0x491, "V"), + (0x492, "M", "ғ"), + (0x493, "V"), + (0x494, "M", "ҕ"), + (0x495, "V"), + (0x496, "M", "җ"), + (0x497, "V"), + (0x498, "M", "ҙ"), + (0x499, "V"), + (0x49A, "M", "қ"), + (0x49B, "V"), + (0x49C, "M", "ҝ"), + (0x49D, "V"), + ] + + +def _seg_8() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x49E, "M", "ҟ"), + (0x49F, "V"), + (0x4A0, "M", "ҡ"), + (0x4A1, "V"), + (0x4A2, "M", "ң"), + (0x4A3, "V"), + (0x4A4, "M", "ҥ"), + (0x4A5, "V"), + (0x4A6, "M", "ҧ"), + (0x4A7, "V"), + (0x4A8, "M", "ҩ"), + (0x4A9, "V"), + (0x4AA, "M", "ҫ"), + (0x4AB, "V"), + (0x4AC, "M", "ҭ"), + (0x4AD, "V"), + (0x4AE, "M", "ү"), + (0x4AF, "V"), + (0x4B0, "M", "ұ"), + (0x4B1, "V"), + (0x4B2, "M", "ҳ"), + (0x4B3, "V"), + (0x4B4, "M", "ҵ"), + (0x4B5, "V"), + (0x4B6, "M", "ҷ"), + (0x4B7, "V"), + (0x4B8, "M", "ҹ"), + (0x4B9, "V"), + (0x4BA, "M", "һ"), + (0x4BB, "V"), + (0x4BC, "M", "ҽ"), + (0x4BD, "V"), + (0x4BE, "M", "ҿ"), + (0x4BF, "V"), + (0x4C0, "X"), + (0x4C1, "M", "ӂ"), + (0x4C2, "V"), + (0x4C3, "M", "ӄ"), + (0x4C4, "V"), + (0x4C5, "M", "ӆ"), + (0x4C6, "V"), + (0x4C7, "M", "ӈ"), + (0x4C8, "V"), + (0x4C9, "M", "ӊ"), + (0x4CA, "V"), + (0x4CB, "M", "ӌ"), + (0x4CC, "V"), + (0x4CD, "M", "ӎ"), + (0x4CE, "V"), + (0x4D0, "M", "ӑ"), + (0x4D1, "V"), + (0x4D2, "M", "ӓ"), + (0x4D3, "V"), + (0x4D4, "M", "ӕ"), + (0x4D5, "V"), + (0x4D6, "M", "ӗ"), + (0x4D7, "V"), + (0x4D8, "M", "ә"), + (0x4D9, "V"), + (0x4DA, "M", "ӛ"), + (0x4DB, "V"), + (0x4DC, "M", "ӝ"), + (0x4DD, "V"), + (0x4DE, "M", "ӟ"), + (0x4DF, "V"), + (0x4E0, "M", "ӡ"), + (0x4E1, "V"), + (0x4E2, "M", "ӣ"), + (0x4E3, "V"), + (0x4E4, "M", "ӥ"), + (0x4E5, "V"), + (0x4E6, "M", "ӧ"), + (0x4E7, "V"), + (0x4E8, "M", "ө"), + (0x4E9, "V"), + (0x4EA, "M", "ӫ"), + (0x4EB, "V"), + (0x4EC, "M", "ӭ"), + (0x4ED, "V"), + (0x4EE, "M", "ӯ"), + (0x4EF, "V"), + (0x4F0, "M", "ӱ"), + (0x4F1, "V"), + (0x4F2, "M", "ӳ"), + (0x4F3, "V"), + (0x4F4, "M", "ӵ"), + (0x4F5, "V"), + (0x4F6, "M", "ӷ"), + (0x4F7, "V"), + (0x4F8, "M", "ӹ"), + (0x4F9, "V"), + (0x4FA, "M", "ӻ"), + (0x4FB, "V"), + (0x4FC, "M", "ӽ"), + (0x4FD, "V"), + (0x4FE, "M", "ӿ"), + (0x4FF, "V"), + (0x500, "M", "ԁ"), + (0x501, "V"), + (0x502, "M", "ԃ"), + ] + + +def _seg_9() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x503, "V"), + (0x504, "M", "ԅ"), + (0x505, "V"), + (0x506, "M", "ԇ"), + (0x507, "V"), + (0x508, "M", "ԉ"), + (0x509, "V"), + (0x50A, "M", "ԋ"), + (0x50B, "V"), + (0x50C, "M", "ԍ"), + (0x50D, "V"), + (0x50E, "M", "ԏ"), + (0x50F, "V"), + (0x510, "M", "ԑ"), + (0x511, "V"), + (0x512, "M", "ԓ"), + (0x513, "V"), + (0x514, "M", "ԕ"), + (0x515, "V"), + (0x516, "M", "ԗ"), + (0x517, "V"), + (0x518, "M", "ԙ"), + (0x519, "V"), + (0x51A, "M", "ԛ"), + (0x51B, "V"), + (0x51C, "M", "ԝ"), + (0x51D, "V"), + (0x51E, "M", "ԟ"), + (0x51F, "V"), + (0x520, "M", "ԡ"), + (0x521, "V"), + (0x522, "M", "ԣ"), + (0x523, "V"), + (0x524, "M", "ԥ"), + (0x525, "V"), + (0x526, "M", "ԧ"), + (0x527, "V"), + (0x528, "M", "ԩ"), + (0x529, "V"), + (0x52A, "M", "ԫ"), + (0x52B, "V"), + (0x52C, "M", "ԭ"), + (0x52D, "V"), + (0x52E, "M", "ԯ"), + (0x52F, "V"), + (0x530, "X"), + (0x531, "M", "ա"), + (0x532, "M", "բ"), + (0x533, "M", "գ"), + (0x534, "M", "դ"), + (0x535, "M", "ե"), + (0x536, "M", "զ"), + (0x537, "M", "է"), + (0x538, "M", "ը"), + (0x539, "M", "թ"), + (0x53A, "M", "ժ"), + (0x53B, "M", "ի"), + (0x53C, "M", "լ"), + (0x53D, "M", "խ"), + (0x53E, "M", "ծ"), + (0x53F, "M", "կ"), + (0x540, "M", "հ"), + (0x541, "M", "ձ"), + (0x542, "M", "ղ"), + (0x543, "M", "ճ"), + (0x544, "M", "մ"), + (0x545, "M", "յ"), + (0x546, "M", "ն"), + (0x547, "M", "շ"), + (0x548, "M", "ո"), + (0x549, "M", "չ"), + (0x54A, "M", "պ"), + (0x54B, "M", "ջ"), + (0x54C, "M", "ռ"), + (0x54D, "M", "ս"), + (0x54E, "M", "վ"), + (0x54F, "M", "տ"), + (0x550, "M", "ր"), + (0x551, "M", "ց"), + (0x552, "M", "ւ"), + (0x553, "M", "փ"), + (0x554, "M", "ք"), + (0x555, "M", "օ"), + (0x556, "M", "ֆ"), + (0x557, "X"), + (0x559, "V"), + (0x587, "M", "եւ"), + (0x588, "V"), + (0x58B, "X"), + (0x58D, "V"), + (0x590, "X"), + (0x591, "V"), + (0x5C8, "X"), + (0x5D0, "V"), + (0x5EB, "X"), + (0x5EF, "V"), + (0x5F5, "X"), + (0x606, "V"), + (0x61C, "X"), + (0x61D, "V"), + ] + + +def _seg_10() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x675, "M", "اٴ"), + (0x676, "M", "وٴ"), + (0x677, "M", "ۇٴ"), + (0x678, "M", "يٴ"), + (0x679, "V"), + (0x6DD, "X"), + (0x6DE, "V"), + (0x70E, "X"), + (0x710, "V"), + (0x74B, "X"), + (0x74D, "V"), + (0x7B2, "X"), + (0x7C0, "V"), + (0x7FB, "X"), + (0x7FD, "V"), + (0x82E, "X"), + (0x830, "V"), + (0x83F, "X"), + (0x840, "V"), + (0x85C, "X"), + (0x85E, "V"), + (0x85F, "X"), + (0x860, "V"), + (0x86B, "X"), + (0x870, "V"), + (0x88F, "X"), + (0x898, "V"), + (0x8E2, "X"), + (0x8E3, "V"), + (0x958, "M", "क़"), + (0x959, "M", "ख़"), + (0x95A, "M", "ग़"), + (0x95B, "M", "ज़"), + (0x95C, "M", "ड़"), + (0x95D, "M", "ढ़"), + (0x95E, "M", "फ़"), + (0x95F, "M", "य़"), + (0x960, "V"), + (0x984, "X"), + (0x985, "V"), + (0x98D, "X"), + (0x98F, "V"), + (0x991, "X"), + (0x993, "V"), + (0x9A9, "X"), + (0x9AA, "V"), + (0x9B1, "X"), + (0x9B2, "V"), + (0x9B3, "X"), + (0x9B6, "V"), + (0x9BA, "X"), + (0x9BC, "V"), + (0x9C5, "X"), + (0x9C7, "V"), + (0x9C9, "X"), + (0x9CB, "V"), + (0x9CF, "X"), + (0x9D7, "V"), + (0x9D8, "X"), + (0x9DC, "M", "ড়"), + (0x9DD, "M", "ঢ়"), + (0x9DE, "X"), + (0x9DF, "M", "য়"), + (0x9E0, "V"), + (0x9E4, "X"), + (0x9E6, "V"), + (0x9FF, "X"), + (0xA01, "V"), + (0xA04, "X"), + (0xA05, "V"), + (0xA0B, "X"), + (0xA0F, "V"), + (0xA11, "X"), + (0xA13, "V"), + (0xA29, "X"), + (0xA2A, "V"), + (0xA31, "X"), + (0xA32, "V"), + (0xA33, "M", "ਲ਼"), + (0xA34, "X"), + (0xA35, "V"), + (0xA36, "M", "ਸ਼"), + (0xA37, "X"), + (0xA38, "V"), + (0xA3A, "X"), + (0xA3C, "V"), + (0xA3D, "X"), + (0xA3E, "V"), + (0xA43, "X"), + (0xA47, "V"), + (0xA49, "X"), + (0xA4B, "V"), + (0xA4E, "X"), + (0xA51, "V"), + (0xA52, "X"), + (0xA59, "M", "ਖ਼"), + (0xA5A, "M", "ਗ਼"), + (0xA5B, "M", "ਜ਼"), + (0xA5C, "V"), + (0xA5D, "X"), + ] + + +def _seg_11() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0xA5E, "M", "ਫ਼"), + (0xA5F, "X"), + (0xA66, "V"), + (0xA77, "X"), + (0xA81, "V"), + (0xA84, "X"), + (0xA85, "V"), + (0xA8E, "X"), + (0xA8F, "V"), + (0xA92, "X"), + (0xA93, "V"), + (0xAA9, "X"), + (0xAAA, "V"), + (0xAB1, "X"), + (0xAB2, "V"), + (0xAB4, "X"), + (0xAB5, "V"), + (0xABA, "X"), + (0xABC, "V"), + (0xAC6, "X"), + (0xAC7, "V"), + (0xACA, "X"), + (0xACB, "V"), + (0xACE, "X"), + (0xAD0, "V"), + (0xAD1, "X"), + (0xAE0, "V"), + (0xAE4, "X"), + (0xAE6, "V"), + (0xAF2, "X"), + (0xAF9, "V"), + (0xB00, "X"), + (0xB01, "V"), + (0xB04, "X"), + (0xB05, "V"), + (0xB0D, "X"), + (0xB0F, "V"), + (0xB11, "X"), + (0xB13, "V"), + (0xB29, "X"), + (0xB2A, "V"), + (0xB31, "X"), + (0xB32, "V"), + (0xB34, "X"), + (0xB35, "V"), + (0xB3A, "X"), + (0xB3C, "V"), + (0xB45, "X"), + (0xB47, "V"), + (0xB49, "X"), + (0xB4B, "V"), + (0xB4E, "X"), + (0xB55, "V"), + (0xB58, "X"), + (0xB5C, "M", "ଡ଼"), + (0xB5D, "M", "ଢ଼"), + (0xB5E, "X"), + (0xB5F, "V"), + (0xB64, "X"), + (0xB66, "V"), + (0xB78, "X"), + (0xB82, "V"), + (0xB84, "X"), + (0xB85, "V"), + (0xB8B, "X"), + (0xB8E, "V"), + (0xB91, "X"), + (0xB92, "V"), + (0xB96, "X"), + (0xB99, "V"), + (0xB9B, "X"), + (0xB9C, "V"), + (0xB9D, "X"), + (0xB9E, "V"), + (0xBA0, "X"), + (0xBA3, "V"), + (0xBA5, "X"), + (0xBA8, "V"), + (0xBAB, "X"), + (0xBAE, "V"), + (0xBBA, "X"), + (0xBBE, "V"), + (0xBC3, "X"), + (0xBC6, "V"), + (0xBC9, "X"), + (0xBCA, "V"), + (0xBCE, "X"), + (0xBD0, "V"), + (0xBD1, "X"), + (0xBD7, "V"), + (0xBD8, "X"), + (0xBE6, "V"), + (0xBFB, "X"), + (0xC00, "V"), + (0xC0D, "X"), + (0xC0E, "V"), + (0xC11, "X"), + (0xC12, "V"), + (0xC29, "X"), + (0xC2A, "V"), + ] + + +def _seg_12() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0xC3A, "X"), + (0xC3C, "V"), + (0xC45, "X"), + (0xC46, "V"), + (0xC49, "X"), + (0xC4A, "V"), + (0xC4E, "X"), + (0xC55, "V"), + (0xC57, "X"), + (0xC58, "V"), + (0xC5B, "X"), + (0xC5D, "V"), + (0xC5E, "X"), + (0xC60, "V"), + (0xC64, "X"), + (0xC66, "V"), + (0xC70, "X"), + (0xC77, "V"), + (0xC8D, "X"), + (0xC8E, "V"), + (0xC91, "X"), + (0xC92, "V"), + (0xCA9, "X"), + (0xCAA, "V"), + (0xCB4, "X"), + (0xCB5, "V"), + (0xCBA, "X"), + (0xCBC, "V"), + (0xCC5, "X"), + (0xCC6, "V"), + (0xCC9, "X"), + (0xCCA, "V"), + (0xCCE, "X"), + (0xCD5, "V"), + (0xCD7, "X"), + (0xCDD, "V"), + (0xCDF, "X"), + (0xCE0, "V"), + (0xCE4, "X"), + (0xCE6, "V"), + (0xCF0, "X"), + (0xCF1, "V"), + (0xCF4, "X"), + (0xD00, "V"), + (0xD0D, "X"), + (0xD0E, "V"), + (0xD11, "X"), + (0xD12, "V"), + (0xD45, "X"), + (0xD46, "V"), + (0xD49, "X"), + (0xD4A, "V"), + (0xD50, "X"), + (0xD54, "V"), + (0xD64, "X"), + (0xD66, "V"), + (0xD80, "X"), + (0xD81, "V"), + (0xD84, "X"), + (0xD85, "V"), + (0xD97, "X"), + (0xD9A, "V"), + (0xDB2, "X"), + (0xDB3, "V"), + (0xDBC, "X"), + (0xDBD, "V"), + (0xDBE, "X"), + (0xDC0, "V"), + (0xDC7, "X"), + (0xDCA, "V"), + (0xDCB, "X"), + (0xDCF, "V"), + (0xDD5, "X"), + (0xDD6, "V"), + (0xDD7, "X"), + (0xDD8, "V"), + (0xDE0, "X"), + (0xDE6, "V"), + (0xDF0, "X"), + (0xDF2, "V"), + (0xDF5, "X"), + (0xE01, "V"), + (0xE33, "M", "ํา"), + (0xE34, "V"), + (0xE3B, "X"), + (0xE3F, "V"), + (0xE5C, "X"), + (0xE81, "V"), + (0xE83, "X"), + (0xE84, "V"), + (0xE85, "X"), + (0xE86, "V"), + (0xE8B, "X"), + (0xE8C, "V"), + (0xEA4, "X"), + (0xEA5, "V"), + (0xEA6, "X"), + (0xEA7, "V"), + (0xEB3, "M", "ໍາ"), + (0xEB4, "V"), + ] + + +def _seg_13() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0xEBE, "X"), + (0xEC0, "V"), + (0xEC5, "X"), + (0xEC6, "V"), + (0xEC7, "X"), + (0xEC8, "V"), + (0xECF, "X"), + (0xED0, "V"), + (0xEDA, "X"), + (0xEDC, "M", "ຫນ"), + (0xEDD, "M", "ຫມ"), + (0xEDE, "V"), + (0xEE0, "X"), + (0xF00, "V"), + (0xF0C, "M", "་"), + (0xF0D, "V"), + (0xF43, "M", "གྷ"), + (0xF44, "V"), + (0xF48, "X"), + (0xF49, "V"), + (0xF4D, "M", "ཌྷ"), + (0xF4E, "V"), + (0xF52, "M", "དྷ"), + (0xF53, "V"), + (0xF57, "M", "བྷ"), + (0xF58, "V"), + (0xF5C, "M", "ཛྷ"), + (0xF5D, "V"), + (0xF69, "M", "ཀྵ"), + (0xF6A, "V"), + (0xF6D, "X"), + (0xF71, "V"), + (0xF73, "M", "ཱི"), + (0xF74, "V"), + (0xF75, "M", "ཱུ"), + (0xF76, "M", "ྲྀ"), + (0xF77, "M", "ྲཱྀ"), + (0xF78, "M", "ླྀ"), + (0xF79, "M", "ླཱྀ"), + (0xF7A, "V"), + (0xF81, "M", "ཱྀ"), + (0xF82, "V"), + (0xF93, "M", "ྒྷ"), + (0xF94, "V"), + (0xF98, "X"), + (0xF99, "V"), + (0xF9D, "M", "ྜྷ"), + (0xF9E, "V"), + (0xFA2, "M", "ྡྷ"), + (0xFA3, "V"), + (0xFA7, "M", "ྦྷ"), + (0xFA8, "V"), + (0xFAC, "M", "ྫྷ"), + (0xFAD, "V"), + (0xFB9, "M", "ྐྵ"), + (0xFBA, "V"), + (0xFBD, "X"), + (0xFBE, "V"), + (0xFCD, "X"), + (0xFCE, "V"), + (0xFDB, "X"), + (0x1000, "V"), + (0x10A0, "X"), + (0x10C7, "M", "ⴧ"), + (0x10C8, "X"), + (0x10CD, "M", "ⴭ"), + (0x10CE, "X"), + (0x10D0, "V"), + (0x10FC, "M", "ნ"), + (0x10FD, "V"), + (0x115F, "X"), + (0x1161, "V"), + (0x1249, "X"), + (0x124A, "V"), + (0x124E, "X"), + (0x1250, "V"), + (0x1257, "X"), + (0x1258, "V"), + (0x1259, "X"), + (0x125A, "V"), + (0x125E, "X"), + (0x1260, "V"), + (0x1289, "X"), + (0x128A, "V"), + (0x128E, "X"), + (0x1290, "V"), + (0x12B1, "X"), + (0x12B2, "V"), + (0x12B6, "X"), + (0x12B8, "V"), + (0x12BF, "X"), + (0x12C0, "V"), + (0x12C1, "X"), + (0x12C2, "V"), + (0x12C6, "X"), + (0x12C8, "V"), + (0x12D7, "X"), + (0x12D8, "V"), + (0x1311, "X"), + (0x1312, "V"), + ] + + +def _seg_14() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1316, "X"), + (0x1318, "V"), + (0x135B, "X"), + (0x135D, "V"), + (0x137D, "X"), + (0x1380, "V"), + (0x139A, "X"), + (0x13A0, "V"), + (0x13F6, "X"), + (0x13F8, "M", "Ᏸ"), + (0x13F9, "M", "Ᏹ"), + (0x13FA, "M", "Ᏺ"), + (0x13FB, "M", "Ᏻ"), + (0x13FC, "M", "Ᏼ"), + (0x13FD, "M", "Ᏽ"), + (0x13FE, "X"), + (0x1400, "V"), + (0x1680, "X"), + (0x1681, "V"), + (0x169D, "X"), + (0x16A0, "V"), + (0x16F9, "X"), + (0x1700, "V"), + (0x1716, "X"), + (0x171F, "V"), + (0x1737, "X"), + (0x1740, "V"), + (0x1754, "X"), + (0x1760, "V"), + (0x176D, "X"), + (0x176E, "V"), + (0x1771, "X"), + (0x1772, "V"), + (0x1774, "X"), + (0x1780, "V"), + (0x17B4, "X"), + (0x17B6, "V"), + (0x17DE, "X"), + (0x17E0, "V"), + (0x17EA, "X"), + (0x17F0, "V"), + (0x17FA, "X"), + (0x1800, "V"), + (0x1806, "X"), + (0x1807, "V"), + (0x180B, "I"), + (0x180E, "X"), + (0x180F, "I"), + (0x1810, "V"), + (0x181A, "X"), + (0x1820, "V"), + (0x1879, "X"), + (0x1880, "V"), + (0x18AB, "X"), + (0x18B0, "V"), + (0x18F6, "X"), + (0x1900, "V"), + (0x191F, "X"), + (0x1920, "V"), + (0x192C, "X"), + (0x1930, "V"), + (0x193C, "X"), + (0x1940, "V"), + (0x1941, "X"), + (0x1944, "V"), + (0x196E, "X"), + (0x1970, "V"), + (0x1975, "X"), + (0x1980, "V"), + (0x19AC, "X"), + (0x19B0, "V"), + (0x19CA, "X"), + (0x19D0, "V"), + (0x19DB, "X"), + (0x19DE, "V"), + (0x1A1C, "X"), + (0x1A1E, "V"), + (0x1A5F, "X"), + (0x1A60, "V"), + (0x1A7D, "X"), + (0x1A7F, "V"), + (0x1A8A, "X"), + (0x1A90, "V"), + (0x1A9A, "X"), + (0x1AA0, "V"), + (0x1AAE, "X"), + (0x1AB0, "V"), + (0x1ACF, "X"), + (0x1B00, "V"), + (0x1B4D, "X"), + (0x1B50, "V"), + (0x1B7F, "X"), + (0x1B80, "V"), + (0x1BF4, "X"), + (0x1BFC, "V"), + (0x1C38, "X"), + (0x1C3B, "V"), + (0x1C4A, "X"), + (0x1C4D, "V"), + (0x1C80, "M", "в"), + ] + + +def _seg_15() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1C81, "M", "д"), + (0x1C82, "M", "о"), + (0x1C83, "M", "с"), + (0x1C84, "M", "т"), + (0x1C86, "M", "ъ"), + (0x1C87, "M", "ѣ"), + (0x1C88, "M", "ꙋ"), + (0x1C89, "X"), + (0x1C90, "M", "ა"), + (0x1C91, "M", "ბ"), + (0x1C92, "M", "გ"), + (0x1C93, "M", "დ"), + (0x1C94, "M", "ე"), + (0x1C95, "M", "ვ"), + (0x1C96, "M", "ზ"), + (0x1C97, "M", "თ"), + (0x1C98, "M", "ი"), + (0x1C99, "M", "კ"), + (0x1C9A, "M", "ლ"), + (0x1C9B, "M", "მ"), + (0x1C9C, "M", "ნ"), + (0x1C9D, "M", "ო"), + (0x1C9E, "M", "პ"), + (0x1C9F, "M", "ჟ"), + (0x1CA0, "M", "რ"), + (0x1CA1, "M", "ს"), + (0x1CA2, "M", "ტ"), + (0x1CA3, "M", "უ"), + (0x1CA4, "M", "ფ"), + (0x1CA5, "M", "ქ"), + (0x1CA6, "M", "ღ"), + (0x1CA7, "M", "ყ"), + (0x1CA8, "M", "შ"), + (0x1CA9, "M", "ჩ"), + (0x1CAA, "M", "ც"), + (0x1CAB, "M", "ძ"), + (0x1CAC, "M", "წ"), + (0x1CAD, "M", "ჭ"), + (0x1CAE, "M", "ხ"), + (0x1CAF, "M", "ჯ"), + (0x1CB0, "M", "ჰ"), + (0x1CB1, "M", "ჱ"), + (0x1CB2, "M", "ჲ"), + (0x1CB3, "M", "ჳ"), + (0x1CB4, "M", "ჴ"), + (0x1CB5, "M", "ჵ"), + (0x1CB6, "M", "ჶ"), + (0x1CB7, "M", "ჷ"), + (0x1CB8, "M", "ჸ"), + (0x1CB9, "M", "ჹ"), + (0x1CBA, "M", "ჺ"), + (0x1CBB, "X"), + (0x1CBD, "M", "ჽ"), + (0x1CBE, "M", "ჾ"), + (0x1CBF, "M", "ჿ"), + (0x1CC0, "V"), + (0x1CC8, "X"), + (0x1CD0, "V"), + (0x1CFB, "X"), + (0x1D00, "V"), + (0x1D2C, "M", "a"), + (0x1D2D, "M", "æ"), + (0x1D2E, "M", "b"), + (0x1D2F, "V"), + (0x1D30, "M", "d"), + (0x1D31, "M", "e"), + (0x1D32, "M", "ǝ"), + (0x1D33, "M", "g"), + (0x1D34, "M", "h"), + (0x1D35, "M", "i"), + (0x1D36, "M", "j"), + (0x1D37, "M", "k"), + (0x1D38, "M", "l"), + (0x1D39, "M", "m"), + (0x1D3A, "M", "n"), + (0x1D3B, "V"), + (0x1D3C, "M", "o"), + (0x1D3D, "M", "ȣ"), + (0x1D3E, "M", "p"), + (0x1D3F, "M", "r"), + (0x1D40, "M", "t"), + (0x1D41, "M", "u"), + (0x1D42, "M", "w"), + (0x1D43, "M", "a"), + (0x1D44, "M", "ɐ"), + (0x1D45, "M", "ɑ"), + (0x1D46, "M", "ᴂ"), + (0x1D47, "M", "b"), + (0x1D48, "M", "d"), + (0x1D49, "M", "e"), + (0x1D4A, "M", "ə"), + (0x1D4B, "M", "ɛ"), + (0x1D4C, "M", "ɜ"), + (0x1D4D, "M", "g"), + (0x1D4E, "V"), + (0x1D4F, "M", "k"), + (0x1D50, "M", "m"), + (0x1D51, "M", "ŋ"), + (0x1D52, "M", "o"), + (0x1D53, "M", "ɔ"), + ] + + +def _seg_16() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1D54, "M", "ᴖ"), + (0x1D55, "M", "ᴗ"), + (0x1D56, "M", "p"), + (0x1D57, "M", "t"), + (0x1D58, "M", "u"), + (0x1D59, "M", "ᴝ"), + (0x1D5A, "M", "ɯ"), + (0x1D5B, "M", "v"), + (0x1D5C, "M", "ᴥ"), + (0x1D5D, "M", "β"), + (0x1D5E, "M", "γ"), + (0x1D5F, "M", "δ"), + (0x1D60, "M", "φ"), + (0x1D61, "M", "χ"), + (0x1D62, "M", "i"), + (0x1D63, "M", "r"), + (0x1D64, "M", "u"), + (0x1D65, "M", "v"), + (0x1D66, "M", "β"), + (0x1D67, "M", "γ"), + (0x1D68, "M", "ρ"), + (0x1D69, "M", "φ"), + (0x1D6A, "M", "χ"), + (0x1D6B, "V"), + (0x1D78, "M", "н"), + (0x1D79, "V"), + (0x1D9B, "M", "ɒ"), + (0x1D9C, "M", "c"), + (0x1D9D, "M", "ɕ"), + (0x1D9E, "M", "ð"), + (0x1D9F, "M", "ɜ"), + (0x1DA0, "M", "f"), + (0x1DA1, "M", "ɟ"), + (0x1DA2, "M", "ɡ"), + (0x1DA3, "M", "ɥ"), + (0x1DA4, "M", "ɨ"), + (0x1DA5, "M", "ɩ"), + (0x1DA6, "M", "ɪ"), + (0x1DA7, "M", "ᵻ"), + (0x1DA8, "M", "ʝ"), + (0x1DA9, "M", "ɭ"), + (0x1DAA, "M", "ᶅ"), + (0x1DAB, "M", "ʟ"), + (0x1DAC, "M", "ɱ"), + (0x1DAD, "M", "ɰ"), + (0x1DAE, "M", "ɲ"), + (0x1DAF, "M", "ɳ"), + (0x1DB0, "M", "ɴ"), + (0x1DB1, "M", "ɵ"), + (0x1DB2, "M", "ɸ"), + (0x1DB3, "M", "ʂ"), + (0x1DB4, "M", "ʃ"), + (0x1DB5, "M", "ƫ"), + (0x1DB6, "M", "ʉ"), + (0x1DB7, "M", "ʊ"), + (0x1DB8, "M", "ᴜ"), + (0x1DB9, "M", "ʋ"), + (0x1DBA, "M", "ʌ"), + (0x1DBB, "M", "z"), + (0x1DBC, "M", "ʐ"), + (0x1DBD, "M", "ʑ"), + (0x1DBE, "M", "ʒ"), + (0x1DBF, "M", "θ"), + (0x1DC0, "V"), + (0x1E00, "M", "ḁ"), + (0x1E01, "V"), + (0x1E02, "M", "ḃ"), + (0x1E03, "V"), + (0x1E04, "M", "ḅ"), + (0x1E05, "V"), + (0x1E06, "M", "ḇ"), + (0x1E07, "V"), + (0x1E08, "M", "ḉ"), + (0x1E09, "V"), + (0x1E0A, "M", "ḋ"), + (0x1E0B, "V"), + (0x1E0C, "M", "ḍ"), + (0x1E0D, "V"), + (0x1E0E, "M", "ḏ"), + (0x1E0F, "V"), + (0x1E10, "M", "ḑ"), + (0x1E11, "V"), + (0x1E12, "M", "ḓ"), + (0x1E13, "V"), + (0x1E14, "M", "ḕ"), + (0x1E15, "V"), + (0x1E16, "M", "ḗ"), + (0x1E17, "V"), + (0x1E18, "M", "ḙ"), + (0x1E19, "V"), + (0x1E1A, "M", "ḛ"), + (0x1E1B, "V"), + (0x1E1C, "M", "ḝ"), + (0x1E1D, "V"), + (0x1E1E, "M", "ḟ"), + (0x1E1F, "V"), + (0x1E20, "M", "ḡ"), + (0x1E21, "V"), + (0x1E22, "M", "ḣ"), + (0x1E23, "V"), + ] + + +def _seg_17() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1E24, "M", "ḥ"), + (0x1E25, "V"), + (0x1E26, "M", "ḧ"), + (0x1E27, "V"), + (0x1E28, "M", "ḩ"), + (0x1E29, "V"), + (0x1E2A, "M", "ḫ"), + (0x1E2B, "V"), + (0x1E2C, "M", "ḭ"), + (0x1E2D, "V"), + (0x1E2E, "M", "ḯ"), + (0x1E2F, "V"), + (0x1E30, "M", "ḱ"), + (0x1E31, "V"), + (0x1E32, "M", "ḳ"), + (0x1E33, "V"), + (0x1E34, "M", "ḵ"), + (0x1E35, "V"), + (0x1E36, "M", "ḷ"), + (0x1E37, "V"), + (0x1E38, "M", "ḹ"), + (0x1E39, "V"), + (0x1E3A, "M", "ḻ"), + (0x1E3B, "V"), + (0x1E3C, "M", "ḽ"), + (0x1E3D, "V"), + (0x1E3E, "M", "ḿ"), + (0x1E3F, "V"), + (0x1E40, "M", "ṁ"), + (0x1E41, "V"), + (0x1E42, "M", "ṃ"), + (0x1E43, "V"), + (0x1E44, "M", "ṅ"), + (0x1E45, "V"), + (0x1E46, "M", "ṇ"), + (0x1E47, "V"), + (0x1E48, "M", "ṉ"), + (0x1E49, "V"), + (0x1E4A, "M", "ṋ"), + (0x1E4B, "V"), + (0x1E4C, "M", "ṍ"), + (0x1E4D, "V"), + (0x1E4E, "M", "ṏ"), + (0x1E4F, "V"), + (0x1E50, "M", "ṑ"), + (0x1E51, "V"), + (0x1E52, "M", "ṓ"), + (0x1E53, "V"), + (0x1E54, "M", "ṕ"), + (0x1E55, "V"), + (0x1E56, "M", "ṗ"), + (0x1E57, "V"), + (0x1E58, "M", "ṙ"), + (0x1E59, "V"), + (0x1E5A, "M", "ṛ"), + (0x1E5B, "V"), + (0x1E5C, "M", "ṝ"), + (0x1E5D, "V"), + (0x1E5E, "M", "ṟ"), + (0x1E5F, "V"), + (0x1E60, "M", "ṡ"), + (0x1E61, "V"), + (0x1E62, "M", "ṣ"), + (0x1E63, "V"), + (0x1E64, "M", "ṥ"), + (0x1E65, "V"), + (0x1E66, "M", "ṧ"), + (0x1E67, "V"), + (0x1E68, "M", "ṩ"), + (0x1E69, "V"), + (0x1E6A, "M", "ṫ"), + (0x1E6B, "V"), + (0x1E6C, "M", "ṭ"), + (0x1E6D, "V"), + (0x1E6E, "M", "ṯ"), + (0x1E6F, "V"), + (0x1E70, "M", "ṱ"), + (0x1E71, "V"), + (0x1E72, "M", "ṳ"), + (0x1E73, "V"), + (0x1E74, "M", "ṵ"), + (0x1E75, "V"), + (0x1E76, "M", "ṷ"), + (0x1E77, "V"), + (0x1E78, "M", "ṹ"), + (0x1E79, "V"), + (0x1E7A, "M", "ṻ"), + (0x1E7B, "V"), + (0x1E7C, "M", "ṽ"), + (0x1E7D, "V"), + (0x1E7E, "M", "ṿ"), + (0x1E7F, "V"), + (0x1E80, "M", "ẁ"), + (0x1E81, "V"), + (0x1E82, "M", "ẃ"), + (0x1E83, "V"), + (0x1E84, "M", "ẅ"), + (0x1E85, "V"), + (0x1E86, "M", "ẇ"), + (0x1E87, "V"), + ] + + +def _seg_18() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1E88, "M", "ẉ"), + (0x1E89, "V"), + (0x1E8A, "M", "ẋ"), + (0x1E8B, "V"), + (0x1E8C, "M", "ẍ"), + (0x1E8D, "V"), + (0x1E8E, "M", "ẏ"), + (0x1E8F, "V"), + (0x1E90, "M", "ẑ"), + (0x1E91, "V"), + (0x1E92, "M", "ẓ"), + (0x1E93, "V"), + (0x1E94, "M", "ẕ"), + (0x1E95, "V"), + (0x1E9A, "M", "aʾ"), + (0x1E9B, "M", "ṡ"), + (0x1E9C, "V"), + (0x1E9E, "M", "ß"), + (0x1E9F, "V"), + (0x1EA0, "M", "ạ"), + (0x1EA1, "V"), + (0x1EA2, "M", "ả"), + (0x1EA3, "V"), + (0x1EA4, "M", "ấ"), + (0x1EA5, "V"), + (0x1EA6, "M", "ầ"), + (0x1EA7, "V"), + (0x1EA8, "M", "ẩ"), + (0x1EA9, "V"), + (0x1EAA, "M", "ẫ"), + (0x1EAB, "V"), + (0x1EAC, "M", "ậ"), + (0x1EAD, "V"), + (0x1EAE, "M", "ắ"), + (0x1EAF, "V"), + (0x1EB0, "M", "ằ"), + (0x1EB1, "V"), + (0x1EB2, "M", "ẳ"), + (0x1EB3, "V"), + (0x1EB4, "M", "ẵ"), + (0x1EB5, "V"), + (0x1EB6, "M", "ặ"), + (0x1EB7, "V"), + (0x1EB8, "M", "ẹ"), + (0x1EB9, "V"), + (0x1EBA, "M", "ẻ"), + (0x1EBB, "V"), + (0x1EBC, "M", "ẽ"), + (0x1EBD, "V"), + (0x1EBE, "M", "ế"), + (0x1EBF, "V"), + (0x1EC0, "M", "ề"), + (0x1EC1, "V"), + (0x1EC2, "M", "ể"), + (0x1EC3, "V"), + (0x1EC4, "M", "ễ"), + (0x1EC5, "V"), + (0x1EC6, "M", "ệ"), + (0x1EC7, "V"), + (0x1EC8, "M", "ỉ"), + (0x1EC9, "V"), + (0x1ECA, "M", "ị"), + (0x1ECB, "V"), + (0x1ECC, "M", "ọ"), + (0x1ECD, "V"), + (0x1ECE, "M", "ỏ"), + (0x1ECF, "V"), + (0x1ED0, "M", "ố"), + (0x1ED1, "V"), + (0x1ED2, "M", "ồ"), + (0x1ED3, "V"), + (0x1ED4, "M", "ổ"), + (0x1ED5, "V"), + (0x1ED6, "M", "ỗ"), + (0x1ED7, "V"), + (0x1ED8, "M", "ộ"), + (0x1ED9, "V"), + (0x1EDA, "M", "ớ"), + (0x1EDB, "V"), + (0x1EDC, "M", "ờ"), + (0x1EDD, "V"), + (0x1EDE, "M", "ở"), + (0x1EDF, "V"), + (0x1EE0, "M", "ỡ"), + (0x1EE1, "V"), + (0x1EE2, "M", "ợ"), + (0x1EE3, "V"), + (0x1EE4, "M", "ụ"), + (0x1EE5, "V"), + (0x1EE6, "M", "ủ"), + (0x1EE7, "V"), + (0x1EE8, "M", "ứ"), + (0x1EE9, "V"), + (0x1EEA, "M", "ừ"), + (0x1EEB, "V"), + (0x1EEC, "M", "ử"), + (0x1EED, "V"), + (0x1EEE, "M", "ữ"), + (0x1EEF, "V"), + (0x1EF0, "M", "ự"), + ] + + +def _seg_19() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1EF1, "V"), + (0x1EF2, "M", "ỳ"), + (0x1EF3, "V"), + (0x1EF4, "M", "ỵ"), + (0x1EF5, "V"), + (0x1EF6, "M", "ỷ"), + (0x1EF7, "V"), + (0x1EF8, "M", "ỹ"), + (0x1EF9, "V"), + (0x1EFA, "M", "ỻ"), + (0x1EFB, "V"), + (0x1EFC, "M", "ỽ"), + (0x1EFD, "V"), + (0x1EFE, "M", "ỿ"), + (0x1EFF, "V"), + (0x1F08, "M", "ἀ"), + (0x1F09, "M", "ἁ"), + (0x1F0A, "M", "ἂ"), + (0x1F0B, "M", "ἃ"), + (0x1F0C, "M", "ἄ"), + (0x1F0D, "M", "ἅ"), + (0x1F0E, "M", "ἆ"), + (0x1F0F, "M", "ἇ"), + (0x1F10, "V"), + (0x1F16, "X"), + (0x1F18, "M", "ἐ"), + (0x1F19, "M", "ἑ"), + (0x1F1A, "M", "ἒ"), + (0x1F1B, "M", "ἓ"), + (0x1F1C, "M", "ἔ"), + (0x1F1D, "M", "ἕ"), + (0x1F1E, "X"), + (0x1F20, "V"), + (0x1F28, "M", "ἠ"), + (0x1F29, "M", "ἡ"), + (0x1F2A, "M", "ἢ"), + (0x1F2B, "M", "ἣ"), + (0x1F2C, "M", "ἤ"), + (0x1F2D, "M", "ἥ"), + (0x1F2E, "M", "ἦ"), + (0x1F2F, "M", "ἧ"), + (0x1F30, "V"), + (0x1F38, "M", "ἰ"), + (0x1F39, "M", "ἱ"), + (0x1F3A, "M", "ἲ"), + (0x1F3B, "M", "ἳ"), + (0x1F3C, "M", "ἴ"), + (0x1F3D, "M", "ἵ"), + (0x1F3E, "M", "ἶ"), + (0x1F3F, "M", "ἷ"), + (0x1F40, "V"), + (0x1F46, "X"), + (0x1F48, "M", "ὀ"), + (0x1F49, "M", "ὁ"), + (0x1F4A, "M", "ὂ"), + (0x1F4B, "M", "ὃ"), + (0x1F4C, "M", "ὄ"), + (0x1F4D, "M", "ὅ"), + (0x1F4E, "X"), + (0x1F50, "V"), + (0x1F58, "X"), + (0x1F59, "M", "ὑ"), + (0x1F5A, "X"), + (0x1F5B, "M", "ὓ"), + (0x1F5C, "X"), + (0x1F5D, "M", "ὕ"), + (0x1F5E, "X"), + (0x1F5F, "M", "ὗ"), + (0x1F60, "V"), + (0x1F68, "M", "ὠ"), + (0x1F69, "M", "ὡ"), + (0x1F6A, "M", "ὢ"), + (0x1F6B, "M", "ὣ"), + (0x1F6C, "M", "ὤ"), + (0x1F6D, "M", "ὥ"), + (0x1F6E, "M", "ὦ"), + (0x1F6F, "M", "ὧ"), + (0x1F70, "V"), + (0x1F71, "M", "ά"), + (0x1F72, "V"), + (0x1F73, "M", "έ"), + (0x1F74, "V"), + (0x1F75, "M", "ή"), + (0x1F76, "V"), + (0x1F77, "M", "ί"), + (0x1F78, "V"), + (0x1F79, "M", "ό"), + (0x1F7A, "V"), + (0x1F7B, "M", "ύ"), + (0x1F7C, "V"), + (0x1F7D, "M", "ώ"), + (0x1F7E, "X"), + (0x1F80, "M", "ἀι"), + (0x1F81, "M", "ἁι"), + (0x1F82, "M", "ἂι"), + (0x1F83, "M", "ἃι"), + (0x1F84, "M", "ἄι"), + (0x1F85, "M", "ἅι"), + (0x1F86, "M", "ἆι"), + (0x1F87, "M", "ἇι"), + ] + + +def _seg_20() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1F88, "M", "ἀι"), + (0x1F89, "M", "ἁι"), + (0x1F8A, "M", "ἂι"), + (0x1F8B, "M", "ἃι"), + (0x1F8C, "M", "ἄι"), + (0x1F8D, "M", "ἅι"), + (0x1F8E, "M", "ἆι"), + (0x1F8F, "M", "ἇι"), + (0x1F90, "M", "ἠι"), + (0x1F91, "M", "ἡι"), + (0x1F92, "M", "ἢι"), + (0x1F93, "M", "ἣι"), + (0x1F94, "M", "ἤι"), + (0x1F95, "M", "ἥι"), + (0x1F96, "M", "ἦι"), + (0x1F97, "M", "ἧι"), + (0x1F98, "M", "ἠι"), + (0x1F99, "M", "ἡι"), + (0x1F9A, "M", "ἢι"), + (0x1F9B, "M", "ἣι"), + (0x1F9C, "M", "ἤι"), + (0x1F9D, "M", "ἥι"), + (0x1F9E, "M", "ἦι"), + (0x1F9F, "M", "ἧι"), + (0x1FA0, "M", "ὠι"), + (0x1FA1, "M", "ὡι"), + (0x1FA2, "M", "ὢι"), + (0x1FA3, "M", "ὣι"), + (0x1FA4, "M", "ὤι"), + (0x1FA5, "M", "ὥι"), + (0x1FA6, "M", "ὦι"), + (0x1FA7, "M", "ὧι"), + (0x1FA8, "M", "ὠι"), + (0x1FA9, "M", "ὡι"), + (0x1FAA, "M", "ὢι"), + (0x1FAB, "M", "ὣι"), + (0x1FAC, "M", "ὤι"), + (0x1FAD, "M", "ὥι"), + (0x1FAE, "M", "ὦι"), + (0x1FAF, "M", "ὧι"), + (0x1FB0, "V"), + (0x1FB2, "M", "ὰι"), + (0x1FB3, "M", "αι"), + (0x1FB4, "M", "άι"), + (0x1FB5, "X"), + (0x1FB6, "V"), + (0x1FB7, "M", "ᾶι"), + (0x1FB8, "M", "ᾰ"), + (0x1FB9, "M", "ᾱ"), + (0x1FBA, "M", "ὰ"), + (0x1FBB, "M", "ά"), + (0x1FBC, "M", "αι"), + (0x1FBD, "3", " ̓"), + (0x1FBE, "M", "ι"), + (0x1FBF, "3", " ̓"), + (0x1FC0, "3", " ͂"), + (0x1FC1, "3", " ̈͂"), + (0x1FC2, "M", "ὴι"), + (0x1FC3, "M", "ηι"), + (0x1FC4, "M", "ήι"), + (0x1FC5, "X"), + (0x1FC6, "V"), + (0x1FC7, "M", "ῆι"), + (0x1FC8, "M", "ὲ"), + (0x1FC9, "M", "έ"), + (0x1FCA, "M", "ὴ"), + (0x1FCB, "M", "ή"), + (0x1FCC, "M", "ηι"), + (0x1FCD, "3", " ̓̀"), + (0x1FCE, "3", " ̓́"), + (0x1FCF, "3", " ̓͂"), + (0x1FD0, "V"), + (0x1FD3, "M", "ΐ"), + (0x1FD4, "X"), + (0x1FD6, "V"), + (0x1FD8, "M", "ῐ"), + (0x1FD9, "M", "ῑ"), + (0x1FDA, "M", "ὶ"), + (0x1FDB, "M", "ί"), + (0x1FDC, "X"), + (0x1FDD, "3", " ̔̀"), + (0x1FDE, "3", " ̔́"), + (0x1FDF, "3", " ̔͂"), + (0x1FE0, "V"), + (0x1FE3, "M", "ΰ"), + (0x1FE4, "V"), + (0x1FE8, "M", "ῠ"), + (0x1FE9, "M", "ῡ"), + (0x1FEA, "M", "ὺ"), + (0x1FEB, "M", "ύ"), + (0x1FEC, "M", "ῥ"), + (0x1FED, "3", " ̈̀"), + (0x1FEE, "3", " ̈́"), + (0x1FEF, "3", "`"), + (0x1FF0, "X"), + (0x1FF2, "M", "ὼι"), + (0x1FF3, "M", "ωι"), + (0x1FF4, "M", "ώι"), + (0x1FF5, "X"), + (0x1FF6, "V"), + ] + + +def _seg_21() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1FF7, "M", "ῶι"), + (0x1FF8, "M", "ὸ"), + (0x1FF9, "M", "ό"), + (0x1FFA, "M", "ὼ"), + (0x1FFB, "M", "ώ"), + (0x1FFC, "M", "ωι"), + (0x1FFD, "3", " ́"), + (0x1FFE, "3", " ̔"), + (0x1FFF, "X"), + (0x2000, "3", " "), + (0x200B, "I"), + (0x200C, "D", ""), + (0x200E, "X"), + (0x2010, "V"), + (0x2011, "M", "‐"), + (0x2012, "V"), + (0x2017, "3", " ̳"), + (0x2018, "V"), + (0x2024, "X"), + (0x2027, "V"), + (0x2028, "X"), + (0x202F, "3", " "), + (0x2030, "V"), + (0x2033, "M", "′′"), + (0x2034, "M", "′′′"), + (0x2035, "V"), + (0x2036, "M", "‵‵"), + (0x2037, "M", "‵‵‵"), + (0x2038, "V"), + (0x203C, "3", "!!"), + (0x203D, "V"), + (0x203E, "3", " ̅"), + (0x203F, "V"), + (0x2047, "3", "??"), + (0x2048, "3", "?!"), + (0x2049, "3", "!?"), + (0x204A, "V"), + (0x2057, "M", "′′′′"), + (0x2058, "V"), + (0x205F, "3", " "), + (0x2060, "I"), + (0x2061, "X"), + (0x2064, "I"), + (0x2065, "X"), + (0x2070, "M", "0"), + (0x2071, "M", "i"), + (0x2072, "X"), + (0x2074, "M", "4"), + (0x2075, "M", "5"), + (0x2076, "M", "6"), + (0x2077, "M", "7"), + (0x2078, "M", "8"), + (0x2079, "M", "9"), + (0x207A, "3", "+"), + (0x207B, "M", "−"), + (0x207C, "3", "="), + (0x207D, "3", "("), + (0x207E, "3", ")"), + (0x207F, "M", "n"), + (0x2080, "M", "0"), + (0x2081, "M", "1"), + (0x2082, "M", "2"), + (0x2083, "M", "3"), + (0x2084, "M", "4"), + (0x2085, "M", "5"), + (0x2086, "M", "6"), + (0x2087, "M", "7"), + (0x2088, "M", "8"), + (0x2089, "M", "9"), + (0x208A, "3", "+"), + (0x208B, "M", "−"), + (0x208C, "3", "="), + (0x208D, "3", "("), + (0x208E, "3", ")"), + (0x208F, "X"), + (0x2090, "M", "a"), + (0x2091, "M", "e"), + (0x2092, "M", "o"), + (0x2093, "M", "x"), + (0x2094, "M", "ə"), + (0x2095, "M", "h"), + (0x2096, "M", "k"), + (0x2097, "M", "l"), + (0x2098, "M", "m"), + (0x2099, "M", "n"), + (0x209A, "M", "p"), + (0x209B, "M", "s"), + (0x209C, "M", "t"), + (0x209D, "X"), + (0x20A0, "V"), + (0x20A8, "M", "rs"), + (0x20A9, "V"), + (0x20C1, "X"), + (0x20D0, "V"), + (0x20F1, "X"), + (0x2100, "3", "a/c"), + (0x2101, "3", "a/s"), + (0x2102, "M", "c"), + (0x2103, "M", "°c"), + (0x2104, "V"), + ] + + +def _seg_22() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x2105, "3", "c/o"), + (0x2106, "3", "c/u"), + (0x2107, "M", "ɛ"), + (0x2108, "V"), + (0x2109, "M", "°f"), + (0x210A, "M", "g"), + (0x210B, "M", "h"), + (0x210F, "M", "ħ"), + (0x2110, "M", "i"), + (0x2112, "M", "l"), + (0x2114, "V"), + (0x2115, "M", "n"), + (0x2116, "M", "no"), + (0x2117, "V"), + (0x2119, "M", "p"), + (0x211A, "M", "q"), + (0x211B, "M", "r"), + (0x211E, "V"), + (0x2120, "M", "sm"), + (0x2121, "M", "tel"), + (0x2122, "M", "tm"), + (0x2123, "V"), + (0x2124, "M", "z"), + (0x2125, "V"), + (0x2126, "M", "ω"), + (0x2127, "V"), + (0x2128, "M", "z"), + (0x2129, "V"), + (0x212A, "M", "k"), + (0x212B, "M", "å"), + (0x212C, "M", "b"), + (0x212D, "M", "c"), + (0x212E, "V"), + (0x212F, "M", "e"), + (0x2131, "M", "f"), + (0x2132, "X"), + (0x2133, "M", "m"), + (0x2134, "M", "o"), + (0x2135, "M", "א"), + (0x2136, "M", "ב"), + (0x2137, "M", "ג"), + (0x2138, "M", "ד"), + (0x2139, "M", "i"), + (0x213A, "V"), + (0x213B, "M", "fax"), + (0x213C, "M", "π"), + (0x213D, "M", "γ"), + (0x213F, "M", "π"), + (0x2140, "M", "∑"), + (0x2141, "V"), + (0x2145, "M", "d"), + (0x2147, "M", "e"), + (0x2148, "M", "i"), + (0x2149, "M", "j"), + (0x214A, "V"), + (0x2150, "M", "1⁄7"), + (0x2151, "M", "1⁄9"), + (0x2152, "M", "1⁄10"), + (0x2153, "M", "1⁄3"), + (0x2154, "M", "2⁄3"), + (0x2155, "M", "1⁄5"), + (0x2156, "M", "2⁄5"), + (0x2157, "M", "3⁄5"), + (0x2158, "M", "4⁄5"), + (0x2159, "M", "1⁄6"), + (0x215A, "M", "5⁄6"), + (0x215B, "M", "1⁄8"), + (0x215C, "M", "3⁄8"), + (0x215D, "M", "5⁄8"), + (0x215E, "M", "7⁄8"), + (0x215F, "M", "1⁄"), + (0x2160, "M", "i"), + (0x2161, "M", "ii"), + (0x2162, "M", "iii"), + (0x2163, "M", "iv"), + (0x2164, "M", "v"), + (0x2165, "M", "vi"), + (0x2166, "M", "vii"), + (0x2167, "M", "viii"), + (0x2168, "M", "ix"), + (0x2169, "M", "x"), + (0x216A, "M", "xi"), + (0x216B, "M", "xii"), + (0x216C, "M", "l"), + (0x216D, "M", "c"), + (0x216E, "M", "d"), + (0x216F, "M", "m"), + (0x2170, "M", "i"), + (0x2171, "M", "ii"), + (0x2172, "M", "iii"), + (0x2173, "M", "iv"), + (0x2174, "M", "v"), + (0x2175, "M", "vi"), + (0x2176, "M", "vii"), + (0x2177, "M", "viii"), + (0x2178, "M", "ix"), + (0x2179, "M", "x"), + (0x217A, "M", "xi"), + (0x217B, "M", "xii"), + (0x217C, "M", "l"), + ] + + +def _seg_23() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x217D, "M", "c"), + (0x217E, "M", "d"), + (0x217F, "M", "m"), + (0x2180, "V"), + (0x2183, "X"), + (0x2184, "V"), + (0x2189, "M", "0⁄3"), + (0x218A, "V"), + (0x218C, "X"), + (0x2190, "V"), + (0x222C, "M", "∫∫"), + (0x222D, "M", "∫∫∫"), + (0x222E, "V"), + (0x222F, "M", "∮∮"), + (0x2230, "M", "∮∮∮"), + (0x2231, "V"), + (0x2329, "M", "〈"), + (0x232A, "M", "〉"), + (0x232B, "V"), + (0x2427, "X"), + (0x2440, "V"), + (0x244B, "X"), + (0x2460, "M", "1"), + (0x2461, "M", "2"), + (0x2462, "M", "3"), + (0x2463, "M", "4"), + (0x2464, "M", "5"), + (0x2465, "M", "6"), + (0x2466, "M", "7"), + (0x2467, "M", "8"), + (0x2468, "M", "9"), + (0x2469, "M", "10"), + (0x246A, "M", "11"), + (0x246B, "M", "12"), + (0x246C, "M", "13"), + (0x246D, "M", "14"), + (0x246E, "M", "15"), + (0x246F, "M", "16"), + (0x2470, "M", "17"), + (0x2471, "M", "18"), + (0x2472, "M", "19"), + (0x2473, "M", "20"), + (0x2474, "3", "(1)"), + (0x2475, "3", "(2)"), + (0x2476, "3", "(3)"), + (0x2477, "3", "(4)"), + (0x2478, "3", "(5)"), + (0x2479, "3", "(6)"), + (0x247A, "3", "(7)"), + (0x247B, "3", "(8)"), + (0x247C, "3", "(9)"), + (0x247D, "3", "(10)"), + (0x247E, "3", "(11)"), + (0x247F, "3", "(12)"), + (0x2480, "3", "(13)"), + (0x2481, "3", "(14)"), + (0x2482, "3", "(15)"), + (0x2483, "3", "(16)"), + (0x2484, "3", "(17)"), + (0x2485, "3", "(18)"), + (0x2486, "3", "(19)"), + (0x2487, "3", "(20)"), + (0x2488, "X"), + (0x249C, "3", "(a)"), + (0x249D, "3", "(b)"), + (0x249E, "3", "(c)"), + (0x249F, "3", "(d)"), + (0x24A0, "3", "(e)"), + (0x24A1, "3", "(f)"), + (0x24A2, "3", "(g)"), + (0x24A3, "3", "(h)"), + (0x24A4, "3", "(i)"), + (0x24A5, "3", "(j)"), + (0x24A6, "3", "(k)"), + (0x24A7, "3", "(l)"), + (0x24A8, "3", "(m)"), + (0x24A9, "3", "(n)"), + (0x24AA, "3", "(o)"), + (0x24AB, "3", "(p)"), + (0x24AC, "3", "(q)"), + (0x24AD, "3", "(r)"), + (0x24AE, "3", "(s)"), + (0x24AF, "3", "(t)"), + (0x24B0, "3", "(u)"), + (0x24B1, "3", "(v)"), + (0x24B2, "3", "(w)"), + (0x24B3, "3", "(x)"), + (0x24B4, "3", "(y)"), + (0x24B5, "3", "(z)"), + (0x24B6, "M", "a"), + (0x24B7, "M", "b"), + (0x24B8, "M", "c"), + (0x24B9, "M", "d"), + (0x24BA, "M", "e"), + (0x24BB, "M", "f"), + (0x24BC, "M", "g"), + (0x24BD, "M", "h"), + (0x24BE, "M", "i"), + (0x24BF, "M", "j"), + (0x24C0, "M", "k"), + ] + + +def _seg_24() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x24C1, "M", "l"), + (0x24C2, "M", "m"), + (0x24C3, "M", "n"), + (0x24C4, "M", "o"), + (0x24C5, "M", "p"), + (0x24C6, "M", "q"), + (0x24C7, "M", "r"), + (0x24C8, "M", "s"), + (0x24C9, "M", "t"), + (0x24CA, "M", "u"), + (0x24CB, "M", "v"), + (0x24CC, "M", "w"), + (0x24CD, "M", "x"), + (0x24CE, "M", "y"), + (0x24CF, "M", "z"), + (0x24D0, "M", "a"), + (0x24D1, "M", "b"), + (0x24D2, "M", "c"), + (0x24D3, "M", "d"), + (0x24D4, "M", "e"), + (0x24D5, "M", "f"), + (0x24D6, "M", "g"), + (0x24D7, "M", "h"), + (0x24D8, "M", "i"), + (0x24D9, "M", "j"), + (0x24DA, "M", "k"), + (0x24DB, "M", "l"), + (0x24DC, "M", "m"), + (0x24DD, "M", "n"), + (0x24DE, "M", "o"), + (0x24DF, "M", "p"), + (0x24E0, "M", "q"), + (0x24E1, "M", "r"), + (0x24E2, "M", "s"), + (0x24E3, "M", "t"), + (0x24E4, "M", "u"), + (0x24E5, "M", "v"), + (0x24E6, "M", "w"), + (0x24E7, "M", "x"), + (0x24E8, "M", "y"), + (0x24E9, "M", "z"), + (0x24EA, "M", "0"), + (0x24EB, "V"), + (0x2A0C, "M", "∫∫∫∫"), + (0x2A0D, "V"), + (0x2A74, "3", "::="), + (0x2A75, "3", "=="), + (0x2A76, "3", "==="), + (0x2A77, "V"), + (0x2ADC, "M", "⫝̸"), + (0x2ADD, "V"), + (0x2B74, "X"), + (0x2B76, "V"), + (0x2B96, "X"), + (0x2B97, "V"), + (0x2C00, "M", "ⰰ"), + (0x2C01, "M", "ⰱ"), + (0x2C02, "M", "ⰲ"), + (0x2C03, "M", "ⰳ"), + (0x2C04, "M", "ⰴ"), + (0x2C05, "M", "ⰵ"), + (0x2C06, "M", "ⰶ"), + (0x2C07, "M", "ⰷ"), + (0x2C08, "M", "ⰸ"), + (0x2C09, "M", "ⰹ"), + (0x2C0A, "M", "ⰺ"), + (0x2C0B, "M", "ⰻ"), + (0x2C0C, "M", "ⰼ"), + (0x2C0D, "M", "ⰽ"), + (0x2C0E, "M", "ⰾ"), + (0x2C0F, "M", "ⰿ"), + (0x2C10, "M", "ⱀ"), + (0x2C11, "M", "ⱁ"), + (0x2C12, "M", "ⱂ"), + (0x2C13, "M", "ⱃ"), + (0x2C14, "M", "ⱄ"), + (0x2C15, "M", "ⱅ"), + (0x2C16, "M", "ⱆ"), + (0x2C17, "M", "ⱇ"), + (0x2C18, "M", "ⱈ"), + (0x2C19, "M", "ⱉ"), + (0x2C1A, "M", "ⱊ"), + (0x2C1B, "M", "ⱋ"), + (0x2C1C, "M", "ⱌ"), + (0x2C1D, "M", "ⱍ"), + (0x2C1E, "M", "ⱎ"), + (0x2C1F, "M", "ⱏ"), + (0x2C20, "M", "ⱐ"), + (0x2C21, "M", "ⱑ"), + (0x2C22, "M", "ⱒ"), + (0x2C23, "M", "ⱓ"), + (0x2C24, "M", "ⱔ"), + (0x2C25, "M", "ⱕ"), + (0x2C26, "M", "ⱖ"), + (0x2C27, "M", "ⱗ"), + (0x2C28, "M", "ⱘ"), + (0x2C29, "M", "ⱙ"), + (0x2C2A, "M", "ⱚ"), + (0x2C2B, "M", "ⱛ"), + (0x2C2C, "M", "ⱜ"), + ] + + +def _seg_25() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x2C2D, "M", "ⱝ"), + (0x2C2E, "M", "ⱞ"), + (0x2C2F, "M", "ⱟ"), + (0x2C30, "V"), + (0x2C60, "M", "ⱡ"), + (0x2C61, "V"), + (0x2C62, "M", "ɫ"), + (0x2C63, "M", "ᵽ"), + (0x2C64, "M", "ɽ"), + (0x2C65, "V"), + (0x2C67, "M", "ⱨ"), + (0x2C68, "V"), + (0x2C69, "M", "ⱪ"), + (0x2C6A, "V"), + (0x2C6B, "M", "ⱬ"), + (0x2C6C, "V"), + (0x2C6D, "M", "ɑ"), + (0x2C6E, "M", "ɱ"), + (0x2C6F, "M", "ɐ"), + (0x2C70, "M", "ɒ"), + (0x2C71, "V"), + (0x2C72, "M", "ⱳ"), + (0x2C73, "V"), + (0x2C75, "M", "ⱶ"), + (0x2C76, "V"), + (0x2C7C, "M", "j"), + (0x2C7D, "M", "v"), + (0x2C7E, "M", "ȿ"), + (0x2C7F, "M", "ɀ"), + (0x2C80, "M", "ⲁ"), + (0x2C81, "V"), + (0x2C82, "M", "ⲃ"), + (0x2C83, "V"), + (0x2C84, "M", "ⲅ"), + (0x2C85, "V"), + (0x2C86, "M", "ⲇ"), + (0x2C87, "V"), + (0x2C88, "M", "ⲉ"), + (0x2C89, "V"), + (0x2C8A, "M", "ⲋ"), + (0x2C8B, "V"), + (0x2C8C, "M", "ⲍ"), + (0x2C8D, "V"), + (0x2C8E, "M", "ⲏ"), + (0x2C8F, "V"), + (0x2C90, "M", "ⲑ"), + (0x2C91, "V"), + (0x2C92, "M", "ⲓ"), + (0x2C93, "V"), + (0x2C94, "M", "ⲕ"), + (0x2C95, "V"), + (0x2C96, "M", "ⲗ"), + (0x2C97, "V"), + (0x2C98, "M", "ⲙ"), + (0x2C99, "V"), + (0x2C9A, "M", "ⲛ"), + (0x2C9B, "V"), + (0x2C9C, "M", "ⲝ"), + (0x2C9D, "V"), + (0x2C9E, "M", "ⲟ"), + (0x2C9F, "V"), + (0x2CA0, "M", "ⲡ"), + (0x2CA1, "V"), + (0x2CA2, "M", "ⲣ"), + (0x2CA3, "V"), + (0x2CA4, "M", "ⲥ"), + (0x2CA5, "V"), + (0x2CA6, "M", "ⲧ"), + (0x2CA7, "V"), + (0x2CA8, "M", "ⲩ"), + (0x2CA9, "V"), + (0x2CAA, "M", "ⲫ"), + (0x2CAB, "V"), + (0x2CAC, "M", "ⲭ"), + (0x2CAD, "V"), + (0x2CAE, "M", "ⲯ"), + (0x2CAF, "V"), + (0x2CB0, "M", "ⲱ"), + (0x2CB1, "V"), + (0x2CB2, "M", "ⲳ"), + (0x2CB3, "V"), + (0x2CB4, "M", "ⲵ"), + (0x2CB5, "V"), + (0x2CB6, "M", "ⲷ"), + (0x2CB7, "V"), + (0x2CB8, "M", "ⲹ"), + (0x2CB9, "V"), + (0x2CBA, "M", "ⲻ"), + (0x2CBB, "V"), + (0x2CBC, "M", "ⲽ"), + (0x2CBD, "V"), + (0x2CBE, "M", "ⲿ"), + (0x2CBF, "V"), + (0x2CC0, "M", "ⳁ"), + (0x2CC1, "V"), + (0x2CC2, "M", "ⳃ"), + (0x2CC3, "V"), + (0x2CC4, "M", "ⳅ"), + (0x2CC5, "V"), + (0x2CC6, "M", "ⳇ"), + ] + + +def _seg_26() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x2CC7, "V"), + (0x2CC8, "M", "ⳉ"), + (0x2CC9, "V"), + (0x2CCA, "M", "ⳋ"), + (0x2CCB, "V"), + (0x2CCC, "M", "ⳍ"), + (0x2CCD, "V"), + (0x2CCE, "M", "ⳏ"), + (0x2CCF, "V"), + (0x2CD0, "M", "ⳑ"), + (0x2CD1, "V"), + (0x2CD2, "M", "ⳓ"), + (0x2CD3, "V"), + (0x2CD4, "M", "ⳕ"), + (0x2CD5, "V"), + (0x2CD6, "M", "ⳗ"), + (0x2CD7, "V"), + (0x2CD8, "M", "ⳙ"), + (0x2CD9, "V"), + (0x2CDA, "M", "ⳛ"), + (0x2CDB, "V"), + (0x2CDC, "M", "ⳝ"), + (0x2CDD, "V"), + (0x2CDE, "M", "ⳟ"), + (0x2CDF, "V"), + (0x2CE0, "M", "ⳡ"), + (0x2CE1, "V"), + (0x2CE2, "M", "ⳣ"), + (0x2CE3, "V"), + (0x2CEB, "M", "ⳬ"), + (0x2CEC, "V"), + (0x2CED, "M", "ⳮ"), + (0x2CEE, "V"), + (0x2CF2, "M", "ⳳ"), + (0x2CF3, "V"), + (0x2CF4, "X"), + (0x2CF9, "V"), + (0x2D26, "X"), + (0x2D27, "V"), + (0x2D28, "X"), + (0x2D2D, "V"), + (0x2D2E, "X"), + (0x2D30, "V"), + (0x2D68, "X"), + (0x2D6F, "M", "ⵡ"), + (0x2D70, "V"), + (0x2D71, "X"), + (0x2D7F, "V"), + (0x2D97, "X"), + (0x2DA0, "V"), + (0x2DA7, "X"), + (0x2DA8, "V"), + (0x2DAF, "X"), + (0x2DB0, "V"), + (0x2DB7, "X"), + (0x2DB8, "V"), + (0x2DBF, "X"), + (0x2DC0, "V"), + (0x2DC7, "X"), + (0x2DC8, "V"), + (0x2DCF, "X"), + (0x2DD0, "V"), + (0x2DD7, "X"), + (0x2DD8, "V"), + (0x2DDF, "X"), + (0x2DE0, "V"), + (0x2E5E, "X"), + (0x2E80, "V"), + (0x2E9A, "X"), + (0x2E9B, "V"), + (0x2E9F, "M", "母"), + (0x2EA0, "V"), + (0x2EF3, "M", "龟"), + (0x2EF4, "X"), + (0x2F00, "M", "一"), + (0x2F01, "M", "丨"), + (0x2F02, "M", "丶"), + (0x2F03, "M", "丿"), + (0x2F04, "M", "乙"), + (0x2F05, "M", "亅"), + (0x2F06, "M", "二"), + (0x2F07, "M", "亠"), + (0x2F08, "M", "人"), + (0x2F09, "M", "儿"), + (0x2F0A, "M", "入"), + (0x2F0B, "M", "八"), + (0x2F0C, "M", "冂"), + (0x2F0D, "M", "冖"), + (0x2F0E, "M", "冫"), + (0x2F0F, "M", "几"), + (0x2F10, "M", "凵"), + (0x2F11, "M", "刀"), + (0x2F12, "M", "力"), + (0x2F13, "M", "勹"), + (0x2F14, "M", "匕"), + (0x2F15, "M", "匚"), + (0x2F16, "M", "匸"), + (0x2F17, "M", "十"), + (0x2F18, "M", "卜"), + (0x2F19, "M", "卩"), + ] + + +def _seg_27() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x2F1A, "M", "厂"), + (0x2F1B, "M", "厶"), + (0x2F1C, "M", "又"), + (0x2F1D, "M", "口"), + (0x2F1E, "M", "囗"), + (0x2F1F, "M", "土"), + (0x2F20, "M", "士"), + (0x2F21, "M", "夂"), + (0x2F22, "M", "夊"), + (0x2F23, "M", "夕"), + (0x2F24, "M", "大"), + (0x2F25, "M", "女"), + (0x2F26, "M", "子"), + (0x2F27, "M", "宀"), + (0x2F28, "M", "寸"), + (0x2F29, "M", "小"), + (0x2F2A, "M", "尢"), + (0x2F2B, "M", "尸"), + (0x2F2C, "M", "屮"), + (0x2F2D, "M", "山"), + (0x2F2E, "M", "巛"), + (0x2F2F, "M", "工"), + (0x2F30, "M", "己"), + (0x2F31, "M", "巾"), + (0x2F32, "M", "干"), + (0x2F33, "M", "幺"), + (0x2F34, "M", "广"), + (0x2F35, "M", "廴"), + (0x2F36, "M", "廾"), + (0x2F37, "M", "弋"), + (0x2F38, "M", "弓"), + (0x2F39, "M", "彐"), + (0x2F3A, "M", "彡"), + (0x2F3B, "M", "彳"), + (0x2F3C, "M", "心"), + (0x2F3D, "M", "戈"), + (0x2F3E, "M", "戶"), + (0x2F3F, "M", "手"), + (0x2F40, "M", "支"), + (0x2F41, "M", "攴"), + (0x2F42, "M", "文"), + (0x2F43, "M", "斗"), + (0x2F44, "M", "斤"), + (0x2F45, "M", "方"), + (0x2F46, "M", "无"), + (0x2F47, "M", "日"), + (0x2F48, "M", "曰"), + (0x2F49, "M", "月"), + (0x2F4A, "M", "木"), + (0x2F4B, "M", "欠"), + (0x2F4C, "M", "止"), + (0x2F4D, "M", "歹"), + (0x2F4E, "M", "殳"), + (0x2F4F, "M", "毋"), + (0x2F50, "M", "比"), + (0x2F51, "M", "毛"), + (0x2F52, "M", "氏"), + (0x2F53, "M", "气"), + (0x2F54, "M", "水"), + (0x2F55, "M", "火"), + (0x2F56, "M", "爪"), + (0x2F57, "M", "父"), + (0x2F58, "M", "爻"), + (0x2F59, "M", "爿"), + (0x2F5A, "M", "片"), + (0x2F5B, "M", "牙"), + (0x2F5C, "M", "牛"), + (0x2F5D, "M", "犬"), + (0x2F5E, "M", "玄"), + (0x2F5F, "M", "玉"), + (0x2F60, "M", "瓜"), + (0x2F61, "M", "瓦"), + (0x2F62, "M", "甘"), + (0x2F63, "M", "生"), + (0x2F64, "M", "用"), + (0x2F65, "M", "田"), + (0x2F66, "M", "疋"), + (0x2F67, "M", "疒"), + (0x2F68, "M", "癶"), + (0x2F69, "M", "白"), + (0x2F6A, "M", "皮"), + (0x2F6B, "M", "皿"), + (0x2F6C, "M", "目"), + (0x2F6D, "M", "矛"), + (0x2F6E, "M", "矢"), + (0x2F6F, "M", "石"), + (0x2F70, "M", "示"), + (0x2F71, "M", "禸"), + (0x2F72, "M", "禾"), + (0x2F73, "M", "穴"), + (0x2F74, "M", "立"), + (0x2F75, "M", "竹"), + (0x2F76, "M", "米"), + (0x2F77, "M", "糸"), + (0x2F78, "M", "缶"), + (0x2F79, "M", "网"), + (0x2F7A, "M", "羊"), + (0x2F7B, "M", "羽"), + (0x2F7C, "M", "老"), + (0x2F7D, "M", "而"), + ] + + +def _seg_28() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x2F7E, "M", "耒"), + (0x2F7F, "M", "耳"), + (0x2F80, "M", "聿"), + (0x2F81, "M", "肉"), + (0x2F82, "M", "臣"), + (0x2F83, "M", "自"), + (0x2F84, "M", "至"), + (0x2F85, "M", "臼"), + (0x2F86, "M", "舌"), + (0x2F87, "M", "舛"), + (0x2F88, "M", "舟"), + (0x2F89, "M", "艮"), + (0x2F8A, "M", "色"), + (0x2F8B, "M", "艸"), + (0x2F8C, "M", "虍"), + (0x2F8D, "M", "虫"), + (0x2F8E, "M", "血"), + (0x2F8F, "M", "行"), + (0x2F90, "M", "衣"), + (0x2F91, "M", "襾"), + (0x2F92, "M", "見"), + (0x2F93, "M", "角"), + (0x2F94, "M", "言"), + (0x2F95, "M", "谷"), + (0x2F96, "M", "豆"), + (0x2F97, "M", "豕"), + (0x2F98, "M", "豸"), + (0x2F99, "M", "貝"), + (0x2F9A, "M", "赤"), + (0x2F9B, "M", "走"), + (0x2F9C, "M", "足"), + (0x2F9D, "M", "身"), + (0x2F9E, "M", "車"), + (0x2F9F, "M", "辛"), + (0x2FA0, "M", "辰"), + (0x2FA1, "M", "辵"), + (0x2FA2, "M", "邑"), + (0x2FA3, "M", "酉"), + (0x2FA4, "M", "釆"), + (0x2FA5, "M", "里"), + (0x2FA6, "M", "金"), + (0x2FA7, "M", "長"), + (0x2FA8, "M", "門"), + (0x2FA9, "M", "阜"), + (0x2FAA, "M", "隶"), + (0x2FAB, "M", "隹"), + (0x2FAC, "M", "雨"), + (0x2FAD, "M", "靑"), + (0x2FAE, "M", "非"), + (0x2FAF, "M", "面"), + (0x2FB0, "M", "革"), + (0x2FB1, "M", "韋"), + (0x2FB2, "M", "韭"), + (0x2FB3, "M", "音"), + (0x2FB4, "M", "頁"), + (0x2FB5, "M", "風"), + (0x2FB6, "M", "飛"), + (0x2FB7, "M", "食"), + (0x2FB8, "M", "首"), + (0x2FB9, "M", "香"), + (0x2FBA, "M", "馬"), + (0x2FBB, "M", "骨"), + (0x2FBC, "M", "高"), + (0x2FBD, "M", "髟"), + (0x2FBE, "M", "鬥"), + (0x2FBF, "M", "鬯"), + (0x2FC0, "M", "鬲"), + (0x2FC1, "M", "鬼"), + (0x2FC2, "M", "魚"), + (0x2FC3, "M", "鳥"), + (0x2FC4, "M", "鹵"), + (0x2FC5, "M", "鹿"), + (0x2FC6, "M", "麥"), + (0x2FC7, "M", "麻"), + (0x2FC8, "M", "黃"), + (0x2FC9, "M", "黍"), + (0x2FCA, "M", "黑"), + (0x2FCB, "M", "黹"), + (0x2FCC, "M", "黽"), + (0x2FCD, "M", "鼎"), + (0x2FCE, "M", "鼓"), + (0x2FCF, "M", "鼠"), + (0x2FD0, "M", "鼻"), + (0x2FD1, "M", "齊"), + (0x2FD2, "M", "齒"), + (0x2FD3, "M", "龍"), + (0x2FD4, "M", "龜"), + (0x2FD5, "M", "龠"), + (0x2FD6, "X"), + (0x3000, "3", " "), + (0x3001, "V"), + (0x3002, "M", "."), + (0x3003, "V"), + (0x3036, "M", "〒"), + (0x3037, "V"), + (0x3038, "M", "十"), + (0x3039, "M", "卄"), + (0x303A, "M", "卅"), + (0x303B, "V"), + (0x3040, "X"), + ] + + +def _seg_29() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x3041, "V"), + (0x3097, "X"), + (0x3099, "V"), + (0x309B, "3", " ゙"), + (0x309C, "3", " ゚"), + (0x309D, "V"), + (0x309F, "M", "より"), + (0x30A0, "V"), + (0x30FF, "M", "コト"), + (0x3100, "X"), + (0x3105, "V"), + (0x3130, "X"), + (0x3131, "M", "ᄀ"), + (0x3132, "M", "ᄁ"), + (0x3133, "M", "ᆪ"), + (0x3134, "M", "ᄂ"), + (0x3135, "M", "ᆬ"), + (0x3136, "M", "ᆭ"), + (0x3137, "M", "ᄃ"), + (0x3138, "M", "ᄄ"), + (0x3139, "M", "ᄅ"), + (0x313A, "M", "ᆰ"), + (0x313B, "M", "ᆱ"), + (0x313C, "M", "ᆲ"), + (0x313D, "M", "ᆳ"), + (0x313E, "M", "ᆴ"), + (0x313F, "M", "ᆵ"), + (0x3140, "M", "ᄚ"), + (0x3141, "M", "ᄆ"), + (0x3142, "M", "ᄇ"), + (0x3143, "M", "ᄈ"), + (0x3144, "M", "ᄡ"), + (0x3145, "M", "ᄉ"), + (0x3146, "M", "ᄊ"), + (0x3147, "M", "ᄋ"), + (0x3148, "M", "ᄌ"), + (0x3149, "M", "ᄍ"), + (0x314A, "M", "ᄎ"), + (0x314B, "M", "ᄏ"), + (0x314C, "M", "ᄐ"), + (0x314D, "M", "ᄑ"), + (0x314E, "M", "ᄒ"), + (0x314F, "M", "ᅡ"), + (0x3150, "M", "ᅢ"), + (0x3151, "M", "ᅣ"), + (0x3152, "M", "ᅤ"), + (0x3153, "M", "ᅥ"), + (0x3154, "M", "ᅦ"), + (0x3155, "M", "ᅧ"), + (0x3156, "M", "ᅨ"), + (0x3157, "M", "ᅩ"), + (0x3158, "M", "ᅪ"), + (0x3159, "M", "ᅫ"), + (0x315A, "M", "ᅬ"), + (0x315B, "M", "ᅭ"), + (0x315C, "M", "ᅮ"), + (0x315D, "M", "ᅯ"), + (0x315E, "M", "ᅰ"), + (0x315F, "M", "ᅱ"), + (0x3160, "M", "ᅲ"), + (0x3161, "M", "ᅳ"), + (0x3162, "M", "ᅴ"), + (0x3163, "M", "ᅵ"), + (0x3164, "X"), + (0x3165, "M", "ᄔ"), + (0x3166, "M", "ᄕ"), + (0x3167, "M", "ᇇ"), + (0x3168, "M", "ᇈ"), + (0x3169, "M", "ᇌ"), + (0x316A, "M", "ᇎ"), + (0x316B, "M", "ᇓ"), + (0x316C, "M", "ᇗ"), + (0x316D, "M", "ᇙ"), + (0x316E, "M", "ᄜ"), + (0x316F, "M", "ᇝ"), + (0x3170, "M", "ᇟ"), + (0x3171, "M", "ᄝ"), + (0x3172, "M", "ᄞ"), + (0x3173, "M", "ᄠ"), + (0x3174, "M", "ᄢ"), + (0x3175, "M", "ᄣ"), + (0x3176, "M", "ᄧ"), + (0x3177, "M", "ᄩ"), + (0x3178, "M", "ᄫ"), + (0x3179, "M", "ᄬ"), + (0x317A, "M", "ᄭ"), + (0x317B, "M", "ᄮ"), + (0x317C, "M", "ᄯ"), + (0x317D, "M", "ᄲ"), + (0x317E, "M", "ᄶ"), + (0x317F, "M", "ᅀ"), + (0x3180, "M", "ᅇ"), + (0x3181, "M", "ᅌ"), + (0x3182, "M", "ᇱ"), + (0x3183, "M", "ᇲ"), + (0x3184, "M", "ᅗ"), + (0x3185, "M", "ᅘ"), + (0x3186, "M", "ᅙ"), + (0x3187, "M", "ᆄ"), + (0x3188, "M", "ᆅ"), + ] + + +def _seg_30() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x3189, "M", "ᆈ"), + (0x318A, "M", "ᆑ"), + (0x318B, "M", "ᆒ"), + (0x318C, "M", "ᆔ"), + (0x318D, "M", "ᆞ"), + (0x318E, "M", "ᆡ"), + (0x318F, "X"), + (0x3190, "V"), + (0x3192, "M", "一"), + (0x3193, "M", "二"), + (0x3194, "M", "三"), + (0x3195, "M", "四"), + (0x3196, "M", "上"), + (0x3197, "M", "中"), + (0x3198, "M", "下"), + (0x3199, "M", "甲"), + (0x319A, "M", "乙"), + (0x319B, "M", "丙"), + (0x319C, "M", "丁"), + (0x319D, "M", "天"), + (0x319E, "M", "地"), + (0x319F, "M", "人"), + (0x31A0, "V"), + (0x31E4, "X"), + (0x31F0, "V"), + (0x3200, "3", "(ᄀ)"), + (0x3201, "3", "(ᄂ)"), + (0x3202, "3", "(ᄃ)"), + (0x3203, "3", "(ᄅ)"), + (0x3204, "3", "(ᄆ)"), + (0x3205, "3", "(ᄇ)"), + (0x3206, "3", "(ᄉ)"), + (0x3207, "3", "(ᄋ)"), + (0x3208, "3", "(ᄌ)"), + (0x3209, "3", "(ᄎ)"), + (0x320A, "3", "(ᄏ)"), + (0x320B, "3", "(ᄐ)"), + (0x320C, "3", "(ᄑ)"), + (0x320D, "3", "(ᄒ)"), + (0x320E, "3", "(가)"), + (0x320F, "3", "(나)"), + (0x3210, "3", "(다)"), + (0x3211, "3", "(라)"), + (0x3212, "3", "(마)"), + (0x3213, "3", "(바)"), + (0x3214, "3", "(사)"), + (0x3215, "3", "(아)"), + (0x3216, "3", "(자)"), + (0x3217, "3", "(차)"), + (0x3218, "3", "(카)"), + (0x3219, "3", "(타)"), + (0x321A, "3", "(파)"), + (0x321B, "3", "(하)"), + (0x321C, "3", "(주)"), + (0x321D, "3", "(오전)"), + (0x321E, "3", "(오후)"), + (0x321F, "X"), + (0x3220, "3", "(一)"), + (0x3221, "3", "(二)"), + (0x3222, "3", "(三)"), + (0x3223, "3", "(四)"), + (0x3224, "3", "(五)"), + (0x3225, "3", "(六)"), + (0x3226, "3", "(七)"), + (0x3227, "3", "(八)"), + (0x3228, "3", "(九)"), + (0x3229, "3", "(十)"), + (0x322A, "3", "(月)"), + (0x322B, "3", "(火)"), + (0x322C, "3", "(水)"), + (0x322D, "3", "(木)"), + (0x322E, "3", "(金)"), + (0x322F, "3", "(土)"), + (0x3230, "3", "(日)"), + (0x3231, "3", "(株)"), + (0x3232, "3", "(有)"), + (0x3233, "3", "(社)"), + (0x3234, "3", "(名)"), + (0x3235, "3", "(特)"), + (0x3236, "3", "(財)"), + (0x3237, "3", "(祝)"), + (0x3238, "3", "(労)"), + (0x3239, "3", "(代)"), + (0x323A, "3", "(呼)"), + (0x323B, "3", "(学)"), + (0x323C, "3", "(監)"), + (0x323D, "3", "(企)"), + (0x323E, "3", "(資)"), + (0x323F, "3", "(協)"), + (0x3240, "3", "(祭)"), + (0x3241, "3", "(休)"), + (0x3242, "3", "(自)"), + (0x3243, "3", "(至)"), + (0x3244, "M", "問"), + (0x3245, "M", "幼"), + (0x3246, "M", "文"), + (0x3247, "M", "箏"), + (0x3248, "V"), + (0x3250, "M", "pte"), + (0x3251, "M", "21"), + ] + + +def _seg_31() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x3252, "M", "22"), + (0x3253, "M", "23"), + (0x3254, "M", "24"), + (0x3255, "M", "25"), + (0x3256, "M", "26"), + (0x3257, "M", "27"), + (0x3258, "M", "28"), + (0x3259, "M", "29"), + (0x325A, "M", "30"), + (0x325B, "M", "31"), + (0x325C, "M", "32"), + (0x325D, "M", "33"), + (0x325E, "M", "34"), + (0x325F, "M", "35"), + (0x3260, "M", "ᄀ"), + (0x3261, "M", "ᄂ"), + (0x3262, "M", "ᄃ"), + (0x3263, "M", "ᄅ"), + (0x3264, "M", "ᄆ"), + (0x3265, "M", "ᄇ"), + (0x3266, "M", "ᄉ"), + (0x3267, "M", "ᄋ"), + (0x3268, "M", "ᄌ"), + (0x3269, "M", "ᄎ"), + (0x326A, "M", "ᄏ"), + (0x326B, "M", "ᄐ"), + (0x326C, "M", "ᄑ"), + (0x326D, "M", "ᄒ"), + (0x326E, "M", "가"), + (0x326F, "M", "나"), + (0x3270, "M", "다"), + (0x3271, "M", "라"), + (0x3272, "M", "마"), + (0x3273, "M", "바"), + (0x3274, "M", "사"), + (0x3275, "M", "아"), + (0x3276, "M", "자"), + (0x3277, "M", "차"), + (0x3278, "M", "카"), + (0x3279, "M", "타"), + (0x327A, "M", "파"), + (0x327B, "M", "하"), + (0x327C, "M", "참고"), + (0x327D, "M", "주의"), + (0x327E, "M", "우"), + (0x327F, "V"), + (0x3280, "M", "一"), + (0x3281, "M", "二"), + (0x3282, "M", "三"), + (0x3283, "M", "四"), + (0x3284, "M", "五"), + (0x3285, "M", "六"), + (0x3286, "M", "七"), + (0x3287, "M", "八"), + (0x3288, "M", "九"), + (0x3289, "M", "十"), + (0x328A, "M", "月"), + (0x328B, "M", "火"), + (0x328C, "M", "水"), + (0x328D, "M", "木"), + (0x328E, "M", "金"), + (0x328F, "M", "土"), + (0x3290, "M", "日"), + (0x3291, "M", "株"), + (0x3292, "M", "有"), + (0x3293, "M", "社"), + (0x3294, "M", "名"), + (0x3295, "M", "特"), + (0x3296, "M", "財"), + (0x3297, "M", "祝"), + (0x3298, "M", "労"), + (0x3299, "M", "秘"), + (0x329A, "M", "男"), + (0x329B, "M", "女"), + (0x329C, "M", "適"), + (0x329D, "M", "優"), + (0x329E, "M", "印"), + (0x329F, "M", "注"), + (0x32A0, "M", "項"), + (0x32A1, "M", "休"), + (0x32A2, "M", "写"), + (0x32A3, "M", "正"), + (0x32A4, "M", "上"), + (0x32A5, "M", "中"), + (0x32A6, "M", "下"), + (0x32A7, "M", "左"), + (0x32A8, "M", "右"), + (0x32A9, "M", "医"), + (0x32AA, "M", "宗"), + (0x32AB, "M", "学"), + (0x32AC, "M", "監"), + (0x32AD, "M", "企"), + (0x32AE, "M", "資"), + (0x32AF, "M", "協"), + (0x32B0, "M", "夜"), + (0x32B1, "M", "36"), + (0x32B2, "M", "37"), + (0x32B3, "M", "38"), + (0x32B4, "M", "39"), + (0x32B5, "M", "40"), + ] + + +def _seg_32() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x32B6, "M", "41"), + (0x32B7, "M", "42"), + (0x32B8, "M", "43"), + (0x32B9, "M", "44"), + (0x32BA, "M", "45"), + (0x32BB, "M", "46"), + (0x32BC, "M", "47"), + (0x32BD, "M", "48"), + (0x32BE, "M", "49"), + (0x32BF, "M", "50"), + (0x32C0, "M", "1月"), + (0x32C1, "M", "2月"), + (0x32C2, "M", "3月"), + (0x32C3, "M", "4月"), + (0x32C4, "M", "5月"), + (0x32C5, "M", "6月"), + (0x32C6, "M", "7月"), + (0x32C7, "M", "8月"), + (0x32C8, "M", "9月"), + (0x32C9, "M", "10月"), + (0x32CA, "M", "11月"), + (0x32CB, "M", "12月"), + (0x32CC, "M", "hg"), + (0x32CD, "M", "erg"), + (0x32CE, "M", "ev"), + (0x32CF, "M", "ltd"), + (0x32D0, "M", "ア"), + (0x32D1, "M", "イ"), + (0x32D2, "M", "ウ"), + (0x32D3, "M", "エ"), + (0x32D4, "M", "オ"), + (0x32D5, "M", "カ"), + (0x32D6, "M", "キ"), + (0x32D7, "M", "ク"), + (0x32D8, "M", "ケ"), + (0x32D9, "M", "コ"), + (0x32DA, "M", "サ"), + (0x32DB, "M", "シ"), + (0x32DC, "M", "ス"), + (0x32DD, "M", "セ"), + (0x32DE, "M", "ソ"), + (0x32DF, "M", "タ"), + (0x32E0, "M", "チ"), + (0x32E1, "M", "ツ"), + (0x32E2, "M", "テ"), + (0x32E3, "M", "ト"), + (0x32E4, "M", "ナ"), + (0x32E5, "M", "ニ"), + (0x32E6, "M", "ヌ"), + (0x32E7, "M", "ネ"), + (0x32E8, "M", "ノ"), + (0x32E9, "M", "ハ"), + (0x32EA, "M", "ヒ"), + (0x32EB, "M", "フ"), + (0x32EC, "M", "ヘ"), + (0x32ED, "M", "ホ"), + (0x32EE, "M", "マ"), + (0x32EF, "M", "ミ"), + (0x32F0, "M", "ム"), + (0x32F1, "M", "メ"), + (0x32F2, "M", "モ"), + (0x32F3, "M", "ヤ"), + (0x32F4, "M", "ユ"), + (0x32F5, "M", "ヨ"), + (0x32F6, "M", "ラ"), + (0x32F7, "M", "リ"), + (0x32F8, "M", "ル"), + (0x32F9, "M", "レ"), + (0x32FA, "M", "ロ"), + (0x32FB, "M", "ワ"), + (0x32FC, "M", "ヰ"), + (0x32FD, "M", "ヱ"), + (0x32FE, "M", "ヲ"), + (0x32FF, "M", "令和"), + (0x3300, "M", "アパート"), + (0x3301, "M", "アルファ"), + (0x3302, "M", "アンペア"), + (0x3303, "M", "アール"), + (0x3304, "M", "イニング"), + (0x3305, "M", "インチ"), + (0x3306, "M", "ウォン"), + (0x3307, "M", "エスクード"), + (0x3308, "M", "エーカー"), + (0x3309, "M", "オンス"), + (0x330A, "M", "オーム"), + (0x330B, "M", "カイリ"), + (0x330C, "M", "カラット"), + (0x330D, "M", "カロリー"), + (0x330E, "M", "ガロン"), + (0x330F, "M", "ガンマ"), + (0x3310, "M", "ギガ"), + (0x3311, "M", "ギニー"), + (0x3312, "M", "キュリー"), + (0x3313, "M", "ギルダー"), + (0x3314, "M", "キロ"), + (0x3315, "M", "キログラム"), + (0x3316, "M", "キロメートル"), + (0x3317, "M", "キロワット"), + (0x3318, "M", "グラム"), + (0x3319, "M", "グラムトン"), + ] + + +def _seg_33() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x331A, "M", "クルゼイロ"), + (0x331B, "M", "クローネ"), + (0x331C, "M", "ケース"), + (0x331D, "M", "コルナ"), + (0x331E, "M", "コーポ"), + (0x331F, "M", "サイクル"), + (0x3320, "M", "サンチーム"), + (0x3321, "M", "シリング"), + (0x3322, "M", "センチ"), + (0x3323, "M", "セント"), + (0x3324, "M", "ダース"), + (0x3325, "M", "デシ"), + (0x3326, "M", "ドル"), + (0x3327, "M", "トン"), + (0x3328, "M", "ナノ"), + (0x3329, "M", "ノット"), + (0x332A, "M", "ハイツ"), + (0x332B, "M", "パーセント"), + (0x332C, "M", "パーツ"), + (0x332D, "M", "バーレル"), + (0x332E, "M", "ピアストル"), + (0x332F, "M", "ピクル"), + (0x3330, "M", "ピコ"), + (0x3331, "M", "ビル"), + (0x3332, "M", "ファラッド"), + (0x3333, "M", "フィート"), + (0x3334, "M", "ブッシェル"), + (0x3335, "M", "フラン"), + (0x3336, "M", "ヘクタール"), + (0x3337, "M", "ペソ"), + (0x3338, "M", "ペニヒ"), + (0x3339, "M", "ヘルツ"), + (0x333A, "M", "ペンス"), + (0x333B, "M", "ページ"), + (0x333C, "M", "ベータ"), + (0x333D, "M", "ポイント"), + (0x333E, "M", "ボルト"), + (0x333F, "M", "ホン"), + (0x3340, "M", "ポンド"), + (0x3341, "M", "ホール"), + (0x3342, "M", "ホーン"), + (0x3343, "M", "マイクロ"), + (0x3344, "M", "マイル"), + (0x3345, "M", "マッハ"), + (0x3346, "M", "マルク"), + (0x3347, "M", "マンション"), + (0x3348, "M", "ミクロン"), + (0x3349, "M", "ミリ"), + (0x334A, "M", "ミリバール"), + (0x334B, "M", "メガ"), + (0x334C, "M", "メガトン"), + (0x334D, "M", "メートル"), + (0x334E, "M", "ヤード"), + (0x334F, "M", "ヤール"), + (0x3350, "M", "ユアン"), + (0x3351, "M", "リットル"), + (0x3352, "M", "リラ"), + (0x3353, "M", "ルピー"), + (0x3354, "M", "ルーブル"), + (0x3355, "M", "レム"), + (0x3356, "M", "レントゲン"), + (0x3357, "M", "ワット"), + (0x3358, "M", "0点"), + (0x3359, "M", "1点"), + (0x335A, "M", "2点"), + (0x335B, "M", "3点"), + (0x335C, "M", "4点"), + (0x335D, "M", "5点"), + (0x335E, "M", "6点"), + (0x335F, "M", "7点"), + (0x3360, "M", "8点"), + (0x3361, "M", "9点"), + (0x3362, "M", "10点"), + (0x3363, "M", "11点"), + (0x3364, "M", "12点"), + (0x3365, "M", "13点"), + (0x3366, "M", "14点"), + (0x3367, "M", "15点"), + (0x3368, "M", "16点"), + (0x3369, "M", "17点"), + (0x336A, "M", "18点"), + (0x336B, "M", "19点"), + (0x336C, "M", "20点"), + (0x336D, "M", "21点"), + (0x336E, "M", "22点"), + (0x336F, "M", "23点"), + (0x3370, "M", "24点"), + (0x3371, "M", "hpa"), + (0x3372, "M", "da"), + (0x3373, "M", "au"), + (0x3374, "M", "bar"), + (0x3375, "M", "ov"), + (0x3376, "M", "pc"), + (0x3377, "M", "dm"), + (0x3378, "M", "dm2"), + (0x3379, "M", "dm3"), + (0x337A, "M", "iu"), + (0x337B, "M", "平成"), + (0x337C, "M", "昭和"), + (0x337D, "M", "大正"), + ] + + +def _seg_34() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x337E, "M", "明治"), + (0x337F, "M", "株式会社"), + (0x3380, "M", "pa"), + (0x3381, "M", "na"), + (0x3382, "M", "μa"), + (0x3383, "M", "ma"), + (0x3384, "M", "ka"), + (0x3385, "M", "kb"), + (0x3386, "M", "mb"), + (0x3387, "M", "gb"), + (0x3388, "M", "cal"), + (0x3389, "M", "kcal"), + (0x338A, "M", "pf"), + (0x338B, "M", "nf"), + (0x338C, "M", "μf"), + (0x338D, "M", "μg"), + (0x338E, "M", "mg"), + (0x338F, "M", "kg"), + (0x3390, "M", "hz"), + (0x3391, "M", "khz"), + (0x3392, "M", "mhz"), + (0x3393, "M", "ghz"), + (0x3394, "M", "thz"), + (0x3395, "M", "μl"), + (0x3396, "M", "ml"), + (0x3397, "M", "dl"), + (0x3398, "M", "kl"), + (0x3399, "M", "fm"), + (0x339A, "M", "nm"), + (0x339B, "M", "μm"), + (0x339C, "M", "mm"), + (0x339D, "M", "cm"), + (0x339E, "M", "km"), + (0x339F, "M", "mm2"), + (0x33A0, "M", "cm2"), + (0x33A1, "M", "m2"), + (0x33A2, "M", "km2"), + (0x33A3, "M", "mm3"), + (0x33A4, "M", "cm3"), + (0x33A5, "M", "m3"), + (0x33A6, "M", "km3"), + (0x33A7, "M", "m∕s"), + (0x33A8, "M", "m∕s2"), + (0x33A9, "M", "pa"), + (0x33AA, "M", "kpa"), + (0x33AB, "M", "mpa"), + (0x33AC, "M", "gpa"), + (0x33AD, "M", "rad"), + (0x33AE, "M", "rad∕s"), + (0x33AF, "M", "rad∕s2"), + (0x33B0, "M", "ps"), + (0x33B1, "M", "ns"), + (0x33B2, "M", "μs"), + (0x33B3, "M", "ms"), + (0x33B4, "M", "pv"), + (0x33B5, "M", "nv"), + (0x33B6, "M", "μv"), + (0x33B7, "M", "mv"), + (0x33B8, "M", "kv"), + (0x33B9, "M", "mv"), + (0x33BA, "M", "pw"), + (0x33BB, "M", "nw"), + (0x33BC, "M", "μw"), + (0x33BD, "M", "mw"), + (0x33BE, "M", "kw"), + (0x33BF, "M", "mw"), + (0x33C0, "M", "kω"), + (0x33C1, "M", "mω"), + (0x33C2, "X"), + (0x33C3, "M", "bq"), + (0x33C4, "M", "cc"), + (0x33C5, "M", "cd"), + (0x33C6, "M", "c∕kg"), + (0x33C7, "X"), + (0x33C8, "M", "db"), + (0x33C9, "M", "gy"), + (0x33CA, "M", "ha"), + (0x33CB, "M", "hp"), + (0x33CC, "M", "in"), + (0x33CD, "M", "kk"), + (0x33CE, "M", "km"), + (0x33CF, "M", "kt"), + (0x33D0, "M", "lm"), + (0x33D1, "M", "ln"), + (0x33D2, "M", "log"), + (0x33D3, "M", "lx"), + (0x33D4, "M", "mb"), + (0x33D5, "M", "mil"), + (0x33D6, "M", "mol"), + (0x33D7, "M", "ph"), + (0x33D8, "X"), + (0x33D9, "M", "ppm"), + (0x33DA, "M", "pr"), + (0x33DB, "M", "sr"), + (0x33DC, "M", "sv"), + (0x33DD, "M", "wb"), + (0x33DE, "M", "v∕m"), + (0x33DF, "M", "a∕m"), + (0x33E0, "M", "1日"), + (0x33E1, "M", "2日"), + ] + + +def _seg_35() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x33E2, "M", "3日"), + (0x33E3, "M", "4日"), + (0x33E4, "M", "5日"), + (0x33E5, "M", "6日"), + (0x33E6, "M", "7日"), + (0x33E7, "M", "8日"), + (0x33E8, "M", "9日"), + (0x33E9, "M", "10日"), + (0x33EA, "M", "11日"), + (0x33EB, "M", "12日"), + (0x33EC, "M", "13日"), + (0x33ED, "M", "14日"), + (0x33EE, "M", "15日"), + (0x33EF, "M", "16日"), + (0x33F0, "M", "17日"), + (0x33F1, "M", "18日"), + (0x33F2, "M", "19日"), + (0x33F3, "M", "20日"), + (0x33F4, "M", "21日"), + (0x33F5, "M", "22日"), + (0x33F6, "M", "23日"), + (0x33F7, "M", "24日"), + (0x33F8, "M", "25日"), + (0x33F9, "M", "26日"), + (0x33FA, "M", "27日"), + (0x33FB, "M", "28日"), + (0x33FC, "M", "29日"), + (0x33FD, "M", "30日"), + (0x33FE, "M", "31日"), + (0x33FF, "M", "gal"), + (0x3400, "V"), + (0xA48D, "X"), + (0xA490, "V"), + (0xA4C7, "X"), + (0xA4D0, "V"), + (0xA62C, "X"), + (0xA640, "M", "ꙁ"), + (0xA641, "V"), + (0xA642, "M", "ꙃ"), + (0xA643, "V"), + (0xA644, "M", "ꙅ"), + (0xA645, "V"), + (0xA646, "M", "ꙇ"), + (0xA647, "V"), + (0xA648, "M", "ꙉ"), + (0xA649, "V"), + (0xA64A, "M", "ꙋ"), + (0xA64B, "V"), + (0xA64C, "M", "ꙍ"), + (0xA64D, "V"), + (0xA64E, "M", "ꙏ"), + (0xA64F, "V"), + (0xA650, "M", "ꙑ"), + (0xA651, "V"), + (0xA652, "M", "ꙓ"), + (0xA653, "V"), + (0xA654, "M", "ꙕ"), + (0xA655, "V"), + (0xA656, "M", "ꙗ"), + (0xA657, "V"), + (0xA658, "M", "ꙙ"), + (0xA659, "V"), + (0xA65A, "M", "ꙛ"), + (0xA65B, "V"), + (0xA65C, "M", "ꙝ"), + (0xA65D, "V"), + (0xA65E, "M", "ꙟ"), + (0xA65F, "V"), + (0xA660, "M", "ꙡ"), + (0xA661, "V"), + (0xA662, "M", "ꙣ"), + (0xA663, "V"), + (0xA664, "M", "ꙥ"), + (0xA665, "V"), + (0xA666, "M", "ꙧ"), + (0xA667, "V"), + (0xA668, "M", "ꙩ"), + (0xA669, "V"), + (0xA66A, "M", "ꙫ"), + (0xA66B, "V"), + (0xA66C, "M", "ꙭ"), + (0xA66D, "V"), + (0xA680, "M", "ꚁ"), + (0xA681, "V"), + (0xA682, "M", "ꚃ"), + (0xA683, "V"), + (0xA684, "M", "ꚅ"), + (0xA685, "V"), + (0xA686, "M", "ꚇ"), + (0xA687, "V"), + (0xA688, "M", "ꚉ"), + (0xA689, "V"), + (0xA68A, "M", "ꚋ"), + (0xA68B, "V"), + (0xA68C, "M", "ꚍ"), + (0xA68D, "V"), + (0xA68E, "M", "ꚏ"), + (0xA68F, "V"), + (0xA690, "M", "ꚑ"), + (0xA691, "V"), + ] + + +def _seg_36() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0xA692, "M", "ꚓ"), + (0xA693, "V"), + (0xA694, "M", "ꚕ"), + (0xA695, "V"), + (0xA696, "M", "ꚗ"), + (0xA697, "V"), + (0xA698, "M", "ꚙ"), + (0xA699, "V"), + (0xA69A, "M", "ꚛ"), + (0xA69B, "V"), + (0xA69C, "M", "ъ"), + (0xA69D, "M", "ь"), + (0xA69E, "V"), + (0xA6F8, "X"), + (0xA700, "V"), + (0xA722, "M", "ꜣ"), + (0xA723, "V"), + (0xA724, "M", "ꜥ"), + (0xA725, "V"), + (0xA726, "M", "ꜧ"), + (0xA727, "V"), + (0xA728, "M", "ꜩ"), + (0xA729, "V"), + (0xA72A, "M", "ꜫ"), + (0xA72B, "V"), + (0xA72C, "M", "ꜭ"), + (0xA72D, "V"), + (0xA72E, "M", "ꜯ"), + (0xA72F, "V"), + (0xA732, "M", "ꜳ"), + (0xA733, "V"), + (0xA734, "M", "ꜵ"), + (0xA735, "V"), + (0xA736, "M", "ꜷ"), + (0xA737, "V"), + (0xA738, "M", "ꜹ"), + (0xA739, "V"), + (0xA73A, "M", "ꜻ"), + (0xA73B, "V"), + (0xA73C, "M", "ꜽ"), + (0xA73D, "V"), + (0xA73E, "M", "ꜿ"), + (0xA73F, "V"), + (0xA740, "M", "ꝁ"), + (0xA741, "V"), + (0xA742, "M", "ꝃ"), + (0xA743, "V"), + (0xA744, "M", "ꝅ"), + (0xA745, "V"), + (0xA746, "M", "ꝇ"), + (0xA747, "V"), + (0xA748, "M", "ꝉ"), + (0xA749, "V"), + (0xA74A, "M", "ꝋ"), + (0xA74B, "V"), + (0xA74C, "M", "ꝍ"), + (0xA74D, "V"), + (0xA74E, "M", "ꝏ"), + (0xA74F, "V"), + (0xA750, "M", "ꝑ"), + (0xA751, "V"), + (0xA752, "M", "ꝓ"), + (0xA753, "V"), + (0xA754, "M", "ꝕ"), + (0xA755, "V"), + (0xA756, "M", "ꝗ"), + (0xA757, "V"), + (0xA758, "M", "ꝙ"), + (0xA759, "V"), + (0xA75A, "M", "ꝛ"), + (0xA75B, "V"), + (0xA75C, "M", "ꝝ"), + (0xA75D, "V"), + (0xA75E, "M", "ꝟ"), + (0xA75F, "V"), + (0xA760, "M", "ꝡ"), + (0xA761, "V"), + (0xA762, "M", "ꝣ"), + (0xA763, "V"), + (0xA764, "M", "ꝥ"), + (0xA765, "V"), + (0xA766, "M", "ꝧ"), + (0xA767, "V"), + (0xA768, "M", "ꝩ"), + (0xA769, "V"), + (0xA76A, "M", "ꝫ"), + (0xA76B, "V"), + (0xA76C, "M", "ꝭ"), + (0xA76D, "V"), + (0xA76E, "M", "ꝯ"), + (0xA76F, "V"), + (0xA770, "M", "ꝯ"), + (0xA771, "V"), + (0xA779, "M", "ꝺ"), + (0xA77A, "V"), + (0xA77B, "M", "ꝼ"), + (0xA77C, "V"), + (0xA77D, "M", "ᵹ"), + (0xA77E, "M", "ꝿ"), + (0xA77F, "V"), + ] + + +def _seg_37() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0xA780, "M", "ꞁ"), + (0xA781, "V"), + (0xA782, "M", "ꞃ"), + (0xA783, "V"), + (0xA784, "M", "ꞅ"), + (0xA785, "V"), + (0xA786, "M", "ꞇ"), + (0xA787, "V"), + (0xA78B, "M", "ꞌ"), + (0xA78C, "V"), + (0xA78D, "M", "ɥ"), + (0xA78E, "V"), + (0xA790, "M", "ꞑ"), + (0xA791, "V"), + (0xA792, "M", "ꞓ"), + (0xA793, "V"), + (0xA796, "M", "ꞗ"), + (0xA797, "V"), + (0xA798, "M", "ꞙ"), + (0xA799, "V"), + (0xA79A, "M", "ꞛ"), + (0xA79B, "V"), + (0xA79C, "M", "ꞝ"), + (0xA79D, "V"), + (0xA79E, "M", "ꞟ"), + (0xA79F, "V"), + (0xA7A0, "M", "ꞡ"), + (0xA7A1, "V"), + (0xA7A2, "M", "ꞣ"), + (0xA7A3, "V"), + (0xA7A4, "M", "ꞥ"), + (0xA7A5, "V"), + (0xA7A6, "M", "ꞧ"), + (0xA7A7, "V"), + (0xA7A8, "M", "ꞩ"), + (0xA7A9, "V"), + (0xA7AA, "M", "ɦ"), + (0xA7AB, "M", "ɜ"), + (0xA7AC, "M", "ɡ"), + (0xA7AD, "M", "ɬ"), + (0xA7AE, "M", "ɪ"), + (0xA7AF, "V"), + (0xA7B0, "M", "ʞ"), + (0xA7B1, "M", "ʇ"), + (0xA7B2, "M", "ʝ"), + (0xA7B3, "M", "ꭓ"), + (0xA7B4, "M", "ꞵ"), + (0xA7B5, "V"), + (0xA7B6, "M", "ꞷ"), + (0xA7B7, "V"), + (0xA7B8, "M", "ꞹ"), + (0xA7B9, "V"), + (0xA7BA, "M", "ꞻ"), + (0xA7BB, "V"), + (0xA7BC, "M", "ꞽ"), + (0xA7BD, "V"), + (0xA7BE, "M", "ꞿ"), + (0xA7BF, "V"), + (0xA7C0, "M", "ꟁ"), + (0xA7C1, "V"), + (0xA7C2, "M", "ꟃ"), + (0xA7C3, "V"), + (0xA7C4, "M", "ꞔ"), + (0xA7C5, "M", "ʂ"), + (0xA7C6, "M", "ᶎ"), + (0xA7C7, "M", "ꟈ"), + (0xA7C8, "V"), + (0xA7C9, "M", "ꟊ"), + (0xA7CA, "V"), + (0xA7CB, "X"), + (0xA7D0, "M", "ꟑ"), + (0xA7D1, "V"), + (0xA7D2, "X"), + (0xA7D3, "V"), + (0xA7D4, "X"), + (0xA7D5, "V"), + (0xA7D6, "M", "ꟗ"), + (0xA7D7, "V"), + (0xA7D8, "M", "ꟙ"), + (0xA7D9, "V"), + (0xA7DA, "X"), + (0xA7F2, "M", "c"), + (0xA7F3, "M", "f"), + (0xA7F4, "M", "q"), + (0xA7F5, "M", "ꟶ"), + (0xA7F6, "V"), + (0xA7F8, "M", "ħ"), + (0xA7F9, "M", "œ"), + (0xA7FA, "V"), + (0xA82D, "X"), + (0xA830, "V"), + (0xA83A, "X"), + (0xA840, "V"), + (0xA878, "X"), + (0xA880, "V"), + (0xA8C6, "X"), + (0xA8CE, "V"), + (0xA8DA, "X"), + (0xA8E0, "V"), + (0xA954, "X"), + ] + + +def _seg_38() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0xA95F, "V"), + (0xA97D, "X"), + (0xA980, "V"), + (0xA9CE, "X"), + (0xA9CF, "V"), + (0xA9DA, "X"), + (0xA9DE, "V"), + (0xA9FF, "X"), + (0xAA00, "V"), + (0xAA37, "X"), + (0xAA40, "V"), + (0xAA4E, "X"), + (0xAA50, "V"), + (0xAA5A, "X"), + (0xAA5C, "V"), + (0xAAC3, "X"), + (0xAADB, "V"), + (0xAAF7, "X"), + (0xAB01, "V"), + (0xAB07, "X"), + (0xAB09, "V"), + (0xAB0F, "X"), + (0xAB11, "V"), + (0xAB17, "X"), + (0xAB20, "V"), + (0xAB27, "X"), + (0xAB28, "V"), + (0xAB2F, "X"), + (0xAB30, "V"), + (0xAB5C, "M", "ꜧ"), + (0xAB5D, "M", "ꬷ"), + (0xAB5E, "M", "ɫ"), + (0xAB5F, "M", "ꭒ"), + (0xAB60, "V"), + (0xAB69, "M", "ʍ"), + (0xAB6A, "V"), + (0xAB6C, "X"), + (0xAB70, "M", "Ꭰ"), + (0xAB71, "M", "Ꭱ"), + (0xAB72, "M", "Ꭲ"), + (0xAB73, "M", "Ꭳ"), + (0xAB74, "M", "Ꭴ"), + (0xAB75, "M", "Ꭵ"), + (0xAB76, "M", "Ꭶ"), + (0xAB77, "M", "Ꭷ"), + (0xAB78, "M", "Ꭸ"), + (0xAB79, "M", "Ꭹ"), + (0xAB7A, "M", "Ꭺ"), + (0xAB7B, "M", "Ꭻ"), + (0xAB7C, "M", "Ꭼ"), + (0xAB7D, "M", "Ꭽ"), + (0xAB7E, "M", "Ꭾ"), + (0xAB7F, "M", "Ꭿ"), + (0xAB80, "M", "Ꮀ"), + (0xAB81, "M", "Ꮁ"), + (0xAB82, "M", "Ꮂ"), + (0xAB83, "M", "Ꮃ"), + (0xAB84, "M", "Ꮄ"), + (0xAB85, "M", "Ꮅ"), + (0xAB86, "M", "Ꮆ"), + (0xAB87, "M", "Ꮇ"), + (0xAB88, "M", "Ꮈ"), + (0xAB89, "M", "Ꮉ"), + (0xAB8A, "M", "Ꮊ"), + (0xAB8B, "M", "Ꮋ"), + (0xAB8C, "M", "Ꮌ"), + (0xAB8D, "M", "Ꮍ"), + (0xAB8E, "M", "Ꮎ"), + (0xAB8F, "M", "Ꮏ"), + (0xAB90, "M", "Ꮐ"), + (0xAB91, "M", "Ꮑ"), + (0xAB92, "M", "Ꮒ"), + (0xAB93, "M", "Ꮓ"), + (0xAB94, "M", "Ꮔ"), + (0xAB95, "M", "Ꮕ"), + (0xAB96, "M", "Ꮖ"), + (0xAB97, "M", "Ꮗ"), + (0xAB98, "M", "Ꮘ"), + (0xAB99, "M", "Ꮙ"), + (0xAB9A, "M", "Ꮚ"), + (0xAB9B, "M", "Ꮛ"), + (0xAB9C, "M", "Ꮜ"), + (0xAB9D, "M", "Ꮝ"), + (0xAB9E, "M", "Ꮞ"), + (0xAB9F, "M", "Ꮟ"), + (0xABA0, "M", "Ꮠ"), + (0xABA1, "M", "Ꮡ"), + (0xABA2, "M", "Ꮢ"), + (0xABA3, "M", "Ꮣ"), + (0xABA4, "M", "Ꮤ"), + (0xABA5, "M", "Ꮥ"), + (0xABA6, "M", "Ꮦ"), + (0xABA7, "M", "Ꮧ"), + (0xABA8, "M", "Ꮨ"), + (0xABA9, "M", "Ꮩ"), + (0xABAA, "M", "Ꮪ"), + (0xABAB, "M", "Ꮫ"), + (0xABAC, "M", "Ꮬ"), + (0xABAD, "M", "Ꮭ"), + (0xABAE, "M", "Ꮮ"), + ] + + +def _seg_39() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0xABAF, "M", "Ꮯ"), + (0xABB0, "M", "Ꮰ"), + (0xABB1, "M", "Ꮱ"), + (0xABB2, "M", "Ꮲ"), + (0xABB3, "M", "Ꮳ"), + (0xABB4, "M", "Ꮴ"), + (0xABB5, "M", "Ꮵ"), + (0xABB6, "M", "Ꮶ"), + (0xABB7, "M", "Ꮷ"), + (0xABB8, "M", "Ꮸ"), + (0xABB9, "M", "Ꮹ"), + (0xABBA, "M", "Ꮺ"), + (0xABBB, "M", "Ꮻ"), + (0xABBC, "M", "Ꮼ"), + (0xABBD, "M", "Ꮽ"), + (0xABBE, "M", "Ꮾ"), + (0xABBF, "M", "Ꮿ"), + (0xABC0, "V"), + (0xABEE, "X"), + (0xABF0, "V"), + (0xABFA, "X"), + (0xAC00, "V"), + (0xD7A4, "X"), + (0xD7B0, "V"), + (0xD7C7, "X"), + (0xD7CB, "V"), + (0xD7FC, "X"), + (0xF900, "M", "豈"), + (0xF901, "M", "更"), + (0xF902, "M", "車"), + (0xF903, "M", "賈"), + (0xF904, "M", "滑"), + (0xF905, "M", "串"), + (0xF906, "M", "句"), + (0xF907, "M", "龜"), + (0xF909, "M", "契"), + (0xF90A, "M", "金"), + (0xF90B, "M", "喇"), + (0xF90C, "M", "奈"), + (0xF90D, "M", "懶"), + (0xF90E, "M", "癩"), + (0xF90F, "M", "羅"), + (0xF910, "M", "蘿"), + (0xF911, "M", "螺"), + (0xF912, "M", "裸"), + (0xF913, "M", "邏"), + (0xF914, "M", "樂"), + (0xF915, "M", "洛"), + (0xF916, "M", "烙"), + (0xF917, "M", "珞"), + (0xF918, "M", "落"), + (0xF919, "M", "酪"), + (0xF91A, "M", "駱"), + (0xF91B, "M", "亂"), + (0xF91C, "M", "卵"), + (0xF91D, "M", "欄"), + (0xF91E, "M", "爛"), + (0xF91F, "M", "蘭"), + (0xF920, "M", "鸞"), + (0xF921, "M", "嵐"), + (0xF922, "M", "濫"), + (0xF923, "M", "藍"), + (0xF924, "M", "襤"), + (0xF925, "M", "拉"), + (0xF926, "M", "臘"), + (0xF927, "M", "蠟"), + (0xF928, "M", "廊"), + (0xF929, "M", "朗"), + (0xF92A, "M", "浪"), + (0xF92B, "M", "狼"), + (0xF92C, "M", "郎"), + (0xF92D, "M", "來"), + (0xF92E, "M", "冷"), + (0xF92F, "M", "勞"), + (0xF930, "M", "擄"), + (0xF931, "M", "櫓"), + (0xF932, "M", "爐"), + (0xF933, "M", "盧"), + (0xF934, "M", "老"), + (0xF935, "M", "蘆"), + (0xF936, "M", "虜"), + (0xF937, "M", "路"), + (0xF938, "M", "露"), + (0xF939, "M", "魯"), + (0xF93A, "M", "鷺"), + (0xF93B, "M", "碌"), + (0xF93C, "M", "祿"), + (0xF93D, "M", "綠"), + (0xF93E, "M", "菉"), + (0xF93F, "M", "錄"), + (0xF940, "M", "鹿"), + (0xF941, "M", "論"), + (0xF942, "M", "壟"), + (0xF943, "M", "弄"), + (0xF944, "M", "籠"), + (0xF945, "M", "聾"), + (0xF946, "M", "牢"), + (0xF947, "M", "磊"), + (0xF948, "M", "賂"), + (0xF949, "M", "雷"), + ] + + +def _seg_40() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0xF94A, "M", "壘"), + (0xF94B, "M", "屢"), + (0xF94C, "M", "樓"), + (0xF94D, "M", "淚"), + (0xF94E, "M", "漏"), + (0xF94F, "M", "累"), + (0xF950, "M", "縷"), + (0xF951, "M", "陋"), + (0xF952, "M", "勒"), + (0xF953, "M", "肋"), + (0xF954, "M", "凜"), + (0xF955, "M", "凌"), + (0xF956, "M", "稜"), + (0xF957, "M", "綾"), + (0xF958, "M", "菱"), + (0xF959, "M", "陵"), + (0xF95A, "M", "讀"), + (0xF95B, "M", "拏"), + (0xF95C, "M", "樂"), + (0xF95D, "M", "諾"), + (0xF95E, "M", "丹"), + (0xF95F, "M", "寧"), + (0xF960, "M", "怒"), + (0xF961, "M", "率"), + (0xF962, "M", "異"), + (0xF963, "M", "北"), + (0xF964, "M", "磻"), + (0xF965, "M", "便"), + (0xF966, "M", "復"), + (0xF967, "M", "不"), + (0xF968, "M", "泌"), + (0xF969, "M", "數"), + (0xF96A, "M", "索"), + (0xF96B, "M", "參"), + (0xF96C, "M", "塞"), + (0xF96D, "M", "省"), + (0xF96E, "M", "葉"), + (0xF96F, "M", "說"), + (0xF970, "M", "殺"), + (0xF971, "M", "辰"), + (0xF972, "M", "沈"), + (0xF973, "M", "拾"), + (0xF974, "M", "若"), + (0xF975, "M", "掠"), + (0xF976, "M", "略"), + (0xF977, "M", "亮"), + (0xF978, "M", "兩"), + (0xF979, "M", "凉"), + (0xF97A, "M", "梁"), + (0xF97B, "M", "糧"), + (0xF97C, "M", "良"), + (0xF97D, "M", "諒"), + (0xF97E, "M", "量"), + (0xF97F, "M", "勵"), + (0xF980, "M", "呂"), + (0xF981, "M", "女"), + (0xF982, "M", "廬"), + (0xF983, "M", "旅"), + (0xF984, "M", "濾"), + (0xF985, "M", "礪"), + (0xF986, "M", "閭"), + (0xF987, "M", "驪"), + (0xF988, "M", "麗"), + (0xF989, "M", "黎"), + (0xF98A, "M", "力"), + (0xF98B, "M", "曆"), + (0xF98C, "M", "歷"), + (0xF98D, "M", "轢"), + (0xF98E, "M", "年"), + (0xF98F, "M", "憐"), + (0xF990, "M", "戀"), + (0xF991, "M", "撚"), + (0xF992, "M", "漣"), + (0xF993, "M", "煉"), + (0xF994, "M", "璉"), + (0xF995, "M", "秊"), + (0xF996, "M", "練"), + (0xF997, "M", "聯"), + (0xF998, "M", "輦"), + (0xF999, "M", "蓮"), + (0xF99A, "M", "連"), + (0xF99B, "M", "鍊"), + (0xF99C, "M", "列"), + (0xF99D, "M", "劣"), + (0xF99E, "M", "咽"), + (0xF99F, "M", "烈"), + (0xF9A0, "M", "裂"), + (0xF9A1, "M", "說"), + (0xF9A2, "M", "廉"), + (0xF9A3, "M", "念"), + (0xF9A4, "M", "捻"), + (0xF9A5, "M", "殮"), + (0xF9A6, "M", "簾"), + (0xF9A7, "M", "獵"), + (0xF9A8, "M", "令"), + (0xF9A9, "M", "囹"), + (0xF9AA, "M", "寧"), + (0xF9AB, "M", "嶺"), + (0xF9AC, "M", "怜"), + (0xF9AD, "M", "玲"), + ] + + +def _seg_41() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0xF9AE, "M", "瑩"), + (0xF9AF, "M", "羚"), + (0xF9B0, "M", "聆"), + (0xF9B1, "M", "鈴"), + (0xF9B2, "M", "零"), + (0xF9B3, "M", "靈"), + (0xF9B4, "M", "領"), + (0xF9B5, "M", "例"), + (0xF9B6, "M", "禮"), + (0xF9B7, "M", "醴"), + (0xF9B8, "M", "隸"), + (0xF9B9, "M", "惡"), + (0xF9BA, "M", "了"), + (0xF9BB, "M", "僚"), + (0xF9BC, "M", "寮"), + (0xF9BD, "M", "尿"), + (0xF9BE, "M", "料"), + (0xF9BF, "M", "樂"), + (0xF9C0, "M", "燎"), + (0xF9C1, "M", "療"), + (0xF9C2, "M", "蓼"), + (0xF9C3, "M", "遼"), + (0xF9C4, "M", "龍"), + (0xF9C5, "M", "暈"), + (0xF9C6, "M", "阮"), + (0xF9C7, "M", "劉"), + (0xF9C8, "M", "杻"), + (0xF9C9, "M", "柳"), + (0xF9CA, "M", "流"), + (0xF9CB, "M", "溜"), + (0xF9CC, "M", "琉"), + (0xF9CD, "M", "留"), + (0xF9CE, "M", "硫"), + (0xF9CF, "M", "紐"), + (0xF9D0, "M", "類"), + (0xF9D1, "M", "六"), + (0xF9D2, "M", "戮"), + (0xF9D3, "M", "陸"), + (0xF9D4, "M", "倫"), + (0xF9D5, "M", "崙"), + (0xF9D6, "M", "淪"), + (0xF9D7, "M", "輪"), + (0xF9D8, "M", "律"), + (0xF9D9, "M", "慄"), + (0xF9DA, "M", "栗"), + (0xF9DB, "M", "率"), + (0xF9DC, "M", "隆"), + (0xF9DD, "M", "利"), + (0xF9DE, "M", "吏"), + (0xF9DF, "M", "履"), + (0xF9E0, "M", "易"), + (0xF9E1, "M", "李"), + (0xF9E2, "M", "梨"), + (0xF9E3, "M", "泥"), + (0xF9E4, "M", "理"), + (0xF9E5, "M", "痢"), + (0xF9E6, "M", "罹"), + (0xF9E7, "M", "裏"), + (0xF9E8, "M", "裡"), + (0xF9E9, "M", "里"), + (0xF9EA, "M", "離"), + (0xF9EB, "M", "匿"), + (0xF9EC, "M", "溺"), + (0xF9ED, "M", "吝"), + (0xF9EE, "M", "燐"), + (0xF9EF, "M", "璘"), + (0xF9F0, "M", "藺"), + (0xF9F1, "M", "隣"), + (0xF9F2, "M", "鱗"), + (0xF9F3, "M", "麟"), + (0xF9F4, "M", "林"), + (0xF9F5, "M", "淋"), + (0xF9F6, "M", "臨"), + (0xF9F7, "M", "立"), + (0xF9F8, "M", "笠"), + (0xF9F9, "M", "粒"), + (0xF9FA, "M", "狀"), + (0xF9FB, "M", "炙"), + (0xF9FC, "M", "識"), + (0xF9FD, "M", "什"), + (0xF9FE, "M", "茶"), + (0xF9FF, "M", "刺"), + (0xFA00, "M", "切"), + (0xFA01, "M", "度"), + (0xFA02, "M", "拓"), + (0xFA03, "M", "糖"), + (0xFA04, "M", "宅"), + (0xFA05, "M", "洞"), + (0xFA06, "M", "暴"), + (0xFA07, "M", "輻"), + (0xFA08, "M", "行"), + (0xFA09, "M", "降"), + (0xFA0A, "M", "見"), + (0xFA0B, "M", "廓"), + (0xFA0C, "M", "兀"), + (0xFA0D, "M", "嗀"), + (0xFA0E, "V"), + (0xFA10, "M", "塚"), + (0xFA11, "V"), + (0xFA12, "M", "晴"), + ] + + +def _seg_42() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0xFA13, "V"), + (0xFA15, "M", "凞"), + (0xFA16, "M", "猪"), + (0xFA17, "M", "益"), + (0xFA18, "M", "礼"), + (0xFA19, "M", "神"), + (0xFA1A, "M", "祥"), + (0xFA1B, "M", "福"), + (0xFA1C, "M", "靖"), + (0xFA1D, "M", "精"), + (0xFA1E, "M", "羽"), + (0xFA1F, "V"), + (0xFA20, "M", "蘒"), + (0xFA21, "V"), + (0xFA22, "M", "諸"), + (0xFA23, "V"), + (0xFA25, "M", "逸"), + (0xFA26, "M", "都"), + (0xFA27, "V"), + (0xFA2A, "M", "飯"), + (0xFA2B, "M", "飼"), + (0xFA2C, "M", "館"), + (0xFA2D, "M", "鶴"), + (0xFA2E, "M", "郞"), + (0xFA2F, "M", "隷"), + (0xFA30, "M", "侮"), + (0xFA31, "M", "僧"), + (0xFA32, "M", "免"), + (0xFA33, "M", "勉"), + (0xFA34, "M", "勤"), + (0xFA35, "M", "卑"), + (0xFA36, "M", "喝"), + (0xFA37, "M", "嘆"), + (0xFA38, "M", "器"), + (0xFA39, "M", "塀"), + (0xFA3A, "M", "墨"), + (0xFA3B, "M", "層"), + (0xFA3C, "M", "屮"), + (0xFA3D, "M", "悔"), + (0xFA3E, "M", "慨"), + (0xFA3F, "M", "憎"), + (0xFA40, "M", "懲"), + (0xFA41, "M", "敏"), + (0xFA42, "M", "既"), + (0xFA43, "M", "暑"), + (0xFA44, "M", "梅"), + (0xFA45, "M", "海"), + (0xFA46, "M", "渚"), + (0xFA47, "M", "漢"), + (0xFA48, "M", "煮"), + (0xFA49, "M", "爫"), + (0xFA4A, "M", "琢"), + (0xFA4B, "M", "碑"), + (0xFA4C, "M", "社"), + (0xFA4D, "M", "祉"), + (0xFA4E, "M", "祈"), + (0xFA4F, "M", "祐"), + (0xFA50, "M", "祖"), + (0xFA51, "M", "祝"), + (0xFA52, "M", "禍"), + (0xFA53, "M", "禎"), + (0xFA54, "M", "穀"), + (0xFA55, "M", "突"), + (0xFA56, "M", "節"), + (0xFA57, "M", "練"), + (0xFA58, "M", "縉"), + (0xFA59, "M", "繁"), + (0xFA5A, "M", "署"), + (0xFA5B, "M", "者"), + (0xFA5C, "M", "臭"), + (0xFA5D, "M", "艹"), + (0xFA5F, "M", "著"), + (0xFA60, "M", "褐"), + (0xFA61, "M", "視"), + (0xFA62, "M", "謁"), + (0xFA63, "M", "謹"), + (0xFA64, "M", "賓"), + (0xFA65, "M", "贈"), + (0xFA66, "M", "辶"), + (0xFA67, "M", "逸"), + (0xFA68, "M", "難"), + (0xFA69, "M", "響"), + (0xFA6A, "M", "頻"), + (0xFA6B, "M", "恵"), + (0xFA6C, "M", "𤋮"), + (0xFA6D, "M", "舘"), + (0xFA6E, "X"), + (0xFA70, "M", "並"), + (0xFA71, "M", "况"), + (0xFA72, "M", "全"), + (0xFA73, "M", "侀"), + (0xFA74, "M", "充"), + (0xFA75, "M", "冀"), + (0xFA76, "M", "勇"), + (0xFA77, "M", "勺"), + (0xFA78, "M", "喝"), + (0xFA79, "M", "啕"), + (0xFA7A, "M", "喙"), + (0xFA7B, "M", "嗢"), + (0xFA7C, "M", "塚"), + ] + + +def _seg_43() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0xFA7D, "M", "墳"), + (0xFA7E, "M", "奄"), + (0xFA7F, "M", "奔"), + (0xFA80, "M", "婢"), + (0xFA81, "M", "嬨"), + (0xFA82, "M", "廒"), + (0xFA83, "M", "廙"), + (0xFA84, "M", "彩"), + (0xFA85, "M", "徭"), + (0xFA86, "M", "惘"), + (0xFA87, "M", "慎"), + (0xFA88, "M", "愈"), + (0xFA89, "M", "憎"), + (0xFA8A, "M", "慠"), + (0xFA8B, "M", "懲"), + (0xFA8C, "M", "戴"), + (0xFA8D, "M", "揄"), + (0xFA8E, "M", "搜"), + (0xFA8F, "M", "摒"), + (0xFA90, "M", "敖"), + (0xFA91, "M", "晴"), + (0xFA92, "M", "朗"), + (0xFA93, "M", "望"), + (0xFA94, "M", "杖"), + (0xFA95, "M", "歹"), + (0xFA96, "M", "殺"), + (0xFA97, "M", "流"), + (0xFA98, "M", "滛"), + (0xFA99, "M", "滋"), + (0xFA9A, "M", "漢"), + (0xFA9B, "M", "瀞"), + (0xFA9C, "M", "煮"), + (0xFA9D, "M", "瞧"), + (0xFA9E, "M", "爵"), + (0xFA9F, "M", "犯"), + (0xFAA0, "M", "猪"), + (0xFAA1, "M", "瑱"), + (0xFAA2, "M", "甆"), + (0xFAA3, "M", "画"), + (0xFAA4, "M", "瘝"), + (0xFAA5, "M", "瘟"), + (0xFAA6, "M", "益"), + (0xFAA7, "M", "盛"), + (0xFAA8, "M", "直"), + (0xFAA9, "M", "睊"), + (0xFAAA, "M", "着"), + (0xFAAB, "M", "磌"), + (0xFAAC, "M", "窱"), + (0xFAAD, "M", "節"), + (0xFAAE, "M", "类"), + (0xFAAF, "M", "絛"), + (0xFAB0, "M", "練"), + (0xFAB1, "M", "缾"), + (0xFAB2, "M", "者"), + (0xFAB3, "M", "荒"), + (0xFAB4, "M", "華"), + (0xFAB5, "M", "蝹"), + (0xFAB6, "M", "襁"), + (0xFAB7, "M", "覆"), + (0xFAB8, "M", "視"), + (0xFAB9, "M", "調"), + (0xFABA, "M", "諸"), + (0xFABB, "M", "請"), + (0xFABC, "M", "謁"), + (0xFABD, "M", "諾"), + (0xFABE, "M", "諭"), + (0xFABF, "M", "謹"), + (0xFAC0, "M", "變"), + (0xFAC1, "M", "贈"), + (0xFAC2, "M", "輸"), + (0xFAC3, "M", "遲"), + (0xFAC4, "M", "醙"), + (0xFAC5, "M", "鉶"), + (0xFAC6, "M", "陼"), + (0xFAC7, "M", "難"), + (0xFAC8, "M", "靖"), + (0xFAC9, "M", "韛"), + (0xFACA, "M", "響"), + (0xFACB, "M", "頋"), + (0xFACC, "M", "頻"), + (0xFACD, "M", "鬒"), + (0xFACE, "M", "龜"), + (0xFACF, "M", "𢡊"), + (0xFAD0, "M", "𢡄"), + (0xFAD1, "M", "𣏕"), + (0xFAD2, "M", "㮝"), + (0xFAD3, "M", "䀘"), + (0xFAD4, "M", "䀹"), + (0xFAD5, "M", "𥉉"), + (0xFAD6, "M", "𥳐"), + (0xFAD7, "M", "𧻓"), + (0xFAD8, "M", "齃"), + (0xFAD9, "M", "龎"), + (0xFADA, "X"), + (0xFB00, "M", "ff"), + (0xFB01, "M", "fi"), + (0xFB02, "M", "fl"), + (0xFB03, "M", "ffi"), + (0xFB04, "M", "ffl"), + (0xFB05, "M", "st"), + ] + + +def _seg_44() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0xFB07, "X"), + (0xFB13, "M", "մն"), + (0xFB14, "M", "մե"), + (0xFB15, "M", "մի"), + (0xFB16, "M", "վն"), + (0xFB17, "M", "մխ"), + (0xFB18, "X"), + (0xFB1D, "M", "יִ"), + (0xFB1E, "V"), + (0xFB1F, "M", "ײַ"), + (0xFB20, "M", "ע"), + (0xFB21, "M", "א"), + (0xFB22, "M", "ד"), + (0xFB23, "M", "ה"), + (0xFB24, "M", "כ"), + (0xFB25, "M", "ל"), + (0xFB26, "M", "ם"), + (0xFB27, "M", "ר"), + (0xFB28, "M", "ת"), + (0xFB29, "3", "+"), + (0xFB2A, "M", "שׁ"), + (0xFB2B, "M", "שׂ"), + (0xFB2C, "M", "שּׁ"), + (0xFB2D, "M", "שּׂ"), + (0xFB2E, "M", "אַ"), + (0xFB2F, "M", "אָ"), + (0xFB30, "M", "אּ"), + (0xFB31, "M", "בּ"), + (0xFB32, "M", "גּ"), + (0xFB33, "M", "דּ"), + (0xFB34, "M", "הּ"), + (0xFB35, "M", "וּ"), + (0xFB36, "M", "זּ"), + (0xFB37, "X"), + (0xFB38, "M", "טּ"), + (0xFB39, "M", "יּ"), + (0xFB3A, "M", "ךּ"), + (0xFB3B, "M", "כּ"), + (0xFB3C, "M", "לּ"), + (0xFB3D, "X"), + (0xFB3E, "M", "מּ"), + (0xFB3F, "X"), + (0xFB40, "M", "נּ"), + (0xFB41, "M", "סּ"), + (0xFB42, "X"), + (0xFB43, "M", "ףּ"), + (0xFB44, "M", "פּ"), + (0xFB45, "X"), + (0xFB46, "M", "צּ"), + (0xFB47, "M", "קּ"), + (0xFB48, "M", "רּ"), + (0xFB49, "M", "שּ"), + (0xFB4A, "M", "תּ"), + (0xFB4B, "M", "וֹ"), + (0xFB4C, "M", "בֿ"), + (0xFB4D, "M", "כֿ"), + (0xFB4E, "M", "פֿ"), + (0xFB4F, "M", "אל"), + (0xFB50, "M", "ٱ"), + (0xFB52, "M", "ٻ"), + (0xFB56, "M", "پ"), + (0xFB5A, "M", "ڀ"), + (0xFB5E, "M", "ٺ"), + (0xFB62, "M", "ٿ"), + (0xFB66, "M", "ٹ"), + (0xFB6A, "M", "ڤ"), + (0xFB6E, "M", "ڦ"), + (0xFB72, "M", "ڄ"), + (0xFB76, "M", "ڃ"), + (0xFB7A, "M", "چ"), + (0xFB7E, "M", "ڇ"), + (0xFB82, "M", "ڍ"), + (0xFB84, "M", "ڌ"), + (0xFB86, "M", "ڎ"), + (0xFB88, "M", "ڈ"), + (0xFB8A, "M", "ژ"), + (0xFB8C, "M", "ڑ"), + (0xFB8E, "M", "ک"), + (0xFB92, "M", "گ"), + (0xFB96, "M", "ڳ"), + (0xFB9A, "M", "ڱ"), + (0xFB9E, "M", "ں"), + (0xFBA0, "M", "ڻ"), + (0xFBA4, "M", "ۀ"), + (0xFBA6, "M", "ہ"), + (0xFBAA, "M", "ھ"), + (0xFBAE, "M", "ے"), + (0xFBB0, "M", "ۓ"), + (0xFBB2, "V"), + (0xFBC3, "X"), + (0xFBD3, "M", "ڭ"), + (0xFBD7, "M", "ۇ"), + (0xFBD9, "M", "ۆ"), + (0xFBDB, "M", "ۈ"), + (0xFBDD, "M", "ۇٴ"), + (0xFBDE, "M", "ۋ"), + (0xFBE0, "M", "ۅ"), + (0xFBE2, "M", "ۉ"), + (0xFBE4, "M", "ې"), + (0xFBE8, "M", "ى"), + ] + + +def _seg_45() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0xFBEA, "M", "ئا"), + (0xFBEC, "M", "ئە"), + (0xFBEE, "M", "ئو"), + (0xFBF0, "M", "ئۇ"), + (0xFBF2, "M", "ئۆ"), + (0xFBF4, "M", "ئۈ"), + (0xFBF6, "M", "ئې"), + (0xFBF9, "M", "ئى"), + (0xFBFC, "M", "ی"), + (0xFC00, "M", "ئج"), + (0xFC01, "M", "ئح"), + (0xFC02, "M", "ئم"), + (0xFC03, "M", "ئى"), + (0xFC04, "M", "ئي"), + (0xFC05, "M", "بج"), + (0xFC06, "M", "بح"), + (0xFC07, "M", "بخ"), + (0xFC08, "M", "بم"), + (0xFC09, "M", "بى"), + (0xFC0A, "M", "بي"), + (0xFC0B, "M", "تج"), + (0xFC0C, "M", "تح"), + (0xFC0D, "M", "تخ"), + (0xFC0E, "M", "تم"), + (0xFC0F, "M", "تى"), + (0xFC10, "M", "تي"), + (0xFC11, "M", "ثج"), + (0xFC12, "M", "ثم"), + (0xFC13, "M", "ثى"), + (0xFC14, "M", "ثي"), + (0xFC15, "M", "جح"), + (0xFC16, "M", "جم"), + (0xFC17, "M", "حج"), + (0xFC18, "M", "حم"), + (0xFC19, "M", "خج"), + (0xFC1A, "M", "خح"), + (0xFC1B, "M", "خم"), + (0xFC1C, "M", "سج"), + (0xFC1D, "M", "سح"), + (0xFC1E, "M", "سخ"), + (0xFC1F, "M", "سم"), + (0xFC20, "M", "صح"), + (0xFC21, "M", "صم"), + (0xFC22, "M", "ضج"), + (0xFC23, "M", "ضح"), + (0xFC24, "M", "ضخ"), + (0xFC25, "M", "ضم"), + (0xFC26, "M", "طح"), + (0xFC27, "M", "طم"), + (0xFC28, "M", "ظم"), + (0xFC29, "M", "عج"), + (0xFC2A, "M", "عم"), + (0xFC2B, "M", "غج"), + (0xFC2C, "M", "غم"), + (0xFC2D, "M", "فج"), + (0xFC2E, "M", "فح"), + (0xFC2F, "M", "فخ"), + (0xFC30, "M", "فم"), + (0xFC31, "M", "فى"), + (0xFC32, "M", "في"), + (0xFC33, "M", "قح"), + (0xFC34, "M", "قم"), + (0xFC35, "M", "قى"), + (0xFC36, "M", "قي"), + (0xFC37, "M", "كا"), + (0xFC38, "M", "كج"), + (0xFC39, "M", "كح"), + (0xFC3A, "M", "كخ"), + (0xFC3B, "M", "كل"), + (0xFC3C, "M", "كم"), + (0xFC3D, "M", "كى"), + (0xFC3E, "M", "كي"), + (0xFC3F, "M", "لج"), + (0xFC40, "M", "لح"), + (0xFC41, "M", "لخ"), + (0xFC42, "M", "لم"), + (0xFC43, "M", "لى"), + (0xFC44, "M", "لي"), + (0xFC45, "M", "مج"), + (0xFC46, "M", "مح"), + (0xFC47, "M", "مخ"), + (0xFC48, "M", "مم"), + (0xFC49, "M", "مى"), + (0xFC4A, "M", "مي"), + (0xFC4B, "M", "نج"), + (0xFC4C, "M", "نح"), + (0xFC4D, "M", "نخ"), + (0xFC4E, "M", "نم"), + (0xFC4F, "M", "نى"), + (0xFC50, "M", "ني"), + (0xFC51, "M", "هج"), + (0xFC52, "M", "هم"), + (0xFC53, "M", "هى"), + (0xFC54, "M", "هي"), + (0xFC55, "M", "يج"), + (0xFC56, "M", "يح"), + (0xFC57, "M", "يخ"), + (0xFC58, "M", "يم"), + (0xFC59, "M", "يى"), + (0xFC5A, "M", "يي"), + ] + + +def _seg_46() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0xFC5B, "M", "ذٰ"), + (0xFC5C, "M", "رٰ"), + (0xFC5D, "M", "ىٰ"), + (0xFC5E, "3", " ٌّ"), + (0xFC5F, "3", " ٍّ"), + (0xFC60, "3", " َّ"), + (0xFC61, "3", " ُّ"), + (0xFC62, "3", " ِّ"), + (0xFC63, "3", " ّٰ"), + (0xFC64, "M", "ئر"), + (0xFC65, "M", "ئز"), + (0xFC66, "M", "ئم"), + (0xFC67, "M", "ئن"), + (0xFC68, "M", "ئى"), + (0xFC69, "M", "ئي"), + (0xFC6A, "M", "بر"), + (0xFC6B, "M", "بز"), + (0xFC6C, "M", "بم"), + (0xFC6D, "M", "بن"), + (0xFC6E, "M", "بى"), + (0xFC6F, "M", "بي"), + (0xFC70, "M", "تر"), + (0xFC71, "M", "تز"), + (0xFC72, "M", "تم"), + (0xFC73, "M", "تن"), + (0xFC74, "M", "تى"), + (0xFC75, "M", "تي"), + (0xFC76, "M", "ثر"), + (0xFC77, "M", "ثز"), + (0xFC78, "M", "ثم"), + (0xFC79, "M", "ثن"), + (0xFC7A, "M", "ثى"), + (0xFC7B, "M", "ثي"), + (0xFC7C, "M", "فى"), + (0xFC7D, "M", "في"), + (0xFC7E, "M", "قى"), + (0xFC7F, "M", "قي"), + (0xFC80, "M", "كا"), + (0xFC81, "M", "كل"), + (0xFC82, "M", "كم"), + (0xFC83, "M", "كى"), + (0xFC84, "M", "كي"), + (0xFC85, "M", "لم"), + (0xFC86, "M", "لى"), + (0xFC87, "M", "لي"), + (0xFC88, "M", "ما"), + (0xFC89, "M", "مم"), + (0xFC8A, "M", "نر"), + (0xFC8B, "M", "نز"), + (0xFC8C, "M", "نم"), + (0xFC8D, "M", "نن"), + (0xFC8E, "M", "نى"), + (0xFC8F, "M", "ني"), + (0xFC90, "M", "ىٰ"), + (0xFC91, "M", "ير"), + (0xFC92, "M", "يز"), + (0xFC93, "M", "يم"), + (0xFC94, "M", "ين"), + (0xFC95, "M", "يى"), + (0xFC96, "M", "يي"), + (0xFC97, "M", "ئج"), + (0xFC98, "M", "ئح"), + (0xFC99, "M", "ئخ"), + (0xFC9A, "M", "ئم"), + (0xFC9B, "M", "ئه"), + (0xFC9C, "M", "بج"), + (0xFC9D, "M", "بح"), + (0xFC9E, "M", "بخ"), + (0xFC9F, "M", "بم"), + (0xFCA0, "M", "به"), + (0xFCA1, "M", "تج"), + (0xFCA2, "M", "تح"), + (0xFCA3, "M", "تخ"), + (0xFCA4, "M", "تم"), + (0xFCA5, "M", "ته"), + (0xFCA6, "M", "ثم"), + (0xFCA7, "M", "جح"), + (0xFCA8, "M", "جم"), + (0xFCA9, "M", "حج"), + (0xFCAA, "M", "حم"), + (0xFCAB, "M", "خج"), + (0xFCAC, "M", "خم"), + (0xFCAD, "M", "سج"), + (0xFCAE, "M", "سح"), + (0xFCAF, "M", "سخ"), + (0xFCB0, "M", "سم"), + (0xFCB1, "M", "صح"), + (0xFCB2, "M", "صخ"), + (0xFCB3, "M", "صم"), + (0xFCB4, "M", "ضج"), + (0xFCB5, "M", "ضح"), + (0xFCB6, "M", "ضخ"), + (0xFCB7, "M", "ضم"), + (0xFCB8, "M", "طح"), + (0xFCB9, "M", "ظم"), + (0xFCBA, "M", "عج"), + (0xFCBB, "M", "عم"), + (0xFCBC, "M", "غج"), + (0xFCBD, "M", "غم"), + (0xFCBE, "M", "فج"), + ] + + +def _seg_47() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0xFCBF, "M", "فح"), + (0xFCC0, "M", "فخ"), + (0xFCC1, "M", "فم"), + (0xFCC2, "M", "قح"), + (0xFCC3, "M", "قم"), + (0xFCC4, "M", "كج"), + (0xFCC5, "M", "كح"), + (0xFCC6, "M", "كخ"), + (0xFCC7, "M", "كل"), + (0xFCC8, "M", "كم"), + (0xFCC9, "M", "لج"), + (0xFCCA, "M", "لح"), + (0xFCCB, "M", "لخ"), + (0xFCCC, "M", "لم"), + (0xFCCD, "M", "له"), + (0xFCCE, "M", "مج"), + (0xFCCF, "M", "مح"), + (0xFCD0, "M", "مخ"), + (0xFCD1, "M", "مم"), + (0xFCD2, "M", "نج"), + (0xFCD3, "M", "نح"), + (0xFCD4, "M", "نخ"), + (0xFCD5, "M", "نم"), + (0xFCD6, "M", "نه"), + (0xFCD7, "M", "هج"), + (0xFCD8, "M", "هم"), + (0xFCD9, "M", "هٰ"), + (0xFCDA, "M", "يج"), + (0xFCDB, "M", "يح"), + (0xFCDC, "M", "يخ"), + (0xFCDD, "M", "يم"), + (0xFCDE, "M", "يه"), + (0xFCDF, "M", "ئم"), + (0xFCE0, "M", "ئه"), + (0xFCE1, "M", "بم"), + (0xFCE2, "M", "به"), + (0xFCE3, "M", "تم"), + (0xFCE4, "M", "ته"), + (0xFCE5, "M", "ثم"), + (0xFCE6, "M", "ثه"), + (0xFCE7, "M", "سم"), + (0xFCE8, "M", "سه"), + (0xFCE9, "M", "شم"), + (0xFCEA, "M", "شه"), + (0xFCEB, "M", "كل"), + (0xFCEC, "M", "كم"), + (0xFCED, "M", "لم"), + (0xFCEE, "M", "نم"), + (0xFCEF, "M", "نه"), + (0xFCF0, "M", "يم"), + (0xFCF1, "M", "يه"), + (0xFCF2, "M", "ـَّ"), + (0xFCF3, "M", "ـُّ"), + (0xFCF4, "M", "ـِّ"), + (0xFCF5, "M", "طى"), + (0xFCF6, "M", "طي"), + (0xFCF7, "M", "عى"), + (0xFCF8, "M", "عي"), + (0xFCF9, "M", "غى"), + (0xFCFA, "M", "غي"), + (0xFCFB, "M", "سى"), + (0xFCFC, "M", "سي"), + (0xFCFD, "M", "شى"), + (0xFCFE, "M", "شي"), + (0xFCFF, "M", "حى"), + (0xFD00, "M", "حي"), + (0xFD01, "M", "جى"), + (0xFD02, "M", "جي"), + (0xFD03, "M", "خى"), + (0xFD04, "M", "خي"), + (0xFD05, "M", "صى"), + (0xFD06, "M", "صي"), + (0xFD07, "M", "ضى"), + (0xFD08, "M", "ضي"), + (0xFD09, "M", "شج"), + (0xFD0A, "M", "شح"), + (0xFD0B, "M", "شخ"), + (0xFD0C, "M", "شم"), + (0xFD0D, "M", "شر"), + (0xFD0E, "M", "سر"), + (0xFD0F, "M", "صر"), + (0xFD10, "M", "ضر"), + (0xFD11, "M", "طى"), + (0xFD12, "M", "طي"), + (0xFD13, "M", "عى"), + (0xFD14, "M", "عي"), + (0xFD15, "M", "غى"), + (0xFD16, "M", "غي"), + (0xFD17, "M", "سى"), + (0xFD18, "M", "سي"), + (0xFD19, "M", "شى"), + (0xFD1A, "M", "شي"), + (0xFD1B, "M", "حى"), + (0xFD1C, "M", "حي"), + (0xFD1D, "M", "جى"), + (0xFD1E, "M", "جي"), + (0xFD1F, "M", "خى"), + (0xFD20, "M", "خي"), + (0xFD21, "M", "صى"), + (0xFD22, "M", "صي"), + ] + + +def _seg_48() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0xFD23, "M", "ضى"), + (0xFD24, "M", "ضي"), + (0xFD25, "M", "شج"), + (0xFD26, "M", "شح"), + (0xFD27, "M", "شخ"), + (0xFD28, "M", "شم"), + (0xFD29, "M", "شر"), + (0xFD2A, "M", "سر"), + (0xFD2B, "M", "صر"), + (0xFD2C, "M", "ضر"), + (0xFD2D, "M", "شج"), + (0xFD2E, "M", "شح"), + (0xFD2F, "M", "شخ"), + (0xFD30, "M", "شم"), + (0xFD31, "M", "سه"), + (0xFD32, "M", "شه"), + (0xFD33, "M", "طم"), + (0xFD34, "M", "سج"), + (0xFD35, "M", "سح"), + (0xFD36, "M", "سخ"), + (0xFD37, "M", "شج"), + (0xFD38, "M", "شح"), + (0xFD39, "M", "شخ"), + (0xFD3A, "M", "طم"), + (0xFD3B, "M", "ظم"), + (0xFD3C, "M", "اً"), + (0xFD3E, "V"), + (0xFD50, "M", "تجم"), + (0xFD51, "M", "تحج"), + (0xFD53, "M", "تحم"), + (0xFD54, "M", "تخم"), + (0xFD55, "M", "تمج"), + (0xFD56, "M", "تمح"), + (0xFD57, "M", "تمخ"), + (0xFD58, "M", "جمح"), + (0xFD5A, "M", "حمي"), + (0xFD5B, "M", "حمى"), + (0xFD5C, "M", "سحج"), + (0xFD5D, "M", "سجح"), + (0xFD5E, "M", "سجى"), + (0xFD5F, "M", "سمح"), + (0xFD61, "M", "سمج"), + (0xFD62, "M", "سمم"), + (0xFD64, "M", "صحح"), + (0xFD66, "M", "صمم"), + (0xFD67, "M", "شحم"), + (0xFD69, "M", "شجي"), + (0xFD6A, "M", "شمخ"), + (0xFD6C, "M", "شمم"), + (0xFD6E, "M", "ضحى"), + (0xFD6F, "M", "ضخم"), + (0xFD71, "M", "طمح"), + (0xFD73, "M", "طمم"), + (0xFD74, "M", "طمي"), + (0xFD75, "M", "عجم"), + (0xFD76, "M", "عمم"), + (0xFD78, "M", "عمى"), + (0xFD79, "M", "غمم"), + (0xFD7A, "M", "غمي"), + (0xFD7B, "M", "غمى"), + (0xFD7C, "M", "فخم"), + (0xFD7E, "M", "قمح"), + (0xFD7F, "M", "قمم"), + (0xFD80, "M", "لحم"), + (0xFD81, "M", "لحي"), + (0xFD82, "M", "لحى"), + (0xFD83, "M", "لجج"), + (0xFD85, "M", "لخم"), + (0xFD87, "M", "لمح"), + (0xFD89, "M", "محج"), + (0xFD8A, "M", "محم"), + (0xFD8B, "M", "محي"), + (0xFD8C, "M", "مجح"), + (0xFD8D, "M", "مجم"), + (0xFD8E, "M", "مخج"), + (0xFD8F, "M", "مخم"), + (0xFD90, "X"), + (0xFD92, "M", "مجخ"), + (0xFD93, "M", "همج"), + (0xFD94, "M", "همم"), + (0xFD95, "M", "نحم"), + (0xFD96, "M", "نحى"), + (0xFD97, "M", "نجم"), + (0xFD99, "M", "نجى"), + (0xFD9A, "M", "نمي"), + (0xFD9B, "M", "نمى"), + (0xFD9C, "M", "يمم"), + (0xFD9E, "M", "بخي"), + (0xFD9F, "M", "تجي"), + (0xFDA0, "M", "تجى"), + (0xFDA1, "M", "تخي"), + (0xFDA2, "M", "تخى"), + (0xFDA3, "M", "تمي"), + (0xFDA4, "M", "تمى"), + (0xFDA5, "M", "جمي"), + (0xFDA6, "M", "جحى"), + (0xFDA7, "M", "جمى"), + (0xFDA8, "M", "سخى"), + (0xFDA9, "M", "صحي"), + (0xFDAA, "M", "شحي"), + ] + + +def _seg_49() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0xFDAB, "M", "ضحي"), + (0xFDAC, "M", "لجي"), + (0xFDAD, "M", "لمي"), + (0xFDAE, "M", "يحي"), + (0xFDAF, "M", "يجي"), + (0xFDB0, "M", "يمي"), + (0xFDB1, "M", "ممي"), + (0xFDB2, "M", "قمي"), + (0xFDB3, "M", "نحي"), + (0xFDB4, "M", "قمح"), + (0xFDB5, "M", "لحم"), + (0xFDB6, "M", "عمي"), + (0xFDB7, "M", "كمي"), + (0xFDB8, "M", "نجح"), + (0xFDB9, "M", "مخي"), + (0xFDBA, "M", "لجم"), + (0xFDBB, "M", "كمم"), + (0xFDBC, "M", "لجم"), + (0xFDBD, "M", "نجح"), + (0xFDBE, "M", "جحي"), + (0xFDBF, "M", "حجي"), + (0xFDC0, "M", "مجي"), + (0xFDC1, "M", "فمي"), + (0xFDC2, "M", "بحي"), + (0xFDC3, "M", "كمم"), + (0xFDC4, "M", "عجم"), + (0xFDC5, "M", "صمم"), + (0xFDC6, "M", "سخي"), + (0xFDC7, "M", "نجي"), + (0xFDC8, "X"), + (0xFDCF, "V"), + (0xFDD0, "X"), + (0xFDF0, "M", "صلے"), + (0xFDF1, "M", "قلے"), + (0xFDF2, "M", "الله"), + (0xFDF3, "M", "اكبر"), + (0xFDF4, "M", "محمد"), + (0xFDF5, "M", "صلعم"), + (0xFDF6, "M", "رسول"), + (0xFDF7, "M", "عليه"), + (0xFDF8, "M", "وسلم"), + (0xFDF9, "M", "صلى"), + (0xFDFA, "3", "صلى الله عليه وسلم"), + (0xFDFB, "3", "جل جلاله"), + (0xFDFC, "M", "ریال"), + (0xFDFD, "V"), + (0xFE00, "I"), + (0xFE10, "3", ","), + (0xFE11, "M", "、"), + (0xFE12, "X"), + (0xFE13, "3", ":"), + (0xFE14, "3", ";"), + (0xFE15, "3", "!"), + (0xFE16, "3", "?"), + (0xFE17, "M", "〖"), + (0xFE18, "M", "〗"), + (0xFE19, "X"), + (0xFE20, "V"), + (0xFE30, "X"), + (0xFE31, "M", "—"), + (0xFE32, "M", "–"), + (0xFE33, "3", "_"), + (0xFE35, "3", "("), + (0xFE36, "3", ")"), + (0xFE37, "3", "{"), + (0xFE38, "3", "}"), + (0xFE39, "M", "〔"), + (0xFE3A, "M", "〕"), + (0xFE3B, "M", "【"), + (0xFE3C, "M", "】"), + (0xFE3D, "M", "《"), + (0xFE3E, "M", "》"), + (0xFE3F, "M", "〈"), + (0xFE40, "M", "〉"), + (0xFE41, "M", "「"), + (0xFE42, "M", "」"), + (0xFE43, "M", "『"), + (0xFE44, "M", "』"), + (0xFE45, "V"), + (0xFE47, "3", "["), + (0xFE48, "3", "]"), + (0xFE49, "3", " ̅"), + (0xFE4D, "3", "_"), + (0xFE50, "3", ","), + (0xFE51, "M", "、"), + (0xFE52, "X"), + (0xFE54, "3", ";"), + (0xFE55, "3", ":"), + (0xFE56, "3", "?"), + (0xFE57, "3", "!"), + (0xFE58, "M", "—"), + (0xFE59, "3", "("), + (0xFE5A, "3", ")"), + (0xFE5B, "3", "{"), + (0xFE5C, "3", "}"), + (0xFE5D, "M", "〔"), + (0xFE5E, "M", "〕"), + (0xFE5F, "3", "#"), + (0xFE60, "3", "&"), + (0xFE61, "3", "*"), + ] + + +def _seg_50() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0xFE62, "3", "+"), + (0xFE63, "M", "-"), + (0xFE64, "3", "<"), + (0xFE65, "3", ">"), + (0xFE66, "3", "="), + (0xFE67, "X"), + (0xFE68, "3", "\\"), + (0xFE69, "3", "$"), + (0xFE6A, "3", "%"), + (0xFE6B, "3", "@"), + (0xFE6C, "X"), + (0xFE70, "3", " ً"), + (0xFE71, "M", "ـً"), + (0xFE72, "3", " ٌ"), + (0xFE73, "V"), + (0xFE74, "3", " ٍ"), + (0xFE75, "X"), + (0xFE76, "3", " َ"), + (0xFE77, "M", "ـَ"), + (0xFE78, "3", " ُ"), + (0xFE79, "M", "ـُ"), + (0xFE7A, "3", " ِ"), + (0xFE7B, "M", "ـِ"), + (0xFE7C, "3", " ّ"), + (0xFE7D, "M", "ـّ"), + (0xFE7E, "3", " ْ"), + (0xFE7F, "M", "ـْ"), + (0xFE80, "M", "ء"), + (0xFE81, "M", "آ"), + (0xFE83, "M", "أ"), + (0xFE85, "M", "ؤ"), + (0xFE87, "M", "إ"), + (0xFE89, "M", "ئ"), + (0xFE8D, "M", "ا"), + (0xFE8F, "M", "ب"), + (0xFE93, "M", "ة"), + (0xFE95, "M", "ت"), + (0xFE99, "M", "ث"), + (0xFE9D, "M", "ج"), + (0xFEA1, "M", "ح"), + (0xFEA5, "M", "خ"), + (0xFEA9, "M", "د"), + (0xFEAB, "M", "ذ"), + (0xFEAD, "M", "ر"), + (0xFEAF, "M", "ز"), + (0xFEB1, "M", "س"), + (0xFEB5, "M", "ش"), + (0xFEB9, "M", "ص"), + (0xFEBD, "M", "ض"), + (0xFEC1, "M", "ط"), + (0xFEC5, "M", "ظ"), + (0xFEC9, "M", "ع"), + (0xFECD, "M", "غ"), + (0xFED1, "M", "ف"), + (0xFED5, "M", "ق"), + (0xFED9, "M", "ك"), + (0xFEDD, "M", "ل"), + (0xFEE1, "M", "م"), + (0xFEE5, "M", "ن"), + (0xFEE9, "M", "ه"), + (0xFEED, "M", "و"), + (0xFEEF, "M", "ى"), + (0xFEF1, "M", "ي"), + (0xFEF5, "M", "لآ"), + (0xFEF7, "M", "لأ"), + (0xFEF9, "M", "لإ"), + (0xFEFB, "M", "لا"), + (0xFEFD, "X"), + (0xFEFF, "I"), + (0xFF00, "X"), + (0xFF01, "3", "!"), + (0xFF02, "3", '"'), + (0xFF03, "3", "#"), + (0xFF04, "3", "$"), + (0xFF05, "3", "%"), + (0xFF06, "3", "&"), + (0xFF07, "3", "'"), + (0xFF08, "3", "("), + (0xFF09, "3", ")"), + (0xFF0A, "3", "*"), + (0xFF0B, "3", "+"), + (0xFF0C, "3", ","), + (0xFF0D, "M", "-"), + (0xFF0E, "M", "."), + (0xFF0F, "3", "/"), + (0xFF10, "M", "0"), + (0xFF11, "M", "1"), + (0xFF12, "M", "2"), + (0xFF13, "M", "3"), + (0xFF14, "M", "4"), + (0xFF15, "M", "5"), + (0xFF16, "M", "6"), + (0xFF17, "M", "7"), + (0xFF18, "M", "8"), + (0xFF19, "M", "9"), + (0xFF1A, "3", ":"), + (0xFF1B, "3", ";"), + (0xFF1C, "3", "<"), + (0xFF1D, "3", "="), + (0xFF1E, "3", ">"), + ] + + +def _seg_51() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0xFF1F, "3", "?"), + (0xFF20, "3", "@"), + (0xFF21, "M", "a"), + (0xFF22, "M", "b"), + (0xFF23, "M", "c"), + (0xFF24, "M", "d"), + (0xFF25, "M", "e"), + (0xFF26, "M", "f"), + (0xFF27, "M", "g"), + (0xFF28, "M", "h"), + (0xFF29, "M", "i"), + (0xFF2A, "M", "j"), + (0xFF2B, "M", "k"), + (0xFF2C, "M", "l"), + (0xFF2D, "M", "m"), + (0xFF2E, "M", "n"), + (0xFF2F, "M", "o"), + (0xFF30, "M", "p"), + (0xFF31, "M", "q"), + (0xFF32, "M", "r"), + (0xFF33, "M", "s"), + (0xFF34, "M", "t"), + (0xFF35, "M", "u"), + (0xFF36, "M", "v"), + (0xFF37, "M", "w"), + (0xFF38, "M", "x"), + (0xFF39, "M", "y"), + (0xFF3A, "M", "z"), + (0xFF3B, "3", "["), + (0xFF3C, "3", "\\"), + (0xFF3D, "3", "]"), + (0xFF3E, "3", "^"), + (0xFF3F, "3", "_"), + (0xFF40, "3", "`"), + (0xFF41, "M", "a"), + (0xFF42, "M", "b"), + (0xFF43, "M", "c"), + (0xFF44, "M", "d"), + (0xFF45, "M", "e"), + (0xFF46, "M", "f"), + (0xFF47, "M", "g"), + (0xFF48, "M", "h"), + (0xFF49, "M", "i"), + (0xFF4A, "M", "j"), + (0xFF4B, "M", "k"), + (0xFF4C, "M", "l"), + (0xFF4D, "M", "m"), + (0xFF4E, "M", "n"), + (0xFF4F, "M", "o"), + (0xFF50, "M", "p"), + (0xFF51, "M", "q"), + (0xFF52, "M", "r"), + (0xFF53, "M", "s"), + (0xFF54, "M", "t"), + (0xFF55, "M", "u"), + (0xFF56, "M", "v"), + (0xFF57, "M", "w"), + (0xFF58, "M", "x"), + (0xFF59, "M", "y"), + (0xFF5A, "M", "z"), + (0xFF5B, "3", "{"), + (0xFF5C, "3", "|"), + (0xFF5D, "3", "}"), + (0xFF5E, "3", "~"), + (0xFF5F, "M", "⦅"), + (0xFF60, "M", "⦆"), + (0xFF61, "M", "."), + (0xFF62, "M", "「"), + (0xFF63, "M", "」"), + (0xFF64, "M", "、"), + (0xFF65, "M", "・"), + (0xFF66, "M", "ヲ"), + (0xFF67, "M", "ァ"), + (0xFF68, "M", "ィ"), + (0xFF69, "M", "ゥ"), + (0xFF6A, "M", "ェ"), + (0xFF6B, "M", "ォ"), + (0xFF6C, "M", "ャ"), + (0xFF6D, "M", "ュ"), + (0xFF6E, "M", "ョ"), + (0xFF6F, "M", "ッ"), + (0xFF70, "M", "ー"), + (0xFF71, "M", "ア"), + (0xFF72, "M", "イ"), + (0xFF73, "M", "ウ"), + (0xFF74, "M", "エ"), + (0xFF75, "M", "オ"), + (0xFF76, "M", "カ"), + (0xFF77, "M", "キ"), + (0xFF78, "M", "ク"), + (0xFF79, "M", "ケ"), + (0xFF7A, "M", "コ"), + (0xFF7B, "M", "サ"), + (0xFF7C, "M", "シ"), + (0xFF7D, "M", "ス"), + (0xFF7E, "M", "セ"), + (0xFF7F, "M", "ソ"), + (0xFF80, "M", "タ"), + (0xFF81, "M", "チ"), + (0xFF82, "M", "ツ"), + ] + + +def _seg_52() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0xFF83, "M", "テ"), + (0xFF84, "M", "ト"), + (0xFF85, "M", "ナ"), + (0xFF86, "M", "ニ"), + (0xFF87, "M", "ヌ"), + (0xFF88, "M", "ネ"), + (0xFF89, "M", "ノ"), + (0xFF8A, "M", "ハ"), + (0xFF8B, "M", "ヒ"), + (0xFF8C, "M", "フ"), + (0xFF8D, "M", "ヘ"), + (0xFF8E, "M", "ホ"), + (0xFF8F, "M", "マ"), + (0xFF90, "M", "ミ"), + (0xFF91, "M", "ム"), + (0xFF92, "M", "メ"), + (0xFF93, "M", "モ"), + (0xFF94, "M", "ヤ"), + (0xFF95, "M", "ユ"), + (0xFF96, "M", "ヨ"), + (0xFF97, "M", "ラ"), + (0xFF98, "M", "リ"), + (0xFF99, "M", "ル"), + (0xFF9A, "M", "レ"), + (0xFF9B, "M", "ロ"), + (0xFF9C, "M", "ワ"), + (0xFF9D, "M", "ン"), + (0xFF9E, "M", "゙"), + (0xFF9F, "M", "゚"), + (0xFFA0, "X"), + (0xFFA1, "M", "ᄀ"), + (0xFFA2, "M", "ᄁ"), + (0xFFA3, "M", "ᆪ"), + (0xFFA4, "M", "ᄂ"), + (0xFFA5, "M", "ᆬ"), + (0xFFA6, "M", "ᆭ"), + (0xFFA7, "M", "ᄃ"), + (0xFFA8, "M", "ᄄ"), + (0xFFA9, "M", "ᄅ"), + (0xFFAA, "M", "ᆰ"), + (0xFFAB, "M", "ᆱ"), + (0xFFAC, "M", "ᆲ"), + (0xFFAD, "M", "ᆳ"), + (0xFFAE, "M", "ᆴ"), + (0xFFAF, "M", "ᆵ"), + (0xFFB0, "M", "ᄚ"), + (0xFFB1, "M", "ᄆ"), + (0xFFB2, "M", "ᄇ"), + (0xFFB3, "M", "ᄈ"), + (0xFFB4, "M", "ᄡ"), + (0xFFB5, "M", "ᄉ"), + (0xFFB6, "M", "ᄊ"), + (0xFFB7, "M", "ᄋ"), + (0xFFB8, "M", "ᄌ"), + (0xFFB9, "M", "ᄍ"), + (0xFFBA, "M", "ᄎ"), + (0xFFBB, "M", "ᄏ"), + (0xFFBC, "M", "ᄐ"), + (0xFFBD, "M", "ᄑ"), + (0xFFBE, "M", "ᄒ"), + (0xFFBF, "X"), + (0xFFC2, "M", "ᅡ"), + (0xFFC3, "M", "ᅢ"), + (0xFFC4, "M", "ᅣ"), + (0xFFC5, "M", "ᅤ"), + (0xFFC6, "M", "ᅥ"), + (0xFFC7, "M", "ᅦ"), + (0xFFC8, "X"), + (0xFFCA, "M", "ᅧ"), + (0xFFCB, "M", "ᅨ"), + (0xFFCC, "M", "ᅩ"), + (0xFFCD, "M", "ᅪ"), + (0xFFCE, "M", "ᅫ"), + (0xFFCF, "M", "ᅬ"), + (0xFFD0, "X"), + (0xFFD2, "M", "ᅭ"), + (0xFFD3, "M", "ᅮ"), + (0xFFD4, "M", "ᅯ"), + (0xFFD5, "M", "ᅰ"), + (0xFFD6, "M", "ᅱ"), + (0xFFD7, "M", "ᅲ"), + (0xFFD8, "X"), + (0xFFDA, "M", "ᅳ"), + (0xFFDB, "M", "ᅴ"), + (0xFFDC, "M", "ᅵ"), + (0xFFDD, "X"), + (0xFFE0, "M", "¢"), + (0xFFE1, "M", "£"), + (0xFFE2, "M", "¬"), + (0xFFE3, "3", " ̄"), + (0xFFE4, "M", "¦"), + (0xFFE5, "M", "¥"), + (0xFFE6, "M", "₩"), + (0xFFE7, "X"), + (0xFFE8, "M", "│"), + (0xFFE9, "M", "←"), + (0xFFEA, "M", "↑"), + (0xFFEB, "M", "→"), + (0xFFEC, "M", "↓"), + (0xFFED, "M", "■"), + ] + + +def _seg_53() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0xFFEE, "M", "○"), + (0xFFEF, "X"), + (0x10000, "V"), + (0x1000C, "X"), + (0x1000D, "V"), + (0x10027, "X"), + (0x10028, "V"), + (0x1003B, "X"), + (0x1003C, "V"), + (0x1003E, "X"), + (0x1003F, "V"), + (0x1004E, "X"), + (0x10050, "V"), + (0x1005E, "X"), + (0x10080, "V"), + (0x100FB, "X"), + (0x10100, "V"), + (0x10103, "X"), + (0x10107, "V"), + (0x10134, "X"), + (0x10137, "V"), + (0x1018F, "X"), + (0x10190, "V"), + (0x1019D, "X"), + (0x101A0, "V"), + (0x101A1, "X"), + (0x101D0, "V"), + (0x101FE, "X"), + (0x10280, "V"), + (0x1029D, "X"), + (0x102A0, "V"), + (0x102D1, "X"), + (0x102E0, "V"), + (0x102FC, "X"), + (0x10300, "V"), + (0x10324, "X"), + (0x1032D, "V"), + (0x1034B, "X"), + (0x10350, "V"), + (0x1037B, "X"), + (0x10380, "V"), + (0x1039E, "X"), + (0x1039F, "V"), + (0x103C4, "X"), + (0x103C8, "V"), + (0x103D6, "X"), + (0x10400, "M", "𐐨"), + (0x10401, "M", "𐐩"), + (0x10402, "M", "𐐪"), + (0x10403, "M", "𐐫"), + (0x10404, "M", "𐐬"), + (0x10405, "M", "𐐭"), + (0x10406, "M", "𐐮"), + (0x10407, "M", "𐐯"), + (0x10408, "M", "𐐰"), + (0x10409, "M", "𐐱"), + (0x1040A, "M", "𐐲"), + (0x1040B, "M", "𐐳"), + (0x1040C, "M", "𐐴"), + (0x1040D, "M", "𐐵"), + (0x1040E, "M", "𐐶"), + (0x1040F, "M", "𐐷"), + (0x10410, "M", "𐐸"), + (0x10411, "M", "𐐹"), + (0x10412, "M", "𐐺"), + (0x10413, "M", "𐐻"), + (0x10414, "M", "𐐼"), + (0x10415, "M", "𐐽"), + (0x10416, "M", "𐐾"), + (0x10417, "M", "𐐿"), + (0x10418, "M", "𐑀"), + (0x10419, "M", "𐑁"), + (0x1041A, "M", "𐑂"), + (0x1041B, "M", "𐑃"), + (0x1041C, "M", "𐑄"), + (0x1041D, "M", "𐑅"), + (0x1041E, "M", "𐑆"), + (0x1041F, "M", "𐑇"), + (0x10420, "M", "𐑈"), + (0x10421, "M", "𐑉"), + (0x10422, "M", "𐑊"), + (0x10423, "M", "𐑋"), + (0x10424, "M", "𐑌"), + (0x10425, "M", "𐑍"), + (0x10426, "M", "𐑎"), + (0x10427, "M", "𐑏"), + (0x10428, "V"), + (0x1049E, "X"), + (0x104A0, "V"), + (0x104AA, "X"), + (0x104B0, "M", "𐓘"), + (0x104B1, "M", "𐓙"), + (0x104B2, "M", "𐓚"), + (0x104B3, "M", "𐓛"), + (0x104B4, "M", "𐓜"), + (0x104B5, "M", "𐓝"), + (0x104B6, "M", "𐓞"), + (0x104B7, "M", "𐓟"), + (0x104B8, "M", "𐓠"), + (0x104B9, "M", "𐓡"), + ] + + +def _seg_54() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x104BA, "M", "𐓢"), + (0x104BB, "M", "𐓣"), + (0x104BC, "M", "𐓤"), + (0x104BD, "M", "𐓥"), + (0x104BE, "M", "𐓦"), + (0x104BF, "M", "𐓧"), + (0x104C0, "M", "𐓨"), + (0x104C1, "M", "𐓩"), + (0x104C2, "M", "𐓪"), + (0x104C3, "M", "𐓫"), + (0x104C4, "M", "𐓬"), + (0x104C5, "M", "𐓭"), + (0x104C6, "M", "𐓮"), + (0x104C7, "M", "𐓯"), + (0x104C8, "M", "𐓰"), + (0x104C9, "M", "𐓱"), + (0x104CA, "M", "𐓲"), + (0x104CB, "M", "𐓳"), + (0x104CC, "M", "𐓴"), + (0x104CD, "M", "𐓵"), + (0x104CE, "M", "𐓶"), + (0x104CF, "M", "𐓷"), + (0x104D0, "M", "𐓸"), + (0x104D1, "M", "𐓹"), + (0x104D2, "M", "𐓺"), + (0x104D3, "M", "𐓻"), + (0x104D4, "X"), + (0x104D8, "V"), + (0x104FC, "X"), + (0x10500, "V"), + (0x10528, "X"), + (0x10530, "V"), + (0x10564, "X"), + (0x1056F, "V"), + (0x10570, "M", "𐖗"), + (0x10571, "M", "𐖘"), + (0x10572, "M", "𐖙"), + (0x10573, "M", "𐖚"), + (0x10574, "M", "𐖛"), + (0x10575, "M", "𐖜"), + (0x10576, "M", "𐖝"), + (0x10577, "M", "𐖞"), + (0x10578, "M", "𐖟"), + (0x10579, "M", "𐖠"), + (0x1057A, "M", "𐖡"), + (0x1057B, "X"), + (0x1057C, "M", "𐖣"), + (0x1057D, "M", "𐖤"), + (0x1057E, "M", "𐖥"), + (0x1057F, "M", "𐖦"), + (0x10580, "M", "𐖧"), + (0x10581, "M", "𐖨"), + (0x10582, "M", "𐖩"), + (0x10583, "M", "𐖪"), + (0x10584, "M", "𐖫"), + (0x10585, "M", "𐖬"), + (0x10586, "M", "𐖭"), + (0x10587, "M", "𐖮"), + (0x10588, "M", "𐖯"), + (0x10589, "M", "𐖰"), + (0x1058A, "M", "𐖱"), + (0x1058B, "X"), + (0x1058C, "M", "𐖳"), + (0x1058D, "M", "𐖴"), + (0x1058E, "M", "𐖵"), + (0x1058F, "M", "𐖶"), + (0x10590, "M", "𐖷"), + (0x10591, "M", "𐖸"), + (0x10592, "M", "𐖹"), + (0x10593, "X"), + (0x10594, "M", "𐖻"), + (0x10595, "M", "𐖼"), + (0x10596, "X"), + (0x10597, "V"), + (0x105A2, "X"), + (0x105A3, "V"), + (0x105B2, "X"), + (0x105B3, "V"), + (0x105BA, "X"), + (0x105BB, "V"), + (0x105BD, "X"), + (0x10600, "V"), + (0x10737, "X"), + (0x10740, "V"), + (0x10756, "X"), + (0x10760, "V"), + (0x10768, "X"), + (0x10780, "V"), + (0x10781, "M", "ː"), + (0x10782, "M", "ˑ"), + (0x10783, "M", "æ"), + (0x10784, "M", "ʙ"), + (0x10785, "M", "ɓ"), + (0x10786, "X"), + (0x10787, "M", "ʣ"), + (0x10788, "M", "ꭦ"), + (0x10789, "M", "ʥ"), + (0x1078A, "M", "ʤ"), + (0x1078B, "M", "ɖ"), + (0x1078C, "M", "ɗ"), + ] + + +def _seg_55() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1078D, "M", "ᶑ"), + (0x1078E, "M", "ɘ"), + (0x1078F, "M", "ɞ"), + (0x10790, "M", "ʩ"), + (0x10791, "M", "ɤ"), + (0x10792, "M", "ɢ"), + (0x10793, "M", "ɠ"), + (0x10794, "M", "ʛ"), + (0x10795, "M", "ħ"), + (0x10796, "M", "ʜ"), + (0x10797, "M", "ɧ"), + (0x10798, "M", "ʄ"), + (0x10799, "M", "ʪ"), + (0x1079A, "M", "ʫ"), + (0x1079B, "M", "ɬ"), + (0x1079C, "M", "𝼄"), + (0x1079D, "M", "ꞎ"), + (0x1079E, "M", "ɮ"), + (0x1079F, "M", "𝼅"), + (0x107A0, "M", "ʎ"), + (0x107A1, "M", "𝼆"), + (0x107A2, "M", "ø"), + (0x107A3, "M", "ɶ"), + (0x107A4, "M", "ɷ"), + (0x107A5, "M", "q"), + (0x107A6, "M", "ɺ"), + (0x107A7, "M", "𝼈"), + (0x107A8, "M", "ɽ"), + (0x107A9, "M", "ɾ"), + (0x107AA, "M", "ʀ"), + (0x107AB, "M", "ʨ"), + (0x107AC, "M", "ʦ"), + (0x107AD, "M", "ꭧ"), + (0x107AE, "M", "ʧ"), + (0x107AF, "M", "ʈ"), + (0x107B0, "M", "ⱱ"), + (0x107B1, "X"), + (0x107B2, "M", "ʏ"), + (0x107B3, "M", "ʡ"), + (0x107B4, "M", "ʢ"), + (0x107B5, "M", "ʘ"), + (0x107B6, "M", "ǀ"), + (0x107B7, "M", "ǁ"), + (0x107B8, "M", "ǂ"), + (0x107B9, "M", "𝼊"), + (0x107BA, "M", "𝼞"), + (0x107BB, "X"), + (0x10800, "V"), + (0x10806, "X"), + (0x10808, "V"), + (0x10809, "X"), + (0x1080A, "V"), + (0x10836, "X"), + (0x10837, "V"), + (0x10839, "X"), + (0x1083C, "V"), + (0x1083D, "X"), + (0x1083F, "V"), + (0x10856, "X"), + (0x10857, "V"), + (0x1089F, "X"), + (0x108A7, "V"), + (0x108B0, "X"), + (0x108E0, "V"), + (0x108F3, "X"), + (0x108F4, "V"), + (0x108F6, "X"), + (0x108FB, "V"), + (0x1091C, "X"), + (0x1091F, "V"), + (0x1093A, "X"), + (0x1093F, "V"), + (0x10940, "X"), + (0x10980, "V"), + (0x109B8, "X"), + (0x109BC, "V"), + (0x109D0, "X"), + (0x109D2, "V"), + (0x10A04, "X"), + (0x10A05, "V"), + (0x10A07, "X"), + (0x10A0C, "V"), + (0x10A14, "X"), + (0x10A15, "V"), + (0x10A18, "X"), + (0x10A19, "V"), + (0x10A36, "X"), + (0x10A38, "V"), + (0x10A3B, "X"), + (0x10A3F, "V"), + (0x10A49, "X"), + (0x10A50, "V"), + (0x10A59, "X"), + (0x10A60, "V"), + (0x10AA0, "X"), + (0x10AC0, "V"), + (0x10AE7, "X"), + (0x10AEB, "V"), + (0x10AF7, "X"), + (0x10B00, "V"), + ] + + +def _seg_56() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x10B36, "X"), + (0x10B39, "V"), + (0x10B56, "X"), + (0x10B58, "V"), + (0x10B73, "X"), + (0x10B78, "V"), + (0x10B92, "X"), + (0x10B99, "V"), + (0x10B9D, "X"), + (0x10BA9, "V"), + (0x10BB0, "X"), + (0x10C00, "V"), + (0x10C49, "X"), + (0x10C80, "M", "𐳀"), + (0x10C81, "M", "𐳁"), + (0x10C82, "M", "𐳂"), + (0x10C83, "M", "𐳃"), + (0x10C84, "M", "𐳄"), + (0x10C85, "M", "𐳅"), + (0x10C86, "M", "𐳆"), + (0x10C87, "M", "𐳇"), + (0x10C88, "M", "𐳈"), + (0x10C89, "M", "𐳉"), + (0x10C8A, "M", "𐳊"), + (0x10C8B, "M", "𐳋"), + (0x10C8C, "M", "𐳌"), + (0x10C8D, "M", "𐳍"), + (0x10C8E, "M", "𐳎"), + (0x10C8F, "M", "𐳏"), + (0x10C90, "M", "𐳐"), + (0x10C91, "M", "𐳑"), + (0x10C92, "M", "𐳒"), + (0x10C93, "M", "𐳓"), + (0x10C94, "M", "𐳔"), + (0x10C95, "M", "𐳕"), + (0x10C96, "M", "𐳖"), + (0x10C97, "M", "𐳗"), + (0x10C98, "M", "𐳘"), + (0x10C99, "M", "𐳙"), + (0x10C9A, "M", "𐳚"), + (0x10C9B, "M", "𐳛"), + (0x10C9C, "M", "𐳜"), + (0x10C9D, "M", "𐳝"), + (0x10C9E, "M", "𐳞"), + (0x10C9F, "M", "𐳟"), + (0x10CA0, "M", "𐳠"), + (0x10CA1, "M", "𐳡"), + (0x10CA2, "M", "𐳢"), + (0x10CA3, "M", "𐳣"), + (0x10CA4, "M", "𐳤"), + (0x10CA5, "M", "𐳥"), + (0x10CA6, "M", "𐳦"), + (0x10CA7, "M", "𐳧"), + (0x10CA8, "M", "𐳨"), + (0x10CA9, "M", "𐳩"), + (0x10CAA, "M", "𐳪"), + (0x10CAB, "M", "𐳫"), + (0x10CAC, "M", "𐳬"), + (0x10CAD, "M", "𐳭"), + (0x10CAE, "M", "𐳮"), + (0x10CAF, "M", "𐳯"), + (0x10CB0, "M", "𐳰"), + (0x10CB1, "M", "𐳱"), + (0x10CB2, "M", "𐳲"), + (0x10CB3, "X"), + (0x10CC0, "V"), + (0x10CF3, "X"), + (0x10CFA, "V"), + (0x10D28, "X"), + (0x10D30, "V"), + (0x10D3A, "X"), + (0x10E60, "V"), + (0x10E7F, "X"), + (0x10E80, "V"), + (0x10EAA, "X"), + (0x10EAB, "V"), + (0x10EAE, "X"), + (0x10EB0, "V"), + (0x10EB2, "X"), + (0x10EFD, "V"), + (0x10F28, "X"), + (0x10F30, "V"), + (0x10F5A, "X"), + (0x10F70, "V"), + (0x10F8A, "X"), + (0x10FB0, "V"), + (0x10FCC, "X"), + (0x10FE0, "V"), + (0x10FF7, "X"), + (0x11000, "V"), + (0x1104E, "X"), + (0x11052, "V"), + (0x11076, "X"), + (0x1107F, "V"), + (0x110BD, "X"), + (0x110BE, "V"), + (0x110C3, "X"), + (0x110D0, "V"), + (0x110E9, "X"), + (0x110F0, "V"), + ] + + +def _seg_57() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x110FA, "X"), + (0x11100, "V"), + (0x11135, "X"), + (0x11136, "V"), + (0x11148, "X"), + (0x11150, "V"), + (0x11177, "X"), + (0x11180, "V"), + (0x111E0, "X"), + (0x111E1, "V"), + (0x111F5, "X"), + (0x11200, "V"), + (0x11212, "X"), + (0x11213, "V"), + (0x11242, "X"), + (0x11280, "V"), + (0x11287, "X"), + (0x11288, "V"), + (0x11289, "X"), + (0x1128A, "V"), + (0x1128E, "X"), + (0x1128F, "V"), + (0x1129E, "X"), + (0x1129F, "V"), + (0x112AA, "X"), + (0x112B0, "V"), + (0x112EB, "X"), + (0x112F0, "V"), + (0x112FA, "X"), + (0x11300, "V"), + (0x11304, "X"), + (0x11305, "V"), + (0x1130D, "X"), + (0x1130F, "V"), + (0x11311, "X"), + (0x11313, "V"), + (0x11329, "X"), + (0x1132A, "V"), + (0x11331, "X"), + (0x11332, "V"), + (0x11334, "X"), + (0x11335, "V"), + (0x1133A, "X"), + (0x1133B, "V"), + (0x11345, "X"), + (0x11347, "V"), + (0x11349, "X"), + (0x1134B, "V"), + (0x1134E, "X"), + (0x11350, "V"), + (0x11351, "X"), + (0x11357, "V"), + (0x11358, "X"), + (0x1135D, "V"), + (0x11364, "X"), + (0x11366, "V"), + (0x1136D, "X"), + (0x11370, "V"), + (0x11375, "X"), + (0x11400, "V"), + (0x1145C, "X"), + (0x1145D, "V"), + (0x11462, "X"), + (0x11480, "V"), + (0x114C8, "X"), + (0x114D0, "V"), + (0x114DA, "X"), + (0x11580, "V"), + (0x115B6, "X"), + (0x115B8, "V"), + (0x115DE, "X"), + (0x11600, "V"), + (0x11645, "X"), + (0x11650, "V"), + (0x1165A, "X"), + (0x11660, "V"), + (0x1166D, "X"), + (0x11680, "V"), + (0x116BA, "X"), + (0x116C0, "V"), + (0x116CA, "X"), + (0x11700, "V"), + (0x1171B, "X"), + (0x1171D, "V"), + (0x1172C, "X"), + (0x11730, "V"), + (0x11747, "X"), + (0x11800, "V"), + (0x1183C, "X"), + (0x118A0, "M", "𑣀"), + (0x118A1, "M", "𑣁"), + (0x118A2, "M", "𑣂"), + (0x118A3, "M", "𑣃"), + (0x118A4, "M", "𑣄"), + (0x118A5, "M", "𑣅"), + (0x118A6, "M", "𑣆"), + (0x118A7, "M", "𑣇"), + (0x118A8, "M", "𑣈"), + (0x118A9, "M", "𑣉"), + (0x118AA, "M", "𑣊"), + ] + + +def _seg_58() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x118AB, "M", "𑣋"), + (0x118AC, "M", "𑣌"), + (0x118AD, "M", "𑣍"), + (0x118AE, "M", "𑣎"), + (0x118AF, "M", "𑣏"), + (0x118B0, "M", "𑣐"), + (0x118B1, "M", "𑣑"), + (0x118B2, "M", "𑣒"), + (0x118B3, "M", "𑣓"), + (0x118B4, "M", "𑣔"), + (0x118B5, "M", "𑣕"), + (0x118B6, "M", "𑣖"), + (0x118B7, "M", "𑣗"), + (0x118B8, "M", "𑣘"), + (0x118B9, "M", "𑣙"), + (0x118BA, "M", "𑣚"), + (0x118BB, "M", "𑣛"), + (0x118BC, "M", "𑣜"), + (0x118BD, "M", "𑣝"), + (0x118BE, "M", "𑣞"), + (0x118BF, "M", "𑣟"), + (0x118C0, "V"), + (0x118F3, "X"), + (0x118FF, "V"), + (0x11907, "X"), + (0x11909, "V"), + (0x1190A, "X"), + (0x1190C, "V"), + (0x11914, "X"), + (0x11915, "V"), + (0x11917, "X"), + (0x11918, "V"), + (0x11936, "X"), + (0x11937, "V"), + (0x11939, "X"), + (0x1193B, "V"), + (0x11947, "X"), + (0x11950, "V"), + (0x1195A, "X"), + (0x119A0, "V"), + (0x119A8, "X"), + (0x119AA, "V"), + (0x119D8, "X"), + (0x119DA, "V"), + (0x119E5, "X"), + (0x11A00, "V"), + (0x11A48, "X"), + (0x11A50, "V"), + (0x11AA3, "X"), + (0x11AB0, "V"), + (0x11AF9, "X"), + (0x11B00, "V"), + (0x11B0A, "X"), + (0x11C00, "V"), + (0x11C09, "X"), + (0x11C0A, "V"), + (0x11C37, "X"), + (0x11C38, "V"), + (0x11C46, "X"), + (0x11C50, "V"), + (0x11C6D, "X"), + (0x11C70, "V"), + (0x11C90, "X"), + (0x11C92, "V"), + (0x11CA8, "X"), + (0x11CA9, "V"), + (0x11CB7, "X"), + (0x11D00, "V"), + (0x11D07, "X"), + (0x11D08, "V"), + (0x11D0A, "X"), + (0x11D0B, "V"), + (0x11D37, "X"), + (0x11D3A, "V"), + (0x11D3B, "X"), + (0x11D3C, "V"), + (0x11D3E, "X"), + (0x11D3F, "V"), + (0x11D48, "X"), + (0x11D50, "V"), + (0x11D5A, "X"), + (0x11D60, "V"), + (0x11D66, "X"), + (0x11D67, "V"), + (0x11D69, "X"), + (0x11D6A, "V"), + (0x11D8F, "X"), + (0x11D90, "V"), + (0x11D92, "X"), + (0x11D93, "V"), + (0x11D99, "X"), + (0x11DA0, "V"), + (0x11DAA, "X"), + (0x11EE0, "V"), + (0x11EF9, "X"), + (0x11F00, "V"), + (0x11F11, "X"), + (0x11F12, "V"), + (0x11F3B, "X"), + (0x11F3E, "V"), + ] + + +def _seg_59() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x11F5A, "X"), + (0x11FB0, "V"), + (0x11FB1, "X"), + (0x11FC0, "V"), + (0x11FF2, "X"), + (0x11FFF, "V"), + (0x1239A, "X"), + (0x12400, "V"), + (0x1246F, "X"), + (0x12470, "V"), + (0x12475, "X"), + (0x12480, "V"), + (0x12544, "X"), + (0x12F90, "V"), + (0x12FF3, "X"), + (0x13000, "V"), + (0x13430, "X"), + (0x13440, "V"), + (0x13456, "X"), + (0x14400, "V"), + (0x14647, "X"), + (0x16800, "V"), + (0x16A39, "X"), + (0x16A40, "V"), + (0x16A5F, "X"), + (0x16A60, "V"), + (0x16A6A, "X"), + (0x16A6E, "V"), + (0x16ABF, "X"), + (0x16AC0, "V"), + (0x16ACA, "X"), + (0x16AD0, "V"), + (0x16AEE, "X"), + (0x16AF0, "V"), + (0x16AF6, "X"), + (0x16B00, "V"), + (0x16B46, "X"), + (0x16B50, "V"), + (0x16B5A, "X"), + (0x16B5B, "V"), + (0x16B62, "X"), + (0x16B63, "V"), + (0x16B78, "X"), + (0x16B7D, "V"), + (0x16B90, "X"), + (0x16E40, "M", "𖹠"), + (0x16E41, "M", "𖹡"), + (0x16E42, "M", "𖹢"), + (0x16E43, "M", "𖹣"), + (0x16E44, "M", "𖹤"), + (0x16E45, "M", "𖹥"), + (0x16E46, "M", "𖹦"), + (0x16E47, "M", "𖹧"), + (0x16E48, "M", "𖹨"), + (0x16E49, "M", "𖹩"), + (0x16E4A, "M", "𖹪"), + (0x16E4B, "M", "𖹫"), + (0x16E4C, "M", "𖹬"), + (0x16E4D, "M", "𖹭"), + (0x16E4E, "M", "𖹮"), + (0x16E4F, "M", "𖹯"), + (0x16E50, "M", "𖹰"), + (0x16E51, "M", "𖹱"), + (0x16E52, "M", "𖹲"), + (0x16E53, "M", "𖹳"), + (0x16E54, "M", "𖹴"), + (0x16E55, "M", "𖹵"), + (0x16E56, "M", "𖹶"), + (0x16E57, "M", "𖹷"), + (0x16E58, "M", "𖹸"), + (0x16E59, "M", "𖹹"), + (0x16E5A, "M", "𖹺"), + (0x16E5B, "M", "𖹻"), + (0x16E5C, "M", "𖹼"), + (0x16E5D, "M", "𖹽"), + (0x16E5E, "M", "𖹾"), + (0x16E5F, "M", "𖹿"), + (0x16E60, "V"), + (0x16E9B, "X"), + (0x16F00, "V"), + (0x16F4B, "X"), + (0x16F4F, "V"), + (0x16F88, "X"), + (0x16F8F, "V"), + (0x16FA0, "X"), + (0x16FE0, "V"), + (0x16FE5, "X"), + (0x16FF0, "V"), + (0x16FF2, "X"), + (0x17000, "V"), + (0x187F8, "X"), + (0x18800, "V"), + (0x18CD6, "X"), + (0x18D00, "V"), + (0x18D09, "X"), + (0x1AFF0, "V"), + (0x1AFF4, "X"), + (0x1AFF5, "V"), + (0x1AFFC, "X"), + (0x1AFFD, "V"), + ] + + +def _seg_60() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1AFFF, "X"), + (0x1B000, "V"), + (0x1B123, "X"), + (0x1B132, "V"), + (0x1B133, "X"), + (0x1B150, "V"), + (0x1B153, "X"), + (0x1B155, "V"), + (0x1B156, "X"), + (0x1B164, "V"), + (0x1B168, "X"), + (0x1B170, "V"), + (0x1B2FC, "X"), + (0x1BC00, "V"), + (0x1BC6B, "X"), + (0x1BC70, "V"), + (0x1BC7D, "X"), + (0x1BC80, "V"), + (0x1BC89, "X"), + (0x1BC90, "V"), + (0x1BC9A, "X"), + (0x1BC9C, "V"), + (0x1BCA0, "I"), + (0x1BCA4, "X"), + (0x1CF00, "V"), + (0x1CF2E, "X"), + (0x1CF30, "V"), + (0x1CF47, "X"), + (0x1CF50, "V"), + (0x1CFC4, "X"), + (0x1D000, "V"), + (0x1D0F6, "X"), + (0x1D100, "V"), + (0x1D127, "X"), + (0x1D129, "V"), + (0x1D15E, "M", "𝅗𝅥"), + (0x1D15F, "M", "𝅘𝅥"), + (0x1D160, "M", "𝅘𝅥𝅮"), + (0x1D161, "M", "𝅘𝅥𝅯"), + (0x1D162, "M", "𝅘𝅥𝅰"), + (0x1D163, "M", "𝅘𝅥𝅱"), + (0x1D164, "M", "𝅘𝅥𝅲"), + (0x1D165, "V"), + (0x1D173, "X"), + (0x1D17B, "V"), + (0x1D1BB, "M", "𝆹𝅥"), + (0x1D1BC, "M", "𝆺𝅥"), + (0x1D1BD, "M", "𝆹𝅥𝅮"), + (0x1D1BE, "M", "𝆺𝅥𝅮"), + (0x1D1BF, "M", "𝆹𝅥𝅯"), + (0x1D1C0, "M", "𝆺𝅥𝅯"), + (0x1D1C1, "V"), + (0x1D1EB, "X"), + (0x1D200, "V"), + (0x1D246, "X"), + (0x1D2C0, "V"), + (0x1D2D4, "X"), + (0x1D2E0, "V"), + (0x1D2F4, "X"), + (0x1D300, "V"), + (0x1D357, "X"), + (0x1D360, "V"), + (0x1D379, "X"), + (0x1D400, "M", "a"), + (0x1D401, "M", "b"), + (0x1D402, "M", "c"), + (0x1D403, "M", "d"), + (0x1D404, "M", "e"), + (0x1D405, "M", "f"), + (0x1D406, "M", "g"), + (0x1D407, "M", "h"), + (0x1D408, "M", "i"), + (0x1D409, "M", "j"), + (0x1D40A, "M", "k"), + (0x1D40B, "M", "l"), + (0x1D40C, "M", "m"), + (0x1D40D, "M", "n"), + (0x1D40E, "M", "o"), + (0x1D40F, "M", "p"), + (0x1D410, "M", "q"), + (0x1D411, "M", "r"), + (0x1D412, "M", "s"), + (0x1D413, "M", "t"), + (0x1D414, "M", "u"), + (0x1D415, "M", "v"), + (0x1D416, "M", "w"), + (0x1D417, "M", "x"), + (0x1D418, "M", "y"), + (0x1D419, "M", "z"), + (0x1D41A, "M", "a"), + (0x1D41B, "M", "b"), + (0x1D41C, "M", "c"), + (0x1D41D, "M", "d"), + (0x1D41E, "M", "e"), + (0x1D41F, "M", "f"), + (0x1D420, "M", "g"), + (0x1D421, "M", "h"), + (0x1D422, "M", "i"), + (0x1D423, "M", "j"), + (0x1D424, "M", "k"), + ] + + +def _seg_61() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1D425, "M", "l"), + (0x1D426, "M", "m"), + (0x1D427, "M", "n"), + (0x1D428, "M", "o"), + (0x1D429, "M", "p"), + (0x1D42A, "M", "q"), + (0x1D42B, "M", "r"), + (0x1D42C, "M", "s"), + (0x1D42D, "M", "t"), + (0x1D42E, "M", "u"), + (0x1D42F, "M", "v"), + (0x1D430, "M", "w"), + (0x1D431, "M", "x"), + (0x1D432, "M", "y"), + (0x1D433, "M", "z"), + (0x1D434, "M", "a"), + (0x1D435, "M", "b"), + (0x1D436, "M", "c"), + (0x1D437, "M", "d"), + (0x1D438, "M", "e"), + (0x1D439, "M", "f"), + (0x1D43A, "M", "g"), + (0x1D43B, "M", "h"), + (0x1D43C, "M", "i"), + (0x1D43D, "M", "j"), + (0x1D43E, "M", "k"), + (0x1D43F, "M", "l"), + (0x1D440, "M", "m"), + (0x1D441, "M", "n"), + (0x1D442, "M", "o"), + (0x1D443, "M", "p"), + (0x1D444, "M", "q"), + (0x1D445, "M", "r"), + (0x1D446, "M", "s"), + (0x1D447, "M", "t"), + (0x1D448, "M", "u"), + (0x1D449, "M", "v"), + (0x1D44A, "M", "w"), + (0x1D44B, "M", "x"), + (0x1D44C, "M", "y"), + (0x1D44D, "M", "z"), + (0x1D44E, "M", "a"), + (0x1D44F, "M", "b"), + (0x1D450, "M", "c"), + (0x1D451, "M", "d"), + (0x1D452, "M", "e"), + (0x1D453, "M", "f"), + (0x1D454, "M", "g"), + (0x1D455, "X"), + (0x1D456, "M", "i"), + (0x1D457, "M", "j"), + (0x1D458, "M", "k"), + (0x1D459, "M", "l"), + (0x1D45A, "M", "m"), + (0x1D45B, "M", "n"), + (0x1D45C, "M", "o"), + (0x1D45D, "M", "p"), + (0x1D45E, "M", "q"), + (0x1D45F, "M", "r"), + (0x1D460, "M", "s"), + (0x1D461, "M", "t"), + (0x1D462, "M", "u"), + (0x1D463, "M", "v"), + (0x1D464, "M", "w"), + (0x1D465, "M", "x"), + (0x1D466, "M", "y"), + (0x1D467, "M", "z"), + (0x1D468, "M", "a"), + (0x1D469, "M", "b"), + (0x1D46A, "M", "c"), + (0x1D46B, "M", "d"), + (0x1D46C, "M", "e"), + (0x1D46D, "M", "f"), + (0x1D46E, "M", "g"), + (0x1D46F, "M", "h"), + (0x1D470, "M", "i"), + (0x1D471, "M", "j"), + (0x1D472, "M", "k"), + (0x1D473, "M", "l"), + (0x1D474, "M", "m"), + (0x1D475, "M", "n"), + (0x1D476, "M", "o"), + (0x1D477, "M", "p"), + (0x1D478, "M", "q"), + (0x1D479, "M", "r"), + (0x1D47A, "M", "s"), + (0x1D47B, "M", "t"), + (0x1D47C, "M", "u"), + (0x1D47D, "M", "v"), + (0x1D47E, "M", "w"), + (0x1D47F, "M", "x"), + (0x1D480, "M", "y"), + (0x1D481, "M", "z"), + (0x1D482, "M", "a"), + (0x1D483, "M", "b"), + (0x1D484, "M", "c"), + (0x1D485, "M", "d"), + (0x1D486, "M", "e"), + (0x1D487, "M", "f"), + (0x1D488, "M", "g"), + ] + + +def _seg_62() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1D489, "M", "h"), + (0x1D48A, "M", "i"), + (0x1D48B, "M", "j"), + (0x1D48C, "M", "k"), + (0x1D48D, "M", "l"), + (0x1D48E, "M", "m"), + (0x1D48F, "M", "n"), + (0x1D490, "M", "o"), + (0x1D491, "M", "p"), + (0x1D492, "M", "q"), + (0x1D493, "M", "r"), + (0x1D494, "M", "s"), + (0x1D495, "M", "t"), + (0x1D496, "M", "u"), + (0x1D497, "M", "v"), + (0x1D498, "M", "w"), + (0x1D499, "M", "x"), + (0x1D49A, "M", "y"), + (0x1D49B, "M", "z"), + (0x1D49C, "M", "a"), + (0x1D49D, "X"), + (0x1D49E, "M", "c"), + (0x1D49F, "M", "d"), + (0x1D4A0, "X"), + (0x1D4A2, "M", "g"), + (0x1D4A3, "X"), + (0x1D4A5, "M", "j"), + (0x1D4A6, "M", "k"), + (0x1D4A7, "X"), + (0x1D4A9, "M", "n"), + (0x1D4AA, "M", "o"), + (0x1D4AB, "M", "p"), + (0x1D4AC, "M", "q"), + (0x1D4AD, "X"), + (0x1D4AE, "M", "s"), + (0x1D4AF, "M", "t"), + (0x1D4B0, "M", "u"), + (0x1D4B1, "M", "v"), + (0x1D4B2, "M", "w"), + (0x1D4B3, "M", "x"), + (0x1D4B4, "M", "y"), + (0x1D4B5, "M", "z"), + (0x1D4B6, "M", "a"), + (0x1D4B7, "M", "b"), + (0x1D4B8, "M", "c"), + (0x1D4B9, "M", "d"), + (0x1D4BA, "X"), + (0x1D4BB, "M", "f"), + (0x1D4BC, "X"), + (0x1D4BD, "M", "h"), + (0x1D4BE, "M", "i"), + (0x1D4BF, "M", "j"), + (0x1D4C0, "M", "k"), + (0x1D4C1, "M", "l"), + (0x1D4C2, "M", "m"), + (0x1D4C3, "M", "n"), + (0x1D4C4, "X"), + (0x1D4C5, "M", "p"), + (0x1D4C6, "M", "q"), + (0x1D4C7, "M", "r"), + (0x1D4C8, "M", "s"), + (0x1D4C9, "M", "t"), + (0x1D4CA, "M", "u"), + (0x1D4CB, "M", "v"), + (0x1D4CC, "M", "w"), + (0x1D4CD, "M", "x"), + (0x1D4CE, "M", "y"), + (0x1D4CF, "M", "z"), + (0x1D4D0, "M", "a"), + (0x1D4D1, "M", "b"), + (0x1D4D2, "M", "c"), + (0x1D4D3, "M", "d"), + (0x1D4D4, "M", "e"), + (0x1D4D5, "M", "f"), + (0x1D4D6, "M", "g"), + (0x1D4D7, "M", "h"), + (0x1D4D8, "M", "i"), + (0x1D4D9, "M", "j"), + (0x1D4DA, "M", "k"), + (0x1D4DB, "M", "l"), + (0x1D4DC, "M", "m"), + (0x1D4DD, "M", "n"), + (0x1D4DE, "M", "o"), + (0x1D4DF, "M", "p"), + (0x1D4E0, "M", "q"), + (0x1D4E1, "M", "r"), + (0x1D4E2, "M", "s"), + (0x1D4E3, "M", "t"), + (0x1D4E4, "M", "u"), + (0x1D4E5, "M", "v"), + (0x1D4E6, "M", "w"), + (0x1D4E7, "M", "x"), + (0x1D4E8, "M", "y"), + (0x1D4E9, "M", "z"), + (0x1D4EA, "M", "a"), + (0x1D4EB, "M", "b"), + (0x1D4EC, "M", "c"), + (0x1D4ED, "M", "d"), + (0x1D4EE, "M", "e"), + (0x1D4EF, "M", "f"), + ] + + +def _seg_63() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1D4F0, "M", "g"), + (0x1D4F1, "M", "h"), + (0x1D4F2, "M", "i"), + (0x1D4F3, "M", "j"), + (0x1D4F4, "M", "k"), + (0x1D4F5, "M", "l"), + (0x1D4F6, "M", "m"), + (0x1D4F7, "M", "n"), + (0x1D4F8, "M", "o"), + (0x1D4F9, "M", "p"), + (0x1D4FA, "M", "q"), + (0x1D4FB, "M", "r"), + (0x1D4FC, "M", "s"), + (0x1D4FD, "M", "t"), + (0x1D4FE, "M", "u"), + (0x1D4FF, "M", "v"), + (0x1D500, "M", "w"), + (0x1D501, "M", "x"), + (0x1D502, "M", "y"), + (0x1D503, "M", "z"), + (0x1D504, "M", "a"), + (0x1D505, "M", "b"), + (0x1D506, "X"), + (0x1D507, "M", "d"), + (0x1D508, "M", "e"), + (0x1D509, "M", "f"), + (0x1D50A, "M", "g"), + (0x1D50B, "X"), + (0x1D50D, "M", "j"), + (0x1D50E, "M", "k"), + (0x1D50F, "M", "l"), + (0x1D510, "M", "m"), + (0x1D511, "M", "n"), + (0x1D512, "M", "o"), + (0x1D513, "M", "p"), + (0x1D514, "M", "q"), + (0x1D515, "X"), + (0x1D516, "M", "s"), + (0x1D517, "M", "t"), + (0x1D518, "M", "u"), + (0x1D519, "M", "v"), + (0x1D51A, "M", "w"), + (0x1D51B, "M", "x"), + (0x1D51C, "M", "y"), + (0x1D51D, "X"), + (0x1D51E, "M", "a"), + (0x1D51F, "M", "b"), + (0x1D520, "M", "c"), + (0x1D521, "M", "d"), + (0x1D522, "M", "e"), + (0x1D523, "M", "f"), + (0x1D524, "M", "g"), + (0x1D525, "M", "h"), + (0x1D526, "M", "i"), + (0x1D527, "M", "j"), + (0x1D528, "M", "k"), + (0x1D529, "M", "l"), + (0x1D52A, "M", "m"), + (0x1D52B, "M", "n"), + (0x1D52C, "M", "o"), + (0x1D52D, "M", "p"), + (0x1D52E, "M", "q"), + (0x1D52F, "M", "r"), + (0x1D530, "M", "s"), + (0x1D531, "M", "t"), + (0x1D532, "M", "u"), + (0x1D533, "M", "v"), + (0x1D534, "M", "w"), + (0x1D535, "M", "x"), + (0x1D536, "M", "y"), + (0x1D537, "M", "z"), + (0x1D538, "M", "a"), + (0x1D539, "M", "b"), + (0x1D53A, "X"), + (0x1D53B, "M", "d"), + (0x1D53C, "M", "e"), + (0x1D53D, "M", "f"), + (0x1D53E, "M", "g"), + (0x1D53F, "X"), + (0x1D540, "M", "i"), + (0x1D541, "M", "j"), + (0x1D542, "M", "k"), + (0x1D543, "M", "l"), + (0x1D544, "M", "m"), + (0x1D545, "X"), + (0x1D546, "M", "o"), + (0x1D547, "X"), + (0x1D54A, "M", "s"), + (0x1D54B, "M", "t"), + (0x1D54C, "M", "u"), + (0x1D54D, "M", "v"), + (0x1D54E, "M", "w"), + (0x1D54F, "M", "x"), + (0x1D550, "M", "y"), + (0x1D551, "X"), + (0x1D552, "M", "a"), + (0x1D553, "M", "b"), + (0x1D554, "M", "c"), + (0x1D555, "M", "d"), + (0x1D556, "M", "e"), + ] + + +def _seg_64() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1D557, "M", "f"), + (0x1D558, "M", "g"), + (0x1D559, "M", "h"), + (0x1D55A, "M", "i"), + (0x1D55B, "M", "j"), + (0x1D55C, "M", "k"), + (0x1D55D, "M", "l"), + (0x1D55E, "M", "m"), + (0x1D55F, "M", "n"), + (0x1D560, "M", "o"), + (0x1D561, "M", "p"), + (0x1D562, "M", "q"), + (0x1D563, "M", "r"), + (0x1D564, "M", "s"), + (0x1D565, "M", "t"), + (0x1D566, "M", "u"), + (0x1D567, "M", "v"), + (0x1D568, "M", "w"), + (0x1D569, "M", "x"), + (0x1D56A, "M", "y"), + (0x1D56B, "M", "z"), + (0x1D56C, "M", "a"), + (0x1D56D, "M", "b"), + (0x1D56E, "M", "c"), + (0x1D56F, "M", "d"), + (0x1D570, "M", "e"), + (0x1D571, "M", "f"), + (0x1D572, "M", "g"), + (0x1D573, "M", "h"), + (0x1D574, "M", "i"), + (0x1D575, "M", "j"), + (0x1D576, "M", "k"), + (0x1D577, "M", "l"), + (0x1D578, "M", "m"), + (0x1D579, "M", "n"), + (0x1D57A, "M", "o"), + (0x1D57B, "M", "p"), + (0x1D57C, "M", "q"), + (0x1D57D, "M", "r"), + (0x1D57E, "M", "s"), + (0x1D57F, "M", "t"), + (0x1D580, "M", "u"), + (0x1D581, "M", "v"), + (0x1D582, "M", "w"), + (0x1D583, "M", "x"), + (0x1D584, "M", "y"), + (0x1D585, "M", "z"), + (0x1D586, "M", "a"), + (0x1D587, "M", "b"), + (0x1D588, "M", "c"), + (0x1D589, "M", "d"), + (0x1D58A, "M", "e"), + (0x1D58B, "M", "f"), + (0x1D58C, "M", "g"), + (0x1D58D, "M", "h"), + (0x1D58E, "M", "i"), + (0x1D58F, "M", "j"), + (0x1D590, "M", "k"), + (0x1D591, "M", "l"), + (0x1D592, "M", "m"), + (0x1D593, "M", "n"), + (0x1D594, "M", "o"), + (0x1D595, "M", "p"), + (0x1D596, "M", "q"), + (0x1D597, "M", "r"), + (0x1D598, "M", "s"), + (0x1D599, "M", "t"), + (0x1D59A, "M", "u"), + (0x1D59B, "M", "v"), + (0x1D59C, "M", "w"), + (0x1D59D, "M", "x"), + (0x1D59E, "M", "y"), + (0x1D59F, "M", "z"), + (0x1D5A0, "M", "a"), + (0x1D5A1, "M", "b"), + (0x1D5A2, "M", "c"), + (0x1D5A3, "M", "d"), + (0x1D5A4, "M", "e"), + (0x1D5A5, "M", "f"), + (0x1D5A6, "M", "g"), + (0x1D5A7, "M", "h"), + (0x1D5A8, "M", "i"), + (0x1D5A9, "M", "j"), + (0x1D5AA, "M", "k"), + (0x1D5AB, "M", "l"), + (0x1D5AC, "M", "m"), + (0x1D5AD, "M", "n"), + (0x1D5AE, "M", "o"), + (0x1D5AF, "M", "p"), + (0x1D5B0, "M", "q"), + (0x1D5B1, "M", "r"), + (0x1D5B2, "M", "s"), + (0x1D5B3, "M", "t"), + (0x1D5B4, "M", "u"), + (0x1D5B5, "M", "v"), + (0x1D5B6, "M", "w"), + (0x1D5B7, "M", "x"), + (0x1D5B8, "M", "y"), + (0x1D5B9, "M", "z"), + (0x1D5BA, "M", "a"), + ] + + +def _seg_65() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1D5BB, "M", "b"), + (0x1D5BC, "M", "c"), + (0x1D5BD, "M", "d"), + (0x1D5BE, "M", "e"), + (0x1D5BF, "M", "f"), + (0x1D5C0, "M", "g"), + (0x1D5C1, "M", "h"), + (0x1D5C2, "M", "i"), + (0x1D5C3, "M", "j"), + (0x1D5C4, "M", "k"), + (0x1D5C5, "M", "l"), + (0x1D5C6, "M", "m"), + (0x1D5C7, "M", "n"), + (0x1D5C8, "M", "o"), + (0x1D5C9, "M", "p"), + (0x1D5CA, "M", "q"), + (0x1D5CB, "M", "r"), + (0x1D5CC, "M", "s"), + (0x1D5CD, "M", "t"), + (0x1D5CE, "M", "u"), + (0x1D5CF, "M", "v"), + (0x1D5D0, "M", "w"), + (0x1D5D1, "M", "x"), + (0x1D5D2, "M", "y"), + (0x1D5D3, "M", "z"), + (0x1D5D4, "M", "a"), + (0x1D5D5, "M", "b"), + (0x1D5D6, "M", "c"), + (0x1D5D7, "M", "d"), + (0x1D5D8, "M", "e"), + (0x1D5D9, "M", "f"), + (0x1D5DA, "M", "g"), + (0x1D5DB, "M", "h"), + (0x1D5DC, "M", "i"), + (0x1D5DD, "M", "j"), + (0x1D5DE, "M", "k"), + (0x1D5DF, "M", "l"), + (0x1D5E0, "M", "m"), + (0x1D5E1, "M", "n"), + (0x1D5E2, "M", "o"), + (0x1D5E3, "M", "p"), + (0x1D5E4, "M", "q"), + (0x1D5E5, "M", "r"), + (0x1D5E6, "M", "s"), + (0x1D5E7, "M", "t"), + (0x1D5E8, "M", "u"), + (0x1D5E9, "M", "v"), + (0x1D5EA, "M", "w"), + (0x1D5EB, "M", "x"), + (0x1D5EC, "M", "y"), + (0x1D5ED, "M", "z"), + (0x1D5EE, "M", "a"), + (0x1D5EF, "M", "b"), + (0x1D5F0, "M", "c"), + (0x1D5F1, "M", "d"), + (0x1D5F2, "M", "e"), + (0x1D5F3, "M", "f"), + (0x1D5F4, "M", "g"), + (0x1D5F5, "M", "h"), + (0x1D5F6, "M", "i"), + (0x1D5F7, "M", "j"), + (0x1D5F8, "M", "k"), + (0x1D5F9, "M", "l"), + (0x1D5FA, "M", "m"), + (0x1D5FB, "M", "n"), + (0x1D5FC, "M", "o"), + (0x1D5FD, "M", "p"), + (0x1D5FE, "M", "q"), + (0x1D5FF, "M", "r"), + (0x1D600, "M", "s"), + (0x1D601, "M", "t"), + (0x1D602, "M", "u"), + (0x1D603, "M", "v"), + (0x1D604, "M", "w"), + (0x1D605, "M", "x"), + (0x1D606, "M", "y"), + (0x1D607, "M", "z"), + (0x1D608, "M", "a"), + (0x1D609, "M", "b"), + (0x1D60A, "M", "c"), + (0x1D60B, "M", "d"), + (0x1D60C, "M", "e"), + (0x1D60D, "M", "f"), + (0x1D60E, "M", "g"), + (0x1D60F, "M", "h"), + (0x1D610, "M", "i"), + (0x1D611, "M", "j"), + (0x1D612, "M", "k"), + (0x1D613, "M", "l"), + (0x1D614, "M", "m"), + (0x1D615, "M", "n"), + (0x1D616, "M", "o"), + (0x1D617, "M", "p"), + (0x1D618, "M", "q"), + (0x1D619, "M", "r"), + (0x1D61A, "M", "s"), + (0x1D61B, "M", "t"), + (0x1D61C, "M", "u"), + (0x1D61D, "M", "v"), + (0x1D61E, "M", "w"), + ] + + +def _seg_66() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1D61F, "M", "x"), + (0x1D620, "M", "y"), + (0x1D621, "M", "z"), + (0x1D622, "M", "a"), + (0x1D623, "M", "b"), + (0x1D624, "M", "c"), + (0x1D625, "M", "d"), + (0x1D626, "M", "e"), + (0x1D627, "M", "f"), + (0x1D628, "M", "g"), + (0x1D629, "M", "h"), + (0x1D62A, "M", "i"), + (0x1D62B, "M", "j"), + (0x1D62C, "M", "k"), + (0x1D62D, "M", "l"), + (0x1D62E, "M", "m"), + (0x1D62F, "M", "n"), + (0x1D630, "M", "o"), + (0x1D631, "M", "p"), + (0x1D632, "M", "q"), + (0x1D633, "M", "r"), + (0x1D634, "M", "s"), + (0x1D635, "M", "t"), + (0x1D636, "M", "u"), + (0x1D637, "M", "v"), + (0x1D638, "M", "w"), + (0x1D639, "M", "x"), + (0x1D63A, "M", "y"), + (0x1D63B, "M", "z"), + (0x1D63C, "M", "a"), + (0x1D63D, "M", "b"), + (0x1D63E, "M", "c"), + (0x1D63F, "M", "d"), + (0x1D640, "M", "e"), + (0x1D641, "M", "f"), + (0x1D642, "M", "g"), + (0x1D643, "M", "h"), + (0x1D644, "M", "i"), + (0x1D645, "M", "j"), + (0x1D646, "M", "k"), + (0x1D647, "M", "l"), + (0x1D648, "M", "m"), + (0x1D649, "M", "n"), + (0x1D64A, "M", "o"), + (0x1D64B, "M", "p"), + (0x1D64C, "M", "q"), + (0x1D64D, "M", "r"), + (0x1D64E, "M", "s"), + (0x1D64F, "M", "t"), + (0x1D650, "M", "u"), + (0x1D651, "M", "v"), + (0x1D652, "M", "w"), + (0x1D653, "M", "x"), + (0x1D654, "M", "y"), + (0x1D655, "M", "z"), + (0x1D656, "M", "a"), + (0x1D657, "M", "b"), + (0x1D658, "M", "c"), + (0x1D659, "M", "d"), + (0x1D65A, "M", "e"), + (0x1D65B, "M", "f"), + (0x1D65C, "M", "g"), + (0x1D65D, "M", "h"), + (0x1D65E, "M", "i"), + (0x1D65F, "M", "j"), + (0x1D660, "M", "k"), + (0x1D661, "M", "l"), + (0x1D662, "M", "m"), + (0x1D663, "M", "n"), + (0x1D664, "M", "o"), + (0x1D665, "M", "p"), + (0x1D666, "M", "q"), + (0x1D667, "M", "r"), + (0x1D668, "M", "s"), + (0x1D669, "M", "t"), + (0x1D66A, "M", "u"), + (0x1D66B, "M", "v"), + (0x1D66C, "M", "w"), + (0x1D66D, "M", "x"), + (0x1D66E, "M", "y"), + (0x1D66F, "M", "z"), + (0x1D670, "M", "a"), + (0x1D671, "M", "b"), + (0x1D672, "M", "c"), + (0x1D673, "M", "d"), + (0x1D674, "M", "e"), + (0x1D675, "M", "f"), + (0x1D676, "M", "g"), + (0x1D677, "M", "h"), + (0x1D678, "M", "i"), + (0x1D679, "M", "j"), + (0x1D67A, "M", "k"), + (0x1D67B, "M", "l"), + (0x1D67C, "M", "m"), + (0x1D67D, "M", "n"), + (0x1D67E, "M", "o"), + (0x1D67F, "M", "p"), + (0x1D680, "M", "q"), + (0x1D681, "M", "r"), + (0x1D682, "M", "s"), + ] + + +def _seg_67() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1D683, "M", "t"), + (0x1D684, "M", "u"), + (0x1D685, "M", "v"), + (0x1D686, "M", "w"), + (0x1D687, "M", "x"), + (0x1D688, "M", "y"), + (0x1D689, "M", "z"), + (0x1D68A, "M", "a"), + (0x1D68B, "M", "b"), + (0x1D68C, "M", "c"), + (0x1D68D, "M", "d"), + (0x1D68E, "M", "e"), + (0x1D68F, "M", "f"), + (0x1D690, "M", "g"), + (0x1D691, "M", "h"), + (0x1D692, "M", "i"), + (0x1D693, "M", "j"), + (0x1D694, "M", "k"), + (0x1D695, "M", "l"), + (0x1D696, "M", "m"), + (0x1D697, "M", "n"), + (0x1D698, "M", "o"), + (0x1D699, "M", "p"), + (0x1D69A, "M", "q"), + (0x1D69B, "M", "r"), + (0x1D69C, "M", "s"), + (0x1D69D, "M", "t"), + (0x1D69E, "M", "u"), + (0x1D69F, "M", "v"), + (0x1D6A0, "M", "w"), + (0x1D6A1, "M", "x"), + (0x1D6A2, "M", "y"), + (0x1D6A3, "M", "z"), + (0x1D6A4, "M", "ı"), + (0x1D6A5, "M", "ȷ"), + (0x1D6A6, "X"), + (0x1D6A8, "M", "α"), + (0x1D6A9, "M", "β"), + (0x1D6AA, "M", "γ"), + (0x1D6AB, "M", "δ"), + (0x1D6AC, "M", "ε"), + (0x1D6AD, "M", "ζ"), + (0x1D6AE, "M", "η"), + (0x1D6AF, "M", "θ"), + (0x1D6B0, "M", "ι"), + (0x1D6B1, "M", "κ"), + (0x1D6B2, "M", "λ"), + (0x1D6B3, "M", "μ"), + (0x1D6B4, "M", "ν"), + (0x1D6B5, "M", "ξ"), + (0x1D6B6, "M", "ο"), + (0x1D6B7, "M", "π"), + (0x1D6B8, "M", "ρ"), + (0x1D6B9, "M", "θ"), + (0x1D6BA, "M", "σ"), + (0x1D6BB, "M", "τ"), + (0x1D6BC, "M", "υ"), + (0x1D6BD, "M", "φ"), + (0x1D6BE, "M", "χ"), + (0x1D6BF, "M", "ψ"), + (0x1D6C0, "M", "ω"), + (0x1D6C1, "M", "∇"), + (0x1D6C2, "M", "α"), + (0x1D6C3, "M", "β"), + (0x1D6C4, "M", "γ"), + (0x1D6C5, "M", "δ"), + (0x1D6C6, "M", "ε"), + (0x1D6C7, "M", "ζ"), + (0x1D6C8, "M", "η"), + (0x1D6C9, "M", "θ"), + (0x1D6CA, "M", "ι"), + (0x1D6CB, "M", "κ"), + (0x1D6CC, "M", "λ"), + (0x1D6CD, "M", "μ"), + (0x1D6CE, "M", "ν"), + (0x1D6CF, "M", "ξ"), + (0x1D6D0, "M", "ο"), + (0x1D6D1, "M", "π"), + (0x1D6D2, "M", "ρ"), + (0x1D6D3, "M", "σ"), + (0x1D6D5, "M", "τ"), + (0x1D6D6, "M", "υ"), + (0x1D6D7, "M", "φ"), + (0x1D6D8, "M", "χ"), + (0x1D6D9, "M", "ψ"), + (0x1D6DA, "M", "ω"), + (0x1D6DB, "M", "∂"), + (0x1D6DC, "M", "ε"), + (0x1D6DD, "M", "θ"), + (0x1D6DE, "M", "κ"), + (0x1D6DF, "M", "φ"), + (0x1D6E0, "M", "ρ"), + (0x1D6E1, "M", "π"), + (0x1D6E2, "M", "α"), + (0x1D6E3, "M", "β"), + (0x1D6E4, "M", "γ"), + (0x1D6E5, "M", "δ"), + (0x1D6E6, "M", "ε"), + (0x1D6E7, "M", "ζ"), + (0x1D6E8, "M", "η"), + ] + + +def _seg_68() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1D6E9, "M", "θ"), + (0x1D6EA, "M", "ι"), + (0x1D6EB, "M", "κ"), + (0x1D6EC, "M", "λ"), + (0x1D6ED, "M", "μ"), + (0x1D6EE, "M", "ν"), + (0x1D6EF, "M", "ξ"), + (0x1D6F0, "M", "ο"), + (0x1D6F1, "M", "π"), + (0x1D6F2, "M", "ρ"), + (0x1D6F3, "M", "θ"), + (0x1D6F4, "M", "σ"), + (0x1D6F5, "M", "τ"), + (0x1D6F6, "M", "υ"), + (0x1D6F7, "M", "φ"), + (0x1D6F8, "M", "χ"), + (0x1D6F9, "M", "ψ"), + (0x1D6FA, "M", "ω"), + (0x1D6FB, "M", "∇"), + (0x1D6FC, "M", "α"), + (0x1D6FD, "M", "β"), + (0x1D6FE, "M", "γ"), + (0x1D6FF, "M", "δ"), + (0x1D700, "M", "ε"), + (0x1D701, "M", "ζ"), + (0x1D702, "M", "η"), + (0x1D703, "M", "θ"), + (0x1D704, "M", "ι"), + (0x1D705, "M", "κ"), + (0x1D706, "M", "λ"), + (0x1D707, "M", "μ"), + (0x1D708, "M", "ν"), + (0x1D709, "M", "ξ"), + (0x1D70A, "M", "ο"), + (0x1D70B, "M", "π"), + (0x1D70C, "M", "ρ"), + (0x1D70D, "M", "σ"), + (0x1D70F, "M", "τ"), + (0x1D710, "M", "υ"), + (0x1D711, "M", "φ"), + (0x1D712, "M", "χ"), + (0x1D713, "M", "ψ"), + (0x1D714, "M", "ω"), + (0x1D715, "M", "∂"), + (0x1D716, "M", "ε"), + (0x1D717, "M", "θ"), + (0x1D718, "M", "κ"), + (0x1D719, "M", "φ"), + (0x1D71A, "M", "ρ"), + (0x1D71B, "M", "π"), + (0x1D71C, "M", "α"), + (0x1D71D, "M", "β"), + (0x1D71E, "M", "γ"), + (0x1D71F, "M", "δ"), + (0x1D720, "M", "ε"), + (0x1D721, "M", "ζ"), + (0x1D722, "M", "η"), + (0x1D723, "M", "θ"), + (0x1D724, "M", "ι"), + (0x1D725, "M", "κ"), + (0x1D726, "M", "λ"), + (0x1D727, "M", "μ"), + (0x1D728, "M", "ν"), + (0x1D729, "M", "ξ"), + (0x1D72A, "M", "ο"), + (0x1D72B, "M", "π"), + (0x1D72C, "M", "ρ"), + (0x1D72D, "M", "θ"), + (0x1D72E, "M", "σ"), + (0x1D72F, "M", "τ"), + (0x1D730, "M", "υ"), + (0x1D731, "M", "φ"), + (0x1D732, "M", "χ"), + (0x1D733, "M", "ψ"), + (0x1D734, "M", "ω"), + (0x1D735, "M", "∇"), + (0x1D736, "M", "α"), + (0x1D737, "M", "β"), + (0x1D738, "M", "γ"), + (0x1D739, "M", "δ"), + (0x1D73A, "M", "ε"), + (0x1D73B, "M", "ζ"), + (0x1D73C, "M", "η"), + (0x1D73D, "M", "θ"), + (0x1D73E, "M", "ι"), + (0x1D73F, "M", "κ"), + (0x1D740, "M", "λ"), + (0x1D741, "M", "μ"), + (0x1D742, "M", "ν"), + (0x1D743, "M", "ξ"), + (0x1D744, "M", "ο"), + (0x1D745, "M", "π"), + (0x1D746, "M", "ρ"), + (0x1D747, "M", "σ"), + (0x1D749, "M", "τ"), + (0x1D74A, "M", "υ"), + (0x1D74B, "M", "φ"), + (0x1D74C, "M", "χ"), + (0x1D74D, "M", "ψ"), + (0x1D74E, "M", "ω"), + ] + + +def _seg_69() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1D74F, "M", "∂"), + (0x1D750, "M", "ε"), + (0x1D751, "M", "θ"), + (0x1D752, "M", "κ"), + (0x1D753, "M", "φ"), + (0x1D754, "M", "ρ"), + (0x1D755, "M", "π"), + (0x1D756, "M", "α"), + (0x1D757, "M", "β"), + (0x1D758, "M", "γ"), + (0x1D759, "M", "δ"), + (0x1D75A, "M", "ε"), + (0x1D75B, "M", "ζ"), + (0x1D75C, "M", "η"), + (0x1D75D, "M", "θ"), + (0x1D75E, "M", "ι"), + (0x1D75F, "M", "κ"), + (0x1D760, "M", "λ"), + (0x1D761, "M", "μ"), + (0x1D762, "M", "ν"), + (0x1D763, "M", "ξ"), + (0x1D764, "M", "ο"), + (0x1D765, "M", "π"), + (0x1D766, "M", "ρ"), + (0x1D767, "M", "θ"), + (0x1D768, "M", "σ"), + (0x1D769, "M", "τ"), + (0x1D76A, "M", "υ"), + (0x1D76B, "M", "φ"), + (0x1D76C, "M", "χ"), + (0x1D76D, "M", "ψ"), + (0x1D76E, "M", "ω"), + (0x1D76F, "M", "∇"), + (0x1D770, "M", "α"), + (0x1D771, "M", "β"), + (0x1D772, "M", "γ"), + (0x1D773, "M", "δ"), + (0x1D774, "M", "ε"), + (0x1D775, "M", "ζ"), + (0x1D776, "M", "η"), + (0x1D777, "M", "θ"), + (0x1D778, "M", "ι"), + (0x1D779, "M", "κ"), + (0x1D77A, "M", "λ"), + (0x1D77B, "M", "μ"), + (0x1D77C, "M", "ν"), + (0x1D77D, "M", "ξ"), + (0x1D77E, "M", "ο"), + (0x1D77F, "M", "π"), + (0x1D780, "M", "ρ"), + (0x1D781, "M", "σ"), + (0x1D783, "M", "τ"), + (0x1D784, "M", "υ"), + (0x1D785, "M", "φ"), + (0x1D786, "M", "χ"), + (0x1D787, "M", "ψ"), + (0x1D788, "M", "ω"), + (0x1D789, "M", "∂"), + (0x1D78A, "M", "ε"), + (0x1D78B, "M", "θ"), + (0x1D78C, "M", "κ"), + (0x1D78D, "M", "φ"), + (0x1D78E, "M", "ρ"), + (0x1D78F, "M", "π"), + (0x1D790, "M", "α"), + (0x1D791, "M", "β"), + (0x1D792, "M", "γ"), + (0x1D793, "M", "δ"), + (0x1D794, "M", "ε"), + (0x1D795, "M", "ζ"), + (0x1D796, "M", "η"), + (0x1D797, "M", "θ"), + (0x1D798, "M", "ι"), + (0x1D799, "M", "κ"), + (0x1D79A, "M", "λ"), + (0x1D79B, "M", "μ"), + (0x1D79C, "M", "ν"), + (0x1D79D, "M", "ξ"), + (0x1D79E, "M", "ο"), + (0x1D79F, "M", "π"), + (0x1D7A0, "M", "ρ"), + (0x1D7A1, "M", "θ"), + (0x1D7A2, "M", "σ"), + (0x1D7A3, "M", "τ"), + (0x1D7A4, "M", "υ"), + (0x1D7A5, "M", "φ"), + (0x1D7A6, "M", "χ"), + (0x1D7A7, "M", "ψ"), + (0x1D7A8, "M", "ω"), + (0x1D7A9, "M", "∇"), + (0x1D7AA, "M", "α"), + (0x1D7AB, "M", "β"), + (0x1D7AC, "M", "γ"), + (0x1D7AD, "M", "δ"), + (0x1D7AE, "M", "ε"), + (0x1D7AF, "M", "ζ"), + (0x1D7B0, "M", "η"), + (0x1D7B1, "M", "θ"), + (0x1D7B2, "M", "ι"), + (0x1D7B3, "M", "κ"), + ] + + +def _seg_70() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1D7B4, "M", "λ"), + (0x1D7B5, "M", "μ"), + (0x1D7B6, "M", "ν"), + (0x1D7B7, "M", "ξ"), + (0x1D7B8, "M", "ο"), + (0x1D7B9, "M", "π"), + (0x1D7BA, "M", "ρ"), + (0x1D7BB, "M", "σ"), + (0x1D7BD, "M", "τ"), + (0x1D7BE, "M", "υ"), + (0x1D7BF, "M", "φ"), + (0x1D7C0, "M", "χ"), + (0x1D7C1, "M", "ψ"), + (0x1D7C2, "M", "ω"), + (0x1D7C3, "M", "∂"), + (0x1D7C4, "M", "ε"), + (0x1D7C5, "M", "θ"), + (0x1D7C6, "M", "κ"), + (0x1D7C7, "M", "φ"), + (0x1D7C8, "M", "ρ"), + (0x1D7C9, "M", "π"), + (0x1D7CA, "M", "ϝ"), + (0x1D7CC, "X"), + (0x1D7CE, "M", "0"), + (0x1D7CF, "M", "1"), + (0x1D7D0, "M", "2"), + (0x1D7D1, "M", "3"), + (0x1D7D2, "M", "4"), + (0x1D7D3, "M", "5"), + (0x1D7D4, "M", "6"), + (0x1D7D5, "M", "7"), + (0x1D7D6, "M", "8"), + (0x1D7D7, "M", "9"), + (0x1D7D8, "M", "0"), + (0x1D7D9, "M", "1"), + (0x1D7DA, "M", "2"), + (0x1D7DB, "M", "3"), + (0x1D7DC, "M", "4"), + (0x1D7DD, "M", "5"), + (0x1D7DE, "M", "6"), + (0x1D7DF, "M", "7"), + (0x1D7E0, "M", "8"), + (0x1D7E1, "M", "9"), + (0x1D7E2, "M", "0"), + (0x1D7E3, "M", "1"), + (0x1D7E4, "M", "2"), + (0x1D7E5, "M", "3"), + (0x1D7E6, "M", "4"), + (0x1D7E7, "M", "5"), + (0x1D7E8, "M", "6"), + (0x1D7E9, "M", "7"), + (0x1D7EA, "M", "8"), + (0x1D7EB, "M", "9"), + (0x1D7EC, "M", "0"), + (0x1D7ED, "M", "1"), + (0x1D7EE, "M", "2"), + (0x1D7EF, "M", "3"), + (0x1D7F0, "M", "4"), + (0x1D7F1, "M", "5"), + (0x1D7F2, "M", "6"), + (0x1D7F3, "M", "7"), + (0x1D7F4, "M", "8"), + (0x1D7F5, "M", "9"), + (0x1D7F6, "M", "0"), + (0x1D7F7, "M", "1"), + (0x1D7F8, "M", "2"), + (0x1D7F9, "M", "3"), + (0x1D7FA, "M", "4"), + (0x1D7FB, "M", "5"), + (0x1D7FC, "M", "6"), + (0x1D7FD, "M", "7"), + (0x1D7FE, "M", "8"), + (0x1D7FF, "M", "9"), + (0x1D800, "V"), + (0x1DA8C, "X"), + (0x1DA9B, "V"), + (0x1DAA0, "X"), + (0x1DAA1, "V"), + (0x1DAB0, "X"), + (0x1DF00, "V"), + (0x1DF1F, "X"), + (0x1DF25, "V"), + (0x1DF2B, "X"), + (0x1E000, "V"), + (0x1E007, "X"), + (0x1E008, "V"), + (0x1E019, "X"), + (0x1E01B, "V"), + (0x1E022, "X"), + (0x1E023, "V"), + (0x1E025, "X"), + (0x1E026, "V"), + (0x1E02B, "X"), + (0x1E030, "M", "а"), + (0x1E031, "M", "б"), + (0x1E032, "M", "в"), + (0x1E033, "M", "г"), + (0x1E034, "M", "д"), + (0x1E035, "M", "е"), + (0x1E036, "M", "ж"), + ] + + +def _seg_71() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1E037, "M", "з"), + (0x1E038, "M", "и"), + (0x1E039, "M", "к"), + (0x1E03A, "M", "л"), + (0x1E03B, "M", "м"), + (0x1E03C, "M", "о"), + (0x1E03D, "M", "п"), + (0x1E03E, "M", "р"), + (0x1E03F, "M", "с"), + (0x1E040, "M", "т"), + (0x1E041, "M", "у"), + (0x1E042, "M", "ф"), + (0x1E043, "M", "х"), + (0x1E044, "M", "ц"), + (0x1E045, "M", "ч"), + (0x1E046, "M", "ш"), + (0x1E047, "M", "ы"), + (0x1E048, "M", "э"), + (0x1E049, "M", "ю"), + (0x1E04A, "M", "ꚉ"), + (0x1E04B, "M", "ә"), + (0x1E04C, "M", "і"), + (0x1E04D, "M", "ј"), + (0x1E04E, "M", "ө"), + (0x1E04F, "M", "ү"), + (0x1E050, "M", "ӏ"), + (0x1E051, "M", "а"), + (0x1E052, "M", "б"), + (0x1E053, "M", "в"), + (0x1E054, "M", "г"), + (0x1E055, "M", "д"), + (0x1E056, "M", "е"), + (0x1E057, "M", "ж"), + (0x1E058, "M", "з"), + (0x1E059, "M", "и"), + (0x1E05A, "M", "к"), + (0x1E05B, "M", "л"), + (0x1E05C, "M", "о"), + (0x1E05D, "M", "п"), + (0x1E05E, "M", "с"), + (0x1E05F, "M", "у"), + (0x1E060, "M", "ф"), + (0x1E061, "M", "х"), + (0x1E062, "M", "ц"), + (0x1E063, "M", "ч"), + (0x1E064, "M", "ш"), + (0x1E065, "M", "ъ"), + (0x1E066, "M", "ы"), + (0x1E067, "M", "ґ"), + (0x1E068, "M", "і"), + (0x1E069, "M", "ѕ"), + (0x1E06A, "M", "џ"), + (0x1E06B, "M", "ҫ"), + (0x1E06C, "M", "ꙑ"), + (0x1E06D, "M", "ұ"), + (0x1E06E, "X"), + (0x1E08F, "V"), + (0x1E090, "X"), + (0x1E100, "V"), + (0x1E12D, "X"), + (0x1E130, "V"), + (0x1E13E, "X"), + (0x1E140, "V"), + (0x1E14A, "X"), + (0x1E14E, "V"), + (0x1E150, "X"), + (0x1E290, "V"), + (0x1E2AF, "X"), + (0x1E2C0, "V"), + (0x1E2FA, "X"), + (0x1E2FF, "V"), + (0x1E300, "X"), + (0x1E4D0, "V"), + (0x1E4FA, "X"), + (0x1E7E0, "V"), + (0x1E7E7, "X"), + (0x1E7E8, "V"), + (0x1E7EC, "X"), + (0x1E7ED, "V"), + (0x1E7EF, "X"), + (0x1E7F0, "V"), + (0x1E7FF, "X"), + (0x1E800, "V"), + (0x1E8C5, "X"), + (0x1E8C7, "V"), + (0x1E8D7, "X"), + (0x1E900, "M", "𞤢"), + (0x1E901, "M", "𞤣"), + (0x1E902, "M", "𞤤"), + (0x1E903, "M", "𞤥"), + (0x1E904, "M", "𞤦"), + (0x1E905, "M", "𞤧"), + (0x1E906, "M", "𞤨"), + (0x1E907, "M", "𞤩"), + (0x1E908, "M", "𞤪"), + (0x1E909, "M", "𞤫"), + (0x1E90A, "M", "𞤬"), + (0x1E90B, "M", "𞤭"), + (0x1E90C, "M", "𞤮"), + (0x1E90D, "M", "𞤯"), + ] + + +def _seg_72() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1E90E, "M", "𞤰"), + (0x1E90F, "M", "𞤱"), + (0x1E910, "M", "𞤲"), + (0x1E911, "M", "𞤳"), + (0x1E912, "M", "𞤴"), + (0x1E913, "M", "𞤵"), + (0x1E914, "M", "𞤶"), + (0x1E915, "M", "𞤷"), + (0x1E916, "M", "𞤸"), + (0x1E917, "M", "𞤹"), + (0x1E918, "M", "𞤺"), + (0x1E919, "M", "𞤻"), + (0x1E91A, "M", "𞤼"), + (0x1E91B, "M", "𞤽"), + (0x1E91C, "M", "𞤾"), + (0x1E91D, "M", "𞤿"), + (0x1E91E, "M", "𞥀"), + (0x1E91F, "M", "𞥁"), + (0x1E920, "M", "𞥂"), + (0x1E921, "M", "𞥃"), + (0x1E922, "V"), + (0x1E94C, "X"), + (0x1E950, "V"), + (0x1E95A, "X"), + (0x1E95E, "V"), + (0x1E960, "X"), + (0x1EC71, "V"), + (0x1ECB5, "X"), + (0x1ED01, "V"), + (0x1ED3E, "X"), + (0x1EE00, "M", "ا"), + (0x1EE01, "M", "ب"), + (0x1EE02, "M", "ج"), + (0x1EE03, "M", "د"), + (0x1EE04, "X"), + (0x1EE05, "M", "و"), + (0x1EE06, "M", "ز"), + (0x1EE07, "M", "ح"), + (0x1EE08, "M", "ط"), + (0x1EE09, "M", "ي"), + (0x1EE0A, "M", "ك"), + (0x1EE0B, "M", "ل"), + (0x1EE0C, "M", "م"), + (0x1EE0D, "M", "ن"), + (0x1EE0E, "M", "س"), + (0x1EE0F, "M", "ع"), + (0x1EE10, "M", "ف"), + (0x1EE11, "M", "ص"), + (0x1EE12, "M", "ق"), + (0x1EE13, "M", "ر"), + (0x1EE14, "M", "ش"), + (0x1EE15, "M", "ت"), + (0x1EE16, "M", "ث"), + (0x1EE17, "M", "خ"), + (0x1EE18, "M", "ذ"), + (0x1EE19, "M", "ض"), + (0x1EE1A, "M", "ظ"), + (0x1EE1B, "M", "غ"), + (0x1EE1C, "M", "ٮ"), + (0x1EE1D, "M", "ں"), + (0x1EE1E, "M", "ڡ"), + (0x1EE1F, "M", "ٯ"), + (0x1EE20, "X"), + (0x1EE21, "M", "ب"), + (0x1EE22, "M", "ج"), + (0x1EE23, "X"), + (0x1EE24, "M", "ه"), + (0x1EE25, "X"), + (0x1EE27, "M", "ح"), + (0x1EE28, "X"), + (0x1EE29, "M", "ي"), + (0x1EE2A, "M", "ك"), + (0x1EE2B, "M", "ل"), + (0x1EE2C, "M", "م"), + (0x1EE2D, "M", "ن"), + (0x1EE2E, "M", "س"), + (0x1EE2F, "M", "ع"), + (0x1EE30, "M", "ف"), + (0x1EE31, "M", "ص"), + (0x1EE32, "M", "ق"), + (0x1EE33, "X"), + (0x1EE34, "M", "ش"), + (0x1EE35, "M", "ت"), + (0x1EE36, "M", "ث"), + (0x1EE37, "M", "خ"), + (0x1EE38, "X"), + (0x1EE39, "M", "ض"), + (0x1EE3A, "X"), + (0x1EE3B, "M", "غ"), + (0x1EE3C, "X"), + (0x1EE42, "M", "ج"), + (0x1EE43, "X"), + (0x1EE47, "M", "ح"), + (0x1EE48, "X"), + (0x1EE49, "M", "ي"), + (0x1EE4A, "X"), + (0x1EE4B, "M", "ل"), + (0x1EE4C, "X"), + (0x1EE4D, "M", "ن"), + (0x1EE4E, "M", "س"), + ] + + +def _seg_73() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1EE4F, "M", "ع"), + (0x1EE50, "X"), + (0x1EE51, "M", "ص"), + (0x1EE52, "M", "ق"), + (0x1EE53, "X"), + (0x1EE54, "M", "ش"), + (0x1EE55, "X"), + (0x1EE57, "M", "خ"), + (0x1EE58, "X"), + (0x1EE59, "M", "ض"), + (0x1EE5A, "X"), + (0x1EE5B, "M", "غ"), + (0x1EE5C, "X"), + (0x1EE5D, "M", "ں"), + (0x1EE5E, "X"), + (0x1EE5F, "M", "ٯ"), + (0x1EE60, "X"), + (0x1EE61, "M", "ب"), + (0x1EE62, "M", "ج"), + (0x1EE63, "X"), + (0x1EE64, "M", "ه"), + (0x1EE65, "X"), + (0x1EE67, "M", "ح"), + (0x1EE68, "M", "ط"), + (0x1EE69, "M", "ي"), + (0x1EE6A, "M", "ك"), + (0x1EE6B, "X"), + (0x1EE6C, "M", "م"), + (0x1EE6D, "M", "ن"), + (0x1EE6E, "M", "س"), + (0x1EE6F, "M", "ع"), + (0x1EE70, "M", "ف"), + (0x1EE71, "M", "ص"), + (0x1EE72, "M", "ق"), + (0x1EE73, "X"), + (0x1EE74, "M", "ش"), + (0x1EE75, "M", "ت"), + (0x1EE76, "M", "ث"), + (0x1EE77, "M", "خ"), + (0x1EE78, "X"), + (0x1EE79, "M", "ض"), + (0x1EE7A, "M", "ظ"), + (0x1EE7B, "M", "غ"), + (0x1EE7C, "M", "ٮ"), + (0x1EE7D, "X"), + (0x1EE7E, "M", "ڡ"), + (0x1EE7F, "X"), + (0x1EE80, "M", "ا"), + (0x1EE81, "M", "ب"), + (0x1EE82, "M", "ج"), + (0x1EE83, "M", "د"), + (0x1EE84, "M", "ه"), + (0x1EE85, "M", "و"), + (0x1EE86, "M", "ز"), + (0x1EE87, "M", "ح"), + (0x1EE88, "M", "ط"), + (0x1EE89, "M", "ي"), + (0x1EE8A, "X"), + (0x1EE8B, "M", "ل"), + (0x1EE8C, "M", "م"), + (0x1EE8D, "M", "ن"), + (0x1EE8E, "M", "س"), + (0x1EE8F, "M", "ع"), + (0x1EE90, "M", "ف"), + (0x1EE91, "M", "ص"), + (0x1EE92, "M", "ق"), + (0x1EE93, "M", "ر"), + (0x1EE94, "M", "ش"), + (0x1EE95, "M", "ت"), + (0x1EE96, "M", "ث"), + (0x1EE97, "M", "خ"), + (0x1EE98, "M", "ذ"), + (0x1EE99, "M", "ض"), + (0x1EE9A, "M", "ظ"), + (0x1EE9B, "M", "غ"), + (0x1EE9C, "X"), + (0x1EEA1, "M", "ب"), + (0x1EEA2, "M", "ج"), + (0x1EEA3, "M", "د"), + (0x1EEA4, "X"), + (0x1EEA5, "M", "و"), + (0x1EEA6, "M", "ز"), + (0x1EEA7, "M", "ح"), + (0x1EEA8, "M", "ط"), + (0x1EEA9, "M", "ي"), + (0x1EEAA, "X"), + (0x1EEAB, "M", "ل"), + (0x1EEAC, "M", "م"), + (0x1EEAD, "M", "ن"), + (0x1EEAE, "M", "س"), + (0x1EEAF, "M", "ع"), + (0x1EEB0, "M", "ف"), + (0x1EEB1, "M", "ص"), + (0x1EEB2, "M", "ق"), + (0x1EEB3, "M", "ر"), + (0x1EEB4, "M", "ش"), + (0x1EEB5, "M", "ت"), + (0x1EEB6, "M", "ث"), + (0x1EEB7, "M", "خ"), + (0x1EEB8, "M", "ذ"), + ] + + +def _seg_74() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1EEB9, "M", "ض"), + (0x1EEBA, "M", "ظ"), + (0x1EEBB, "M", "غ"), + (0x1EEBC, "X"), + (0x1EEF0, "V"), + (0x1EEF2, "X"), + (0x1F000, "V"), + (0x1F02C, "X"), + (0x1F030, "V"), + (0x1F094, "X"), + (0x1F0A0, "V"), + (0x1F0AF, "X"), + (0x1F0B1, "V"), + (0x1F0C0, "X"), + (0x1F0C1, "V"), + (0x1F0D0, "X"), + (0x1F0D1, "V"), + (0x1F0F6, "X"), + (0x1F101, "3", "0,"), + (0x1F102, "3", "1,"), + (0x1F103, "3", "2,"), + (0x1F104, "3", "3,"), + (0x1F105, "3", "4,"), + (0x1F106, "3", "5,"), + (0x1F107, "3", "6,"), + (0x1F108, "3", "7,"), + (0x1F109, "3", "8,"), + (0x1F10A, "3", "9,"), + (0x1F10B, "V"), + (0x1F110, "3", "(a)"), + (0x1F111, "3", "(b)"), + (0x1F112, "3", "(c)"), + (0x1F113, "3", "(d)"), + (0x1F114, "3", "(e)"), + (0x1F115, "3", "(f)"), + (0x1F116, "3", "(g)"), + (0x1F117, "3", "(h)"), + (0x1F118, "3", "(i)"), + (0x1F119, "3", "(j)"), + (0x1F11A, "3", "(k)"), + (0x1F11B, "3", "(l)"), + (0x1F11C, "3", "(m)"), + (0x1F11D, "3", "(n)"), + (0x1F11E, "3", "(o)"), + (0x1F11F, "3", "(p)"), + (0x1F120, "3", "(q)"), + (0x1F121, "3", "(r)"), + (0x1F122, "3", "(s)"), + (0x1F123, "3", "(t)"), + (0x1F124, "3", "(u)"), + (0x1F125, "3", "(v)"), + (0x1F126, "3", "(w)"), + (0x1F127, "3", "(x)"), + (0x1F128, "3", "(y)"), + (0x1F129, "3", "(z)"), + (0x1F12A, "M", "〔s〕"), + (0x1F12B, "M", "c"), + (0x1F12C, "M", "r"), + (0x1F12D, "M", "cd"), + (0x1F12E, "M", "wz"), + (0x1F12F, "V"), + (0x1F130, "M", "a"), + (0x1F131, "M", "b"), + (0x1F132, "M", "c"), + (0x1F133, "M", "d"), + (0x1F134, "M", "e"), + (0x1F135, "M", "f"), + (0x1F136, "M", "g"), + (0x1F137, "M", "h"), + (0x1F138, "M", "i"), + (0x1F139, "M", "j"), + (0x1F13A, "M", "k"), + (0x1F13B, "M", "l"), + (0x1F13C, "M", "m"), + (0x1F13D, "M", "n"), + (0x1F13E, "M", "o"), + (0x1F13F, "M", "p"), + (0x1F140, "M", "q"), + (0x1F141, "M", "r"), + (0x1F142, "M", "s"), + (0x1F143, "M", "t"), + (0x1F144, "M", "u"), + (0x1F145, "M", "v"), + (0x1F146, "M", "w"), + (0x1F147, "M", "x"), + (0x1F148, "M", "y"), + (0x1F149, "M", "z"), + (0x1F14A, "M", "hv"), + (0x1F14B, "M", "mv"), + (0x1F14C, "M", "sd"), + (0x1F14D, "M", "ss"), + (0x1F14E, "M", "ppv"), + (0x1F14F, "M", "wc"), + (0x1F150, "V"), + (0x1F16A, "M", "mc"), + (0x1F16B, "M", "md"), + (0x1F16C, "M", "mr"), + (0x1F16D, "V"), + (0x1F190, "M", "dj"), + (0x1F191, "V"), + ] + + +def _seg_75() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1F1AE, "X"), + (0x1F1E6, "V"), + (0x1F200, "M", "ほか"), + (0x1F201, "M", "ココ"), + (0x1F202, "M", "サ"), + (0x1F203, "X"), + (0x1F210, "M", "手"), + (0x1F211, "M", "字"), + (0x1F212, "M", "双"), + (0x1F213, "M", "デ"), + (0x1F214, "M", "二"), + (0x1F215, "M", "多"), + (0x1F216, "M", "解"), + (0x1F217, "M", "天"), + (0x1F218, "M", "交"), + (0x1F219, "M", "映"), + (0x1F21A, "M", "無"), + (0x1F21B, "M", "料"), + (0x1F21C, "M", "前"), + (0x1F21D, "M", "後"), + (0x1F21E, "M", "再"), + (0x1F21F, "M", "新"), + (0x1F220, "M", "初"), + (0x1F221, "M", "終"), + (0x1F222, "M", "生"), + (0x1F223, "M", "販"), + (0x1F224, "M", "声"), + (0x1F225, "M", "吹"), + (0x1F226, "M", "演"), + (0x1F227, "M", "投"), + (0x1F228, "M", "捕"), + (0x1F229, "M", "一"), + (0x1F22A, "M", "三"), + (0x1F22B, "M", "遊"), + (0x1F22C, "M", "左"), + (0x1F22D, "M", "中"), + (0x1F22E, "M", "右"), + (0x1F22F, "M", "指"), + (0x1F230, "M", "走"), + (0x1F231, "M", "打"), + (0x1F232, "M", "禁"), + (0x1F233, "M", "空"), + (0x1F234, "M", "合"), + (0x1F235, "M", "満"), + (0x1F236, "M", "有"), + (0x1F237, "M", "月"), + (0x1F238, "M", "申"), + (0x1F239, "M", "割"), + (0x1F23A, "M", "営"), + (0x1F23B, "M", "配"), + (0x1F23C, "X"), + (0x1F240, "M", "〔本〕"), + (0x1F241, "M", "〔三〕"), + (0x1F242, "M", "〔二〕"), + (0x1F243, "M", "〔安〕"), + (0x1F244, "M", "〔点〕"), + (0x1F245, "M", "〔打〕"), + (0x1F246, "M", "〔盗〕"), + (0x1F247, "M", "〔勝〕"), + (0x1F248, "M", "〔敗〕"), + (0x1F249, "X"), + (0x1F250, "M", "得"), + (0x1F251, "M", "可"), + (0x1F252, "X"), + (0x1F260, "V"), + (0x1F266, "X"), + (0x1F300, "V"), + (0x1F6D8, "X"), + (0x1F6DC, "V"), + (0x1F6ED, "X"), + (0x1F6F0, "V"), + (0x1F6FD, "X"), + (0x1F700, "V"), + (0x1F777, "X"), + (0x1F77B, "V"), + (0x1F7DA, "X"), + (0x1F7E0, "V"), + (0x1F7EC, "X"), + (0x1F7F0, "V"), + (0x1F7F1, "X"), + (0x1F800, "V"), + (0x1F80C, "X"), + (0x1F810, "V"), + (0x1F848, "X"), + (0x1F850, "V"), + (0x1F85A, "X"), + (0x1F860, "V"), + (0x1F888, "X"), + (0x1F890, "V"), + (0x1F8AE, "X"), + (0x1F8B0, "V"), + (0x1F8B2, "X"), + (0x1F900, "V"), + (0x1FA54, "X"), + (0x1FA60, "V"), + (0x1FA6E, "X"), + (0x1FA70, "V"), + (0x1FA7D, "X"), + (0x1FA80, "V"), + (0x1FA89, "X"), + ] + + +def _seg_76() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x1FA90, "V"), + (0x1FABE, "X"), + (0x1FABF, "V"), + (0x1FAC6, "X"), + (0x1FACE, "V"), + (0x1FADC, "X"), + (0x1FAE0, "V"), + (0x1FAE9, "X"), + (0x1FAF0, "V"), + (0x1FAF9, "X"), + (0x1FB00, "V"), + (0x1FB93, "X"), + (0x1FB94, "V"), + (0x1FBCB, "X"), + (0x1FBF0, "M", "0"), + (0x1FBF1, "M", "1"), + (0x1FBF2, "M", "2"), + (0x1FBF3, "M", "3"), + (0x1FBF4, "M", "4"), + (0x1FBF5, "M", "5"), + (0x1FBF6, "M", "6"), + (0x1FBF7, "M", "7"), + (0x1FBF8, "M", "8"), + (0x1FBF9, "M", "9"), + (0x1FBFA, "X"), + (0x20000, "V"), + (0x2A6E0, "X"), + (0x2A700, "V"), + (0x2B73A, "X"), + (0x2B740, "V"), + (0x2B81E, "X"), + (0x2B820, "V"), + (0x2CEA2, "X"), + (0x2CEB0, "V"), + (0x2EBE1, "X"), + (0x2EBF0, "V"), + (0x2EE5E, "X"), + (0x2F800, "M", "丽"), + (0x2F801, "M", "丸"), + (0x2F802, "M", "乁"), + (0x2F803, "M", "𠄢"), + (0x2F804, "M", "你"), + (0x2F805, "M", "侮"), + (0x2F806, "M", "侻"), + (0x2F807, "M", "倂"), + (0x2F808, "M", "偺"), + (0x2F809, "M", "備"), + (0x2F80A, "M", "僧"), + (0x2F80B, "M", "像"), + (0x2F80C, "M", "㒞"), + (0x2F80D, "M", "𠘺"), + (0x2F80E, "M", "免"), + (0x2F80F, "M", "兔"), + (0x2F810, "M", "兤"), + (0x2F811, "M", "具"), + (0x2F812, "M", "𠔜"), + (0x2F813, "M", "㒹"), + (0x2F814, "M", "內"), + (0x2F815, "M", "再"), + (0x2F816, "M", "𠕋"), + (0x2F817, "M", "冗"), + (0x2F818, "M", "冤"), + (0x2F819, "M", "仌"), + (0x2F81A, "M", "冬"), + (0x2F81B, "M", "况"), + (0x2F81C, "M", "𩇟"), + (0x2F81D, "M", "凵"), + (0x2F81E, "M", "刃"), + (0x2F81F, "M", "㓟"), + (0x2F820, "M", "刻"), + (0x2F821, "M", "剆"), + (0x2F822, "M", "割"), + (0x2F823, "M", "剷"), + (0x2F824, "M", "㔕"), + (0x2F825, "M", "勇"), + (0x2F826, "M", "勉"), + (0x2F827, "M", "勤"), + (0x2F828, "M", "勺"), + (0x2F829, "M", "包"), + (0x2F82A, "M", "匆"), + (0x2F82B, "M", "北"), + (0x2F82C, "M", "卉"), + (0x2F82D, "M", "卑"), + (0x2F82E, "M", "博"), + (0x2F82F, "M", "即"), + (0x2F830, "M", "卽"), + (0x2F831, "M", "卿"), + (0x2F834, "M", "𠨬"), + (0x2F835, "M", "灰"), + (0x2F836, "M", "及"), + (0x2F837, "M", "叟"), + (0x2F838, "M", "𠭣"), + (0x2F839, "M", "叫"), + (0x2F83A, "M", "叱"), + (0x2F83B, "M", "吆"), + (0x2F83C, "M", "咞"), + (0x2F83D, "M", "吸"), + (0x2F83E, "M", "呈"), + (0x2F83F, "M", "周"), + (0x2F840, "M", "咢"), + ] + + +def _seg_77() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x2F841, "M", "哶"), + (0x2F842, "M", "唐"), + (0x2F843, "M", "啓"), + (0x2F844, "M", "啣"), + (0x2F845, "M", "善"), + (0x2F847, "M", "喙"), + (0x2F848, "M", "喫"), + (0x2F849, "M", "喳"), + (0x2F84A, "M", "嗂"), + (0x2F84B, "M", "圖"), + (0x2F84C, "M", "嘆"), + (0x2F84D, "M", "圗"), + (0x2F84E, "M", "噑"), + (0x2F84F, "M", "噴"), + (0x2F850, "M", "切"), + (0x2F851, "M", "壮"), + (0x2F852, "M", "城"), + (0x2F853, "M", "埴"), + (0x2F854, "M", "堍"), + (0x2F855, "M", "型"), + (0x2F856, "M", "堲"), + (0x2F857, "M", "報"), + (0x2F858, "M", "墬"), + (0x2F859, "M", "𡓤"), + (0x2F85A, "M", "売"), + (0x2F85B, "M", "壷"), + (0x2F85C, "M", "夆"), + (0x2F85D, "M", "多"), + (0x2F85E, "M", "夢"), + (0x2F85F, "M", "奢"), + (0x2F860, "M", "𡚨"), + (0x2F861, "M", "𡛪"), + (0x2F862, "M", "姬"), + (0x2F863, "M", "娛"), + (0x2F864, "M", "娧"), + (0x2F865, "M", "姘"), + (0x2F866, "M", "婦"), + (0x2F867, "M", "㛮"), + (0x2F868, "X"), + (0x2F869, "M", "嬈"), + (0x2F86A, "M", "嬾"), + (0x2F86C, "M", "𡧈"), + (0x2F86D, "M", "寃"), + (0x2F86E, "M", "寘"), + (0x2F86F, "M", "寧"), + (0x2F870, "M", "寳"), + (0x2F871, "M", "𡬘"), + (0x2F872, "M", "寿"), + (0x2F873, "M", "将"), + (0x2F874, "X"), + (0x2F875, "M", "尢"), + (0x2F876, "M", "㞁"), + (0x2F877, "M", "屠"), + (0x2F878, "M", "屮"), + (0x2F879, "M", "峀"), + (0x2F87A, "M", "岍"), + (0x2F87B, "M", "𡷤"), + (0x2F87C, "M", "嵃"), + (0x2F87D, "M", "𡷦"), + (0x2F87E, "M", "嵮"), + (0x2F87F, "M", "嵫"), + (0x2F880, "M", "嵼"), + (0x2F881, "M", "巡"), + (0x2F882, "M", "巢"), + (0x2F883, "M", "㠯"), + (0x2F884, "M", "巽"), + (0x2F885, "M", "帨"), + (0x2F886, "M", "帽"), + (0x2F887, "M", "幩"), + (0x2F888, "M", "㡢"), + (0x2F889, "M", "𢆃"), + (0x2F88A, "M", "㡼"), + (0x2F88B, "M", "庰"), + (0x2F88C, "M", "庳"), + (0x2F88D, "M", "庶"), + (0x2F88E, "M", "廊"), + (0x2F88F, "M", "𪎒"), + (0x2F890, "M", "廾"), + (0x2F891, "M", "𢌱"), + (0x2F893, "M", "舁"), + (0x2F894, "M", "弢"), + (0x2F896, "M", "㣇"), + (0x2F897, "M", "𣊸"), + (0x2F898, "M", "𦇚"), + (0x2F899, "M", "形"), + (0x2F89A, "M", "彫"), + (0x2F89B, "M", "㣣"), + (0x2F89C, "M", "徚"), + (0x2F89D, "M", "忍"), + (0x2F89E, "M", "志"), + (0x2F89F, "M", "忹"), + (0x2F8A0, "M", "悁"), + (0x2F8A1, "M", "㤺"), + (0x2F8A2, "M", "㤜"), + (0x2F8A3, "M", "悔"), + (0x2F8A4, "M", "𢛔"), + (0x2F8A5, "M", "惇"), + (0x2F8A6, "M", "慈"), + (0x2F8A7, "M", "慌"), + (0x2F8A8, "M", "慎"), + ] + + +def _seg_78() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x2F8A9, "M", "慌"), + (0x2F8AA, "M", "慺"), + (0x2F8AB, "M", "憎"), + (0x2F8AC, "M", "憲"), + (0x2F8AD, "M", "憤"), + (0x2F8AE, "M", "憯"), + (0x2F8AF, "M", "懞"), + (0x2F8B0, "M", "懲"), + (0x2F8B1, "M", "懶"), + (0x2F8B2, "M", "成"), + (0x2F8B3, "M", "戛"), + (0x2F8B4, "M", "扝"), + (0x2F8B5, "M", "抱"), + (0x2F8B6, "M", "拔"), + (0x2F8B7, "M", "捐"), + (0x2F8B8, "M", "𢬌"), + (0x2F8B9, "M", "挽"), + (0x2F8BA, "M", "拼"), + (0x2F8BB, "M", "捨"), + (0x2F8BC, "M", "掃"), + (0x2F8BD, "M", "揤"), + (0x2F8BE, "M", "𢯱"), + (0x2F8BF, "M", "搢"), + (0x2F8C0, "M", "揅"), + (0x2F8C1, "M", "掩"), + (0x2F8C2, "M", "㨮"), + (0x2F8C3, "M", "摩"), + (0x2F8C4, "M", "摾"), + (0x2F8C5, "M", "撝"), + (0x2F8C6, "M", "摷"), + (0x2F8C7, "M", "㩬"), + (0x2F8C8, "M", "敏"), + (0x2F8C9, "M", "敬"), + (0x2F8CA, "M", "𣀊"), + (0x2F8CB, "M", "旣"), + (0x2F8CC, "M", "書"), + (0x2F8CD, "M", "晉"), + (0x2F8CE, "M", "㬙"), + (0x2F8CF, "M", "暑"), + (0x2F8D0, "M", "㬈"), + (0x2F8D1, "M", "㫤"), + (0x2F8D2, "M", "冒"), + (0x2F8D3, "M", "冕"), + (0x2F8D4, "M", "最"), + (0x2F8D5, "M", "暜"), + (0x2F8D6, "M", "肭"), + (0x2F8D7, "M", "䏙"), + (0x2F8D8, "M", "朗"), + (0x2F8D9, "M", "望"), + (0x2F8DA, "M", "朡"), + (0x2F8DB, "M", "杞"), + (0x2F8DC, "M", "杓"), + (0x2F8DD, "M", "𣏃"), + (0x2F8DE, "M", "㭉"), + (0x2F8DF, "M", "柺"), + (0x2F8E0, "M", "枅"), + (0x2F8E1, "M", "桒"), + (0x2F8E2, "M", "梅"), + (0x2F8E3, "M", "𣑭"), + (0x2F8E4, "M", "梎"), + (0x2F8E5, "M", "栟"), + (0x2F8E6, "M", "椔"), + (0x2F8E7, "M", "㮝"), + (0x2F8E8, "M", "楂"), + (0x2F8E9, "M", "榣"), + (0x2F8EA, "M", "槪"), + (0x2F8EB, "M", "檨"), + (0x2F8EC, "M", "𣚣"), + (0x2F8ED, "M", "櫛"), + (0x2F8EE, "M", "㰘"), + (0x2F8EF, "M", "次"), + (0x2F8F0, "M", "𣢧"), + (0x2F8F1, "M", "歔"), + (0x2F8F2, "M", "㱎"), + (0x2F8F3, "M", "歲"), + (0x2F8F4, "M", "殟"), + (0x2F8F5, "M", "殺"), + (0x2F8F6, "M", "殻"), + (0x2F8F7, "M", "𣪍"), + (0x2F8F8, "M", "𡴋"), + (0x2F8F9, "M", "𣫺"), + (0x2F8FA, "M", "汎"), + (0x2F8FB, "M", "𣲼"), + (0x2F8FC, "M", "沿"), + (0x2F8FD, "M", "泍"), + (0x2F8FE, "M", "汧"), + (0x2F8FF, "M", "洖"), + (0x2F900, "M", "派"), + (0x2F901, "M", "海"), + (0x2F902, "M", "流"), + (0x2F903, "M", "浩"), + (0x2F904, "M", "浸"), + (0x2F905, "M", "涅"), + (0x2F906, "M", "𣴞"), + (0x2F907, "M", "洴"), + (0x2F908, "M", "港"), + (0x2F909, "M", "湮"), + (0x2F90A, "M", "㴳"), + (0x2F90B, "M", "滋"), + (0x2F90C, "M", "滇"), + ] + + +def _seg_79() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x2F90D, "M", "𣻑"), + (0x2F90E, "M", "淹"), + (0x2F90F, "M", "潮"), + (0x2F910, "M", "𣽞"), + (0x2F911, "M", "𣾎"), + (0x2F912, "M", "濆"), + (0x2F913, "M", "瀹"), + (0x2F914, "M", "瀞"), + (0x2F915, "M", "瀛"), + (0x2F916, "M", "㶖"), + (0x2F917, "M", "灊"), + (0x2F918, "M", "災"), + (0x2F919, "M", "灷"), + (0x2F91A, "M", "炭"), + (0x2F91B, "M", "𠔥"), + (0x2F91C, "M", "煅"), + (0x2F91D, "M", "𤉣"), + (0x2F91E, "M", "熜"), + (0x2F91F, "X"), + (0x2F920, "M", "爨"), + (0x2F921, "M", "爵"), + (0x2F922, "M", "牐"), + (0x2F923, "M", "𤘈"), + (0x2F924, "M", "犀"), + (0x2F925, "M", "犕"), + (0x2F926, "M", "𤜵"), + (0x2F927, "M", "𤠔"), + (0x2F928, "M", "獺"), + (0x2F929, "M", "王"), + (0x2F92A, "M", "㺬"), + (0x2F92B, "M", "玥"), + (0x2F92C, "M", "㺸"), + (0x2F92E, "M", "瑇"), + (0x2F92F, "M", "瑜"), + (0x2F930, "M", "瑱"), + (0x2F931, "M", "璅"), + (0x2F932, "M", "瓊"), + (0x2F933, "M", "㼛"), + (0x2F934, "M", "甤"), + (0x2F935, "M", "𤰶"), + (0x2F936, "M", "甾"), + (0x2F937, "M", "𤲒"), + (0x2F938, "M", "異"), + (0x2F939, "M", "𢆟"), + (0x2F93A, "M", "瘐"), + (0x2F93B, "M", "𤾡"), + (0x2F93C, "M", "𤾸"), + (0x2F93D, "M", "𥁄"), + (0x2F93E, "M", "㿼"), + (0x2F93F, "M", "䀈"), + (0x2F940, "M", "直"), + (0x2F941, "M", "𥃳"), + (0x2F942, "M", "𥃲"), + (0x2F943, "M", "𥄙"), + (0x2F944, "M", "𥄳"), + (0x2F945, "M", "眞"), + (0x2F946, "M", "真"), + (0x2F948, "M", "睊"), + (0x2F949, "M", "䀹"), + (0x2F94A, "M", "瞋"), + (0x2F94B, "M", "䁆"), + (0x2F94C, "M", "䂖"), + (0x2F94D, "M", "𥐝"), + (0x2F94E, "M", "硎"), + (0x2F94F, "M", "碌"), + (0x2F950, "M", "磌"), + (0x2F951, "M", "䃣"), + (0x2F952, "M", "𥘦"), + (0x2F953, "M", "祖"), + (0x2F954, "M", "𥚚"), + (0x2F955, "M", "𥛅"), + (0x2F956, "M", "福"), + (0x2F957, "M", "秫"), + (0x2F958, "M", "䄯"), + (0x2F959, "M", "穀"), + (0x2F95A, "M", "穊"), + (0x2F95B, "M", "穏"), + (0x2F95C, "M", "𥥼"), + (0x2F95D, "M", "𥪧"), + (0x2F95F, "X"), + (0x2F960, "M", "䈂"), + (0x2F961, "M", "𥮫"), + (0x2F962, "M", "篆"), + (0x2F963, "M", "築"), + (0x2F964, "M", "䈧"), + (0x2F965, "M", "𥲀"), + (0x2F966, "M", "糒"), + (0x2F967, "M", "䊠"), + (0x2F968, "M", "糨"), + (0x2F969, "M", "糣"), + (0x2F96A, "M", "紀"), + (0x2F96B, "M", "𥾆"), + (0x2F96C, "M", "絣"), + (0x2F96D, "M", "䌁"), + (0x2F96E, "M", "緇"), + (0x2F96F, "M", "縂"), + (0x2F970, "M", "繅"), + (0x2F971, "M", "䌴"), + (0x2F972, "M", "𦈨"), + (0x2F973, "M", "𦉇"), + ] + + +def _seg_80() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x2F974, "M", "䍙"), + (0x2F975, "M", "𦋙"), + (0x2F976, "M", "罺"), + (0x2F977, "M", "𦌾"), + (0x2F978, "M", "羕"), + (0x2F979, "M", "翺"), + (0x2F97A, "M", "者"), + (0x2F97B, "M", "𦓚"), + (0x2F97C, "M", "𦔣"), + (0x2F97D, "M", "聠"), + (0x2F97E, "M", "𦖨"), + (0x2F97F, "M", "聰"), + (0x2F980, "M", "𣍟"), + (0x2F981, "M", "䏕"), + (0x2F982, "M", "育"), + (0x2F983, "M", "脃"), + (0x2F984, "M", "䐋"), + (0x2F985, "M", "脾"), + (0x2F986, "M", "媵"), + (0x2F987, "M", "𦞧"), + (0x2F988, "M", "𦞵"), + (0x2F989, "M", "𣎓"), + (0x2F98A, "M", "𣎜"), + (0x2F98B, "M", "舁"), + (0x2F98C, "M", "舄"), + (0x2F98D, "M", "辞"), + (0x2F98E, "M", "䑫"), + (0x2F98F, "M", "芑"), + (0x2F990, "M", "芋"), + (0x2F991, "M", "芝"), + (0x2F992, "M", "劳"), + (0x2F993, "M", "花"), + (0x2F994, "M", "芳"), + (0x2F995, "M", "芽"), + (0x2F996, "M", "苦"), + (0x2F997, "M", "𦬼"), + (0x2F998, "M", "若"), + (0x2F999, "M", "茝"), + (0x2F99A, "M", "荣"), + (0x2F99B, "M", "莭"), + (0x2F99C, "M", "茣"), + (0x2F99D, "M", "莽"), + (0x2F99E, "M", "菧"), + (0x2F99F, "M", "著"), + (0x2F9A0, "M", "荓"), + (0x2F9A1, "M", "菊"), + (0x2F9A2, "M", "菌"), + (0x2F9A3, "M", "菜"), + (0x2F9A4, "M", "𦰶"), + (0x2F9A5, "M", "𦵫"), + (0x2F9A6, "M", "𦳕"), + (0x2F9A7, "M", "䔫"), + (0x2F9A8, "M", "蓱"), + (0x2F9A9, "M", "蓳"), + (0x2F9AA, "M", "蔖"), + (0x2F9AB, "M", "𧏊"), + (0x2F9AC, "M", "蕤"), + (0x2F9AD, "M", "𦼬"), + (0x2F9AE, "M", "䕝"), + (0x2F9AF, "M", "䕡"), + (0x2F9B0, "M", "𦾱"), + (0x2F9B1, "M", "𧃒"), + (0x2F9B2, "M", "䕫"), + (0x2F9B3, "M", "虐"), + (0x2F9B4, "M", "虜"), + (0x2F9B5, "M", "虧"), + (0x2F9B6, "M", "虩"), + (0x2F9B7, "M", "蚩"), + (0x2F9B8, "M", "蚈"), + (0x2F9B9, "M", "蜎"), + (0x2F9BA, "M", "蛢"), + (0x2F9BB, "M", "蝹"), + (0x2F9BC, "M", "蜨"), + (0x2F9BD, "M", "蝫"), + (0x2F9BE, "M", "螆"), + (0x2F9BF, "X"), + (0x2F9C0, "M", "蟡"), + (0x2F9C1, "M", "蠁"), + (0x2F9C2, "M", "䗹"), + (0x2F9C3, "M", "衠"), + (0x2F9C4, "M", "衣"), + (0x2F9C5, "M", "𧙧"), + (0x2F9C6, "M", "裗"), + (0x2F9C7, "M", "裞"), + (0x2F9C8, "M", "䘵"), + (0x2F9C9, "M", "裺"), + (0x2F9CA, "M", "㒻"), + (0x2F9CB, "M", "𧢮"), + (0x2F9CC, "M", "𧥦"), + (0x2F9CD, "M", "䚾"), + (0x2F9CE, "M", "䛇"), + (0x2F9CF, "M", "誠"), + (0x2F9D0, "M", "諭"), + (0x2F9D1, "M", "變"), + (0x2F9D2, "M", "豕"), + (0x2F9D3, "M", "𧲨"), + (0x2F9D4, "M", "貫"), + (0x2F9D5, "M", "賁"), + (0x2F9D6, "M", "贛"), + (0x2F9D7, "M", "起"), + ] + + +def _seg_81() -> List[Union[Tuple[int, str], Tuple[int, str, str]]]: + return [ + (0x2F9D8, "M", "𧼯"), + (0x2F9D9, "M", "𠠄"), + (0x2F9DA, "M", "跋"), + (0x2F9DB, "M", "趼"), + (0x2F9DC, "M", "跰"), + (0x2F9DD, "M", "𠣞"), + (0x2F9DE, "M", "軔"), + (0x2F9DF, "M", "輸"), + (0x2F9E0, "M", "𨗒"), + (0x2F9E1, "M", "𨗭"), + (0x2F9E2, "M", "邔"), + (0x2F9E3, "M", "郱"), + (0x2F9E4, "M", "鄑"), + (0x2F9E5, "M", "𨜮"), + (0x2F9E6, "M", "鄛"), + (0x2F9E7, "M", "鈸"), + (0x2F9E8, "M", "鋗"), + (0x2F9E9, "M", "鋘"), + (0x2F9EA, "M", "鉼"), + (0x2F9EB, "M", "鏹"), + (0x2F9EC, "M", "鐕"), + (0x2F9ED, "M", "𨯺"), + (0x2F9EE, "M", "開"), + (0x2F9EF, "M", "䦕"), + (0x2F9F0, "M", "閷"), + (0x2F9F1, "M", "𨵷"), + (0x2F9F2, "M", "䧦"), + (0x2F9F3, "M", "雃"), + (0x2F9F4, "M", "嶲"), + (0x2F9F5, "M", "霣"), + (0x2F9F6, "M", "𩅅"), + (0x2F9F7, "M", "𩈚"), + (0x2F9F8, "M", "䩮"), + (0x2F9F9, "M", "䩶"), + (0x2F9FA, "M", "韠"), + (0x2F9FB, "M", "𩐊"), + (0x2F9FC, "M", "䪲"), + (0x2F9FD, "M", "𩒖"), + (0x2F9FE, "M", "頋"), + (0x2FA00, "M", "頩"), + (0x2FA01, "M", "𩖶"), + (0x2FA02, "M", "飢"), + (0x2FA03, "M", "䬳"), + (0x2FA04, "M", "餩"), + (0x2FA05, "M", "馧"), + (0x2FA06, "M", "駂"), + (0x2FA07, "M", "駾"), + (0x2FA08, "M", "䯎"), + (0x2FA09, "M", "𩬰"), + (0x2FA0A, "M", "鬒"), + (0x2FA0B, "M", "鱀"), + (0x2FA0C, "M", "鳽"), + (0x2FA0D, "M", "䳎"), + (0x2FA0E, "M", "䳭"), + (0x2FA0F, "M", "鵧"), + (0x2FA10, "M", "𪃎"), + (0x2FA11, "M", "䳸"), + (0x2FA12, "M", "𪄅"), + (0x2FA13, "M", "𪈎"), + (0x2FA14, "M", "𪊑"), + (0x2FA15, "M", "麻"), + (0x2FA16, "M", "䵖"), + (0x2FA17, "M", "黹"), + (0x2FA18, "M", "黾"), + (0x2FA19, "M", "鼅"), + (0x2FA1A, "M", "鼏"), + (0x2FA1B, "M", "鼖"), + (0x2FA1C, "M", "鼻"), + (0x2FA1D, "M", "𪘀"), + (0x2FA1E, "X"), + (0x30000, "V"), + (0x3134B, "X"), + (0x31350, "V"), + (0x323B0, "X"), + (0xE0100, "I"), + (0xE01F0, "X"), + ] + + +uts46data = tuple( + _seg_0() + + _seg_1() + + _seg_2() + + _seg_3() + + _seg_4() + + _seg_5() + + _seg_6() + + _seg_7() + + _seg_8() + + _seg_9() + + _seg_10() + + _seg_11() + + _seg_12() + + _seg_13() + + _seg_14() + + _seg_15() + + _seg_16() + + _seg_17() + + _seg_18() + + _seg_19() + + _seg_20() + + _seg_21() + + _seg_22() + + _seg_23() + + _seg_24() + + _seg_25() + + _seg_26() + + _seg_27() + + _seg_28() + + _seg_29() + + _seg_30() + + _seg_31() + + _seg_32() + + _seg_33() + + _seg_34() + + _seg_35() + + _seg_36() + + _seg_37() + + _seg_38() + + _seg_39() + + _seg_40() + + _seg_41() + + _seg_42() + + _seg_43() + + _seg_44() + + _seg_45() + + _seg_46() + + _seg_47() + + _seg_48() + + _seg_49() + + _seg_50() + + _seg_51() + + _seg_52() + + _seg_53() + + _seg_54() + + _seg_55() + + _seg_56() + + _seg_57() + + _seg_58() + + _seg_59() + + _seg_60() + + _seg_61() + + _seg_62() + + _seg_63() + + _seg_64() + + _seg_65() + + _seg_66() + + _seg_67() + + _seg_68() + + _seg_69() + + _seg_70() + + _seg_71() + + _seg_72() + + _seg_73() + + _seg_74() + + _seg_75() + + _seg_76() + + _seg_77() + + _seg_78() + + _seg_79() + + _seg_80() + + _seg_81() +) # type: Tuple[Union[Tuple[int, str], Tuple[int, str, str]], ...] diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_metadata-6.7.0.dist-info/INSTALLER b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_metadata-6.7.0.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_metadata-6.7.0.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_metadata-6.7.0.dist-info/LICENSE b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_metadata-6.7.0.dist-info/LICENSE new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_metadata-6.7.0.dist-info/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_metadata-6.7.0.dist-info/METADATA b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_metadata-6.7.0.dist-info/METADATA new file mode 100644 index 0000000..6272503 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_metadata-6.7.0.dist-info/METADATA @@ -0,0 +1,134 @@ +Metadata-Version: 2.1 +Name: importlib-metadata +Version: 6.7.0 +Summary: Read metadata from Python packages +Home-page: https://github.com/python/importlib_metadata +Author: Jason R. Coombs +Author-email: jaraco@jaraco.com +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: Apache Software License +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3 :: Only +Requires-Python: >=3.7 +License-File: LICENSE +Requires-Dist: zipp (>=0.5) +Requires-Dist: typing-extensions (>=3.6.4) ; python_version < "3.8" +Provides-Extra: docs +Requires-Dist: sphinx (>=3.5) ; extra == 'docs' +Requires-Dist: jaraco.packaging (>=9) ; extra == 'docs' +Requires-Dist: rst.linker (>=1.9) ; extra == 'docs' +Requires-Dist: furo ; extra == 'docs' +Requires-Dist: sphinx-lint ; extra == 'docs' +Requires-Dist: jaraco.tidelift (>=1.4) ; extra == 'docs' +Provides-Extra: perf +Requires-Dist: ipython ; extra == 'perf' +Provides-Extra: testing +Requires-Dist: pytest (>=6) ; extra == 'testing' +Requires-Dist: pytest-checkdocs (>=2.4) ; extra == 'testing' +Requires-Dist: pytest-cov ; extra == 'testing' +Requires-Dist: pytest-enabler (>=1.3) ; extra == 'testing' +Requires-Dist: pytest-ruff ; extra == 'testing' +Requires-Dist: packaging ; extra == 'testing' +Requires-Dist: pyfakefs ; extra == 'testing' +Requires-Dist: flufl.flake8 ; extra == 'testing' +Requires-Dist: pytest-perf (>=0.9.2) ; extra == 'testing' +Requires-Dist: pytest-black (>=0.3.7) ; (platform_python_implementation != "PyPy") and extra == 'testing' +Requires-Dist: pytest-mypy (>=0.9.1) ; (platform_python_implementation != "PyPy") and extra == 'testing' +Requires-Dist: importlib-resources (>=1.3) ; (python_version < "3.9") and extra == 'testing' + +.. image:: https://img.shields.io/pypi/v/importlib_metadata.svg + :target: https://pypi.org/project/importlib_metadata + +.. image:: https://img.shields.io/pypi/pyversions/importlib_metadata.svg + +.. image:: https://github.com/python/importlib_metadata/workflows/tests/badge.svg + :target: https://github.com/python/importlib_metadata/actions?query=workflow%3A%22tests%22 + :alt: tests + +.. image:: https://img.shields.io/badge/code%20style-black-000000.svg + :target: https://github.com/psf/black + :alt: Code style: Black + +.. image:: https://readthedocs.org/projects/importlib-metadata/badge/?version=latest + :target: https://importlib-metadata.readthedocs.io/en/latest/?badge=latest + +.. image:: https://img.shields.io/badge/skeleton-2023-informational + :target: https://blog.jaraco.com/skeleton + +.. image:: https://tidelift.com/badges/package/pypi/importlib-metadata + :target: https://tidelift.com/subscription/pkg/pypi-importlib-metadata?utm_source=pypi-importlib-metadata&utm_medium=readme + +Library to access the metadata for a Python package. + +This package supplies third-party access to the functionality of +`importlib.metadata `_ +including improvements added to subsequent Python versions. + + +Compatibility +============= + +New features are introduced in this third-party library and later merged +into CPython. The following table indicates which versions of this library +were contributed to different versions in the standard library: + +.. list-table:: + :header-rows: 1 + + * - importlib_metadata + - stdlib + * - 6.5 + - 3.12 + * - 4.13 + - 3.11 + * - 4.6 + - 3.10 + * - 1.4 + - 3.8 + + +Usage +===== + +See the `online documentation `_ +for usage details. + +`Finder authors +`_ can +also add support for custom package installers. See the above documentation +for details. + + +Caveats +======= + +This project primarily supports third-party packages installed by PyPA +tools (or other conforming packages). It does not support: + +- Packages in the stdlib. +- Packages installed without metadata. + +Project details +=============== + + * Project home: https://github.com/python/importlib_metadata + * Report bugs at: https://github.com/python/importlib_metadata/issues + * Code hosting: https://github.com/python/importlib_metadata + * Documentation: https://importlib-metadata.readthedocs.io/ + +For Enterprise +============== + +Available as part of the Tidelift Subscription. + +This project and the maintainers of thousands of other packages are working with Tidelift to deliver one enterprise subscription that covers all of the open source you use. + +`Learn more `_. + +Security Contact +================ + +To report a security vulnerability, please use the +`Tidelift security contact `_. +Tidelift will coordinate the fix and disclosure. diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_metadata-6.7.0.dist-info/RECORD b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_metadata-6.7.0.dist-info/RECORD new file mode 100644 index 0000000..471778f --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_metadata-6.7.0.dist-info/RECORD @@ -0,0 +1,16 @@ +importlib_metadata-6.7.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +importlib_metadata-6.7.0.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358 +importlib_metadata-6.7.0.dist-info/METADATA,sha256=JDrzuuLRE3CxIRXLeXdZGGFDrVlEXUvt-chm0-s-TtI,4878 +importlib_metadata-6.7.0.dist-info/RECORD,, +importlib_metadata-6.7.0.dist-info/WHEEL,sha256=pkctZYzUS4AYVn6dJ-7367OJZivF2e8RA9b_ZBjif18,92 +importlib_metadata-6.7.0.dist-info/top_level.txt,sha256=CO3fD9yylANiXkrMo4qHLV_mqXL2sC5JFKgt1yWAT-A,19 +importlib_metadata/__init__.py,sha256=MQx_tU_lZg-7U91wdrlrsDt0MGPXkpraLevB8LO1NNc,30724 +importlib_metadata/_adapters.py,sha256=i8S6Ib1OQjcILA-l4gkzktMZe18TaeUNI49PLRp6OBU,2454 +importlib_metadata/_collections.py,sha256=CJ0OTCHIjWA0ZIVS4voORAsn2R4R2cQBEtPsZEJpASY,743 +importlib_metadata/_compat.py,sha256=xaiD8pwYYPCWkVgR30411iT4OmLbSbSAigzhp0nTROw,1735 +importlib_metadata/_functools.py,sha256=PsY2-4rrKX4RVeRC1oGp1lB1pmC9eKN88_f-bD9uOoA,2895 +importlib_metadata/_itertools.py,sha256=cvr_2v8BRbxcIl5x5ldfqdHjhI8Yi8s8yk50G_nm6jQ,2068 +importlib_metadata/_meta.py,sha256=I2AuaUMr5a6cTdZleV9WpyqUCSooqqV-zSzr1qn7FMw,1615 +importlib_metadata/_py39compat.py,sha256=2Tk5twb_VgLCY-1NEAQjdZp_S9OFMC-pUzP2isuaPsQ,1098 +importlib_metadata/_text.py,sha256=HCsFksZpJLeTP3NEk_ngrAeXVRRtTrtyh9eOABoRP4A,2166 +importlib_metadata/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_metadata-6.7.0.dist-info/WHEEL b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_metadata-6.7.0.dist-info/WHEEL new file mode 100644 index 0000000..1f37c02 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_metadata-6.7.0.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.40.0) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_metadata-6.7.0.dist-info/top_level.txt b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_metadata-6.7.0.dist-info/top_level.txt new file mode 100644 index 0000000..bbb0754 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_metadata-6.7.0.dist-info/top_level.txt @@ -0,0 +1 @@ +importlib_metadata diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_metadata/__init__.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_metadata/__init__.py new file mode 100644 index 0000000..8147d2f --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_metadata/__init__.py @@ -0,0 +1,1015 @@ +import os +import re +import abc +import csv +import sys +import zipp +import email +import inspect +import pathlib +import operator +import textwrap +import warnings +import functools +import itertools +import posixpath +import collections + +from . import _adapters, _meta, _py39compat +from ._collections import FreezableDefaultDict, Pair +from ._compat import ( + NullFinder, + StrPath, + install, + pypy_partial, +) +from ._functools import method_cache, pass_none +from ._itertools import always_iterable, unique_everseen +from ._meta import PackageMetadata, SimplePath + +from contextlib import suppress +from importlib import import_module +from importlib.abc import MetaPathFinder +from itertools import starmap +from typing import Iterable, List, Mapping, Optional, Set, cast + +__all__ = [ + 'Distribution', + 'DistributionFinder', + 'PackageMetadata', + 'PackageNotFoundError', + 'distribution', + 'distributions', + 'entry_points', + 'files', + 'metadata', + 'packages_distributions', + 'requires', + 'version', +] + + +class PackageNotFoundError(ModuleNotFoundError): + """The package was not found.""" + + def __str__(self) -> str: + return f"No package metadata was found for {self.name}" + + @property + def name(self) -> str: # type: ignore[override] + (name,) = self.args + return name + + +class Sectioned: + """ + A simple entry point config parser for performance + + >>> for item in Sectioned.read(Sectioned._sample): + ... print(item) + Pair(name='sec1', value='# comments ignored') + Pair(name='sec1', value='a = 1') + Pair(name='sec1', value='b = 2') + Pair(name='sec2', value='a = 2') + + >>> res = Sectioned.section_pairs(Sectioned._sample) + >>> item = next(res) + >>> item.name + 'sec1' + >>> item.value + Pair(name='a', value='1') + >>> item = next(res) + >>> item.value + Pair(name='b', value='2') + >>> item = next(res) + >>> item.name + 'sec2' + >>> item.value + Pair(name='a', value='2') + >>> list(res) + [] + """ + + _sample = textwrap.dedent( + """ + [sec1] + # comments ignored + a = 1 + b = 2 + + [sec2] + a = 2 + """ + ).lstrip() + + @classmethod + def section_pairs(cls, text): + return ( + section._replace(value=Pair.parse(section.value)) + for section in cls.read(text, filter_=cls.valid) + if section.name is not None + ) + + @staticmethod + def read(text, filter_=None): + lines = filter(filter_, map(str.strip, text.splitlines())) + name = None + for value in lines: + section_match = value.startswith('[') and value.endswith(']') + if section_match: + name = value.strip('[]') + continue + yield Pair(name, value) + + @staticmethod + def valid(line: str): + return line and not line.startswith('#') + + +class DeprecatedTuple: + """ + Provide subscript item access for backward compatibility. + + >>> recwarn = getfixture('recwarn') + >>> ep = EntryPoint(name='name', value='value', group='group') + >>> ep[:] + ('name', 'value', 'group') + >>> ep[0] + 'name' + >>> len(recwarn) + 1 + """ + + # Do not remove prior to 2023-05-01 or Python 3.13 + _warn = functools.partial( + warnings.warn, + "EntryPoint tuple interface is deprecated. Access members by name.", + DeprecationWarning, + stacklevel=pypy_partial(2), + ) + + def __getitem__(self, item): + self._warn() + return self._key()[item] + + +class EntryPoint(DeprecatedTuple): + """An entry point as defined by Python packaging conventions. + + See `the packaging docs on entry points + `_ + for more information. + + >>> ep = EntryPoint( + ... name=None, group=None, value='package.module:attr [extra1, extra2]') + >>> ep.module + 'package.module' + >>> ep.attr + 'attr' + >>> ep.extras + ['extra1', 'extra2'] + """ + + pattern = re.compile( + r'(?P[\w.]+)\s*' + r'(:\s*(?P[\w.]+)\s*)?' + r'((?P\[.*\])\s*)?$' + ) + """ + A regular expression describing the syntax for an entry point, + which might look like: + + - module + - package.module + - package.module:attribute + - package.module:object.attribute + - package.module:attr [extra1, extra2] + + Other combinations are possible as well. + + The expression is lenient about whitespace around the ':', + following the attr, and following any extras. + """ + + name: str + value: str + group: str + + dist: Optional['Distribution'] = None + + def __init__(self, name: str, value: str, group: str) -> None: + vars(self).update(name=name, value=value, group=group) + + def load(self): + """Load the entry point from its definition. If only a module + is indicated by the value, return that module. Otherwise, + return the named object. + """ + match = self.pattern.match(self.value) + module = import_module(match.group('module')) + attrs = filter(None, (match.group('attr') or '').split('.')) + return functools.reduce(getattr, attrs, module) + + @property + def module(self) -> str: + match = self.pattern.match(self.value) + assert match is not None + return match.group('module') + + @property + def attr(self) -> str: + match = self.pattern.match(self.value) + assert match is not None + return match.group('attr') + + @property + def extras(self) -> List[str]: + match = self.pattern.match(self.value) + assert match is not None + return re.findall(r'\w+', match.group('extras') or '') + + def _for(self, dist): + vars(self).update(dist=dist) + return self + + def matches(self, **params): + """ + EntryPoint matches the given parameters. + + >>> ep = EntryPoint(group='foo', name='bar', value='bing:bong [extra1, extra2]') + >>> ep.matches(group='foo') + True + >>> ep.matches(name='bar', value='bing:bong [extra1, extra2]') + True + >>> ep.matches(group='foo', name='other') + False + >>> ep.matches() + True + >>> ep.matches(extras=['extra1', 'extra2']) + True + >>> ep.matches(module='bing') + True + >>> ep.matches(attr='bong') + True + """ + attrs = (getattr(self, param) for param in params) + return all(map(operator.eq, params.values(), attrs)) + + def _key(self): + return self.name, self.value, self.group + + def __lt__(self, other): + return self._key() < other._key() + + def __eq__(self, other): + return self._key() == other._key() + + def __setattr__(self, name, value): + raise AttributeError("EntryPoint objects are immutable.") + + def __repr__(self): + return ( + f'EntryPoint(name={self.name!r}, value={self.value!r}, ' + f'group={self.group!r})' + ) + + def __hash__(self) -> int: + return hash(self._key()) + + +class EntryPoints(tuple): + """ + An immutable collection of selectable EntryPoint objects. + """ + + __slots__ = () + + def __getitem__(self, name: str) -> EntryPoint: # type: ignore[override] + """ + Get the EntryPoint in self matching name. + """ + try: + return next(iter(self.select(name=name))) + except StopIteration: + raise KeyError(name) + + def select(self, **params): + """ + Select entry points from self that match the + given parameters (typically group and/or name). + """ + return EntryPoints(ep for ep in self if _py39compat.ep_matches(ep, **params)) + + @property + def names(self) -> Set[str]: + """ + Return the set of all names of all entry points. + """ + return {ep.name for ep in self} + + @property + def groups(self) -> Set[str]: + """ + Return the set of all groups of all entry points. + """ + return {ep.group for ep in self} + + @classmethod + def _from_text_for(cls, text, dist): + return cls(ep._for(dist) for ep in cls._from_text(text)) + + @staticmethod + def _from_text(text): + return ( + EntryPoint(name=item.value.name, value=item.value.value, group=item.name) + for item in Sectioned.section_pairs(text or '') + ) + + +class PackagePath(pathlib.PurePosixPath): + """A reference to a path in a package""" + + hash: Optional["FileHash"] + size: int + dist: "Distribution" + + def read_text(self, encoding: str = 'utf-8') -> str: # type: ignore[override] + with self.locate().open(encoding=encoding) as stream: + return stream.read() + + def read_binary(self) -> bytes: + with self.locate().open('rb') as stream: + return stream.read() + + def locate(self) -> pathlib.Path: + """Return a path-like object for this path""" + return self.dist.locate_file(self) + + +class FileHash: + def __init__(self, spec: str) -> None: + self.mode, _, self.value = spec.partition('=') + + def __repr__(self) -> str: + return f'' + + +class DeprecatedNonAbstract: + def __new__(cls, *args, **kwargs): + all_names = { + name for subclass in inspect.getmro(cls) for name in vars(subclass) + } + abstract = { + name + for name in all_names + if getattr(getattr(cls, name), '__isabstractmethod__', False) + } + if abstract: + warnings.warn( + f"Unimplemented abstract methods {abstract}", + DeprecationWarning, + stacklevel=2, + ) + return super().__new__(cls) + + +class Distribution(DeprecatedNonAbstract): + """A Python distribution package.""" + + @abc.abstractmethod + def read_text(self, filename) -> Optional[str]: + """Attempt to load metadata file given by the name. + + :param filename: The name of the file in the distribution info. + :return: The text if found, otherwise None. + """ + + @abc.abstractmethod + def locate_file(self, path: StrPath) -> pathlib.Path: + """ + Given a path to a file in this distribution, return a path + to it. + """ + + @classmethod + def from_name(cls, name: str) -> "Distribution": + """Return the Distribution for the given package name. + + :param name: The name of the distribution package to search for. + :return: The Distribution instance (or subclass thereof) for the named + package, if found. + :raises PackageNotFoundError: When the named package's distribution + metadata cannot be found. + :raises ValueError: When an invalid value is supplied for name. + """ + if not name: + raise ValueError("A distribution name is required.") + try: + return next(iter(cls.discover(name=name))) + except StopIteration: + raise PackageNotFoundError(name) + + @classmethod + def discover(cls, **kwargs) -> Iterable["Distribution"]: + """Return an iterable of Distribution objects for all packages. + + Pass a ``context`` or pass keyword arguments for constructing + a context. + + :context: A ``DistributionFinder.Context`` object. + :return: Iterable of Distribution objects for all packages. + """ + context = kwargs.pop('context', None) + if context and kwargs: + raise ValueError("cannot accept context and kwargs") + context = context or DistributionFinder.Context(**kwargs) + return itertools.chain.from_iterable( + resolver(context) for resolver in cls._discover_resolvers() + ) + + @staticmethod + def at(path: StrPath) -> "Distribution": + """Return a Distribution for the indicated metadata path + + :param path: a string or path-like object + :return: a concrete Distribution instance for the path + """ + return PathDistribution(pathlib.Path(path)) + + @staticmethod + def _discover_resolvers(): + """Search the meta_path for resolvers.""" + declared = ( + getattr(finder, 'find_distributions', None) for finder in sys.meta_path + ) + return filter(None, declared) + + @property + def metadata(self) -> _meta.PackageMetadata: + """Return the parsed metadata for this Distribution. + + The returned object will have keys that name the various bits of + metadata. See PEP 566 for details. + """ + opt_text = ( + self.read_text('METADATA') + or self.read_text('PKG-INFO') + # This last clause is here to support old egg-info files. Its + # effect is to just end up using the PathDistribution's self._path + # (which points to the egg-info file) attribute unchanged. + or self.read_text('') + ) + text = cast(str, opt_text) + return _adapters.Message(email.message_from_string(text)) + + @property + def name(self) -> str: + """Return the 'Name' metadata for the distribution package.""" + return self.metadata['Name'] + + @property + def _normalized_name(self): + """Return a normalized version of the name.""" + return Prepared.normalize(self.name) + + @property + def version(self) -> str: + """Return the 'Version' metadata for the distribution package.""" + return self.metadata['Version'] + + @property + def entry_points(self) -> EntryPoints: + return EntryPoints._from_text_for(self.read_text('entry_points.txt'), self) + + @property + def files(self) -> Optional[List[PackagePath]]: + """Files in this distribution. + + :return: List of PackagePath for this distribution or None + + Result is `None` if the metadata file that enumerates files + (i.e. RECORD for dist-info, or installed-files.txt or + SOURCES.txt for egg-info) is missing. + Result may be empty if the metadata exists but is empty. + """ + + def make_file(name, hash=None, size_str=None): + result = PackagePath(name) + result.hash = FileHash(hash) if hash else None + result.size = int(size_str) if size_str else None + result.dist = self + return result + + @pass_none + def make_files(lines): + return starmap(make_file, csv.reader(lines)) + + @pass_none + def skip_missing_files(package_paths): + return list(filter(lambda path: path.locate().exists(), package_paths)) + + return skip_missing_files( + make_files( + self._read_files_distinfo() + or self._read_files_egginfo_installed() + or self._read_files_egginfo_sources() + ) + ) + + def _read_files_distinfo(self): + """ + Read the lines of RECORD + """ + text = self.read_text('RECORD') + return text and text.splitlines() + + def _read_files_egginfo_installed(self): + """ + Read installed-files.txt and return lines in a similar + CSV-parsable format as RECORD: each file must be placed + relative to the site-packages directory and must also be + quoted (since file names can contain literal commas). + + This file is written when the package is installed by pip, + but it might not be written for other installation methods. + Assume the file is accurate if it exists. + """ + text = self.read_text('installed-files.txt') + # Prepend the .egg-info/ subdir to the lines in this file. + # But this subdir is only available from PathDistribution's + # self._path. + subdir = getattr(self, '_path', None) + if not text or not subdir: + return + + paths = ( + (subdir / name) + .resolve() + .relative_to(self.locate_file('').resolve()) + .as_posix() + for name in text.splitlines() + ) + return map('"{}"'.format, paths) + + def _read_files_egginfo_sources(self): + """ + Read SOURCES.txt and return lines in a similar CSV-parsable + format as RECORD: each file name must be quoted (since it + might contain literal commas). + + Note that SOURCES.txt is not a reliable source for what + files are installed by a package. This file is generated + for a source archive, and the files that are present + there (e.g. setup.py) may not correctly reflect the files + that are present after the package has been installed. + """ + text = self.read_text('SOURCES.txt') + return text and map('"{}"'.format, text.splitlines()) + + @property + def requires(self) -> Optional[List[str]]: + """Generated requirements specified for this Distribution""" + reqs = self._read_dist_info_reqs() or self._read_egg_info_reqs() + return reqs and list(reqs) + + def _read_dist_info_reqs(self): + return self.metadata.get_all('Requires-Dist') + + def _read_egg_info_reqs(self): + source = self.read_text('requires.txt') + return pass_none(self._deps_from_requires_text)(source) + + @classmethod + def _deps_from_requires_text(cls, source): + return cls._convert_egg_info_reqs_to_simple_reqs(Sectioned.read(source)) + + @staticmethod + def _convert_egg_info_reqs_to_simple_reqs(sections): + """ + Historically, setuptools would solicit and store 'extra' + requirements, including those with environment markers, + in separate sections. More modern tools expect each + dependency to be defined separately, with any relevant + extras and environment markers attached directly to that + requirement. This method converts the former to the + latter. See _test_deps_from_requires_text for an example. + """ + + def make_condition(name): + return name and f'extra == "{name}"' + + def quoted_marker(section): + section = section or '' + extra, sep, markers = section.partition(':') + if extra and markers: + markers = f'({markers})' + conditions = list(filter(None, [markers, make_condition(extra)])) + return '; ' + ' and '.join(conditions) if conditions else '' + + def url_req_space(req): + """ + PEP 508 requires a space between the url_spec and the quoted_marker. + Ref python/importlib_metadata#357. + """ + # '@' is uniquely indicative of a url_req. + return ' ' * ('@' in req) + + for section in sections: + space = url_req_space(section.value) + yield section.value + space + quoted_marker(section.name) + + +class DistributionFinder(MetaPathFinder): + """ + A MetaPathFinder capable of discovering installed distributions. + """ + + class Context: + """ + Keyword arguments presented by the caller to + ``distributions()`` or ``Distribution.discover()`` + to narrow the scope of a search for distributions + in all DistributionFinders. + + Each DistributionFinder may expect any parameters + and should attempt to honor the canonical + parameters defined below when appropriate. + """ + + name = None + """ + Specific name for which a distribution finder should match. + A name of ``None`` matches all distributions. + """ + + def __init__(self, **kwargs): + vars(self).update(kwargs) + + @property + def path(self) -> List[str]: + """ + The sequence of directory path that a distribution finder + should search. + + Typically refers to Python installed package paths such as + "site-packages" directories and defaults to ``sys.path``. + """ + return vars(self).get('path', sys.path) + + @abc.abstractmethod + def find_distributions(self, context=Context()) -> Iterable[Distribution]: + """ + Find distributions. + + Return an iterable of all Distribution instances capable of + loading the metadata for packages matching the ``context``, + a DistributionFinder.Context instance. + """ + + +class FastPath: + """ + Micro-optimized class for searching a path for + children. + + >>> FastPath('').children() + ['...'] + """ + + @functools.lru_cache() # type: ignore + def __new__(cls, root): + return super().__new__(cls) + + def __init__(self, root): + self.root = root + + def joinpath(self, child): + return pathlib.Path(self.root, child) + + def children(self): + with suppress(Exception): + return os.listdir(self.root or '.') + with suppress(Exception): + return self.zip_children() + return [] + + def zip_children(self): + zip_path = zipp.Path(self.root) + names = zip_path.root.namelist() + self.joinpath = zip_path.joinpath + + return dict.fromkeys(child.split(posixpath.sep, 1)[0] for child in names) + + def search(self, name): + return self.lookup(self.mtime).search(name) + + @property + def mtime(self): + with suppress(OSError): + return os.stat(self.root).st_mtime + self.lookup.cache_clear() + + @method_cache + def lookup(self, mtime): + return Lookup(self) + + +class Lookup: + def __init__(self, path: FastPath): + base = os.path.basename(path.root).lower() + base_is_egg = base.endswith(".egg") + self.infos = FreezableDefaultDict(list) + self.eggs = FreezableDefaultDict(list) + + for child in path.children(): + low = child.lower() + if low.endswith((".dist-info", ".egg-info")): + # rpartition is faster than splitext and suitable for this purpose. + name = low.rpartition(".")[0].partition("-")[0] + normalized = Prepared.normalize(name) + self.infos[normalized].append(path.joinpath(child)) + elif base_is_egg and low == "egg-info": + name = base.rpartition(".")[0].partition("-")[0] + legacy_normalized = Prepared.legacy_normalize(name) + self.eggs[legacy_normalized].append(path.joinpath(child)) + + self.infos.freeze() + self.eggs.freeze() + + def search(self, prepared): + infos = ( + self.infos[prepared.normalized] + if prepared + else itertools.chain.from_iterable(self.infos.values()) + ) + eggs = ( + self.eggs[prepared.legacy_normalized] + if prepared + else itertools.chain.from_iterable(self.eggs.values()) + ) + return itertools.chain(infos, eggs) + + +class Prepared: + """ + A prepared search for metadata on a possibly-named package. + """ + + normalized = None + legacy_normalized = None + + def __init__(self, name): + self.name = name + if name is None: + return + self.normalized = self.normalize(name) + self.legacy_normalized = self.legacy_normalize(name) + + @staticmethod + def normalize(name): + """ + PEP 503 normalization plus dashes as underscores. + """ + return re.sub(r"[-_.]+", "-", name).lower().replace('-', '_') + + @staticmethod + def legacy_normalize(name): + """ + Normalize the package name as found in the convention in + older packaging tools versions and specs. + """ + return name.lower().replace('-', '_') + + def __bool__(self): + return bool(self.name) + + +@install +class MetadataPathFinder(NullFinder, DistributionFinder): + """A degenerate finder for distribution packages on the file system. + + This finder supplies only a find_distributions() method for versions + of Python that do not have a PathFinder find_distributions(). + """ + + def find_distributions( + self, context=DistributionFinder.Context() + ) -> Iterable["PathDistribution"]: + """ + Find distributions. + + Return an iterable of all Distribution instances capable of + loading the metadata for packages matching ``context.name`` + (or all names if ``None`` indicated) along the paths in the list + of directories ``context.path``. + """ + found = self._search_paths(context.name, context.path) + return map(PathDistribution, found) + + @classmethod + def _search_paths(cls, name, paths): + """Find metadata directories in paths heuristically.""" + prepared = Prepared(name) + return itertools.chain.from_iterable( + path.search(prepared) for path in map(FastPath, paths) + ) + + def invalidate_caches(cls) -> None: + FastPath.__new__.cache_clear() + + +class PathDistribution(Distribution): + def __init__(self, path: SimplePath) -> None: + """Construct a distribution. + + :param path: SimplePath indicating the metadata directory. + """ + self._path = path + + def read_text(self, filename: StrPath) -> Optional[str]: + with suppress( + FileNotFoundError, + IsADirectoryError, + KeyError, + NotADirectoryError, + PermissionError, + ): + return self._path.joinpath(filename).read_text(encoding='utf-8') + + return None + + read_text.__doc__ = Distribution.read_text.__doc__ + + def locate_file(self, path: StrPath) -> pathlib.Path: + return self._path.parent / path + + @property + def _normalized_name(self): + """ + Performance optimization: where possible, resolve the + normalized name from the file system path. + """ + stem = os.path.basename(str(self._path)) + return ( + pass_none(Prepared.normalize)(self._name_from_stem(stem)) + or super()._normalized_name + ) + + @staticmethod + def _name_from_stem(stem): + """ + >>> PathDistribution._name_from_stem('foo-3.0.egg-info') + 'foo' + >>> PathDistribution._name_from_stem('CherryPy-3.0.dist-info') + 'CherryPy' + >>> PathDistribution._name_from_stem('face.egg-info') + 'face' + >>> PathDistribution._name_from_stem('foo.bar') + """ + filename, ext = os.path.splitext(stem) + if ext not in ('.dist-info', '.egg-info'): + return + name, sep, rest = filename.partition('-') + return name + + +def distribution(distribution_name) -> Distribution: + """Get the ``Distribution`` instance for the named package. + + :param distribution_name: The name of the distribution package as a string. + :return: A ``Distribution`` instance (or subclass thereof). + """ + return Distribution.from_name(distribution_name) + + +def distributions(**kwargs) -> Iterable[Distribution]: + """Get all ``Distribution`` instances in the current environment. + + :return: An iterable of ``Distribution`` instances. + """ + return Distribution.discover(**kwargs) + + +def metadata(distribution_name) -> _meta.PackageMetadata: + """Get the metadata for the named package. + + :param distribution_name: The name of the distribution package to query. + :return: A PackageMetadata containing the parsed metadata. + """ + return Distribution.from_name(distribution_name).metadata + + +def version(distribution_name) -> str: + """Get the version string for the named package. + + :param distribution_name: The name of the distribution package to query. + :return: The version string for the package as defined in the package's + "Version" metadata key. + """ + return distribution(distribution_name).version + + +_unique = functools.partial( + unique_everseen, + key=_py39compat.normalized_name, +) +""" +Wrapper for ``distributions`` to return unique distributions by name. +""" + + +def entry_points(**params) -> EntryPoints: + """Return EntryPoint objects for all installed packages. + + Pass selection parameters (group or name) to filter the + result to entry points matching those properties (see + EntryPoints.select()). + + :return: EntryPoints for all installed packages. + """ + eps = itertools.chain.from_iterable( + dist.entry_points for dist in _unique(distributions()) + ) + return EntryPoints(eps).select(**params) + + +def files(distribution_name) -> Optional[List[PackagePath]]: + """Return a list of files for the named package. + + :param distribution_name: The name of the distribution package to query. + :return: List of files composing the distribution. + """ + return distribution(distribution_name).files + + +def requires(distribution_name) -> Optional[List[str]]: + """ + Return a list of requirements for the named package. + + :return: An iterable of requirements, suitable for + packaging.requirement.Requirement. + """ + return distribution(distribution_name).requires + + +def packages_distributions() -> Mapping[str, List[str]]: + """ + Return a mapping of top-level packages to their + distributions. + + >>> import collections.abc + >>> pkgs = packages_distributions() + >>> all(isinstance(dist, collections.abc.Sequence) for dist in pkgs.values()) + True + """ + pkg_to_dist = collections.defaultdict(list) + for dist in distributions(): + for pkg in _top_level_declared(dist) or _top_level_inferred(dist): + pkg_to_dist[pkg].append(dist.metadata['Name']) + return dict(pkg_to_dist) + + +def _top_level_declared(dist): + return (dist.read_text('top_level.txt') or '').split() + + +def _topmost(name: PackagePath) -> Optional[str]: + """ + Return the top-most parent as long as there is a parent. + """ + top, *rest = name.parts + return top if rest else None + + +def _get_toplevel_name(name: PackagePath) -> str: + """ + Infer a possibly importable module name from a name presumed on + sys.path. + + >>> _get_toplevel_name(PackagePath('foo.py')) + 'foo' + >>> _get_toplevel_name(PackagePath('foo')) + 'foo' + >>> _get_toplevel_name(PackagePath('foo.pyc')) + 'foo' + >>> _get_toplevel_name(PackagePath('foo/__init__.py')) + 'foo' + >>> _get_toplevel_name(PackagePath('foo.pth')) + 'foo.pth' + >>> _get_toplevel_name(PackagePath('foo.dist-info')) + 'foo.dist-info' + """ + return _topmost(name) or ( + # python/typeshed#10328 + inspect.getmodulename(name) # type: ignore + or str(name) + ) + + +def _top_level_inferred(dist): + opt_names = set(map(_get_toplevel_name, always_iterable(dist.files))) + + def importable_name(name): + return '.' not in name + + return filter(importable_name, opt_names) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_metadata/_adapters.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_metadata/_adapters.py new file mode 100644 index 0000000..e33cba5 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_metadata/_adapters.py @@ -0,0 +1,90 @@ +import functools +import warnings +import re +import textwrap +import email.message + +from ._text import FoldedCase +from ._compat import pypy_partial + + +# Do not remove prior to 2024-01-01 or Python 3.14 +_warn = functools.partial( + warnings.warn, + "Implicit None on return values is deprecated and will raise KeyErrors.", + DeprecationWarning, + stacklevel=pypy_partial(2), +) + + +class Message(email.message.Message): + multiple_use_keys = set( + map( + FoldedCase, + [ + 'Classifier', + 'Obsoletes-Dist', + 'Platform', + 'Project-URL', + 'Provides-Dist', + 'Provides-Extra', + 'Requires-Dist', + 'Requires-External', + 'Supported-Platform', + 'Dynamic', + ], + ) + ) + """ + Keys that may be indicated multiple times per PEP 566. + """ + + def __new__(cls, orig: email.message.Message): + res = super().__new__(cls) + vars(res).update(vars(orig)) + return res + + def __init__(self, *args, **kwargs): + self._headers = self._repair_headers() + + # suppress spurious error from mypy + def __iter__(self): + return super().__iter__() + + def __getitem__(self, item): + """ + Warn users that a ``KeyError`` can be expected when a + mising key is supplied. Ref python/importlib_metadata#371. + """ + res = super().__getitem__(item) + if res is None: + _warn() + return res + + def _repair_headers(self): + def redent(value): + "Correct for RFC822 indentation" + if not value or '\n' not in value: + return value + return textwrap.dedent(' ' * 8 + value) + + headers = [(key, redent(value)) for key, value in vars(self)['_headers']] + if self._payload: + headers.append(('Description', self.get_payload())) + return headers + + @property + def json(self): + """ + Convert PackageMetadata to a JSON-compatible format + per PEP 0566. + """ + + def transform(key): + value = self.get_all(key) if key in self.multiple_use_keys else self[key] + if key == 'Keywords': + value = re.split(r'\s+', value) + tk = key.lower().replace('-', '_') + return tk, value + + return dict(map(transform, map(FoldedCase, self))) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_metadata/_collections.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_metadata/_collections.py new file mode 100644 index 0000000..cf0954e --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_metadata/_collections.py @@ -0,0 +1,30 @@ +import collections + + +# from jaraco.collections 3.3 +class FreezableDefaultDict(collections.defaultdict): + """ + Often it is desirable to prevent the mutation of + a default dict after its initial construction, such + as to prevent mutation during iteration. + + >>> dd = FreezableDefaultDict(list) + >>> dd[0].append('1') + >>> dd.freeze() + >>> dd[1] + [] + >>> len(dd) + 1 + """ + + def __missing__(self, key): + return getattr(self, '_frozen', super().__missing__)(key) + + def freeze(self): + self._frozen = lambda key: self.default_factory() + + +class Pair(collections.namedtuple('Pair', 'name value')): + @classmethod + def parse(cls, text): + return cls(*map(str.strip, text.split("=", 1))) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_metadata/_compat.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_metadata/_compat.py new file mode 100644 index 0000000..b7abd09 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_metadata/_compat.py @@ -0,0 +1,74 @@ +import os +import sys +import platform + +from typing import Union + + +__all__ = ['install', 'NullFinder', 'Protocol'] + + +try: + from typing import Protocol +except ImportError: # pragma: no cover + # Python 3.7 compatibility + from typing_extensions import Protocol # type: ignore + + +def install(cls): + """ + Class decorator for installation on sys.meta_path. + + Adds the backport DistributionFinder to sys.meta_path and + attempts to disable the finder functionality of the stdlib + DistributionFinder. + """ + sys.meta_path.append(cls()) + disable_stdlib_finder() + return cls + + +def disable_stdlib_finder(): + """ + Give the backport primacy for discovering path-based distributions + by monkey-patching the stdlib O_O. + + See #91 for more background for rationale on this sketchy + behavior. + """ + + def matches(finder): + return getattr( + finder, '__module__', None + ) == '_frozen_importlib_external' and hasattr(finder, 'find_distributions') + + for finder in filter(matches, sys.meta_path): # pragma: nocover + del finder.find_distributions + + +class NullFinder: + """ + A "Finder" (aka "MetaClassFinder") that never finds any modules, + but may find distributions. + """ + + @staticmethod + def find_spec(*args, **kwargs): + return None + + +def pypy_partial(val): + """ + Adjust for variable stacklevel on partial under PyPy. + + Workaround for #327. + """ + is_pypy = platform.python_implementation() == 'PyPy' + return val + is_pypy + + +if sys.version_info >= (3, 9): + StrPath = Union[str, os.PathLike[str]] +else: + # PathLike is only subscriptable at runtime in 3.9+ + StrPath = Union[str, "os.PathLike[str]"] # pragma: no cover diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_metadata/_functools.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_metadata/_functools.py new file mode 100644 index 0000000..71f66bd --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_metadata/_functools.py @@ -0,0 +1,104 @@ +import types +import functools + + +# from jaraco.functools 3.3 +def method_cache(method, cache_wrapper=None): + """ + Wrap lru_cache to support storing the cache data in the object instances. + + Abstracts the common paradigm where the method explicitly saves an + underscore-prefixed protected property on first call and returns that + subsequently. + + >>> class MyClass: + ... calls = 0 + ... + ... @method_cache + ... def method(self, value): + ... self.calls += 1 + ... return value + + >>> a = MyClass() + >>> a.method(3) + 3 + >>> for x in range(75): + ... res = a.method(x) + >>> a.calls + 75 + + Note that the apparent behavior will be exactly like that of lru_cache + except that the cache is stored on each instance, so values in one + instance will not flush values from another, and when an instance is + deleted, so are the cached values for that instance. + + >>> b = MyClass() + >>> for x in range(35): + ... res = b.method(x) + >>> b.calls + 35 + >>> a.method(0) + 0 + >>> a.calls + 75 + + Note that if method had been decorated with ``functools.lru_cache()``, + a.calls would have been 76 (due to the cached value of 0 having been + flushed by the 'b' instance). + + Clear the cache with ``.cache_clear()`` + + >>> a.method.cache_clear() + + Same for a method that hasn't yet been called. + + >>> c = MyClass() + >>> c.method.cache_clear() + + Another cache wrapper may be supplied: + + >>> cache = functools.lru_cache(maxsize=2) + >>> MyClass.method2 = method_cache(lambda self: 3, cache_wrapper=cache) + >>> a = MyClass() + >>> a.method2() + 3 + + Caution - do not subsequently wrap the method with another decorator, such + as ``@property``, which changes the semantics of the function. + + See also + http://code.activestate.com/recipes/577452-a-memoize-decorator-for-instance-methods/ + for another implementation and additional justification. + """ + cache_wrapper = cache_wrapper or functools.lru_cache() + + def wrapper(self, *args, **kwargs): + # it's the first call, replace the method with a cached, bound method + bound_method = types.MethodType(method, self) + cached_method = cache_wrapper(bound_method) + setattr(self, method.__name__, cached_method) + return cached_method(*args, **kwargs) + + # Support cache clear even before cache has been created. + wrapper.cache_clear = lambda: None + + return wrapper + + +# From jaraco.functools 3.3 +def pass_none(func): + """ + Wrap func so it's not called if its first param is None + + >>> print_text = pass_none(print) + >>> print_text('text') + text + >>> print_text(None) + """ + + @functools.wraps(func) + def wrapper(param, *args, **kwargs): + if param is not None: + return func(param, *args, **kwargs) + + return wrapper diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_metadata/_itertools.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_metadata/_itertools.py new file mode 100644 index 0000000..d4ca9b9 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_metadata/_itertools.py @@ -0,0 +1,73 @@ +from itertools import filterfalse + + +def unique_everseen(iterable, key=None): + "List unique elements, preserving order. Remember all elements ever seen." + # unique_everseen('AAAABBBCCDAABBB') --> A B C D + # unique_everseen('ABBCcAD', str.lower) --> A B C D + seen = set() + seen_add = seen.add + if key is None: + for element in filterfalse(seen.__contains__, iterable): + seen_add(element) + yield element + else: + for element in iterable: + k = key(element) + if k not in seen: + seen_add(k) + yield element + + +# copied from more_itertools 8.8 +def always_iterable(obj, base_type=(str, bytes)): + """If *obj* is iterable, return an iterator over its items:: + + >>> obj = (1, 2, 3) + >>> list(always_iterable(obj)) + [1, 2, 3] + + If *obj* is not iterable, return a one-item iterable containing *obj*:: + + >>> obj = 1 + >>> list(always_iterable(obj)) + [1] + + If *obj* is ``None``, return an empty iterable: + + >>> obj = None + >>> list(always_iterable(None)) + [] + + By default, binary and text strings are not considered iterable:: + + >>> obj = 'foo' + >>> list(always_iterable(obj)) + ['foo'] + + If *base_type* is set, objects for which ``isinstance(obj, base_type)`` + returns ``True`` won't be considered iterable. + + >>> obj = {'a': 1} + >>> list(always_iterable(obj)) # Iterate over the dict's keys + ['a'] + >>> list(always_iterable(obj, base_type=dict)) # Treat dicts as a unit + [{'a': 1}] + + Set *base_type* to ``None`` to avoid any special handling and treat objects + Python considers iterable as iterable: + + >>> obj = 'foo' + >>> list(always_iterable(obj, base_type=None)) + ['f', 'o', 'o'] + """ + if obj is None: + return iter(()) + + if (base_type is not None) and isinstance(obj, base_type): + return iter((obj,)) + + try: + return iter(obj) + except TypeError: + return iter((obj,)) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_metadata/_meta.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_metadata/_meta.py new file mode 100644 index 0000000..0c7e879 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_metadata/_meta.py @@ -0,0 +1,63 @@ +from ._compat import Protocol +from typing import Any, Dict, Iterator, List, Optional, TypeVar, Union, overload + + +_T = TypeVar("_T") + + +class PackageMetadata(Protocol): + def __len__(self) -> int: + ... # pragma: no cover + + def __contains__(self, item: str) -> bool: + ... # pragma: no cover + + def __getitem__(self, key: str) -> str: + ... # pragma: no cover + + def __iter__(self) -> Iterator[str]: + ... # pragma: no cover + + @overload + def get(self, name: str, failobj: None = None) -> Optional[str]: + ... # pragma: no cover + + @overload + def get(self, name: str, failobj: _T) -> Union[str, _T]: + ... # pragma: no cover + + # overload per python/importlib_metadata#435 + @overload + def get_all(self, name: str, failobj: None = None) -> Optional[List[Any]]: + ... # pragma: no cover + + @overload + def get_all(self, name: str, failobj: _T) -> Union[List[Any], _T]: + """ + Return all values associated with a possibly multi-valued key. + """ + + @property + def json(self) -> Dict[str, Union[str, List[str]]]: + """ + A JSON-compatible form of the metadata. + """ + + +class SimplePath(Protocol[_T]): + """ + A minimal subset of pathlib.Path required by PathDistribution. + """ + + def joinpath(self, other: Union[str, _T]) -> _T: + ... # pragma: no cover + + def __truediv__(self, other: Union[str, _T]) -> _T: + ... # pragma: no cover + + @property + def parent(self) -> _T: + ... # pragma: no cover + + def read_text(self) -> str: + ... # pragma: no cover diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_metadata/_py39compat.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_metadata/_py39compat.py new file mode 100644 index 0000000..cde4558 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_metadata/_py39compat.py @@ -0,0 +1,35 @@ +""" +Compatibility layer with Python 3.8/3.9 +""" +from typing import TYPE_CHECKING, Any, Optional + +if TYPE_CHECKING: # pragma: no cover + # Prevent circular imports on runtime. + from . import Distribution, EntryPoint +else: + Distribution = EntryPoint = Any + + +def normalized_name(dist: Distribution) -> Optional[str]: + """ + Honor name normalization for distributions that don't provide ``_normalized_name``. + """ + try: + return dist._normalized_name + except AttributeError: + from . import Prepared # -> delay to prevent circular imports. + + return Prepared.normalize(getattr(dist, "name", None) or dist.metadata['Name']) + + +def ep_matches(ep: EntryPoint, **params) -> bool: + """ + Workaround for ``EntryPoint`` objects without the ``matches`` method. + """ + try: + return ep.matches(**params) + except AttributeError: + from . import EntryPoint # -> delay to prevent circular imports. + + # Reconstruct the EntryPoint object to make sure it is compatible. + return EntryPoint(ep.name, ep.value, ep.group).matches(**params) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_metadata/_text.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_metadata/_text.py new file mode 100644 index 0000000..c88cfbb --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_metadata/_text.py @@ -0,0 +1,99 @@ +import re + +from ._functools import method_cache + + +# from jaraco.text 3.5 +class FoldedCase(str): + """ + A case insensitive string class; behaves just like str + except compares equal when the only variation is case. + + >>> s = FoldedCase('hello world') + + >>> s == 'Hello World' + True + + >>> 'Hello World' == s + True + + >>> s != 'Hello World' + False + + >>> s.index('O') + 4 + + >>> s.split('O') + ['hell', ' w', 'rld'] + + >>> sorted(map(FoldedCase, ['GAMMA', 'alpha', 'Beta'])) + ['alpha', 'Beta', 'GAMMA'] + + Sequence membership is straightforward. + + >>> "Hello World" in [s] + True + >>> s in ["Hello World"] + True + + You may test for set inclusion, but candidate and elements + must both be folded. + + >>> FoldedCase("Hello World") in {s} + True + >>> s in {FoldedCase("Hello World")} + True + + String inclusion works as long as the FoldedCase object + is on the right. + + >>> "hello" in FoldedCase("Hello World") + True + + But not if the FoldedCase object is on the left: + + >>> FoldedCase('hello') in 'Hello World' + False + + In that case, use in_: + + >>> FoldedCase('hello').in_('Hello World') + True + + >>> FoldedCase('hello') > FoldedCase('Hello') + False + """ + + def __lt__(self, other): + return self.lower() < other.lower() + + def __gt__(self, other): + return self.lower() > other.lower() + + def __eq__(self, other): + return self.lower() == other.lower() + + def __ne__(self, other): + return self.lower() != other.lower() + + def __hash__(self): + return hash(self.lower()) + + def __contains__(self, other): + return super().lower().__contains__(other.lower()) + + def in_(self, other): + "Does self appear in other?" + return self in FoldedCase(other) + + # cache lower since it's likely to be called frequently. + @method_cache + def lower(self): + return super().lower() + + def index(self, sub): + return self.lower().index(sub.lower()) + + def split(self, splitter=' ', maxsplit=0): + pattern = re.compile(re.escape(splitter), re.I) + return pattern.split(self, maxsplit) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_metadata/py.typed b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_metadata/py.typed new file mode 100644 index 0000000..e69de29 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources-5.12.0.dist-info/INSTALLER b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources-5.12.0.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources-5.12.0.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources-5.12.0.dist-info/LICENSE b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources-5.12.0.dist-info/LICENSE new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources-5.12.0.dist-info/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources-5.12.0.dist-info/METADATA b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources-5.12.0.dist-info/METADATA new file mode 100644 index 0000000..038059d --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources-5.12.0.dist-info/METADATA @@ -0,0 +1,104 @@ +Metadata-Version: 2.1 +Name: importlib-resources +Version: 5.12.0 +Summary: Read resources from Python packages +Home-page: https://github.com/python/importlib_resources +Author: Barry Warsaw +Author-email: barry@python.org +Project-URL: Documentation, https://importlib-resources.readthedocs.io/ +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: Apache Software License +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3 :: Only +Requires-Python: >=3.7 +License-File: LICENSE +Requires-Dist: zipp (>=3.1.0) ; python_version < "3.10" +Provides-Extra: docs +Requires-Dist: sphinx (>=3.5) ; extra == 'docs' +Requires-Dist: jaraco.packaging (>=9) ; extra == 'docs' +Requires-Dist: rst.linker (>=1.9) ; extra == 'docs' +Requires-Dist: furo ; extra == 'docs' +Requires-Dist: sphinx-lint ; extra == 'docs' +Requires-Dist: jaraco.tidelift (>=1.4) ; extra == 'docs' +Provides-Extra: testing +Requires-Dist: pytest (>=6) ; extra == 'testing' +Requires-Dist: pytest-checkdocs (>=2.4) ; extra == 'testing' +Requires-Dist: flake8 (<5) ; extra == 'testing' +Requires-Dist: pytest-cov ; extra == 'testing' +Requires-Dist: pytest-enabler (>=1.3) ; extra == 'testing' +Requires-Dist: pytest-black (>=0.3.7) ; (platform_python_implementation != "PyPy") and extra == 'testing' +Requires-Dist: pytest-mypy (>=0.9.1) ; (platform_python_implementation != "PyPy") and extra == 'testing' +Requires-Dist: pytest-flake8 ; (python_version < "3.12") and extra == 'testing' + +.. image:: https://img.shields.io/pypi/v/importlib_resources.svg + :target: https://pypi.org/project/importlib_resources + +.. image:: https://img.shields.io/pypi/pyversions/importlib_resources.svg + +.. image:: https://github.com/python/importlib_resources/workflows/tests/badge.svg + :target: https://github.com/python/importlib_resources/actions?query=workflow%3A%22tests%22 + :alt: tests + +.. image:: https://img.shields.io/badge/code%20style-black-000000.svg + :target: https://github.com/psf/black + :alt: Code style: Black + +.. image:: https://readthedocs.org/projects/importlib-resources/badge/?version=latest + :target: https://importlib-resources.readthedocs.io/en/latest/?badge=latest + +.. image:: https://img.shields.io/badge/skeleton-2023-informational + :target: https://blog.jaraco.com/skeleton + +.. image:: https://tidelift.com/badges/package/pypi/importlib-resources + :target: https://tidelift.com/subscription/pkg/pypi-importlib-resources?utm_source=pypi-importlib-resources&utm_medium=readme + +``importlib_resources`` is a backport of Python standard library +`importlib.resources +`_ +module for older Pythons. + +The key goal of this module is to replace parts of `pkg_resources +`_ with a +solution in Python's stdlib that relies on well-defined APIs. This makes +reading resources included in packages easier, with more stable and consistent +semantics. + +Compatibility +============= + +New features are introduced in this third-party library and later merged +into CPython. The following table indicates which versions of this library +were contributed to different versions in the standard library: + +.. list-table:: + :header-rows: 1 + + * - importlib_resources + - stdlib + * - 5.9 + - 3.12 + * - 5.7 + - 3.11 + * - 5.0 + - 3.10 + * - 1.3 + - 3.9 + * - 0.5 (?) + - 3.7 + +For Enterprise +============== + +Available as part of the Tidelift Subscription. + +This project and the maintainers of thousands of other packages are working with Tidelift to deliver one enterprise subscription that covers all of the open source you use. + +`Learn more `_. + +Security Contact +================ + +To report a security vulnerability, please use the +`Tidelift security contact `_. +Tidelift will coordinate the fix and disclosure. diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources-5.12.0.dist-info/RECORD b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources-5.12.0.dist-info/RECORD new file mode 100644 index 0000000..065a3e4 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources-5.12.0.dist-info/RECORD @@ -0,0 +1,49 @@ +importlib_resources-5.12.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +importlib_resources-5.12.0.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358 +importlib_resources-5.12.0.dist-info/METADATA,sha256=uEY10nhKI-5nXImnXgsNt7BDYf7u2Qw8-BO2K2hmlJA,4111 +importlib_resources-5.12.0.dist-info/RECORD,, +importlib_resources-5.12.0.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92 +importlib_resources-5.12.0.dist-info/top_level.txt,sha256=fHIjHU1GZwAjvcydpmUnUrTnbvdiWjG4OEVZK8by0TQ,20 +importlib_resources/__init__.py,sha256=evPm12kLgYqTm-pbzm60bOuumumT8IpBNWFp0uMyrzE,506 +importlib_resources/_adapters.py,sha256=vprJGbUeHbajX6XCuMP6J3lMrqCi-P_MTlziJUR7jfk,4482 +importlib_resources/_common.py,sha256=jSC4xfLdcMNbtbWHtpzbFkNa0W7kvf__nsYn14C_AEU,5457 +importlib_resources/_compat.py,sha256=4oDJPpo63eH_3l5BkBHmkjAQW4HGs5qvYd2-ziLA_ck,2935 +importlib_resources/_itertools.py,sha256=eDisV6RqiNZOogLSXf6LOGHOYc79FGgPrKNLzFLmCrU,1277 +importlib_resources/_legacy.py,sha256=0TKdZixxLWA-xwtAZw4HcpqJmj4Xprx1Zkcty0gTRZY,3481 +importlib_resources/abc.py,sha256=Icr2IJ2QtH7vvAB9vC5WRJ9KBoaDyJa7KUs8McuROzo,5140 +importlib_resources/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +importlib_resources/readers.py,sha256=i80n49L2rBAtlB9bU0zAeQHiEXxcdP99-pWR6ED-ypY,4312 +importlib_resources/simple.py,sha256=0__2TQBTQoqkajYmNPt1HxERcReAT6boVKJA328pr04,2576 +importlib_resources/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +importlib_resources/tests/_compat.py,sha256=YTSB0U1R9oADnh6GrQcOCgojxcF_N6H1LklymEWf9SQ,708 +importlib_resources/tests/_path.py,sha256=nkv3ek7D1U898v921rYbldDCtKri2oyYOi3EJqGjEGU,1289 +importlib_resources/tests/data01/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +importlib_resources/tests/data01/binary.file,sha256=BU7ewdAhH2JP7Qy8qdT5QAsOSRxDdCryxbCr6_DJkNg,4 +importlib_resources/tests/data01/subdirectory/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +importlib_resources/tests/data01/subdirectory/binary.file,sha256=BU7ewdAhH2JP7Qy8qdT5QAsOSRxDdCryxbCr6_DJkNg,4 +importlib_resources/tests/data01/utf-16.file,sha256=t5q9qhxX0rYqItBOM8D3ylwG-RHrnOYteTLtQr6sF7g,44 +importlib_resources/tests/data01/utf-8.file,sha256=kwWgYG4yQ-ZF2X_WA66EjYPmxJRn-w8aSOiS9e8tKYY,20 +importlib_resources/tests/data02/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +importlib_resources/tests/data02/one/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +importlib_resources/tests/data02/one/resource1.txt,sha256=10flKac7c-XXFzJ3t-AB5MJjlBy__dSZvPE_dOm2q6U,13 +importlib_resources/tests/data02/subdirectory/subsubdir/resource.txt,sha256=jnrBBztxYrtQck7cmVnc4xQVO4-agzAZDGSFkAWtlFw,10 +importlib_resources/tests/data02/two/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +importlib_resources/tests/data02/two/resource2.txt,sha256=lt2jbN3TMn9QiFKM832X39bU_62UptDdUkoYzkvEbl0,13 +importlib_resources/tests/namespacedata01/binary.file,sha256=BU7ewdAhH2JP7Qy8qdT5QAsOSRxDdCryxbCr6_DJkNg,4 +importlib_resources/tests/namespacedata01/utf-16.file,sha256=t5q9qhxX0rYqItBOM8D3ylwG-RHrnOYteTLtQr6sF7g,44 +importlib_resources/tests/namespacedata01/utf-8.file,sha256=kwWgYG4yQ-ZF2X_WA66EjYPmxJRn-w8aSOiS9e8tKYY,20 +importlib_resources/tests/test_compatibilty_files.py,sha256=95N_R7aik8cvnE6sBJpsxmP0K5plOWRIJDgbalD-Hpw,3314 +importlib_resources/tests/test_contents.py,sha256=V1Xfk3lqTDdvUsZuV18Kndf0CT_tkM2oEIwk9Vv0rhg,968 +importlib_resources/tests/test_custom.py,sha256=jVYg9idEVdUN6idHUfDDlZ-zDWl56qYNbj5QrcZO76Y,1124 +importlib_resources/tests/test_files.py,sha256=W5XoBWSTr84Ke15UtjqWLet2iUDUyJfQxbST4PDlj2w,3283 +importlib_resources/tests/test_open.py,sha256=9qvdC6Eu2Kn3mh3xDR5HUEQoePSKIecTxU4vnH9veO8,2671 +importlib_resources/tests/test_path.py,sha256=XR5RI7_zndI_Nqw9eHU1tDmSGIo29N1GP8INodPc584,2142 +importlib_resources/tests/test_read.py,sha256=BYdRqZEEJE17NHPArpZW9VsIwMlna1BpHyWkgCvEKWk,2512 +importlib_resources/tests/test_reader.py,sha256=YS1RHDzSIo7Dy3AhoK7sY-cFWIFnfkMNfQR3xlXsgio,4990 +importlib_resources/tests/test_resource.py,sha256=cPHz7VLwq6bFznZ-JDYE3f_4VJthQztRHKhiA9SriT0,8270 +importlib_resources/tests/update-zips.py,sha256=x-SrO5v87iLLUMXyefxDwAd3imAs_slI94sLWvJ6N40,1417 +importlib_resources/tests/util.py,sha256=TQz12vSkHNjGlF3hB0OR4kx2sCR-xcj0wI2esDyHR9I,5001 +importlib_resources/tests/zipdata01/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +importlib_resources/tests/zipdata01/ziptestdata.zip,sha256=z5Of4dsv3T0t-46B0MsVhxlhsPGMz28aUhJDWpj3_oY,876 +importlib_resources/tests/zipdata02/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +importlib_resources/tests/zipdata02/ziptestdata.zip,sha256=ydI-_j-xgQ7tDxqBp9cjOqXBGxUp6ZBbwVJu6Xj-nrY,698 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources-5.12.0.dist-info/WHEEL b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources-5.12.0.dist-info/WHEEL new file mode 100644 index 0000000..57e3d84 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources-5.12.0.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.38.4) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources-5.12.0.dist-info/top_level.txt b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources-5.12.0.dist-info/top_level.txt new file mode 100644 index 0000000..58ad1bd --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources-5.12.0.dist-info/top_level.txt @@ -0,0 +1 @@ +importlib_resources diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/__init__.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/__init__.py new file mode 100644 index 0000000..34e3a99 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/__init__.py @@ -0,0 +1,36 @@ +"""Read resources contained within a package.""" + +from ._common import ( + as_file, + files, + Package, +) + +from ._legacy import ( + contents, + open_binary, + read_binary, + open_text, + read_text, + is_resource, + path, + Resource, +) + +from .abc import ResourceReader + + +__all__ = [ + 'Package', + 'Resource', + 'ResourceReader', + 'as_file', + 'contents', + 'files', + 'is_resource', + 'open_binary', + 'open_text', + 'path', + 'read_binary', + 'read_text', +] diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/_adapters.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/_adapters.py new file mode 100644 index 0000000..50688fb --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/_adapters.py @@ -0,0 +1,168 @@ +from contextlib import suppress +from io import TextIOWrapper + +from . import abc + + +class SpecLoaderAdapter: + """ + Adapt a package spec to adapt the underlying loader. + """ + + def __init__(self, spec, adapter=lambda spec: spec.loader): + self.spec = spec + self.loader = adapter(spec) + + def __getattr__(self, name): + return getattr(self.spec, name) + + +class TraversableResourcesLoader: + """ + Adapt a loader to provide TraversableResources. + """ + + def __init__(self, spec): + self.spec = spec + + def get_resource_reader(self, name): + return CompatibilityFiles(self.spec)._native() + + +def _io_wrapper(file, mode='r', *args, **kwargs): + if mode == 'r': + return TextIOWrapper(file, *args, **kwargs) + elif mode == 'rb': + return file + raise ValueError(f"Invalid mode value '{mode}', only 'r' and 'rb' are supported") + + +class CompatibilityFiles: + """ + Adapter for an existing or non-existent resource reader + to provide a compatibility .files(). + """ + + class SpecPath(abc.Traversable): + """ + Path tied to a module spec. + Can be read and exposes the resource reader children. + """ + + def __init__(self, spec, reader): + self._spec = spec + self._reader = reader + + def iterdir(self): + if not self._reader: + return iter(()) + return iter( + CompatibilityFiles.ChildPath(self._reader, path) + for path in self._reader.contents() + ) + + def is_file(self): + return False + + is_dir = is_file + + def joinpath(self, other): + if not self._reader: + return CompatibilityFiles.OrphanPath(other) + return CompatibilityFiles.ChildPath(self._reader, other) + + @property + def name(self): + return self._spec.name + + def open(self, mode='r', *args, **kwargs): + return _io_wrapper(self._reader.open_resource(None), mode, *args, **kwargs) + + class ChildPath(abc.Traversable): + """ + Path tied to a resource reader child. + Can be read but doesn't expose any meaningful children. + """ + + def __init__(self, reader, name): + self._reader = reader + self._name = name + + def iterdir(self): + return iter(()) + + def is_file(self): + return self._reader.is_resource(self.name) + + def is_dir(self): + return not self.is_file() + + def joinpath(self, other): + return CompatibilityFiles.OrphanPath(self.name, other) + + @property + def name(self): + return self._name + + def open(self, mode='r', *args, **kwargs): + return _io_wrapper( + self._reader.open_resource(self.name), mode, *args, **kwargs + ) + + class OrphanPath(abc.Traversable): + """ + Orphan path, not tied to a module spec or resource reader. + Can't be read and doesn't expose any meaningful children. + """ + + def __init__(self, *path_parts): + if len(path_parts) < 1: + raise ValueError('Need at least one path part to construct a path') + self._path = path_parts + + def iterdir(self): + return iter(()) + + def is_file(self): + return False + + is_dir = is_file + + def joinpath(self, other): + return CompatibilityFiles.OrphanPath(*self._path, other) + + @property + def name(self): + return self._path[-1] + + def open(self, mode='r', *args, **kwargs): + raise FileNotFoundError("Can't open orphan path") + + def __init__(self, spec): + self.spec = spec + + @property + def _reader(self): + with suppress(AttributeError): + return self.spec.loader.get_resource_reader(self.spec.name) + + def _native(self): + """ + Return the native reader if it supports files(). + """ + reader = self._reader + return reader if hasattr(reader, 'files') else self + + def __getattr__(self, attr): + return getattr(self._reader, attr) + + def files(self): + return CompatibilityFiles.SpecPath(self.spec, self._reader) + + +def wrap_spec(package): + """ + Construct a package spec with traversable compatibility + on the spec/loader/reader. + """ + return SpecLoaderAdapter(package.__spec__, TraversableResourcesLoader) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/_common.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/_common.py new file mode 100644 index 0000000..3c6de1c --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/_common.py @@ -0,0 +1,207 @@ +import os +import pathlib +import tempfile +import functools +import contextlib +import types +import importlib +import inspect +import warnings +import itertools + +from typing import Union, Optional, cast +from .abc import ResourceReader, Traversable + +from ._compat import wrap_spec + +Package = Union[types.ModuleType, str] +Anchor = Package + + +def package_to_anchor(func): + """ + Replace 'package' parameter as 'anchor' and warn about the change. + + Other errors should fall through. + + >>> files('a', 'b') + Traceback (most recent call last): + TypeError: files() takes from 0 to 1 positional arguments but 2 were given + """ + undefined = object() + + @functools.wraps(func) + def wrapper(anchor=undefined, package=undefined): + if package is not undefined: + if anchor is not undefined: + return func(anchor, package) + warnings.warn( + "First parameter to files is renamed to 'anchor'", + DeprecationWarning, + stacklevel=2, + ) + return func(package) + elif anchor is undefined: + return func() + return func(anchor) + + return wrapper + + +@package_to_anchor +def files(anchor: Optional[Anchor] = None) -> Traversable: + """ + Get a Traversable resource for an anchor. + """ + return from_package(resolve(anchor)) + + +def get_resource_reader(package: types.ModuleType) -> Optional[ResourceReader]: + """ + Return the package's loader if it's a ResourceReader. + """ + # We can't use + # a issubclass() check here because apparently abc.'s __subclasscheck__() + # hook wants to create a weak reference to the object, but + # zipimport.zipimporter does not support weak references, resulting in a + # TypeError. That seems terrible. + spec = package.__spec__ + reader = getattr(spec.loader, 'get_resource_reader', None) # type: ignore + if reader is None: + return None + return reader(spec.name) # type: ignore + + +@functools.singledispatch +def resolve(cand: Optional[Anchor]) -> types.ModuleType: + return cast(types.ModuleType, cand) + + +@resolve.register +def _(cand: str) -> types.ModuleType: + return importlib.import_module(cand) + + +@resolve.register +def _(cand: None) -> types.ModuleType: + return resolve(_infer_caller().f_globals['__name__']) + + +def _infer_caller(): + """ + Walk the stack and find the frame of the first caller not in this module. + """ + + def is_this_file(frame_info): + return frame_info.filename == __file__ + + def is_wrapper(frame_info): + return frame_info.function == 'wrapper' + + not_this_file = itertools.filterfalse(is_this_file, inspect.stack()) + # also exclude 'wrapper' due to singledispatch in the call stack + callers = itertools.filterfalse(is_wrapper, not_this_file) + return next(callers).frame + + +def from_package(package: types.ModuleType): + """ + Return a Traversable object for the given package. + + """ + spec = wrap_spec(package) + reader = spec.loader.get_resource_reader(spec.name) + return reader.files() + + +@contextlib.contextmanager +def _tempfile( + reader, + suffix='', + # gh-93353: Keep a reference to call os.remove() in late Python + # finalization. + *, + _os_remove=os.remove, +): + # Not using tempfile.NamedTemporaryFile as it leads to deeper 'try' + # blocks due to the need to close the temporary file to work on Windows + # properly. + fd, raw_path = tempfile.mkstemp(suffix=suffix) + try: + try: + os.write(fd, reader()) + finally: + os.close(fd) + del reader + yield pathlib.Path(raw_path) + finally: + try: + _os_remove(raw_path) + except FileNotFoundError: + pass + + +def _temp_file(path): + return _tempfile(path.read_bytes, suffix=path.name) + + +def _is_present_dir(path: Traversable) -> bool: + """ + Some Traversables implement ``is_dir()`` to raise an + exception (i.e. ``FileNotFoundError``) when the + directory doesn't exist. This function wraps that call + to always return a boolean and only return True + if there's a dir and it exists. + """ + with contextlib.suppress(FileNotFoundError): + return path.is_dir() + return False + + +@functools.singledispatch +def as_file(path): + """ + Given a Traversable object, return that object as a + path on the local file system in a context manager. + """ + return _temp_dir(path) if _is_present_dir(path) else _temp_file(path) + + +@as_file.register(pathlib.Path) +@contextlib.contextmanager +def _(path): + """ + Degenerate behavior for pathlib.Path objects. + """ + yield path + + +@contextlib.contextmanager +def _temp_path(dir: tempfile.TemporaryDirectory): + """ + Wrap tempfile.TemporyDirectory to return a pathlib object. + """ + with dir as result: + yield pathlib.Path(result) + + +@contextlib.contextmanager +def _temp_dir(path): + """ + Given a traversable dir, recursively replicate the whole tree + to the file system in a context manager. + """ + assert path.is_dir() + with _temp_path(tempfile.TemporaryDirectory()) as temp_dir: + yield _write_contents(temp_dir, path) + + +def _write_contents(target, source): + child = target.joinpath(source.name) + if source.is_dir(): + child.mkdir() + for item in source.iterdir(): + _write_contents(child, item) + else: + child.write_bytes(source.read_bytes()) + return child diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/_compat.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/_compat.py new file mode 100644 index 0000000..a93a882 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/_compat.py @@ -0,0 +1,109 @@ +# flake8: noqa + +import abc +import os +import sys +import pathlib +from contextlib import suppress +from typing import Union + + +if sys.version_info >= (3, 10): + from zipfile import Path as ZipPath # type: ignore +else: + from zipp import Path as ZipPath # type: ignore + + +try: + from typing import runtime_checkable # type: ignore +except ImportError: + + def runtime_checkable(cls): # type: ignore + return cls + + +try: + from typing import Protocol # type: ignore +except ImportError: + Protocol = abc.ABC # type: ignore + + +class TraversableResourcesLoader: + """ + Adapt loaders to provide TraversableResources and other + compatibility. + + Used primarily for Python 3.9 and earlier where the native + loaders do not yet implement TraversableResources. + """ + + def __init__(self, spec): + self.spec = spec + + @property + def path(self): + return self.spec.origin + + def get_resource_reader(self, name): + from . import readers, _adapters + + def _zip_reader(spec): + with suppress(AttributeError): + return readers.ZipReader(spec.loader, spec.name) + + def _namespace_reader(spec): + with suppress(AttributeError, ValueError): + return readers.NamespaceReader(spec.submodule_search_locations) + + def _available_reader(spec): + with suppress(AttributeError): + return spec.loader.get_resource_reader(spec.name) + + def _native_reader(spec): + reader = _available_reader(spec) + return reader if hasattr(reader, 'files') else None + + def _file_reader(spec): + try: + path = pathlib.Path(self.path) + except TypeError: + return None + if path.exists(): + return readers.FileReader(self) + + return ( + # local ZipReader if a zip module + _zip_reader(self.spec) + or + # local NamespaceReader if a namespace module + _namespace_reader(self.spec) + or + # local FileReader + _file_reader(self.spec) + or + # native reader if it supplies 'files' + _native_reader(self.spec) + or + # fallback - adapt the spec ResourceReader to TraversableReader + _adapters.CompatibilityFiles(self.spec) + ) + + +def wrap_spec(package): + """ + Construct a package spec with traversable compatibility + on the spec/loader/reader. + + Supersedes _adapters.wrap_spec to use TraversableResourcesLoader + from above for older Python compatibility (<3.10). + """ + from . import _adapters + + return _adapters.SpecLoaderAdapter(package.__spec__, TraversableResourcesLoader) + + +if sys.version_info >= (3, 9): + StrPath = Union[str, os.PathLike[str]] +else: + # PathLike is only subscriptable at runtime in 3.9+ + StrPath = Union[str, "os.PathLike[str]"] diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/_itertools.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/_itertools.py new file mode 100644 index 0000000..7b775ef --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/_itertools.py @@ -0,0 +1,38 @@ +# from more_itertools 9.0 +def only(iterable, default=None, too_long=None): + """If *iterable* has only one item, return it. + If it has zero items, return *default*. + If it has more than one item, raise the exception given by *too_long*, + which is ``ValueError`` by default. + >>> only([], default='missing') + 'missing' + >>> only([1]) + 1 + >>> only([1, 2]) # doctest: +IGNORE_EXCEPTION_DETAIL + Traceback (most recent call last): + ... + ValueError: Expected exactly one item in iterable, but got 1, 2, + and perhaps more.' + >>> only([1, 2], too_long=TypeError) # doctest: +IGNORE_EXCEPTION_DETAIL + Traceback (most recent call last): + ... + TypeError + Note that :func:`only` attempts to advance *iterable* twice to ensure there + is only one item. See :func:`spy` or :func:`peekable` to check + iterable contents less destructively. + """ + it = iter(iterable) + first_value = next(it, default) + + try: + second_value = next(it) + except StopIteration: + pass + else: + msg = ( + 'Expected exactly one item in iterable, but got {!r}, {!r}, ' + 'and perhaps more.'.format(first_value, second_value) + ) + raise too_long or ValueError(msg) + + return first_value diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/_legacy.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/_legacy.py new file mode 100644 index 0000000..b1ea810 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/_legacy.py @@ -0,0 +1,120 @@ +import functools +import os +import pathlib +import types +import warnings + +from typing import Union, Iterable, ContextManager, BinaryIO, TextIO, Any + +from . import _common + +Package = Union[types.ModuleType, str] +Resource = str + + +def deprecated(func): + @functools.wraps(func) + def wrapper(*args, **kwargs): + warnings.warn( + f"{func.__name__} is deprecated. Use files() instead. " + "Refer to https://importlib-resources.readthedocs.io" + "/en/latest/using.html#migrating-from-legacy for migration advice.", + DeprecationWarning, + stacklevel=2, + ) + return func(*args, **kwargs) + + return wrapper + + +def normalize_path(path: Any) -> str: + """Normalize a path by ensuring it is a string. + + If the resulting string contains path separators, an exception is raised. + """ + str_path = str(path) + parent, file_name = os.path.split(str_path) + if parent: + raise ValueError(f'{path!r} must be only a file name') + return file_name + + +@deprecated +def open_binary(package: Package, resource: Resource) -> BinaryIO: + """Return a file-like object opened for binary reading of the resource.""" + return (_common.files(package) / normalize_path(resource)).open('rb') + + +@deprecated +def read_binary(package: Package, resource: Resource) -> bytes: + """Return the binary contents of the resource.""" + return (_common.files(package) / normalize_path(resource)).read_bytes() + + +@deprecated +def open_text( + package: Package, + resource: Resource, + encoding: str = 'utf-8', + errors: str = 'strict', +) -> TextIO: + """Return a file-like object opened for text reading of the resource.""" + return (_common.files(package) / normalize_path(resource)).open( + 'r', encoding=encoding, errors=errors + ) + + +@deprecated +def read_text( + package: Package, + resource: Resource, + encoding: str = 'utf-8', + errors: str = 'strict', +) -> str: + """Return the decoded string of the resource. + + The decoding-related arguments have the same semantics as those of + bytes.decode(). + """ + with open_text(package, resource, encoding, errors) as fp: + return fp.read() + + +@deprecated +def contents(package: Package) -> Iterable[str]: + """Return an iterable of entries in `package`. + + Note that not all entries are resources. Specifically, directories are + not considered resources. Use `is_resource()` on each entry returned here + to check if it is a resource or not. + """ + return [path.name for path in _common.files(package).iterdir()] + + +@deprecated +def is_resource(package: Package, name: str) -> bool: + """True if `name` is a resource inside `package`. + + Directories are *not* resources. + """ + resource = normalize_path(name) + return any( + traversable.name == resource and traversable.is_file() + for traversable in _common.files(package).iterdir() + ) + + +@deprecated +def path( + package: Package, + resource: Resource, +) -> ContextManager[pathlib.Path]: + """A context manager providing a file path object to the resource. + + If the resource does not already exist on its own on the file system, + a temporary file will be created. If the file was created, the file + will be deleted upon exiting the context manager (no exception is + raised if the file was deleted prior to the context manager + exiting). + """ + return _common.as_file(_common.files(package) / normalize_path(resource)) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/abc.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/abc.py new file mode 100644 index 0000000..23b6aea --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/abc.py @@ -0,0 +1,170 @@ +import abc +import io +import itertools +import pathlib +from typing import Any, BinaryIO, Iterable, Iterator, NoReturn, Text, Optional + +from ._compat import runtime_checkable, Protocol, StrPath + + +__all__ = ["ResourceReader", "Traversable", "TraversableResources"] + + +class ResourceReader(metaclass=abc.ABCMeta): + """Abstract base class for loaders to provide resource reading support.""" + + @abc.abstractmethod + def open_resource(self, resource: Text) -> BinaryIO: + """Return an opened, file-like object for binary reading. + + The 'resource' argument is expected to represent only a file name. + If the resource cannot be found, FileNotFoundError is raised. + """ + # This deliberately raises FileNotFoundError instead of + # NotImplementedError so that if this method is accidentally called, + # it'll still do the right thing. + raise FileNotFoundError + + @abc.abstractmethod + def resource_path(self, resource: Text) -> Text: + """Return the file system path to the specified resource. + + The 'resource' argument is expected to represent only a file name. + If the resource does not exist on the file system, raise + FileNotFoundError. + """ + # This deliberately raises FileNotFoundError instead of + # NotImplementedError so that if this method is accidentally called, + # it'll still do the right thing. + raise FileNotFoundError + + @abc.abstractmethod + def is_resource(self, path: Text) -> bool: + """Return True if the named 'path' is a resource. + + Files are resources, directories are not. + """ + raise FileNotFoundError + + @abc.abstractmethod + def contents(self) -> Iterable[str]: + """Return an iterable of entries in `package`.""" + raise FileNotFoundError + + +class TraversalError(Exception): + pass + + +@runtime_checkable +class Traversable(Protocol): + """ + An object with a subset of pathlib.Path methods suitable for + traversing directories and opening files. + + Any exceptions that occur when accessing the backing resource + may propagate unaltered. + """ + + @abc.abstractmethod + def iterdir(self) -> Iterator["Traversable"]: + """ + Yield Traversable objects in self + """ + + def read_bytes(self) -> bytes: + """ + Read contents of self as bytes + """ + with self.open('rb') as strm: + return strm.read() + + def read_text(self, encoding: Optional[str] = None) -> str: + """ + Read contents of self as text + """ + with self.open(encoding=encoding) as strm: + return strm.read() + + @abc.abstractmethod + def is_dir(self) -> bool: + """ + Return True if self is a directory + """ + + @abc.abstractmethod + def is_file(self) -> bool: + """ + Return True if self is a file + """ + + def joinpath(self, *descendants: StrPath) -> "Traversable": + """ + Return Traversable resolved with any descendants applied. + + Each descendant should be a path segment relative to self + and each may contain multiple levels separated by + ``posixpath.sep`` (``/``). + """ + if not descendants: + return self + names = itertools.chain.from_iterable( + path.parts for path in map(pathlib.PurePosixPath, descendants) + ) + target = next(names) + matches = ( + traversable for traversable in self.iterdir() if traversable.name == target + ) + try: + match = next(matches) + except StopIteration: + raise TraversalError( + "Target not found during traversal.", target, list(names) + ) + return match.joinpath(*names) + + def __truediv__(self, child: StrPath) -> "Traversable": + """ + Return Traversable child in self + """ + return self.joinpath(child) + + @abc.abstractmethod + def open(self, mode='r', *args, **kwargs): + """ + mode may be 'r' or 'rb' to open as text or binary. Return a handle + suitable for reading (same as pathlib.Path.open). + + When opening as text, accepts encoding parameters such as those + accepted by io.TextIOWrapper. + """ + + @property + @abc.abstractmethod + def name(self) -> str: + """ + The base name of this object without any parent references. + """ + + +class TraversableResources(ResourceReader): + """ + The required interface for providing traversable + resources. + """ + + @abc.abstractmethod + def files(self) -> "Traversable": + """Return a Traversable object for the loaded package.""" + + def open_resource(self, resource: StrPath) -> io.BufferedReader: + return self.files().joinpath(resource).open('rb') + + def resource_path(self, resource: Any) -> NoReturn: + raise FileNotFoundError(resource) + + def is_resource(self, path: StrPath) -> bool: + return self.files().joinpath(path).is_file() + + def contents(self) -> Iterator[str]: + return (item.name for item in self.files().iterdir()) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/py.typed b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/py.typed new file mode 100644 index 0000000..e69de29 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/readers.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/readers.py new file mode 100644 index 0000000..51d030a --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/readers.py @@ -0,0 +1,144 @@ +import collections +import itertools +import pathlib +import operator + +from . import abc + +from ._itertools import only +from ._compat import ZipPath + + +def remove_duplicates(items): + return iter(collections.OrderedDict.fromkeys(items)) + + +class FileReader(abc.TraversableResources): + def __init__(self, loader): + self.path = pathlib.Path(loader.path).parent + + def resource_path(self, resource): + """ + Return the file system path to prevent + `resources.path()` from creating a temporary + copy. + """ + return str(self.path.joinpath(resource)) + + def files(self): + return self.path + + +class ZipReader(abc.TraversableResources): + def __init__(self, loader, module): + _, _, name = module.rpartition('.') + self.prefix = loader.prefix.replace('\\', '/') + name + '/' + self.archive = loader.archive + + def open_resource(self, resource): + try: + return super().open_resource(resource) + except KeyError as exc: + raise FileNotFoundError(exc.args[0]) + + def is_resource(self, path): + """ + Workaround for `zipfile.Path.is_file` returning true + for non-existent paths. + """ + target = self.files().joinpath(path) + return target.is_file() and target.exists() + + def files(self): + return ZipPath(self.archive, self.prefix) + + +class MultiplexedPath(abc.Traversable): + """ + Given a series of Traversable objects, implement a merged + version of the interface across all objects. Useful for + namespace packages which may be multihomed at a single + name. + """ + + def __init__(self, *paths): + self._paths = list(map(pathlib.Path, remove_duplicates(paths))) + if not self._paths: + message = 'MultiplexedPath must contain at least one path' + raise FileNotFoundError(message) + if not all(path.is_dir() for path in self._paths): + raise NotADirectoryError('MultiplexedPath only supports directories') + + def iterdir(self): + children = (child for path in self._paths for child in path.iterdir()) + by_name = operator.attrgetter('name') + groups = itertools.groupby(sorted(children, key=by_name), key=by_name) + return map(self._follow, (locs for name, locs in groups)) + + def read_bytes(self): + raise FileNotFoundError(f'{self} is not a file') + + def read_text(self, *args, **kwargs): + raise FileNotFoundError(f'{self} is not a file') + + def is_dir(self): + return True + + def is_file(self): + return False + + def joinpath(self, *descendants): + try: + return super().joinpath(*descendants) + except abc.TraversalError: + # One of the paths did not resolve (a directory does not exist). + # Just return something that will not exist. + return self._paths[0].joinpath(*descendants) + + @classmethod + def _follow(cls, children): + """ + Construct a MultiplexedPath if needed. + + If children contains a sole element, return it. + Otherwise, return a MultiplexedPath of the items. + Unless one of the items is not a Directory, then return the first. + """ + subdirs, one_dir, one_file = itertools.tee(children, 3) + + try: + return only(one_dir) + except ValueError: + try: + return cls(*subdirs) + except NotADirectoryError: + return next(one_file) + + def open(self, *args, **kwargs): + raise FileNotFoundError(f'{self} is not a file') + + @property + def name(self): + return self._paths[0].name + + def __repr__(self): + paths = ', '.join(f"'{path}'" for path in self._paths) + return f'MultiplexedPath({paths})' + + +class NamespaceReader(abc.TraversableResources): + def __init__(self, namespace_path): + if 'NamespacePath' not in str(namespace_path): + raise ValueError('Invalid path') + self.path = MultiplexedPath(*list(namespace_path)) + + def resource_path(self, resource): + """ + Return the file system path to prevent + `resources.path()` from creating a temporary + copy. + """ + return str(self.path.joinpath(resource)) + + def files(self): + return self.path diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/simple.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/simple.py new file mode 100644 index 0000000..7770c92 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/simple.py @@ -0,0 +1,106 @@ +""" +Interface adapters for low-level readers. +""" + +import abc +import io +import itertools +from typing import BinaryIO, List + +from .abc import Traversable, TraversableResources + + +class SimpleReader(abc.ABC): + """ + The minimum, low-level interface required from a resource + provider. + """ + + @property + @abc.abstractmethod + def package(self) -> str: + """ + The name of the package for which this reader loads resources. + """ + + @abc.abstractmethod + def children(self) -> List['SimpleReader']: + """ + Obtain an iterable of SimpleReader for available + child containers (e.g. directories). + """ + + @abc.abstractmethod + def resources(self) -> List[str]: + """ + Obtain available named resources for this virtual package. + """ + + @abc.abstractmethod + def open_binary(self, resource: str) -> BinaryIO: + """ + Obtain a File-like for a named resource. + """ + + @property + def name(self): + return self.package.split('.')[-1] + + +class ResourceContainer(Traversable): + """ + Traversable container for a package's resources via its reader. + """ + + def __init__(self, reader: SimpleReader): + self.reader = reader + + def is_dir(self): + return True + + def is_file(self): + return False + + def iterdir(self): + files = (ResourceHandle(self, name) for name in self.reader.resources) + dirs = map(ResourceContainer, self.reader.children()) + return itertools.chain(files, dirs) + + def open(self, *args, **kwargs): + raise IsADirectoryError() + + +class ResourceHandle(Traversable): + """ + Handle to a named resource in a ResourceReader. + """ + + def __init__(self, parent: ResourceContainer, name: str): + self.parent = parent + self.name = name # type: ignore + + def is_file(self): + return True + + def is_dir(self): + return False + + def open(self, mode='r', *args, **kwargs): + stream = self.parent.reader.open_binary(self.name) + if 'b' not in mode: + stream = io.TextIOWrapper(*args, **kwargs) + return stream + + def joinpath(self, name): + raise RuntimeError("Cannot traverse into a resource") + + +class TraversableReader(TraversableResources, SimpleReader): + """ + A TraversableResources based on SimpleReader. Resource providers + may derive from this class to provide the TraversableResources + interface by supplying the SimpleReader interface. + """ + + def files(self): + return ResourceContainer(self) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/__init__.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/_compat.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/_compat.py new file mode 100644 index 0000000..e7bf06d --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/_compat.py @@ -0,0 +1,32 @@ +import os + + +try: + from test.support import import_helper # type: ignore +except ImportError: + # Python 3.9 and earlier + class import_helper: # type: ignore + from test.support import ( + modules_setup, + modules_cleanup, + DirsOnSysPath, + CleanImport, + ) + + +try: + from test.support import os_helper # type: ignore +except ImportError: + # Python 3.9 compat + class os_helper: # type:ignore + from test.support import temp_dir + + +try: + # Python 3.10 + from test.support.os_helper import unlink +except ImportError: + from test.support import unlink as _unlink + + def unlink(target): + return _unlink(os.fspath(target)) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/_path.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/_path.py new file mode 100644 index 0000000..1f97c96 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/_path.py @@ -0,0 +1,56 @@ +import pathlib +import functools + +from typing import Dict, Union + + +#### +# from jaraco.path 3.4.1 + +FilesSpec = Dict[str, Union[str, bytes, 'FilesSpec']] # type: ignore + + +def build(spec: FilesSpec, prefix=pathlib.Path()): + """ + Build a set of files/directories, as described by the spec. + + Each key represents a pathname, and the value represents + the content. Content may be a nested directory. + + >>> spec = { + ... 'README.txt': "A README file", + ... "foo": { + ... "__init__.py": "", + ... "bar": { + ... "__init__.py": "", + ... }, + ... "baz.py": "# Some code", + ... } + ... } + >>> target = getfixture('tmp_path') + >>> build(spec, target) + >>> target.joinpath('foo/baz.py').read_text(encoding='utf-8') + '# Some code' + """ + for name, contents in spec.items(): + create(contents, pathlib.Path(prefix) / name) + + +@functools.singledispatch +def create(content: Union[str, bytes, FilesSpec], path): + path.mkdir(exist_ok=True) + build(content, prefix=path) # type: ignore + + +@create.register +def _(content: bytes, path): + path.write_bytes(content) + + +@create.register +def _(content: str, path): + path.write_text(content, encoding='utf-8') + + +# end from jaraco.path +#### diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/data01/__init__.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/data01/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/data01/binary.file b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/data01/binary.file new file mode 100644 index 0000000..eaf36c1 Binary files /dev/null and b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/data01/binary.file differ diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/data01/subdirectory/__init__.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/data01/subdirectory/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/data01/subdirectory/binary.file b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/data01/subdirectory/binary.file new file mode 100644 index 0000000..eaf36c1 Binary files /dev/null and b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/data01/subdirectory/binary.file differ diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/data01/utf-16.file b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/data01/utf-16.file new file mode 100644 index 0000000..2cb7722 Binary files /dev/null and b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/data01/utf-16.file differ diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/data01/utf-8.file b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/data01/utf-8.file new file mode 100644 index 0000000..1c0132a --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/data01/utf-8.file @@ -0,0 +1 @@ +Hello, UTF-8 world! diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/data02/__init__.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/data02/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/data02/one/__init__.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/data02/one/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/data02/one/resource1.txt b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/data02/one/resource1.txt new file mode 100644 index 0000000..61a813e --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/data02/one/resource1.txt @@ -0,0 +1 @@ +one resource diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/data02/subdirectory/subsubdir/resource.txt b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/data02/subdirectory/subsubdir/resource.txt new file mode 100644 index 0000000..48f587a --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/data02/subdirectory/subsubdir/resource.txt @@ -0,0 +1 @@ +a resource \ No newline at end of file diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/data02/two/__init__.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/data02/two/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/data02/two/resource2.txt b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/data02/two/resource2.txt new file mode 100644 index 0000000..a80ce46 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/data02/two/resource2.txt @@ -0,0 +1 @@ +two resource diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/namespacedata01/binary.file b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/namespacedata01/binary.file new file mode 100644 index 0000000..eaf36c1 Binary files /dev/null and b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/namespacedata01/binary.file differ diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/namespacedata01/utf-16.file b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/namespacedata01/utf-16.file new file mode 100644 index 0000000..2cb7722 Binary files /dev/null and b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/namespacedata01/utf-16.file differ diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/namespacedata01/utf-8.file b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/namespacedata01/utf-8.file new file mode 100644 index 0000000..1c0132a --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/namespacedata01/utf-8.file @@ -0,0 +1 @@ +Hello, UTF-8 world! diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/test_compatibilty_files.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/test_compatibilty_files.py new file mode 100644 index 0000000..13ad0df --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/test_compatibilty_files.py @@ -0,0 +1,104 @@ +import io +import unittest + +import importlib_resources as resources + +from importlib_resources._adapters import ( + CompatibilityFiles, + wrap_spec, +) + +from . import util + + +class CompatibilityFilesTests(unittest.TestCase): + @property + def package(self): + bytes_data = io.BytesIO(b'Hello, world!') + return util.create_package( + file=bytes_data, + path='some_path', + contents=('a', 'b', 'c'), + ) + + @property + def files(self): + return resources.files(self.package) + + def test_spec_path_iter(self): + self.assertEqual( + sorted(path.name for path in self.files.iterdir()), + ['a', 'b', 'c'], + ) + + def test_child_path_iter(self): + self.assertEqual(list((self.files / 'a').iterdir()), []) + + def test_orphan_path_iter(self): + self.assertEqual(list((self.files / 'a' / 'a').iterdir()), []) + self.assertEqual(list((self.files / 'a' / 'a' / 'a').iterdir()), []) + + def test_spec_path_is(self): + self.assertFalse(self.files.is_file()) + self.assertFalse(self.files.is_dir()) + + def test_child_path_is(self): + self.assertTrue((self.files / 'a').is_file()) + self.assertFalse((self.files / 'a').is_dir()) + + def test_orphan_path_is(self): + self.assertFalse((self.files / 'a' / 'a').is_file()) + self.assertFalse((self.files / 'a' / 'a').is_dir()) + self.assertFalse((self.files / 'a' / 'a' / 'a').is_file()) + self.assertFalse((self.files / 'a' / 'a' / 'a').is_dir()) + + def test_spec_path_name(self): + self.assertEqual(self.files.name, 'testingpackage') + + def test_child_path_name(self): + self.assertEqual((self.files / 'a').name, 'a') + + def test_orphan_path_name(self): + self.assertEqual((self.files / 'a' / 'b').name, 'b') + self.assertEqual((self.files / 'a' / 'b' / 'c').name, 'c') + + def test_spec_path_open(self): + self.assertEqual(self.files.read_bytes(), b'Hello, world!') + self.assertEqual(self.files.read_text(encoding='utf-8'), 'Hello, world!') + + def test_child_path_open(self): + self.assertEqual((self.files / 'a').read_bytes(), b'Hello, world!') + self.assertEqual( + (self.files / 'a').read_text(encoding='utf-8'), 'Hello, world!' + ) + + def test_orphan_path_open(self): + with self.assertRaises(FileNotFoundError): + (self.files / 'a' / 'b').read_bytes() + with self.assertRaises(FileNotFoundError): + (self.files / 'a' / 'b' / 'c').read_bytes() + + def test_open_invalid_mode(self): + with self.assertRaises(ValueError): + self.files.open('0') + + def test_orphan_path_invalid(self): + with self.assertRaises(ValueError): + CompatibilityFiles.OrphanPath() + + def test_wrap_spec(self): + spec = wrap_spec(self.package) + self.assertIsInstance(spec.loader.get_resource_reader(None), CompatibilityFiles) + + +class CompatibilityFilesNoReaderTests(unittest.TestCase): + @property + def package(self): + return util.create_package_from_loader(None) + + @property + def files(self): + return resources.files(self.package) + + def test_spec_path_joinpath(self): + self.assertIsInstance(self.files / 'a', CompatibilityFiles.OrphanPath) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/test_contents.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/test_contents.py new file mode 100644 index 0000000..525568e --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/test_contents.py @@ -0,0 +1,43 @@ +import unittest +import importlib_resources as resources + +from . import data01 +from . import util + + +class ContentsTests: + expected = { + '__init__.py', + 'binary.file', + 'subdirectory', + 'utf-16.file', + 'utf-8.file', + } + + def test_contents(self): + contents = {path.name for path in resources.files(self.data).iterdir()} + assert self.expected <= contents + + +class ContentsDiskTests(ContentsTests, unittest.TestCase): + def setUp(self): + self.data = data01 + + +class ContentsZipTests(ContentsTests, util.ZipSetup, unittest.TestCase): + pass + + +class ContentsNamespaceTests(ContentsTests, unittest.TestCase): + expected = { + # no __init__ because of namespace design + # no subdirectory as incidental difference in fixture + 'binary.file', + 'utf-16.file', + 'utf-8.file', + } + + def setUp(self): + from . import namespacedata01 + + self.data = namespacedata01 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/test_custom.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/test_custom.py new file mode 100644 index 0000000..e85ddd6 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/test_custom.py @@ -0,0 +1,45 @@ +import unittest +import contextlib +import pathlib + +import importlib_resources as resources +from ..abc import TraversableResources, ResourceReader +from . import util +from ._compat import os_helper + + +class SimpleLoader: + """ + A simple loader that only implements a resource reader. + """ + + def __init__(self, reader: ResourceReader): + self.reader = reader + + def get_resource_reader(self, package): + return self.reader + + +class MagicResources(TraversableResources): + """ + Magically returns the resources at path. + """ + + def __init__(self, path: pathlib.Path): + self.path = path + + def files(self): + return self.path + + +class CustomTraversableResourcesTests(unittest.TestCase): + def setUp(self): + self.fixtures = contextlib.ExitStack() + self.addCleanup(self.fixtures.close) + + def test_custom_loader(self): + temp_dir = self.fixtures.enter_context(os_helper.temp_dir()) + loader = SimpleLoader(MagicResources(temp_dir)) + pkg = util.create_package_from_loader(loader) + files = resources.files(pkg) + assert files is temp_dir diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/test_files.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/test_files.py new file mode 100644 index 0000000..197a063 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/test_files.py @@ -0,0 +1,112 @@ +import typing +import textwrap +import unittest +import warnings +import importlib +import contextlib + +import importlib_resources as resources +from ..abc import Traversable +from . import data01 +from . import util +from . import _path +from ._compat import os_helper, import_helper + + +@contextlib.contextmanager +def suppress_known_deprecation(): + with warnings.catch_warnings(record=True) as ctx: + warnings.simplefilter('default', category=DeprecationWarning) + yield ctx + + +class FilesTests: + def test_read_bytes(self): + files = resources.files(self.data) + actual = files.joinpath('utf-8.file').read_bytes() + assert actual == b'Hello, UTF-8 world!\n' + + def test_read_text(self): + files = resources.files(self.data) + actual = files.joinpath('utf-8.file').read_text(encoding='utf-8') + assert actual == 'Hello, UTF-8 world!\n' + + @unittest.skipUnless( + hasattr(typing, 'runtime_checkable'), + "Only suitable when typing supports runtime_checkable", + ) + def test_traversable(self): + assert isinstance(resources.files(self.data), Traversable) + + def test_old_parameter(self): + """ + Files used to take a 'package' parameter. Make sure anyone + passing by name is still supported. + """ + with suppress_known_deprecation(): + resources.files(package=self.data) + + +class OpenDiskTests(FilesTests, unittest.TestCase): + def setUp(self): + self.data = data01 + + +class OpenZipTests(FilesTests, util.ZipSetup, unittest.TestCase): + pass + + +class OpenNamespaceTests(FilesTests, unittest.TestCase): + def setUp(self): + from . import namespacedata01 + + self.data = namespacedata01 + + +class SiteDir: + def setUp(self): + self.fixtures = contextlib.ExitStack() + self.addCleanup(self.fixtures.close) + self.site_dir = self.fixtures.enter_context(os_helper.temp_dir()) + self.fixtures.enter_context(import_helper.DirsOnSysPath(self.site_dir)) + self.fixtures.enter_context(import_helper.CleanImport()) + + +class ModulesFilesTests(SiteDir, unittest.TestCase): + def test_module_resources(self): + """ + A module can have resources found adjacent to the module. + """ + spec = { + 'mod.py': '', + 'res.txt': 'resources are the best', + } + _path.build(spec, self.site_dir) + import mod + + actual = resources.files(mod).joinpath('res.txt').read_text(encoding='utf-8') + assert actual == spec['res.txt'] + + +class ImplicitContextFilesTests(SiteDir, unittest.TestCase): + def test_implicit_files(self): + """ + Without any parameter, files() will infer the location as the caller. + """ + spec = { + 'somepkg': { + '__init__.py': textwrap.dedent( + """ + import importlib_resources as res + val = res.files().joinpath('res.txt').read_text(encoding='utf-8') + """ + ), + 'res.txt': 'resources are the best', + }, + } + _path.build(spec, self.site_dir) + assert importlib.import_module('somepkg').val == 'resources are the best' + + +if __name__ == '__main__': + unittest.main() diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/test_open.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/test_open.py new file mode 100644 index 0000000..83b737d --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/test_open.py @@ -0,0 +1,85 @@ +import unittest + +import importlib_resources as resources +from . import data01 +from . import util + + +class CommonBinaryTests(util.CommonTests, unittest.TestCase): + def execute(self, package, path): + target = resources.files(package).joinpath(path) + with target.open('rb'): + pass + + +class CommonTextTests(util.CommonTests, unittest.TestCase): + def execute(self, package, path): + target = resources.files(package).joinpath(path) + with target.open(encoding='utf-8'): + pass + + +class OpenTests: + def test_open_binary(self): + target = resources.files(self.data) / 'binary.file' + with target.open('rb') as fp: + result = fp.read() + self.assertEqual(result, b'\x00\x01\x02\x03') + + def test_open_text_default_encoding(self): + target = resources.files(self.data) / 'utf-8.file' + with target.open(encoding='utf-8') as fp: + result = fp.read() + self.assertEqual(result, 'Hello, UTF-8 world!\n') + + def test_open_text_given_encoding(self): + target = resources.files(self.data) / 'utf-16.file' + with target.open(encoding='utf-16', errors='strict') as fp: + result = fp.read() + self.assertEqual(result, 'Hello, UTF-16 world!\n') + + def test_open_text_with_errors(self): + """ + Raises UnicodeError without the 'errors' argument. + """ + target = resources.files(self.data) / 'utf-16.file' + with target.open(encoding='utf-8', errors='strict') as fp: + self.assertRaises(UnicodeError, fp.read) + with target.open(encoding='utf-8', errors='ignore') as fp: + result = fp.read() + self.assertEqual( + result, + 'H\x00e\x00l\x00l\x00o\x00,\x00 ' + '\x00U\x00T\x00F\x00-\x001\x006\x00 ' + '\x00w\x00o\x00r\x00l\x00d\x00!\x00\n\x00', + ) + + def test_open_binary_FileNotFoundError(self): + target = resources.files(self.data) / 'does-not-exist' + with self.assertRaises(FileNotFoundError): + target.open('rb') + + def test_open_text_FileNotFoundError(self): + target = resources.files(self.data) / 'does-not-exist' + with self.assertRaises(FileNotFoundError): + target.open(encoding='utf-8') + + +class OpenDiskTests(OpenTests, unittest.TestCase): + def setUp(self): + self.data = data01 + + +class OpenDiskNamespaceTests(OpenTests, unittest.TestCase): + def setUp(self): + from . import namespacedata01 + + self.data = namespacedata01 + + +class OpenZipTests(OpenTests, util.ZipSetup, unittest.TestCase): + pass + + +if __name__ == '__main__': + unittest.main() diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/test_path.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/test_path.py new file mode 100644 index 0000000..7cb2000 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/test_path.py @@ -0,0 +1,69 @@ +import io +import unittest + +import importlib_resources as resources +from . import data01 +from . import util + + +class CommonTests(util.CommonTests, unittest.TestCase): + def execute(self, package, path): + with resources.as_file(resources.files(package).joinpath(path)): + pass + + +class PathTests: + def test_reading(self): + """ + Path should be readable. + + Test also implicitly verifies the returned object is a pathlib.Path + instance. + """ + target = resources.files(self.data) / 'utf-8.file' + with resources.as_file(target) as path: + self.assertTrue(path.name.endswith("utf-8.file"), repr(path)) + # pathlib.Path.read_text() was introduced in Python 3.5. + with path.open('r', encoding='utf-8') as file: + text = file.read() + self.assertEqual('Hello, UTF-8 world!\n', text) + + +class PathDiskTests(PathTests, unittest.TestCase): + data = data01 + + def test_natural_path(self): + """ + Guarantee the internal implementation detail that + file-system-backed resources do not get the tempdir + treatment. + """ + target = resources.files(self.data) / 'utf-8.file' + with resources.as_file(target) as path: + assert 'data' in str(path) + + +class PathMemoryTests(PathTests, unittest.TestCase): + def setUp(self): + file = io.BytesIO(b'Hello, UTF-8 world!\n') + self.addCleanup(file.close) + self.data = util.create_package( + file=file, path=FileNotFoundError("package exists only in memory") + ) + self.data.__spec__.origin = None + self.data.__spec__.has_location = False + + +class PathZipTests(PathTests, util.ZipSetup, unittest.TestCase): + def test_remove_in_context_manager(self): + """ + It is not an error if the file that was temporarily stashed on the + file system is removed inside the `with` stanza. + """ + target = resources.files(self.data) / 'utf-8.file' + with resources.as_file(target) as path: + path.unlink() + + +if __name__ == '__main__': + unittest.main() diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/test_read.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/test_read.py new file mode 100644 index 0000000..b5aaec4 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/test_read.py @@ -0,0 +1,82 @@ +import unittest +import importlib_resources as resources + +from . import data01 +from . import util +from importlib import import_module + + +class CommonBinaryTests(util.CommonTests, unittest.TestCase): + def execute(self, package, path): + resources.files(package).joinpath(path).read_bytes() + + +class CommonTextTests(util.CommonTests, unittest.TestCase): + def execute(self, package, path): + resources.files(package).joinpath(path).read_text(encoding='utf-8') + + +class ReadTests: + def test_read_bytes(self): + result = resources.files(self.data).joinpath('binary.file').read_bytes() + self.assertEqual(result, b'\0\1\2\3') + + def test_read_text_default_encoding(self): + result = ( + resources.files(self.data) + .joinpath('utf-8.file') + .read_text(encoding='utf-8') + ) + self.assertEqual(result, 'Hello, UTF-8 world!\n') + + def test_read_text_given_encoding(self): + result = ( + resources.files(self.data) + .joinpath('utf-16.file') + .read_text(encoding='utf-16') + ) + self.assertEqual(result, 'Hello, UTF-16 world!\n') + + def test_read_text_with_errors(self): + """ + Raises UnicodeError without the 'errors' argument. + """ + target = resources.files(self.data) / 'utf-16.file' + self.assertRaises(UnicodeError, target.read_text, encoding='utf-8') + result = target.read_text(encoding='utf-8', errors='ignore') + self.assertEqual( + result, + 'H\x00e\x00l\x00l\x00o\x00,\x00 ' + '\x00U\x00T\x00F\x00-\x001\x006\x00 ' + '\x00w\x00o\x00r\x00l\x00d\x00!\x00\n\x00', + ) + + +class ReadDiskTests(ReadTests, unittest.TestCase): + data = data01 + + +class ReadZipTests(ReadTests, util.ZipSetup, unittest.TestCase): + def test_read_submodule_resource(self): + submodule = import_module('ziptestdata.subdirectory') + result = resources.files(submodule).joinpath('binary.file').read_bytes() + self.assertEqual(result, b'\0\1\2\3') + + def test_read_submodule_resource_by_name(self): + result = ( + resources.files('ziptestdata.subdirectory') + .joinpath('binary.file') + .read_bytes() + ) + self.assertEqual(result, b'\0\1\2\3') + + +class ReadNamespaceTests(ReadTests, unittest.TestCase): + def setUp(self): + from . import namespacedata01 + + self.data = namespacedata01 + + +if __name__ == '__main__': + unittest.main() diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/test_reader.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/test_reader.py new file mode 100644 index 0000000..e2bdf19 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/test_reader.py @@ -0,0 +1,144 @@ +import os.path +import sys +import pathlib +import unittest + +from importlib import import_module +from importlib_resources.readers import MultiplexedPath, NamespaceReader + + +class MultiplexedPathTest(unittest.TestCase): + @classmethod + def setUpClass(cls): + path = pathlib.Path(__file__).parent / 'namespacedata01' + cls.folder = str(path) + + def test_init_no_paths(self): + with self.assertRaises(FileNotFoundError): + MultiplexedPath() + + def test_init_file(self): + with self.assertRaises(NotADirectoryError): + MultiplexedPath(os.path.join(self.folder, 'binary.file')) + + def test_iterdir(self): + contents = {path.name for path in MultiplexedPath(self.folder).iterdir()} + try: + contents.remove('__pycache__') + except (KeyError, ValueError): + pass + self.assertEqual(contents, {'binary.file', 'utf-16.file', 'utf-8.file'}) + + def test_iterdir_duplicate(self): + data01 = os.path.abspath(os.path.join(__file__, '..', 'data01')) + contents = { + path.name for path in MultiplexedPath(self.folder, data01).iterdir() + } + for remove in ('__pycache__', '__init__.pyc'): + try: + contents.remove(remove) + except (KeyError, ValueError): + pass + self.assertEqual( + contents, + {'__init__.py', 'binary.file', 'subdirectory', 'utf-16.file', 'utf-8.file'}, + ) + + def test_is_dir(self): + self.assertEqual(MultiplexedPath(self.folder).is_dir(), True) + + def test_is_file(self): + self.assertEqual(MultiplexedPath(self.folder).is_file(), False) + + def test_open_file(self): + path = MultiplexedPath(self.folder) + with self.assertRaises(FileNotFoundError): + path.read_bytes() + with self.assertRaises(FileNotFoundError): + path.read_text() + with self.assertRaises(FileNotFoundError): + path.open() + + def test_join_path(self): + prefix = os.path.abspath(os.path.join(__file__, '..')) + data01 = os.path.join(prefix, 'data01') + path = MultiplexedPath(self.folder, data01) + self.assertEqual( + str(path.joinpath('binary.file'))[len(prefix) + 1 :], + os.path.join('namespacedata01', 'binary.file'), + ) + self.assertEqual( + str(path.joinpath('subdirectory'))[len(prefix) + 1 :], + os.path.join('data01', 'subdirectory'), + ) + self.assertEqual( + str(path.joinpath('imaginary'))[len(prefix) + 1 :], + os.path.join('namespacedata01', 'imaginary'), + ) + self.assertEqual(path.joinpath(), path) + + def test_join_path_compound(self): + path = MultiplexedPath(self.folder) + assert not path.joinpath('imaginary/foo.py').exists() + + def test_join_path_common_subdir(self): + prefix = os.path.abspath(os.path.join(__file__, '..')) + data01 = os.path.join(prefix, 'data01') + data02 = os.path.join(prefix, 'data02') + path = MultiplexedPath(data01, data02) + self.assertIsInstance(path.joinpath('subdirectory'), MultiplexedPath) + self.assertEqual( + str(path.joinpath('subdirectory', 'subsubdir'))[len(prefix) + 1 :], + os.path.join('data02', 'subdirectory', 'subsubdir'), + ) + + def test_repr(self): + self.assertEqual( + repr(MultiplexedPath(self.folder)), + f"MultiplexedPath('{self.folder}')", + ) + + def test_name(self): + self.assertEqual( + MultiplexedPath(self.folder).name, + os.path.basename(self.folder), + ) + + +class NamespaceReaderTest(unittest.TestCase): + site_dir = str(pathlib.Path(__file__).parent) + + @classmethod + def setUpClass(cls): + sys.path.append(cls.site_dir) + + @classmethod + def tearDownClass(cls): + sys.path.remove(cls.site_dir) + + def test_init_error(self): + with self.assertRaises(ValueError): + NamespaceReader(['path1', 'path2']) + + def test_resource_path(self): + namespacedata01 = import_module('namespacedata01') + reader = NamespaceReader(namespacedata01.__spec__.submodule_search_locations) + + root = os.path.abspath(os.path.join(__file__, '..', 'namespacedata01')) + self.assertEqual( + reader.resource_path('binary.file'), os.path.join(root, 'binary.file') + ) + self.assertEqual( + reader.resource_path('imaginary'), os.path.join(root, 'imaginary') + ) + + def test_files(self): + namespacedata01 = import_module('namespacedata01') + reader = NamespaceReader(namespacedata01.__spec__.submodule_search_locations) + root = os.path.abspath(os.path.join(__file__, '..', 'namespacedata01')) + self.assertIsInstance(reader.files(), MultiplexedPath) + self.assertEqual(repr(reader.files()), f"MultiplexedPath('{root}')") + + +if __name__ == '__main__': + unittest.main() diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/test_resource.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/test_resource.py new file mode 100644 index 0000000..677110c --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/test_resource.py @@ -0,0 +1,252 @@ +import contextlib +import sys +import unittest +import importlib_resources as resources +import uuid +import pathlib + +from . import data01 +from . import zipdata01, zipdata02 +from . import util +from importlib import import_module +from ._compat import import_helper, os_helper, unlink + + +class ResourceTests: + # Subclasses are expected to set the `data` attribute. + + def test_is_file_exists(self): + target = resources.files(self.data) / 'binary.file' + self.assertTrue(target.is_file()) + + def test_is_file_missing(self): + target = resources.files(self.data) / 'not-a-file' + self.assertFalse(target.is_file()) + + def test_is_dir(self): + target = resources.files(self.data) / 'subdirectory' + self.assertFalse(target.is_file()) + self.assertTrue(target.is_dir()) + + +class ResourceDiskTests(ResourceTests, unittest.TestCase): + def setUp(self): + self.data = data01 + + +class ResourceZipTests(ResourceTests, util.ZipSetup, unittest.TestCase): + pass + + +def names(traversable): + return {item.name for item in traversable.iterdir()} + + +class ResourceLoaderTests(unittest.TestCase): + def test_resource_contents(self): + package = util.create_package( + file=data01, path=data01.__file__, contents=['A', 'B', 'C'] + ) + self.assertEqual(names(resources.files(package)), {'A', 'B', 'C'}) + + def test_is_file(self): + package = util.create_package( + file=data01, path=data01.__file__, contents=['A', 'B', 'C', 'D/E', 'D/F'] + ) + self.assertTrue(resources.files(package).joinpath('B').is_file()) + + def test_is_dir(self): + package = util.create_package( + file=data01, path=data01.__file__, contents=['A', 'B', 'C', 'D/E', 'D/F'] + ) + self.assertTrue(resources.files(package).joinpath('D').is_dir()) + + def test_resource_missing(self): + package = util.create_package( + file=data01, path=data01.__file__, contents=['A', 'B', 'C', 'D/E', 'D/F'] + ) + self.assertFalse(resources.files(package).joinpath('Z').is_file()) + + +class ResourceCornerCaseTests(unittest.TestCase): + def test_package_has_no_reader_fallback(self): + """ + Test odd ball packages which: + # 1. Do not have a ResourceReader as a loader + # 2. Are not on the file system + # 3. Are not in a zip file + """ + module = util.create_package( + file=data01, path=data01.__file__, contents=['A', 'B', 'C'] + ) + # Give the module a dummy loader. + module.__loader__ = object() + # Give the module a dummy origin. + module.__file__ = '/path/which/shall/not/be/named' + module.__spec__.loader = module.__loader__ + module.__spec__.origin = module.__file__ + self.assertFalse(resources.files(module).joinpath('A').is_file()) + + +class ResourceFromZipsTest01(util.ZipSetupBase, unittest.TestCase): + ZIP_MODULE = zipdata01 # type: ignore + + def test_is_submodule_resource(self): + submodule = import_module('ziptestdata.subdirectory') + self.assertTrue(resources.files(submodule).joinpath('binary.file').is_file()) + + def test_read_submodule_resource_by_name(self): + self.assertTrue( + resources.files('ziptestdata.subdirectory') + .joinpath('binary.file') + .is_file() + ) + + def test_submodule_contents(self): + submodule = import_module('ziptestdata.subdirectory') + self.assertEqual( + names(resources.files(submodule)), {'__init__.py', 'binary.file'} + ) + + def test_submodule_contents_by_name(self): + self.assertEqual( + names(resources.files('ziptestdata.subdirectory')), + {'__init__.py', 'binary.file'}, + ) + + def test_as_file_directory(self): + with resources.as_file(resources.files('ziptestdata')) as data: + assert data.name == 'ziptestdata' + assert data.is_dir() + assert data.joinpath('subdirectory').is_dir() + assert len(list(data.iterdir())) + assert not data.parent.exists() + + +class ResourceFromZipsTest02(util.ZipSetupBase, unittest.TestCase): + ZIP_MODULE = zipdata02 # type: ignore + + def test_unrelated_contents(self): + """ + Test thata zip with two unrelated subpackages return + distinct resources. Ref python/importlib_resources#44. + """ + self.assertEqual( + names(resources.files('ziptestdata.one')), + {'__init__.py', 'resource1.txt'}, + ) + self.assertEqual( + names(resources.files('ziptestdata.two')), + {'__init__.py', 'resource2.txt'}, + ) + + +@contextlib.contextmanager +def zip_on_path(dir): + data_path = pathlib.Path(zipdata01.__file__) + source_zip_path = data_path.parent.joinpath('ziptestdata.zip') + zip_path = pathlib.Path(dir) / f'{uuid.uuid4()}.zip' + zip_path.write_bytes(source_zip_path.read_bytes()) + sys.path.append(str(zip_path)) + import_module('ziptestdata') + + try: + yield + finally: + with contextlib.suppress(ValueError): + sys.path.remove(str(zip_path)) + + with contextlib.suppress(KeyError): + del sys.path_importer_cache[str(zip_path)] + del sys.modules['ziptestdata'] + + with contextlib.suppress(OSError): + unlink(zip_path) + + +class DeletingZipsTest(unittest.TestCase): + """Having accessed resources in a zip file should not keep an open + reference to the zip. + """ + + def setUp(self): + self.fixtures = contextlib.ExitStack() + self.addCleanup(self.fixtures.close) + + modules = import_helper.modules_setup() + self.addCleanup(import_helper.modules_cleanup, *modules) + + temp_dir = self.fixtures.enter_context(os_helper.temp_dir()) + self.fixtures.enter_context(zip_on_path(temp_dir)) + + def test_iterdir_does_not_keep_open(self): + [item.name for item in resources.files('ziptestdata').iterdir()] + + def test_is_file_does_not_keep_open(self): + resources.files('ziptestdata').joinpath('binary.file').is_file() + + def test_is_file_failure_does_not_keep_open(self): + resources.files('ziptestdata').joinpath('not-present').is_file() + + @unittest.skip("Desired but not supported.") + def test_as_file_does_not_keep_open(self): # pragma: no cover + resources.as_file(resources.files('ziptestdata') / 'binary.file') + + def test_entered_path_does_not_keep_open(self): + """ + Mimic what certifi does on import to make its bundle + available for the process duration. + """ + resources.as_file(resources.files('ziptestdata') / 'binary.file').__enter__() + + def test_read_binary_does_not_keep_open(self): + resources.files('ziptestdata').joinpath('binary.file').read_bytes() + + def test_read_text_does_not_keep_open(self): + resources.files('ziptestdata').joinpath('utf-8.file').read_text( + encoding='utf-8' + ) + + +class ResourceFromNamespaceTest01(unittest.TestCase): + site_dir = str(pathlib.Path(__file__).parent) + + @classmethod + def setUpClass(cls): + sys.path.append(cls.site_dir) + + @classmethod + def tearDownClass(cls): + sys.path.remove(cls.site_dir) + + def test_is_submodule_resource(self): + self.assertTrue( + resources.files(import_module('namespacedata01')) + .joinpath('binary.file') + .is_file() + ) + + def test_read_submodule_resource_by_name(self): + self.assertTrue( + resources.files('namespacedata01').joinpath('binary.file').is_file() + ) + + def test_submodule_contents(self): + contents = names(resources.files(import_module('namespacedata01'))) + try: + contents.remove('__pycache__') + except KeyError: + pass + self.assertEqual(contents, {'binary.file', 'utf-8.file', 'utf-16.file'}) + + def test_submodule_contents_by_name(self): + contents = names(resources.files('namespacedata01')) + try: + contents.remove('__pycache__') + except KeyError: + pass + self.assertEqual(contents, {'binary.file', 'utf-8.file', 'utf-16.file'}) + + +if __name__ == '__main__': + unittest.main() diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/update-zips.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/update-zips.py new file mode 100644 index 0000000..231334a --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/update-zips.py @@ -0,0 +1,53 @@ +""" +Generate the zip test data files. + +Run to build the tests/zipdataNN/ziptestdata.zip files from +files in tests/dataNN. + +Replaces the file with the working copy, but does commit anything +to the source repo. +""" + +import contextlib +import os +import pathlib +import zipfile + + +def main(): + """ + >>> from unittest import mock + >>> monkeypatch = getfixture('monkeypatch') + >>> monkeypatch.setattr(zipfile, 'ZipFile', mock.MagicMock()) + >>> print(); main() # print workaround for bpo-32509 + + ...data01... -> ziptestdata/... + ... + ...data02... -> ziptestdata/... + ... + """ + suffixes = '01', '02' + tuple(map(generate, suffixes)) + + +def generate(suffix): + root = pathlib.Path(__file__).parent.relative_to(os.getcwd()) + zfpath = root / f'zipdata{suffix}/ziptestdata.zip' + with zipfile.ZipFile(zfpath, 'w') as zf: + for src, rel in walk(root / f'data{suffix}'): + dst = 'ziptestdata' / pathlib.PurePosixPath(rel.as_posix()) + print(src, '->', dst) + zf.write(src, dst) + + +def walk(datapath): + for dirpath, dirnames, filenames in os.walk(datapath): + with contextlib.suppress(ValueError): + dirnames.remove('__pycache__') + for filename in filenames: + res = pathlib.Path(dirpath) / filename + rel = res.relative_to(datapath) + yield res, rel + + +__name__ == '__main__' and main() diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/util.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/util.py new file mode 100644 index 0000000..ce0e6fa --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/util.py @@ -0,0 +1,179 @@ +import abc +import importlib +import io +import sys +import types +import pathlib + +from . import data01 +from . import zipdata01 +from ..abc import ResourceReader +from ._compat import import_helper + + +from importlib.machinery import ModuleSpec + + +class Reader(ResourceReader): + def __init__(self, **kwargs): + vars(self).update(kwargs) + + def get_resource_reader(self, package): + return self + + def open_resource(self, path): + self._path = path + if isinstance(self.file, Exception): + raise self.file + return self.file + + def resource_path(self, path_): + self._path = path_ + if isinstance(self.path, Exception): + raise self.path + return self.path + + def is_resource(self, path_): + self._path = path_ + if isinstance(self.path, Exception): + raise self.path + + def part(entry): + return entry.split('/') + + return any( + len(parts) == 1 and parts[0] == path_ for parts in map(part, self._contents) + ) + + def contents(self): + if isinstance(self.path, Exception): + raise self.path + yield from self._contents + + +def create_package_from_loader(loader, is_package=True): + name = 'testingpackage' + module = types.ModuleType(name) + spec = ModuleSpec(name, loader, origin='does-not-exist', is_package=is_package) + module.__spec__ = spec + module.__loader__ = loader + return module + + +def create_package(file=None, path=None, is_package=True, contents=()): + return create_package_from_loader( + Reader(file=file, path=path, _contents=contents), + is_package, + ) + + +class CommonTests(metaclass=abc.ABCMeta): + """ + Tests shared by test_open, test_path, and test_read. + """ + + @abc.abstractmethod + def execute(self, package, path): + """ + Call the pertinent legacy API function (e.g. open_text, path) + on package and path. + """ + + def test_package_name(self): + """ + Passing in the package name should succeed. + """ + self.execute(data01.__name__, 'utf-8.file') + + def test_package_object(self): + """ + Passing in the package itself should succeed. + """ + self.execute(data01, 'utf-8.file') + + def test_string_path(self): + """ + Passing in a string for the path should succeed. + """ + path = 'utf-8.file' + self.execute(data01, path) + + def test_pathlib_path(self): + """ + Passing in a pathlib.PurePath object for the path should succeed. + """ + path = pathlib.PurePath('utf-8.file') + self.execute(data01, path) + + def test_importing_module_as_side_effect(self): + """ + The anchor package can already be imported. + """ + del sys.modules[data01.__name__] + self.execute(data01.__name__, 'utf-8.file') + + def test_missing_path(self): + """ + Attempting to open or read or request the path for a + non-existent path should succeed if open_resource + can return a viable data stream. + """ + bytes_data = io.BytesIO(b'Hello, world!') + package = create_package(file=bytes_data, path=FileNotFoundError()) + self.execute(package, 'utf-8.file') + self.assertEqual(package.__loader__._path, 'utf-8.file') + + def test_extant_path(self): + # Attempting to open or read or request the path when the + # path does exist should still succeed. Does not assert + # anything about the result. + bytes_data = io.BytesIO(b'Hello, world!') + # any path that exists + path = __file__ + package = create_package(file=bytes_data, path=path) + self.execute(package, 'utf-8.file') + self.assertEqual(package.__loader__._path, 'utf-8.file') + + def test_useless_loader(self): + package = create_package(file=FileNotFoundError(), path=FileNotFoundError()) + with self.assertRaises(FileNotFoundError): + self.execute(package, 'utf-8.file') + + +class ZipSetupBase: + ZIP_MODULE = None + + @classmethod + def setUpClass(cls): + data_path = pathlib.Path(cls.ZIP_MODULE.__file__) + data_dir = data_path.parent + cls._zip_path = str(data_dir / 'ziptestdata.zip') + sys.path.append(cls._zip_path) + cls.data = importlib.import_module('ziptestdata') + + @classmethod + def tearDownClass(cls): + try: + sys.path.remove(cls._zip_path) + except ValueError: + pass + + try: + del sys.path_importer_cache[cls._zip_path] + del sys.modules[cls.data.__name__] + except KeyError: + pass + + try: + del cls.data + del cls._zip_path + except AttributeError: + pass + + def setUp(self): + modules = import_helper.modules_setup() + self.addCleanup(import_helper.modules_cleanup, *modules) + + +class ZipSetup(ZipSetupBase): + ZIP_MODULE = zipdata01 # type: ignore diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/zipdata01/__init__.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/zipdata01/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/zipdata01/ziptestdata.zip b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/zipdata01/ziptestdata.zip new file mode 100644 index 0000000..9a3bb07 Binary files /dev/null and b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/zipdata01/ziptestdata.zip differ diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/zipdata02/__init__.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/zipdata02/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/zipdata02/ziptestdata.zip b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/zipdata02/ziptestdata.zip new file mode 100644 index 0000000..d63ff51 Binary files /dev/null and b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/importlib_resources/tests/zipdata02/ziptestdata.zip differ diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/jinja2-3.1.6.dist-info/INSTALLER b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/jinja2-3.1.6.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/jinja2-3.1.6.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/jinja2-3.1.6.dist-info/METADATA b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/jinja2-3.1.6.dist-info/METADATA new file mode 100644 index 0000000..ffef2ff --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/jinja2-3.1.6.dist-info/METADATA @@ -0,0 +1,84 @@ +Metadata-Version: 2.4 +Name: Jinja2 +Version: 3.1.6 +Summary: A very fast and expressive template engine. +Maintainer-email: Pallets +Requires-Python: >=3.7 +Description-Content-Type: text/markdown +Classifier: Development Status :: 5 - Production/Stable +Classifier: Environment :: Web Environment +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: BSD License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content +Classifier: Topic :: Text Processing :: Markup :: HTML +Classifier: Typing :: Typed +License-File: LICENSE.txt +Requires-Dist: MarkupSafe>=2.0 +Requires-Dist: Babel>=2.7 ; extra == "i18n" +Project-URL: Changes, https://jinja.palletsprojects.com/changes/ +Project-URL: Chat, https://discord.gg/pallets +Project-URL: Documentation, https://jinja.palletsprojects.com/ +Project-URL: Donate, https://palletsprojects.com/donate +Project-URL: Source, https://github.com/pallets/jinja/ +Provides-Extra: i18n + +# Jinja + +Jinja is a fast, expressive, extensible templating engine. Special +placeholders in the template allow writing code similar to Python +syntax. Then the template is passed data to render the final document. + +It includes: + +- Template inheritance and inclusion. +- Define and import macros within templates. +- HTML templates can use autoescaping to prevent XSS from untrusted + user input. +- A sandboxed environment can safely render untrusted templates. +- AsyncIO support for generating templates and calling async + functions. +- I18N support with Babel. +- Templates are compiled to optimized Python code just-in-time and + cached, or can be compiled ahead-of-time. +- Exceptions point to the correct line in templates to make debugging + easier. +- Extensible filters, tests, functions, and even syntax. + +Jinja's philosophy is that while application logic belongs in Python if +possible, it shouldn't make the template designer's job difficult by +restricting functionality too much. + + +## In A Nutshell + +```jinja +{% extends "base.html" %} +{% block title %}Members{% endblock %} +{% block content %} +

      +{% endblock %} +``` + +## Donate + +The Pallets organization develops and supports Jinja and other popular +packages. In order to grow the community of contributors and users, and +allow the maintainers to devote more time to the projects, [please +donate today][]. + +[please donate today]: https://palletsprojects.com/donate + +## Contributing + +See our [detailed contributing documentation][contrib] for many ways to +contribute, including reporting issues, requesting features, asking or answering +questions, and making PRs. + +[contrib]: https://palletsprojects.com/contributing/ + diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/jinja2-3.1.6.dist-info/RECORD b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/jinja2-3.1.6.dist-info/RECORD new file mode 100644 index 0000000..3daafc1 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/jinja2-3.1.6.dist-info/RECORD @@ -0,0 +1,33 @@ +jinja2-3.1.6.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +jinja2-3.1.6.dist-info/METADATA,sha256=aMVUj7Z8QTKhOJjZsx7FDGvqKr3ZFdkh8hQ1XDpkmcg,2871 +jinja2-3.1.6.dist-info/RECORD,, +jinja2-3.1.6.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +jinja2-3.1.6.dist-info/WHEEL,sha256=_2ozNFCLWc93bK4WKHCO-eDUENDlo-dgc9cU3qokYO4,82 +jinja2-3.1.6.dist-info/entry_points.txt,sha256=OL85gYU1eD8cuPlikifFngXpeBjaxl6rIJ8KkC_3r-I,58 +jinja2-3.1.6.dist-info/licenses/LICENSE.txt,sha256=O0nc7kEF6ze6wQ-vG-JgQI_oXSUrjp3y4JefweCUQ3s,1475 +jinja2/__init__.py,sha256=xxepO9i7DHsqkQrgBEduLtfoz2QCuT6_gbL4XSN1hbU,1928 +jinja2/_identifier.py,sha256=_zYctNKzRqlk_murTNlzrju1FFJL7Va_Ijqqd7ii2lU,1958 +jinja2/async_utils.py,sha256=vK-PdsuorOMnWSnEkT3iUJRIkTnYgO2T6MnGxDgHI5o,2834 +jinja2/bccache.py,sha256=gh0qs9rulnXo0PhX5jTJy2UHzI8wFnQ63o_vw7nhzRg,14061 +jinja2/compiler.py,sha256=9RpCQl5X88BHllJiPsHPh295Hh0uApvwFJNQuutULeM,74131 +jinja2/constants.py,sha256=GMoFydBF_kdpaRKPoM5cl5MviquVRLVyZtfp5-16jg0,1433 +jinja2/debug.py,sha256=CnHqCDHd-BVGvti_8ZsTolnXNhA3ECsY-6n_2pwU8Hw,6297 +jinja2/defaults.py,sha256=boBcSw78h-lp20YbaXSJsqkAI2uN_mD_TtCydpeq5wU,1267 +jinja2/environment.py,sha256=9nhrP7Ch-NbGX00wvyr4yy-uhNHq2OCc60ggGrni_fk,61513 +jinja2/exceptions.py,sha256=ioHeHrWwCWNaXX1inHmHVblvc4haO7AXsjCp3GfWvx0,5071 +jinja2/ext.py,sha256=5PF5eHfh8mXAIxXHHRB2xXbXohi8pE3nHSOxa66uS7E,31875 +jinja2/filters.py,sha256=PQ_Egd9n9jSgtnGQYyF4K5j2nYwhUIulhPnyimkdr-k,55212 +jinja2/idtracking.py,sha256=-ll5lIp73pML3ErUYiIJj7tdmWxcH_IlDv3yA_hiZYo,10555 +jinja2/lexer.py,sha256=LYiYio6br-Tep9nPcupWXsPEtjluw3p1mU-lNBVRUfk,29786 +jinja2/loaders.py,sha256=wIrnxjvcbqh5VwW28NSkfotiDq8qNCxIOSFbGUiSLB4,24055 +jinja2/meta.py,sha256=OTDPkaFvU2Hgvx-6akz7154F8BIWaRmvJcBFvwopHww,4397 +jinja2/nativetypes.py,sha256=7GIGALVJgdyL80oZJdQUaUfwSt5q2lSSZbXt0dNf_M4,4210 +jinja2/nodes.py,sha256=m1Duzcr6qhZI8JQ6VyJgUNinjAf5bQzijSmDnMsvUx8,34579 +jinja2/optimizer.py,sha256=rJnCRlQ7pZsEEmMhsQDgC_pKyDHxP5TPS6zVPGsgcu8,1651 +jinja2/parser.py,sha256=lLOFy3sEmHc5IaEHRiH1sQVnId2moUQzhyeJZTtdY30,40383 +jinja2/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +jinja2/runtime.py,sha256=gDk-GvdriJXqgsGbHgrcKTP0Yp6zPXzhzrIpCFH3jAU,34249 +jinja2/sandbox.py,sha256=Mw2aitlY2I8la7FYhcX2YG9BtUYcLnD0Gh3d29cDWrY,15009 +jinja2/tests.py,sha256=VLsBhVFnWg-PxSBz1MhRnNWgP1ovXk3neO1FLQMeC9Q,5926 +jinja2/utils.py,sha256=rRp3o9e7ZKS4fyrWRbELyLcpuGVTFcnooaOa1qx_FIk,24129 +jinja2/visitor.py,sha256=EcnL1PIwf_4RVCOMxsRNuR8AXHbS1qfAdMOE2ngKJz4,3557 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/jinja2-3.1.6.dist-info/REQUESTED b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/jinja2-3.1.6.dist-info/REQUESTED new file mode 100644 index 0000000..e69de29 diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/jinja2-3.1.6.dist-info/WHEEL b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/jinja2-3.1.6.dist-info/WHEEL new file mode 100644 index 0000000..23d2d7e --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/jinja2-3.1.6.dist-info/WHEEL @@ -0,0 +1,4 @@ +Wheel-Version: 1.0 +Generator: flit 3.11.0 +Root-Is-Purelib: true +Tag: py3-none-any diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/jinja2-3.1.6.dist-info/entry_points.txt b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/jinja2-3.1.6.dist-info/entry_points.txt new file mode 100644 index 0000000..abc3eae --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/jinja2-3.1.6.dist-info/entry_points.txt @@ -0,0 +1,3 @@ +[babel.extractors] +jinja2=jinja2.ext:babel_extract[i18n] + diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/jinja2-3.1.6.dist-info/licenses/LICENSE.txt b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/jinja2-3.1.6.dist-info/licenses/LICENSE.txt new file mode 100644 index 0000000..c37cae4 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/jinja2-3.1.6.dist-info/licenses/LICENSE.txt @@ -0,0 +1,28 @@ +Copyright 2007 Pallets + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/jinja2/__init__.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/jinja2/__init__.py new file mode 100644 index 0000000..1a423a3 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/jinja2/__init__.py @@ -0,0 +1,38 @@ +"""Jinja is a template engine written in pure Python. It provides a +non-XML syntax that supports inline expressions and an optional +sandboxed environment. +""" + +from .bccache import BytecodeCache as BytecodeCache +from .bccache import FileSystemBytecodeCache as FileSystemBytecodeCache +from .bccache import MemcachedBytecodeCache as MemcachedBytecodeCache +from .environment import Environment as Environment +from .environment import Template as Template +from .exceptions import TemplateAssertionError as TemplateAssertionError +from .exceptions import TemplateError as TemplateError +from .exceptions import TemplateNotFound as TemplateNotFound +from .exceptions import TemplateRuntimeError as TemplateRuntimeError +from .exceptions import TemplatesNotFound as TemplatesNotFound +from .exceptions import TemplateSyntaxError as TemplateSyntaxError +from .exceptions import UndefinedError as UndefinedError +from .loaders import BaseLoader as BaseLoader +from .loaders import ChoiceLoader as ChoiceLoader +from .loaders import DictLoader as DictLoader +from .loaders import FileSystemLoader as FileSystemLoader +from .loaders import FunctionLoader as FunctionLoader +from .loaders import ModuleLoader as ModuleLoader +from .loaders import PackageLoader as PackageLoader +from .loaders import PrefixLoader as PrefixLoader +from .runtime import ChainableUndefined as ChainableUndefined +from .runtime import DebugUndefined as DebugUndefined +from .runtime import make_logging_undefined as make_logging_undefined +from .runtime import StrictUndefined as StrictUndefined +from .runtime import Undefined as Undefined +from .utils import clear_caches as clear_caches +from .utils import is_undefined as is_undefined +from .utils import pass_context as pass_context +from .utils import pass_environment as pass_environment +from .utils import pass_eval_context as pass_eval_context +from .utils import select_autoescape as select_autoescape + +__version__ = "3.1.6" diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/jinja2/_identifier.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/jinja2/_identifier.py new file mode 100644 index 0000000..928c150 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/jinja2/_identifier.py @@ -0,0 +1,6 @@ +import re + +# generated by scripts/generate_identifier_pattern.py +pattern = re.compile( + r"[\w·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-ٰٟۖ-ۜ۟-۪ۤۧۨ-ܑۭܰ-݊ަ-ް߫-߽߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛࣓-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣঁ-ঃ়া-ৄেৈো-্ৗৢৣ৾ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑੰੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣૺ-૿ଁ-ଃ଼ା-ୄେୈୋ-୍ୖୗୢୣஂா-ூெ-ைொ-்ௗఀ-ఄా-ౄె-ైొ-్ౕౖౢౣಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣഀ-ഃ഻഼ാ-ൄെ-ൈൊ-്ൗൢൣංඃ්ා-ුූෘ-ෟෲෳัิ-ฺ็-๎ັິ-ູົຼ່-ໍ༹༘༙༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏႚ-ႝ፝-፟ᜒ-᜔ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝᠋-᠍ᢅᢆᢩᤠ-ᤫᤰ-᤻ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼᪰-᪽ᬀ-ᬄ᬴-᭄᭫-᭳ᮀ-ᮂᮡ-ᮭ᯦-᯳ᰤ-᰷᳐-᳔᳒-᳨᳭ᳲ-᳴᳷-᳹᷀-᷹᷻-᷿‿⁀⁔⃐-⃥⃜⃡-⃰℘℮⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧꢀꢁꢴ-ꣅ꣠-꣱ꣿꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀ꧥꨩ-ꨶꩃꩌꩍꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭ﬞ︀-️︠-︯︳︴﹍-﹏_𐇽𐋠𐍶-𐍺𐨁-𐨃𐨅𐨆𐨌-𐨏𐨸-𐨿𐨺𐫦𐫥𐴤-𐽆𐴧-𐽐𑀀-𑀂𑀸-𑁆𑁿-𑂂𑂰-𑂺𑄀-𑄂𑄧-𑄴𑅅𑅆𑅳𑆀-𑆂𑆳-𑇀𑇉-𑇌𑈬-𑈷𑈾𑋟-𑋪𑌀-𑌃𑌻𑌼𑌾-𑍄𑍇𑍈𑍋-𑍍𑍗𑍢𑍣𑍦-𑍬𑍰-𑍴𑐵-𑑆𑑞𑒰-𑓃𑖯-𑖵𑖸-𑗀𑗜𑗝𑘰-𑙀𑚫-𑚷𑜝-𑜫𑠬-𑠺𑨁-𑨊𑨳-𑨹𑨻-𑨾𑩇𑩑-𑩛𑪊-𑪙𑰯-𑰶𑰸-𑰿𑲒-𑲧𑲩-𑲶𑴱-𑴶𑴺𑴼𑴽𑴿-𑵅𑵇𑶊-𑶎𑶐𑶑𑶓-𑶗𑻳-𑻶𖫰-𖫴𖬰-𖬶𖽑-𖽾𖾏-𖾒𛲝𛲞𝅥-𝅩𝅭-𝅲𝅻-𝆂𝆅-𝆋𝆪-𝆭𝉂-𝉄𝨀-𝨶𝨻-𝩬𝩵𝪄𝪛-𝪟𝪡-𝪯𞀀-𞀆𞀈-𞀘𞀛-𞀡𞀣𞀤𞀦-𞣐𞀪-𞣖𞥄-𞥊󠄀-󠇯]+" # noqa: B950 +) diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/jinja2/async_utils.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/jinja2/async_utils.py new file mode 100644 index 0000000..f0c1402 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/jinja2/async_utils.py @@ -0,0 +1,99 @@ +import inspect +import typing as t +from functools import WRAPPER_ASSIGNMENTS +from functools import wraps + +from .utils import _PassArg +from .utils import pass_eval_context + +if t.TYPE_CHECKING: + import typing_extensions as te + +V = t.TypeVar("V") + + +def async_variant(normal_func): # type: ignore + def decorator(async_func): # type: ignore + pass_arg = _PassArg.from_obj(normal_func) + need_eval_context = pass_arg is None + + if pass_arg is _PassArg.environment: + + def is_async(args: t.Any) -> bool: + return t.cast(bool, args[0].is_async) + + else: + + def is_async(args: t.Any) -> bool: + return t.cast(bool, args[0].environment.is_async) + + # Take the doc and annotations from the sync function, but the + # name from the async function. Pallets-Sphinx-Themes + # build_function_directive expects __wrapped__ to point to the + # sync function. + async_func_attrs = ("__module__", "__name__", "__qualname__") + normal_func_attrs = tuple(set(WRAPPER_ASSIGNMENTS).difference(async_func_attrs)) + + @wraps(normal_func, assigned=normal_func_attrs) + @wraps(async_func, assigned=async_func_attrs, updated=()) + def wrapper(*args, **kwargs): # type: ignore + b = is_async(args) + + if need_eval_context: + args = args[1:] + + if b: + return async_func(*args, **kwargs) + + return normal_func(*args, **kwargs) + + if need_eval_context: + wrapper = pass_eval_context(wrapper) + + wrapper.jinja_async_variant = True # type: ignore[attr-defined] + return wrapper + + return decorator + + +_common_primitives = {int, float, bool, str, list, dict, tuple, type(None)} + + +async def auto_await(value: t.Union[t.Awaitable["V"], "V"]) -> "V": + # Avoid a costly call to isawaitable + if type(value) in _common_primitives: + return t.cast("V", value) + + if inspect.isawaitable(value): + return await t.cast("t.Awaitable[V]", value) + + return value + + +class _IteratorToAsyncIterator(t.Generic[V]): + def __init__(self, iterator: "t.Iterator[V]"): + self._iterator = iterator + + def __aiter__(self) -> "te.Self": + return self + + async def __anext__(self) -> V: + try: + return next(self._iterator) + except StopIteration as e: + raise StopAsyncIteration(e.value) from e + + +def auto_aiter( + iterable: "t.Union[t.AsyncIterable[V], t.Iterable[V]]", +) -> "t.AsyncIterator[V]": + if hasattr(iterable, "__aiter__"): + return iterable.__aiter__() + else: + return _IteratorToAsyncIterator(iter(iterable)) + + +async def auto_to_list( + value: "t.Union[t.AsyncIterable[V], t.Iterable[V]]", +) -> t.List["V"]: + return [x async for x in auto_aiter(value)] diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/jinja2/bccache.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/jinja2/bccache.py new file mode 100644 index 0000000..ada8b09 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/jinja2/bccache.py @@ -0,0 +1,408 @@ +"""The optional bytecode cache system. This is useful if you have very +complex template situations and the compilation of all those templates +slows down your application too much. + +Situations where this is useful are often forking web applications that +are initialized on the first request. +""" + +import errno +import fnmatch +import marshal +import os +import pickle +import stat +import sys +import tempfile +import typing as t +from hashlib import sha1 +from io import BytesIO +from types import CodeType + +if t.TYPE_CHECKING: + import typing_extensions as te + + from .environment import Environment + + class _MemcachedClient(te.Protocol): + def get(self, key: str) -> bytes: ... + + def set( + self, key: str, value: bytes, timeout: t.Optional[int] = None + ) -> None: ... + + +bc_version = 5 +# Magic bytes to identify Jinja bytecode cache files. Contains the +# Python major and minor version to avoid loading incompatible bytecode +# if a project upgrades its Python version. +bc_magic = ( + b"j2" + + pickle.dumps(bc_version, 2) + + pickle.dumps((sys.version_info[0] << 24) | sys.version_info[1], 2) +) + + +class Bucket: + """Buckets are used to store the bytecode for one template. It's created + and initialized by the bytecode cache and passed to the loading functions. + + The buckets get an internal checksum from the cache assigned and use this + to automatically reject outdated cache material. Individual bytecode + cache subclasses don't have to care about cache invalidation. + """ + + def __init__(self, environment: "Environment", key: str, checksum: str) -> None: + self.environment = environment + self.key = key + self.checksum = checksum + self.reset() + + def reset(self) -> None: + """Resets the bucket (unloads the bytecode).""" + self.code: t.Optional[CodeType] = None + + def load_bytecode(self, f: t.BinaryIO) -> None: + """Loads bytecode from a file or file like object.""" + # make sure the magic header is correct + magic = f.read(len(bc_magic)) + if magic != bc_magic: + self.reset() + return + # the source code of the file changed, we need to reload + checksum = pickle.load(f) + if self.checksum != checksum: + self.reset() + return + # if marshal_load fails then we need to reload + try: + self.code = marshal.load(f) + except (EOFError, ValueError, TypeError): + self.reset() + return + + def write_bytecode(self, f: t.IO[bytes]) -> None: + """Dump the bytecode into the file or file like object passed.""" + if self.code is None: + raise TypeError("can't write empty bucket") + f.write(bc_magic) + pickle.dump(self.checksum, f, 2) + marshal.dump(self.code, f) + + def bytecode_from_string(self, string: bytes) -> None: + """Load bytecode from bytes.""" + self.load_bytecode(BytesIO(string)) + + def bytecode_to_string(self) -> bytes: + """Return the bytecode as bytes.""" + out = BytesIO() + self.write_bytecode(out) + return out.getvalue() + + +class BytecodeCache: + """To implement your own bytecode cache you have to subclass this class + and override :meth:`load_bytecode` and :meth:`dump_bytecode`. Both of + these methods are passed a :class:`~jinja2.bccache.Bucket`. + + A very basic bytecode cache that saves the bytecode on the file system:: + + from os import path + + class MyCache(BytecodeCache): + + def __init__(self, directory): + self.directory = directory + + def load_bytecode(self, bucket): + filename = path.join(self.directory, bucket.key) + if path.exists(filename): + with open(filename, 'rb') as f: + bucket.load_bytecode(f) + + def dump_bytecode(self, bucket): + filename = path.join(self.directory, bucket.key) + with open(filename, 'wb') as f: + bucket.write_bytecode(f) + + A more advanced version of a filesystem based bytecode cache is part of + Jinja. + """ + + def load_bytecode(self, bucket: Bucket) -> None: + """Subclasses have to override this method to load bytecode into a + bucket. If they are not able to find code in the cache for the + bucket, it must not do anything. + """ + raise NotImplementedError() + + def dump_bytecode(self, bucket: Bucket) -> None: + """Subclasses have to override this method to write the bytecode + from a bucket back to the cache. If it unable to do so it must not + fail silently but raise an exception. + """ + raise NotImplementedError() + + def clear(self) -> None: + """Clears the cache. This method is not used by Jinja but should be + implemented to allow applications to clear the bytecode cache used + by a particular environment. + """ + + def get_cache_key( + self, name: str, filename: t.Optional[t.Union[str]] = None + ) -> str: + """Returns the unique hash key for this template name.""" + hash = sha1(name.encode("utf-8")) + + if filename is not None: + hash.update(f"|{filename}".encode()) + + return hash.hexdigest() + + def get_source_checksum(self, source: str) -> str: + """Returns a checksum for the source.""" + return sha1(source.encode("utf-8")).hexdigest() + + def get_bucket( + self, + environment: "Environment", + name: str, + filename: t.Optional[str], + source: str, + ) -> Bucket: + """Return a cache bucket for the given template. All arguments are + mandatory but filename may be `None`. + """ + key = self.get_cache_key(name, filename) + checksum = self.get_source_checksum(source) + bucket = Bucket(environment, key, checksum) + self.load_bytecode(bucket) + return bucket + + def set_bucket(self, bucket: Bucket) -> None: + """Put the bucket into the cache.""" + self.dump_bytecode(bucket) + + +class FileSystemBytecodeCache(BytecodeCache): + """A bytecode cache that stores bytecode on the filesystem. It accepts + two arguments: The directory where the cache items are stored and a + pattern string that is used to build the filename. + + If no directory is specified a default cache directory is selected. On + Windows the user's temp directory is used, on UNIX systems a directory + is created for the user in the system temp directory. + + The pattern can be used to have multiple separate caches operate on the + same directory. The default pattern is ``'__jinja2_%s.cache'``. ``%s`` + is replaced with the cache key. + + >>> bcc = FileSystemBytecodeCache('/tmp/jinja_cache', '%s.cache') + + This bytecode cache supports clearing of the cache using the clear method. + """ + + def __init__( + self, directory: t.Optional[str] = None, pattern: str = "__jinja2_%s.cache" + ) -> None: + if directory is None: + directory = self._get_default_cache_dir() + self.directory = directory + self.pattern = pattern + + def _get_default_cache_dir(self) -> str: + def _unsafe_dir() -> "te.NoReturn": + raise RuntimeError( + "Cannot determine safe temp directory. You " + "need to explicitly provide one." + ) + + tmpdir = tempfile.gettempdir() + + # On windows the temporary directory is used specific unless + # explicitly forced otherwise. We can just use that. + if os.name == "nt": + return tmpdir + if not hasattr(os, "getuid"): + _unsafe_dir() + + dirname = f"_jinja2-cache-{os.getuid()}" + actual_dir = os.path.join(tmpdir, dirname) + + try: + os.mkdir(actual_dir, stat.S_IRWXU) + except OSError as e: + if e.errno != errno.EEXIST: + raise + try: + os.chmod(actual_dir, stat.S_IRWXU) + actual_dir_stat = os.lstat(actual_dir) + if ( + actual_dir_stat.st_uid != os.getuid() + or not stat.S_ISDIR(actual_dir_stat.st_mode) + or stat.S_IMODE(actual_dir_stat.st_mode) != stat.S_IRWXU + ): + _unsafe_dir() + except OSError as e: + if e.errno != errno.EEXIST: + raise + + actual_dir_stat = os.lstat(actual_dir) + if ( + actual_dir_stat.st_uid != os.getuid() + or not stat.S_ISDIR(actual_dir_stat.st_mode) + or stat.S_IMODE(actual_dir_stat.st_mode) != stat.S_IRWXU + ): + _unsafe_dir() + + return actual_dir + + def _get_cache_filename(self, bucket: Bucket) -> str: + return os.path.join(self.directory, self.pattern % (bucket.key,)) + + def load_bytecode(self, bucket: Bucket) -> None: + filename = self._get_cache_filename(bucket) + + # Don't test for existence before opening the file, since the + # file could disappear after the test before the open. + try: + f = open(filename, "rb") + except (FileNotFoundError, IsADirectoryError, PermissionError): + # PermissionError can occur on Windows when an operation is + # in progress, such as calling clear(). + return + + with f: + bucket.load_bytecode(f) + + def dump_bytecode(self, bucket: Bucket) -> None: + # Write to a temporary file, then rename to the real name after + # writing. This avoids another process reading the file before + # it is fully written. + name = self._get_cache_filename(bucket) + f = tempfile.NamedTemporaryFile( + mode="wb", + dir=os.path.dirname(name), + prefix=os.path.basename(name), + suffix=".tmp", + delete=False, + ) + + def remove_silent() -> None: + try: + os.remove(f.name) + except OSError: + # Another process may have called clear(). On Windows, + # another program may be holding the file open. + pass + + try: + with f: + bucket.write_bytecode(f) + except BaseException: + remove_silent() + raise + + try: + os.replace(f.name, name) + except OSError: + # Another process may have called clear(). On Windows, + # another program may be holding the file open. + remove_silent() + except BaseException: + remove_silent() + raise + + def clear(self) -> None: + # imported lazily here because google app-engine doesn't support + # write access on the file system and the function does not exist + # normally. + from os import remove + + files = fnmatch.filter(os.listdir(self.directory), self.pattern % ("*",)) + for filename in files: + try: + remove(os.path.join(self.directory, filename)) + except OSError: + pass + + +class MemcachedBytecodeCache(BytecodeCache): + """This class implements a bytecode cache that uses a memcache cache for + storing the information. It does not enforce a specific memcache library + (tummy's memcache or cmemcache) but will accept any class that provides + the minimal interface required. + + Libraries compatible with this class: + + - `cachelib `_ + - `python-memcached `_ + + (Unfortunately the django cache interface is not compatible because it + does not support storing binary data, only text. You can however pass + the underlying cache client to the bytecode cache which is available + as `django.core.cache.cache._client`.) + + The minimal interface for the client passed to the constructor is this: + + .. class:: MinimalClientInterface + + .. method:: set(key, value[, timeout]) + + Stores the bytecode in the cache. `value` is a string and + `timeout` the timeout of the key. If timeout is not provided + a default timeout or no timeout should be assumed, if it's + provided it's an integer with the number of seconds the cache + item should exist. + + .. method:: get(key) + + Returns the value for the cache key. If the item does not + exist in the cache the return value must be `None`. + + The other arguments to the constructor are the prefix for all keys that + is added before the actual cache key and the timeout for the bytecode in + the cache system. We recommend a high (or no) timeout. + + This bytecode cache does not support clearing of used items in the cache. + The clear method is a no-operation function. + + .. versionadded:: 2.7 + Added support for ignoring memcache errors through the + `ignore_memcache_errors` parameter. + """ + + def __init__( + self, + client: "_MemcachedClient", + prefix: str = "jinja2/bytecode/", + timeout: t.Optional[int] = None, + ignore_memcache_errors: bool = True, + ): + self.client = client + self.prefix = prefix + self.timeout = timeout + self.ignore_memcache_errors = ignore_memcache_errors + + def load_bytecode(self, bucket: Bucket) -> None: + try: + code = self.client.get(self.prefix + bucket.key) + except Exception: + if not self.ignore_memcache_errors: + raise + else: + bucket.bytecode_from_string(code) + + def dump_bytecode(self, bucket: Bucket) -> None: + key = self.prefix + bucket.key + value = bucket.bytecode_to_string() + + try: + if self.timeout is not None: + self.client.set(key, value, self.timeout) + else: + self.client.set(key, value) + except Exception: + if not self.ignore_memcache_errors: + raise diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/jinja2/compiler.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/jinja2/compiler.py new file mode 100644 index 0000000..a4ff6a1 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/jinja2/compiler.py @@ -0,0 +1,1998 @@ +"""Compiles nodes from the parser into Python code.""" + +import typing as t +from contextlib import contextmanager +from functools import update_wrapper +from io import StringIO +from itertools import chain +from keyword import iskeyword as is_python_keyword + +from markupsafe import escape +from markupsafe import Markup + +from . import nodes +from .exceptions import TemplateAssertionError +from .idtracking import Symbols +from .idtracking import VAR_LOAD_ALIAS +from .idtracking import VAR_LOAD_PARAMETER +from .idtracking import VAR_LOAD_RESOLVE +from .idtracking import VAR_LOAD_UNDEFINED +from .nodes import EvalContext +from .optimizer import Optimizer +from .utils import _PassArg +from .utils import concat +from .visitor import NodeVisitor + +if t.TYPE_CHECKING: + import typing_extensions as te + + from .environment import Environment + +F = t.TypeVar("F", bound=t.Callable[..., t.Any]) + +operators = { + "eq": "==", + "ne": "!=", + "gt": ">", + "gteq": ">=", + "lt": "<", + "lteq": "<=", + "in": "in", + "notin": "not in", +} + + +def optimizeconst(f: F) -> F: + def new_func( + self: "CodeGenerator", node: nodes.Expr, frame: "Frame", **kwargs: t.Any + ) -> t.Any: + # Only optimize if the frame is not volatile + if self.optimizer is not None and not frame.eval_ctx.volatile: + new_node = self.optimizer.visit(node, frame.eval_ctx) + + if new_node != node: + return self.visit(new_node, frame) + + return f(self, node, frame, **kwargs) + + return update_wrapper(new_func, f) # type: ignore[return-value] + + +def _make_binop(op: str) -> t.Callable[["CodeGenerator", nodes.BinExpr, "Frame"], None]: + @optimizeconst + def visitor(self: "CodeGenerator", node: nodes.BinExpr, frame: Frame) -> None: + if ( + self.environment.sandboxed and op in self.environment.intercepted_binops # type: ignore + ): + self.write(f"environment.call_binop(context, {op!r}, ") + self.visit(node.left, frame) + self.write(", ") + self.visit(node.right, frame) + else: + self.write("(") + self.visit(node.left, frame) + self.write(f" {op} ") + self.visit(node.right, frame) + + self.write(")") + + return visitor + + +def _make_unop( + op: str, +) -> t.Callable[["CodeGenerator", nodes.UnaryExpr, "Frame"], None]: + @optimizeconst + def visitor(self: "CodeGenerator", node: nodes.UnaryExpr, frame: Frame) -> None: + if ( + self.environment.sandboxed and op in self.environment.intercepted_unops # type: ignore + ): + self.write(f"environment.call_unop(context, {op!r}, ") + self.visit(node.node, frame) + else: + self.write("(" + op) + self.visit(node.node, frame) + + self.write(")") + + return visitor + + +def generate( + node: nodes.Template, + environment: "Environment", + name: t.Optional[str], + filename: t.Optional[str], + stream: t.Optional[t.TextIO] = None, + defer_init: bool = False, + optimized: bool = True, +) -> t.Optional[str]: + """Generate the python source for a node tree.""" + if not isinstance(node, nodes.Template): + raise TypeError("Can't compile non template nodes") + + generator = environment.code_generator_class( + environment, name, filename, stream, defer_init, optimized + ) + generator.visit(node) + + if stream is None: + return generator.stream.getvalue() # type: ignore + + return None + + +def has_safe_repr(value: t.Any) -> bool: + """Does the node have a safe representation?""" + if value is None or value is NotImplemented or value is Ellipsis: + return True + + if type(value) in {bool, int, float, complex, range, str, Markup}: + return True + + if type(value) in {tuple, list, set, frozenset}: + return all(has_safe_repr(v) for v in value) + + if type(value) is dict: # noqa E721 + return all(has_safe_repr(k) and has_safe_repr(v) for k, v in value.items()) + + return False + + +def find_undeclared( + nodes: t.Iterable[nodes.Node], names: t.Iterable[str] +) -> t.Set[str]: + """Check if the names passed are accessed undeclared. The return value + is a set of all the undeclared names from the sequence of names found. + """ + visitor = UndeclaredNameVisitor(names) + try: + for node in nodes: + visitor.visit(node) + except VisitorExit: + pass + return visitor.undeclared + + +class MacroRef: + def __init__(self, node: t.Union[nodes.Macro, nodes.CallBlock]) -> None: + self.node = node + self.accesses_caller = False + self.accesses_kwargs = False + self.accesses_varargs = False + + +class Frame: + """Holds compile time information for us.""" + + def __init__( + self, + eval_ctx: EvalContext, + parent: t.Optional["Frame"] = None, + level: t.Optional[int] = None, + ) -> None: + self.eval_ctx = eval_ctx + + # the parent of this frame + self.parent = parent + + if parent is None: + self.symbols = Symbols(level=level) + + # in some dynamic inheritance situations the compiler needs to add + # write tests around output statements. + self.require_output_check = False + + # inside some tags we are using a buffer rather than yield statements. + # this for example affects {% filter %} or {% macro %}. If a frame + # is buffered this variable points to the name of the list used as + # buffer. + self.buffer: t.Optional[str] = None + + # the name of the block we're in, otherwise None. + self.block: t.Optional[str] = None + + else: + self.symbols = Symbols(parent.symbols, level=level) + self.require_output_check = parent.require_output_check + self.buffer = parent.buffer + self.block = parent.block + + # a toplevel frame is the root + soft frames such as if conditions. + self.toplevel = False + + # the root frame is basically just the outermost frame, so no if + # conditions. This information is used to optimize inheritance + # situations. + self.rootlevel = False + + # variables set inside of loops and blocks should not affect outer frames, + # but they still needs to be kept track of as part of the active context. + self.loop_frame = False + self.block_frame = False + + # track whether the frame is being used in an if-statement or conditional + # expression as it determines which errors should be raised during runtime + # or compile time. + self.soft_frame = False + + def copy(self) -> "te.Self": + """Create a copy of the current one.""" + rv = object.__new__(self.__class__) + rv.__dict__.update(self.__dict__) + rv.symbols = self.symbols.copy() + return rv + + def inner(self, isolated: bool = False) -> "Frame": + """Return an inner frame.""" + if isolated: + return Frame(self.eval_ctx, level=self.symbols.level + 1) + return Frame(self.eval_ctx, self) + + def soft(self) -> "te.Self": + """Return a soft frame. A soft frame may not be modified as + standalone thing as it shares the resources with the frame it + was created of, but it's not a rootlevel frame any longer. + + This is only used to implement if-statements and conditional + expressions. + """ + rv = self.copy() + rv.rootlevel = False + rv.soft_frame = True + return rv + + __copy__ = copy + + +class VisitorExit(RuntimeError): + """Exception used by the `UndeclaredNameVisitor` to signal a stop.""" + + +class DependencyFinderVisitor(NodeVisitor): + """A visitor that collects filter and test calls.""" + + def __init__(self) -> None: + self.filters: t.Set[str] = set() + self.tests: t.Set[str] = set() + + def visit_Filter(self, node: nodes.Filter) -> None: + self.generic_visit(node) + self.filters.add(node.name) + + def visit_Test(self, node: nodes.Test) -> None: + self.generic_visit(node) + self.tests.add(node.name) + + def visit_Block(self, node: nodes.Block) -> None: + """Stop visiting at blocks.""" + + +class UndeclaredNameVisitor(NodeVisitor): + """A visitor that checks if a name is accessed without being + declared. This is different from the frame visitor as it will + not stop at closure frames. + """ + + def __init__(self, names: t.Iterable[str]) -> None: + self.names = set(names) + self.undeclared: t.Set[str] = set() + + def visit_Name(self, node: nodes.Name) -> None: + if node.ctx == "load" and node.name in self.names: + self.undeclared.add(node.name) + if self.undeclared == self.names: + raise VisitorExit() + else: + self.names.discard(node.name) + + def visit_Block(self, node: nodes.Block) -> None: + """Stop visiting a blocks.""" + + +class CompilerExit(Exception): + """Raised if the compiler encountered a situation where it just + doesn't make sense to further process the code. Any block that + raises such an exception is not further processed. + """ + + +class CodeGenerator(NodeVisitor): + def __init__( + self, + environment: "Environment", + name: t.Optional[str], + filename: t.Optional[str], + stream: t.Optional[t.TextIO] = None, + defer_init: bool = False, + optimized: bool = True, + ) -> None: + if stream is None: + stream = StringIO() + self.environment = environment + self.name = name + self.filename = filename + self.stream = stream + self.created_block_context = False + self.defer_init = defer_init + self.optimizer: t.Optional[Optimizer] = None + + if optimized: + self.optimizer = Optimizer(environment) + + # aliases for imports + self.import_aliases: t.Dict[str, str] = {} + + # a registry for all blocks. Because blocks are moved out + # into the global python scope they are registered here + self.blocks: t.Dict[str, nodes.Block] = {} + + # the number of extends statements so far + self.extends_so_far = 0 + + # some templates have a rootlevel extends. In this case we + # can safely assume that we're a child template and do some + # more optimizations. + self.has_known_extends = False + + # the current line number + self.code_lineno = 1 + + # registry of all filters and tests (global, not block local) + self.tests: t.Dict[str, str] = {} + self.filters: t.Dict[str, str] = {} + + # the debug information + self.debug_info: t.List[t.Tuple[int, int]] = [] + self._write_debug_info: t.Optional[int] = None + + # the number of new lines before the next write() + self._new_lines = 0 + + # the line number of the last written statement + self._last_line = 0 + + # true if nothing was written so far. + self._first_write = True + + # used by the `temporary_identifier` method to get new + # unique, temporary identifier + self._last_identifier = 0 + + # the current indentation + self._indentation = 0 + + # Tracks toplevel assignments + self._assign_stack: t.List[t.Set[str]] = [] + + # Tracks parameter definition blocks + self._param_def_block: t.List[t.Set[str]] = [] + + # Tracks the current context. + self._context_reference_stack = ["context"] + + @property + def optimized(self) -> bool: + return self.optimizer is not None + + # -- Various compilation helpers + + def fail(self, msg: str, lineno: int) -> "te.NoReturn": + """Fail with a :exc:`TemplateAssertionError`.""" + raise TemplateAssertionError(msg, lineno, self.name, self.filename) + + def temporary_identifier(self) -> str: + """Get a new unique identifier.""" + self._last_identifier += 1 + return f"t_{self._last_identifier}" + + def buffer(self, frame: Frame) -> None: + """Enable buffering for the frame from that point onwards.""" + frame.buffer = self.temporary_identifier() + self.writeline(f"{frame.buffer} = []") + + def return_buffer_contents( + self, frame: Frame, force_unescaped: bool = False + ) -> None: + """Return the buffer contents of the frame.""" + if not force_unescaped: + if frame.eval_ctx.volatile: + self.writeline("if context.eval_ctx.autoescape:") + self.indent() + self.writeline(f"return Markup(concat({frame.buffer}))") + self.outdent() + self.writeline("else:") + self.indent() + self.writeline(f"return concat({frame.buffer})") + self.outdent() + return + elif frame.eval_ctx.autoescape: + self.writeline(f"return Markup(concat({frame.buffer}))") + return + self.writeline(f"return concat({frame.buffer})") + + def indent(self) -> None: + """Indent by one.""" + self._indentation += 1 + + def outdent(self, step: int = 1) -> None: + """Outdent by step.""" + self._indentation -= step + + def start_write(self, frame: Frame, node: t.Optional[nodes.Node] = None) -> None: + """Yield or write into the frame buffer.""" + if frame.buffer is None: + self.writeline("yield ", node) + else: + self.writeline(f"{frame.buffer}.append(", node) + + def end_write(self, frame: Frame) -> None: + """End the writing process started by `start_write`.""" + if frame.buffer is not None: + self.write(")") + + def simple_write( + self, s: str, frame: Frame, node: t.Optional[nodes.Node] = None + ) -> None: + """Simple shortcut for start_write + write + end_write.""" + self.start_write(frame, node) + self.write(s) + self.end_write(frame) + + def blockvisit(self, nodes: t.Iterable[nodes.Node], frame: Frame) -> None: + """Visit a list of nodes as block in a frame. If the current frame + is no buffer a dummy ``if 0: yield None`` is written automatically. + """ + try: + self.writeline("pass") + for node in nodes: + self.visit(node, frame) + except CompilerExit: + pass + + def write(self, x: str) -> None: + """Write a string into the output stream.""" + if self._new_lines: + if not self._first_write: + self.stream.write("\n" * self._new_lines) + self.code_lineno += self._new_lines + if self._write_debug_info is not None: + self.debug_info.append((self._write_debug_info, self.code_lineno)) + self._write_debug_info = None + self._first_write = False + self.stream.write(" " * self._indentation) + self._new_lines = 0 + self.stream.write(x) + + def writeline( + self, x: str, node: t.Optional[nodes.Node] = None, extra: int = 0 + ) -> None: + """Combination of newline and write.""" + self.newline(node, extra) + self.write(x) + + def newline(self, node: t.Optional[nodes.Node] = None, extra: int = 0) -> None: + """Add one or more newlines before the next write.""" + self._new_lines = max(self._new_lines, 1 + extra) + if node is not None and node.lineno != self._last_line: + self._write_debug_info = node.lineno + self._last_line = node.lineno + + def signature( + self, + node: t.Union[nodes.Call, nodes.Filter, nodes.Test], + frame: Frame, + extra_kwargs: t.Optional[t.Mapping[str, t.Any]] = None, + ) -> None: + """Writes a function call to the stream for the current node. + A leading comma is added automatically. The extra keyword + arguments may not include python keywords otherwise a syntax + error could occur. The extra keyword arguments should be given + as python dict. + """ + # if any of the given keyword arguments is a python keyword + # we have to make sure that no invalid call is created. + kwarg_workaround = any( + is_python_keyword(t.cast(str, k)) + for k in chain((x.key for x in node.kwargs), extra_kwargs or ()) + ) + + for arg in node.args: + self.write(", ") + self.visit(arg, frame) + + if not kwarg_workaround: + for kwarg in node.kwargs: + self.write(", ") + self.visit(kwarg, frame) + if extra_kwargs is not None: + for key, value in extra_kwargs.items(): + self.write(f", {key}={value}") + if node.dyn_args: + self.write(", *") + self.visit(node.dyn_args, frame) + + if kwarg_workaround: + if node.dyn_kwargs is not None: + self.write(", **dict({") + else: + self.write(", **{") + for kwarg in node.kwargs: + self.write(f"{kwarg.key!r}: ") + self.visit(kwarg.value, frame) + self.write(", ") + if extra_kwargs is not None: + for key, value in extra_kwargs.items(): + self.write(f"{key!r}: {value}, ") + if node.dyn_kwargs is not None: + self.write("}, **") + self.visit(node.dyn_kwargs, frame) + self.write(")") + else: + self.write("}") + + elif node.dyn_kwargs is not None: + self.write(", **") + self.visit(node.dyn_kwargs, frame) + + def pull_dependencies(self, nodes: t.Iterable[nodes.Node]) -> None: + """Find all filter and test names used in the template and + assign them to variables in the compiled namespace. Checking + that the names are registered with the environment is done when + compiling the Filter and Test nodes. If the node is in an If or + CondExpr node, the check is done at runtime instead. + + .. versionchanged:: 3.0 + Filters and tests in If and CondExpr nodes are checked at + runtime instead of compile time. + """ + visitor = DependencyFinderVisitor() + + for node in nodes: + visitor.visit(node) + + for id_map, names, dependency in ( + (self.filters, visitor.filters, "filters"), + ( + self.tests, + visitor.tests, + "tests", + ), + ): + for name in sorted(names): + if name not in id_map: + id_map[name] = self.temporary_identifier() + + # add check during runtime that dependencies used inside of executed + # blocks are defined, as this step may be skipped during compile time + self.writeline("try:") + self.indent() + self.writeline(f"{id_map[name]} = environment.{dependency}[{name!r}]") + self.outdent() + self.writeline("except KeyError:") + self.indent() + self.writeline("@internalcode") + self.writeline(f"def {id_map[name]}(*unused):") + self.indent() + self.writeline( + f'raise TemplateRuntimeError("No {dependency[:-1]}' + f' named {name!r} found.")' + ) + self.outdent() + self.outdent() + + def enter_frame(self, frame: Frame) -> None: + undefs = [] + for target, (action, param) in frame.symbols.loads.items(): + if action == VAR_LOAD_PARAMETER: + pass + elif action == VAR_LOAD_RESOLVE: + self.writeline(f"{target} = {self.get_resolve_func()}({param!r})") + elif action == VAR_LOAD_ALIAS: + self.writeline(f"{target} = {param}") + elif action == VAR_LOAD_UNDEFINED: + undefs.append(target) + else: + raise NotImplementedError("unknown load instruction") + if undefs: + self.writeline(f"{' = '.join(undefs)} = missing") + + def leave_frame(self, frame: Frame, with_python_scope: bool = False) -> None: + if not with_python_scope: + undefs = [] + for target in frame.symbols.loads: + undefs.append(target) + if undefs: + self.writeline(f"{' = '.join(undefs)} = missing") + + def choose_async(self, async_value: str = "async ", sync_value: str = "") -> str: + return async_value if self.environment.is_async else sync_value + + def func(self, name: str) -> str: + return f"{self.choose_async()}def {name}" + + def macro_body( + self, node: t.Union[nodes.Macro, nodes.CallBlock], frame: Frame + ) -> t.Tuple[Frame, MacroRef]: + """Dump the function def of a macro or call block.""" + frame = frame.inner() + frame.symbols.analyze_node(node) + macro_ref = MacroRef(node) + + explicit_caller = None + skip_special_params = set() + args = [] + + for idx, arg in enumerate(node.args): + if arg.name == "caller": + explicit_caller = idx + if arg.name in ("kwargs", "varargs"): + skip_special_params.add(arg.name) + args.append(frame.symbols.ref(arg.name)) + + undeclared = find_undeclared(node.body, ("caller", "kwargs", "varargs")) + + if "caller" in undeclared: + # In older Jinja versions there was a bug that allowed caller + # to retain the special behavior even if it was mentioned in + # the argument list. However thankfully this was only really + # working if it was the last argument. So we are explicitly + # checking this now and error out if it is anywhere else in + # the argument list. + if explicit_caller is not None: + try: + node.defaults[explicit_caller - len(node.args)] + except IndexError: + self.fail( + "When defining macros or call blocks the " + 'special "caller" argument must be omitted ' + "or be given a default.", + node.lineno, + ) + else: + args.append(frame.symbols.declare_parameter("caller")) + macro_ref.accesses_caller = True + if "kwargs" in undeclared and "kwargs" not in skip_special_params: + args.append(frame.symbols.declare_parameter("kwargs")) + macro_ref.accesses_kwargs = True + if "varargs" in undeclared and "varargs" not in skip_special_params: + args.append(frame.symbols.declare_parameter("varargs")) + macro_ref.accesses_varargs = True + + # macros are delayed, they never require output checks + frame.require_output_check = False + frame.symbols.analyze_node(node) + self.writeline(f"{self.func('macro')}({', '.join(args)}):", node) + self.indent() + + self.buffer(frame) + self.enter_frame(frame) + + self.push_parameter_definitions(frame) + for idx, arg in enumerate(node.args): + ref = frame.symbols.ref(arg.name) + self.writeline(f"if {ref} is missing:") + self.indent() + try: + default = node.defaults[idx - len(node.args)] + except IndexError: + self.writeline( + f'{ref} = undefined("parameter {arg.name!r} was not provided",' + f" name={arg.name!r})" + ) + else: + self.writeline(f"{ref} = ") + self.visit(default, frame) + self.mark_parameter_stored(ref) + self.outdent() + self.pop_parameter_definitions() + + self.blockvisit(node.body, frame) + self.return_buffer_contents(frame, force_unescaped=True) + self.leave_frame(frame, with_python_scope=True) + self.outdent() + + return frame, macro_ref + + def macro_def(self, macro_ref: MacroRef, frame: Frame) -> None: + """Dump the macro definition for the def created by macro_body.""" + arg_tuple = ", ".join(repr(x.name) for x in macro_ref.node.args) + name = getattr(macro_ref.node, "name", None) + if len(macro_ref.node.args) == 1: + arg_tuple += "," + self.write( + f"Macro(environment, macro, {name!r}, ({arg_tuple})," + f" {macro_ref.accesses_kwargs!r}, {macro_ref.accesses_varargs!r}," + f" {macro_ref.accesses_caller!r}, context.eval_ctx.autoescape)" + ) + + def position(self, node: nodes.Node) -> str: + """Return a human readable position for the node.""" + rv = f"line {node.lineno}" + if self.name is not None: + rv = f"{rv} in {self.name!r}" + return rv + + def dump_local_context(self, frame: Frame) -> str: + items_kv = ", ".join( + f"{name!r}: {target}" + for name, target in frame.symbols.dump_stores().items() + ) + return f"{{{items_kv}}}" + + def write_commons(self) -> None: + """Writes a common preamble that is used by root and block functions. + Primarily this sets up common local helpers and enforces a generator + through a dead branch. + """ + self.writeline("resolve = context.resolve_or_missing") + self.writeline("undefined = environment.undefined") + self.writeline("concat = environment.concat") + # always use the standard Undefined class for the implicit else of + # conditional expressions + self.writeline("cond_expr_undefined = Undefined") + self.writeline("if 0: yield None") + + def push_parameter_definitions(self, frame: Frame) -> None: + """Pushes all parameter targets from the given frame into a local + stack that permits tracking of yet to be assigned parameters. In + particular this enables the optimization from `visit_Name` to skip + undefined expressions for parameters in macros as macros can reference + otherwise unbound parameters. + """ + self._param_def_block.append(frame.symbols.dump_param_targets()) + + def pop_parameter_definitions(self) -> None: + """Pops the current parameter definitions set.""" + self._param_def_block.pop() + + def mark_parameter_stored(self, target: str) -> None: + """Marks a parameter in the current parameter definitions as stored. + This will skip the enforced undefined checks. + """ + if self._param_def_block: + self._param_def_block[-1].discard(target) + + def push_context_reference(self, target: str) -> None: + self._context_reference_stack.append(target) + + def pop_context_reference(self) -> None: + self._context_reference_stack.pop() + + def get_context_ref(self) -> str: + return self._context_reference_stack[-1] + + def get_resolve_func(self) -> str: + target = self._context_reference_stack[-1] + if target == "context": + return "resolve" + return f"{target}.resolve" + + def derive_context(self, frame: Frame) -> str: + return f"{self.get_context_ref()}.derived({self.dump_local_context(frame)})" + + def parameter_is_undeclared(self, target: str) -> bool: + """Checks if a given target is an undeclared parameter.""" + if not self._param_def_block: + return False + return target in self._param_def_block[-1] + + def push_assign_tracking(self) -> None: + """Pushes a new layer for assignment tracking.""" + self._assign_stack.append(set()) + + def pop_assign_tracking(self, frame: Frame) -> None: + """Pops the topmost level for assignment tracking and updates the + context variables if necessary. + """ + vars = self._assign_stack.pop() + if ( + not frame.block_frame + and not frame.loop_frame + and not frame.toplevel + or not vars + ): + return + public_names = [x for x in vars if x[:1] != "_"] + if len(vars) == 1: + name = next(iter(vars)) + ref = frame.symbols.ref(name) + if frame.loop_frame: + self.writeline(f"_loop_vars[{name!r}] = {ref}") + return + if frame.block_frame: + self.writeline(f"_block_vars[{name!r}] = {ref}") + return + self.writeline(f"context.vars[{name!r}] = {ref}") + else: + if frame.loop_frame: + self.writeline("_loop_vars.update({") + elif frame.block_frame: + self.writeline("_block_vars.update({") + else: + self.writeline("context.vars.update({") + for idx, name in enumerate(sorted(vars)): + if idx: + self.write(", ") + ref = frame.symbols.ref(name) + self.write(f"{name!r}: {ref}") + self.write("})") + if not frame.block_frame and not frame.loop_frame and public_names: + if len(public_names) == 1: + self.writeline(f"context.exported_vars.add({public_names[0]!r})") + else: + names_str = ", ".join(map(repr, sorted(public_names))) + self.writeline(f"context.exported_vars.update(({names_str}))") + + # -- Statement Visitors + + def visit_Template( + self, node: nodes.Template, frame: t.Optional[Frame] = None + ) -> None: + assert frame is None, "no root frame allowed" + eval_ctx = EvalContext(self.environment, self.name) + + from .runtime import async_exported + from .runtime import exported + + if self.environment.is_async: + exported_names = sorted(exported + async_exported) + else: + exported_names = sorted(exported) + + self.writeline("from jinja2.runtime import " + ", ".join(exported_names)) + + # if we want a deferred initialization we cannot move the + # environment into a local name + envenv = "" if self.defer_init else ", environment=environment" + + # do we have an extends tag at all? If not, we can save some + # overhead by just not processing any inheritance code. + have_extends = node.find(nodes.Extends) is not None + + # find all blocks + for block in node.find_all(nodes.Block): + if block.name in self.blocks: + self.fail(f"block {block.name!r} defined twice", block.lineno) + self.blocks[block.name] = block + + # find all imports and import them + for import_ in node.find_all(nodes.ImportedName): + if import_.importname not in self.import_aliases: + imp = import_.importname + self.import_aliases[imp] = alias = self.temporary_identifier() + if "." in imp: + module, obj = imp.rsplit(".", 1) + self.writeline(f"from {module} import {obj} as {alias}") + else: + self.writeline(f"import {imp} as {alias}") + + # add the load name + self.writeline(f"name = {self.name!r}") + + # generate the root render function. + self.writeline( + f"{self.func('root')}(context, missing=missing{envenv}):", extra=1 + ) + self.indent() + self.write_commons() + + # process the root + frame = Frame(eval_ctx) + if "self" in find_undeclared(node.body, ("self",)): + ref = frame.symbols.declare_parameter("self") + self.writeline(f"{ref} = TemplateReference(context)") + frame.symbols.analyze_node(node) + frame.toplevel = frame.rootlevel = True + frame.require_output_check = have_extends and not self.has_known_extends + if have_extends: + self.writeline("parent_template = None") + self.enter_frame(frame) + self.pull_dependencies(node.body) + self.blockvisit(node.body, frame) + self.leave_frame(frame, with_python_scope=True) + self.outdent() + + # make sure that the parent root is called. + if have_extends: + if not self.has_known_extends: + self.indent() + self.writeline("if parent_template is not None:") + self.indent() + if not self.environment.is_async: + self.writeline("yield from parent_template.root_render_func(context)") + else: + self.writeline("agen = parent_template.root_render_func(context)") + self.writeline("try:") + self.indent() + self.writeline("async for event in agen:") + self.indent() + self.writeline("yield event") + self.outdent() + self.outdent() + self.writeline("finally: await agen.aclose()") + self.outdent(1 + (not self.has_known_extends)) + + # at this point we now have the blocks collected and can visit them too. + for name, block in self.blocks.items(): + self.writeline( + f"{self.func('block_' + name)}(context, missing=missing{envenv}):", + block, + 1, + ) + self.indent() + self.write_commons() + # It's important that we do not make this frame a child of the + # toplevel template. This would cause a variety of + # interesting issues with identifier tracking. + block_frame = Frame(eval_ctx) + block_frame.block_frame = True + undeclared = find_undeclared(block.body, ("self", "super")) + if "self" in undeclared: + ref = block_frame.symbols.declare_parameter("self") + self.writeline(f"{ref} = TemplateReference(context)") + if "super" in undeclared: + ref = block_frame.symbols.declare_parameter("super") + self.writeline(f"{ref} = context.super({name!r}, block_{name})") + block_frame.symbols.analyze_node(block) + block_frame.block = name + self.writeline("_block_vars = {}") + self.enter_frame(block_frame) + self.pull_dependencies(block.body) + self.blockvisit(block.body, block_frame) + self.leave_frame(block_frame, with_python_scope=True) + self.outdent() + + blocks_kv_str = ", ".join(f"{x!r}: block_{x}" for x in self.blocks) + self.writeline(f"blocks = {{{blocks_kv_str}}}", extra=1) + debug_kv_str = "&".join(f"{k}={v}" for k, v in self.debug_info) + self.writeline(f"debug_info = {debug_kv_str!r}") + + def visit_Block(self, node: nodes.Block, frame: Frame) -> None: + """Call a block and register it for the template.""" + level = 0 + if frame.toplevel: + # if we know that we are a child template, there is no need to + # check if we are one + if self.has_known_extends: + return + if self.extends_so_far > 0: + self.writeline("if parent_template is None:") + self.indent() + level += 1 + + if node.scoped: + context = self.derive_context(frame) + else: + context = self.get_context_ref() + + if node.required: + self.writeline(f"if len(context.blocks[{node.name!r}]) <= 1:", node) + self.indent() + self.writeline( + f'raise TemplateRuntimeError("Required block {node.name!r} not found")', + node, + ) + self.outdent() + + if not self.environment.is_async and frame.buffer is None: + self.writeline( + f"yield from context.blocks[{node.name!r}][0]({context})", node + ) + else: + self.writeline(f"gen = context.blocks[{node.name!r}][0]({context})") + self.writeline("try:") + self.indent() + self.writeline( + f"{self.choose_async()}for event in gen:", + node, + ) + self.indent() + self.simple_write("event", frame) + self.outdent() + self.outdent() + self.writeline( + f"finally: {self.choose_async('await gen.aclose()', 'gen.close()')}" + ) + + self.outdent(level) + + def visit_Extends(self, node: nodes.Extends, frame: Frame) -> None: + """Calls the extender.""" + if not frame.toplevel: + self.fail("cannot use extend from a non top-level scope", node.lineno) + + # if the number of extends statements in general is zero so + # far, we don't have to add a check if something extended + # the template before this one. + if self.extends_so_far > 0: + # if we have a known extends we just add a template runtime + # error into the generated code. We could catch that at compile + # time too, but i welcome it not to confuse users by throwing the + # same error at different times just "because we can". + if not self.has_known_extends: + self.writeline("if parent_template is not None:") + self.indent() + self.writeline('raise TemplateRuntimeError("extended multiple times")') + + # if we have a known extends already we don't need that code here + # as we know that the template execution will end here. + if self.has_known_extends: + raise CompilerExit() + else: + self.outdent() + + self.writeline("parent_template = environment.get_template(", node) + self.visit(node.template, frame) + self.write(f", {self.name!r})") + self.writeline("for name, parent_block in parent_template.blocks.items():") + self.indent() + self.writeline("context.blocks.setdefault(name, []).append(parent_block)") + self.outdent() + + # if this extends statement was in the root level we can take + # advantage of that information and simplify the generated code + # in the top level from this point onwards + if frame.rootlevel: + self.has_known_extends = True + + # and now we have one more + self.extends_so_far += 1 + + def visit_Include(self, node: nodes.Include, frame: Frame) -> None: + """Handles includes.""" + if node.ignore_missing: + self.writeline("try:") + self.indent() + + func_name = "get_or_select_template" + if isinstance(node.template, nodes.Const): + if isinstance(node.template.value, str): + func_name = "get_template" + elif isinstance(node.template.value, (tuple, list)): + func_name = "select_template" + elif isinstance(node.template, (nodes.Tuple, nodes.List)): + func_name = "select_template" + + self.writeline(f"template = environment.{func_name}(", node) + self.visit(node.template, frame) + self.write(f", {self.name!r})") + if node.ignore_missing: + self.outdent() + self.writeline("except TemplateNotFound:") + self.indent() + self.writeline("pass") + self.outdent() + self.writeline("else:") + self.indent() + + def loop_body() -> None: + self.indent() + self.simple_write("event", frame) + self.outdent() + + if node.with_context: + self.writeline( + f"gen = template.root_render_func(" + "template.new_context(context.get_all(), True," + f" {self.dump_local_context(frame)}))" + ) + self.writeline("try:") + self.indent() + self.writeline(f"{self.choose_async()}for event in gen:") + loop_body() + self.outdent() + self.writeline( + f"finally: {self.choose_async('await gen.aclose()', 'gen.close()')}" + ) + elif self.environment.is_async: + self.writeline( + "for event in (await template._get_default_module_async())" + "._body_stream:" + ) + loop_body() + else: + self.writeline("yield from template._get_default_module()._body_stream") + + if node.ignore_missing: + self.outdent() + + def _import_common( + self, node: t.Union[nodes.Import, nodes.FromImport], frame: Frame + ) -> None: + self.write(f"{self.choose_async('await ')}environment.get_template(") + self.visit(node.template, frame) + self.write(f", {self.name!r}).") + + if node.with_context: + f_name = f"make_module{self.choose_async('_async')}" + self.write( + f"{f_name}(context.get_all(), True, {self.dump_local_context(frame)})" + ) + else: + self.write(f"_get_default_module{self.choose_async('_async')}(context)") + + def visit_Import(self, node: nodes.Import, frame: Frame) -> None: + """Visit regular imports.""" + self.writeline(f"{frame.symbols.ref(node.target)} = ", node) + if frame.toplevel: + self.write(f"context.vars[{node.target!r}] = ") + + self._import_common(node, frame) + + if frame.toplevel and not node.target.startswith("_"): + self.writeline(f"context.exported_vars.discard({node.target!r})") + + def visit_FromImport(self, node: nodes.FromImport, frame: Frame) -> None: + """Visit named imports.""" + self.newline(node) + self.write("included_template = ") + self._import_common(node, frame) + var_names = [] + discarded_names = [] + for name in node.names: + if isinstance(name, tuple): + name, alias = name + else: + alias = name + self.writeline( + f"{frame.symbols.ref(alias)} =" + f" getattr(included_template, {name!r}, missing)" + ) + self.writeline(f"if {frame.symbols.ref(alias)} is missing:") + self.indent() + # The position will contain the template name, and will be formatted + # into a string that will be compiled into an f-string. Curly braces + # in the name must be replaced with escapes so that they will not be + # executed as part of the f-string. + position = self.position(node).replace("{", "{{").replace("}", "}}") + message = ( + "the template {included_template.__name__!r}" + f" (imported on {position})" + f" does not export the requested name {name!r}" + ) + self.writeline( + f"{frame.symbols.ref(alias)} = undefined(f{message!r}, name={name!r})" + ) + self.outdent() + if frame.toplevel: + var_names.append(alias) + if not alias.startswith("_"): + discarded_names.append(alias) + + if var_names: + if len(var_names) == 1: + name = var_names[0] + self.writeline(f"context.vars[{name!r}] = {frame.symbols.ref(name)}") + else: + names_kv = ", ".join( + f"{name!r}: {frame.symbols.ref(name)}" for name in var_names + ) + self.writeline(f"context.vars.update({{{names_kv}}})") + if discarded_names: + if len(discarded_names) == 1: + self.writeline(f"context.exported_vars.discard({discarded_names[0]!r})") + else: + names_str = ", ".join(map(repr, discarded_names)) + self.writeline( + f"context.exported_vars.difference_update(({names_str}))" + ) + + def visit_For(self, node: nodes.For, frame: Frame) -> None: + loop_frame = frame.inner() + loop_frame.loop_frame = True + test_frame = frame.inner() + else_frame = frame.inner() + + # try to figure out if we have an extended loop. An extended loop + # is necessary if the loop is in recursive mode if the special loop + # variable is accessed in the body if the body is a scoped block. + extended_loop = ( + node.recursive + or "loop" + in find_undeclared(node.iter_child_nodes(only=("body",)), ("loop",)) + or any(block.scoped for block in node.find_all(nodes.Block)) + ) + + loop_ref = None + if extended_loop: + loop_ref = loop_frame.symbols.declare_parameter("loop") + + loop_frame.symbols.analyze_node(node, for_branch="body") + if node.else_: + else_frame.symbols.analyze_node(node, for_branch="else") + + if node.test: + loop_filter_func = self.temporary_identifier() + test_frame.symbols.analyze_node(node, for_branch="test") + self.writeline(f"{self.func(loop_filter_func)}(fiter):", node.test) + self.indent() + self.enter_frame(test_frame) + self.writeline(self.choose_async("async for ", "for ")) + self.visit(node.target, loop_frame) + self.write(" in ") + self.write(self.choose_async("auto_aiter(fiter)", "fiter")) + self.write(":") + self.indent() + self.writeline("if ", node.test) + self.visit(node.test, test_frame) + self.write(":") + self.indent() + self.writeline("yield ") + self.visit(node.target, loop_frame) + self.outdent(3) + self.leave_frame(test_frame, with_python_scope=True) + + # if we don't have an recursive loop we have to find the shadowed + # variables at that point. Because loops can be nested but the loop + # variable is a special one we have to enforce aliasing for it. + if node.recursive: + self.writeline( + f"{self.func('loop')}(reciter, loop_render_func, depth=0):", node + ) + self.indent() + self.buffer(loop_frame) + + # Use the same buffer for the else frame + else_frame.buffer = loop_frame.buffer + + # make sure the loop variable is a special one and raise a template + # assertion error if a loop tries to write to loop + if extended_loop: + self.writeline(f"{loop_ref} = missing") + + for name in node.find_all(nodes.Name): + if name.ctx == "store" and name.name == "loop": + self.fail( + "Can't assign to special loop variable in for-loop target", + name.lineno, + ) + + if node.else_: + iteration_indicator = self.temporary_identifier() + self.writeline(f"{iteration_indicator} = 1") + + self.writeline(self.choose_async("async for ", "for "), node) + self.visit(node.target, loop_frame) + if extended_loop: + self.write(f", {loop_ref} in {self.choose_async('Async')}LoopContext(") + else: + self.write(" in ") + + if node.test: + self.write(f"{loop_filter_func}(") + if node.recursive: + self.write("reciter") + else: + if self.environment.is_async and not extended_loop: + self.write("auto_aiter(") + self.visit(node.iter, frame) + if self.environment.is_async and not extended_loop: + self.write(")") + if node.test: + self.write(")") + + if node.recursive: + self.write(", undefined, loop_render_func, depth):") + else: + self.write(", undefined):" if extended_loop else ":") + + self.indent() + self.enter_frame(loop_frame) + + self.writeline("_loop_vars = {}") + self.blockvisit(node.body, loop_frame) + if node.else_: + self.writeline(f"{iteration_indicator} = 0") + self.outdent() + self.leave_frame( + loop_frame, with_python_scope=node.recursive and not node.else_ + ) + + if node.else_: + self.writeline(f"if {iteration_indicator}:") + self.indent() + self.enter_frame(else_frame) + self.blockvisit(node.else_, else_frame) + self.leave_frame(else_frame) + self.outdent() + + # if the node was recursive we have to return the buffer contents + # and start the iteration code + if node.recursive: + self.return_buffer_contents(loop_frame) + self.outdent() + self.start_write(frame, node) + self.write(f"{self.choose_async('await ')}loop(") + if self.environment.is_async: + self.write("auto_aiter(") + self.visit(node.iter, frame) + if self.environment.is_async: + self.write(")") + self.write(", loop)") + self.end_write(frame) + + # at the end of the iteration, clear any assignments made in the + # loop from the top level + if self._assign_stack: + self._assign_stack[-1].difference_update(loop_frame.symbols.stores) + + def visit_If(self, node: nodes.If, frame: Frame) -> None: + if_frame = frame.soft() + self.writeline("if ", node) + self.visit(node.test, if_frame) + self.write(":") + self.indent() + self.blockvisit(node.body, if_frame) + self.outdent() + for elif_ in node.elif_: + self.writeline("elif ", elif_) + self.visit(elif_.test, if_frame) + self.write(":") + self.indent() + self.blockvisit(elif_.body, if_frame) + self.outdent() + if node.else_: + self.writeline("else:") + self.indent() + self.blockvisit(node.else_, if_frame) + self.outdent() + + def visit_Macro(self, node: nodes.Macro, frame: Frame) -> None: + macro_frame, macro_ref = self.macro_body(node, frame) + self.newline() + if frame.toplevel: + if not node.name.startswith("_"): + self.write(f"context.exported_vars.add({node.name!r})") + self.writeline(f"context.vars[{node.name!r}] = ") + self.write(f"{frame.symbols.ref(node.name)} = ") + self.macro_def(macro_ref, macro_frame) + + def visit_CallBlock(self, node: nodes.CallBlock, frame: Frame) -> None: + call_frame, macro_ref = self.macro_body(node, frame) + self.writeline("caller = ") + self.macro_def(macro_ref, call_frame) + self.start_write(frame, node) + self.visit_Call(node.call, frame, forward_caller=True) + self.end_write(frame) + + def visit_FilterBlock(self, node: nodes.FilterBlock, frame: Frame) -> None: + filter_frame = frame.inner() + filter_frame.symbols.analyze_node(node) + self.enter_frame(filter_frame) + self.buffer(filter_frame) + self.blockvisit(node.body, filter_frame) + self.start_write(frame, node) + self.visit_Filter(node.filter, filter_frame) + self.end_write(frame) + self.leave_frame(filter_frame) + + def visit_With(self, node: nodes.With, frame: Frame) -> None: + with_frame = frame.inner() + with_frame.symbols.analyze_node(node) + self.enter_frame(with_frame) + for target, expr in zip(node.targets, node.values): + self.newline() + self.visit(target, with_frame) + self.write(" = ") + self.visit(expr, frame) + self.blockvisit(node.body, with_frame) + self.leave_frame(with_frame) + + def visit_ExprStmt(self, node: nodes.ExprStmt, frame: Frame) -> None: + self.newline(node) + self.visit(node.node, frame) + + class _FinalizeInfo(t.NamedTuple): + const: t.Optional[t.Callable[..., str]] + src: t.Optional[str] + + @staticmethod + def _default_finalize(value: t.Any) -> t.Any: + """The default finalize function if the environment isn't + configured with one. Or, if the environment has one, this is + called on that function's output for constants. + """ + return str(value) + + _finalize: t.Optional[_FinalizeInfo] = None + + def _make_finalize(self) -> _FinalizeInfo: + """Build the finalize function to be used on constants and at + runtime. Cached so it's only created once for all output nodes. + + Returns a ``namedtuple`` with the following attributes: + + ``const`` + A function to finalize constant data at compile time. + + ``src`` + Source code to output around nodes to be evaluated at + runtime. + """ + if self._finalize is not None: + return self._finalize + + finalize: t.Optional[t.Callable[..., t.Any]] + finalize = default = self._default_finalize + src = None + + if self.environment.finalize: + src = "environment.finalize(" + env_finalize = self.environment.finalize + pass_arg = { + _PassArg.context: "context", + _PassArg.eval_context: "context.eval_ctx", + _PassArg.environment: "environment", + }.get( + _PassArg.from_obj(env_finalize) # type: ignore + ) + finalize = None + + if pass_arg is None: + + def finalize(value: t.Any) -> t.Any: # noqa: F811 + return default(env_finalize(value)) + + else: + src = f"{src}{pass_arg}, " + + if pass_arg == "environment": + + def finalize(value: t.Any) -> t.Any: # noqa: F811 + return default(env_finalize(self.environment, value)) + + self._finalize = self._FinalizeInfo(finalize, src) + return self._finalize + + def _output_const_repr(self, group: t.Iterable[t.Any]) -> str: + """Given a group of constant values converted from ``Output`` + child nodes, produce a string to write to the template module + source. + """ + return repr(concat(group)) + + def _output_child_to_const( + self, node: nodes.Expr, frame: Frame, finalize: _FinalizeInfo + ) -> str: + """Try to optimize a child of an ``Output`` node by trying to + convert it to constant, finalized data at compile time. + + If :exc:`Impossible` is raised, the node is not constant and + will be evaluated at runtime. Any other exception will also be + evaluated at runtime for easier debugging. + """ + const = node.as_const(frame.eval_ctx) + + if frame.eval_ctx.autoescape: + const = escape(const) + + # Template data doesn't go through finalize. + if isinstance(node, nodes.TemplateData): + return str(const) + + return finalize.const(const) # type: ignore + + def _output_child_pre( + self, node: nodes.Expr, frame: Frame, finalize: _FinalizeInfo + ) -> None: + """Output extra source code before visiting a child of an + ``Output`` node. + """ + if frame.eval_ctx.volatile: + self.write("(escape if context.eval_ctx.autoescape else str)(") + elif frame.eval_ctx.autoescape: + self.write("escape(") + else: + self.write("str(") + + if finalize.src is not None: + self.write(finalize.src) + + def _output_child_post( + self, node: nodes.Expr, frame: Frame, finalize: _FinalizeInfo + ) -> None: + """Output extra source code after visiting a child of an + ``Output`` node. + """ + self.write(")") + + if finalize.src is not None: + self.write(")") + + def visit_Output(self, node: nodes.Output, frame: Frame) -> None: + # If an extends is active, don't render outside a block. + if frame.require_output_check: + # A top-level extends is known to exist at compile time. + if self.has_known_extends: + return + + self.writeline("if parent_template is None:") + self.indent() + + finalize = self._make_finalize() + body: t.List[t.Union[t.List[t.Any], nodes.Expr]] = [] + + # Evaluate constants at compile time if possible. Each item in + # body will be either a list of static data or a node to be + # evaluated at runtime. + for child in node.nodes: + try: + if not ( + # If the finalize function requires runtime context, + # constants can't be evaluated at compile time. + finalize.const + # Unless it's basic template data that won't be + # finalized anyway. + or isinstance(child, nodes.TemplateData) + ): + raise nodes.Impossible() + + const = self._output_child_to_const(child, frame, finalize) + except (nodes.Impossible, Exception): + # The node was not constant and needs to be evaluated at + # runtime. Or another error was raised, which is easier + # to debug at runtime. + body.append(child) + continue + + if body and isinstance(body[-1], list): + body[-1].append(const) + else: + body.append([const]) + + if frame.buffer is not None: + if len(body) == 1: + self.writeline(f"{frame.buffer}.append(") + else: + self.writeline(f"{frame.buffer}.extend((") + + self.indent() + + for item in body: + if isinstance(item, list): + # A group of constant data to join and output. + val = self._output_const_repr(item) + + if frame.buffer is None: + self.writeline("yield " + val) + else: + self.writeline(val + ",") + else: + if frame.buffer is None: + self.writeline("yield ", item) + else: + self.newline(item) + + # A node to be evaluated at runtime. + self._output_child_pre(item, frame, finalize) + self.visit(item, frame) + self._output_child_post(item, frame, finalize) + + if frame.buffer is not None: + self.write(",") + + if frame.buffer is not None: + self.outdent() + self.writeline(")" if len(body) == 1 else "))") + + if frame.require_output_check: + self.outdent() + + def visit_Assign(self, node: nodes.Assign, frame: Frame) -> None: + self.push_assign_tracking() + + # ``a.b`` is allowed for assignment, and is parsed as an NSRef. However, + # it is only valid if it references a Namespace object. Emit a check for + # that for each ref here, before assignment code is emitted. This can't + # be done in visit_NSRef as the ref could be in the middle of a tuple. + seen_refs: t.Set[str] = set() + + for nsref in node.find_all(nodes.NSRef): + if nsref.name in seen_refs: + # Only emit the check for each reference once, in case the same + # ref is used multiple times in a tuple, `ns.a, ns.b = c, d`. + continue + + seen_refs.add(nsref.name) + ref = frame.symbols.ref(nsref.name) + self.writeline(f"if not isinstance({ref}, Namespace):") + self.indent() + self.writeline( + "raise TemplateRuntimeError" + '("cannot assign attribute on non-namespace object")' + ) + self.outdent() + + self.newline(node) + self.visit(node.target, frame) + self.write(" = ") + self.visit(node.node, frame) + self.pop_assign_tracking(frame) + + def visit_AssignBlock(self, node: nodes.AssignBlock, frame: Frame) -> None: + self.push_assign_tracking() + block_frame = frame.inner() + # This is a special case. Since a set block always captures we + # will disable output checks. This way one can use set blocks + # toplevel even in extended templates. + block_frame.require_output_check = False + block_frame.symbols.analyze_node(node) + self.enter_frame(block_frame) + self.buffer(block_frame) + self.blockvisit(node.body, block_frame) + self.newline(node) + self.visit(node.target, frame) + self.write(" = (Markup if context.eval_ctx.autoescape else identity)(") + if node.filter is not None: + self.visit_Filter(node.filter, block_frame) + else: + self.write(f"concat({block_frame.buffer})") + self.write(")") + self.pop_assign_tracking(frame) + self.leave_frame(block_frame) + + # -- Expression Visitors + + def visit_Name(self, node: nodes.Name, frame: Frame) -> None: + if node.ctx == "store" and ( + frame.toplevel or frame.loop_frame or frame.block_frame + ): + if self._assign_stack: + self._assign_stack[-1].add(node.name) + ref = frame.symbols.ref(node.name) + + # If we are looking up a variable we might have to deal with the + # case where it's undefined. We can skip that case if the load + # instruction indicates a parameter which are always defined. + if node.ctx == "load": + load = frame.symbols.find_load(ref) + if not ( + load is not None + and load[0] == VAR_LOAD_PARAMETER + and not self.parameter_is_undeclared(ref) + ): + self.write( + f"(undefined(name={node.name!r}) if {ref} is missing else {ref})" + ) + return + + self.write(ref) + + def visit_NSRef(self, node: nodes.NSRef, frame: Frame) -> None: + # NSRef is a dotted assignment target a.b=c, but uses a[b]=c internally. + # visit_Assign emits code to validate that each ref is to a Namespace + # object only. That can't be emitted here as the ref could be in the + # middle of a tuple assignment. + ref = frame.symbols.ref(node.name) + self.writeline(f"{ref}[{node.attr!r}]") + + def visit_Const(self, node: nodes.Const, frame: Frame) -> None: + val = node.as_const(frame.eval_ctx) + if isinstance(val, float): + self.write(str(val)) + else: + self.write(repr(val)) + + def visit_TemplateData(self, node: nodes.TemplateData, frame: Frame) -> None: + try: + self.write(repr(node.as_const(frame.eval_ctx))) + except nodes.Impossible: + self.write( + f"(Markup if context.eval_ctx.autoescape else identity)({node.data!r})" + ) + + def visit_Tuple(self, node: nodes.Tuple, frame: Frame) -> None: + self.write("(") + idx = -1 + for idx, item in enumerate(node.items): + if idx: + self.write(", ") + self.visit(item, frame) + self.write(",)" if idx == 0 else ")") + + def visit_List(self, node: nodes.List, frame: Frame) -> None: + self.write("[") + for idx, item in enumerate(node.items): + if idx: + self.write(", ") + self.visit(item, frame) + self.write("]") + + def visit_Dict(self, node: nodes.Dict, frame: Frame) -> None: + self.write("{") + for idx, item in enumerate(node.items): + if idx: + self.write(", ") + self.visit(item.key, frame) + self.write(": ") + self.visit(item.value, frame) + self.write("}") + + visit_Add = _make_binop("+") + visit_Sub = _make_binop("-") + visit_Mul = _make_binop("*") + visit_Div = _make_binop("/") + visit_FloorDiv = _make_binop("//") + visit_Pow = _make_binop("**") + visit_Mod = _make_binop("%") + visit_And = _make_binop("and") + visit_Or = _make_binop("or") + visit_Pos = _make_unop("+") + visit_Neg = _make_unop("-") + visit_Not = _make_unop("not ") + + @optimizeconst + def visit_Concat(self, node: nodes.Concat, frame: Frame) -> None: + if frame.eval_ctx.volatile: + func_name = "(markup_join if context.eval_ctx.volatile else str_join)" + elif frame.eval_ctx.autoescape: + func_name = "markup_join" + else: + func_name = "str_join" + self.write(f"{func_name}((") + for arg in node.nodes: + self.visit(arg, frame) + self.write(", ") + self.write("))") + + @optimizeconst + def visit_Compare(self, node: nodes.Compare, frame: Frame) -> None: + self.write("(") + self.visit(node.expr, frame) + for op in node.ops: + self.visit(op, frame) + self.write(")") + + def visit_Operand(self, node: nodes.Operand, frame: Frame) -> None: + self.write(f" {operators[node.op]} ") + self.visit(node.expr, frame) + + @optimizeconst + def visit_Getattr(self, node: nodes.Getattr, frame: Frame) -> None: + if self.environment.is_async: + self.write("(await auto_await(") + + self.write("environment.getattr(") + self.visit(node.node, frame) + self.write(f", {node.attr!r})") + + if self.environment.is_async: + self.write("))") + + @optimizeconst + def visit_Getitem(self, node: nodes.Getitem, frame: Frame) -> None: + # slices bypass the environment getitem method. + if isinstance(node.arg, nodes.Slice): + self.visit(node.node, frame) + self.write("[") + self.visit(node.arg, frame) + self.write("]") + else: + if self.environment.is_async: + self.write("(await auto_await(") + + self.write("environment.getitem(") + self.visit(node.node, frame) + self.write(", ") + self.visit(node.arg, frame) + self.write(")") + + if self.environment.is_async: + self.write("))") + + def visit_Slice(self, node: nodes.Slice, frame: Frame) -> None: + if node.start is not None: + self.visit(node.start, frame) + self.write(":") + if node.stop is not None: + self.visit(node.stop, frame) + if node.step is not None: + self.write(":") + self.visit(node.step, frame) + + @contextmanager + def _filter_test_common( + self, node: t.Union[nodes.Filter, nodes.Test], frame: Frame, is_filter: bool + ) -> t.Iterator[None]: + if self.environment.is_async: + self.write("(await auto_await(") + + if is_filter: + self.write(f"{self.filters[node.name]}(") + func = self.environment.filters.get(node.name) + else: + self.write(f"{self.tests[node.name]}(") + func = self.environment.tests.get(node.name) + + # When inside an If or CondExpr frame, allow the filter to be + # undefined at compile time and only raise an error if it's + # actually called at runtime. See pull_dependencies. + if func is None and not frame.soft_frame: + type_name = "filter" if is_filter else "test" + self.fail(f"No {type_name} named {node.name!r}.", node.lineno) + + pass_arg = { + _PassArg.context: "context", + _PassArg.eval_context: "context.eval_ctx", + _PassArg.environment: "environment", + }.get( + _PassArg.from_obj(func) # type: ignore + ) + + if pass_arg is not None: + self.write(f"{pass_arg}, ") + + # Back to the visitor function to handle visiting the target of + # the filter or test. + yield + + self.signature(node, frame) + self.write(")") + + if self.environment.is_async: + self.write("))") + + @optimizeconst + def visit_Filter(self, node: nodes.Filter, frame: Frame) -> None: + with self._filter_test_common(node, frame, True): + # if the filter node is None we are inside a filter block + # and want to write to the current buffer + if node.node is not None: + self.visit(node.node, frame) + elif frame.eval_ctx.volatile: + self.write( + f"(Markup(concat({frame.buffer}))" + f" if context.eval_ctx.autoescape else concat({frame.buffer}))" + ) + elif frame.eval_ctx.autoescape: + self.write(f"Markup(concat({frame.buffer}))") + else: + self.write(f"concat({frame.buffer})") + + @optimizeconst + def visit_Test(self, node: nodes.Test, frame: Frame) -> None: + with self._filter_test_common(node, frame, False): + self.visit(node.node, frame) + + @optimizeconst + def visit_CondExpr(self, node: nodes.CondExpr, frame: Frame) -> None: + frame = frame.soft() + + def write_expr2() -> None: + if node.expr2 is not None: + self.visit(node.expr2, frame) + return + + self.write( + f'cond_expr_undefined("the inline if-expression on' + f" {self.position(node)} evaluated to false and no else" + f' section was defined.")' + ) + + self.write("(") + self.visit(node.expr1, frame) + self.write(" if ") + self.visit(node.test, frame) + self.write(" else ") + write_expr2() + self.write(")") + + @optimizeconst + def visit_Call( + self, node: nodes.Call, frame: Frame, forward_caller: bool = False + ) -> None: + if self.environment.is_async: + self.write("(await auto_await(") + if self.environment.sandboxed: + self.write("environment.call(context, ") + else: + self.write("context.call(") + self.visit(node.node, frame) + extra_kwargs = {"caller": "caller"} if forward_caller else None + loop_kwargs = {"_loop_vars": "_loop_vars"} if frame.loop_frame else {} + block_kwargs = {"_block_vars": "_block_vars"} if frame.block_frame else {} + if extra_kwargs: + extra_kwargs.update(loop_kwargs, **block_kwargs) + elif loop_kwargs or block_kwargs: + extra_kwargs = dict(loop_kwargs, **block_kwargs) + self.signature(node, frame, extra_kwargs) + self.write(")") + if self.environment.is_async: + self.write("))") + + def visit_Keyword(self, node: nodes.Keyword, frame: Frame) -> None: + self.write(node.key + "=") + self.visit(node.value, frame) + + # -- Unused nodes for extensions + + def visit_MarkSafe(self, node: nodes.MarkSafe, frame: Frame) -> None: + self.write("Markup(") + self.visit(node.expr, frame) + self.write(")") + + def visit_MarkSafeIfAutoescape( + self, node: nodes.MarkSafeIfAutoescape, frame: Frame + ) -> None: + self.write("(Markup if context.eval_ctx.autoescape else identity)(") + self.visit(node.expr, frame) + self.write(")") + + def visit_EnvironmentAttribute( + self, node: nodes.EnvironmentAttribute, frame: Frame + ) -> None: + self.write("environment." + node.name) + + def visit_ExtensionAttribute( + self, node: nodes.ExtensionAttribute, frame: Frame + ) -> None: + self.write(f"environment.extensions[{node.identifier!r}].{node.name}") + + def visit_ImportedName(self, node: nodes.ImportedName, frame: Frame) -> None: + self.write(self.import_aliases[node.importname]) + + def visit_InternalName(self, node: nodes.InternalName, frame: Frame) -> None: + self.write(node.name) + + def visit_ContextReference( + self, node: nodes.ContextReference, frame: Frame + ) -> None: + self.write("context") + + def visit_DerivedContextReference( + self, node: nodes.DerivedContextReference, frame: Frame + ) -> None: + self.write(self.derive_context(frame)) + + def visit_Continue(self, node: nodes.Continue, frame: Frame) -> None: + self.writeline("continue", node) + + def visit_Break(self, node: nodes.Break, frame: Frame) -> None: + self.writeline("break", node) + + def visit_Scope(self, node: nodes.Scope, frame: Frame) -> None: + scope_frame = frame.inner() + scope_frame.symbols.analyze_node(node) + self.enter_frame(scope_frame) + self.blockvisit(node.body, scope_frame) + self.leave_frame(scope_frame) + + def visit_OverlayScope(self, node: nodes.OverlayScope, frame: Frame) -> None: + ctx = self.temporary_identifier() + self.writeline(f"{ctx} = {self.derive_context(frame)}") + self.writeline(f"{ctx}.vars = ") + self.visit(node.context, frame) + self.push_context_reference(ctx) + + scope_frame = frame.inner(isolated=True) + scope_frame.symbols.analyze_node(node) + self.enter_frame(scope_frame) + self.blockvisit(node.body, scope_frame) + self.leave_frame(scope_frame) + self.pop_context_reference() + + def visit_EvalContextModifier( + self, node: nodes.EvalContextModifier, frame: Frame + ) -> None: + for keyword in node.options: + self.writeline(f"context.eval_ctx.{keyword.key} = ") + self.visit(keyword.value, frame) + try: + val = keyword.value.as_const(frame.eval_ctx) + except nodes.Impossible: + frame.eval_ctx.volatile = True + else: + setattr(frame.eval_ctx, keyword.key, val) + + def visit_ScopedEvalContextModifier( + self, node: nodes.ScopedEvalContextModifier, frame: Frame + ) -> None: + old_ctx_name = self.temporary_identifier() + saved_ctx = frame.eval_ctx.save() + self.writeline(f"{old_ctx_name} = context.eval_ctx.save()") + self.visit_EvalContextModifier(node, frame) + for child in node.body: + self.visit(child, frame) + frame.eval_ctx.revert(saved_ctx) + self.writeline(f"context.eval_ctx.revert({old_ctx_name})") diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/jinja2/constants.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/jinja2/constants.py new file mode 100644 index 0000000..41a1c23 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/jinja2/constants.py @@ -0,0 +1,20 @@ +#: list of lorem ipsum words used by the lipsum() helper function +LOREM_IPSUM_WORDS = """\ +a ac accumsan ad adipiscing aenean aliquam aliquet amet ante aptent arcu at +auctor augue bibendum blandit class commodo condimentum congue consectetuer +consequat conubia convallis cras cubilia cum curabitur curae cursus dapibus +diam dictum dictumst dignissim dis dolor donec dui duis egestas eget eleifend +elementum elit enim erat eros est et etiam eu euismod facilisi facilisis fames +faucibus felis fermentum feugiat fringilla fusce gravida habitant habitasse hac +hendrerit hymenaeos iaculis id imperdiet in inceptos integer interdum ipsum +justo lacinia lacus laoreet lectus leo libero ligula litora lobortis lorem +luctus maecenas magna magnis malesuada massa mattis mauris metus mi molestie +mollis montes morbi mus nam nascetur natoque nec neque netus nibh nisi nisl non +nonummy nostra nulla nullam nunc odio orci ornare parturient pede pellentesque +penatibus per pharetra phasellus placerat platea porta porttitor posuere +potenti praesent pretium primis proin pulvinar purus quam quis quisque rhoncus +ridiculus risus rutrum sagittis sapien scelerisque sed sem semper senectus sit +sociis sociosqu sodales sollicitudin suscipit suspendisse taciti tellus tempor +tempus tincidunt torquent tortor tristique turpis ullamcorper ultrices +ultricies urna ut varius vehicula vel velit venenatis vestibulum vitae vivamus +viverra volutpat vulputate""" diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/jinja2/debug.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/jinja2/debug.py new file mode 100644 index 0000000..eeeeee7 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/jinja2/debug.py @@ -0,0 +1,191 @@ +import sys +import typing as t +from types import CodeType +from types import TracebackType + +from .exceptions import TemplateSyntaxError +from .utils import internal_code +from .utils import missing + +if t.TYPE_CHECKING: + from .runtime import Context + + +def rewrite_traceback_stack(source: t.Optional[str] = None) -> BaseException: + """Rewrite the current exception to replace any tracebacks from + within compiled template code with tracebacks that look like they + came from the template source. + + This must be called within an ``except`` block. + + :param source: For ``TemplateSyntaxError``, the original source if + known. + :return: The original exception with the rewritten traceback. + """ + _, exc_value, tb = sys.exc_info() + exc_value = t.cast(BaseException, exc_value) + tb = t.cast(TracebackType, tb) + + if isinstance(exc_value, TemplateSyntaxError) and not exc_value.translated: + exc_value.translated = True + exc_value.source = source + # Remove the old traceback, otherwise the frames from the + # compiler still show up. + exc_value.with_traceback(None) + # Outside of runtime, so the frame isn't executing template + # code, but it still needs to point at the template. + tb = fake_traceback( + exc_value, None, exc_value.filename or "", exc_value.lineno + ) + else: + # Skip the frame for the render function. + tb = tb.tb_next + + stack = [] + + # Build the stack of traceback object, replacing any in template + # code with the source file and line information. + while tb is not None: + # Skip frames decorated with @internalcode. These are internal + # calls that aren't useful in template debugging output. + if tb.tb_frame.f_code in internal_code: + tb = tb.tb_next + continue + + template = tb.tb_frame.f_globals.get("__jinja_template__") + + if template is not None: + lineno = template.get_corresponding_lineno(tb.tb_lineno) + fake_tb = fake_traceback(exc_value, tb, template.filename, lineno) + stack.append(fake_tb) + else: + stack.append(tb) + + tb = tb.tb_next + + tb_next = None + + # Assign tb_next in reverse to avoid circular references. + for tb in reversed(stack): + tb.tb_next = tb_next + tb_next = tb + + return exc_value.with_traceback(tb_next) + + +def fake_traceback( # type: ignore + exc_value: BaseException, tb: t.Optional[TracebackType], filename: str, lineno: int +) -> TracebackType: + """Produce a new traceback object that looks like it came from the + template source instead of the compiled code. The filename, line + number, and location name will point to the template, and the local + variables will be the current template context. + + :param exc_value: The original exception to be re-raised to create + the new traceback. + :param tb: The original traceback to get the local variables and + code info from. + :param filename: The template filename. + :param lineno: The line number in the template source. + """ + if tb is not None: + # Replace the real locals with the context that would be + # available at that point in the template. + locals = get_template_locals(tb.tb_frame.f_locals) + locals.pop("__jinja_exception__", None) + else: + locals = {} + + globals = { + "__name__": filename, + "__file__": filename, + "__jinja_exception__": exc_value, + } + # Raise an exception at the correct line number. + code: CodeType = compile( + "\n" * (lineno - 1) + "raise __jinja_exception__", filename, "exec" + ) + + # Build a new code object that points to the template file and + # replaces the location with a block name. + location = "template" + + if tb is not None: + function = tb.tb_frame.f_code.co_name + + if function == "root": + location = "top-level template code" + elif function.startswith("block_"): + location = f"block {function[6:]!r}" + + if sys.version_info >= (3, 8): + code = code.replace(co_name=location) + else: + code = CodeType( + code.co_argcount, + code.co_kwonlyargcount, + code.co_nlocals, + code.co_stacksize, + code.co_flags, + code.co_code, + code.co_consts, + code.co_names, + code.co_varnames, + code.co_filename, + location, + code.co_firstlineno, + code.co_lnotab, + code.co_freevars, + code.co_cellvars, + ) + + # Execute the new code, which is guaranteed to raise, and return + # the new traceback without this frame. + try: + exec(code, globals, locals) + except BaseException: + return sys.exc_info()[2].tb_next # type: ignore + + +def get_template_locals(real_locals: t.Mapping[str, t.Any]) -> t.Dict[str, t.Any]: + """Based on the runtime locals, get the context that would be + available at that point in the template. + """ + # Start with the current template context. + ctx: t.Optional[Context] = real_locals.get("context") + + if ctx is not None: + data: t.Dict[str, t.Any] = ctx.get_all().copy() + else: + data = {} + + # Might be in a derived context that only sets local variables + # rather than pushing a context. Local variables follow the scheme + # l_depth_name. Find the highest-depth local that has a value for + # each name. + local_overrides: t.Dict[str, t.Tuple[int, t.Any]] = {} + + for name, value in real_locals.items(): + if not name.startswith("l_") or value is missing: + # Not a template variable, or no longer relevant. + continue + + try: + _, depth_str, name = name.split("_", 2) + depth = int(depth_str) + except ValueError: + continue + + cur_depth = local_overrides.get(name, (-1,))[0] + + if cur_depth < depth: + local_overrides[name] = (depth, value) + + # Modify the context with any derived context. + for name, (_, value) in local_overrides.items(): + if value is missing: + data.pop(name, None) + else: + data[name] = value + + return data diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/jinja2/defaults.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/jinja2/defaults.py new file mode 100644 index 0000000..638cad3 --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/jinja2/defaults.py @@ -0,0 +1,48 @@ +import typing as t + +from .filters import FILTERS as DEFAULT_FILTERS # noqa: F401 +from .tests import TESTS as DEFAULT_TESTS # noqa: F401 +from .utils import Cycler +from .utils import generate_lorem_ipsum +from .utils import Joiner +from .utils import Namespace + +if t.TYPE_CHECKING: + import typing_extensions as te + +# defaults for the parser / lexer +BLOCK_START_STRING = "{%" +BLOCK_END_STRING = "%}" +VARIABLE_START_STRING = "{{" +VARIABLE_END_STRING = "}}" +COMMENT_START_STRING = "{#" +COMMENT_END_STRING = "#}" +LINE_STATEMENT_PREFIX: t.Optional[str] = None +LINE_COMMENT_PREFIX: t.Optional[str] = None +TRIM_BLOCKS = False +LSTRIP_BLOCKS = False +NEWLINE_SEQUENCE: "te.Literal['\\n', '\\r\\n', '\\r']" = "\n" +KEEP_TRAILING_NEWLINE = False + +# default filters, tests and namespace + +DEFAULT_NAMESPACE = { + "range": range, + "dict": dict, + "lipsum": generate_lorem_ipsum, + "cycler": Cycler, + "joiner": Joiner, + "namespace": Namespace, +} + +# default policies +DEFAULT_POLICIES: t.Dict[str, t.Any] = { + "compiler.ascii_str": True, + "urlize.rel": "noopener", + "urlize.target": None, + "urlize.extra_schemes": None, + "truncate.leeway": 5, + "json.dumps_function": None, + "json.dumps_kwargs": {"sort_keys": True}, + "ext.i18n.trimmed": False, +} diff --git a/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/jinja2/environment.py b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/jinja2/environment.py new file mode 100644 index 0000000..0fc6e5b --- /dev/null +++ b/TA-opencti-for-splunk-enterprise/bin/ta_opencti_for_splunk_enterprise/aob_py3/jinja2/environment.py @@ -0,0 +1,1672 @@ +"""Classes for managing templates and their runtime and compile time +options. +""" + +import os +import typing +import typing as t +import weakref +from collections import ChainMap +from functools import lru_cache +from functools import partial +from functools import reduce +from types import CodeType + +from markupsafe import Markup + +from . import nodes +from .compiler import CodeGenerator +from .compiler import generate +from .defaults import BLOCK_END_STRING +from .defaults import BLOCK_START_STRING +from .defaults import COMMENT_END_STRING +from .defaults import COMMENT_START_STRING +from .defaults import DEFAULT_FILTERS # type: ignore[attr-defined] +from .defaults import DEFAULT_NAMESPACE +from .defaults import DEFAULT_POLICIES +from .defaults import DEFAULT_TESTS # type: ignore[attr-defined] +from .defaults import KEEP_TRAILING_NEWLINE +from .defaults import LINE_COMMENT_PREFIX +from .defaults import LINE_STATEMENT_PREFIX +from .defaults import LSTRIP_BLOCKS +from .defaults import NEWLINE_SEQUENCE +from .defaults import TRIM_BLOCKS +from .defaults import VARIABLE_END_STRING +from .defaults import VARIABLE_START_STRING +from .exceptions import TemplateNotFound +from .exceptions import TemplateRuntimeError +from .exceptions import TemplatesNotFound +from .exceptions import TemplateSyntaxError +from .exceptions import UndefinedError +from .lexer import get_lexer +from .lexer import Lexer +from .lexer import TokenStream +from .nodes import EvalContext +from .parser import Parser +from .runtime import Context +from .runtime import new_context +from .runtime import Undefined +from .utils import _PassArg +from .utils import concat +from .utils import consume +from .utils import import_string +from .utils import internalcode +from .utils import LRUCache +from .utils import missing + +if t.TYPE_CHECKING: + import typing_extensions as te + + from .bccache import BytecodeCache + from .ext import Extension + from .loaders import BaseLoader + +_env_bound = t.TypeVar("_env_bound", bound="Environment") + + +# for direct template usage we have up to ten living environments +@lru_cache(maxsize=10) +def get_spontaneous_environment(cls: t.Type[_env_bound], *args: t.Any) -> _env_bound: + """Return a new spontaneous environment. A spontaneous environment + is used for templates created directly rather than through an + existing environment. + + :param cls: Environment class to create. + :param args: Positional arguments passed to environment. + """ + env = cls(*args) + env.shared = True + return env + + +def create_cache( + size: int, +) -> t.Optional[t.MutableMapping[t.Tuple["weakref.ref[t.Any]", str], "Template"]]: + """Return the cache class for the given size.""" + if size == 0: + return None + + if size < 0: + return {} + + return LRUCache(size) # type: ignore + + +def copy_cache( + cache: t.Optional[t.MutableMapping[t.Any, t.Any]], +) -> t.Optional[t.MutableMapping[t.Tuple["weakref.ref[t.Any]", str], "Template"]]: + """Create an empty copy of the given cache.""" + if cache is None: + return None + + if type(cache) is dict: # noqa E721 + return {} + + return LRUCache(cache.capacity) # type: ignore + + +def load_extensions( + environment: "Environment", + extensions: t.Sequence[t.Union[str, t.Type["Extension"]]], +) -> t.Dict[str, "Extension"]: + """Load the extensions from the list and bind it to the environment. + Returns a dict of instantiated extensions. + """ + result = {} + + for extension in extensions: + if isinstance(extension, str): + extension = t.cast(t.Type["Extension"], import_string(extension)) + + result[extension.identifier] = extension(environment) + + return result + + +def _environment_config_check(environment: _env_bound) -> _env_bound: + """Perform a sanity check on the environment.""" + assert issubclass( + environment.undefined, Undefined + ), "'undefined' must be a subclass of 'jinja2.Undefined'." + assert ( + environment.block_start_string + != environment.variable_start_string + != environment.comment_start_string + ), "block, variable and comment start strings must be different." + assert environment.newline_sequence in { + "\r", + "\r\n", + "\n", + }, "'newline_sequence' must be one of '\\n', '\\r\\n', or '\\r'." + return environment + + +class Environment: + r"""The core component of Jinja is the `Environment`. It contains + important shared variables like configuration, filters, tests, + globals and others. Instances of this class may be modified if + they are not shared and if no template was loaded so far. + Modifications on environments after the first template was loaded + will lead to surprising effects and undefined behavior. + + Here are the possible initialization parameters: + + `block_start_string` + The string marking the beginning of a block. Defaults to ``'{%'``. + + `block_end_string` + The string marking the end of a block. Defaults to ``'%}'``. + + `variable_start_string` + The string marking the beginning of a print statement. + Defaults to ``'{{'``. + + `variable_end_string` + The string marking the end of a print statement. Defaults to + ``'}}'``. + + `comment_start_string` + The string marking the beginning of a comment. Defaults to ``'{#'``. + + `comment_end_string` + The string marking the end of a comment. Defaults to ``'#}'``. + + `line_statement_prefix` + If given and a string, this will be used as prefix for line based + statements. See also :ref:`line-statements`. + + `line_comment_prefix` + If given and a string, this will be used as prefix for line based + comments. See also :ref:`line-statements`. + + .. versionadded:: 2.2 + + `trim_blocks` + If this is set to ``True`` the first newline after a block is + removed (block, not variable tag!). Defaults to `False`. + + `lstrip_blocks` + If this is set to ``True`` leading spaces and tabs are stripped + from the start of a line to a block. Defaults to `False`. + + `newline_sequence` + The sequence that starts a newline. Must be one of ``'\r'``, + ``'\n'`` or ``'\r\n'``. The default is ``'\n'`` which is a + useful default for Linux and OS X systems as well as web + applications. + + `keep_trailing_newline` + Preserve the trailing newline when rendering templates. + The default is ``False``, which causes a single newline, + if present, to be stripped from the end of the template. + + .. versionadded:: 2.7 + + `extensions` + List of Jinja extensions to use. This can either be import paths + as strings or extension classes. For more information have a + look at :ref:`the extensions documentation `. + + `optimized` + should the optimizer be enabled? Default is ``True``. + + `undefined` + :class:`Undefined` or a subclass of it that is used to represent + undefined values in the template. + + `finalize` + A callable that can be used to process the result of a variable + expression before it is output. For example one can convert + ``None`` implicitly into an empty string here. + + `autoescape` + If set to ``True`` the XML/HTML autoescaping feature is enabled by + default. For more details about autoescaping see + :class:`~markupsafe.Markup`. As of Jinja 2.4 this can also + be a callable that is passed the template name and has to + return ``True`` or ``False`` depending on autoescape should be + enabled by default. + + .. versionchanged:: 2.4 + `autoescape` can now be a function + + `loader` + The template loader for this environment. + + `cache_size` + The size of the cache. Per default this is ``400`` which means + that if more than 400 templates are loaded the loader will clean + out the least recently used template. If the cache size is set to + ``0`` templates are recompiled all the time, if the cache size is + ``-1`` the cache will not be cleaned. + + .. versionchanged:: 2.8 + The cache size was increased to 400 from a low 50. + + `auto_reload` + Some loaders load templates from locations where the template + sources may change (ie: file system or database). If + ``auto_reload`` is set to ``True`` (default) every time a template is + requested the loader checks if the source changed and if yes, it + will reload the template. For higher performance it's possible to + disable that. + + `bytecode_cache` + If set to a bytecode cache object, this object will provide a + cache for the internal Jinja bytecode so that templates don't + have to be parsed if they were not changed. + + See :ref:`bytecode-cache` for more information. + + `enable_async` + If set to true this enables async template execution which + allows using async functions and generators. + """ + + #: if this environment is sandboxed. Modifying this variable won't make + #: the environment sandboxed though. For a real sandboxed environment + #: have a look at jinja2.sandbox. This flag alone controls the code + #: generation by the compiler. + sandboxed = False + + #: True if the environment is just an overlay + overlayed = False + + #: the environment this environment is linked to if it is an overlay + linked_to: t.Optional["Environment"] = None + + #: shared environments have this set to `True`. A shared environment + #: must not be modified + shared = False + + #: the class that is used for code generation. See + #: :class:`~jinja2.compiler.CodeGenerator` for more information. + code_generator_class: t.Type["CodeGenerator"] = CodeGenerator + + concat = "".join + + #: the context class that is used for templates. See + #: :class:`~jinja2.runtime.Context` for more information. + context_class: t.Type[Context] = Context + + template_class: t.Type["Template"] + + def __init__( + self, + block_start_string: str = BLOCK_START_STRING, + block_end_string: str = BLOCK_END_STRING, + variable_start_string: str = VARIABLE_START_STRING, + variable_end_string: str = VARIABLE_END_STRING, + comment_start_string: str = COMMENT_START_STRING, + comment_end_string: str = COMMENT_END_STRING, + line_statement_prefix: t.Optional[str] = LINE_STATEMENT_PREFIX, + line_comment_prefix: t.Optional[str] = LINE_COMMENT_PREFIX, + trim_blocks: bool = TRIM_BLOCKS, + lstrip_blocks: bool = LSTRIP_BLOCKS, + newline_sequence: "te.Literal['\\n', '\\r\\n', '\\r']" = NEWLINE_SEQUENCE, + keep_trailing_newline: bool = KEEP_TRAILING_NEWLINE, + extensions: t.Sequence[t.Union[str, t.Type["Extension"]]] = (), + optimized: bool = True, + undefined: t.Type[Undefined] = Undefined, + finalize: t.Optional[t.Callable[..., t.Any]] = None, + autoescape: t.Union[bool, t.Callable[[t.Optional[str]], bool]] = False, + loader: t.Optional["BaseLoader"] = None, + cache_size: int = 400, + auto_reload: bool = True, + bytecode_cache: t.Optional["BytecodeCache"] = None, + enable_async: bool = False, + ): + # !!Important notice!! + # The constructor accepts quite a few arguments that should be + # passed by keyword rather than position. However it's important to + # not change the order of arguments because it's used at least + # internally in those cases: + # - spontaneous environments (i18n extension and Template) + # - unittests + # If parameter changes are required only add parameters at the end + # and don't change the arguments (or the defaults!) of the arguments + # existing already. + + # lexer / parser information + self.block_start_string = block_start_string + self.block_end_string = block_end_string + self.variable_start_string = variable_start_string + self.variable_end_string = variable_end_string + self.comment_start_string = comment_start_string + self.comment_end_string = comment_end_string + self.line_statement_prefix = line_statement_prefix + self.line_comment_prefix = line_comment_prefix + self.trim_blocks = trim_blocks + self.lstrip_blocks = lstrip_blocks + self.newline_sequence = newline_sequence + self.keep_trailing_newline = keep_trailing_newline + + # runtime information + self.undefined: t.Type[Undefined] = undefined + self.optimized = optimized + self.finalize = finalize + self.autoescape = autoescape + + # defaults + self.filters = DEFAULT_FILTERS.copy() + self.tests = DEFAULT_TESTS.copy() + self.globals = DEFAULT_NAMESPACE.copy() + + # set the loader provided + self.loader = loader + self.cache = create_cache(cache_size) + self.bytecode_cache = bytecode_cache + self.auto_reload = auto_reload + + # configurable policies + self.policies = DEFAULT_POLICIES.copy() + + # load extensions + self.extensions = load_extensions(self, extensions) + + self.is_async = enable_async + _environment_config_check(self) + + def add_extension(self, extension: t.Union[str, t.Type["Extension"]]) -> None: + """Adds an extension after the environment was created. + + .. versionadded:: 2.5 + """ + self.extensions.update(load_extensions(self, [extension])) + + def extend(self, **attributes: t.Any) -> None: + """Add the items to the instance of the environment if they do not exist + yet. This is used by :ref:`extensions ` to register + callbacks and configuration values without breaking inheritance. + """ + for key, value in attributes.items(): + if not hasattr(self, key): + setattr(self, key, value) + + def overlay( + self, + block_start_string: str = missing, + block_end_string: str = missing, + variable_start_string: str = missing, + variable_end_string: str = missing, + comment_start_string: str = missing, + comment_end_string: str = missing, + line_statement_prefix: t.Optional[str] = missing, + line_comment_prefix: t.Optional[str] = missing, + trim_blocks: bool = missing, + lstrip_blocks: bool = missing, + newline_sequence: "te.Literal['\\n', '\\r\\n', '\\r']" = missing, + keep_trailing_newline: bool = missing, + extensions: t.Sequence[t.Union[str, t.Type["Extension"]]] = missing, + optimized: bool = missing, + undefined: t.Type[Undefined] = missing, + finalize: t.Optional[t.Callable[..., t.Any]] = missing, + autoescape: t.Union[bool, t.Callable[[t.Optional[str]], bool]] = missing, + loader: t.Optional["BaseLoader"] = missing, + cache_size: int = missing, + auto_reload: bool = missing, + bytecode_cache: t.Optional["BytecodeCache"] = missing, + enable_async: bool = missing, + ) -> "te.Self": + """Create a new overlay environment that shares all the data with the + current environment except for cache and the overridden attributes. + Extensions cannot be removed for an overlayed environment. An overlayed + environment automatically gets all the extensions of the environment it + is linked to plus optional extra extensions. + + Creating overlays should happen after the initial environment was set + up completely. Not all attributes are truly linked, some are just + copied over so modifications on the original environment may not shine + through. + + .. versionchanged:: 3.1.5 + ``enable_async`` is applied correctly. + + .. versionchanged:: 3.1.2 + Added the ``newline_sequence``, ``keep_trailing_newline``, + and ``enable_async`` parameters to match ``__init__``. + """ + args = dict(locals()) + del args["self"], args["cache_size"], args["extensions"], args["enable_async"] + + rv = object.__new__(self.__class__) + rv.__dict__.update(self.__dict__) + rv.overlayed = True + rv.linked_to = self + + for key, value in args.items(): + if value is not missing: + setattr(rv, key, value) + + if cache_size is not missing: + rv.cache = create_cache(cache_size) + else: + rv.cache = copy_cache(self.cache) + + rv.extensions = {} + for key, value in self.extensions.items(): + rv.extensions[key] = value.bind(rv) + if extensions is not missing: + rv.extensions.update(load_extensions(rv, extensions)) + + if enable_async is not missing: + rv.is_async = enable_async + + return _environment_config_check(rv) + + @property + def lexer(self) -> Lexer: + """The lexer for this environment.""" + return get_lexer(self) + + def iter_extensions(self) -> t.Iterator["Extension"]: + """Iterates over the extensions by priority.""" + return iter(sorted(self.extensions.values(), key=lambda x: x.priority)) + + def getitem( + self, obj: t.Any, argument: t.Union[str, t.Any] + ) -> t.Union[t.Any, Undefined]: + """Get an item or attribute of an object but prefer the item.""" + try: + return obj[argument] + except (AttributeError, TypeError, LookupError): + if isinstance(argument, str): + try: + attr = str(argument) + except Exception: + pass + else: + try: + return getattr(obj, attr) + except AttributeError: + pass + return self.undefined(obj=obj, name=argument) + + def getattr(self, obj: t.Any, attribute: str) -> t.Any: + """Get an item or attribute of an object but prefer the attribute. + Unlike :meth:`getitem` the attribute *must* be a string. + """ + try: + return getattr(obj, attribute) + except AttributeError: + pass + try: + return obj[attribute] + except (TypeError, LookupError, AttributeError): + return self.undefined(obj=obj, name=attribute) + + def _filter_test_common( + self, + name: t.Union[str, Undefined], + value: t.Any, + args: t.Optional[t.Sequence[t.Any]], + kwargs: t.Optional[t.Mapping[str, t.Any]], + context: t.Optional[Context], + eval_ctx: t.Optional[EvalContext], + is_filter: bool, + ) -> t.Any: + if is_filter: + env_map = self.filters + type_name = "filter" + else: + env_map = self.tests + type_name = "test" + + func = env_map.get(name) # type: ignore + + if func is None: + msg = f"No {type_name} named {name!r}." + + if isinstance(name, Undefined): + try: + name._fail_with_undefined_error() + except Exception as e: + msg = f"{msg} ({e}; did you forget to quote the callable name?)" + + raise TemplateRuntimeError(msg) + + args = [value, *(args if args is not None else ())] + kwargs = kwargs if kwargs is not None else {} + pass_arg = _PassArg.from_obj(func) + + if pass_arg is _PassArg.context: + if context is None: + raise TemplateRuntimeError( + f"Attempted to invoke a context {type_name} without context." + ) + + args.insert(0, context) + elif pass_arg is _PassArg.eval_context: + if eval_ctx is None: + if context is not None: + eval_ctx = context.eval_ctx + else: + eval_ctx = EvalContext(self) + + args.insert(0, eval_ctx) + elif pass_arg is _PassArg.environment: + args.insert(0, self) + + return func(*args, **kwargs) + + def call_filter( + self, + name: str, + value: t.Any, + args: t.Optional[t.Sequence[t.Any]] = None, + kwargs: t.Optional[t.Mapping[str, t.Any]] = None, + context: t.Optional[Context] = None, + eval_ctx: t.Optional[EvalContext] = None, + ) -> t.Any: + """Invoke a filter on a value the same way the compiler does. + + This might return a coroutine if the filter is running from an + environment in async mode and the filter supports async + execution. It's your responsibility to await this if needed. + + .. versionadded:: 2.7 + """ + return self._filter_test_common( + name, value, args, kwargs, context, eval_ctx, True + ) + + def call_test( + self, + name: str, + value: t.Any, + args: t.Optional[t.Sequence[t.Any]] = None, + kwargs: t.Optional[t.Mapping[str, t.Any]] = None, + context: t.Optional[Context] = None, + eval_ctx: t.Optional[EvalContext] = None, + ) -> t.Any: + """Invoke a test on a value the same way the compiler does. + + This might return a coroutine if the test is running from an + environment in async mode and the test supports async execution. + It's your responsibility to await this if needed. + + .. versionchanged:: 3.0 + Tests support ``@pass_context``, etc. decorators. Added + the ``context`` and ``eval_ctx`` parameters. + + .. versionadded:: 2.7 + """ + return self._filter_test_common( + name, value, args, kwargs, context, eval_ctx, False + ) + + @internalcode + def parse( + self, + source: str, + name: t.Optional[str] = None, + filename: t.Optional[str] = None, + ) -> nodes.Template: + """Parse the sourcecode and return the abstract syntax tree. This + tree of nodes is used by the compiler to convert the template into + executable source- or bytecode. This is useful for debugging or to + extract information from templates. + + If you are :ref:`developing Jinja extensions ` + this gives you a good overview of the node tree generated. + """ + try: + return self._parse(source, name, filename) + except TemplateSyntaxError: + self.handle_exception(source=source) + + def _parse( + self, source: str, name: t.Optional[str], filename: t.Optional[str] + ) -> nodes.Template: + """Internal parsing function used by `parse` and `compile`.""" + return Parser(self, source, name, filename).parse() + + def lex( + self, + source: str, + name: t.Optional[str] = None, + filename: t.Optional[str] = None, + ) -> t.Iterator[t.Tuple[int, str, str]]: + """Lex the given sourcecode and return a generator that yields + tokens as tuples in the form ``(lineno, token_type, value)``. + This can be useful for :ref:`extension development ` + and debugging templates. + + This does not perform preprocessing. If you want the preprocessing + of the extensions to be applied you have to filter source through + the :meth:`preprocess` method. + """ + source = str(source) + try: + return self.lexer.tokeniter(source, name, filename) + except TemplateSyntaxError: + self.handle_exception(source=source) + + def preprocess( + self, + source: str, + name: t.Optional[str] = None, + filename: t.Optional[str] = None, + ) -> str: + """Preprocesses the source with all extensions. This is automatically + called for all parsing and compiling methods but *not* for :meth:`lex` + because there you usually only want the actual source tokenized. + """ + return reduce( + lambda s, e: e.preprocess(s, name, filename), + self.iter_extensions(), + str(source), + ) + + def _tokenize( + self, + source: str, + name: t.Optional[str], + filename: t.Optional[str] = None, + state: t.Optional[str] = None, + ) -> TokenStream: + """Called by the parser to do the preprocessing and filtering + for all the extensions. Returns a :class:`~jinja2.lexer.TokenStream`. + """ + source = self.preprocess(source, name, filename) + stream = self.lexer.tokenize(source, name, filename, state) + + for ext in self.iter_extensions(): + stream = ext.filter_stream(stream) # type: ignore + + if not isinstance(stream, TokenStream): + stream = TokenStream(stream, name, filename) + + return stream + + def _generate( + self, + source: nodes.Template, + name: t.Optional[str], + filename: t.Optional[str], + defer_init: bool = False, + ) -> str: + """Internal hook that can be overridden to hook a different generate + method in. + + .. versionadded:: 2.5 + """ + return generate( # type: ignore + source, + self, + name, + filename, + defer_init=defer_init, + optimized=self.optimized, + ) + + def _compile(self, source: str, filename: str) -> CodeType: + """Internal hook that can be overridden to hook a different compile + method in. + + .. versionadded:: 2.5 + """ + return compile(source, filename, "exec") + + @typing.overload + def compile( + self, + source: t.Union[str, nodes.Template], + name: t.Optional[str] = None, + filename: t.Optional[str] = None, + raw: "te.Literal[False]" = False, + defer_init: bool = False, + ) -> CodeType: ... + + @typing.overload + def compile( + self, + source: t.Union[str, nodes.Template], + name: t.Optional[str] = None, + filename: t.Optional[str] = None, + raw: "te.Literal[True]" = ..., + defer_init: bool = False, + ) -> str: ... + + @internalcode + def compile( + self, + source: t.Union[str, nodes.Template], + name: t.Optional[str] = None, + filename: t.Optional[str] = None, + raw: bool = False, + defer_init: bool = False, + ) -> t.Union[str, CodeType]: + """Compile a node or template source code. The `name` parameter is + the load name of the template after it was joined using + :meth:`join_path` if necessary, not the filename on the file system. + the `filename` parameter is the estimated filename of the template on + the file system. If the template came from a database or memory this + can be omitted. + + The return value of this method is a python code object. If the `raw` + parameter is `True` the return value will be a string with python + code equivalent to the bytecode returned otherwise. This method is + mainly used internally. + + `defer_init` is use internally to aid the module code generator. This + causes the generated code to be able to import without the global + environment variable to be set. + + .. versionadded:: 2.4 + `defer_init` parameter added. + """ + source_hint = None + try: + if isinstance(source, str): + source_hint = source + source = self._parse(source, name, filename) + source = self._generate(source, name, filename, defer_init=defer_init) + if raw: + return source + if filename is None: + filename = "