From f50a440e15a697e58097eee2b74b261e5f71223c Mon Sep 17 00:00:00 2001 From: Yoan Salambashev Date: Fri, 7 Apr 2023 11:49:16 +0300 Subject: [PATCH 1/7] vdk-meta-jobs: add dag with args example Signed-off-by: Yoan Salambashev --- examples/dag-with-args-example/README.md | 635 ++++++++++++++++++ .../dag-with-args-example/dag-job/config.ini | 13 + .../dag-with-args-example/dag-job/dag_job.py | 66 ++ .../dag-job/requirements.txt | 0 examples/dag-with-args-example/images/dag.png | Bin 0 -> 20328 bytes .../ingest-job1/01_drop_table.sql | 1 + .../ingest-job1/10_insert_data.py | 45 ++ .../ingest-job1/config.ini | 14 + .../ingest-job1/data.json | 1 + .../ingest-job1/requirements.txt | 1 + .../ingest-job2/01_drop_table.sql | 1 + .../ingest-job2/10_insert_data.py | 45 ++ .../ingest-job2/config.ini | 14 + .../ingest-job2/data.json | 1 + .../ingest-job2/requirements.txt | 1 + .../read-job1/10_read.py | 18 + .../read-job1/config.ini | 14 + .../read-job1/requirements.txt | 1 + .../read-job2/10_read.py | 20 + .../read-job2/config.ini | 14 + .../read-job2/requirements.txt | 1 + .../read-job3/10_read.py | 18 + .../read-job3/20_drop_table_one.sql | 1 + .../read-job3/30_drop_table_two.sql | 1 + .../read-job3/config.ini | 14 + .../read-job3/requirements.txt | 1 + 26 files changed, 941 insertions(+) create mode 100644 examples/dag-with-args-example/README.md create mode 100644 examples/dag-with-args-example/dag-job/config.ini create mode 100644 examples/dag-with-args-example/dag-job/dag_job.py create mode 100644 examples/dag-with-args-example/dag-job/requirements.txt create mode 100644 examples/dag-with-args-example/images/dag.png create mode 100644 examples/dag-with-args-example/ingest-job1/01_drop_table.sql create mode 100644 examples/dag-with-args-example/ingest-job1/10_insert_data.py create mode 100644 examples/dag-with-args-example/ingest-job1/config.ini create mode 100644 examples/dag-with-args-example/ingest-job1/data.json create mode 100644 examples/dag-with-args-example/ingest-job1/requirements.txt create mode 100644 examples/dag-with-args-example/ingest-job2/01_drop_table.sql create mode 100644 examples/dag-with-args-example/ingest-job2/10_insert_data.py create mode 100644 examples/dag-with-args-example/ingest-job2/config.ini create mode 100644 examples/dag-with-args-example/ingest-job2/data.json create mode 100644 examples/dag-with-args-example/ingest-job2/requirements.txt create mode 100644 examples/dag-with-args-example/read-job1/10_read.py create mode 100644 examples/dag-with-args-example/read-job1/config.ini create mode 100644 examples/dag-with-args-example/read-job1/requirements.txt create mode 100644 examples/dag-with-args-example/read-job2/10_read.py create mode 100644 examples/dag-with-args-example/read-job2/config.ini create mode 100644 examples/dag-with-args-example/read-job2/requirements.txt create mode 100644 examples/dag-with-args-example/read-job3/10_read.py create mode 100644 examples/dag-with-args-example/read-job3/20_drop_table_one.sql create mode 100644 examples/dag-with-args-example/read-job3/30_drop_table_two.sql create mode 100644 examples/dag-with-args-example/read-job3/config.ini create mode 100644 examples/dag-with-args-example/read-job3/requirements.txt diff --git a/examples/dag-with-args-example/README.md b/examples/dag-with-args-example/README.md new file mode 100644 index 0000000000..61a339f7d3 --- /dev/null +++ b/examples/dag-with-args-example/README.md @@ -0,0 +1,635 @@ +Overview +-------- +Meta Jobs allow VDK users to schedule jobs in a directed acyclic graph. +This means that jobs can be configured to run only when a set of previous jobs have finished successfully. + +In this example we will use the Versatile Data Kit to develop four Data Jobs - two of these jobs will read data +from separate json files, and will subsequently insert the data into Trino tables. The third job will read the data +inserted by the previous two jobs, and will print the data to the terminal. The fourth Data Job will be a Meta Job +which will manage the other three and ensure that the third job runs only when the previous two finish successfully. + +The Meta Job uses a separate job input object separate from the one usually used for job +operations in VDK Data Jobs and must be imported. + +The graph for our Meta Job will look like this: +![DAG graph](images/dag.png) + +Before you continue, make sure you are familiar with the +[Getting Started](https://github.com/vmware/versatile-data-kit/wiki/Getting-Started) section of the wiki. + +Code +---- + +The relevant Data Job code is available +[here](https://github.com/vmware/versatile-data-kit/tree/main/examples). + +You can follow along and run this Meta Job on your machine; +alternatively, you can use the available code as a template and extend it to +make a Meta Job that fits your use case more closely. + +Data +-------- +We will use two json files which store some data about fictional people: their +names, city and country, where they live, and their phone numbers. + +Requirements +------------ + +To run this example, you need + +* Versatile Data Kit +* Trino DB +* `vdk-trino` - VDK plugin for a connection to a Trino database +* `vdk-dags` - VDK plugin for DAG functionality + +Configuration +------------- +If you have not done so already, you can install Versatile Data Kit and the +plugins required for this example by running the following commands from a terminal: +```console +pip install quickstart-vdk +pip install vdk-dags +``` +Note that Versatile Data Kit requires Python 3.7+. See the +[Installation page](https://github.com/vmware/versatile-data-kit/wiki/Installation#install-sdk) for more details. +Also, make sure to install quickstart-vdk in a separate Python virtual environment. + +This example also requires Trino DB installed. +See the Trino [Official Documentation](https://trino.io/) for more details about installation. + +Please note that this example requires deploying Data Jobs in a Kubernetes +environment, which means that you would also need to install +the **VDK Control Service.** + +Prerequisites: + +* Install [helm](https://helm.sh/docs/intro/install) +* Install [docker](https://docs.docker.com/get-docker) +* Install [kind](https://kind.sigs.k8s.io/docs/user/quick-start/#installation) (version 0.11.1 or later) + +Then run: +```console +vdk server --install +``` + +The last part is to export the local Control Service REST API URL: +```console +export VDK_CONTROL_SERVICE_REST_API_URL=locahost:8092 +``` + +After starting vdk-server, you now have a local kubernetes cluster and Versatile +Data Kit Control Service installation. This means that you can now deploy Data +Jobs but first we have to create them which is our next step. + +Data Jobs +-------- + +Our three Data Jobs have the following structure: + +``` +ingest-job1/ +├── 01_drop_table.sql +├── 10_insert_data.py +├── config.ini +├── data.json +├── requirements.txt +``` + +
+ 01_drop_table.sql + +```sql +drop table if exists memory.default.test_dag_one +``` +
+ +
+ 10_insert_data.py + +```py +import json +import pathlib + +from vdk.api.job_input import IJobInput + + +def run(job_input: IJobInput): + data_job_dir = pathlib.Path(job_input.get_job_directory()) + data_file = data_job_dir / "data.json" + + db_catalog = job_input.get_arguments().get("db_catalog") + db_schema = job_input.get_arguments().get("db_schema") + db_table = job_input.get_arguments().get("db_table") + + if data_file.exists(): + with open(data_file) as f: + data = json.load(f) + + rows = [tuple(i.values()) for i in data] + insert_query = f""" + INSERT INTO {db_catalog}.{db_schema}.{db_table} VALUES + """ + ", ".join( + str(i) for i in rows + ) + + create_query = f""" + CREATE TABLE IF NOT EXISTS {db_catalog}.{db_schema}.{db_table} + ( + id varchar, + first_name varchar, + last_name varchar, + city varchar, + country varchar, + phone varchar + ) + """ + + job_input.execute_query(create_query) + job_input.execute_query(insert_query) + + print("Success! The data was send trino.") + else: + print("No data File Available! Exiting job execution!") +``` +
+
+ config.ini + +```ini +; Supported format: https://docs.python.org/3/library/configparser.html#supported-ini-file-structure + +; This is the only file required to deploy a Data Job. +; Read more to understand what each option means: + +; Information about the owner of the Data Job +[owner] + +; Team is a way to group Data Jobs that belonged to the same team. +team = my-team + +; Configuration related to running data jobs +[job] +db_default_type = TRINO +``` +
+
+ data.json + +```json +[{"id":"18","FirstName":"Michelle","LastName":"Brooks","City":"New York","Country":"USA","Phone":"+1 (212) 221-3546"},{"id":"19","FirstName":"Tim","LastName":"Goyer","City":"Cupertino","Country":"USA","Phone":"+1 (408) 996-1010"},{"id":"20","FirstName":"Dan","LastName":"Miller","City":"Mountain View","Country":"USA","Phone":"+ 1(650) 644 - 3358"},{"id":"21","FirstName":"Kathy","LastName":"Chase","City":"Reno","Country":"USA","Phone":"+1 (775) 223-7665"},{"id":"22","FirstName":"Heather","LastName":"Leacock","City":"Orlando","Country":"USA","Phone":"+1 (407) 999-7788"},{"id":"23","FirstName":"John","LastName":"Gordon","City":"Boston","Country":"USA","Phone":"+1 (617) 522-1333"},{"id":"24","FirstName":"Frank","LastName":"Ralston","City":"Chicago","Country":"USA","Phone":"+1 (312) 332-3232"},{"id":"25","FirstName":"Victor","LastName":"Stevens","City":"Madison","Country":"USA","Phone":"+1 (608) 257-0597"},{"id":"26","FirstName":"Richard","LastName":"Cunningham","City":"Fort Worth","Country":"USA","Phone":"+1 (817) 924-7272"},{"id":"27","FirstName":"Patrick","LastName":"Gray","City":"Tucson","Country":"USA","Phone":"+1 (520) 622-4200"},{"id":"28","FirstName":"Julia","LastName":"Barnett","City":"Salt Lake City","Country":"USA","Phone":"+1 (801) 531-7272"},{"id":"29","FirstName":"Robert","LastName":"Brown","City":"Toronto","Country":"Canada","Phone":"+1 (416) 363-8888"},{"id":"30","FirstName":"Edward","LastName":"Francis","City":"Ottawa","Country":"Canada","Phone":"+1 (613) 234-3322"}] +``` +
+ +
+ requirements.txt + +```text +vdk-trino +``` +
+ +``` +ingest-job2/ +├── 01_drop_table.sql +├── 10_insert_data.py +├── config.ini +├── data.json +├── requirements.txt +``` + +
+ 01_drop_table.sql + +```sql +drop table if exists memory.default.test_dag_two +``` +
+ +
+ 10_insert_data.py + +```py +import json +import pathlib + +from vdk.api.job_input import IJobInput + + +def run(job_input: IJobInput): + data_job_dir = pathlib.Path(job_input.get_job_directory()) + data_file = data_job_dir / "data.json" + + db_catalog = job_input.get_arguments().get("db_catalog") + db_schema = job_input.get_arguments().get("db_schema") + db_table = job_input.get_arguments().get("db_table") + + if data_file.exists(): + with open(data_file) as f: + data = json.load(f) + + rows = [tuple(i.values()) for i in data] + insert_query = f""" + INSERT INTO {db_catalog}.{db_schema}.{db_table} VALUES + """ + ", ".join( + str(i) for i in rows + ) + + create_query = f""" + CREATE TABLE IF NOT EXISTS {db_catalog}.{db_schema}.{db_table} + ( + id varchar, + first_name varchar, + last_name varchar, + city varchar, + country varchar, + phone varchar + ) + """ + + job_input.execute_query(create_query) + job_input.execute_query(insert_query) + + print("Success! The data was send trino.") + else: + print("No data File Available! Exiting job execution!") +``` +
+
+ config.ini + +```ini +; Supported format: https://docs.python.org/3/library/configparser.html#supported-ini-file-structure + +; This is the only file required to deploy a Data Job. +; Read more to understand what each option means: + +; Information about the owner of the Data Job +[owner] + +; Team is a way to group Data Jobs that belonged to the same team. +team = my-team + +; Configuration related to running data jobs +[job] +db_default_type = TRINO +``` +
+
+ data.json + +```json +[{"id": 31, "FirstName": "Martha", "LastName": "Silk", "City": "Halifax", "Country": "Canada", "Phone": "+1 (902) 450-0450"}, {"id": 32, "FirstName": "Aaron", "LastName": "Mitchell", "City": "Winnipeg", "Country": "Canada", "Phone": "+1 (204) 452-6452"}, {"id": 33, "FirstName": "Ellie", "LastName": "Sullivan", "City": "Yellowknife", "Country": "Canada", "Phone": "+1 (867) 920-2233"}, {"id": 34, "FirstName": "Jo\u00e3o", "LastName": "Fernandes", "City": "Lisbon", "Country": "Portugal", "Phone": "+351 (213) 466-111"}, {"id": 35, "FirstName": "Madalena", "LastName": "Sampaio", "City": "Porto", "Country": "Portugal", "Phone": "+351 (225) 022-448"}, {"id": 36, "FirstName": "Hannah", "LastName": "Schneider", "City": "Berlin", "Country": "Germany", "Phone": "+49 030 26550280"}, {"id": 37, "FirstName": "Fynn", "LastName": "Zimmermann", "City": "Frankfurt", "Country": "Germany", "Phone": "+49 069 40598889"}, {"id": 38, "FirstName": "Niklas", "LastName": "Schr\u00f6der", "City": "Berlin", "Country": "Germany", "Phone": "+49 030 2141444"}, {"id": 39, "FirstName": "Camille", "LastName": "Bernard", "City": "Paris", "Country": "France", "Phone": "+33 01 49 70 65 65"}, {"id": 40, "FirstName": "Dominique", "LastName": "Lefebvre", "City": "Paris", "Country": "France", "Phone": "+33 01 47 42 71 71"}, {"id": 41, "FirstName": "Marc", "LastName": "Dubois", "City": "Lyon", "Country": "France", "Phone": "+33 04 78 30 30 30"}, {"id": 42, "FirstName": "Wyatt", "LastName": "Girard", "City": "Bordeaux", "Country": "France", "Phone": "+33 05 56 96 96 96"}, {"id": 43, "FirstName": "Isabelle", "LastName": "Mercier", "City": "Dijon", "Country": "France", "Phone": "+33 03 80 73 66 99"}, {"id": 44, "FirstName": "Terhi", "LastName": "H\u00e4m\u00e4l\u00e4inen", "City": "Helsinki", "Country": "Finland", "Phone": "+358 09 870 2000"}, {"id": 45, "FirstName": "Ladislav", "LastName": "Kov\u00e1cs", "City": "Budapest", "Country": "Hungary", "Phone": "+123 123 456"}, {"id": 46, "FirstName": "Hugh", "LastName": "OReilly", "City": "Dublin", "Country": "Ireland", "Phone": "+353 01 6792424"}] +``` +
+ +
+ requirements.txt + +```text +vdk-trino +``` +
+ +``` +read-job1/ +├── 10_transform.py +├── 20_drop_table_one.sql +├── 30_drop_table_two.sql +├── config.ini +├── requirements.txt +``` + +
+ 10_read.py + +```py +from vdk.api.job_input import IJobInput + + +def run(job_input: IJobInput): + db_catalog = job_input.get_arguments().get("db_catalog") + db_schema = job_input.get_arguments().get("db_schema") + db_tables = job_input.get_arguments().get("db_tables") + + job1_data = job_input.execute_query(f"SELECT * FROM {db_catalog}.{db_schema}.{db_tables[0]} WHERE Country = 'USA'") + job2_data = job_input.execute_query(f"SELECT * FROM {db_catalog}.{db_schema}.{db_tables[1]} WHERE Country = 'USA'") + + print(f"Job 1 Data ===> {job1_data} \n\n\n Job 2 Data ===> {job2_data}") +``` +
+ +
+ config.ini + +```ini +; Supported format: https://docs.python.org/3/library/configparser.html#supported-ini-file-structure + +; This is the only file required to deploy a Data Job. +; Read more to understand what each option means: + +; Information about the owner of the Data Job +[owner] + +; Team is a way to group Data Jobs that belonged to the same team. +team = my-team + +; Configuration related to running data jobs +[job] +db_default_type = TRINO +``` +
+ +
+ requirements.txt + +```text +vdk-trino +``` +
+ +``` +read-job2/ +├── 10_transform.py +├── config.ini +├── requirements.txt +``` + +
+ 10_read.py + +```py +from vdk.api.job_input import IJobInput + + +def run(job_input: IJobInput): + db_catalog = job_input.get_arguments().get("db_catalog") + db_schema = job_input.get_arguments().get("db_schema") + db_tables = job_input.get_arguments().get("db_tables") + + job1_data = job_input.execute_query(f"SELECT * FROM {db_catalog}.{db_schema}.{db_tables[0]} " + f"WHERE Country = 'Canada'") + job2_data = job_input.execute_query(f"SELECT * FROM {db_catalog}.{db_schema}.{db_tables[1]} " + f"WHERE Country = 'Canada'") + + print(f"Job 1 Data ===> {job1_data} \n\n\n Job 2 Data ===> {job2_data}") +``` +
+ +
+ config.ini + +```ini +; Supported format: https://docs.python.org/3/library/configparser.html#supported-ini-file-structure + +; This is the only file required to deploy a Data Job. +; Read more to understand what each option means: + +; Information about the owner of the Data Job +[owner] + +; Team is a way to group Data Jobs that belonged to the same team. +team = my-team + +; Configuration related to running data jobs +[job] +db_default_type = TRINO +``` +
+ +
+ requirements.txt + +```text +vdk-trino +``` +
+ +``` +read-job3/ +├── 10_transform.py +├── 20_drop_table_one.sql +├── 30_drop_table_two.sql +├── config.ini +├── requirements.txt +``` + +
+ 10_read.py + +```py +from vdk.api.job_input import IJobInput + + +def run(job_input: IJobInput): + db_catalog = job_input.get_arguments().get("db_catalog") + db_schema = job_input.get_arguments().get("db_schema") + db_tables = job_input.get_arguments().get("db_tables") + + job1_data = job_input.execute_query( + f"SELECT * FROM {db_catalog}.{db_schema}.{db_tables[0]} WHERE Country NOT IN ('USA', 'Canada')" + ) + job2_data = job_input.execute_query( + f"SELECT * FROM {db_catalog}.{db_schema}.{db_tables[1]} WHERE Country NOT IN ('USA', 'Canada')" + ) + + print(f"Job 1 Data ===> {job1_data} \n\n\n Job 2 Data ===> {job2_data}") +``` +
+ +
+ 20_drop_table_one.sql + +```sql +drop table if exists memory.default.test_dag_one +``` +
+ +
+ 30_drop_table_two.sql + +```sql +drop table if exists memory.default.test_dag_two +``` +
+ +
+ config.ini + +```ini +; Supported format: https://docs.python.org/3/library/configparser.html#supported-ini-file-structure + +; This is the only file required to deploy a Data Job. +; Read more to understand what each option means: + +; Information about the owner of the Data Job +[owner] + +; Team is a way to group Data Jobs that belonged to the same team. +team = my-team + +; Configuration related to running data jobs +[job] +db_default_type = TRINO +``` +
+ +
+ requirements.txt + +```text +vdk-trino +``` +
+ + +``` +dag-job/ +├── dag_job.py +├── config.ini +├── requirements.txt +``` + +
+ dag_job.py + +```python +from vdk.plugin.meta_jobs.meta_job_runner import MetaJobInput + + +JOBS_RUN_ORDER = [ + { + "job_name": "ingest-job1", + "team_name": "my-team", + "fail_meta_job_on_error": True, + "arguments": {"db_table": "test_dag_one", "db_schema": "default", "db_catalog": "memory"}, + "depends_on": [], + }, + { + "job_name": "ingest-job2", + "team_name": "my-team", + "fail_meta_job_on_error": True, + "arguments": {"db_table": "test_dag_two", "db_schema": "default", "db_catalog": "memory"}, + "depends_on": [], + }, + { + "job_name": "read-job1", + "team_name": "my-team", + "fail_meta_job_on_error": True, + "arguments": {"db_tables": ["test_dag_one", "test_dag_two"], "db_schema": "default", "db_catalog": "memory"}, + "depends_on": ["ingest-job1", "ingest-job2"], + }, + { + "job_name": "read-job2", + "team_name": "my-team", + "fail_meta_job_on_error": True, + "arguments": {"db_tables": ["test_dag_one", "test_dag_two"], "db_schema": "default", "db_catalog": "memory"}, + "depends_on": ["ingest-job1", "ingest-job2"], + }, + { + "job_name": "read-job3", + "team_name": "my-team", + "fail_meta_job_on_error": True, + "arguments": {"db_tables": ["test_dag_one", "test_dag_two"], "db_schema": "default", "db_catalog": "memory"}, + "depends_on": ["ingest-job1", "ingest-job2"], + }, +] + +def run(job_input): + MetaJobInput().run_meta_job(JOBS_RUN_ORDER) + +``` +
+ +Note that the `run_meta_job` method belongs to the `MetaJobInput` object which must be imported +and instantiated separately from the default `IJobInput` object which is passed to the `run` function by default. + +
+ config.ini + +```ini +; Supported format: https://docs.python.org/3/library/configparser.html#supported-ini-file-structure + +; This is the only file required to deploy a Data Job. +; Read more to understand what each option means: + +; Information about the owner of the Data Job +[owner] + +; Team is a way to group Data Jobs that belonged to the same team. +team = my-team + +[vdk] +meta_jobs_max_concurrent_running_jobs = 2 +``` +
+ +Setting [meta_jobs_max_concurrent_running_jobs](https://github.com/vmware/versatile-data-kit/blob/main/projects/vdk-plugins/vdk-meta-jobs/src/vdk/plugin/meta_jobs/meta_configuration.py#L87) +to 2 would mean that the execution of the DAG will be in the following order: + * ingest_job1, ingest_job2 + * read_job1, read_job2 + * read_job3 (as soon as any of the previous Data Jobs finishes successfully) + +
+ requirements.txt + +```text +vdk-meta-jobs +``` +
+ +Note that the VDK Meta Job does not require the `vdk-trino` dependency. +Component jobs are responsible for their own dependencies, and the DAG Job only handles their triggering. + +Execution +--------- +To do so, open a terminal, navigate to the parent directory of the data job +folders that you have created, and type the following commands one by one: + +```console +vdk create -n ingest-job1 -t my-team --no-template && \ +vdk deploy -n ingest-job1 -t my-team -p ingest-job1 -r "dag-example" +``` + +```console +vdk create -n ingest-job2 -t my-team --no-template && \ +vdk deploy -n ingest-job2 -t my-team -p ingest-job2 -r "dag-example" +``` + +```console +vdk create -n read-job1 -t my-team --no-template && \ +vdk deploy -n read-job1 -t my-team -p read-job1 -r "dag-example" +``` + +```console +vdk create -n read-job2 -t my-team --no-template && \ +vdk deploy -n read-job2 -t my-team -p read-job2 -r "dag-example" +``` + +```console +vdk create -n read-job3 -t my-team --no-template && \ +vdk deploy -n read-job3 -t my-team -p read-job3 -r "dag-example" +``` + +```console +vdk create -n dag-job -t my-team --no-template && \ +vdk deploy -n dag-job -t my-team -p dag-job -r "dag-example" +``` + +You can now run your DAG Job through the Execution API by using one of the following commands*: +```console +vdk execute --start -n dag-job -t my-team +vdk run dag-job +``` + +[//]: # (The log after a successful execution should look similar to this:) +[//]: # (![Success log](images/dag_success.png)) + +Alternatively, if you would like your DAG Job to run on a set schedule, you can configure +its cron schedule in its config.ini file as you would with any other Data Job. + +*You could also execute Meta Jobs in Jupyter Notebook. + +What's next +----------- + +You can find a list of all Versatile Data Kit examples [here](https://github.com/vmware/versatile-data-kit/wiki/Examples). diff --git a/examples/dag-with-args-example/dag-job/config.ini b/examples/dag-with-args-example/dag-job/config.ini new file mode 100644 index 0000000000..d169d107b6 --- /dev/null +++ b/examples/dag-with-args-example/dag-job/config.ini @@ -0,0 +1,13 @@ +; Supported format: https://docs.python.org/3/library/configparser.html#supported-ini-file-structure + +; This is the only file required to deploy a Data Job. +; Read more to understand what each option means: + +; Information about the owner of the Data Job +[owner] + +; Team is a way to group Data Jobs that belonged to the same team. +team = my-team + +[vdk] +meta_jobs_max_concurrent_running_jobs = 2 diff --git a/examples/dag-with-args-example/dag-job/dag_job.py b/examples/dag-with-args-example/dag-job/dag_job.py new file mode 100644 index 0000000000..64908c7645 --- /dev/null +++ b/examples/dag-with-args-example/dag-job/dag_job.py @@ -0,0 +1,66 @@ +# Copyright 2021-2023 VMware, Inc. +# SPDX-License-Identifier: Apache-2.0 +from vdk.plugin.meta_jobs.meta_job_runner import MetaJobInput + + +JOBS_RUN_ORDER = [ + { + "job_name": "ingest-job1", + "team_name": "my-team", + "fail_meta_job_on_error": True, + "arguments": { + "db_table": "test_dag_one", + "db_schema": "default", + "db_catalog": "memory", + }, + "depends_on": [], + }, + { + "job_name": "ingest-job2", + "team_name": "my-team", + "fail_meta_job_on_error": True, + "arguments": { + "db_table": "test_dag_two", + "db_schema": "default", + "db_catalog": "memory", + }, + "depends_on": [], + }, + { + "job_name": "read-job1", + "team_name": "my-team", + "fail_meta_job_on_error": True, + "arguments": { + "db_tables": ["test_dag_one", "test_dag_two"], + "db_schema": "default", + "db_catalog": "memory", + }, + "depends_on": ["ingest-job1", "ingest-job2"], + }, + { + "job_name": "read-job2", + "team_name": "my-team", + "fail_meta_job_on_error": True, + "arguments": { + "db_tables": ["test_dag_one", "test_dag_two"], + "db_schema": "default", + "db_catalog": "memory", + }, + "depends_on": ["ingest-job1", "ingest-job2"], + }, + { + "job_name": "read-job3", + "team_name": "my-team", + "fail_meta_job_on_error": True, + "arguments": { + "db_tables": ["test_dag_one", "test_dag_two"], + "db_schema": "default", + "db_catalog": "memory", + }, + "depends_on": ["ingest-job1", "ingest-job2"], + }, +] + + +def run(job_input): + MetaJobInput().run_meta_job(JOBS_RUN_ORDER) diff --git a/examples/dag-with-args-example/dag-job/requirements.txt b/examples/dag-with-args-example/dag-job/requirements.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/examples/dag-with-args-example/images/dag.png b/examples/dag-with-args-example/images/dag.png new file mode 100644 index 0000000000000000000000000000000000000000..80ead847a2001f2f083c72b74e153f3ac970e3b2 GIT binary patch literal 20328 zcmb@t1ymf(w)Z_a0fGdF5Zrxm32uYCI}9*5gA*))1b4R}83;~-BshfNLBc>ta0$U( zg2UT+o^#GU_x;XY>#lcwYe7#-b#+yBRrUVw->w*KP34C;R5&0I=pjT!K^Fur~?1vtQ5p&(`f`M>v=!F*00-agC%3d~@z zqAS$S2kzkx>;mWAJnUf(FsS|C*T8&W0d77)Za!gsenDmdSuo$94VXt5EM)q3dK*Wm z`#&-g;^6}_VAHU%gSq>7csnr*$N|R?cOR%L@C%#Kqgsb}M01BdSN>hcg0m4j2(sGo`J5~3h*GXk+F_~zR2Gd_JhK`VL)sB)pq}S`k%Xf0zILBpSFkk z!R&ydfSCmpfkwB7**L;&+<+wRHb4pgx>FlyIBx#GvxNPlwMAqVL>1k@e5S$<+HeCk ze=9FNpauVAB4X-lYb)gKuLJ>3C@GjQgXKJBWi?e*Jbhh+h4nm*;D%mCes+AmP(=ej zId=_bO)VWDp#$91A8KOc;U%PR>md**r{w^16crUx0m~~m*_f)@+4%%00c|c9ps42T z3U*U+@-TIG_4N>OhH9%hYO49@X^5!V8#pNiD7tyM8~G{80(pAK8G&8BL?H4iF6ssj za>{ZBE;fOF?&^yCPU@~6!a)kIwmv>!sIn2igQlH^uC2TyRLIlG*9HzeN7q0@M_69K z-b6S^R32ue8f2*~}0z7?OY`i^To>1>U?V=>?0W}cR3zFB;GxBw^G4kctuy=P0RCn|6k^}mLoQYy! zpti6cL{8t=##K+$Q_#`POO9aYqfj9m2%WSxZgR8>8-pnCG6K}ujZy+A|v09|)2sE>i0 zt`=XQGK61M*+tRLSTo9)4`(}nZ*N&UC1XApLt9f*KXr)1->=9N%I^+UFbR;?Ru-_A_fRo3 z5fGHqRkHPTGgKAw(ANZ>Aq!XWk+XLOS`y;x3sn=*b~XuAgQ$DMeH2|CHMEp$6+HAI z3jBTwHvX>0{(L6teCpoX-m+q@flzNHen&ogWjQfmB2bbQanv@k<9AoG_fYoHQSi6% z*3f{ODEPQK>FbFaI{TQY*?>hn-Q>It;lP6e`CQc?PJ;Y$rogySaux7|3;6p4nRqFK z!2zyLN_uXhK8^-~u1X35qR#xj>V__IZbCkKc7jF@vci6FF+o>1C!n3h#AFrKZNNf8 z-kP?~`Z~anJjesKs9UBvE zU|yDkd&>m{@bk<1^4a>S3u+6Cc*}{1dVzHV1q2SypjOe zMM2m`MF6-Hrtb}G!2!TV%L~ZTQBlk(z+Kw}4pnh*bT)S2S5?*hGYdLE1MUA50Qi%& z(X#dP|1(Sd`2%KOrGL&}e@$k<@jpHy0*c0itj8b_9SEWzs~=#wXMq)vuyNg)rotdQ zDqLPRrJ51_D7H|i*r~*Uy-Be*cDC5z5r3Ta&m{%t0~*;q8cw+p=P7)8MIA8H-S?AU z!2^)|wEU-?C+**V$sH$dv=ko9Z`{5<>J(n?$L2##m7@zVI~acFz3Jew@%2u_A!ue~ zB>pBJ;#_N<14=7=r{T~x=1l|S-KSE|1*q~QGdH!|td7QwK!*7m* zRd>DCLC4=O3)H$7$0oMD_>DkF0o|j6DtjiWYl&MW-5WDA>ba$XAl^fx^eo7%dCdTv zAC-!Z&&%upsfmwqp2ej*_U&_1u>f%c=5h|ih++4{Ke0XNVt2jZJB+u3 zt85n4aw6mK(R|;6xPd$@R7dyykcCf*6~#O6ds0&Ygnf zkS{6Kk(svqnQ27YFF=c~d|Tvc`!*pUk7VS7JU z@(L|zkPU6i$D*_;JxttB=jxRVBW1MHm*#%IMlnRZ_pNB%8j;le)WDP0@IhBT9AfHB zHd;%N*4ViBW!3}*RUL^G2LCUPq)vV(r3 zD_({SFmcn^ZA?W%Oj|!dM-k7vu|Tt^6nNbaWl(ZV>p&xDe6JR0kbHs%h*CG@X-!k? z=w9{C&1ujFP&67L8zYQi^RoUv0%B^~zfk~GX=v7j2URR4uqr-3rpO9)6J#AT@{69; zNf+ob@PyjLwcUMfEav^s*c6!0+oMgqzFC9bpp20De_iFxK|Hj3?46SVbSdQSMV=TcCbNU$ zLa7om@4Kt)3IlC-RcY2VitxlD zS8}NvHt3)?L=EYXR>(u%<`5l9TqB;TtDLLAK~YzWkEB_&mPqHsoHR$9t&&nve+jb0 z#Ke}dl+$G*26C=XnN1`+7@Dm4NM{X$h-}0e4y%^KOKd`Zy~@YGz8n>W)@_uo2{X*sOyf=0Qd&NcZ1_6bzd-=QFxD8(Zu&dz5i~bbn?o09p zNtG0jD8hphc82;?F9cB3LM>kC4QMiM$vzqmHpTSa{@#E1;ImG%icMe_>yQ>9*a0Vz zM)FljUtEcD*M4+%mjb6h)+p)MXVJm#SXfvJ?ue=5UG87LI6Y;fpPw&atsS4!?8cQX zYW$*6Onu#Hoh#G%z0O>@L&=w4_|!3-)5>r$>1H}Zst&y^*l%;O3@fd%sR4b*!v}pN zGy9<;vg_qbMptKw;Y?m!EM+XgQ|D;%@xq_0EowjB`9Iaw)0?P;JezOz!cFLc#dGW% zyn}sXc^=I;9recjbL$JIH3Cb)XZ)rg++$Kp)mD#RsuhLPrTCt{rx|oCB*>x6aXRre zn{N(93qiXou`Wg}I=g>%NlPW~msNav}u6g#f zk4{v7bcRaQnzz4r$L#$}fjd=j^p|ua?Xko!<%@P~oBiAO*V^Tt#ph3ySYU6$qyl9* z6}uUtXTCC7bU65OEw!rC={YxEGnJU$g?-@YV0NcrDuDnR zY2N!7Kg+#|T5q!zx93zHlmQ`I%)vRX()Ah_IVwmrWxVciBDBcDy_xq|@*z?5e4>O4 zSANjc54ta`n=~TAIc&@5mT@Pe5qFhWc#mTxwkBlXOf1yRJ(G)W(`FE3b#zRwGyGw( zKg+vYM%q9>ND5z0is%{Fv+U|$m^=5pS@z;GzN>nNOa6V@uIRc zA2EqU@|9y1aF@0c*$6u!>CCVUn7Bh9a9MV+&1LJLDKQ3l3$E_xqqRU3QVoM8R3H$= z(R!hYRy&u-vAiCpnmfkfr?8R17^7xF1L^OJjcHn_ zqIe$nM)A<%gv6XyWmdAVZk?X`+)S~4A+N2x{n4f-9430Er-)o*Eu;Zsx%k(}Hc@?B z)6=98A?0K=w6WT?OuuSQ&qolvmJUx+4P`nwR~)K*;UOMuA)3}`NGtKA7ke!+-2P7o zC`iliJ-hPTjw6n;gO6I%m7HB#aY||i#dkQK52C%aZOv6d#)XD`*Jc-Za&K^O zrQEPlCd^Y)k1V{0ojIse2&3rr$bBs%4iRw_nkWoj?}v$!duFCJZsrzCQF?%vEz88) z=K}5ed$!b(Bf|0FuL+B=34ZZS(#9?FSM_`*lza5E zb7+h$bL`4yDPzyLf`3%W{pEax_vUn~1ZENy`n}DaIx^@g{8(^0CVVYsMqgr!^m;w z4sx+po9)`75)wAUv~0ZSn=!2MY0m%J;J*VaB%5z*jqt)=Z76sgCTpZ!FVmJ+T^DJ)nfG4 z2EDFqsrZHDi7mx8GdI0r3F_?LKch6eU;e;7wwmB+yypw^*;-J%m>G@C%a*diOnf5B zaZ{*L;}Kq$O#GD9R=D%%Qt9II*9GU{!79P9SD8{R`mtkM*cJ~uMUz`g#!EdJ?|?3% zW}iEYp@2f!5JJA7canL(vWlz-TMqqw4!&CqIu$ELKJ`9QU%^#y&Ehpz8dxt#j}`Nt zzzd%HZRTc>oMe|eO)2-fI}+QNo1Z!sA@rWPwDzfba5w=@SU7?7mG+jbLgR_1mRj0@ zWX7mg+uXJP{u`O%7i@;@v^kBlJdlUP{)v1D|=B>4( zOf{S@Bo`^L`S>?pfYW@)M19t=E+Z>aTx@^+CN0-5P33>B6;b<%$xS;T5KcpAZEHv@ z$+E>&#Do&(sD<(kU$Hu|qz_Y`dQHi=q%ODMRnjEKBrfiH3NAH3gq&Yv&AKIr1 zi^Odjy#_LIGwS{p%Of;Dulj7;pY-+UCbqenWJFi$YAwcx{PUIxa-+^7m626$mQ^vz zQxW0@d?nk|X%tCZ3Jz8n+$){OusF}L#bJz$P9&}z^IyjA%Lf*;>LboSAm4e^k*y3) zi$5_^%l_R2&i?pGFeTBPR$`R_x#)msrRL8b?5&PT@!3(Mt_+gZ34J#A40BVMI7!$H zy*;%k4he{GZyEn9t+EW2GbkVZtwjV2i45?zVmORkcOMnGoI&#l1BsO5B)mp~>D z!zOOX?A{8bXc5~SE1L!NF5f{wzLzIej)+lLaTb_>Ks0^t#0x}BcAvhOI9K81FFYHH z(e)dmZXD19(57Wo7|JQiyBLV603COYNLpj5i8^lJHzpX+>)r_=lM7KUP>b?xhHi;e zMKn;@Gr$$9hP7 zV>Jrq{`4QLZV#rBvi*;lMtiH#GL;^yZuxPd%wv9)7-;n|7{mr8ZEoZjKozPe0@?W` z;vlnw-PF%ogp@;NRR)&YIL!x#r5x<2WgE`eR8-J!CBm26U%?CHEwN4Z5BkKhSYTh8 zicM1qsAkcyzW2srQ5>02Iu|?CYubhVq z_BV?>4?|sY_LI%GW236-$aNde2naA!@HzSB82ltaNfd zi9cBsnEBfv?p3O1TB!D|TJs9PEf0KtubDia@h9nwxL%IviQOo3sZ)xme7K_X1??nj zY|=UPgT`#J%qLXimI8cHy#=seXUhX;)6-nBE6(U=bE8EGUnB;eKM$+ z9%H>_6c;5yMf}cOQn+>=yNf=Q?S$Qe%0|rXZ=t~Q`}INu5*mrt>*L-vW*(keYW}s@ z1*>LVHwr=fG#Gs;F~sZV)x%3FySMS5l0w*ir~BKbj!`qB{pNED{~8WInR18>S7NG( zng2^$By2aVpImjYxacgkuM40Nq&*FjNoT^X|bP)B2lBkoDGT zX^%_bZQTx|y(XU&$7M?U0q|MO7I)`Z)f_0UR5m!>T_Vmi@_6L;Cbn~CE^MiPH+d#n zOpaU|)YMrS)4eRyoavo0o^dRWv6ETzc_l;{-Ae3o=;=<7?R=xxi@I#8p)>y;4W>m6 z1!M%1euW`MqGn>x!PV_r6s881lYMnIBR}BED-Kp46&K<^-6&klWBjep)l)VmzdK|s zTl>oLA;0sn3JH&{@uCsa)>Xo`&DnuVa&Bs@!{R6(3lkv*E-A^??e(rz`^EXo!*%$2 zFXgH0_c(|tV_XhG01I0KwM~%RAP$lAL^PK3$jFQN4*Yv>zHW;3Hl!i38GaNSuA8-J z;R%?(Uqui67PH@bwjQ2D#SpBVLG?Zn>`0H$YNZv@!Rcv!W5nkQK6-ld4Ez4>x~^-Y z@{@m0*U-7MV-`UbqY>^;zruND0@J&t`6WJ&S;@w&DNG^Br-y5WZ-2apVTE40k#V$6 zV32_@Hd1MsahWuaFYtdWrj#f~F5T8aLIS0IN7d?S7N03>N^v@o(M(0pb)_#w3N@IDb`*Zmegpp!RWYpUzzTUP@f+ws``?n(XdhQ*g zMn0ulWm&HbzjT^vEIw>V?k21@X%(i15d1BvdNL!-w6{*U>Y2j=HayyjJY=kH1pT59 z8`gbIm%oM8d7kQ$!E_lvVm0O0lF2tq=wskVojzd*&e@BdVPCq8vtlE$XR-xe;b4NA z_C}a*WT6HnHAgVL+mANOA7`AxEU<<QTFvo~;ao2jCOPc44*78rPIza`GXZ z<~B?6{%E(dxf#7kbA>H2n=P$1D8S|CJ`@O4HXPq zEJE#v#b2U~KR&Aoj=u2Yb6S%*rCpS!h7`7VQH^2L?~^|bJY~8HK8Rztq3@x7QOm?F zQF+P*>XRntI!_T&8xoUo%5+G1r5(f!3ra9zDx3M#@ZMgQY3wcpQ*%tSXYA^-YrJ7E zcu0BSC@&G7dbe>T?POe&vdmF#v2^k@-9j}Z{W|<$sUwM!*b%$U(0L7i>suG=72ZA? z7FLw2oi`&49<#gHX;!Kz&1R0Rx1j}e?mk}1AiW|H%=a-tAxnGD)N{pjG?B0hShQ59 z{Gt{f333j#LugYKxns9(3!jU=TAR+gt$0x6ijQPLy;q}3YMf{yM2oaQc`S0Z-Cndt z^pz7bC-KA1_mo4-Neq(v!t!)D^!N%waz)3<_rYb(J$_R}P7~>YTq?R^ed4q}iRaC@ zUJeB@bn6Xh*+DN<&7(WQ-wpB!-cGBzr5d^rF&F6XAzX~g(FSf3XFB5*j9xA!cT#{^ zzF06`A;y;yB04%c4ja7Rjuo5j>}N~5AfHu)1o`+U>sd0n9eK#ks!~?xK zgJL$_nJNRpu9f50xZ)Bf-_gI;gI1=Mo%pM(W^g@?QSksZ!KE1CLaC8sRPiee>BC^wH0NL(cHZr>2PY5xcxW6$o7VRl} zWwVu8dRVP?b6LBUg2<>i;|I+`IaAL$nR{>5jpmv7UO(EaK;6pZ8r4MQc#pFlEAyJ^ z_P9^YJid)>P;1MRFw!Z-(#xnE{4s0o8skjTYSV(S@T<_GSr%L&VOZ+?;sq9h_0 z>f6Pi;5GXYY|^+hPnN!(8E}tMBBK1pt3in_3#Dn_EvUOnkyyXZgr=gR!ni9qV)=vi z%_G9+(qZe8p|0NyHm^fI;c$K-Phh?Zwdj-XIJ6}`B2jRr`{D4 zp2W{bQRv?Zgi;VLQ?>NVf4pO;SQsV2rN=*loN!&;8tP?!@BfHv^WT4td{mJgZO-1b z9ay4W`~uFUzg1+%kE`fL3dvKsNqn@bIY}mu`*;9F4p%UjIWC_SV%6zMNt5TVTk-R# zY9KOQSXHc{q2bH^elpa%cTqC#M)UHe*rsnNa&SlvgC^yW;AvQQALRBnEnmueUe?oJUmE^kouQc+V%R0bK#dTB_@r87x5)e5I=iJaSyi~3x}^`W_ZLf zN_i=Q<_2rFRFK1EwY9wlw%pGlIE2WB2>qgxX_`n=X>-YBqGbAHRtPmtMZ5@Q4}S2M zS#FB+$pHHA#_Ae+=4tT!LaD&mRpwaEr&BSyhvh0SU%ZM{6nK?tmY;t@2jet28FdYQps?UTCr z&K7N3xH1Y{ON-mbTP*EpK&xBZ&{9~fEU`vDZWTV56+D09coW-KMGiA>avE`*z-FpZ zFPKM7dk^*>q6B3=%3cE%^V6DIa#Euz0kVXMt(8wDHz&?vdG5nfZU^kq0dt8-jmH{1 z^%?Y*c4w{jvA2G=0#gkh4$g;PBW(QVf66m@RQv&)6R(L}>nxhzWF5LMGCr~`U$s;` z95R(tgFr}Qy~;`1O^pwEH%118MV^jCBQj*)P-K$`sEsi54WY<+Kg+JsfAS`+F=N#g z+%%ex$XKz(e-4SmCp@N!V!3XHweu}`mGj#psjZ(g)o}6U2!zcg|9#zUCG(7OeXfW5 zizQ}?Au3aiyLG)x;*FadY8n|eU4C%pr?jyWA)z~(&AMn@O`k$D%k2ZQ^Rm4AbBTCws9IaFFHHz&>x3u0dOX2?) z=%`QBU2{0X&TnZsH&{)JB(>`xzYu_!wTpQh$@uBBTl6$TRx2y3UIRYkTG(68SMI16 z@}Deh`ITFAlfU+l@h`r8RfpClIu(LG(nZ@M<=3l-=onS;bxaiwd$z^2G7>#uEY6dQ zuSkVYr~7sYA!Lk4_#0iuF^O&6lN!udVMG$)e-WkcSs^uin}%sJzy?plLp}0ODr04` z$OfuFnZ{wHu)a@+T2gQ-*-EFp%2D;k(h^0kFBURkAm_Nl@mi-u!&;YSMsQocbF-DS zeL{jN^5FRz`8iPV(wM$~Bj~urVL{UR=_ny-Bx!njD|Lx&JzjYA z8*1-HfO>q~dx};)5NlY*9uk^^UfRMt9NEfm*P!ivm0zv=b1M^$#7kDs>7`~>$hZ>;eMg%C0SguOqqkayPL^( z*A56P8|K~uGwWkIKs#Fw>taX@t55@a#ohodnju+GIqG3}b&fi_QdHkCGpVfx=2ugt zsRs@Wt+lqBkLad+-P{H?$g&Ys2V|f@1I0GyRBl3aQtNx}L&F*_hl4AX z(MLQDFeG1_RN+ka_^w15WFy!2J8Ifs`MPrB>$*>-J_0iJrqPXw+>h_4QZ&B>Hg3m{PDH_RN=7s?hAAiEsE0l@i#%OP1c^#jF2V{JP+Yj^0HE*_z? zoAMta+z|a-9Z6=x(maw05#zFqwd-O+Yzb-S->b9O`d$L!3yxN?6U zo}_9}PQg+ywxmgvY>bar7@Hq$tNN#TjwaTv(0GV zd8|GU#xOQsy{nW*-gn#(G;vPJ0_eyIS@K}9Jum{Wf>$BO#CT7hQryX3!m`xF(Nt~`xe zIjhNf9FZsD{^@Nefw^kSvP^!crXhgGzU4|TYD3o^)9IhgAU8CF=C1aByn~~?*g*ez zj*%kTyg{g|r+XwnPRr*yuPs{weAsO7PA^5<5BT;MI$3v_qR=smEbYX{2 z9cS})zn=bY$~D0DOf9hB#XH!Er}a5X%S{N@bxDQ4UZ8Rc;w^9XD`s2KH#kljIC#Q~8cD5`qU+qDI_FdUz7{iR>x z(oPy83>R1V#}r>Ww-p(FBEHk+H$vXm(gS_oS?_EPf)Hh8B^GJFn|*(hQH4!X7|d5$ zPgZK65-C>`C@;M7#n>98ZFl-@+vvLRh*>SG_ZM!K42mqn&ZeD2^0*W&SO7e+zVo5k z>lX70^HlMZ9EQwJ8g;SGM~`_P!YXj#Y4?7Fr_(rn;{g)?kI32E z`S^3Vj}zMrY@|8G0GTvj`!INrPP=llxo>M7wkt)#Q5`V-O(LQ_^o*)W>O>*K*#N!$ z6o>#gd(JQ}i@o_KJ|7rWl4=0B*%qp@yPSri=IFjzU?uu?d~cSxMeJzZbNXO&Dq^2z z@XF$|bAooQoLKc-hv5Y!QCV7=-iLy<{~Zt$|9=Kz2F?}icJlAV;X)2k_b=9Ka$Rgj z&!hMtI~Yo@6<&q&{OO2O$NXS)ND@9(!hR?T&fsFN1zSpfT7$r#k(wJ|CHJ_S@>9RC zyd=2s(!K~B-ud4A?D|O}tz;s`moQSlmDSpixs{r7?VQ9>%>BjII5MlI^fVt+Q!30e zihNG6LiWR4!NF-|Qb?Q?YMc@8u&~2a_(b&LN$r1QWr*W{u(CrPj-&sK z${++!RsiqWu|-+)j-<~Dos`d|_NE%bs!3l+45H_`|5nPR)6-yYV9}!f@^eKYM=Fc- z3S-LmIM=r4B~t^XYfK@BHz>jS$BcnpysCzz!ILXHo2Nhg z6N0yI#jkO@%--2PmpQ$1Zcm#gPnAq!Ks`-VXWe|N_fr@c6WbTN6fY3oscCGsOPV2G ztDfq$mjeooQui(|2OvrB&v%~$7J2^dDl5xJkl)s0|M8Mp@Jpjl z^hp}s*L+y0!^4AOGUWpUz1d8+fNRJ}Cu;vQ#_au%CmOk72}X66KMyTczp15N+rmDo zwoS(fuyof{QUm@f-ed_O{&FR$MTe%`2kfE6Cvq#hyOHeDQ8@b~@+m$J4lJ`Gdvx}p zfbu8$#hF2_i~rFh`b7z?B@+z3pk6@Bfi9~!!*-u@T=Yl2tT&lq%OaoLJ=Jbkc<*Ys zhit>m&nK-zOpR@-BWG9o-w4XfypM0k56`GaCB4eaOT^wxLww$NY3J@lL2}zG*7qj8 zIz8HMj z_2yaEzMK-S5W{XxoFk4E-IUXl;TXej@Xy-B9oYyW*|_WN7od!kB&dDXdtpP6bNn9dtfqerI?)p!xh&{E2pZM&__Zh9Q@t0PSaCv#}i z(=-yyi8(*k$&_+r;3akylUt_>3-(Mu?WzP7OMMxvp|$}5Ns~aoto8U(QIj*e%3YJy zarGo!)sbZ~3*ys=R+Cny%;D*D4D2%b7JzQI_DItWqrR`oEUoc~ z|KlmC?*l^T%C=$;#_#%1>`vcKK8w!YB1k!P2ZezK39QLLt$jkoGLE1g<{))sKVRI| zH1J|*erGn3itt16eRz-TFX^R6yLGWg_VLx>l_ zb#Q(fxacLt(5FNaGFuy7MQY*P+>-ITQPRzL)%D+Ttg?NvhJXXmB$p#i@%d89B_26< zWpgSq$%^nYAF&9*tNH1ggjnq>ZZ4(XXpjRJtOb_wzlW};yDYt|nyBFDTj~SHY z>F)L?P9qVx0f7SJg{E=nGKWMHCp}HUx=#1*>I!d)1iiv(B zL%AG9Nq0Aw->_oWMWR+WzQ5{<86B6oN>#aGd2-N@{UR(-$Qzq*o!M?|iMlo3e1Swv zf z7VbRuQT*Ec^IL^CFeYj>;yZJ3Qa>PoSDyXLP>ILzl2S-flX&IqTNdZ5vzLgK4V|}t z@a3T&-xiLlN|0o@WxbkhLk2~jzVK4x+Q zJWIY@%w>a37}}IFkHcH)Z=h+2!3svfa~pK{pP0?n@u+yjR&6^e$Q^Z)kv_v)E#*z> zg$C#YS~eYhfe9(+Ux_da8(g^Q+|O|LrKLk1HX0fUgp-g9b>Ls78uSLJEX>s3QBA2Ekq?wYpf>`n|N6q zFj2`~T?C5EK$4+FuS>opQpt5c zA&Lk+{RrIJY$xm(pdwtcpya+E&=5?;P(%b-Y6--8n^^F|NR1aTaMVASBEE-AZjS=d zC~TeXcTI-Fif;2LSjx`?Jro`9))p;qu2F}Q(sU5UL?qmXf_3}HOVrT_cE!XB#b@-pZ*3TO`UGQW?LQXd~--Mk3~yz zC&ODWQa(%gq)C!5Y)i6c-DM6zgG0g#sOen4Uf^47RR@mdi8DPF5yV?L>6xfdR@V2aihgsQw0hXd zh}v@R73BZA&6!4JR-YZ7i&oJ^WUf>z%@xS<^v|PQ>euH!df3>#*{!~;HaY%7Y%2r` z=~YbiD7}9hMIp8xb~jaX{=uuk7ulce-i64MIPl~?_m~UKtD>Mv^+CfRf5oo1=JV1p z>j=mfH%QX(0J~ff$=PEBw9x0{z5z|jzt}CY!+&SD&7r@Ahbx5RLqA$Sqvg z`0ccj5D~>=?CDoLEbe^{WH@IZf+KpiU;0hgZQ zAxIV8AQ3xDu+4sLuH;T(9%%TGNc(@lx9~35|IKdcra$*a9bVN}99HiClijWy^c*N@ zP{jZSZ)Dj0?e`_8Z{ho7FAsA){i8_fV%uoA~ifTF)s?4slZGR%0 zdjc3>S763R2LkUz9vwXGu4Jy#uG6uItiv^8N3M$9M_o>C*d1*v28Ir?(ZkeKQ}n)b zz1kjtuDz1W+%TX!CWecb>oG z1f5m;9A#9jv8TB#@)8hOezcMD&+u)&eBv%Y4J4aMm2N-zXz^8~h&Pl;sisjJ{X9)2YLt8s0a53OU*B%}!A&182@d$td*HpU^)r{Bbcy$j zm&HFM?MxQlwcy>o^8WDb8U>>b=RgsvmZ{S zd>MR*&ZSlL1T~0xYfi+2aeel|k6#VMh6GeJk-lH1f6nh2i;9bv_(w_gBnq#O6CdNn z6`1+i+TZKIQ^!U|6q=AGIgHZ3FLgBke*nIyF|iuK5)^`Px+{W%!UV+lUurYm9WP%p z=ut@Ld0+ZF!j*@z?{CkKrB7Yw)B@~gf}G+^Jy7c3sP^SUudXYDk}%J8Wx~GTRLgx6|@(Y?ifa#A+Ie zvr^0|Ry1lpSVCqOKRu~>V>IMD3_(7fJL}0IcJ%xw|7F4aq)>R8cPdhT7lW01DfoFl zTFiMx9z9_D0#=P@6@&YpoREz2RoRj*{Y;yKy1()sj_-2z68~Hl(U!*5^~0?=db|30 zp%SgDn+4Gyb91=T68_tdTbuS1hZ7O-B=hEYDro40{s>AOD1oeU%}i9JV?pJpSPn%rxDHpkD?y*ow>6Aq>!c&(b_6GtT~6b>%F*~zI=m*&sR%s~D9 z2kXUbJzgt@zP;&rd@3#tTeJUKn-#qg^;+6`_5#*3mgU!NE75+=*Z+_v30RG=CjI7a zZM<}uUZ`vA_D}HnMzp1RKivLXLCZlQGQCNX?}*16Z?#^R1jMYW68M&oNOI^F7ZuwY zye?iN+bEUG&Hd%f?pqTb0avUa`<0jvt(sx|5iFc&u=KZDh;%4hn0aq z-Q`Vh%9c;`ANDc+AXWx#9~;7(?R;4qdVQ&rVU?Rfbbm5H7gVPbW$(t110bC7Y6j96%w z?zfH#XzJmWxe|}f&sz+u}Ium}-p>`f3vHZUCh;R>t_)rV0}s_L~|iE+^w(k@-)H*t;h? z*$vq&G z?wu-GWC^+gTVq?%ydXj}Dy9mr@TuuVq6<+?ylb2M#x=aaFUhlAP;(F7VK4m%@d zuR7)(d$Wqf&dH;wal&mc$`*RFd=9V%YFOH~|h32GMhSs!n>TFz6`x@v#j<-PXpv!lpCyXLbkp%!0zh9L)mKQYyR zgXOCq=Jrsr(@2@)xa(+0bSD7X7u$BMPX+y-ObTY~RX-&G%ZYv$_y6j{!T5IEOEHVe z-MzHIoqN@x<)6ZTt2sNK=~VF*DNa_U?tC3vw`SjMoX$()W$?DsFyS>O~4P zu8O>;gegl29i4Xg=DXA&!OmGJCwcEEpDqNEDFzdhspL{!H=f47d+_$l)+D%?tunLB z+=V|RsrK1hx}QV>>67UU6&#FR*vsH>+TL;Qfpm2k%jX*I{`57b(FvQ+&)uqX3>2dh znmRLg2u&vUbKx~Z59{T>1R_M$O(+9#!lOXLsXh4x%!&<;TTBj)Ll9H_41hC#+1y?; zF^yJAchQI}7;BlH;VLs$dV*pt0fnMmkaa((^?sN9)=Z7RVr=DUYFSIOEksR0gHOF6 zmYF!Z^h>H6RAMK|-u^bMRh^~yy}r_&5U8~-m8w8v?+X(*Juat?A~QtI%x!v1j87+eeZl|AF#l-W(`$yzh$QQa=tw6 zP}bGuBd{o+y5j~#J-&TCNv#a5$piz5q#gpx2%Bn1guK&QWH-&xhB1q!r;}Y4WY*U& zp2$E!b)c^`2UE5$N^Z8n5Va$(aU@_Jw0_8_cR0P`b%?CaO7YE4CpG+2IuxQ(64Q2pDku?P-Q+?6`Y9 zOm4-m?A|ZQ%K*ced(Om6qgKe#U*&r8ul1a!Z~PXZZ95|1dP{C!!auH1o4AqRcO| z9rEFtJ#SBBJM~nS(iCa|!rMse{U^_?rf0M$!%bxczF{-9xqjatWa0ra5X@%09y2+J zlm6&uD#Xu`I9t!C?IT0R9vJ{j#1yJ3cm>iLuZ+F4U<}&Y&#Ue1YYF3qn=+{&9+nLl zFXMtib(tiZUuz3QeNaDoEGlhS7BuB9tB;tNcLb1HT;E`uNz9pVsAy>P{ftUV$;o+; zh2-({nK~HVRY#iUBx6BHo<9fobTTsTu&I63`|m*e;r+OLzs*i-P4mrRs-gEtz9g<1 zId@;n-20Z)TC0sv(a_}W^2H{ejyCJw-jyIm7XZww4@NL0f_|B%Es4voW12w6uE3Bk zkAm_93D3P_q4<1JInK!nHRR|{qfAYmb8+PWdBD*P^M{(HS7rc!4s(*md!pgxyZ{iN zeTri|q+(HmtD}YPhX&y<<}P}vr+@46Q|#z@gb)OU4SNE zs1;#M#4~()A!btP(;Jk}{SQe;)Ft`>+4l3W^K-NR^^?jV{l4UG(3Fe0)*S`Yf5X`j zx|)B%Yz4_~f`HT;bb7n80{7Zs?P zEi<-utx$`sDJSB9ImgsLB=yw8W(7Ns>Q()(FFl_oP=G~Ot9>UM%>nz507*xHliK8h zvC9;qiN^$G+6lq|0<+hb1#{6ZO7o>0B0%fYnf_80az8Z<6+8 zq^^SpM+O!0>gHDa&!{)4zmfyt+Mt^Ir7!ni%VF{fAxJ^@Te#{J%7_0o#BTiu#9jyg z4YAc7pZ%X!&NLkAy$|CvgA9|5hLC+5gUAxH%viECmKMhnBJ06H82hnBwiuFq9kL#$ zs4#>QiKb#OvLDNlm^hL(BaP?pp*NoExvq0v=e+#C{J;2pf4}d2-=Evnry+T&O@X!k zw%dmULXmuAe&i)2fcI=l;zyeF7^x<1xbqZKDJQNEH!96u!T&$r>D-;?4+23e_j>{U z1=KU@?>gHqKRfiLqIniIjz@PyQ-_-#gg0;duTpnq?Fuu7+P<}Mb;sg6nB%ni--&gI z*KqTMo|Mrq$<*DMLh?HDp-0By;%IgEb1mNj!}=c1%4J?8zZv75dr;9BH4^ElT9eDB zQ=7&R#m^Z@SldzlJk=)YqI<}H1}{&X@X?QZ%M}}X#NH;ML58toB`lN4UuvsGJywk! z05xK)8-H5<^guxwNALna$y7AGVRk~t$VmE^?3z2n0=8lSQ=Bv>z>ao&Juk4mv>3=g z8UatG3B*k=WMU`!pcxH~BtQn85rAZR%G&E{HxCD3NFvT)7ijtvkU*7gu?WA+w6cSV zc~EA-EL5>LAQKrK!vyyiKh`EtAN0CGW^Y5u3Z7S_9>iMT8Ktvs*{k5{g|alP?Y<9V zUcC>SbOlBKb1;+=L9$*>PPbs14%lw-t(fiSdo?0x%2gC|-+AQ7uCu63@g5OEbN@=16l3RWj>oR&Gv$jdUTl$m82jq_SK0yhO2zQ%~Z zWyVOd(q8$Lr>L6PfvZWuQW{_tlhj43#mf`c)?pd+V?$c2A$Q$dBS+Z$sy@v95Nq>N zH%7oZb#R%F7+1kL0-os##L*}bnchO22l-P8WkTdd}H%sg=0pL*?iZa&uLto)id zUYl?*F;OXZN%?iU)M1~Z0t{9?-2VK0e7x&AVu3TwY`&Yl=oTP<%)KbJa|fteh}zZG zJYU41WKa75gJIkrqI#3<3m2|*L9eG<6%&vn=c`6%-EG~5(J1dpS=w~3uV*LYKxK`x zO?AGk?k84MAvxq1GQ2BFzp+CM*t6a0cTaA>M7imypTD=jcxB%wK6aBMNQFmV5#vWq z+@@Q4m3QW*X#;}1x$SCw3IL$O@R}@QB`Oee_yrA5Tw>CvF!mwAn({IX)&`-53S4%a zWe^$qtMe|#{8u=Tn;0CVFs54$xd(^sks~-!=J2khrG!xuac!fxDiKq=^Sg2S@>oXI z_UPt^>wRM(v{?y3Eu;9Qs$!Q1a-5r?^cDY(oSV*`$pG{;Gxt|H3qEwqHJywQ{oD@a zVFV|kIIMpvx%!8-XO^e8bh-*uTHVCR#VGbNSlei#Z1Tx9iR#V1x z?_C?{w?yR2REy|0R&^JO$tXGjs}5sRU%w3rdQVb*g8Rn$+{G$)hXxFLB2!3&fiNr@ z!WyR#KxMeM*}*@fDPe^I;qpj)0PV_|dE2z(BCEC~y|ivhnr`y_mLj%b9P$h!_5}km zPcW%X3sZbS%=I)K3BT&vWd;Jz$^#EDE#1RTi!o?Fm_u*aJj_&M$qz*RBaItGecCjQ zMFZ%b3eKLQgk6Y(?-4lU(ZFysja+&Jex~t^M_6c63h6P(M@l;hnAs=o2n8Jd><|mU zwJrPz9+fe{RxI2A5}IhA6{)Y0R5yJ>mlxpKsPO&tSa|=`RzgZNO6thRd#9$Z2rHo8 zJ_3qJ0*VFqU((si8OI<9a6n0Y0thZODADY}8np(*MZdoimt}L78H_n740*^1-ohGB z^dJ5O)BcJ(LHfsEKe|<>fhro-2BI9-ppw}WV0%nT39RlNSA9rjJ!K$(!%EY!x6 z22N-1L&)@z0(QN#9ePb3(xI_?LHen=&__C!p)1`FHk_!>&5`&b>>OI;)63&Xk4PjB z7-sO_?i`h%)K!dfxWMQ~$By_Ok(Qao#N>-%1@{)oKs!on9nvyM+kK3 z8J+*u4_DYb0yGEX{7^(eSdmM-faU>K#BjzVE^YVjjZCf+L8@HM$N)#0l kG4HPJ;d@c@*EjaSo`ocvaHrxXAifB~>R-~U)pdyZ56{Fm1ONa4 literal 0 HcmV?d00001 diff --git a/examples/dag-with-args-example/ingest-job1/01_drop_table.sql b/examples/dag-with-args-example/ingest-job1/01_drop_table.sql new file mode 100644 index 0000000000..39fe6b08e9 --- /dev/null +++ b/examples/dag-with-args-example/ingest-job1/01_drop_table.sql @@ -0,0 +1 @@ +drop table if exists memory.default.test_dag_one diff --git a/examples/dag-with-args-example/ingest-job1/10_insert_data.py b/examples/dag-with-args-example/ingest-job1/10_insert_data.py new file mode 100644 index 0000000000..a1f5d9c0ab --- /dev/null +++ b/examples/dag-with-args-example/ingest-job1/10_insert_data.py @@ -0,0 +1,45 @@ +# Copyright 2021-2023 VMware, Inc. +# SPDX-License-Identifier: Apache-2.0 +import json +import pathlib + +from vdk.api.job_input import IJobInput + + +def run(job_input: IJobInput): + data_job_dir = pathlib.Path(job_input.get_job_directory()) + data_file = data_job_dir / "data.json" + + db_catalog = job_input.get_arguments().get("db_catalog") + db_schema = job_input.get_arguments().get("db_schema") + db_table = job_input.get_arguments().get("db_table") + + if data_file.exists(): + with open(data_file) as f: + data = json.load(f) + + rows = [tuple(i.values()) for i in data] + insert_query = f""" + INSERT INTO {db_catalog}.{db_schema}.{db_table} VALUES + """ + ", ".join( + str(i) for i in rows + ) + + create_query = f""" + CREATE TABLE IF NOT EXISTS {db_catalog}.{db_schema}.{db_table} + ( + id varchar, + first_name varchar, + last_name varchar, + city varchar, + country varchar, + phone varchar + ) + """ + + job_input.execute_query(create_query) + job_input.execute_query(insert_query) + + print("Success! The data was send trino.") + else: + print("No data File Available! Exiting job execution!") diff --git a/examples/dag-with-args-example/ingest-job1/config.ini b/examples/dag-with-args-example/ingest-job1/config.ini new file mode 100644 index 0000000000..1eb7654326 --- /dev/null +++ b/examples/dag-with-args-example/ingest-job1/config.ini @@ -0,0 +1,14 @@ +; Supported format: https://docs.python.org/3/library/configparser.html#supported-ini-file-structure + +; This is the only file required to deploy a Data Job. +; Read more to understand what each option means: + +; Information about the owner of the Data Job +[owner] + +; Team is a way to group Data Jobs that belonged to the same team. +team = my-team + +; Configuration related to running data jobs +[job] +db_default_type = TRINO diff --git a/examples/dag-with-args-example/ingest-job1/data.json b/examples/dag-with-args-example/ingest-job1/data.json new file mode 100644 index 0000000000..6f3ea3f148 --- /dev/null +++ b/examples/dag-with-args-example/ingest-job1/data.json @@ -0,0 +1 @@ +[{"id":"18","FirstName":"Michelle","LastName":"Brooks","City":"New York","Country":"USA","Phone":"+1 (212) 221-3546"},{"id":"19","FirstName":"Tim","LastName":"Goyer","City":"Cupertino","Country":"USA","Phone":"+1 (408) 996-1010"},{"id":"20","FirstName":"Dan","LastName":"Miller","City":"Mountain View","Country":"USA","Phone":"+ 1(650) 644 - 3358"},{"id":"21","FirstName":"Kathy","LastName":"Chase","City":"Reno","Country":"USA","Phone":"+1 (775) 223-7665"},{"id":"22","FirstName":"Heather","LastName":"Leacock","City":"Orlando","Country":"USA","Phone":"+1 (407) 999-7788"},{"id":"23","FirstName":"John","LastName":"Gordon","City":"Boston","Country":"USA","Phone":"+1 (617) 522-1333"},{"id":"24","FirstName":"Frank","LastName":"Ralston","City":"Chicago","Country":"USA","Phone":"+1 (312) 332-3232"},{"id":"25","FirstName":"Victor","LastName":"Stevens","City":"Madison","Country":"USA","Phone":"+1 (608) 257-0597"},{"id":"26","FirstName":"Richard","LastName":"Cunningham","City":"Fort Worth","Country":"USA","Phone":"+1 (817) 924-7272"},{"id":"27","FirstName":"Patrick","LastName":"Gray","City":"Tucson","Country":"USA","Phone":"+1 (520) 622-4200"},{"id":"28","FirstName":"Julia","LastName":"Barnett","City":"Salt Lake City","Country":"USA","Phone":"+1 (801) 531-7272"},{"id":"29","FirstName":"Robert","LastName":"Brown","City":"Toronto","Country":"Canada","Phone":"+1 (416) 363-8888"},{"id":"30","FirstName":"Edward","LastName":"Francis","City":"Ottawa","Country":"Canada","Phone":"+1 (613) 234-3322"}] diff --git a/examples/dag-with-args-example/ingest-job1/requirements.txt b/examples/dag-with-args-example/ingest-job1/requirements.txt new file mode 100644 index 0000000000..3ef066f752 --- /dev/null +++ b/examples/dag-with-args-example/ingest-job1/requirements.txt @@ -0,0 +1 @@ +vdk-trino diff --git a/examples/dag-with-args-example/ingest-job2/01_drop_table.sql b/examples/dag-with-args-example/ingest-job2/01_drop_table.sql new file mode 100644 index 0000000000..71bb65b0e5 --- /dev/null +++ b/examples/dag-with-args-example/ingest-job2/01_drop_table.sql @@ -0,0 +1 @@ +drop table if exists memory.default.test_dag_two diff --git a/examples/dag-with-args-example/ingest-job2/10_insert_data.py b/examples/dag-with-args-example/ingest-job2/10_insert_data.py new file mode 100644 index 0000000000..a1f5d9c0ab --- /dev/null +++ b/examples/dag-with-args-example/ingest-job2/10_insert_data.py @@ -0,0 +1,45 @@ +# Copyright 2021-2023 VMware, Inc. +# SPDX-License-Identifier: Apache-2.0 +import json +import pathlib + +from vdk.api.job_input import IJobInput + + +def run(job_input: IJobInput): + data_job_dir = pathlib.Path(job_input.get_job_directory()) + data_file = data_job_dir / "data.json" + + db_catalog = job_input.get_arguments().get("db_catalog") + db_schema = job_input.get_arguments().get("db_schema") + db_table = job_input.get_arguments().get("db_table") + + if data_file.exists(): + with open(data_file) as f: + data = json.load(f) + + rows = [tuple(i.values()) for i in data] + insert_query = f""" + INSERT INTO {db_catalog}.{db_schema}.{db_table} VALUES + """ + ", ".join( + str(i) for i in rows + ) + + create_query = f""" + CREATE TABLE IF NOT EXISTS {db_catalog}.{db_schema}.{db_table} + ( + id varchar, + first_name varchar, + last_name varchar, + city varchar, + country varchar, + phone varchar + ) + """ + + job_input.execute_query(create_query) + job_input.execute_query(insert_query) + + print("Success! The data was send trino.") + else: + print("No data File Available! Exiting job execution!") diff --git a/examples/dag-with-args-example/ingest-job2/config.ini b/examples/dag-with-args-example/ingest-job2/config.ini new file mode 100644 index 0000000000..1eb7654326 --- /dev/null +++ b/examples/dag-with-args-example/ingest-job2/config.ini @@ -0,0 +1,14 @@ +; Supported format: https://docs.python.org/3/library/configparser.html#supported-ini-file-structure + +; This is the only file required to deploy a Data Job. +; Read more to understand what each option means: + +; Information about the owner of the Data Job +[owner] + +; Team is a way to group Data Jobs that belonged to the same team. +team = my-team + +; Configuration related to running data jobs +[job] +db_default_type = TRINO diff --git a/examples/dag-with-args-example/ingest-job2/data.json b/examples/dag-with-args-example/ingest-job2/data.json new file mode 100644 index 0000000000..467ff2fc81 --- /dev/null +++ b/examples/dag-with-args-example/ingest-job2/data.json @@ -0,0 +1 @@ +[{"id": 31, "FirstName": "Martha", "LastName": "Silk", "City": "Halifax", "Country": "Canada", "Phone": "+1 (902) 450-0450"}, {"id": 32, "FirstName": "Aaron", "LastName": "Mitchell", "City": "Winnipeg", "Country": "Canada", "Phone": "+1 (204) 452-6452"}, {"id": 33, "FirstName": "Ellie", "LastName": "Sullivan", "City": "Yellowknife", "Country": "Canada", "Phone": "+1 (867) 920-2233"}, {"id": 34, "FirstName": "Jo\u00e3o", "LastName": "Fernandes", "City": "Lisbon", "Country": "Portugal", "Phone": "+351 (213) 466-111"}, {"id": 35, "FirstName": "Madalena", "LastName": "Sampaio", "City": "Porto", "Country": "Portugal", "Phone": "+351 (225) 022-448"}, {"id": 36, "FirstName": "Hannah", "LastName": "Schneider", "City": "Berlin", "Country": "Germany", "Phone": "+49 030 26550280"}, {"id": 37, "FirstName": "Fynn", "LastName": "Zimmermann", "City": "Frankfurt", "Country": "Germany", "Phone": "+49 069 40598889"}, {"id": 38, "FirstName": "Niklas", "LastName": "Schr\u00f6der", "City": "Berlin", "Country": "Germany", "Phone": "+49 030 2141444"}, {"id": 39, "FirstName": "Camille", "LastName": "Bernard", "City": "Paris", "Country": "France", "Phone": "+33 01 49 70 65 65"}, {"id": 40, "FirstName": "Dominique", "LastName": "Lefebvre", "City": "Paris", "Country": "France", "Phone": "+33 01 47 42 71 71"}, {"id": 41, "FirstName": "Marc", "LastName": "Dubois", "City": "Lyon", "Country": "France", "Phone": "+33 04 78 30 30 30"}, {"id": 42, "FirstName": "Wyatt", "LastName": "Girard", "City": "Bordeaux", "Country": "France", "Phone": "+33 05 56 96 96 96"}, {"id": 43, "FirstName": "Isabelle", "LastName": "Mercier", "City": "Dijon", "Country": "France", "Phone": "+33 03 80 73 66 99"}, {"id": 44, "FirstName": "Terhi", "LastName": "H\u00e4m\u00e4l\u00e4inen", "City": "Helsinki", "Country": "Finland", "Phone": "+358 09 870 2000"}, {"id": 45, "FirstName": "Ladislav", "LastName": "Kov\u00e1cs", "City": "Budapest", "Country": "Hungary", "Phone": "+123 123 456"}, {"id": 46, "FirstName": "Hugh", "LastName": "OReilly", "City": "Dublin", "Country": "Ireland", "Phone": "+353 01 6792424"}] diff --git a/examples/dag-with-args-example/ingest-job2/requirements.txt b/examples/dag-with-args-example/ingest-job2/requirements.txt new file mode 100644 index 0000000000..3ef066f752 --- /dev/null +++ b/examples/dag-with-args-example/ingest-job2/requirements.txt @@ -0,0 +1 @@ +vdk-trino diff --git a/examples/dag-with-args-example/read-job1/10_read.py b/examples/dag-with-args-example/read-job1/10_read.py new file mode 100644 index 0000000000..b3bc852d4a --- /dev/null +++ b/examples/dag-with-args-example/read-job1/10_read.py @@ -0,0 +1,18 @@ +# Copyright 2021-2023 VMware, Inc. +# SPDX-License-Identifier: Apache-2.0 +from vdk.api.job_input import IJobInput + + +def run(job_input: IJobInput): + db_catalog = job_input.get_arguments().get("db_catalog") + db_schema = job_input.get_arguments().get("db_schema") + db_tables = job_input.get_arguments().get("db_tables") + + job1_data = job_input.execute_query( + f"SELECT * FROM {db_catalog}.{db_schema}.{db_tables[0]} WHERE Country = 'USA'" + ) + job2_data = job_input.execute_query( + f"SELECT * FROM {db_catalog}.{db_schema}.{db_tables[1]} WHERE Country = 'USA'" + ) + + print(f"Job 1 Data ===> {job1_data} \n\n\n Job 2 Data ===> {job2_data}") diff --git a/examples/dag-with-args-example/read-job1/config.ini b/examples/dag-with-args-example/read-job1/config.ini new file mode 100644 index 0000000000..1eb7654326 --- /dev/null +++ b/examples/dag-with-args-example/read-job1/config.ini @@ -0,0 +1,14 @@ +; Supported format: https://docs.python.org/3/library/configparser.html#supported-ini-file-structure + +; This is the only file required to deploy a Data Job. +; Read more to understand what each option means: + +; Information about the owner of the Data Job +[owner] + +; Team is a way to group Data Jobs that belonged to the same team. +team = my-team + +; Configuration related to running data jobs +[job] +db_default_type = TRINO diff --git a/examples/dag-with-args-example/read-job1/requirements.txt b/examples/dag-with-args-example/read-job1/requirements.txt new file mode 100644 index 0000000000..3ef066f752 --- /dev/null +++ b/examples/dag-with-args-example/read-job1/requirements.txt @@ -0,0 +1 @@ +vdk-trino diff --git a/examples/dag-with-args-example/read-job2/10_read.py b/examples/dag-with-args-example/read-job2/10_read.py new file mode 100644 index 0000000000..2fe627f12a --- /dev/null +++ b/examples/dag-with-args-example/read-job2/10_read.py @@ -0,0 +1,20 @@ +# Copyright 2021-2023 VMware, Inc. +# SPDX-License-Identifier: Apache-2.0 +from vdk.api.job_input import IJobInput + + +def run(job_input: IJobInput): + db_catalog = job_input.get_arguments().get("db_catalog") + db_schema = job_input.get_arguments().get("db_schema") + db_tables = job_input.get_arguments().get("db_tables") + + job1_data = job_input.execute_query( + f"SELECT * FROM {db_catalog}.{db_schema}.{db_tables[0]} " + f"WHERE Country = 'Canada'" + ) + job2_data = job_input.execute_query( + f"SELECT * FROM {db_catalog}.{db_schema}.{db_tables[1]} " + f"WHERE Country = 'Canada'" + ) + + print(f"Job 1 Data ===> {job1_data} \n\n\n Job 2 Data ===> {job2_data}") diff --git a/examples/dag-with-args-example/read-job2/config.ini b/examples/dag-with-args-example/read-job2/config.ini new file mode 100644 index 0000000000..1eb7654326 --- /dev/null +++ b/examples/dag-with-args-example/read-job2/config.ini @@ -0,0 +1,14 @@ +; Supported format: https://docs.python.org/3/library/configparser.html#supported-ini-file-structure + +; This is the only file required to deploy a Data Job. +; Read more to understand what each option means: + +; Information about the owner of the Data Job +[owner] + +; Team is a way to group Data Jobs that belonged to the same team. +team = my-team + +; Configuration related to running data jobs +[job] +db_default_type = TRINO diff --git a/examples/dag-with-args-example/read-job2/requirements.txt b/examples/dag-with-args-example/read-job2/requirements.txt new file mode 100644 index 0000000000..3ef066f752 --- /dev/null +++ b/examples/dag-with-args-example/read-job2/requirements.txt @@ -0,0 +1 @@ +vdk-trino diff --git a/examples/dag-with-args-example/read-job3/10_read.py b/examples/dag-with-args-example/read-job3/10_read.py new file mode 100644 index 0000000000..3882eade30 --- /dev/null +++ b/examples/dag-with-args-example/read-job3/10_read.py @@ -0,0 +1,18 @@ +# Copyright 2021-2023 VMware, Inc. +# SPDX-License-Identifier: Apache-2.0 +from vdk.api.job_input import IJobInput + + +def run(job_input: IJobInput): + db_catalog = job_input.get_arguments().get("db_catalog") + db_schema = job_input.get_arguments().get("db_schema") + db_tables = job_input.get_arguments().get("db_tables") + + job1_data = job_input.execute_query( + f"SELECT * FROM {db_catalog}.{db_schema}.{db_tables[0]} WHERE Country NOT IN ('USA', 'Canada')" + ) + job2_data = job_input.execute_query( + f"SELECT * FROM {db_catalog}.{db_schema}.{db_tables[1]} WHERE Country NOT IN ('USA', 'Canada')" + ) + + print(f"Job 1 Data ===> {job1_data} \n\n\n Job 2 Data ===> {job2_data}") diff --git a/examples/dag-with-args-example/read-job3/20_drop_table_one.sql b/examples/dag-with-args-example/read-job3/20_drop_table_one.sql new file mode 100644 index 0000000000..39fe6b08e9 --- /dev/null +++ b/examples/dag-with-args-example/read-job3/20_drop_table_one.sql @@ -0,0 +1 @@ +drop table if exists memory.default.test_dag_one diff --git a/examples/dag-with-args-example/read-job3/30_drop_table_two.sql b/examples/dag-with-args-example/read-job3/30_drop_table_two.sql new file mode 100644 index 0000000000..71bb65b0e5 --- /dev/null +++ b/examples/dag-with-args-example/read-job3/30_drop_table_two.sql @@ -0,0 +1 @@ +drop table if exists memory.default.test_dag_two diff --git a/examples/dag-with-args-example/read-job3/config.ini b/examples/dag-with-args-example/read-job3/config.ini new file mode 100644 index 0000000000..1eb7654326 --- /dev/null +++ b/examples/dag-with-args-example/read-job3/config.ini @@ -0,0 +1,14 @@ +; Supported format: https://docs.python.org/3/library/configparser.html#supported-ini-file-structure + +; This is the only file required to deploy a Data Job. +; Read more to understand what each option means: + +; Information about the owner of the Data Job +[owner] + +; Team is a way to group Data Jobs that belonged to the same team. +team = my-team + +; Configuration related to running data jobs +[job] +db_default_type = TRINO diff --git a/examples/dag-with-args-example/read-job3/requirements.txt b/examples/dag-with-args-example/read-job3/requirements.txt new file mode 100644 index 0000000000..3ef066f752 --- /dev/null +++ b/examples/dag-with-args-example/read-job3/requirements.txt @@ -0,0 +1 @@ +vdk-trino From ec12265c8c7c6f7239dad814830360945e37b1ab Mon Sep 17 00:00:00 2001 From: Yoan Salambashev Date: Wed, 12 Apr 2023 14:56:50 +0300 Subject: [PATCH 2/7] vdk-meta-jobs: address review comments Signed-off-by: Yoan Salambashev --- examples/dag-with-args-example/README.md | 92 ++++++++++-------- .../dag-with-args-example/dag-job/dag_job.py | 17 ++-- .../dag-concurrent-running-jobs-limit-hit.png | Bin 0 -> 156428 bytes .../images/dag-success.png | Bin 0 -> 123278 bytes examples/dag-with-args-example/images/dag.png | Bin 20328 -> 26933 bytes .../01_drop_table.sql | 0 .../10_insert_data.py | 0 .../config.ini | 0 .../data.json | 0 .../requirements.txt | 0 .../01_drop_table.sql | 0 .../10_insert_data.py | 0 .../config.ini | 0 .../data.json | 0 .../requirements.txt | 0 .../{read-job2 => read-job-canada}/10_read.py | 0 .../{read-job1 => read-job-canada}/config.ini | 0 .../requirements.txt | 0 .../10_read.py | 0 .../20_drop_table_one.sql | 0 .../30_drop_table_two.sql | 0 .../config.ini | 0 .../requirements.txt | 0 .../{read-job1 => read-job-usa}/10_read.py | 0 .../{read-job3 => read-job-usa}/config.ini | 0 .../requirements.txt | 0 26 files changed, 60 insertions(+), 49 deletions(-) create mode 100644 examples/dag-with-args-example/images/dag-concurrent-running-jobs-limit-hit.png create mode 100644 examples/dag-with-args-example/images/dag-success.png rename examples/dag-with-args-example/{ingest-job1 => ingest-job-table-one}/01_drop_table.sql (100%) rename examples/dag-with-args-example/{ingest-job1 => ingest-job-table-one}/10_insert_data.py (100%) rename examples/dag-with-args-example/{ingest-job1 => ingest-job-table-one}/config.ini (100%) rename examples/dag-with-args-example/{ingest-job1 => ingest-job-table-one}/data.json (100%) rename examples/dag-with-args-example/{ingest-job1 => ingest-job-table-one}/requirements.txt (100%) rename examples/dag-with-args-example/{ingest-job2 => ingest-job-table-two}/01_drop_table.sql (100%) rename examples/dag-with-args-example/{ingest-job2 => ingest-job-table-two}/10_insert_data.py (100%) rename examples/dag-with-args-example/{ingest-job2 => ingest-job-table-two}/config.ini (100%) rename examples/dag-with-args-example/{ingest-job2 => ingest-job-table-two}/data.json (100%) rename examples/dag-with-args-example/{ingest-job2 => ingest-job-table-two}/requirements.txt (100%) rename examples/dag-with-args-example/{read-job2 => read-job-canada}/10_read.py (100%) rename examples/dag-with-args-example/{read-job1 => read-job-canada}/config.ini (100%) rename examples/dag-with-args-example/{read-job1 => read-job-canada}/requirements.txt (100%) rename examples/dag-with-args-example/{read-job3 => read-job-rest-of-world}/10_read.py (100%) rename examples/dag-with-args-example/{read-job3 => read-job-rest-of-world}/20_drop_table_one.sql (100%) rename examples/dag-with-args-example/{read-job3 => read-job-rest-of-world}/30_drop_table_two.sql (100%) rename examples/dag-with-args-example/{read-job2 => read-job-rest-of-world}/config.ini (100%) rename examples/dag-with-args-example/{read-job2 => read-job-rest-of-world}/requirements.txt (100%) rename examples/dag-with-args-example/{read-job1 => read-job-usa}/10_read.py (100%) rename examples/dag-with-args-example/{read-job3 => read-job-usa}/config.ini (100%) rename examples/dag-with-args-example/{read-job3 => read-job-usa}/requirements.txt (100%) diff --git a/examples/dag-with-args-example/README.md b/examples/dag-with-args-example/README.md index 61a339f7d3..3af8f2d3fd 100644 --- a/examples/dag-with-args-example/README.md +++ b/examples/dag-with-args-example/README.md @@ -1,17 +1,18 @@ Overview -------- -Meta Jobs allow VDK users to schedule jobs in a directed acyclic graph. +DAGs allow VDK users to schedule jobs in a directed acyclic graph. This means that jobs can be configured to run only when a set of previous jobs have finished successfully. -In this example we will use the Versatile Data Kit to develop four Data Jobs - two of these jobs will read data -from separate json files, and will subsequently insert the data into Trino tables. The third job will read the data -inserted by the previous two jobs, and will print the data to the terminal. The fourth Data Job will be a Meta Job -which will manage the other three and ensure that the third job runs only when the previous two finish successfully. +In this example we will use the Versatile Data Kit to develop six Data Jobs - two of these jobs will read data +from separate json files, and will subsequently insert the data into Trino tables. The next three jobs will read the +data inserted by the previous two jobs, and will print the data to the terminal. The sixth Data Job will be a DAG job +which will manage the other five and ensure that the third, fourth and fifth jobs run only when the previous two finish +successfully. -The Meta Job uses a separate job input object separate from the one usually used for job +The DAG Job uses a separate job input object separate from the one usually used for job operations in VDK Data Jobs and must be imported. -The graph for our Meta Job will look like this: +The graph for our DAG will look like this: ![DAG graph](images/dag.png) Before you continue, make sure you are familiar with the @@ -23,9 +24,9 @@ Code The relevant Data Job code is available [here](https://github.com/vmware/versatile-data-kit/tree/main/examples). -You can follow along and run this Meta Job on your machine; +You can follow along and run this DAG Job on your machine; alternatively, you can use the available code as a template and extend it to -make a Meta Job that fits your use case more closely. +make a DAG Job that fits your use case more closely. Data -------- @@ -52,7 +53,7 @@ pip install vdk-dags ``` Note that Versatile Data Kit requires Python 3.7+. See the [Installation page](https://github.com/vmware/versatile-data-kit/wiki/Installation#install-sdk) for more details. -Also, make sure to install quickstart-vdk in a separate Python virtual environment. +Also, make sure to [install quickstart-vdk](https://github.com/vmware/versatile-data-kit/wiki/Installation#install-quickstart-vdk) in a separate Python virtual environment. This example also requires Trino DB installed. See the Trino [Official Documentation](https://trino.io/) for more details about installation. @@ -87,7 +88,7 @@ Data Jobs Our three Data Jobs have the following structure: ``` -ingest-job1/ +ingest-job-table-one/ ├── 01_drop_table.sql ├── 10_insert_data.py ├── config.ini @@ -189,7 +190,7 @@ vdk-trino ``` -ingest-job2/ +ingest-job-table-two/ ├── 01_drop_table.sql ├── 10_insert_data.py ├── config.ini @@ -291,7 +292,7 @@ vdk-trino ``` -read-job1/ +read-job-usa/ ├── 10_transform.py ├── 20_drop_table_one.sql ├── 30_drop_table_two.sql @@ -348,7 +349,7 @@ vdk-trino ``` -read-job2/ +read-job-canada/ ├── 10_transform.py ├── config.ini ├── requirements.txt @@ -405,7 +406,7 @@ vdk-trino ``` -read-job3/ +read-job-rest-of-world/ ├── 10_transform.py ├── 20_drop_table_one.sql ├── 30_drop_table_two.sql @@ -498,39 +499,39 @@ from vdk.plugin.meta_jobs.meta_job_runner import MetaJobInput JOBS_RUN_ORDER = [ { - "job_name": "ingest-job1", + "job_name": "ingest-job-table-one", "team_name": "my-team", "fail_meta_job_on_error": True, "arguments": {"db_table": "test_dag_one", "db_schema": "default", "db_catalog": "memory"}, "depends_on": [], }, { - "job_name": "ingest-job2", + "job_name": "ingest-job-table-two", "team_name": "my-team", "fail_meta_job_on_error": True, "arguments": {"db_table": "test_dag_two", "db_schema": "default", "db_catalog": "memory"}, "depends_on": [], }, { - "job_name": "read-job1", + "job_name": "read-job-usa", "team_name": "my-team", "fail_meta_job_on_error": True, "arguments": {"db_tables": ["test_dag_one", "test_dag_two"], "db_schema": "default", "db_catalog": "memory"}, - "depends_on": ["ingest-job1", "ingest-job2"], + "depends_on": ["ingest-job-table-one", "ingest-job-table-two"], }, { - "job_name": "read-job2", + "job_name": "read-job-canada", "team_name": "my-team", "fail_meta_job_on_error": True, "arguments": {"db_tables": ["test_dag_one", "test_dag_two"], "db_schema": "default", "db_catalog": "memory"}, - "depends_on": ["ingest-job1", "ingest-job2"], + "depends_on": ["ingest-job-table-one", "ingest-job-table-two"], }, { - "job_name": "read-job3", + "job_name": "read-job-rest-of-world", "team_name": "my-team", "fail_meta_job_on_error": True, "arguments": {"db_tables": ["test_dag_one", "test_dag_two"], "db_schema": "default", "db_catalog": "memory"}, - "depends_on": ["ingest-job1", "ingest-job2"], + "depends_on": ["ingest-job-table-one", "ingest-job-table-two"], }, ] @@ -560,14 +561,25 @@ team = my-team [vdk] meta_jobs_max_concurrent_running_jobs = 2 + +meta_jobs_delayed_jobs_randomized_added_delay_seconds = 1 +meta_jobs_delayed_jobs_min_delay_seconds = 1 ``` Setting [meta_jobs_max_concurrent_running_jobs](https://github.com/vmware/versatile-data-kit/blob/main/projects/vdk-plugins/vdk-meta-jobs/src/vdk/plugin/meta_jobs/meta_configuration.py#L87) to 2 would mean that the execution of the DAG will be in the following order: - * ingest_job1, ingest_job2 - * read_job1, read_job2 - * read_job3 (as soon as any of the previous Data Jobs finishes successfully) + * ingest-job-table-one, ingest-job-table-two + * read-job-usa, read-job-canada + * read-job-rest-of-world (as soon as any of the previous Data Jobs finishes successfully) + +When the ingest jobs are both finished, all of the read jobs are ready to start but when the aforementioned limit is +hit (after read-job-usa and read-job-canada are started), the following message is logged: +![DAG concurrent running jobs limit hit](images/dag-concurrent-running-jobs-limit-hit.png) + +The other two configurations are set in order to have a short fixed delay for delayed jobs such as the last read job. +Check the [configuration](https://github.com/vmware/versatile-data-kit/blob/main/projects/vdk-plugins/vdk-meta-jobs/src/vdk/plugin/meta_jobs/meta_configuration.py) +for more details.
requirements.txt @@ -577,7 +589,7 @@ vdk-meta-jobs ```
-Note that the VDK Meta Job does not require the `vdk-trino` dependency. +Note that the VDK DAG Job does not require the `vdk-trino` dependency. Component jobs are responsible for their own dependencies, and the DAG Job only handles their triggering. Execution @@ -586,28 +598,28 @@ To do so, open a terminal, navigate to the parent directory of the data job folders that you have created, and type the following commands one by one: ```console -vdk create -n ingest-job1 -t my-team --no-template && \ -vdk deploy -n ingest-job1 -t my-team -p ingest-job1 -r "dag-example" +vdk create -n ingest-job-table-one -t my-team --no-template && \ +vdk deploy -n ingest-job-table-one -t my-team -p ingest-job-table-one -r "dag-example" ``` ```console -vdk create -n ingest-job2 -t my-team --no-template && \ -vdk deploy -n ingest-job2 -t my-team -p ingest-job2 -r "dag-example" +vdk create -n ingest-job-table-two -t my-team --no-template && \ +vdk deploy -n ingest-job-table-two -t my-team -p ingest-job-table-two -r "dag-example" ``` ```console -vdk create -n read-job1 -t my-team --no-template && \ -vdk deploy -n read-job1 -t my-team -p read-job1 -r "dag-example" +vdk create -n read-job-usa -t my-team --no-template && \ +vdk deploy -n read-job-usa -t my-team -p read-job-usa -r "dag-example" ``` ```console -vdk create -n read-job2 -t my-team --no-template && \ -vdk deploy -n read-job2 -t my-team -p read-job2 -r "dag-example" +vdk create -n read-job-canada -t my-team --no-template && \ +vdk deploy -n read-job-canada -t my-team -p read-job-canada -r "dag-example" ``` ```console -vdk create -n read-job3 -t my-team --no-template && \ -vdk deploy -n read-job3 -t my-team -p read-job3 -r "dag-example" +vdk create -n read-job-rest-of-world -t my-team --no-template && \ +vdk deploy -n read-job-rest-of-world -t my-team -p read-job-rest-of-world -r "dag-example" ``` ```console @@ -621,13 +633,13 @@ vdk execute --start -n dag-job -t my-team vdk run dag-job ``` -[//]: # (The log after a successful execution should look similar to this:) -[//]: # (![Success log](images/dag_success.png)) +The log after a successful execution should look similar to this: +![Success log](images/dag-success.png) Alternatively, if you would like your DAG Job to run on a set schedule, you can configure its cron schedule in its config.ini file as you would with any other Data Job. -*You could also execute Meta Jobs in Jupyter Notebook. +*You could also execute DAG Jobs in Jupyter Notebook. What's next ----------- diff --git a/examples/dag-with-args-example/dag-job/dag_job.py b/examples/dag-with-args-example/dag-job/dag_job.py index 64908c7645..3b340546ab 100644 --- a/examples/dag-with-args-example/dag-job/dag_job.py +++ b/examples/dag-with-args-example/dag-job/dag_job.py @@ -2,10 +2,9 @@ # SPDX-License-Identifier: Apache-2.0 from vdk.plugin.meta_jobs.meta_job_runner import MetaJobInput - JOBS_RUN_ORDER = [ { - "job_name": "ingest-job1", + "job_name": "ingest-job-table-one", "team_name": "my-team", "fail_meta_job_on_error": True, "arguments": { @@ -16,7 +15,7 @@ "depends_on": [], }, { - "job_name": "ingest-job2", + "job_name": "ingest-job-table-two", "team_name": "my-team", "fail_meta_job_on_error": True, "arguments": { @@ -27,7 +26,7 @@ "depends_on": [], }, { - "job_name": "read-job1", + "job_name": "read-job-usa", "team_name": "my-team", "fail_meta_job_on_error": True, "arguments": { @@ -35,10 +34,10 @@ "db_schema": "default", "db_catalog": "memory", }, - "depends_on": ["ingest-job1", "ingest-job2"], + "depends_on": ["ingest-job-table-one", "ingest-job-table-two"], }, { - "job_name": "read-job2", + "job_name": "read-job-canada", "team_name": "my-team", "fail_meta_job_on_error": True, "arguments": { @@ -46,10 +45,10 @@ "db_schema": "default", "db_catalog": "memory", }, - "depends_on": ["ingest-job1", "ingest-job2"], + "depends_on": ["ingest-job-table-one", "ingest-job-table-two"], }, { - "job_name": "read-job3", + "job_name": "read-job-rest-of-world", "team_name": "my-team", "fail_meta_job_on_error": True, "arguments": { @@ -57,7 +56,7 @@ "db_schema": "default", "db_catalog": "memory", }, - "depends_on": ["ingest-job1", "ingest-job2"], + "depends_on": ["ingest-job-table-one", "ingest-job-table-two"], }, ] diff --git a/examples/dag-with-args-example/images/dag-concurrent-running-jobs-limit-hit.png b/examples/dag-with-args-example/images/dag-concurrent-running-jobs-limit-hit.png new file mode 100644 index 0000000000000000000000000000000000000000..bf4302e3c26299e996ca2f7ca5af5619e2ec548c GIT binary patch literal 156428 zcmeFYby!vH);GH776bvM7J{^hAV>%-x{(e+TDrSgGzbDps&q+9r@{g$0coVWI|UZ7 z;#=VJJp0-EefRh76W2L^oWpg^HEZ1W7~?l`-gEL=^|>q&J{3Ly03ec=lTrr&ZlMkV z>bTgbU)C>(O#lGD)LK$fRbEn(Ue(3X!rIOp0FZl~l!BwFF+~wR*vy|EnoJUvIF$N} zLQDadGceeVBnk?Y9(U`<6{ae|pdH!BFQT9aCHZzJLq->)7}A zYy;#ngCCZ6e?=~C(bNe)dKcceLm7$g_i5rZN6T|Z-wn8^B z#{CgUUV$^vO6!FIBEggpe-Md503gl_R;oGfG#1pwz!&G9#HvG^&HKCld3;>pS<& z<;c~ec^U1$b4rC1-p_n2KuF%+s%tXK9rT`+khmJRnp7jWsFkLR*I19c{&DkrlOOyK zu}WfUJDN-cCw1-cJ-F*g^ut9W%eoD_=G)H97FL`Dga+-G=

Uq!^8@vYs*+viDZeyy$I#`cKe&4 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

    t`~1mY-#IE}#5tT&i&RaKBR+$yJ1(ahlY8 zfgXUnBIZ}ke&MuytEweB5k86~C)bqI<~h8~TKJ%yJzpR}k_3=gEV!CM>@- zl5z9#x7-R1VW!$2*z$Y|8=(Kv7f8M9v48+2z7xwykvr-`N$fD>CbZK#JI8t7bk9ZI zSy*gFw5gPBL8Nv;_hr;(*s9gO)^1}pq8s`TVyDshe*yF9d0(#m%olo?&5v9`kCK=e zyu^0WPV%sxt|wCmmsNr~CUujwABfguT6ZWzbRI>qiG~`49*_}I0%LL)UXLB7_{R3A z2T7UyJzjsB^=inytEayrn^-ezqKCci2mkQjQes-l`$*B#7v_67#1X~5aq0e&ll@!| z8kG)xm>xJ59au;Y%W-f|Jh_#{ElhnzCQZ!qZBV>y83MyrxDLC_;u&L&T!-~71|PI{ za$J0?6%}_`YEF61Rt$qO-FDoq$S&D0{qh>Sf9sY$t{nD`8*UVVf>%MZNy(<~c7G?H zEyiTJM`{ExZ>@%t{#fO}m%UMi6S@~=2jvzcFL9z8XE9%N%blVc_Q;TDp$|)VM_nsA zc$yA4n!~17;X)qC7A$(0ja=Tq*F4<$#$L4V6d33?Nx@v?K4oL?*t;uwRiM9lh4@}; z4nImyd+tH*{vJIF-(aAV%RW*wP3mt?k`lPh;u<@;FZr;j`RuF?E~6s1O@deGh;->6&ZoS@JvdSu6iv!g51ZQ;8MESLRi zHBvty|!?aVacDWzFvvc@f zKsQ`!>dV7R@rZcpU3L1T!f z=r$VOgA&>9`#E{mhGI0dGB&E1FX5Oa-^uvk3yKTY?Yge>VZB($fM$y&(2YAu2%~0y z1lVo|g&R%HUFE^>OtZePZ*d{Y*#<8<|q)#TNd44_g`E9$<#jn5ejS zTCk@&wiz�sdjuFE3|#bKDf92VD=Q_}PX*$I0SsB2oc~A||$nPhH_iuR@B6b?o0} zQhoR0yV*QLNtdLXUP(2x7ndS5AIPY-X>79yVq?x&)IbBMD1odC`szC)_KI1&l0n& zuy(UZy?lJ#A1+juUnCaN6Z2#QP_a7yOj6GkgxWavBOjD5z?sVx)psUuf4!Cf8jfEw z`8~4U{1a-Ph^FG4QG1J%Fg6-gP0V;N4)#ic3WfYc|i{ z^X$KU<=xfc$K^X|^qoqLB>hQKaU-p`;^34ELH8r4TRI;6K+VQhj7gyV9Kr!u8Jd6B~04pMf zgC4X^W`jQ}!}ihNiqk*j*7Je>m5USKl}#BN+T!1pqN2{g7etsd*Uf;+N=&EL-Mz*$ zvu7x&8OIshUPo>+Lb9(Q7)QyeSe6S5B)s?9rw%9-Y&~gg-61{SHbMsr#AFv6+a9;A zUyRiKez*l)5RAe-g5OPdlL8gStit4xDOZp^h=bBCu8UlI<#_@=FCE)p_X)MTE6=v- z{xDt;`J|u6Vx;HamlQgdwj~=u|I$uf>KTuz8b8kj9jT$QCL#* zZ+5G`#&CA#Uhj<+pBETB5S^t1dv zQ)=FR5EREh2Zo#yfy(}-5qY^S9AM9>uLup+f}eKx>23DH%9eujpOAx`OuG~fna9oJ z@jMC6VY*wc>6*XPwrC~_76mr*n<_~_{$)RPDb)K-!SDJNcR$PMQABQsuqBe8&r6GH z>x^TrDa9h7>t2J8Tk!#k?L)}ixtNj*ffWv4mK=XMb%aKlBB##q^Nw-hA03-DLa7D5 zL3Xo(K6Dbz8TI0b{LC zGCIhkp0#Fz^t1VtpjLE)o-XuXll)CXh?*{vED$XaFO2xw^KPC%o@!Oroip(?d7oC3 zC%z%Q_ZE{B>;x)iW&RAUVNfqRinx3c_EK_xrOXO1k1XzQyW!r}HK< zERUom{0p3H1I_86L|%%Irv%@X9@faK$liFe>Eu$xpJPQW1M8;vT%!OeOl_w)X!quNwdVnwR70vx`ls zo;wPWlMjlI3^n3><_ImK2yTr+S7~&wnKaWPh zE8hR`|Nl#`qhJkg@ZCx@H4{s8Q@ zi%x%>4}LchFV( z)Vkc=JtDXo_C6nRbU=4r>K5~IJ``9PL`JD;IQNw1Ae6;}Yuf^i?FTAjRJ%h63@SWW^zXPXVB(+j$nHkn#BuX6iG z5U3t$h8u8Y>LGHDV$=RCrkr@%9)Nej92g>qP-=8LJbdrtgowL-!pMoXaIBzUQ`@yO zS9HS^o{pe>lFermB*Z!Xc)V;wY66O1iC5ttE&pqD_Ww7dOA`6_+W7>Jf>^-t=x1~O z{w(x;u=Z<(#GI^;9Nx2{(NUM*fNR`4g`OnsTb>Iv-KwuXxh)NaAs_7YS#GD&Em7<&dhwA^tW7fZZ9+qS<*a^?!B7%wdjAo~ri1cwkcTv`d=QRo~O!U5=h|9xk zy3RfB1v&t*)`6LRwpl{OoqK$%hbedL9ylOq3l2ZZnE%&&PK0NX+^p4+<8+Vlrw*2O z#`%p|0Kk4#2zuz=*R9C(!Su-oy1>1_D-$1n7fthYNQxgO?mgSRX6a5!1V!_$Pn#m1 z&KUR8Us2qK%3*SP2}X9;IA#GUtxk3-sUoql_taNg;iPHRPHF7v0Jr8@7^xs zaI~{N;M34s-js}vtsNbej(W8v58jLBnCMGAT0n2F)OTdw(c8`b1_^6`%-f!{$DZ5D z)C#Ua-Q?NbVJ{K>ElLH55FuiiO0e0Hr?%8Kh`5q|)xR~8wTzE1ipw&XJMeT2E;=zX zCA5VXil&pRgt#3KVg|n%As~5CqedyzB-U$aAEXs7;7E8ClZ31LoYhdnd<&79clScB zYpYxICq)$c(5y6!%H;NZk?&Wh*BV~#EJH@kCe&I3e~;mj^257<16rx_c?_h?R9DPM z9{D?H-2oL7bEth2U`_aJ(S@%laFeE7YYQ6U@&gZS;L{tijQkVtUW4PnNWpM#Ie6tD zchJ=twgv4u4N(R~U=!1ox9OHIeumc&CxaY>4oUX3BB*hr3JBi)KD9$24ZA1qU^a56 z8f*cyE;laPB$3go%aI`}f;c0BrfF;J|4gN{s6;okTSM@Q{(Uox^E95L-*L1LwuHkGvO^sD&%GIbe=`u$Ni_- zW8e<9^KBs{^ILv99Av)I8zg8Pyhr(EFcBkRlm&nZ0}Z?&FsJbcgtMD#!hhZG!&IsSMN&p#oD})av1NrZ3-am2*q+LICK)-1_v6k&`epJkAEo{uI832%vS9qp-wZ^R~3Ux5@yW)`Ee+s2KVP z)eaLDcrlNs-2hu5&P|TXu?#My1Qr7K!pwTodh&%b z?sbRH#c}(j)F1wvzjYzrP1XX@^*`Hj7_o;8Cg(v@Za%UO^R|D{XH)~Y6%4n5L1aNn4rSpz zU3SAoZDVVCP09$R%f~fu*8ax?yo*)M8!r)EDbM>zRivE2E}~Y9t1@eeEY40L#TO(3HA-W`7|c`4$X5Q+g32eY={ij<1w`-~3Q&S)cBZ z=2hxX%{ABe$7emeH(qAL+!I#s2XuU75-*0@+|w%BO4WR(xc?H{gmQ|UPq6+WqZ{<0 zkMzEMWD|;6U);uSDip)A#hQUH+wu&p`n;Vzn;PrHf2I=mF89J&xp{h0YjA+Gz9>HN z26ZC1T>IRg-5Tk3NVb@nCAvcz*Y!$j#h8+MHg!`ehtaG$^iv^ONN+|J9`U>a9(fqn z1>jDA-}tXjdeFqaa$sxjpS5)L|$*)wS9IV^ZXZ zA|H>VZ1+`*twzS59EYAp-NEFAqsAzCUm13Cmv$gUTEAsc+(*U(>XXh-RL_!gF+JVx zuiu;{c#+jlQVWj3ZA9XEUwf#lFw|TGAn_v+H1093NmYANRvAvY3CSkxNz@1FbNRTZ z05yK#?ZZ!RO$WO2+|WUx>@4{o-O4|zAnCj@&;8D(x{a_D8ZP^H9$938@LS2>WQgx!Yt;1c7Sc*X5Fyl&o(1m#&J9x&2){?qMU z_kGh-i3*+-XFb7t2H078R!0n63DE;7{-P%t`S@N94mb*@&w}7O)3(AVRarLVa#ZoZ zfZ<-GIX1RIW^Wpm@QCZ*`~Q&647Q#u(u3ZclxX?cfN*^u8Tv}`8@*qkvpXJ07eBf5 zV42$={&rRxm(xZl8kj(Y@@PPPAEu5AdMWqqMl@DVjFllH}` zN1c_ucN7(x1PENCq8BTW$W}DoS_|2X##E6uQLj)%9lKSZ&t^q5N&8XkOwR0=gAFi+4& zb!4n6-gy&#H!lb_8KEx;`b9bivE;WHXX*9lNWrn#;YNmZH`ccVaZ{% z^C{e&;koutT2>SW$c5EPs{^_zd0K*L_*;r6^9Zr-ALTF2*e-6#Om`$}*d3-r+&i?> z`Y~a8F0bT54%|0)a;JRuWN4ja?!J9^Fz45Se#fk*S`t6@5KrDyOcCP;cGRQ{W9D#9%08>Tab>Af`jS#l*`Yt{r4!*OR`q--_E3I4<#vQ zQLBQ~iQ<4u+`mLbg$tTa`{sKXUe@C8Ddr!q8HIqY;(F9>_=10OvQKBy8Uvo3BZ?s{ zUN!LMNv_B9M-*$ccv_>nHzFMa4d|qrWUu?Qq}wMtR0*{1BpXdVqI2&}x<lwMB7M=O4dMfDa6Q!k{Uv?FosNIuFo6d<&cjFs_&g0Le ziIR<;$b2m-(Z$IY3ZIT$M92ZV`VJqE?^+VSz0ZzEb}21A$3x%`FVsuC=tj7HeonZN zw2GdbwhrcRO2=2dzh40gIX5#D&U2NO^Xm3XGHs?&DN)aPq@?k-${og&=muXW$G38i zhTy$`$nux19Wh;^!X==U4Tz(sjun9$)a+wDcP9UPibN2fDZZh4_@XQde~zUuO^|Ao z5&e6DG8+bwG}hv|A|~E?nD3#$NNyK`dUtBcjO)Vs!TT-01|=o*L0X%YRPZY2AUT0& z^VxNT*i$|3PyIz~*Ah>HiMmh@XOHYSQbRq$D5*2Qz;~g;K3nC@-_!nZr(A2L#3Mn! z^2_Wg*Nj#-o`oxo6uBn768M9Qwb$pF7eP>11Y$nM#bkXadK(c&AB_i<*+tQoAdKsy z)H#o8(6d1p$Xe*C^WMbq3CI{$5I0V}3A&gy`L->lL8YVKm+*$w0j3MbUj#+YOfuo$ ztF#c`VL`bzguG2&^&=V`GVN`6)lVy-_a#<2#TGs!+ryYy#33o&CzKEkNvbw=9GG=F z^zQ=j>|>fKrgZ5XVcWicjAtGJ(LX%%Y$SckJ|cg$B)l2HXsSOjXUZP53;6~aH#z1d z0tP(>HtdYa5*M0->U;*X@UtH-yV5R3x1Gfu@-zLIv;w-EcJa9DNwsv5@ZhK0o*PA4 z0UC~uuL3m4<^@Q!y zxFdP*+210tRgOR#G+5xIuy6AV-+_Qs-G1=xIj9kidJ31asar2IC!?A1Wcv0jQkAc- zR2^c4N47u?jnMvgRX7o2POv}LfI8B`IJ~q8i^Z$p?P19;v&n*Fr@+%q3hY(e!}!}4 zH)4e=YX`A-JpL1RJyJLJ#!M%`RRFXQ;ArEsR^`5K%LgCZW1(d<2{AVN2HV7CMAPfr zigI{4;@%&JZ8pGmcaA?=%{(#9bY!oBFjZ~ejGR5jY0YYF`tI%42H(r&wlxJ)1`$Q5 zOaDkBib+U;6v`1-1D5`65R*qF1+_Oy-40J=I@W`4w^$o(W;CM@$M{xhS62KVvKn7) z#EMvR&_fo@-lr+#K{8$m+c)bX^!60bdL~D)DtYpLNpUAC5@wNaB|G$fj64}FG&ZZA zwaDTasEXYQQDN4mW(4pmn0UgPBQ1$9;aOQe3pnNra66%!?L2|>-`2{vwkMn{1jvv3 zd3q+W=sxK{4I|s^2Do+9a!hv=^%bT5Cq*T#ETRtylrm*B?s{Apv$Vx0B?D@~%#(DM z$yB_oqMsW}KX1o9!uB-rzH_Xylu{0nl)Q=L7WP8Oye%BCNa@a~e0H^b#VF5DAa@F3 zb(K_$hM*T$rwHg~{kv&i1Fo877W;H0puB)!kI4^QYpr3LA~| zV=zIxnnBXAmh0ME%MxR9!}~(@r_X=3e#I0RJxZt2^T!=Sa5nzYR8zy3?9I6A^tt^( z2j*}_akwqgK|@)i==oE1q-9<{`~^>pp_wv;mQ?kZB&&za55-=~J19kkFyQi@QT+7& zc`9-jZ1;hW=+)|dx*Mo9$g0`jO654F49%NN@35+I&o`6Ht@!$gX3~|tZtsP`N~`E! z;Q~%twX|l>5bu(y?c9m_e;)pDB+?i&d3GD~-Z!Hi-pe$EQz0esR}Gc%^g(gRStCZYkC}rQn`=azeooH_;u-5DnXcVwX1!kExxL>E**r`Dy~*Rrjj9R zEo*v=(juolR<$@jHoA)en(-tcc)4u~v`VmPFOh(^TK~NwvG_e2?M)D6&fg^Zpc^*X z^?hPh>y7fN&{1*_?lda4?bAMi1i-A>&IP&G?170$);o&PH~7TcP01P&>NxSTUongo zFvo<{B*Z7W%tRC$8;QF3U)|x< zEMhFUJ9SCP$&pu#Sslee&lS6E*$fpXWS%IHsv;UFs)3IK1y!OCf%Ct@? zuODL#^wu^=(_;!`{D|^KX$4JkAVGgUb9I&evw0mbgW*hG%hS zGl^lT$vVdj!U^zp^UvcH4#L28I$pBa1%}wOU($Wnf|SC+q9?_1(*GA*UmX>7*tCrz zp@4)+!xDm^APpk1CWuIbG%Fy|ARRnW(jc801Lc9Qq!huQUBaWe za@WFDvlbm80o5KJ4*7Hs-mwf`W`nqh%ugHt?@E(N7=A7BZ86I0zf9y~n#6 z*Eb~Ea$yX|~sHEESjzi$JcqV9!;9Q`%u?+l}-Sl#A&`Ka#Wm-dG@ zFTJk;%1**zd<3P!+B5&2hsjpfAM~RHqC3B+G99%h*3pUIYy|rE-nx!9GN16#~+ z+6ZUlaz1w^N?cjv83M%26FzWa!05)JQlRLBY9}3a?q1QE1iMFmdA-^=QmiaT>JGmb zpZ)zeRZ4vy6O&}+Bvz;wUXoR9S>KGt3W-h#*|MWO2yMUxe9`awtTl^xgb7(?+Y{bk zbeiD+3V4=yw=+KjC4C)r!TE*Y{Yz8F*;`Q$)BgbdCy;I0bic_sk5EsGaCUWLTh4L* zR|#01A8%z+>AQV;9mxp>cua_)ys_@h9QflKSb-vs2hJ%s5cAOU{_77m+ec07*NMy% z%Qt$AUpz{`Oh1cTBuDM)`1HS2!Tyo-k8~TZSDnS}EP$P;IDtp>&nVy}87!Vhay>re zRU^4H{b3V~Mls>hv&iC}ub%M>GUZqOsZBu!{?yH;+%%fCNbsM~Y`gn%#76j;MF1=^ z#@!f=cJE_ntmv_ZqKg)h;A&|1IU~B?jYP_|PJtX>B@yCn_oL$ml?;J!8zAq@*`}q( zeWcDh2AR!le-`j&vgaNH8@>(JVI@(P5q;~@w`1^4?$SoGjQ4iM*n_K|(0S8M_X^|o z()-9K*l%ZtY}`g6-4=jmLNKEL#ziMIaFRXB)c_S~q@)_!E_n^^S8ku*6G=SZ!&cb| z+x6AT;QL>ohsbL*B%NN=78i@uUvi?HIq--dZEAmh`QD@r%#V6QzXUKPGd+0O>gzRZ z{|e?`jOLvotp+@_8~TW&{%OKUkq;}2@E|=T8AB{9!M22D2(fAt*3;-sp7tOmZ(qOr z1WJsXU1wt4(m_1OR~waOcB}51)G+SMWwRQVmj2ZVi6;}zQ9gA>kIILcSpD1=duw@Edwc9q|TiD9B`TrG*0ch*CANKzg2Ki z7!b{!E9$T4MJCt8IG{ze)n3r@=RAe+U9dIV(^-b<4_G2PZ|;Y+ivMGj6@-G<`IhHyi7m6zdfgMobt2vEOi>*e-u`fwE?S=m zK8x@+m+d%uJue-4=vV``&OS_8r~by z`!U6Vt0lQs|DhJWXY0yybr

    -VN^Mn2N*FObfdHpoiaGjXpA~2&8CSB!XsiOi3V%zafswQz`oAMbBEE z&d)H~#fmqQND)JimjNl26@=C>U#wl*^SYAT4%;n=j2LDW31o7-2+Co zV7^CO+`~r1XBz-bk~53bZxlDVvAtaFQcz*)<&^cXWR&!!&~V~w4smwYL$^6__F1Y> zS(&$41E>5;HwtC@^z|!Y7S7@Fm)xTgE-nRpA0`T2>Ri;k+ZGyGaOc#|`Nh>MAf0g& z`>&2_MB0MO<``6$ciqGvZ3&sjivYh=7h99o+2a@dVl7k6JM9X0=#{n%(UuaLmwKzj#Yi z0;qRk9OaC7p z1m$I%U-PQ*bT2Q zxf%V|R}#&ys?oZIzgmn0{o&C}*v108o}I&%H=wN<5z`*uC{SAKY&M z136KY8H>1qJmo`DO)pbXAy@h{iFUYvc?SxVaGtov za2QC*C-`RuqYi7oz!bqG#%dsHq4WGwK%_13ef#!Y!u(|ex4G0w2U}tYg6KHm5MKA~ z`nNs^!-|1rGvWBo6=L(R%UB4KqL}(X6r?yR3~;$M{qp*WXF!hw>xD+Gz^jBU>kpEo z_-!(Ki$s|4IMX)umk!VgL{+>vcA%0^Yb#Sf&~I4B|8p$6Vjh`Bq3yNudk?R3OAqDK z()b7yV0EKQAfE*td<@5CQ|&zX7WNkf2c}o%q--$chZ7qOG;)B z9k8A@Ow^1i{*r{IbsR&S_JX3`nk^~XJgXlZX)y#@zTv3S5jKVo+1V#gDor|0XtZk+ z$nB4hvP`5Gp0Vt1HG~-R?9eM$6|4~<4E%|}uL$m4-@db4S*k6Z$E^Q-R}gvM`fO%# zS)v+KlWX32sV7*mk~XY7>~A=eDA$_NBBlXMZZ%SI7gx_Jd<(Sj(erBLes)Zzz%l~J zbD5>akmR$PhSrEM#^Yd`@TsobZ6QN|fWb8(u$0yNC&+K8ep5lodT9kf&bx!vErF9A|4fN?sjIn!Oot2f z7QiQZq`^JlPLJJ_(&P#}730~J4A(QGqL2f+^nvp*Rzv;aO1{9?908LxQeDS`5}@{q zfe+Kflg62XNsUc*m|JUq56*SEy()`NRC@T5++$9WFXf1134O1d3uFUaPZ<(?HW>nZ zmxkQqItjD%E=hA7Vhi7DtOBs0&l2=OK->B9ju#ucfavHn$n^CUVx#E9PwDD;Ew&); z7RYxuar<*owgyUr16NUeqUXxsH5kzEko+p!X7o+2sPw zF|nmrATiiuz=Z^dHE?4CY}b z^^qVxB4h)8AQ}LqAPw|cr)6sP&%e5m>!FB@I8K!TDY_gX;N-lA*Ai5PQb)v9?JiTP ztWKtg^awYR&&KGM{`svnBRgB3lSF3<9$mWQVq{Fb*%T6i>WOpiV!QAWmbm2fOVuw< zZsyszmfJAXWRvgPj&U*H4>Lqfk*c<*7IK&d%XnZtV64 z>Y}jNTT<;^oHwq1aj4u1myGHSC|n^Sqi_*k>`2L*?|_zh#HWCR^8l69GsWglF-{yx zPAL+D*{-?ayH-%7K)X5<6ZD{gh+M(%?xCsz&qk00k-X;NSjX@b(WzU{(71H+z~-w1 zlezl?K3~t^ny^ssL=~IgEqe8%3Yz}C+Js*c3)imBklu3)QGOe-AwJloqxnP>T2t1w z_C#qFtOxMV*+wT!`V*UlW<7N^Nt@4tw?CVl(_PtxzcjV8I{=KY;U!Ot#EYMEp4C{u zf@28o_{!YAM{Bkq;1kMrxP|EW&N+>LM>-zRWPjoJD!@)bzv<63~4~!Tz1cg?2&Vt9GDg3cj^Chc^in1 zFf=1FtvvAbFYdLT+prC*dFE>gzCis3_3aiy(JbD0mbxJBcc6URZua@S`HFf8Ff1=J z9BbWIw~&2TxPfZ7s;A$ijL6?u+EL*gkiB{2=wF&!2Y5gK3`Q}p?r9yDP2$Yji1vX6 z^gB5D`N(!QQxYv)Zq_7uw{2(QEN!5SKV+=zWb|z1*s|H}V7UXyZuUfB8?;t)6g*s3 z4Xh`V)gM^DUHU!Mjo00RN93IV)bib3a5S3Y^bGtK22$987S=V2&Xk!zMqHOi zyOu^KdYNJo^AT*`7e5*vz@({y1(=^q5#yKs18f%v?UBqn@GHk z@!oNbGGfTK@;Lt$DlJFL?*2ekP08-ENXJJKg1F~C&BWQ0NxJl!(vw2_au9DHTql5V zE$Na+CffMR$0SjTwnNe9N7wRTS<QzF(vCQ6bv3!%A6I)xa#v3Z6TJ?MHe8F26f0qT8NSO4D6+1GR6Coc%BOyljlnI z(psy4YSQmeiH1y^qkC5-k+}6Z?63u`(^{)g5q>&%#g7WZu>A%<5m3N(ncyG5k6BGq+Y zpU>_uhY8bscaA`!8H_39rtF7hFXPe2*{|%q8AxFP(Gg@q_QCQ`XOqE*#z4^>auZwp z*58Z&G!Nbl6!Grex~Re2cxcyt@y~VtDLn#0jEjOn289r7yf`BBpoL53E=U9tO)K^Nc}jRoz;*K z?m+pNf@#Z$4IFX@AQ#C7Dh4F*QP(vi9e7+Po7HP;9`iqEvmExH^iF(#QGs>;u!fgc z7mirz1)`_d>wZtIjNCsF6U-i4Vpd+8Af6+u-p`Y7j66)Q$-TMPN@znj`pUJs=TcWw zYA?l^l1Zbugn1LELIz2SKOm%3v zAekB`cJT&da#>7vIl?VcbG;^X>981{BN>Gq{->4G>>~0QNx`0gOeYV_o$FYuYW`50 z$Ml}-c{p3skc7Vyj~j#!IqFU1tEKclK6p@MY{4%6omBB-!0CDHxZ3<7a}UE!vVc;= z&Q9cI+Dr6x$X_F1^16~kNzu#j)+05=XZRCF6#>m=tcJFyawOMR%pW1T)5A_ie`0UX z*e75pJvI|9+JXBEi{Tns%Wo~XqtAwgYy!VSCe({?3dv#(w)B(&RAF7&DE_)l+#{=` zfH6X1#`+^z7IDxfV9eInH4i=|FT2By5*aCm z9(X;_pIqnwGwZy2s*o4X>>hes{@3$5SC_hm$)*ds3pDEl6sT7bCQ`B|IE{F^midNI z+qdEV%)y7iFiyQeu|i8l0kS9a?yCaGRzV3tm8npJX^LC{c zC8h5&i{~y!Tz(vB3y`E|bHRMdQ*iX-lk7n5O*%PYK3Ei6_%m~(CXuI6QN!5{Cu~+> zghqn;E9f_6MeuQXiuF(W5&Nt&V)M+08xuB&!+>quyjCyFca^b#Y06(uNt&NY&lXs% z&F=mSq8q0H97)*3D`pW0>N4*4Y*@PZDPIT z9S82NpYI3ku3eWVXdIv5OE)5_8ry;MQ^JolknMHCW3Jlo#CA?awu!P47E;QikjpW_ z>LXP=dvJJqOlD-10xXHJX8e;C{uQZwyczINem|FItO508gzaK7cU1x(`b1&~k5xb* zQaPW-*WP4wggnAeR@~_wUHWN$7f5ff6WWd%-CUyL6z_8%M3RRQu0MHB5Ng}Lo&jDb zMBPbOrB-?BYyLYsUm|5IpI%5-aq%a_hC)I;mx`3#i*+A!s*SBxc2JHi(5}H6fPpX( zUD@aln-;67c&T5!vb;|Wi{=O=7z4T^fANK5vU)=3mt*SSywblT%~J~V!gC>{8~%I7 ztGI8Mj*Hq!>MpVZXMY?6?AUKs)~fE~g^`ug&#+vwXnOBe(_7txfoBqG-X4n;?@&&!`6>a&9wDk`7tGdyl=By=EgpdQ^Sg+Fic`mppoVNYL@8 ztjR=rDwkizh?AP^!872;NDe_vX@Aq{3jPoKrgbdZR+oom3cXm6l4E@tMEE@?Ln=jy^zUUTUYitiL#l>sRFz@RDpmxq@F~RBrD!m*2Hll z1iA!SqS`B&wKV7<>OA#)Yz?k1GRi5|p0m#me7OdGhtdlDO0B+dSPkW>M5w+#J^48C zxQ%)~q$lLbw5UAnekCk(R5!w6kv0ER@DA$XC9mk=>@Hw(33i)}6#BzmndyzGTAr{5mg|)^S?M&MER7@N|j9f1f*>`l8;g{Nur8(iIKaGp#hE46!2%dR> z(1;+4w_NgnBw+_TwQBmwyESzaf1F^k3x5I@0cya{f5{z>?vM=Pb?S-D`#*MKHy9i+ z0Dr6whrRJ`$?+Cr)5qRyLx9~T&;N4a4g!<_YO1F9c$-<6RwtAw85( zBnGGOh-1~ae3431@}e2<;H`)~!}-f?O%8G-~&- z%@%oea~c!0@nXQU@8rjN^Mf#n=X;0sRdyWkF;y_*W(OU0ZbFfWiS!hyEg z>=`0#Z{>a>AN;1d)P33(oU!dngkSS3C}>~_3FNX$(IbjAblH@|iT;{)aDTW`MdfSE zz`qC$I(Go2Yt5UlA=xOQqvZMzbYs?n<^fu-+F^w3l7%>0J1`mX87BGmTa zQ_KW3LRxQ8x7y0s!YgdlxexZ2zfg>ma5ebVDug05>w(hU^59SF*`8rR4Dw5SX<**7 zJ2K>3>VZJ~9ss|$N(--i@zK@2|DcmHXk0`5ff{ge96BI9rcM$xc<%0EVY z(%EonxA-A1vWfmv{xmb$0~g0~W(h99v4+!GReCtC7tYUS;q!3Fyg{Pkvr2&q8l9NI z)h%+Zo|4&Br=DTR&hNr3`3O+ji?eUXUBYhQx@F^^WZ*Abl@4-{UFz~Tw%$>09dF1t zC5MUx9)E(z@%^t4%jj^myXytq62Bj)$LY0KD{v-WHLMOC=L7XN(f3KhD8>d6(u^M( z$CV=(y-Oi(k+hnRr5eZtv7jDNB_@Rc%;6kR-v)k1qIxhW_Koi#)#8ZiK}z?;tV;eR z-yj7aC;y+_fl|+3?lC=Oq$q`|evV;4I9+Ml)@sQ=fy=-WRkgSI!FGZ)Umvw4cj|Cb zK*8k2Jc{zn4>q8HS8^#OoQ9~6>yfVn>IxrZW$Kt&!Q~6)=@?A%Xzw96 zLd3NG@y&S1E^c(tM_lnskTd>yA!@7W1eG2M3PLMFFUOR7kYypJ8H0N! zR-uyO8@>R)`PxTD?NlyuxqTCtT1!nso~jRzduL%1qQ#~2L%P* zIeGs|V9b&3qeuygJkpMd#%JJL8;W13tbyfY=D*GuuC7V1U z<{sx7v2(94ci2_a|6uVQ61d?wx%~GCStJGcT$31sy7~huc41IL7E6zW-9=Uc!Oy^2 zwfOnV#jbIN?kVyJt7XEY=WjWh$WLKC*jW@DoMm}d1nwrmC2CVS$-e$DZ?=^z175i^lX_t1g(-@pzK|0Dp|wlIMIn<7LSN>7VGs+?l4ybM3RQ=fFl4#n+84}j8;aF4 zK>rUDHPXIo&p{!U0v`Ue$KPP5ZP@SM!Q`V-pc0NmcE2aE%`O^LM_jD1!=J{TaPa7C z%(EL)c!ls!vTYhX#Z@$?itVljn1#H%Tp$P<|Rxu5_2Bu#3XZeZ^2>A?XbD*aDX_Qc1w-Yowv ztVFLd=h{ENFa;?D>RIB#g5oO?Yn(jE*A=^H6h)o4E<{~~?JNa0F6Xr(!K*a#&t7#> z?{B=252E?3116qw64I3C3O^(g>7fL429nT|f9F~~L!xm__MQC*N(k>9v%$wZ_&+(6 zX(fL6Kb&OQ<{6jDgK+enKKTNdz}Y^7E2U!9N-YGh9#Xpg=LMAG8o=0drtI^pb_m9s zqN&FG$M)y-k=f$&NZ04)8|n+B1Y-`Z7E&2rHE&q<3$DtsK{f_88F%<7BR;~X$tZRp z&zmU{?;cLi!|CO*30A+QM^0QhlnE0bm;D`Ea+hM;D#~BJp`$DksnQy5-3QxI-%xOA zEQDp>a%{iF7XImp*BS1+wGl`bCn4aNaISDS$VDgP$IW>gf3ur5OI4cw+X!_%g<9~- z{!*U9dKICpx}xk)F~`A!$IWZ{Z-CcaXO#GuX8~VOq$lfT4H^<{Hb8hSE54D%;#x)E zzqsfc@t3nd-mV(Q(lw2hX8qaO0Q!$xB7S#ZTlj$4yCB}d%zano5 ziSkf|W4wC)dA7G2R#Sok*Wezo@1LcoOJN6QSyUr5+L7iz6W#sK!7?F%u(e4T$@fj* zos_GBQfA2JdEGPh++oDED(i;V8(x5@RH9*c;|S{eD)C=h`nV3J$4~G?ejvp7QquZ z!|PVo?Ov))Ayy&6JZ}y3FQ&=_%(+aGlCnd|tyf`-QCdF&O*m!N?&{v@OWCeUhe5M} zzp*FkaTc%{Tp(F?|l`3-l09H;FJXFeISX#a~}?g~Cf`;TiEubK#Yo@dqR^grWJ#1UY zm-qee3sP|d>GJ4CRW#diYzD?j%TwNa*W~m2x2yaB;~4bWE4MdmG1RBXcQF#(%J}62 zXu8VbPf8AVl%H>hW@7nzRn~UVeyb&m*{YC77xL1@7vw^l-?{kT=N`<^36y`RV0N{> zbt;Z8l)j!;jZaNW6^+H$nG7ZTV3D{S3~c-SdUirw@js}D%F&w^?hwwvvPHAIOPFT~ zHFOWH$%h&pMu(&UkW7EK-xoA>8K9RkzLN!X2Bj>&v>RwE7KA<)*v#E<`F{A31r->x z74x31=@16W*nDaAdF#ZrLouoSdT`aX)7^QQ@PqH8s$Ttxelk{fmK=L|1lwIcy;wWG z%mf2DtWO_5_LVDL=n&K?_+9&{K{=him}>gBy5z-<>VxcVcU;sNhu~J4d zg~=JZ_B2%Ivi|Hz1Fsi&n`36b^{X`mA0oB~-aepN2lI?+Fkjbi5hv_XL$2=oi+AHD zQ^ae!SmuW~Wc06u7Uy#R%=AEgN>dPJi?ps580tI?iJ*_dwp|j2xFd$yzF(nEoVEO* zlH1?f79&A1K|B5gYmC4db@2lS(DRl=(@^StF zxO^krK4xoj0}^q90&fdzzatx&QkelnYXl<{pIl~r;zOQF+egL>7tLxJn^VEp`zV zjkrwSPeN)+lpc9e%ut4;hLGhlX8O_zFPj4eB`VcS7`mvxGKsX9OEHqc3Km}Siz$sZ+9OWKljn8nCdM(B!EJPXs;q;qKMhZ zaF3VPON;C%Xb&bPadvSPPhLS9`Iv zRKWRhLCo_~YHE!7K^q?VOs8c0jmp~2&-=hMNko7yM=I9+aFv>C*ja@Bdr+g7}xo2Y_#ABOB|G5Tw%4skr`8cn2>WwnpNl^6hNyI1pV&1nlK1Xug zE zK8vdA{b7T~22ihOaOsh^vW~AB@SUVyP97@~Pos&4U>-JpdgZG}{r)|vF+Uz6ut@t_ zVd?E-F`BjE+N4Le1M5kN!wQRHi}cRd$|V$S1qhh6WWhF-^Eo;PVabook-6rJ=*Vi4 z(PY+@$?NIbytLy430~a2&Gbz*OAV9Q1q;sy^3-A17jYgpx7DRtCuiZy-qysq=i7Z; zO+L3c$)0#2KxT$9-Rsw#u5u9d9U65rW{1kp5>qjUjTt1~b^Db<%G#)mM^4FcVS-7sD~3yDG%L>V8p>J-F`2;9SJ#1Z&Z@?t7UGg@~de%$Vo<|ED4OP2p}?J+kZo-Hwu7{3?D*L##O zGd;C}f8fvG5%?xQu`qPU!Ucu_h=Q*EAS$*X6k@r5Hs*W|RFP|EC6C1G-SvS9; zLzJ|P&L>O@U#26M%V(qSbgi7ykBT5z>y-d?n=(2BQoddQy-IgZR}P_LeDeSU$oC0JP3_<#o6p#eCNsnl9?B2EJ z0NEq=vxwD4^Q!w8)b~Ba56h`u@;i`(huCGh&C3((kDWJVT(g1OaZkjtec_psq?nU5 z3xVhQY^@lTdH0QTG^WWG4&S=LBIR_+X8&fkn16r;u6^L3;5hC^1F_*Y(ztO+dIL*F zPyb(nBcYeC1w@CDQTP{a%CSza;;)eWn{{1x`knuoSsOK~d0Aoc{fUdG5+u?^FoD=N z!gjVKBh>QZl*wsvveHEdOnWkD!)=}HQ&Meg6&y&DtNNEP@k-PzEgP~;x4=+CrOd{q!0+EXY7($R?XLFxXIVXJgX9OSOVlz7{vm3cJSsi?%KbA!M3ye?7UH zwFm2-ba(46F4afl6DH#)ty+%3X||5>>W%*iou~H|f7*lxk@GF{fBy7|Rew=k=;!Mu zLp>+ybmor%1E{rgFV<7F-#Y?rA|Ybnfv43=Fq=;s1V^ZsZ z%#;9oF#EzdnoUDpfGv5Q@fil)+hle9Ul`xY7Hh%iTL>_kVv!a8=ezUvSyAsjkAJ57 zfBDfjHwg#3|MK&deKe&TpF^|K0}WqKgQy-)5b2r4S!#nAhxaz`=Tw94=A7UUsCQ1@ ziAxN^bx0nx8r-yAJ?D%F=sJ27Z7G%Lda1g3vg*JssyTMVUcVSVGrwLXbB4I-8z)On z1CChDTr1K+1W~aZMo!y5pTe;WHHnexI*3Qbis^{uX2|b#N!3e*$9coJLGOnMSoPA> zm!1PasjHQ}d+<>qRJJ0`^{{y@DaP}JaVA&fiPXykuwPlV@JGKAEeo<$@H{ancb;@G z`x)3R>ge7{q#p{}O9S$uwLPP`f;#HT)x+!bs*YeE?U6LstG1Tj(J4V5;3SP-;k&UP zQ$N48uLPSj+=0|5d()E_X167V-bPW zqPk!(jA{bQCtj1!aQmU*;F%#^iB=;!2wz109;wT-1}qiU^NIQ}_lSaTfO8O1!fg0h zoQ!3yN$}xJ=~7mi&`#&EoL>SmUgQGEA5TFBDGF?+F8Vx7B7h%7(&P+5m+XSkmxrYH z55`G)n|OKg==9wlD7oVOPj~u<>Nji}5}q>J3UoqmPT!hc+cmQvSo>!ED03e0ehr-b z^6@pdGod7ot53SXQYJ>E6M2V@P~d&NI5pjC(EPJ(s{!@+N8rg!)MU{fM)qC$bM$Y@ z^UX8;r2rWT0WC-UXa7?eC5^F2JS4j}ZM7i&z{n~MvA^7MqX&h(1db%d`k%Hzztoyn zTX8U8zBg}8dzKU<+G>y)J>R4m1wZbe3j^W}bIM6EL2=wFD&z4fV4)%uWyObpdHL*# zpDzSWRzkaxm(<26c`{*hY^sV@c!$yokTCNrPthJ{vzLwtA+(_IlLbKS00B}u^FX}e z?19`Tji21&PWG@&MagL`x+_|RfB=Xz%2rUTAtwuPIK}3N{~Lri8iJUI*WY}?g?5d| zoWMp8JM&IC5C|bC|CSNb&&Q6#%Q%>5;|e*D2PF!yDdH01)8H0Z62907+SB+pKI`6d zG6b`fUXCS~HxlSS!ONO&DGuX9W=57WZ@DB`dXJfr5}sy;c1H>qoaXCVD33FGwjKp{ zo%H+=FE?qzgM9{VnwC=5xIVm8!;foE|9%k7qI-G24&GCCZRyaoYg01-_a}Pvx%aOMj@HcS3<3GTWWvh2)LvDO z{^F`BnD{AYt94bvm}1&ysA3#RF7@)r?=lU?NL!t(u5(I3`SSXnikSv>)|W$F*{bX8ytCn=FIx7mb+Kqk zZ9S9BZl8Jg2tRj!9ZQ}Q9ew>rp1z4JWs{Yfw9qj?I5f(-`zIXVM!S0>ci7KtOR>dhot>)+PUg?keiY!mmY_MKx7ira-s*Qy1`tGk z!L`h09YDs%W@*Rl?fXCUMquHTL7auHpZE6~k*Z^->&IW5D=+_g>LQ_`LOe-hN(JJ_ z*D0H%qrb4ao72)|4A1$ z@K2o>8C!CUvA{Mo4(!sR?!UqJN~IK}_#CD}VEV>$xi>})%>BS_Tx_8d>@^hxyl3=<^ z;m^wx&yY04ok*6aM?Zu8fC3gq2cV7NPsVCY7#*F+DDy=4nydNegMIaI6umO>W~ zS%rZl5x+&CMA2WRqidms#Zeh*npLneX_2Y$i({IP)c*Q`c7GW4G=KuE(%{Yjm z@6XZG1wSHq@(z~XXwj6gf zCavkIoH78~WS5ODYVb)TnUH<_oh!*Xa)DFR6{qu)T3r0#D=@1dI@6~mAMf$fq9!{Q zA`&GIq!W(dZwRZk*PuR+O3LBCt6PuRh&iqA2-0*X_RelUwyNf(?-xGd>N%nV*WOCT zfFd;!r?r)24Nk@gA7TN^?F+6e^7i0D0H=V^`u3b3WWKG=hU_VL@2O(5_mwa(n6!Gq zw4%k2@5vE{tXEKF&3S%ngX#g;eb$6GM8VqG?A}a~5ZU6Q>TvhDZr3By9hDKbI$~~sv1OpqT7Pj@GPYwvQynWB zGXsCtF8uP!k?sKOM=GLQA6(BN?y=oC@B^EvQ%r zm`C6VP;r=X*jZ51K)UBh!P6DPc(-0c@sM&PsqYL?mJjwjE(t&aOdGnC)TeCi3qWOL zOnI~#wru!q*!0~V4YwF;>+ZjwNMzXlU$BoxxWWeI*1YUGufH^}H+BApJ8ufeY8Ys$ z2Q&TVHJ>%=)iOK{ksBB`3c1*Y7byPpWiCbvVfuKO>|I7vOghss4q$g}aZBR|f+?w2 zFY@aM>XlXiE(eo7eReIcluvWH%|v4ge03I2+~4EV@72X2R?S^@6tJoN9wX{J?+nt3 zS07r8ARAKAl1No&eA)Y?ncDJk6k;R`77#?4xuD?4k=N!ue4cW%BBE7|xS+P($bSAU zS-T_Pt+pG%^A@gYy^~rq4RL`;^IGN&PAYSlD{OkBfCnc)KYJfz`3VP-r11P^^6UCy zp%jF4!`5mO5f!5U4IY8U^LhOobh9}YP>asAv76ruJD?-1@RYt$eKcY;2xjBn&c>O# z;PwiT#!}uJYE*J$uf@$S{KGTTN*F^yMa@*@rakIrli15ELgL>0M3A}v5Ps;WQvmdqTx1T&F~NEEDq$n~4WW{s|^1T*2jw$Nd)W@7Dxu?z`-v}jj&Yac{A=40PXTXsWlO@bHL&|AN{+%O3 zi8*Q3;)CVViy^6TRsW*F1ug0Pl?ur7nlQ2Oup75V5!{_9>7jjaL8~3+d2=FOM`Q9> z-^6v@aq^t$Dt%h-@mvXMmFa!RY_^<=_|f@2*I6(EJ4a^O`-|*S=t$F=7()V318$k` z^v8!`;;@OV{Zy;8?dY@9)c&d`ZMUA^yPmQLjv_|&a$BBE@Jyn~3pYK)pJISZemw-e zRVe|4W3-F+z_ZEXu(0W~x&f#-`C~Pz0-=9$!C%v7s=n~`j=s%x^&sIfD7gI)+jhDm zcue_;&EUoJekOH*tBw4Ipq=H>&Pd!LX>hqMf~LufAuw4#z%hRi$xh5->wyiiSv^9pFU}y}YD5D^DX&Txe>KHyq`%iJJ~_+w+vZsW2z`Qo{B=Y^7FTmGTYb#OR!LiY z*z=m#SMl#|cRpw%{xa@1$iT!c!3K`Dq%kw!(6F)J59cP2iiPhKo@BFUSN0t_COqyf zVwSR*=q-FHwO|Ffx`a)?bgHXwm)gS)ejBV-0XXjSGOoKb^`OL(WjSNyXJ5SRT2V?p zkKu-I_9U|iDbeHG+V%suJhw}VY${|Bjq#skJebi^z1(z5W30h|qcx(jC}k6}F`Gy{ z|ArdWR7eaX*s17ourCf&t=K_1SzYUDP z*LCV=|DNe!%Q7+RxhlhhXN;FlakBc?9H8fb&X)p{?|A4k(GQ9t&8b4e7~irU6^evVwv zOqI8tD0s)CI}Tz*Io@VCUVqcMeB#e_4k9HZz^HyhnlQ!GB*O zv8jX*XiYz&sl`fTCN~`&c)JH9Q~-jfTUTTpkG#qi;lLWHUa!3c2Ho%E33s9HjZ0VW zS2g3D6yBi{Ydf``b-=B&1EgnN>;9Zw(ut-os zoyu^l()UjJItAbA=wHcT5_sA5C;@$|kl{oM%|>V7mLI3qbSpcc!#@~vSLt9?elbAi ze5J);$+dC$3QicRP-{L+4z7Y!zmG$V9Sp zQJ|4}Sb(rOxC|n_&3elpC&uFTk$_rSY8DBhWtV-MVD9(1Kt<+Tl7r7`ZJ`sca7)DPoluU5Ns3e|<(3aEVJ%d4oLU+>WSy1{@nDABT% z`GJHjAY}U;YeYOuIOLIas5bZ8vI+|1lxsO7Y*_8jq2l$59;0H92{$4Z1^GVxKc?O? zE~++c`$Z8EK~Ozy`(=K70A^k5Ih{v-RbMZXKYzUhQC*Z))6X!XuAiv^KpOL8je30ixekV3%dReoIQjL3d}3ALCi zOIz$w3*;B^ZhPX^g74(N3{`DZ8z?UJiE=|C|!GcoedVnfO)??YBl8L5LkKZ z0x|Hyv~{bloCK%CLz>7*GFu#)i0Pg6*x*D_aGFrGK^@m4oNku^P;xr_;n4}Q#NEB! zdtAaj_-=hsj`m~RYi}OEN1~R8Cg(S&a|Peju45@XJb-8X8C?1|=uB-2O1^fz0P+h; z^Ssu^^zOY-LBxi}q_{v-KRsIbS^FkRZi;|clWe|5EAo57r0wqEtn*+x5dM^uM9UQU z7ghp1Q@@8pM5heJa3100ANww!3QG;(z^&P zECfmgYnNIlTpb!nvCj{t^0U3RyN~RfJ^{+AM58E_MX0o6j&V*z;~sR@th2iicoO75 zK$+Q+6&`_SZjJ1nqNAvDj*wL8>FawssPp;g^VwE9#PVTjV5_WZxq-u%Hj@~>6)c~_ zq~JAHk3E{03myUm184+ODu zIU?n~X>9LG^V`>^$pr={cWS*wBLX`K~i9>#?F@s20cZCbN~ZJ`lIxP@X7bUVBnT(%qy4Zxnf* zbJ(}^(zDUhC`lEfpo~<*jO)bQ#fmedo)ohR9Z=8IyX;_|@Sk#&ZsAs8ISY+0g6yJLuJke z3#O46K=XU(hK^%UzEvn0k`mzH>rCfH-h&wB-Zo{CAQY6%9U-I|Uyj~J@c&Wr>cM7w zOVkpgV_(v3pInOaa{ zkZ7H7ih9s+5$s#46hB|Bb}FKr#>Ae$SCsmU9vU!t8iIO8b~&M5&M%eO%sa4W0aQlb z!R={fg7)~6h=-N1Rgq4%Yat)^bF(`oXQR37o}9`$LuMM)P@&4L@0Khga%8O%EXR|% z+K5lo_MXiSJ<&Y-(>6sn`0EQcXeBlmuRr)sM%(*$+{o@)gre#vBzPveKWQG$82>u< z^#`T%7&xlEupINvez{GFHgWSU$7gb9`xZ3v158aW<&xT{=*E%!3L*WkU+W*i__}NC zk4CRCi#07}K0EQD|GwV0WJa}m?sYTC=3;TfSD>pacW&^Zy|B*ws2_URa3 zWJ}(yIFkFtUmAWKQ8p;io8-70{A?>W(ZLBhW9rq^(w9WYcYb&uVf^aDu|QQV1T@MQ z+I@h)1-B|ZZLU9`N7V?R%ik%6RjqqVbzWB6Lb*Yp2Jfy*TzNL%X5{U)=|?mJ^|={|*Bd`!Lb5IK!e*(_5W zWaVl-bKA6ToxK;T+4T$HN9+{VajXx+>PpNzYrOUw6z)Xsm(yim%%)mNnwhPfF_RjV zO(zCCSUoblU-ECc<;6azSBkoCCMXuqVei_Pnj@1SUmd$93a3#zzpE^@NQ?L|robDHP61wk$H1WfCo_upD~E`k-Lg5Q2fwc5 zbkBY0MQBid{C*u+{8S(bU{~&mK#AmCn}59^PipeK!~*Oj6EqN&8iFnMBHNVq5pB$y zw~j2@!qT*tPdnlrX zyM?|WF>^UisgLr1G6PheQE-}le*P(4@6ziMM5oG@*8P8U*K>|(H#R>vu}l8I7iZd& z4cXpZ@+*cwHTRX{^s(RdF9~{83SNKaYfA;C&q_)x>Gp5kj&|FAQcjuLjH46Dyx!39 zP{#OqD8BQZqkY#%P>-_UER!zkW0YAu}P&hF#6;0MX~g6q~|6Xzx>6}(`N z_MvswsncAljW;+k_IR%$G|*Sj^{bD7eM*1Kje14+F?s@W#OxAsyw|9?H10c*?*{J# z=n~J~3f{TVyh1!4bPiTE92dU{ppyOqN_VazbZL4QvJGZxf&wNld_CPe@TNSj>TNiAx^}xe=*Hc*q~sM3 zTf-)zU7nFurmq$7)qQwA(1m+#fEg6_1eT(9wfl}92yQ@E2=>t_Bs!6q)kZkOD0`AQ zNBi{U@fge4@25HU4V-UFxqqK=q3@&A)a{5sO-p}rVE2t-3mQ7QCi*(!XnJ1=npw+t z=_XnrO~1XnQ2)cA2$k!zTiGf5b66b`y(JI0;R<-+)`-R*jm;F_%a$Ikd$Fu-;Ejln z{-f%fP4-&$nkwn+U_eBaY+UhPA#A2wX@Y!(Z3q5<*Q4V*ml+ySNS`op{#vL=FD$60 zp|K*n?reJJE%CI8oUTSylr=Y0v1so8{jysmJ}};l^)L0b{d}lNcX>2uw*n;BH}8LbWu3EX{w8$%t)2V$sOTJP%v$}leed4FKz%WA+4@;!4oFTb zrm;TqjgLe*-l_Yk9s&o5+f)*Ub&a0Rw=zJ~J{6+;d)XlURM_I?+UEc#V1@%XQ;5CZ zoL3SL-a?JCYif*Y&0$30P>^dMdF`17vVRrgKu=sw-djXrx?iXK+D?r7o_by);@2zP z-hNO->3vSN5dE;M*?-loy=toP4~J17=zvOG$wyEs51i_MS;-HZ&C5TFBk9qt5XPa4 z_5T)F7nbt;y%JOsUF-kKY9HiUTXF{^r!zUYG5*c)v5?589f$hn zy_!zZfP18=xPwm>Nfi?Y)J6A2_k*3{7ZwCRl#&j<9<5K7MAW$cF&<}h-Y*_-?PL!j z(fr2W_f~17TKL!~sP;{B6!jx2*Q!P0-np|~5b5P)nY=f4ue4Wmc71aNOFD;`*1dZh z({zLyTj17+{%iQpi38ZLL7LX{0=<6kuUD6t6i~FFs#Ki@DRw zZ`Zv>_Sq%7`NSHCW-%m?N*9APcn!j;} z@Bj^5+ojx3Ia6Qul0k3BJ_=`7X`i7;?X339zPR4#T zy_|mj6D_>?Ke|qlT4ET>agMiSfXG|e4#Y}oJ+HsjhW47+$Mi2#?G|SBVCC57-CM(G z<5q^Ui>#i5Gn=HrzKuDdGXf&?0@dRgC#Skyl(F5ZX=!-Zfx|S+iCDou&H&k^i%(E4 z*nG?SOHj{UWc@C3_VdZ=0)++N$EGTr>$tJP$)Lk15oilF!PhVa_*Rd;T8<`NSI5vj z_1Zy&Uiq~12fEl9WUIdLPHFAkblt~RckjUBnhH+%1gygh&W1*Z{JHMub#GE;S!?&U zW(|C;7l|uv<+@^Qaz)Z|=;;(nRmwc^KO8xHpU>m z7j{k&-ZTx;>~?cHuZR3fi6r%K#yv^@t~-ZnIi{R=?Q?DXLk;a@>CXvVr>G`E%sAZ? zXXH}S{thHTc&6}!23U{pg>kz3Q9K>(4yB^G>abmPc>Ieh6a~gLi7mz0Ypz1kB&wB5 z$euoQ;#FZK(K)5n&l@oJO+r}j;E$uvpZTJiBbOBleV=U{V8y5{eJwzj)CT zPzJ`9)fNzlXus3Ae&3PPB4e{R;tOSjCCk&6na7~X7e$s&{itiEo|*Mz6A>vMv@b_u z(w{1Xyf{-g3+>r-o83Q`FNfT9FjeuNemuo=hVkuV8g$+G&W%TF>YT_9KOA5DkI}hp z(%FC8lvGrGr$OR*LcHQtyB3Ut{mmd>&fW08Rg{7i@@Sbm2Y6?O}mwXBPe4+;OcPN^^pL0U>bv;Oj zU#7tE3pSx|+#+h#jFuZbW0%$y+cd71xTuM*m3ueFY$6_%jZrur-H`fmKeeh<2>d&@ zZW*OkLY(@r;&4GUS6gGZqYE|7lfB-9UW0Gh$ou-#bW-op2T|11Byu~KR^9{WxgYa} zts}NPta)8dx+?L*y5iF>H;y`wyIt= zaB2AK6=@!NTzw^mj^)w4S*?J!PqC`5KZ!^Y+0h5`43b-j;T}y) zqxWwnR%}MHCg4viBbG+bdkEhK^YV+j;wl*Nuu7B&NZKOa{&)?J3ijva#xbPb4rN^3 zpnfwADoamvnN_KR?}#PAJloOu?Z&PcVncU(h$BJZ_ZG|$!_1| zC^)*Jv|SBY^u{;35eMHd zM$Jc@_lLi^l9z{m`CtR1op}#=O4O($lK_jUcZ9d1zyc`m3B+)#@D#hbj+sOs4z46H zU;UP}s^_izNC+x$K+-9ha%kQB3*$H;@EMnHy*DOl%~_GOMQJ_XMIg?^%%YDYMD5cG zXKc&*OLrWPIUNGaND;%oRl&OvG7?;!_lEq1IXGK;a0<^{$>ap0&H`MS*A9kSy(Je6 zNlc~B?j3DlHQw@$g1>)N&YS(6&%R!6n=p<vgFYi1)T*SyvB0@<=DGk5 zqFF#$ycqfJ;WHU}KRW_bhL5hsLq-;b!|p#C0e&+)^!$4|IGCNRW%luZLyJuofqoJ(e%B zwgl~nIA+Tb*-+wj6nK?}kmn}|lwbD#b)ooxH5Zs;f! zP!M$+dAh)ebK30Gz9Hm;3$cT_+y7a@XG)Dl75nlar-v{5#ZDOhXUE22I}pPZgBCcZ z^EvujZ{KjrXqviu+RobJfTYX-_CiFVTFK)32rdS($(*>QAsaQ0ZH*JE1c`7?hsG;~ zP^K}l#R!1`A#i-igjXQdo*9^rf#luuHSWpD*{hv$d>g~M{3vfO3RXUEPt7dc%_ph` zxZ`pb=Ko5x3G}UZpJ8~ODc`}jw&GRe9|~n97B8(nyQR4+1)_mlD@>ucdQS$WG;mHD zJS%oZe;Kd{OjmptYNTIeum}xIzh=$GKTsv9?}glds1-p*EA=)+a2e@2=AIy!#xni0 z=uMpkc9Q={N?1-?wj_#JA}zc&Sgi2;?1sk8lSS%Jzu~J0k@>6P>!A1sQESy42Z^=6 zb|GYNoths9GJhzIK2S~gwRG3B4We95=>RDZ=2S3kMM`ENd;ao0!mL_~~Q`7&T1u=s%G zeUDVkeNSF9mk~?-|h2lc8k8^c{9l#cdg=!o*I7dPC9s~K&&knrXx?|meCn7=0?Wc=CJ z3TcoBF0ztNn^DTTRmPwG@}LY(p!;5QqpBl)ju_yG6&kIllPXwfkpOkr^$psK{{xBR zsCJ~Ya&Kn05Jh`YAxdxAsG|Hqj<(p##49X{O3&d?@N6ThWDG2T{L_hP1OdkqSwP|9 zQ=f@Pzl4PrKTKK2hYX)=J^HuS-b3vU_T%M@#*z2JQZwIfWf7~H1+$ho3AO%rz9nHF z7~JCQ9e_3vvoe?WKpl|^ua%e(zT!rSAC`rX`*B8r!ueqyD+aeX>-)70ag(3y8z-Sg zWPUO(jWin>FnA0pimDxJZh*>KAHSPU4G26rxCnJ%bJB^NGV>E=@fVRtAG* zIZEsA-8)=xE|!){Y}HfPqvpJSxoKb$Wi2+!j2y;5hEgWi@CL9Opw37|uKWVt>5*rVp$y z2C&W{ree?F`|5p~J-vm3m>vi@+G=Ng# z>Ck?i)c|nu3G(cqAZHO|@9`N-N1yOG{hEs2!heVJWwmi%snaAmSnQ(0NjKh6gQq(Icy$fN+1g*ZKa>H?Ctkp+6EXb_e252k*v#){Gq*&@=)m zE%jugtBfY>g%GbgeiNm=&cZQxXiA|tY;dbt@JhOEc-n#fh^|VzuVmwbtGnv;vB4Hs z5$m}&*aKf+Q@to1e{R`EY#pcTMf1;9yTHRHp75AuWBw&mdtd$}-u(J$mim)veJs2? zxyKJG(T{QP{e>7lx_6AOINgXx+p5eAfz$XbkKD>ZZP(_nfu|#9qFKe)jw7D;YbiH= zIh%GKtOjydyqa@bQ%sW+(pZ`tyruU(M-Xyi;wMj0G{O;==ytL(kB10}8Winnr-L8r z-kx(#u~QZ%)p)7RJ|sM*B^zj$t@u^K_Tj?3Q-8(8C=I^6M9}6x@74~#rP8|Pbstrp z0L8=dh^%*YyQM0XShEnS#>`&%V#v8XOQfOZiAXP5M@Jd45XBNY5%4`VI+@K%3@YYX zcvr1cQAFG+2IZxEykHNhpN!^KQdME7(Tv!~^_P)%a4A+JS?}Gs?i<;blt(JBbrx<< z2`QM9=M6fPsqRM)E9&w<>;pqu^)dcdr=v+pZv8<1E&rgU??t>1K4-|HOQr=2T3wR;cGU@?v*+AuBUmAEi3cfATetB4n$9QC-u< z+hL;@U5R>k`t!6(aj+5$<44_*3nmI2Rej*IJ#sx%uBo}eQLMBK4mLNkovlrw7Cf@= z8JRtUUb~7Ui@j-x=N$B$F+KvmG@L`f_9|!gg*Zmuoh~pXa@1V+Zo9G2D_Fhgw>ze1 zT$rh+1?>7wHh{IFok9nPACeqf=*(|-ffE}*Pr7`G^e5KB(%#gv-qZ)%+ZY6S<8G-f zRw7>NYpq!ApWxPQ#9*S}yVQ?O8rjn~B7}ZtE6`$A+S_R0-{0mJ)mldf;M?*mr_?0( z;+GiTHe0Z&pzK{NgAvB^eTTQT_tVMk8~ery%bu40#O45UItdL+O$&&I;HKz3KYTLK zl2!1p3;C~RHAW7$z=C>j8bcs18u;B#Vy6uokH?GmnM^g&t0)?B4SxsnyK}$Q$ZyuC zc;L5k)MtMis}xfJ(UeuKOHCi}SCr?DQS#o^CN+t|&aoM##-;9y1}lFAHIn&CKD9<< zK$=O#QG~s03+GSQQc3$kWP(sJhTy_Q8XbC!IVMZZ8mofGsrWPtXf!sa4%D}vaox_$ zucTu>?n*C_;c3v49IdhEj&oL(xZ^=~SES>P%%S@gnySU=|C)OA_V{PsZ6uL?BbM1* zGdNt7m!d(Ze)>gkQ`{Q$ljDKgK5Kq4MO6ni8_BlN&Dub%h-+?SO5psFp}xos%6A{K z!e_sYZ~(Wnbp>R6s6P;xMraq!UpM&~WtkbU1@xz`-7f}%$Q>%P-G%>@OV2qej3j^1 zW|xOdR)gQc14pTvR@z6t9eei7 z>Sjc?j;J2A$h#A(fx`s7(Ge3ivW%LuZJS54KiEhH=aXl}VWl23dqjQnmrA&mC2=F< z9(DxpB^HKuZ+aQ}Enj3qLR+H$pkkI-a9`I-1?3>GM>6aT>yNslBTgrU;)v7+)>OE!G|I#H4tv!=G7e-S${a zeB>n6Ozl~(w4}>X)b4UEuz3p5p8s8fy*>UH*C~!3RoxTha2z>0aPTF}wD6WA(tx)2{{SEeQ&PUuHE`;IcHvf7=+Es*xz*5t~wGRJie7&k$JG>gWT+_h+(>;761DRdyCC@ zr;9G(i65j3|0}CxDuA&Ypg3C%(tK?{do2A3N%v(q$vu@@3$CTX^m<=7m7}YDOy|;g zc$@;h9HJ}8h4H3Nf6kK_3%_cG!cClf0GcDd<}d%W-&u+C;22uh<#c)S366I~drO0OIt(U$+a1{WFYv=>oM z;;ML*j)@B}0BR1S3l9p&eq`f?%3#>*YG#6^Fp0{UBfntsmPfg`2# zLL9dxToiXD%YhL{AizvF=T-bepuz^jXM#HeHl`R89U`I1*X2l=cS{KPpO@XrTiTvs z_TYzLy^q$}U&y{C%P1#dI?tl_NWA$)H#=dYETWZJIHSkwFR>r5pwJwQT50^Fmj@w^ z*==#KYm1haARTZ#Oe(o7-0F)Ay7B61MOohf;;<*k#Mrri47$^e?V~JVL=o%)a3&dh zpA(3F=jB!-Z;Q5jKWKlQ@W+%u>r0|kaatfTB@TBm=zDgofA*6@0Bk>sP`B|7Rr+ z%9>jTQS@0cDhd8FA?Q>%#%OO-6A2hpXKZd{9;>8)621euh+)+|YSGy;no?WWJuR8! zw=%u+dpm_vSLBkQ8(J&G%D3eyKC{RQE`t zdly=yz?eSXZd6KeLW~f7q1z|nmwTS`JoWbxd;piHs*(ysgNWC?Hr?M*3yru_{miYsQEY=yp-oB=r(VfNCdU-kUWFVt z%yU31@6()nAqzQ^z-ot{P&04Uv`lLH4jhUaZiMk*xaUi+h@cGbG1?nrxgVRnR+kh? z!>$R${KPm5T!-gog{0oiRlJAQ&u3W(A8G$spYgK8>bCq|{6Ge%*glE~&xaUhdb=AK zbHjd%ZRC0DQu`Eh1s4w5w)(%U@m+%^5w8B_9)Fy(*$;hogm#%e0j~UMr&V8# zS#ecv;KBoJ>=9vs#L4=^QbW+kFiYHcg{utadnj8t)RBF^;eJ6zDo#Vd%{n`jj6s^* zzL|Z~$fGm#$j&spLQKL9vAI7HAf?+g3=ERwbCnRF-FVazqKoc{^)wm)m*vo(E>0 zMG)v`rU7}5@2GpUzBb6{g9QxH9Li76S_hIrBeSPIM&S=NJ|g3SH+Ctoy6tSzw(EPd zkoqf>t@_zK!Dwo=yO`|pBg|i@FRnPW0VC6-5+(3uB0FelSV)rImGAxe9}1Fgx^w^| zFQO5?gW5jcR(#%r{zUg&i5Y8~U4<6oE7wL2JcJ1pm>%k)QM4v_Tnd(ppk^9@mhy=i zu&>t@Qr|6DkW*d@ePo?vo=^k-94MFlyU$3w0A8^pX9q_W?jd}zkqQsT1w0t2RuJn7 zd)QZe@zX+*Qr8>qezzIClpBB_JcLdQRe0~!zk!*1>3}fY7MEWCPc9ahd7`&wJ#ct4 z^>ts>#WSzCzjx=>N+x#bHb}A@#Guuy7|~kdSS%9)#vtDME8o~trB~&p*yoOZ#M}C> zcuf)G6{1{+O%80A{)ZA?-S@Y2kzS~Ew8I{+Mr=_9MT@Q>-~CG#A0BVJGKy%iFiVHSD9AByB|58_~gZK zwRK?5_N$pyRJd^tiuhh@kXxn|>9to;O{aSnVGb8RUs&N9&mo^e6nT#cF2QiOrc*Xy zWW8wS*p4@mkqT65GB2IF_vOkYX)soFs z#o2mu{0q4zQTbwlo-}R?VLz)cx|A6=H*-+G$A~nes={06FNqVzplT90Q&8t9L)6_1 z$1MoWv+t^9H$g1@CY}1l2v$mx>z-fsfT%0v%%VGrv^b6kxI&eul!A}Bq+jfbKiA4e zvMP8}b5K}3XAE0Wr?Y^CTB8p-*vhmNVOl#=ill+y_Q<(l_W;t}0)(N$e37nb#Inl!uuf?z!B z7g!aZUH$)_?i7o3UkccVaI4N55v>p}k51hlUV>fb(Tu&~O+DbTp2F;r^VJvnN?TFz zMI7S()8SV?9`5LMh*`#QU-%)7Uj%zp-4-x*^B zLf@}k`RS+7{8IyZ>l4|{(3O7i2doJ#OV<>0IBZdV=j^XrwPt$dtx1#TLs z@n446Ju{qG!~PMQFx1JZ78v(VE5Z6^a-95{ z#h06}(zI{uJ{1&WH#Tyv+pA1$>%9Ci@S0m@x#2P>)RA3WkI5s@z1<(K$p0rcn}hDn z_O=+98GrfR_2s&NRoqDCK+Ky)F?B@e*R{*l8TuI}tUs5!9JgJ>f$9y!Af3m?><>t1 zvX`+}Z{$(*P}B#}_!|uz?}c#r9r|f62O*U{omwk_&+ZW?#e&^ia;Ox(WB&!y3ruI) z$MZ|;kJP148MbG%Xanu%3~dUwYR@;5Z{}@Xl?huN^e%g`2J)AqURL!p@hMp8U#MAh zao!NAqk^kD9;o9|%Jpmt8eiBJ^Y3S;fo9oSs}T{JvPq~Z$u7sNtcLdQt?jk(v zn*A?}zaIX4;^s{3#;b80hW}J9{#6)VW#uu{lxF+NFviJ zu2Tix@TK%TuMe$j{O+BoWz*Awq<9ZuG3Exa9%DupT(D#^>;RT^D3U` zOe`~9T>o-3^t$a0xvN?3LyjMqz$*nP7ChQsUxDYb@Cg((+260De~|6y6ce3^rG))D zCDJ-}jUyEKVXuzsqCG|SVT!axxL4RpTopiGQ~S&w;agIDie+*&Suvr{Wd&E=Pi&ac zsc+glGPQu4oiAvf7cv=VIu1$`3TUJ+(=e~<8hCI8Mi|SVRh$UiFfn={gHOwOJA6=C z4k+Gdk3`LZM0N!Znu2zFZWYN&`tjLlZyZtmNj)~haCZ3=G!``?CR z&NoYf$_aD&hz}GGiuqztXTPSHqhzQXeD18wa`kzC7OT!_E_v_B_BuB8*@v6TP<&_s zp(dn&Pq^klUQsHaPKL7$mGckzbgjf3m74|pMNqs9*$nJX?f6zh0eSQ;G zYTXjaal{8rUAMsS2!z@FydqO0?JbyUgn+HA__&QJ97S*3=DsOhd7dH`9(dVo&qJv1 zoK+Ki9C$SJsuC&^EndMF>`5B&{u3AFzBHsXTrRFY#lYgs7LCZJ3Fky&*pBI&$^Y_8 z0v&xU=`#ttDikbiRlvzTawm9T?9T!&Gf) zv5Xc`@wqenx~U2+G^5msFK0*TvU^1R_CwB^r0j#Of&8oR$-Kv&q8|WB#BoaLE9e;j z4GS~d&z}Nax6h|P@h}=oN8yWot6z56g&b5It3ZZ3N7Hm2dfKzY`VnvJ!p0(>WR=e9 z<1VEynkG?i<9jodq7HrD|MDWY>0sldL%NBLON=KREG(Q5c6P;Kbr1entOYx*yiIyn z)-NKDTt0U;AXR3ezPgQ{(-|zZd#|rd!RmAf=A>^sbwlq|@!u~)-Jhyw5sTC)J(J0v*MSl?kwP51+?Upysk#rK*# z4R8J?B}G^pfMxSZ})a3lDbVVE6YLRLeHA7Bw9|ZUcnM!w2CR zx$zHAneH^nqO*>RZ;pP_8AdaFhg$sLe_G6e!o#~ZB4pNIpLRRZGF?b*Y`E)1Q=Ls6 z_p3`(aJ{u>d#Z@V}~3U(SpD4|1Jw6tu|U!p=mve*V=FriOgJ{Wu>xu`RM$ zFpSXAjzQ-EI(zCC<>)}R50GkVStY}6J@BgUpTql=QaU6;^mNJ-vToG#t1Nfk2+(cX zhLGEuk&fA(YEaH@iSdrALB2H3Flb!X1p+|ltO zW@X*A3WADWnj0Ml(<8)tmbf@ss5#u5+~&CAQs?3$RuCMMtQC9Qw)`lyVed^-s5D^! z0sEuwbvG@JKB6yI#<%3Prl2HMO7QSgKL z&;|U5l5nG{0CL~p2|q1h@9Q9^+~qn5_ni9dPOu`@+ZHA14_=#C_(c7T!>wPn-#(k& z?L%TZB2N^Q-0r$N=YRqwyLo3V4+I-dh9y|6A5XTp4zD$U3n(0L@Pm@dPBt1&hvA*KZi*sA`D z@0jExH%>P2)$xMHdzow;ECcL|1^J5Whxh6h8f8elG&@4a^j{bB-A#8Yu`gnH-IdDn4=e_DToPhvib-wi}Gn#mI2<5|y75U!4webA8q!i~whD>0u&2 zSiRi+Md{9oib!N(Q@(MInzs8i`TzcZpzyY6oa?p!1l&LWN9QgfC+v#NSG-{QB7Vr;<- zUfT#n9XQrBr?7t8ZzR}P@f!0}^@Ox6_?%0Nxl1S;f6Clwk9)mKD{+|0td{z?XQ9kp zcwON^(wB*V*yuQmx+RJ&EBDWPNnqm&hsUPrxsbhLG~07Xm*aqPlZ29NicxPFO?WPG zM)@={K9do}A#4U-p0Bey$Ql=4u<9TyP1h|(T% zS?R?sR6f3P6KxGnBY-qxAFHx=11`50Ks_bF2L-^oJK0v%41*4{nWh zV~~!`0sCHoEArM4Ii4_+{=R|Sj83~B;?acUy19?lSC;5!+XlasApSWfrrov^y~JYL ztZLz&m3942{Yj3JS%yn}1o1Y|A?la(7nEPV#0wZx2}L+h|Ab^w{h|xYY6y}`G&2u> z=E{LSs41oY>uo`BW7J^Q(P<#7lSvM=2qhTo8?fz5ZneQ`xSYH`Mznh_ex2UO)GkRL zm=G~tt(dD6A>39Z5)AyV!tDJ*Zw;POm#4*@7lna+Ay+vJ`lCeAU?3usO>_V{`*UE~ z9yqz50sxn?e4Y$iuaNAq|MCsY>VGEYLmpXlX9GX!0ub!_2f#i=bX>^ zo9Y{Aw0Z>Y9qNg7q9#V-?iw1qOg$${>EwG!{%???vEU7IW6n0p0AzE2^SpxZhClIZ zUEF6Y!mn6VcdRnN3nCt@f$K&?^C=xi*Yjn3#RvXk=q#qN*^>Y=f?E3W32bpDe6R`Y zC7Xf@g#?r{?yHJhQeSCW0v@_w&``a*4*SQPc0B5#)i+NRlnR%?aG&oW!RfLbe99|8 zXRE{h3lQ~Nv-#V5nH}(04CsB=>^+XMh(P4wipRy@m$zhH;$Ow3ye(Q)ugzK0Q%NTy zqsA&dmwlB2mRa=w&|4?QUqS1GJmIKSFJ;kssXM%u z9GGs8xzWgKn?Yb`}*yuxUvia!XZXVq zr=jYo1LWcLDiB&;W;!PF!Q>1Qh9Wf*G0vkM`Ow46%mb>4XOTNq%UAc)twy+hs+_&< zv4a4B_Vl)o49!o4=Om%qko|gsnp>-@XlkSX1xP)|yu{&sC_8a$5H<4rNTLbNeM@P` zlJMB`#IkDc%)La@^6t|cmwLhL=c)d5PE2pyO?ALLeBkiV8OGsTLr|Dwk( zo1lM2Xpj2EE#w0k|8Msd9&d1)W#wJ()*~|2;^A-^+tQM^XD0PzV$Jnr`r1;Ae#8_B zyM&#I;*`X2x%mPy={Un4yVG0$wrXZ!!V``M^`vmZ1_IoI)JmS>hwX+XLilt_4(}_0 z`Hqe?*5Gr85^fFIlFzB>@1pp$#TD%86BfHp%BBEg@4xN)-{t6p{Ir~|^XmTAm^$xTw#w#go2jeV_Y6CM89}JS6 z_4(;0pl)r(A+C}BUgaxX%rf_VKILiF@Z~r?G9Fggco~0}ZM8uKf448<5o)V1D9jr* znnb#BP3P~6s3@L|94-y|St<CdK}900j+b2ty$R`@-^s`B=7KN_)*r zViKr_STJ)p76^@AX0u}F(>ujH!V?xh-_2o<)N5|(84BSIpu8-y@uB_zM-kRby3YnM z>R)$Ba27lFU;~5gfBO|?U3I>7Srd7U19i1iJs2en`LJ815mk)iQxX;j-2v_LUoXW2 zZ%BO-ZjK?QY~dl8iw@xIDzO1=K{UyQw{xeV?E--&0?a#u)&pld!vRfO($(7G7VQ|6 zMeXl$q8(P%=cWF;eWC-c>IJ%Hrrl%Oc-_EIG)or8~!!#NsM{hN?n#Um&mU|06}THdk&ctkuqIlm)LNGu_dpgot16k`U>xwSbwd$F_8l%$kHx4^ zzX7#vQ7;yRruP~K=k0r4NsQ*n zCDyW-pw}jU*gN3zBbgyPbr5weWT*HbTwVL zq{9qYr9QCsQLT}oT~>lmjm?Wt>I3aHX;~zmCobu?HLOx+5z`NzqrTuGPZZJwOq45H zZ)p18<0~%xMqt9HewRh54RXKW=S^vfcV)XoHC1wsdxk6##lar7gMUQI0R z%}NSXxV({MdEn#}EE;^~Hwy@K9Y-j@yj}^)r2&`ennMoZ4K$YX`W;y+>_k}~@ALiF#!CGU0E@YnvbXeb#OeT9pQXd2V=VLQ4ds5>S zsrXIIabae-s*8)P*TuJnCxC_P=bGCo1#G*E#66@lkPlY(}bX>T7QaOJ0(f z^p{})i5?!_ORae;N!JZOe>mDo%{@6d)!0H_^^cBxElaiiS*KHyv;5-P@`&tXy0ruP zdNM3jr$!Z=+~8RQkOo`|q@WQ4jj_zlHbmz(3!1$ufGZ6LSMsrvznU@;n~mBg(^ z%}sW~+~AGaA2#bYj2-+l*%6Xw*p)d=G24F*@c52h?e8grua9qqvy5cd891+3uh%%g ziQtf)Wr{VLciow9_|9p1HH9xnDM(_TD(x0GQwnWD9^fJUiiBpk%yYNK@8&3Zez@B+ zONt(-#aXrVs(~eYP^=UXRc6i?cnN z5vZdfq{EgEN9nv#<=@xQJt}p1V8D8~vO&`fA~^tWIsNMVZzzlX+3u9!3ie$jhrM_x zveub6Osl>2uhn%FQlQ=0I%e>4`Hg{p-~VG_CoO6Q6n%)0;OUFdLOow2gl>*lu((O# z(_tpQ<&$^fVeQ^j-PG}1|C*E2gGwLIBNB#hQb)ttF^PQKxf)|fYF7%M)?i(RUJ)BO zBx*>UQOaPz@{3FtEu4|Y1}w@&CaC2PhBtp%r;<9Cf*C2XDypa9ZP}t|ACTN}0W#t! z++mbQSG-bo^bZ(FhGcZS5P z|I^ze$|NYHja7;LTX2smmY#NpbU@(fwKwa~3o$12@ML8TKbJKm*6RDRARTxwQ@+&LC=Cz>7+o#SU|#Yy5tE z(_ugOGITXMM4eJK6IC3T2dJ2SfAoWoTUPqdw)=xG{~N7&n2l477z7WE){74mTsf4w z|NkFBCnkt>6OQ%i$S1k9WOvvc~84nd%x^G3Na{OP9bX-DoayVJ@DqPpy zuDD`MMqIi)#dAfQXA_NFk2sNag-@)g7zt8*L zxik0v?mze5nP(<*COO&dtiAR+Yp=ET`n1HSh)aC9n2Do%+V)2+{G(8%Z(cWfli);s-_@0s@;Y%bn(>j@^9 zfE!~*ufJd~~V7kvOQzAQ$E9Z>f&0?o3b~cFb+!w4=N?8)Z(ChweIEFpoBA z+H|wFD|`R-T*)fzNYi>;1Wgw%8i%gY>)WwCL=^^72$0p*eWYwJkq)b}`7E&F_L7Rv zXYblYMa0Jo_G3nSPy;~!UzfCe%E68hkPsHeU-!#k^+uI8&kav|0{~V87_1={D^D=; z8ho5Gc@zPB#lgfV1?`A2{HBN)#ZoafanFvVAA$Ia(-x!Tv(LWMw&Sy7_`6gID`0?u zdZc?22d7fASP}Pm&0%BsdRD|^%x0aViWr!_J+q3@>~se@{Cq0YFVf1prkJ z1_uAm2e#gLh6GXiAU=CW;^v(EB~{Mrb4`oeR0?J#j29kUR=TIKWrPNfovk^RncP(N zd;ZR~(?nyq5;Zl0tfWCS=S9_)&q4PtK3zQf?dq$mXoSII=$L_=2=e+ueDpo-?Igdi zt1HDTslQWGKX3NZ)f}?P?0=CZt4r>__75`kYrJsk8&7d^7~{5=PfV;@L&Xj4e6`(9 z^uv5y&NCDH+;PO?k$LfsK3Wa?y|H~}f3ppQCn+D}EJt}-SW(6SjQq&nqtc5)jv7wc zhg{vmC;98y^Nby;q#$%!^L9$4fz0QF@(*+{ZzB!CI-?kE|N1#@Z8^#~M$j(Z6Q8#e zB@Lv9=wczB6otO@fVY2c%m=C3ujTCw^e1wG4Y{^{$f-OW{db#36^`2cb7PAuyV4W< zX44m))eo(i>l~hfuady8c@}?F5P1Q)_U8uv!tj(d_^teTC)nGxizZ2uDU2P{my1B zdG*UrfB5N}6UI4UncLH9V&=!2_r7E|pFUHj?)v?laZRjU!>QM6T53TI7p*?czho|5$zv5U=7fbM*Q&x>Ocz@ifvnAybM(n~9XLZ)_XwHJm zG}F<+GWqTHoHer_MOnBM4EfL3aM60}MNIrNpnoXz4-fsb%Kni<{|Lr^ULF5WU#>0# zDIyZ2-E>_GviEJ~Q%?}n=NnfBnpowv>8aXtthhgYkoU)^e*3Is+f{dss`Gi39fP_= z=?cGq@#7Oz`9q2K_-1~5$*r(5W1zAUDKvRAtmWXRt})I?eb27q#)ZF&{-i5l%J8_9 zlsX*asYDgcT6E?=ii)>>Rr+dp0YL)d@V=buFq{f{X4|EY}KZPBLB zrlESAAxJfgk6`y7Nlm#Te}Hkd_)bMJzutM> z4b$=CnVZ$zbD2U?n<2L-JKznP|aUf{B5L{;ZL+V3f+CuTIa z$HY$oc0g8@4l&IuSQ_~7ftovbqQL;}TQqz6QO^nXvB?e%cEl=P(J>oq(=jINA z$fYZs&3#e;j+5@3cwECME;kZ7%Cw5lG6M_Uz56tKE3x{$V9C)yKkHzj|DPPk3Kn

    cONl{ds$4k{5jf?wzZS1UOI0zeceuErQ(oZ8o*zMniz__I389W~9++7g z?|;cS{3TsTEU*aJ)vk4RGn6Qt4uNEKPOGRF;7lQJWbdwBgQz$gFy zADfFDB^z^`{mv@x@xz_9BkRa2sUU#z!X|cu&WOwLy);m`GjMd#u6=2aMSD`rjxOx> zFTc?4k+M<|KX9B6*-_XiFY%v$h5%Y-{;tA$W(Agl7(cW*y6}!sX~nOS>idyvBvZou zMhZHR@-dQ$cu_!T${49}4_K zfqy9Q4+Z|A!2b&rcw_a8CKloMt5e8ojIrfq60%f(^FuBS)F-=-ziip#PcHgUAF@Iv zRr2;ljx%7VHuuaTNbUTui4dH~nphyt!&-w!TK}s=nbLy-6QGo**5viI%1>+I8~uhT zm?Hw0A6Sv#+ch0`Ez@8F)JEE>ODaU!CC0BK%g2rsGf$H3ij>)n6}k0@w}zgiA`od0 zfg*;mb^?6$Tfku@y@W*NO0wQZ#R4b_TagOX9zZ^>4>)C%UAfJDmto~#4%1@_5|7U+;#F0?#h-=$v)`(|b2OXvW6Nn{R$ zFTPv-qW|5@Db^%0ksFUU5cyx>Vy@>BbF^(_v}5_+$`*_f1~!~`L6}63zPAPdtt0M{^2D!KVP`lJZA#Oq<<(7;_E@-Y?zL`e^w7vm-{Z6l* z!)`s&IY7(+8f5&$@Nz^~g=g?tJ7UQOm`=m)c#Th!Xg@;J#`)Ekl3R~192%NlU4)1% z6>l9+EzwE<@fDu}E+DeoI6>RrNnsV(N2!FmQ}&X#SW-3-1QD8%L&}gw8|A>}s<~tMH0>NI6GR5(jmwLARIWq;pf8lIZR957ts9o~!49wZA80^XqQg_9ybz01*2(6p?q!f#wb zJ=&lvWlg<*QcV7cekQ;k$yqlIIAp?BPEqWL1sj5UXJmvV&btOkpF?edBpUCf@FsqJCHHe7;8V#B;9)#s-;U#)T(N&Tk}TEqI*nUw>Qn^?`j^!WlV& z#Iq3wi|uSRVQ3YZgpCi;4p_Yx5^yKxalde8p`D3+nbDcEKTr}XU1U8%?%y4&#uJKH=Z%crr&E01!@#rp z>;#Xxec9v(x^m}-4|y7TBl!x{D{h2+O1}p-@^P9);91>&wrW;EMEXbm!i3IF3%UJJ z^}{>sdAQW2!Tf9`x4y$k-xfxl|$h5kU_C*au8+N+8D8f&J3M7M5)=XWKl+>rKyE2)DH-{2$ z8@@h<+waqL6Mz~hu>BaH9tiHdS+jf`Wlw?wXigX~gM_Zl_5Xd2rl#mfo)re-eD>IB@+thV9XPczdi#MXaW>z7mO|Er+6~Fv9i&v6$4Mz9l zO~IzeLY`?c-BNhvLtNskt@_`acF@pr(~j6v!~-rM#nQjI2L&-uazxZtKKN+h$Tx0P zdhs$yzQ`E1jm=z|NV>JgfLftn1WWH_IdRO`mNDVjuX};XRi#^&u;bJH8nq1Nx8U(9 zBBAtp$NaP$z{9)hq~Yl|?_yh%f0hJ;;5Ly?gO2Jj)2xl~q^Y>>_GmbX)t0kuO)P0X z;uf@OJ>n~HmqG?J7(lB}%>W)O;$0cg*FBJf& z6?@zIjV2jJJ-ZK!`Di&Y_}Y(4j?I_MMHjIW8k-F}#h0^~#ZeABLSEBGD|!(EMxr=( zndq0!Ib`PpnXmo|-N1A>wxw>Zm~E*yg*^@yc(?@~Fy>CWUhm$s_gl)m{AZs(00d9% zfS8eS7uAv|zYm(&9?E7k%7M87JWqFVhS%C_PWr~D*s`6{@#nbG9>L~JYayh5mj6!4 z73sF`cp}(-YY@F0%MI}O-YjLmIy550iA6brmC?||);j5>i?`EH>`_09cs*xv;{GE+ zBuNjysd4Ab!L*#X?Ed8L)`Gsa-Xyg}Fk>7&cs@sO(!Zp!6$;rI_^2!Uw*BdbRH=P4 z279-?(9;uyCJF`NY410gbW`(Fge%x>(gM67VsV(LNe`=p?d6XbmWFYm;*HEpG1;~} z12n2^;toa$LKgRbR5@Jb7v$s5_GyUwNj46IbgAr`M5NhsZX#xKO^napmCL*%BQqED zG28qSo9r?m7RV}CQFeLqEcdjv4J$l4X4L*!Q0_Ru=1wtKOS6Bv!j4cLY~9!YB73{l zP+Hl|cOjvxqepAm=TK+553~*~-{~`-(AcC*T$6k$caHyI$-8qqm7^~+aV*kkC{a@y z9Tobz>XGJJnQ0o;ofl)>;y`{6M9Qh?lW!r~BH2n;TN$IAdR2`JCmhRVxU*3Xc>S zG|X(C9EqOaPRtN&>wuWP57*V}lyE*=!%1xJg?~eHp&N+M_@CE4vX#}7_V7KP*=J3b6#3kt1>Rc0qJ`|U%wBMvM9;x^Q*^n}?52I#UC!{UqTQK%MhJRGq#@QNU z$aQT@N%h-1dtK%I6#1WYu#DG%?~oM($mjjZYGll-t?$PVf*JD>bhA%S&y>%E6w9C} zucU)^{d4kE^_XEqMAjO@0);;9=i}M^Q6;Z`N$*nb@UP@FT4kTfZy76aC~Iee#`?jj z+7};49OD$o4#w88jw0_dsr(WBqjRsIYWn+2dcAe?hNd)8YQC#?ORl z;SLhQ1F=SY9{NmMu?a^6zyw(I_9f-wa%pJV9)W5HpF?YZsP9lEl7U;fYp=`4<5Od= zXXudaq)=1ZflkFJro>k8EMvlc+qWL4fK-fF(o7}_@Cq-)IXaFK2E=qw=wUZfIkB)n z3|rcD;8U`goB-=V2aszUQ|s-^$DymI^rjLgK&dANqL}{CXa=CYr}K3bIPP3qEi1ny zud22xR@$sjgdJ@gK67O1yxI_YQ@^emM6VYE%CoIe%E8haf*I~+WdyMAQvEvDv7t&& z)lZiu1C!RK7E1OZZ2!;cBF3vbU=1T)5yI~%+tG*<*OhuX`mL*5tv(ob5N~L}*^ALOCYg%7XMny++-P-0)=%O!uU!#A>xXXcF%8j+rlW z*#kPD6k*a16mYLuE3S{u=r&mP@#y3VeFMgPrxJGk?qusTxgH8r%nu80wKAx{g0&*rg<= zOiV|rlxg3iSA-C{D;K|Lrxp915oeK=)JzlC>b)byAC^zC9K$h<;>qJcH<@n6K-d63 z&x){z=f5%mzPy{*e@uk1Z^dWh5T^q?!=vIGw5A`sl2kU?WvyHi#654y{Pa^hV1(&P@gegO{kmRvEL z%D;TM@lHYNkT)4EOenF4pIIioz1VdqkK_wtPSY@?t&g6W5+Ota&l3?l^w*KN2Y z2i4<7DNFV6fV-cdX!Ol2L7zh`BUE|tKL3kT519rMyvc%J@v->`_~I?tc|;8*M9BNR z9GuBC#Nqlul%o8Bv7g%VLF@MJvAU*J=ohe>YL4UCfn{JDx<82#Rf+d!0g(vKdC&Uh zqTU|914PY2(eP2#n+Gqy{U)phyIOX%jcg_B_FIFp?5W@356e=(E!9`yF^A^FK(4%W zrAVM=M$$-_V0psk+Q!ZhKrAQExOT8x#G84&OA6ol4DvVmO4@OIgPivTxcI^~SOd~J zL#~o#DNO|CFHl%ZNc3o2P&#qmjpVcW>>c2TLW>N@qWqvg&6r0oT7Ubt0ZoNyt<|Kd z5S_M81vY))rZt(wJJv2d+;A7PEdPClj3610?tyYFj;UHzF9LHX&o#`a5ow*(O62z4sM>$+7Zd(0% z*oT(27BI7!p z&P{f+^VzF3p3|oZybC9-ym|@kH;o{8;8q=&aRz7Eau!Co>ZIs_7YMZE1iq1+pbVo_LOZdb5Uy+`9fd zLTQ8&|B<|D$`(Im%H&Dh8L}gp08L5_V<-s1783-))2y<%V-8oxJesDA;Ggo@p39rd zlSfBB9!Iot2QqW^`Yf$%_4qVgy>M!zffGn)&cB{i?MI&2?!j%gv)MK&!wQo2RtsIy zlS*`Da9Ur6C{L-hvdw~;FWxR~{J9F4NJFI~`lI65B{|_sZWc85b%$1 zsC;LY+$zkP&S@m^nSN~Q`C1^V$ZR{2_=d{pnST}$0h-EoAhjvUrkRdK48$7+e^|%N z{^GHx@6PG2;h4oN)^1wBtkwDY29>5NZ*Wn?O5aEJ+d;Q|<@{;? zjlCw9u}_afs*xCWrH4{BY(G^n3A3;94l3Fo1w`!A9{lLv6q*1;si^LTq*~dA+!-!*ykCm; z;hsSg`n{J43k4nl+njashm{isK-elJY3A9K5NwF76S$COYNouEpN(gx?6z!;l>`bj zYcHXf7`C~B=*)l z_+}s5=_r=loEQJW8by?A4Rux*6l$Z@a+BTCy~}n*+@<>wC^kMP>4?NG|1}?d47W=c z^R5_s*{46)l3I-U*~!CO9@mSHT@Gxc!3Ul^$BT04JGiy%XHNe`1XmV zM6#ecD0FbIOU3j0U=39#i(ky2zoRsLsWoobj=qkI+wU;l)QH&&=0}zkJhHb=KQHn^ zEKq(s>!IE!v3--D6gx6DQE#;H$MVfT%(V1?>UQZEVbh;7W-^p79iX+8SSbc`yIU|0 zowx`3xyb@&CLoR)nlmzC&v_%8j%1n{w$Khx5l{nz7(fkt1CU+olWUG-Vj$kh`VYnx zQ0eO|Z%xbPvj)8uJ<4A5<5fv z?MGbJbE}^W#Otef{^obL(eT?c&(a>u{F{NlUo?$O{9vuJ9-CMH_iF0-KjEW)OZoqu z!O8i(TbXvjDI^6q2N`~(p~{utQOC>5QAxfGOukOT-c6f-`I?m351}U2aOrd7{rxD# zklh6tdo$YEv%ZIn@uA1}q4(q;-BY6(jtD*YjhhvEwvhL2e!FK#iPAN9FadD&e%5lf zSd2&q(1-o}bFij8!R!Ne#QJ0@L0l!U05ju_E=mf*7k}m7^qF|`=3cqDJU_QPF|wrD z2sxW{TOzsgs;l%HZbtYzvvRbzYj zOuUJwk}SBgCy0u#idoeUi8?F*Y|_3+h!;18taHyAxUUq|YfR$HYu12B<8=Ui9WiB}8UA+7J8QzeQhtP=o^ryjecFHxo!y2u`{b>zxc}LwOqr?sXgb*KM z))J3sd+$u=2~{;}*mLgC%*XObG^Id5*paHaRR7;!`qGd%8{IzO=sn=PaH#T!E%`T` z*X1l*y>?GpOTT{OxD4OpAl#RPbQ;4FaPi3T@6Ns0ldxT*#3;~29E4?==8G#_qc44h z3laE1@>jqj_2@6wwqsd4_nZd~7Q?PAo#cOD8oe_Rd!}k+3!R2K}-#yV>$X8BOYp zt~%?ScCvhfwmNdRY|DQNxLuDbJo)9+J@wHwoXRSffyU)05|0G)If^>wrvPF2ZDTA1 z(-D=$Y`38*D3i?SJ@+0=vcLb+8!cq_BX6rWJQqY^oMr*dH1ac_WE_x+_>nZ=vZ1-} zqLnG(0NT%7bH+K^{M(+P9K~HFQqk;*MfHySjVD)u^}R|*boK!nwA?Uzsgr~3Epr$j zXRcw0As;;0Nmu-a=%5X7Fil5p-AXXKS2_j9i-KmKk6*w!gB#Yj*1z@v5WX&iVOI=! z(iUKb?ZUQWOl~gBg+e&Mblb=HD~tuZx3yDuU05Cp@-Ao#&co4fB3%^bwG&A$lOIbU zIy{}sb<3|>z@+=aHO{vaF=%%0VP-1thcK#Xt5_k|;p__bDvz)`f%0G6>E0Xf0!n6- zY7-L9ax-J?DXPtG#*2+0*D8mXQ!E049TD14aKj_`By2T~?QW6py|<3iU(dYfDvl7m znDvl6{nPTHmFYJMAQUB-bRIi*6VL3YzT~KpIyg&FNpj?;$k44-~w8y_pVw+5Ui9D5r0)J{_F zNfP1$OZi>3>-P3}d&qBl&`o28vAQJ5MFKWy&AzzS&|?QzBoQBAwB!shf97_LlX_BS z+!|92Y~l;1FD%_evB0QCwG7iY5ax@By-%NaqZg;<+L!@}xHR+@83+utHIkX(!;qog z;TO2YOuFH-0jGyfOX5cDKzPZ7m+q_`x2qKnORSmxq;-n z9-aBQ`3;>$KP64JO?L2}^Yv75$D593b>X>fhC*l}!j>N?D!R@cw=)5BM6ypD-hY#j zlz+EthBYpk4EXgxODMo|G*C(U{p+UIbg`qmv&Y*h3cB+!D$+F~;D?MIr5(xBNRG;) zp{mY+M7sH|AAecOpBY|~MT+Isii1q*D4Rh~hYPd%nkqU1mE@7DJ>q9<6Dk7TccC|x zg&!ET4o^@phm_*oAmf|uUs@$V&+st)bE1iZEB63vT+{Yie|XzB>y^AWr*fFj;}>4d zxe*f2#+3vf-kKv~Nie?}XWxVtNkYadRvz(!1q6gHJyVKNfl5nU4cLtjF28`Qq+7O( za9p@h3G8(o!sIA=`fmDGsL9zxGW4;k0AOlCDVLM`=HU&;DW3-MPYr73-@|g^Z8|BN zLt%W{GHY~x)Qi;~4gk&n>4NWUyM zoR%CE$%`d-_|A0-vMUfr*q>}WohqxBnJTovZ2+JTOn;6UiC3CFMp>N%jW4b(I}k8a zY9zhQU_8=S3Y+ZSG6AftJ@PP(Tekbdz5qTJB0kXp>PR@1eBjOlxC}=Hf?CLtEnZc^ zSfT7nqp@45DBt*C7PA0FY+YFpzCeWGf^S@M0o-su5Vx)ZaOS-|WK9n=uD_tF?fA=; z1GbI6n%{_U6-%knjU0@SXrxYHc2ZIPz1LR6&zP#wpb`V7woAsPm8WksGV> z$5l@zt29y`WKoAaxWe)xrTx_SUUWX^&+y`vvxDhIitGrc=cJY3+PPesZDy*+>4H=o zilBim;fg$>8DB#K7t1BvNATPty!mc#?v~Vf<`rk~=ZS-1lwtLhGRL5)*JtaN0QzZd z=%cGcHG!S{6zn_RmN*Z^ePciOE7(xTq|j2107VY79Cmg$ht0fOkV@IouE>jc`PPLm zwm*v%4j3WE_pasMZUgiAF}`%9V|d?hZ(c*P)c5^a#V&W+hdBTjz0q=g(8!G=54w2s z-Zjg&Iv(abuXn{+_3oV=DR$>jEqQYC7n|an%$-E$>=K;29JN9>{W0$^H(4(@Pd!YQ zL|+7}fO% zVL?@7-aHDP!{2$T=>rZ0dGTpuUYh!~RTAvSaX_GY`rhAm>HjoaLhh1Yyy~kI_t)sNq!%E`s_XNkkd+7F+o-5 zOV>_j3vEbaU+s1qP&ElZ;FB)#RUoiJCoWyc9{p$*)XOxJ7 zfVz_J%>iiD&*%1jnA!k~zBM!uyG;8McaAcuev1Alr)E+&ba|1dnyUg5k$ErS*OHZ# z04jQRJNo2xx9+=t^;PwMqpz4L^b2XoqyZAF+mbc~SoVks$Y|Gh;;ZW^OtZB+GK%T( z8$wvnuXVPA!{1@5E$011!;zuaB21v_v_2$2)J@{*-RrVG)0UCTi&>0~c@p`$;*;Egz8_2(69Jt8uLVq7_*eNRCq0{cdRf zS8a_5!M&$zXT(mOQI4xUuZsZb_dm}x!G_qkFA27eGmSG}mDbt5J9qu{U(ahiiBC=~ z;dZPU3UQ@0_TD|-njmc1Vz?U}dt08;ad6n-(pOUQuE=fk0115pghEAqRH;9oR(|_u z9%lZUhh3FJDM-Kb*?4s_{z`iMtvk3Wf28jd}osyU?};UC2{BH zx%XXeCO59h?a1Taky}3@2?m-t8dl~S(oaaaRzWfi=^0n`v8^MPKbisemadhsfOQNr zMbmSlgIli1jYCzC$?ewZIg7f$Z)XtH(Q)|TI~?@Gf))www8N-3oyYVNyafKN36l9Q zq8wbl^-kcj$F;`6H^PEp+)c{wP&e3&FoJaih{{B3)z8S1(35^#hD6#3dor?#fTf|D z$n;Ml2?=;-;;GW_t!O+ct<^WyUY)RLuWwfekvVK4Vd^TM3a zzjFbceEQ!)NnPt_SOxX3CA-hNrvrv7@ZO8g%lL1BYDbLq%i9pFzQn0I zsuMR~8rXLB`@dMdlB_1TJ4U(lotes6(yL>3)W-ZBc=GK)d}%6c_fZbXR?8&&y};Y0 z2EF@tD_4bX*#1D6!CfVH2Nf;nK{0qY9HLEseV+lK-A!)`W;SOzRDlF|;D>6VW&ZNv z5D9tNhxBK=<3fezGTzPE1G{6LXqQ&5InvGw*SYrt2ZQ+ICZ+3_or9X$1|QQ@hc`6M z52VP%JKdjVKqiY@cYpjgfA&^zMr%mBAk%gf!Yx?MFf;d9?Dj&eb}*PpYk+G@u7M@Z zr>hZkpoHvAa@-@rWSM?U1s=&!Ye)q>pKAv{9-Wu+rg|qt=SoV&kQIqO*4yB};yS{_u4R6{ z1=9>3?Xc6g>{xFaDtC|_>MU7s_ySR)TPN&2!;T*I+6*`d`DAD!MTfSE-O3L-f3~1- zJ5tDg{C1tf0IWSxk&wOxCcO~X|82|Wsn6*0)P(Q?abIXndFnzjaxP@6g?50J-_WF- z;tP~06L$k1nL9)+O{tKWVQ}GTMd;b3K(`||xAmzzY|d{S6=1#7mh_`3OCPt}mAlW0 zQjT#x-fT~zqmRYYzFbJfO^3Un9IJyt1x~CNzQ{;m_@Qh8Zsu~TovJ^@|4Y1tH9?l>9Q<5VAVt_Cr8A5gVr(|K1r3QX^*B;wNsd_R2u;2X5sz2Sf3*Uem4}-{|DtG;k6TzpsAPC!C#m zU^f7I#P4I8-`~2@-HkEyU+@Qyp{XmIWKSx+=r5!+~lOe_`?-X98-hl<|iM6KsuQP<@ zB_~K6yKehKL$K-c?~Kro9q6Pfkul%~oAcGGX}eo?1IZIFV(u(DD);IK+)XDq%ogw4%=mY0sLsY;P_{znz=VU)p#idXq}j)h^J^D_IAi!FU7z-G=G7^d-Ey*uW<~+mzr`QU$JMxP}T}(+na5gz<&1}Kn+c?Ky#>aH6 zA;Y+cNX94a?U|pi)35BX0;h(I8YCjx5+6}-bGFL110>~n>g}Kt4Z;;4m=|lKH_+n% z=_5k-H*hjyU?->}EusI@Jw&6>tJwrnWl4a5;pQ(cwvea3I-<-NpsMSLEU4e$0zh}I7i9x zBS-Ie-0I%28?(?Hrrn^I(!Qp1mC~}CuzM_6Ze@~CRgDyQ;yvRD28Y#Irx_ARhw7HRm1Rx5>wc-@{g$G`a-Phy;qd4@=0A)?-oqCOL`al2%W(xUb+PMAvItBVGORc)UFUHqhNsXo|q!c;pkWNuQxXX{mHOTYn|8AG43zuTX(+_7CO@WGyXAJJPM zg&SypPMRtxpO4zz%sK=Y%nanYEb(@qW9S>*T^<~HA0^n}xL7TqLjr9M1JDE6K5yr2 zfwdvZB;N*o;s8|i)qcm=+>j(Xg;5;!tQ?HBFdZR99nc6A_ve+#v_n&Ow($tC**4^r z0eR+-L3&Y;?-dqj(z@&2J}_e=QYL5zMqEiDYx#|IbQS`HZG!(S*=gj0kKzmAJ;d19 z<4~z`n^5a`V{tef5=h$wOC`yq3{0zIMMf#lezCl#9m&GnO&Qo?p5m7W0py_d*C|39 zxQ=D`^S&{R@MmOZGgh1rh>-{UDZW!kQ6!dU6ZSbu9pV3xfO1%M&RT#!r=LO|cPC?| zW9*RLvJnGOa$gqH?(Hyhr1{S6R727bO^?o%z2zW$=smRpuly#_{%$!Qa-tpgc9?!i zaOq)MTz-UXXY>@>`Gu^H=TdJ?Y5ngewvBehzHGz%bWYm2ZDXxwIutI_;j=qncIo=y^h28vBzZT-c&_$P#_%}@}lk*fk>)G zq9E}b1n3}%f`E1Mh>+95%5SD^ZYp8>y&$h<_%<`y0P`dzEYZX12Ub;AsGIatM*-+n~IkbGr*D8bk~<-FI=W}oQN8C`g| zvkCgZBZ{3Hv@tn-I%XGLShuq&2S|@5XxzZT%9Fi7KPjfPG^dswuEeCp!%trv7TT~X z_3P?_q>Pi$ghj0+9EnbP0x2-9jBsm0TF9ay;tmO6=-LSWgbgj0emQjmr)Hq zGwj)t?9z6!%i-cqJkY&Sx7uCM(j>YWt$CPZji6sEtY=yozOjn)o-0P~9^fBGA@lRy zc78l-hwLVor39HoAr}wFU-tnuQ|Q$Wm^?(1L>tD{t3C8ofNedAT?MdwP;+W_9)kat#r-O3+w$798Gl z_!=s?p5dp5J5^Ms4u2YE;K{$``Hk;4^3x8a3Gl{SfZ%lvuZm0c0er7b%TJrMl-~w} z`yiufb+q%Y1oKzETwbVf zlEbQb55W_#7gYkmxq%QqBR%9hE{n3{-4RUXy;L;Bd%ASa62J?qrQTgUluFBT$?Sln zag1ZuIQexDRmi2Pj%bgRlQ61mW(u8o8i&J@{r4Rh#f{WVd%zcqzsCjTV`naUpv!R0 zmjAkH2~>W2(SH*T#4wYOaf;<%5lPJ<%2kJ&0wkL{^v+E)nJd?@B8s6ycM<@+`%>>a z&^9|nHfT!Qxjm!8D&}U@@UR;5aD|f26iHPUQe+S+tR`r(&3T^{03IGF)@okmO;x{k zz6&03?m!WM%+RM?MgZTjiSU3`Q(g+~41JFMsB84rE8`@#&Ctj*m}P=oeEeoo7kRL8 zo~+YE;RucYIQoY9fAoU1YK7v^wmh8o1;DB}G(~%&b^89N7K6&bhH51w`d;3Hn8Ou_ z8iu6#w2o5Sb7v*+?q^71^lx5$Od1-~Pz)JF`josXXLwAEc8XtJ8H&LWs zj2WyPF!*;d{qRst&St)|NpV2n0=H)@S9qRz4>c_kyX5NbG#TS}6+EE67iP30>8ZAB z`JFEm`A##ZZwNYmMJaRTR9++uE2s~LB~%li@u%2mC-q}Koe8_G$HEw#g4$t6kZ;XI zrEwnU&u_YmhabpQPrlv^)027ePB0=lPGmxZ6ND;Au$j4>D8`E5yg z_3h>dF}lAvDxz!*AJzzD0c|rzN0AR~a7x(WV=T)M*5^2HR|2)0+HjaOCBsk0u@aa# z@{_Hfn-aU69(&#RFLexbfah^Ma{O1!xim%R-11;LRnUW&oW?)%t$ATV?adVBnRWWo zc4Xe(rro_;ryWDB8lGBua^YyQ0{wpF30Ykr2QIc_yw=S;@Jx-h?n{H7$fdgypE;B0 zx*tYd$?y8&TvI*=8;}aEjuf=qTc#G$I)Cc=Rc*PwM@POB|6T5Hvlwkzr>qC0(x^bu zr4C;`5c_kcP#^7`7I5L3`j22M3-@|QmfOtn**oH8~ryMAMaotpmsePfpa--2fCC1o!Q#w7`^`8 zcGaKC*%G)~^U!nbOrNE!mFry344(545PZhrIU4V`s~A{m36xLUZ#Mcz$rJLbii(qc zfsy0#q27k6a<^!{G0XNfC zfqNtvX**typlfFX=3e}Ga1`0m@aoNc+~+BaVYy_i9#~07=*d#H)qpjhkY=OFz9tVJL3awO%=v`qC7#)%$aAn5@RU1%F?fw=a z2U-5aAE3QqQ5@4R)OgAEDW2miGw_{0*Gr|r(L+Xs6k-eziFp;_Oho(75>q*5RC^=T zMv|WBAFe1&&ibQ?=19kUk~5+M<==tWNoveZ4U{GbQx=}w9lmhpfp)7S9r&7*W4XO@ zZcv)yV$1-IH(iBR*;oldaEPuA-=a#r&)?|Fr|s5?{5-guI)w`w9Gm2vS&5gbv64;c z&I18Q?tJG-*RTMH_RjJ09P1%JBz{qF9><4W#6qSJY@baO0hoKP{wxD;;BX=?3A_LKm8Fj>>j-_BJ%FsJ%zTyWF9MJWUE4?UH`t=_1VR=Ph>Ch5|@7Plp zbV@%QSv&>ic8J2-XSg<1WDfu}6dhpqo>if+RN7p?TF*eofR8)~>iXsRl_hClSw;Th zTFq4irYUDPdOqI$M&v+%97sk6Rmp|lvgZ4xfK-X(QVtmNh2yPRcOMOxcjyS>jvB<@ z$@sb5GzH1+k|JLHwYIr$Gw^tY1`*JnOCx6uWH&w8r=L|$f^nq5fJ0|QHMAI!TCz7r z2|3R;RR}Lz2#6iZWCfPFBw2}7>H%#q88CED0gTvaoZVd+sk|zQjxvpt5d752vNS|F zSFTI5g(K;=&p!v4>vu8mz&9VCygQY2+JU@iEebISTT;viaQK!(3(`-w0)Y{Do*aGu zZ!h;IZ5UOKi@QG!g!FlQO%NXVfWD+{Ct%^Ut+>`4BGud68O%g367W49F~X3vPw|>C ztIEi(xG^E$Jz&*3T0;ej4|wzuGquXjZ#EI@D=6ABWDhGg>wccBcyoAZ$KG34;*zP8 zYj9o%I=G%PjK+X|m8B|sHi^RMahl#HKhnm~o}YXwvgyd-(!a5xguS;&!k~ClE+_qL zm`bZ?b28i&oo?3&2bj$~bfY+Se-~*Zc$0nZr*)*UIoGL01(;2wGl@2RU-BhB+PA>f7_AG}}gt$Qdawe%hC?+KNtKhksto zdO^_CJYl(4!jY8rmJZS^6`m;#U+C=>B_vg;M{s^HlNI!Di z*v708nr9ux_I$fFhdLuKFEY+-Cdh#Pr^eA4+w2f7-f`)`^~Y$NIEz!mYcD`%$tDA9rB#fluG@ zh_x}+3ny$J*btMXKmF$2)ScFTxQHO4(Bs4#GunaDGulgcw-{tHME<188KmZ7;HLj<>~Gl8$3^@EdP7iIeU5-Rpn*4y zjZ=IfZvIPXcUS+&3Dgim@9;A>60&*+y2?zaI$6})6keF-dcH#Je|rkC+_vrRy5MQY) zE_7C@cQ=KroB!cg6wKIKSLK{S)rT^{tQh8_DHtUP78HWV7^zH7Tbc6w-NHsmVOd^Q z2q#MQXS{A#SZWB0#f}_rV7QiMMa ze*!op(r=o1PcAjO$OTYuWwuuD21{(TjJ>w`V0aOAJL16y(P~xVntfo(oiFE?1w>pv zuatG_9ksl`)>xs=yoUc*kdeF6%9-C5O{A# z6obC_H9gtR#XDAotqAq8h?6N zG`+Z)xam1zhB6HdUKE4GL*gYC4;wcFwAb!ZIHSeO91w~8L1hqbU7V#!GIc@(q6Q1>}U z!;~=E;2037N)Xus<+Mkk+dNv=z?k}2zx04`^7$^5BP3eMC=Nac4_;jSQn;8^^lNFj ztVaNqRq{rC__?rtoV&kGs^@cil9Bh+7e&EH8lM+mvq%knAnti$TtOki0h6B_7%J%t z&53xI>8?*Z+^~us9)iIA`*FHa(GmOWce&d>!cgVo2K^IpX%J1vD(n*ze?`eEtfeh! zRCX~WrY|bsD0+pcSR`fob6am>`)yE%PJdDlVz`U9p!$+d*@QkIj?@q&2UlGhmC24P z&mzfEyxO2Uz2%~?KHfNis9c9!3AJIZ3Rkb#YgGn|D2-D37pN^N-?Y!)MxL*Bx?@^D z^GWDB^-hv_m3eu$t0wP_cD4mE1h%}KZE%c7`CMEO; zh@p4s5PC^y2}$1EOYHSMaV)ogvRFPZ^5CDu;uloBkVNHRf7``zS4JUkqNII6NC}z8>$Zx=Wwq3qOpcUzZ}eR^gZ>5FQ-r zSM1LJ?gttVNCd<$-MziZ0JpjdVsQr?70$qR)pH%FKIS}9v%>M5k5*R2NRR7oDbZai z=rGbMfmZC;>Wu@e4k5dseQtP4)o_athjJC&lvv0Q-^RQd-|cyCsS>EcoijkZfm7k> zWr@{TQ?t?Nhqp}>9SHQ~UpaZR40A>GbGHEDpva=Onc2j`y!)S)NChEQL`48HR$-nDZ!oLi*s>HO`9 zRB^=bo9ho|qag=&ZV&D5<-zuwCAss6eON)$CpnT_QB;dEy%bNLCoQ0H7-Oc4PM=l*Obasu0feE++EMiBp!e4efaAexD^TuHE@dv^zpW50D) z^YtROgZy8(;ntGej{ez7=DvY{H2Qo>R%7ND=?yIX-3nE3F(QlWK@7W`QybXHyr>kg zGCm!5&=ULdDAMvAR~cH+z|5Nrj@PeYorIOV%mH8ocLYQKJF6z+pax zW0d;$O=sW3Pyz8Zo)XxfW>15vzKGhab9kFi$;yHoc-kkJ-%qXM#O2@iKVm9AQ@0Z8 zGgrw2dG9NB=I3dX$H^paVCzsu2KAV?I(lZv#jO;%FzUtGof3|tKWbZtS(Ll2t?YZE zpvl~iQAo&-hBJv@V9~)LDZ}uZ34`MUBrHwQHsZt$n!xhm@X)Q{uQzH>WDIrannDtR zTC#RxW7jD@3_47VSWN=Vh;}Ab5^JDGS;T5=9%9%T%N5}vNue5)aiZb8!0sxzqluwIcggZ=*F1cqBP-XK004Bz^p2$;Q} zUfUoo##YG*Xd4xmU$9iiRV=dPY_TSuLucOxmRDesCnt4DK2S-eJb|@iq}5o5$G`}2 z2%c_rBj0qUAYY?%Dm64k$l5;Y1bLor^)YJKeZ=LoxG>XcX5vF5%!2rCZ>%8K(OoWL zL>HB;nKP>y%fr-?}o+9x@}+g44*Clv6C z^M&Xa<9LS*W-PTuO8V+k-3Xx})|AUqPb~Y4ntURpEQiNem--M;Ht89MT(Ic!Jx<+9 zmIjJHh0&kGF!6eBFKz)TqUc20qh6xeah&>HvhTc5MgE~KHutm%Gtb?(e-Nabmg9v3 z8RFX)tZyRlLRbI#m`nvW{JmqLM^bpaaQ*$XYjO$|OWOP+$jNzk(9(;2Kkq0k*kl|O zSDW+f611S~Ke-JdX`Bt#AtFrnCdCs5yhITgj}*l<>y$3X1qEROVFZqB1PKmLWaZun z+DW{8$*LR>UkOqkDSzH%-*67MKHAOg(w3QLm7e!u7ktQ*!StDE7<>-W?S!%w|;-O#tt@I_KJ`G{d*^r9(Ja>^npT|?R051 zBEAzPf-`MgOG>Lcj;rsW4Cy*59_2}Lm2UbLynS)4u%AawN>yv<)y*N+&zJ@fT4?Eq z%QsnX%;gsx19A-@v_}Vzj-uJ6B!*a!JbQv9rev!JL~G#JO8GJoh;|FQJrqJ^eKIFE zCh~^fQ|mYR1PF9S&V24Fikd-uA0SdKdvD`bn6Ae0T9N0QLtC z=a1)&R~9SCfxM%{Z<)@?6{ZI~kqyODMdwzv(nH!Dr(Vyxb}rINU)E7Pe8d`v+<3b} zD-)(Y1l1?l+beQBj+qlu1W6;}sCN_QGU@I!o7U(IZ@Qzdk+-~cr*53UpxE)S`pUgl z*ZjoJyzs(LVED$nwI&clWf5+{Dlqum+?7qaYJs*pstQ^a()$Dya+kklB_E;tq_UqQLvPX^HQt&zCmqO!h(i-9?59a~3 z6G|L$VJuUI4yorqA5b$${?~`zTi0KCH|l;D76k=se9D{1RY^e(mbS_k?MmjmpZ|z2|lk=nZ|t8zv*p{t>Uu^a6F#PE5{rI^fa#((KZbiVulTS#pFNh&n+& z5?m0OXq-C$f4nw%w>SDnPzAtBfxG?4H1|Nguaq~<_vn9j!>Sur0@J)arA=#DB-X{w4HI)U~r_WJWH6d`t5 z=7}QmK|>}Os#F~k2bZ(`pH(?lE~xTDY~R9A07E4IUU|dcdz-%+`b$DU5CWn-t`kIY zGoQ?11FioaPf#=7dv@7A(^q=1qTpI2!>BajtOYVk*t*;or?mk)I$o2NNgueg9K&}1 zo=d~u_nlqxJqWO|PM38!7kfDeJ;!5D*YAk@jBoEHFicsHo8h)!U2Ck z0>ou`4=)H-wSsGHMr}yt6R=x50e1e=FtLH8tcAS5ST}JDr$?2bli^7EV`2^gY z0I&CE$u@mcaNyzPl5_Rw2x9u)ae@q{DP zqKFVi0|1Rjw>5x}tH+F!97@+%H*P&L4i-HOi0(}=p<52vZ-rS#0F2k$c!`0vuZK`Q>P?s2j`xQND_- z(k`s|IRP8MUrBD4X5nb6bf_@HlZm6p__tHp;cEVz^nCZ0PwfGn2e#>8u-uS;n9yL1 zM`nn}m}|Nh!+z(J9uR|>f5e!27Qu$*3>sp6h=HWph27YO479W82+nCHzjnaSdd4;u z6cDnX;tHeVVlUA8&fsp5kGapBLQ7O44d!|B;b+3q_YGL*d+7r=x|TlZa9;}pv;Oy< ztz(H#J0WgOck7oLA9S-loYX4l#Rkqx&;KDQkTyusI1l1qHlMj=<=<^nYYahNTerbv zA2Bso=%3kGC>ZcJUGJu^bB==$J?W<^&nk9-@7W54_qVHMF}&GtfmutIBmm>-R18SeBoz~V10NU zhAj$unQ_#FhOcPZiY(?a76<8Gkn~R%@0(-sAjo)a=w<>BnH_T_q7zxrLJMcH95oq; zru!X!GSxff4fFk#@1tq9p&)unI2jub?UwJ7yNEorzfaV0F|FiNv&xhEK2AxyOem|x zd^r+2st}1r__hVsJ+QDT%Wpdob)PIhsC(q9Ncz;q-JoVY#59bU!otQ&=Z-0AXg%g|%ppOxHxBYlXxD~Y42 zZszqfTOrk8gd%GGeGkQP)JB%cxZkoJa}^ak56tJvZQcr@vfm%_f> zV%NLGl=4r$+V7>Kua#!Ppg6C4D6U_4b@P)_KuNe6U-1h1&0S)8Z`CT3$5n9J?Olne z&w`DenT{VZTE;O5lfCmt!BOe^4q9{pQB0b2RQ9ZBEe38jQQ$`d`UXVBg%asrmI0}O ziPJ7Xmmdafix*LLPR^ARjc|s~MGBdx;WJ)1DuE5^9h5@n9OhhCs-dLA9hV9F zn$KzTEYnLI)55jfFIlLE(eT&jkUiM_1?XAAOo*dm#h1ATyQ7ZYor*E;EMM8p8-CE` zJS$A#>dA*0=id#ZRBY9gRex91He$~ zr_wc;FmRrJ4m>A1k0YL+k2=Ao$;(NF<3KGQ!WEs^)rs9FltFF3qQ6D%Okm+kK*J2A zTBVdo1nkbAGGS>AwPMzd)j;`Ef`` z3M6r-kudMSKWIOg8Co7s`$9+g@M7PZ(Py9K)c%nn&1ZTH3P%TBLT(gPbY+T4TVSXv z&bS;AT_sdG#&7JSC(N!YlBZ=pM^r>5xr;pOOq1)DCe`Z1>MdMUW_VsV_d9s$~BpIBHmY zK&Z(=vcv}iZ5>&X&w4!R$HDj$rqb;AuQ?XKgJS~QIvfqUG&vKz{ccqzC>xFbd2edn z6ZHJ`R48-k)6I=bgXzoymyAX8ly0XoX^+eLEQ{T`(Xf@6d`s!1>C-J821buQP#Q|9Rt&$k!QGF&lM$=#r zh8c-0==BEiA&jxMZx^k@^LIPWy%_WlM^03T;Oxvt3kgJairXSno}FQDK?&B%_J7jb zOQUK%&p$$^TZiNsF8$%nvyt-ZGf0S(8>+%4zwSzrsISP(CPU@<&AVMXM%M?7)fYoc z+0U>bKCVt;zfrXgIzauQYCnrbni2N=xb`}4A&aFrs#}7^;wu4H?w#P0y~XmW+d*6u zE^p_g>^PD~0Quwt2rz4S?=(spW{&?!W|WitG~vJL%jk%fo*Tl1Fq+7>8a}_=3Z>V; z%h=_`I|I!423;0~odp4j1BvNtK{V&1GnF2vjc>j;T;&t|)a2d!;fRe~rswDh(ia8IG)l-* zk*0*<%%GA0vvuomCtx^f^l|1Z#bSIDaM?}`P#68{e@vO%=A0IWR}*z!1tB!7R%|TO za#0lt$w=dp--j2ZY#!~LI@%WM3i>q6zELP0<<0cTi65aZs+RQH;qUL^Yy?Q>X@SX> zew!^@f`eew=YI7VPBxd(UONdXa6SKRcy-5?b5v*F=b^~+2P;sn*!XcNM{B^dwSN-eNUmWr3h`CP_nOu8z;><#Vh zyYOGAQXbgB*N!;-4vvTn)fp=c(M0?xnMuMRp<8-^r=zq>Fqt(gQTR|6ne($e5z zt;XH4os(GjX&vMahq2N=dJN4C$vmwicHOrbd^(VmZL9U)qR;d5q0Wy{(7-74Z7wUl zCY&!|>o+gDaf&)G8m;S9#k4@sR?HpP>lrrv$?*|rD@8~Ial;p$89VQXE;ms|`j2YM zutAtdjIC2BV~~IDNhX+qYS^ZdVOW+2#4Uk2@34`RN^i za@MHNPro|+!jD0Om-qSP7OXYAd1g@srT594SYeVkdf7?#Hr*@dQ}qhv*UC4 zf-El+xdSWjHZjGtzNw7EA@)*X;teC6`uvS;!?IUMERzkKAruM%UfyMh;c&a(lU{8q zTk7g^n;#17hKH&O_*gu%Y%8cUZ){QZ76dx(Zh*Jn&n*H^yELlIZ}TA+Rgm+n|4dO| z(P=;Mgt^&3DJyoBZBiV`*>$GIZ2Czx;X1G4=5hF23BG{M7EhFs*Hxp4ut$zbKrzD$ z`&D#cDoj&kyfpiEK@n>go~mK+RU{p}JiRP6>&y6%IQV*+n-l)Eu_~WI0yN*J_?ubE zs4PNCtjXJsHg}?aPuRaRPWpSTqXb6IEdb_c0=ep%Q%0XOHWALZaT<|uN0x;qE2<(d zW90NwCF#~ajgMyCQV9JBrhYBt`RQ8ppyE!$gz-eRf6$q=3BBt`e$U8Igtp!;jxmLv zMj9DlW?Ye5nfY5eZY^ZeB;M})cr_ zrfq+Od&uv~JgWHX_ng!f*kBOQo($OyPSTvE`0j>0SCtYG&I^kX{{K9;{`blMXAVPE zGL)bJWF*{Jv!V0ai4F#jI^Mhg@4x(CPWt~}&lr}LaYxIN@LL+ZNADP7 zpFPu%p=W0NeDc*u{pw=8j@B!M&Y+O4PfaV;ip43CN9n-~x+#kjiWqYK6)r?DW#x}$ z8U=*%3P`<)eDQwTVKkUFD?rViGrwXm98UN*sNn)^DxKcH{yw4TmAC1A*{7L)@$TF#IxHS$5^KoIfx zHB?@cuh8I-r!=o0!VVY7%JAst5B}KRmphffZ-7y5^-BvHgEk8s(FphJYN!q=xl~`} zGl-QZr;*kVI$LNDrkGo8U6C0g8?6I-`lbv5?{}pN$}i7(jYhvl*d>`h{-u{*wcxj1 zjx&WRrp<&vnP(^}yDvJ>*K(=)f7O>ubur`;%Yu=n3*lEDz;YV{kX-M@d@Ca+nZ|oB zUU9q}$Nij1ybS!X6!_t8UuU$?P!IU{v)3tskt9Tu(%K4D&%U}8{!IDmX|8ZM6tQMi zO^uJF=`76jsLnTTW$%Rh9|uDtNdv7=Pk}Yb>$u;s_SaxXP;HvIlGR8Si?_jI=KBAp zYc$|o6&Ln~Vv*t$Ie4$cSoOe<)!pL2{>arn4hk(LrhWZ((Q71gdN1xUmLWX;b=HN) zmwK5s96Q9@UgkcLjB;eMeR%a&`xyUd*$e-Uf&v<%yNXgD5LA2!+laXW^BA z4LK~~XjG@+1Pvy*j-zmv{(G(@q-coA$VmXz$nD;zcQ}@f zI-pWZ%-P?P(<;LqUtz%frFd*Wr1>{9!8O2cj_eZ_6bF)2pf`J0_eu5k=z>3V|F83f zm0SZ9xn^B)E$hcy`bOXA1&f&Yrf)t7B*$IdyKdEMucC~bwikxA`k(#*!&=jk1s6c| zyj1ziHC&|JlL2VzUU*FLq4mcE_ML|j=g0Byjr%$FL}}iAqs|-6)8_71287H=q%d$hhCFUf0A?(Q&3Aww1${^;3#2Clp)N9xf2y z!xT;t!@25d!nJLQPg$SFDkQoL^^+mUf4T9e0|4Jv6M;ADyBOu{>q;!mx81Hbpvc+ z&e6WQycTLc{P;ri75wJvQoswp`Q(!)0T!Nx*#iX;nio)PeE(xMAGB?bV|GkXg!mKn zgG6N?WxvDxuW=7moZd9fM_2rM>~?_FD?ywEcwvf3zR*NDyM7v9$d*hN2VlI2Mj-&=!p?Y{8nPfswzvR;56+2=}(>g>VO25bBJmBFRXQ44!TW^ubht zNZ$(qm2WyOoqGT^DCP52FHBqtPpX0T%0Y}n)`i4fx4eSo^q~aZxW)R}Hv|4BChfiK z|85=@NCrl}yjvIjWsM9&%mn|}Ii_XYJyv0b6h45q=vw|XDT;T=x)2d`Z0{mlGBz;>Ql_?#g$atK~=>AapR{vfkqx%Q>p^7L0ZPlj*SM!HF z*Kuw^*fd?_ELbT*%r%D7a`di%WE>m>$9ESucs(3)ePdT{{mQ$m(XsBn#oW@t7bORP zv6p7BxLBsYNL{DR&>-m_1x^$cSAi1lP`!)-SnlDUNV2=hX*l&(9XcOY|>)qYT0HFsRM0v_&1R9msfEl)p)1RtK84s z2agbpF+kJbSrP^1DtyGRdUA8gZAd;8uhiK;hr5_+{pr8WCDwY~pg1_cfFtQIGA&@4 z9dD<^y`5}7>eqi~Wh9T?MoCRZF=@g;Hqj&Xa|;`3a_5xZ=6M$tW@Fwlus5~#PlL0g zMdHL?!}Cx z{y(FYk}e^>FguPz-DpbRQyTso?a%*>(J*jVU}km}3x)X~2kZpbUO0fW>||Q`&d?nl zdi7J)tGK#bK6ZQ`jMSz|D_1-rG1iU2T<^dlD-2`ryp*%}%dQp4z7(*aN zVb=k#17hr-9Tyf$Js18v2{^?ZebSnH`nT4or()*L4Z8HCB3BKtI8{^c-576#KQuCS zg((v@Y?;^I@t0Ybj3Q^sl|GQFY>|FE9XYUu7v4D3n)>9?ze29K=rJ>eiskg2V{4S3bo@b!i!si#9!pI5OFUQ9QEXGigzmPvC8OW z`fWMh#4yR-xLy4AVZxSZSfps%qc$)*gn2xj^5mB2a913tLGwhds93Tr6w5)jUqk!B zs91j!TWWPKGiCjI%H7iBQu>zY354%2Ve51aF7b~2FU#ir0oP`AI*FF zj!L=s`-tQH2;GI2Ivcu67|Bp6!+DPla0#HFb#(xWCh>Qf@a?UAP{m2_xihO~5ARwi z33{T=!*mJ+B&zR1@G`JsOWFsjK*8|=yeED$oUt)X`R3}mAAQyYzJ z+NWESPC@xa?NAR8Db}Or<3gq-TvV2^4GCuS{kU5T=n~m`S#t8Brz?Wvd3ZSeir`cQ zi|c$^Aw}6kI%tmg%)_H$+8SVH{bTF3EpHXb9~}jQqlCF?oahP54(jUtseP4!uQpe0!oH=kAPWU}i9_|L}Ta zUKb6iuz2hthHwvs2Ecva&?3 z-Q$!@GQRY|Akyv|z~E^c1|w)FU4mR~_KDLHwF>INRZj0NEJ{(OMY}aFQDOxK!zV%i zvZ$OzeBqeS#8v#I*`FXPz?4Au+^T_<4H@Kle0gb#Pe-^+*|LEto=oHK)L z!{wCCmCUf1{c)h$FV9Df<3NdU39+IEm%R4|FeADht@sqm_o_K%HsG!59^0-!wTTN; zz@O~+SGyFkuRcE}=P~?8&sT(GtziY;0dRVOH@QAqE4SY%s5zG~%U8&()CpyKK zr4qyH-YRQ*vo7}DtiDi*#lSMLqN1%I4}V0B zQqp}r{E?)hnxJh>YwLSy>&LN-hC1;~D1fXkiIf6CEm^N^%#l)`sOA}(s3sOH-6?@Q z9cpQu@mSRe$YX>&=C}Nt3w1h_JF4{X`T-=FBd5;x^WvW^e>y8-$XwHFLkxviSNH=)_qhIGA_eIFwaOb}7Y8vyHeNYSYzkp6@I`8mFGX-qw@!{XKMK=O1~ zYEBi#HlPQmmboc+`bBWL*Dz5idy>uCl76lBtX<1WAa96AJ%N0VCsM=)|MfZUS`ha( zM5mFS8Bf3ApltId@+31xdz=zoG<5ef3ts^Zx3cm%U-lqlEpk1&m8jvE)>!X?6SV>zSyc;GLOW zUH#)21eod)eFR?WKV#=}E5kCOp-SQ5iT~A046Hu4F^gYEx2jvyD#5P!gX=X3g9A&% z5gJE|MX%kQm+q$SG#<~)A5}Zx8RPPv z>$8%BDB-IEetnhddgbKX6`L=zamqLnLRr4f9Phjx>no&6_z0^U2BW!Fr_BZr@ep^t zYC`}FJMV~w#qG>ky)|+bZvonOa$pQ@ee3U*zYGy_lJFxkxalxbRsVBiU?G07gxS(Tz;m(7(*VHTJiFDjy+J)ubHd z?m|o?&o2Xx)r`~N%c{xG@*Q!TDGdkF0xvv0)=or;ACz!fN*;StKh~9Bc0Q(qLSC0Y1wQ@ zg&f~Xyo{DCJ$QfNS^9-#()r;vWE}lu%&{yCW2A8ovQY~Y(C%I*U0Z24P~?uvyjSgt zRTj1A^(zqN)L=bKwfYg6O?nY{Y{XM`f%vVm&1#UyNKkum2>9XQCN6Prr>r+(^Jq&- zp)>c|u6pusiAD^!+(d_S<8Q}%k7y#^hEiMf3bohI<|thw3Ze2hE+5%kUB7s%H@L7C zT{!C4#%hw+LBkVdM?VbTrz+_dV8aTuHj=9P73dI&E7-( zE3yazp!k}>(DN8G@O$gii+yycE3+?x;w{LstAav^08>5MC>C3>L+M$75C%^)j^O1@ zc}9NYPnReFV6zb^B?-YFHc9|fV!p?l#yIE&u|cV^r64E&FX!oR$P%tf9pjQ8 zy>9?Ce{6QI8*fB{q0ksi?n0$S(AshKbnM8xI$|#W&lY2ybP2(CMWg6IrHmBJ3rXX=x>e(d#`*?Leh zOH{8mlpdOwcHD^#;>E`*C1sw5kSJg(sPlpevdmnwq;(-;z9@Y2kdu>#JT@Nn!pHoa!f9J{4(D- zyqqL6lOJ~oFL-l|h{nNZDp*rb8D5Ir_f^VVK78qdS_oL7l^1vT5DoSkdpAzlZI~A+ zDTzvZ1={|z3gmyL|GYRyH81~O`^#t7Z8#tGk2%%`f9}1ov9fltU1M8UkJjck76zXr z&{PvJPeo?~xl~T4%3k$IXFaCAZXZ#Z4ue-s$hZ&Rp961a8j@!E5P-gW$PYPYfu?D@ioqUOC zIe$e^NYptv-a+^+LphDUY{cXx-ou%j6Ew!za!QHeqdD8HWxp>G&3^a|z!DTX=(e*- zcXMJeId~*g2o=&8+rn*T0<6~Q8k3ARj*J6IB1xxM6QIbK++01hJj)Shr>sXX*`1~Xm z$Y|og_M!YmFywr9dQL@XQIl5X(q4c(8GLp3cKgfM|17I#rDMafc*oBsDHYtO*8e## z`o}t@>bCv1|9+3@!~a=Df#%GV|BQq6f40Kba0=%Ce0V1H|KNT7@81~1SgHQm-BGQd zWP#$pvA^H#mOZ!;OO;!gU%egipRfP)?-cY=WK}BXj^>a3H}?Pglm7pCmTn#^;$JFB zlf|sjen9U(<{(o)98k=x%L}{4jpj|iv|n_^yObUhtVWGm3+os)9|1ELDuj z@V3{85cOM-iBLTaYbX1@_+tbWk#h3{%|aeRl$qlTx?A&vsF*Ix;By^AlX&Op(NF{p zq0_DfxDUl8bn}e|Kllf;lk}~2So0~BSbW6#{o9%0i(|m?i04Pbb&i5Br@Z5#iaV`n zOUY~QM8}_ez&gnrCcn9S@~!*m;KD`-NuAqQayY+!%y6osJknj`wom?uV}w)b z6{1Cfd_Qd5=;sAp4AosdiVhL-x9pZTsPPkHjKbdw@udA$7TkSoLlu-tm|6BPN?|oC zWS0cjCRvO@g9xexu#n>rsCO1n2K@%5A|9ZZjmE4>39^pVg>jDOu@xU-2P7(<9~4Bj zz#gAgeB3jiSx*@GBC+&^f1nivHj?P+@f^jJO+mQTz82A!Z-aCs=WK*DDuTaRy=T#Wh=Z* zcWswdX70=5ib!#;4HnDfhY#pV2V&I%#;tS!10evEGk0BUO~L1O%QNBWl~cCd_<(72 zy4`D|mlZ?Y?I@9^)sgNAqc!Np%>{&YZiK+QmsD%Ut#uE1qi4O3fi$-`?I1q@L{c?a zh@8P)$*x9#D5{HsHR)tUGdV{n<+PraKI`nZ2eDAOXRZZ!WK5Sy@)HiVw|x-MY)9*s zbZ06%wJ<9tY)anq>3KluOl6Mao2E5pe#n~hqEo56U(%DSXC+NRms-8|FJZhF0*yCP zQ@Wgh`wyhZn5bTcFOKJTJqmpF?E!A z3l}Gi^Ei~aA4TP^K+c{Vl2C3qNEYp~88Ga2L$m^dGXPX)Lw)S=#E8J=5g*~!mZOB6 zDjp<@E5RFno)wXP4ee2OGyF(A?Ntb?vcs~Bk5k0x+nhSoI7gU#4fH7uUP_^TlP0(k zK4Dc*Vyhp^d+V#`K=}ywOG1-C>si#()dt?(2cmw`L8n}`RLA2`=GCBpOg63~!Ke0X z`z63%dyW!Eikn;NRCxD?1u=kb;rgF!`iaHmhZ?vv9D!ySM9etBh&f7xe4ss8chK1W z#O?LDu?tKYw;E433uh@D#)5RMrHd-Uk?Sv%qg*_2#zQALVTq{%iIoM_B3)c^r5d)}L)d3TMO+C5W9I6f!;(dkE-* zS=D7=uHq|^#oVhZ03@X>6Hu8-vyRv#F9)h5S*HzkhNXA>H&!dRcTw1*VEzT*kean5 z_W`k-WDHMUR^%p7z88ssm9AU;Y$iG%BYsGPJz2MC>pEd!svZZNx`w9CbX@;#!9pP4 z9*o`Fi4oy>NqwEctCfi6{OaRyc92VtJ)SU+#p^jXBw2W9;x(9+RnBl5=oS@o%@@?e z37GB1OS_maXK!sA*~b@t5g_Z6b%5&$Au>r_byepa{wnC(?`@&EVq&v1Q5!p5M7-N7 z8u3J{i$OhO4fy&j!piMM2?P`r1dk(KqK^nurb)HRmEp(7o*vr2tv$B@hR9(@xM4xG z^!#Td0w%fez=R#r{vnmcD&1*i-`y)`!bLv6%04zTYSu5!^aEbt43PGD8?UG$L4~iidz8 zd@RZ_H9U5!m2DVLdHnasyOAg0+wb)0S1p$3L$(hK0lb%=&gXg5Ces3H7~`&?+`U3A zaQ_*!>}QL}Q1ced4{X%?jI5svghj4Fw~B7>aPQSSAD}6BD(d-?AibxJIiyb| zQJjAkh;ExKG)2_o+`{L)+|O%BHLYVl!oY1$uv+soWIR9bZlno);>fkm6|-Hd+N7x- zQ}qXQ=A^=PJ~N^J*#K*>;ny}S_FR|bTyXHzT!$)FQPq6OPX~=jfLdC_i}ZJ(;jY1) zVsd(HTCV=Du}Cbg_ujit=zZ-118=!6%#nu@hEG&4$2#MzYQO(~eTg$E8O^fu(@%N* zL&fSe7dq%ZVkf~BGcx(JHOzy=cVAgSjWXYnb%T9;sE@C2TLmhua%_=R*y<%|)BX7& zrD1TGWU#uZVLuO#_RVd|MBG^H=sxA}*)Ay$|53g_5Vw}h=>3HLit11%rS< znfhULeIMQsu$1l3jtZ{`n_sGZeL33v)7=V33z=UJ0Ua2AR05_OC-7OKaxtHj2R31$ zMCg<9=%|!_?F-hjO*Bvyx0HlRnZ0dip%ONyJm4=(4FYQd@6CXYQc*5mwZdPe6>Z-Z zK&{9l7=*Zh0*YYtLr({N#92U?xbhHx5ae*4#b>{8@XplS@UT&f6+Y)OhDnDkYR%S^ zJzwk)Js?16T7=1N8try*kmX)C_1Z%H>@Z;p`{t0)`Ha|ay;BJn!bNIe5a3DyQ* zElMh{N!4DkgJseaQyX4U-24keJ2<}AD!)($u|mIwiJT#lN?ALB-pz=lRBAe-A7Q~7 z!;Qh5y!}TFhVz*`IbSDaFX;v?#PnWL)h@NxDAS|Opf6T5xDPpj9giEAXZH9>!H(VV z=b?CM2woUP>2N_xC>i>OtgHeMAHFccmp(n+}Fu^7~LrmC=^Xd(h)#FlSctXw=WUlN!mfJMX^- zUf+8T^S0Wb(tW4{#1)rnMfHhhtFJ=(!nhh>p6CQ!C|4}-1a}+0p#{XL_p&62 zS*|>-$<3~TX<9Ck{-sq|MT>!HVx521rG#rIsxKz+QTSx`M_ciCc^4xh7^4?57dTb> zEMq7gJseqc4GOjILp#^`TAyI9oEW#s9ogj8Q}F?xs2LLyti1GG=-ZmGGSpTRsNZ4I zSvxvXN2S&JL5bIHc#Q*l&9Qr;fA81!tevOLS9lPIXfvw<1_MZH*PCa7TB0V>`Op_} z|6HbqC^*A{I_KICh`eOS~B6XgQmNsr)$NiS=vcqBFZ6ec`GhZuWaVD;?^(61m z=m0VBWTn(2XcT>$*#1z6LisEgBcBF)V2Ua*AS5906#RP9y$Db<_uYK1I=!>`7twm! zjRh#|)3c1lfp6@(ZSWUmz$G=uu`%|c>>!u3(KeQ))xP)vLe4Ehi3RPz#&ck{W6sf< zP-<)Gw*0^9D;?gghtzvz|6HzE%2Z|CA&9)#O$8#FnO}kC@fNoFj7{Q>a5uGr^F&zy z*jc5vEz4~|*%xmO(JVPt3cFCjBbBa06yUP9Ki2Wl)?@#-1AMaqZ8*zw2DukQ@EG3n z$s{x$0O6^Jr|P?X9I_9A`)^e^_st$tWD(R_x|`jI+Q;t-tgzVx&aK^v%05!^L~MPF z4t(B`sN2deZ3+`A6&MoJl`L5b*jVry)oz-%?GpV_-qywh1@^&?Sr2?NPq!yyeZ}@q z6yJ{?({xTY`0m}erYsFVe$!RGp zbJ?FKSlx91><`HghPvp-m4J_VCi_+B?|~<@BSN=vyWVqePD^uf#;t{y-;oLxm5rL% zna9{>$f_TG`raHy49Vl%rzr|bvogr(6X=h^edZt&>|F{yY!JQwGGP+^F9)*W)!Nxl zr!r7(EhMA*Y0pc!it+p$L$%2{MX54#b8E7}(2c=N8C!6^km}rPu;&uv!y_-yOgyL{Hnvb?!uL6T_? zW=yP5n1@!jFnq;h-Gg6+B{e>lDyu~F2_-BX+?)P%L-U4lYFLs6nJR}0KhJM1VPc2F z_=7%6>a-dCE|syOus`c}eL-i+Ed2P%$rIMGcJ}%m6tk|U!xRRJP5lO~+k#IQT;ZD* zwAQB@6}u)?Vm$!-cDn0dPe8dCTuRtU6e|vKWc|!O4*Ja3b>EcCN%r-{qqV&-e>*|`V)ie;dM22RK9umPOOzDFNHP9;nJg9{nTv64-SgV@H)!4 zS7~GbLtyY+VMM1b>4}xsy%E9&lCrNN$ko&GPW!`$3vGeeE_$dC;w04>3yS>Gg0S;RS{L7F)^J zN53!Xq)JYEowJZTZyGBJ6{HbhTVrQDZw@al2oU{uTUinx+^Z9n1p)*M$dzf|o{#V( z&w!mn{s>Pa-BR%V#%(z^vPadmq`t>g!&bzHFL`+8%RZb)B*wclU5wQyN^}V0QSXj# z$K_xDWO-Q)2R5#k3JW@`7$ZO`*T)BQtet3lDR`0_EX|g@ndIiKHD%1G53;n;* z_SSDvePQ1yiUNv=fQSMzl%#+lslZ4{NsAygN=P%5NRJ4J3P^Vh($Xb}#7LKPgLF5{ zP?P&?zvp@1>pXwJ`E~Yn&Dwj#z1F(#PmBS@`_TQAZJ>8%b7SJxyHXSAHq$4N=wy*n>oq__;jn;hF7 z!^89duYQTi)hHcyL?&91gxi6u0ktZ3iKYtQo~~Tv&)|Fb9!Go6E}!qXaG)327`@1J ztttA$GsBMim*t0Kiyjg`-;cZ*ded597NHL?7(%G1?i3dgrhXUi(QcRPv{_#L6!4SO z+efhxaypxYfKRfeZ_EUnoT_FR5~GcDljhrnXMk(C?2`MebsYwz52XVH=f7m$ef?6D zC46APjzN)SGI1f2=KX%E>d7AHEh{wju7&X67&2)Qr;~NGN_|^L9|#gDg3H8ivqXi? zILU4)i+++v_oENp6#eM`z3vtvTz)P+T_f0M@*&Y5Dk7YR0<8$eNr^!1 zEWDZozbgPg61Z7seaPAL^Fm7>rf~?GX5nuLRx~_iEd*%}r9+MTU=pNDv^z(=?{oWd zY6u_(60%#c)`p1~^r*byQLHUK>7GchfyK7_mU+CC=T5(2(b8LVXpqf#gZYHG_GMEf z;Z>}D{LI46P?DBzpffG|8~mQ4-xF_HCVa7CWMLWj?g@b+Mz4_+Kg)2C$*5O|h+~c)ej2*o3=xHE-#ylZ7I54_g!dl1? za#HUcqjGBi>~9Ip$(TSJheTpAS{{l^GIx1dg*;zyKL4b%B+$d#4j!@YuHWq3fCLcS zVzb8qFK1F-!z}6rAh)K@V8w_ueX4CHmq5{dRgj z`u?>_wkk_EC-M*QwhOFYm>32EL46mSAe99@MMFe(lixYq| z^YTxmkGM_+=r7)PJFYWQnpoC``{vtN#Xgv`J$^7+k$f@xM&$kfq7C%Ch1Q91)`?o^ z2C=NK*%nAp6o7b^n22b<#f46DY3%7lfzp9)mZQ3VTuz{dAU{XU1x)=bu>DMLuHdj@ z%Ud%F>>k~?hPp6R@LCiMQ4j6*YMcfJH>w6#90EK@CP6d-2# zG@=~}Ym#8TGJg`h(19Vn)K}8>5a->|I7<1>T?Oz$%WAMF6gb8nBC`8?xX#Z5AlCN{v50Mu@#4Az|DfB zp0C^4zi&f7S!|O-kFAu*U@^O^)FWW8FjoLEOCirTCz&{@h3U|*Qu(!Ahk(DBK|N9j zaGa-`w8ib*j{oB)y<&9O!)Sq&lP%|pF8rW#7S~Jb<+ zf`?+Kf2#kQyx3HT5X@x1eL3=&Xu5Uj2{)aR>=FeR5 zum@%-FkO0ie5u-tao~$e_#gTG*Gt+}Ou7!POZf|5tYMdkVr;Q0x&a(b=`WE!v>VS6 zdC=A-W%I8|htqJi+G(RGDX zLYL0NP|rw$P|;77bITJWye}>aNiA4D@79(g`@my=Sjm+ssci<=_ zI31~vA=b8pD3%=yc_y*jK5gZ-2sb5qQE9d}xyX9YFG=ASov}=IS)$YwRJg>zoNt)DSnto zQVa9>S7hswlCj|Q1F|Cl*I!kMI#9c1=Qr_vSDNE5% z3S)mj3xWo%?G|7bI%01SX?E=wrXhAd*9QS-yt)k26-<$@{-xPq%1#sn2ZCsG7-5@gK%2An_XG(J~?Nw%0O&aAXfw+=kcz2HMLEm{n zCYBfQ4{7eXgsu9ChSzSrIVBuLA^sYpp+56W#Pgr3Cro46zgMxJ*7F~YLaOhH9fl`u zMM=x1KW~vAO9UyoP%b?^ooAGVpOVhg>pl2BpMDlriOEp^P_rPAi5;V@Omh_?!oZgCO4xH?dgB4@ z1cdNC0Te3#bo5{-h`2^xY<>o90t^a3a4>bLL$54Uv>p@V=h1xa6$!KWCiHYs z&mPG2@{m+qR?66RYz(xw8Hwe(*TRt^JJ^jGj8SE!>!47Zpj?xAmylp|Why$^imi;D zGG5@O3$9dcLJcsuxhhqW2N@FYkI$LG1^5`5_^dHsMyH&)(s(_cEP$%c78(40=Ao?F9;Q$A1PcC{_yrg~4Z0BS4LNgt;B{HUhU(vjXF`I{r(RUC z!u||1J+-BNo~(RV`@g?HqsI2`zYtH1^85KuWr2(O`Ogr}P-T>%Y$?uGLiqBRPP7|s z*mFiciJ#G%bzcf>fU(_Mg3Ntga(}C!rdh4r+pdb);9Ldo%UyX-hK<2}_TN4qbzgUh z{>x2z;)^3f-6T|O4(4SlhdRN-da54}P79;XL;95>70JS7ibeU3F5YvMu|N)}-;Bu| zWKd_Biw4bGKJsYWEUg?&!kF$zr{s2&YutJG=9V3w#$z$fupWnWGBpt=a`VxxCszwfLeNM= zi_d)|!Z^3vMl?p>0BU@Ak>80tt*llcp^ky5=cJ&i0BBDArn?n_r){UW-jkMl<{D3x zh(Dkf+0`|X(^HW7a*BMc1Jg~q%+l_r@XNs%wD18-tAV(!XHjD}Xj+C#NwCyp5?@LEf!T&vvx>&-!1P-x?jklEMCg7AAc+{}+r zo-I!;_>d5yv_!dT6x;4YxtSUC*=DFs6LURa1k>8PFn#^4)48iXEq%jx*Q-gS*cwXX z+suz$N^+>Eh<=BY9(lyat6`L?nXeG+WXnKnxNwahCGm(pyxse~^lKXCN^$)_wOgOj z)QH5>kJ>-^oTcB~Q?pFMKAgV6JJ=EaFiqJuP%N0>qmF?#J`3*y`4(kGkh3*@%*Joy zLllkVZ3ju&1KG*>*s)W8i)Jd6>;1h!tEfIs1c&Ws5|`^T-5mAb6*yvJHXVvz3W+ss zlgYYs8ul|%GQy^nI^S#j8&H0@F$93VVafLr6gB2wUel{V1ZQ+%nM{LKESJe-i2rm6 zD-2A_Sh^eZN%jT>$*_{fkuUegBV2LCw|`~BnsiscWN18UevjL`^yF7qahX8cFUvb- zGPmQUnYeCVhxL!2!ZH0)w8l$*` z2AK`xQ7TsTAtK6_zppqBeJZZTBXD<6wT*MD+SuUsg$%4I24(8f%)iaO+0Nj4F{@_l z>~Fw3#Rl9qO5;&gSHEX-knE#puva9D+Dn%FftycXNo-hO@Wm}x6x8n%->c&FJU z{UrMIj`KdqNmI2fKCx1oYpGdcfsy79@c8M^&8boQhbV9844NivS-Eq&k%P7Z_4n}+ zD=-z z3UR1d-F!2|&z6OcT+>mp7&-X%itb|5oFSwux|md5nN zyn@yil}G~7#OVj+QxX%j{fuJsyZ^X~(0)Hcb^r@(cf{vQ?|WBH|3^A&n$Mu z=*S1U5=AW|`Nlt4yUK`oI9ibDJ7ZjQ41aKQ5WfsOf*5L|u3VM*;uds@MFuEKZOviR z9y9fLI_7dKelj6x@s{pZ5T(%b0lsU3B|{>>k!V+L!HW9_%b8ej(dXG*Yv1#rUqG|< zc|4-z8oANk?t;@V>kh<0DA4$$x&prg;Eb|s{y!IamcI#ek9~coXZvpFI{n}KJfKB9 z_(!oNuq;ej%-{nBSG!m-asF(P8CE(4(Z;;Kc_w}M>}5r?a1CHfpn#BF9kdur3o)bwtoaX8B0Li3aBWg%rNr{}Rm#lc#;I+V#xc+w*XDkOLWaJwOMOYK*qy`Q&u;cXV#;Vu^gun!*yZmU7C2_iY zc;w=hckS!qUw_TaTnvD!+T0?-Q}Qa=L{?-bMi{9W;W5dWqT!!lgC>!S2;q7mEE| ziZeRqV6xR+K7Skkf@mcoV9M<#tUTqKDY9mVMb^=<2r_?CR}|4TA$9$qzXcQYRVwI+ zC8suSc-@C2QT5Hs8hyZ2ge6O5VOU1ww5x=j5WcPxP@l85{XEd-!qse$RkIB-Rd?c| zz_^OPt|WGOuM9Sn#zbM|n@0U6r)O80G7b$_-q5LNviy*Y=2qui6Tc_MQG4gdk7wN@ z?SDV@tFBhtVna)-B0%3Ru4fi?YqL&Gk@0%d8duQ-*zv{dJW@vsIktm@U|Q(&{Rc%V zoRk`4-omJ77HB2hiJe=4_xE0wO;45#vv%%vz`wA=53B>!*p?w|o}-pyH+ z1r>^zG-1)U=817U6s3T*7mM3a~}-N&Beu zkCNr>_!|KV1}7_-yFW*-|7oi~Y^4IpXOr}B{|n1tK~{T}BNptrdlT_S4Da+wIi4*a z(I#fU4d~L(^trdY)TQ_YNwkj%6>5tivCODL6sVb+po4C=&n#~~HCd$@vdIB61-S92 zdo8~9DeTJa!&`AO?I@bFLUXZnRqj9qbE9fzdy?mE6rt~a`L||odrD_AyVOj zbgX&kbVrMoDLAdCo=}W<-tF*yEj{Jc-=g%~%!dAxFmA!QZuF`BucBk5e=q+!g79O~ z=R1^ZPHA6RbLtH!xp3(h`U7;uq7Yc{IFoDVz5IeGt)~>Q=I0k!uK$&D0Z9t{T3#ps z91P?#a4M%)adW6$d6^*4+#bzc9>IQP#;`|;1xfXyN3A>7ThYu5Yp2<;|7Z*q^nLjQ zw0Le2(b$r4PM@OA&DhG@dkI>}U}K!bC$5`qzx*ZHNj9PO3dlSSt+|^k5|d&?f17Xk zYUDUyg=s9e{<=tv%(q-g-R!k?i3hLhxYcvh$yO&xC#iE?na9g*VUU2|5%+WAj$iqo zbId$pn}HnDthh9k=93Jxj8#0{PH~-o)(czkRcvdBn6TPT7L74Hu0Z8t5<=^sjea`*qgniI|81%jl^f?5oT@i0{4P_|H${^` zPng<95m2qq|Iz*8=Xy8oYk?LXeW+cq@zSN=il^R<-x~R77oxa>V~58#+wT3Ov_qWD zIKuno!YtPNrRF%-?xB=?!VBbr-mUW@hp3+vI_fXD+~wjmtuo=gwi2mOOe+QnBP~-% zTK~Sc)E!g9VbS;8pMzs*ynSh(@gz86CtQ-$@Q-8!xS?J2^SKpQ)YHj6d9f36NNzHD zb^}{n-GlHT$RHdNa314s^zm~qcWf2rGn;}i^5bH@;68ZT1&=9mM~x7Im-?fZdl_{LTJGO) zSRd3o*is(;#mPu9I+d*1h``k$EPC5ki(Nfdnfr73yWqW$WA?9xn5Zqp`M0pr#zWLB z^&noJt00p;^Q=dn&PB zZoGUAmV=0ZKD$R2zKT8KWrf>JTSdtwuXYC+Js^Zba0{TG#IF4I`36WX6tLwkWVq6y zmLm5l>XJ6!cbfRZBLZd~VRB~(AZ_U&B$>%7OzAHk6221`Kno4iW#v2ui<=YV@ zZlS0$UgMoQJ)YmZ?ddx3%Zd~lUXtRzhS*v&DnTCDH5RK&+)qS3o>=gdUEP4`JlaZ1 z56vbm4x~15Kl4^_Ta$_o;(lpkeZ1Lc&81gZZU)u3I+A;@ivR6Pj`T#Pl|tb7`~YNl zNTPJ{@P`g8g15iC_tEnI)HbT`|^AK0q8-+%2$(BeNuT-89_Gg6D`grKzC*Zlt6CGclm?Z z`?ceOy~S0RCD9twIB}hh=i%r0j`;3$U454S{$Pp5>AA?FBU1i!k7@OTwI9~ui< znl(Aa&Xx3McNFy_U|vc-_ChxSz;|yvc8FV@p1;z4!Z<2cn)5a}!^d>_EcCB&)Mek( ztg|~K*a!cjSGI;F6`D?Ur04kWn^0Qi(6N7!N>4vT{PQu~a+E}lSEZojFaP#o3DO9#X}b3zmM+9JNjMrx1HSV z6R!5$DXY%(_$Z#&h~&bs{{&8h_O(HwNkVzb0VFr?19a5iZ!>rh8l_!hop!69dp?G^ z_rf!}S;K)7{Qi1P>xmBNFeA5#wi$U`_cPA5OZUWfmXV2p$;H-LRW#wr|Gv`w#V6ZQ zj7}fvff4ViplMBXZrt%bv9wHt$tipqwfM|%{zd0K`2^)hONM^o8$UqCFUNSLQzLV7 z`zjc%vy|VM6Gp2LeWX$xtcZQ>(erk0^;or->efcHlk);Yz~rR7RiRfN{8>0j`Aa(E zvMEXRslzzb`%C?YO*fGO&YUvHDITd1WoAR$7YGKx1P01OXN%O)+bS!H9SF#}8wgj2>3F^34 z@bxk)OzrNCLjI_3HVPuV=R^dPf zl4t3zNmX>NUZuN}I`CL3JzLGIMRR;(n4g*>&wYe*Kb-(77D+5HOS?Xir)3$qD!}Id zpoX%Wf#~6Xc5_e>!85ifzhzzMyjtVt z-90Rfgx=U3wBA6nzDqZPXpCes!CXWCwnecc@BYkBPBX+#+4oE2HCJf8LcXaR(I zGv7vKtugUx*=HWL)|)G9OI&_^9iR1>oR{gD+IjnqHGR%KU(D@aHbl6EATgQSgsJY)j`yQjWBGp zoT&;_zhc~4cy0l8pk3}X(?V}hi~M04Aw?dOLL`wlG0E#sy3H%0+P5cs-;N4Z>1n(r zoYvVg@2#h~yburL-K2QZyD`_3k3A){gt0x_9%eMMxHIyUdcm!0Pdu}oTE&u~48CHW zQzJmX?jiJsyq;Enlr0 z{p`^xtc%m+Yz$0z*`64xOiUH(iF8Ht$G1q@z0-MoQqwx=iDoT`JG#=?0$i6~B-1F- zA2E{{1&%|Qr`~ZnBpGOZ51d*+?lT>zngq(cHRwc`&5vrY^hdm4v)n+VnZEYe7XC4_ zXf@h8KxzD~k+&}Wfd+jQWM)^fV2a?8^YLHFBk1ZVoGd=JyF4W!cay1Ck3_wB>9+u} z!>q@grb_yv@iGX#KrRgZ;K*onoMz<1cJTA42jt**jT{&|INFVTZ=v@d21H-ntFF6_ zam#)$M4v+OdU)hiksV8+{YQxR=)YmbIv(p?J7?cN5c6Das-^Uv*Ff1NZztXV{&i+8 z>c8Rj>^JWvH+e{aGs2(~tgR<)J6)j1%Lvd?8&wRXHWu@%uOR2I zSy7ArUpBbjF(S_>hi>0Z`yKpEV)5pt>Db0(0fXec5B@H%`fqSOWz5{!wpD{{+C4U5i`j-1r}^f(>AFO|hvx&g!n7e=%UFIW(h0z5-Pz zE{p=p!4ZU(P{lOVz$3?Ee(7tOZ#qlY5S?W2lZ$2+IA4q?(^z$V{pPlJae{K`6813H zak(KIF?bL#X`KU05x0-EmW*LT$5C7fJIIMxyr40whK>26v)W?(g(RAIb^5^;eR+(` zn*0B$6ZM!lFfNW9xgc6|ZKy>n(D#nwRjK;T5%|S`h%h@V_1lOkZ@ay>YUZJVJ(&c0 z86o>ckynw^BOgQ(O8Hwp{OG@YE82&B)pjA^R0xU>ilOf>Cy6Yd!>4VMw005O-wP;q zlvx6Twe80If<+IsAMc67*5Ii?%f9FIuWM@^AYS#X#?^>B6xH_LYWfLM(L?zW0GSPr zS6%%H;~YF7CXLw;!TYT*t@F&v30pzxq+g<0ZzlBc8h*Pkz3Ju(qy~S)q@$H0D=BEyG)~O zY>)4WQCSz$@q+qJ5+U&Vwlp#4Zrq8cjq>f@R=(f#@Q;85hDbhO@h9WYI}<H!>$@ebtK#h5;SUN5U5#Qp$!_Isg85rS{J+AzB(lCSLt#HyptNB$*&+bt= z^jaxj{`7a`K&Zggfl)MRO$c{_*dq@^=K{ z)Gnzf{o_lrrv0Z2*N?<+yvUhg7hsAp&~C zZldxhPrUu#n@|<&Io?PJ@BW_u8}|EZ!~brw?wFFLQtPI6Dd)OAv*mjwS(=dXLWxhk zDyz>8z!?~7{=b_v#RW%B@mwu%r%nu^ z2F0K1<3HYByrDz>TEgL9@5_weJf}8(ZS=pJOeDSHs{P#h-LT#4fA>MU!&SoNk_y3p z0pR~OiDuG7WCClm!5C4>lDN9Lx2F?WLHNL*Q<;+sxKk#rrr{FfqoN?;s__WkExHyP z-w=%k`f9B(c&r?5lS|g`Duu6t+^pM1MzumPg-w9(S+AY`!-lm)(`xV_sA)ZPFhmpf zrbb3&XRe`c>C5|Vkg!0k4j1|L$rgBER0|^IZQ8ilrc1i;c-ZceJJU{^xECs_iSeXD!3&ra?4J>zc?s!0;6+k3U?A66H!ic~8~*_jv2Twr2YC<&me=P5}Ao zhP~=)+Ens}=>qOWE%>Qow1Mvf4}&PH$^%b|ox;8;N%j6KrDSPxl4!Q<+YFylhqtGV z-gh>Y4BOR&5vd8H?}=SsSsZb*Grrc2*DSbLq+MS{G%*3@4=9gN3oB$q0?rn+iRPPkSrgRgIgeaX&scG15}@O%?Y;%G{Ja|z)@4g8 zfBxiYfjWI?vy7(fM*2Ip@u*-cFB!wcVQR~1P}aWs`)HvYyI#d$?QG}it5z$9s)j;2 zvOv0`cMwOv2XCC7h6~5Ow^83eY*>)TzsXUBF}qK6I?s1{ioAGfli>6SE7H`S5^&fO zc1Ni3jb}E0!N-f+=9kKj1eq`Dy^IlU4(UZ*$r3vA}ZUnrTho_-%hUS*q^5gE(kAPG1YoC)v>&1b0?n_Lkg3$-6@AB%=s+@ zM@N)YU8wS3n7XWx7^pt5l zt*LHgC@a6UzSy;SxyPxxU(!liJ&H;=`Mt=uY(Ql$`6=oCedp=ZS?9FUx)zGR^Rn_w z!@Fe-2kW>Eyi^S;rL=8S4xJ=abKn7H2 z15a=a+F7Jcr7a`=-bugFg}$<1Xo19qhIh!_-w@V9?&~owwy|{yr>gotlR4@!dH91+ z*Lhh>`6X^5lNz*>l4;mmt-Rw_-q8?G8(4O^_-&@}dSI%vsJpe-kOJj2(ZC|a456xr z5cj)2It;iI&BL}uA|34vTuwK+9%c54?MD@ogg@bmuP^O_&fsU(IcoDx`wKHwnQ}8# zB#pgWK>igeF}|JquQut19* z{Zqvh!)?njQCdmsJO(k!)vydN=A;|7%%YYdl8^7m-8l4iFM@!;P#cxrFrL zj|mal9l|H5-mI&Cd*u&$;IZ>`>$-?$ z+@eGk2-pkl2s-G4k=$#q$f@2x$;+z(D|`YC&VQw=e(;(5A9Yl#_8?xstRgjt{l`$; zlhDX_QdxLWg#%R;EH?0d1zFOyH!Z}1s0+sGKL{S{x;{n)X!N;CH;nWp{!CL-C_xUp zYB2qCw)4pQ%5!0nag@UI`S!o;^dBUxtX1#6y=mz$1R6C=Pu7thMTz8V`NeeZo?*@r zn?v8G$Cxq)<(F-PB8VLuI-^LEqi<%4TzHPBJ`euE@rWw*W@b0$+P)}m0gTL1IDOec zwXJg_YUWF5%rKKDq2P?kD>w2?J%D<;?!7iew=Wj|*w$jg<3d2@ck@6Oq)2n}Gj6WL zj$5$%EKdjFBl5Nr@(_PrTw~FfV%);kL35J1&&hautZe{J7vZyb0d#?Rr%EjE9d~s^ zCp_M7jDvIRKh*djc@S?fa>`y``e{+|;{U91m9k1z&nphKfE!U7XV?3F3K65i)Kfd7 zvC~y^P5yAW3vxt6qFbq_!(K;3osLb?-You?6huEQADr5z;_o}0F5EN51JMSMdAKl>%VQS zIf@}Q95;r9Tln@{eA@`XK={q-&XMcIw-xVYMm>lM^}og@%k6hs-xEYLW(-(9ed{mr zrPHYT&Rp>NlV;M}0QuM>M(9BtRrlTk;z{Sqw^j_D_#&3dLu1j@@^fC5j(kSXpehkp z`s7^8PIf4K=A3`J{j;}x>%B7|6?CHTnzmum?y@_3nAvI7CN@abQ)ReLhi&y{O608+*bkP{_8kZ9umIl@BX2QKW{HMVql z(_gz|m-N`;(?s~qF6cQUke9YVP|9~F;)zuE18Cl)d!I;BY2Ci>G`den6%z}`H1^`Z zH7>ry3&MKXzEzsR92~LkI8!2g1tT)kyx3WbgSpxMd{GPtMd`dwdI7LxQkvs)X!M%~ zA#>A!?LzDp7N-)kQAb3I+l$FnU+a_4lo`c=LPjrT zc80m+liYaNlW)4-xM}Xwkuc4ZrjNQ^W`dhEaTH49RY9KjYKk;OI5^ybU?9V9m3|zD zlYLvRb0D1UA8(1HyzcEBjMnLR{l2h8V5Tx$fp(YqlI*NW<&W24(eOtp()i6bTK-3;k_Gf8#QD$1B!-5H?{2qM%jx>=Q>6 zF|BV&7Wg>G7PoZL%AUVE9hilO8;`slka<3@^hmfI^h2@H6eCv*C5DrXo*~GZ99@?} zU79{DEJR};e99T!wQI7ZwkRL3p)!PSuREC(2LlWK)F7(P5Jgbh7M?cx&pVhb% z7eT>slkXQO8u;goHo9R{2axDr`m-J}uZY=;dW4ub3p)>_r`-LG*&86GKZyU@S9qE6 z199RBOVdO4e+LHZ2$64Scx&OY9q=gy%10MYRhAf7skB3?epo|@DpJYj#!pHdbl>MOl_wGIQwHJgTnoiupcai&X zEo?gP9>9Fo6575q-n0LBh+FX8*h`n(i(mD*3sQ%Y@+8>fA-sQEaQ!je&yN1JIMOn%XeEL%&vl5LDC8edt|eJG8nY~uxA2wP4KAZ z;=+-V8)~gAu{U&A6Aq(ag-5bmMTrlg%`^bfyB=c+^HGLTLsVn2>6+)L-uQIY`&)Y(s$Nk)QcB6F_%#?(Y4>JR^HT?44Z z!n_UzK2Wb383my9W(A#Z!)iSy&EL`J1o!mMkP48=wF_zU;{Iok7uFc$bp7CO7mjsa z_v|I8IN)ExF-F_>x!39pHYRs$YKOa)NFzKx6b1@Cb zvm^F3*k#-F?ZNF8?^8SWbe}pdmDbI7p3FO+5tRG>I{5)GcH+xs)$^6Oi461vL8%5D;TselPWsEnQVB&Fq1*Q$dxNpF5U6GU z%!#U8-_g4w+3DWKkyCi3%#7fA!*fJU*vd7+s5aiIP`NDBUhYv`w?qjdXWaHVFoEW% zO+-V_pU6T4cA|dy;9U^%;vB$bcc;>?svXjp0I;;-b*Bv9agvkvNfAs5m(y9@?VQk( z-=*oQJE8zJ2zR#efUzk8)VlTvSml9oJIlN^ z*{3ja?8O*D70xdiiqxq}AzKaSA8QOmHmTRv!jLd5>(XbJm)$m3Mo7RqfaURcMG!In z6<>9$yI&rU)7eIlWHp-A_;>QwSDpfKEWg93MVbqLd=X82;aP-31}OH+$6ER01Bk;5 zO(*!S#<6pZj%;bIQ6hgGta(?|%yU?!XmA|6MuAmuDa)7wYLgsG@T=;!vrg4Cla(f@ znyR0f{2Q>cv>8x~@G0DSpD&`UZv)}mC{b=Z^5VST7q^vA>1B^kJ8=YW;_k%L?amX2 zUBOBe1{Z1A_o^rg)%tgqo5y<@eRfpLZrBK?ijys#x0@uV3c=0DZh2$L?z zKcB+hNNt*cE?@8s#@WbCsi3bkqCiO|4QQtku%EGo*h{sr?z`Z(*;avS{+}C z7K13+j89M~`7Q1|W4S;5+WjOHx~O@f?qSM8aX^&r+nN{96al zz--4`k(!vlupR6qU-g5KL6E^)A#CLlCo|88K@s?Fr497Y5CmV8++J1XOjdH?ToPmS z&a6cU3<3nn)zgv6s#K;K48ljgzIGnbf{Q#@IX!<|>W`?Jc`bTq21Qs^+XE2q_iT{L zd|u+oD&|`ysjK!v)r}Y@79uF5&}@JsX4Jv=0#v`iO;LEy~rq zDu)u0-#TA8gASCtznsMqPn(}Q!>6T=PZ2mcRL)K6M{mV1f*B9>9Zog;0>Xk0HMkhX zvPUv%h9st$OFT2u!Hmy-ucLDt6Dd*30kG0tro(`d6e+bUswUfD8Xyq3p__@0hLO}# ze-a1d)>J>N;bhN*Choqn#w+Ml{UY7zx~GeJL9B$Bm{kXka6_ZYYac=ot!Eyq>H~Jj zu59bv53fS0E7bLiemc@z{DBo91ej`)eKH!fzM9H6Y{z`eUiC)fol}?w(dsJ@r;N0F`^org+9S)Xe5M@aF*a;=Kkc)v& zY)M_Th1ahghKdBfjxKoMCPNAyoYSOwkB!`u>JxY=WMb6RhhFIifC$|C z;iQ@QE7^SvzraxZqKq}ayv||>KhrBxrrLxH-ve@vgFFUgcmwz!1!nC|DrCOlmO5aC z{(U={0b0_}{UI^H$)0J3D?BdRqEbDDdgk=`1o0lxQr~WHh%OkdVA~V9^i|3gqa{Vt z)va{_9WP%SgoA^Mr)@n*X&-Nb=pB|E!Fq>i7<9D?Etvm$ulZzffte6iRuB7ic<(ZB z??_X)`RCNd6%)#0c@Bi}lXJJ8qSq7mBcjI7pqQ3H2XtRKKvR(J{^f6cm1B_t8_@hU z4B|Dl2%k!>@G^r#A>E_Gm?We%c5A1{|F9rX{!ogIrp>MEZWoDZBe-Tfa_@|Y4Tljd zC4e4=z>i#Cr7fdjYuB6y(j^2-8h{&FzNK&Q_2!WTr=2^eh*9J_O{tpve(SVLpVhF$ zbN{G=!H1TJ35@3EATLt({MV+@bj{WvUK4SvrEUPfF@ywpkR3QYcJ+rJsmHbQV2~f> zl4R@*q}XQ4bjOLxSRCW9Bu*VQ=G7}OGjY%Bs1Iuz`Z1p*{tR~9w384*`S-nTJhh#a zFDC2`ZuO}L;{E$A4x->&;UZm{h)(}e*=B4)94O-Al;AmP3{<2)BDH(%p2xu)64ng3 z9MXtM4Nc7@(22a-%DJIThp^C?oAR2N@$T}s;5gB}2zVY(CAvaC7*WNLY?}xixym2c zd&}3T%R+}v*09kF!Y3n+UU95Zt>@+_SvD<}nH4D^p{I4h>%^lyxh__&t~$au@rj9Msock zklr|8l~ClQWnwrR#oCuB6ldk0sR{Z?z;q{Y>xYA4J(}2d?&rnK*dJ;lyeLcAZiCxl z8BDu>0)l)xAdsj>+nY-RkN0)M3-UTPz1Wk#kTy18AjvYbA|yZV2R496WZgkYFPB0A z=W$46w*mD>V7czyhP$7+G_B0Gxhl=Ozk#ZLD~en)C|Rt`Un+>pvKnzPN&+~@3Z4fW zOK+t|bC>FxmcWW#s#m2QHx|Xq`;y*12qYKrX~m|Bk2vs_E&mE2@#gFu;0ywY4U)Kp zzongn<(|mVsRR5rL8I2sxgUWR1lsD|n^1l~w@l3s;OpgQQ7o(W6>VCmdj80MdoJjC zoL9u{AK^|q0Tf-3hF9CQ&9BGL={=fIre@YO7(7N0;3E4uKY7xHP4E%9R&N-Hz3e|= zM9Er#=oZoOVqLv5=uQqxts6b+S~&Kt{447s$zCQ36y>-1T|uv|EG3k8PpY|TCrh5Q z3`fbGPAO!*@3xuV2lHAa`~i!911Y_2;Wr{8ouSN_4&_;jDgMZH%uO=PrOnOj0LPkV z7vWRXdk9&he(Mj_>Lgo#0+*V%TRF5?j6?WWxkxFylL84RKdL7Yj%ZTfOfv9iKm(70 zAhZlOYdW={qJx{z4N zM`zi|y?{Nf>rXF>s%PHufp`zEp;MyZ-X(4v$0xs#K;U^B#QlUk*_Ciaup4DJii56K z>^-vqFoM#ClMu%pVp6@wAvRHtRC8MXH9%n=X*P<3CJip^&focnKNwt5%A8^y2xD`M zq}|02Cp-&DcKiJQw0E6hO)hO35Gzttiim=U96(AGj-n!jqF6YB4Tw@ADAGZCPehtD zQ9&Y7A}WH^07B?Nihxu_dWqBkfdmL4q`v#&IcN3T>+Ct-e!Kf)uRZ)5-c071`@ZMN zGc(W3YpXvnHiR#n*bsytT%`gp6;%XBI@O`ibr?W}H-`YVT^S-U@1LTdbkSStLqjGf zzP__s;#U{mM*fhOHpfx-F|0zgGGAB#%bPOh7|OZhUl1I}=trvzhgIm@ZB*5d z_*0yt#_^PhGkYjFoPaJ+Um7>?YD%+nYe+P4w(oRWsW?<{L>VEOjqSlgjG847FQND+ zHlIZsyg%alS1(^a&=6yA>S{4~=6Y8>VTyei(9_N%7Azumiz>dXLjzz!ahZ^&>HS<_Je$A)BEN*xHMYLSR z;JFmEoH|3QbY!U4Kc04wb0ka0+&`NDMUT}4Oi>axOi|YE>fK5K-thIJ;UD8!u;^B? zk{YxOf23!xRmJOW6H`u zN!M@6B%oAdOl*1LMJdq_Rnq?5t)@YRZLR57EE;1>%4onS@FAdy_sx2waZO4HhGVdH zIeaGIm;7E!Azw$wNT$jiwm*WKnHi51Qd3!Klh+8IrR%xT$T1%AT!V7^hy|gjf6DeXA1>tI3@uRnsi7jiSlrUtc*f;{67 zW!t-utKsB)9Le9MXrS(;CO(&6R#2xu0h)a7UbrkIm;z9Fd?trRMSCaiu?6p%TKd@} zDK#$?wHQpd$fbGuj0BnX-=UA&&qSEHlxHZ3ZG?%M5SmmXOyuGPkBk(!z~=8b9UiIn zr-h}X8*Hu`*a;=_Z#d2Kvl7hgTH~QDdF!pg9@xup?$g+g|nA>uC-3Zx(Tr9KC0nUdJ;6bD^2a#epMgicMqnl3X9%7=2BKaae}^o zwB_oqk-D(TN`71CwU{Q{-iFk`nRyo+)mu)zr94)BpueU2c0D3V-BnWU>`lroO?g#N zKL6P9_#D_q^rP~rKAh!zn*R-kTAb_U{c^saGc%ykW|ELwug=RoBo}30zj!ux-~vn~ znYZixo5Z3>PzlRFz1X`ky<}aTd`FxQYS)W;x{KueM*KIi^xrphxntUrQtU)m9UvHK z(07KlSxHpb6EDIimgJ1uKnlH3F>&~E@YYbg^6;(n>WEt%DOUnPnTHu^QeRh2 z7zPDKFStF{m6D(#L9P<3w#uK?v2&L9+ft|div%dRjj6-U;S){cvZPsK|Efl1H&xmi zBStvbyB?){qCTEa~gd$A|pq4>SAo39JeRt5Vc*s zb%~X)@!Hbx;S}HS{ZwyvVjiw$uKvKWR)w=V_{r#WV5Dm0jt_XR>IE_JNrqkU(D_my z_FaA%{PZJdSU0^7jUD!H%_H>=xjel^68+rUK@u5qYCjgJ2`l>){%TvrW$`T|ZyY4^ zzNEj~pBT}@$GaD_KH+WcwN#*R!SwxfwraWxf&?L*%eN}%7hccGU~o-@^|j?twq+``w!nV zcxm~GpHrAQ8SmrTFJM05{}Eb%M>w?9eB!0Ngy zWJ}*!S3zY-3=mBEn1e`JxwJ8R&M4}s+iGYfGe2OMjF2Oksy2}eFLgxR=`>uh+l8tt z!d!b+`*qU5nY0NRbdVs*NpaTmgKvSzG;WgF!dKWIA?Yt~uD*Tw=xpkAr;mmcHZ}Pt z^2JaC)0sB+kC!hQOl>V6W7&oyJ3Fzw`~Crp^)7&SOLBZ?9eu#?vyxs^&8e35IEON6f{-tN^x7H$4mf`Sq*J7(_h?fD}*ghIof z{X@Hw_c21<`aD0+Ukl=_u3S~snq>EhOSENmh)o=NM-j_GndhdKZPRtsYta)DwH^dr zlJd;tArl?DAUg|9z_CX$-)C6JNkFNzMI{sL;9m^!A7s*^wbU>{GR584tCj5AUZ*+y zOL>}KX`hrj#Ntq&xevH(ip6&*Kf`%cX*tvshKochhWCVQtW+Tb8CWHL@)%UsqfJ1= ziQqkKUlT8N!7wMSlvjecm4Cwn(BELLmax~V>d=r-vTL(Hqx1cd$I_7bYXt1j``*l- zfooJK{qhMPVji|U0$9WhSr;o0lLDFvEmlvBy@VTj`!6m3F;D`_eyn(xr6-Ms2$4MgM2RCu3}qmLmyunX6Rst)YTO_rA#kmI?Rmuz$J!iTV@lN;bXip;S6rgpsOFt7nAKD!G4;U&Cn?3~+C0+N z!MI^AtC$yW@PkQ1ZF@u3t0bvD2|B>lpN4$LQ+RqJEc>_er+F_RJ`+~1C!lqlYD>_P zhdZ5MI(|me4@tCZ?ch>E<>@5E@HxJTxsBe!RchFJ?t3Y5z(GiMqVBoEuRwIG?)+Y| zDcy6rr3`cD8wTm=L%Ye1Sb3OsN)*}3#B zGjI3-X7;CKlaCdVzjigdXYUVWOnZt%eJ8`@y2t+Sv?X^N%YQGK*|Z1Ci;MOCBHjWb z;ACi;{zK{M(ak@wc)}v=j&U;jB zJM$fwoZJ&XK-fNeNccO1%0&q9QcfRmhs~mF^{HHXE0u$I*=0)i3*KdT>Qk!Uw79fT zJ`GTSlg}C(>hf|WC+A!O$uam~Nv`y*21<(cD!=g5{!e!F-^FX(`xnSEmVBHz1qQHh zgCe=r;?EG&hD=XDMhn}L6V#t<;W`$r_!|Zx%&(iFlO38gbNhhj8Y^9T!{D2MKH~ve zriabj>^Z&fn%1`r{ehEny_oNU>i_%M?;huGTz>a~|Hn008ZAxYNyq#O`I_;Tk!7Z*3)_E2Dfx;JWxIgjp<`@3|5<%ME1(Kq~JYC zyTS*4M7U!qfMgS8N%3fwMENNGTt3Zq$sgb@AH{*G*eS>h+?LP;A{)z)6aH8hxe&4> zT40Jc;af`u$U6M{;5|H5g9*tVQX@=EJkecNS;*4FI zp%|rzAHE9f)R#d4Px$Xyimp(gZ_hvhJ`a}}5%yYl98}e4Wx^;;l=bKlDphmrz5Ycy zYMr0$>-?-QCW1sSHKiXGAt3R-OcxiX^5mvk#f}6CE-Bd9sK;RExUU2~+REPkv=yKC zZr`iv`*X3goo=G`kODJDMWL`BgLBW*09iA@rZutBw8mY6u3HhvZEVTeDvVqbbM;29 zen1jLRm^8d$VG0Sfeh3MptbSyjyhH$Sz^@-%AW0UVb6A-K74?(R4>%$M zR0UT-3S7&i2)fK6@+o9ll;xZNRB4saZ}5qH z4gFN287dDi)nul4=wfKNQQ%EB0B(1Cg=!n$?12gQH^HTloi;4CVcH_?Qyk(8dl`lE zqz!urYV@U?@EGP-SMnZmVQz~YJKog^g}vZiUo0h;$3REW`ghg{UaS$v=@9${7o15) zdy?AF$f9DBpk;~k;!@`N@@!@{06hdfRt9@Q@XF5su+dJ_?8D)25C$$|QK2RiVMPegO3`fIng%qHMTZtSQtL z${*(&`U_{X)}oG2$AGPoA7^^N3JDNpnHbpLhj(^Sw$bMRfF>pqMcln20oiazrfN zNC8ZGr@a|)ZM@S%bVIos2+5VfHnlJm+EzyXs_@g6Sz8{h!@LDU+G^W2ej(>KFt}Pv0e3207 zUQ3C5l_AWtN$K#<`*;*xd@mhtvYi_a)-`NEM=OBHo4$>%Q5mg!TX4H$34y){S|na${{1S8QS zr&7C`R^CgWv@2;dVP2YJjaBho+45Dax65M*5}q3jE2800EZK+!8}A$t`BSj?LtcFdY}_a&25sut^fN1r@@ zf1sJKRq0~h_eZQL6~cRv>h7EwPX|5z;X%9h=jS`dxgvN4^=DolcI?H}47 zWY!g)8PpWoV>vo?82sX6KCuk!!@Ov9iCY@tYI~*@Rl$c1$@jqy2Ns)^9~!kIV0)0+TDGfB;ETD@ zkCNjJ@2c6hN8v>h%Gld1^UZTjSkYOLc~$@=#A#sJ#-(w2iqs;9c2_jb_mpURHddO1 zEiprW*yN}Q?bTeMehpuE1chX<(O8e|Q$Yh*ID=h047k9i5?imTqnI34!V1Ayab){! zr^UHK57l^u+=8d-KMYjvAJQ(fA zLb|A#2T2s96gY*TE;UU|&FN?*ZaRpx%q0Lp93lk?1!f3fY-KPVd=x>YL-(q`wq&o# zJ)LO+5FDBArvB|aZKF@wuGxQRU{F!QuDSks=TG#3I_d7j1ppF6ojbW1q}$d(Eb3Ap z0o{9AV`ucMrg+e7EnszhLb5Ps{qX2{YimgGL>!c^NrTRhd-q=i2I#QZr6O?WMU zMhEDrU?^>i2Kt`TfiNx33hUc+jJ>w&VI-p#R$Zd@_?kn8%t0_vKDW{HD1$Xb0PC&N z)!VlETVGOh_#LGe-Ii$N?_u@{9i#0I`m>a{g4%}hEC+>s(mGxC1)aEWVK*9CpYlR( z)6rL_kN@`7l(=i!rmxl?2bEID<*q|L&Qc&olKE;eDYW_C=JL+Kg)E++KqYve>FPaT| zwTCFEo^6O%z9(P140PC8FSF9o(Xl_$y>D`Q zBht|^c(X8^*3_537Cyb5eW~?Ci;nIaf{kp?c=}B5W1@49u3|`V^RzteVrJ=U`9xpU z0pc!W?+AI}BopB7c?v~GryihsT6A~vwHFR>ck}R34bTwz7li6*`JZZ85#fJ<_`cQ< zv3z1AtPSyY5>}FtlaUkAWEB<`R`+&vRyDc*@IUCMPZ}bxe0@DtWo7;S{bl?WWFX!z zWpCZNb4ONAURGXS`V>OiC(y&!K0w;TNA%xB{tun|PCgFaE}p(F5D(#h=-R)4`1xvx zi2TFof3AP`(<#8^znnaL{xhu80m}Z$v^65!8ok#;O%tE`xV6Z zKgj>P@jr;_vi}VIe~IGXa{gECsh~Ak)n)(ZrD?Km#O|G(zQ=Q(y3c&*=y=8c`O-f! zxpqKDcLrmmZ}xyj{pWLf(b3bL-cMnvR2uEHboxW1(f^|a^z_1KxG!F$r=te~foIN~ zxqbUKg+h@KmtbHxD<~-V^Jkx@r>BaFN>^7`Lqmg+k&&aLV_RFBo0}UWBV$5B0uvL{ z*RNl%U%!6s+BFsymcqh900##Y3XQ?PqEM+ZF);)J;nk~GBO@aOB9TlX^IW`0B9pIN zx$^$~dpsWh^XJcri3wfG`9FXD=<4dyD3tT(*)SN4ot@p}V)=Z)<63 zg@=dVyLWGBXec%|_F(_umYm#$3tY3avuSB*QBhIj#ns6m?jqN#1O5UXej>#NJY^1i1v0Ios*z^2eeSeaxI*`U^u8GKqYcV-lCEO6c(b;j6)A+6|y`zz_ma*uK zM$evS7mZ|xI>$rsn)qYeZ4!>6Nfx37e^J$5&l$gRp2aGpl9jUA@_Kq+ai?^)Rw|>= z@C-G!9Tn6DTt4V^yqN^i;EoN`-%mLdaK8T@O&_=I48m zqk*=aw1={&0b7&{(&pqo9|oAeHTq_GwRRZ%1!dY>uTJuJrxjM<92}0N z;0RT(@vv)*a@C&$7O>NmPC4#<*owtU+>1VdY-I>lm9jcHGd7Puaiaw)ew;|;(?RFH zs!Sjr(LL*Ws1R!F+N_h9JoWG&u418f9ptEG65L`7|KfD8JeO!XZ%%GV{ z+=K^wCrm_?z70|pn;6#aN-f(eow}i3l#!fjI61n{Vu35(x2?j0<9*)=1p#3B5}{lH zO2qRvecr}6cXl>S6M3*Nflm~iOr@F;3dh}Wev%&i-z}ymDj&}(mD~0E6o71>+02;} zr6Zqu0AoIa%x%=Abf|u9tYue`TQ^8F)TRJvc7Bz})-hLOz}*+vT|0PZ4AC9Ehm~=I z@x=~rnEolgq^Xdpju)MLb77S+MF-?GP}k%045 zM{$jr-Ot-?9>aD|X*K1GM^6Bti;}>hGTRE+6y@_StU$mHM(JAI!41;xJ@eiG-r3q8 z{tEK81={~;;Q%Lu8o1J0)tf@$WZ9y?QJA4p(#>QMu@8HfKkhMgfTUZB^ZjQJ&FyaY zOzxkBGNa-}_44;?6QAZBCTSG%Wo{{+1HcL)ca(Tw79svjtrD;eN;XU-WFXv2`w()p zlqec6)+axcF8jWf($)nn^uyTAZHze0f9tG(+T%0{Ju4*5fftK7EiB{aDNMA}luCx$ zg!D;63c%g*_tW8~>J31KN^}T#cdmZlzUMXeP`MFrNFdOdi0fG=V}?pdo5c}WHV7vz zhMq|wldJV<3fQ39;)|=lkKjn2k9)63&ef=R&6tmn`{_PgMd9KZd+5-1);aQDe;BHK{@!> zyNCWAzlB81Q^F$$OJr@H9O(fs>G)*D*W-$a?Sc!%=u{+(1{$Qw4afXTIo5`1es!Drdtr9Ae=>%c5r{|2v+iX2~2vGE7{T*XRzCBO;x zU2D0;saG_iX@!rVWU*4%S1+=%p~jgbI4=0@3xO>%QPeFY?T+TQH@H!eM2vZ*K_vZ< zC8d5>haVrIXytkM$g^@7$yyUjUn&MCNQqxNvb>cR6qsX4H=1Tu+mL367K&G(+@hY@ z2o_2zgNuEcX&3-*ZciT)Sa(AL4@OCaHU)V2IMON+dxTxMt}t+d+pxSwDVe+umIZ_+ zoRNQJA8a|m_i#TG67iI79O1j2`3QLJ)J#NdrvKv5)cUOx^6)z}b-K*QZo(yvx>a~- zqkI3|5;q^swjUf;*s%)2SU*8o^k>~f8?zv?TRH|%XAH}~Zz2wOMl?lsKMYds$RsrI zicoZ!y)+-SN?UCNkr}xAL7aF`@+9|Zz>l<+*w%1Z0S=wH30FJ5GA#wi`b>j4IaJeG zdq0CKa0;0=C#G+xB)+1`uunWG4A_tkoI?8%!ZTDbE1Vl;MB7jHrTveD-LG zhc1*S>Yp&gBdgX`4$7?($~r$>0|!ZpAR7Lub2>_>&V3DTrCW3*}|NPI6x#MBi~q*UT=T9YEehTmr_ zw?CGAjR3uwHsP%DG#2`M;a9MYu5rk~A6H9tP}Xx9z*E-ORLr2iG|$+4T}+lNT{F6g zd9U=XM&XuHAB(-cVgY5@=?2k?|0i7*ZqF)y5Uz~p)n=QDx9i=gXpuPUn<+Xg5 zRJ+`hD7CmE8(nDEGyH7n<|vx&INY*BQ?MS-GI|21I;_Ho*9FCA7!|5BkxkSH&-ab) z(c@#4dPi!yv%#|IAvVp%aVf8eOajGUK&GJu(t2dPu-;Bf+Aad~@Z|ns%I5IGkL5&@ z-^({DfWMr0i2^M)&ArPim=3|`AV@_=P}treDIStS_je4}7XH!6KPv(SWB?AvTBsraHPqp) zDn^dLs3db0if3B@N0DF*(K*wV=V;6{nshuArTeYwZ?`t3415h2Jv7JXdn3-cIN*IP z60^6^Yqi1GNv0KwfawBIeC^060xGCRkCr1X(F)_*l^Ow+Gb1@E@phxQmIaHDr2W9% z)H4SlG;8|4mCNwYLO>lPjP^_E1^2te3qzNec->$d`>NOww}FXYL!^@^*m<3Fg}=n3 z8@x}EPLxj`V{aRy`u9r+O>G5(2ka~vJ`Xug|Y-gr6M;Ns8&OID`e4XNpqx}e7*Rtmy zYF>s%uT9I@GF61B3ag&Ogm8dtc2?zo7US2 zUxIUpPD`hY^@eQnDL(HMpMSua17E+#d&a8WqR%ez%=3K5dp1xf3<{ayA0KVgCsxuM zV{|;XPF%nDhJl6vH^Zrd@wS!zjm?kDh7Y5qZ2#Kly3jNihI zAwNRB*7KKxEn)Kk&aL{py8l*Cg8>UO>2i%b6SB7MlHl%ci=S!dPb!}q2qMdZd6L$YqYm2+P zHRDu`zZLCDd-eN+<6OOs(ricji~hXjFUKnOugrixmY4Ty!Ai@Y9j7@KPXj+~7yQET z^#A7%<#MY!4H^ut>(@{sM<|opd(q#9(MUL$Y!PvfAQ6>9Y^TBelp*sms#8f z1co^I0YE0;*hE~$dyDx>?axT&KE6T_pyiN1$zKVyN@QBF++$3EL^|e*-z|P#AV+CO zZ53*az+t5fe8!iog|-Z&b#PAPZ78?iTJAw&3gPdId^2 zhv6lQY~8EP>1d+4+EHegrc8xFkI05Vq3z*%KWdOyEL3o-j%ZQ`>JgCsI`?la{A)T> zrb}(tR>vQtjU0Z|L$%j|8@ar)Eo_M|KTpnjJ54~6rT?*$E?HQnRT029EhLq28d5|i@Pz~QyAu~IEbQTk9PO+ z)NRDbk#P?m8vJeKR;Z;1j=1b0Y0b<$gSuzAdZ$LVbzA4r^VVdnG2RIv9A^JoDWs_m z!3nw5+Lyw{9Rsr;&`IC%%NYFB!6`%X$l-gxuNz!q>Tki;ymvMfD;;X@$({53&3M4! z{XhIyi9$ri4t?UP=d`P-{BP4)fEqf~K3<21ROxM`4E+GQ9J`#*C_*Gf`i#~wl_93azsCX*!khUSAkD_glfO?X^m>#hCbe)6~V) zm!s$(rKQTZDKVv`<*YArhdxP~VT!{H^J(R!TP0tKq}lGdFxmH{-_=Nzf`VZ>O(&4> zL&wd_=S~QRDsHp<_2b^=spKj0w0ymC7JC)u1lgFd=ONx zz>6+O6$9hsyd93JRrkwqdCduYe`&ft?e65GVvkm$a!1I$OwdF*nM?AM$NG@gUrWuY zfxgnpzt|F?!c64+zR*>4PHCy%!j%x3SBVsGxn{z13;p(uF`iGjns~n9q-Y)j0Om%$ zp(!4o%*AXNXWaKD3Z;n+n}#0tF$@EmU2J{Qs5OaURHmxYR2}V}^)Hwc*G^``555EM z*LiIYmg`4z4dL^nKDTM7JF;4kt8A=tNeeC}8NxBvV*#b#U45B|Ha7ROT!uU~|GSlD zcxc?Djrz0p<5xzD4MBK)(mDYWas8u5@B%sCyL6qR+z+e|Xvs2PPx{5|u^ZMU^fG`S?4hps8CUV)VQ&S0{#DNH0F7QxBj&`=s))0-pT^wI3Wfj{`RyvOFDXotr_WP2PjME5dXDy;;m3dq zIGUL3vo9W|(LVRHgJEs{f{e+(K{w21+ip_UVN`1gs=nI| z$-t!Qw@YueV`tZrm+^sj14zFzthvy)d0;wb`_`^PAwH}956xK<4z^SGtP~axia#s; znKm1CUbc3%R-~pTyK0N?1^Uh#qW)0NrYv{m+R}F^KglKLbf7cSI%MC6{B}_RgvfiTVE48&z%0g;u~{vZ;y`*Lli${Qe?2gw z&%%W&VXw;-+}hyse46`Kl4^vL@t?iwHQGOCqrv;N)VZ`G0$ zNN7-VoT)v@5^COfZyfRW9(W|tKfiLRY~n-Q5HGieDs)?p?e8;USv1*~R8~Zqc+sbY zq)J{==-2FHYDmhfPgv2m9%HsUxo#G4x&NjA=lg#LJqF!qstc(E!-eC5EsJ(+x)I5^ zMj!m}NEc&{*?ot#&D7k>M0oja72^={QpDTjy4+1>X|ePdP4#IakJF_kFrDM{8& zrF<+Lv0Uk#6E_0pK>^Px-S`MZu<#=bdeCL(QGSwh^%U+TL8!DtNwW>C{mrWs zLv=1`u&v_wzRH(_1x$4B{a6PPX{m^9|CCC&PrrkXK|Ud9}hR4C7p;(_+t0$qzm>ZJM)xoIk*CQ>8dJ?tno(Fwod;|k+^i%*jQ z`ehr+$hYR^-KZm7k0NM+!eb6T>gZ< zLC9XLn;n%Sc6qX7sfEsI3{bK;G)D{`+z%)OSEU@d+Jgk6I$epQMnp!b66nW}8!T|2%s~T+PH`1q z`SH>smi?0R0P+tp(ctq(t7`9bSzQ>1fxLr-5qw6oS!lqC3U?!1S@zfN$(qoyCo%-- zzg)_M!E3_GN`sexdaqh(M?zV3ou zyGCxpD{#%Vy%<;rb7LvglGt)<(jY{S9%+Jm+H3sgbnOR5hg5gc*sr6cyIOy2?VtOQ z%h)!}J16;O+o<>}$|B(LL&5xua)WGz^WRt1ejiP5Ep4nd7vUr_u(2m+oq$B7`KOJt z8<^LHvUy!N^QeI*5Gmrf4W;m4Y<3Yi`|0Zb=y5uUBj^aNyOy*?Ye<+TGtOK<$#B2< z)ZxXSE>66#2B~+hgZUwiFvzxDok@g7NkHrpdMg8=w=~@lT4g*dB!O2tO1l> z5V@`{`%K`2{T5B*u8>04yCKVI_p(FZyQ0fS$&om|32Iv_59$l`DoP*T?_Yj#I;41Y zu19-|Uf-!po$if4^pDGiI)raoa_)VJQ4DY3Rb7I-j zaf?fFDVim}vNXLEcF}MQ7mUN-JV|^`<+g;C(k#AU%WfRu?>RjB0uA=1wRuG*w_%*_ zrwW1XzI|pX2lEWjh;wnFXA!VyRtUUu+!Y!wZ$=7}S5-!hzR5?C!!Tl+b&nEHlSvlj zxwBi4T5Z&5G05`XNabGCd6+D5OL^Ep(UmaIb*%A;sND9=nh{X#qu=|IS6H zX3cAi+h(M0Dz-g(X_uBbL@vn){X~I0{^o$*@1Tq`3fe5>;NeGzmGkznpLm_*J~4iA zpfet7Jpf-eiV2A%uRrLRKSO2)a?}lrehJP1%$6Lzz%G%4Kh}bAhw#@Sz#em>!uRju zVYHYUA@*Hhyj!39pcJ@@DjrEwR=-dEd8G4`_+=TdE-D6cyjN=7MJx!-se&^np?Po> z;5vc=0_l5V#}I|Cy*nPE;GxSD)FMq1m0x%;E2-A0@;ND-*0#UXn-Utt0+4C2SiIGk zxY1pi`5iO{2z~d4ario!KZcQiAp;2bY=}+Lp_{jRvW^|a#VK)1WaSbOMfG<}TX2h5 zEe7E9PQP-t612=G?R0)$S*aY-J?v1~xsveOnfk@Fi@90%!#BhG6Ufu8z2_xCf3A7< zy`#}5XD+=wc>AHlzOd)+@QfXOacEWZY(1)gN_Kgyy3`Q)!zrMW5tIx~ST10x<`~Q& zyeV&c!rA!ty!};gN|BxEn*yp{#|~20W0w&L4{qTo4&_Li!&Xa_Z%?9tGv1fe0edQ6 z4U^16C_?A$v2ODDAsAZ}2cF3uwUq&&N4k5mCUMwCFldGgK^vebsG;Yd+lMsNeIWPv2oPKb8#Df%mT)m50*J9!>M~oPNP7xACukFk49z9Jt+k4&QX@m z5;9Y314w8Az#aR6(=*mIbH;=~8c03mgeZU;_wwdK^Y$_kgWgoPUY zL+(qZoTdnt@Ie&Q2fg4H3r%o#W*c=bY|_{LkxIksri*(!6Wfiy%d?LB4T586s$V~> zP9?7R;FdB_972p2lI+AE3}gnK933K__^vqQ>}R-8GL7ef`Ms+hoQ06%n&3y<_uJ|< z6TY)FP1XXp%m(hwb6~;rT)30-k1MShWR=|6rh#+1n&N^24{8t_n3Jux=?)b+T3f6Z zn_T+bmHFGUGgCG}(`)bkZ4A_R^C~FtK7Z-lIB7e&-3OjM*JlRbO83HUwf6L|`wT+xGLRxnqL@B2hO@5&_)uLqk4k)j?bEVxjaH=yrSM0NFb4=Y~RMO&rpquvuSrFdxZ@`Z!UZ^HT%U6BP0)T zQ69A^>?lds(0)+ZXZ~_+BA5E!KcPo1QbYs!b}olT;#m&1J#^omiZSmtF{JQ1iAY{I z&wy@rqy|fg{l0EWla|xeC|Y4g8P|@V#zhCB;28vmzn8gyw}$E3#~l}D3?kLD%KhiQb9`}QyxMuB&8;FDoC&y zigH|i=j)7?{%tX`CR{T;e6!EkTkF^#k7n{I=#kY=Kc*CLSu%!V&K?yuiRpaGe5cN? zC0^_QwvQPHovvgsphp@IqB}eUzNa0kjE(^|7bn9{4FW`ubecBvaD4h;PPvTA2}|(` za9QQ+cvLJMV`yS3zZ7yXA$u&ev)IBr54%Xi1jw%~EIj^w=+d-#23JYS#V&fmU4fLl zKa->VySd#tk=~iwVAjZ{n}Pj{h+&a4ptf*iGjbF0`;||dp_QYLj;3#~=oT^|RrwC` z>8W)xunm?7wG}VF7hTYl@n-X?TfSm7Rdzel5l)NDJ6_)E{Uk<|_Y_$l=Uv|Q?3b4} zX|-z1tUvab1}+CZ8z2X6>R4X>mG+R>Doi$v@h6=}*PR>y5%kC;s3&WwF(E~a@j2Vbe**e<2d@S|JFX!HcrhJxne>(-(w$D^wy+UK$W_AxZv~ea3sPy4`}DZHQPi!)(qB(*xoSgfPqzu3#Ou$Yd0)4g;B6;-559u7 z^xOiu7x1EVF?)*YtI{3}dTHH%ry2yVSMpsG_s^Gr`Dz(Ylxpl^S$1D%VZs2}y z-(UqZGmUF1EJB4ziCftq+6b>8|u9$2T1 zVM(+sXsVtev|hScN$NOxoA(UI-Qo+ruJL@LTZa6a6uiuz+l_B-0B}+n04&n+hKcoLOWd1dW?c8}y4v{?To2W)Qc}eT zxOt=V64JGA@M-AqK>b$AL~%a=o9$(nHn8x!zY|A~2TMT-HH~i%YP-KbS6f7C#bkd6 z?G(+#!GP*V!S`&H2J=Cl{(OxpXO*ld{NS)yV?~Ovy2rs7`sT``jD2g#x2m|$XZ~tr zg3e0xQ-_o+*vDzdzqlRv;nBo$A;R;(+c)#6Z9q2{jUN0!a{CVsj2|)70MPi_d}R#L zOS;W}q?3srh9wtM8i@3>um502yLW~It~j&DrR?94fw|p6ql{H@l~ly$Pp2{uIh)5wOwDr`d-? zcYG2WKb%Rzn6@Gcc3@zj^hr zV2S(W6DefSYKeA!rZ@*PZ*mZ45K!s5(@vI(+Sp!jxQ?dFCBE}RvW>`!rLw03 zee{4vtIMxdvQ%<@=86)6mXsLA0Tzj3MJk4AqTqbluGa z$x!llKbXV%=t(yN-4lv`^zy?Ge=@K#=dyMK88judi0i{0JNt{n1FVUWQcehGXd`C` z_BKUWPbd2pMQ{eRU9=Ke?CLR%JKcr&2~ivL`3F}G;U7f*D)gi6`@9j*#4V-J02-sk zZ_Uz!%qW#Gm74=^B%5`YD1vYy!vXniTH=#ph!8bWeYZCqk}hWT7dzdKm&^A0s$-W1 zmHmR9mLgo54lla3?yEIg@9>;|>?Cc8EgCSrDUlW0>}h(h>lMFh_5jl3-OYpD@`Kgb zo4b0Woq17T`UAjnd(L^PTA}&gL9zQaK$63wyc@7I_L|?Tkw5a)eWBrr zjSO*A!5qE^Q-Dm2pBEZ$@ns!y^}f|_i-c3b){t-;E98gouKn)e3%GL})-mk$)C3M2 z2-7EEa6e6{zP_QoclSyjsz|o!vOib3+|hLdTxQsVZj0#;iR>gtek4Thwv%-py*A(_ zthKpJb3bk^-KGr99|0SP;pkWiUrOIYeXv1z(N*f?wO{_;U~Bm)Cc>4?(ib}g+X|XM zVOquq!etZhZ%<-JI>}|c4UhmPOgHb|`=}b!DIpoD^jkss!nxv)ik~n9^mY<&1?qt4 zDeS&C_C}8wfHM)tQO8_M#;tQqq~UQ(mROdO-&5wr0FyEipH$eEUFjVd(1txC-iNEO8@fcDJs0A*lNy4GjFNH;xl?TZKHJ>u(sy5(3M3`DL0e(P3Oc%HK>;6 zniotzZGuJKEsXMHR(dA5o^$g&p{GqIORs2H3NxVay_~Q0UM8nLSE}g6^0CF2SwDWa zAVf^8fL#~3sZ5JnL%(Y+fL?|%X6zpE z6WMNnbXz%yY@dpyTKF4oWD+VfcsI;GCZ-(V*Oy|5+Gl3N`N=12O}z4H^Wt4yZ`Q!= z_DKnq_1(R?C<~Tf3{E`F=x?Ds8P^eCKtC-$_X8mq&*1>dhx#F#9}9YaOe0bLkqTv$ zII3h)ie6gK93TTV+6m-6e`;)6q`h=AVW=8A9l^J?v6s;!fq=l9QI>KZLatwU6 z;>;55aeGTxRR6&_E^a$QhSdJ6j{~quc6Vhx($9QQj6N49<{W;xW4230UEJ)mXF$@p z33;*ogTlxUJJwnh9Msq(W9J-e&kA{4kvWA^T`(Q*eC)8ra>Vc4r)k|iOO>02*Ky*v_j50;S)Ac>>2OBU~2LIj4+b!gLD&1HlB)p@R&4*u++DM*GLSzp;keUGeDp!8XJD6<1ocVE<;s&zs=Z9h{ z0HYThj4jCi7V#V4d{nK34T;Ap|Cc-LvmJE<{SoHbe_=Ud)*=R0Dnw@8 z2gX83ZBHhb5m!{@0pzBWRC}ye+xq>#t#6httIf2AQx9MB&c+;6bFPI>h@uyt#x}kr z*hTkvDUWNv%2J=?rwJJ(beGvs4XS98OEl?#I7*dA)$g;mrFsGqDuj#8P@jHkdGk@Q#$R-3K??{{wenRfgmV_K3G(Yp^Dtyv6p_UwcWtz z&NQeWHq>bf65kq{C|JzNcTueraqv=s*s?r|d)Q&%d{XUct+@8JYSSNbkDecg?z|NQ z!UujeD~%NSM2)xQAv{`Q4$3&TDTIJuEuX1Vt8|TpNh0$bZ~|ATk3z@q_w}w0hvzly zKd}vt4)oN~96p!LCy_PRvB9unN~=+Plt4L}1brb36FP9y;dZ^U!KZFzYu_SDNXWZm zH*GYmAW>wiaxClgAXqQ$!A%0U=IuUE)b;gN4vv({_DU@)0_g*%pTaS+PL}m2MD9=&OsWPySH7=Q4 zZ);DF6MR^U7oBC^61y8}MZ81oG(}y~P&f?yo-@A}KPpxk$h>*j+a7uG+)-iLfDJV{ zaVy?!S2UiQ5?kLk+P9r&V=cTsY~P$MWOY>?fGfcJjQRc8pOzy9<0~VQfqd)Z*E_B* z^vR6jYE1V(A^YgBOHP7@U4rB$m}Ft|4a5d)1>98Vd#4I>0gkd$(bjdxNrf{0EL`CL}N0akPG^M^z0oS#d;eoY0mC(gl z(O+f5#!K`$^(@7KWqPqiO%1eo^kfv9{uteB;O@HudA&q3wt+46S_1I4 zUtoT?NIS(mXMMgkHv9u1l$ps;6;KT@+CveDfg9 zD1F!cio4_kl>OfZMSacedNa~Jpk&wS>{j?4<5k7gGvrG35q_93#d+UwH*J&I%v5dg zFAARe6MgvJU8By6+zC&Avt@f32#k>6`{ePCO4*o+KAUZp;XSDpMGk;{Ma^u!fYx(EU7ONNGAvg&zrb{pCXi(R>TtJc^7sy zJSOey&gZ0C+_wx^CqI184CfFs21U)GJx`jSB29ue7R5HKG^KvqJ$+hNk)XM~0l?SH z#=noTIrca?i0@P@Fx`$7dRmLKIX9XSxM|o#o=jpM&{^#qv@H9cSUT(iYr8FU z6)?<;cMebY4G#`F6U;g|78qp4x1H2?Bp(H zP#^&F%dR%vx{yh*(7m$85}?_-KApSwwYDPKKgx{-Ft{?jKNdX&yisL70QsGQ!6=fa z*h50~OY6UF@w8YG#p;6R0Mz=yPVnEO0%Cj6SA$Hn_0b4ZYrM9KO_;UdsOHA)8c~DO z832opctNY1?qB-0?pCHe+BuW8Uk^<9s3u4atW}wIasfU&J+e4$dGK5zDm#9ewX#l{ zBJOPCWEWYvIDsHeQ|ymV4s`gsx<{SN1Ku@m-^115PIuPVs48k!HO|vGxt?D~SlMc6 z${N3PmP)mLVhUh$Km*(IHP0Hbk7BQYIt~<)c=?uGlErt&5Yzj_z^!3DkStB>pSUHn zQhlY@z{||4;4#u0>k8}-2yY{~&&erhWx4`qT6uuUuw7b2JyNJh%^&%AW*0wzxFQ!6M$}s#jx_V=WVUZjDiWo-^=}IWwb(2i zNX7kO_M6(kXnALQ75VQ?-5_Rl_^mBYuYSU|+kC=z;*Et=Tib*-pFRPs>P%Hm)U5?! zK4N5{&_4Un<)+YYZp&=r@_Tr!PLps66RuRB} z+mdx}Uo~w%Z!n_84d`C4*QlYm%O1j}FbW!fWv}P5ZgZ{CL~0>ehvi08;B0SXZQbPb zH>A~fsXx{|sueo^388L*|y8>03tb)i)E%6+Y4AiQ>)+*C6;z?cf?lbp5#{|fU zt|F%nX_#1nw7R|?;xw?7K170f4q6n(A)mXkomJZ4lky-xW+mIoPf2gieW8QuKNj-J zQ~cGo__*eNXbhzNBSRZ1?ZuQ05qd6NTG}?*cL1;emNsdD2FzRB`+jpT{_<6vL3Mvu z@97DcOCevNvUd;p=f6?2PX9XfU{f|S&tJY7&sJb!P~q~iw>hjL@fG~$S86l&W-qO6 z`jH`Dd?>?3T3p&r8HVzlmWcsW`F~HjoGlIPTLFI>+P$|0PE_DsPIV~;XliHZ8V7&f znxHB_1R1cWS4>;WUMGGVY8v1owl{@d28(xlCZay1yqu`+(^H(ci0kIsWvKqf_!FRq zvSI5CP4F`=boe^v3gjr5L7vzzVIDccz{#0_w|1ZLc#%BPJ_t zzTCavuU@hmNqW+B$~7m{BQ#0T*2$xRD@yN!p>1r6-sPGg95 zf8pwb;R&!2>2StB<~!sglwF80KkmS7EAc0GQ`OY`_jcu4v`0|h+8w%sZIcTOoc8l6 zLGuyCQugy(XDI0=_oMXy5V7Ho@C7RkAv#K;o?~3kacBMh8&Y7(SaZMth<@2eyR)VK z29eF4C~I}*PV=jZ_tn-YOP<@Uch9~M3H2z5;@S}tdegW^`i}$M6Pg5f&f@;Irj$ga%Y-Igl<*};Y+{=JP=Y^(SS}~a2Aspfi-V6u zfF?CDfyP)r66=(#lv4e@(2rUUo=En1$@1FNP-@U(*A2WN_UbFUIW!Cd-!v})8x4P%bpken@?2!;W z^$@aWrzR1&^Lm=w{{%n$VpMx?W4hTd`Ou8cfFx1VGaEr&w}OP8UbWjm*X@$joHri9 zFDIrxfgEUPL{7|H^(ty?uL(j2Pw($`$z9<8dHWMleTz~k{^x4|VYm15>>i*B z?{!yaN8eQm5}Rif$SaUBJ0KSNqMd2p6q z#qdbf8;rh8t+4$iU(;CpDnFuuvvu$ymadxT&R%tKkO7opQAg{pmIx3gdp>4N>XBim z76uq~j_Hd0j6zXv4g|k9!~7}nRf00Z74}1nKUki2ttNU2xWVX%OHRa-qQr|uJ``T+ zXIMtg%Ff9n)_kOpv8xD75VDm`M9nF_&{4L#@?%0m=>h(?D_J7-XM|BON!P7$4ktcu zi{F0TLbxGy5jbgpkXi9=w7&`5|I;4~!>P`0j-%@+dpKM~WGHc5nZd5ar1Ma!1IZOa z&eGd|bR;$9HiW#Y{PJAXZD-K zAZi*+eCrXgPGuS@fIi{s4($`+g$%osj0vmhedRH~?LxwAt z{}l6V>z-NouXBomiI;Bg85|_=^2UN>MaY--;tYYcC=ug_FDU#8#bzx8Ilpna0kcqo znI1p&BJi;P%|Vg-M~}@@VaRhUl{EOG-mJRwl)>*zpA{s>jDaJmIr%i<%rYndzI$Wm z6i_kV%m(17bhV)i%-mQI={DbG@bN6$_t#3WD#c4>ZnQQ5`-+6NIJbws=&}`FXc|qBKC2bpb zJX_B`iB`A2j|rr~?rar1P@qFTQcLB)`?+G;*HyP6hX4)AcY`!Vg1$vhSaw+4O@!Qx zOf8?0A_C3Lon*(Mv^Gu-kg zE3JMYc~@X|iQzs8Oc6FVZ<;w((@2_j{oepXf~?m>^91910R#1oo)5)@coCsOf7@j+v`HaU6ss`Ry}%m#&VYy*_^| zk0{V*IM0sbdJax@{UnNrTBg`rIo6Q18g1n4H8kEya03q~2)uH$)2~p@3mr5DhZ6E- zzJ;X(#F=aFnFqmBgY-Uff4SwP*{aqI9Ww?_jBisb4@LBvzeoEw{9nEqa`xB3qH4gM zeO0}uy~B7jp<0Eh)qzy9Li5mb zONqJafT*)v}L2sey_LxXa0Bq)BCdqCV zMA1Wc%I{VCNNJFY;9&WWhz0>-dN>a3d>wN~L%HWBIiduR?Im1z3Po<8?IvVY0HCok zup!>h+hC99rThK$!$|fxLE8E?<}o9j697jM*H3P1Jl>s9UzmSoy~*?$g+gq66?pn) z$3^C9Riz3=FhgmRQ9W181By6a{%83Ln-SJ83_#xd(yjHG`F5k+c15-JdX@Na+U-Hi zMgx!aneN&u1po9GKnXR#dC-mq4Rbifp6BT^KW-5GOdhv$%n!yBx9>z)fdkuyU$bpF zTN#jru0Wcr6>`4d3OBFV*+~U-_vW`przw0Boz=O(dDy*ORP^ZuHzHZT?!5T7ifPXk zq~;y4$4bjWh@#!M37N$J?v@3RT>>hPdJ4mHpXkU)ti2tu5}>|Ra>14I+alli9@0GW zQPkx%gGcQ*+*hb~jyfOwd=I&LYOR|fa?j`na=JK_-NS7ew1dosOOc4SnmMN^EiEM} z*w3)C^kL?m6K=l02s-HZyhVIz*XlI*pr*x0FVJU93zA-$BUXKsAsX`BqVn!_`11_O zYt2Pnxi8lG4pe<83N&OI8;P5S**TpOTiMe#ZD3G0AJ$AhL%gIn)L_~J#>+;Yu)!~v zK(e5pEcnxYGjeNX%AQxQO(`_YjTmvkosbkZ<;V3wVmb?D?Que!KW2Mf^rJ&E#P8cT z?_t!QbiY86`z~)iB@Xbs+88ZgCEjdY#IO+Ei5v7z8Ej}HdvC)Bnk(=Aoo;GU|H@A#1bJiBePY5 z4?a*O%DNG;j>L;*x@TK4T>ey7CF(E^FVVD_g)^=Ecq$F^I8m6GEcRBuTP@9pKd>U& zJyKQSd$MA_`4w)O?=Nu+b9T{JeBZd3ACQ!Cux|IAgfzkGEMsTfyLB^5Zz&jJK| z`7Vv{1@*2KEKb;VR%<=>$V8DFsk(1^EQxL`mtc5Vp5LRM5znF;!`r`go z|6A8IhvHtYHf0F-%)5TVaNnV>4oL|k|K+Y*2?7N{c*=aYfUk6I0;Tj}CHv`33@gqd z&95us791H8jbdouv@k!M=DU5BoL|*5 zLXNAd$0$*49_P~hx2J=|_e`Stt+I$_LcojJt>1ND)6~hO#=nNeE{dTzflcUB^q@*gsXmCCtdaO-q!!;UfV=<4vOq3O;54} znAtHQi0}4l*uMtU%6CpqMQQaLr}fKsh^strtcFNj?fA4Zu>$jcc~H{WN}{wf}u@@}==Y`o-&9%f+fL>mwcJ5iduW}ukx&ew{m&-1lrBC5I2 z7*i<&YEoapI~TSG88o|whT7~stLz5&ql5^o6x8dadB>OMKvQvV1$jLl7Ot@($27W+ zkyu_yp+gyi&ksrqJkn05@KGD~j0xK_Hz8qt?4zjhVxQklQo(Xh{6B??N0#l=@^1zk zhJ|GxiWf1g>V+*?`BVG#-1eJNT=?&FK3^l0!)Dy1_XcvMiJrsYf$HI|!lwbLAt=#Q zkv@kH-i{(vLcZc0HrUv$E64R)Kl>#A8NJ8)mJ-0RX3Q@j zvVmt3_b)j3kKd&g*5D=N3Z2xf2F?wOh?=jp78qA)=0XGI6|KIc=eO~e%=e9aY|2+t z;&EjuR_|k4LQJ94CxJlQJ1!9%wR>dY*BHvp$HnI{@EjNV^`+`wQF}A~)nfi=&Vr#; zwfMk$=vwoiC?N%WKfp6A89oQ%!j&T0oQD%c0->(lJ#x^wT&v1}GzhkR2(S0;ZjLBY z|M?qW-)O6#XV~?O?$~zd8VDn1TBQ4^Z3M%}^1$T;BaYYJNqJdPpOiMI?2ksI#2^?c zCn_*Eior0qZQIL~7dQ)}1IGvigXU_FbDVKNu-UgtnA>~lin#C6y%umczLtEqfv#`!1FD(p8}2()ef|P``75wCc*T;M8~C~0Q3bYSB2Zn67gUKQ z%Uz~~G!hwdFGlrV?MRibTE5#M#~+B~B?$q)Lf9~j+GZl~pev)8I!;o1Q99&C?HBO# z9vVWR2_n%w2R*lXF0lLh@`2W#pCLeQkwl;0_;w7p)hN}fV9BsMk#rMy4H9SO_gZmZ zP1A!%hKkGgNvKj{raPDq4fgL~KT_%5Ju%K$g<0RwNHmWN>(uH!4^|&}v4~Ed8voFW zRtC6UUflvXc4Baiv+ma%O4BPuO_L+w3c zwi3kT&A_{U4a}S*WyMkp`poyNsyCV%JmF>@_w4Ds(i7*1)!t!9bK$hAFu0LW9iqgC;wC8nl>LLkS&PvUW!HYx#G%@FHW=>jQpx`G zOqt!RkF)}d(>_@;>t%2S-_toC3@=G;0rkboU7v%E{dpJpdYnT8pR6`JnE>n+M@#r|N)9UVuJ5xqLLsYiP1`=3qQ}R%^CdLKFPLlSCUVKlqnq(fhk49y zdnlH8tPs}6XeeK1U9Rp}h+FAYcJ?tEo>*%S`uN}$|5z_l_1ROcbzkicdsR1w{9 zOks-ofQPLdQ=_oI9t3WoLYIfYEIE$tF)j1XeZ3ehnLDFS*XDgC(C<09$9v~7r&1vH6ahTbp485#D0N@(x=HG(%0XVUA~;S( zJfFepF=}<0-I`KrN$uSa2W`mov;zlO+7^y8OTtPq+X=T9)&1rBw+FA=qU+wQGB)CW z)VVB6aj546PX54CzWT{bDst6wDMM@MkhJQYLvZ~{qwl@5qdpY-7rXGP(}ep$;_dz| zI8*Jf4XAa-8_Ye@dFvp@X)}>RDsEVI11ieYrkIU=!0~IY@w*r5Ns=^h#p) zihs%WIf0dW+ik_Jz;occ1h1Z_A9+^e;Eco;bE!Q=rPc=rJeNaLSiXU#_jv@L$K9@C z7p36a7;Gkbqv4f%j7bIiPQpjd4z^%UFo~^ z<+I`F9i3T7aA0HVm7_P!a7VHj4G5OoUY075`3{@-VRrBjn)!7n{fU8t5cenMw36+r z&rUIN_cl|dIC?oePT+>_fnQ%46xs)LiT~@PVGW0V3|!0NHPG_NO>N=mSL!WwT1Ru2 z+0G0u^qmPg8xeYBCXMYRYRRUl`QN?newT#;Zae(y1`HMWq`_&~Pj0A^`y4Z9nuSj< zTVEA@y$55*xZ*RnykIbn=Sbt1fjv(GlQOcYCo{i0K!jpW;SA(B5{*x>Q8p|I?Pyws z@&sw*mfZbEyOYu@NQ;x9os5U3?;RyRn7PABPX9qRM<3esX&N-|2hgHl+ z!07SAY8C2>w^HdPya{}hlsAGM8>WUj0ITyQEt%Hi1{L;KCuXG@%-pDGsp$Q*-GN3>8> zItRq<{fj#v5|}v$BHwV|K;NO|cE>2sF)()h2aNNnsRl;%ph9dS@FN~Q*8 zLsJmkx2;KaW$f5a*{*u3fbRK(by+y5GKR;)f=LXdyRE76>j?;%c@~OFA}XPKe;Bo? z&_{YREjpY)xe1NArp5<%exeV(>jQeF0|R z6j6Fc=2l-E%5x)6HkeJcMQGM8eeB)JPC2v?2KZ#tE-w~+LjAC>Wpha$hMt|vHckb3 zi*f)@1teLi0=_H;3VZcmC=Hu8p7USn3^g=LZ+=zwRW63 zFryCGxyVEigPP1>|Rj;*PS7fpGS*#8urC_{kol1Fl!T zPu@<~h6KTUV2z*6a$P+Z8AuGVwAkl9CVGElfd|Tx4Xc?nIxyx^4%uYD4~xfh;cpR1 z+jNN_yK7WAFn`e&NVVP!f0lBu@0`t(v5p)_V{f-@xPd6xdFa<7vUrFjro8L`;UeiC zxVK}j%+9O(9@VemCeTBqQnCb>Bew4#trKz&LAMz<{o1y{5(~=fb;(CeB!KA4vcC%- zrTQ-*_zK3hr675L%Rw)A?LhWdsW|qlS0P#J(xDya3Tkv1doF^yTo6lT5g~zSFl$dv z<3#zNz^|;g@OPr%w)0aEmb)E{bKU%2)*Sgl5?1KX74v5 zWAJW!uPz^v_GA?zS`~aXg35$`Tem$kVwh-H)FXwcv*YB3QRz|2++8+0L)Lc-sr!=X9`zY@tr;_y#2xK(G;!}GX z+*?PvB;%{pu!K2U0RueYABSY~KSn3A-D%!m9*xrWW z&ze*}3n??@Q<~<`3H$q=L1Zi9rDyr}586rRHZK>^I(gLgw0s89`yI6I@d)ZgIv=Jn znaoF+3Ar9E>c>GhiaTpp;)q<6eHo{L`u$%2YATO8I!DnTTQQY`Eue4O=~bkI$E{Se zeS1{nwX=d!C;seh=Kosh+FYjX%VyC23&LWoy;H?-@#{flA_`7O^X>4W5LQJy0}YSd z2|#drsibn?^;&!5<=6Q2JNN9q29(rd}z@9)tpqqP}B${;A{t@Ld-Y)1oXoTH)YVg zxu@G4{T-7ypHPYDgAp($L@Y}5mU?x=(??GhQlY?j;)7AD)zDsb@22+Nl>i57rT)>$ zqVkN>Rh6cx*k=#Eh|h3ZCPg$Y8I8fN?e-q-$5Hhu{O^M(9mT*y0Ut4oa%z9Sfv3oY zOn;K~R}FUd;veUK5svMz8|)FwVZS)MawF<~wxg_`Q5KKd(x{@I%idk^yZLFXM?qA_ z#AWv*wu$%6yMdHy%;`bVva9df+jQf>hjFvSLcr5HO&$_s8# zDDP?yXsCCSeq;GHsrC=Zu@8dkM#}h{+~FM)8$dT2-0OXEP8L0rekzLVy*(*(1oe9u zdxH_WFm4osa6=p_+=ZIZmdJ-?x%WSvW;YKxM&LIWeb`h|%A+<7=h+bUt^a&sVW<}}wlEFz0*8Zyw^bIpJ1 zx7vPDSNkjOEo{V))YHHPKBO5;DRw>1yW1u(A9IDYDLvT`OMT{du)}9S@uE*}$Uj=T z0%ck_)jt|koppQH`hk2oTC{GT9MFP%%=1=p?=4iA#+1gqqa^VS>IVc60={HWI#D_T?^@FXeam#Px%3cQ$7+D~p`M zmB;KxA|)|h;Wph-piuxM}b1p$zU_vOB(LIgEBetR>t6pV_)WIniHKgt;Xv zB}W`*B)_8?-}G<&P{E0$Ho7u$S|-CAm(nFZ2l(InjW>nhXOlWp`Kha`KFNGknR)dG zJj0v4u~IY^;bYSTYT3_6tB;n>!1}v=mS)GwO?}TTVu{qF(t+BQ?XPhtgaq|DG45zE zt%9syf${pz7*R$KTVR-oLLzuxY9nhqsOuSKQbp8*LEo8HQ%J9Fkqm*ek}osqU|<_D z6C3iV-TuAUF#zNBpn|M)&FTqdq6qtC3wO6FE{GTdQprD!ew*#8_0E$AP#D0z!e?q% z%R-Y8tV)Rc!29-tPk2kOqd5=HY}Ww90P)65V(3w6O@g8>>18_dB} zF3%yCh9Hl(?f`>|*e%yiRps|)QaT7{p+?Qkv315xFZpP1PCLkO+jse)%}gJ3=Jd4P zZu=^m@#iwXol6wTyMwfKQe=1LH2mCVy$m&Q8bQ(e{$hLbbo5TH^tmF4mk++>BKiD0 zlGzUsl*CBd?L5wFa3YL6T63#wU|y(qCE|)sKlQQ)qc-X#{0?|z2u-mYAuK%$1>>nsl%M>CDj zI*orj8bK=~w|GeN7v&@09M^j75&Ggj-+6BG*O{=_#(S2{_za%e-Lqs&ffK<%^LdOE zVsLce1U~cJ!G>vQZ)mAwlG-XrpWxUNg%n?9$SA@3B*52FthgDWR!2U?)HCo$xb0Q` z+eOy70Qp0N&ozyot@wxqmv3h0^f#whfYTMOW@!d=&2$8&Q;{?_pEcm9*-~d$2Y}Eh z#;{j1EGKZ#`pD(pGy~;yW2-{#g4R8$e+!p=Qt&Z-+cUtPgEzsr*E+d^HGoOxNo(M#NA(_aVG%QVk^V-ZBA{wzqX%2tnga zX0&{S=la8HPJq4!MiA{Lm(%610Y4x@bEHj-i&tjfOxg)BvyT%nMiRkBFr}=>Y*e|C zJd_82VF0Z`_!;=v&QZC;KH{LX9?tm_Guf%9{zofa-)LHi+bm#EKE>9>kp_h9Bfx7D zr2qvH3k3Gq<@BbS#l!wZSWZowaa-dwlcUS5rhaI(NxTqu5+m+QW5Rz(Y1#i4c;B0D z8rHoHx&0bFvC>lNGBN#hJgy0Kk(`lm1%mMYY5-MJ|j$>4C?dPK*{GBT!UHyVEC zFK+iVZU6~9L~QaK_@{+m=iucwpxyOf4C^Qt-ZZ#-rTG0mP}2LWImo#G7pXgeRbhV+ zVc@Z5@Lk>nrTT}${BNA;e<;{pcvImGr$UcQyOWqCSmyN`UWosjU;b|wV(Q$@Nv(6g z5)EmXghZ|CztnT1YGfeq6? z{yORSznR?q-Tg=6k{W;b1&^v@j;%Zr=2o&N5A8_wa#I?MYRi6Bfd0jQ|3C7Pb(&~= z>6mqJ zN#z_z5K>e!%UiHpi!hqZet;J}o3 zJ`<1%>OWoxAthqa5<;%y2}~IBvpK(KkgGOs6nG8J6V#qr%}_6RSY0*E7S`Uf>T?XC zESwmVvv;<+y!IY7?KpyKZQ>lVcA?Iv{0xz*K+YCiuBL>nyZ%GHP(S&Tu!ErO)h`(N zyWws1Y`pCV)5iCoYUBlN^qzMH|KxKc36oR@#(BaRcgzSv^8^Ow#x_IJNr&MlR{`DE zpz|Kv&_~piC}fhyA*A-dWao(BbPqSEycj+I$U1snjTrs8IWaJ)vkCD5oc?+q6Q?+{ zz9Z?5Ua?*cG?JjRmi1s{rkw?3O4~uT7c4YzysN2Gxwi*uHWEG!nnMON>&k}DRSyho8|-Ww!QurEsVR%V z3BpY7hn3R&NnG_O%>O+<;g9{mE9d-t*V>`4MubtUt4R6dFmwqT{!OJTlUvGveg7v# zF1GRb4UIo!esOX4{Qe^ITl2{w-}>IXGt}GU3iT;Gl!*J#F({u!YE3M{O!;*Ol&Y=p zQU7B6d*xi;2AG=ee{UWHo0?KeR(E`&piVCi2S79$IIkX0X2}=SywZ}tDE@wc*DR=! z6~*Y~E|3QiWU{mDgrG>meA#~I-P?67Eg3((20PeT-tOsPPJj-|A(e3Cv5c8uhT|joXy)c}2MJozvLq z|4{UG9JY1Ly(w4~J`y388sU>(96kGn{D+=gaFVUND?_OII${wLKC)_k{<=A7f0*{s zdKqNhP(EITqhb?7Dq=UXJ_Nn74rNc3n0;y;R){KHV!uwPSD|X(MRhTfG-I%G4_G%p zNwH5~dZu@1Co&_&443D-ha$#JHREYa*tlCNChdf8M!(U;aQRnJIyRoo1=u=v%$G7a zg#)-D!ps2(7-B9byVCEPAp_Da-jo2h(4;B3b8tFLR;5uVBUv=jewCUJ^M_@V-@^&= zlGbe^VQFKRnCEFdo`OyY5zGn``KT=O;hDw5jFY|y2Sh&`&JV{I-uKyp+ zgvC8z7E934v*8_VXwW0u5WjAEv3{R}nwBn#W#!W#n?2Ad#3)qEDDDqiQY9?#ngdDX z#1Alr97{~oe(;e13MN&01{PcamoJ=>da&=h|J(Jn!_tb8IPB#ij zi&}B5bfKkfLBXNaPPpsx;3crIAL9<9`h6F)xw}d52QcMWf<3>4(Hhe#JlGirxh$ST zuR7a7Xbu3Bzi>tnSXDOqG>ES(hzHjG7))?WxUdq>_y0DRHsX*Jm+neIj{b=dAf|Pm zLpF;f(xBaSXo}`=`kjNaM_Y<5_=^f2*jQRl*&4Bw<@MeybPd`+4(K;;(-VcB-ltj2 zYuAer^TJLC`JjOPZJ}pP7NO86=A1cOQz%C6%moqqkd=2pKg=O!;^x8P?nvY9MVqz} zmdXu-83RAveDa>AB(P#AuP)yTlBE1%UsaCGcG6*we{I_s z5Y+r?rVaU(kzQr`GlI8l)52|I^h=rmUg>0^F{GPPcqjZIC*k55s_F#hWCIZ$C}YC< zIMI<>K`}K}mDFn*?3A(p_2IVXQqMcupN2}mHprJ6^^PCGv1iZZp(HP14~REeomM7f zE-jbpRY#@o?^Z}bbLL;KtVi#C=EFx_tjN^=2+deIl-jd|jC{Yv)Nod2rJiH3Nf9N_ zPhkIMy65Ev;UE8yrecMN+A#p#1QLSU&(Wxp+O7VkmG(^82M%Z3pI#7*IRd}QfqJ=BU(?353uu-W`py{tqMAHV0@VxD z0+^)fijxBX;c8I#TT}txJxYnjtrW+I-Xm^I1*3WNuAg}$W~dzL-`jGi#$~(mUHWH+ z^zOA`*hOH`Klh54zsNXX6~FXjS)pf*yK?))IQL|lBlYvQ@k19^hIji8=d=8&f3)*I zYJ&UthD&VC)KFusJFX97O|^acryY)_Z?8bwpkUe*ZS^+K???j_Vdg#NSDI>3V3c|;X}Bm7%g zgEFcRFMS?#BZN#9liSbj50KBR^wS&Vz8bHf>P(uHRvg&6M-$FX;UW5aEmkT$&I~f0;AL>sU5j zWv%a3K#uje05WXz9@Ra%_xVNYNK`9jLqInV8fIZbV|UZxKEyO*_w%UkyjXMe6dSTm z!Ib&TFzmF7jiwPWGAlU|W==`=Xv4j%C_s+yx2VW%@W-Dc-C)aB`CiSnKR<=u7ls%Q z1gKK{r=tPky?U+%b={xW=DF!IZAr*J#eH(v)SDNk&$qVnl`@t7yQTaNj z(WY8C8)C*d#Y+xWu}6K;M9}r#?_P$Ty#aaY7ZxwLgP$$Y^#&U&ayZ`n4Sv{eNTIrq zY+v7p%LSFCj@@$!5L2Z^@LK zBcq`zKCOV4cJ#xuZ-Yx8Eg@WYa3T#fJ80)8Y+ReIS>y?Yjr7;U8O~U#)JJMlX!J-S znvPa}3W{C3`4x=HN5MGhGiUeDdr0E9)Ozj`v*-`3SC*Teyu`~kKB+(zjWf|o;(HB# z>~Ax67Ijt<&J6<<_v!Vgi7`0Xo?#O&dky;ti&_*^8cgGeMj{%260h$|ZOS#Oc)7-j3$94X zt?a$SmIjfO)KW`~CS|Z3Y65=~Zz0|;7Ach&c+FPWUA)g)y;FnQ+iP-=0{LS1de$#_ z)_C`%_srlM(5{m3DaG$Aj6#!q>}%SJ!B?TfrJf1)FwYh+v|O~6bpzm3*x~ZPHQ3L7 zZKLX4N7P8w)Xz;7(|g1U&aN)}V@HsyncmMko-IpvpQqm9g;dINNb8uUP6I^?Il7rn30iT`@rzn9oaW5=brTq>53 z=<^p}iR^uYy=CV=@q8>wB{fTg+LFMgex3O_d=zhxFU-_stJwG|E$)NwhjGE7?e}#d zg@}};Fu3_;>+D5l0gp^{pw8RYhg4^ATbiTz?oQWTL_1Ax#1vwphq6dDlRWj5eKVJWFuDEC=ZXtT+zru&ZZb~M%`OO6d+pje3xAd=X|%_ zN@mkkvR_&tA`B2Y0fEm)q!wNsUUfc2ePH;W^8=`(Hh14xcx$~~-qrdEfH;=E{Y2ut zZOPO25mudN&?`sXpYsDmv-Gq6Ctmoo{L6Yw-5Jj`@M;NC&P42M8wRS~9J(;r;OokR zt~d0p{UOJ&7-*to+yNWuvK>!aRrSMIp5*7?kUPItG{Sia+efke@n9&M;2nH-|0Y!W zWHmis%2I3Id+)c~`If3zz^(|>3mt=WlyH#fd8@$kpf9`kfl)~h1%0$E^AEwF-;Tte z_(tI_O)m8GHJpjlJ@|HD))!NwNr_|kpgF~ng6a<33ENP)^o>ErdmJeC^V=+iI7~l= z^#|KqP&2N&Y{@Q5bZdsHF%cLWV#B|M3)>7f7~g09UM2^i-KxL z;l05-6sZfJZJDjrMrH{5(URO>DsChMx*u@PmqY)TVtxX;f>S%+4L@JJR3#0e)vew_ zv)-NsPK(+1xcR70B2#i#iqkTdnou=f*C%uL#kU8e@o=%Xqy{^%5IPFk!$_dWtRMB`~Dl zz5Z%X4Xv?Tdr9+IUv=d7CCN)(|J4w+6Z!~%4nY1FyTvTc|m+)VN0_zNoc1T^}Mt|xT#{1+EV9`k$0C4L@2|_ zdCyEa@QV>UCX2peSXz1f*zFN*1jgmklD!jED@b2`3Kw>Y3w4B%yjrDBgijss>3xV7 z=DGbo7{++5@^X&h!KOG zmr505@k4-Rn9`oYD#A4=2z0ak#-3o@tentqo4N}Ln+i1eV_vh;!X0OApYeSQ38t`s zH3pS)JMb<-p^b>Y2k4NcbTvCzJ8)^a_pUxgVbZ!y0JEFA>uq@18PTy;h zQ~ZKR3Hs5|K7kET#Q!>iuML3ZR?D5N%s$Fk&q=7d6YgL#_Y}4Rigd5Vx+bS?Pw_MK zw^|+!YpA3e^pg-8N8w(pRW7Np^2z4}llj)eZaHz@gP+1vfYa13uk}|f8V+*)fuA-e zj8A2^1yd)`D!1~^@3c+pe7ZR*RSYfQDdE@Hn<>tbkw zDP$ChEX)+a>6DJYt)vbG+;lbS&G>NQxw0C>d1{=_-ct-s<=z0;Q-qb$^4DLlksci_d*7TNocC@Y z%{{L}{a6KR&!I%j_Z^fKjKloN6ccB3J{9q$!>8wLO91L7ssF+m9?R3a`O1@TL@d>8 zKCM@`PwpH08S2T`M6gqHlD=$LhIx$`jHS)@N;U9q0G5vaSAS!UR5!`8?`fK_eHV9~ z*$DUFs&HX}%^k(^oH?sba$C8^rxr6cu}SI>hV0O5p1G|US7)g@#JEs8{pe?-?rGxEi7;W{zslRv9nIk0bNh5X+KzGX&p;KQMAATijU-?Jq`;Zn4-M%J%rZl{qgJ}ZK`o?!S zcCCFU=2c3HyVB9jx{PQZ-c)goUn@&>(`XG0^PG{oGVi;6G$;ERbt+U86$lt~W zP&l3O{k#kC4<8>_v>?boqny`dm zW z_m*gkuaoHbTPj2w4g9kF6=h{pcJ1uQQW#Sy&>RcpiT{s~f1U^V_(2Wxihve9SpJxl zqi+$$hoS#RVo4Ju-tPbb*gQ_xK*pjkM4rnXzY?9w@a#YH`14SZa5bZ{>B);0OLT}c z>t9(9USImJ>A3lw+$62aO*}5SqOlJajI7-zr1ZiAci>fVl=i>Ly?YdG|IrdtwX}qk zptuY+h3b9qh3+t2IX2TqaRML3{ayY;J~_cDib}spD6X46e7xr8f?3pQ-E9qJzFxL- zk-T~Wh+1j;amx*$dWJE|Z!gn++9)e$upzWr_GU$~^@>wRj&AVmahMm-<1TRc z^7+#5HW-(0ygu!K*kLu$OcFbOn18P(ic&O}CsPJ}FJ2q>rtIje%Z6e(`J<*8TajN zg`@y;p>XX+=g1Hnl`H6;qKVc9w*K_p?m^pol7#G0*5d8*W{F9 zHv{(aFoIv8s}S=i4K3b<4da{LV8|=_ClgAOYlu%Z1h3&rDIxwJA7A|(Lr(84^1S-g z$#eK4ooh* zYO8%5oBRm!MDGP=0Ll0@YCL&$b--P45#R|aj_ zxbLjPD3<2;M{W;}3=#s{2Z@|5n%)Q_zT9D0_5SLO4amE|(XFIb6)Ml}uij&sTeSI% zrg;TQ|7{~9Q|BZv_<8FU;8K{)QlV6SWP>;ewbGs^IZpMK0gdtNkE^J?9GeWe?UPC{Q9|+^A5n#@qvQ_ z#I$EE3KchCeHYg;)g49J8_W@Kk*`$6(_aUt@KD>ML=@;Bz6`3Q4kma_u9P*#vz%^; zB^8#%oU*#^(NX-7gJ@XTxcBLm?Q3@&IXxtw`g$uk0|=H5?E8hL@SGoJd+~D(a~JD61lU_c z%eOc@4w5?C(jp!VZ5U_+W#?IWZbBHIq7@c=ANYTceowhN$P&9PZW+>#O!Bf!(xJS1t{<>jJGT5*+K1;sz3Mv z;EYxQyz4BePS2ok_nZE{X&ptECT$wG)rt< zzJ*|mQ%e=(f%3cf?hlZbePxRU$33)nwJ)uGbdUno<&e)eo{G~HIvok2pUZu?pUFrm zgYR{#k4vc@`NT*{a6ioWg%P$WvO5c?WgFZAZ_-`;)*DFwgSiffPFZSPp2E?JB}SkA zX{q+K8eGz;wwwjzUf}4LN?`os`fI(}jAOCfa0a>3x!Z+eorjBg_3)Uzc}ZjVIF*rc zL5pc8X3=*KZ%m?!+?=VH%?p!%-$PYm_4xQ3a+g-v=53!(B3_MTR34e2DjCpsMq zi0^HT7ik%lJN_g3Ce>kOiXL#GcOSy>Tr5z~-td%W{ONH8Vrab*(NI(BpE(SzgJbuT z>Sr)Z|CAP}A|nChTPDf`qKWfFbjcdjAAP>zX^YlVbb>JIyNMYFrvD~iy0ybBNZcVG z(cpMkdD?zp4Qsi?lM@%nR6P(3m7u$pbaObvGzKYRG zogZ75T>F-wO$48Jo<$^c*IU|I^H18w(#Ot{(d2w^1ypO-+nxD)W&h8J2e$P|b31lR z+fPyDcxGFE;-qBa#qaLoMCWV_C_YGwU~|({g1|Ve{?B0~GpuY?qT~QDNvC!H+j@?En&6)ZO5R z@Ixe)`O)o!Bld}>SDhsj^Lt%;n?t9*-6t)To-ka2e7SisJ2<-G#&`u!>1>2~K5y8p zppVxzG#8ry3+)Bj&@Dt^rKo^nhDrNl8CC4I{e+RJD_F_^ffOdsoLqj2r3Dqwx&0CR zl6B|ktb0BB_(&2MN5!JPG{^Dg9>K4k$QvDH;9yO?(NJkz#xGyrzOz8MD|-`7~bD0_x>Cmq&L7Q$oNns zvrPJ;##0)h;9RjRO*kAFjodkO0VR}IJCpfIf1%g*XogrS?owXuAcFHe$d?&;I8Aa) zLFe_SzmUrVNBE16?J%!|6^BQ3uNMzsmyzv-+1%~wT;t>0w_2@*Ru4aKpf;8JDCFnz zZBaD+ZVOyDQy&4zjGj)oJ2BwHOg85R7kWuaH(>2#^U~jdi~{JJY0OjxLLD-tL;F6) z`)97Ob@`u(n}#ZAQ*ZEIM|nfGXj#0bRmCt(?!;4t{w`*GbA&!S-ao4G2d>WQoa-vX z^f6lpfDJoYLMD8&yP+M#BX;-HlBz-{*W<(8>)4cn$U(5I&Mm_8FrGa5SMV2mJP-@! z#ofZfBt^jmrGArxJEeEKoF>O0LkxPeHD&3PbKq{G`Xn0j{=(Uc;E}*Otf?y^)GXL- zIMzJquypSV%O8q&(W@aJDgXS6i^w7;kkSaunii!&jrVht0w-v%RT-Pt@bdNIvP->o~JZhd-O|#2k_a zYDQ+7U+d*9HzpXZW8_k~h`*<1UHAMCZmVqiUNE z_F>Hy5Rs|J49vV6;Dg0K_EWD+e`4*zGKG|6a|;+gET1QAN`fg%_WuOX{C|z1&H)@b zX+Z-|da?)H8h*fT+8Yy+d%?c$e%qNrPW6Q0(DBsxn#Fpk!huwFsjqc-$Wa!^C%{8} zkeZAMWb;D(+b~#KMlWF!8X7S>BF-b&Z3GIdP2qD9kf~>R z{aJeO7`9w8_qYC0_gcwpLMi+-=qD^J1)OTq`pP%?JvA^d zQ2hr9^fNN~0{V`p97o`<{E&K%xKWQcuoG9*KeK?+%qCds3_nY@bU(Z_M%_Q3gHeUh z?+`6%0e>nEXOm(!b{K;awt~+x*JY?v5ER@Sq|VUR5mCSWTaxs7v+_nKJhS8Odqyrf zY3lB4iR*~}XW%q6^J6Tit>JdvI{5D4MANxBuy4}2?is>}pX{l#u-U`$a!&%q0-B$f z@OIg@)_NX2EaH(sixqtG2xnZMLS*gh>ErcR!g>^sIky)<=eThPU6BqA=%e>X>n3H_ zk#7gam$BdZG`q}Q?R8C^ zncBPgb)r0By}WG7a`F;Ye#=x%+poC?w$cf|Kle+IE2{uq6U0TIR9xuUj{oqpak@XG zYv~xWO_zwfaPU2s{X_cyTiOYE|kqb2thwa(o-j1OzFTN=y;tJyLy3`>1Y=NR70PDI`&$DhkM zTW^Bgl7>ajP2OQOjb^%l0v{8#NG*_`zS6CIN!U8;2H^y8hjGImx{!R z?P(QU6MPoS5cX?)SOps%1Kz3@Zpa( zefLiw>^=hvZ$I+t!}%z%fZ}kc`yVIdU*MI>SToG;f{(s__OWPGv`EvbGY|gx1a@Ej zLkMT4#z1w1OJCfdAQTHk`>8XBhV%NcXVoGSOBrILu`YjxUEkl4Bm1jAMGk#eQ8eAq zw8R|!)ARm<^0Jv!Kv@;|Wu%7oKSZ#2dzZ*^M2p|6RG;Hqsltd zrNg@)6{<3K)2>3V?V^_2B+it{`|8r$^q$|%dI^@lc&Rme&Oz}bcKQ3Hz(|FeEUWF= zBBi_jao7#JofJ+YSiUFocPfKdK;XMyKUuQ`8j!vSr!CaX#+2Ec!xy&uvt`CQA8!nu zA(xw{IZ@l52Z!iFLLW|LjWfR%FFI27eS6nIEI8sVmyFd!kfw}>eK{2o26hSvLTu%a z_&2O;zHxRQ|Iy5eHRPwKcL9~BI7oYcL#Ce>%RWU;2|RuN@Se!8(>A!edL`H6AVj9- zcg}$RzF%1x#VHV{snDZW=dZ1;AhQyx=U-e8v%CI04UjVqf47E;0D7u2PkR)=o&|7r z@ouJOepV4@{%o?kN_~)%BRB%ecaTZt6Sb9Dh6_Ds?Ip(#T>xHEu7yjtQp(|2DFW^z zqaoib^m1Y$@Z>ODT-jeg6|zH|TMN{p^4urkPRu8b%nt-(Dpp0;aO`v{#Iu{0Vs446 zs6`rTQfz|xjPG#Fb7_^3GwWBc$J6TDR3w(sm-`*zhea)p=F$3M#UUD6=ap+O=g@`_ zTr~>bPo0iY%k*|%rkiV_(+n}BEwErc#N-hS;z0ho94aDD0geKj&8(BqGs|~H9CQG` zN@W)4CO&BMm*KP`T z>9^Oyft|;A_khAgrk0xTD`>BU^Uk0F+7N+yZ=2EwFH{{feNhrS*J}aHWA3zBRm9>e zQLt16GdEm(oA~IV{dOyFT&a*Avn)_PgDDtumzf~{F^s0=jk5wXj=u9(`l1>#<~ooSkYFgf;p zAU!ARWF4}m_EgH^dtp!__lDfdIqrQO)@O*~lI%uNh~Bq4hT4F69FdM)+fHgT67zNw1$NoVs-6rTjW}_>r_r1@LN*Us{_VZU9^`HED-lud>ZHc)6ku;w5NU0S%93XR-3r2 zKG_0IsY?;dtPvY}F?(2)bWvkUxK$OcLz0{_H(7zO+k^kI>MY0HQcfHmC=u1(uI z{PgaLk6TFx?1&FL!SxD;vy_BW?K>d0%EwG1pZ$AGbT#h2dMVU=G9a8$81Q`>6NZlijag8Tuf83hD&?zOY1OqB=75`&QU~!a7?oW>IpGayY*}KLQ-XiqVI#O9XG(Wvg!_ey{7ns z&hHSaY`a|N^SiT>^;@rBd&cos>AYeHXVA#Y=kML%rxky)FFr^O08~Xn2ZG^i|Kr?` z$FNH32kG{3*rVmLX{Cee0O&SyDmFxmEI>FGt{-F#KMOm%e$HSw;yNH|I3Ib2JjL5M z3>Ph`h+Bhq28R1`TawxL$$Ltsn3=B)ZpKXMaKdt&YqxCcBAdS$ONM-EKNTqpaz)-?BqIX^=fF4&rsPN@3B zLhTT<4-IxllsdYK=`ZCF7s+fo`uk09bq)`xmZ90NI&qDTiG?$e-Z0~{Q1-`eCO&s9 z3$CG0;TyNB+#(h`4oD5;mZbH4W<6u&1r4d%VaJH>Am6r8KD@>rc& zxB+5>Kw^kcL^v%}RnyI1E_(y*u2B+3J4$myJrk|Pn`|G&;n?u-gIgiqU;M>r*TINO zhdvdM1$1^iW744^vt@>c-0$_vrhC0{pkal3;D)o47N^TP`k7HHs}g<_M3;$&n`>>> zC5(M<3|l-`&tCXBSsH&KI`GgyRTdV_wq@70(>4DT>`Xi<0~xhP+fbP2XF_@r?AX1P z`~8jK?~tQ|cfwy7FxXGTrL|-=k{?X@Edfl3wB7GRtPXXRVqu>990%fVGflo~w{!%U zELVXofYhF5hfrU!`ALuvRuNbc;`=sAJ!QO@C#=a9J-N4R2=~@uEYmI@)}Z-0s7u!! zn-l54CJ|drFt=M*P*AU&4`jL?w4^!{cnN&|VS?e3$CcpPD=Ns2)^^t4?4@yZzJ2Y? zVU)`|mMC!#e4cp{DY{1Xez{IPR>JEJ&x~4;g)>#>_GJDO3X>tv7QY#*E>vQ*&$g zhatT9-=VkB`VS1+E;O;KZCmNyC0k2|wTv?+D=-kuSVtGGC?#BvoXF=~Lm;4J(312y zos8i-gzO7weg8TkdXgGCG4~_Bt^PSt2h9Sp z*BB7dHn4`?+cSf?d0}?3qv+*~K@gw5yc<}4QBE_b59OuPOW967I-X8!yRE)LqtJVv zUqDDLVX)Y@X3L@d3gKhj6D+DW?$#dFP1XY7B8s}9Ne=RV#CYuUFB1!g^d^rtzPBzO zi)V0&YfC|a-@Gb2zQfNmKYtDIS}&}Bu+BV_XI+Ma_mk<}|G8#hI6T?|J)It^e-9A3 zeaIp%$~WZYp?8c`Q*CF~I*pUnMfE&JD1Yxla3~OrD1panJmSM1zd6ReE#W_-Q4T-P zc#PvWW`zE>6_b9WNVh$2p$Rk)rrV?98jvX#D?2Ws11J|`5X_!*p1&R%G93_t>47_C zhK0eF1*aoB!>hL{U+U_tEVCnmaWU6GU|7lOJ^NaE<9H&jz1|)+<+A;~vkS|1#%GD6 z@l~$)^Vl=!v9JJv9znT8HIvhfXAn*|sUNBq%JK_QD)8i%X<2?!|K5`$XDh5!=|NUXGZ%4bjd9Tc=D24lob;ewPXbJ`$Pq z^rl=NK(#Z=r+gtS8u#GRH}5NpBC{)u^H*GZrMx(515|6bQx^8=gIuTm zFC4`5Wv(_#L680*t0aZ z(XZV-z+X2+=G+5XLtLhx_VH^dlK1O?r;RDJQ?MqS+Q)m}c~_O|h~~o_2g&&vZ-H!5 z{UjV#MKV6`!NgbD5FG>cfZjrdr*`%p3o>>bFK)ASx)h=1t}4tzaTX+}vF4<2jhU}5 zMb)u7NP73a|EfMYmr&v~0sQrT_o?>EVB&*EjGea4mlIJWOyZW%2?-y({_gGTEBx2U z#z|YJ!wsKtEZBx?z~%NVPR82}w?e$=$l&dpxb~KVZ7-K9p~zr9>d_~am__NZFsju3gl#;`Y^*Cqz8hKEWvNYFWyzB{}pB09nZBVX=K@wy^cL0FOf z>r>%?Fgafq_5Q6&14OcG!;cNj|d?W=y*iE2CBzUvg*i zOncbm)i9CMY_$wa;L&V$1d7JRw`WUI#lhQ^oVq6Rm}6G;Uak7}grc`#$$7;#h%Vdq z;T5pVz4Isn<-AXp?7Uz*gnj&0PuGJ1%81AtMtRTPu9cg0cHW%LUEz1|CbvC3SE^fQ z@#I68uyr2Hq}F|RWydxkS@9T-)=;-AE6;){8~AFelRGyr(r@QnjsJ!)Qp=r#d8}M^ z12jZhc9rJLJTskbKDJvq)0i>fd84z7pTBDha15{LqatgJ*;jptb)3G$LDacNs zid=PWTH+WBUKF2g-3xVvq$1B$>~;&f&9m>#Scvr!`_aa<^OUu^QIMFR`QS%qP)=Ka zJ9nDj6>9D^YD@__*|8(?(|f{?KID|Iievv9MSm43SXj^A1WHG%tWrJHJNFiq%8o!k zzo72zc+sv97hfruQ2F6pDa-7b9UXF25tc*j*@!pyu)WC)sDAWydB9l@v>2pksc{7j z`Wt6~^RsBi*UWZZ^MuoS|3ydBh(?m#u&c*|px9htdHA80xGZ=~#Je=+iMaa+XQk^- zi-Y*2;768gR5@wMVTw%1fC<55Kg8!C5h2rIHUtNqaDKmmW|PZPWm*3v%lgjWcpu8C zfD>iJg5E$w_7grEY8bksZfc@VU-L`CD?~LyTNZ;Chie&`KWjZybNAQCm;^nt(~?PC z^oSY`zPoz$-1RR^)#qkDiMsLcOFAS7sWiELGt?sP`6*%%ym)(C$K>De^@x4Z4}Pf5iT(NQ z5?ZM9l9W%DV7u%^Me{o|i%96_jMjYWRy4uEJgoTC*ds$v6vqv9+{tBYH=O(gd;3iv z$44+F#7&lCcqF44o(W_2Fq52{#KokzG=(=c;uqo6G~3-9e^qk!tbHl`-Vv^#aYo13HNs2^TSIbj0 zXj#lHb*yA3NjIMTV11_%eBsBndf=f%`Oi=ktnNnGyfhSuDpmP2yl?v5wRPaU!k6OfkCgBK z^cxe6pX7QH3AE4>xId_Ud*j#Mwxq}WBMATCZyx&d#&?}&fuI7a>4l`-l0mrs)}rR1 z=Cwqr=?5ophwvpU%xJ_ngFTRhvMVWZJNe$&r!hbQ3H!y^Q(6 zcrg~MFdRaEGn9Le{Opo8>`_J&EgG)`eWyEFza~=z|0dzZA$N*#*3I<{nlsm`E%Y8U$;5uH%5JVBEsz0Op(!qK;o|K8(x;6JiM0T6Ts(XZ zd15fcEm!_!6*8Dw_6DKG5-L{3wiCP;0`5MbY4Z@vHJe^>BrWVItp#ap;y2Vuruioa zwCKvtVK2D7S`T56^!22qKst>GdJ!F7lMgZ+`y`Cokz0;?gCBoBPqJfPaOjg?ypH9l zthW<@07#95-7!S|(j zh7WCi6pLpy1^)4g`G%zoc(WC)dHE9Vz;+dIdxcxEMZo-{d$AbqrV-^5=9}Nxaa=;N zro%i!dWT1R?1;wOGm#@%*!JHgy~d39*Nk5)`!*H11?#5KjKe8OkM?|aj$t-dIBzT7 z%ZlqiB^}?eHVhXQxXf)k_csas84^D<1OGg{LEM zbE#&lZwTPGdHuM@)H7T~a8Hc73+~6S%c7Pr(u-x9WtUhE?pGenxYr2P6puA5AS1Sc zD{T$$1)s0!yVtNBr9ORiH62Y=4SojyLFXCMBY$2>LdWa*u3%V4%=W%jc?_$pgerk~7C0`12)pjM4{t0_1DkV@U$S&bx}5uVO1- z$*kt(9h(pZ;{HZ((Mn7tD}nnj8`;&~nYZC`L|)4o^)S>ake8tv1y9T>PkIroVp`v8 zE41%QEO!D`q5&nx5m~n3%RfKCkBt=IO>};`h5*b5zDMg*jw6RV&RZowUThDwELTQr zwY6!W1jxlkj)47L&D<|ERR_WpnEl-_9s!)CLf!%|*hO;Cmdl1Mh(b<%k|FN3qc{Wi z&FggHAo(0wxcxELgP0YNepz!!1GC&sr$yVt`SS^Fv}-MdsrQRlXd#JL!EHo{s;ra3 zSL_0GcDHui_$5m(29f7I+;CspRz;Ocr)>n2>n9<41Q*fAD<||{ybC>bN`=l9!ec%L< z7+*zA_k?ZGEblH(7B6-se7Ce=4(MM+sgqU$%I2xFG{klCuj&1O{k6%llP$V1WTCE} z_dCi~LJmTbuA#PbE}>s@N3buURw5JH1b2%=qIU@Sn0$>yeaBmipxS5)^mq=5ZVrvl ze1gHM{}&?YW0Hfi_mzDdZuBx<+@Ah<${ApdyERV@(?BV&^$Z{)-6MZ|B z-}QE%WnR(!c)WhH&sbP__@Dt}v>D+$Nro!?IvH}K7oBhQ_^I{GrMEJ0>58@y(L12` zA?N-wa6WTk&G(cO$Lmj3Ob_aok&$L4w3)E(T}e^jDuckyjk>ir_CGRy@pyws@8`#k zX4t&ffE7&*1=BJkGMu}Eff=YXMSJ)V9bhgc-r}r7k&`%M~Ft5r|ctBaQ zu$Ra|`mR>VLZ$g(okC*y{n8p?sUA-HjSGk)OIs^eX-jQ=2$mk4@LP{1ZquU>j#TZO zA~2tpTGWrot82SOC#~lf-|7dWk}(n)!ZoUh?eg%;-RtF~A*s(Zg1SAA$XxzERZL2DP_L8ogPA<`3=DFN6mxZ z9(zz!gH&I5S);kG)-tUE31Dyz(SI~n1b-wn9l1GINQp4Z8+-h9Ukt+*n&r` zH~&`x@L@(!@=_J7*>K1knnBXBnT}P~;m;yy zp-S?9;EyR-v9|ZqxmtM-=O2$jSX$SSjT}W$@r`@Ik>XHUOe0%L+Vzmw?%9a2mhJQM zc=HquRt6m$I^*<_cHY_OSkGR^ugh57iUssl-ldijVi4(k$FpK9uy9e`3#}sm-$}af zBy>UZG>5XB?ZUS^WjPznfWCg^Do#>)pr!Nd4g7Ir!R{4FW<7_TN134gh?IJe*{^*7 z(I$B~iZTe4h@<98dIvW{SQi;OUbr#7595JlykXSm+XA2)`nT6=D0j4&dsDFv{^MC; z5uGeB05qxNB&T!%bi7?16~?iR|IxQ)P^WMjAkE@2Vx(-R{hvh}V^4vBPh6K_Gb@tP z8Lw)-Jn3^+k;{Z;%=l-Cf`g9Ht+0^TZD(UoT%k?tujL@rSFPCI!j@JJK_8}IYgg^V zQ4s0m@4@yO;m}LyWtYdmVO%#m=jyK#8m z0}jVQ276;a_C2l{aM3(|v}9=9BJl8yIxx<^G}R-&|HP}*)djY72sUP>EPG#E7Ld+P zV7Rg9K_sXT^USD^5*?r{1XRWFG?;rnr<*8!UX8k7OZS4s2i`P-9X}NKETEOLZObon zxpodN6jYMD0&tW2kgec!yqN!mHycBke}MNx1Lf4OB%efPnmIS%25`iYoVrh`$wui+ zL8v3?Nv4Ek3+AH}wX>QlwY1wO&_{w}dzAU0z$Yxe^WD622n|LhyK^J$=)^PCSSW9Z zqIO&SmWfl0E1*hrGaadgJCfg$ub)&)q`Qrm8R2nX+|LzVlA zOLWLvz*jOls~tG|xob=^12;{Gn7jLc-0P*TQqAlKt}RBsQnUlYo}Sglc9jP{#?MI{NLRsb)^6+93#%Rl zHN8+#C>+3&lJar8opkGE!TPPHn3%P{l*27w8_e=%xc5I_)+X*h%@XW=oKl!H6I^w| zin`R^RB+OSg^+_f0^S@zxRLsm-_9A1HnQQ#CogtCm=ALExpHF-5VIsET=J&Ij-aYl z)KPI&qW&mhL~rq4_({g4|aWI%D)b>Ty;6v!fNVlbsUQ|k^*(YvIH(BraXPV zrP+fiC3-wP^fTiY^Ndr)m-MXy@Hyr0jk2R{B(wj_!{~9-3Ii+njr!#Yi$$oU zCrPd|Z9ey{*@s+s071rIyl-9!82c1trCC$ES7>yFEvG38P8 zl8-NOehpmgr4+^=>~RTh7mO{h4)OANh3jm&#BH?R#^jm454fp_R>H>EduL_;wLflV ze4$vvfdh`n`VTtj=D!GoE$)Bh)mw*)2auvDiv?TJ1!XH0o*Cz>G_NOa_Squ zn;i(8F&8o^Y_~G1yL-$}e>Cn@_nAOWe7^kQj$;AY@m5rZ9>sg7c2eP3A|}qvX3V^o zxgPs2KY@a24j~khX6VwCFhg2Mym)OlFklS(vv{bp=q!R2OcCa$PxIUfqXqVCXZ`>c zd+x0S6X=GJ88xtTxSNP=@GXM51RE-@XX`B2)RGWNXY}@3*~X-i&_yGLhCq>U1wDrI zgl;ALqJY{MC2dRJ%jc&V5gfO{>iDhB`{A$U7@Yp(nSMB6?>dY5SPjnS&Dy-{&1wz( zVMIA31ah9q$BW2%;&sM8q&ay7=W>HUGL|ae7dc+^wsRj6)9TcChgeNAO-6Vf8*6M+ z{S4p2meSE&T<;)9$s+#gPe&MSZh5*R`?-f%g$T;oKlWrR;3BS(R0xyom zBKod(U4tFoMc?RN=lb09_RyL#iM-FJBN8*qzeE0=)(2zXv2^J4;*`ZN`kI*LH@o8_PVGPLADPgJ1tPmXy!nSIvu4@+8NPi>q@dY=J%Y zcQ@KvxKo_Z15Y|^SueU6?eRpbA3b-`Ite0q&xloDr0Zl&5gTr*K0=M%in1gQgPnGD zC(w(pfqv;8d-SX3)KK|KF~w|pqhfbq(&s>C$oY$CkreWrlt$D3Av?KL+Oel0oNs>~ zmCb%Jnk2LOq$-60`z_gL+cKzS7-+3x?cFE?C-f7HHxIs0#4YKje^mB!O!<* zQYn)&`^vaD{DM{5Vb1#7z}pm=*>JO|^C)U+RK+ncD$+s-XuXQ&aUQjd-+w1cf3aMq zvC1zqBDS|_J$>UM8$Lt6_)9wadF++mn{eF?M41z)%$CPtC9hIh467culrnB>O0_M& zaPYh8tskGEVOivQm&}?iSsU8to}F0#`JAD-UX1G+pdnTW_q^?z8T@7YYV|zrd$bA~ zWPHfEwl?gb{Q~mw7u7@(G|ot`ktF3Dz!yUfyFwihILM`Z7K#0|G{=&uL?dD$oh5ij zE9MP4vj$P4nhIt$8l6%A$nnr@&`&eSv`O!2M@18qf_*l_EJF*8r})8b$WZ;At*qwp|SZ3)o6x19ZM+#oI}t2jme zxP}s2%Mmm)L{zU=VUV7be@L7G{a84G@_u0qVoW}cX;5Ibh8FJ+o*wEo(*g!4_5b9U zvg}|nhF5ucv6g#_R{I{H`cU*?hJMwL7l+8@c3NL!ITqY4$)Y!$=X=kPBXcU*-`bod zPhb<6JiLY;8H^2)nf*lJ5Rq&WZbnb@qUiC~BZXb>SR2ck8;k8v7Ub{%a!*`}Eub_3 z8kzt-kaJn31LTFVXmt?C0XP+%??k2F&a#n5V#+&%bm|$Rcb7JL&%o+y>mhgF4}xYc z?K2#bPo~*&0Efl_j&sq%&>obOkTFcIy#lnXk4HSclB_IPmL($D?DKvLq(odQBF#i# zJ;ppTmn78RJ%u%PN_Ov@hwh4yNv2JC7+V2vFzW5tTB`Gcd-vGhXgDl+t8l;EjzpGM zP$tPc2<3p!I`C0@*7u2HlSYW72|8-Nh|BK@lT6rq(q3_{__!+!Jzx9`COH2yt}6en zF7v-TLVEcCb~w0E={!tnGRlQtMlBYbG5*F_L*F!F1~TLP^D605K3)qm zyfvXd^)m(#p`Fc8ej+ZTy|RDhTmi_*xID=xB+Uy305V@YtS%IhuvG!?U$hC-wZr{B zDZgC3%NR!XWK`1jBaAqrGJ`lT%7wf805SXmjXV2zn&$wc5gE7u^aXt z62J4duDVgdd|wZV-N_x5Z1o})4Wg~cD$yWR?5I$@=J@3@W~Nat9{2rup3afjk(H(N zQ4JvAQ)eM9)94v_vyLQ6bR7jewZ_Xhe}S&Q%Q0+odT$HaMQmzbOMBK z7me?fsrqfSRX?O_G|ZEHc_afmMv2{sq$9dK`ItA~;2)S$&#qa*l-p^rQgb5hP9YRm zPx~V|ZB1^!tLVff^5Xo@rP5pRAkE}nzOfng( z@yW;2{VeqvK=y8E{b!QQQd)Y|aja(+Eea)10<$rGcJOwNjC@Gnf-a=3nR{T!TRq!q zETx=Wh{}ufDCs^q1!3A%(h8`}4@K3595n;omgR zUnb@a11MQ_KR{{xjPI%+L*oSTeF}2I(lpa}!sdg@@;sQD;BwBZSX)vIN^FCA#;6ZxCf5`ojDNpobT0k;lnv=Wx*!^A@x%WQ zJz6%{{V&S+A5W3K6vKr-=AaJWOh42XSoqIk2VWdxV5tX&rNbY(1#y|aJwxgF4*}!f zbZ@{tvwVc;^T1zf;P8 zbKiL{unKW0iaZrb+f^1BmC++|4!$0j{O3a|wttsp`UtXi`%_M=?7_I|ue1G-@2f^C zEd|A^-9Q2h2RQxnV}7z^`Xc`P14!Z$M@-c*vA=PnfBj%l&RHd~YK4B@ISo5{Q)>~! z@dgZR+!)~)hyBmHAi9h#bT(j8>p!AE>OFkCm{@Q&z>)et|JXv*_)YY`b@$92ZYMdu zhJ|xtH-REozx|-Lp?1=HUzL~7?!T(>Ht+0S3#`U-lrK55INs8`=z@yUc8+cOn#nwNk2k(D6K{#WPM*#Z zx$4kau_~N~81PO0vZqzW)5R2;JXoK7Vg&q=AGdRFG?TxSY6unAjitDfBl`NdS2q5S zXWhjycAwMTA5zK8?Ca}e>?b`NOqaU@`!-lDDLeq0>61Kb*uAPkDDFIBk?1xQcK0d> z^|t7BQlmm9^K38jFXnf{f;pUL9$hgQU`Z8our;Qzc;x95z_T0^u8TK&=R)rT66GhD zxqdh%5$>!qFFBoau&LQkF#K2huXNBAIF(<1 z0J;BWV-j(+c+mXagz6$OPK%jg4^L)jhZZ!il~k)bpp;*3x{P&s0jpEl*kkqDOY`rb z0!1^%tiZ5>V=7l~Y7jq-zzq(c-UVa$ODO=f8HMsZtkdO$_m2s9h}5|4iRn&(8uDXz zoMky;oiLF5Ov1cI{1_XheDtJxL(w))s4%JX19>?d7B(UY1|+PT%%TtB9ia66i)u8? zC2bZPx&o@eQ%y>czv+(1l}O&&&#m8z-#G9gcbkgwSoBpNzA-!DIYIfaUgUd=s%A9o z9EO+ER1WH3_M7jx-OQOOyPi!UKf!~aV?Qf^4^HI^EZeqRd!_GpmfkKG6;vWcNqIy( z>6B1O#-HNTK0}Fh>_uGWQ>6YPlncx){{DX09yoXSoO^c}lvOq<#elJLp4YfEhvS1& zv^GZwImXa7Em+)`M|z9NL>>4h7xEO$*?Cqbk|wjgX#1fWPV2iAL1}${!7zJa-QU4h zzLPO1kP5H=s93CMxWOu7_wL=d^ieqxcLT7UmCsErc*2IsI{G>u`iQr_CG0q=r?+>>%Q<|q=EV|E3&BpHlU2A3ipz)E zQK@0*GaJJGlAodeFVPWm2ef%GIgtlvGt{T-ZxG_PGFc6{OmrM=gX(~PEKvyOKNN>4 z;jHp9nb{ds{AqFC`m5;K(`OqCc43KeovE%Rees)<~p6+vqgb^3l2Z{+0z(1wO4bq3}Y@bU)HFn?4jQ@ z{1o{iBffM!71xuhsFXlg2)I6T?uIy5L6}VN(1nTa5B;c!gJjd^AAYC9OABpkEKZD| zPx6{wzF|*1XAmosOo8ZZmX=nlPXC;Kpo46`K)U*aY;qsW#*|9MsA^xCg2x<~0GxAH z5}1Bhvn4KOzp-;l_v)Aj`?{$YZvUKBg2eENoWinm)2-V@XN4yk$4NM$qL2rhKF~kv zrA(b?0HD*>q6a&e^$BVgnCrf30~%Gp&NBTsEYC7`vE$mEeC_9cAptf!Y-qA8Gox1V zKBrlHi~8sp`TO*n3X5|}JHO8y(5)ng%s{Ia)Hy?d*})?!;X$c1zwIZvqZFlOnqzCw zL2*JrCG*tPv3U}NO^@AZo)($XKn5T^^& zzQY?I4I!@*yr)gA*2AO5lO6(38fvo87!5{-Qh`?a|s^^*;8 zCq4%?{Ex?+9Ah0J!h){7femc;#4X~N0)u*C@wZz@vxBuzg9Z7IcxDe4y%R4Z)@_S) zLxqvjf*MH^I$dMT`_<1{mp)l1A||Q&n-5bB$7vo1EJ&T)sVtkIU#|r=@ph$Xp7Kw-{^F#km#t{o!BeCrHEfwvQoIy)6J z?tCBQ$TD1dj)OF(m41jm4tjXIVg-G?Wrdm4stvCyGv33%HRO1y>#cH_6Z$eyN}Qaj zQ7<`;9`3jhDSoYc;P~?^rwgAy@3FWUq2UUSe4eMFYApQt(y3}+VGfaxr+w>v(Ib0| zQD}MjW)cFh3D|~?)?tA%9=D#ncElNqcZY0vY=y%deOkH+G10R@J@x zsB2#^;bHqa*ovZlJ;@H9x(pe|PtL{tH5M_D#7bxw;g`r>#gan99&$%RT3Uv0iAjFm zHuFeBgeRu0`FFpXLiO|)4w+{lH?r~v(6s5=lcvhLbh0{LgTk}WGiwU;|6}s;^QJN&p&+I zw%KBL`L1waZ7ib37K7Evxdd`-yiYgp!tc#{1H`yn^_kBgVS6nh3TNO58tNiUAhy(U zL+~?R8Z*?Wb?cW4SmZR%d=&<@JEI$xz(h1qV?{lm3$O4vVbGfQt%7L2M)J=2${R5xf z;r6gRg+*-csD4Lw_d>_x(2WCSyQFOCWq~1BZ3sGDa6v|gnQ!SVl1n}+mMKFDdsJ??u33Kqfgm1TQqCH!vqdJ9XV$3a_K=pesW492h z=oLNkhc%g2>(ONc4HOGgCr@CIfNU);YJlfx|jf~bREpuI@kJojp66ica7wS|2M zb4nVf1=E6(gna--O|Zvh-bwDmV{%PJJySs4E}CW_Xzr#q>?t zQE--_l{VvG3$wRdYTX_^$rT|Eai~PCqU)|DN~+C!BkucfKp?OEkGj(iC`WuGp9)G0 zYkEC_T5YPs+v5FFCTm$c03<4Y2|vH~a%ZWld1vAhRzVluI*N?M&d}8XTpi_{h?O1g z8DHo7mwzC2-y8TU%tJs^ovCYYlL6T29ChtXT+y+b>JWVID9i|VONDMloY8`JPMq_v zz?s!~wd_7_>F<4X8@PpkQl0=XQqi=9HPNPpUf>;M!(iB7AeF3ldrMrb1^zF$+zMpw zfp$Z-{1k}M-g_@%OVLU)8p4Vl{m5#3{FON{A;at%z9wWI!8uEQ6ce4gk4tG>Wq%04 zTYQhxBaeh#I!lB~FEIArjJ;l9$dc(yr&S z@Bhcvdj}-Fe~k&B{TgW#ypUD8el(GgCBk?$8`>=-&7(TmFfXNckxdt9!-h36B8(j)=#w3JfY(9I?FDO_ z`VTNj5i41sjC$8A#HJM5aeyaah@8t9z~Ay3&fxM3=A9tmlNs#;tysF-dei1qpKM)p zP5X)dXl|a`0yS-}k`J_-flXz8QP1ahWSkitxQk-d{TWjEm*_|tY>+E2#YWU`40)DZ z?0QwSTGpr}9`YLV1a4hyUa7xjj!A|MZhL_L6AU`q${ zm;G8xQ~`yug)@JHAsrh6+P9iEu3c0K8(JJMIyX5#-n38-dYo&22V6ScH1r_2PiH+r zDz2u#`O2clB?Df-ItoP>>ytyIiq{^8uqJbBlcqbVriBkg(v#OW2}81m2678KpDK(u zHW-$p38_a0dEQN6pXjOzpJfRb3bQpt1U4+k%}top+ItnCTM9pRPK$z_U*w*NaXOJz zJRMM-U|ogcUTkv>I4{xAkEJgt$7f5B{f!X?W)rO7q0Mt-_LO1AThB>3U48}-M-F|J zjc%zzeo0MdznI2?igcnLb zU#h$r_&Yzq3%|60h4vw4w>kB2x1;Er%K8*0ubNq2Eid6vsfEK3hKqLNP8 zoORXLd_mE`E`_!U3m2l3MGfu$xdt3xdb|32e2#Owzu6pUkJ+q=S@DU==5r}MD)lX; zdK{Bx@IG{P1+%Yiw0M6Ja=`oGq(lcfhJavC`W9g$0Tv)EZVGhH-%z;zfh;-yPWk8vpDO-N~IXAk3}m*~Z{NtKy|XZW1f+~#Lo zS6f%`Zjp)c)%O7YOXbtZ1<ul|^NJd~031d{UpIH}UqcpRqbX?o_Dwa0=j?2(2V( zQAYNP#n`mPflSoRUMQUuM02j%LNkQ8>sAjgY{~b&|G1ue=8RBBM`_~J6=Aud$1O_C zKk}nDDVGH|jiybS0M1SYiu-v<@`c;5qLAQMy6En+m>E|9|-c2R^fkut}PpywHcGrN&q%PC==6e*4}^Ri1b2QL9kOyIcx=Tbc%LyS%!WS!m4slil^8< zFQ`kN?YE$1{`rz>F%JYih-l*}vKmYrEk^ZgL$PeGUOc=e)g?myC@j7(Y|vo@Ic^BrwCosp5~K4f zOmC9>PTWmJya+g1xEyEZWIs1Gjq1?4@adBDO9n}69gZ31BGGdgZU|Qbs&!%>(?0<- zXVi|@G5uq)D4*f>X!)uU)-T7qgJuAn>NrwZ6Okur-*|o9(x6uFQvEfjAky0Emy0P| zz=6%9Cg5VoxRBLpL|Mz+?sN?La4?1{Efv0?SbiTGhb*~pXm96eHz6RP3IUem3XwIkLW^#;U& zldpY9p4L*FTmzn%6Pbg?#tZs$7&@0MnW+)20Sn=fjN{&$NMSE&)3nrb6k>t0#Y<&J zpz*lgNBBcRSVOY#*CT-wi;_@_3C1SiKR6fIesu|=5EQL zmD$YELw0;_(RrtcR=H*Cu#pziDWed*4vV#yC59k#EozW(wC zVervI`ch8>JfZdeZ4T8Iuck7S8xvm10k@E_x6ap!1j=fR#LBRF&!Z}5=9;KSYmCv~ zQ%v#d{h@fiWYyPvR*=oi7+Xv(3X-o!}(5x|lq!LDeR+P9{~7u?QBg+v+%M zHM4K8ZcY-e#(&i?Y$Q9JZ80KzAUetOt-@#_+jWG9i|)>WV&3dRKvB^Uy^_T+EGkN> zah4ub6+55rdy|9ylzYkk>&Whr`n@yW$R$6hy;r-l#C;3aLtE;mTKU!_i}*zwQsR&H zBKmSB!Z!#V9dV!1@h{7EEPH~qGX3Pp3w5)@IRr*I>Wv7)=M$Z;7x>u2P6<~A#G_#o z3Y?oXIOQy#b_ai!i$9&-*kwI$c=WSClcn{TiZkCmfw}m2!f(JbTxx~HDYxUJEpL# z$VwdevPtE_gz<99D~S@XxO~u9X)vQmT;-goR&`c@1NdsU7+Bn_>hEPxc1G z{=K5_2Gh+BR3ajiQLo%gAMeLq4?8koquuv0y>jnt?Wx}F2MmYkg~5FsYi+Dsgrcuh z5q5C;YY$R?CYK7yJAsPX$)OsD*5$87Z+9ARfgLPE5rTScMq;0li6oU7_5jQDBjGjhGmXgVbtmq)llhWfD7PDM>$B_) z%u63#x)Iv;A$4xzz`^~|<4Oy1CWrFyof>&gd#r^C%%kmk6{1w+z0p>DOQ|OP4V~NX zzb#b@zqH(gqaF#gkA(q@YrF=zcUY5r75F`&SEa-}a@$u|UebRBgqpCCHg@j=ew1{I})Am}ng9IgvBt?L~ zvV$2m#pqadfm8o-XmVYWOK`Q*<%)Qv?sobmH8=JMxaNZ$_Y|k&-n?Ld1<4z4NFE-K7n4F#mFRzPt%0X-yP9+1 zj#CAc93#X%v^7&!Fp-RL+GovyR&T!8-io+*zU8J0%=AkXZaQHLsp;m#v~`IneE5F; zt+tmGP0Y$9x@4hrFVQ*xwNP9~g3foRECFwHc5UF8;tW$yM?1RUUx{pLe0-J$jOfqH zWykJbaq2EDv&Pev$-LVE$7_4oo>ZOtD|I^4VUL&NN8cE18{9HknT{8H)#A74f-W&{ zY?D5kz0?_pYU=rfS;g!MU73L2hH6k@QA0lW5cjH>ZRYZKFg^SbZyn4H?JCnK05ism z)_^7w;QMWzL68=aI8k|wJ;m_`SGL>r9ACe9am)4AB|@cnhlkmxFKPaxs0$l}w^)-T zoFg;A3h}~?upYB0d4}8_R1_l}$}kUmqB%QG&K>`Ns693DMSoW+TjCo5X?{cad5OrM68#LdANa*ymDN zhCXX&fQpi>!)P!Xf_~0I>P-?je-6UKQi`!i9|Jt+hA|#|(J^@GM5XAbu#8=T#FMLE zEj#wQ29|xE-J%Xwob-4@ipMkLK>VSt0HI(ol4UqsQJ5fo}4ZZuSn6igT3^ZsL-856tW7eJ(+hDK7MWSzIpcam0h!W?V z)uRkZ^b17u~3+=NxKVwnsb@Qoe?XC(~eq`?0z08Xm%XBlc$G zjzm)GfOGoSOWv2XsTAyk*Rz~|8m%IGj(G<7sLbV%q2 zj7g2(0`?HLl!B3B_bfdQ-D4>ndGZ>)CZEe{fsxkq;2MTWYyPz!C7%8PRpF|N{vU?k z8<`!*1MM#jJ1#RSM6GK5R3a8MvTI309ftOh3;2EIqPt? z=r~?P-3@*>+DY64v-tU)2=+s0>E>tZhSC>U!miL|7_i)VaUHXE&PU>yf`R_?pccW< zUd61i?+!vzOErU@obXrUWwZtTvqL(>XqW32IQ;g&v*r8$#{FQ5-;~!)8rFHs_Q==A zO{T2>2~YoTpj>xD1rR@surX+(`c2W6>FFZ-{~qc&r4dN3QXE8x#pa*+d6weJu8 zW_@Rez1Ybqh1G^IphLz-b1lA4{C{5rb-VbiY(n>H6!?8z$v&Yj_gxRj#2;G0u10Ov z`nu(1VXu;H`I$r4!+$<>*Qk}b8pc1#ai#cpzzMhn_+|U*@1ZuC@nSwCr32!wuG=TI zORPI)qflOZ|JM=IYfQ*c_#f1-a@XOZe_YMW4qnAiN#cUg8Zu7*uQ-~<9W#b(@jv78 zxP3t7GskO-hebcn=buL{Z9GS)mT?o5HSFn zn6%I~%b$1+-;41@O!3|+AbJ=4)o8h)`#f^L@a~2cVX)^L>(8TG=Q`SW#^F=(({~X;Is7LqRw#>3LHXZ7@I`;Gsdg?TqKnPu zI5E+1ut}+?hCj~o9+}@a#(y(uXv|Rr(w{&{GPm|dOpo%H+F3z z&n?&n+$1Rhy|baNx>2l}tb7(|D0WycZwO?Nvrj_YwR?(6e%vlab!1n6IImyossO6rCgZ z`)b&sTWq`P=HcuLWJ1j1?YKyA>4}EJhwLS@D&03kkL%`=UQ(9M^LK&Ogj`63sH6-w z#nW?g=dW0S^~t~>Y(Dcx{^0l;N`>nGA5{Jxej>5pBO)JJ>oZO&bl(ef9C&vdAQ|enVXZj?FW1k(@Dp!Wr!v zQs%i?IV}qbC@tU^t4hf7{~|qER$va57@A#BTT|jrCe?JFpbvYLKSMX1sjouX>Q_CL znq^PGgO4|yxPG++N#7Kdw6g$kdsB%IVi2eg)}IMdkrL1ckcZV6Y(_F{YMHnl9Ex}} z+a;5QJjTG+>Fjwv$H05=RYn}DXtKTYQWMGQ;=K#^NRCo?tm_PVzyF+2;rsaozIJT) z6F=yDrB3)mJ;XInRsF2$n&b(6)s2yhxY{g}QhHQULmc{kCoN7ft0}HC2|FL?e==II zZ3oH4Wq?C1F6K0;>YyIgi}yLYJ&VCRZqzt2{4V!nVGWD`&($X?4{I7W(8eRI@+M@X+)DrDa=4b^KAyt!P*C z&fOVq<~xWZt*=C(h_{~M&OzJ^t<@B4t+<4qG^R?XUdF=Sd<$~7@;nqvaIwZ7toGHg zQF0t-@uBm9cG8oA7;QRzJiW^1T&!5Ha-d}*14q?_h-;R`YrkJVN!=VdY|QBIt*Y$z zu-2t_n*#4&ts%mKRLC)cZ2+K45r;T_E(#LimJS4ucurI>l4i)R@!*EXb!vx$3g>6e zfKMIef#%SQ)9Nbt_-4R?*BFA%i$g$h(u=ThTqC2kYLHC!*B-FoA8HSL#$fG41JEel(ht{g!<8|%Vhj1p^Qy$R@# zz8vuD3LuW42G~y1U7z|gm%UZDvCe*jd1pyMXPuuI(PyXU@6_P-!lyJ6DCbyJHUkc+ z2he{pHPR_-F<8i9k|PSn4>@|-KIlK207AP07T-*97_qWP(^el&5qX%eYxSg9W_-aH zg|HY!Yn3S%VR%Y_q8a#WJV5b8JTt*#YScbVd|`Czk;scyD|K;l5^mxfvLXh7p4e^_ zydD*{ZIU}A5GWB)ytZNaDlKE~B*k^@M1U^-wtNEaq{q_UzVqVIm*@3MP2zBpBNYb+ z`l73_f~CKinif_LqV({{(Jskqeqo5U^o8s|c`0;l;k2o;WI&d*rHD8v36fi$Rtb}i zn1z>g3uaSL$cyuIs?XwdMf8ImN!8ood(fx%N$R{_?nbTPYcAh^g>*5b9Z5P> zyiClXq-orF_^ARH-4Q3V@`+30>ih0tZf^=x=OZ;{_{>K&s++~nZaLVSfHC@-XujFg zkcL@(SWZ1@8yBR<(f~w9v~gnsBrv#_#G7vjgB_B9Y+(VMgBI-e zGT2_q5HKu=f&eB9v6`8*!rONwc!73U_<7G(nvdi#QpiWTzrlDx;?^Z#haNR%49U)lWAuHKh?|XiHn!{R3R3x1(wi3;3yg zgm`J(pzTpD%aw#bPKH$P5P6g~L{^%=b0sm}nyDF{*=1%;;Hu9^O(Lsi!}-|gZYK5S z#~^p~qJvC;)_h;bQ$5UhrnsEbM~e!xKn-)83fsXNl>oH`3l$hJ=#f3sq4WW($r{2(;Y9+)wy{!js7SmNkk1@`5IXENhko|e zNd*mAMHX05OX)4Q&t}l6#ltxu!|ban!&BEMNQD;8j3Wj&-E8=TQ^-Pb`8uC>@_uD9 z5w*rB`s-fC8*tF86qRCO{mbi}`wS;u7W=%!sMtu1$!6+Or@5&euPd-f)fNzpUAnth z@z{Si6(Y0(R?bU>u8?8|~aO(&oeYA5X~Sn0Lju(5hg@#*@}t_JkjiWO^Eb$FSi)T^|D zeY<)}3N9Kc)m`;JCxP${2QKlIS%}DglP`n z>fTEerzG%Sb(_2U^!C)m?!-So-m-ih3q-@yqMBzj)gFm|J%`z>yAe;O*O*keC9~Qm zmz}}*K@)E6P>HuRDo{TxCdhrMBmw8DGpX;t zbbFYyUU%FUPx?|_Tdg~F5^;=)cS(rS^1BzHYv7vBP>Rde8y^&(3%nsq0YcYCW#`Sm zH!~myCs?Wc1Obd1$lMHhlOkT~l($q%0~_LN^RO5Luekyg zf`}q<$}ZXl{%rn(&X+9yUCWU-Y5G$62bgdfO6DVC|1|mX2uzurq<{DYjuGc`%Z^#yv4T0a04swg_m}WDCroHV54?^YviQA~?UWG0! zV=27|xs4QIdencZV{&0Vi&{+Cje?saN-B+Aik5uU4Y!OGi9NGY3|#3*L;9{_invFa zp-Jj=l)8J>P>7xzNYf&@SVE5+p@>yqqY26wvp*xuXFR9Dx^ti6cFGX#nkV*%VeYLE zm&9CA2n%A!_V9diuGV-6vwvXQy4rRPXK;N#P{&o4(=t@EnLHPOId=mti}s9IxKflq z@Kp@oA=r#BsLKuDzT%wePHwtk{|of{Y@5xHiv8s9uP>s>q$Vf*H$1wsV00gk{@vY_ z!_RgqfYL{&{_x9B*P2QG%M!VR3*FPIB`CAU2;!1+!tTFnym90ON!#cSI)zRt_e;dp zqNW>+w{!e@^8i7t5b(JPAC#LhluNZv6!dP_=iBVP@={B>Jf+)~u()Ip||v%&WYk5ks2o%>~m2`b?2oT@{dr@So=g z$}*;Z*n{P%e&RhdHBT5h(Tc6TN4rEIY|_1GJKTQi$y?_?XVCBqSJ zDgS)YFOjlm((-SAXzJqhNIU4^*Ne;JA-(Vhh#es%sq;01L!2OR5oMDaRHujBzUp-r z41-!-fSkm2pM(bjrHoaaM^601O%rotv5Bram9IDZN-vP?qCN*!mzZIR)atjXDh?Sn zV7T5u(A$|SZK&dd_$$F7;9bgiZL`}wp}Wn|32g8EoT2=w(l>pWARcmeo>Valhss+- zIvC2@=6Pdd_?KmGQ|xkEe~Yr=8+ks+bf$Q8iyg+JRXvH63B((lYSj-gH!3}k-Z)oz z{i;U>Jih_|-S=Gd@vCj}_^Zx;Fj`e)l`G9pLG|m9Xz#xru@tVTjBu9(37AAy+9Xc_)iuKa$fB>U0Lr0x8}c;J>9_ccetimy!9byx$aYf+Wm zpZ1u!QLDA%N|EIq)@vvSd-Jdj(myRK3mn}2Wx>gTp)qIsods5V{R-w{1UHtZD2Obd zt7EynVQcb3P*xHv3nW`DLoU?hAM#1{u9sV81UZ7)HJ2qlt*A3JaGpymQvIu1`PbM_ zuU?j(ym&DYeLg~yDr28S6`&m(4%(aNbM=Zia7KY-$1Zhh&g0q5@a4|rIY04h>jv#$ z=}F#c^|oRWgNAmffgzwdsIH>R2yHiPWUx>ALLiw8`5SFDYIU2*)t^ZSYcZ!>2t)sf z-Hy*%7{1|nPA>*5DBZq(ZW)`V5L3)_$T5aYaam@;u#v;mYREONd6{7<g$k$2KU=Vyjs;${Gr zB4c-x1IYcZ9n2w<-UYMi?0&lmj=Qa$l^{tRzI%Qh&J?-xaEl(0rc$ zH|BWoJ>lXLUexX4e!*?}TI?P*Dp=`gH_rgO&x2pr4?hjTYSx7{iXneO<+vM}H{=f; z8Fn;{dRDZ1p~aF72G#qF_9Ud|OQ~s6>NW7C@t&bUkGN#A&jjK^0XKMG1Npe=bb?ru z1jg#%!-w&gUJh$QdwAl#`1O7JMAg&$`tod_(Z|OdMBPJB0wC$#+%yRi=xCQgVQvF; zY%G_r%)j(1tQg1GoPKI_2g7i!32c(xF)UdVG&iXK`WMT+u2+}DiC;MJA>wz|wq;Mm zJ++3%M$2=0?mNMjt{VH!{~=E zr+4hIloW|Li&d)B=he5Mv&i#P&()<0B~iX_6*#cA^t6rnAoFu8UXVb?BzOI$mG5B< za+<-ra+7TMfMn;80GB7Nf`ftN(e4&J@Q6c-Nqd= zmGL67Ni)M1>;%G27c&ehFaSV?%)p`3%^B<&vZweuG>{gYGRYNagn8EQqMGs$_dd=GgM<)%9rlBslFZJ zBiRqe7%$J_UGG$1wLsm^n|QFaQd&`8Z~-HTlxYhy$6}Yq-ct%CIG=IoJU)W5#h8dG z-Za`-;qMq>`b8*9v>PC`MT1m4szxW(TdVEcN@;ttSI1p)NYR!WsIAGb*b0*lHa_Uj z;cFJhIS(s_B`Uj>#^6*wLDZTrOwfHJ=>I{Io!%NrBwFOtj@y#AuWDH!z(AOF$lTQ} zo>@C)ayvQJm`YRROmMMskvq^XK>L;W0xR_*q|DSDUtvUes#DD-enxcgV%g~NkcQxD$>rv&ZUbApy|#t1yc@ zIeOvuZ_JEEoX>GjzX zBEvuZ9bxb>*rc6HRsbOa(*=v~Mh2yXfSD(2u~PFyE$KIS7gdao*MZR>g4y>a6+2TY z0$Y=Y)3w#l?l_3j;(j9tq9uXRK zR%FHY7u`4G>kJL-lc7JC{zkH}SGIGq^ZAh$v$gwPixo8(gm?f+lZtshZI!~as6lp~ zXeBzYyN$n#szbE*&8aYgr2adUC$anS2j^tc$d}rZ{727&w*Qu&FTI_srE0gAU zZqR6dSBl79_tB&b(Rp){2!G+(!;gdq*sTyQ%*>FHV#-dU)VU;*!}tL$)js4@=bC)+ zmX351{G6W$BNuD?6heoIu6@!A3LIkByPl`c5XHzJCh{!kj5qr_K9JLot?;{bF8r^i z@fN<;-ua&>4Y!vJsUb#RF(r4$_4NnRj9&A>2J_4}%kc39oHov8@MgejQKG35f6Q|4M|7BUCb*zWG zIPw3Is>(`buMKwB@u9FmM%zCRs0~}U01W?$;cO*9^KmTmFH4#a_w|9Wu1P9+gxuWyu_vLIFU(A@h(+h1F zv92E<47+xH2L5Sn=jw+)IL6&zXutr6(Xmk2B-y2}*Sp_tcBR()pC235X@$NXm^u-( zTE$p#dl%c1v;7*&=-BtLn@m{T^OXvqKDk57$!jD>-e4a6y?*7dlkzh^P>T}$Oa%SD z%(4lLmbwIpKkZnkzwlS&>Rd=KDZ1H< z{Ml!fI{4(S>V1b28*^cfAnl2agFs5WjJ^crLVsmzIkR7t_S#-4)PMg9e(kSul z@E@}?Z*m|5uM6(S%x!;DcLec2QpN8}F%LGchEw`2+a1Z4qPn>f z|7vDp23;*WLz4foKHLo$i4c%^?U)|7=ih{@9mD?OQ$eSFn=50DoKNv}CRKDNB-biO z&Ue24%5(R+$H6_8-BN$6sw&?@mJQ*)}^a6;} zmi>a`NcJT(s~`&F_^$J!EO)y=l0?KU{bZZL@=WyffBkMbS88F`K3Ggyi*HM1aM|lv zmV?r}MPWq!$zZGDCo_-V@X8Zp@8kX$s&i8-Dv%|4y`*gp{;|NLRwCHV5C3&p*Eo89 z-qoY=4kYZz*1}gwiU$lNcu!AHz?RWyQRXsnF!uqkJ!tfc-gWYeS4hN&-@WJLu>4{w zuR1d{=yW{0^_3eshyX%sef zo$8>g*}$K=Y-oeJMtgmiPafo2&Lw^02_1|fg>m6fXqE9G&kIGD0UMDhpaxa>>{KFYAz$=3`qY%+4O}s$_kNp@ZSIa5{h%istTpPy7c^*xz*8d_N`ven@8IP+XoQrHg(&|(*!8j8xQP63sZT78{{XrJpq^_01aO9R}VKb{4s3 z-nRBB-fw%?)9hTQ(Xo4=8iyp(LJKWan=Jch=A^R67Ml@sT7ruslSAN$4dr6k<|mov z$c1CF=_SLi{bzbIn}|C9ikfEwb~|jYU{Bf4M>+sLvM5W)!R;?7dyZT2B;u7pbxUFevt5bjnJ{6Qky_Y**%l8kl<$ST3kK~Y zpYKZW>blYq*>ps`iihVfl5iCg{k6qw(B*G&P>)ZOb~sEVbn({6zHR8|b*y_V30ZZ^ z(koqQ4wOc9=aW_UFkf}TbD&lWFSu|gdgKsCjMs!)TaKcq&BoK)`eYG2?OFa0xO6x8 zsm$->*Pr4YI@a(3r30M*I`mi`9xzfHA&(~uwr7>^BzX<`J8dGF2FX05Z?!g~{WL$W zH|l&tjjq2G)sVKB4=P$Zz1LopTvZJ@JKE%0;2YWI{DDsa*T3`WnEf^pqrlqY2+m

    Ijoo6ED@70Wn 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 literal 0 HcmV?d00001 diff --git a/examples/dag-with-args-example/images/dag.png b/examples/dag-with-args-example/images/dag.png index 80ead847a2001f2f083c72b74e153f3ac970e3b2..1354dd67a86b3c4c7c66b0c7e26390ad64e545f6 100644 GIT binary patch literal 26933 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 diff --git a/examples/dag-with-args-example/ingest-job1/01_drop_table.sql b/examples/dag-with-args-example/ingest-job-table-one/01_drop_table.sql similarity index 100% rename from examples/dag-with-args-example/ingest-job1/01_drop_table.sql rename to examples/dag-with-args-example/ingest-job-table-one/01_drop_table.sql diff --git a/examples/dag-with-args-example/ingest-job1/10_insert_data.py b/examples/dag-with-args-example/ingest-job-table-one/10_insert_data.py similarity index 100% rename from examples/dag-with-args-example/ingest-job1/10_insert_data.py rename to examples/dag-with-args-example/ingest-job-table-one/10_insert_data.py diff --git a/examples/dag-with-args-example/ingest-job1/config.ini b/examples/dag-with-args-example/ingest-job-table-one/config.ini similarity index 100% rename from examples/dag-with-args-example/ingest-job1/config.ini rename to examples/dag-with-args-example/ingest-job-table-one/config.ini diff --git a/examples/dag-with-args-example/ingest-job1/data.json b/examples/dag-with-args-example/ingest-job-table-one/data.json similarity index 100% rename from examples/dag-with-args-example/ingest-job1/data.json rename to examples/dag-with-args-example/ingest-job-table-one/data.json diff --git a/examples/dag-with-args-example/ingest-job1/requirements.txt b/examples/dag-with-args-example/ingest-job-table-one/requirements.txt similarity index 100% rename from examples/dag-with-args-example/ingest-job1/requirements.txt rename to examples/dag-with-args-example/ingest-job-table-one/requirements.txt diff --git a/examples/dag-with-args-example/ingest-job2/01_drop_table.sql b/examples/dag-with-args-example/ingest-job-table-two/01_drop_table.sql similarity index 100% rename from examples/dag-with-args-example/ingest-job2/01_drop_table.sql rename to examples/dag-with-args-example/ingest-job-table-two/01_drop_table.sql diff --git a/examples/dag-with-args-example/ingest-job2/10_insert_data.py b/examples/dag-with-args-example/ingest-job-table-two/10_insert_data.py similarity index 100% rename from examples/dag-with-args-example/ingest-job2/10_insert_data.py rename to examples/dag-with-args-example/ingest-job-table-two/10_insert_data.py diff --git a/examples/dag-with-args-example/ingest-job2/config.ini b/examples/dag-with-args-example/ingest-job-table-two/config.ini similarity index 100% rename from examples/dag-with-args-example/ingest-job2/config.ini rename to examples/dag-with-args-example/ingest-job-table-two/config.ini diff --git a/examples/dag-with-args-example/ingest-job2/data.json b/examples/dag-with-args-example/ingest-job-table-two/data.json similarity index 100% rename from examples/dag-with-args-example/ingest-job2/data.json rename to examples/dag-with-args-example/ingest-job-table-two/data.json diff --git a/examples/dag-with-args-example/ingest-job2/requirements.txt b/examples/dag-with-args-example/ingest-job-table-two/requirements.txt similarity index 100% rename from examples/dag-with-args-example/ingest-job2/requirements.txt rename to examples/dag-with-args-example/ingest-job-table-two/requirements.txt diff --git a/examples/dag-with-args-example/read-job2/10_read.py b/examples/dag-with-args-example/read-job-canada/10_read.py similarity index 100% rename from examples/dag-with-args-example/read-job2/10_read.py rename to examples/dag-with-args-example/read-job-canada/10_read.py diff --git a/examples/dag-with-args-example/read-job1/config.ini b/examples/dag-with-args-example/read-job-canada/config.ini similarity index 100% rename from examples/dag-with-args-example/read-job1/config.ini rename to examples/dag-with-args-example/read-job-canada/config.ini diff --git a/examples/dag-with-args-example/read-job1/requirements.txt b/examples/dag-with-args-example/read-job-canada/requirements.txt similarity index 100% rename from examples/dag-with-args-example/read-job1/requirements.txt rename to examples/dag-with-args-example/read-job-canada/requirements.txt diff --git a/examples/dag-with-args-example/read-job3/10_read.py b/examples/dag-with-args-example/read-job-rest-of-world/10_read.py similarity index 100% rename from examples/dag-with-args-example/read-job3/10_read.py rename to examples/dag-with-args-example/read-job-rest-of-world/10_read.py diff --git a/examples/dag-with-args-example/read-job3/20_drop_table_one.sql b/examples/dag-with-args-example/read-job-rest-of-world/20_drop_table_one.sql similarity index 100% rename from examples/dag-with-args-example/read-job3/20_drop_table_one.sql rename to examples/dag-with-args-example/read-job-rest-of-world/20_drop_table_one.sql diff --git a/examples/dag-with-args-example/read-job3/30_drop_table_two.sql b/examples/dag-with-args-example/read-job-rest-of-world/30_drop_table_two.sql similarity index 100% rename from examples/dag-with-args-example/read-job3/30_drop_table_two.sql rename to examples/dag-with-args-example/read-job-rest-of-world/30_drop_table_two.sql diff --git a/examples/dag-with-args-example/read-job2/config.ini b/examples/dag-with-args-example/read-job-rest-of-world/config.ini similarity index 100% rename from examples/dag-with-args-example/read-job2/config.ini rename to examples/dag-with-args-example/read-job-rest-of-world/config.ini diff --git a/examples/dag-with-args-example/read-job2/requirements.txt b/examples/dag-with-args-example/read-job-rest-of-world/requirements.txt similarity index 100% rename from examples/dag-with-args-example/read-job2/requirements.txt rename to examples/dag-with-args-example/read-job-rest-of-world/requirements.txt diff --git a/examples/dag-with-args-example/read-job1/10_read.py b/examples/dag-with-args-example/read-job-usa/10_read.py similarity index 100% rename from examples/dag-with-args-example/read-job1/10_read.py rename to examples/dag-with-args-example/read-job-usa/10_read.py diff --git a/examples/dag-with-args-example/read-job3/config.ini b/examples/dag-with-args-example/read-job-usa/config.ini similarity index 100% rename from examples/dag-with-args-example/read-job3/config.ini rename to examples/dag-with-args-example/read-job-usa/config.ini diff --git a/examples/dag-with-args-example/read-job3/requirements.txt b/examples/dag-with-args-example/read-job-usa/requirements.txt similarity index 100% rename from examples/dag-with-args-example/read-job3/requirements.txt rename to examples/dag-with-args-example/read-job-usa/requirements.txt From 97a6c222de5ba2ce9f75b331d479d002622c694c Mon Sep 17 00:00:00 2001 From: Yoan Salambashev Date: Wed, 12 Apr 2023 15:53:13 +0300 Subject: [PATCH 3/7] vdk-meta-jobs: reformat the tutorial according to the guidelines Signed-off-by: Yoan Salambashev --- examples/dag-with-args-example/README.md | 139 ++++++++++++------ .../dag-with-args-example/dag-job/dag_job.py | 1 + .../read-job-rest-of-world/10_read.py | 6 +- .../read-job-usa/10_read.py | 6 +- 4 files changed, 105 insertions(+), 47 deletions(-) diff --git a/examples/dag-with-args-example/README.md b/examples/dag-with-args-example/README.md index 3af8f2d3fd..564f75249e 100644 --- a/examples/dag-with-args-example/README.md +++ b/examples/dag-with-args-example/README.md @@ -1,25 +1,30 @@ -Overview --------- +# Overview + + DAGs allow VDK users to schedule jobs in a directed acyclic graph. This means that jobs can be configured to run only when a set of previous jobs have finished successfully. -In this example we will use the Versatile Data Kit to develop six Data Jobs - two of these jobs will read data +In this example you will use the Versatile Data Kit to develop six Data Jobs - two of these jobs will read data from separate json files, and will subsequently insert the data into Trino tables. The next three jobs will read the data inserted by the previous two jobs, and will print the data to the terminal. The sixth Data Job will be a DAG job which will manage the other five and ensure that the third, fourth and fifth jobs run only when the previous two finish -successfully. +successfully. All the Trino-related details (tables, schema, catalog) will be passed individually to each job as job +arguments in JSON format. The DAG Job uses a separate job input object separate from the one usually used for job operations in VDK Data Jobs and must be imported. -The graph for our DAG will look like this: +The graph for the DAG will look like this: ![DAG graph](images/dag.png) Before you continue, make sure you are familiar with the [Getting Started](https://github.com/vmware/versatile-data-kit/wiki/Getting-Started) section of the wiki. -Code ----- +## Estimated time commitment + +This tutorial will take you between 15 and 20 minutes. + +## Code The relevant Data Job code is available [here](https://github.com/vmware/versatile-data-kit/tree/main/examples). @@ -28,23 +33,22 @@ You can follow along and run this DAG Job on your machine; alternatively, you can use the available code as a template and extend it to make a DAG Job that fits your use case more closely. -Data --------- -We will use two json files which store some data about fictional people: their +## Data + +There are two json files which store some data about fictional people: their names, city and country, where they live, and their phone numbers. -Requirements ------------- +## Requirements -To run this example, you need +To run this example, you need: * Versatile Data Kit * Trino DB * `vdk-trino` - VDK plugin for a connection to a Trino database -* `vdk-dags` - VDK plugin for DAG functionality +* [VDK DAGs](https://github.com/vmware/versatile-data-kit/tree/main/specs/vep-1243-vdk-meta-jobs) + +## Configuration -Configuration -------------- If you have not done so already, you can install Versatile Data Kit and the plugins required for this example by running the following commands from a terminal: ```console @@ -62,30 +66,31 @@ Please note that this example requires deploying Data Jobs in a Kubernetes environment, which means that you would also need to install the **VDK Control Service.** -Prerequisites: +### Prerequisites * Install [helm](https://helm.sh/docs/intro/install) * Install [docker](https://docs.docker.com/get-docker) * Install [kind](https://kind.sigs.k8s.io/docs/user/quick-start/#installation) (version 0.11.1 or later) -Then run: +#### Then run ```console vdk server --install ``` -The last part is to export the local Control Service REST API URL: +#### The last part is to export the local Control Service REST API URL: ```console export VDK_CONTROL_SERVICE_REST_API_URL=locahost:8092 ``` After starting vdk-server, you now have a local kubernetes cluster and Versatile Data Kit Control Service installation. This means that you can now deploy Data -Jobs but first we have to create them which is our next step. +Jobs but first you have to create them which is the next step. + +## Data Jobs -Data Jobs --------- +### Data Jobs code structure -Our three Data Jobs have the following structure: +The Data Jobs have the following structure: ``` ingest-job-table-one/ @@ -312,8 +317,14 @@ def run(job_input: IJobInput): db_schema = job_input.get_arguments().get("db_schema") db_tables = job_input.get_arguments().get("db_tables") - job1_data = job_input.execute_query(f"SELECT * FROM {db_catalog}.{db_schema}.{db_tables[0]} WHERE Country = 'USA'") - job2_data = job_input.execute_query(f"SELECT * FROM {db_catalog}.{db_schema}.{db_tables[1]} WHERE Country = 'USA'") + job1_data = job_input.execute_query( + f"SELECT * FROM {db_catalog}.{db_schema}.{db_tables[0]} " + f"WHERE Country = 'USA'" + ) + job2_data = job_input.execute_query( + f"SELECT * FROM {db_catalog}.{db_schema}.{db_tables[1]} " + f"WHERE Country = 'USA'" + ) print(f"Job 1 Data ===> {job1_data} \n\n\n Job 2 Data ===> {job2_data}") ``` @@ -367,10 +378,14 @@ def run(job_input: IJobInput): db_schema = job_input.get_arguments().get("db_schema") db_tables = job_input.get_arguments().get("db_tables") - job1_data = job_input.execute_query(f"SELECT * FROM {db_catalog}.{db_schema}.{db_tables[0]} " - f"WHERE Country = 'Canada'") - job2_data = job_input.execute_query(f"SELECT * FROM {db_catalog}.{db_schema}.{db_tables[1]} " - f"WHERE Country = 'Canada'") + job1_data = job_input.execute_query( + f"SELECT * FROM {db_catalog}.{db_schema}.{db_tables[0]} " + f"WHERE Country = 'Canada'" + ) + job2_data = job_input.execute_query( + f"SELECT * FROM {db_catalog}.{db_schema}.{db_tables[1]} " + f"WHERE Country = 'Canada'" + ) print(f"Job 1 Data ===> {job1_data} \n\n\n Job 2 Data ===> {job2_data}") ``` @@ -427,10 +442,12 @@ def run(job_input: IJobInput): db_tables = job_input.get_arguments().get("db_tables") job1_data = job_input.execute_query( - f"SELECT * FROM {db_catalog}.{db_schema}.{db_tables[0]} WHERE Country NOT IN ('USA', 'Canada')" + f"SELECT * FROM {db_catalog}.{db_schema}.{db_tables[0]} " + f"WHERE Country NOT IN ('USA', 'Canada')" ) job2_data = job_input.execute_query( - f"SELECT * FROM {db_catalog}.{db_schema}.{db_tables[1]} WHERE Country NOT IN ('USA', 'Canada')" + f"SELECT * FROM {db_catalog}.{db_schema}.{db_tables[1]} " + f"WHERE Country NOT IN ('USA', 'Canada')" ) print(f"Job 1 Data ===> {job1_data} \n\n\n Job 2 Data ===> {job2_data}") @@ -502,39 +519,60 @@ JOBS_RUN_ORDER = [ "job_name": "ingest-job-table-one", "team_name": "my-team", "fail_meta_job_on_error": True, - "arguments": {"db_table": "test_dag_one", "db_schema": "default", "db_catalog": "memory"}, + "arguments": { + "db_table": "test_dag_one", + "db_schema": "default", + "db_catalog": "memory", + }, "depends_on": [], }, { "job_name": "ingest-job-table-two", "team_name": "my-team", "fail_meta_job_on_error": True, - "arguments": {"db_table": "test_dag_two", "db_schema": "default", "db_catalog": "memory"}, + "arguments": { + "db_table": "test_dag_two", + "db_schema": "default", + "db_catalog": "memory", + }, "depends_on": [], }, { "job_name": "read-job-usa", "team_name": "my-team", "fail_meta_job_on_error": True, - "arguments": {"db_tables": ["test_dag_one", "test_dag_two"], "db_schema": "default", "db_catalog": "memory"}, + "arguments": { + "db_tables": ["test_dag_one", "test_dag_two"], + "db_schema": "default", + "db_catalog": "memory", + }, "depends_on": ["ingest-job-table-one", "ingest-job-table-two"], }, { "job_name": "read-job-canada", "team_name": "my-team", "fail_meta_job_on_error": True, - "arguments": {"db_tables": ["test_dag_one", "test_dag_two"], "db_schema": "default", "db_catalog": "memory"}, + "arguments": { + "db_tables": ["test_dag_one", "test_dag_two"], + "db_schema": "default", + "db_catalog": "memory", + }, "depends_on": ["ingest-job-table-one", "ingest-job-table-two"], }, { "job_name": "read-job-rest-of-world", "team_name": "my-team", "fail_meta_job_on_error": True, - "arguments": {"db_tables": ["test_dag_one", "test_dag_two"], "db_schema": "default", "db_catalog": "memory"}, + "arguments": { + "db_tables": ["test_dag_one", "test_dag_two"], + "db_schema": "default", + "db_catalog": "memory", + }, "depends_on": ["ingest-job-table-one", "ingest-job-table-two"], }, ] + def run(job_input): MetaJobInput().run_meta_job(JOBS_RUN_ORDER) @@ -567,15 +605,19 @@ meta_jobs_delayed_jobs_min_delay_seconds = 1 ``` +### Configuration details + Setting [meta_jobs_max_concurrent_running_jobs](https://github.com/vmware/versatile-data-kit/blob/main/projects/vdk-plugins/vdk-meta-jobs/src/vdk/plugin/meta_jobs/meta_configuration.py#L87) -to 2 would mean that the execution of the DAG will be in the following order: +to 2 in the DAG Job config.ini file would mean that the jobs in the DAG will be executed in the following order: * ingest-job-table-one, ingest-job-table-two * read-job-usa, read-job-canada - * read-job-rest-of-world (as soon as any of the previous Data Jobs finishes successfully) + * read-job-rest-of-world When the ingest jobs are both finished, all of the read jobs are ready to start but when the aforementioned limit is hit (after read-job-usa and read-job-canada are started), the following message is logged: + ![DAG concurrent running jobs limit hit](images/dag-concurrent-running-jobs-limit-hit.png) +Then the delayed read-job-rest-of-world is started after any of the currently running Data Jobs finishes. The other two configurations are set in order to have a short fixed delay for delayed jobs such as the last read job. Check the [configuration](https://github.com/vmware/versatile-data-kit/blob/main/projects/vdk-plugins/vdk-meta-jobs/src/vdk/plugin/meta_jobs/meta_configuration.py) @@ -592,8 +634,10 @@ vdk-meta-jobs Note that the VDK DAG Job does not require the `vdk-trino` dependency. Component jobs are responsible for their own dependencies, and the DAG Job only handles their triggering. -Execution ---------- +## Execution + +### Create and deploy Data Jobs + To do so, open a terminal, navigate to the parent directory of the data job folders that you have created, and type the following commands one by one: @@ -627,13 +671,16 @@ vdk create -n dag-job -t my-team --no-template && \ vdk deploy -n dag-job -t my-team -p dag-job -r "dag-example" ``` +### Run DAG Job + You can now run your DAG Job through the Execution API by using one of the following commands*: ```console vdk execute --start -n dag-job -t my-team vdk run dag-job ``` -The log after a successful execution should look similar to this: +The log message after a successful execution should look similar to this: + ![Success log](images/dag-success.png) Alternatively, if you would like your DAG Job to run on a set schedule, you can configure @@ -641,7 +688,13 @@ its cron schedule in its config.ini file as you would with any other Data Job. *You could also execute DAG Jobs in Jupyter Notebook. -What's next ------------ +## Summary + +### + +Congratulations! You finished the VDK DAGs tutorial successfully! +You are now equipped with the necessary skills to handle job interdependencies according to your needs. + +### What's next You can find a list of all Versatile Data Kit examples [here](https://github.com/vmware/versatile-data-kit/wiki/Examples). diff --git a/examples/dag-with-args-example/dag-job/dag_job.py b/examples/dag-with-args-example/dag-job/dag_job.py index 3b340546ab..624b0cbda0 100644 --- a/examples/dag-with-args-example/dag-job/dag_job.py +++ b/examples/dag-with-args-example/dag-job/dag_job.py @@ -2,6 +2,7 @@ # SPDX-License-Identifier: Apache-2.0 from vdk.plugin.meta_jobs.meta_job_runner import MetaJobInput + JOBS_RUN_ORDER = [ { "job_name": "ingest-job-table-one", diff --git a/examples/dag-with-args-example/read-job-rest-of-world/10_read.py b/examples/dag-with-args-example/read-job-rest-of-world/10_read.py index 3882eade30..1f3d6c94a8 100644 --- a/examples/dag-with-args-example/read-job-rest-of-world/10_read.py +++ b/examples/dag-with-args-example/read-job-rest-of-world/10_read.py @@ -9,10 +9,12 @@ def run(job_input: IJobInput): db_tables = job_input.get_arguments().get("db_tables") job1_data = job_input.execute_query( - f"SELECT * FROM {db_catalog}.{db_schema}.{db_tables[0]} WHERE Country NOT IN ('USA', 'Canada')" + f"SELECT * FROM {db_catalog}.{db_schema}.{db_tables[0]} " + f"WHERE Country NOT IN ('USA', 'Canada')" ) job2_data = job_input.execute_query( - f"SELECT * FROM {db_catalog}.{db_schema}.{db_tables[1]} WHERE Country NOT IN ('USA', 'Canada')" + f"SELECT * FROM {db_catalog}.{db_schema}.{db_tables[1]} " + f"WHERE Country NOT IN ('USA', 'Canada')" ) print(f"Job 1 Data ===> {job1_data} \n\n\n Job 2 Data ===> {job2_data}") diff --git a/examples/dag-with-args-example/read-job-usa/10_read.py b/examples/dag-with-args-example/read-job-usa/10_read.py index b3bc852d4a..e716a77eb9 100644 --- a/examples/dag-with-args-example/read-job-usa/10_read.py +++ b/examples/dag-with-args-example/read-job-usa/10_read.py @@ -9,10 +9,12 @@ def run(job_input: IJobInput): db_tables = job_input.get_arguments().get("db_tables") job1_data = job_input.execute_query( - f"SELECT * FROM {db_catalog}.{db_schema}.{db_tables[0]} WHERE Country = 'USA'" + f"SELECT * FROM {db_catalog}.{db_schema}.{db_tables[0]} " + f"WHERE Country = 'USA'" ) job2_data = job_input.execute_query( - f"SELECT * FROM {db_catalog}.{db_schema}.{db_tables[1]} WHERE Country = 'USA'" + f"SELECT * FROM {db_catalog}.{db_schema}.{db_tables[1]} " + f"WHERE Country = 'USA'" ) print(f"Job 1 Data ===> {job1_data} \n\n\n Job 2 Data ===> {job2_data}") From 9c8f83d3db716f4e3c76a0bf153b1f26bce7b90c Mon Sep 17 00:00:00 2001 From: Yoan Salambashev Date: Thu, 13 Apr 2023 10:22:22 +0300 Subject: [PATCH 4/7] vdk-meta-jobs: change hyperlink of code Signed-off-by: Yoan Salambashev --- examples/dag-with-args-example/README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/examples/dag-with-args-example/README.md b/examples/dag-with-args-example/README.md index 564f75249e..591293f654 100644 --- a/examples/dag-with-args-example/README.md +++ b/examples/dag-with-args-example/README.md @@ -1,6 +1,5 @@ # Overview - DAGs allow VDK users to schedule jobs in a directed acyclic graph. This means that jobs can be configured to run only when a set of previous jobs have finished successfully. @@ -27,7 +26,7 @@ This tutorial will take you between 15 and 20 minutes. ## Code The relevant Data Job code is available -[here](https://github.com/vmware/versatile-data-kit/tree/main/examples). +[here](https://github.com/vmware/versatile-data-kit/tree/main/examples/dag-with-args-example). You can follow along and run this DAG Job on your machine; alternatively, you can use the available code as a template and extend it to From e95f326fe76074450d66824e3ebd26e2e2f65db2 Mon Sep 17 00:00:00 2001 From: Yoan Salambashev Date: Thu, 13 Apr 2023 11:19:31 +0300 Subject: [PATCH 5/7] vdk-meta-jobs: move image to new line Signed-off-by: Yoan Salambashev --- examples/dag-with-args-example/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/examples/dag-with-args-example/README.md b/examples/dag-with-args-example/README.md index 591293f654..0779fd319c 100644 --- a/examples/dag-with-args-example/README.md +++ b/examples/dag-with-args-example/README.md @@ -14,6 +14,7 @@ The DAG Job uses a separate job input object separate from the one usually used operations in VDK Data Jobs and must be imported. The graph for the DAG will look like this: + ![DAG graph](images/dag.png) Before you continue, make sure you are familiar with the From 7a02c579767dba73eb8a99155f21af0b1c77c6bd Mon Sep 17 00:00:00 2001 From: Yoan Salambashev Date: Thu, 13 Apr 2023 12:28:28 +0300 Subject: [PATCH 6/7] vdk-meta-jobs: minor changes Signed-off-by: Yoan Salambashev --- examples/dag-with-args-example/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/dag-with-args-example/README.md b/examples/dag-with-args-example/README.md index 0779fd319c..7d0acf4660 100644 --- a/examples/dag-with-args-example/README.md +++ b/examples/dag-with-args-example/README.md @@ -4,7 +4,7 @@ DAGs allow VDK users to schedule jobs in a directed acyclic graph. This means that jobs can be configured to run only when a set of previous jobs have finished successfully. In this example you will use the Versatile Data Kit to develop six Data Jobs - two of these jobs will read data -from separate json files, and will subsequently insert the data into Trino tables. The next three jobs will read the +from separate JSON files, and will subsequently insert the data into Trino tables. The next three jobs will read the data inserted by the previous two jobs, and will print the data to the terminal. The sixth Data Job will be a DAG job which will manage the other five and ensure that the third, fourth and fifth jobs run only when the previous two finish successfully. All the Trino-related details (tables, schema, catalog) will be passed individually to each job as job @@ -35,7 +35,7 @@ make a DAG Job that fits your use case more closely. ## Data -There are two json files which store some data about fictional people: their +There are two JSON files which store some data about fictional people: their names, city and country, where they live, and their phone numbers. ## Requirements From 5a8b6be34a737de1c91445fa3aa8b191f9271309 Mon Sep 17 00:00:00 2001 From: Yoan Salambashev Date: Tue, 18 Apr 2023 16:57:26 +0300 Subject: [PATCH 7/7] vdk-meta-jobs: add the 2 cfg vars mentioned in the README Signed-off-by: Yoan Salambashev --- examples/dag-with-args-example/dag-job/config.ini | 2 ++ 1 file changed, 2 insertions(+) diff --git a/examples/dag-with-args-example/dag-job/config.ini b/examples/dag-with-args-example/dag-job/config.ini index d169d107b6..cdf8865fbe 100644 --- a/examples/dag-with-args-example/dag-job/config.ini +++ b/examples/dag-with-args-example/dag-job/config.ini @@ -11,3 +11,5 @@ team = my-team [vdk] meta_jobs_max_concurrent_running_jobs = 2 +meta_jobs_delayed_jobs_min_delay_seconds = 1 +meta_jobs_delayed_jobs_randomized_added_delay_seconds = 1