From 910bac13ce601e1cadefb03b34eda46fafe25854 Mon Sep 17 00:00:00 2001 From: Navneet Verma Date: Tue, 19 Mar 2024 11:22:50 -0700 Subject: [PATCH 01/42] Update documentation to support InnerProduct with k-NN Lucene Engine (#6703) Signed-off-by: Navneet Verma --- _search-plugins/knn/approximate-knn.md | 12 +++++++++--- _search-plugins/knn/knn-index.md | 12 ++++++------ _search-plugins/knn/knn-score-script.md | 8 +++++--- 3 files changed, 20 insertions(+), 12 deletions(-) diff --git a/_search-plugins/knn/approximate-knn.md b/_search-plugins/knn/approximate-knn.md index 74cf7e39f5..99cb9e6767 100644 --- a/_search-plugins/knn/approximate-knn.md +++ b/_search-plugins/knn/approximate-knn.md @@ -287,9 +287,15 @@ Not every method supports each of these spaces. Be sure to check out [the method nmslib and faiss:\[ score = {1 \over 1 + d } \]
Lucene:\[ score = {2 - d \over 2}\] - innerproduct (not supported for Lucene) - \[ d(\mathbf{x}, \mathbf{y}) = - {\mathbf{x} · \mathbf{y}} = - \sum_{i=1}^n x_i y_i \] - \[ \text{If} d \ge 0, \] \[score = {1 \over 1 + d }\] \[\text{If} d < 0, score = −d + 1\] + innerproduct (supported for Lucene in OpenSearch version 2.13 and later) + \[ d(\mathbf{x}, \mathbf{y}) = - {\mathbf{x} · \mathbf{y}} = - \sum_{i=1}^n x_i y_i \] +
Lucene: + \[ d(\mathbf{x}, \mathbf{y}) = {\mathbf{x} · \mathbf{y}} = \sum_{i=1}^n x_i y_i \] + + \[ \text{If} d \ge 0, \] \[score = {1 \over 1 + d }\] \[\text{If} d < 0, score = −d + 1\] +
Lucene: + \[ \text{If} d > 0, score = d + 1 \] \[\text{If} d \le 0\] \[score = {1 \over 1 + (-1 · d) }\] + diff --git a/_search-plugins/knn/knn-index.md b/_search-plugins/knn/knn-index.md index 4a527f3bcb..1e0c2e84f5 100644 --- a/_search-plugins/knn/knn-index.md +++ b/_search-plugins/knn/knn-index.md @@ -17,7 +17,7 @@ Starting with k-NN plugin version 2.9, you can use `byte` vectors with the `luce ## Method definitions -A method definition refers to the underlying configuration of the Approximate k-NN algorithm you want to use. Method definitions are used to either create a `knn_vector` field (when the method does not require training) or [create a model during training]({{site.url}}{{site.baseurl}}/search-plugins/knn/api#train-model) that can then be used to [create a `knn_vector` field]({{site.url}}{{site.baseurl}}/search-plugins/knn/approximate-knn/#building-a-k-nn-index-from-a-model). +A method definition refers to the underlying configuration of the approximate k-NN algorithm you want to use. Method definitions are used to either create a `knn_vector` field (when the method does not require training) or [create a model during training]({{site.url}}{{site.baseurl}}/search-plugins/knn/api#train-model) that can then be used to [create a `knn_vector` field]({{site.url}}{{site.baseurl}}/search-plugins/knn/approximate-knn/#building-a-k-nn-index-from-a-model). A method definition will always contain the name of the method, the space_type the method is built for, the engine (the library) to use, and a map of parameters. @@ -33,7 +33,7 @@ Mapping parameter | Required | Default | Updatable | Description Method name | Requires training | Supported spaces | Description :--- | :--- | :--- | :--- -`hnsw` | false | l2, innerproduct, cosinesimil, l1, linf | Hierarchical proximity graph approach to Approximate k-NN search. For more details on the algorithm, see this [abstract](https://arxiv.org/abs/1603.09320). +`hnsw` | false | l2, innerproduct, cosinesimil, l1, linf | Hierarchical proximity graph approach to approximate k-NN search. For more details on the algorithm, see this [abstract](https://arxiv.org/abs/1603.09320). #### HNSW parameters @@ -52,7 +52,7 @@ An index created in OpenSearch version 2.11 or earlier will still use the old `e Method name | Requires training | Supported spaces | Description :--- | :--- | :--- | :--- -`hnsw` | false | l2, innerproduct | Hierarchical proximity graph approach to Approximate k-NN search. +`hnsw` | false | l2, innerproduct | Hierarchical proximity graph approach to approximate k-NN search. `ivf` | true | l2, innerproduct | Bucketing approach where vectors are assigned different buckets based on clustering and, during search, only a subset of the buckets is searched. For hnsw, "innerproduct" is not available when PQ is used. @@ -90,8 +90,8 @@ Training data can be composed of either the same data that is going to be ingest ### Supported Lucene methods Method name | Requires training | Supported spaces | Description -:--- | :--- | :--- | :--- -`hnsw` | false | l2, cosinesimil | Hierarchical proximity graph approach to Approximate k-NN search. +:--- | :--- |:--------------------------------------------------------------------------------| :--- +`hnsw` | false | l2, cosinesimil, innerproduct (supported in OpenSearch 2.13 and later) | Hierarchical proximity graph approach to approximate k-NN search. #### HNSW parameters @@ -259,7 +259,7 @@ At the moment, several parameters defined in the settings are in the deprecation Setting | Default | Updatable | Description :--- | :--- | :--- | :--- -`index.knn` | false | false | Whether the index should build native library indexes for the `knn_vector` fields. If set to false, the `knn_vector` fields will be stored in doc values, but Approximate k-NN search functionality will be disabled. +`index.knn` | false | false | Whether the index should build native library indexes for the `knn_vector` fields. If set to false, the `knn_vector` fields will be stored in doc values, but approximate k-NN search functionality will be disabled. `index.knn.algo_param.ef_search` | 100 | true | The size of the dynamic list used during k-NN searches. Higher values result in more accurate but slower searches. Only available for NMSLIB. `index.knn.algo_param.ef_construction` | 100 | false | Deprecated in 1.0.0. Instead, use the [mapping parameters](https://opensearch.org/docs/latest/search-plugins/knn/knn-index/#method-definitions) to set this value. `index.knn.algo_param.m` | 16 | false | Deprecated in 1.0.0. Use the [mapping parameters](https://opensearch.org/docs/latest/search-plugins/knn/knn-index/#method-definitions) to set this value instead. diff --git a/_search-plugins/knn/knn-score-script.md b/_search-plugins/knn/knn-score-script.md index 602346803d..14027d6cc8 100644 --- a/_search-plugins/knn/knn-score-script.md +++ b/_search-plugins/knn/knn-score-script.md @@ -313,9 +313,11 @@ A space corresponds to the function used to measure the distance between two poi \[ score = 2 - d \] - innerproduct (not supported for Lucene) - \[ d(\mathbf{x}, \mathbf{y}) = - {\mathbf{x} · \mathbf{y}} = - \sum_{i=1}^n x_i y_i \] - \[ \text{If} d \ge 0, \] \[score = {1 \over 1 + d }\] \[\text{If} d < 0, score = −d + 1\] + innerproduct (supported for Lucene in OpenSearch version 2.13 and later) + \[ d(\mathbf{x}, \mathbf{y}) = - {\mathbf{x} · \mathbf{y}} = - \sum_{i=1}^n x_i y_i \] + + \[ \text{If} d \ge 0, \] \[score = {1 \over 1 + d }\] \[\text{If} d < 0, score = −d + 1\] + hammingbit From 2593496182567ea932004c9be52e54d485966702 Mon Sep 17 00:00:00 2001 From: Tianle Huang <60111637+tianleh@users.noreply.github.com> Date: Tue, 19 Mar 2024 13:50:36 -0700 Subject: [PATCH 02/42] configure Content Security Policy (CSP) rules in OpenSearch Dashboards dynamically (#6291) * configure Content Security Policy (CSP) rules in OpenSearch Dashboards Signed-off-by: Tianle Huang * update Signed-off-by: Tianle Huang * add contents Signed-off-by: Tianle Huang * fix style errors Signed-off-by: Tianle Huang * fix error Signed-off-by: Tianle Huang * re-apply Signed-off-by: Tianle Huang * Update csp-dynamic-configuration.md Signed-off-by: Melissa Vagi Signed-off-by: Melissa Vagi * Update _dashboards/csp/csp-dynamic-configuration.md Co-authored-by: Nathan Bower Signed-off-by: Melissa Vagi * Update _dashboards/csp/csp-dynamic-configuration.md Co-authored-by: Nathan Bower Signed-off-by: Melissa Vagi * Update _dashboards/csp/csp-dynamic-configuration.md Co-authored-by: Nathan Bower Signed-off-by: Melissa Vagi * Update _dashboards/csp/csp-dynamic-configuration.md Co-authored-by: Nathan Bower Signed-off-by: Melissa Vagi * Update csp-dynamic-configuration.md Signed-off-by: Melissa Vagi Signed-off-by: Melissa Vagi * Update csp-dynamic-configuration.md Signed-off-by: Melissa Vagi Signed-off-by: Melissa Vagi --------- Signed-off-by: Tianle Huang Signed-off-by: Melissa Vagi Co-authored-by: Melissa Vagi Co-authored-by: Nathan Bower --- _dashboards/csp/csp-dynamic-configuration.md | 50 ++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 _dashboards/csp/csp-dynamic-configuration.md diff --git a/_dashboards/csp/csp-dynamic-configuration.md b/_dashboards/csp/csp-dynamic-configuration.md new file mode 100644 index 0000000000..2101a83734 --- /dev/null +++ b/_dashboards/csp/csp-dynamic-configuration.md @@ -0,0 +1,50 @@ +--- +layout: default +title: Configuring Content Security Policy rules dynamically +nav_order: 110 +has_children: false +--- + +# Configuring Content Security Policy rules dynamically +Introduced 2.13 +{: .label .label-purple } + +Content Security Policy (CSP) is a security standard intended to prevent cross-site scripting (XSS), `clickjacking`, and other code injection attacks resulting from the execution of malicious content in the trusted webpage context. OpenSearch Dashboards supports configuring CSP rules in the `opensearch_dashboards.yml` file by using the `csp.rules` key. A change in the YAML file requires a server restart, which may interrupt service availability. You can, however, configure the CSP rules dynamically through the `applicationConfig` plugin without restarting the server. + +## Configuration + +The `applicationConfig` plugin provides read and write APIs that allow OpenSearch Dashboards users to manage dynamic configurations as key-value pairs in an index. The `cspHandler` plugin registers a pre-response handler to `HttpServiceSetup`, which gets CSP rules from the dependent `applicationConfig` plugin and then rewrites to the CSP header. Enable both plugins within your `opensearch_dashboards.yml` file to use this feature. The configuration is shown in the following example. Refer to the `cspHandler` plugin [README](https://github.com/opensearch-project/OpenSearch-Dashboards/blob/main/src/plugins/csp_handler/README.md) for configuration details. + +``` +application_config.enabled: true +csp_handler.enabled: true +``` + +## Enable site embedding for OpenSearch Dashboards + +To enable site embedding for OpenSearch Dashboards, update the CSP rules using CURL. When using CURL commands with single quotation marks inside the `data-raw` parameter, escape them with a backslash (`\`). For example, use `'\''` to represent `'`. The configuration is shown in the following example. Refer to the `applicationConfig` plugin [README](https://github.com/opensearch-project/OpenSearch-Dashboards/blob/main/src/plugins/application_config/README.md) for configuration details. + +``` +curl '{osd endpoint}/api/appconfig/csp.rules' -X POST -H 'Accept: application/json' -H 'Content-Type: application/json' -H 'osd-xsrf: osd-fetch' -H 'Sec-Fetch-Dest: empty' --data-raw '{"newValue":"script-src '\''unsafe-eval'\'' '\''self'\''; worker-src blob: '\''self'\''; style-src '\''unsafe-inline'\'' '\''self'\''; frame-ancestors '\''self'\'' {new site}"}' +``` + +## Delete CSP rules + +Use the following CURL command to delete CSP rules: + +``` +curl '{osd endpoint}/api/appconfig/csp.rules' -X DELETE -H 'osd-xsrf: osd-fetch' -H 'Sec-Fetch-Dest: empty' +``` + +## Get CSP rules + +Use the following CURL command to get CSP rules: + +``` +curl '{osd endpoint}/api/appconfig/csp.rules' + +``` + +## Precedence + +Dynamic configurations override YAML configurations, except for empty CSP rules. To prevent `clickjacking`, a `frame-ancestors: self` directive is automatically added to YAML-defined rules when necessary. From 7ecf449ac32f2ecb4fc0f0bb8c6c65f350fe20c7 Mon Sep 17 00:00:00 2001 From: Peter Zhu Date: Tue, 19 Mar 2024 17:52:24 -0400 Subject: [PATCH 03/42] Add continue-on-error for vale checks to ignore inconsistent return status (#6722) Signed-off-by: Peter Zhu --- .github/workflows/vale.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/vale.yml b/.github/workflows/vale.yml index 2eee5d82fb..515d974133 100644 --- a/.github/workflows/vale.yml +++ b/.github/workflows/vale.yml @@ -20,4 +20,5 @@ jobs: reporter: github-pr-check filter_mode: added vale_flags: "--no-exit" - version: 2.28.0 \ No newline at end of file + version: 2.28.0 + continue-on-error: true From 3a2af65d8c58d22df172e1d5cead94a78fe7ba9f Mon Sep 17 00:00:00 2001 From: Eric Pugh Date: Tue, 19 Mar 2024 15:38:26 -0700 Subject: [PATCH 04/42] update the example to be accurate (#6702) Signed-off-by: Eric Pugh --- _query-dsl/minimum-should-match.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_query-dsl/minimum-should-match.md b/_query-dsl/minimum-should-match.md index 9ec65431b1..e2032b8911 100644 --- a/_query-dsl/minimum-should-match.md +++ b/_query-dsl/minimum-should-match.md @@ -26,7 +26,7 @@ GET /shakespeare/_search } ``` -In this example, the query has three optional clauses that are combined with an `OR`, so the document must match either `prince`, `king`, or `star`. +In this example, the query has three optional clauses that are combined with an `OR`, so the document must match either `prince` and `king`, or `prince` and `star`, or `king` and `star`. ## Valid values @@ -448,4 +448,4 @@ The results contain only four documents that match at least one of the optional ] } } -``` \ No newline at end of file +``` From 21a28cff56a4a4a9708a6457d01388018ab4b212 Mon Sep 17 00:00:00 2001 From: Ankit Kala Date: Wed, 20 Mar 2024 20:19:34 +0530 Subject: [PATCH 05/42] Add documentation for retry settings for Remote reindex (#6726) * Add documentation for retry settings for Remote reindex Signed-off-by: Ankit Kala * Fixing the typo Signed-off-by: Ankit Kala * Addressing PR comments Co-authored-by: kolchfa-aws <105444904+kolchfa-aws@users.noreply.github.com> Signed-off-by: Ankit Kala --------- Signed-off-by: Ankit Kala Co-authored-by: kolchfa-aws <105444904+kolchfa-aws@users.noreply.github.com> --- _im-plugin/reindex-data.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/_im-plugin/reindex-data.md b/_im-plugin/reindex-data.md index 2e3288087a..a766589b84 100644 --- a/_im-plugin/reindex-data.md +++ b/_im-plugin/reindex-data.md @@ -91,6 +91,12 @@ Options | Valid values | Description | Required `socket_timeout` | Time Unit | The wait time for socket reads (default 30s). | No `connect_timeout` | Time Unit | The wait time for remote connection timeouts (default 30s). | No +The following table lists the retry policy cluster settings. + +Setting | Description | Default value +:--- | :--- +`reindex.remote.retry.initial_backoff` | The initial backoff time for retries. Subsequent retries will follow exponential backoff based on the initial backoff time. | 500 ms +`reindex.remote.retry.max_count` | The maximum number of retry attempts. | 15 ## Reindex a subset of documents From 72a490a8a920e3bd587bb63d8f9a9b36e8e4bd4f Mon Sep 17 00:00:00 2001 From: Jay Deng Date: Wed, 20 Mar 2024 09:06:36 -0700 Subject: [PATCH 06/42] Clarify concurrent segment search index setting (#6714) * Clarify concurrent segment search index setting Signed-off-by: Jay Deng * Update _search-plugins/concurrent-segment-search.md Signed-off-by: kolchfa-aws <105444904+kolchfa-aws@users.noreply.github.com> --------- Signed-off-by: Jay Deng Signed-off-by: kolchfa-aws <105444904+kolchfa-aws@users.noreply.github.com> Co-authored-by: kolchfa-aws <105444904+kolchfa-aws@users.noreply.github.com> --- _search-plugins/concurrent-segment-search.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_search-plugins/concurrent-segment-search.md b/_search-plugins/concurrent-segment-search.md index 58b8d9a8ce..0bb7657937 100644 --- a/_search-plugins/concurrent-segment-search.md +++ b/_search-plugins/concurrent-segment-search.md @@ -27,7 +27,7 @@ By default, concurrent segment search is disabled on the cluster. You can enable - Cluster level - Index level -The index-level setting takes priority over the cluster-level setting. Thus, if the cluster setting is enabled but the index setting is disabled, then concurrent segment search will be disabled for that index. +The index-level setting takes priority over the cluster-level setting. Thus, if the cluster setting is enabled but the index setting is disabled, then concurrent segment search will be disabled for that index. Because of this, the index-level setting is not evaluated unless it is explicitly set, regardless of the default value configured for the setting. You can retrieve the current value of the index-level setting by calling the [Index Settings API]({{site.url}}{{site.baseurl}}/api-reference/index-apis/get-settings/) and omitting the `?include_defaults` query parameter. {: .note} To enable concurrent segment search for all indexes in the cluster, set the following dynamic cluster setting: From 1feb4d38efdc1d35056a6c69b3f9f13522e1c098 Mon Sep 17 00:00:00 2001 From: Huy Nguyen <73027756+huyaboo@users.noreply.github.com> Date: Wed, 20 Mar 2024 09:59:39 -0700 Subject: [PATCH 07/42] Add documentation page for Vega Visualizations (#6711) * Add documentation page for Vega Visualizations Signed-off-by: Huy Nguyen <73027756+huyaboo@users.noreply.github.com> * Rename indices to indexes Signed-off-by: Huy Nguyen <73027756+huyaboo@users.noreply.github.com> * Update vega.md Signed-off-by: Melissa Vagi Signed-off-by: Melissa Vagi * Update vega.md Signed-off-by: Melissa Vagi Signed-off-by: Melissa Vagi * Modify the example Vega spec + fix typos Signed-off-by: Huy Nguyen <73027756+huyaboo@users.noreply.github.com> * Update vega.md Signed-off-by: Melissa Vagi Signed-off-by: Melissa Vagi * Update vega.md Signed-off-by: Melissa Vagi Signed-off-by: Melissa Vagi * Update _dashboards/management/multi-data-sources.md Co-authored-by: Nathan Bower Signed-off-by: Huy Nguyen <73027756+huyaboo@users.noreply.github.com> * Update _dashboards/visualize/vega.md Co-authored-by: Nathan Bower Signed-off-by: Huy Nguyen <73027756+huyaboo@users.noreply.github.com> * Update _dashboards/visualize/vega.md Co-authored-by: Nathan Bower Signed-off-by: Huy Nguyen <73027756+huyaboo@users.noreply.github.com> * Update _dashboards/management/multi-data-sources.md Co-authored-by: Nathan Bower Signed-off-by: Huy Nguyen <73027756+huyaboo@users.noreply.github.com> * Update _dashboards/management/multi-data-sources.md Co-authored-by: Nathan Bower Signed-off-by: Melissa Vagi * Update multi-data-sources.md Signed-off-by: Melissa Vagi Signed-off-by: Melissa Vagi --------- Signed-off-by: Huy Nguyen <73027756+huyaboo@users.noreply.github.com> Signed-off-by: Melissa Vagi Co-authored-by: Melissa Vagi Co-authored-by: Nathan Bower --- _dashboards/management/multi-data-sources.md | 22 +-- _dashboards/visualize/vega.md | 192 +++++++++++++++++++ images/dashboards/vega-2.png | Bin 0 -> 261352 bytes 3 files changed, 203 insertions(+), 11 deletions(-) create mode 100644 _dashboards/visualize/vega.md create mode 100644 images/dashboards/vega-2.png diff --git a/_dashboards/management/multi-data-sources.md b/_dashboards/management/multi-data-sources.md index 0447348648..aff9a872f8 100644 --- a/_dashboards/management/multi-data-sources.md +++ b/_dashboards/management/multi-data-sources.md @@ -3,7 +3,7 @@ layout: default title: Configuring and using multiple data sources parent: Data sources nav_order: 10 -redirect_from: +redirect_from: - /dashboards/discover/multi-data-sources/ --- @@ -16,7 +16,7 @@ You can ingest, process, and analyze data from multiple data sources in OpenSear ## Getting started -The following tutorial guides you through configuring and using multiple data sources. +The following tutorial guides you through configuring and using multiple data sources. ### Step 1: Modify the YAML file settings @@ -36,16 +36,16 @@ A data source connection specifies the parameters needed to connect to a data so To create a new data source connection: 1. From the OpenSearch Dashboards main menu, select **Dashboards Management** > **Data sources** > **Create data source connection**. -2. Add the required information to each field to configure **Connection Details** and **Authentication Method**. - +2. Add the required information to each field to configure the **Connection Details** and **Authentication Method**. + - Under **Connection Details**, enter a title and endpoint URL. For this tutorial, use the URL `http://localhost:5601/app/management/opensearch-dashboards/dataSources`. Entering a description is optional. - Under **Authentication Method**, select an authentication method from the dropdown list. Once an authentication method is selected, the applicable fields for that method appear. You can then enter the required details. The authentication method options are: - **No authentication**: No authentication is used to connect to the data source. - **Username & Password**: A basic username and password are used to connect to the data source. - **AWS SigV4**: An AWS Signature Version 4 authenticating request is used to connect to the data source. AWS Signature Version 4 requires an access key and a secret key. - - For AWS Signature Version 4 authentication, first specify the **Region**. Next, select the OpenSearch service in the **Service Name** list. The options are **Amazon OpenSearch Service** and **Amazon OpenSearch Serverless**. Last, enter the **Access Key** and **Secret Key** for authorization. - + - For AWS Signature Version 4 authentication, first specify the **Region**. Next, select the OpenSearch service from the **Service Name** list. The options are **Amazon OpenSearch Service** and **Amazon OpenSearch Serverless**. Last, enter the **Access Key** and **Secret Key** for authorization. + For information about available AWS Regions for AWS accounts, see [Available Regions](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-available-regions). For more information about AWS Signature Version 4 authentication requests, see [Authenticating Requests (AWS Signature Version 4)](https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html). {: .note} @@ -71,7 +71,7 @@ An example data source connection screen is shown in the following image. ### Selecting multiple data sources through the Dev Tools console -Alternatively, you can select multiple data sources through the [Dev Tools]({{site.url}}{{site.baseurl}}/dashboards/dev-tools/index-dev/) console. This option provides for working with a broader range of data and gaining deeper insight into your code and applications. +Alternatively, you can select multiple data sources through the [Dev Tools]({{site.url}}{{site.baseurl}}/dashboards/dev-tools/index-dev/) console. This option allows you to work with a broader range of data and gaining a deeper understanding of your code and applications. Watch the following 10-second video to see it in action. @@ -79,7 +79,7 @@ Watch the following 10-second video to see it in action. To select a data source through the Dev Tools console, follow these steps: -1. Locate your copy of `opensearch_dashboards.yml` and open it in the editor of your choice. +1. Locate your copy of `opensearch_dashboards.yml` and open it in the editor of your choice. 2. Set `data_source.enabled` to `true`. 3. Connect to OpenSearch Dashboards and select **Dev Tools** in the menu. 4. Enter the following query in the editor pane of the **Console** and then select the play button: @@ -100,13 +100,13 @@ To upload saved objects from connected data sources to a dashboard with multiple Follow these steps to import saved objects from a connected data source: -1. Locate your `opensearch_dashboards.yml` file and open it in your preferred text editor. +1. Locate your `opensearch_dashboards.yml` file and open it in your preferred text editor. 2. Set `data_source.enabled` to `true`. 3. Connect to OpenSearch Dashboards and go to **Dashboards Management** > **Saved objects**. 4. Select **Import** > **Select file** and upload the file acquired from the connected data source. 5. Choose the appropriate **Data source** from the dropdown menu, set your **Conflict management** option, and then select the **Import** button. -## Next steps +## Next steps Once you've configured your multiple data sources, you can start exploring that data. See the following resources to learn more: @@ -120,5 +120,5 @@ Once you've configured your multiple data sources, you can start exploring that This feature has some limitations: * The multiple data sources feature is supported for index-pattern-based visualizations only. -* The visualization types Time Series Visual Builder (TSVB), Vega and Vega-Lite, and timeline are not supported. +* The Time Series Visual Builder (TSVB) and timeline visualization types are not supported. * External plugins, such as Gantt chart, and non-visualization plugins, such as the developer console, are not supported. diff --git a/_dashboards/visualize/vega.md b/_dashboards/visualize/vega.md new file mode 100644 index 0000000000..7764d583a6 --- /dev/null +++ b/_dashboards/visualize/vega.md @@ -0,0 +1,192 @@ +--- +layout: default +title: Using Vega +parent: Building data visualizations +nav_order: 45 +--- + +# Using Vega + +[Vega](https://vega.github.io/vega/) and [Vega-Lite](https://vega.github.io/vega-lite/) are open-source, declarative language visualization tools that you can use to create custom data visualizations with your OpenSearch data and [Vega Data](https://vega.github.io/vega/docs/data/). These tools are ideal for advanced users comfortable with writing OpenSearch queries directly. Enable the `vis_type_vega` plugin in your `opensearch_dashboards.yml` file to write your [Vega specifications](https://vega.github.io/vega/docs/specification/) in either JSON or [HJSON](https://hjson.github.io/) format or to specify one or more OpenSearch queries within your Vega specification. By default, the plugin is set to `true`. The configuration is shown in the following example. For configuration details, refer to the `vis_type_vega` [README](https://github.com/opensearch-project/OpenSearch-Dashboards/blob/main/src/plugins/vis_type_vega/README.md). + +``` +vis_type_vega.enabled: true +``` + +The following image shows a custom Vega map created in OpenSearch. + +Map created using Vega visualization in OpenSearch Dashboards + +## Querying from multiple data sources + +If you have configured [multiple data sources]({{site.url}}{{site.baseurl}}/dashboards/management/multi-data-sources/) in OpenSearch Dashboards, you can use Vega to query those data sources. Within your Vega specification, add the `data_source_name` field under the `url` property to target a specific data source by name. By default, queries use data from the local cluster. You can assign individual `data_source_name` values to each OpenSearch query within your Vega specification. This allows you to query multiple indexes across different data sources in a single visualization. + +The following is an example Vega specification with `Demo US Cluster` as the specified `data_source_name`: + +``` +{ + $schema: https://vega.github.io/schema/vega/v5.json + config: { + kibana: {type: "map", latitude: 25, longitude: -70, zoom: 3} + } + data: [ + { + name: table + url: { + index: opensearch_dashboards_sample_data_flights + // This OpenSearchQuery will query from the Demo US Cluster datasource + data_source_name: Demo US Cluster + %context%: true + // Uncomment to enable time filtering + // %timefield%: timestamp + body: { + size: 0 + aggs: { + origins: { + terms: {field: "OriginAirportID", size: 10000} + aggs: { + originLocation: { + top_hits: { + size: 1 + _source: { + includes: ["OriginLocation", "Origin"] + } + } + } + distinations: { + terms: {field: "DestAirportID", size: 10000} + aggs: { + destLocation: { + top_hits: { + size: 1 + _source: { + includes: ["DestLocation"] + } + } + } + } + } + } + } + } + } + } + format: {property: "aggregations.origins.buckets"} + transform: [ + { + type: geopoint + projection: projection + fields: [ + originLocation.hits.hits[0]._source.OriginLocation.lon + originLocation.hits.hits[0]._source.OriginLocation.lat + ] + } + ] + } + { + name: selectedDatum + on: [ + {trigger: "!selected", remove: true} + {trigger: "selected", insert: "selected"} + ] + } + ] + signals: [ + { + name: selected + value: null + on: [ + {events: "@airport:mouseover", update: "datum"} + {events: "@airport:mouseout", update: "null"} + ] + } + ] + scales: [ + { + name: airportSize + type: linear + domain: {data: "table", field: "doc_count"} + range: [ + {signal: "zoom*zoom*0.2+1"} + {signal: "zoom*zoom*10+1"} + ] + } + ] + marks: [ + { + type: group + from: { + facet: { + name: facetedDatum + data: selectedDatum + field: distinations.buckets + } + } + data: [ + { + name: facetDatumElems + source: facetedDatum + transform: [ + { + type: geopoint + projection: projection + fields: [ + destLocation.hits.hits[0]._source.DestLocation.lon + destLocation.hits.hits[0]._source.DestLocation.lat + ] + } + {type: "formula", expr: "{x:parent.x, y:parent.y}", as: "source"} + {type: "formula", expr: "{x:datum.x, y:datum.y}", as: "target"} + {type: "linkpath", shape: "diagonal"} + ] + } + ] + scales: [ + { + name: lineThickness + type: log + clamp: true + range: [1, 8] + } + { + name: lineOpacity + type: log + clamp: true + range: [0.2, 0.8] + } + ] + marks: [ + { + from: {data: "facetDatumElems"} + type: path + interactive: false + encode: { + update: { + path: {field: "path"} + stroke: {value: "black"} + strokeWidth: {scale: "lineThickness", field: "doc_count"} + strokeOpacity: {scale: "lineOpacity", field: "doc_count"} + } + } + } + ] + } + { + name: airport + type: symbol + from: {data: "table"} + encode: { + update: { + size: {scale: "airportSize", field: "doc_count"} + xc: {signal: "datum.x"} + yc: {signal: "datum.y"} + tooltip: { + signal: "{title: datum.originLocation.hits.hits[0]._source.Origin + ' (' + datum.key + ')', connnections: length(datum.distinations.buckets), flights: datum.doc_count}" + } + } + } + } + ] +} +``` +{% include copy-curl.html %} diff --git a/images/dashboards/vega-2.png b/images/dashboards/vega-2.png new file mode 100644 index 0000000000000000000000000000000000000000..1faa3a6e67f239df758accf02679c0a0acfaf95a GIT binary patch literal 261352 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%0ACLHjv`Ja#k`P3nyG=a zJXB^9-e*yvWcj;Zrv5~F&m4gjRce^uYi-Rx=qvni z6x4Stg^Kep*w5>&i6w(bq$R16QF0GUI$S~Er

|1t;&i4slQ{G=u=34nP1Dp`G_}=(l-`m<5 z2Yy{c=TMc@07JNr4il((;=I}jV$~Z2!sVf&#z;Ie>a#wSlfZbBaB!?BXwvUh;2=-9 zqF2%8zTk@&AoPY)d5r;-MNR*Q&2UkYoz6My`d7KQd7o3dp3(ol%q>yWYciAnU8+?2E-N5asj_BuO7x4gKankQq=`#uvCc;iaNla77vIv#5 zQYc+*q$C4sI;&c84y~AvcGM#|@j#iy>)3O@VdKO7&4z@&JryyF z0*MQt2!aR?GJ~o~oyIpP(b8|?9Y>Ty(*P^rrC!`GL&8OBdrYPxijX6P%#QdroG4P> z7f}Cz^q-01Ap#uLhn*otD=GcH%h{AFzZg2q7HiD0Om7oaxRtz0BXs?;uo8tX`*kU{>4^*c?4oay zi8Lj;RDOKr^t1a$K#zTD*u!@rDXyxxNp$++6HC8$KBBahr$^=fJvX`@O8f{V2F6yL z&DYQ}gZ_r!rH_L?a0XeC<}jth9B+qz#!iWxYVh@g(^Nt#N!H9ydtR+ygW)?^J@&7> z1_PVkDlLR;8pSHXkJn=K*&^Nm@e(gYQFvPghX;L33aW|5HRAku^H^guRq|94#2cR9BsCSA`3LxIemB4`xAd;Iae=9 zvCb-n6ES+FO4e!wPXWoGzgSu>D(ce`JPkw*h~%RLk%>rRp17H$`IPK0Q7;rohh9-k zQ4$%f-_n4(byFf9(ySPa(46AjiRX>==y8%?_CMN*6Z=%y{SA%&E4QpW`?fT{pL|w z>HP3UQgj%zN^Wb+-J{Eg$;P<#Q8Xx?ll-Z#|2;)L=k_j0;GN&nN9|_jlZ^8ZM1p%k zE;6M{rY~}@)DV*T<8{@`QaW-xOC^8x_Np3qJZ-|!g$AicZj?phpUGi_H%@as9wU)` zxEhfX5=HjJr557~FnGN_5u2x;6tOv+>+dk%aHCUmYaCo2^A;h-TiQ{c{ry*al;fDG zEos#Dv+uR`=V~P$Esg6@Xez^#ww$^Y?f8w*Y8p!mD@`92aS(jIT?zA#kas8j8HW&|jL<%znxsueco9@S74U$ui8pW7?5X<)6jb!% zH(Mo=`5z#+CR|@sXx^+Hi@VV9m`WP6LF3uhD9d+>hFj-VT{u%pQ7sE(TfaWcW(mKI z=o$xT?G?)duE>0%reIxguez3Ay;#YS`#ea}Hnm$@Gwny{nN(C%L&Wyzz3!8h1cRi4`9y36#%#KbskWOc!cL%sl{h_DCq&qX75*r^vOTcL32mQGfTi3kl z6Sc_?NwjW$-knK~uOZIIPNzWn^^e;{hv-?lMXa-A3I1;t>ORtj?w2m1g5D;hOGIr> zKsfP6 z*=Uf1zylF{HV=LQK0Wi>E!YZ~g;)~%$3My5>BV`4;|fwBl+i~kQpmj2k*=@bvcL-c9 zJ3K^F570;L1bdZW6Z=^k+{8dQci#eMSw&AY@cLpK4I`On(2F~%7GH^f97_@gFQPnU zLAkqy@#kYwbRq3%H{`g!OESOK** zMMm9xXi=1Hv#$?(AkA2{Sx8btJULiGZOMyyW{T99(Zg5pdg&MXm(QXupz0c{AiK>XcuC`_D}8-7c}24Ej_rO+PJ#7ihp~4nOE$>3n%5%)*EePtYu< z+{l3Qg-X-IeR!Ul0=`9s$h8fq)RF1(?+vsyu18j}$Jy3zGaiNtWcd+=3l?_uY~Bzw8J(8c+wh#~l=1tK6U z?D5^48-%(!$*TWxlEqp)!cQsvEXkfOC3g2D1wUdEBmGEdP{5JMv2_%T_ZnQ$No9fO z?^G*`;J&qB_=A=t8hv@m$ckaL%#n_Mn#ybOzz{z3D92mZ5B&T1n>-CZav<(shRnM2%uv2!Mj`|voK9t%q*E0n3Y0OIc= zoEZJOQSbI7^xL_9mc4X$GRpBsR2>^o9&S!P@vgA`2M8!beau1+_|zVkp;unh?!dpZ zbH&uDJ1%^e!JA!x%=ioP=Q+}0+!2i;GiruHJQoC^h%+C%oFzHDYk1C zR&4Auvm=W#NQPavVxzMaaSj%&HmU$0UaDX7TG)|4uqn-Md32-crx<$@Z?NYyHj6<4 zU8y~0ANTbIvEwW$;npz#a3|qxwNeSfPGN6PV^*Wia<*3G4aJ{k{p&;PD@Co;rNAGH zS{o9(^5`L>)=ZBk&C?mVT>V(m6{8ju5M;MzpcQR21v3v@<@=gU+6akNQANGx3{e+a zLanQwtZQ+}sO@6Gvp9Tb)Dx+2tlYTIG;xypL0+uRp|saGQ|AkBjG(?zqdsw|ie$$wmTs*Mc6NBE`9Tg)~mO5M3E86INbGZPx8@uSaXy4Z*efLe@>*msLcW;2~UKP z1S?XhKkLCe(u*3zICz0R?USWd3d)*3NvVIJRCk(J0n+Li(Z^7`C9qxsKBL2Nn`Qma zVbiAK+Z8K?+qGAJi5Ly6C!s(W8b~`WE!+L&m6#G+=-@lj3O^;b&%{&mWbJ;3T z&y!#-6sCL0>}&Vvsd7up+i^@}{y*xh7KFu&Hq|c?sZzN2r<4S3@ydSE#P&~}%KqN` z_+zkFJ>uw0ltb$5_w!E&5}TX_$IrYW?s%G}pmiWalU2j=q?qdp+eR5gDg=0M1Unam zT=p}`z##w^kVU_g5i5vkye%G~3HQ^_3GWavZ3AlF{9q)H{zgBJ#taHkpwxbWbwQMu zjrZtjA7$p9e+94P$0myB;|{_Tzf++m``cW^uc^N|Z$BC>^L??w>#$WvpHsDmb{qUt z{XDPhZY@&q7)NoSK`&%?x?-m&NsaHpC2GicYLmFNfIy(=m8$3N*OrOg9Cl_WC{m7N zn3aJWQHJp8#AhEkX(o_7i3r_c?pD3j!oZ88%7|gN6RB)C`EtRXdGiERtMyxiWshH@ z4Pk3GO%vyCqVJXcpOkM1)n)8f6!wm7$Z^-RORU6IQi7l=G-!+AF@dW3zjWr~AXR3` zds5U1G#)w6{9Jj&I;3pCOVy<3VsVBiqbNJdbJJwYdMUxyi?d{efK5Fb{}8Kwgi@IQ zb-s)wU&*R+8c~jAbB7rw253BpJiKM{0rS`Q#1AOYSvBWBa`tl5#Jealz8GOlq_rM+ z=M;UqIoS2QbxcK(igpY~5nl{|-|pa24M(0^r>h(1yb-4rZ7=r@EYU}JWOG{2GeK-v znb4+^loWFR@yF?NP~Tp+TfU!1ke^?jrx`CN$C+MCj0!`&21A=}s-r&7;m-qhIEkZ7 z^xX17*qHN`?92~Q0j|ne1E?Y9)nACb4}KJeQHr>gq5PD?V~_SKIe6gj)y$Hvv#ya_ zD?laBs5=BR8YTIui3Qg-^`&6Yz zfPs#2r9Z^L2|#thrC0GU6gT%GkcT|kHYeW^n|p{I!PqS2x$WJ{}U>F2kE)(KAZ3q4|UQcvjbzFyY^-=AAh(*aEz-zOliD9@BvG%m57wp#fY3q0$BfGZDT zd=GYsrWN~>WQmdG zB|@^W`I$3jU@=S(4_%(1t*}Bv&>Ni{$E?jI=0_q#m6=*T#ETcSs)?Z#j3v0u_&$=N z>zUDU@z_3~eWZs$Uo2rZzP}Vk=V1k^4|qU0g}=I|zN`_0^yDMwth3!y8y>)sU9a)) zyOELowA=a|1hkud&y38utjsg9p4?w!ZuJmDMlYz--T~6H=l{2V%7dpKMdu@>T-I|` zZwh{7gRk_^M3*L|3p>Mx1w(Ic|{Qs-hcnZaQ@98(o(uP4Pr`eDyBcnF1A*($~vgt znv*{TGS9aIBp*B~ z0sqSG>Z%_0V{}62Fx{d&kNS;zdw-?sG2;~)JsQ2Fc4pD--~j)4hD2cN$$a6Hf1`Xs zhAQw@MY!7tH8Kz>M-7aDBY&fc2H)_pj*S)w^2#Su@vY4+58Zsaab{N#(56iwj-J|gkU2D1Hm`4H5 zl)Tz66e6U(HI&uC6gYOBZ3@i!4;?05D1#T#%TtF^Kv~Ivj4t@m+8Te0FH`@Wp2_*0v10>gw zcu_#!gg4@@!S{UM0f(akA9g5dExG(fE)e_!WA6dw-Cr?9@*nySaFo{fi|CA#B%x|V zbfQ=gtY|xxN1ix{cLEnR?}8i2!Z3SLxvXScEd3U<_9#>us^3QLkpfQ=zboZvngDR2 zi(%1!V=43oSYv5sf@7tX!mHIGEH|+>Crl&0X$s=7z-_D*dJ)b>OwIMX~Wkg7Z{IbHs*s zr)!Aip9FhSJjCm~vVPqwS6`%t>Ex*4Qh=vlZk)q+Q5y=s;5b`8d&aMcads{!?>v+r$u7LGW zQL7#q5dpy{MuUIP^uA28-}dZK2LEku!lWuv}O7%BR^i*(%L-*hk#o?WRxE4N8NT*E)^U+0Uq@ zDX;;H5JD#MMQ-ktZ8E4TdlxUf;JCkuA{5z@l|bAhfpK1qHf2-V7kfvoE_S6c&Kz*1 zJpc}d(#gIm8cfwp6pYq}wfC_ldGmdgM4(7eWO#jBaGQ8;RdX(KDI2SbZTW&Op78Sg z`lsC>N<(B-wwht|{ZEY4PbjZZnkAES#~zT^*bB0#5%@Wp-3V07-Ei0ZlMJT=*94A=Dwv5GR~_!(K+@rRx^T_U5BC)lC6DdEOpN z72x+zmY&x=(nyvz_W+CtCA)1Mz7DA_HcEt79B(b72_gb@O_(w0mp}Ld1j8`JpqI-)@gtO$>M~$dgzv(=?Z{US`e`Ah z2;29lJdB$XU3!JF8oI!BnIMu4zQ25{oJj^iQ&79Slu5Z~HsFD~C%aSvs~iJwP)N{) zhTiv4`E%x2QrPnGGHlo_uNwg#?CdhrJ6Z!hXah$QJ#p-e2x%_|8katX*B6IN>z5n3 zUth#At8(OioPi5c)Kg38v#ro{rWY@LqXH!)g~pvkBl$l{-1TZCeShAAY17+(k>G&} zhyPF)9dMJ5g#94P=o@Q!Fjb8n)cV_2R6x?7KKo9p&F#vf$7KXuFxarJ!fK4S6-D`( z-VN@;3LAEnn-cx`q;`~H-g2?AC}Ksj+L?|fy$Z)XI_)sJidxDaG#Acyw8y2SG7^n= z2+I&ZjJ|7U1}vB`+)e)NxczJ64q8^uB+Ub4^rSm)qqRz{*X@PWpqn>{nB6E2o8=s3R zvbah-kG8maKCiwZCJ}3BT=R~D6f?G$9$nntkoD&~Se^>ND!CdJ!9L$#62QODLn-CU z<&llMuKO?Fds)F@@b6&fe@CB3LO~k?@ajiMl3vjat9f8|_yw@LV(dQ` z4LeqBif(fKPF=O(L-FL*x2Z#8>UV<4)&NH`G3ao)`LkJ~3cT9d7d^Q#ZzF^~+{@qs zj{P1tl0H&2l4ib|DD|fo-UU0Ic*_G4B%Ly_nzc3I5)WK|v`B_L#L9hFfq&!Sc_M_R z)z{o^LZXL9cgWf%F~bN-$5y21VKZL*mSz_r!2b}EST638!h!#7&OA89t5J)aBE0$o z>%C?`C9Y(pnf8RL3ap#UW;0Dk z5CU?lh`ZE&tTsL8aI92q0lMFio|okdKQY7wMC|{3i|(P=rs6Bu=fxTVmEqOXDj=Br zCHE?;h?_9ma(Ho?B3(@R+UThK8!p!fN!k1gpi0yu0(Gz?vX%10e;@&Ea4|!W$nEtx zf-#zu1Oj;jdA0MEjI3y&rC+P`Loog<;*X@nu>#YlkQEHyulMWty05JAw`-Z(;ZLY^ z_w&PF#GF$bVCUWBmFIY54-f4ZQoiWI;WZ6mLid)OLQ#TS`eHeNw! zwzD%K{ReQKtf~w>cvl5H4#2kK25zoiWAcG291hSSba`@@g~# zm$x;4N(3H*e94Yw&)k+Olf0mc zq@Gymt6YN(%KCrE3Atg(m`RMgel=h6G@R<-LHr!WCk+%kWVZ;KhqK!JQso zU<6vOjM1ZDkH?+-)|&^h$$e!~lklnaGZA|^Dk=r4->NBWjdm|xrpL%;a)!|>=acNA zs`W9^b*ai?XT~wN%bGWJ2W5ewZgl8coHIxP+wGAKDj%!dmi;Vw{D*qWQ)<&^lD;Cc zjel8oHCg!a4H*HAsTg9}edMepBWxBvUwr7ss%8sveF zRK*;-nT>)z3)53S6Wbea3GnyLEFr7xw#df+P`%+ZYj4Kv|N5SHQy3>7g7v0{zs;a{ zRtbPp%h3{`T}s2{*{|5w?Kt?I79~A%S)$-OenWU`1l>@~=tEHFgqrB^Y~cOvKFzJ} z33L2j!0Kfproj|ygc8&CX9Nq;du)u;v{v*s9<75JQ=j6C%-Tq)N42xfB$rRfa}FzC z+Y&cdfO0w^>n{B&@#>)VKH?RyJ$t!7+QQ(fCqbnr=hm*J#2&HuYL?RMRqVs}8}Ex{ zDmcb1hre2G>a*_B(}2~2%|_Pt5=rLlb!1TteO(37KvOQaZHvT0M-)u%(foWX-F@fq;Xce5ydA~TU?eLOdBUzm3nj9 zV^xAX1z&f$MqH`Q^$4wqD0&5G#sw2AwmYpIQ?0a=Jeuj|Lg`^)_2*r_Rmw6yPJYmb zILAy~j{478&ySs1X+9PLYIbskoX}$in;0z?0u!(lPj+jNO!K%+9Wt1Yqcmsh$cmGJ zGMBSCC1^@~oLre=M0FF~;lj*xHC%a~)S?wTS}9166hR7I_I+MOqe7#Jx7YXcmCGr0 zWqs1aVn;Qul-Bh=RK2RIGBZ4>ooW|ccr@wAyj@lE{V#GpuJ>)$5CJVv+y+y0JD%kn( zdNCOGirHLR{1SokpJ+=G-2uMki(v`IYf$q#BzHBi15sxpb&&VB06IGH_&o~2f7TXV zo~&js)7^528$d-{nZe**!5`)*H(0Bic0Y#52o)NBZA&k!ez}8N{Puj@JL}P7wNx~a zv5x!XB;JJADL#>=j`v!7kB%dwb4{2Fw%5-1b#9u9#8#T?JN5rOr;;Ru^TJbD{3}g0 zPhd^42fyYIW}^>f0AtQbZu(VnvZYP2EKf9EAQSMl4n!_VB|9_X0hbNG<2q@AY`-L#=%U5np0o3{f200qp! zC?&NiBf*Tt%&UB#B3WhBJ{n2`PSwlD$i>L*{!GsN6n9J$HphWQlidY~1E>TgbIVFm zA|^wZX8yZr))y0P#kquGEWpF}P!@OMEjq;y6}#e+ygs&DxM*j(L;#PA3V=^_pX);g zT;~+vJfTiR)uinKd25ktKiyROXGsa#@nPff6KxXzG%EkN6#?Vdo zEQC9FicM9t{v~BWrjpXm)P>-Qdb8vJ7p_g69ZW;_p#%nY2k40OkE63stsaJ#Po8|F zCRLwAgdMX)PAsTggfog8R@)JgK&y(sx=H`{rH~t<)Fm@-(6Ah#p{tOn%)G`N%uLBl z4LPQSv?>S31F(c>ovO+(UjX&+4KhUHVuE))aO)h zmxXo+c#url&r~Ttpg~MBP2BC*NL-Uo2=w~jNc0yD1IXfs$Px|H7^_bnJp*- ztR_wPK37A1EMYfhKsytoTxL7x@Y!?!`xiZhc1&2?PD4l(R>mRtgr?yp1w4<2dzdlf z4>#wr{r7=qZgIl4+&t!g3(Q$NOy278KIx5uKvA{}aycY9=tT+rbDb-UN-1oYYyY0QlG^jLlSsa-&D0-LggwQ|A|!SZlKTII#86mB}xTx@7cFsyC7sKAAR9Mv}a zI5P9@1g|;l3#kE}z~JF)3)D)ct1=@t#}Z2K4oVUUe5sE#O2Nw0NiTN^2h=$;>0Elw>yi3e^QM z*F5ZJ514U<5)wF3nJ0S7XJNlFB3E!Q?wjl;$bXh0`%MOF=Kg%f+B47g^R{Iq>1iM+ z73uh0^r1BbOI)5r9{hyi!+uLvHGOSX0(Oc+yABfPU6WlYjvfC*HNn?e@8t$$q=>^@ zN4L+B(KX%vviQdMmlC7{5_rQh2XL#`hq5f9S_4nEzka{h1otq!ZQ+-!P(4MitYg*a z(jEt;Z)s&kk%^>=mgK00PL?Q#r)pXqW6!jgu9?xmi3pq5Y1*SOacL``{6eHrF3Ns@JXTx-R4^v6mNAgL~1z;_aX2pL>~pqn1S&r@BfaTci4Zx54@{2(uCVf zz2udE%fV=W)@83v2igJbKVQwhXl8lL)X|7YTdc>>rNVn3gjI`NKPZbV zI_&{q#loe$yOyl_gmfPVARr{>`d=5oTUPri^x0oWS3;E29GIF+d%kD+&LrwcNkWnp zS2n8D({oy@1Wz>Hd}{?454~?gr!~-ECGcpYPj-Zk?pMP86vP{mEit45x!#nH4qhBt zJT&oYq0BT5TisI_&q9SK(?5d?v!+8>bjJ?}Ehl^kJ7l)kRH6W6T4P}}nOTO&+$l^?JX!-F)>M zTGBDu4MfyfYNbael9-rG1~A=Bk7G!CD7d8Ue*W2huugSc95VDrgA58@e6I5~ME5$I z$ur#ZzUYbVoUJN=QoMjO!>J&I&^l%$2>LSM>j14Mga=4*;K zo_~3&Wdg17x^RQKQ-HJ^x7&oxOtBC;orGh(oE=q|hl-J)3OVM>K5i02XqC*JGeaxd zAZZC>!~54AkDlwVo}@6^|LE@Sxz4aPrvCfK@8Fn4 z|Gy=S$x@=^CySE4i`ZI(2hQgx99<#2rg^M7(3%a4&idzW0ca3>WP74J4YWF2mvnwj z7%YUbzR?f9S+LFsCt_08L~J3I%_f_zkeZg+osV&bL*Tzc~DrK=6VKa2*v zfXUj`*?^MQ#>OBAJEttNIX#2B1M6%qQe(IHN-Q-tGu;1ks(dd*K@`;kg8;~;jM$Lq z%Xf>RB$HyK|4+3Kmh&%9F{zTW2BC>XQ?B<;W|ZPmEGOqeho_R!;EF zpBob@i=-0SYcVRe$aT``30wUxY4=Jn@wGEE7Dh21Cou49?>05l>DS;qBkonWujcJW z)_K!M45QLWf(z@Nqy**MB>J}|Er5f1w$nUx=gDzF?EPXBZkB#KIc2!dpDrX>(EemtN#7kH~Sf zDey+DPZGA*I)R2e#Qp;96<&Kpuj5i5tYi;q;89_@O@(rPP|GqTMWXGs`82)NXDn*F z6hrR}9q?nKY|B87Q~n0X?W%Jubmo2M{ZCNS&b!LJmY3{(uMWJO|0OMQ2}>6UnQb6c zCR97L#v=e*kEva8Pr%M*@cXwSt4yFKJZe$Fy!|}Utpn`4A3!Cc{G`q64WAI-yN%Gp z{_F>{-!)ujg(kDFBLJQHA+a?oVtc}P_}qEh6q>5yresqorf2Kj;)v00P<$}0k}*?= zTi%5tcs*Whn6O&%&J+paVue&X8|JOzqpgkk zS_f%ga9_OM5;!X~Q>CLI1TaD&xCAzuT~yel{6v||3N#v;r8w|ec!TN}z$KCbp!QZ- z4&PLzmv8NA2CQ_i!R0m+ZX}KII7ex3=~dY$&bX|{Dd*VF)vYb5V^HlT0{sG?kTBhp~f?43q()CRH=fG3Q7HyB^N|D)xVQMyp16V$LSl z7z;k$mk;^6AI=W3lm`Q716NxIiScC)0oQ`WrhqBNpwi3o-CVWmWWww4h7Afmz#Z9S zM>ivE?@|?frWd-o%{GWF>KdnT5gi}#0~0guwQtEXI8g%U6C+j~Eu$`H`AB>z1?0GB zo)l>iU^Td%bcnN~*E<|*y%@AFlPR=+DY%bMtjf{J&Bi}4OAEL{%)VnS;DT3ZT_SF1 zF<;{aC$?F|H}j$~a;edN6QQ+28Uj|{uJhbps%;(z8p-=uMujTe?GQ-+n->TC6TQ9W z@9C0&(>g0s3r^%nNPNtZAsvNgOU6PZt{T>5qs~Ut+%B|=!Ed~&*nSu|bgodkZ^v8p znTDnr8~WA+98cv>GyTuJF&C=zme2%!Ukd2Fy5-I)v8=u2QbmsNOE5n(r!vQ73d!oD zgdwRa=%W#!Iwe-%1LT2JmT3$jNU$0)9G{vL)~=Xooa&H-EKERJ1ElesG)_Q15QHBt z_>PfobIg~JpnO-B!&`rBKYjn;(abf<2 z;=%%4VC+HvYct`Zx%b$CH;KU5<0?@~jfdbIZiHbq136I>9-E0^Du9H688LdUgd{II z0-Xu3iw2o9jkwM~EUflEcTv->fhxAhs+~5ZOD^Nl6+aigwH0p~)>o8tAK&*xDj#v( z47M82WN9R{-cA@Ji%^TPkD&`(+oLC(cgb7#)_fQIBnF>SzzzN1X41}w5YdciE#D~% zD`QA%mQ`X^JNkU06CPkrJg$h5j@VEV+gKL|h|B@P^B;jNc}_?{>wmcr9Acwb2nZ{s zg;WF!M7B@CM(daG3ngH64J^7q#sC)mRmt`F*IXu-cIn6hD8kgDHVX@qOD0wyoi1uB zqhIrwE@oatqsVZp?Z-}&vK2T!iwPG10Eaa$NYL$=RGX88e35oh?s3&|h+9V2F(r}n zqp_OsjD1xgKF-7WlfJgzJ9Iz@-=SD&y*`9@Q5gM6(E3!$g*}IowWJ7v0OaZ)(wgIs zqh(qi=ZRa%l>biPVowBp;}FEaC_P1f0sGbyO(VU9ejfbkC~@jmWwV43B)PoDN)xqy zl+-X!kXmeyq63xCIo|E93+%{>3xY^~l8S#A_OsYZ6r{boZGy^2@N^{bJDUWu{Qn?8 z#OlMFuoS6!EAO-EZI(g1_n(aRiKLbPm%uJjdkQQv3V{m9!FC7tlgyI0wadiwuJ#cAJMnM!RKtUz8*cYt)mI#;4>Nt z&oS){5yE$FtM%ezO(I|LT(lXPoal(Svy1McEd5 zh*_TK;F1xb3E zh^VC<#}ZYAX#M|*z1(U9uQVN0`^q{*jNBG-)M)5$-!mVLg?*>qbjjYKDs{t5n>^$P z!R?}c35=;`M`ImEi0L*s?G^+G7)a!_B;_F=liY8bpfg*2L>g{gyYCTySr=`H=goHu zZ7CK3!d!I|Q8a{4hqg-=4_+$$V}R`Qtnsk$j7#yVP6=vmVFwdWCg`Wlmn0;44gf!q z-r#qHohMSv}eV>>UAE z9U)_uu-a3euM#OILt1D?VdBZc1TsKFy!%lVgn9*N+8_X+WEW+j?qn;yfvbBVV7*NE z+v@-xz}u5>c=vqIpEyY1g~0^t4@56u*n?i`Y+`Ec2nA$om7I5}hwgJA1Yt*Rzby=! zxK<}&BT`>X=}+VV?&IKAET0mBTNKT`<2^Y>^nD7!RKXO{N$YjWA5r^sO(BD=5~pUJ zgMAJkjmWkT<0r!FrbR#U*56|DF36gOP!Yz@N#Bc64*441f6d_KJJPKvO(UQE`hUjS z_L4|V>xRIyS8{m!-}Q+lF|d7Bl6B|xuNzEbf3F~0kWE&_dYK-N{LQ`>_`+X#^+9?_ z3YZYcnNNUP^@PaFybuC>yGKall3dJU-7(g)xRH3#Q>C3z!}i|Dy&{OS#jqsVN#F!o zpPeF-*?W>7v_cHK-n|5p-iYK zO(Xy!*Ib53qDAaFoxx{e6V_rO8ry-HiUK({O4-~(JR6b*3e-E&WYbqRWOER-!BkO6 z0RG^c37arsl^jWleTu!)ye9<^V+3bHbIk9VLK(3`1W|pdNl&?h6_=otm2@>Dl&Em9 z*5Yw;SgG>MNDD6?c~XH>3%eTm+b|DMetM`bgv}UJbN8wh(NM6QU_(?6k=%n?q{Q+Z zTqot_N|IVWb`WZg+vcPA=DzVGS73(XGtLMVL~75?kdv0)MlnPU)RSL*fU7_`Hs4X% zNkb{2)IC!%L4{*y8MlC=4RixQcEsP?9y;{ew;WL`QH}d4`>xy3kJ4ATlmw6Ohz>{} zJGxQlFJe0aZ-sami{F8ACrq_PNrR$;!O9Dq%{ll&6ZfU>SjuqUe5xc-c{AuUKN!$| z^ttNlbhdm%`1){9R7Na>#uQHFTC0BtZOZKPn@<)gqC~o6&fy{%K;Xm2~CIA^+?{Vci|~ zMTU}eyeyGaR34H-Wp0iMgFlXzVE9r_s*R%t&zgUVcy_#Pv2t|I*PW_L0lZ_20js>0 z<})12iR((knTK_(?Bh0p)4y}Uq+%&~D1dZepr&RpCzd7(?Q6FrgCuDH-RoY2eN9Lv zl@oG`u+#iuhBEg@sDp85jmXtGhxT>c(+plW<` z673E%0R4SuVa}EqT(Xk}2P)Tz0T@hh+g!&uQrNc+BkdwHiF-~a77wO}n+{zf7-ULK z&A}_3qTncte6%#~@wXgz>O1{AdMS;+VgNM%_s@j-p3ODc74r?3Hu zaxZ}8;BA2u)P!m~S9!{P(M&(T9@ML6C5m_Ick;R^TsAwy$qrTL7UnsmpT^lyHJPOE z@>B-{DZ7I#%pg46dH%WOf-27eutCSqmC}RZwb3$3Jbqd&viFMm=i)XlvFBvc{;c)o zGh;HpLKGZIULI9voCk)vA3+P+mlF>#cW-@`vt{3h7^?xpTVCAsM$UFT3FxTbd0P1b zBEt!`YxMFe2Yp-YC|EdN&@fGtIE1&3rM`%*`98S+jYTKoU#P2Ya&eCpFFay591Tig z{20l-Q1|_Z%AI^!gNHx>iJIDqcY{B?*yY0y!>(g7yoHs=6MtA~kKc#~+n7hi`-gH? zeC@|?|7x3Ura!cYx0xgru2ehA%>0(It+N3CJ+Tfn4eWH)H(L6$FmCtU0*XmRr}oVK zrPCO5UmPZSccB)Vvs;m#G4rxl@_bZmc4~Gxy0UN^{^{M=R&2$Qd7Yxg#ER#{zWu5W zM2v1Kc~<3l?pO;+3yq5eAi{~EX(ea6Ee;6-#Z_Meq4G}op=Y;i{+);%jsMW`SWNBv zE+Q`+!igacYdjp<3nRQPYfg^f=V)C`#6B_8n)vMpUIhQ3>!?R)$lQ~Vb;^e5-{g`w}!-g3x9HRL}ku_#p>8_!<9x)N}x$ z*UqsbRtTup2NX}Ym?|qj0Gs!EZ_s=y8NWZ)=T~n0@SUa(xE4Oll3u-KVzOA45;r{F z7CVuX3X}dR|2&PPSP<=mk&E|Mekm^s_*hu31GK!~(l%fHNe^gJZ(m+n4 zlifD*IoW}GLIvA05f77onC+EiMbu(H6?kLmP__k>1577!h?uQni9e^F=q(>T)Up zCrWfPp?QRY+ts~lp(mc48WQ(Sf7jB}Wbh@HDSh`htVS;cM|qW{xJ!RRgWqMz02*KPmFNr2mVP3LH)PrQ=Fsy@H0TcGBX3`pbSvO8Mpk8UM;! z`-vy3UU)53-6UiRIB*Js24Zr2_C!;?`S77qyZv^;mIlKTm$TI4ljgFS)0MK1q^iUCJ9 zX}Bz4{Rw`9*G3Gpe!*FbByA004MEW)EE><9lmW;=Mv=k*>E-|c@2j6|RzaHdz)B07 z?<`(*1(O9|ksZu1^4t=caL|(+Uwd8*@kL0`XLBS-h=r;E3UD0X0aUibOar)ry7km$ zpBOl#&H7MbBbQCqhhLp?;7zcfUj#+hzNs8QX8MPb?bG<9rPQAaJA3v~_W`~dp=a!U zdb^5pSMQmxt^~+d>M;*BX_XG08{8WSM0@FW0@?y3RcNQ@cwLx)z|BXV9TkJZDBvt` z{H@R)yL+?}1HylDYz*!v)=fpm6MW0H;Ws5mnuY+bCq*wudB&aT$%x=@TkM0~-$@Ec z-aehj`X7%2c2xeU^ESLp@t`;W{3aHPf*!2UojtVCr!0YGWeWiHhAn>|^Q! zpGT#siqg{!8FQ+V<;GA4Ig9~cr1B*o*5g;?QRq=w-RE@%jSi=ujK{m19@hp@{3I05 zAenDL(vHbWP8V|e!?5+%XGbWAv3^5mGtd(wOXl<*w(kxn1f2)(jj5O$DcX7Q4ytRO zOt*R}0gg`|@Ob}xpW|{|^^U&3n2A-}`gdcXe#ELfjdizLXpc?-b=b3LZ`_OWn*IQ4 zccDo8nbn#mHr_Nj>-eSlX)|QvbE<$t$D*ClOEQsm$;u6XpoVzwY_0osq-Erot-#lf z)42wFix*>K)AT>q!67SVwPruOV5GL}Lg(g33hF7K8#6FMoPi^JCDjuL!XucZ7U(4V~@wYST+)!>UlDB-BZq%T; zT$gy>IEKi`M`2iY&aE3+_16;DWIt`!&fx5Lz3{y#26e8tT#nUy7H7=mfLD%Z3ldF5 zeuhM|HWq&2b`1AAglV)^+toNvqcWw-s~vw1TdqlLn=EJ)I}{zk7dz0Lne|SadGWjM z*WK+8HR6rjb6_JP72IBX!v20J%*){i|nTgqyB z*oLmaGwamab0aQ#g+bl;^25NxvU|nipV0+>(Gjo0%hT4aRX(DD4qGtzeqvPj=wF6{ zgI8a$$axQu+Kg57Si9~T415VIF9VyV^E)112sti_UM@dPFl5UaX1ZQ4sPkVuo_C5F z^#@WdG@edEhpeAcj>cpJMD02r+kT6YeE#_YTi#Mr!2UdgZ*IJ<^fYUz(QNUC-{zb8 z(=|(R^L3lTX-4O&9aM~ad^Alv+@H^Wb^hyF%H@h)lk=1OWg*+hPNal8EJk=w&|pQ&t`fm!FS!m@DtKikGABk&hI25Sg(c&N6@u20jepV zD*XRmEX=Y3q)T#KjizH$F1ThNV5P^DsA0*T2x5RxvRn35(N|z-smv_RYgI|saZ2XH z(lNsfKD}u?hg(p z{>(?NQq4n_3^O9`UQiHITTLkq8QErVupO;&L;tSO2fstvRM8<)`#}DDi?90Tr85ee z@;IRF8tE3K^^k>Cj7eV;MtMlx82k!&l73FpA68eR0gdC%de<)&Ip-Ew{= zKS|1Fu1d~>ADL%^7OE_Ng_G6vXX`z+W{a{5u$|b}$>5N+@usRmLS}T#>H(oHp}qg2 z;X)S6;D-~d*#tZf4nKgl#+xDGj4^Jk9e7*$XvX zTnZ234n%Z%R>z zB5D%XY5Pk>0~SvN8W83^Q*1B7;|dLJjueed70(jyM_MvYN9L$`lImBmf)nAV!gO^P zt=j$F+K{^k4E@3vzTIlC?F?>>ro4YIB`kU2$MKl8Q0<-Ub=2_UN_i!6(^<~+_<67J zr-(Zb(P_(S{d`{Hf#)$xv0ALrZr#1>7?9+v<8pCU+TAV1sMXTxt@thX%xx;s7&`u% z?cuDWNk?t=m2u@=U;SxEq!%nZ<3pH#{6YPa(XK1@bQSu?PT1#%Rd1fhT8V{Qb#B-) z*iag2-?aV}Jj1P2KQzV)I`h(S0JaNx+BBQFoGchiLVs~sZQFS>^IJurZs}kzW6rT{ z+ToRXXH9L9hT=`RL!f-IQLnt!P9{E;p2YU7aq4(4o+9A59goI_iTCG%U={b6hzGaf zjW8#$vRA-^;^g@<%(uQ_DUR1+alY-W3;S;^`HkJpwvg2t&55nl%x9~y2)m+ngZm%#vqd@peWka%0O`)=v3zK-Gw87;I`%*@U!FTacS4OQ)I>W z=D>P)femtl?C&)hqyJ}YGSGuZ4DIU7n6JR`xlzS@;FM}?zca>Tg5Q4r`xbw7B8m#B zuLWalj$O?2y_VHvM<8X_YOX2r<;iY^K?!et=g|_KRD*q`Q3q7ic~8fx?^kF>HnI;R zHACy&?O4IdKTZ$rzYh33hnZVyRM?!@z)j>zjRv1V|Bmk!Qk5l-@Xpb!lr;va?fZTh%@-N_K#m)=3=y+G_GEJdLbLKB$ z;D}0UK^JS#4cba{(0Z48?Wes+kpBaTYD@X;4a_5CmF9Ggw`c@k782jAjSL=cs$J|DoM&=bev>%L%iJ_^vWdL zGq`xM$f~`fQHn(~7&TBU$}etZ@6T(HDiqmrrr&$)t_(dPn4^ye{su3J98}<-==atS z&U8MDwG|524dc#@2|fRzMT%ODC~3vFD?hRTEtp*j%eh9+hu<>Ep{)iG;iNIhE(~2IKc%FM<)vKCpI&R^En0FGRaT`3 zDW&tVKRS3X%QL%q0}b1E;hARr4eX9cU9g+d=eTAU;b-^kB939+SBz4tXX(lf#wKkE zKk7ZXA=O3DT{9(Q0~pwXFBAUHGr$G^rz2xTpDN+-U$z;2v%vW2`LGDF zeb>I~ots~`l?O&>kOf=M<~pDM+>beew}M!N$84+Gtty*$-;jnpN^Yl}jDgQ1jhh@< z&O9@2Q5uBKHC;cWwV__2Kqp@2O0e6|-9)f66KQW$3SX{egV7}l4Vk3r%C$|B=~ zq>|a9l2`hw+qHx#_*s|s#FRmcI0yC~_xH@$cpudg^N$ zAITd&lI2QHl{Np7@=U{DIvy+5O&Jz%{7+ueVU6=6M6k9zWe>oSM25rwm0yhTlpAGj z3G#f#mx=2!iVp5}Jc@%JWIfM)9_I7Yk{PB9`F{m%{dgj2J3J*z;4Pn-LGK?N*>}bI zcZ-q5u)##NIu9yULpz$Ijnf&}u`H!ROTF1m=nZmJ@{-Sb_}Xt*0n+|r_nQa89Nhrh zBME~~mPoV87gH_K)pG@Rx0lSZD*IXdOOW?$+%!3|*M@88{VeG&yc;NV`?H6#P`>*lcJ#Dhbp{Sp3zYv?Nwv7- z^|$j;(b7N#if_``e>GN%I+8gjY6Gly{9-H=ABPVvULvMaOBZmiJrXJnU9jz2-35u< zyWJ+=-s!U)94#`tf%bqT+{pL@5&6M+$e1SSA4qwu#?@~GFZ7FHa`L745v)LA%Opd^ zaX=&)hPWnc7v?a_h!H9!W=I~pnJ;!tOF)y08u*R#R){r-L-!1AJsjUs3#~|g78&vf zOC+4u9T`?w+7WiqYmm(Iq}LHvi*`3Kk45Ombo(TH9GXXE;%lir_Xzra$ai6SM0SX1 z%8O)YMc_PefhhmO!YjvLcl4qo(90>uB4v@e32Z}8873Dvxa&N;2$RM8YAK{=V)F|3{ z#$aIYfllz=(}&5R6fv4RD+$jq zPbc5J94ayI`ZO`0hUUZHWuyAmSv%Q@u*Nm;l4=@ve}%Z*Ufca{2CjkP^A^pE(_@V# zF8Y1Z1gR6%>PAWp>GM<_pl<3mHO_j8!~(4=8!tY`!W^4>2jU6!zret+{ewfa>Pr#U zMu_jrqXZaSMY!PTyWBTy9{fU6i?f6WC;ApR>JWN}!B&*l9W|>nVEtM(bxI`3 zkUKqVew0{MY7G0;O)2A&)qkLZ;m8X8RhpL$)1{x_)?4?bRZe!=_ZL_0gWG|HTRC3F zzj=tN>*ZLiyIvSBQ$B7?`Ri7m*GlZZ1RSONkOTypbfF2^!LCd z)7Sn0#!9WvT6S7D`k#js*k~atjP9ImUQlxL%m+6!sRYjMhqPzLc8m3IAKS>V5SI_d zOxREL@+z}0tPYsujZ2cLC&iK#m^!OaZHNui8Ovrxv05J@JuzJiMkJ8CX~FDlZ{uHO zyVN^J?NxfDiG!Dqf{I`O8<(KTU;g zfK%d4fcmf1gQCx7!y5dAacsZB0&OwG`k9(xYmqG^1Qbh0Vzv}O!On9ig}Sc1r&TM- z75?ID)4rpa=a_KW&nLOo|6SzNJ`viy=6%G54kjXn-OD}{R!H}0Py`PKN(`Os0S#4F z<9T3!4-fowutb_uu5Prj3CC$)gk7B|hH4&|fT+ub!V>HIWT>(QHvvLz84-ZK_|P2m z7b=h$HhJ6MjWopA9oem_x}{jK)XC%gZsdAKg?tp6-a@yulViTG}0g+SfP_djYrb#}@OpnsQf zbQPX0hM4!Wohvm19PHdD-Z#$WTPI`aTDQWt+KqD9>-V{d{<}Rx)W=$0%S|4Cej$pH z>x7rsC5d*+xl!WZwlC?cbn>6Dy)&|8mzKa+LMvkPWpdjq zcNdA4r@FC$vAi_m=W+J7*C!ok$?Bd%*;9^glx-Q;Jvmk(i|t$X0~SBk($`nluIuYY zLp8+h7?+*fAN;oec&6R_i}c^g9JbGz4}1c)%CVhXX|`4*Yarho!xo?38{9OYLuSB~cG1Nscr{~X$Hc+b(co>t$5EJE(r0%|_6x|J~g#$+%^ zu`}7Mdx-hV@Wg|2Qbs`BPM6q@-_DPS{*dH7WzV-?*V3@ns*H?kt5|TJ#p60lY~zz_ zgSx|Nee-a~&HZMmFI$7rBVzv~X47fjDw{=|t@8Ah)I>`Wpr*CF4gP(JusjLS*$>S8 zvEBP9MKnRm_QejQ@oQHZ(*E|GAL!P%B`c}(+LFTL$`EJcj)}K1J6mV^(%A4p#^Oe zs2^)#wP)&HaWu@spo=YyJ>gHjq8!)4aq8emauR(r->o45i@~_>U2-)b74)wPw8j=G zDaF49`iE774|dDcx{;qm{g5r$OjLy1f`jFD2WgPziSY;AhB-bMwKsl38cgj)KaAsW zM@@??cSVh`SJSWhh}5495Ptu@QV`a1R5`Aa^)#z5b(?YgxDxajahsfj3SpPql@Oe7@eTYvgmaD0)b`D1*t((G*Q(BEZ!?2L zX7J;~@dNmNC#BW?>tw}atPde#_jVmi*n zJz*KqHwHK!2IT0~22Qna?3-_)YW}?FM&8LnT@DJDftPqymg3&-QMWbIG+q2<1V)XK ztG)|3qUY8I(+}O?Z8!HF1?l#<3_G8aoWz?`F=ZEW#Sa7t__3As1}$z&w*-yRG4A~W z=2cCDemMMxX^}k_T-!-?%L8&7Hve2>g-o*XhxpgP3VVOlpKTXnM-jtHFY_F=Le(Y2 z=RLna?=k|gUubD8u+p9KNUji%d``y`ap$bPZD|wnxYBby3lB}@@%Il&qn|9#$gHhD0!U*8{>VTY>vH$WxOnjnbX{O-%OOWTpzXIry&K5tS*B% z=~{bFo==n57`o8;jJ-kSY1X%QB#3I{tQL4o({u}PUDh8E5;{MvNI_J~DV~9QzZ}*1 zLKoSb#vgmrPO~`5ak2!Oa0mHi&wh~JI30b`_?>8!aojK&4|=m;uMgNr3saQuqvM7D zR2VyWxzyq5QU5M^41DR!(iq$tthM{z$gI6 z`gK2{BSjR-Pu1ZxC!_?$n0cQI#NC9-pyb@y-H24X1hK7|=tN8u&=`Zn!9^UasHjKH zs@ho?P-@|=|01c8GDvYJl2euYNs~@~`^6e2x?aItDFOcW&QS6Q0a#2&c*@l1%$-0ZcE#i)%tp+BN)?uvpA`cu{eWHJolxA)LSihGa z%9RR4Obp@OMkVFPmH07^`_^{qP$vc|iH0?>k4Ox`nqTDxoJK->@l;&z<;!hZqj=oG zZ5sYey5Zn_sqmbMlqF)g#D3TGk@oVnKegXY^86&*VtuS1weLLCSJHL7{-UlYaN>LK z%UJrhc#Oi|&WUGx6D*9vPEOUjJb-u5jZAE%QX@jP2}4%kN?kdMLer zx>$5Q#=9KaVqB_gLC0D8cS_xP6w!L@;Bm3yo#D{)ir2I+Z39wuI_^2{4YT!dN3M2J zRV?GL2r`@pGI>||X|QHneVqhT#?Q@V{`$Gr1!3(d0ExQj9H{N0sN z${TRIfIFt3*~yPhsjRdZDHmSZKI(})R_V2JU3u=T)L0}$Csrx$0J`SE^MF~8dk821 zgNw>G0@w$zYmP+k8oJ`GX=owGjbEK?IhFHYOn2_%@6Rf@j>qyxE*qk~9w7MF>b$L2 z#@?mAU#os!oLTh|UP6%_m0!Q-^MC?Z7qxyPB;^D4eR{JiNMvqUwdTGEv8)n7+!KDM zkc0=5h{znr!zG`7xBIj!(Bn;3c!v7wEJNneUT4YXI^ycvT;x_!&ZfT_2dPOi0BZ;} z1V*+oNU;G}jF;)cKK%t8l||{Lp8N<~2y(f@L{fM}XCAU7<%SAKsyj)&4K@2@^SXlP zEq-f!{dlIe5=FC!%W?og%=;Aw6oKGJ1ohZ6jJDS7<|&e>V=wUt&>X~^n6e%udG@tr z>Rj9=&G48E{#EaYvYp~O21WZ2Eo`3Cz{U$ox3!Pg=_1vIe&f0Iue8ziY&&EY@M0!T zP$*P+QQ(kaA2ee20%l6F3u)*La92bgakFcZcz`+(O^L_Uf?qZiKkWY_>MhvXYNKZ1 zgaE;zxJzk~q6Lb(Q@prC@fMfh5GY!_xVscuytuo&y99T4ICEq2L;fd61K#}L~l>$4B_^zUTK9xV@>&dYdQhuw0Fk5m~DC7!T zrZC%iPm2{;Q*xYpyKlstol{<+wdb}+d_>9(WhV-lCs6WUJ)1-lfVv;qh1SD<^AjZ1 z{E+0eIihxKCiG~5CuiMsmB6AY^OW*S$tpu-v8D4Mw8nwr4{}GfgSSOiRh>@;`+pw(vq7JR0s{NH_n{U%lkDa@>{0M9pzmJ#|Sx9 zH{T8OW(AJ(n$aoxbN$~mBaQez#Wvz69Uue)BjOzfRy*WV?j+zycjEbGQ4R8uYGDB) zD$9k9?v;9MUK7&glt<`H-2lcLPy5I7ayI^iPATLnx2_fe1##{nR??QLk)n& zn;-ewQK*Ey>jmM?;v_f;mJPV(PC!#St{8+G>nU@vsx6Y>#ths#@VlFA!M1$a1~4`j zH34KM>Kdm+x;1I>2B`CuBk&K6o_@;VdfUyYKO$_?;CH+X?om zi9FXVaL#|U$mkvRyi#W?sbd$)u#c~m#gVu7&P3lKWO5QtgzUAU4d>ds_a?VHKO{VS z5`5ivzH)vjTg;yCohRKx6+)*-leN`20zTB^+6NraMQ3B}ikLf}Hu(<9HZ1-7ZYiQU zSV*+`E5%k62G>weuFABjXdWmEg-Uo#k8z&7iK10!AoKXb(@Vdp$}^};et?9HVuaWI z74hjyrZverIzRxOVtTEBqq;hyu63gP$hgSv?l*n6^IdOn4i_RDag()ko#Iq}ti3jN zMbVbA2HSHm)%Kq~){XUs7SR|M>&JTv3N05!T zMQ)mC37{r!JOX@m3sriX+%76Z>5;$eD`4bP-n>Ld#EM8yM*I@bgVIc|NM_nxi;G7u zWLe#K5UO864BCeUh4n#!AaOTBq@jZL=0TdVShfsx~VF1IBGh}Bk!pPiV3b*%pk!u5IV(+he}N(NE39Li zmET=-WjpnD&J~LRWhA*v%CE0L1WAtQqCT26*GOzx>nx=n+C1NhlZK#;51Ys5<}&W8 zpe};on2bL%k0XV-jMHD4BrU(*{RVaO_M4@IdmV5DAN`v%B$T8xvVpkJc^bH7mKwGf z2l*@Pc+If&E zTkkhg*<`~K+UKz_|ElIw33OW-7pb>Wd(qry_v+J3U0G|efnzu$`~V1aMExXjxG=0v z>h~C9AI%nm(A)v%uQ3u>vHyk92AmMX7rXnA`_DsM2JmRJs?Mn@0=*h=kgJMd$d?ah!1v_cmoGq!kUZp)#?7j-kJYqitu zISHv_R!3|Tl3ck9#2h`quaO@E6;BJsKIH^*a25?4vBKoqKlXZN3c zSix88K)4+bKl(?wJ#UfXubW(o2JGY;IJcvn7LHAeFs?>PXd5cw892k>hF5=kxihwKuyZS3pr}NIc zJ?B-NfTUqdz-mJ|#}Ag_TvR*VfYagV`jWVSaKV|By0M}E|Fv^FW#^o{?P;HeH!)iu z?C8y1Kjv|hxXkoae;t%@LqxCvAe#)Eh*lMMA&R>Ns#stsL>OFy5ZUDxX1o)U4E*}P zP3Lz>51xZ1$N*HLQXL88aV2pR$;*{#iM5U$rMwp7FYq2+#5&YFc^r@kVt!9UCoU&z z9xi816I%6lO#{eP#Y7+!xr}gu95z7XEnc|)F@}eFTn>tP z#44Gjfwa$iRESxh<1}EFSp`6YeL;39K`)EJetwgJ;12w=&9~9d8L5Q=2I58ZR*w00w+^DmJ#pNGn|mCkP&DXfYe<2>-Bzkq5V$2>-68i z%ue2pHck#e_mQ}R8`jSrC>y+^rL0+jEDc2RtTHUwx3wTmGl~#N8d>=NI*oORzPQ|> z@yURgHs>quzrunjwrv@Q_+QmR_yB;v>kWswbycxTetV{SX0GRlxf-=DS01boe}ugV zkq8NLRHQq3zHtNSMoAlRisaNCYh9jXg0B%|cqq|uzSZbEIN)~_u_zniRvn2sfWUY> zwq(m}mpy0XzJc^ui04VZnk%vKev4F4X6)-yhq69v@8_2|CE@V9`?J&wRpcX3s0Wd$ z61nQ_dOb1Gs>mhz+5fB1UC|vOE(`=#3|`ky-@-@82CHTkFjX*(P?7|N5`@9}5^)qf z#JR+Om%-kEWdMe{Q&+VBj>P%jy45O2eCT*Zkc(Ve#s}8qK-CPhO^tr1_^-NW%#5Lb zujR=Mw>~cT$4~&I32k|iY1SZL5e7%gio=ja3F3$@#0&=nB9^5{%`z_NGGwRN0E2*a z_`0()3>Q9kl_;|_&SE?6BmS&{4HZ@JCrt{`%{1T~BRBxt3@BpdbsM^Y7*33LYd(a# zU^A0BE`e+svod)8-mG#=3KdbfioF)l{66m&NMr26~q5*#0LXNG5_GX4|>n-evrH_2^98p9@7|_DBlfzm&E|2ZFq{n zC?&f8Nshf5a+JsZYD<$(9(p##+mUeA#{L6cSS-cKUfcQ3*0~J1V<6HDBb!GoviT*9 zPlbrDT@cwv{1wYk?rtMs?27T>L()TB{u`p;x{niedlA$*Mg4vMfED2rGxNB66jy;K zl5=-^b|-F!vm;Szdm1jGvq)N7jiQahb1wQskLf}DbF6MzNmW_=BXFmpS!}O(T84)B z@ws{QVF{GdOAtl*Iy#xqw8cB-w2)2r0yCHOsRzMbF2kv zy5SFzn1_DfsKC;h++X-1$JBmpS5*JXom!5`RCbsKs* zt!0^Hf4)8U;@DK*OIt4&KSii~LjH(2L#&<@Q2$cGlB_IbgjG=*EC)bDK~edJ*(BOY zoC_6D_>jzdc0h;x4i7t%AT`E0Lam)9<4T1!LiwU-8D{?|k;7STx(~GAB$+Vawk{b% z#Ebd4lG;2N-rAYP26R!)tf08=hv#pfr^^Z85xQVitq+2#24RFPa{T<2Ze4*1aWCzx zv}V{TVDfO<5gt|py4kaza=h*2f?pb<Zj!rz=u%9;7Gl3KL4fF9jKE{_6KvNWqp#v}T@U>=~{KSPpRYhT-2^ z5HZR8J%@zTkNGc-0v}i&!iB@JOq!=0v3(Rp#ObYHA@}~m)8Q|ntexB)wb`%PNq1ub zgj*p3B2H6s@P2agt?i^n6DZ?%xal6qh}XlRk2w6vvdJ&d!Kh`<{@GZsg0fAZA50C&j2D%eXA0}$yD(q zX^CFLcwB#mn9QR2FfIz7+_H8z=@sE-ghICYrp;-Du9AfPakW^9kzDoBHnF{(@3;H% z8m#MIdKEXL6`i{_?I&wen01odd?*#_v|o6v)cJkBCY@r&CEC`-pytu3C)eSlv-$7| zg8!?}u^`M0$LzF9qWA;2rp$3WE1t)V{e)T{$&sC%T~M=piMo`V>(};oG;F&?g|DtYV@RVts5 zWH-LBQ&A&{V?ACUT8_1vA?z~pV6mfa5a^2L>AO|Z52T>d;LYS$i9hBZc7{q()2TGe zi8VgZd^k`+37}V~ns5vPkT5cFJvL=D+(f@tigGm7IlmumVS!{Kj3d;rS0YD^ z`ekbtJ@APdfgd{~oH_RpKmk~A4Kd_yjU_Y=I*_@*0W!qI)azza!KMM9P{l-{a9|J^t=^?XrtI4C8KpO>m30Xb;_O3jlxzvS#E2vILYBuBj1SwR&0ex?WPW^+#6$8RiH(TZ>o# zB_yW-Tkixdu@JHh-coM8wMV6+>Etwwq4c;qS%EJJjkCx9=kyWQtBGrT^m8z}@&_$) z?5Br`+=TN!+FGkA;Ti>1o+Xq zbSUF66mvb% zl=;j0WmL}*t>|Qz6I9KLuvrjAf11}G!bx7F zvf5~VIGW>jY2;XdalW3+RRp?p{n+#vYv;kZNU9O3mU$en!bvQF@GOaxLIuzb;5_aM z;BFMa6$0b5zs22{#IY`E?(ONyT)*~)f-ef6n4tiO3giJ99dLB=M=96nBJoEprw?bC zO+E{4ZCrreG*Q}5!3KTf;Uy7kzQe90G;oZE3+6NR9^LOBOFZK%V$>P0cFFIoEzq|{ zJ+l_^UW{ss8-@^hYw{l5f;9O|mA0he3C%((xlu7L zpG?}lwMnih9VY`0yL;%&)X*>baxqNFP1(q#wAuZWjkZ0#GZouk@matxJ|ivC!G}XJ zK9FClOB&wJUr)PaWPeCw!V=N#Vx`kQ{ql)glxa=Yd$Bl~*d@2^xOVGpW?CCIVy4BS zpy_*k;B9!$ZIgp1*U6<}*}}7}vib$`R%5B2tnx7^h37#>QcOs##{V@oGb8?J0D)j~ zJME#2k5AHRXc<&*39H_L)nBewus0q6f9iKun05_~F zs+w9<*=U20RbVXO9(gL_0bAtTHy#J|ly95Daofdmw$qY)+M}65UW?W0Q#Y0ga+9Vq zT*es38HDYSAqj)=*nGv*cvK2hcE!bMo+#}KM3~8B`7Wk2b_V+SpYi;MtSZh0%SmiD zUS(~!pHtB>ZlmbEv&C4G!U6Ikd2OQg@e?c0N#8xJs1822&9!2Q_I3s!n6I`DBs2*d zRyv9LyIj4wC}(|n2fIPtp}rz;0hbxdUAz5y(#Od-L(9$k&d8Z`V}1>uG8dFds&fCm z-3Os&u|c@PxMk#V?TjAkA?~Up+(Z%5wSb6+?7xq?&($|ErD&R;5ZZIU7&U+DFx>cJ zK&dtQ)ekxPE|jrpx{G^8#n2Io1NbPG@e- zx2v3*%DXg=%`1VkeQ@NIutI)}b$Bsd&1j#qd72nOhu35Kt2@?z zHLZ#jsD~O%@(us%nHVwt-N!`NNir@;ThYtB+v~Q*REx8=RV~nzt4HD3r%X5bIM7k6 zF+CU$6DmQc`z;?N?ZhTa?AuQ%;0-he7=89<;0$gc-F;}oA2d8L58S<1lGdkWr};`x z45f{uNJ?fu$54rq!}p+FQ&pXZ0wKc zV+lO{?D-rN2}YHxS$xig7^GYbyPF*{@X6PIz)Dv*yUoQ(iS*79C{g9VVV7eKzG7%+ zrcwggi2Id9yfX;RdFn^HcaFv481gCOGItu1;YXWnx}CUYmW<^#M}n^_tqZe01<81- zE0oC}n);&C%aB9csj~K$ZS*L?A@jdpVunG>?FGIz?4HVWLdbv>k%ShZs)POZSdZn7? zXtL_*UXXXltBGY(9OV`k`Y`{CL-}}ojWQv>QI?^jMtENivc_EDJw-|O;T)8 zRQzwe!hX(I-`NBDC|_0Grdn^Yc#2ao-MU_z9h3>n4u_YvT`0Un4K_q2A_PCNu6#c9 z(T|XjeKraH-HRzNpJh#I@+!B~(jWI~;>gu1JomZ^2j>~q113<;zr6*7pIj8Q{D6lk zGfO``p0?RX>Od@dRapVlj>#@DZQt3q`W%As>wgXjEOBD!UX-u|+g8q*Lx4nI0pomw z;?d&{OQa;hE*F7WsO+ymu@rR~Agn)Okk_Q4b1*~wMLm%bglC)Z=_!bp8<`z(9*)$xTL}=NkmfE_mNu)#2hR9qb~MS>0E!~r*nP|)n4J4|2;M=yX}QKr)~s2R_dne&-KKS%X8uD zq)Hz6@Zsb~8EK)X(d$+t(b%=lc)8<$pCJ|FjLDL$0g_>Dk-|LMdtrsQGczQ;{9?R}jEhO_OtXy_qzF z(AY9Zk!a0nfY?y12D7_+aYhZ$4A_Bk0tAn+Bz*x^)R0xCXt{89{XiO)E6dhEL4?Ao za+1T}oOpgKQYmyk?oxaP6#i5WvZt|Bp6OLn*k^DP$`xVo9bKgUh0+%#Gh(P|({XL} zwi!_Co{S*tMfpC!36NDIR7`fglUr`3Jr|tQRv~a5!8uw1Ab5_iEjrC|nUvF%ru4lt zd8DFz69w@-s_Z*@OSPd9l{V*Xx0`{`QQhk44{C%mfwaR7XKZ$8|NpJr(hvVze5^hfF==SwFYxTcy_><*PMZ%q$|Ndvv zpqnuqppTC<^o9V7Lco5txwuc~G%sy@rJ!{_BqICKn%+(Drzvz%Gth*bKC-5pI8b4e zqb(;RcFJZ;WzpOFuCdF%a3mFwEQ@zJF_Ayrtl`YJ*Zt#2DjieWzV+d*l>5QY&RbUL zd4LAgbl(OiYo{b(G~#?YFC`; zC-yzy(nqC)s8|f79Ju(E#M)%$s3V^i(tc;${&>8uuQXdZM)DDLZ59HSdbuFuf{Y$iBOFfivr!C~?X@3r;_ql$P2sH~;EyF3?eAZ{b z(Cc*Kob-yc(N-(v^sU_@(|dQq@*5O6>+scP?34bu>(+0P zJ>;!3qpm=q%iEvPAgB+N3F?McV>}H{NfwrR6HHHy--p6J09<#DG}){K#XJ&EC|Gr( zh<@%M%Yb`r98QoBHwV&0mvEOcW(A1AN?$6Rh`L%vbh$ZelNKgw1z)2n37vh=Rk_=h z0Gy({5K53?J>q(HoWMz`H(qqcjF`$~WZH=GvNxo|*+z{V+l7eo9>89GnK{4!HNwY9 z|2sVM+>EoHFQ60sK}2A4oNbQ|6MK#KTj=8%I+WZ86ca@yE@MrWO_Xw#_X=8(q>t@#@o;|VAwbSP*HNl2Uz4u`XUS&XBzZVEvMO`^0b7(995FVq~%_cx0uaH zsmEN@7s%e~WR<+kLcPtu=``LUhPvhBk2VHZ{Ee-#3+IbfmRi5p`pMHiZK>&0yZ^Qz zJLqKd(Tg{=a0itV%k>#hFvXHA2A(5lg#S6OcGkXG;xJFSqG+h8~dU4p{;h2bVUE3Cp-h z8jyekKusd;SvJiDXiJf*#<5(uZsA}%$aJ{As9`}_=_p_wl1i9{onMpj3gIdRYr>KU zMS;3F;UdZpBP01(4?B4}7w0R{gNp?Xrx$LA;mq}~=o%+A`zly;`p_(980>RDsuRc& z;zUgRyJ_%;2X!A5zj_2gUGYomO+WHZmzI0(x}&gVE8$Q2t5b2D>z{g|5^au%sCaG( zs4$?hIM5X`<`~THjUc-1>fBic2t5&_Ji}vEY{Jj=O-1&^%T$eG_n37kBkLtPK-oKH zr7l(~EZfs}?{aQAEllafw#pAj%$HwS2rEa-g4^8X`bijw3LVjG<`QYc))`2UY+Wir z#_8ul-c@fLfmdKGa)xN(hhp0`xOQu-H6^Ik7;ZjyoWAchttzvCy?-F?PdOGp)TddU zFeFk=K`z=lPGut6_ks#YN$A990OjrCeO!yW`Uqz8ZVK$zMyV# z{A5pDpvl{XeI3Wkyd&--&Sw=pMWA>XEJ`C9bM3R$&LrLed{&5%O&Y*epTk&#d-lcI zjtOg$)>$W*OcDAtk+nawr?_;rq(3dm zlNPzY`Bk82N?~R03r((njo8qp>oi*$;DhIUDfjo5_&QGOn%S!H>(5NCThQ_c!(zN0}eN3LcU0|4wn1s zXZFM<@(fGWS*4Izo^3gu|7i?sja1SSQhsTKW`;*rO0{K@I0&gF&5oFFCH~Dfi~=+v z^goXYegKulL4J&o4sg>`y_GK<8F=X3v;kq{DT6VHV;D7EJ!43Ev0+KI7785@nM~@d zb9kCG6G2$Tyb1FiZHNi}C+WZ-_@H)ozI7~P?Z}t}2eZYUj29oL0*B)Mr>BMwW7kgE zouN_ZCDN685$ismoL1Ny9`YtXdx^|F`7|GF0q~;X@QN<&ywIsW=4Qn&V?k%f7Z$2l z(_Ktsx?UkXMp1Btcf@xjHJ43f(TxCZ;);B!JKj!*J^(#MXUK7XM7XlBqwCLbJ&Z91 zzowieO~Bkg{lA`WaU*p$ETtnvJLqC(a`c3sda7%V$^P(cOTX}vX)I-W^%p8t#Y)ln z={q8#q+m8jh8ro2E#J62f6|eLj&mVWV-auEl6gkd?(|3Te!)p(??+f?bjs%FKx`w1 zT=&iRTbBGd-$fIw(1wl%uhTnWDZ`1XOn1xX$n*=aZ}k*zM!EOgy9(EOeH98(tfj7h zA~7q)5QKH0H+{5?BtMwKB?g0ne|pwqx>)rBuEv|M48YEE8s*=b(aCm$mrNXKDo3uabGDoYkMvO` z87^0QUtBqsCV`G-)g-9af5P=z$vui!^D9H8*LZXa6()S)iS@)&M_8Tx76>~CqGC%27V!b1|-S+WI;vT)0Z++^m265;H*yqM61&_kt@R&cIva z^orL&87u&|x_wX(Q?J(mE7>JgMHosR|x7W^TS1Wco|F&i8b? zTi)kbca=%w*Y8Ul6D1TMuir%6AXd99-*J_{|3>Nfi9PA!i!jn?ta3}$z81^(Wch^& z7XA3O>p3o*)L^&39>W4Zkf`&-Xbs5qvwV2bX#9()An#Tj4)t@AW`>$ePxG$}nZwg_!AxNuJh23JoMn<@YH zNs#vn+)fy4`N|+6ynX8^^gle`|3da3oT#T4)wZ-Ezw`VQp7Js=xzfSqNjB6@e`nIU zdGFQJ2c%O4pb)>}^m0%sn1PLJwT@h6q5=+%5GPkep`yekffE$W`Q^b}zOs>yNK(`F zGmqOj2dnlKFY+Sy)4uaHhR>b^$sPBHOv2@<*b>nl zne6ISt5LKE+_=aQDK2|0JVBWolap9%Gz7uTQgp!glQyvD~9WT|ER$R}glo_1QzKE_U(hirK_qaX>7IuXCDWdIlIATQ9yGp2y{zm)lKR-(jV|4wav$F}`ltzo{Az!R+|TDl@rP$@R^- zv}rNIpG9#oBN%HqKiqOg3*G#FneD@J_+#FFPY`1_XD|Bpdv47$n`>jrypcYMXuh4~ z&&~iIat_0|Zug^6t#4J#!uJ0&Q~Wnqz$c4N2Woudx%`h&Gk3FIVp^Dc>(AoPj z8cJD8PFQjad%D_T94{hxHneufonCw-5&I4?9Vw0HpkD2`Hcb-q^uoGpY2`!!%g1 zR89EbQT=qrfS_##x~iQESAICI$v*WfDeIBPnW4rxErxmsIH;Ch7SEWy9)S0!=+&r+ zFI%9o3zBbHontUse-RcHjxf2xtLn>RbiL)IYWP5zgs}UNWw{_b6n6L!CX?mBMx;<~ zOYO-mY!c0(***o|reV`N>)*{eS~m_aAvI!D^GjlCY05K**C^Z)FLo9-7Wv7nXp69UPVsr`w;p zAV=A5*A&1=XnmymkY+z2t?5@SYuI|=mf`?6cVh-gQ?l5vo@?nmr06u4A}_k`W|&8B zbp18(T*2h&C%=p&hf|aP)xRK6B|soSeT$@xbpNjO*Ro(K2UQki!~q(%g(Yxg?6&We z`4*WIN{j5s4b8yC%QD~x#6lDGp$Q6h9)-c5;smd?+!VimSkpfs(U>h?O=mbVTl*@i zykJGAA6_&Z^C^5P!z80tFg^(KBX^J>(ZaRvQ@9x5kX)y`8~Y4*ov>X$nsQTkJxE{z z4oF1XXh$uD#<^w|{PrVO4!C7N-=AFD6F4%nyvQ1|J2GB;qE|dX8o>h0-|V=F)DS@5 z#XY?PG+of_eM{}A)w-Y9C5?X7bpyOm<0yEYH+r2ZrdH&MFo+y0q`#9iOfAyOeCLS% zCRlK5@tqvyp4BtAl)Agy2GGNJ<84%cEfEp-5~rvu(rhIS;8M1& zZEu_%M+lYSFI?*IW&sGrYWfA8_!b8?FmTUb1G61uZ~Rjbn`5E%eJ=NX&^Y@-ZP0~0 z^(XwbQigl>agyyeEBC-Y;4l`>}rV)htZD zoH-tkN|W_cOxCMq693@A+^O6Nha)_ehTLm89_Ix~g7t<=L1S}c&e>Q_)J*Ls7w@ci zEjcGw>K$K<8y!uas~5X~Na^gJ08v_KOuo|aEM;qrp!SV%MQn#0#&lK1)2-qeg8yBtoQ>uru0bUBk z(J~L;D%LuM{9|h_7(K(J%zoT5qt>G|$!-jQE^HDW@R^^f3-Ce}!!t#bf(+!olhjyu z0bG#swuP#85 z4~XG+I8;iRJocHx5W=Qdf?msn_lkL|$d^KB&LlbGdSUue%BFD`RQxk}R?DH}J_)vh zu3a+sjCGW0b=3>^KmUO059$0X+{rC(I>1zcLM5|a-m}vfrsZRBur>-Hp91+hQ)s4^c6pM9r;Z~fMBcBNpdfxXY zz@t$Nc2X2s-~ilz^^FY7orB9at$=w+p8LR%37S3YRY8U!*lg0qLVw-G;fi9$5z+bL ztP`~-1&HzQyG)g`LNhpG{m9?5$WJ;rdL%4X+ccLBJg9IZA-jGZNLg*{@4C-cIO{Y^ z8L%R6S0WdVPd$#9IQS#7Ewu*1JzS#ecrpNp+%ex}Wo!oJ!xcdAbl$@M)ZWapWxEz2 ze1~*wbi}=w3dq#OK{c1a>i|)Pr2Z9x_q*~h2=l*1Tved-dJ9Ww14ORVwKSCWpmBQ_ zlK>vdT$tQFg-bY4-EC<4uU?&cc$c02X*mhjc%K2lz^#C`)S6I1pDekR0x7>~BjA%} z1?O;qpeK_5)w}I!Z}@C$E{biPat<#p%HvjOrEYp$A>Khh6XlteOo%(DuWz9F zV56~OFO;2h#kKAkce72^Zns>RaP@fphGVN^7dBLRIsn(GF(PNq8Mf2^omI zYVg1&U%J`eKiq9a!w#5Ohwwd8bjWl4@X@aq4*~ntuQZbt=R1WN-2GZ=^aJ&6M)u)6 zPwD6d*Rw*$Z|6&-(9MR8*b@FRC8GB=*?8?aRy`fE6)5VkEwyGT5i^~NI3z{7wQutb zS||>QST(;E`2D-xiSklh^*f`yU+tM2-1*Dxb7+3`FG+pA<7CHLc+h-nl=w2h`|j?? z?CUrPTNWLZNCme~{0+%De4}h_W0jWke<5{-H&`&FiX>SIpO4|mAV3&KE#M=7?Z`?! zhC{D1MZwst4K55Nj4{K_F~)47H*k=d`id*p{FVCPH#I?U@QExs6Iq;1C%zNCy0&l+ zB>E=zL^b}{L%msiwMY>#7i+`{l^jI+=!l6MCk&NB`tW1yK3e~B(6zFr4goP<@i4gU z17q3BV zVeZT9ke(mP7r>3QVpMKdZfl{>$%m|Qo|p$ilx=q{3cg3aDVMX~Q$Dcu^m5*CaJ!Or z?)*?EDuf%>dH#>SARYnCZ9Vmc;V+x%UpN?n09jVZ6yzgxz$oQ)Z1B9=GXcA|lR|P3 zlsMKw#*FJ_>s;l9z>8`8{rvQ*k9^Q&C+URnfm)^bIECiCNydMVx^op_>hmqBB~(q? z3%`S#KcZUfY8EMF9DR))%+#xe+l|iG7M+-ZDjBdi1~eim@v7RaQHmP5%H zAj@HXq49dc#^nIX8YHaqdmy{|R*+Y|HrX+fL5|sM)8ph1l%LgSBVHMtC5>#JNPXwC z9o@bD9ZkGf4W3*MxztLjKL}tSZ2RFzE2s z%AbInQ3iu%`?=+uvAVU^S?5|oMUU`x?ZyNq*m0A6<$#~?IR&V;&Ggx}={E6wRth#w z+mpimtD#T9@ z#^m;7<(Q;qFWIJhlX9IOolUJsX+#ceHk4PArDk~??hO_)~okHizl=Wn;YMWr`ZV#kUQFEn zW9IK+q%5Kf5vMdJ+xZ1@w=L*leszwKR?7J@@%OpiR6Exmy>lHYQMF40;al`;U7Wak zbWcfFG;D*GoZ~?GEVoxn+>6X^^1C@9w}lEBN}oR%pDZ6lo~Q8$?nb)4+t*9^`iw4A zot2K|+lKr-dhI5G;Z*q2UJ_nD4EiMG1L}GHEOA8xV1;_qoTl0_v&?LDQY$Na9qe*1 z%3kM;`+RUOs5|AlrSQyA{m;adt#4A4LEy8t8RDcr4uKf-6-z*1ipChqV= zR37*L`dl_vENbk2nVdd5!m}S7rJwp<+AY?_?Iwz1GF|^{#IQU7_UoOB$4Wc5BPY{~ zQ}_(a#qJQkJlC?A#=-9DltrGoxD{LlpS*_=_bY~st-lF7l+^f+@ZaCH7X4wJ@R}-8 zuCr&Zg8O6c4JLFpJyN+>WY7y=oc+*zSxU|$)mRJJE~FN))0nb6jf?||@Jc_BJA`^a zEpJWcyXx(Gt>;{hC^^LDdVN#)`7sJ2N|c?^I>puSQ}Kzs_$(>p@rS-+oc@oP)1uW!E~kgO2|Fm6ER) z21EiJz7d1nt}IGZPmp(JwA-?4P6L}t#6DLOGLxlR<)1C%XKQ%~*27MYLWr#WA<(mhonxptjydoMnR$!ZWz)>tRh1?gY)3=0a@q#wR)(Q9$mBdhfTn)rwMfWv^DI|Fuutp@7`-#WoNxU4R| ztA!!!Mdn6m1`CV5?Bh<}63Of3dlxkO9(D_-hBeF$Od6z_Sd9epi~ML4@Flr;FPv^y zSOhcrk$$rO@V9nh5nxYdHc-QNaa^Lgy)DCe9eK{qo4`9XhxVw|SkbT@M|OrIlHX&MX{Q3sLOz zFK>Mk55`*3VQoEfB8%lFyZ+K+u+V{D3eu+^Qkl5_F z^r>nLNo$bRGSfc%_V_^K;s8@OFqv;o}iNsg>8nC;PRtH~IE>n0S)OoR~t!#?~ zk6&D(QEVo*3Q9wQ8YAdcO=IyN=mjpzU!n}cCm@?hJj0=a_yZCtOzgq1UxK$HJ5Yp0 zY58lw>*MVi$H}78qFJF?w;{lHHDMBaF2{ggDFug+_l7cnm?VcBa17u9FoLg_-A9NZ zYClCSCCj>m))Bi@odCoLRd;Ge>|5GDKbqxkPK^&%hwQUwXUa4XfInz%e+qUtM1FVC z3TJe{PoKhUc+TgwvF3ri(VWS(Os15(_US3x&w03e04lufh7jdJqP47SY+AbhAM8dg zma8qFlKv4=VfIt-MQ~bA6nO+|Oz(kQ`njUiu(mZGc{(>S+X{x~LEX9*j-HHhi#M%sfi6{UZ;U3QOlXULeF zq3GR)-z{zviz<&E(BcyW!k$Icqxt21%t6s z6jm{f*B^Ss&@es+jr(Jm|I~C7ob|#!()p0v?Yk$kWl@-Z)ahn6(-|zf`7~1g;`3Ig)eT5%xFl~Lk=J4IiigbMNiC;!K^nf*&( zVx9!mYsqs?i5-FyHp+H(L0+tfWqQZyJ4jG&Dv4-26h`lQ55v2=lV|^0w61u!W0R*Jp7XsqF0H0Nx z-N7A*Oj#=lg-WUBj~ZEG0p%TEvPyu}Ax731D9X8_xB>lkK#+eX1Wy~?0 z;_yh%&J4~nYkN1M`&Sv65kM7QCI0Dix<-qvQNxOtfv_<(UOihtBRh_hLe>`qk87kG zx}0qCCaRXBIk9rL{L0;)AWLo^b+J>srY3GXy)W=i?jY!Jct+YW{`w z;1jgBnV~VBt8Lqi#B`QP9@V-vm@!t{B8($XHt!}o!qQ>=#FfJ}g{fsrXIDV$F3+j? za!8M&^Lg&lP04&6wb_^jG3k1}p!u6LhqRhCXoK^{W4Cp9@%ihh^<2F|gus6bZKlg`d3Slgw@U}jRV zSlfTfQgwIuk}tg?;@S8`Nz09no&ZPI{fp~6Sz>L1F481j?PVlh(~E58zni6u-pWNK zT_1rn6$*%s78>bqM5JY6wZ(nCxTh-<@bq?1FtFj}UX43IXXnClV1_nz zDHBc3NIs;ugNXnf`?PgcVwVtq48-H(+H_D*pyM+_Kok5D%&>0YghaoN2aXzkx84G) zEL>`cxz8KHZ$sL4m$=TqZ*n?2E%%i0c>0ck)Dfe3x^-Bv-uyD>qi!|D{k?fP?}QP_ z`Fu)1-R|)*6Db0IO^9NZ7_=ki>YuJ6))kojet}BS-PGL|hSlYF)NlsShd_Rm1WyJd(^^bul_sk4c;xZHHz@Z#gZ`AF)2sh{+ zM+NxItoZvp6+)bATO@r8EBmKAB94qj=4?p$h6~8&9b(w6Z9ku0rhk3YS(RrN*W!9l ztK1WINiH`M+<4Za=OwT)P&>1pb0e2RfYFiE`086$o&tQ?Sgk*J-OCC4zpZ9*r)@Cm zyn{vA?1d0lvl`eKf%BaaqiuS!P+5H-d?W7V`djAY$?8FdKzOi_|3k%K+QMy+-2*J| zRX`n0?uWlT(=Y42kfY+0p%#Y{Z#9e-tAZP|ic*OTx|)$3{Ici)5E8pv|2BFdCZWR| zt^kw@EY%MUx!3IrxVgRXxi&am`G#*nph7)`O5?V-Aa~Pi&*|&7C_(~l(-^0`6&1DuF7}QP4$(5DJ%&= z_qiT95GGytEjg*=-{NR;W0L?NdlaI!uX)AnQiVL=-`Km~Uuo2;56_)&FZL9=sS0}$qd4w{lbhkr^ws5qf5qQuN9}pm1EZg^0{IQx|4wqKLrD|Pg~E# zmgpZ?nb|Dq6jYj^=E%Ld9gEcJb~|4?mshv9UEr++>&iCkKM|dm^icHwuiX?(F0hVp zL!PpmhYvzck+X=fXgaLadS@~x&hes8%R!CDLysp92;VN59gk58yoz`!Ev1gPvW$+7 z<7%El1_nGse&SZCx|6@#LBnmGNU=qbk*7+%~o6Zy2w60L)0uQuctFQSz1E&Cg7@ zUHER5!c#{4B}%PMzfFSO0b+AiPwJfSl7EXZeZxpUdUeZ|wFqrZ163X|@YWU)?Wlv; zYY&FpvzY|})e(V!E957cuv`{`W0?+Z`pGgt?;=NiR&OGaQ&2I9F6Egf3b+)Tq zc`@1WPS1i~{rsGT#DzY6E-)B=^@&Ulq>E7^SI0tsgggD&~qqVhCu6W?vs#2 zLp2R;$Q}XD4L;35qN?cjJlRft*!LbYF6` zt8AiEE%%I`wD6W1Br&o49Bp!0AR3Y!iYY(41|u)#!#c0P5_k4sghf>%``b7U(2G0Q zT_drvn*D^Ip90gw%v1foiAO~_7Y9v90Fw0_OBX}MgPIUwcV_ad#)r28UD912tC zfN4>D%XA$;dsa0(rW%GDaY7M27&k~P?!{RjX6U-HNqOaNmRvxO%J^bfps!c9|HCq= z9bq2<9Fy;%zzyU)?$OBV$4qj;9=mU!AFktrULV(L;bH=P%9{1b7EgzRg}S0q2tRc3 z%QmU)yWSd;p*Dv@6+A$dA z4rGIii#2xH%y&D}SO1SVAU6!3ScaVhY+X0fVpMdd6~h$qwbW9f^YZw3CGeV-K+{?jAK({>KZ*vY?z zj%o-Kf;;kb`OeiY-??j7GNQr?h+Ywh;PwT4GSnDvux7s(vi5>@RJ&Z3sje^S0v%=c zAH=yUw1;0e$)?ZW?8;6*kn?eVMc^b_gonjeIK7*PMDFh?3;zhhvm2p!7>XD$t_4yc zn--4FFQ13N4y9kUgS04!Evl105AJU6lOw-+uLXFIbpFI+&|zeU2Ho`lhvCW!`v2ar zW|{b3NSB2%LE)v<9e9RDqw8n#fus->;S=5kc%IQVT!WEF=F+CV2uEbC!2jSTi;XTE z(IT+$HaO=-XAK)Dw%j5A790de*&Bef32N+!qK#j zDEM^VQ&CAveuH$o=Cg%~aY(}>d|dr)1yi-9_rK2n4}# zzct8@qdkQGZ#VdVUlRqYhtP|!2G`EX8J)0-xyCASBfKLNmi>dN=&_H%lSYgMV{|4D zrJDd4Dlw5rRHz>yPF=Ww3F?UCEO{JZ^`ZYeMyHCvNsrJS5^!BM#zT_qzofyTpm8l^ z9E4@C2Lq(P-~={9lcrP24x4Fqw-L6}^&R?HQSAdLjDg_;P{DYd;Gt$%I_LhUu6YgP z?L0BVeJ^pGesnqjG5cFJia>`>OIeyW#LrWlq*d^$#@qWQK+A(~Qe;RMxsyDknM&w3 zK~9t7un^GF@-NFPnr4h=6nU8%w9|To9rDA~_s-@&(;>pi**y3P)9@kpM(TvWRBGR1 z;cYvTcm+`aI51DQ;m#GxggTI^uJb_FaGoz8&;78-#(%IM)a_dF^i|y!rYu~aXdHIJ zQb$QB|zqwyAK=TNQNKcjj%+o)F4EsM^&Bd1LW=z&#Eu; z4)BDlN+S>K#b;Hq`~0Vexy}Zw2?|)R>p_}B<$LyUi`UQR6Dz0x<$S`)jTBy^Bs|s; z$fu~-l&ozCIeQD5w}$dov0lB{uQ3QSL(PRpTLh@6d=9gQH!qzm|22E!wSN=I5ZX^n z77ZqeJ`RrP8pojVJP{EMcI#ygCNKcUmsz}2dGctYgcFfKu> zsb6iAFAoZ?T6d1O3k3bW8Aj^OSIEQJT6nc`na-dI7=8=udAht9;1SN0Wos(F?ngG= zC}lzn7bm=uD*JJYI>;`LEY5xXDbzPl5+TjBee#FAc)n?y`8_trLGn2l77n6XCPX4=2Z-~?9LOD;Ff>Gl2)~3_j85bHoCAc87zU?^5$V=4kbGcT)lsg)exBj> zQ44xPU%^Qh+@M8^x=*w(!v65#D;DTk@)4`@VLBm^Vz%XoOik28JfoI5yfiRMe9~=t zZNlYBwLfq!a7L^wK;!6B>VBh12du$k)jgcoS?|80q7wC({nFS+v%^R`@c8GV(ABko z5qi~f-|)e7k-^Qy3h64o`MVDILwGFutlsgTVaSOqBid-vz*w-(r1?f6dXmpXD4Ix=x+%#o#N!4m!cSl)BGmsch<| zbdVx9lB>ZUg~CDH4(;cdFL_0JDL!zT2XA=W<+w0O5N>os)-V!0TYj-aeyaGy>}Ju% zgrsBOt?znA(8!hDq)R-ZFz}Gykv7txJ}z{PO+Y%a(Q2R~-wwi7&~Y$L)?q;GvTDYn z=iu0?k;?-&RbvUAi{B3zc@GKHo$pQ!c0L(pwx93aAXS_`n_qe_*VQ>1HvUCCKJl_= zz=ZIZyMb4Br|WZA@9)U|zDBxUBG21&aw(AV+OxLbK6mi0)CSn|**H{L8+gUYC=c@s zHvhyHyk~Xqv@>4!DPy;qTFy5~{AV>d&V4?yRiHj?U2DC7oB9INO0M8%FZ+On;LVkLi-+0$i6{OU)LrVE*flPo%(z9eVF z#RB+$A*BEAI`SQ%2M-{D>E2kZ^zI+0*I8MX4M1f^J^{k*S2~E`qhb4{#vH5pRjNTi zr#q3(i-S5yY0C2hX)=;9@BB%Ayf%G?9Xv1iG=)Jde$}wc?C#y$p>1+16^0bMVa@RB zbIqe2SObn7>U1_dnf9;0tpS@9r;7Fq>fp{ksRwD*q*OC|Qg0&O{ihoNYk+S~7ImvS zo`-mFv5o6Jeh<%LY@SgZVEZfiF9T<<4;r_$7b`w@8!WZ>ZM7%w7%D@|?{YYCD2$Mp z)rr|aWOr$;ihrT}Uvw+yztAr0&0ime-`OJB}q(nV6JM$Dgpt2KbDk^{Rnhp`zD`T159mYT&3cAVz>b2sYKfxdQ z`hmU)=a@y&Ql7d6jr2$;*T;Dk9G3y6oH{+$^+6K4enUdn74GhlrbePaCx*I9*mIiF zSdK=sMmLLoz$Kf{%cU4siJghX8l-sK^#>GpJ#MLyhr|mPM0#a@KJxo=ZZiI)q@%xo))G3c@W~iP zdh9sFoTRQ+Z`WC=SwJdN#?YtJNWrMSs2e^@;H?wh@DdWsRa6@x_Gs3g>YjyHOQb+ z(x@xuiT&GPvKt*^$_Y3}^FNnf{fyS4oE|!un$=d@1O0-f&#EVQ&rk_-tr6 zTw$uje&Jw2j(q+3xT~w=luy1}lU_kW^5yDycfD>sDA7n<<*+2a#k8sTRp}6+%R?f3 zC`Sb+Z?ow()dz7r9xI;z0S9lYe&@?H>-SEf%jjX2!@$qa>oj;q;t)eLUmI^A-a9XP zZgtrtbf(*Su61_y0}W@`I>C#8BtLbYgb^uG5pm{44oHl4VDr6a6wS8SaVy#&!bymt z2?otnXf*m_$w)hG{yMQ)9@qo6p35eeECwaRx@%@MX%Mm(L!XTW23iv7nUZS&j8+5y z3y2{TQ+p&R4uRSx0*R{hel@Bb1G0#AF*hU-|Uh?k_#4}za!zv4|Pir<{Z)ET>xjbqt-`cII(&n<~i~CjN={ZBh zaKzCEY{UHMBc^nuNK70!NFEdiRR$hd65835T?2jdujVa4BtdhLu(4EtkuFFwuL>I&TsN3dt=<@NntVJy0&#^uJSXxX4Z4o zDCMI9{TeXiYw6Q*dEK_vbn^IP=j+I_>ZU~U1c%Y$S+2uqQ$hY*wKRTt7!_h>8@&%o>`*Ka@h{iVcRpZ1xx#cZ-UmzWuh zVgBQ5ftIiZqt#V^wMFtRE5M!S$n4Or6Mr&PHi(|*l}A(PcvXEEi!EMej7*QB+JBro z)yMPRo9Q8QQZ>zGWx4kw8ATc#;iU9*@R~+{IRJfS&x+hFuF|e`ywP|Jx*xTY|CQ#R zB5?oHp{jO8X3z^H!WGW}3ssUdII9iw^@>Ymd3jy0^4=U=cC8wE#9pOAeLe8HKmUo! zQ`_)L7nH~$=5HeAb7#`vbSrX(Yq!u$hORYRWx%qQ#vhm9C33HHAo3+VF_GZ1GvO!p zt0tk+s~m8oVt1_2C=@du^t{6X%L=0$UXH#LxeT&d@cJ;?#NiV2%+YSF@3JCA2u-zH zqhGM?w^^B_OjgOsbXqO_bL@L69n$K$g_8O@Bn#WEn490;df-I}&2rCSYSl}TNlj^* zh~VNF{Do{XlXg>^$h;nnI*&1^l%?hB3IM;|!Z!sVkrG)X551uh!ozv{EkVNI6>q#C zZJAnGFg0AgfBpM+G-Rt;w^pl4j6i_sjy%%^Se~Fuuy&9@mN-u6;)Aii#!G(WUZ_oD z870NW>g~%mIU@^8T??au-#|e)C88l}uS^wJvkFFK9#6OUmnjWX3Zpy##!04St;#D6 zmUu{rwyP%-90x3V{t->RimG#iVGAuA_xXGMIO}mi{YX<2wLzCdhN(P%Knn5+@mLE0-miDQ)~^dm``rIp)1RoGGk#QTH1pG8CXgM8 zXubTpuuRUwv%jy23=ZrDxztf@qa)QvcOKE}wYvQ{eqLg+?4lkRBx`)q<8xSC2Ao^% zj-Jd}_On2T;2lSfrDNeK#ACAZ)dgF)(zfH}PHN%0{IcNnudJoGDtgyI)}-j~NJ=?H z$6s#`kLR4*rT`D3mPMLD&VN4>;_{I`BL{Fl2re9K*A?gq!xJx_s#xWg1`}T6)u9V} z;C)Ccjfio}CjV5xo!FE^Z}60Bmltd&3^@1}snY#w$iUms!KYfoOZc%d6jfGNpx>gT zL{TbFSX*`RQ{7YflUsqHMp>J`Lx&#Ah;`z(l}LSJKPY$)xcZO-r;P#hYAk=08?@*w zV%oVN+{mE#nB2WcratyM+D(;|I6jWRzwQ&mz1tNLVFElZxMtMXJc>27AIDPEej_%q zJ|(k@*@X4cX=RpjqkA)nc=T)HfkV}r|DST>xDHiXHt5^Bt}X-0trypfgU*!#=u6me z6hj8n+0)U@yx2+rJar{x0j@UVY02+6zWBXnU_8d<^yhCIiH^Y{3llItv@D#KK60lA zUVfrRRSU%FXOa<>5y=OjSJ@uEClWzQfvaw$WTPj#1~IV`dO6;x*$Wa}`h14T>nwISp~!((i0i@+HvP}g!NX<~g(Zmqt30$u z^I=v!A-k48Hn|>50M{5}zmt!xzscJbD6vy1f)~IT!@(>3&dW_oZp+{1P|3f5DTo%D z*Rsv-%&CC(JD*7pQA?a6v$zPpWL`D#l5f57b&K}l=zOa6Y=-)X_`)n7BRJ2~_e8$^ zQ@x*$9q&`|eCr49a}cvvSR@UCr;qa)Exv(7x8M>QWEov8QqC+u9fKW)pxDtOi_RKN zFI7Qk8JdZ19}zl*uPAIK&K4|WZA!bHJ>G%^A_!BA%8xz5hP{>y8je?>4-0}K)8J_& ztdGENjxKz~B+b^1t+)f~`@WM|L7Wo9UKD1)9RB}Ql5nAl8A>@wA&r>o{rYslYuXR` zO5T4^*6fwQ5w@wRt3NEGHEQe?#+;NVI9CQS&ll>>HH& zv-zMe^pu&gVL;=Jpg54GOGX?T-$r*MPoT&e>ABwp>Te}uva#ml%L2Vd!YPk3H(}4! z%ga$zg~qrJ&;di_*tpk~xSxBb5J0%z`M#0+Y(cf+^-?`ceu3Hw1?QuSN^1S;%ZiU* zRu+HIg-pMRcIJOa42}-$F3Gp`X6*}27FT(3VoRo8&q&Ai0s)kJFqyum1I=;~9Or}N zESquDv$ho+i0mf)KDmVYxM-~BHR3D&bZCc4>sf|J7&%=E~E7pWI7tTJ)Lfif*7ib#l{R+ zuZ{|`g6w^JbaK94lUY8*G)OtwRY_h1#BUQaOJ_yxiDSBodoP$xn72t1SD{C7N&rl| zO|1r~Zw0Gj&%bX`%J90*WYb5|f-yHre=%06pojQoU(IJ=s~H&lY?v6La_XavZD7&P zWwYamN;G8x(Q(Of#e4$FJtlCsu;Z4ebQYGMYP;a_qsz1D#6|Y5q%9e+Dum;3qp=c zZUZSdwUAXewaOQTEwJK9?~hk=A#gr7ERC}3N##GnH~9HLLtbWz_Gm1r0o0!t+C<_+ zDk&c_!XUcOM-ZoAEH(%q124OT9MQQ@R4!~*KqUG@2gGfdsc2C2b~!#3LM3&sz4Y_W zupZ%701*qcL+UvGveQ%bodHv|*)`kb6~T)g-YOdQF6>@|dmtA5;Tcc9heHGIiuH2l zf7YzQ$Wg6W3)*6Vr>=haii^1)ZM8Z$<=Tw>fTjRg-WdDU5F%j3u9d=SBr`xNo)xuh zguu5b|H`4hudaMtmTT9CmKmmH%7x)-J_yyu9OC+~TtPzfF_R?vHo_6`UeI~LM z0MDVAJ7mYCr0pk&$Gy*kACApktfLxyPlC&uC=|#UkbG>11_w|yUuG0XyxF!Y z^$jm7wyb49+%l}(7^d3FNI@Uf^lu#LOd=l_{Xc)ryb`MPrV}l)vb7YmO-m{s`4#>n zrQXgeKC9_wICHLF*$MwGx#6fQ(EXn}@#N|;yZ4gs&xM^zAkwUWomG<0$s<-wMv#9c z@+|}C0Zeb@RmzbhAHD4G3Z=MhIWUoWH@^b9Y@47oD*oJPKP^f28~>W@`^e9wqN4V@ zge!7auxLn_TZK{0C@W!GLT-4$v@sKN;zzh^s7~e*K?LZ7HN!vP^oXOmH>dz;*R%8TqXU1mp?^lJqC_Y%XV<&2Lyk zmaithvGRQYUh#L)-})|!l(DqIneSSLpo5vRWOzedD}xwm;uZZ6f%`9qvdNK@SOlFy zeJt))C`SGz@QY%w$FOV`itPtrf1W^YMHAIr)j=Fz;IryNE@SDc`o{BfOAkU~jlV-V zcM_ZEc4nY7aN?yf&~R$9{vU8p!}+%PkiQYSzSj}5e`O$U%zirQUB4{BZ_8KhjZLIgI-^B8a1)5ur~yZe{cmqOcRz0S0if`HSO#Qt_!uO-fxL{KYyo- z6bKk4zJwMJW< zL%P?1eTjS1%}0XMW$8WIQkjt`g9Z2LrR!4`HX*MX zpcSooGKF`I_@Y6hi38N})O!LOuVBCxccN_0g#Bo)GB#sul3YUQdOLoH$R>-8BaL4y z&>~7tK_PxrCJehsDVA+a_TXFnC?FRHxSW197|@_{6e;#?eiAB6e=Bl}UE2@-_S;&i z?)JJ!>Qy4i`x#4U`LyBH-~7H32Jc@C!?g?}^+Z|KHqge?)oH*f0l%n-lLwJaH8Aj> zdI{k>-ZNh3-=}Olkm$}>)zO7RgR7-(a)xQOS=Pk_M4Kx91GNsd`M^0WYuQ#3sj<^* z+AEt&<)7`c5iv`rO;V?AkEgWi+-3qJZOVEsk69U0;JSrvhRSwsG+7^=R0}PA2#ty@ z*?7;MMNa*7i#ALCbQi@5qGlEnHoU!z&;Ql523I-FYex`o0oNaEGs4BN@~ z{(eTt>%6M5cynw)*te_u_Og3g6+`yJbMIB+ErUw=IqNBO3JU7MiK`Sop?6;;X1gAH z0*F=cxOiPH9#LsRy$fb^jK+MgjCPLfAghJp3UzQnY$SOAi-pT`yd7LTc~z&H7ZSS4 zk$8j7=1<8l+LeiV>HqJ)7(YNcbER0|zVw0gSJVUPPtxk@`08q`rhV+Bt@QLscYVE| z;)^G3%efGBwA9qz6R`XO%W40*!kT)2a1B`#8DH}CK67YwNw!Kw@-E6s6};{6vw49V zBmX7>Q0KT@0czfVGE&4jarVr)e|SZ~b8a7dqBY~1YSqu`s_0p#NWKXb-BV|oyedqHF1>Q?PI)U4-F1b*Zu4r{m zQQdMR7&ewMy0D#olVu$SAkOcEtmlChKl^6#XDS+j)nk}hT_k>OQH(tbuAY7Wq0{AQ z^rhgWO_(X~%oF*3Ind0R^=)N*RK%Uwe&6l)-<+mD5yPHlHxyep|6m3tsPpd^x#&k9 z&H2MA;9GPtifFW78@IRhrfn$akjL+xzFa(RwSQ_qEpYXa-MVlf`(o7D0bLe&>ODHs z2!i;#TmY5CTZR#cBcDrHv;>xYzF+ua{G;Z84yAIGNXSOM`Rt z4x9mMlN!p3u+`1=&P>{)7(vJ$OZylv=x+X(V=R6Uv%&pjTd!NYML~L@*{%+u?}N2j zh=_tVGe>Kqb0gpOH@k!H+Mx;RpxbQ4WcJzFrxA`$$4;)ld%PJ!F|Doc@!wSS_QgBU zyNY_Cdy#VBN6#;s`Ojp@Yz-@bd9mkL%22N$1Y}H$-vwj*vu zJ!pYg?onX{Pgu52JYMFJd9eGRt;%b2tleUecfI}zx!XfeUdgvw)^Wn4S>?rg=Za$u zuVjBv|MKOjTU0DHbfUQPNd;FF#Hr%diK{IZFn?tI{s2Mn(&e=VIv?71xdUMU;x10! z!d&`Q%PnmDg#D26Qa&u&ZU?jWd^rK8sNe{z)v zg1z)SjsrTib=ode>3fVxG4smgbxoa?m$FcxPgUpivqe3B@M>(Mm$M zzy|1CqC1*t7@V7xslKv!;lmn8-3HXC!4=We+Q#{WBYe!B`Ly(9gtnkfOVmyHlDG}u=PF(OO=rK z+Zi(<_SHgR*55sLR`!UXHUTzlaL;zcZL`>!Sy%H2>OF#?1VF)X5K)Xm$Rj*Z*Oteh zKnwfk?@mcq0!(xDX}npro`1h(r+rP4iUD_GkDbA4D{&*E+x<-J@qvsg$^&`io(-A9 zDgK2p?#I@jZ{CXYeJ=98nzK8=XkCeLSrvu5Sn66W-_0qahXKED-ha}Bx6jqWZ~2C) z4cpEJO{_Y1i$+Y2mx_>(AA`>b+Qz-Y^;c z@o2cxTKv_2W$I4ZFJ4EL!k!~-ylN}$Vpvbbyrz|z<#WrD_`pKOcA3$Cyt6x_NAFgG z2ib5=A1QO(DXq1*EKISHn)VIK+jtp)(e?NH-AFH_i`5N-Mk8(ixs2W{(YR>l;auI2 zxyW^vRn`jgcMmiCl4_tEOLv%7$eTQ!*w|J2K>>mHoOaJQwTh3PINwjB-&)Q3|NgHYkiD~w2xUVqf(fX*B^28FJX8(v~DfSShV`Qu` ziQC`d^21(+Wl(8qa~{RxsIi53hdE6u)4p|*rT>jPzUc$y?8`h& zwOg-{T}}Z+DM|V3oi-O9=eok=+pf6cFJrp{-|3-78J==Fv`G3Gw%|0Ddm)+p@J-vM zw+y+CEo)NZOAc+BZEw(1-bDPdb)VnyT4)?2Pj6#E+?@JkG^j~MIEQSF=Ah4P^nrtl zV~xPmsB=X1z7&G~ij+8j+%f}vGlejBfMKD*ZsbpcrR>qM;BTUig`hR(!cK3&_`5-n zea*9iX68i$MU4V-@-G7~b*fTp0GFfVE_c~yD-sc`)Cmj0sxpw$H(Z;u_ho)9mHorH zwEuhL$_6DYWRIEup^AHAPp@bAh#4t#+cH*sguzWVlGJJ-g2=?*6|PgepETV&jwNK% z-$pl8)oN5_X~SLr(!(h^;?uKA-k~#61R|PIF>fv~m+p4g;)1B@d44i8V)L97#+2O5_-r=DT-`@kfA>iBmL$Fj)OCw`{u#kzPBjg~nHl8Sb4QRbfNX0Q|Der6F?Y=p6E*Ug z{;i`X$ez1i+*f~Lw(u15k6klU8fW^Xv!57UlcV`K_H6?QBi7b7Qal(U*WGI_eL^P+?l z;K?&2(5C ziB@MPy~@aCRmO@>Y+VGEZG(=6TojkFJX(L{;=M;+^ka z#y^Z5_3<-Q5jNRtxW;@5XrbKgsMo6B5p=J&P;0GCIpcF)yW*gGz@-1_FvHV46XDp|YB2f-3H@v{au1iyCgL@# zUlb zh5KH-7Q@osnBD}C_Vc007b9M=6Z?C`lhRT^mJ$YMK#Kzg3OJ8(wFe=@G6w~E>3ARtcIg{1bWap=-ta+X!8kon5L?ahA!tNzU| z>jeqjbs}93WXEsfLSy4hF_1MQoe74x(bq8fyVvV~l~22Je@cw^OhGuG_S3mQ?TWu0wfaI{eo8T;f= zKqG;m)zk3S?KnltYOeP=YwG>PgFmk@*qgf26mqankyX1D43evKTq0U+_ShF%xOuGY z>I1k4wx!nL_mGGZWXxCN_OCec_J|4J zLR`mcmD2a1V zSH^~hkFkotoKNf+FxzT}rRt%Muh;g?4~Jzta8X7b-@s&p>@3c+JTHAi>S$Ktno`_h z#?tVHr@d{0CsEt;PeEC#4yUb@QF+Arc$b%8og33O*Ug^{i+w*WcfH~~h8X%_nU4m)vxvDXxG#kB!`Sp+hTvwGhydAfy144GpLlv@$x{BB8ZPOTQFmJj3 zxJ9>4_vNiZ7dhd8j{*m6_EuR4oUP%p(tuNxjFF93WCla}bc9@77HAmW7O_CQ#}soK zDnIw|tiheE?4Wph<=QQ+6FlD; zAe1iJpmT{nQa8CxA;SAVpsTKtXX1Z=2#7qzSn?q9r>vVn@e9Gt#8(yJellMU3lk}XctD!8 z5@`y#Qn~;ab-41hpd7j>uHP}v&f#nY3psPIB|2v-yrxw<2tGCYM9BtW9>kK96^?&@ z;)WpFt#p?Xu4YqM9~b|pr^rSI(Sd$E#)ODH`Bw#G@RV(7J2{JRxN^)Oo_kNvOmcu{ zs2dxaZ|~Lo!&k>gCDn0{AVfn9xQ@8SYOq8#FDrXv$fS40i0sxEf_0q;A)OQ(Y8ZJXnw zw0((Wmoiu`=AF?T3hW$PfyRICx()BCeyJT-TQw`ugLR}*xzVKZ-2t#w;C{9>|8~*y z59ao?Poq-Hi^Mk+`TuwZO~Na++o+Z%H$#m#!}9l*Rukj{mSZVg7I9W%mma6oxBDp; zQ8nn2D=nV!_m_Jk@F+J}o3lx9a#s#xaHdTLU6I!b^W~WNj__FrOBvSWJv7JXEFi1> zjTR!Msjj@wZA?6Xiq@1io<2jQ+4K+kn;23yFMvbCZ0<_Ww)9x98j2~I2LB+cvUisZ z@?wJb2mV-J;$ehbROR5NYkLFSnT=`m%r~3_b+EFtlino1l;Q6Q^7#5kk)$8vT(|lc zq^UDi2}4p04>md$mwbeQyrTTXJWm;)wc!(9U8!^BeNjIczwFGy4s&~gA+jq;ii6CsOW8ax<71asz5P0 z1sM!aCYN5l=e&0wLYl-jv3XIUmjl+URN8TrP?s#`s>KYR9ZlU!bbj)P;|cSmEVP)wStRe>coO4h6H zug_uMmHZjn;Tv2nt=fNuir>Y0mVLfi$z9ZR2!JlVI_m}bHwNaZYCqn`qXT^D2})yC z#2RLuIT^(A4zN;4P>eMQ#X+oW<&|1n>ln>lElC9xfQJk5=TBCNVcyv3Z?3>R?W#ZZ zLyV?Ud2AG-DMh#8xtnpmm%9snnJAc~ZwpPipO@+Ee?xW~M2|^4FA3>E>(XA5kZFJv z$|JmQVs&E){BIG1FJm~0*}hH|sI81)UlGq`>bqA?-vpawi#VMuvWq27+9dC>E;Us+5|t+kSZ(l`)G(W( z+SGQlMHy2#QDl;AB?rh%LWfHG(J1mKf7r;?#Jz7lV8k5-3Mt&247D%tZubc6iz6@Q8}cPY1xL+3{O3K|Z}(sk9_4)fO{BpOo^P8h1=0Y>btJBO6tp^W&07^?FT1o;0+hHel=P{nOd4{0UaZ z_CAYC(n8j|WM!7*p-J6k+7bHb_@OF_HtX=H(|L7zQg_`FT#R>#WPFLhRbOr9Sv#tV z@n$)~pxZx60q&*=eTn_N(+i@03R%B7qWXQK;Y+IcMx1zwz#2l;U*o3Jx-(@gS}>mw zYU*K5ffDPoJQ5Z4Iu#L;2Co-qU$8vZaIWC@8%{5xt>AEdG1M`|&$Pw?_zHyxs(SQv zKYeJ+ml<|T-uP5D@dHlo;wOI*u#__q(sw3oHLqCK7hu!g+b9-vn&jcwbn0rh9sSQl zsu9zgW*a}coEdjrhwCL$5i5ZR@KN4`c6XU>GM2%o5W$~-c6Vuz9|iFFBlO}3`E7&= z!hW{m3TYUqim9CaVL;&BxsZ>YA7hb~I^tyYaIfbDkMa8BS-+<02XiIGXU1q=r$w#* z+}?FGpl~BQd$*VxnHH_0$BU`+HfOFrd#@AP)=@#8-)pbT^kNJM{l~U8w?}hOLYuke zdb???l$)j-v%whZsa9{7);#R7*{2V?4Df@J&+;Msroz zo#@y#P`k@ySv3B~v-qkk|3UP;gA!4zk;NIkHx9u4V* z2Bey0KVs}axa-W-sw~F;TgiLHT~+D%0#S2~6kl1t)3h>Cy~J%N&(+6gujR9(QZDv? zrxf^ZcvUPTl79Xg);}KZT4G4wV<+ZgN5V}_(W@I`_dQf z+z{cz|KaMbqoRzu_wN}}L_kG41p(>qp+rGt05Rz9M!H)?y1SH=?i{*d=4Ekx}Bj?yJuSV_h}`+=mk9}M_W zy>vx%jmLYYP(kCYNI^S~m1KE+%c?KUOZgzt`MZpO$fxgO%e5B5N>=lo9R@W@`ftPj877I|>c{;@Nngn*p zvf*YraH}8pu^MDVc5cRw0hMr!33BJVI!4I|?DfFsV(N*`sj7VVYQ^S7eWu%yz|OoZ zX#`r^#b(LSNFl!LB~=1foRS)XAxN$4d1%Y+E6dtpiMG4jHnZ0w|SpZUtZ!#@^^fva>aLf;# z#y8+|Js)(pPohxLg{;`;T8A&9wf8g*>hZgk3;VkF2Ie^>T#=M=fBXLxKyANSfUqH* z$Hn4>NCZ~WXZ=o1L6=cBLx-U70iJQMB!qM46L@pz~%aK}CS zz>g}~yb4=u(75}*^_R3k9B6)uDJ0o7&wT`WxbB?4!s923)kY{%N`?@=sn^b7=b>?8 zEwjILROolJ0McXmKF)#>cMeDiRUR5C1XMd7v(%IIYsNy0aV6yT!vs(As@Cdp574@^T%DDO6E60m%i>YHuSctThOmh|dr4c5Gy2op%Gwaa%PczMEs7=o4 zjPnc$9O=3?cPz-(buQTrIzmP!YF;i6-MjIm?9V1%<9Z}nzRe3FACMXLh>jZANexp6 zUe9%h`7Vs^a`@yHccn~QRMm0HM(b4nT-$zz>XBX))$_{1P7uLcX8URR0=B6U}&%O@p^je&SleP!n$oII;O_$!k6GwL`T`gYq$ z98+G}pZ!sw1yHU?8|Rwg zsWL9V#!Y8<2mW~d+dulZQ+9%Fjch*U>Z6U$d!rQ~qenfhr!;NCpQ_C-$v(EcYu*Ou z54ipn&ny%k(W!>XQ`w9|pQfNUsAdFBUxvWT@Dt(Z&d4FC6Ofgge{%#(_QLM07$F3Q zW#k&8heA#+THytoqQ1k_mDl5K{=61Q zj3K2X*6^^M1P#WZffzhQkMTmaVZmpC^O+)HJ0`7}vRIs6=bH1GixjkSRy8@ZJ%*Z| zd+wCL{V8f>gUA%jLDHdnLusUBwoFDxRV73chT}Q+2akqRZ#XI3WahBWlqH1a--#)! z0Nkmhst@aqY$%`V$BY$zVaNZ&%R7ddp-uY84UC=aXTvWvyBL^N-cPulkr+qimtL7c z$c1+d#dy0X`{WuxHf2u$fDCf?xb+v^p* zB2`YA>m?>1{>GngS}muGEqtx8yTcx}S`jiC@q*l+n`x7>LjFDef2-@gJ{=Hf$6lC5>Gs-WoW`y8K<*!AN^ zLF0uKg36P<;L5w+hW-#!j&wUTpa3NE`j}XKi505TW@BQ16GwV}IM0c~iH!TQmS<8V z>nir^O{AiWb(ay}kE*n&nt+4$fUvrb@vHL#t6pYbVd*>;ZvUnjXgPXfdXZ*=fSwze)KBN zX+)z1pIF3qnCbK(=ksgn{82yE)G0?^5X;wQX5S92w-nDYQ<{oP7DMb&n?vv^upaVq zQ>{t-YviQHAD~W<^=x-BjMNuo~()Z$_etc$)3>y3QK| zCcTQ{1eA1Ek+_{H2xk%z+!v9q$Xk0ftDbX>Wa3f#?#z-6pa;FzK&4?D_4pPRL{Lxp zmJdAFg~6P540~Vf%nL;JMqXyqHE9fd4i&7y?33K#9x<6P#(hjDXc-48hkZL2OW7^> zSn-i5*KKb6qleuS8Ai!RUdr)_sgd>zgV^kgf2{8u;)~2e6`rXySUPJ!Sm1;5SxvY` znxnet_SvAtYSF9)9nIQeJT);2lVLEq^?n4A7kXpyGx4X|xC)99I}nOP=6xLLAl0L- zt~3J3fNFtdtFzXOSq-l4OOk)iVHYl^9TGLHB9y_ukLW7~|Boh>nc?y?O%JV}H?+4< zxwC_rpF_7r{Qdx%`1Fe)%WHixj0v84vHo^l2Fe5XcjmX73F8_SBQ`oMUYjpK(rvf6 z#UOLDb{3LfG~w1NU4F;A@K_|WYkZ?^2G8mE){_ovtakF&P_?_$1SdYfpInV3;%hsUrEB|;3WpIruGW>PZZ|K2HS(~{5*kOT9HvX^fyzq*l5*~Yvy*pa`%i*QFlYXT7bH0lSOEzBO@bsh1Hva*GyR!t^~3Ek z;nz-yDLUdRP#0jaPetY%7WxIvaUqYoKY`6}9(ju?!pM9bc?dW->V&)Ox*?*Ip{ZAvlKDy8AM29O^OeC~cAfSh2k$R@w{ffYWPbj(2OXGtiKhA)rp?6p*xIbxY9RV>$J%@ zTWzihHEIoWy)OI7PSD%x3u$9e+~}?HN|W^=urfT7-wf_eBpKrXN3H7SYB$7IbVn<0 zgoKVH&LC*HCd`IvSz84!_D)N6)_+=l*%-U;vL$m3F`e}6u$PBd$k!!a$o15%X*Ya) z(-3Po|RW$BLD2Q6u9yD&C<++`5h0wl_<+W7WgGPI1>hp0N$ej_b#r1MdSp zoU<%Sx9lSCvB9y<7ZYW z*S;-Ppup}8EKU7^_>_Qkd0zRc*r+$6!o>XeiRc*PXA#>1&R_Sz#Ty? zHr?M{S0sD&DbSNWb(^6cye<`Gq0et~<|>q2d86mOM)3D!{ht=K{jX*Z0_IUkD9d7) zXM*G~lN>8<@h8ZjkHC*9e%a2Jw+9@VSMWFVTaEXdWqFwMp9|03y@N?GC4h*DYU+lv z-hb$1x8K1`9H^3pX-pbq4Rr;d7pZzyCLq)PaZJwL4*_t^()1q}t%`-ae{+wvS`|}; z3I zZT+0=Yx;$((u1~n>=MTgMs=LyiW!Q0&10@ukoZBdUR^CTNkEb9OEJBTmSAG`d`-e9 z<$aDN4?Rk2x!SJ{okUgA^nM62%wb_$bv;c1D{Jr~O9l-+rmiQuR&pR~00K*TYu=ga zqpgeXQc)b$im~-{{cmsE7K#h+XZrVsr|Jc&xs_q*JpKLdE6vTr+oag>Ba&+Z?pNK3 z+2L1TC&|VaA!?0pA1n5;C?`<|esL8?V=df~;SeN{u>02DS#h`WJS=xLUwE&?+gg+h zSIZLO(h+lgDt%^uebiZV%T;ZH(<1qLcZ%1{;PVilg~}MUo6f?GsynyMeAAm{@~ezf zkpts~o;dg8=u^R?50IBO83!?Poz#z;jq#w>u8a1MSJ*~^%0P2IuB}MU{{MO$ zZNJ(4SG_JNM%f;(H5wp&jy?ZKvIV)cf^~IPKm6grSpOWAaPaHV{@Mlsd!{AzLJluM z%tPKWojB(D2t{|`@-IdHAUVilJAc9D^3S=@MaRq?X4!i&wE5$t_1Q2x#y5#tBTuU= zMsq&Qk{#lRJ>v{m3Ex>Sg=%b*3CgsVbz{hXFq~>SmVipQJLy6?HqFemBZpOG$nkPg zBr9c5ul}`Woya(blTnZ2&pa!H+hHl}z?NV@jd3|{cdGD#-%1>v>FYIOcRBKKXYAM9 zt=nGc&I94MBZv820LJrTs!%nWLQa;9(=~DQvF+lojA9KKSI@V%S(4N$%_&a1qpAs1 zJp8jt1I{~MVa2*tLRy-)9yLSBR9eM1N+Rdx3t@JxsoO#4^(K}V!Q9}>Ed}7&1thOp;=g8-{ zLNRfRfzUV8?Na&t;<~*zQ~sLYYS>E@e$(TCQLZKkBMZsywuN>-N(ysGj@Z*oIoRNEA2!9;r%P(+-Tsmm`=33_LBTpvxC|U z*mC^n(PQK)F^4+)Y+=Gt!upm z&uUn&NF-}5gLb8EPh)K;FL+~LQ$1&%;s`rFoV+MZPdmV!@6Sdyc()qDz1st@1D4KG z1g$hn+zHR#s8;8{k7xT#CJWl*;5*%&f+uu4LCJr2F9ZBAtN8~FRSMs>=(2p1HBTQD ziRaskAtT~&KMZ6&s2_e61Wqp&GE>#e^8y|aEY0^knRGE=E5?L<{eq;;ZYur-NUP`T3P! z5H|!_E{K$IJ6iTW*}vC~Cc|kqxN?kH^zOCGX#_9Fn~rGFdzaRa;jEqg-MmXw*iw?8 zLp-41t+OAS5?;8wM;zJ3N;Z##3?z2{q&jTkeh6(rouHTzs^Wx&=Cy~ii-A_QXxaBJ zRmAa9V}8w`{Kprpbr+Ux6Ok{htr*a^JBQ-y#S^gk+C}$?nvSzkBV`4qs`^ex`#ril z>Z#J{{rQHl&Y(x6{Khph@?)mBU_>2ov7MjZzWwbg!3 zj8!~ULm(4O1i9sPjmMA}OgiU_4|>S0;ouP0I_k~0dr34A?33&S+FRQjrIWy|f5|=~ zWh;G#P5NtVN!;x2)gDVLd#^C!R$4=ytOTXuxcP>x#eC$}b%{ZZ>aq9G{F%czvbQfJ zQw=_PAz6*S)^o2AOzk{cYh>rD9XSDIH`BflSX1W5C*03+yVO&bkL^v;!8_Kkc&_7l zbgIBjexf9xa=ldSYWPBuow{Vv(}5FQ9Y^8oFk3KR$URs)_2~&Y==$GnR-nkI(|)Qf zgyT^AORo}4$R>K{-d#2%k=4e!j4U>tIgOAtX*h{is&u-j^h8V2wosr!b1b&UsZl( zfWxnJgms(5$sJHEAtOaCZY{X2SfC3)7-Zr%eKFI76^E^E_TdPlwjmy)w&d)?M}ZO@ zKN^CR_dqv%*M7nnHJ)iy_+Bj*ZyD5M7gASI{O>laYvck{B+y@gmhwXhu zOGG~&&cnHDSGY|Xc+SR`K^{6`-j>yRxKvd{YC6-sH$pBHC6oC%Vd(TU(`t{g4 zTWYF{RKs^w*GOY|i&V>oDnug`t~0E}@sl3>Lf;S*X?*oQ7N_fz#8gUizhZUR$R$(v zYcAyd5>OD5h}&u;FsAmd6@Mh2kznPIW-FUb9g$x}FVzI4W0)x~y#$(ftz#AAw*I&& zqjKK7qtzVh4AMQ9xZpq^wbCWfl4%>D+K6fWcI{Gxz`8;flhTbYqDspT{qi(@M-@NQ zDy{>^(`#p@7=*7b`3n;ExT;EzqfTW`^PAf^3!GD_ITu`%{`{!FnnFtB6HxC=j3r*B(cVK`PuUW6OngQ0sER1BhM&T>3q)t z&xeqXtpNU0h+`?WU|D00C9Of`I|3Akjw|{NsXDIohN}=@%y@rU(QtRIRhF17UL74@ zq-rMK6^|J4ZiUT}qOXZZxKiBcoSjMKW6eBH3x<;rJ*uxhBk+Kij57mNbl-6W$B0U9&nl;ha%uJy ztfAan==j)`k|#6w1DTDnyW7YVVB<7#%zb&x&Z=?9Q{a1r{8;?j9_{?sLDZpBa?XMj zj7vdvl;pDm$j>DsUmmR9FhOtJ|0z2ETYYqRIoRb}%CQVJ+xm=BZC;j>?Vlfq&G78( z5;?Br_J)oqYg{$*F@pUZ_o3OjRFR;3u=h-f7R&WOLd-vt`q{+RfTR&6L+pCM<`?nm zDAJjWiha27AI^zP3JzFZ7sWyT=mWPZ>0b+PKfR3M)`*hm`u2n&jLvh-ui`ML!?bUM z&JAOeAqeQF8$Z(rL=}h6+6en+o418(V*29qThK+F(FGf5lbdkl)tJwg7(kXdF!&>L zz2B(5dSYCew9}1equj_9iU$e2nMR^+kWH`W$u!E#H7#&%I86!BvUhU(?yvkBMoTsy z%TEobUvA)%e#6w~R%!Z%4V$J6SCe*_it*lRjwY?{UdN_f9X+yZZoexPd8@KUIbCKn zq&fTO`u-P**R_PNeYW9^7t2vSayO~|duXEOV@*Yet`|SBMkj42cHdf9_(7*0-d{Lk z<``YqPA^|<^&Hk&B5VbvJDt_EjSrNKlmhWF9@#BdS70mhMz3L1+0qR|N{WW;5Ui+8 zDx149n5##m-*EvyGd+tg@#i_>sin989qYWLR=crRaQET9T7 z_Jaq^u5_6S*`seV?vCh) zF@yf}Qp0n`826iT2UX|Gkz@^5d5AaQ17nA-^+)(1_@D+B7dQ*yxE1d5B>WA#&)WM- z@QMYoz;^il$~>KI>)7Gpgj*p>!>hR#(4ta}85;w=7=7E@R&d4Q&Liy#8dcJk1=J;hyRSxuQz%Y`5Q$=o9Z&5Zv zvLLkh-ZW(DMp>XIDF0~_x@S!Y==QP^lt=k9JUU6|GYJt4>TQzl-M3wcQ)aWRV0dG) zb(uWgJW;^6kQVxBaFBJjrT`G|$nvfnj8HmgcVS~ZX`vu)MIFLS?fI*M zPB!iAylnpKPY$ZZddSh1fvEc~6G@nG(rAm_*x~099*R3?iT8`&-S9zR9KC z;uD1BATLjYO4}FzRX;Ze8sqkFVxT!^TrlOkuAx+6?wK1REKF})l{%$M4svVeUr~8Q za0&CVtnX7V>nQjxw*abM)uIR%Nx9}h&0fHJoT32|cI?r3yd!<=`>{vsX#9XZ&{5Ji zR+Y-v8J0v@6!-+bw{L7RoV5h34BMOjiFI3P?kQ7OIG1nuZ(~Q~d)KF=_Y&kaxzC3i zv^y4me4NaylEczA9?O-d%SLOBSw`r2wa<~Bc4{jYo~K*Usw`pbSW`IkQ36Wt+d=PJO$xuw7sJFr7s7Hh!ElGu1O5 zaPq7t{?SX0(NJ3O4~`YO&fI9dMY`4&G>w2FG@O!+25Y()39lcGn>yOX`=p63cvRev zd{5XL%-obak_etK8|Jkr3ByYf8bjP|+qH)FXWy(g?DP2v-BNl!_`7F{+@^FKWo3>U zEhKs>F02mK@BPjtV3DCDUlZ#Xj`z~-4o!DIz5NIFH&Jm~Z_a$*EQ35!u7}0TwVqBU zgp6)*t8+)ePsdCy!rf^2*LuTYQ2M`?(o+ zxMu3Ogkh^vNuL5UVIm{)S0YtK(NT4^yy|vMJP?ijH!bzwz{82$I?SER9^wyYap9g{ zC0<6)9_#qls|}>^2gdy)IVnrU-%9-1L2np3MC-Vco$naMfp>w>Jt9-@%eBXUjm1q^ zd>sC(#k;7#xZ3t*PPmv9wramkgRH-7y3eVkH}QycmSGB=5i4DUsHyG^!0(=6ErY_5 zKLcqg;$*K26A~G4w1e1a=SJ^pqnvd|do=KkH`EXc-K62h4fc+XZ69^3x$7X{-6+q; zr)mUd8)a>$vN{d?J1#^#ssw^l%Q=WX zLJ>RymvMN41hm$61bz6lM11?B8eWx+*PpSsh(^IZznTNNSi-9{J-QlZeXhNQg_M5j zDoS+2uiqz&HJ*uQclv`y(A($JaxE#5qfPzVZKhlU;QdyK@~y%s*Wa+=C&YJq_FbEbXR-%E`#6LT+MxJH zLe)KclMzjhv!Y=0rK;-!Jg`e0oxvR?PE$~AGNL*qaQuz_(8$q~d6R0hc(=?v*(*=+ z4r)T`7uATOO!e;lw`j?v7i%m^753COR5?;qC}rwbSL-OuY?q}a$hJNE?!qV`Krk;>hS-zBfe3owl+?d_|VkV zbNQ4435o%XRgRD<1zW(hG-j_DTDbKtTrL_>c8*>52i@$$d#FVrx+=RfTai6wY&M8n z_76|$D4s1B9zy!}Vz@qz-)yy?F#H6N56!4xa>@G_+YqR~lXD>YLH1-jR|i@ybm`O8 z)0b*3X@fi$j>y$Fwa3g=soC_S+Kze++Rc12gF?NA~2>)+M6Ec0EE_uyFQ*S7j(-ZC5o=Br#oNA}lyTY=>2(+fml8g7E>E&h+Y2s{@C9%Q6i&UdtQJWz za}D}$stv5dgUQ8h}9%c4wrP>rFVh@hxi68#N zP2PBIEB0>V0?v+hBk6Q2h^Bn)M`dw<^d{F!j8s)8MKMSZRi}1FF zwhi7`WYm~>%hkn}po!elzgo+~9V#pIGU=+}kWU|c7K_#{E;uu8KqJ2kzf@*WQT@H? z|27y?(^)q7mhQ33KecT4DbZ4He z#hFrG^2__@WePdJ<6il+lw4`iM<$HX1a_&=A;Xkkrf#o7Q;=)DpE%yH2MOIa$uYof z#$N2rRawouimnxE8{j#Fhe z+}gZ>qYv<)Vix6;m#9rsJui+2l`9l@cd8Fx!Mv#cx95ILlnx6{T9MBn^5p|DofR57 z?&`}M;qfQ6JIi>U^@g%Y=xRbTH1l2g8Nut1c7BQRYa2BjTRSvhPCDH{dV^2$#rjO5 z%7T)5YCjaCAE(#T$J$>&p63>-#Ry6bSB(52?6bg)eQ2W`6-nfYw=RbPeKmHvnXGF( zNU{;()(X4-O+LXc#M@5?Z3BUXiuKgw2t2Nn#TLm)bD|&@Hj3LqEeHKpp-|zj$D@OIx=B0 zS`|5Pd6b{jom6{HbBr|0CRTmIEKk~@t=V#7#<<4wc62CyQLk0kreTr#^CJ>ram#?C zXrR|-ONLLmf1l3G_nWw^_Vg6BW{*U=Gl5&yl0-iP(Den5o@|m5goiMZz2C||968|i zW)TWLdWh(RbHN4=clVZHb=nU7OsbAIS9@h-!&YeEo5@O>zl*IafUuvf^8Syxp@qBo zG-mryj5MRHahGjDXu#_R*()?cVV3qBFn3jH@UO4cn=!GzJ=`R^a`t&T;@m6OURm&iVqwSa#T1{UUIJFVuy&%3 zPp*4QNS_eu*3E2tfzNe#zZi<$rndILXm{d&*^D+Bc7Jj|2`SHZ`C%rSxO)5K(>)M= z#wAI;nlOjb#MiZ4;xc^9-Np^RxggnOGKXo;C^Co9t!SC@0He!JE|4r2XCNHgkFaeR z{2PKV4$ZK!5`JxyHR1D9AmhnThxRM$fdA4UK!jUyNg~2l(;SwLI+@NHUowmY=Fcwr zzD1hR5x4?_Bx)zYJ->kofH~NuFdJH4!`DJpyf;3x3F&lQM{|M_aZsc1+UJ4g{Q@S! zHX)!xQHyI*Bg3F~29G&(Ed)A5FNx`|Q{Y#cLr&EbV9=NkjkrM;Hhg5;B}Oo{awctz z$8_<6Z>6TrhF@1Gi2fXQtS#EAMx@c?l>Erc`==8`2>K%i})@@|&yUr_z0^V%Q13t>|z6X8@MFDe~K1&;9 zTGvy3UmJN_?R%Svm<=r^>TzWZ?H}IFkLWj2xxlx&n*q#J@{Pz#GS5}&6L%!KdGL8- z_d$CmSJ}m2ma?r$LNSd|k8%`MX-n6k0O+$?EE|n@bwz9Em{AqC&+&ehpHo=Hn+!ta zq4-1+O#n~kNun==qU7iJ7i#I^TQM%8drvj`R%pdPjm|1dtmDRPyt$bpzAbu z{EdCurI`6}qP3%*FT&z`+n8OpiG;RUNZ-qM>laHy<`?%(mWq?lKGLTW(Sq={XL&WI z+P%JYa$VLVzqt#Ydgfbnp}ftS#DGVS-?69e2LZLPWVmHX^r3)Z0CV?}2(Gf`^OTx* zK5OB^nz3I297m1*O+kJJ8{pWk#~ufA724Q5X|rmeG2zlX1GvSo zk28e4t`F*5ybSO~ea-Q|o#0o0{rhUqQfui5IXtAbv2gGCK1FX{VPK|=6&C)kraQYO zK37kk6wf)a&_w^PO_uxe8(MVbbUQn;R`ZyI5g9E=&i$O_#U_fhN9yF2aG{yJnmhTMc^E!ehb^hD5d{!6Jgp6o28oT3RPw)ziqi*mmdsk&7D zX#!!nZ@Mpo5zbGcjgm9AI3*wVH z`of1EBXw~$7*!iAsl zM$JmnR*vO)H1*%!Iqdz9=+>aSjktlPi@}M;0Y;)_cI9TCx4K^LU*|~#3M`;LNjgH^ zA>j9vJTbo8<4G48E!T{;(^@KPO9LINi>CpHGj^}o4jyeX726y52rF%2cqKLn6qjx) zuE!)+daY?dO=sfSeaGKna+r}(y8i}{|HIR+!23$;S6T&|5!NDOBxL+BYfWE8V0jEA z5A&WX{Bkm-rZ;y2c-G4xr=zmdwP-sZ6crl4y;A5T{TQLUJI1xTrXE7S@A*dI42;2f z=|nB#ITj$lK;yad*hI*h=OGuE!7eNGT&+x3XBdKl8W{Lh;A|aYDR!j;M~kWg-TD4x zs)&8om!^gR^VNyrreB}k_=h`A*&h;?I!Ln}XtWAuT@rKKH4N+|7Zz&QG;(ARH_##7 zX!|Z}59YN1xHi$fV(km{!N{4O7!yNRnJ##u(oHv+?#me+$8ZSXay@qqtPJ>PX8gDO z16ch(+P7ees@ZcS-EurGalp;Lq$uCO<~4VDhdULlJ@DdvWTKoX&UCxj(iIVjl>T!} z*L3roaXW9Es7&2HF&YOJ?6`@qkXFf{6mAWXzM%4aSy_y;VTj7VyoO+;9rv3bK2+GF z$?8>6U9YQvOqdD*uNs@*2=wRNRD~OIbvq{lftP2gTBd7bQx_A&;|1Dys~p5b)me+G z8WvL!v3^7k65kJQJ94@V+Q_{xIG(vMvUhxJ%J2#YcD}C^$24PsY?A`@xwYv*zCK+M zpm0k`#la;5I}EVvwvJ=Z6i8`gI(G2q-#%nd%)DUJ(6dlzIBy3qUDLXgC zB*v>Ki#y+eu_1{jGt8YHjmw#WBCTI zaaJQU(k?~Zo!3q0EG#xS9?Z(1qcXAWH+t(xq(aX?vy{q`H(?ct+}U%bF4D4x7>QUCKBc2V@YLqV!Isv9K+} zcF<#5#anuVflVOM-(R068hT4WB@|a{voJs;b@RA*`p1qiNc`d_GAUmjFKxLwXek%j ze%*P%@A4{fMJgACV8ATWMd= z$cimAcK*B``KD9z$IS=43oZr^xCgZ1&fanDx@VLF|d2}%UDr4W&COcl@!uARt zd;c!E8pMT1DQR6KVNQb>T^;1?WJr#*I`t@J!Orb>jS?l9H1`h2WYr!t_~bFdWj_y4wt6u_Ia)pe zxl0fo?C3G&es#2t{lEfqlGKcjYkJdh2RvGaVR?G3KB_3+V(@#7mv4i%8ACDsHulN8o)J-^h#<#)+9m?)fgtfVkGV<{ z6X1(hU73D6ywy5xn8hhNJ5sb~bCu@!aP&Fe`*q)Om#X8g+w=eaZvdmz@qfY%N6qlM z1pXvvJoBl^EkFZ8?S@wWBCQ@L8-~= zYi5;D5eiVrirC4hXIMW;n+Ktmtm=)>nCS$>yhw%cYsOX5D0`HW=st|j_Xf$Q-v-j! zl)nF){t8hEroGlng@u>t}6wIh@2L@Z~sZw!A!@8xODI?R;j+h%nq`r z#EHXDHp+c%cSRzpJ7{U)sQm-khGHb9Im{qcu!-M7<4F2;d2be~GXV2hPVXuxvMAk4 zc&^)7-yRxaxrDqyjt8Rg*j0Ks^O5cw<7H`437xskeew33M&x7<)EW%fzS~u9<}2NJ z!B|JqK*^{Bx$D#>^N(}}gx1DS?#MAM9saPAq3s%XnB9R{RR`oN6M*3OE|z)D?q%B< zjqBp`e?zezQ3*l+Gk>ra5VRLghR)Lk4?Y~6r}aIL=M%J?EEh-i0je-^panRIgz(&5 zb|?EStBKp|gVWu@{5yWq_;_EPR;;mIb#*tlL56@3j(O;>Ic3R2T*{G*7=?eSJAAcx zwkIahUy6K`bYEsVP@9szRevcu4dKRJqh`qLS}#KWr&T8M^2LfxIo-3meqlc1r}})q zz9G_+uy3J40rr&41P8hjgU@sa7S616lE3P-lu8jd#RrMAe)a|CrsH-vF9b+&6eCL& zw3f;f;7)XerhXC=m2Z29N{WG|*KEJ2L*S^U5ksj~?^y=#?`hBJN?<(cv1Og@(!Rgh zy3ORD=yW%hB7W|1ca~#G{pa+rG(w|234Z2i?s=ZeEweNQgd}x7-m4K2;!as}_xO(! zo|*@bT6bNI)i6jSx?)<=k^EQ}by#IYdb64SmKr2}q(lQ>Y0NqDT-9!+a#{O?gxwIu zNzINpE&Se?%5Ay|B$qhkaz!D`|uat#u$&hR!TX{FXCKW zpJ#*k$$Wz?ZOc6u-N5dJzypDgq(g`Fzd0isNJ&>3K5E<$ozRE5G+GwJc8=+UZMDr) zQn{1q^wX-0%cF-6rGD~0@_9x$s!qrEqD4;dR_c1cs^kYm=r}phIAp(Lpyeap9ElLs zKAw2$D??_Ray_4&T!)B;y3j<93fxpB0emF@KlI=Auoi1|P9MN-w71x`IAedtFyDMZ zxyUzX&jKm9BHow~PP7IFLTzqW3_R^v5Fu*c{g2lA#s z7|y>QqGy{eS*hCu=9N!)r9>1V+|JgR+466+bt&cN=+BN2h=HgjXLA={z_h2jw}5>T zXcAxm9WnUvrsg6Vta%y6EqS%g=-C1-hbnb8(o4JdNX)9`mms12FUyBlalEs2nmsRS zr;2L5loql!M#B(lg#kFSIz;8YAxyC#PYyG>|8$X`4r(pRg21^y;#3D?EImcyW) z>^oO}Fd9>m$+hzh82oV#I>*p*AOPqOEEl#1DtU}>1bxi^; zzIcH9r^19r)Cd;Oxo92~JzQ%!*!PlrcohSwsmw;B{|cU4tB9QV0n9~v?YnpU%{)*6 zI#^&;Cpst)(`%h6{7bA&KAHgs#QIkXR@wvrd)gF!eSHgh{2A=B{P)QRZ(jt*YzFpf z-n^0bMShBuMhm@^aIudwv3Kto6^Roo@zKZQRHrl8h6RjD)wf)^Yl{iIo)tap8h^xL zwCDzM<&h+xcEMST{mx1@nB5e>wO0CsQEt`+Lzh3{YcFy8je)`7Z~+DBIC?Yt%dr2h z`@3p>sFm&>*6G$DCHAx+t$z9&Few=@L_KNxQqJ9N26%n{TlA=>$Naa0@JUC=>lfu+ z)*FGNUrl%jlM=Y15=;L$8RptHZYq?YxrDK+7zU8O*+*MuZ<@eXLH|8i4ajM)3<8;*7V z#RfN1-jRTzX<$s9ZlPM4ZOurYQo1FPBIfq=-MHC_<0Zv8^!fOhDt>H`(rAAXWb(X; z)B3I}<;N4aFD`EKVMJ2kbGnOqbzVoFeILJOH{?^C=n<{2uNSs-{#%CM#QAv(!$=wv z^t4;E+m&2y6Lv3DI&D*~mh7^8WCOX}1?hYgS-AEY(%rC|1&NTh=<;$ZGybD8*l4bHQITJ&)W_bQVgfrW(I6N{W8&QFhDY%4uV{=m$TemswN>f;xCV=I!O zhhp^|A|quk(Oh8M_?fLaFcNFpmqKT1CA1fl!DewU&p;XDS@57#=A;%frBtiOZ645%O2 zNBP-Zt*agXP{t}<^4RxmWI-t1Z*0NCbN&F5<|`51_;c6sV7<;#cbdz>!G=V?i#UW$ zn{#?G8LzZht>pz}YG-%&wAczkq}{Iaar@UgFRFi-g(fV9rz`2|ll$YWmdoDf;>JqC z*xA#Ued7G2$F&xlRCx$a?Na*L66EBwzr^@HETJ<_+R6p*{B-mIbuTt>=dogsm={7+ z+X>(f@X~B(c>~g5UjR1#I-q#OSlP9{5lZA@0~n>T%0a%yC{>BV?~@V$4^TBP?xyi; z0|)hagSA%Om}DgHAcp_Lpa}1x(oEZpkm5eW8ucR~8{QU|W*2(n&(knCA ztsi;YxK|om)_SLDI-Eu^5L%%OU>vYM@qo_7O2-C0NF#nU|2NqGe-=-EAZ{*U=77ot zm_C2d!A(ywL6RUw;_oZcB4xYKu0%Y}9NVm>lpbR_f8#S2d^IbCc0?oUJv?jqUApnO z5vK9lO|H;>0uuuVHK`fCI9f1m(D{1zigoM96j9qla|J3s?~#=PZ-r@F#eAK^To8^u z@2lO0-Ym zL{2SJcohu{U_91x+|+}*S(R_izcaynLA%v7S=LzE@(Pj|nT&eU&erwWHMWPk&)Vv~ z-_ZT{Q}&7(yj;^gBud;p6hU(x&I=OP7soozIFkr*((a7@u&*}`p;5;>4tFF=K*0pB zY$Da{)Wz)6hB{Ca!0=8qFthRiLnL&G+EC1TmghR%ZuS-{d7^mrj>d!}$D@Hice{FS z{MStX*zUmRB91pi?2P<4P3)dNOP0M%eXo0QC%e^uZN8(~=<_j?hsPIc%gj#}a#iVi zs0j^)?mJC&(fM4;lmhZ_yP}-s4?YdadDIPR1W?9wIP5w+Ua~{3PInlSYP?Rz|OlT(pN}J7YwcK%Vv=x^~864 zl=&4(sU}IV6`!=;XFSk=Ggd26D1YA82GjPj7txRYY_#KoT=ft*f9#_fgEBdq^|^eT zJ(TB(vMy-`Pq!>&A-#sPYXZSu*7Q;G_ViOx{P58OKmvBK7vcT(Lwu#q(xyEX-v>HO z?Emma@(T{s_-`mxwDXf|s!dnzEaTwY5wOrK;}Jgo`q5Aejn4Jn|81OsUobcVFv?++ z`}=bhN9I-Me~uJaAtYXSa>KI+`k3IOE zn#2A}>a-niO&tpVSyHqVCzs34A&@ zW}gYJnfmCx%!6Ea;A7X8v>5!?frDlR0#jT0)!sVafezJ+HI)gU=5GgCHOiuLd61hd zAgJlsR4kMs!;NXUDC-SsGML7gGZvVJ3zu3g=|Rcoa$Y?;p-=z1(Pc-`g_T{05!h2qJKd4I=dl#3HU zAB!$WkT7do0!b|mPMt;p%hqauNic2vNGmfwPchZB`Cl=ml}mAIq(Dl{V?Bf;g8LOW zOx{s4Y_!98>upm%_sMVH#Vz%(Ivjd#js^@k^9}G>69g&R=7^8k_}smFkmvs~b=FZ) zuHV~7Ktd@2rMski=n^Dk2jySsBpY3Yt3-|>6S`K@>HKWlh+?z#8A z_P#z>^&|IxFSi8jgSJy{85eHl1|`=zwEF1X^0&24K0E3Ocz?pBwB5T3vbA=bItyHD zC_GXX49A;VH7=sv(~FPBavk9+v+9@xCx9F*^C0t#*6{+7+#T(8%@tANQft8i$ZcxX8JXayDBbQ`gA3PW&TnRu0e@B9l?`IO(a7H2(ZrGLH?Q?_|n z;^V%}JAN;CaXM}0{Zzz&|5z~gc)9JO&PKd3PuRtGzMEuJ!79YF5?(LxpS@R%G8!Mc ztGfGFw~&ENF8Og%Wf7>IMuDh(y3{m`w#O+LGwQPx_hvAnaI$U?LF$67!04{wepx`j zW@b31Mc);(pY>t}Swr^e+*o0d-M6q_`rtA`O+I_?er*R{h?Z(~JAw|0(He%941zx6!0$r?WJS$3I@;@bLOq>e zY`iKhu_PXeqP342fayY}^@afP`n8PwWcRn|ch04bzrWYh~p#{&3Uf&Tp=jiSunC}p_~nHeI1@)EQ&Q@;5}!FG#yx3LJbZ2)H0_(y1n7RSS~ z&ImVbVRY}@_iqJavTpnGT+E6G21gr>$MNaW2Mj(E%qKLcrqh26cX}A;r#CwE$uVQL zt4tM?ko7okNVbNVY6N(^S@KqIQTRqs%c8GTsVz-g!*}$Q)*ptWsmQeR^#e?;gG?$% z%ygc_O7FMn8XBhApEV-T#uUxf=b4LZ&A>(19AsnXem{oLQJDVU}jFbnFm zrwR@EKUt@yRkU%)_J(LZRK|zuUJcmSTcPy$!y}=pP2?2ph#JHE)`Hp4GPQjxat;-= z*$B?ZH_LraQ1Ll}-z*nF%h*zZzuhN*FV*r~DVwNE_{i>2nhe;V-H+CsE$FFlE6llQ zg>WUYqEn`3`=|q>wqXeD76a+AIOdJZ5}5)|);hJdM&16Y(z974eflTJ5#-iP8V=4Y zIBeSgxRHB(zN{F303d9%7mtvwH_CMK@z|QxYDPA|Z?9gvm|bkuTe1k?%2LDK3m@(c zWQ7MYQC^krytF{9C~jXvaL)FSuW0C!KBMY{%s@I8c{=eBr1{V!-NycS z!?K>YInmt{EjAsH0VW+5agiM1ZOcNG7d&2vUs^`M$-h2C0@VS%G$-RQCZ!KIhg?;B z_^*$vwKWcAeSnu8sSTW9!AoL(NQICzMB~P#$|wp9X>#vG&Uxo}Bwa*r9bco&5~8Nm zP@zkYh43QbrQRUMtL+&!XS%kYY);E0BX?p}QETZv(0-m=mLebxWm0Gz5_|e#Gn;vJ zwmJ{jNNs}-)8O(vt>J&=!A>%M;K zd^LJP5iFRJ5*C5w7+z9{*mLCV6Z=jRRzYx$*gKbFYwg+BoU~`Z?YFyHb>s{|cwV;I zny;)Nz+ngif4Y35L{Z8T!8jvjXfR1hvht?_f!~XY;|ONC8EQZHC;*di4ejOB#u=$A z&*4`QO-%@RJl@Qhp_4Xa-Wasb6F(KiK;xldP~HfuDvUeMKy_oY*WYyHEM=%W1-uFUSNNhs?+If zdEiGTc-!%CKZHr!eXN$D0#t$&_Bg=EpURGCb#@cuqctO(>#MKo}dFz&Q)^w(qDG9^kM^DoSuSAn`aF3PnU9f^+0kA8Q zdW1eIP3XDvn^lWr?4Brxr#~ODOUnqx2ldDJZxW&RI6&C=p~0_s)a4bUDyqN%O7fAK zg3ObpCEp;fn<>ECQ!}V2seBAtdW#3GChb!ceO3n2-eZZ0g%Wu?SGu8_ro`KgpPc+V&i3BCVu;=KDuW?Dr&!L^^pT zdLy=5-a7RVI<8{ojI&c_qY|+Rqc>WwFV(&^_BXtxMia@ui&WQ>R2FqG1T+Ks^C12b z%dBvo8!R_8kj)U)eCs=`e1#Ky1<-S)0;uK9sB?d+H)u5nhA-@ae=wZc9Lfc)5ANOj zRFvsfLWJH9ZNUGMQq-fKfNAT`;$I(s;ApS6$Nn6EqT5^~`Eb^1N9NnCkymtbin;7u#essX!W(mEz+M z)hYcjh515;6}%K2*iya}B!oAp_+QB;M6mCT_H61dN!kCnEYr`BY}Kdsw@#*8V>uWO zzJ--Ee4l}w{itd8=tn38_h&#(z-i`qt~gGyJkEhS(bT{CIdzyp|L{F#>ID=-S+nQC zf-Fi*T^3)xtW_vn@GZg86~^n(;PU7;2JmJKs_4`J?MS!oG{u6&l3ibPuuNuU2>$)V z*Z|}u=jJ!WAN8VsA3rFJ9a>>KOooQGv19$@9PZHM)LYeClKS>XMukb;4fiTN9(h|4 zWBX5Uud8O1Y=`fsgaXFQ%d!SCKutQUPxLoG02<3mP^sGenE`+yob$xL9r7Z476*v5lFa7bGEwC&%HzrpXT>z%irX{@) zvWoxR`cunWyPCAa@GV7vPVS&#}5vH0>2(S(iIs zAGLkmx0-2y98!ioq2(TzN)=k_DivC^$x+>P=-GT&_QJ01MbJ7Z8cJ1tzfxL{dL1!b z>vy!w^mX105!)6uo49{2FSCq%egA(mLwO`hy}_@vFvol2YDjLH+%4G~Q!eeB1bch7 z&le+27y6L3CYH{Df+O>GLi`c($3tYHkyz%AIJY9=QmLBbI2)s@wgOh_P0QRj3tY?^ zAI6IuB`Cs8u3{5z>8v=`EF4cL`$ytq|8i}Ww~N%-f288LFNEv&z&H&MJ08weYaAyB z=?@YC7V*4cY7j&GrT#MgAp%fZW%o`pi(z~Wg~UML2Ons<)-$6|R7mnb1i=ccOhb48 zzrh3gZ2ls6f9S0zb1az+YGRzMVE-+2`2ICVKs8!GsO!e@%0&8xLQ|^W4K-r?6;&a} zn8+|lz#z0rc5p&m`dJn4^{F%8A>iB0R@wWSdgsZ=6Faf12DaLv6+ncji*&res#ef& zJeN*96;?-ranW5UgfZ>|!Eq%Tp{cW+!&%B2gKR^n$It&(jTQciO~t_;2+Y36nDXaL z?x9gUbCf=xF!dOIvtpI{0SSyJ8etyM4EY?6CV4FAu_mjAP1HKIv+>gQfDAaPjKxF6 z1$axMrjc+>^lIaM*e6a}J0%xP-bs}NQCV=tW+X5zsgWXZC|0i2wOaXbxo{2Jm+lBt z60PBECE8Jics~)AYK%t9vYftm`kjbjA}B^pkF7=(C?+*5vYju*e)Na#uR-UazrOh- z8E(3KD12Z9Iu*rTgd}BtYfBZFZG#q5SWeq&@eA6T_;R{)B+vm1<&k@h!{Lvk=^s-C zS$#PI6HUHnFI!}Jpz%h<{4&<}wMGYY;09yQI$oU5i2SeMo$a=GF$b45{F&Q|(tNdH zOn_zt7O&(kK*nhA>VsaKtsXSYsg`K!^b$mvzkI}S$X+Nsak2MtM>zm4Nv_0eMDT9a zUgZtEJ$q1zACy3VzV1EgcU->0Z`se)ojeCNh^O27?&WhdCt%-)Q7m6tk?ygdb)06K z#QL0jHWaYoL4Cs1B0k~j;S;ga;+4UJp3Tvp%W)TmUSKrYVb?HDAwK)8opLpdSYvcz ze(=N0+syl-e&FZWC-Bkd5_vUeqrj8PaJD<*e;ah)y1$U}y1rfZe<<61--JaRsh!O= z*#Q#W$c!%gily^!n3{DP-Sh7_uj+ z9%&@Xwx4Y~?HFH>qJK_Z{b~0%%Yl3kk6=A*A8r5EptW20`n30;HLiWq-l94_Gf(Kw zSv$MG(%#Cxk;x;fp{l0c1^>RB4Q-3Zq-Izw9hoUD)c}C-C4*b=o!%_A&_RM$k*?%V zwJ6i;LCtlG758XMny9`0vwn)-AI_2T>0#$D%A}QybGdQ0#SZ*zPn)6BL?gsrZuIvQ zR=Atx2XVIb9hWn)6>L3^Np}W6wDO*FEpJr&P)D}|n_rY3d~Y9OB#80m_XgtM2hoe< zYN32zx1Q5Wxrs8tj6D{ZhB~ILi2A3=i!np2b>WbzifmMSM$WinaO+B&4>8eUoWfH#KVMEI> z1NCp?GTv^|OHcDhNmN*@knM6YrdAex=W4nzFET0?p+ko#7HiF0s<9zXJ1h%ew!!H{g`)b;HBobBu%OCJBV>O)%{wbi43|w9YV-^ zbi(C3bSF<$$6&qqNmZ(!8|OxyOW4guT2Iy~6;zCqsF~-9D3$%wxk_tmx=n__3Q)Fn3b z4g^$kkmXM$q5G~{es@}_(mnL!+Dkp{hqhg%XZ*_j;=Z?6fe9k6(PP%l6}nfHiiv3e zod-R98506|fA84h#$UfahsvM=%Ee1UrQ->(SVE9)*9O{jwgKfMb+-Et6Uuyjo=GYb8IEHqOcPsqz7`{$0FdIruUip*ufeLS%*66{9% z#eo-aB+#yAiJwKq0fu40qX zNlvv};MmL98_geb*615H8LOuFnScHrXi*W*VA%QU`|A14>3G%1V%%(2!|T31%t&}+ zy~eVi&edx5k4!g7NNs_r_b|((x%!^bmix_1J|4@xBzP;?=)wmn>2^vDRt+HZLDwS1UW&2fB z>Hf(*edvfOEOr}%+%!P{jAIhx?C%XrkY*>-gwxE#Btl#kw!xe4ZHFm~@x}rL%HOX) zNl(&>x%sS|Bui9aIEYr`wDw?HNq~FO@o8__ieu-2*q+fmOv~+s=Q50-B4$$*ailKA zp2~aIe5H;n(^D*x?+|I2Q|u85%lX39WcXSg8Yt~|%@L-oSrKF-aUz^8Dr;{x(-fkv zJvUUrvIR~{0Z+yHVVrqr1ps$`Ln;v`2U~v3p~YKNd_0!Htn1XVuUD-o3>ffu+mIv2 zcf!H5`4bB?o%>ZqI$fa|eFb2}B!hU%!Ms1?#@28epBT0veWU_*Qv6QU$ezZTFjhug z)9F%q46cy@$fViSo~(69FL?53C$`;p#2?cW(a1Azr&qDcnpsr~&KwSUu$VCPAsmN` zC{<;6{f!;=dwU_XWV-Bf3SC^>?Rn2!hkw~^dr)B~2z7#fswN<*Jl1omE!(ScvuK?(b6H}0QyKGKPu_L^??k!4V^T!p?F-01APd@hksLt}8KIbuNEJ?$uq)CpalX6v z@HSRjsViRB@(1=1^_q=jn-oZtiBS^xsgCX~-yW~jyj_Y*3%({kT1>kK#7;nF*r*4n zZJ8M=uOcGiJ1-yPP}E^Gnh1`VgqHbc$X?W`U@#cK7^fycx_XnH4rp(YTBnte5>*^L zq^$*wFV>D&5rASa?@srM5>2^m6FxRRjU*~-Lq;tOS%^LS71Wx(a+}9Fm~P0vY`B3eJX z-?Ea-x}G%xdhcV=$Lw9R!RUq6u6Nj$ad7r3l7ZkSB6h|gBB$izrB(^HNFqwc2rDO0 z5-S}0YxUyEx3>O3r6?NHY`HXmOduK&9aP5-Nh$+!Z;K5%u5n{NY3qCA0=FFxW(pJt z5^D4hqr9ICUH{|+t!}k%{QGa>hb8u<6V5&kZ+Q3a=Bo?*44&^pc0k6&VrAi@O4?Zx zQxPF8D%6;P2y%bX+%Cl?rVcxWk3*)^c-D_|;%J%@l#r%Z*6$fc&_Rk@fu<3B9q*J+ z8u-pdiJ@QjUV(@_NQ!Q+F}W@Fu+hp7REFdMI`i4VPjsS4jf4`X1&qhs>0 zPt2^wYUB-NSI>7uQiVy}wNpu<&J4 zw8q(e#}oTZL4G4&D(={e#q;qt;_r)N<*#N!;ZnB*k!ik!j=)F%a=xMdjP&^$=WT@x z#QH_W;iFkM=(qR(Dyl9D43al;RfB^AgD&u2K1c>3OPCIN=+%=&k0@-Gn2X_t5HYm= zSXVHc7GU#Ttvy_f)ARJJziDZjKBU_hxoIZ;-be}DJEZj7^N0yXfIPAzZo*gzg^28;`M$nMR zwC1!uUkM-Mh?)jpY$a2jG{|7~=1rqb*80rM(&vq4i^h373#+^IM4?_*?y z$g+{s1e`O~MKHiWBHURjC7eZn*>Ekoc1DxbcuurI8mNIhJ9TD;kL|AZzM#g5Pr+vq z<6N4TDQ+Y5d4@r^Jt72Qp#V+4bSR|o(p0rg5S#c3LzLj%J1K$#kNgRg6|OIz3H&n9 zkudhGfbP?uB}l>Dsi>b?aTVMf!CFaPJ3DpN`JI@@0xiz<@I3pg78n;*p4a8|2ke+p zdY#8THlwC_DK9s3DQrf|z~-03Gw}5j72G#+g{ie@U`MK1+E6hak3L7{Ycw z;SVZ`XlmQWoBi`FqQfyo2Da@TU1p1O$DK}z>tcV+WfVrk_X8*f}s)ycSO zzd-tX>pLPrUl`Skego2ds`d{^Oext&nG6xOG~ZMSWwv zprk2PDk3_e9%maTT9V*oy1?SrTu-v`!D3@0S+%C7pY|*jU7mk27P;_B6FB)GhZyj> zT2nvdMT&F;XC!)RVhmu{xVcbe5iYbxy~%^Y4JQuK37?mSavWXz}#fu|^Okew8 zwYheUz7P6K!$s0kWpdP;m9)RK9zNW_PyqXKx+eygl=AzM$HQnM##*^Q>I40TldacU zz~j=83`)!`9vAQI;fW@*W<$X!=i}`tA*Mwg_j3N5IYnBF8gwWW9;#3!{X#awbG|6p zNO%K>m~gN%$}GrywKqYFrIQ3J%YDiX8L#wae04i!O#v8+Yn!*&l>V<=l;neF)9xWF zbKdQbqhXLyQ){cUZojzfA5Hu0*~YJ-o7)z$rNG!oH#*Z$w2UyG^ox=6qiT#BT`Ubs zUdd-ftWP40n*CfKxxQ;E&<+-rKO?cI8?m9}sIGuUw}O$QQ%zN&klZcVDuYP2eD2lJA@a?hmGqL=*Inq&f9h-)Aur#&}8@F)P zO2Ii|h|A0|Tk0-dYj}ehR&6)q^SsH26Gb5q$5!h7Cch3|!$#p5RU!Y_c$2{}s&q-n z&zo);g2~FJmYX=I{R!=bHk8y5x>Guehd15pbICuuJ0}=g&!*ecSgF|M8>}|;0i@bQ zCvjeNQ+8T+ksE6UoV_n+VN%9$vm(Zv!dwKNmlqN%QHY*yH&r_i>5%ukVNx4I1^Zc6 zJRH{a=-Mjg3JZeOnjzjqyDkGeyDO#O|JHNUg1j`UsH)$)|6OnMZpCAueGefCQh z%fUc0G8XN}kH^VZIpipDpiu_eWimW*!?gs=T9oo1FA7|rX@%}5vxIcrZjbRe)m3%G zD?UnS){ca_zeV+^Kqdio?RO)R#FISzM!Y;I%Azia5p=sYug`&m$S#)Bk=gNq$!&9t5nM=c)KQKn%T%Hc@k!#_ z)zuT8W&0vYGT){Fq8v;vS*@FpGcW4r4);XtF&&0}3$BC|pvCgSz?@XY^d2!AD7fC{ zoqFs15)L{h?%Z3v%2HHgK}gHa?Ex_r_zn;C@*t|s6c|$1Kms0`e2n3Dx`^F$X&wNE zq84~nJzSEk=_)10&sy_n^yCM$4(YY}T41i|>- zPZ2$V#L){M^gI;&sa1X2uzmskR7C&YAycMDKjIeSu4kQY()>m}i|v;5L? z4_}~jWJf8BbKtr4E>Wo;Ig%L9X7uHK$bN6>#4~9wxK}J-TtL_3;;ZzKqMXdTlS3%$ zYYjWo%~jWb5hX9?{dctH@Mi4OaM0`a}1+rxMeoYs12a)?Nrw$z=AQKsiDI5EHTsG@b}u(Yy) z#1wPQ@M5HRbkkyN&;c#qLbW#acUkRjz<#Eb3-f%!%OyYZ%IA)Xx{b!!e_kLg*c5%N z8HYo?wvKqT%k6^mO=8~~r0lPDzfOs$70oqUN>=1Q?h+lc(P?{%?7rDPBu?z9{e zsQ@SwZmH4$U}993U_01%W(rutHKy_TvGJ@1OY5>VzX7w^ztg?JflyHXQ~Ry2 z-Zn87>p2i;%=%%r%(LXWB{}3m#X^-3bviqdGcCS>MS20OhK)sol$J_v+B_fcLzI^4 z$4pR$P!K{UQ58YFfH?DojtaA#NqvuN=UrM}EKU!Z`WGZd7l3R)6&{g=o-b{{_V2`{{P0R5pNAyeV{W$atwZp1oW&$>YK!H$w% z9QFQZwi9Mi?+60-_V-tuE@hG4ZKK@zi?9eLT!s5t#a^sq(;mdqx1u)G3ca)`?C?7J zvy$-sv7m!RE7z#6SwyEISl5OIizh(QE2B`G4x_4;Z2;9u@5oQB{oX$44x!a`FS?MW zlERva?HyLdD^;ACdw7U^G=F*y; zeE%z#gV#}PG+3xzCLEB?*3!Cv~`WR@=oKI=1`e(q&l~BzX zNMQYu=K_!KL^~3n>@hJh)m*AD%QCsy`AqQY*o=Iw#UT;)Du;Oy_-pE&ZnIm&+I?;N zG!S&@)ipORo_*cVNe~AVNRa83K(uT?$Dh(&sL-@Qx_frQnl2ddvdk4^(9X0OtG8?{ z)M;@(F$g}eS~&hzCE#JIH#@W5?uLK$h9Cl9T)`?e-R0$jREWxF(k8m{4n@SbI5lxE zQ~27M+vAVkV~pNHdQIGEWzoPgr+~o@OPce=%&wo)L*KAsfz4Uw|l0D6Uyt3``+x3G4RzY=90G>$$ zd)m6-ZKcHaZH?h#rh*a%ct23A+-`YL#{Cz?y4N;pUfYzq;M4uK=o+?e=fC}o6kl!5^U^alS>w3*2ASe>jnt;crS1IDV#DxhY*99XE!Dls&=my^TP;|A>mF?KF8uOFaIMLT z(MUIANg9ZWdTavaGt`#kpp# zG^;($7X){iF+nkTmG-ksx_?Sz)mDE73AYK#^E+)rOnurNBHzBJNQ-Y#X4b8q ziA4c}%fmgdkOEi26S?6%#W3sUZz&Ai-aK9tBJH?!kbPcC{s5aN;ty{mMpx}!y>U9C zeJ5Z!^ty0a9v77)-C>{TDaSCXOWWCYB4^EZb_Z=@4#{AT*AxkcZ>pr<;JI%G;JhpC zAYJXe-wLY&DPs;0a(uMYrl&&Rv+@&j{5mqjW{c-8PrVJd=*5@%8cuO-Se8bk+?jeU zMMa`<^x63D>RrX2fho<2c8fzXq5T-EUqg#@p&=$x+Kb4h;XV5#zu~y7!Qk_n^G1T7 z>!{!G%;nP`!^qn04kPKLzLSkL?@nFomJ0-Mn^*mg(;xEmMV01F6QMW@uX|BE9s@Be zt6ZC;|GgK#RFObhUXb14aq6Rw3>~$9FC`WcjkYF+14TdqdND0LK0(AL#o1Fpx%F#i z`{izgcSUiDrvNSK)OI@7+gPIEdt+O%FacRFV4v_$)dDT==bOteIP|4qRxD5kCE~Dy z;5$)S3;ZOHB7r{kVFAbh$+s}p4{56wovCDsXYPq=(i0Y~2}(3toJ&^t_REIy#i%wi zS!M5ip;@hI?ojH&lqI_i$4(b9*M0Q8CN3svZoSR|%9mWhstY>6&JBJ5XXeq=>XQ4q z{%s$U0Y;)AZXv|~q*sM?m#TzMO=ZdTtnG9lep0*?O#JDrmml^ZSU5{|ydCwH8|Tv( zY|Sml0MMc}3NgPLG$hbW4u?UFRM-2tUR*hZ4{9-$j#rh^SC$`&r&WZ;AfQLlN+np3 zHZ%t&hnAJeBkn4TnW7hZy6BRX!FDz96`ql<3`P>sV^IU6p|P1GP?!WrRhGqDit_b- zP-w?}@rm*~rddkvCuiA}+t|)3^Fcdgf@IJRdL<;L?riG&i-$WTElRXzkYbU5t90o` zx+aB|itl+&ad$z}Iwnq5NT9$&u=?NAtVHNbZMzP~+3GLTzj9{p29L%A`;iER~_H0v;W2;3O({DH=f`|s4P62%rx-ZEC^wA-|td|QL#Opn@ zZbX~xqBB{L^y=oPTATtnOrytLcRdg49K$%qtr#r?A4XzNmsDvwsdggIG*(jeb|E#W>IXn)iD6Fy<16lX)#>$QGfn{1v-(+ z&Lr=;|1e8kmS0k`50nw+F_|FT6eeBiylX#G@04yZF)hHEQe|jadSqQfug!iY#(Bpf*RyM!FHuJtB-bNU9!D|Xr@GSB2pa@A- zIhya}UQs@gkf4WU*&PMtQ|HS~<%mO(?5>qH5c!04kq<9KqJk!_k$M({7vSG=tyL^# z>7o5U2`jts19V&|LveakT8pGN7@bE~r+UbMRA03zt^3gU!=<<#>6kt3TgAg2{4fB^ zA@#z_ z#F+f)zP4StT$8dC-SItd0H9sxW$2xLTXkVl4B*={X#1;+5c^(>`k3ejx^^YRiwQDa z#!U0Goz$ubabKcDNFLa828)@c>H+UvOAdOai(ll|nJv52lg9d+e!&mlmR7Wkh+n<9 zL!FQ(kM>Ys*yT3Kt6Im?rF5yt$zElI*Qq+d=__3Noxt|np7?tckFF-&w?ZWNe|>E- zRkku~=ois@;e1GgBywt~qvAE;e7K^d;f%Zln#<4};;1Fp9rQy z^qI?=7pZ!ktaS?c6%6?r-tVnbl+r5q0(8X{ zUgOe#tFrpERJMb@z0YP!q7hP`@o%EpH4v4~v$ zhDGBV3z~gIS4yPY=RnIMYhczfb4Yx_$#um)iUK11)P%Juz|L3*E;9o)To?H^n50Jl zvuHCN5j|~jN8;OTk_^rm4!_(_S~Dyu*NarH1cw$@6JFEQ7Er5!FQ4mkd-$!c^~7)W6bcF?(u}^X zo0W~bHJ$}pmd@%1yZyBFHBW7YT!@aKLyh1St*5-*KZ!`F|E3W)Kc2RZ>k#uSc%T>t zRz3I|y`3DMZM4x{34-Po&u<-12+1=DyJuKP5=aXn5W3CUb$8rf?O-Hd&#PW0g84QP z?3ry}waqMR-2V~Zhyg`J&*PH6FdaVC9;{wqNl5T z9eB*@ILu?HN`)ZbST?ZYLDXRcT-GSYwfoU4A7V9z50|2}`%D~7>HRBt<-VcBw4Wa| z=91K_`Jw7hoFxHRnoVF)QzqYR`ZnOfOHO7AFp5+yVr+h0X&io&7ZNDn(UM=lh=gUg zh0n!98i6ugk>3`<;Z3Rs9guzyZ=U^UNC;JZaF4RP(YhmXzpXw+@N?N34F8dIu}mIU zG4lSL=5JE-u-%*>1;wMNaWAiX^chutSXR(h$S|UrH3o?9b`f*Kb5JtDPPamH&mi~P zQ73#UENg1m-ZJmbUaCG8FRNIENjn_5XR-Dp)fQ8x9!JkXVHs7NS)x!qleNGe3TOB_ zY(cd~8+VOFLNG;a^5hHaW33g+=y;0$kz*C|Ii`db55Qdj6hvx*e>6(crk3Ns5W5zI zS@e&PJ$riW)hKX2B8ByC+m7U2GT#9GGoknTJE4EBC_eknN$vx92e+W~^G)LhA?L?F zkL8wN;iDJVSm$oD=|X1r?YLhga{l5ecG-l2Ioa7=FCC;kJjr7vrSM!v#X^6agp9)L zNEWgvXDk;5Ax|$wWh4qjeyvbSgi~yZhWQhKY(?G355VV`Gu==m9f|UK;mY>o5e>5A z?46XGV37wx>I=Z6sfz-LabQMJxA92C5n=ZKH=QNqg?9nipKDbz_O!w(;Gmik$uV(K z6KQ?nAFI?qoFTa>O|w*UJ)jRu(0qX+3(~5%B@M@F2g<`bg zp%gW-+tUpi`!wuPDes2>6cSz_g3}>cBl;<0XXmL&;t&*umbN=Y5mg7c|C`M$A;csf zr73hrS7^x8yo32y$gyNUW$B|O=ro-9dgQ#4G=$y}eV^Q=UTqMN?)?I(0S(7~ZkE-F z#~*2x4LLlw{dX|&SICJchfehs7}_Q&uv4B?;PW&z z99z8;bD#3v!WF;xxP_UkpVMqtDO^^~bA#|naCRBP&0g@?V@N4j({(m;P2Wf2HchwN z2mc+?&0xL}yuMuD%csO`z3+0KA3;&xD`Cf~6VI3cMdU~Ff;J!haofjdlHN%W! ztTUMvA!Qcm&O}pXg9ut?Hp>^TT`*ga8;|-KvEr>n;(kU=`+6X}<#V@S*GytzL?10*Wgd_ zzj}X8&=#c|2*I#0=|A<{=d$&vnQZn1EUW^JMlM_h{+rAF{tz4m{ifeG+&1Kg%|TKM zO60lyP%WCmRO11;bT|k-lZZuPp_TAYmohw8gUmY|IP`4B>RVm`PNOOC)|RC%!UF(A zkYs+l*H$c9>P~%7i)>+n(x793Rc~R9nN$Y@?^IVTwyCih5zsQF&0srTiX+aguKC^j z_f`Z`pzS+t5K{CmR!0mG!F$lk!_o%TNiILfn&S+CnPMQ-m2zHt&h#IewGPk6w^mMd zyZ=@|4qvnV)timWGSW_o>MFgaChe>GJbe0;X<6O1&f6MoWt#{JZADZ^gZEo*;AbgA zOHG%RMzpH*M1Y*hC%6J`b)K&m)|=amVss?l>aGDbu%(rs7&Wltn2BV&WI`NOVw4M- zw&52m;oBlfpuOv-AobP852DOtQINg3{svm)|?tzGVGMgCJ~^E;6|rjokeI5C8MmuE~4p>T|&; zVFje@ZsG=31%;Gt$`Wb7a*7WN?KckYO4^80?jH}oVPJ_O@vQ+c;|ZKuvN2mdY7yna zGkryYq?0Uhb?vQAgVBG0Y}$5O@4s*9&z1$$9Iwe0EP`p4e_6fN%-xGlme2hvu0h>X z(S&9A1jI<0Yl+h;Cos_D?24~4fp8I^*mr(W5YAV`!S~A#nA2^xD_GMDw?h&=w*hF} zV-WF%EI56T;QPb8tAMlPgB&S4LL1bUFXEr!GI7yb=uihd`{x|DM8Zt2j3Jm}ldKkP zLE~$)7WW{ykH>e^2MEi*D}B?qb5>XsD9|YiyL~3xU5Mz^=+>wooRl<8f%T zwI_j0G%$X6dmsqXdx$2jilsl!*ANHrY#Ck8Xa&t4f35MJ)LGFLw5!c6etwLFN zYc~FvddJ-}BCYa~ly~p9=VX(r_LH05q{mLTt^YXoWszeZwV!KplCI15)6UnIXzXf{ zC7svb{^&dF?q>;DvfSM|?kXHg{p(EEzBT;a#9_@s(sJ<2C{`4nOh@#(uO>U92`i(= zZ@@FJhrZLeze$W{YeJLtLvw63FY!W> zuJge9aLhUXNmmYnR7b+D^`PxqA+y9%TFl_ZbWvys{Fah_1h4$8uDv|^q4Oz+!+afR z{BrbBozJ#~aW-RU@G9=d%jntYr@YM$n?WY9B{jI^IK_>WF!}y1@{QV;0TrC`xR!fV zHl9M1pDcA#5YJqQgx40S*A#XgTUFZe*}81Qq&l5+CuG39G$zWd76|DiaY<>Sqj>~|riv;6OQ;@}9THU3oUgepC4H=Trvl?vh_Vk%MZAHLe{;zWE4 z*6}=d0yHV^w=2#@$_tt?HKgUPQ50>95Yvht&h6kL9$9XZWA?;yoP#Nq+5}rJCM_oK zhxy9gMXrs%I#(zNimT!%%hYVJOu4bw6<(l#R#88J>D=GdkRM(i&sL6z4I2hLy4VQ% za9NyJu8UuCIyD=`Z@Z;9ZM5aQ`(g}tG)>aYgj6hPSIKSKUP2kz(@@-t36Kb%Ck;U} zGI2Y?wmV#!I;ClKtnPHX$s6B-k2Pu)7d)#~QtPbAi6T$+GQaP+62?v-LZh>xO_