From 8a23edf30031b0f71df08c5bca4d57b8e2a209da Mon Sep 17 00:00:00 2001 From: Kruno Golubic <46486712+kgolubic@users.noreply.github.com> Date: Mon, 4 Sep 2023 15:32:18 +0200 Subject: [PATCH] Migrating docs from Docusarus to GQLAlchemy GitHub repo (#259) * Initial commit of docs * Update H1 in documents * Add mkdocs * Update styling and syntax * Update navigation * Update links * Update links * Update internal links * Update external Memgraph links * Update docs * Add logo and favicon * Update README.md Co-authored-by: Katarina Supe <61758502+katarinasupe@users.noreply.github.com> * Update README * Update README.md --------- Co-authored-by: katarinasupe Co-authored-by: Katarina Supe <61758502+katarinasupe@users.noreply.github.com> --- README.md | 207 +-- docs/assets/favicon.png | Bin 0 -> 37105 bytes docs/assets/memgraph-logo.svg | 468 +++++ docs/changelog.md | 126 ++ docs/getting-started.md | 29 + docs/how-to-guides/data/dgl-example.png | Bin 0 -> 152343 bytes .../how-to-guides/data/networkx-example-2.png | Bin 0 -> 172220 bytes docs/how-to-guides/data/pyg-example.png | Bin 0 -> 176101 bytes .../memgraph-binary-instance.md | 83 + .../memgraph-docker-instance.md | 83 + .../import-table-data-to-graph-database.md | 139 ++ .../make-a-custom-file-system-importer.md | 101 ++ docs/how-to-guides/ogm.md | 468 +++++ .../on-disk-storage/on-disk-storage.md | 65 + docs/how-to-guides/overview.md | 87 + docs/how-to-guides/query-builder.md | 1528 +++++++++++++++++ .../query-builder/graph-projection.md | 68 + docs/how-to-guides/streams/kafka-streams.md | 62 + docs/how-to-guides/streams/pulsar-streams.md | 61 + .../translators/export-python-graphs.md | 192 +++ .../translators/import-python-graphs.md | 211 +++ docs/how-to-guides/triggers/triggers.md | 77 + docs/import-data.md | 45 + docs/index.md | 17 + docs/installation.md | 75 + docs/reference/gqlalchemy/connection.md | 5 - docs/reference/gqlalchemy/disk_storage.md | 5 - docs/reference/gqlalchemy/exceptions.md | 5 - .../graph_algorithms/integrated_algorithms.md | 5 - .../graph_algorithms/query_builder.md | 5 - .../graph_algorithms/query_modules.md | 5 - docs/reference/gqlalchemy/instance_runner.md | 5 - docs/reference/gqlalchemy/loaders.md | 5 - docs/reference/gqlalchemy/models.md | 5 - docs/reference/gqlalchemy/overview.md | 35 + .../query_builders/declarative_base.md | 5 - .../query_builders/memgraph_query_builder.md | 5 - docs/reference/gqlalchemy/transformations.md | 5 - .../export/graph_transporter.md | 5 - .../transformations/export/transporter.md | 5 - .../importing/graph_importer.md | 5 - .../transformations/importing/loaders.md | 5 - .../translators/dgl_translator.md | 5 - .../translators/nx_translator.md | 5 - .../translators/pyg_translator.md | 5 - .../transformations/translators/translator.md | 5 - docs/reference/gqlalchemy/utilities.md | 5 - .../gqlalchemy/vendors/database_client.md | 5 - docs/reference/gqlalchemy/vendors/memgraph.md | 5 - docs/reference/gqlalchemy/vendors/neo4j.md | 5 - docs/stylesheets/extra.css | 4 + .../data/networkx-example-1.png | Bin 0 -> 61308 bytes docs/under-the-hood/overview.md | 5 + .../python-graph-translators.md | 116 ++ mkdocs.yml | 81 + 55 files changed, 4237 insertions(+), 316 deletions(-) create mode 100644 docs/assets/favicon.png create mode 100644 docs/assets/memgraph-logo.svg create mode 100644 docs/changelog.md create mode 100644 docs/getting-started.md create mode 100644 docs/how-to-guides/data/dgl-example.png create mode 100644 docs/how-to-guides/data/networkx-example-2.png create mode 100644 docs/how-to-guides/data/pyg-example.png create mode 100644 docs/how-to-guides/instance-runner/memgraph-binary-instance.md create mode 100644 docs/how-to-guides/instance-runner/memgraph-docker-instance.md create mode 100644 docs/how-to-guides/loaders/import-table-data-to-graph-database.md create mode 100644 docs/how-to-guides/loaders/make-a-custom-file-system-importer.md create mode 100644 docs/how-to-guides/ogm.md create mode 100644 docs/how-to-guides/on-disk-storage/on-disk-storage.md create mode 100644 docs/how-to-guides/overview.md create mode 100644 docs/how-to-guides/query-builder.md create mode 100644 docs/how-to-guides/query-builder/graph-projection.md create mode 100644 docs/how-to-guides/streams/kafka-streams.md create mode 100644 docs/how-to-guides/streams/pulsar-streams.md create mode 100644 docs/how-to-guides/translators/export-python-graphs.md create mode 100644 docs/how-to-guides/translators/import-python-graphs.md create mode 100644 docs/how-to-guides/triggers/triggers.md create mode 100644 docs/import-data.md create mode 100644 docs/index.md create mode 100644 docs/installation.md create mode 100644 docs/reference/gqlalchemy/overview.md create mode 100644 docs/stylesheets/extra.css create mode 100644 docs/under-the-hood/data/networkx-example-1.png create mode 100644 docs/under-the-hood/overview.md create mode 100644 docs/under-the-hood/python-graph-translators.md create mode 100644 mkdocs.yml diff --git a/README.md b/README.md index d4f2996b..d9ea353a 100644 --- a/README.md +++ b/README.md @@ -62,7 +62,7 @@ poetry install -E arrow # Support for the CSV, Parquet, ORC and IPC/Feather/Arro poetry install -E dgl # DGL support (also includes torch) ``` -To run the tests, make sure you have an [active Memgraph instance](/memgraph), and execute one of the following commands: +To run the tests, make sure you have an [active Memgraph instance](https://memgraph.com/docs/getting-started), and execute one of the following commands: ```bash poetry run pytest . -k "not slow" # If all extras installed @@ -76,199 +76,6 @@ If you’ve installed only certain extras, it’s also possible to run their ass poetry run pytest . -k "arrow" poetry run pytest . -k "dgl" ``` - -## GQLAlchemy capabilities - -
-🗺️ Object graph mapper -
- -Below you can see an example of how to create `User` and `Language` node classes, and a relationship class of type `SPEAKS`. Along with that, you can see how to create a new node and relationship and how to save them in the database. After that, you can load those nodes and relationship from the database. -
-
- -```python -from gqlalchemy import Memgraph, Node, Relationship, Field -from typing import Optional - -db = Memgraph() - -class User(Node, index=True, db=db): - id: str = Field(index=True, exist=True, unique=True, db=db) - -class Language(Node): - name: str = Field(unique=True, db=db) - -class Speaks(Relationship, type="SPEAKS"): - pass - -user = User(id="3", username="John").save(db) -language = Language(name="en").save(db) -speaks_rel = Speaks( - _start_node_id = user._id, - _end_node_id = language._id -).save(db) - -loaded_user = User(id="3").load(db=db) -print(loaded_user) -loaded_speaks = Speaks( - _start_node_id=user._id, - _end_node_id=language._id - ).load(db) -print(loaded_speaks) -``` -
- -
-🔨 Query builder -
-When building a Cypher query, you can use a set of methods that are wrappers around Cypher clauses. -
-
- -```python -from gqlalchemy import create, match -from gqlalchemy.query_builder import Operator - -query_create = create() - .node(labels="Person", name="Leslie") - .to(relationship_type="FRIENDS_WITH") - .node(labels="Person", name="Ron") - .execute() - -query_match = match() - .node(labels="Person", variable="p1") - .to() - .node(labels="Person", variable="p2") - .where(item="p1.name", operator=Operator.EQUAL, literal="Leslie") - .return_(results=["p1", ("p2", "second")]) - .execute() -``` -
- -
-🚰 Manage streams -
- -You can create and start Kafka or Pulsar stream using GQLAlchemy. -
- -**Kafka stream** -```python -from gqlalchemy import MemgraphKafkaStream - -stream = MemgraphKafkaStream(name="ratings_stream", topics=["ratings"], transform="movielens.rating", bootstrap_servers="localhost:9093") -db.create_stream(stream) -db.start_stream(stream) -``` - - -**Pulsar stream** -```python -from gqlalchemy import MemgraphPulsarStream - -stream = MemgraphPulsarStream(name="ratings_stream", topics=["ratings"], transform="movielens.rating", service_url="localhost:6650") -db.create_stream(stream) -db.start_stream(stream) -``` - -
- -
-🗄️ Import table data from different sources -
- -**Import table data to a graph database** - -You can translate table data from a file to graph data and import it to Memgraph. Currently, we support reading of CSV, Parquet, ORC and IPC/Feather/Arrow file formats via the PyArrow package. - -Read all about it in [table to graph importer how-to guide](https://memgraph.com/docs/gqlalchemy/how-to-guides/table-to-graph-importer). - -**Make a custom file system importer** - -If you want to read from a file system not currently supported by GQLAlchemy, or use a file type currently not readable, you can implement your own by extending abstract classes `FileSystemHandler` and `DataLoader`, respectively. - -Read all about it in [custom file system importer how-to guide](https://memgraph.com/docs/gqlalchemy/how-to-guides/custom-file-system-importer). - -
- -
-⚙️ Manage Memgraph instances -
- -You can start, stop, connect to and monitor Memgraph instances with GQLAlchemy. - -**Manage Memgraph Docker instance** - -```python -from gqlalchemy.instance_runner import ( - DockerImage, - MemgraphInstanceDocker -) - -memgraph_instance = MemgraphInstanceDocker( - docker_image=DockerImage.MEMGRAPH, docker_image_tag="latest", host="0.0.0.0", port=7687 -) -memgraph = memgraph_instance.start_and_connect(restart=False) - -memgraph.execute_and_fetch("RETURN 'Memgraph is running' AS result"))[0]["result"] -``` - -**Manage Memgraph binary instance** - -```python -from gqlalchemy.instance_runner import MemgraphInstanceBinary - -memgraph_instance = MemgraphInstanceBinary( - host="0.0.0.0", port=7698, binary_path="/usr/lib/memgraph/memgraph", user="memgraph" -) -memgraph = memgraph_instance.start_and_connect(restart=False) - -memgraph.execute_and_fetch("RETURN 'Memgraph is running' AS result"))[0]["result"] -``` -
- -
-🔫 Manage database triggers -
- -Because Memgraph supports database triggers on `CREATE`, `UPDATE` and `DELETE` operations, GQLAlchemy also implements a simple interface for maintaining these triggers. - -```python -from gqlalchemy import Memgraph, MemgraphTrigger -from gqlalchemy.models import ( - TriggerEventType, - TriggerEventObject, - TriggerExecutionPhase, -) - -db = Memgraph() - -trigger = MemgraphTrigger( - name="ratings_trigger", - event_type=TriggerEventType.CREATE, - event_object=TriggerEventObject.NODE, - execution_phase=TriggerExecutionPhase.AFTER, - statement="UNWIND createdVertices AS node SET node.created_at = LocalDateTime()", -) - -db.create_trigger(trigger) -triggers = db.get_triggers() -print(triggers) -``` -
- -
-💽 On-disk storage -
- -Since Memgraph is an in-memory graph database, the GQLAlchemy library provides an on-disk storage solution for large properties not used in graph algorithms. This is useful when nodes or relationships have metadata that doesn’t need to be used in any of the graph algorithms that need to be carried out in Memgraph, but can be fetched after. Learn all about it in the [on-disk storage how-to guide](https://memgraph.com/docs/gqlalchemy/how-to-guides/on-disk-storage). -
- -
- -If you want to learn more about OGM, query builder, managing streams, importing data from different source, managing Memgraph instances, managing database triggers and using on-disk storage, check out the GQLAlchemy [how-to guides](https://memgraph.com/docs/gqlalchemy/how-to-guides). - ## Development (how to build) ```bash @@ -279,14 +86,22 @@ poetry run pytest . -k "not slow and not extras" ## Documentation -The GQLAlchemy documentation is available on [memgraph.com/docs/gqlalchemy](https://memgraph.com/docs/gqlalchemy/). +The GQLAlchemy documentation is available on [GitHub](https://github.com/memgraph/gqlalchemy). -The documentation can be generated by executing: +The reference guide can be generated from the code by executing: ``` pip3 install pydoc-markdown pydoc-markdown ``` +Other parts of the documentation are written and located at docs directory. To test the documentation locally execute: +``` +pip3 install mkdocs +pip3 install mkdocs-material +pip3 install pymdown-extensions +mkdocs serve +``` + ## License Copyright (c) 2016-2022 [Memgraph Ltd.](https://memgraph.com) diff --git a/docs/assets/favicon.png b/docs/assets/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..f87d136e95ab34c98f07f8684b097526e6527d53 GIT binary patch literal 37105 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�Vu0klx5&$W?>fOae41oOos5%a0D&OPh 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/changelog.md b/docs/changelog.md new file mode 100644 index 00000000..9a81c6da --- /dev/null +++ b/docs/changelog.md @@ -0,0 +1,126 @@ +# Changelog + +## v1.4.1 - April 19, 2023 + +### Features and improvements + +- Installing and testing GQLAlchemy is now easier because Apache Arrow, PyTorch Geometric and DGL dependencies have been made optional. [#235](https://github.com/memgraph/gqlalchemy/pull/235) + +### Bug fixes + +- Removed unnecessary extra argument in the call of the `escape_value` method and fixed a bug in query creation for the `Map` property type. [#198](https://github.com/memgraph/gqlalchemy/pull/198/files) + +## v1.4 - March 10, 2023 + +### Features and improvements + +- Data from Memgraph can now be [imported from](reference/gqlalchemy/transformations/importing/graph_importer.md) and [exported to](reference/gqlalchemy/transformations/export/graph_transporter.md) `NetworkX`, `DGL` and `PyG` graph formats. [#215](https://github.com/memgraph/gqlalchemy/pull/215) +- Now you can execute procedures from query modules on a subgraph [using the project feature](how-to-guides/query-builder/graph-projection.md). [#210](https://github.com/memgraph/gqlalchemy/pull/210) +- Now you can pass values from Python variables as parameters in Cypher queries. [#217](https://github.com/memgraph/gqlalchemy/pull/217) +- Besides BSF, DSF and WSHORTEST, now you can also run the All shortest paths algorithm with GQLAlchemy. [#200](https://github.com/memgraph/gqlalchemy/pull/200) + +## v1.3.3 - Dec 15, 2022 + +### Bug fixes + +- Added initial support for NumPy arrays (`ndarray`) and scalars (`generic`) [#208](https://github.com/memgraph/gqlalchemy/pull/208) + +## v1.3.2 - Sep 15, 2022 + +### Bug fixes + +- Fixed Unicode serialisation [#189](https://github.com/memgraph/gqlalchemy/pull/189) +- Fixed `GQLAlchemyWaitForConnectionError` and `GQLAlchemyDatabaseError` [#188](https://github.com/memgraph/gqlalchemy/pull/188) +- Fixed `Datetime` serialisation [#185](https://github.com/memgraph/gqlalchemy/pull/185) + +### Updates + +- Bumped `pyarrow` [#193](https://github.com/memgraph/gqlalchemy/pull/193) +- Updated `poetry` to 1.2.0 and `pymgclient` to 1.3.1 [#191](https://github.com/memgraph/gqlalchemy/pull/191) +- Updated all dependencies [#194](https://github.com/memgraph/gqlalchemy/pull/194) + +## v1.3 - Jun 14, 2022 +!!! warning + ### Breaking Changes + + - Renamed keyword argument `edge_label` to `relationship_type` in `to()` and `from()` methods in the query builder. [#145](https://github.com/memgraph/gqlalchemy/pull/145) + +### Major Features and Improvements + +- Added option to suppress warning `GQLAlchemySubclassNotFoundWarning`. [#121](https://github.com/memgraph/gqlalchemy/pull/121) +- Added the possibility to import `Field` from `gqlalchemy.models`. [#122](https://github.com/memgraph/gqlalchemy/pull/122) +- Added `set_()` method to the query builder. [#128](https://github.com/memgraph/gqlalchemy/pull/128) +- Added wrapper class for query modules. [#130](https://github.com/memgraph/gqlalchemy/pull/130) +- Added `foreach()` method to the query builder. [#135](https://github.com/memgraph/gqlalchemy/pull/135) +- Added `load_csv()` and `return()` methods from the query builder to base classes list. [#139](https://github.com/memgraph/gqlalchemy/pull/139) +- Added new argument types in `return_()`, `yield_()` and `with_()` methods in the query builder. [#146](https://github.com/memgraph/gqlalchemy/pull/146) +- Added `IntegratedAlgorithm` class instance as argument in `to()` and `from()` methods in the query builder. [#141](https://github.com/memgraph/gqlalchemy/pull/141) +- Extended `IntegratedAlgorithm` class with the Breadth-first search algorithm. [#142](https://github.com/memgraph/gqlalchemy/pull/142) +- Extended `IntegratedAlgorithm` class with the Weighted shortest path algorithm. [#143](https://github.com/memgraph/gqlalchemy/pull/143) +- Extended `IntegratedAlgorithm` class with the Depth-first search algorithm. [#144](https://github.com/memgraph/gqlalchemy/pull/144) +- Removed the usage of `sudo` from the `instance_runner` module. [#148](https://github.com/memgraph/gqlalchemy/pull/148) +- Added support for Neo4j in the Object-Graph Mapper and the query builder. [#149](https://github.com/memgraph/gqlalchemy/pull/149) +- Changed string variables for Blob and S3 keyword arguments. [#151](https://github.com/memgraph/gqlalchemy/pull/151) +- Added variable support for node and relationship properties. [#154](https://github.com/memgraph/gqlalchemy/pull/154) +- Added `Tuple` as new argument type in query modules. [#155](https://github.com/memgraph/gqlalchemy/pull/155/) +- Changed `host` and `port` `Memgraph` properties to readonly. [#156](https://github.com/memgraph/gqlalchemy/pull/156) +- Changed `Memgraph.new_connection()` to be a private method. [#157](https://github.com/memgraph/gqlalchemy/pull/157) +- Added `push()` query modules for Kafka streams and Power BI. [#158](https://github.com/memgraph/gqlalchemy/pull/158) +- Added argument `lazy` for configuring lazy loading in the `Memgraph` class. [#159](https://github.com/memgraph/gqlalchemy/pull/159) +- Added `datetime` support for property types. [#161](https://github.com/memgraph/gqlalchemy/pull/161) +- Added `Operator` enum which can be used as `operator` value in `set_()` and `where()` methods in the query builder. [#165](https://github.com/memgraph/gqlalchemy/pull/165) +- Added an extension to the `QueryBuilder` class to support and autocomplete integrated and MAGE query modules. [#168](https://github.com/memgraph/gqlalchemy/pull/168) + + +### Bug fixes + +- Fixed the unbound variable error in the return statement of the Cypher query in `memgraph.save_relationship_with_id()`. [#166](https://github.com/memgraph/gqlalchemy/pull/166) +- Fixed checking if `None` for `Optional` properties. [#167](https://github.com/memgraph/gqlalchemy/pull/167) + + +## v1.2 - Apr 12, 2022 + +!!! warning + ### Breaking Changes + + - Ordering query results as in GQLAlchemy older than 1.2 will not be possible. + - `where()`, `and_where()` and `or_where()` methods can't be used as in + GQLAlchemy older than 1.2. + - Setting up the `bootstrap_servers` argument when creating a stream as in + GQLAlchemy older than 1.2 will not be possible. + +### Major Features and Improvements + +- Improved `where()`, `and_where()`, `or_where()` and `xor_where()` methods. [#114](https://github.com/memgraph/gqlalchemy/pull/114) +- Added `where_not()`, `and_not()`, `or_not()` and `xor_not()` methods. [#114](https://github.com/memgraph/gqlalchemy/pull/114) +- Improved `order_by()` method from query builder by changing its argument types. [#114](https://github.com/memgraph/gqlalchemy/pull/114) +- Added Docker and Binary Memgraph instance runners. [#91](https://github.com/memgraph/gqlalchemy/pull/91) +- Added methods for dropping all indexes (`drop_all_indexes()`) and dropping all triggers (`drop_all_triggers()`). [#100](https://github.com/memgraph/gqlalchemy/pull/100) +- Added table to graph importer and Amazon S3 importer. [#100](https://github.com/memgraph/gqlalchemy/pull/100) +- Added Azure Blob and local storage importers. [#104](https://github.com/memgraph/gqlalchemy/pull/104) +- Added an option to create a label index. [#113](https://github.com/memgraph/gqlalchemy/pull/113) +- Added batch save methods for saving nodes (`save_nodes()`) and saving relationships (`save_relationships()`). [#106](https://github.com/memgraph/gqlalchemy/pull/106) +- Added label filtering in `where()` method in query builder. [#103](https://github.com/memgraph/gqlalchemy/pull/103) +- Added support for creating a trigger without `ON` keyword in query builder. [#90](https://github.com/memgraph/gqlalchemy/pull/90) +- Added `execute()` option in query builder. [#92](https://github.com/memgraph/gqlalchemy/pull/92) +- Added `load_csv()` and `xor_where()` methods to query builder. [#90](https://github.com/memgraph/gqlalchemy/pull/90) + +### Bug fixes + +- Fixed `save_node_with_id()` signature in the `save_node()` method. [#109](https://github.com/memgraph/gqlalchemy/pull/109) +- Constraints and indexes defined in `Field` now work correctly. Before, when they were added to the `Field` of the property, they were always set to `True`, regardless of their actual value. [#90](https://github.com/memgraph/gqlalchemy/pull/90) +- Fixed label inheritance to get all labels of base class. [#105](https://github.com/memgraph/gqlalchemy/pull/105) +- Removed extra argument called `optional` from the `Merge` class. [#118](https://github.com/memgraph/gqlalchemy/pull/118) +- Removed unnecessary quotes from the `bootstraps_servers` argument when creating a stream. [#98](https://github.com/memgraph/gqlalchemy/pull/98) + +## v1.1 - Jan 19, 2022 + +### Major Features and Improvements + +- Added graph schema definition and validation. +- Added new methods to the query builder: `merge()`, `create()`, + `unwind()`,`with_()`, `return_()`, `yield_()`, `order_by()`, `limit()`, + `skip()`, `call()`, `delete()` and `remove()`. +- Added on-disk storage for large properties that don't need to be stored in the + graph database. +- Added support for managing streams and database triggers. diff --git a/docs/getting-started.md b/docs/getting-started.md new file mode 100644 index 00000000..405940d5 --- /dev/null +++ b/docs/getting-started.md @@ -0,0 +1,29 @@ +# Getting started with GQLAlchemy + +[![GQLAlchemy](https://img.shields.io/badge/source-GQLAlchemy-FB6E00?style=for-the-badge&logo=github&logoColor=white)](https://github.com/memgraph/gqlalchemy) + +**GQLAlchemy** is an open-source Python library and an **Object Graph Mapper** (OGM) - a link between graph database objects and Python objects. GQLAlchemy supports **Memgraph** and **Neo4j**. + +An Object Graph Mapper or OGM provides a developer-friendly workflow for writing object-oriented notation to communicate to a graph database. Instead of writing Cypher queries, you can write object-oriented code, which the OGM will automatically translate into Cypher queries. + +## Quick start + +### 1. Install GQLAlchemy + +Either install GQLAlchemy through [pip](installation.md#pip) or [build it from +source](installation.md#source). If you are using [Conda](https://docs.conda.io/en/latest/) for Python environment management, you can install GQLAlchemy through [pip](installation.md#pip). + +!!! danger + GQLAlchemy can't be installed with Python 3.11 [(#203)](https://github.com/memgraph/gqlalchemy/issues/203) and on Windows with Python > 3.9 [(#179)](https://github.com/memgraph/gqlalchemy/issues/179). If this is currently a blocker for you, please let us know by commenting on opened issues. + +### 2. Connect to Memgraph + +Check the [Python quick start guide](https://memgraph.com/docs) to learn how to connect to Memgraph using GQLAlchemy. + +### 3. Learn how to use GQLAlchemy + +With the help of the [How-to guides](how-to-guides/overview.md) you can learn how to use GQLAlchemy's features, such as object graph mapper and query builder. + +### 3. Check the reference guide + +Don't forget to check the [Reference guide](reference/gqlalchemy/overview.md) if you want to find out which methods GQLAlchemy has and how to use it. If the reference guide is not clear enough, head over to the [GQLAlchemy repository](https://github.com/memgraph/gqlalchemy) and inspect the source code. While you're there, feel free to give us a star or contribute to this open-source Python library. diff --git a/docs/how-to-guides/data/dgl-example.png b/docs/how-to-guides/data/dgl-example.png new file mode 100644 index 0000000000000000000000000000000000000000..7c97f0da1d41abd532c8c17fedc211ebb10aa079 GIT binary patch literal 152343 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%0D)D!CTmZA> zoxi`$P}7v^63y)ubDMEz2`2Kt5XJhcLP7PaKpJSZZ#Mw|I029Egr^0&a!Jdb10kDR z5PwWOxv9jwH}>OwM;z#!>Zd2(1vX+HU-nsn&5Qd@3SnA_Ck$(v5i8@kY!B_8cdoYGyFtM zX;bwcz_|>Y0h^}S?4-;u|9n(p`6no@D7jA*=^VQz$fhckls-uO5Iw#j?a?jmf0AvS zvpo~OuqY~=v@(TMwd}iL+nsuYpG~83#R%euvf#AsiePPbA2Zicyp+etPuszlLQuFn z+yt$;-F?T(_L&6Wvklfk^^%{y_zb{+qNOd_?@JTYw^XV5-Z;-Nj26~)1)2-ABw3Hw zM)Oc*C68!8ojs^PfNOusjL8IX>6ZjP4~+&t`&}hNknY-&YS1+w4FV#3_Xv6Tv(8vr z-M|&uXK;#TAsu^LPn>{?Mc6$|a-&dM=o}o`1bCq-o831h>`q(t;NH~ixa#du-1T3E zEzIb1hayAK-qTMw3D4y)pXr4)d4A7Y==9+k&sQ}xvwZ+n*hS{!t7&Tt@(reRccnFX z-XrSTguXyIsdxql8uXYDPnW~TAY)Af@U{$I# z3V{$~nAdILVmer1iG?NIHgJ|l8JqyKQ1{*T>**{EA1nnD&XOOG#aW2~UGY+w>rzXN zL83uLd6PY`l#M^9lZl=2m@Sizh7Z?IPYNaBb_(I+lhiH?c&|JxVm*4vI^FYR({!pw$mLTvd%k$^{wZ^LN zKO+c}r>c*6UDTe}em5pxSTb~^?0q-dOKsJkWcK4r+1YtYZ{w>~(M+vT9|zEcD!rlth0ZUvQkL)Ezsi zHW^FqWtx)SeK|8OpcMoO3FUfR!Ws(0>sLxuSv~`flAJ-?z`zPb5$4<2Fsz=RZ|k1h z3|7fiiMLyFS*9`hD{v(!gEtlsd8T%g@iW(l&8+w|^RS{*Cd-f}%ii01E9@~EsKaTO zojt++j`Cd9UeYif`)aRtjdWj=)cVbC>^}MtWS4_FTf3k&2UKsZKS*tt0 znR|j0Rps^9)UeaZ3EO$=yxlC4&>m7>FZrOVNigCjEiQaq_zZ$hBE2_Lb0Sba?~#rj z+_TQ`^)iQZ>Se(J4CjVh=t&<=h#ZI7y7nJARTrlgrSgba8$nh@i>y?`((b~BE~QCY zxf^mx>=?TiJ5_biF6Ezy@d)<%eO6bf9qTN4ynD&3cKwU<(jG0wr9IP${94p6(D_ST`@KGyqat0i1h9^*mI8>)4CHz@;6A3%01 zv9V6T!~@&-wm{UoR8a%XDVtN7Qw?x?(a4nI5uNd^XdIkZKV?mtqd$&Xu1RW${$^kJ zx&}-ux7p_j!B*Et2(m@uaM(-ZLuBne3gIA|x|)7U@@T<7xf=`_D$y^#B)m%Y9%t(b ze&u7n&4;kP0iAfwtzV%eLNzcNu)s^THg+^lH-}ylcU%Jv5AX+XGoRu=gK_C0D$hG>qfb=`yM?z#saBobRzp zRHql|hUv%}qFmd@DqnW(BTu4OLQcw2!*-73k3fv(xMenUC59X>!Z0+*uaS1u>aj zozRi;J@L~aTu9?|ajJ2fDt#KHmMS0*WCh=y^yNcoV%b`F6Y5-+l)!ArB8!tP3k`SV z_BM+{wMEdHK@IeZ-9w6=FtW2WGu`AdtlF`W{CVoB9%7Xl55Rooz!xMrZmA;9z%>-} z^ULfhB;xgcHJx?dSwNc<@fHek-;ytbSfprB*G$a0;t5GuYYM7xUk=YZ1ICkAo{pjpbopaXsssX0 zcw2L}agcBMHxn6?)0t_?+Xzr$P!bEtdVL*;b{}qg@QO?sliIENt?QcF!$X5PJ%p#v z=#-uD{Izbq&d*+x49l1{_4WDILph^R($;y0%eBMLtP0%6I-LE4b(G_$}FZr>=a7e zKR#S}EM~bRz8F$K=_K~xZE`D$Ty%DBd*1-*JshkqVBY%BX1X%kShIm+a*}R5J2UPg<=PG8k8!z%CmCqkmSAkC-nqRMx?Au89K*mQ( zuL4eA6YH`%drd;`K+2GGN(^m%K^DIJz9E`!bTJj)l0c(|xx{mRxVF<+gk@rW?)=?} zZ+3TR?F2rATx7IcHM%U68W=oD&LVLS8^)j>w8YWNo&yF2ZN%%+rRW;eNFjZ$?`sFO zi57^o*9R{$s;x^g?vawVM6(%r+4PG0p7Z1dkeZAhp-;y{7AoBX-@h!T*C1n*$=N4& zxJRKQQJ-W(>P0H{gcz599WuREXAZ}3wVvP@=ElAM_DR|blJWGcC3jsJp!3`vNo#$V zFV!rSf3m!t);Tole5*{Dr{*12-11!K-0F{Bw~{`mMsPqCbxx`~s>;-&yl3r>XwrD^ zj_ry|&&csf!3@OZG8I!QPe!q0y@V{h@=8i=6duD$)$IViG!vW7y! z`qyo${Y1e}Cu3vo2#y_ooJQI`FKuTKgoi0j6JXP=Y_7$Vll*qjy}8CrBvJOl2uwRU zAIlK6WV}GsKlivV?pOl68AoKdjM`swy<2mDIn7A8B=qptTR$A0YPAdtB{~dfAgB}_ z9^GM>ty~i;8Pz?=b9{F6(?g@8L$c~#UQbB=(n!F;2*-{XPD<{w2?}F3Q7*sH=JPAU zL&-KLMb4!q>&*X0-0SaB@C^;P$nD^;zoDgo0M)rv$FudlYVK}x)E^Rn;=3nvCjQl}`^HU{Jg@p7=+% zOio#F>zwmq`dCrMZT%clnroUv;r z`ty~6^>l`FZkNDa?(1TJ(e2p({(Ceb{M4MW(az+13pg)C8=!5Km6S*!mzg%V0nz5v z7;p#7jbga;915Nk#DHT{e0Ki%zhiIzXYKy|9At(r9D?-IVF+z?7v5-7X1}?~XR*vZ zvJ3Br&9SRwQuqEZOI&I!zb zqG_dZ<}YSlaus^%+`|N|`Z`{C?JkC#r!qgmL??{wzdmD5=cJ>dOY z8yOs2-^Z8MB6F&Eq#epn1lY{P4m;2b#erdHC$RapSdHV{hXFJw!50Lsl?;oD!@&eU zjx#p@bxE#i;ENcM;{NU=#X1hA|A)Q5{)@8f-hg31Ku`%mK|o4cN=a!9x3a64Fx=ngzMp^KeXk#`59%=IK6k9W*0GLtEaKJl z8o+L1y0bI5($yX3%Ph)2YpdwCP$%^NJ`xzv4@@CHAWZt3(_tRl3#7AlONnOeQi`{R z#@gS$L70j*eU#O+1Z}OQHpRgVeK$T%}3km z+3(eF`vz!CJ<)nr$Y_g$R91r7NIKBv z)%1U3X`!s1tSWdtzwGB)wEHOT6J=x7ZlpF!vz7VU!Fx`s?wMZ!(>b^V##>pMdSdkg z!9@`t$1SPEEL>nfCxU>E*Q6Peiy&d3#3ll~37by-J+n8A z{{HJ!xj5+?QL=WUGSSaqaB{sxjsPOsNYkWcIuz{mLuomz&w8-`S?N*@?f=S~K+f1U}X@QzAK|2+8m#qHft41|$*E{q1TZZD?e;7S2yJ4q`{jIK!iIK5> zRNI$+Dnp1W&f|aHALHUb`(-RIy{Lf|0*#3RA={BE+&Cr5N`ec>SML*>p=J+DkNh0&1@O zPoK{ac!fdc-!A``SNUV=pctqU3k)JC8+zpb=cjs<@?*~nhW|NCOgg}W#-PDcJM(rZ z3xNLPYn1Y18otb#ze4{b>L)Bo;QV5UVyB()?*7x&C00Y#T9F3*pTVL3cs7gr-=9O5 z2J)=Y%-8?tn&4reeBf2$XsrJ^2KkjegCsB3ynq< zy2aXI|HllS`NaQ!W1N|~|KHjewYQ0Ow`74aO}@0#jT~WQWW4{u=;+99r;}c@(gU`* z=NL8B7N=p+o5=?BqqnxLmv#W@G@UPJO!5^WEi-Tm-yy_6cVsq$mMBzGhI87sOz!5B z9H77nS@U?G!|f93?YZ5YYOYpU^$GxMC;PTZ<5}sht4#XKmoMdD7C+;Iw_u=crmFY` zU?iNJC8#9%swKugAPpnD57k&yLW_ZLB9Cz^tJJ%z;V7c>bW7AUAkc-d3`)3<%#sgb z@A+)ST-w>AqRIn}?Z5m!Ty$&#gsMvvTM2-=-IlNW16@@CeN5L`Y^z@`Pw+^FP^-ao zUinrzXfn0MGwbN})JGd|6Q+hs9lQ4r ziBh-E)5^Yld(}$aQD>5Ib2oxry%C}B!<3Ndt5;Ul+t$7hP#zR_zG-raCgLh{oG9xZ z){OM;hbM1~iJjx`hx>*9VRjq7&b}d~^7xSZ&)c9`o#xQqeaRv6=094$ePBkSJl-4<{*UQCyN8PPqBCa+A z<)*<06|1JeJIzC7T5NJ3edq538m`6@FKAQ0`x7;GGbunojPmH?GfeZ*ikDN3F$_Nn zQS9pETJts_NB<=h(l}oAp}B0VZ@_X$w7buln|dXKka}uULoZY*PEZbb@K&@0R@|Be zPX)5Zp0y;4_OH`70Rhnuo-`cAE!1%s{ev}$rJV%9``U%`XPf-)o5F;9!u0{;EWSg_$jg+GU&V@ zYiHM++Y1!VngRWNYT-$!bRd<&JkRHp;W#4nwp+&Gd%D!(2iq@yAeLEc#qv?96N6*FoecClhXu%8u3F zS-IX>Dh_!*4I-e3L73%`{e4A0pSKzA2>{aVqU;A{J|BJqLT;dx?FZ2Itpx}^X2~d! zhV-QcA4`SLi-9Wi47J=GD?aGz#%xE+sw#tZh|anFl`StB08lW206!8OZfyaZel!0r zN@5}aP~DJn8Zk&yF^>ui8d=%sFz&3eohA&gO{tdb#BeWfpou8<*y`=!!(QBG0nU^B zi&w8au5|hSF#9{@sZN+I&z351n>|49;?L5J&4eFVzKNd9Hnf+4m|wS#2-ye9V%)Mh z*#vESg%Q7gokuYT^l}&0r`ZcyA+oceH;!Hkbm#}On{#(m@ zBUjb|f(@hPe>Re8z(8SzRV?OFwd8brgOwG8nT420z)(>@f+B&sR|GkV78)`eX+HjY z>vl+Wp4B*8K#(ysU#s!&&e}Z;6Z70^97%22;FhhuhcjLNtB%Pt=(@v9D@BI(SNLz_ zP{-9G3FCr#nP4h*ATCpY5Z{s&iF04Z&O7fbB0JNT!0tHHCdmKoo&19bFGLT<{kv!D zMtNMmxp}sMt*yuw9%a?3MRc%|68s>yN70&Ed#K|gxqQHu$^eEtkUW_NTKqi5-H`CZ z(K_sG+CuLtS^*vL{okbX-Pzg|0x3o08|P1)gplVrByrZ>adJU+TGO&C2}XNmTRUrw zw8lzB9jeOG`{NLk@Ca&xSHb9=??b+7j^TNLn~YU{RZVQ*P|lY_mgkL z?AE^Fbah`-c1aH^hOCiL9NX4BkpMjQ(Y~0z?ZMbszbrr#@2Har>Ll;NSO)NnwK-v1 zj-JJjH`i-&TxUVQizC$vH~Z3Q5MJju2?Pym!OWMM;W=K~#&P-7aI4ZG47eVmT!of5 z$rIB0rE9$_fL0#RPd?9AZp(J)RWe%kWigZP(NbZo*zgpA-Jrz#R6?+J3v>wW@7R+8 zQo6c;44_jf?Yx_L9JSX62Ut)DXh{mxWN11`=-QTTZ7g3{-WoCoHH^{n=W@ z_S9ch3)8%Fr|{<&J z*%5jz^E<&GZ1yaOJ+r}0MPTDe+UbHd;E`m*%y!rJ-v<9 zx5t)-j`C_PSx7}3&Wp_kci*7kH7?-Kf*lq1+*5i(-1ed`jsH_eytolS`v#(OwUQ_6 zwnvKxzJr1o7)2-Lohpl?*^DQ=cPBy_a&W3gHhc1)_uvfG?MudIz^2F=_Fg!xagQ>zm)|ExP27`vGPS8ZQrJQ)x%?F+EBy2IfFY0wN(& zeWfvaO>6$V*xU!#*SD(q?6jgYK7AP&^dKV05%E6If&C~I%RSjOk~J6V1?@&^8Sx$q z$XyKO&Gyc}L){UyYil=zZ%8yy%G>S-&$%lYm0I+gI}zLH^m50mXC5!afR9S@W{DZA zm5ZcfTKV#G#^oPwTj%^@f0DB}SfpC$H))|2pf%K+r9_wL=hXCPL(#luaShQ+GN{(T}m5h4Hn(|lEFaDVOzPImZe|Z4)NEgl5p@F?TKD) zH$Sw_R`O07=wG8KG&la8#$Q1?NJt}Urtp@p3duEp{8Pi>e&`K&MWb$7#oO|-G5ks* z#3?PZNvQ_xB;0J+clH+H&}+(mI{N(4)Eaa{O^s>NE;oLiY1lxg4lT-0eA9q$nj&2Z zSy`@B&FOWdOzlgWoBdsAVoiHH?xM5=xp4@#PbUv8C_ab95&m$+< zASBR3&b%U5G!L6oQiyn9^Hn`3%rNbP?7g9Se2GS*nX1?&>QW)hY2fn60sNIIVIW== zL0;-D^6aCR5!R1UI8RzVO86YbeSegrBZLT!yl2moR!Pn7P(9X{1B)4BYzLsZiS>LS*>hdTNbwP(;Whk+H0+jL?MN;s{R2Q5t?8E|3#dG(>{cZj+nO3 z%R|p0pl}@))aKAW*I%Z7HZ500vTBZhSzoDHW6~^pzN5AJf$!cL3(q(**LYSz#JcHH zn-@^rkD6}U%0F)o`fUTWrJsO^)_i18Z~MVM%k&HUs^#H)-sUS`pX72;i-;PX>(`2p7PRkOE300AJMe5h zGa)5MRq*5D+SX7v56yAc!>=x!y9;r)Q~ujy;V}|zd2x5tvmUF82Qu)o=4_&z<8_}E zBIBv;u@-Nom3%5C7tf41T{Wlbk{=VIr?-v{PJAmwWdl*Ox!GE@#aBEx%NLR@;ja|9 zSS#Z4K*CxA8M`@F+z?F5t)=ziOrAs15W72?U{iEOcJBLJrRV0GZUsSyUJryauFF(7 zcjahXuWLIo)43s`W0PD&La~qg&sO~r#alocagFjAs1>EnIGIol2YUTV@;zb;L<)v{ zstb@C@z|Vd{8bm$gB|Mc@4f8_WoIVc&!Z3o!3Z28JGC#e0-M>o9e$WSF!074C`cC~ z-{-36Z1=W05#*@t3v*@kx{8a64j+v9TgE{bB;pda4CM#iD5D(zTE86y$-+>vh+bJ` zsHLm)Xm2C)>m}u&Gsj`=@~T|wlXHEcf<~=z$69nx&i(A_n7?g3C?n|Yq%~jgIlkD( zv(3Cfiln>f!)rm#d`yVzc4sRRXqS|TObe$COjMN=JCFMcJwa}>` zUks-J7B35AzZX?3JdU!^2zQMumN@=1OE~PP#4 zvi&e#(j^^xoan-d7QmCQ5BvwZ;=*6%K&{Sh-nFZ%a`>S;qkNx#OMuF9t6NmGkz8s& zY<8j_^?es6mc0qsLW~i7+kdbO*_+T_vWlSPg$x0KnEo!<4qAg{JP@SqY(LBa{-)1m zPyqk869|yaQpU;D#rFI|slVsV11u5yxVOgiP{{em9So zoHxcO^5e9GnWS#e&WfGvMidx^57Z&zE;U@1tXTm9Bl`)_RDbRuMraLS5=#lPJ0Wmm zC2gj$Z5WqrDyEzikp`B!R<3~#Hk<{}tEKEwP>P$EzM&!Dq= zSqD6+fvFy}pk0jvtRJ5g<7cRd70O7$`UuovihQ1FMb6PBS{Sa3lnZ*eik~4e6HEDB zT4cTMbq0E=5rOtMzj9*L`0cC8I7FwWV;|F+i z(l3_fpP7ABKL;=Rf|ZYx|1(61Iz?*@ofW6c1R4y<9;@JQ!XARWvE1vn>_5)87c;T; zh@}dDlDEqSMEs%E^aEC=uvS`*p40v`2dt8~a9Vo`bng|qY5d2Mg*Kg%#_)1b4zSzF%?WO7UhMzn>EEkmbF98Gi7| z43LI*$@CcJAUpjQy4zU!#`+qd66$tcTBfDZ*8n99ktf~+PdQFjejEmNSZ>DL>r+T9 zBo>FSMt%!sTZQ?7WG#>(<DEi?~5IOpNVS^$I^2$=) zpwWO1^d8Jm0Kc~2F`9K|T$oq}1_rltx&x_1o&BkJA_Ir{3n=gPuP5_Y&>L}t_bVbA?m|rB(8@+w4 z!dy1$u$^2ft7>eziy~|Ae-sMT`M3hM1KYG*0pZEaV_;U}{aKund>lO^rzy#JtmT5d z$%@x!S%W(xg6II}2xz3jgawpj-JbhiOF9EWK3wJwu_LNYw=Q)vuE^Ptr zQ(R%WFfY8eV$?J64fp$^yG~vRI)xIbC>0l)K{t*bcg1wYv~s1W^GTAuS%HbU_;{yN zljn3T!KmO=R|ro%F;K#j)Ir6d-94PNmlkpF9)* zCvg}92swq7ocFKGO+$(bCu~j@1Op49?T4|o>4PlnF|$q<1~F zzQnR*04WXsZe;jZ)JNf`^+{T?#1GgY9rsC>T;p8#?=-Q5ezToxkLFmsa@46w zbMo!P0RTR}<97!=nIU`Fz;_`x>gqKMy8G?qi&6IE05lsOTB#ofKmMB-Iwri57D8ow z^ox=lccF+yO)2QiWH(9s5nK;nR?XOqooonSel>i? zRDQ(C0Udt#;SvXwH8i`2c$y{8prHBB!yAC_1+wX=GM2LHy|=?-748)@tthmte)ZQM z0IR}n%}qD1zunQKBXV*^e`2V}IZm)!dNnr1A;J7?r(t&@dKM;UmNIubqMMp;OGnWMq-U zX{}!9Rq|rA)8)N8ERoROdX zn)+=(eI0;#5sBKjY^x67F4^9>wNpTSLlz0Qo~USdx#f#$K1O!D_tolY^<9g;OtvRq zN9lpUNxS)enKM#-cL4HE=D`Emgfi#PhM(mfCU)>q%!$Pvqk!vT9*zSyAtIUV1{=J#%BN3k~J-4~KFbd(i<*oai+7)HW zA}G>C=7^q@`2LjIK)Gvh#m?}?qjYsn?e=;?!=r1r4?Ig(0LKH#UES{~elUKY$D@~3 z$n_}Rsy}ZOyCArww9s^EALLyJS^&M3fq%K=ewtE(A=V@^^}Bc5R2MwBAEShq>oj)8 zz*-}xdrIlcn{)QI*T>4Zd2Z+~2dJ5A^Xto6kdI(*xv-%@;=0&R4@yG9;%rO5yLc`S z1o0e{uT14ID@_4d)k+$bbDbIpqWrx|$q7nlv`#w0* z{f-*Bdd{2n+srvgJ-7VA>*8Kd6TQp)0cl){Qm|A(tJr+9`S)mvLCOKZs~^E38Q1EN zI);`>zH2Wlx+}{$#U25)%e=cNqllO4F({1VhAZ3&LYvW-lA8;R*lx8SQgz*!<(k{t zPK~Y~iEIQ#Khj6rl=ivJhcDKEd9vOvxG#jajvgh<_V5(}$gf$kAi~bjgr} zGS$h|mFec6>;Q4aMi9Ka%FW!+=KJB&kxK}uO6#zCQKD0IkX$Y1`|UcS>?h8}t6@NQ z=3QR_moL!t0j)yUX3A1zj>Ghr%SHIqzC8Z&SXDi)Y*6b_>eKuQmxG2RuX~`=go19l ztV|*PWOlK7h>%HLgY9|34>67=3ZMy=bw)T4?*rwUK7s&x);iupNL4q&Ikl(T0FC(` zXqt|yI&hOZrbfW-jGj7Jc=g(n3hEq!$I7w_9?-dJj*nil-4f@PPhDH=Fh6~sJbt%I zaF+&4$i2)1LN)F?wE?O3_tO=Qz~qinbo<;;J9^qm8QH;_oow?l^~1J zw*{iJW`S`rFUL85USU5yDGXI}f(r2)DoU6A0seY7qF z8O`AarThqltt74V%UQ%6Kc(b1eBpI4&jPwlvn&fx@mXN#&I$lZc~=255DAU~s(*5z zZQp0*w%CGRNNDxg{{4(cu(#CjBu+LyCN>Gz!)z_sHFBa+_ocCmM)Bi*9oYRfU8Wx{ zowjUGy$0n=<9j))dttJ)cejvS7KFA_Apb{`dkMdZPFX*gI(&5sfaxd+;~btF%Qo3m zk~d>)8t3?Ib9%&MrxQSWYqsE8Zdv{mCex2SabvYd3jJiwDy9%-1k}{M2apNj}E`mnj*8pLL->{xg>T-nffRHCxhe#7|C! z?;=F^Ltg!l^?$^VlV*LUUh9MWR!0XnYSe7EY8N zd$zjQ%3(bEM9}X2=&+dooc9?FA*2BCP|_D?TNX|R4z>>~vG(o-S7;yh=<}ANtDt1I z3#tFr*Qx{K&gp1CMhUpIo1&KL=ysUIDwwX$d6PoeBbCH<+X|Qkxs`q?7f%dJ$OYiQ zr#}y9B|$q-B+TPneo7RfFEl;MZhCCNwwU~u6e*M&TH27PSw%a?#x`HM{ab2*@oxyQL) zE0MWORFf_H;7cwc>&tmgnI<7&s8>%-Z_+|f^1%)8>e+%05pR(3wKIJcQ?XEp$2fiAgOdkiV2**`%Clh3FZau`U5;LtwlB6% z$teIidp6trtkc*)lCBGkkW{G=13khFDamvF03cC&ch?Xx&()thfcQWtm&JiN#b(%0 zT%TsIoGf%->KYZSWvqS=c2}sTgcAJ#;gI>yo5fUuVcrQ=v}~lOtN35yuFv=-7Y)_q z>o?RucLT~occb5Fkq~_ujbG@3BR__anN0Kc^QcNPXzEERfM*M;6rdQC08}=S*u(|`#;ZG>`GH-Ny& zfszW5jPIqisQvDjivwD5Pq@fF??29;OADk{nkRO(UKy=iCUm@Xy2&swqX258bEV?c zqXPATJ^+&;vV`a3+NgPMT&W0Z0ZjkDZ+kL?$IyoXF{Dm zL+7GXYq@~Z<4IvSJ$sp`Q@+s9F>&VXv46z0dfu;k6*l8+WqiNC=yvASGwFG>s^zIy zJ#pnV`|E7Xk=|~@p*&T@N)sDwCr=qYv>lX0eG+*k`WeJ_?Bi^AzVhd*-6xJ4hYjW8 zo=5*92|bvx%WgVo1L7wMftEb)Pf*ld{4j{8m)^_LQg-r|P$WBQArY<@hC!JB=qrkN zjZ#>d4giU8i0pqXWC-@&))M>PWX?z=Z#oFb@7;_;eCQO#$#M2he7?tKaF~UTk87&I zgdQSW<^UW55G?rl>&kzODx)V9kX{tNs%IPO%E;qENGpOi*BsCqr8P3Bdz@`QXB^&i4Jp}^b`VC(O%mlt~92!U!YdDSctM)3%Z_O75{cSDoU3119t}Y zM|*rMyd4xeWP6w-WObH2&KL5VWm~TXQQIp; z)HuiAb2{A|#Ij%f#?JMFG?YUdXkKW7Pe|zCJp)RQQf*KMW`DQP1NF`Pc&Lgi<%F`W zl{%1W4hKx@A!AF7av=V;b^(HX8R0ndn|)|-vcb6R4XGYZcEXzw=Ox)QT{6dsFssk! z&35R~vDc{&lxk$FOHm4#j|V&7V#dN_ybqq$wEF3`F={C=b8+Ik={@es%D$cgr}_uX zdw=Wd;Tx5nRx1L?7|^^-J~yZw2_w(}Xowdj6uD#8g+|}#K4I13SKboRDfT(^KoNO{ zO$FNI*p!a%n*p_Dhpl1F(ywx)O;!biV*G78F%q_kLtJ;w{Zn_(aSkU=(w&?l3q#}_O* zXl$E)$MB{Cz4v@QN7jRoimi3_FcuXWz@lN3uLgwd^A9kFhBjqlL}^dY7Y13UZ?*k` z9$0mK;4u*+t-fmHa_yyXihq`h$4oh&lH%*K$29ZAzi%)eQUCrs3~lxC>SgGFoY&+z zd$Ii^>w?t%?frW;Rl8)tn2U0xEN}ZRAG@#R0!}vL(qK`?mT@DdOHp73mKWcBj&ho-3{`o4e{HSyXKr$=`=2&Qd2%OS&Bq>1zR`$vmlq0P8dj5v}DB; z0ip!Ss0o0-i3h;r3+)Kp-Q9v0VVV`b} z3g3?tEQUhTjR5Z?OW-h)Q_y9Q@9ART%FPzAUqBnW*S}D+ynhJ2TRT5NYc&obUMTUoRCl~ zh(uTx+YH=LXr(+p+P5uT+8Rm)wdcb3nLQ43ps0K2?&z08?H$e& zy##q`sY%MhJ{-5(eOBzi7k>wMS#6Mwnc&hlfr1F8v<|?BQS@_%rCubAJgJNM2pwzg z>2L}`spSB!dayZYi|$Pt{-`>G&Npk?zEJ*$Bsi*(+Vj1#2%$w0#cOS zsd5aIiau+{izE1MSAXvAtO+uPi-SHP9Ts z^D13aP~%CxIr9-}ZT*gnQ$F@n3Uo7HaEzk|RLjgJdMlH0>aZ3ER@cQ34NEvJ>-&_- zRr&sWvi?nhTdvxBI}qpN7>}_GP#J&N*l~#5q>bm3^YLlec{+Y{t!tfePt$+GbyTeD z+WZ~P(&L#?hS^gmy_Cc*im<8PIic2yx}&eDYJa)BZFS4B4AE_mA|vAF^icZ)(UlYQ z2M?l6$BwyJQ1EECmcU4~FmLnK@93>2nSFilO3}4%8{L&MM2@?>)h=aA7#xcBiY*_RQwsyEa=(ls^d)-n%ycvpi}b-8X)}Z9}nhc)7C%@C~lBkCh%c z2>I0GySRn}9a#z{6%}`RF3}Y)HH)dx2HJP}U*${@K~ef%a^f-Daw(N%ev^8hOH5;X zTgL0fQTmbg5_|avYo8<g?5%$rS;vlUJ*KLoD6q7hA9U60rgYuNf5C zf^jxxhjeE~GzpESG*rST!axH$ecKqL-0H2^>u#NQ1F@P-6TBmv=6smQuDig&2CLca z+J@u)lsFi#d+HwM@<>mWUX1ejYHX?4_GGDCLyX9_QAVHE+n}h(-OjYlB46=eQR~ZD zn#|)BCYzL{oA9C7_fd;SV_t^@yzLnbGCw**CK?$GHJ6^`TdkQ+?mMNFZjYG}i=S=| zOwunI8Mk@6%Me%dk8>k~)1c=2%?+ES;1)dnObl708R$}=FQPB3N$_;Yq&UIbNhB$| zs7Udx)>WWjW6!`{cgq4w#asDl%uS~;d^=kXP@ns3~ke88JdAF+JG^Z>bboP z`Zi8T@5gQ2^>0DwItCt$O^=1Lb%>L;q$Qg2)Hr8p+f>LcAJ?sf6N>Demk0?k`m7M2 zi+K*WzGEO=Ut+h&xE=rHL`e0M(9W z$(@H6D`{%sx1>}m6<5!BKyEy2 z6f8!$WZNDvo8+ln_T9osU(95d9IJY7$#$whfhz*IZ7t_ls<~yT9i1Fs1tz7ys)2A5 zfB2K51&Jeiavi5n8QRn<O5W#h)o%VT0(NvAvZBiIVwY_r}j`hx2M3M=A4s_5+KVR96Q#QvH^D6)lH;OFS-0`#tKtEl`fTSY2JQ zwujuxb4TDXpn3%b{NM>cECMAyjEiZLR>LK#Met;JN|3mgP1!VADT_MdA-Umo=XN3d zj!nn$;_4%qSJ{EuZqI$9?*)0L^<=SDds6oc_Q#I>&Or>URGWr>rKRC?>;36&ytf0)VVx~B0-jgWAVSDoClpKRl5Ywa6%*?+n!a4Fk0X>|RknsS6uu&~ys@3vSe zx4LUtL1wd}_i9M(`u_e(lxdQW)+?gjxA8z#G;ONkkVsL!6w6yq?v0MeK=IU@29_2L zl@SQw_lZOlk5;s!V*KD6*Jt6leKHB| z>fwl2n@FWwJ~e)alkeDlwmmhPmdjV@1&>xe>`kOt%8!*3gqtQ+MCqOLk6(+d?MzOW zJbkqTsML^deqqz9`)3i5T2bKXh^*!oE(PIpIK*%_8`}MJ;@-d7j z%C1(u>i?NhdXXnGB4U}6(N9}T*=SKou*Fv*ks({VIPyt;t0`5NHBBco{P4~@mZ1hdFMJ&u-{SN^P@5t{ILYL zi~Y~lVQSt#0Te3)lau;U&nlJOUbS%q8(B?zlvGEe7^$8INP^spbh$@Eh(2f759liK zEZ@qV7b8wE+^ZraCnskC)IhrOm8$aG{NaS6_pg)shSv_?Cu9aE?W{Ehy`41Y zwRMVHl#<{%%!lYu*iob39@~LFB#PulY02%JQ|=l-tpu>YJr-uveB})O6L7nB>e7PX z@cjh{-#L*K-iw{jSl(Zw2LVaMm&jYM_YTj`$%JP78?a;|PLb1VuB>b&g#c{pUq3`Q z?9NO%HV-QQeBK<9qbsGaYOPv*`~@glo*2$p)YXU$TXyczEIi}&L03`LY!w|rF{dwt zH}$YaQ#ds<^Jaj?%p>%rf%iZIgrZJKVy4jDILRKKHiR%x_A6zLqQ5_gm~yS&*Y)xmDM99xPa*Y>%S5;OjRLoZh{leOw%gV~E&7n| z+BT8+jwDyfI2OenyN`>N+oL9no1n)*5VgpJ_b}D*PJ_hMd*1dCpToVTUjejSV|#tY zkRR_UmTlH^eGgl70BE1TK46;EbX7x#{ydG_M;))V?@D_GXWBnO74h?48>KN)pr`cX zIChbfthaY%X|7@vq5Ep>`RUTx#PH%#4+XC3gY}XTko1_IPfrr4{k5aq@Z)Q4)lJYa zFm$6`q$6KrYPfJfIA_GA2XFg@6Y%X=#6+U(_Be-6<;@z>>y{}#6 zRoWWMuR!CoV?Zify^#5JVkC-F+hm5{bIS_E9&hK$;flDMljKHchl>mSaZE%;c4ns% z-@>A-Xg8S;QQ)rZg@^~!N>qKH0E+2X2m~xw_ku*0iQ6dkK^c-_^sT${^70U5Uv_~> zTdXv~eF=t`TKJk93E+q(iQ`=r&2pD)d^d^JnsX-cfSuj~l2MciDYP@~3G4tY2}?Tq zoxc8q%C-@#!%!-b$f>EoCT>J^nu!U6Tt6Kb^f}4S#5?YZ?eIX3$vQ%jRtQf6clUFG zwuwGE=dmj9={;m_RC4kS-oe#hb)VJJm6_eFd7C!vR5X51cn1$=+WQYTwG)X zSrVJQYU|w!+)dfVqc@4feuKQxvDru&Ovq;{RAx}O0=@I;LimA#NTGB~4SL%fTk^zcOOU)&8iwt5el*!W2FlE+NS0{T**&%b?{>3EOx2Xydq>Ua|8XB2E=&U z^Tg>HxL;Y6nN7vjBc`RBp#P@%1pVpEHkhP(OO|BqDs?T>UrLpHRQqLME&`u5)^E#w zHh~2IS;Zr5`(sC2g7YKg#qX&_;9WjwUj?|7mViDwr4^4vPYO2RNeS1N_8SPWWWHmu zctb>RgUwmiWUkdryQZs~t*Ce{&#?l}xoV)sfXH;L1t7^y4 zeQ!Q}8l0=JWl)o+QMG<`!1wsjc(BNv$F%)=4??#^%hC|}l#&%?7L=MU6S$}(iR+ql zBywK8devbeBVC}3@DynRyR#7nEI}#RtOt6Hpd@)rLQa?Kbs`A|T*thnc$2Mvz@)ks z=c4p|H2J=2#o>M)1JYFkjvZptE566&muN)$T>`5uZ|x-=AEX1hGii^lMf2yKM53#H z_Rt({7@S<6 zz*<4$FJAfXvuTG|p_w^Y*8!xD@2;P(yV3PiySt9Q2rU#kfX?_Rl3iTI{^~WttU{&4L zvG&=yPO-Y8JPD3-XpWhmBpip8KFr$S#~GWD>c{2rMah>+7AYo^|3pJWW({6yinhqa z0K_Nksx!<)48$JfoC5&(jVb}9=$!`9ktDZnb)64+KX&D8*RY2l z!6~`;yVgM){k2LsMa#~*x(PzW5#98_p|HNtm1ny5dmca79(}wppmeA@_-|^@2+_YO zbh&fUa)_1MkjV}GVv=+vSWLAEl)V2)hR|CV?(hnaT&yqUy&FJ4MfO7*(oTQ%qm!&G z?e!k?0e+1VMwgZFvH6=_hDPEm#^33>^bu-dIxak-YE9?)d#-Ed@xIWA{amo*4Jd0Q zp&XJ#Qh@tNrpTP{sWV~d^1945)UdkZ2G?IS*07oSJ_Z^V+pcBLrcxF9T z=>CMj(DDbo3eU_`O_2;ce6DHuc- zg3@K)IK(ay|7-Ly$@6M0_7lI(TSynTEigwXuy1~=ApCs)!bYis270o(P$B?h-`bG@al5Ev4XAp7o68B;#s4u3y-S|sVbz>3vvw?_Yy9MdGt!?fH_ zTz-kW1dkIkepXj5=KE~6-DCq?6H8p~u5Gb9TO188UZ&3ps9NEg14cjI%XNm2;Jr56 zf>}pIM7V^X-8#g0Z$Q(-`|BU0nXz87N)jyI^U54ndy2!ynsxDZ8fi)2GZ?{R-*VeA zvavGUd~n%Amz=N$Jq#>%;L+7|=R3zy8>h6GwXf1eyw|Z^h(#}~p;W(kQ-Q7u&*AGT zI+07qibc^>laqU#O^4_RMdZ{!@jww&Iu zh&KPk{Y)XD7+boNEX$Pn2FUY*?{D8-k~#Wq7H;&$WteaI)q{XoShaAZ65OB;m%@JH zO`C91_}@W*pr#sX8E2mGh6Cv&3Q9)D_@fhUhAeS#CQ}R)nO*Gd?Y-t#P{5P%<;!aU zTvxPf;V1bThliwwaN$tmU^W2KmHZMr&wtM^njE!NB=xWlA}=Ecm#u$`|yU0Z?>NoahmIV!Svw5T$dv|dJEwIJzC5~EHAxblD}Jz zlVmmA8OXorm};jxstH7ALl@ai+7;b0Ip5v09((Zs$6XSshd?0WJX4%x?}{7Rpp(6H zhFBE%&j7nikSgCfJM#lTH@jl{mW=|1g~jKDb}dlcPEdWW4VoCU_!H7HHqf~0glCuu zg%uxda?f{u@{e~|klmdMckc!a4ry=ldJCtc!w8L3aDh5Z9Pj%+(tPq0a^2-`C>6pD zeOzlvphNWbXEFRD?~G-lPwrRfA_YqV<95T*_V&^4hL}o^XWw@=Hnxc-H9L_6XTSxY zI9^*AyL>jWe)nplEQZLy#Ji>-9L(ujx$vo3*Y{CIL1N5gAvO$qyQ$$Sks>RJtWr`^ zCU47DwzO@-?-L3=a2WzOP&Z?~zezqT)#6d@&y;Ce)YT=ij)&5rI&d0RnR>gT$7YmM z%8Xasbp6jJxWP5f;zm7{g@gpF%w}IyV9pG+R(NYhtWEBbdNs$-M1M$no|wH>gRn zqfK52pn*CdUWiO*6?R0fRUf>Z=LN7O&q6Ejq@z}qRgCENVxa?asklY3$~|X5Vp&Ea za%{v^pX2r6$Ws9i%?j>+j_;J#c)Vk~+|zx5x#@ccTDxrQ$%NSXhi_ly(tf`G4Q);S z4BH1=Yj^%bX0V7`_8}5^9JNp+-C+8dCC6akixI9w#qJ)}BOM)%^q}h$w41M=;yOPm zz6mO<6M#r0k~NWMz1J=2aBqc0%yaXtvBApllgll8H`&-iL2akJb=})-3CeAw-PM%f z)S@CjADWZ#J*qLGL6&Q7Efa@M#0CZZ_l?R;pR1Uq0{zdJz`3vS? zKC=Y2eg*E`kucL;92+@4zq@)!GzHv^X{vlHYfj!|CRr;A5>sFJ-!E?jW;vDbY224X zF0v^C%chVA+mP+_3x?@8(+wMbiHTx;AjIz|G)zMuO1xBdU}oTv$94jTS?}(o72Zl2 z`%aU9FrRlRcUdw9od}d(0q$qUVtxaSiEp}c0_e7}WCCqqrluAtBHN;}t!C;FJ=Wo1 z^@%>%)2I%+*dfx<<^N9{$AKY)!_Asp{8G!kK+elOidJnr+ZNdQm5;xb26xl{^0H|~ zm#cu12rP;WXg2I?<${JKv9_hbdDxO~4W`Mj?*LSE4o(zn;}i7W{amrVT<%aSMIO`P zO?6b~I@p_$MhFL0ct!!ewu6u$BrWf#d&7t8rN7eRru@zk@#T7N&9e*Y(SAKw1!-z` zU|1Wq`gf{zp#ZoU+Q54Gl&5|}np(s$H8xt z9FNt1pTZ8rc#){}(^}apj2)DA?JL}F_sip&nkyb~JlNXqvF%CoaCZgu(YpKFv~=XU z4*8dK}BKeVpE3NpjD1dz2l}phH0jJoQQ9 zP?L;Pi}5_I!|VA%nJBJxM3YKmWSjQXaZZU2!!Yx$(Hw7)`EHnHxMktrm>p_`�Am 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 literal 0 HcmV?d00001 diff --git a/docs/how-to-guides/data/networkx-example-2.png b/docs/how-to-guides/data/networkx-example-2.png new file mode 100644 index 0000000000000000000000000000000000000000..000630ba9a6a14aa139dbb5d683472135d9d284a GIT binary patch literal 172220 zcmafb1y~$SwkYmSfDnRPa18`^4-niTgaLvK1b2tv9$bS2_b@Oxf#6Qi86>z3?)oNs z_wN7S_xA4N>;C#oSDlhmr}}6S`A$s%7wZKU0s;cAlA^380s?9i0s@LF1{(a0G#1-0 z_yf^JQ$ZS`dhF#c{Kp4NeI+YZRRmTzjDdg{Zi9gGrwaUj0l(p>NuLqW;ZGv?{VpF7 z0U7>8{8OHf^xrj6oAQzW8%A-3mm^4N$tWqopIR2qmX;1KA01su(+1Swi1Rku`mXw_ zZ-p%!ft=<5#}AgAp1@CkP!L2th2bF3($$>C6KLS z=;;1*^sm4F8mFbF&0jq^xcqZk@CkDLDdFPbPk1j0LY75{5({)zne!ha%) za{Zb6-)Qk)g#O1{IHkq0M7jR8YT{Vgblms|2$Bd&vQpZfhzB{Sfh03jeNRTN%7x!U z6+@KMl-cM?Bf=tY4?M@c@ww}ejijC>60j88B|5O|IwXu)?mu)k_;9)$EiW!xc6Q?N zxonMO@O8HOcx+`o`7$$ba&nsTudR=c>_g`S4#I08#Ix62mH`fT(SN)MxYs}>rLk^rN9MQiG5U1)!$Fv}TziRyha9kNWceY1~3#f$B~aNFG5*sJy8?!J6Ha_!-c~J~X|w#{a}7 zfhe3pNTy;glnG6Ll9iT`W_(+6 zoWLD9!6M4f@1$}mWOn)G-?Is)4pIh}1M{36>Mulybf{}Mr3x^kp1s_R;2O6_y=EMM-GV$nEtYt-)@r(LfUoFwyt2_imq&(F`#4e zn#yx7@=JNM#HhCI)*t!IW~(FMMHQ~SST_bFC^KZhZw?cZstEhrWiSt8$&w9rfcV64G{f@SF6>UtWmA;sPx8I!n?XxN}epv zGg3`7_7=HnCZP`l)3j#jjP`|Q1AA2SR>5x%n{X;{h-iY?Wf5lSODqaE-i~;!SLA4# zQF%E>(K;F;%46iThAVHC3R5lkiSH{3M_4|U5NZm@{QE8jnG$Z+ zKuse+#}Y&xtmM%}&{-jN+l-pi!ggj5?0l}T%X#d$G0yPoBAD=M+*Nm*7v2>Up=6&x zeZ_dciDDgYWM?&f^j$Ux_avJf`l#qc@$bK%MfgD@WKC6yFi{C>Z^l%M3u+Ns7m8u4 zY7u7UGl&-s*YH5ga%D1~D0Qp$w|#}qn%I~Lk!avO(($}Fg%9mg zD9}e(cU8Qk{|67bP*xWR2q~JQ6dQFtgo3kiL#);R%~Z)HX+)9Zem@bMWS+gOS{fj6 zsmoPO{ag#Pt1q~gIO9A_8!G-OBfwOFnpKrUdvjwD~grJ$WC_F55Pcj*N?$hNT@#k1?7rYYcL;hhU@%D& ztV{x~^Ap+i+Rh;&B_%bss7(2aGL|jQp+d?f(BF$N3TKdi$)})fsrOqkcCjJNIzw`@UQ6HcTp1b@geJ?Ms^X z#eUYx+?3@I;34@velh_@WL%sshum4B+mF%a91HOK?qDT%#j{}g%+0oYcakQz_aF?C z<|e?r0I*^dzwaKsDh7uFAog7ZX=m3 zFDnhIk+(;)^s)`Q^kynq%zQ5xxspsmeYs+;Et?;~5y|kCRF*d`sx)XfY*~WNxPF{z zX-tv`@L$PUC;dB>?9~x&2dCA=S&|>qKaMdvcK9ZVcsL08AEX&t`2N`RXDSmqH+2tNX$55eXG#69eiK@UY}DRq4goFcwgcA5@tP2DUfR zYj5CbC=FRzQScZAy+{;sinH7fJ%Fu^YN;;mHo_`+{xFDbzumV>IVXt0mR&$B^22WQj zr(dvE3;W}EE|A>W(e-xjR-UkON7AT;`DJ=xFJm%G{-zQLC3Oj!1pq@~NURCCo=0Lf zD|I1C&y7K@WjN&bA#byUbxi$kNNnay6Q6OJiYoA~DJ8>|r{mKAQ{Er$n?osI?4h{`F6@gk>U^gSV5T^?(luZ&p=Sp(+~lJoykAOY+_-QKEko+rgmis5RMqs|dbhbBHtZklx;ZLBz zjW*2{sgZzVYJ>GSd0rizT-5XNx|s^y!Lb~XVq@^BW~bBx!{v+GD#KQ*Dx2!9nb)JJ zNT!>&`!$^#y(jCMn?r2H4(;BE?cI9S`m|Ysz*)WS(_tMw6GoDYd+FC_OJ+1Ke$#!b zedWc@DMQX~RfY}^A^pD(mwcd^^Bus7XRO+aSkKsLJe7~g72NWQGkF3w1_;XvmbX^J zZXeff;QHJp|9#|7MdZ1Ls1(0jlT(2_9rRg9|4MonIaK zOM#^J%==}OK}aO!AKc>Pj1Ds`sO@|De*H`x@H2f8nD6J5uLuB$R4KGYE`lBp2Piea zy2)_?>m%UWmKcU)LY%I-h(OmBVx?k29ZY5Z@_?cj7KyI=g8J~Xcu$e`V&;;hZtn=k z$wYx`;s{H$7Mt_Yv`NkVXwi~Y;&>v&-@|sHJjLt62?7E-Ki+!{CNsxZh>N!7dF`=e zh`FSCQBFBX3S2jEiE_oC?tc@7=bE{gmfpaN**sl?e#mC zffOhw>Jrqi^o*Ut;01V8Z)oBrZqq9@5tqo*Ox!aDzkp%xl&w-0edoKubEDalosJR> zi$ykC+zeAnogc=fS|0b?0`y58{O5?3WOBARVze(JPSGPS?#XoWtRj5 zG>_9eSQ^8()W2k4vnyto6=3;Cn7{f&oQ3XreS!bJ6Fpq(xFsspZU20KSDaR)xv4CU z59n`U)qjQDM}5A4?VyPHN4@ZOa4i12F>BL<=Vi0PCxIS6^HW<}x6 z{Q7pzY_pi`iNo*iD%t0-b=-$hqL_z=r%xCO`B|4TUDevp?Yy+Q&e%jHt&-!0vp_5( zg16V>W?dE(x(v&_AU~ML>OJPoSst!tyCiv;R&!g8?Ke?*R0o_7&ogoCk~&{gkO%2K zM}AQI!2QAzc}mjtAuX!Y<>_9F=GuK{UZeVzp4#z-*U-k`X?N?<;Ls-9M%Ga$U;pX7 z^=e7pVD3`u#q~^)S9EG0#OI_yPF~ypa@QJQwPDZK^?BPLzf}GD(eEzi+N8oADE9a= zIU~4oYfeY|@wU}*$z96*JfsD`*EeDTSkr0RxmE}`EgF<>K3oJxzt!o6?kah1jgWgC zKcdGxk4xNkY(9}^(I^OIH))Zz8ck>6db*P!BBNmTfG%j2&owJkd3}!;+VWWOwUd2R zGZCifZj%m+a_}QB3JF_n#6*q@^dKCr)NC}LcadoVM#-qo@xQP4W z1ua#xUMCB??WG^B$a!0w-SdsN%xq%)O{J6^W2_BW@ejHZD6rTb6Cy(y&qk?7K*S;1 zb<9_6i);h#>rQKx$bBT;5pE?w`NI^2GCFO#c0}}s`x5CQd=1g1M+Z9Uk?hS28i&Qp zU%_;YMkr20j};6UkUG;|7>bmLrxS%ZD>?D=kB18-xdP~S?-~fqjaJ!c0xwz~@Yd;3 zXl}+6ZzW_JGL^1M6h_k+5I{|?`vRL-%%+Z{w*9-f2_4pxEjHJ#U* zru%mi4fu~u)TjK0EhcS7))^4U*+&%20NSw z(Gdh`z2e5lco&E${Xe`SLh%UpPfV)WuPpdkcF%XGou82LF%D4w)Gi+i1Z1v)v;q|Aug_r>XV!cx7is&X_N=S1Qy#%%{O-TwBkIKarx=`$7Ws(j%B(-ooRu2=WN@j2h?D`ZG`+WuZb(DoUNj9UkA+{dR2AvhrzvXR?gw z%Gc#30bO>p!+H`gEw$p=%_CGce!^B;#Pmy;DTX9b;?CmM)vcvsqVf@C-(}SQj(r<%gNdelxro6=Y z&~B!?_GO8z^UNhzq5A&(=CMa zGazLVurqgZ86ti}i^O;Inlh#Gq)j;q?Z7l*&;raoZsagjm^=*(R2Qki5>-iKPpL8j z%@;77{qFJS3277Z^G??OfQSi@LAvE2c&GhY($BEuJ#Sk(?HfWDwXwa`q({21)Q`3d zOIFFgIUgLS3_DbGYfOQ>UwG10_XU7$x(CG|iimcftIW6dY^Kb1+uqEUb(I(E-OT_kYcL^niE$=(O&i2OLO1reg(RL;$$;8$Rre3~J8q*p;69N%;dk^5_-I1FW7*f^LGL(%i zQ25faHvNwt_pfW?CDP9ejuEyYlix4WU(RJum#Fd$z7PsW8vlY)Pll+UxT^ZQx%rLP ziNq7$N8-%(G0yFCT@pCAa|nO1L1{4$L&%Y#{NWwTyd>h0f(1ptaPzL96577gVs<#n z?3@-Yj*P{fL;U?iCqFJ3BXSZ<`HpuiVnxj;356Eo&~z5+eMc|YdL@QDE9`pk{ytsd zo)@}5{aeiEa^T+UET+He;_>u=w4PeSdUhnkdF>jLFX_O9_3;^}@w^TRa(|UUgQ2PC ziCl(&TV|KtWxBWLT$P?)!UJXvbTmt#Z2agMWvN4ol_Y7RI}9=$3tI#))?&BLV41`9 z&U&XFG?t3O>9vlz!vt^22IArhQqeb=b-iPu8QrY9IR+!{VA{xyA<1At+ zMEb5V(pXKD{rrx;w7BiJ%qT^tlxck%nEI&#sPG4;YEp#nJGOPR@%dDqSo9AD-<+Wu zbY8wZ2xJ7|ZRetlq(xhsPwdm`hT(lz;KjEdixM+@6o&eaO+d$a(~UEh1W`o!s&i_xL}vc)%nB2>@Di! z-#s=7>lidDkUnwMU)MV!_#^rI@LiKwXN$gfVX*B3~dAquj}UKpf|zj8OqpFXm#h(z9f6g#lHoU_D$S{fGZ zBx7Jl3)GZa&!K%aUP81Wphd5)X>~ctliG(%oT4|MdagKCg5G84m&F<(-t6FPmPqy?Zws1wpuA z<;r`sfzo{BHkkH4qUWjFy+wiOWljGkBjqY?l73Jys%q*hG%4SU&YHmoeDNJ&cC>7t zognnl)zn&X{mw^6@@jV!+!q29?rBP}MK|NM%N>o*7oGJI{!dGmr%%0;%(2Z67kXxc z{d-5zG3wV5T!zhx?~Vi;ZLZx$965u0a=nuasrR2u9dAvP#<#m3AGU06Jt-v*OUxxG z>=5@yx#iXxqZi>;4w~OD;0vcaazbO2S_{xBRf?MX23wR{=3pf+q1&WLkuYE;xpDLoS)_XyV)jxja{~XG z(Xiqf&ivrN)a!o$W+(~z!6%lNuq9@=7b?{zb6}&5?6Q%1SP5<@eMTS}KJ2^_?+z&? z{Nm)VLK7B0kGa1)Dbt^`F@dKhFtrlcC7DZaIT*H)N6ywK7?YC zZP+_nLHUx8qsx89d?1Y5_gpu$08B0N;>Bv0`P9AUJ(PSC%dT$bt-iD z&SD-*LT@$cbG^674GKxAAHU&6f@spr{KFQu2MC`&G?zWwkT~v_UqxIkce8uAwD{30 z@zzB2d0>+ulKAT1ot210#|j8nU4lE1<_Pj>>+6akAY5T1S442+yYf1wU1)YH{G~@R z#?|>a^hOBqp3Jk9pD6*n=AMluNyhI&LCo6>b1svARBr$+CO@wMR#}NPS-5!}1dJea0&>Ja^y$b} zG4A^`a|d)O-HYEn;lH$esCOrdtS28R{Vkb6>pND*=cKnU!YG4_%3IWFNKL(NmxG}53 zAm%M(ds4wukt+ufhlJ)94d?nX#Bo6Bi(S%$HV$ao<}Nf4DefmksBdre!Z9 z`z^*X!r<4pm?tYyVeTag-??BSuH5~Y*w}pd__gtTXVbH)yKUv(nCmZ1udg~sy}nZF zH@K>7)b|YwwN>C#RyWg0oy)A$ahbYM@ZAcgElDfiC7WDfV^8Lx=iH+*Y%hilEB*BS z`Ji*wQYGKb>umX`nZ)+%37cytq;cbTF(FO5P3}Eka=^u@WFHt?-ZY$X6wMF0yCX-V zOw&>e72iiRpb6ID85k0-e7w~^Zfw*WTt*f1CL$0w|JdX zk#=ujIJ&~afaK~34rt?I4>9Z-tuzdNeuAC}VCs?U+~WuvrLIn*FR2Qrv$NML+7q+v zz~ri`;KUrk_7x*ov}G~BOKXvufDgp#lSRkTc=ScEG1fFYEOZ3+TyG0Bx{8M%oieQ{ zxdeCTHpdZXr2regKa3`)wUPs@AGAZ>X%&6cNN&V2!jCWz;7%watZ?i!;bgG#Sp=r{ zG`!Gg@)ui|!#!D0du?lK34$$da&ijEQENAsTd8W*z+GKRx!yY9`lto8Ac{Ihr-@+! zASBamTf*yXi>HDBn3HHEXIFA12-2z4pNv>1aqV#ai4}A#c%NoA(v>;ye`y?C!vIjN z+uqHDP03d?Q7eq|H#GiKw+(DPiwm5o=CM3d9IgZ$hK>9#_tQIzc5iigD#Z`n=lXiX z;5M9qO5;pRKUROP+muiH@7I|4oIJH-ag-u$R1PJn>q;%Le_{S4lSXFD zb^$%HO3SxhJzTQJ*>^pnqN3&cWpo0AfBXSkxlgMF{Wp|Ru-GgCo|$9H^>d=8JI!+t z!<)a@B}gR?p;9za7R_f+m7<*)RArFD{l+`?#cNJK8c`Xd0W_4`E130xM){|n{GZy&|lMrY%Ko2xRs)8^*1+r5Lb_PLc9bZ6|dz*W+r2B!DA ztA1j(2S#m5KV-O?>zjIdI5~TwMcDb}@suzlHQ~N%zIs3P=Ygkdmm!H1qH$k3Ds&0< z+~!QSB%kXO1qCgv)-6@b`0&kJe35y>OLCsqXh+1G9q{6`5IS?F)`V$L5b;2j0r@s@ z60f3-dV5G4RQwVvAz~WYjvW!u4p>aeI$V|EbW#5$Q|Qx{1qD z<2TRF@Mc(*gJIg&_#@osG^1JkDXm8bjE?6=Tr2(;jU$oS7I-8FLi)qul6hK&R}vN9 z!>L>00bD{?dvh=@n(9LQS|%lj z_wTgYE&>nMsg{T;owI?f-Pr5_$2Y0EK2+Njc%G6LKTn#LeWyjk+z+Ey?Cx`ErtiRH zxgHKf6PsBM9Sd!jVMpc6RDSG{U19;tzPpQ?OyDyR1XX|)!`O9RkmvDg&(7hliy5}$ zvCM-!|HH0Bso>gPy}Sc!Jwhj-s$Q=8=IQo=Z}=Dl*YzEt9c-&1__H}8aF4&Icab{v znH7$#KaMjTb_H@d(`cZi?~=X4R&PSZ%&4SS~Ld52zuPzq0;NIXkk30Yl=g zt$ObIu+;5Q`rV52M^tY{ce{1<02N28bQ3Chc&fuMhfupdX0%|fmF0v`#3iCxVsFxd z$bbveRwd8{^;a=BJZ>*18l@{lrgfcFUS?7Nm!{ch6bmlJ>m=Kmii{veGv8eaD@jHB z)&@PUJoF&Aaj>apMhH;$j*d!U^f{$}NVXLf5Ma8} zqT0o7>SJ%GpqVczW%R}Ttmc<3>e`~o6_j3G{NaliLQqKj3m#2VuifJOam3t>2qaXj zbT74gX6Z0XfLecVtM#6D{i`Yi2s}VQhQoccEkOZTFY|L|-D)#>?P=c=g+dM?0I6(o zZh)2`%Cef9SZNOd>7bX0y{A%>d~W?O zD;*AO;2`DsiBB+Cuil=ZwLkT?zhUQgdT6(Dlb#i@mwD&go=@riNhva+}-b%^*@B_cqocUF5ztW!UNo|3o*V$M|Fn za7pf`(HufD_R2Fb(C{6s^5u2w;5;eGcP_YXLq|0H9VR~Qqqv!>H_$OF2awJRl5Yml z3CaQ;ho44nj37IjLfTx>%t0CpWH{Lt-{7SqbIE5n+W;O-uneS*!+ZAu+M zk5V0)(vKvs?|QrkGi+kLYaXv&+sw9QSOws7f z9;jf7rdlz7j*qZTEPAzuJ$1ggZ?7{3Ho)je9}JHw150Tix@_P zY|$_Jv=%*8=3;Hs`^P$GB7Ea^`elE>(@1#2Q`J)?J<;zEcRVC7M#=8~PNV`#Z_m`I zQGx3-b4=u!0k%fK7cJ)wCjHuKO{f_AO_T+9UzvB}thX*7h>wz@IEZA&>#J(MR5#=$ zC;`QFf*`G>ei}QMT-B&MhUEe)&ihrY3GH?$4ELJi&}~Bc#cSK|UeTmT61!3>e#~MH zoujIvcRowP-CCRh87m!&7dp$8axN~S5!%PUL8glX`MJWDTPl~J|I&bd6SC?ekenx8IKXr)SBwp=2D)LMTaRTY zCeq8N_xOl}=lS1jEc@O8^{%+nG3^PD4UGqr7)>^XfV8p!(JtX~irU68vOk&U4X-WU zDK<3hKjW++U$oo=oC^t2P*|34YwZ)+WAl3!H2{B&k`y=wraKaCr*3e_ynZV^_+1Ir=M@;X$ervY$V*}^hX*doxR=_X} zHxpGft+0GBMrRtbeJz3=uVqw>KIWQee7LvAql0O|Yt8_o1HU zUxMT%(>v)EY2WQ7#M4<3$1I*~wU-jrAq9FPla9Zvj?}-jcRs`9*TapvvQ1lK&ibU5 z!R)}bKcNzj_T8L3~STC#;5E z;YHq(QLD$5&#SiCcy>9@zU5zK4Wh@Z$b0)n@{fi$X^R#y+%;z&I(fCeH>Wp1=K0ti zY7~z)(mxRd=l&dz7vqq@WTwm*t?w2<-TTG`DGn@oJZf6%j;jv)#aa#J6i&;wa-L>} z4|;3)F=GOzM{{QA-=XD~II$=hnPveuDTFh*{+Hy|jr<0m!>{g+I`$hmEWGj!N+>Us z#M|Rptd*2sQZr4w-^#rO?9olFzf5{5 z8co)9CJayJsq0bd@pRCiDjG>e(|zS7?NY|5^l>$Wu@H^w_Sq~VjTTYu zW8I|$%YsDVWssh^Gjc(rMECLn70OwZw+rDbnt6zn6Y@+W#9S*l@_%M(H6Qj;3|(?q z68%>IbKp5r2E7BmP<;IyKYA3loy;29FxeY1!R^>k!W3Fg{0Vjd zK%6e*G*RL1IsP8Onfd(U^0w#gB}kkxysE19_-zs3T z)_o*9@;=FyobW4h=caPD`Y9(8+Ck5&*Ip~dA3&qapp4b@6+W3FX|@{G`^jt4$Vl9@ z^yfKiL|b(&R8?9fU&mDz`gGb4x7m#$j@gy_60;akH4PD2Ifn>{s`XX!hpJ?orZrJX zCXRI-pSH_9LiL=J2DE)tfaKO-vI5o7St*T+S8q*WFx5RC@L;Jy0jnInhD#-gEHA(` z;Y8GC@0o>)v#}Xj$V308?M(s+67oE3sa0?2W1r|76yob_?gW6YQ26`XYz;T=(v6Jt zS3+bSwE0i&%6BMvur_lrLx6s+wimGE{2Chnm)!Z60D=R~yg?H<5;s3ZWJybxexRzp z=*(Y$953~?ZRxNaDJRbn@q!Xx!7{oj%PtvAKS1zhUfYQ*0vzalAVRObTeRN&5Xh{W zIU+4vYN{AqlV@tm`9Yi(FIRoyd|qi5icYc1VLzVDBeV4&GzZY>NyZ80M7bDPXc(=Z zCKDmx0a#gZY%(gf9-(s`%tv8N;_ffZI;rTD*o68uKAnU2!uj5Oh@!fY~+mH%`plHf; zVL`vv(b{S_OZhdQ{7kqFOvhy-0syt<)x^|6|4PdKp8yMOLf!7?Gky!7vE^QSAi#bf zz}w_z+G?nLn^&uTqf4i^0|*6j)Vs`7s4`tu&dGrkn10O!2)3PbDSQL*`G^>X0iTe$ zT3(#!e-yt9_|VXp2#=h3oKtUUBv+(%>8<#)`BC}2P31J9t7$t=!l4k>KHbfCKwb_| zr}Ew~H;Q#3QY1mdfDTl1KF?J^_lr@~Ar<89I@@`lg8JjkHtQKk>!SOU^Z{RZH+gy^fOQs*J{?QII}uH590>ILQSIAF<@0Ll@fQ~gC_ z_~x})0A^cb>EN!!@}hfi8fWdG_?UmICQJ$A>py0x}Mb6CNT;G748Fk8~?r zg&l}b^b;)}quNQ?v#6m) zZR{i=ct$!QsL>{?JLk>HbV;@GHM3d+sOPnhR=hp)xwKxCU}XyHbDg^j?QxjrLiNI8 zEpy%4WwpPA(vAPsw{n<@-!`3G^tU^ft(nSC@?(q$JTH)5hwd7m5VE@VW1;25XjCM< z!6~h9@pYp)UP8Ee(Xm)dDRt@b=5od|Y7sN$zfMm4zaKe(Ku}Br<8CK=_h$y>_Qo9I z`=&ao5?f8%0%^8M{*h?ndJyIG*B-{rAA{5IbkZtQ$fVVwF&=&^jokj6k}Cd4N6Ot& zS%H3~8c*bz{=!m#VmZVT8Sa*~k?D$nvg-D5iF6vKbXB8heT`_tOg4;rHdU6Nahfh% zO7ZpX-Mm`Xcwp84JE}i#Bn=4$o;$VXVL=9<@?91p!gRZ$jTsOU9jLAt0I=rK_ur7Z`w;=GaQ0wJg1nk(@(vW0ecQL9lwYGO>OWi(`qm zX}v&Z19~IMq$MKC&g7Jv0FFI?hpJz^$f~#SUZ{}n^m#k$o<6uLPwG*bozd_^MU@nu z$NKN5`j7WTp^~@J5FnH1IU5f)uRJOYTOh;;_3%4J{0Qt#lRa#QVPTQ*HyK~^@bbkc z!}G2g`LK?w%n={}2v3K$-*6V1Kk}J#|7WHl1HpWwOH;Ox-{&`?7zdD6Gq~>eTO-rI zLLvTTN(ee07_V#mXIL=y-zNMUrJ#UwV2rYrfr*K!Cw>$eek6f`@zd6b!9sCo@&XGU zr6_~Kqfk;#OLjrWx5V;;^?7)jt~*0D>$`kndill+PZBVtoV!-k7RhTDAFU!#3GUvL z`Pa!soKz=-?Jqk9N%~ZdTP(r_<2js1b4GaQPw))@>q-U-1jAfQ*|mnWyBlJ z=+|SWb*{zsOZ7VFPdF(rURS6zzR+RxID|@lO&6or{7_)A(H9qFKs6sAsr%F@ZwRts z@j6AB^M99vQ80DA!lYOwtfvw^I~r1&bITgN#g%HI5I<^lSoGPz+9QEkEtP%mNEc+2vhsc}Fog4O(Ci?kY4z@G~44+sqZvMdIY3!e9BZWmo1eZI|}6+tW9V>T#q#n07Bt; zPwvia>SIF^;ZKR?GX9DEdH&i_&p48@O$^fDr)WaDR_x}6`z|OnYw9R9->;MASAxzbzTy3z^M@BP z7odzj;(JxrWt?o#mfT?vi1#Pz-6ywyegV=*gK{7qL$_`efX&m+w%qwl9Xr=M?}Zkx ztT~ua)$vtbzyNdry!D|-`seA^x3zG`a79;ss*kt$pG@C4CfaNK{$<8)+AP~~XPbcY zXcfV3)Mos_VtTA)XvN885#-o;ttPM^o7Xf@LuPJS^C}ClSRs7@|F|2s8aIEE>U$J6 z^`{V$|3s{x{~mEpfPM9h;@l0m z4F6tNEk`tkQw-AS*y($A)8ydDvOOEh0u2GAVCYGSI4+AWJa#b0YFlzqN6%FPxh~%Q zTEn8INHVZbYB-7akzB=d8is=0T&un1K4S2Kr^T^A<;>gkX*+f6Z_zwT$LjpQucSE} zboNg_2HGdW_X&iki~5TW8{F~q2^$mFE#UAvEo#~8Z1cj)!O7{Ca=k9Tfj87(yreeh zQfcr~@-AOJXb)x4|6s?-pw&Ca6nc}BGrr#&vx}EW+i`4^*kNZ)gxVk7iDmIC03M8ykw=!u@Pbb+u z$AMq2`26h2;HN{x#z1{bb)-+K;F#rZf#p=2r4|Hb`>(CCn%p%=%*^P#m7Tv*i{rYq z0b5);TMb(5x+v(hlN-N;pHLGDLI~a5s>%ebkqFQuOWYfia_DDoTnSDbrB@{OqB?fE zcp5#w5*d>%+lMq>KxZn^UE;T4&&T?ZE*2n<#TTZFdb%F@mq}+blbuM_ zc(t-!9>?dfpP6qRJ|bdjMU0(<;ol{l6E@M7(px}S9D2TO$UbptAH*foJ>(uQm^r}J zg8>7S@|jYm{n`5}gG!?q0_$ZOjyZ4*Z5edbk=7}sWJNf_dWW`LRF1pSxk9rl*$)Y^VFVSaX-vP z(s^a7Uj>ADX~v7+MK9y8SPS&*(N%@Z|-S{^eT-f8#}k9^T$yo0#q*e#A~1OZ^-S+ z^Nd1z$EkooNWDoahXIoa2=---F?v|%wVmR+)f^^@^?l`UYlppFn_Ipn=|i6#)9(FX zzLL?TaO!}83fz$bRF#b(TOAY-1BP+Jny*vhp6a|n$~iS42=XdDeF3)r8Q-sKJfNzj z@qjb?FT*cT9VvDO5BPPlb*Al>6>MBH=qH!I&jd(a!~F?AZL0iLI;_a5sv?O$Z2y`5 zAmuM%IW9Ijm@sI1BTo4n)v{FBSE()xECQ(~YXtN=fVqMH-|Dl6Z^>5&`01 zbhOjGMavjg|-`^sf4)tomo(6i9bp9fNADr|$_@}0Ft zu2{|!({?<0*Z$JMR>Ocu_+Az6=VCyRmeym*Uyscv(+Syybg%^9WqRZ8DNmEC*0y4{ zm9@B!3JaC`^^1LIN4tn|D_M#Y%nq0neA@=={CyP5dlS!cdeE6CFykc3F#G%K65b4T zJ}Q43C@6~&kiWjLZnYuGPmiBU+ds4qiDu>J*99sUybj?p+$Li%76aGi-j(<5PBkJ` zQItkd?z;)kJn;!F95uKKaZ)hCIo=@0Nj2B5g7ym#cKNZ({V;0hi$u7k`fXkaz1N5yDy@7U~$Ge+k zlrKyYjKjpArxS3EOSaiBfWi*mQKZ@=Tc^V=sb97x-jb{}A5-RuTYg*G5C~s+52u~Z z^YKmAerg*)N1E2}MLkKt&!2L4YA|1&!KqEpMG5cgkBv)j=meLhGSUU+CDqiltiv&y(<%=^9?**qBdN!xJ|^UoL*@QP?VXF&+>eA8u(}|{k{)^ zwRF@xbD&kPt>p51``#D0GO@g`|#~`+jrVU3kX@BFJoTYRT-GY)oN>9+Bv6w zp%mZX{cBzoauP0$k&AczAjj=y^WGkEPY=GoOkWy;pv8;5bU;ufF%!6YSo8|hbt%-Y zolqj4H^WoxsKtc)5IvO9dexhh^i|{jOp?OmMXfeG5)GaW#t4hZ=IM{&nQFWnb&faP zm+_=11FjkV@mM8%L8uJ-RHI!j{lkyJKkd_#_VmpumS=oM6_$oAI6+one;M;$zNj`$DF2|bSiF#Zs5e{@vT6yWQo=G$Z+s-0=0 zJ;6%5!!os(>I56KYU)|MOKl6cJIV1Fhb3^4KPHO6hyE+zxNCUsQE@NG{XKHO44o0K z-x*1Nj~|67IFTj{W6Kj%6_Z_(*PH{O8H^F-Sn0=_VF&KFQs(ab%&CySZS&5qaVuoV zh0OX;obf$KoGfWL{5gZ8f$~A;qkJkyy>q-BDIb!$(@FTV&Fex7E z2NxMTzEa#?af;Djx`-hWWb&S`G^P2PdD06hMM*LcFI|FmaOxmNy06FZ@7BIX;Ti|7ea1C~y=nU;Xb9HsaONEYGy-K*dRSkAD`@|AmMV}8$+LlAj+R+H zo7bY-v#en5@UbTAn1IUBqJWYCv|9CcJZOV#%;;lvcMZ5YF;2`S!+52m%2Z1(U69Rb zgqT@v!19)qnODPU6i^+z_}#TN{&-d}HBnNH_LEdY9@*Xz9TUUu>N0}T`^J5yc@sJz z97GWr9D&F?-8S-|Cbf3d!&ZkGpY^0$CLSiJ%zTri(@IRxOF~bVXM_5=gd<{9mu1zC z{PbEBezuiY)6D^k^)?kYc%4^Zm(5w9d)BQ-EKCK;mhW@2Inf=eqs z;SbhFNqXmsd7BeIxqP1%63u3v zJ(VZerZ#UfPQ0+}$wDUK({QfyBTmqb-?H|%RG$dd(6gC5J^f7_YGLU^zhl#eng+2p zO&k%T?|;j240?~b`c*7R^;-q5X>2AL?5tLTsu#V*LAabeuUY=bMRM#r%AHZP>V-)( zb_|91>rv9Iedny_)A}%C{~4f}|7|1qFqqQVz2ng>hk;CyCKh9r%KPXLC5LE`=bBPx zwvjRq%K+N!L0L$?An++Z=AjMFc}@~>J`g`)&kb;cwW`T4{4I_N$t%yxbVZ!{pvO%u zCyJ|~hzh$IeuEh^-_v5k?pW?B$7g%fCmZowTQ$ybJ^k}PPU zdDbjHt)0EV3<@t}3z+D#d+sI*EW6hJhlEuzML*y?yFyjQc*BD}3aWmZJf}{%oGYFr zCX21dKkwOb5*Bhy_s$j4A7g$beDiG@zOSG-oyn`_0UdEWZ-ihZDBKd6uaeH6q*x~1 zqEA@+EwGvB>bTOfzW~%FTmLc1lz%Tx)U}R4YgH?N{TB}<=!UnIgO7y6Ig^v2MIo-! z^jndck^@_++RZv*pO%JOs|}aPV_|`pZL+b$0TmhUhYs^$AEj%9ysu))Z7L!5fCrOy zgE!r4zhP8)dTWKb>`^&l{8iwYEt8(GAJX1$b06l)`~2MYrzM)I}eZDGuGorr4cU?TGJ0NwBd+puD)A%hGVeeUv2~>cNaO2e-4T z^WDFf&%lgL8W&urRWFbhXA|z_N(>v9ET3pD*P5V@Va#S$U)@AySwvNJ`bSUoZrM#U z#mUWW0^?1%8=&V>DwvedH)@TA7$t^@f3*;u*UXni2{@;`T8kR;XC+9vYbnKZKwj3? zOy^|wWiF0$zfZ&eV2Wu2CZobdoix;R_aJvkhM$wBRh_v4KTsbIqOfEKnW94vU%J;9cAvV2wc;w-5(roKhs zpl{&z%w2glzbYaUnj{&0Av-79es`Jss0<7!EJ{3d@k?dD^Hn(zt~hR{vdY|^ zQQhk#39&&34r)8bOoC&Nudsf$MD)%3+xKAUuD}U97n-{nl2BSz=F^c00st6_>P|Ke zN4fu!PZW6Dm`Y2zRip&`;U1ew^lh=ys}29?2MYwK z_hoOsqP@xj12yR@TCZE##I~Oe6%u5$l&#~fbfCi`f{1-~yi7N~LpRW@-&q!BTX@vs z@^e%W3-;quOqgVamOHWLmDSs~l^;%B`J>%W#dgZdZTFQIZsl=;UF@%*q~p9l+!3eW zOT{kQAk;30eV6an5Rd(3uvOPS59xs%Pfwu&&xMjiF1%3+*_`iA#UH&plZaxnp-Mt~ zoJl0e${F)rFE2g@UWvfL8~zr_6U7Ab^1bu9gwQ)-?YH9}+{PP!^U9whv~`{OPAgoM zr>CsSUnj(M=N?rl?Z)^LSG;FUpft7dM+`MG^5M$7J}r#H$W&ASt8Ftmg%)vV&HJFI zxY<(oIc1Gh6zHjNjnFjp&OFPv2gylKL#1#_4nDpAOz@F>8GFDgIE^(>h?3X5nF?Yy z+Pqd=MxP|;QP-?Zql?qo))5xj_^AbF+=7Om)c5ta8d8crhDF7}+-bgY65$fGVRY(t&z7(nrbwQgItiZ~v01ZJw0a)~jmlh9`O0=C zmIXLH18-LbG{1PryO9>qLeHR%LKWQ_Xoe?z8?c{A^eTEZCVLuo%e*7y0cKAW3 z02W8#RuykkVZIrBrj(wtAVYj+J8c*F(#h`QnT)#=cVaz#SAQ*woFfSbg#%Hb*C)Wq zNcL3okMcQPsInE0YB;SEdutbrrnrZ5DxR&2wwC6#{M07fFO=o_d@b*89_gPXL1MS~ z|FB!pe9SRV#tI&U+sHK@r*V;XoI^R3@U7w>x9R2Euh@XWi^OsfuPu=46j8iRlN@ZN zrGgLF#=y*nqd(okZvPzo>c=;OuH`}c`_NVq2-z9}C=cy&8g(_$8YA~GgDm0 zrP-uO$OhztLOVdP<1wzhRp*@G$KzIY6s^RV~!+8%Q>F)(kpMH zYXXXL6-b%8h-NQ8iw2*hiq1}THPqRxai|Tro2fKYrT!A!C}6NR9JUeoWZFn^jIJSF zsk@al0h^wXdGWEzYsNHKo!OzLA^y05*wJ_WrNU+_Pdp_x@{MSmwt)P`aqSX=odo#uGg)V}DuRe>d&SeyghpES5pG(I z2)TlboN}(A^}YCFeZ0*c4NCbNDa8~U?u>%`Od~6I4=9;~(W?#(v4_KOaInRB!C0mY z`_H%9erZlq5B}G?t>D7&wqq<5fR{?0h%$=pw7>oMb3o#J%7Fi?Ya2LI;`9e~5#|AT zuOaKU(tG=mJ5I+qdV@n?uY&3K2zNc5V;esB!9{i43_3C-@FN>IY3o>&u!VL)at8Aa zzu1?UuSk8-{tCXQ=^3c)Z**YEY(X3J<$BJ3WwVFzjhA49?Y*EDW*-NKbfRmt_ zT92iPD*-IZOALHA;W&kr9>_J9PghgYbYg!%614U7t$P(Y3CX65eQ%XWdJ}@lQvcKv z%91Zsr1U2(O(X{R!67T{AILd5_U5*=rWFv`hwIVP=f;P8{oPG6208hH54!+c=? zthZqo1z^r=IWu1X{_Gc=auKx|(0)^XW#5&4zqn)AMDIu2;~0;>#7>V&o&?+@f_i8wA{pDogfA_iKAqGIyl>d3dp#KAn zWyXJh;nzEkT)?2H9;E6{m6w+bC)@$j(rBn#O*=pl1<<#>zws6Vp5<&=9}xL_2maNu z1g-#kc0JMMr-tlCUg>p}=`fLW6Tx?Es&5Q{L+*I-HxQDEa2gKIvER#LKrTGuT?w*IDDFDppg%342qc zu}}jX)d9plAogyv+s6xE1uLq5I%gz5H^ek|7v|upRpr|6lU7qaKczy_tq^z}IxTqQ zzje<7$P9US^y^vuf4w+B`${qXDYao5Raw~)Nq+Y1 zcijfY5_y7cfTbu>Z-N7j)in-z2#X>9Gv@c^M*Bu+X0Per->Uz4;iL|k<^(fy_U@%- z33hMP70Z;PqvwFP0MPn>OsQ~J*a8vTUxe-7*AH zCc>o*3=C@4_(cCnC?fX&>FoE&5FSXx_P*<0KYN2>`_xMU=7jZ+8;Kbi=J%w*sEnZV zhxM-O(bfWA6eH57W1PRY?U3%avw)L!?-!@sX0BI_?$-0)SY(e+FrI`K4COAg$Zfe5 z3Iedpt6kf*l9|SwH=CAUE7LibQ?VT}11K~sl7|~=b_9gKJ9~uxW(EJ8{E1YlykK@s3&NJ8V58pwel1eXa!q9b2xn`@;(JZR8mQm=-n?%&kwviBjS@^sKw>R_uMEH#q*IGX5r%0Y$R(8tsr~|H!aVYs+I&nBBU4pngsD zv|auOC&9>oup)aihihx|E*`aryL?vG6djZC?Y9sB8g}2zwd@mPxgaGaWxP$!6}y3k z6&{17evTEhYkqmzrGQs)0f$c4X$soSaL|Z2cOEXclK!?Icm+Il!`Jq)DaLs2!UWjv-GcNooJwiD``^;;6FGmZ5xi}f_2 zb*s$6KBvwqQjx{|J99086{bkS9qRr4bg#`QAi=JC*6%8dA%?0k8nrdmF3wf_ z2oE5mji3=_wnLocDQ8F+z9*vNf=#=oobMp%9GBDFm`T*QIWZ@;Y&YxHxC&ktM5jJ= zXf58mIvMa=$W1WfC1RcuwEyikKNrm$Sy022`||DkW?body)f&LXGa$EpTYuY%lr89 zRFl4IVM`NI7*Z&L#AfOkQJzwHd93Nu~-RDZoEjR#}; z(V|B$^phE6-gkD#v4dPiZS`$!C#w{gl@saxE>H4fxxq7HOxplZMnl6H6%~cKMxH9_ z-Am^_hf$zinhsI)J^p_41R!ryru#s~zVukqc_lJal7LE(zrhx4Z;MSUl37aUy&Z5O zhB*DnK2c^I*l=-(zNTT+7PTBm7eLBsU6vTuhh~U8o&Wxh?>zw(vr;_A6J(pm_q{h4 zw{Zl6%~F5T~;B6 z-6m(_c<_3tW^D>+p|cBn`;ShVW+%I>L-@{)RnYUR5oJ_huN3F zxv5@}%Yd@!8i;<(AVIn3)=cA)G)}+e%C}D?o;rzwkmQLg;Jr-%IQnkW`t~LZC`p{I zFfw*{9S%S&OMYt+nNbFCFhUu7C@;~~qq1%Kg06~qE^1zPu_s+{pWD5)JlSdUbgg%y zm}!Ah*gfDkdAs4(Y!{f!9B3y-%zNUi z+ZC2t0Aj2Is;Zs zh=}!@Wbomu!*4P~UGbdy(d!>=-K%bYr=6G=_uS`k^5*)zDk+kq9|lxO*QoVNm#Ffj zsS?bHcLK@Z2^gk?8AQ?g^z~HtS<;Ooo|twkw_xkv8&Ajtj(fLqy^{t`J^5?QUA}Hc z3d_#D|Arqmfe)LJurX6%jMPnwmWmf_(>8maz@a+kjNGrx_iVSzLxj*rZ zxYc+dz}C7={AkK_sp;~xFlnC7OqDT`VuSmQxWs9&?f&P_tO471J`#?Hh@Gxv57oKY zpco?A2&HM?2&`)omr=Gz;EmUgOT8E65dQ;(Tci`I;QPH5Cx#8uGi*vYcyToAC!~ue zk~q#>BVO4e2YVZzZg)`G)pl=S+N!U^$sWJ#^rjuhRr?jN`p^D72?bjV3d?L`ti`>|G$`Vi{ zm1$NG4J5T*G8wjP^;e&Y2G8Q)O_lC@u_>e}71Q(ckC-u^iE``M(9e~pP5HYwIxVYM z4Q9P7GHRTJxTTP6CJC=|-llqX>@*mngqZMU|T(mE&Otk6|thi88TA2@a68JPX9@!H1Pz zN1M|z{8)we#Ky}e&ie5W1Kx86N=1~pveu+J{boO=2dsX2jkXOcO`Z2RZw`9ik9%ux z8L2Z3a$&!YG$a`8i=XgmFqTQ1O7;mB6ypRH!FV|2Z1rDbnHahBeUlYFfA3Hv)mjHL ztqjGkxE&Bg>(y+jy;F7*BY?_|Z`>tA)NGI7!3eQ$KQSkF{W@={CDs|yTNnmQ+B!yF^L#R#1UE?cn&g;P}=0Zwy#A%q1hNJhfJEIdt>%QBpPd?Ez z{BdaK>TrHoF+TRyTB+)>t^-8bplsQ+-P_K0&i%8$ll)fMGPuM*xHRY)eEBO*DVeVP z?=0`g+*@WJY5|&k77A5k3f+-JTX!@PTIn<(XbZR0PhUhFRvrLroho(XO^r{?cXe{u zcPau0udnY3hN`SIO6j#t!PH!3^tR#1G1L%aOEudZT)A?$ax*Zv}3(Z4741 zrC=~+XJ=#SMdvIWcj5(=g+1Uk3ochJpY8-`ex(vij2i2j9ozKBP4xz8-nd)5Bl`wy zmGjlNpQ_p=?HaLH0>1r!yLbTB(Rt57v}foQQl37DwDVRx({V5Zl#yp83xG^0rcFCS zpIoB)*TLgffCco-#MCs5EXb;@M^eCggeUiPzHX(3ku^4Wq}oQ?H2aD52{jtiZKAhWBd@m)75+n9)&e+0tYJOOubvFagYnxVKGiS8RTw1NAZAz zPn{DqXG73KWTWZ`u%7M+)#h7@28=y&7AB#dSYol($y{{S*NzjFuaF>c&IXI$(Vz&!09 z%2hIK@65T}fXy1L>G(go>0OksoMh5wuq=xQf6%*qezMnZlF?umj9)NIjS%k(f-BJO`3PsW@cra~Zsj-=L4xk=A;O4aHj>kT@&i zfBj8rtQ5>Gd9fcu(#fF17$}_RFVGbsdC9umpLYATf(iQe;qlWWKzmSP&}8voK6Fdq zGFb1y2Fp19 zv1a!+u9Lef3_3kI68P$JOy8~xZPx^O>uhEa$jzZctdg!1gnD}Vp@m!2b^Wz1II?S# zg1ANUcn%A`g*aQ7v?-0t&+ygzK+X-toqvuiCV{$1yS*X3H9?E|EuvPzia|#7CukY@ z=+-(K#%*|34ZM8EfGvs)diSn9(NJv%*V?yeJ=v2E#BDEp0GX6Y0VXp{8)LGlP-jz% z{6bR=J<2>r^4K%w^l?o+V4?%r550zvLQD6C4;wqj)M*aDFp@=V#)=&7Bkg7p)3Jd# zzlDYA*GTZB6DmG$_Cta6kOh0pZ8b80B*ukrZy5?Y=T8rg1xghmpXY`NE(61r`8$33lPo{O6j+588~9|Do!0@-+WRd7eSjff#iiu@>|U`z%AqM7zUAb z0yaPNyx#bz<+m*XH;F&h_GMrKU>%1NePtWuMvGJw;G*D9l8cJdn`Cwa+Thy6Wdp2k zQZN>09@P&UII;yoFMDkBl_KdN)d*j=R11Bcl+xq4}?aiPw@mh@EOrO*U z>8nN85ig6-2fv?u;@}-%0Zq>%fSO?cnXX^2fF^(iJV>Wtl>LVVG-&`9@WB=1jenSY zdg23YJg8iwWk>Koj40p%H?V*mS9mx6K@RbrivzN(ww3h6Fl({BmOS@sE@N5}5ibp^92$Rq64CI@{GpHo{m52CPRjSE8$^63G^YNbVm4<~% z+T!XxAZ>Ck!v8XDuu1gZukA?r&k0Im;n5RwVlVYw$N<|qIp5C7JTwUx`{-`x#fbl!kl{EYj241`YOV05kof zLHiR-qeu3~-xwt4;m$kJ)KhNXRK>}FAFRFM=Y}bih4YJ;Kap;>5sGba+d>o>!nFh; ze;FUXp-NSc2({jKK2{t=8i&Xr!2Bxetpoe zdF>6FB_bmhj8t`X;5Mv@UFb^CC)|`=xVv71e&HHC);+m26UfGmjmv&eAvOj%lwzA{?Gf?%rK|f^C5xDzycFZ*<14w zx1tT^pM6RC>~HM4BtLi5{X4 zBT;2Pd}vyPFfER{unVeIH)yMNF z9soN|tR&s~shu`~Ds$mZ*KW7DQi9@9iQ(ecqnU*7lIQfOQm|VpDv-wS3Q{tB^lp#5 zQ%>tctg*~{Mf**GRTLOR=e9NFuzCjgv)4s%DEMDx-Wu}bd*%PsE;J8b=OQ5@yPS3L z`T}4IN-cb`oPFRaiT{hJ{HkJz)dS>-py(DG(K4E;knsR}(dOcS?O;W<3co8~kMra5 zkz(zE*)Ybn(Nep-D$6729__52<~5Cd(g9joQiJBakN(88-#{TlqER@%WiQ^Yil+c{ zpIgrsrxVsaCq1j!m|)Wbc(gPqIv~KXKaqcwu>1XNt0!Y`DXFFfj=EduN0We?k=BFq zIa8?APVO8qMRu2GBh5yFqlPk};<{D#pRD3VK$J=6YfL96`Q`lyT|YGoL4E+~ZJ<(P zzx3ALz@neQ&y#;r*4T3NLxJdIl{WD*$TDio$+a#jQ&|yf%9U_4vx*3kGF|VQ#8qL| z_tQ?Bg3p3~8Q>x|oe?lp`0}!#h-_@nuw-x!wzO1Y2n%luAw{O16=|?kTGycx8qGJr zYvu>1E<;x-0a@(zXGa@rj*Y%RzH`2}xV^va1On6%PRG&$Psr#m!Z$R$*i)5Mh{*$) zhq+umVvp|`p%`vQBIOV(JCbm(qY@^?Sa~34&QvhlnJ|>QTrh7WOLlo6jSqQ>eBUIP zINz=L<>}9-|Fj3cVJBW~fzWKXTm-!lh01vmyq41{A9l(C#f;4|C0+@vPw@20+mGt!vp%N--Fj?I0PZ25w_L`|j zuZzg5t!Zp#0v!Tuta{MTZ+_5}iZ zWU@RxX1w-3(v@(-KkxfYhj6=s6zbh5e7xM}gjU>l!7f2HL+r`&5AnUw>@b>UqwVF4 z@Va-m?HcG2|>lpMWe%m{w>Oe zF|r@YLg)TuZ`}}nfE%YgOo~)Zbn_xRJas{w^b6Tdn(e-68qTX;0M5(Ba~<~87qd6I z7{xu-j@KzS5uOb<{Rg#0uY>6jI4VL-iH27QT*#+;!`qEQHVn2_Yc>m%`Ja|ZJ05we zqTXw!;Xdv3BMVkY58z!VJ4dzTR`o5 zIzhXBv`34$ShHz0)ao`~%pcA6^rZ+DHy;vu0Gr^;0=?0}n>T-5h+p0+DS7ON;{VqrF}?||wUDp5d?apIQihT5D~jvQb7 z;U{SZd($n=7BJnTL3enuCiI%VZ`OTUgH*vBr))z#*P86ay!AQUbt74~z_8j=pt8%N zPfx&n#cj6hOB{PK+1yR#y4YPZ_VI+B@Lz4OU&i-VzM1_ETEubr2CNYiU4n8tb>!-o zh7?D1lA#Zu0v6SyTg3!qmIJA5G@>s2$V1^XpVN_or823OH?DCWrIt8hH;GQQ?(0w~ zap~77^V2BQtWVHDoXuhJ$cPO2kmyG=2Moe^>qhCP-iNbiHf18LN2n1d(vGkM2UBFS zGqZqEkyTxv>Eg|SbjErP-Ky~-dlVv?N#Vz8{0PG@bN_4irSESi&((zMV2w|Ex{&mx z66L|j^-INE=8%4XsqG%zc{SR5us)&ZWS8u5BK`LG6VrvbJP?z4cWn5c z*U@?uji_sUqBpNC90EMiK*x)tq5lJ?z_tf;gSk$(`>T&CPALE(j zoWvW=WBlyIYX5X0@={QG^*R>iX!F9=$YycZ?d$ubdo+gv zhhBlQVLAE5++_WRXqL3Yg?r<*zES{vvk2dIeIiaT<7mA$AMXC>-dG zu3MLSZCMr9siZ%ID_3aop`{HBM-2hi&s7tgd>?Obv2gfU54S>Ty7=Nd$3+7z3v?J5 za+$n>{}bVZh%G%kwPInO9gwMsd^Tka1m_ke#0C_XIFkDO@((v= zSQ5BTE^Xh{Y7mhVp6*bwnftUDmFoGxeK+cY?za?v0Cu*8uB|hiazE`E*ddv)<4Uk! zKIo#^7%N8^&O4MTD+Bjj{8G@9D4cE9m8>gRGJ9{XIu-C8e$nn(b^h8nVcGa43aUc| zG2Z(j)hCPZZaWSrHbp%#l}#A!NneWQw^E<*+V;=a2p2J2EhyEjSefd1#8X6Apq?Ks3ft@q zqY`@PQ`Z&E5<@Z{bn|KWyj+A*4|6f5?fj})galC8ZC`Ig=A)_!okBE!h(Wz$-(=`n zdci!=FLO#PMgIlxmm6)j{oQ zHs;PV=N`Exaro-x)-SruF77m4jonle=}el?OFHj6!g>^5jp;cyqFZ5nA$z@lCYi=j zYA&3W&nhh+X7rTM)Q4#!Fi#e47DAUsl6coswy*?3KjTsc(_MUh5CI#Wy?aX`NzC`d zJyvxom5lQ(AvVgUN%TOG*L!W5XrlEe37ecaI$Mr7(WCM@1Csh^)ve+V4c$nuo$B)r#JQ_>&3_JU^>58+%QVT)gf~;psHMj*^WuXd@xsBpS}Rhx5K21Tk`5B zo~`Hrq&GrRA)pl}Cx>jVCJ?O<^C(VhtL9#xw$G5Bf**o&0SzkpKmhiO5f+pn{Kd!6!r(3J^`iDh%p3~M%eqaDrU_Cq9Ot2NM zNZLVMYB{ZmS6hMC;U+`hD-SDNh6Qb$7WCB%^j=Ju;IyGijkX+9@Z)-vcGTO=cg`PG z_zn0bIQ7%*Z|O6z<8?0u`(u>8H0Zq8CGWMH9IHu(>_oR0*<9I&KB+m_Q!kTeU_0<; zi}~?FJH}22CcXa=b6Gv}58r}Ibr;>bR|PqsjIoMB+jP|N;Cxz&!(Wlw=ZOG>h?l)2 z3*bDX*nkmk`+j{^aq&#c_u>d$69W{t4S^Dpvp}h>PPEuPj<-MUZ=nXB81{Kw=`Qy> z{%E_kI$RH{-Z8vCtm5Qh*%uF@)!iu770wrELM#<;9ch9ogj|c}J;j49b8#t!9NxtG zTzU-d(@hkueL;O@0BndiRi1mGgc`$ow-}f{Oi+4@&$2&}9u{6WjLdkdWeCLN(4n7R zmuFdID{s8o_*tf;`E9*gd$Fe!!5gpw01OI%;kj6iO6lpN5;E-gLZ??{YXxz3@5P4g zE%ce@GI~fy>z@Qy$Fga3*xvmd-~$r=lp9n{Qd*MSKa^r$+5 zHTl!f)y4JI%B)oxBX9WoSdULt`#*=2(#0GI?3?y3MY96TrdN1fl1D6@+9HXr_Dui=4XYvom%-u`mmcp=5a`)GpM2qL}J*~(~536%M(~~c9 zvpj}ThDhFxk>c!=-Jh{>(C1jw2b8GFQ0NJT(YwcseMwV+D_g!gBcNb#wvB; z&T;c~hiQ{ajO>t*l8305%rB_M;`2&{o~#=2OV(ewDGD)9JjwOg|=Idyt( zsjj4=7o6$eHE-BGDPQin_;^=QhP~Dd;(X+h&_9Mhw$BCI-`R-*z(Ve-5#9@Pq@HUb-v)eB9!K?3SDrSA`4 zs}*7+W4Q6Nz%geqvv1(TWu~&0Htm&hai?#wk&{Qc z0mw;VjYu!0*|muq5ufLhtN<8}3TPp;E|JvytTG0=ab~_)v3pd{*r+#oVv#z7qIln};LrPa$A)NtO3u1R*?VAL zZzg3{_;xKAImf}FMdPsiEpip5`y5X)1kyrE{utAosB1L{+;JVe;SLxRX2?St$CDxR z`pJR%lE^V&k`?XL>kAqNKfm)nR`D7%n4qcmHW36WUI4W;rrdX!TqZ|+jq0AwaCsJu zof^z~6jxW3ZEEBz8lHHx4MYnX>J9fcHEHyam-6hT2|(hl@=rQOWiq1TE$sOD0w8HJ zfs_P`japkuU&*PuJlVHPG3+j~S{gs2{JC!`PJcPbaSGzv%s=_R^k0R=9>@zQHG6pz zmb&abt>@DSl$Y&F6|TI;_LJ%X3MgZFoMm;0q(;rv;F<}@+mwDdN8_*bpUo46SmM+t z3wn*hZQwSGAm~-g%`6O4PD*=lm3@@3ub?*9UWs4BnUUzA)V9AbxJUBpIL~Fg!sFxl z2~tb}l5751ZCL1)6`03jgq0815a;4}(6oMX_UJz6Y^)2_ks2!?0NgmRHRE{dlGpFp;bx$^WPuDk9 zo1E7cjBy(;4W!wH3*^d6z0jDbf()t%mY`qf>aekaiB9w^IFs4vymt|17eeL$!i8SG z-**Jk&}hexM(29x?k?G{wwk-fA&*eS_jrhC#Ue>$WJLtyrVoy|bd7Oh1v*RFKVz{| zKF@&92}zcQG=c05^seGOv#3N>&sWK>J)Hu--Gz{I!9}47MElW4db#;mwERBVAquzm z4X+rMU`+eFUT#}msIdeJ09}q78|(Hw$^vt|<}uLrL`$-4LXQ6?C2##_AE}TyXm17p z=)`l30HoHoywbXk^cAgr|N3k$0QhMUu1!`rAyr5tzv#fD*C!hF`Ne~rJhrz3_T-!z zpnZCSqbOm=C41p~jI|UYLk-W@;kKNv_(TLomff)mf_9S}0Ee6t+-NxFHBjwU;FUXY zm@mOKz(>a>%(tffj~PC*&R50iAQrwn z5Fdv3vJL;!CgTgRIsg+X0N$yBu1Q9d`xAGks?v`iwkWqp?xGdve;Dw;YmZc$71mB7 z>k6}J{Gq94zD z+qb+o1P{+nDwoYCb5;-Kko9@O7WdM1}{&1+Sd5)d+?} z$q5W>=FV~06Ka>tPy?~FpR;gf^dS)}mMOhtv<{Ran5043NdRSgIW8nuyR@6m z@A3iJGn`N4+tg39F;lI<4|9=vWZI#;eg>M?6lmU?Aa$*(z2PT zC+6e2 z3hzB|$_t_DkrAe3a)eHZi5Ax?Co?G04`ppl$ob*}dDN%uAa~omRS+io>ATjVf=WzV zi_-9`<>)OtQ|$4l4_I7AYvVtXb9prU{PFH%o`h4pas`U5cBA}B++ScGDJDF?>A`k} zhTOnZlbOq@#>fHcl2)GTxQ@BB5kHMLNk_=OCTqzA{xBvP9~%*8)5zz)5YB%! zSZ+IA1v=F|sYa?$*mRKV*y}G>j4Oh&S~j}1jJB1=zL*g-bL+1h3EitIHl)3*AM)sW zlgn$_vE^FbbEXN~=iy=r+-bQi4hv1<`_Nb+{vhEDJ+g`NIcW5ej%Gp>E^`Mt{4u?m z;r3Tss0vg1%JA&lOvoA_xdE)qWk86J?}uzD|KZbJGcBHK{Rmnu%IIV+jC$cp%ap_F zwUH`~bghf80*G@Dj*n_%YiJjUa#VwHw$25_JV?1hMWw6ijk)JxcbS zD%$nh#oU$*AJxPfWJUgkddZ~}-; z#Yvu-7Z~Jz$Z+sIR=XKux+pjnH`#B#7GLZ*iLcT$^MfE}$SfT#8|{krKH2+-+qrQU z!2LY(K{k61tI_`2VUwt*P2i_~MgVgpGeD^meU18N@OpffT>my>yT9W2kXnM{c-T#* znQ}}vS%js2MRD`tnDt@iJ+H;Oh=_=6IFt!)abV4+jYy5<&>T`Ly~&L#;JglVjOkO! zb?j%chq$=d1?Cat^xn?Bu+LGB8(M@PTg|=vR9GyqAzvZ}?;WV~QFM|@@I}O)d@f8) z`-mH}x3C9tGe!wjU~cTBhp?<^mBIiLR$t`gb7%AtWJw~Kbh1$l47gdb^uX(dwuU>Q zkES)s^qpEtjS#ZCWWAP-%B8T5f)qB~mt5cm4lmcusG<1syeAG^$=P-0DMFxrpXJj? z+ERnMAp<>xBhK1HyQ6b9JKUvLnhj=mA?lZL_2#0EZJC+}t>qylX zg1VF}{q?}h_G1jx)r+5+GNwF$wvbxDfBhjaUHp`)*bn4)F09ctXVWgCNk7&)_{eXt?;@jhpNeMZKjH~rB(vr1$JGF*U4cd4QSU8csUV4M3u2Qb8dlrbJA!xWot ziK_c$ zb+CO>pzb8=ciLjfYjSSCDp}RUponH8>v)ksfLz$oz%(D!tgm|rw;z1Q z>)iW?u4S=BzsZ5xCqK2l}4NTBv4lA|uixvj)hba6y!b z24lm1X|yZifs=DL*@N6??V6%Xo7Py6;nXorW9R0@ya*FVC^>8wy5?OSW*AN@@tCrg z({hmzMZiL|Das1qB4`Onu7R$ZVD89>RL^}br;(e^JjZJ-yi<;}`(K54eRl5*Th>rd zU(^6lS0_x?LjYY*GPy)ult_v zNn1+8Oq&>r0qcG8+A*+8{{jte%K}G|W{zJzAjQOU5A!dXDmin6oP4nZSH3xmV+Qq( z1DQ+A0D>0xBwMaNhpGH#iASkGZKG=+CnA6r&Wn~-$M=hiDt&a*OB6P^SpHI^ zQ=u+PNCPOL*~5IfFMqY@I?030FCrTAqa^RhUPlv;$-Yf>6{zR#dbP@c0>nJTN8Ur? zN-UER5kw^f0cj)!1XQ|Fx}{4> zx?|`r1w^`}8>PF3RyqYFhf=zGX!x$#_r1^A+wDGoz;iv<>{4R^EWu;D2Gwo5l+n zxabgzV7X^3d|4--!ci4#zm$AL;&*-h#Vnt^3Tn9Y$+=l)B?82~+$Kk)cvo^oQ_$xh z-Ppwc(gpHer3IMBRk%n3763ga`JlSXrE=ZRz7kyfK2%7l12hNIw;bEy!3&)?tq7)3 z5$RgcgwXSJJ2O4j&&H`|Ll~5oj6BUsbe^0?2PGIsZ;%`H%gQoPJCE>^aUzND&q7_L z5AoE8nr%$vQuam)>#Fv7K|!s&OG+LmDii6b)E0Ad_6$;@`!t|(Rm$>O)nJ2UAQjzp z?hz^O_}}}+kMKZHugG0242D0A!iHwouUVC?xYVNvl_4Cu7{9s|InBI81roR@p&awr zKI8WoMGfrug9&Vxf7Xu-%flwn2SgTzFyCaSu@# z7i7uBpDTwRSnL zeta<=`I^LOa|Yvc+MLLAwPBC1w2qPpCPa>mh44~39<69fE1!kFHGv3PDBjlQa(+aa zSF85$b_9g?9`+jY|DK7ykD0+EdVF<*Pyn2W;XbGZ*RxIh-;mZi-Xq;=zPaUtdfO#W zNcoOAEI=HSv<%Djug@2}Owb$TvaAUgLgs$~PJ!+8(l&`4`R~*7*Y`)jfP46#qy9Z@ z{!8mu$Tler@lN~5WpCQw??d!{`&O;EdcxiFu0upfC=IXX0pv?xApi0xJkT}G;b9fZ zet$Pv6>6X9-}XJ?MfH&jr^EEIlGiBz1x7IR0)&SSF7Nx0{&&!S`wF~7S)uL<*7@8@ zxPFif0TRj=@%iaGNECxgzMkXN3Xr)zG#f$C1NIm9qV=?;e}{qb{Y-^@JS5&kT-HuX z)bVUv{8)sHAKP{RRltes_tRj#?ArlVKGyJuyr~k?CWUH#rQ0(@y1-bSw37ryn?fN| z-xXAWgx!=?n?=3L&Z!9%rTDlHv8yQDAY8P#)rM#QhYe-<; z{&G+LXB|=)qX$?8NZy<}F0N4IHNL#}Obf-2S?`)Sl7bLvJH0?uq8E@GM7lg{(f|2O zuvL-u>oc;8Cuna;s`C?{y`XTrv)X+B%;wfD-`n^SaZeHg*f6BQYNoN8s?_IrLn{65 z9${Z^XD8jnWk)#qoSmob!7$pnu^a)l%*R(iC}3L|w?UZHqQONqk@6onJ$(vnr&g=} zGFgVGr!LeEzC!n~zj-qr&fSyxfFFd%SluR{p!udf7_?xA%26RB6QtU@KPEBwoeAfN5+tnjgD4 zU8e*Hrw{uWJ(C384kf%!mk4k_&H$!2pU15ws_zc1M~QHK8^50Mtiv(LO`*Z@Y;}Bs z9{F`EbBzLVG*!~w>*E&Pv7||)HNo**d2L?Hgqx6Y$govII0xzodUG3Da9&m}_N= zx4sG7Efxp6s?Eon6|m1NRL9JPUirgjHH&v9nFSKcgNr|pMU{zZb2pnurv0FmNt29P z>|#0>zlW37H`zufjVYcK$XU|cC{56}(OSird)0bW5C#q8EKYzXmoysWJPKyyZQiDg zuPNj#__Cv0_hd!&iNhh@7+T^N;hW`wSmf{#$4E+1k&#ft!BlOwr4F0sOIlsequ9=d zVZexsNbizS1w}e-p6~sCSgrByCeQ&>i{J2 zYq<7~3&_Fok>caJO_bZms+2NY8N;PW9C8JZsRI~wrL1qKbnCCzmLNb}F%ww;e z;5lSjrq1)c`g@*Ir+mEm=On51cZq**^Mf$sB^9<4ca1RXonlc$%oL=Iq@AbzS&1b$ zjVCl&cg+>A3bo?8OjXOGuE90MwDf$U(yo=L1~tzng^y^JJ;9=x^6XAXW~(X2XH@0o z!8De$;mlUe{>be-Q(I2Q_3u%Dy8vVY!amXJtA0WxzTtLld}SU}}uNzul8qQSM|iB`1?U=T8c^$;Z*f-eb#QAN}`>Iry- ziak-`ucu3vetD2LkOu%QC54>}QD1rUxuvR+ms;)uCF(RsY=7LnpIUODff*-Jm{;@% zj=e{Rh!QCIScc9;m_&Vgz>5*wd+W;Mn>(NDZcAFlwF>$576JF^IkmXx@|3KIQer^1 zDa9EmEg|WwCtC}1UVX15OzoMecb2Vkx2*?opwz@9D1x^N*a4UPJ9EKBS~c&uN@vQA zdT*$GJYE~=JS-|GVE_d`MN zBeW`!+itfm@KpTuPP`q8pk!oqRv}J$hx?_9(aEWT(#6}~W2n5;R6o(H=)BS3j#{9W zp*HJLjj0s~?(Z9k$$R+3*FByk(Z@xPfFJ59ysg8v;=&Kb+fQDC@^Gcc5c9-=@-Fwg z?9;l1w%~=6O^@`;>3U~*AT&X~Vs0_lua4C8nh0&re>oRZ7Tr{4`_f!X7B7=tfsFuu zvxbGjfvStmZ1`kj|76c#B&Ug&+`@ai-3$MdT#CJ5yUDKyt{=_(v9}}YhCR_A3^EY{ zU#e)abKclW7UjrKW7l|V!-F}YxeVMDtIqLIAA#vc+YTeD9-paqqudyopi03d1MLNe zyQ%kf-b=URZBp7xUgyk$d|^$XFoK;e9Ze%m%Wg5oW+utD+TeC%e!3Vf-`9~aK)RaD zzM8_U&EtI#&s&4Fs*X`*+LHXwqY}`L0>#2D5S7b^6xh9*o=H$;Zf-8)pxC&@=5(`a zF&l~P8kp9a%uh7vi|l>}>q!s#;Uf#lM8>q~-BPoh8RjQ*2u|d_VJE0m6_g7rv60v0 z5(Z=D2nS-)el8+Ty8^-(%S%m^GpQ>e5Rehly*c7EV0r%9c5d|54sPPSr|piU``>5H zca>g9Givqpbpn85yZHL#x_t{pKZ*qaHpHG^s35q<(j_dRk)16mY;SZf7H@Gi36Jj{ zNhxEN84t+cBl_GLBn(nW} z;J+ju%1G&Gs6H7daRO+5@M@Kk{OuT^BlwvTavNvJI~la5m>5e;;T zml}9kAxE)WsGeRN3<}$GkN+jw|04{ar^MdSM`H}mSNVwvO8s>HM?c_8dhA$c3u;=G zaRq86y+P!tk^`HQFQ+g-BIm<-`y?CF_5rk87tj%qEe+B@B*!!p2Lm#K7R(t9;XPkuuPO>Yi62=Kn zmsWl#mI?_}w5q%zCtop+v~RGvev!a#lDavwLd-@VAsDV)qAA%E!*HK|0lgq;;KDOC zncJQD+crOmOCO!rIE(P}wC^b}WvO-ilsJ1r%=Sr2rz$`(Rjxi<%W?D=oLTOB@24%FzYltEPS>m280k#y;=)&Wk>`( zxYWl3EA6H#&DuN9Y_sCrVTxzH3CQWgb z?_|UaPa5Gf2h0m@?&!MaVs7i)zp<-Jv!M zsE*n7c#mZhse?a_=;)3&sAx@Aa_{Q43O1Njj1RWE`h4{wVS2M9%&fG|-ARB=%xM!l zu2sbfGI*EKJGRdDO#utLh@Kr;e(O3b?X4RBTf+a$!FJt{N_y%p$2P6?b6C68n5@nG1CX*P)7)hhjq0IivtKzb8HytY_$DgJRBnHqP8lft6f$^qttOP zY_tg)rKQHV(X#@^(H*2e7jXRQOXKyhDg_rbM*nN)$Gp||5O>GM;_n0ToHenu^T}Dv z(7t%rU$?*?`v7|erGd7#(V?ATZDdCa7n@nJ*2iJ{d#lkX{K`LYv4?#wxln~6Hrior zxQAdyFdk_RGn$mwxfhGdD@v=zMzVihg=&*h#vg;&Hw9|;C$Ue~^(@%AgtabUmvJI~eoYl`Zs?-KN|fbZE>9NLSjx8S0> zlMRmb$u;(IvrV4jM584O_Es*Q-_onJo7TpAX(9@J75ia@tyWCZaYZ=1wJ8O9prcms zj@M(in0ri+P32u<<^*?tAgaGWvkk;<3c_?1%UYsXk9zZ$9g648-tI)89g1}r}Z(*M!_ zIo{Aac-;_N#S z$=&)%KCLJHkzmg;RmaDcs^xyNGb=$sUn|mu>^#=~SJM1yufch?`mh?c^@ylZ)qf7E zd6v{F7|{JrH!SG{l8$7-1T}|^Ec+8lR4choys-9$?$?|hCR8Yv>}@dnT3Hpgs$vjr zxE{YjtFCHVgou)U+S;4KbF$UpY;wSKgRS@<2$aqdWVTu`5uuFDSK(toVVzTA{#UID z(YcPUC0|Xzi)^WFjJ9uUZG0&(T_+^`snSpOqE|4+9! zK!-w6&6-7{Nl`3}(8hT0<>c`5&)znYNwigI8l*fPA~>4d)m6%cyMAd0+~r2>+(lYd zr!9-~Wb96UZSuPxs-)n}Dnnk(cl_`4=M~YUx7Z>vhF4g3JshUkR2zG5#rrwGAizSo zfSS1IipP1!>Wl=w@Ng)-3^GJfQ9L_fcx&A8Yg?Mvm5MdE8twfp8u7J<3LP~!RmPTu zZvfU!&rH&)xgmz;2G=IVt_$OC!R3^h7MqXt9NlNgFhy;#`grDPpCe6!ro}h)&P--E z@|Dq@Z3D=4VL?sR1hM!!!*vJ7#>cA}*t*H_ch>8TsqQ|<V-#;Ip=;j6$^L(P1XF>+1mwRy;Pci>~aw5txfE5)xpLcH5YIwZC_Ztt+tWEITmx<+Jb?oxOkaaC9~E&+V;E<$@2O= zs^?aw?<;x6hOL9`9ir(fH4lsQ@0cMSZdtQ07 z4Sva{M;4RG7|xH!JNgc_ggvOpU~K*%%3G=2v~-5dz;-#Cv44x@)}h-IZfS>ran|^eQ1YbYLfHn-3VTQpVjdUaIBm3>Mz0=`3-C^KbH4 z5lGTO^5Am#zV(j)t5{D)ey2Q)c%wZe(x2YuwQG9|E;Ml zBA)4({z~^{p@(2?v%~tdQnmHmBkk*P@h}p8+BB~V-?mUyudFKtwsv^#nKp2GiG0TcNkl#N#7 zm`HR;di0foaChrCv!Ik+-ScRjea(7FeYSqbr`x@dSPZ`_Z9Kz%>&$VDQ!fa8%si(! za|?KUL_HU^7f;$1_!dfiOwL7Za^2s!wdUnsbofYiT@r-_c$5mB?*5w!g#?@Y{j zn)_r3SAT1D#aLNH(if=gNMyWJ<)PW&B&u9p4h129byMl&j> zn7Gs7sdDl5?DppsM9JfScKRP*WquN}v`LK1eYEzbs0nfNF{;n#kny`cv0FIln47ac zh4#K;&6YQ@x3G|kE>81&@B`e8G6nc0-1a`r<5#S>ebs1rzE&9PQ|+_&6a`_7MVy)i ziCZ^nnl^I72Sn9)Eqv5_kH3m1^;2veOnHM_Uwhvcw!+uAvF@U6w*C5x+h}!I_rTra zJdsUVYT3)?Bn4Ekh`!ZG&s{Z{$sJZ`<^_6X=&d}f8F{zbm<)-)Ix@kPsh?|^W!J64 zzeN73vsavUBmh4cUNI|?8HYSTu|$$hsq{Ft|3l^R;$*Mf^W5oAF)-_&csq8UIK7ib z-aUym8@<)rmm8kE^Twj3%6efOARLk*RyF2(`O>>eYIYmzW*8CXKALK18)fc8qb)=fULa(k zt<@~qBM$T048om>YG;L9c{i{6>{mcRI1flqWYkYr#^dY_g?lmIawzW8nG2O^T)iM-r-ZWI(`m z^qpvQui-nMhD3qPtwgKw@?@6O)%J+|0P4CKVVJL>J1n59A=h`Y)XdH2N_otzeX>(A zGW0cRTvS&RCmW8zC0Oev{h+&21g+-LpoXwEQ(tqBT;O$291~+KqZ&RrIe7w5@a#+F z=T-N-^}QCr25}fwpCHtt_$mv%F80LNzGe8IQl5mcG(~{27Y{RwN`6cw5E8c5BIW_{ z#H7ODKa^!=ndem)Yi7zAR9s%5Vr^3K*L%_eNnJ<5Exa^#m986%5f&w-W9iipJuS4g z)TnIn@vtzJ??l;EH(^fX1GpnTw#Ngcve#3pH>;h#sj9t^PkqYJMgJ^W&D^3{Un6-W z(!r%U6y4I|nrN{)q%n%03!=z~VQZm4mr~F3ITi}5J|o$5ni}KS2kMYpLe*AoBkLp0 znH})lIHb_l=8Zh@7W^QaqE~WyMVePY7Ic%L#3MZVX(V2{93y9VZLWN<(Iu^HxyM^= z9RZE;iYUCl&_Rb9`&rI90V7u5(`OtAatoqERh1kj!n-k@rH0 z*XnI?!}e}#edY^YCY}=43RrNoUBGWw7ULlX+ zHgmTsV9ctzL}l!(Ld{@*I9jVuD)_>)J_Ty7K+dkfdS1a@di8B3V`Z~pa{W{Lz?{{m zupu7OuOR7@Y4O-;@<$459XXm3f0Y_uoh4#}r2VKMNs5dQ02J9N-Ivjav*RDUO^Ze` zW0mMwcU&Brske8^v(a&Pw@hTt-aKxeBJV$6lC>}@i0z>+lz!Eb#n@M}JC*|NAve#uni|;D%GO}&Y~UqVhqA@|ShLr32?R5}KJD(h$@N)jCrM11Df!jW z0w1RQRfkeR3Ls`|?6?U85|@DRq7J9sOuB-u z=C*FrWA7>p%Hu-kmHpi@jDn^-NGu=br#ciPJ|1lCM(x6JXM4+au6Vm!$6o=)h$Nnb z$3a3W?#bE-2^pGJjWx!2OLdqA=hLdWBTm%H>8hqmiI~Tc+|}3Wb@n-y)3wj0I}PUk zx%$3HwG@m*1&mTt6_8^%Ts^ahl8n#TA)5d20RU*UqOqn2BxkauJG&mD9*a1 z+<`1g-k9@>fo$l{*A5Fxmqj1J2jy0S{MzaF8NXXA%G}`9pkVDo^li+6FcNP<_36yF zA-VnxVmef#9ETWx;}!%C;Y$Ge5~9Eegxk7vWs@2lVkqUwrg60sJRQe5CfU>Lsk>vx zrQ{Vk`#R4TTRknZgln!3)zi}WT;}ad=0Aw5*_c=yLffkB--^d(CUO3wx-UfGfNXvL z-8aXM(OLTRx+X19L0W7gJH4dXA)(HCNkMdH^^OLHr3D29EMNuWcQtY(u^|@m(qZGX zd&EJQOHUkfoTsTJwcUbEJiTl$^QBV`0$VyDUZa$*9>-yZc^iq(+v~zhxr%|%HfY5t z3S3_tl&&(j2vF|pKwEPLq;-EZzTt0?gy8%V9r^0rslBqcf69{U`W^dQKQ7n~*n7x8 zocvtr^iC$Ca;c!_ExUC8Lj#T0Gd3fJ6T+RP zBJXY`#wyWQh+j~zZ0z*3+p8?SuOc+uf7wngyrgM=Q4@@$v&~0#{7$~8lDM9C~7Wqik@SY92_ z1_e=9mjh^;n>-%)JPZPpsj+W#?~O_1o7r2pzvSj%n#XvQ(g|7UdLgKtmMW-Z-#DcD zlUDBM%4>BM!1$eTZjd{z`_xetL%^cru(<3*j+ORnTDB|ZtB%DRG}+F${c60w z!H<6e7VqzgPJrk|6YNToQuv_yD&s6Z@NAZk(Cf6eC< zoe%1ZKyfpQgxkIgD0MQ?$tB+&e~x(5{MQbqMCR7 zidhkg0P~HO@c!K&r{yyh3a^Wk=Rkp0qt4!_7FT4k(cw8zrg+eQ^ZId+>&RD9AL9Q# zQ2+B4wg}R26w3Yg#^8ZrB4^W}qbWmwQ}uiEPH6LK(sDDg|62`jhkzT%Lt3Dvoq2p< zfk5DDf{M-lABd&yd|4bvXhmiFNro+xPZ3-u-XhREKkSeqXZ6z`hNeuP*M8iTHpwo#8_9`n^yk7*UYvrAq?I zZ$=-9te++>;;)7t9l{4SX(S8cbA7yjXeKfc?2c$tpsz|<&G0EgETiAIC8gdoc=5}A z0pDg;3QgAvf2H3oeDMTXL*XpYzxCgQ9%mV_tIZ@E9OFLxv2_0VTA+fYiBOAF4Ug{r z^+Er+be;(Vd{dvxK;N%N&YwFuNELK-vql#Tpa1j8{%2PE5XE)YRMv{$ER_FbcCmmd z{4WpuKXq`hfEzd9f0xs>_M=K9aw6vU0JLpnVsRNXWk zf?9uM6hE%TPS;{(u>0%L{O3|@yWy)YU-UEdzyZrr?epu|drE4S78>U^-(Z;b8|zjW z_DW!c5P@G!Y*@7*7d3*N{Eh?ZrmMxJm%((2a(19_zJFcsk@kUhg z>?XUd{wDZr$9Yl|;Qv-l_ZPiMVDEJd&f!S7@c(8$Sv9_BH_Dk;@ zhD#$IP8%Q}=MYMJ_Ct4w#6{|WLRm7vGo|vm;w-{KNm<2u;yra{-70b%PB$TDmt!!+ zt5X8QZ$7>+wyF4tf!LPRtPM=g_zJG&GW)LS*DLnFmCq=Y2IiIO6zjI;mTJ_}8P16B zgHy9Q?L~Rg(=d@Jn;;vlsy8%4YCwGRCMX!zI_H^B+qSn}79M0XU_l4u8Vyur9&>e5j#sV$FcPmz_ ze^c!I-w1_LvZcTeMpRqvKTcHW#NxC&HG&%DPvk^`iy z_BUd>5t=n43JK*#IrjEve{bEqIbi7>t=x1hj9gm@B)2;qZ2;I_z2agDt zbz%e>-K9aIy0|q~L}~>DJn0a!rc1qX-A5MVMM4lH*GAF1f(0OsYGzTQm5l=mPd!^& zH8k#Fo5MikgGPR~A(usVvdnpqjN9q(^JyWyXln5F2Zya$?VlY-7g^6dr`TL~=ciE{ zdjHe{@bx%5H3@5}<}U@H8tIi{?d@;w? zSwV}}Wy5ORMQqbV-`KQi^{&BagtpFYE724i4lmMDO*)F|G^>!pP_OaGdTTjT-flVj zaPZDcme-|1xv~ii3tkDPif>KDp&4(Y#X^_5etZRxUj|9*TPA8nuj!j*K0dx|CVU)9 z#2M$0hM9O(qTOu0-DtNUhA2Gqd0kA*&BM2~>t%HTJM8&*?R8|c5E3gV#y!{)5FmXH zlq1c)ea=Xmhv(xlE)BXKWQ+F3h0Qy?T5(zZ_Gn}$tl9ZvDASSG5~K3dnwdt6Puyzx z%4YHN)wxPQ{V{D3;a#Ik^rXgbny1<((1VWMVzfN)Ni>~o6pP!1JkV2R0-WJ!rnnl^ z;iFzZLRRnSfM6W%Df>Uef?v+9`z+YJKW*0B#Ch?8FN;kam#Pj-#u@$K-7w_o=D}1e zWLOD@w=9Rv9Bp%dDyTMF#Q^$dPYEtvk3Qq80wWLtmFw+M;u?-6kGb(32JVnXUjczg z+=(&0ld0yh-u0smnNm&8^v$`NlB^W#lh3|eSiF_-7+M^?nK{yi@M&&Zby$TvR>c|A z;@CR(8X&=vHjMic%>*{?SjsN}O@CFP3m-1R}hzt2n0bNusZlY&AJ= zO#|*Y35C{^@v?=^Nl?Y6yF4pEx8y8Sg_M+S#uchFE1Ad;fU+BI*BA>$<*Iv{PGi56 zi>DamI+-r1+8V(Y>$>thU;Ok;@N_Nd&fk)p{|Q)v)Ddco78LHoC*8|N^4bT+7Af9q zqHLa$daV{Vuvdzlfh24$rLhAG5Zv0ay7l+#@5aoHnd+UkpYI@D+MOMmCHz-oQe&&= zg{dt0zEm`A)VLITWMthl}%fr2@M0hEma&3l8vT5|c1PpgewPz9=8CNw$r2pHVyCdSJ ziL(+)kwRZND_}Cdu~Il$k=SyK&Umsl+kxrguBE5dS@J^JQ@cjd$8x%~bup+3avYXi zy3cJfw9xW?`Qw;krOUICK*%}Jp6o@kP&w+3rlawEcTcg=4dc{v%o0JO+TV8H5*Z1~ zz7%vfK_VX=65R{2DAQ}5$uZ5S)k5Fiw$33J4RQCyXS8llnP+aFnPF<3x#v(aC z8{nYhv~lXVo!{Fd^7Bq@a9#XzdVqf!VHQ?vH*=s#ktARRb+CUmS$VhvQ)9T;4_WL= zPy!A5Y`%7P_03++|MkTAiyOy(e%LD9va@c0-8X_=7FiZrieJ=^h5iF-(!A~0w0zlr z&h^v6#Wb8m;Pq9?K}my3HNo!86>ykZTq;m=gHCK~B?~Mi%Q$TcqfR;`lX@IiZDC>IoDVS`owb2Dik{1#xM+VkDz;bo^0= zGnB-Gf!G|G)7}@+;R<)>XvZM=&X@N^P#Vg;FMdW_%?OJ2#N^V(OU0suLwe}kU~xtH zwhQK4OpO+u090m`pO@CiqIVj}Ep5yVB%I)z9Lolcf}7G&k9DnGG|t&SJloea8uYK!CYSaYRk)4a;LQHg(V zA@GM=OcMrD;Qbmq=rVE*|0kQFQc`G^{4)Q0 z-cf?b#fc>aVq&jxlAF^Gxb-|0H7rW!VXzs;#&-90*eh@tp3rf18qn7Npq ze@BDq$-g;tY%8?t+na&a?4KQ30Kq?tNKwOEKrIeCseQpe(2K)MB%Ex%gpJ*fZP*G{o@(8DeDlz-$4?UWrHzk)Ctj#=YZ>;( zaGRl8Gu#wM0kO%H*IeGMndkh@&V-qFRK*l1y*@Fg$ii^wvjF*Ly9O`)9-yA{_u}EF-9R_fWR&ai}uRn+}j5$|!vKx-tR^nDsOQbHnvB4Qm>G-yYti+?isxSRDL8MQyMw!vmS< z?v^BA+nlNRG|*x_RhY+2<_bosQ7Ezx0K2y>IU^p;ewH-QmMPa*pxqCV7Hy|_JFq-k z>eVQeEh<)X|JGdsoIayh*GP)lrV3lVq%=|w3@X}L-?PX8CB*g7e5R^=wQ<6!wc$@A z?GK-!-r>Arw=T?9(ijvAz#`W<)@rs+`JS(;&7hJ;X>ILnbO}8|enFz|5_Y~s61unL zNtPaPOr(-875y%>(%EVGiN@moQg8X2Q+wCbpKlWl2(=~3CCW0RD2?uDG+8DzsD$9W zeg7a1?U=kvDz+%hR^h|%4Tt`F#7Vd4w_AOcCnlU+rsQa|ppu3O1#%c#q5+#G?r9*7 zMtjZL{V}W^GEw@YvNlv^nUeu>u4`oG`$YdlE&hp$lv`frTc#w=ct$Bh_Hdx9)r}Xs z#J`s2T}g^=`3$>iW9+`+BP=p5p?8>MnXq{*?Q#ctLN1q5{OX~g%*e7g9Z}D+#JX#n zJI(hVCcsL^R*%HVpYeSjssT!?<&FpVljW`z_;u1T40(6O-y{`vrSjLqQ?4Lw5*pPG zd7=a-mUNO)ZJ8K0XNMb%z^5mgzy7!jgl>m>7T*i$ZIta~gSwXWceoRG3(-PeEu*w_=3yJC-7YahM<+j3*wu?eeZ5tGZyf+pkZbr%{F_pfPUY7 z6BCnQ67KR6ao=m!JESjdtHKBvU?+h3z|n4a&{RrX=e&~&q_ev^4PIu8$2pSF#KDL^ ze)VMMK!GzQaY#1{UVVG%w$tP-0o45(@7?5mpq@{ya*OWK?m0d@HOpo}-KNvgr=;5E zprvyGgvL0M+669qKPOdAM$XhdcD#|Td!VS37jO|xZxfX1NKtTc_Hc!A81xqh4xrW^BE!C^~?O~7SW z=oL8&NUx%}?B2{^VPbwRLkoFR`4)p%bsXk?c9=Jd5a+!lQ5Jk`jfSTYCjC1Lwm*Z8 zIiDLSCL*=AKMo-upXyVC!Dw1yl3x{|eBcOhB@QqP`mt=~68fyH|8`dY!>wjEro`8pVm`wt7f|_q9%@SSSMk7mrz$;`^#d0-LgS zaFEsjGe!x37%gBe#gGPV@6;{;n|Bm*X>i$d5S$37_<@}O1CAc!lQ7_@86D4}yT0|# zGuR6k1u;uV%9#JBMfBYJ8*OGNeC79nVc?su5ZE*&iq)!xHItu!slSjFiillht1t}A zkW08p7DhEK7j2=WfY-(6WA+^a>~YMc-{?p zzni~ZEQswu?OS5sAS@Ri{fA}v`E8+zj{L0Co-9xIa)RG4u?Qgv>Rt8{KI(x~2*R1j zmjxxFOjbXs8T0p(zI%zCUVC}@+9H)6J-{5flv4lS2IC=!^4Qv2a6HjO3OOV327k5i z(b7^ku(|rpfAApy+q02E|KDAw5&y|23pc%XYgH}i;P-Cze_FTgzV!K7O+an=zvfGS z{^qYgv2_6NNqTw5&g=J|^w0IK1NJ}MF975J{;M!K@Sa(^j|Rej=K=UXu7E9fk>0~} zB1(P#@4p&C4{$z2xBtIJCV*SJvds)M(qlPo<|F{umD(s@8CYvPOmlt?JKJB9=5~h{ zPB%G9|LhE5NvJT4o3Q)&@d%sS?xGfKlF7{ev(V`1XlmKGK4`*@B!vX{l$bb$Br*Rw zFu&9mfG0-OX`Tbg@(_PKW<`;X50_eRIzE^US#R_MMJB_OZyEcWldL1lj}@|{;&tmK zMwa_!twtHto;AX^MS%{u;WrSXSQ+!8qcDJp@O>Zc|N8|2o_0$O)lu9=*Z|hc#MPcvz6-sVr`zh z^+`%fns=ggrvzsk+`)kSH(~B=c9e)J?FI=2-<+-{e>Ccs0k?A@7Srh&o3MJd>dgse zK>T2@(rP}*vE=6VzG`@)Q>|>j++#G=;Lwe;cGYaHm}{w_dutysi=^^?(olPx?3Ua0 z8VgQle8lV`pq|Gst zji)wEB>Zj&8J3*E4ArfvC}vMLEhR&($28!gi_uX}#sA%gM>wXf(%N3n@_YIPJ0{iFC&gQd-F)6CpUQ90Q04MYJ+v!cuo*FCC0hBhpODym6)P)_Dt_;)*T#d% zG-z;g?3#LK8qladE3?|*(0JSvGi^4BEq(c%3&RyiEop^{K=qM$JcMIu}E}$x>LZ3h<|r{>#vBpa;ky z19^#Wboi{sPgv+4GRB#}8r_>rblfL3*!z-r-mItPjD~! z>W=~uGv-`4rb!` zQBa*TsT&G(u72LYYSfc`+!cFnp&-o$tgSU`1ij%ZrOX<`tVs>>gF1d+;@`1w1?bivJ5@_Hc=cDt!HVYP#+Fz{zcuhPF=T(=uhl2cNSy7|2>x_TuA+!iPCfhP+^r z1IZI%B0-eP#@q_w`G=(Y`g`jGBz}uaDs*K?pc!9|^>>Xz!Qr#P+H=XnhGt zMXrsg8F7a4y(uW$b>Ttb!yo5Z zX}rGeartd*vizXM9y~^Bx5HJ%Y;}dZ9BG2y)h<}RQ0=5@`{hHzQ;TW!Zg5PrJ89XZ z^1IW56D)$wY(y&K%Udf)^m2{|>6`y88%#r8M;u5d;<9BD6q`+6NaDu5x~BB_EGV2x z@%zz$AqFTS7s0AyReKJgI$J!$g|4ipKLQ^@yME?`5ac)lC?&hO@<;;Kx}cD1@oRbr zL0|km!sn}SFR9033SE|y72TtZYKFsY!MRr*A=9q=x5>o%)Mm#@SJ*|o{N68&B7HKW0zQ9mrlNe*&4`&b?@qH*PEO9t z&fyiER4pp852o@pJDFJ4^t^71pQlw-inGK*7=Zb062Ndw&^7<<7Detf$%g z*{L*nYx1bbDPtMs=9)-^=um+>md4h4zIfa9;w5W)MO0m5pef?kz1k7vb~p@b3&ZW4 zotgM02BY|Ro6mD!M5o!63a~BrolvnqQHj1^+=53`BcbyHE3lCjfV5eR;P4#a^Z`!4 zq(VN^DTs3vIl8549Lo@P$*Rclf3)EW0|@fvHt{82HzBO=CA?@(eBJKn@H zerkReEvT|s=tKJBojFcfVlN9pg2xoz;pBAB3_94Vymwfxi1@|s!Za$3q7g1IQx0oQ z&eVL~e~T_|AECSfcaqD=gAB=u4p*@dd|9o?6NiCmd^dCupf!%inTR1%V}H3_*zEjr ziad>mEKRWIkeJudIkE{y^~;1O{%6#gVn+*4-m#Kq$JkB5+0|)W?D-QtBYLzp}K^@btMP(5*tB1h0!#uAcw%GzriI5x($N z&QdT4G6NnUGj5Yb6@OYz2(ap_*Mh!xx(izk?-|>jupZ5=dRrQ56~wVM)$QkcVD#hS z)_yZ^tyifaW8aq##(vZ=5CGp?J3RnRIX@Y*+nqo@m(A*B!n-U$;Di^!7Js(iom$V7 z8qJTQwbE2d!|e_MIVnAc z;Ref8mlvmyEtW>$59fL^pJCYb@dXi^xuFt?faiM5rs`!FgPfe4U5$BPFBCVy#5tAr-2yNbYy07ecOy~w@7m(ttTzX%z-^p0SSN^QnQExkhfGIAC(^|sP zv0fjjKO%&M*LlRgY3t7*%iFt@2zs2nLd|c#fl|zSv2x+oe>8CMhkNcXSrVoMh2d<{ zwhsk24Pu?|V)?c^!+T3UEorM5nf;HDKwR`(Jo7}(@30W!W=RUV zxuH6@T{4%;ExU2dh6)o7PiCI?dR;ZRo=t#=J04(YyMcsAj?IpMVtY5 z44_6AnpNMb>=FSlY^<5(af@Q-pICo8H~y2@+6p0KQdxr_U1FCDvR=5h_rrfhu#Gf= z_>%}CkC?@AIlRg#v=gLd;hS}Xp%E|7O)<{MF-6ET5EI=OyX1VVBx{!35ahKJPu{gG zir^^0W^iaE3u{vNA!9HB0jrOk&c%HnIb_X2&GLE+#+X!N6a7{if8!@9w)))X_tVRE z>x+_vJa1}A1e}y}2NUV(m2$spOqwktRogYx3D2awkcL5l&;lzBa z7$*(i&d_=0aS?wB&w6!u|UHX z!UG{Cb%$>wI?>-JPaoba*$X1$hpv6}_}!Y%@b&o`1dHyJ$Kz9Fg0S<8VO}Y{J0#Av z-tZzIQa>O87faJk!ziiia zKxMt7mM9*gT2zT0CN%?$tVfa<)bjGv#!IwK)}f+C*Nb#`+Jx23=)*(3kY z;XV_gT}7Ls5&GdmNL{}EXp$kSOf(k+PFS&{J)k2~xpglr7!i>>sC0@ogC6`E$JJlU zHvj$Fcjv8-u*?5r@2$V0>f85kL6A-fkq)InK)PF6kVZ;C8U&`#jIraU3?VmwJ(8TvEpy{nXp+ z9%rAc9eq{{=Vqv-BaAJd&ONjimy@ww4iD-CyzXVmcYA|0RA3`KiOCJA#*tTQE-6l) z4d?xrxmmEM=vrrFuM*`$eCNs_}UG+_JTSh{_5~Y^zLyuI@sf zx_|Uvs`YAb)WW3+wml-VrSPXdalNgt){c@S?yyE~G3ife*CBu0y_CmZxH8=IVaDF% zqFmV^4xW5lxH~K!guGqWwiJiwDyEDNBBHwKYChxq7>53wU4oV5$CylX2#Og0+9B$~q0-GDkK*Vl>H{Cqn==u(qj~^`pE!wTCYFic|vZ$g} z&J61${doPUK-imt4oi|vko5Pv#a2K6u%C4nOECI)^G?^Kg5w{0uFLM!%gzDR-;qh@ zz26)jGVgGgF!ri=;75Dxl7F8YW{gxfzF0YTocBuS)TwDD5t{C9b0rmalE-IjpjXb6 zj2qu^a>ffmGc%S?R#c(WtFe#>eg+n*)bbIYc|Gooyj{S>GpKQzy znI-~Py5Qvyb^n2jwv532q0|m(5`}|3BtE5Fr7z1;$9M}-W6Zxj0EIELax$SW#6EfU z=7b7ZBpojS`@7TacOm$U@q?7}3-gZd*PpkoZ7%Y0YABH}m8S}IyFY3;I}ghnClj~4 zrdq277KasJI-9zH9vXfNJKyDkZdePFRTP}u-&A^`ldx+NmXfep)qYk#r&Lzk;A0ZM z!QC8AA6s}jeF&3!Sskr_QFAfB@S<4jNd9E)2KYARK%SKHR(?byt7+Sp+u-WhmXu2X zQ|{UIVI1m*CfT*^8&DXY!Ha}FW0P+f)~^-05Z~Yv=rbzx{hrL1Qk&SJ=cRw}k=7i=DCAxJTjb$s*dgr&9Z;vx?Q3_I+{SuyR z#3mi0hbjs8ei41_7;pGSK-xI7*%PKt!9sa55nQ4R6a%op!DO+$I-0bUj1@UBY>{TdXB9jTl$4C%x?CxXaV*snM z=JWFm-?d2OGpfH+PxRMKd1Y|f%4)>8m1L&c{r z>WDmKXgK=P+}UVS2`$ll>p&l2LXgk`UcVPN4%vBVIg7>!Jun-)rZz8qTlS1F910)OO63R6EfN3 z>$5SfCGdGiptkhH4~T)qu+4kv>6m3Wr+sZmwD;yfx!iosMbhrm<$qkh7{LExvB@+r zek(ETwcz(blhw#cd3Ec`Vbl0ep0Y}IlIhRapBdB}zaJ|z(}c%~jOLgyYW-k`df-Mh zqVG{)V82h|vS50sTh%PplWp9kqpR%k`z%)w;RoJ0GTufRiaId+Jx1){7I;RptPgJ} zd1Yo=OpVhXm{13C(m{VpX~mOxY4nbsRJc&mU1YIU49RP}XPH?q!=FGf{ODme>KV6= zNU#QA3{!w5WXZnoN+rtumQWRK7$(0HzB{FJDhEpObLU0i_ZuE{U>DL*14o+ z9RB{t7 zSifa3iqg+ZG0UUXj{C_?zMatFsnn0)wUzcXqO*F@+tv)4t~B5yq*AD8t$Twrw`{nW zqh{&j+2hlmR-?Hdr`D6@eHX39s38j)n_-kyoU&6xx>@465!&-Cnt4&JIS8FBg;Pb8 zcHg$FJ3y`fun1GhE!iZMdszLu?o4|}kTLgIa8tz{pG!5m+`ShDab?(kBsxLNm_HWv4WKK{dr?9;P{eaerH;w}H@uF0Lxffp7j3>N=gZ-K@CNCw8& zY+cpP_T`XJ&3faI6n=MgzR!Dkm2}~E4+t}G@&)oZt)?*N{aMbLde=}ARiYJ8!mF>U z*`W!W1YdfEu$=ZqCR-ms;6 zny<%)oU5S!&Nt?M;eFq`!0$Z4IY`G6$B)|*66c9PyJ`x?=FL5L7^aJ_>1KMPQ(xA1H@_RIKd0C z4zFWZkJynIVjjlb!tZk4oH3|XU7YTyl^h!lksQmLXhY}A#l0~pa@0$e+gEFQZUSl- z%5~k(T+dH`2QDBsLUE*UWE;s|xkQcUsi=X#)hxj@4%1$$go#a$&g1oC6%+3SdL1c3 z0SWyjcq*0->uGqkB4Ze=+XFp#j9NM}X6c*B+YlZ6%on>TrVds18u4Ve39 zHd|P5o=p{Jd1}S=sw(g2=MM@lcB^f<_=q;2tkfB8DzY1o804!p1&*te2nY!EfF9r3 zg-9-ouKcR|u9LONdLRDp%sD7SCM?6aH%V>6kLO3H^)&HBk(v%U`Qj?w@wARfq6U+` z=#fQ1Wkn=8e@SyXp)AnhKMEyu@t=CTdV$*cA&Q~ORct}hcL0XAIn*yUffevFyy%>Y zfuD2<;|X{0G1h_b+mll!#hr|Gk5W>+bs@yIrm#s@ zholm>?F{YnS1tdpm3fM0M@%)omsnY)X_1B)aXVMACyMu3KA9zzKz6fWZdj+r=EXw2 z`^UVNw?vcEghERoL~Syy47*{qE0mUa(l$z3cB>>ug88J)xL@@N&3SJ$N3Qdj#!O0@ zU z4DEE3rxzB<OfMU^?IUeoan=ws$y&H_&9# z&L9=1G1GJ?t(YJsuy;ct`P4b`YI>W)O5cn=N_sOM~`w;&c<_j*W-T{;emk*n$td=yRX) zCyY-tJ2>Ep77Hg`*jq1XD^`C|wDd8N7oCUaHamppfnfS$JS956392_&m1cuxy(qQ^M_X z(#|?HpG-L|{||#cOi_w3TzFxmO?j~j=HBU+yZCbN+w89{gCkrtH9TZs@ol1_9`_{t zIRpQfyL!2xn*A!^jX$L*lf;y0&TWjEz@n@YI+uBWCkJU~_)*e_Afeo6xWn~1c#hk4 zKFS7owLUb8D^hrkuK?hm&9j#LIig&~}Py!}LXo#W6 zUZ_nji8?kkxjI$k`?-y(pa{*?SmE#1C0&$zc}grCFa59)^vM&n-awCC0!2=D-;z<6 zOI@~*(d_5hIk(%Ka5p;RFtNSj(i=w@#-Z^?RwVRS_LrX?IytE!GvyAZf*b2{30baV zANhS)@ zuf{%5srz)zD0cim9mJTqR_lMQBF?1s(Cp7NB#6k1i@Z&FWz$#%ofZvo&;>rwuV$&> z(J5w01zp=zQxu_xq_c@kTiiTJru2<3 zh*^N-niJGG?OY(Abk_V%PFzZPklDlHQG29yM!#$sAt_?XkH72rX+F76hrfhj$h`TP z`2v=Az1`lMoolhT-4}uS?WI%mrE8VK|GBblh0rcLO(_6_fa3exXw7Z0T8{DSCGRCK z^*dpzgYUpFCr`Y<~{Uic)hsKYUMZg;ALBV_K< zzSizGur;EC-;mg7zR~U-)_Rsdf%{{k-`LF*@X2VghZzB$C`_WWc{;E`4kl0HIaU&a zA^jiBs(hb!jGuEU%vQ}}X6dJc~7PkPR7V3?8%RBS#l&JPD04+q3J&CtAENy1bm!0yQlc!l&cR21He@=F6l z*wTr=Y?)M-BaF-1xVrDASY6j7rf@Z2!{;v0xze@4x%5a_n!cH7!)2;F_nbbKc9&m% z0IG77-%@Pd^Ro#Z|{)_7`>!5CmFA|AMahwc0uPAZ4k+)F1^Je89lom;1;~WQ{1l|4w>pJLF zcqBT}ZWZh?Me~HvNNkCQfhqKK=RS}C(Y2@yi|P6VJU8+RMJ9e(Bor1jlMr}j7vABr zRB>H&!LdlL0a+Bs_KEszaPO6=RVpE>=_6uIR>O{ADEWoT(%lIF%*PRr>HQlpOn+(m?JUf(Bh-{$w%vjFXfHpP6jd*QNlVs1_jj%- ztNBb$wVqao<7>jv(MVBv5T1PhGqJ(I=RA>{pbwrs&HG{@&njklJ#sbt&}#@brgTU8 z74~-?#Dj7qSHsrCuU-WepQUKu;VF&$56f`MnR3fbmg^zaU7FmeM^K2(eJpLkPznxc za!on!ZT6+=Ea2E`>9AxMhz6NuSK)8*(BBxOnuiTXivxc<=lKQ6#J{E7~HtKMs8N z^)(hkEK*>}Yl{Ue0Jbq1jG%|TIol>b$h5Thlapdrax{vy?PWkau!cS>LzzgZb!?S; zwz-$iq!_Y2x)sp$T&*vfrDTLjBZH@Ur6IKrQkWmbuGAdo#SKyytzpTq^i$BZ=)W)S}e;GW0hj6s7lop84`e$rfoH+9IZac$< zc<050^;>;@O3mS3GR#TXq2~w=vJ;?26)}9TAjp?gYwgWuzr@UE>Z?10W_a!Zcy%i0 z5E>C2O|?@4FvjbxL{w#Nncp<^$RD`khz^pmtx3ivIU3DR)`v?&X;}1Y!%Q;7A;-| z07K#+-?HlELkUk5@@a1olaic?w0ZTQqa*7+Rr<5@2b5#UVY?-6M;V>Rq7y-Wj{QIdsp|W|V{lMyBAYL};@49~Hez@lTtfZ) ztIUt{83AY}<;O={&X#2fe!@9}x;HXkypZk?f)xzYbh$CT~ugVEpcFFIv zhWnZyHgQpz|IWHz2Q+Wk%iA!lX2);u;5S1FSphWQ&BP^&m-^Z+qeh~9dbvGWR*j(_ z^vI3DFl*Mb_j(djr(v}phf3%x#ldv*f?UFpcjQC>>HykP)pwFlk0iOksw?zvxe6fo zo@inEXrnXzZ~-S?1JUB4ZHG%-kWGA$isX}d z#hsvYj6o5k_%5EAuQsz#o+^wTGa`*ec;I9qh?#6Sc@TT`i%K3rY!?0i_d2&YlmI+5 z0){;HBI*LG`Nsuc*2sE6!x5cCV0!fs+k!SCo#H+ZNuZAMLq_X!1Y>_?f85eJN3+t| zshtVxOIt#5fSsn zto$mAMX>_aVul&70TvAweRW8N)tIjp;PbK-8fwyzl!cRlC`zO46EPZs^((uE-IrrI z@;EMciivCsa^=!vLyL`vXhDnKr_p?zmh?*bJHIp37;j%-M%oE@vAk_R$j4&UQe|;4%G(~? z^R%%U&njnmIa6f!^y>dWD5eg!nk{-N^m5OQKmXIj01Q`JlUe})=J*bn(G_!RH3qeM zt{>wU^NQ{s$^Gz}tG1l_>`VI@55XeIac^FRU?`pSWOHzAlD6ynh+3E8cLU`M^Z=IB zl$5Fn-wwI??8uHmYn>X@`6tbi<^9jtKD;Rv@{}J!12Ja!G>&au2r|iCsn=zXN_1M9 z!-zPwfuFQNN_<*_KF@cjKcN&au=iHaA$S>nzBJ9)QW0b?P$rP<%Gsg9fOzdR{9SXn^^^T~zCT*0xrnuTrUIR%qIB!dj=xVbWmC(tq@}n1JR_mxl zBarlF3`9wcWxLbZ3Lf)`oN$E}DkFVp+HD(L;+&iYQv!fUdV&qxPZLZ?94!_7q%f*Q ztnXe#u$C7mL$+Ayg6Chz#^LF#0;=<&rTz_o0vb=wp{2Q~M|F~g@fMP$$at8V}PEr)V;eq8`_qj37`;^1ExG_o2(ScfE5WTa3UVbv2F zk|awip#y`OqYgHuVl>Vb%)KSs8p&__mKMxO)crFfEz8yzM{@#Y7$}})%?p+85Q3P< zLYh%<7Lo;UZ<9+vGL%@elroRl;dR$*D}RUeA(PkJrpPOruUyXeb{9^))(zMwmJo=1 z3#}ur zYk~5YrWtx6>=BVnO9chm%mP7gi$>`DUFv*I;bb$((~f+ev+XDmfp)_=VjJ_*K+5J( zEOpw17QE8evsQw_0PuIGPJ|)O?3gY*8U9IMfc>Z$-7pxd9}5UlzE3&|*KK&xVFPJb~EKI$?RMu5awmAwZ@LtcqA>zedaEb+z-ojcT2&iz|Gqr}m1a6xFaf1{egI z?-JbT{lf+B;gZ+N51+_x@;iBcVWDw1Blhlxd#nDOFp%-mH|a#$w756G+L5ptC*Fjm zGSJJZ|Eu>je?^lU7yDaQ+k^vv=__d7(;I;Z+$A!c<-0wpPvM#5xT^X=#E}^xC!+JOHpNLS#fLzm9DMOi*atEAjEh zUTT@ug=jI~b--f+xINxxTL@HBL6nt8#0qOq#7VH?*MCuLEfd2TlZorsyRCnP=z@ZD zWrecLjz95#ya0%9>1~LezYQmHPpR_!zBUkgA@ba_(quS?6DxSuPcX1AULhG#@yRE2 zWE31t60x?rz${)q|60F}-Gl%dW}P7UvJ|^|Ct7X&Bmx zxt^o{rT+S#hdxmXj{>LwwD^Ej#64srfDn?#l#z^p(9g+rTmiS(O6dXJs|Qzf%<4M7D+Pl(k{cs?IS-SE5D{BZej zmc%Ka9CZ^s-C!D-kHH#6a`mV8X=si8djIZ)(cR6v z_`2`+7C5J2h%bW-gcIMshWls}lo7hUkl%{c2+mk1(0$s)@c#d%+4Na{@wUi?ZF?d& z5`Ak*>3yF@6mGWc*GdN}po9%8(rHkS+PfV7)>|)>#5R^vXP+-Lq&;r~xEDM+)wjTq zfw54d&JA_CU?T}90F_X^d77nSc0$cU4V)RM35CR5W(xg31g`A;-{RK$E)5(f6j^qVBO8!~qMH1D$?4Y7d~vU(B2M?otGe_z`F`x(qPKY(in zF4ud_#N%Na-KtTKuQD+-IOCV>Skp0KU@lniv`v-FWiyU7POv+f*|2!O9!j{eU^1?6 zRJDHatv5DXBa+OG*dm3}vQanaoWRr5eNCmVf&e0}GFfA%=+pb_S?n+zHTFj3*Dn~q znjZEeg&A^fUEKo{sq04^K)Saxp!g4;4qFyQ0Ps<1!tO8aRy(3cy(40-PBvtKu&C;L zDu3h@`Y!C^Am3_VX*H#1hJ|X2TyY|?@?vRs(k}w$UKDn_%Q{nM>Kv@tg-(ZL$>ISO z1{~XMcep#KjXfTN`z_$;^8MSwi$e9OW`#@n>HdN=Dgg`4yBr0yNe53r_kUwhR{5Q) z#QI=_GFf-H{L>GhdLwqEt^_pL3=ddgTtXbJQhv6vin?K6{Wd;3;T9@Oe4lv;| z={_f2t+$9v;RWebC0fix?8e9u`G?-wPr?%1k1?bGO8A&EL&qo+W&zeFIOK0KQz5`#z7uKYtKp3wT4n>qjK%f7^aw z_x`UNd@^{Q)|Y)p|NF_m-}g-ce?}oa@Lx4q|Hcv#xE|y#3g6biE<`|s!@`O*;AO#* z{o6JNxGcC~3jj(Q3Co!*4*cSxP=JC>C`$Uzr+@gR{p;@|Jxs^{PH;Xv^JVQp^>sNF%s~T(Tjuwr+ALgm0MR;lT8i93bk3}D z4SVmusbrQ#z}xbVbS|rc9e1PD${jt6U2li5+r04sa&Ouy_}?~9^9!(fmSVUf!9js- zj8KGVxh7I0VQtAa*Wek>cKJ`e`iFh9?DFt-i<~QA4{s;aid}JJ)!6lRqcr?tBdCm^ zVGwe}`QN^z5iaB+$d@8|8519f^ zyfNo3sYulP!b`Zdi~bEM^5?e==~&|SPf?~NzqGhJ8GfMs&x67T8_3q2kXyc_2!TUO z10LIfN+OuTus!fh<@K>8YxBQkg#Y<3|K6V%5BoE)u*U(s@yLf7N~@mD}sUu1{?^ZozD zg>U{piwl9E`INEa>hG=A|9u3yP>R^iq2Y4<@8|x0pN9_|DiK}*Ji`CHNB^e;VMS>RfL>_WT@5{ENil zFP{k^SR@Y{B5H6@bcI*@__VO~|N8nAf3T4`SGl5)Ag!JtknaIYsx8rekqa(8ye)`A z1E<@uwDvdCY`2$(D}Gplg50_-Ub+`eE-SvJp0~3rU{M|OQd0IRQ^U69pa4eB@1_b} zf<`vq&8GAJU$!m}rjNnJe2r8zw?3In0%b8lK{3Sjg6uZD*5xjyL+QInb2buWPM6z! zsiqjX@XUV?^ioU^O1AfA;lZ>^3-D&4C|zodZtsrZ z>+pcL#MOLO3_!ne+v&I07+d6;?e-*p`!)E8P%M91YR5Fu$T3K&GsBr03Ivx!k0@!_rpE`wL z;PLCX$csd1My&dc--5qd0zYK&!$gFI@g=%Z7m=2`3eYkS^;>o>e{f>Uw$uoD#%9nG zO7Qq3yc7W#wNm4>1toxa`sHi_=|3z30>89}%#{&bRl5^5AljTl@C9LxkO`74Yh6Ca z_>;|{-X7)5EZORUoTE^D)|Y^NiRr?4{w6uT*!b6~q;@O2BeEfDhD3M)0!;jYz>-OQ z89q3}3Q&-ABY$KZD;v|yHJoYKl2Dz~S^YN#9Tk+f`Wpq^jaj-guPkREL87U z5UNj!#^mCy64$|H`516#b&e<*A%1g(aE`Lf5j0?UQ%tW`U!_{8tP7;YbYPG)s;&uU!lUWk zzr=%{od4ua!$SB<$U+6OALBTQCt)L@$^Wo%V!qttCsL$LY#AEe(0oE#QS~6X1~5>C z$;roF(03A{N=REd_L1GF=u2TQ1Wa#=vI5Dn{Zo_+5dpQs< zMw5klEsaGUyE&ZJe=~EEt=P^NLt*H#rfMxDZmd&bkY5p3TLKZTy%52rRj{hGHM98q zm00?>sl2I^?A7{s$XLb4b#1L0v%2xTcd1-2K7PJr|AfK>?B&qrI4!3D;Bl!Z-g=j> z=Xb55%ACalknf%G;=(!ji!Bnca{OOw-+$jHN%$fT&h4T7_8)VVQYSIu7~G-ay5%vU z1P~=g<#B8X(AHA!P8G*?DI{qI1Cs=yIKYsZ|C|&+BY}6DQ!iczHX1Qpx_mRuj>))Q zn{WCji?ei`htbanftP~k%84gz(%Q9nPlckkE1Xa%q=ooTG;V$2L>?vEhmKdN9TnOA zr$P@(n`+k!Dj@!`zu98bD)*?nId|ta>BR2MVD!fyD7CqD)BaO4owq1bRHC0-a{eM{ z1XI}?Ol{abcV0gjxTuzBcUJYsc1LF0wM)TMUImeRMY-&dyw@mE*}R+3S=jPex#9K1 zBx3(K9*Qo-pT?G3)_3rW+is4m`I#-yX8eXYlQVzF(GY@wp4VijcyxKQ@r=rgHfc!+ zHh!lZ{#XrhX&mJAh8Hc%rhQg+xyCcJiJ)ea(NM?4jhg-A(4{W&+_kaw%@^ig$4+>v zi*QSB8k3!G1Wha{4S58jHU-0r)F!;ge#eVSnL8*R_&v@xb1$GvO$oz0EeWi8TUM9P z%0KidU7aL#{c3AZ95d~_JrKOQ92GZp*;Jny9L>18X>htY*X0F@596UE8I#lIs1wuS z(0A`?=~b(Km|GeD&~N-CW3y2Eg6%`s+w{`cF$@X}V@_)U4ap5DJZ>s!d5BeX${BBd z8_UqR5A6{+XY5VaziZ(pCxDvS{zPqqDWxTo1A>{-O|lOKTc}!!aYRhDeX?fV?M_NE8LoJ2Y~a{SD8<#-;tdp z+(1C6#k>>-G9GsqJk^favMuI8{r2=sWnde~U^M{v=z>tHE`=Q^5ZM4>rA zOZVd<;6-028sP-IB^AAHO;J66{uefkP}AuFgO$@VZI6y6s+(~0-$nVQ&aMwNG^gUT zTW900D)YXBUEkB~DGgwN^0V8!=#I;3u3qhaKNy$y>oQa&T$_{Gi*OXjk$htyi5VDs zM;-RPWbzC={ry9kI>cy0fh;Ou^r3{;DAn6(alIHXf2du7bx(ZGVDhf(sD z{lBb3q8^N4-q;a)&Cwydo?I(5ctHF@=@Bd?ej6{sJlDt@gTbV1%e3W=$MHCeW$Qbq z4i^#Ehg#rp#yP(aSuzGvY?TrZ*I!)J6ap0D4ThP4F>gqTC86)XwMNWMa@)?*OcZEv z*E5WI#u6CIx0|~LTw(h+$E@&O{&s8CuSP^t#nYQT&v@q@oB?S-ymf1U zfum{2svmsvIBv;$;5(bi+9b2~BQc!^8f&62j$I+-l$6gAy~y0N(vE`9H+T1V!gn>~ z#FTY}XdWe%8PTS+&FM+LYVj&}a&9IWol^5Wup{u?jgXnY11qZ{y>fN5zG!M`^$dHG z)NQZhX_?+Q?%Z$m`r7H35+*m8^wv6y`NLDdowVA;I%RjF{}85^ecd>LhWSvl;tdGe zALhL_pLv6ibK^D@R33SBbNEY~_w#aDv-oNRZavP%Du0(~7jKDY9Y;Jv3rH2MA>cy4{0sq*_l%!~_X;DMpM$S2{+YY8#X;s|;-sSfne9;G&_|w!ieL zpen~7)ULu77+3@532rOUj-#g!i^?XHrD5dYWjeeYRpz`8qxjAkhS6A|IgIZ$5}QNA zCEp?cx@_*^jKF8iv0AE8U_C$ETj=j66(t|P@P1m&Q|G-TBoi-?IA7}}9@%6I)k{2s zl6ZPRy_j?xCG-jcX2G1ZA83z1L%^uh%nmj=n56%A(q<- zkBfsD#_jR8N}Qi|l;b?yLVuNWf62r_-ZgvbTNb_=HQB~ByV7ZWi#&9tU;kN|T&VfD z|BNMyH@wzkyTV!5!|LAooP_xc7KTnNFuau%j?-Pc^g z%j@c0c~4f|#yrWOm_Dw~w6HbM=P)-ULF^|ONH=|s#7gm10C*i)Oyw8fmt&RB36$u! zumCHQro>q}=!>y8bl?8pThvqW!z}1sZ&7K3td~Ib@f3Y{ZKiF$2bBN#!-OIJQ zoC4*sYjn-pe?IE8`otsMVGAmxanw^jmT(gf7F zKDh*&)GYO;=Wc|?M`Ev>6!(fEL)L1xN3>0ip>vh`rdJu%UQ5xEq>?D7-@V7w6;7{O z-EW#eFi%%;?GXz{8K#Mj;H2IvYOC@cP z=eZ}~Ma?4TAOgdq09I*H#7A=xpJ>}!F_Jd9E=uH^t96Ggok2%mR=(hyOGljAlT4fair5($rLHi6Ice2@sB1nK~}eD|w#5YwvuSp6{mU5b9}(_)_4bu8n_@{u0SYd2!Q!u?*zr1!T77*Ul< zx*E-kK7L|m=zcz5SK$idS}3)>_u4u5LRe3cJIYEie4>UCewNI&6J|I4W#w#Xt>q4b zgFx(pftYQo+VanGbh|Hq<8op|z}qK(Yg~vd<9y<=BPI%%Y^$-W@7bvF`ZJi&J$*Bn z-X3_=v1#~XBS{H?3csxdaWkS&r{8c8PMPRFn43&F4)IBcrEzDX^v$K7V62^-(-V_S zI3+7&BxK~@$V-hijMN= zNx8aqegljz%6g2kwo-hJye)m)?@|K#P}_CU4T-6!;oF?nckpUB(a#>I%Nd(4z57s# zW2Y9+-Z7i;A~cEMkpVS4@lyl@)1}p07?w(v1WvwMOAdkkD0#~Tul;=<$M=1r$FM() zhq1=P(F(9h@lO&Y>O`~HC208cd6hMz1pJCjy|7Nq_34#0GZmuz(o?8QBf^ma7hO+U zSK})d|Lq?UrVO#faEy3H~5G{yohH4z799;2N$O+sVS@4@{iGc%097s zi)hwF5EN_6V4N+4L2Y08EA-sgJC2Dt7qFgTwwBi%?{@hvhneL=6HoQFX<<#pYoJFJG|Bb7NJ+xxgdhPhlTSn7KpjXO%JmXJts*b6!SxWj`ZM? z^}laEkFY=S=*0NJuz<59n{&KLV8z+_vP(Lf!%MA(kKse_`~O9jQ9mXiYVpDd#-1wC zo0u5^j^dSdVB~2snKGzYP!8rx?CsieM|S@>gzBC!|Q(pkQ^{3tFDY=S}#9?v~lqKbJwjNJ|`%t(EhmYt(&GWmTs z9e&0mbxNM$&Wm?bTmBZ0MS!5&CaFfeHqgv$;OQ#ooz+=8POSSLp}VC#PcQ zLc}k|NyW-EL{q;8_MI~<4PPOK{?e^?;#^|x(bHk|SHD~*+~>7n@_#bp!~5#5rx1@^ z1QNx0OqnUlIl@xQcH;5L`BMFhn;>r~wZoB8IAtU)(@Uh=<)7kK2N46x?(ofX)InH; znz0m&&u3ieIs%NQpGrM(1C(DJr!=3g=CSvJ_mmiG&4jX+_o8GNs~BR3vCh%^1$&#| znZP`|lN=MN`r=#o*$s_m?8@lq;JqHwok@?&p%UOjOK6hJXLQZoi;BL*3#(}fXf5v0 zk~3_Gp?^99v1?A)2kWQFHpiWgd?rO#*aj(s_;s+y;pGpG2Fgn!G>Nned(F>~t0##k zyXv+h1Z>#*83lW`9^}hIfxzNxdcGSXH2`J-Vtv; zRU_rr?K<`4|5$d2Gw!n*jgd5&5Z-s;4x1#c@a)I5M)V7a_vj-haX$7xZ`I{S=4OON zwn={dj*397<2pHz=#<&&Yg9@mct*-`N$d-)LEbqa_J9yA{c6UD=eE^b=p5WHvDJOt zNGi#SBls=#tFup-`LxEFa%c(mAt8f%VSGU=wUE1kTCSe%?cTzj&kWftq1fYC{O-Rt zwtavWqL%cLFWsMD`EE%x0$EV2I!a}qeF`OXTdWAr(3N_om8PW1m7~;2N7?*RCP_kz ztX2-tbvC7duIs)by5AZG4m9V2k~l2LzaMly&gC#p|2;5M4*^aP4}yQuQI@cM-7NVy z6B6?PD#S&md~V!g(==sM9u6>9ir(^XHygkH1)N1 z@89-xwP!xy9VH+nK*I#pD^zFk)-B?0+m_|i+67G$F2@QYhGCqc%yQbC;6fCg4Aod5 zupmWkEOc1!rAG|K!=5&yh+vG|axB?ZGnZO=yto;PS2p|A#(ycWT;UehcMT z#v~L*OA(XFlNF1b0}h3%uVrN2J$O?59eV|wjFyIX$DNG!>%Z}N9dEv+s0mGT?y66n z;S^n9?Oo8>pe`K~%6@KfS&3mOsJm$K?3=pref_q1{mD|RP)TN35Y$GX#Dl)fY=BXE zD20#u8B~c5#^By*jTdbN_^3O9_5{9`J}WLE5c<7Nh~=2zBj_VZAaS}CuQdx`k}07s zs)H0)hiXl0OK;>;ml z^upy`i3g%CvgHGuSMy-M{8AxhEBkwbByAygT!HGOR?bt<&2VvmX@nKOuP!+MNXq^x ziXbN%XEPRAx5&j#*WYfaXhzomyz1kt94^B>9_A1C@5{c}_*TmRf%%{E;~2p#kK#e2 z@InnC8T5E}Car^+Ch0Uy(tZ!7wdy7hrF1^#Gm9zZNtX67-7}7_A(VO^N97Dly#9-KO(J{z`P>m-UpD^))ho7V{16UXP{G4sOfG2M}5h47w)@GEo?!V;M4cHxLM0GdQ} zsQ?Y#Z=i*;lhJ`Veo;bc1#?^m_35@QF74HI19XaQZ{OC%Px>9vOs#v*GG=Za?`$c>dKfze*?0_toSC{eW>x+6$qefxr5`ySH@em?wioUurq$Zi_{ zpm-WU_uT=N+8^?>FD`xqrg(Jkf&cLV5@k0s-Y@OaJHxw+?`*T)4Q59lw8v+v4E=zI zkOT$Ov<@CFA}Nev*bI-VP&YTCMG_e3GHhSstgT*os z*PYg~#4*m12-9$jEpt`WiXXcobk0*A*r*DPAC?a3ze=Z3*Bh5|@i-h=g=PjtRtdkJ z9VJhk3y!of>=U4(x5TjGj>NJ+_jg?BsmvYj?I&bKgk5r%8TbrrdNy3_4%i!!c$ADh zDYZrJi^~oM2nZ)S+%`Z9X|u!M%MnV7_K8r{sag;&(yoJ_ z5tB9|ZJdfv!m-_t^u;wbvpGGDiCe;fg@EA8Xnt)K|vzt2$N4I%%=RI6sD94WTm`;4^3k zzRyoK(+jXSm_i$})boq>Btmd^C6)17B|X3X`8piPoUCyB34&3PpH6>7?9fdWdDUhH z3@Q}HxCo?D$HfY5eOjzpb?&chL~~hdj|rEBI~m(yk#VU$c~H9O|0HeOu0?rz zD*QFv%OwJsVHACGj1#>@GCLwxr??E_MOA&!0?K}?($^FrAiB;(-eB$Xd+wigU-O=|{r(^ow%D_*$ zo@K1fhhpvymxr&aZ5C!(h+mJSU3RaLA+Rv8dmj<6pG~0j>V1YWB4ME3*65#kX8hD! znOeF`V1InKy1VY=hH}HR-aP`B7#nR!=Oi~-1*wo$>YBy+A<}A9c>9`-w_+mdR zyuWf@j29QDy-|HLGp^LEFt&);vivAnCSA#;;2!_uR8T=KB_d3z?|y}uv(rGDD8a~fxp)`6Xq%KIF{piP7f zc^9({9<(o59NH(@{U(3<)w-p2lQr!am^o!y!A7tsEOiulwzIHpcAdi*vN_YmY)D6} z$7`dTc&%K_ppN6C(zIUW8fUF}T+YKy=cp}8whdPVV<>k4>8eU2vK8n^h5FpVFqeE0Cg!Zs;ENOLou7x#jv3JPAuN#042 z*P|$e_*~yORqf7Cl!UctOO0(d3@uH%LiBKo7e{Sd_zT#TO5-<~P6^2RZ~nyWQ0q*- z4bFSI-TC!b^`Nl(Bva|+5M)~2(E23)RMXY-OkWE2GXyDgmT+Q%JtNE7V(Vg?#;sfy z!W25404cg+IKG@()VW?KR445jIT>#g-4~dI&a@Yrx@$r)+>6V3nj#myPEtR?OX*HI zaLpQ1&$-PNi!Co$`lUJD$aKF*yQoC!YhQF318$|(eA9$2gBb>wj?mHD{uKST#vNu) zgZsx~h?n1>xzoL-DSsw%3mLnfqMb78dt3)JogWkDOwyq)heob1iv1}zq~6oPs?)e0 zW^4+=e+6xVrWxw2-6Yv=6^ieB$L9J!)!Mm>2cDeVgy&WJPVezQ>{qt?lAXOOFlOVh`K#t+$EIw-Iw%E#g?H z7rVr`D;-ICG9~GW&rw@oWL5gbr#G04^3mRlq?~;R%_l6dn-jGq_$UWpqIcU=9j@zm zHWBjl#KIx{;)D{t@szz`WA>NRZ+b~A)B@efAN@$Pf1v85Oryi)g-`UK7Gz4d+&2rt z+D>u~FKF+1Ay7T{IWHL0RM7pb##`u2)rEZP(Jpv`9CNS0jW?pnd8s`fgfVt`*4LYa zlew>4ZSEh-u~Zi#Vb#PcG1oI6)zvfYU%AOc%caTOrpeq6e@VDAre=yR-HdX7S{?Cl zUa&LO%pKDB`P1)v_f;L$cqo4j_2_N-6{PsH!D%?G#7(Y@%tz7fsGMY z`^rwMy|i=7yXvGV6Svp5UV~~H?(QkJ^2P5KNqEJalfAmPMYgss7O{{hKBr^)-)-NV zOu8ML40iu#96fg4_eU#EosA5yAq-rl7hf$A;r&V)Gt?E0t7|ZBE;A$LSI%7t-!G3{ zStiGIW4}T1smFvA`u?DB`gMcoby!es;;yt)5$N`QS48nB$}2=e&QeQT(GiO@FY$gC z9;-;_n`@i4b-G?q+y3uBuMOt!EhCU>wZwi#b0XB2nThb@e|~m*ofS9-+$a=|#J_M& z+;;OkTJ6m7bJcBn5!twk{P;Vi~RTv?>`fl zvlfC}L>ZNsXkM&ct-a=T@Ry&62!$E~`#TfyX-tp^^@9N(VNPvyt?n-y06Y}AMtNJ8 z>IDm9mU{I6u=nQiP`6$Dc$C!0a?8?YsgyFI4Q0Pcg)GG&V@ZfGV=3z}q7VvERI*jJ z8DnfSV;f{m_MI6^iY#M{ZDwr4@1ySfeyZoWU$5UE-|v6le|l+*&-J;^bJT zfp+ovnQn```QKCWg3j}c59+^5s>?X?Kz)E+kh>797&ri}I`rR9+{TVO3{d9ar=0C< zJDe<1eXd%rdp&jC2LAmGx298NL4Y$gAHQS2OWZJyy>2`83&GiA=+wcW*L)v|dDrz$ z#oK3ut22_oU3R(y*M1ppl?vani$JMQ!U1n2$5kt?WK~}$Tq#1E;19abcj9W;Q@exC z*B+!;%Ux~?{&_>G$-DUAeQ_dToPgG>6X!#8>1W6iZ6)^ax7>QjNA#`B>C}) zi9S-P*&n~mNsNhN-!Hl_*KtvVd5HW(eLLSvU|hTBWP6$g_Pl~Z-_qApl9H0wz^1ty zih;h!<`)jh9fS4|NNfsDhIHLaX**K_J3U^1UOl6 zZC&&KVy^F>Ws9p9CxH+_u%9XL3u&@q02LWh{Br*0gGhk3HR^(*H!)>bNo!2|1->SHQTK$H8oY^VB5blDz}k%dNsAY z+`r6yPEVd5md$<7bq@8fBKqlAjAd?#lW#_**ruu3*YHf9JW&-y_W}t_C{4-G$2E@V z;X@*YNG4F2J<*SefAZwXC+Q~+|4YGqXQv#9_^}#laorT3M_aO7Q!epN9=DkMDY#d$ zOIOBI?urdXrJ1=JASwbQop*ko1WPKrf6_xu;U{VRNn!x5{UjUHIqK!VA5;RV!#vY@ zF?jLfMX%od4x~Qo0DDd`zsFQyOd@?|pzAVmF^ae`?d;XDBHUkIvN-d+OP`yZ8^|Cd z#K?~Cp3dNGH1{&yIsQ#LQ*X2HNAfp3zZhu?hbIqt)L@(gII_D@cC}E~fr}1FFsMsO zI&qzZ*1{tI6qi>_*wDp`;F&mgTj_K6Ac#dh`TiKUvd01nd?ze#0kh0{(=@|69j^Ml z2igv66N)4Lk)3~}Ox$pUqw}qYlCR|Z8|YY?WT2S5o*=pIN~DlQ(GJ1W}yR_-e=`Z$tjFVLVkNSn(aN}nP7dV|G{2^yarL<+T%#2j@$$O zdRaUA_AGvDDI{EpD)PSawBU|j;s8Tw=2pX@HKnFcpFnNVo2RTR2Ce)@Io1{yWnJ)C zU_iIZO#j#D!WMb*saAfOO|OZh-uHKnl*YS_s8f(gXHw{1tMOgjwq##<-EZT zS~Q+H9MFdd4|Jg9mgRC^n7Ty1-=!CM>WV@rugIOFSDx&mP8FoJc>F6S$9MgEedBn(MF&tPnv{G ztqxb%eSNBcuN*=cymX)qG4p_OPH2OE(oEn87Sxi0nCBqF*Qk1uXyxh0M>VU4Y*}&!kpInMmBQTyW7AovW9ks^VUm zTLc7pa?7WsoV&BG7YAypb&LmbiU{PQKb5srtcAi1(^mk&+d~1w^tO-1=Cwq5X^W8# z=&M>}g9wp-eYJA%mIG_UrAemu?6LVvx&Oxc5P_>@$z*2)F<*=+_>eOfhIb0M7PR!j z)Y^VxeV&)`Nmq72chmQz@i{c4p|x!0Hm}O+V;s;^(t={l>%!63_!WpIa48^saRez` zT*JZ1W7l1uc6KvpWtAtzP0IxI_WavnW$c)S z6k8^+2uk-SZ)GOAUw+wrZVeBG;}nR}AG0NsT-r7#>U3z8*oxJ&%HHkv2??c7tiLtq z%UG6?{Ap8|6=Ny}MZ?3$p>w{u1hEc7L~KE*R87s}gu3JypFtXJRx^?)8mVACqR5Aap{^#O0Q3S~$1$jV!R|(LVx3Tc~nx6}EeoQSz|ILMh?X(``EL?{k_|Tt=-ayGm!Dd5BKNojTww@P?tZd*Io^K`vZdwt_9Th)FcM|kE>woQZOc{n}?A-1)Um_+>*l@Qvw;U0)XI6FJPqmco!R= z!0eTlGTwl9dYcTmLH}GS&i|SdLXaQ0lL(8*Il2<6ue<_C8A&x@wSRv5P6;(*+rG+; zX)v_hC!bo}rGNOdT8Dv0_EhPIht$S~l)TZJ&=9g5p6%4W|9vAK$Wb>>HoTF>(Aq9r zRKa3k=}y!!Z=I3tJbCNu{$;deL@bS`Z^9SM7gBa0(FK3ExLa+yk_aH2YpDgfOH3iL z1Kz`4&`C^^a%J#hzHNPInTLmm2Kkw5#Y)CU|7jv?7(om1HTm}KxEk?OUy8^=PLkW; zJY%{ED{#}qmByQ!?>IWWF{pLt^Ui-U+YPmXiqL~5S(aq#6`gaUZeMoGBL~e8lR=y{ z;Sy^z7h(r>VhSC_G+KH4aE2g`m7Nxa3IP@c8P4E#%S{D zDVub@ATox@JWA_xZn2+iqgCspR)%P&%C6%BF04K@6hsD_>d=Z7^+)ZZm1c_Hxwc(6 z2t*>09t{=p_MZe0O>0QmQ+r-zZY;lpl}=5k65rDyV->bY?*9MV5|7V#g{?jKJ#1yxMpf#ET?$Al_U~imjB}Jd?ve-gR z;}k2}3Q{*2CB|{dR`hQyXWrY}R5?+Bphg5ebm>;2J&FOs%Xdb1Bse|u=o9hoXU0h; zirhE6y@9g29)pdux4Jk9I=Db{n8}t*-V-@^yGfe*3BBQR5MFd0V)|k6Uu?}FevY#s z|L4nBMFw9bCOQxX-JGAv^?6!Tj~q0re<}zz=?7?Y2$j`?w1a)k%r?SkHbnK7`!3>I z@b$KZ4lM;aGcJ_&w3-9abxK0g=5~Ol!qJs)wSD>&;oUcBpG#1FHI2=FSDDd^f%Z+7 zn)%fH@p4pB%94ywxp^enUv5P;_kX!n-PS?RF@ySZOh~M zJwRwiV=FY1)~fj56boA7`*|W?;WPS7VPIK zfH^bj&f1Hm6f8e~84muP4W0w1ZwcDt{TI)xPqBmYO>-^o0{)YYd4+$;-A^qoxbkvk zz^&j-m@oa-*4(_u$i&3t%Z!MK50wngBM**+qb)Vbqn*+#kveuGXa)ycIo$COw}l4JAb{ zYX!*=BcOzuF$gJ~Y;*Y>1P*TQeQq&;p@2%|rWApo;NLXd`YCl3#0OUx3}^%Y2z!a| z%BnX16Bq2P=OkNT*T@eoa=c#LP35x#=a~3VM+w0*mtIl{H7rpd$=R;2ARMdUG>PYf z*O7LH8x%se!eb=JXUlIu6Gq)Du~pcKlehZ5hAc|WnH=*5C{oi6+}@YA4QE|{XUNtn zqxGvKI$i+6DBKR#i#k8V{KOGHO&Gn^B!scPvPkW-4#WW-O<0Ulv&Fs}VM0eyy^J}s zE&-z+XU!X@ruJw^E8gnELDV;sV(MYfEkZn>ViC?6CsCP#C*~M**(FbDi{jHe22j&* zG9Cjov}rZRISHal1RtPVcK=S54KBOoupTo*$fmV4mXB>mr_SGAtOu-6Lk8dj<7?`I z1E9i*=2v@VAW0ZCuIl#`)JH~pSrxi?(Q|5%QepTE1F2Ix{KbAZ+F&*xGcI)3{zmnB zng^6Aj6b!zXUM82X$p4rY`K$CS0QRQI8d!1vumPL}4Y4js`);J+rEs2>n5)J_OxiZ39l&eJootqQqd|FAEnfC4tm)}` z>J3}ou`DI8WtW5*8>rMH!C33+UdvU1hb|!lug|BD zg6&Q=>%We0c|2m6B?7KpRIW0qN}?o`AhXG(&GWF2^K|eWPeSP|bE;&21*~E|J}qLQ zI<>5-X4apVEEjE+V3iU)D-R=?QF<|&A4O1Ak*<3Pzug_3CO|Y6<}GqC>bu|pL3PkG zL59@i(;gBC*>mI4sOPTy9{8m{^Gz>?kZBbVDez7Tl4E3B=P2GI-Ig$_`;HL zJm<`noNv9`L3KSwWy^+ZvEvm1O)4L)GO9?K=@m)&rHJ&A)}ye}f`6r|kcu2_q*YGy z9KO#DbM_TN_r2>q#-;qgI<=i7o8bEZ!>4TUC(&Sk#nAo=;!P_IW@B(asD&kG@An{A z=$K`h7k7f5a+Ybx#oy#ZoXD|@(1qB{r|;@^2ExgHM1-%q+^JM6Qsw%B?k<2C|0MXC zO@R3rNb<_CD-=QkmC2p#hf_beak`Fn^lDPSIWg02^=BHR?ng=M3EY=u7;f}wMa~HG zPW8M~+B0Ic_&~MGS~nwX@YRO-S>>$0-M|b^Kx9ijDR+SJFS(;CRbPHPP$zT1evp%H zUik5OmVJ=#;iectj_F8h~UtQ=-31z@kP7Rp!K~Bwb>Se^oVtw{@eWqsDX4{ zVIx6;hU;&a0+7)GV)P@bwvj(x#7t8icJcmMEqaeh9bRK_T+}fvP79TS=d3(4N5{fK z@JBJ_o>yKfcblYpOR8@ zs3led#E*L2xe|R30~Y(R5%g2oFRh+o$E=2kgRbDQ+3swk$-1F#>3zTGu5Ij7M}Zeo zU5k+Z=Y^6C-Sfi;ARI6pOVm7O`KC~f_L0SIC|Q!;ZIbvbLv$Nu$Fn5XScKwDJIDF_ zdj2jZ59FT0g3he|#%i~d7OU6+!BJ)&KZb&YuRcLcri}LtzM_)D_Fn&_$GOvFHDJ09 z6LvpkD(6>@>$i0bT2r$*H)HI%K=QCH? zT(j}&oP%EnqQa9lJoFl&=J7jkI&lHK$=I-={GbZJn*nbE=n?F2`TqKks}B3><&OT9ov6JHzn-`hDaSU=;VMNG;Q;U@RV5myD zpc^Ijw*W$n-&Qh)V9h~Q;RjvO!BA-(Kl-%&Q`RjuHs*on zgTJoZT>_+{l4$JmKWv(yh271G3bI83EHIvwI~t zkVEFti3v{WIwo%y_z3hB?Gb1kE z647$&psI`6GtZ)VC;W##Ylkoqq|dXplJ6pAD96S@cG7x_Bu}H0CO$ZAywytcD+@Q} z^L~Q4I+<@NH~HQH{MlsFL*%@nn@SrR$JPCiY#{Zjqoi3t42s?duUn12AXobI4*?M_=ZS#UgKHl+eplr~02IKq0|0ozxdJY@RxawV zwLC*_pGoo>ZsfTzr>?}9w4G7J`lv4D)l{3lLKl}R`mSz41B0p3_`%NE3g&RFyh|Y! z@AYlKf&8ba*9f9bWq4t1Z0>{FneC?E?+2+NTHp3A7{-zFO4J{H z>~cdd27@Cs-s*m$Zj1d0r;XzDPiMy1StBgWk~WCbrRu)Os~1Bqe+VU>>6Rz?*eb0*9?3b=z@s$l z7{Gg>N_GA7_Qcc3;FEK`#cR1`>mz#(0?|%J|Iz6FT31ODvsjGybq znzi$Ac?hhshR190!PiLRu)E2oR>*;!Z`?GpW&uttX03M_;2Sd%`#UPvlIYVtx{>C# zj+U~l39ZEQ?y;Wk4Ytv0!+0RLEcZ>f;_F)DNLV7OUq;m&u&!CFbOMmvBmpz5UApuX z^qLnI+td<+-H97H&8N09ZZ*y(#}M<+5)vFVlYQ&!pYC_oCFKY#Gzbk(lTy2(aAlR&>Q!h5g0twjIyl#2E# z%@-t5N6NNKP?~q{J?Ha_CddE#EI-cic5>h|Dy1$UXX}JDQrD_jOmY%oNEB6tU)n3Lzs?}@F;GtC zi?vv_hPX?!<%_NIUNdG;ha}HyRL$-bi1iEPT*sAb(RXWonIwek!HLCbO`i%HV`aDv zB3ZvWac&bY;%zQip0IReSoBP1tLox4z!OY-x{n?uH_y9n&mBUOJmg(|vS_$=J57wG z{$TaF)FV+Ko04HQbfCcOb6OCpN^N8Eo!b$8jt)QQY)PLLW7)_+=w{DTh4o{H_+lPf z6_Tn?m=&{fm8hvmR&_ZLcdpIdcj5G*Yx~sT<(R_R(oyhOld^bhi!@>6j>3@7JFz{> z7nSAd4PrHm0>f&{A8W$tQ)90t-gx5m-ds47gVt&i8cls5wKQ8g0asd%(d1wBNWZh= z&a$>SkU=uc4QbdsIR5(8E557OgX~39rTRBI0%b5u5jIK6XWKN5>7?Gt(SVemsP|f+ zH#rxycB4HDjkPMf0|`h9XLN$k$0V9=+tP^jzy{)&Ce>zr)sKR4uw+R*|L>Fhj3|Pf zHccRZR7z^X5}o!|rW~ps+GNoJy~r(uM^0n;Df+u?7%z8!#cUqt z48x1J@$4_C_cNAeeQA;%$m*bxuh=&9bBmIsE>(PMGYxrgVP&^iz;fD<*MtaTzBr!| zZjiuxK%jaeOw|9hFJ3N}`FB$H&#zla-8Zgb_{yR*tW%2T>i*tF&6is_R$1bzPCtH8 zrnu^OATxJKjOaC1$?ZcMp78Z&4%s0B`VA2iL~mI0viqp`BbN=@%m_L3Al&Yq+Q!FW zq_^=)<7X-!wY%27CA#uQ7PETE8hHT}Dj^K!SHpX!e6nW&G>j##zOMDR*vem{G}Zq^ zAw{Ph9CHaD38Kn2Fm0-xN<_25cfKw|$q@0=Li}y^-JR5jK;uH@1e{7*g zl#O)^Ztow9aDW($1dIfPgYLATc{>P0?qM(--6Sm&HERS}2$xK<)3gq(saXA@I|Q*? zA01R%U584}8m+|!Dl=XNOr$Yi8mI#OyocoG`v)f8#AU&IlU_3!P*)sH(m=o2s8bNu zR}-z`!A$_*~E&PV>aG5&C;xg_>Y-(>#AYDLAvnP*|5j88M+ z;qgaVt4zXn9>sQ^i%adNQ#J7(2!=8)U_NyWGHoCo}Wjs@4R0kFVaDBwuM^mHMSgZp!2k zrS0^7v6aAyyXNv>UC}8gV`^l@x$CB$JP|yuW3!n03XwE5n}9a^miOL87dZ z5?J||f`OQ;Y4k{nd&blK=kCx&kW|?~mh)uKA)3nYOB*Bmx zQ>%a%NneBJ!Lr1$fHG@P0H%lRH(}|OA6CvCq1x~4zfvbW>JhEN*p)CZmUQ2_mVC6P zvE)lYsqrKhrY(BVrP!u;KY^NHjm!snLxq?eb?S*#?oPg>Nxc>u_9QN>dL~LliKN4% z0?>{|-kTO98qBD7BOh2bkdS`V1yl4k-0qL_PCDGUi#A*7=$^x=Li($hpHx%XA)H`! zNDrP+>o`VzM_Oj<#BZF#KifQH-<|t_-5KJF_CS^(IhT>2nA`bYDK39r)8st*ZEd$2 zUFmWqcz3b0_hz2_&(4u!Kl@4g$(xc9r=(w+k3Co%A zK;_xd<)wvO{NQ5t=KNiUH-8+bb5&B~p_+9|-*fqE;ZkxH^j^{Fz`@qFY9TRHXKwRd zLdB{Fq-WJkZS=jLZ^HRIt*1)GbY3?YajLy=m^ym#xuMya$$};rfT#*V`BAwzgzu^N zcb=eaoCts^Z)F2=_}d$gdY(3#ur;Ja`fskh!%HAuAF)h}{z8cJw0+5g^hkWgJ;c@Gcvc>K9`Ho!Ng>9u5oZ7+X=)*ou zJ`@b&E#xYXP-=4(UT$l@Bl-UcI=Qb}?BraL{yq5ZivVAjg zm^P6Ta3=-1qIJR7cHyj`B5js>MS$T%1QEvHB1fDe3joVfqD_>9TUYc>7MWDZ1@rT` z8unkl)YA>*&269A_ttVl3;}yL3~!L4>b3r$lRVyCTYB?2`>ykc*aEg+;@mC>m!(I1 zW_L||j@`>xO%GJ5HD4xZk$h8i@{$hF!s9E{6qkcSeJi57HBMQpbg(M?T_2`1Bmmo; zJCLh(dqH-7j|;~yzyZTRj_LIrW5DjlUQ+slqyM#lS;HTQyA5PN<(1mFLe~4JdEeKP zD}Mg^dRA6G^ID_Zsi{pe;C#+|CFb@5@LM^>8=abCWApv*qC*l(z>y3_ZxV{3506eu z#H*Ezfb%{-Wmn+DFR`oRrmGV|3YR zSC(H{N$aaomG*P%m*P;vt;~P~+M3>)K@YiSrR;>9l^pcf*bb1UPBMjO%IK}&U8;6V z_PeNcq*nKg9P%m_>BgqeXL`;JDy*_P4nH1pqF`XO0LICCz$kPv7tIaUlcCvw9LWHs zj_pG-jM*&jn#N=Fv23-C;`+0p6&s-}2rG9_j|b+P0D*NL!7pDMo))q-h&rq> zsm?(EpnO6oFRx@k*E&foQHWtFyWtPtQYqtqoZx@#mnu?o0|Eng!^ihZK06g{M{Rlc zkSB>$w3|qPcv^oJB)?u@C0?6X4{2>vr%_2{$(-Fkhe8hI0-+wcnKdq%(vPHN&Y?h` z5IPG0ti@;X;()@Tf^)5kO)?cru^#l~;d@vWYJH+>LE@%g9BXkZv&KVyQ zik2EsRuoPV<0Q1*&0XT{4|XgqT1*^oSGc8db(#~zRSq)yfG5RdDHeyA?ml-zH#L6~ z=}M~<&Rh$!3n-Md9$A`a0P(046uzey6+$bEAJz~3l~=_L3)%N?yqFArZCOW3KmvHl z-j}0qgM`h22zNE>Xz0^xMbhEtwn9!q2q&~8!8}nw%yf^a*?O*d2?ljHAdfmq%mhPm z=~cF*HZ>?3@bNJzZ}Q*IuitAMsM3`!bj}rVkxcT?$x2R^yO(j&#U#cePSd8jts(#g zmuU-QZkY&uX}oJaaz)%g(?9~1ozPD` zrp-NS`t>%{&vhxoibyn+WQREOk6>R_@Y)s+0eL_ti-VCGKO*ga>yr~QK#UKmMJKbVh39B^j!B@jB`|WnDoRUaA0Jt_m zV&(0}M!o!~SMWl=>=;PpE2%IKLZ5Dh=3_G0ovyrfgTAP6vat~jMU8mv(uS}#Uj+xb z8EOO&xCn}m$iuM`q2!`t+UTLi`XfJuhSgthWkUyeZ0~*N@lL3^WSp^ctl>DNPxB*H zHanbf^sfH67l~?ti@QGVOS=Sx!{ok+R?}gX7u5EqcH=JR}_uRhT%P>G!D>_cVDuiF_d>(unVH#-raA zCJRUy^|*fG|FO!6>*~@{0xsy+3ZZ1wU@HR!gKXTfUvMtDR4hvl0!7M0IQeng%s z^R|V)^0}c+(=0$`mWFN7e}wfZ{uh&fdMo3%p?aI^`}U@T)LpJWo2;Dq;NWO|-K-=@ z3!we%_%-YxeC7q&s+2e_m*r8GC$}4>-RVUr__2ZSy8zf=CqSsXd2#)hwqzq{N%--o zR~E1V%l=Xg>=V4i6fsZ`9)_0)kv(cWj`kxn3#+NMY)_YvuUu4qCXaZG2k@Yi1l@k| z?+;o%!H0lTZj5G{o7Q%GMB^{Mvg^KDsY?f{Z1#r?rg@dQZ62pBE+HT;XMTOmD)5-> z%IJQL?~n02k_xioNLC!U^%7)lni1U5-}yGVyf<{|tbil9zgNIKt~OwXiN2vWvlzOg z+WA-Tk&`wcknyQE{{q&WnQS&(&dzqT^Uc#M7Ln^@-soYXzVL9$fS9gd9$a3nIE6p- z^HK3#y$PToo)5{n?Av-p^?Sw1w{#YEgpeBi^oy z;Db8|Ci~85qMUPoewZ;K?YXfZ+x@byEt<`ST8ev^k&=7<-}NTN=Tzjl*~a zY8{5cL-L6pF-lVRiW0vRyWP%iV6A_d@PGFwHX8cCkt zb;S9rL7mkkf9!0Ju{9#3?vp*oz?n&i96^J2LBP?$!9n=d*bC)4UnBZi0|@Dui^U#_ zuFvDL-*hPos718oP)`0)Q>5<8ANeeg_F&(ORoof2=EGi!1yM|;$J zSFDk`t{~Z$6ite+eke@B*Qy!>!R+?_vYVjQ-<^2lA(%QFE z57N-s1dx9mI8QT=hP6)f^5{?Uw~W5qc~8)%Ayp}Ku#wfAt@tuQ>310H@&~OS$bD(#5iBE z)bceD!4!4&CQN%@+VsVpJRImdF!k;i z38q#HflEc>X=@kYx}I3sa>I?^s)ED^zp4BqHRtbkN)&Y)LR=l8X)$EYju(n0Z#f5_ z#BvDmG{oI-;^83Wzg4=pWRmyh&?9Fn6;n*(7)}GujgQzfyIpK1sSn z`dtZzZ*iU4FLDV4tWK(rdwDu-1tqpNs`H28M^e$QZElj(Ti7R+63Nn=MslBIME;@K_pO^FgGn2jckZL&YXyd#+0?@S_jw4c^ z83DO&P|EG!Dm9F^u5x-}!FOHDwxgHN?C9ju=Pupwmc4z3C74_B*O6?#PMwB6Iebty zJgU(1WLvC^TuO509Mr~p&nH1R#czRHyk3CUpAnQD&`~&m$ zciR2D9iY5I%bC8^?>omGPfaz3)PoE>En(Vcl^;vbQHqXbufk*Q?#cYxdAnEyUGkN> z?-2#5cVK=c|8<$qM@)k*SN7gfyc8jzay2vufC){s$4ks|%lv$CZws0h2I_f{M)5!L z{p#WDpevA@IiJsuU>#8Dp>6wXsAdq0FL5P>)$9vV-~2rG5Nvz!GWMdG{k@kK>+_&% zQnQ8od>R_$qC@p}9smECPTz~jC`F@<7q2-ntajenfhd`eQdr+;9lf3!u&%2@Q zz17nrhpPvuOSe!J@dGh?-Q#T80yL&J7kj=f`2;68mDFeRvQNKdgs&Bnf6LUR_q%Sn8`19)L z&u=j>zQLFHoq;{2Ql+4JASFTbJHE%fg9t^2SO*B4QZemhdp%RONEBnSrWsc~cHy?# zECQFdm-@>k?Z31w@3OEciSHVmGykNB&~b9Uj$rc>sEnp zR}B5?oG6(asr&0)UIBVDP_c=)Lb;@7O53-!ul8g%=Xp@Y1LDXtX`))R3 zgu)}TXt0;-i0YtqAGvY0PbTjpH1?FyEh^{nqRj&3{?<7iCn_|AEKQ6B6dKQ+qPd26 zKS;%K+$lhRZHHsDm~{+EP_Czn)p6@+r~ta+E9^J*5_%%$#;Di)-eYpLBGt~{(X?5c z>`uqh@{AIkZl+CB*#UNRp#W00lLt~R>UQ>qk$Pa^DMmnso06tViAt489yPmY>a&(J z_6yHiUY_S;DSCqMzFZI-z!3GDq+;fjN;dJcT?mb%s%lnJ?SK<-9Ea~<{hC5eJ+FDhf8QumExGLOd%pZX_!TFeYIvik9Hc(ck|ezxBy$JA2Ps!v>wGLRZ z|FW{GK2WNc*luf-#_=Qh7}UAL7&ip;ok~;-tQZH^_R_d{r59P=P1xagB}oLlqfW8q z0qdmU6xt|5dE^Qh1kUM+m8gNnWT}LkKRZz?lZ`SDl$_iVOQMxN2`HAs4)Y#3lh-@4 z4^(N}FM=+E%wyF3!^L)WJf>=|={0(X97QW$&WbsRz(~ zVciv+hi(a5dgR0MMnj#It)3|%SH^{*voCCbSp&R+P(fd~UMo7zR@y92d`SQja^U-J zfKv7|W8Jhp94}vqUK8@6MEGwGpsZRW%RNI-1i3Rebk*6GWGhlM0N>bdQzZ+4s*tA% zmc2Bskha%XUi9bldi#fz8W`;<7jyzQM;ZBGm%o~a&UWD^Rg-dV*pwt^GUGG$`BPMX z)y0NlfSHB1!7`?Mnzo=1dGCRuQ(rlzDdSU0?WEqR~fpeznA&<_BmfK3e%@S1fhv9?l2SyleV^c< zB7aD?y98&ad9KFHg}UD3esGUTjJQRb_vBZreKC|0bCY>pRN1@p2|t@cF|AuSTpp8z zcXr^UQ%vo&fjD46Qb7GHug(X1T|O?h-Ry%8MJTs^$Iu0ZN~gMA53&WiGHTLibzBwx z06*YbFO?z)Bd(H2HC8NHDV^fpL+|=7bTDB%oeK-VYQo%&F~oi zdNbeMvZytcT$(WWf=C%+?G}Vih1K2V)o7m}bhB$Kb>kX+=_M%HU)zG15X z)x^%SG_3&wQ@PuDsj2l7UQd3gR$p;kz-t((ceYpSO$RbC&TFf-HGiv(LD{>@1C_~0(m&7|O1HKw=OKhe)*fRn!2mbp zy=6DVdVb&|)WTT1?^cHkF=U|rvU+(({lP6@79J=e1wcd-Os|2eAb9|WnrFGF?9;K# zNOYZB3>vs7XuM=Q8ED(0)(At1berV#-EfhlLEi2C6nsOYi(_e%T_o zdiKJ}rQ^!FLf;hG$A#NRD2lF88}Q^awwG^r!sr8iAFi>Q4U(5O_0+cC|Ev?2>)fdz zSGuC0UgkwTAmd2{l82+UMdKq!zWq}&IgJIp67E@OK)Z1zRkm{Zh%s!Ev02U!h4d%- zdE!>xDU_zw8b)WNEItieX#>E4Zc8TLk2Q6){v#vK;KG@uL6ga(!Fy`}mW1mA12fEA z{rJu#se6G7`&kv}N-+Z*@kxI8h})3oDDRY{^7624n~H`Tt1UCRz!|&WrH{L!H+h3u z861pXtX^y-VDQ5vc&xY=GCtv*>%*sxs-w^8WB z>vI+_(wM>V=`p&a1w5C*kMwy;=*1h!C+2v~~lsilB zE!|nfFBh+AbT`dUoBSbQ*LevxmfDT9u!@!C8eX+WP1#nD-lj~fZoc1s&AoHefu+{< zelu=WvBF4;-~!47CLj;`|5=0TQoyYQheGa~ks>vjGx6dI!KG0ZU$ zb_>b`zfq$;Ip;Fi@6MnFvcNk=+&5xnGW8OLW`}_u8Z}~5rD=IvEh6}W140x)+kV9F z(HsKCS<)fM%QB0oic`F0T*?BCi*80e)rBgP@HEiq4ULu_-7n^PyR)>K*+;}Kit3*n zY+c$QIbDgpxla`B1g*42D+;)sZ0eAIiyNx`FlIWX+W9I6ic#ziz& z_Vxc3P~~~{6eJ`&+UwB#c1E(9$cW@o$5IM3VKNsc#q$Vuz-@yI}Y*nuacy@s}Ytkz@- zr>M|MMTfQoP>sfU)Yu;Dq(fC=ZRA9`L9y4^a;m|sjh?e|CqJ9y9R!zwkEV`GW%USz zStSO~nl*~JHbmSQ!a5mo!>;&O$j~c#yrwsNvMF+MMIx(-+CndO7vo^7^=~rlw!^Si znH#jahr3HfYG71bNTqY&q@P|z{p$kT63E{6wJ$)8DE9{(`;2S3bV>%$CMV=U*|NeZ z6dqrYg4rxwy%Uxprfk>OjxbjXlkdN^eXBc9%|#ypkA`g)oQCwk_*V> zyMOhwTpw5~LUsb>oXaCNmOTH7QrM<^&i{1R?jwL*r~c*Av(%w^+S~PaHJ#XK zYkqYuVgy$Y3z_v^r^=L3qLgYH&(r@jmuyl7pwExu^cRBMxX*s?F&O-ST_K>w;zKz5 zWyntOVC$kbRr}6z8`G1hXuw85;?Fu=Nv#T0lQqsu-_AR1C9Vn6RF?R(#EQA;WBC8k z_2tn}{%_dd)O=}_QAnGmgi5G{vM)uFB@8jvq--v*j=6OD!`@TNcecjis0gaWVG4#3;!BMhj0-=|o zDdeYi7!BBdrU3VDI0%U^TFaa_2s$@Q-T?Q@I*~?KXOxfTTy}#>)98HTEwtsJ)BO@E zqjK?BYk2;aAbCW5xSJ)vUl~}yaoAG2Df!74f6LV*)m4QkcILC}{!2nl*Q}j#cvR<0r&6C_o*$9#6{f&6dA?p!2KdrL7Zz>uy2zNhUv*Rv*7w zrMndO$p%+{8$3oUQU+wb*W#Og;a>oX4Vswe{G(^%C2jbaGII5ih0%iw1(GHwM$Bn^ zSyuE-E(WJp6q(zx84?}_XH6W{7fzgDKcU3jcj6V-^;2m)nPPG`LrcTXf(9;l7e1jm zCej%v{_T?7B<)5I1O2;-sc(%!aq}I9>DlS#C(={%DIKe4&k;Q@%}`&?9=5=8jW?ex zQk62pVfOb4GHr}P%mN)1%dMJ7nQ$UYo=;?&Dz{(RhTKj!5iQcW268@@<;VNd7cf&? zAFZ@%+q06&>ZxhE+;31s>^BTjHsuzozD`E`1DaZjvtH z3o>6ZH)vVi@dEHJO=A(%;EsL~&$>-Adz ze{;0|!rG9p&HDL@`Y6Ry-AmhwE6rhH)yjAN?q>IPl%g|6Nl;s+|EZnqu$ZPBr)d+XGjpaC$}NA2WB zh^MF-bh3l@t8*Ih3%>kDQc>iu!ni=ozF1HYGM|S5Cx$`^utkHKAQ#TEQ zYrJQEikje@kIAlBbV^;P4BZ2`tn79Fa_SM9ff}?gZGFSVw^ctt{& z$?6K@^OJLnFmqtA@@%{|VgCl9x;wu;mPqohIUW0Z*BRe&Er&4f~_A^ zZ~Yj9C@%o>hN-hBDz)wq4oUCD(V|rvti8IrGOC&$1FCV_rc2FH`uRLa<`8{#wtm+y zcH!=TbEA&&r_QhVVM1;P3@!ePM0&n8+lBbnc)W ze5J+byUxMuK|iVLDFu4$r<`3(#JG#1;2r+7!RNtl({9{MczTWcrI{*=zW3e5=`eLq z%STdt+>JUon*3FB&E+#8QYz)j9_IcxPvE!iS&%N$j)O)OE~MAFFl#!VR6zHoyDRxQ zrU1O=@rV&;fh@3RiT|f(74Lv9=)@f{+Q> zFA6>wq$FJey6XpPH7W5gHkHZhzRRvP`;40x>X}rz}fESWbGL zLSJ*@dh(8=ZK5<3%bGQBJPK?hJYieYdRIx+H<&;dEgnU+h zJb~l~Z+2A5t-K&o+Fqz3Yo(z#)@}spnEvavij;wmKTEvh-LI zR{b4GLalMzrg`?|jogj7|JFZAz<=Ei=t@YHF3gux`x6o&rh#y)l!MJh;=+^De*sze&F{F#`lM-}w34l@xIyg;eBf7J$w(&{^;Pb+CR2mHh9LMit6;dajd6Zmf$_h4V*DHcA++1Yr1|1!AtOSqi&cM7W)XT9YiTo36Z{ zhS`=AwyYH^xVX-vsGU>(pFA32)xqxcrDT@aR&HlxQL}Vq=iu5?SJXQFL4VJ}E>~>u zwWS?vD2HjtkB-*MB7y&GW45_bUFlL5V@#;t-al1;VLfb()S+`u_7clu@aNU4iZP;> zPfeW%Xhw7Bfk>lN>cDB;ZA+4gc^C9TXs8n1es}o(fKt5jTM=A{@12ChU;eW(#twwlMW+ ztu2Oi?YYdmp#aOH^c?V!d+k&6d@SoenVElHPqk52lzniqs<8P%)%sD)xrkRbK^qR2 zd$Tm0Q?9zfccu8>m*_WsnMcdh3+FmJLrwkp2x}wGXOawt&bxhF{4xSN(tOp89lo_-~gL~+$Yg4wfd?6u@WSUtiatY7kE_YL;@=$Ly6 z*q`A3;*x;wrMT6NP0`iQ#m^{&Yt63l>;v?F+bSx%YY9e;&SCJKNZWCMF?5pLQJ(k0lR@gsRr=jtB($SuR+85 z+9P#9qi9=+trJE2@C0mOe_GIXWe(TYGdj!DPQ4mIqH7uEo?IbS27MAA zsu3$z=~pNnrwd;9UK%>#Y+RR%5BZ)zps@P=QdvPz5RO$=ey+H^#fTFuZ#JE2XgqSy z$$sBGuegvU%hY3oopdlW&YqJ=*0kJyqj zf?}&Frl~cJ)ys$6!B=U%F=uh|z%hu+vq9k1y#%)hCmLU#(5%xD8N+ei2-xeK)G;9O zf#L0BAK>k3PsTZphGJQ+3s+%qo!QGouH-_N6P=ok6iedu4z99&Ql)x76m|Z--DPu! zyyD^oR&w9Q<`)BSu?~CS|Bk#099f;dPPEW#Of0oxM!z_4Ft0yoy9-)8jx;g&>EON2 zNNi6m{$V7sLbvOx=zbImn^oK%f2nxh__kGQ2Bl-~>E@$!_u{;)48b_(YjxY~A$M*? zNRas1>s@AFyTIxv()(f`pzm$W?xx^^0YzU6u@>?geQj^%5*zq>*Zlx=WGcEp-uIE2 z)BO!~2U>6I!b{jl4%Z}F)l27u%LLInI4yB5%iV&#o6n>f_67VgR?}^OU#R1~hISQ; z=KCZy-=U!$M)V1Gcod({f&m7D$#6LPW^96xCK4X|6m)n-G(G&R3={TTx@sln#ZlRB z-X$80vaF0x7SKKz4sNH2T!?+`AAwxEr&mz8_M@8##uz&}x|HiETyYSICK2RaTnkaa zaGkF2bfnXLo{vcZn;$=~*56T$)GXaktUbyMHmrS)?txmi55bNIP7i(T3{cr%d6edO z{^>H$^$L9r#=Xyw69JUHhgB9{o82GUO@HlcI{8c2A`IWNQpk_8*B*L!D;cc>fypR; zl`;%qFCMm@v}^cYcgQT|<7m+ZzW%sA9Qam(-?VJAB%t%rsLJ3hlo^2XktCIdO%)G9 zH{#_v3Om1aj)|WU?%>_+6wwLp;&p61^Jw70diVP<$NkD?s~%77D&uo(_1n6t&$T^n z?z-3&bOK>)-qt1OQq_k5y`QkMF>jt&OyX~EYX>}a>$IYdI|-pyUd_C{@*YH@d`wu4 z7rf^-Q1l+&Qjt@ySLh$Jh@7#d!O+xAOz8Yf*OhiKIpO zS8M+nQB^y)EQr{@*{4Y7%@&oE#q0GC$GCVcmr2&sdJzmB-ht&SZ+wZR_ba{LOtw0` zOI|mMo7UC+NwFz{Hf5tNNEC)Au4uv(g!?$29Rg!kY;%S+dfw-$E%=?nlA0SwgKNdW zG4Zy5UpfkI^7gs8s_=YKNlE**5L53F=fr9ySW)l1`Q)UkVX$Mw;c!a_->3PA7rfJ- z>6NRii)Z?cqA4edlh^nbz?D|!B@iqRpDO`!i1!})4vccW&!xVL)HskZB&{^pU3vDZ z>1~0B-FPB3yvW8dw9rj{x?YGj*bOLaUll^cOwMNvMYbnn_t&+AZ&>YJJ>V)dmnm%% z`#?pW`8JnrBk_LfBH*-DDWI}KZMkbUQ6Si-U2y~G?o5?GO(&x$7V0=DZ|tKMg(@Bue9_#= zRKl}B!njql=lE}ti2=>*^K!!s6>bv=8`-WRfX+`OSa3`>x2T)suu)yH~L-_N)g zUV3x4%-%R628`{pCp19e4AWDsSDJc7E6*#|Zrf#avvVe?YMeMDqQIt(@ivq#{$#Yv z*WH+de_vJh6u2Vais~Klqfdnc?<2s(9qadGT05aY<0<>|Fx7~@Vyx;LTcyid^8p5G zLjIeR@->U7EZT@|)~nH?OuDhnrR-0Kc*lF%z2*I!j$?$Lc#=x8@zQV+D*EYF1D6&>){I)z~wU_&sP*_uc8A_)g3+eN7MaIT&+StIbiTt16Qa% z=jp4)AP?@kGsE3iBb&feH*OU4M)=W+>U_vWR@F~oyL{t09go04CKJ{ZD%|Z4-%dzv z#w6=1Nj5>N#4Ec+lCEF;9FY#jHsYJ&_#Pj;gY}tf5zW{_H*nQCgIehA+Pkn~J*F-( z!XLY-PZ8=aJXP6DN2{UHDW^(?3 zp|x(v8Ix&Q5zxJ$bc||&%$3wpqIGepriJ?zAx)j;<$ColC&pRY#`ZIfrG^I=g7|!= zt5>{g0yjKagltGut0GlNwG=U}p!CNA>>c3VBp~TG$p7D2DKwnd@GJTgG&H5|a>PD{ z<)@VK)!5-WtQa&OkA`A;4MXxn6p5H_+dyGMvPP2Ul*!z4Z)x#_*K}LOTFl8?pONSQ zsVTsvfNpv!qjr`(VD#1{5U-TWo>*PyGDRqoY>k>_$Gha6H0W<-4Emq4z~57-~ki|*0)7TS~Bh(&wI zdW-{DXLH<1{jvWrz;^sN*xrUIie+=MQe{TvK2^+}HGM4b@TW!g(0-I5;9J{LMS?Em zQ=-G*aG^QvHq6j)_Ofvtt}nw;fM!c=t1i?Og8@v$&^ zS8S>RpH>q>Nc2#sn(*6T%jm_}6di27wa_pF4|FcPfrJ; zDtq)|ZqL+J9FQsym=3G(Uc*;E9ZY+q0S9e5E0=X(+-{XvQP}jT6KvnIK7M4@Vr8Hu zdEmhxnc58Z*TWa9gN=CA$cF%xCpeqWn>?j46nGk`Oys*wF4gd0?sJ^(BbOr7xr<&} zQbNjuQW=#^UF;|6hEERgu;Hsk0S>#CU1){p`n24x!dv?qvDMaOfN#? zvnBudMGMa3R~$q3d-C<8$Ae1T6XN76AUZVG1uBHO<#?wR=;tF!UzvLAwOJz_POSW+ zzVe3&&&bL9GxYpafhUnJ!v;QfQAS4b0~)fSfH^5~qFs9rFFKDIR;LI;%Fc?<35r*8 z!|c;Ig_8yfYeAl9BLs5fDw=baPP!WFtY|d3WmWbAS{bQ-JaIbg`?y{G=AIb3p_-(a zNtGfXD`imuG3q+~+7GH4w@Lmx3!$xtHk!&r>a#j$=KSdj(|pi=D9{2c{HENf*<_?p z4c0Y)z72&;os*#Pm6hksP8S3*rQmdB;r%PmL0$H^B2(`THv)ux%)m zWpNiF9Y(n^+m9;aTr#r!N=(qaBIHbHI_X<+Lw}(2nI&I8*Y_C9^NDkPQKx3>W$wS4 zr~^u!fO}nCOZD7OvtVrn9t8VT5&2m8(ObENtm0cQ3mfS`BR2zFi%CU?Lh}ksyaB(B zYHeJYM`0$7Rt+X#tV@Q5Q596>(7HMe0=1ek_e4B(LCAAD>0wkL(R0iM__z53lx|<_D`)Y?`{5d5y0a_5b4-E!7qe5WCPKjae zg+l#dQ?)1?I&(Hf!pogn=F}l(Q^@SGk525n6!9DyVYJ7@aqEyel z4^A zkg_vUJ^Ec5S~;MVUFl*;N>0~{+~ClTPFIO<=yT;G&(OGpbLOL}>$g6k)<+^4Ea};m zHO!0JMta_&WIuf;NPOgvo$7@n^=n?>d78j#@e9xZ`>yU65TlE#S%lvsGwU z0W3ZM{*rUuyV*OM&t3cscU1U-9<)!z(z_Ph>JZH-)@5UV1M3Rn>qD*5xogc?Gzeg{7 zTEoWXbKwmHKZ5ENno2h@!y6i)DxjZJ0EabKTy+>=)2JPAy1kDaWuT0a=(_V+8DSV# zK-g$H3EiK61I};DIB&!E5#5b!=F>pGf2edfvn1w+@17NzV8Cmg#GX;Hn%QnHa=VDJ zZ~%XEq#SE(TbL%xEI7Nsg{}ynMWEK-wJUOb!a(5sA9DuHLR2=_=}TU;Ypjm6 zt#O7j*<<~(XZt^jZYH6e6*8!jfz{avx7y|1d%wEB%pV5ap&GwgO|0^ebX{G1tnyn{ zUSwQ*c4$M+T!`KtX;Jls=QjvZOV0sh#{oCunZG*xxUcPsuvdp5A{@{+yRsfQSEk!a z)=CkZ=`<@gD5hzJSFuH}y^>H=do+2i zx3!PSob*A^S%>t_=LJup6PSR-DNN<`(>1TD_1{ZH7zw0a`?WszyT4Y-@iM^RlE!J; zUij1jq?vTd0M0+l=T0c`P0POoN2(*k2o$efBo%(_hHWpcRLU1;f=dOgsNLCdwrn>d z`tdWUumC-c>>sz*3k?ly+|2m$5qk5L=;CC)fAI`0U*k6v@h5?*?cJx|^tDoY);d-x zTHah>jMW2b{?7rgh;VRexOEe{+q6XQ^0YK3YZ??PEDT`^UsIh@uP9Vg1X6$}V`!JJ z&|p3+1L-J>Tg^!u8}9x=y)FIrUU5x?%0IVjf~u6)hr_XU^^f9LFDP&`1GM8li|=p2 zY;5$#Qw3%4Hp0DEqML8vj3c?qziF+(ldSYiC+5R5kQa(;w(#4`7jENL`@m3;{%+3s z-;XKXch7o$vF}?y{$ES#-P!a*qR!13>97$j8wb==VjSVQD@g-kHt5RWbtkA1%;jku z$WY5F#JopDfaKwf6Sy!0Xc&+@>%|(;7g{2OgDL`)mj+6PAegmE)Y*pa@n~AnQ)pZd ze#3A8bh~RlJDuc~nNp!9J;F@ZWdufGEuyEhr~LJ(dFKt`CobuvBfu+1IDjM&q(TeG zg`MZUN6v0Hl?M$1B83xC8g9xEdN5!!*)A}r8I3UjMP}e^hfs^wEMVO53;Dn<r3@m-^)7Ysa6Kp-tVgD+N=5vy$T2bD2%{7j*Zy zKT4C8*8s3LXezV$^+4_zs)fF>@Xk%D{7LIEl}3QHCX#G_?zdqU+;9X9NO>=xz_Gc3 z2GDPjwaHrTN5`4#{=u@CU(h?B%GbX&*?ns`VT}IR<)U6hAGk8yo&zN$D8jAFMn`qFq3cvZePC>OI&95( zIo;u?dH|1P2Zze{A8pnCC~|c%tG@mRe|;0%IwNla@cnVIWxtt^ zJ22tgC6kB`Y!^TS&>|xk-@t5B;od%z3$ytdRtxdDv-hF52oBq8qg~R`=G{MmX#skC zgRdUdxxQHVM!8O=&$>qZL|^x5d>@d|N1^VYk7p3A+9}kb;-9930}*}rnLyq{vsxtr zx86itIL*CT@NZ3mb6)0cl*P=7gbB& zBv$8v!A@6F4jjot&gZIUGfd2CTc!mU$JvWj41%@$2MV7Wz}$?l%fn3fjr`r+Suy&mCS!0||ONNlgwlSbu}>3hYX zXM!h7lwiiU;K}*@N_(m7{q){*Qc~F9t>v^J&n6J(p_Q)}N{n~XM+gf%et(;>2XyQ~ zQt4`XaqsYXY!>Q?VQ`G(k1955x{$k}I(k?m)c3qa9bD3ESl|#~N~Vtt$LF%Z zIP#EGTeZqFXS@a`FsTkD%ZCZX8W*hF5aJoXH1@?YdF&PZVo}ZN1yFC1b29Q2+}+=< zHe~!%a%!@Z_SDqvYnpi!cjXGrNdK(1w^ur{4bl)vmjAOI_QnA#*!Nl4_JI`ma-)`N zBMD-uoqC$;=7ueWPZ0y1Yi6}cY?p$)NPD6&dfWw|HH+*6N8f>>eT4dXu`{J%73ms^ zm%ejhdu!yko~W^S+o_J+NV4zET_tRYfiTFsFi1KtlDq~LGIH9ZUWp~LYXM&jwxD>p zzwv276k}s54F`B4(1X_=3YukennIde$}0VOGoJbNH?uj-50P>p#~fW&O-ZQ=Ycf5@ z1K&CUW2NL^z|;!?pirhoLrU8m9_0G{T7Wqj0|ru;a(*?`shNSo{<#SqI129Ib(Oek zypT0~j-!pY=!{8+q+?Ec0G!9<$*jtQ0`x5m?+-mmt+0Tq``l%qP^9}%*RrkR9{RhG zAZcEGvae2!=23bIXBdK+`mc}{sCcF_o*a(04PdrL4BnYo(_=-Mmpi`VAJ%!R0H9~)Nj7RrbYFHzhabo;6bkO;aK!(-*RTK?LD;3AQShnRD^mLvB06Ka|g;3+wGlLI5?2$I81RI*-;;b5$IT9FPkw z-~o1JLU?0s71nrIU^9xW!ch_4h==U&#OV1#^seW|pPHDM*s2I;=2Uno_UoOzVyE`V zA!mV_{z~B?yvu-$}0X|1j4h)c3Lx5FIld)S-Qp*V3CCTxoj(bQ!Jr~1H%3D zhqRD8w*=g*+8p@wV=gvlf%kRu!rx853YfULBqA~j^~$U3meN&yOVWflxzJVNYF1>S zSwrBE^DgPS5!@s!15J6Jbyd;hdeMFzgA8ZIkSC!GZ(pnIiW~l@1#X}+*^Z<2Lk7(@xG zJx7tF8t?+g3}^cgE+Xf8?5H1?qu{+|@4F^vsY;iXdvTw>>Q1OSSd27$iY-lalIj<< zZKIs~&?hE8RL5w{nq}aIf=F_%J;UM>t*!SCwjZvrJkItjK%+E5YB(4T4&$eOEv)|n z`Q=NyKpjb)&```H4T|kjk8lqcwX1LnUDjwA_Q_e zgZ%k2G}~6OH)8sE&%v)gM2DxzmY#^ge*&tqe$MufXV)5nwqiteUFUjAwJHR1-FK2? zB;db|$_;bf`F;D92pu%+!aSPiGm=Q}9xttJc&&bn2Ox3}-MpEH6qA*et$y(s+l6$t zJ80s=zE-=Xc+y3>ztwkS71&z3Ug}CBt9w>rGai(N(pi2)u={g*$W{0~Ky`8H zm^`ANU3!6Ihl;(t2cVcVKiU5Y6w>fMI9r4=GFM> zFMul2b#UnIRaFSU9m$~FFZeCpMdR$3mpn{Akg+(UF7;}MqB7K#~wSJ#;on0 zP$c&~vUM|W7&#kA-lIp=fo19;G0vqy9hSw2_))9YEHsveQIE27`tA~!PAYDMuW?zA zsUY`UDji>VZjyXnxc(bCx!|K8D^h@Nep*rz)0J;V0))AHarRR&9;bfa0|vMUOB)p~ z!JUT#y@vg-Kg_Ae!w(zUpa#y@O3y{YfPc(9FCLTOD`seb~Wxxj}%=G+UhBS2` zlYzpQ7G1rGiHR!hz-%3EZ1H@=m&hE!-MACRiTg0O@y>{3*+pOPF18U`q+_k0-T(FdfR!}`Y&^xO28*3PY*(P%x!GzP zUg05qiGXW@ghVq=V(;0C@Uw0agFvIihnSdyLP3$$U2h659i!Ay3hs)4DM`ra; z0t$XvXR*+c!hiuZ8XZ_s$Vk`rE%5@8W-D8+#)MvX9dg09?IQ*Rye1(0@|p?(Ta^WV zAdk#a@{Du7tUht~{{2O`m)TycG;E5F{sA?-3E`d-~V*tw@r>(0pQTmNaq_} z|NAoRY_nBW_gan)J-c$*3Pj4QuDXWi#E~9l)%y20W{0S}er)1V{0&}5>G^o?`0s%` zi$JTJfScL#vA?`c(xdk}Uep1l&f*He^R|w6>J|}q>gLAp8n?GRmJXeJed^d~Ura6) zIel7M8V3w~*?4kIGhzA94!e9iv^&`0_*{2Y`Bv&cfa_G$yLjK^D=u2i_JV&!<`A_& z&d%=czSa~)y)IHltd5x2sU8ku-^l@}o6M+zaIaO3CBHkwa|G#xvTxpdNluQwD)avR z`*^?=JA>y1wxD764oFPrVY?uNAa-~6N^eb>73w>Tjz5V{P3?9*V({1VQ4>}H@gjit zj6wHxC!VTIJ{#N-n@fsnlW>s}zS8vXBcR{gG7NGF7_!KL8>5YS_W$0$A^(VSUvNKg zdC$)0ZO5_?YTVv(fV0XS!--W}qKl&BE0(Jhh)3I?jEfr)X|sG;L6(c}_lCctCOj#D zv;UM^ulaych_iaH9ws2?Vj4-N(fD<5+;H7UZr&OimUk;*pS^AFLt;w|D|0Is-pn zG?fB3?wn9BNT%-<6~Txu#*t?7Oc0GLUF7xQKv>M{*K!gV-xgBASGJu;nZ6sy6I||e zvTjc5gBU$z95Gsz*|}@)rH+jkHXCRgDnoTMLoZR`^E|y4LP=HK`Vpl(e_L_vy9}fv z+BQO_O`*A!Iqg^5VY&v4!gZo4#iv=aKC?=KtCpTtEp~f0x3s*N(46SmSqGtSxZAJB z0HCo@EVeWBOuuQD+fzpNDG?RWMawP}@&*ZeG0DUem;wwh@(WBA)&9@E1wax%4nA&j zC%7AD6k1gkS;Z#U1XfO9&UA>8-gqqX1Y(ar5b|4?f6BKN{gYD~|5e4mc4Moci1ls% zYTa^MvIX||%?jn9x;@69T7Czw?Kon?=B$^|eF~W9^r}oOk7S}dAx>9GS;vR@ zvqPjj&WW1T*iq?GuoI3@p>Ou#K9`MS-cx2DRwFl?8gT^ca_jX)D_?U9e>@5}Zd!qs z)8;6+Ay2r9(cD)*?cPSIs?M00n7N7IYFE~S8BtgbB84i7>J?W(0RDb1SH^Mi(l~9_ zsytzCskyMCq9@gleuRW~c&3*k*Cq9F{mwDfpulE)?QUA3@#lr+qL#*0I0;UFK7*Y1 zo9cb|geM%j$utOB5%Ep4O+amWGAPBta2M0!(&8axzVhaO4ZHoDfd_@pL%l*9I8c0YChsBZAq46 zl+XptT9kh3J^2f) z1l66_wb4@%Shxpa?sIGb9Zl+k^E5yH#AH&xhYrK-AY$MYIM*?UezL?n>Lm6q@P z(Q&F(4tJ5if_?0n4Lzp#Y7OJQ>W4xYj{bSb{m>F&jNqHZw$T2=ILJR5Fjnmmny+j$ zEwFYlv+;V7-(KCD+>$8MC{(w5z8-ue`~BxZ_VXE9f9XFY+YuF%vq7@vS44t9ffLAw zF1ap6qbUofmlgxEk6-y+%(|*6e6JpESI+O==wDK3Z|1NlX~V*UC<N$Y4bXTF7ek?!z1ZY5QEH;EyVKf_8 zj>v3wh(s$~^e%-wirjbP&cp;?VLVxfJ1Vl;eRFRk!}R#EA(A85JE5ksM)r$&(UAB0 z<*f#ua{%hSv}iwVXt2=V-`{@C%6}7RR_?p6$~-cJ9OE!6EszrkrjH3xjLobj)^b(_ zW;KE7XsqQBsJue4v4LV$i^p@p4*xnsj8Y{akYm<$*;}G&Ymm!&aBN3d>QYBFl&|ft zd~#&hEGFO!2Df(f=7DdtIk?{-o}Cta*h?H*7nK+^AJ4Dk zl;^{eq8XDU#Pf=@+qZj`;=YxjBZhk{tRaWWy;Os@epCysMG26YMU5a0 zcRdQO2PXvF`n>wVKy}K-jL%oQ7Heu`I7rln4+ItO+Fi!XoBU`KTF5&5_!1y(TKYCG zh)xZA(>)_j`l`LPR4Y&j|*`_ z=9sMW>lz_dyWj@}t3o50K+;B1`W&M1Bw@>v||%RAKZ%;*&BOit{vlMhKIh_zDAmYH9Wo?A4uf&(Ygd-}Tyv!G*BHzQi4 z@K{^33G;ZMtnt*XTen8S`}Ywa+1HkGZsw(U&gR9ZrMU%fGKC5X%FDZEw&uiDX(S=C zn9AH-``wpuP$;{lRqQS2&512loP`rV0X+o9W0vaComgnC+9^I%F`>%z8>F|m z_3gJ|pdpoj6$HzZ$70^`1KDw7Mh&fC*E1Pn{vQkU-}}%Ey$=28eEprRi9E3@>_85i zv(8WJib9qtM`3q#hw*sH4qSf9cHxH?L1L=d88L84L&(>`ru1XWwlM>-Gw2Jb;r_;v zan=H1hy--Y&v_B8?(be++RTu6UOf{Jo0G8FDoY6-)JDmA4W=s%;m5Wo#cxAGDg64V ze%j=s_*+{8rL77StCiZfk|;Cx77~1U6uTU)(x-1z(O%OQ*``2h-S`>_Utc&76w|0J z7}R5MF|WEGM>tDXtX>;<%;2!fZ8}rqJC&00%tFv0Rq69K+FS)Z)%%9h{Jyk$3+BA_ ze;RCcVyz1i)|6b0%w*0-2Rrs^LEeo{i7j?s*dkJfR#1&?0Bp`y?ccUP|Gi{iflfjZ zE_$H;F1?oQEm9NZJB-IK`rHe?P=7O&4NrzoR?(FaWPzn<)Njk5b-u?>+!bBa;(fGX zuK+Ndymft6cdV}s)oNO7;UG^K#`ZGpa-UM#f=3h>(d1$`pCoV)Cm1}pJr~4nAczpG z7pq{6YPnB&R2+oq!n6Co(-DxbuU%HPFKpwPx5GxLif}mWwK^)M1PK?Qi?la;_1S#N&~R?9VK4Aed~I* zhog8Dj?4g#pqcx14KU*k53$F}PECTG`y+V*j`g)Z%W_GLi|d+9YTVrG5wZi*joJ1V zO@M5cp5^J5v21xchSuYX`wDSG-9JY&9jEk<$@;JC+8v0I%JYcTrqzj=%(>}J*Jj-pPw;OKcRr(NT0n2X zqv0fb$f0?JPkOA?Vl#A}lmPgW1m$c6WOjW~`eU9r$UiLIa2Y7d-W;`Wd_nH~F*!c| z1`(;C6@8>*#wz#Qq+$JvevLW5>GMZJfI1TIp5^+71zu6z#ViCG{|t?(l=ckdDT4E{ zf>u=cs{?6laYfFA@@n`5wrJzL*>j$tma*k?SDb&R?Z@$I?!CqS{&d>$td%yy4wHaGg7g z=n8uUYNik^_S7r{^`(|`*mvQc>&}UnV)apw|h3EP}|!xyccKWxX6_7pZ} z=mmIRx#bm#cpF=oUKIpazorB%4Zv!eH+84A_y2b-33;E{ zPPq~6pgpW*3p_j@sJhy<%(kWZgoAI*Sw~|6*~VDr`gH><>;RvzHgI7c3~4!Q^|C<$SBD!jOnyRtO@>!=#f(Cbd{N75@gq8 zhT*%jb4hukO$#ISk}@(fs|F86eqSZ@4d7}SwV~Uv>wlzKDDsXaeWY zT1rn@xSRqUy?JyE0J7cH&m4%QTvhtBc`6Rycv-dA^!4@630!R4i8>zVfH&62AFcWO z0KdKQ)1|?uhk?OY_mYiCRzzD?pOqb&>s~|lr&RjC0WDUUbTQ&-<-3kC?SKv&-x7J~ zME=4b?)fQ&W*rlYjiD-LG%6a1D)L{`&sH?E`GHO$FcJdP;9zzwRt!`13nby@A;z=R9Kh zyuJ77DlNminuv_AL6We(WU!bGOz+2?%mUx=y|YHWSLF|J_5Cj z_cZ`(^g8iwn0evuQrsS88ma++{*bezRU1 zjJ;G5L~^V6MtK3nn0EExY1i6>_^9ovpO9;I_1~TzC5;#9PPa$$0ORszvSQBx*2GxU_k5=ljORu*KA^Y|C@9>x zd^?&k$afo`Q)h;VtjQ0fWJW1``w}hW*3{JWxAgh)Dd2T#j@sM*6&|>!_l7=vxCcN_ zBXto#zG|0qTcoE}WhaXz+y&%&JOM@CleFZPR0Zj|%Nh zq9Y=sUWsV;0h7m>G)}A5KX;c-*bc9{G0Z>N0(cy1IB@QZh(2@2J53ktzm)gl02%R} z2lwGsvKK1v9!pELHl+Bc7L#CO77Zr1bx`)nIG_==Xq!7QIMq9O?a-fV4FERS1N$G( zvHhJL{q=_{#-f%_IB98V<;(XP6CK?MvlKHV^i7y4ZS3Aklv*a^ygK}P>fo(eDp>=K zmEGltKok|@0hTz!B&Q4?+0iqQfYoz{P4)vky2i{zAiV+CjT&(_lZT*&;&o1)r z2!gAwUP{Ej1ta9ej{%^S+B&jm0Hw4rps!p+$G`v=9XKwswfjlvZgwQ~*a!KYHz#}* zFjUBB|NKQy!^ zFOc-Fs>%HorTz&`<-e|{hk3#y-Us5h92QSBAwRRdM3@~J#s3>nn)^Mn|CN~hzV3-? zG8^D6nnsyQSzao;k?)CW)oe^x4-b@x`OvEH%vO>2(N219w+FVYvQ~4{&e{0CXs8GR z0~ox#L;phrz}1x4)!(Gt&}bw~bg2wmn;JP`ijoLE_0QX7{Q^taoK@ecke*pe#F$w{ zY_=xRO$qIhkPr7-${?s|O(YX&xVQy=}@=%_{Jn^LoP5X3AE}XVXc+ z$Y`Jf@_*R6?szKu_n)mK8d7#eOGXJHoT4FVC}ew*c^o4vdlg!gin62Zz4s`Q%H|ly z-r?9B9OHN0p0DFPuh;MSqgQ#HbKm#pzUKRSU)S~NbdIe)NpOq#>I<4b=XQS}kOI}s zlP%zhG{u9QbmWhOqpxw=-Vc$Ev#s?0#YU`gx{^~6)sdi0BR)`1{lat{&z-_jT`bs^ zVr*=BZ*QuCj7qw++xn{5epjvzsZ7!T#eO{X>7dwEGDV~$9l3|I$0LPpVP2wZ|2J5i zmMc+kgSD(gQ^$bGqDz1Lw5jvU05Se_s6_Im1TFIyo}T#2`8B6z0f+UW`z%*nS9f7x zx719r88_Lsb;UkG&C=XT7gW7t2vkTzWLyfgVc;rk z8n4=CmOI?H6;sa#KuqnpGdP$0{dr8X9uhHprR^~Ep=4wZvWbo&4~_S6vrG0VbcEBb zUWJ$9#iQjs8VjyEeU9sN&9N&?e#vZx9)Jzi9amVj2fJ8oNJ~>ZjA7OBHMuYXS>Uz< zh$`2wUr+1o)G8cHNSyd1QfJmgP`_&zme{GIu7m&H;Wl|XS6S`DAKx?6(0eIefbn1J z89vHy&%IlI<%}NmODtM!ELzxgn8cp-c=YIM;8rPY7B*X;y zYtD7bzgx>@%I(N{FM7VC;{}^jO57jfL|i=6PmM{s-G}s$#a^(dxJS**|Ipc}A<^w( zZo@tZX9F)zy+p!!g<+~Em`0vMN zF%Rv$hw^SrK5Fg%BKumSHN^lNS+TmZiN9Hw{xb+61_GZkxx9mNs7c8~BCPctpBEqh zM)+>M>jwfy2j=xDJkKb9h08^@6KFwQ5(5!bV#BXCJPNZ{NO&ok%_;#do%RSEKSoK)M&c`7;&9*l}aUsXr{^w9}u3R@aA4 z&n;T^#h2#v`bkY*C|sTWjZey~%@}+%7TvKboW6w`L>({FJ$^TOP#4+Rh1kYeH%?u>P#g-3F09U#Ci zo;Z%Z|6}p0xW|{kD{R3{gA-8yvaXYE^^;jK_QYSmer7ARivwc8wGR>E|8*$LcZ3s5 z>WxCJyqO9j+}0g5i=L!^2ny1)o?FMVUn(o^TKJe^-q{nS{~E1+PF5CYIBdAAaDsRv zabGrjgF}LbQ+0T8j-5p|ORLyNjdxG|5!QpmW9T&hiFjDU+E5b*2Zz4I8B!qRTY$Rx z6!$Dd!%fNZXWD0^3h%jp-SIaA{vv%(Nm$DR5-2@zC~x)hb~XvRAUSee6Oc)R%Yf)$E!Hy!f!N- z;{FF}bw?J~1x4qn?g}rj{kOcCvX|TLwf0&_b$)pjqV*){`C%XEf0WMmDfl&cWIgbqSI<;k z7<0)xbI0z{Z;QXYk8|g-7V0;Cc_SH}16YRP%TIa@8NS{#k>L!N8q-vaUl0Id%&LV&gVhC>+V1Z3>0QB6YyK zcNmzqSEB6j?di@EmFjUA{hX+poB^%F%j=yrH5hbwOTXNu4D;tH`!33gwtMHlams_H zMZ0k;q>ZPG`u*X_nCB-&0^Y3-G*?h7+To0)S_=wQe&j}t9%t2>D*Yr{U|E1I4l)-_ z(ar0&cjLw%=TEUdlEaY2VmhAl`&lQ8V7*LzeZ`yL`_|2Icg2iqIi!X^>La5?yL(Z% zS<;RL=9iRrBkr6#cvsTt=8qpg>?T&DnGyu5y%!+z+F0@ta9t2(e=qyf@8Z}=sh)+L zdl7}x=?1?K7H*Wt;(}WeF;5edE{soPu5yPHkiPkbxw>3+AMWmq=YB)}r5j$!+J%(? z?*cGmS@EzD+_mvMPJ+tg35(w4>L3Vgu5)v?ID)aF@_|E@EJjiqBZmt7mYx44l~SgU;Rp7zqk z8auO|$qhZ34waj$bsOt{W-oh=4*d>nH%eK_`jCIP%cnr*$x3u?UR>KSmqe?M?n;5n zhL3EPzm8>zEVq)WLpvY$oZAzBZrSd-l@$HowY51!Zs)R?n_(TvBQ>?mqXLlKbO#K( z{4XIvQNo0PB%Z>Y9BiPFu6gNljfHcY_T9TycTm3)7YI(C#E7fY7oSY97JL=#S)|Ba zaZG&eyB@pu{DB$5BzHm2#*+=U^>p1#>y10l7Qa1Xz(3u8D-9BvU`Nwyr&IoRc0XVs z*)>j&xLm&c5dz_Aa~>GpF76Mu*zWPY;=9!2@cJf2eI@-**4$QoYHVEau4{!oInE1H zv9jyW*OpQWCkpL5O*YoLq}Gm%`;ToDEgwv@TwA{^H^KLk6&EXOs}j<*l4{}FM2BN768P?wbob+-_oowYj6gK631Eq6 zejpE>l=Got+1KlOO=8dI*J&06Z`!-9=TdiYo7FE|1E(ibft47IL1_v+0KVAj(_rl$ z5lvFglg`JyU|A@=hX&_jvf2|dnZB~(NUY`D=-OvCzFIQJ8CVBh+V2oZZf-K5j6e#_46 z#1%W`5(h3C3R#VwnkKRDfLr=;@102P`}YTl=B+IY6K+8qdfipGK8=QaUS3`n!>;8% zUGd@n!zFGW8qfIr_@Cy%Ph)3mNoC}f;2my#^NlRp!yT_q=7r1XUk$OpNR%_eWr+7= zsqm{U+hPk#I@zGcWEx^Ca;|ahoXQ94f%B}MJ#$sE9V03E*c3~b9DfNrk5sYc#-LJ; zq;LP(G$iTp0T@@j*h01qMGqaxl zqWVDEvbQWy^U@^`rVJLd+sGt*e=dAt7Sl{}+jiLD;PG)!Zc|g!L#{Ltx;QQu&CbE| zW67K*ySZh)33X?gyesX=ckwCZ?k|yS`!utlS=zTzwl-HxfNK2QVMRs7%>B0|s|AZ! z&$;z{a!K1m7RS<0u-(tU1Nf2_0cq76+@}Aqelf&ObTBxXsn(nb_?A}m09~odpuH~LIfD0ee<#WkGABmfm{P;#0qjX*(#~jxsKUmE85_TLXV zUUG9D^Y12z6^(58ws0qX9_V7>Uu|l)_M0Xo>}XhOM85=-s|I&0{ z$=B-iDo&#U?X~tq{NVmuS-NZeL3SS!hxcIg8@o#$Y!!Im_)u=Fcd{3uwL__=yN5B&96y zs(l^vwDaQYu_-#OV~#gJiRJT6`^`Hhe!w|AUQv(Dp1Wala0B;)wVg1vnzFXoTAB{E z&4NI$HV9g!XQ#iHu*tnEG3K!UHnWa?rg%_jv6%SS+IsD=itWX@d69LiX(pGNnf*c9 zlPCNgR@$!!xZO!yk*ZrO*Pi@lvDU}2`kB+L>Obm|#d0Sv8TLu4B)*VpywjG{yYlmx z|9rXilH{(qmeY5{NuAj4sJfltV@klT=13Isr3z$+SQIv_T~asNbTv^mH zJIwy-gR@Zsw!ofzxHE!%}>E)-zYgpX6i>GXssKXx#?)5b3#nEV)K^bt} z0(_!B)+aAdM}c9{1HD8H|BM>5==?AL zLiCHq<0E6PQ(q_3vVb?RgvP}&6Z5X;v_HC35lYZK`Ez@4!wI=Q`KjmZnnk9ND*3ba z)|KacK6}`QiHk0i!RR%jiTAwTDB8cZXWGCGK$oD6U0)Nf8(-N+zuo=F<6h=LbHFTB zD}UCV-;YZ=*pldeBWWw^rk^iD{qe>HU(ZP0^Q<8uYtr~4VIngyFxapv;)&;Lmr_=H z2ZwxwYbY}qe$LjkqK1x%i^EFd-&LRgvlfy19<@(#4(8?|Fc4i`SociJT90KOWGTVW3!O z5!wF^3SYqpjb4ldIiq-x?W7H*v>c?G3-Vg!6(Zx~tC0?+@z&H_SX-3qbReN4T-+iY zDL^LVkuf+LSg*fYKVnI}6?bmhWt0sy8ynk1a&C7NLoFlZwhyT)&SN=BxvFA2>ODb0{eA#gYmL$B2_X{}P$4<_O-=xA=KEodne) zXH^mJet86%aEQ-&(Wa(H!=F)F!ZNVild$e3qiHS2qTuiGLKx|aU}rLICH*h>fqm4R zQo8O)98)Vbg#x?plIxjm$Z)g>(BF~d2c$8H$f2yfK`AIa7tkqcYYzSr4J($PLE=>t z^I`)2^HU|HGP0fjsjRH*e26RS$lYwa`jkO;snKDU^CmGJsTT>I)(8zZNXIc=Dg0u7 zNYAq_65Fj9AuAMi7qOGsNcsw2_iy;Gia~a5axj(-1{Wn46?GEoRYey&^R1bl(1ICC zTU~WVLKviQAduVn@b&B0cFlLMEvxd;bzTxrja=l1;W;VNE2GgR0>2OOP%w(~?AAQesBV|#;` zxMez1ie`TWo;FvpAS~8PsNTQd292VtUp~?$s7~Pr2G+I|!y^UoSou(Dz+-HtoB?m%)ITRD+Q6!E#j0y+M7umczZgqM zINju^uC6X~y)|QO%+!qoviSLT>a_dsoc@Ac*_Dv3%bBawRPn(yC`zaM68nMTm>1S~ zMT|n$>#K5dUM#GvL`&TdL#CgjFqiA3F34<68Q9_R;2?mQLy6zhN$&%(P5$(8rcOh@ zKFHjMm8?4+P*^)U7L@)~Qu!y@QWJlrK=S^PwQi@Wc5VBvq3=U41%c;PH2p2GYqRmY z|D})y29q52r2o0t6-ukfpR{SM%jDrs$?gmEvy4rJu{W~{3Mg?swMYj{vuaEzb62Bnq}!7 z39}DZ3X^P6v*D+AgMZvC&%svz{+$U^E0))sN9DL-#8S-i=_x+Nz&60Ur}!IG_R2tG zA^X{fPg8H5XxmeKdW&@J@dP?w{et*^SdmgcL}+s9<2b8hltP?GlM;*;!uDLfapOhm zQ|uZvH~`-Wmuo?|WR>Q+RDAhiHcf*JQ;bjciV^>)4A=%dQhF`7fn;YYI@z^jS8C6b z0Y>fs{%KYIy`D~0(sIJp^{>wJ;JoW{2SJ!zT&LYKX+4@>*5@BR|Qhf49~PjLy2*rx#xdR^4d%IhU6~AECXyy`;z1cxrOm_Na7giI?V=){#G-^nEz(J__iTbo$^T z*5_l_&YI?T#3J*NY&tIqb3N^TyZGbWRtyrE3c^kJz+de^(osZ8e1J|P8Xwi+lqG&( zPvVOeUuZ9Y(v)nqep*V$hcnRLeCtBrQ@y((PR}|LN@UtB3v2wo9W;LUn?W$I%%?T@ zg0gfDbln=8zB>ojrRSIY{<{gLTH`UXu|9Z@*sVuJ_3Q_8;MDqFgfu7o@Blq-A790K|)jB+XO5V5oKU}(O zTiXF2H%u*ANdV{j$x>>^z*f`jN)mYbh~li!&1LMHaTEMOO*xiX{A8wo&v&G%yz=~T zOLugklObJ|RT=?GX_=LkSBc$(l9BHY&#*{w+rmF;y%#Wo7@c0=32YW>)M8m#S#iTP zAvhO){5w))G*9DEQDV6-l!{y(dFsPaDk_^La@AxF14c$hj4A`=U{TRU*|YkFhB5Jy zk_Wy0o!2jZ`FEqxs28V>K9Wmt$`;N3z;%^*q^dT_R0qO^#LFsGH zb?}t;xF3^V5_26TwB^mU478D(+g^9dghyEUm!?YlWB`(%Ry~=d(+PdyeTnjG`3ae# zm%gl^$73ut_v_vQL2uU7{LnRaVjZRD7d zYwvEKmNz0v{tPehvu>-s)F*2=g*J_Yccv4cA3VnR3qgK9Kx`Mp+dRw4&VY27%xM64tO>t)* zR`{lr-eoe6-!-0?TGD}(ykyt@-o`A?4&^v5m^y(2SuKQ$`|*#f&9O2D46K6lmw*@X zic<=UxWXQP%_I2VNo+}VH2^1ZyYQVtf_?VsXxZ7f{!2Fuv#0326F#$0 zCmQ8?PD2NCu!ggZU0iB*!Z#K5aZjFjzFUW>xK+|L zEUNTvRvmQls$aSCOjozO2noJKm0lhGYY`2oWlyjHBxNPLw1}$4DF=@yOvF5vx*xK| zFJWdvZYid3ZB^#MATJI&LQ!%jDAr|Efc0^ujw)2KM+`C%42AKGq>?)J~F z?PEqR5T{=0d<5ZmjHZ$I;)jrsaSILIwes^@f z_FF7RZ@nU#fqyhCAI-zN15xXmgWf9q)2?=>)x9Qn@Esq>?I;jJm zi3K4fU93Rn2^HyH@*`~-LBjkF`Z!|L>5$eW^`=J8=$aem9tofPFZ9#*K(DWWK;!AH z$}2c8-@6_aholAfkTC8|G<7t?eMK|%LHf5`-klnj@*STx(=Hq^b&eMQAvuQ~9*2;? zv+w2i&;JS7TB*-F^aH4s{N>A+@0@WOPEaL$isL*zLmEoRjIjOE9kef;-f}dEBZa{W z&u~!k_$%C53;GW^Dlw4vX2KKtHZu~3MP31zQ#YoI1jvog{3{d$s|Y;@8vHFdvw83G z2LKK7aO-hzpx96VE{1m!t76OB^yMGr<33I%7-=rTGF$zm+b48nQFf z<@Wmz#ct2#$n^Av7cX9{J__J`hJz|)`e6~ndcQ#)Gxe?RYi3_jiqpCJ_!pKJx8!D1 z(G4hQa7d3Jlyo5^(=8lL1e$K-W2s@Gy>$P{jlx(?o;i~R&dKhOS?t%Z zFsfp}?AQBKVO;{_+i$QU5)Np$&VfBU;b1n!0r_K(4(i=C^X{T{kk6LB%HZpdp^PVH z+8np1b>Ir=_dMDViNKGOrUq=fBh(2RC^nmcHiFwN*pvGaxHa(tJ4sOvil+o&*b-N) z=E)y(y2QQXEliibR-BVPwmF(&Ii6HFUUA>C|Hh)n%b%x6_8C6wzN`amX&n3W=g*

ktQaZELI!73~7>uX^;c&Zbi60W{QI^K(<2&i8JKAIxL zO-D8!We0>~L4w*H|Kv&QmF)<*=#cRms%PiUokNj9d{jsz*?aWyF0vz@SM%uT&_HMl z5b$;Ytbr5!UgklC0lH9NSQrMv0engo!}bSej)4c1ZGCarlnEEHjVdC?PY*fq@hJFu!Yfc-Zc?9pZjr*{z-K2$>o!9RM|wNo6NB)5GOarL2Gy zgd}TZCwvd&y$lO@Tvp~?r)V}seN#PKspC2)(Q5DKNYV-kVFW#J;8rXPqnm2#>T)6Z zX!qTFOj6@@>-K&1-+_0#M~KabboX#IH`ciL_;h%*c5g;@$uBSp*jou=7?3bYEq~T+ z=hYABoz!~D;cMg{E@gdCXqU{ClbDbonRQ2MUpC)%} z?R{j_$gB0M70V>+yLK5q>1y>!LV;WWyixl4(U`7+76dJTIT`ry_X#<$GTtcoj=vJ1PYMwXOx1Jd^pHu+}2%k&+I7nTwcX&MIFxEC$si@ZH#5OKdQ za!jd5j7YFE@<#XG$twm51^=m2CWKI+g(O8rmcis{eL!f;?4@-`R*>1(0+P|C5?2oL zQpeg=00j@2maeaitE#GECmj+sG*xgWCMNil@8sHpbYyI_z7g5}I#i@C{rjLGoD{HQ zs3yI=z3u8G=yO}_w>>;hy*-kZOlA-L*%lP$(R-8$9jc`mm?C6xvL2EBns8|xeJ<|a zLlV*D|5uqH8gOu{ya7@~-7JPnl66yQh ztokKr^^a2-?mI+rnFn>90ZJe4z*#c(UoH5c;B_NdJne@h`Y~@atzZRneA@@K{&bVf;!G)Qb0)PHY^kr z0ECjh`L+JmN5DiMMOjK+=HhK4dxbp8G#VNjUy_n;-U^dsv3$YShE;QPbS!h_*me)T zyD2!M>{L7VQoG#l3jpaKDbP;91jfwz%%tbz`~*c#P}~t z5zE`pytJ1m4^QXawe>ZK{Sr>6l$Mr$-1m*9(dBr6rWJwGTk+$^GQNuZ zj`s27ajMt7Yv2CTr*S9?i&W#Z#o3|Xas}U)mYzI+jZZutH)3aNyL_>ytIo*h$V4;I z%-lS%w)U12J}c|I!i^gNA3uI{kESk=bvrTkQBqd-l1bQjxfk8nsHn@5l9H>8N7y=b zz{!ldj7c+P$A`&q7rVLqT^lXY3nu1|Y0Y1Bv7aJ{`W2?84oteNTnr^zPcdalzn`Ic z{r&8gRPel~@g(loJXz=NwCx#DJiDm{wF`I)gdd{O=z9A^iXNB;tN@U{^fjtn$d%cd z%UV!|0E983(9Dw3(%KML@=8eL%L>c1T@iiKSzpfssU{fYhaxdR48Zh0ftV^FB!nNh z7K=Lb8YRJ{#JQH%_E>$B%IwrXyR0#l^+- z{Bh~{!j<^sQfyZjCL&%&vr9GFVQ#qH+GYk=m^aX4vDYdH zU2lnB3l=+!J{durUq;6VLW8Bd^|Zq|sVyJjAq+2@^ElHB+_qrSTX+QNx~i8Dil?f9 z;pP?WyFbl!w)(^n7W!Nd|4>m;$pC5-`@}q#yoh&ZW+ujRAsC(V78Lc`K|!rUHjHCH z8T!c}RKz1oY_F5g6-`U>(8oyH0SxHe$DsQL7Gm}oDoC{t*18y1T1OJCR~$;w!Vjv} z#!J`HQ*vUyvJWgZy?z0AV)m<$i%HpX`9!_@TIm|DRJ~~=-07CxWTy!gzD|ail-(@E zu$mncb9{NkZQW?OYs&Qm8;9B)_xiNYBEz#DSgtbrE@D+4icNiUHY3ZRiz)|&bk0CD z_MVRGNtx@ZzMK{zIWD(VtL4A9-AW%CloOmN2BH%@{P+b-ihB^lcCB`^Tf_beZ0tKcbI>{c<6bm zuEM{rHNk?XPQ9HQsrwC$-SU|!5l{MevJ1CP80jiy;`}+Kj>FutcQF3*7mz=AVD_Jr z+i=&5xR%;Tln|rixRz*> zOIpmQ>0p*gvBMJ_ex&TC?>Lym&hSHoZ3;CrmXhriHmM`Tyr7!)B9+ors+{2ViA0kf z^C^Xs0Z8pJ$y`AFv%!_~LD9vzF1X*|QSJXgOY-AL4o{s&3dif*9(QTZdWem-AYlJYyNb+5YdW zQ82Vm(?QCFU7vK4n1}ADrJcsl{Q))?I zW_Fo@`1N0Rzqwl}RrdvR^%dm`;Es1R3$Nc9Pi z;M%*4^98{lk}nzAhRC{=RGEy$3>hE@8Tv7TN%rQX{;^zWII|=*nfKkW!)f;;nNik# zki(~YSk#2O;j>%Kcyvm$>VpbRBDEq2dUKW$-^I2(6mvDD%kPwHv%5c$mksY8jpRd} zKLpmqRkdUdZ-FbD0&d$7)DChFS5KnS&CxtsndzcVPZq{nW|!;Sx()fAjCP}YAB@|h zCHCQCJ&bBzV9SyW?fmVUc!~qZH~rB!AY5NbF}(+BM5K9^WSRFvnA}g<{Vg*7$ars*LSb%T2UEUEld+{$vW%JiAiW@zx`?A5xu% z_@joD&$}lNJvjey$~?F|dFWR2rJCj+YSO1maapv61%uyJ!RSr#;#q?}X5P74=QxyLLV@(Lnw@gT$RC z_o>#BMN!QNO|K!gS5T#4wE30hXCkbVnL{O7oYI|Z_}<^JNux!>P+sx9@nPm&`|!PU|S%kK-=XXsb$ImORE z=alH^#uh1f^5p1LG=;r@eN_1%3gEJeK&_q4MtN1|EfE-*y}27Q^9iuY=i`zuxiH#{ zTQ?EAGYno9+cWz5fB9?OaPAD-_12q?jGcu_q3H_@JBt_jQ;Yg1W|vdcmo%KT6+`Q{ zat4p<2f_DO-ww(ri3R=BPmjwMPk$O%43Ljmi{#dfD@grO)po`LbP zDSoV=pkVzmt0T8YtGXAS?K(jvKwdHEytp_a=$w`AeX3!Nz+$g>{<}bpg8Jw!(8&sE<>O@7!!Jsc@)FF7P_t|KeE*n1aC;<^XGu$}=5&7AsW zIg!+bAqzjraN2Is-br&Wnq1L0DF*k?Pfzg|wo7BL=T7Af?9n7@vVO2RmuGwAmUhzI zW;8YBr7af`?fP~G)>Jeft502D8TtlPnnBpBES9Jv4QwMB&B=<^&UuEN+Gfgbu9Tw1 zr438%J8c-Zb@?+7=<8s9iq^&^``nbg77)1caP9iaE9^Q1CGDt1Xa;(um~>xNwZpxL)?YMH>SK&9 zk8#X`zQ42>&v$K++=cehP{fgrXFJRpmJX?AxfbXUpl@l{6B7aSxyFbvch+8>Ev;fc zN=cn7H+adCeLE9rI10);N1T8!X~4ws{VPrhua>jb+(>u@tvYL?-K_-8Bf} z=g(hPRQ&C(Xws{mnK?c_PV_fX-y_pj2QO2cV=e3G zuVLR&=#vqfSAO{36a3L?Wfak!JHY30dTDDGz}Un9X?};V zJVlS2>5Ga_=T2-3mPb*A-;$n4FX9vU{MiFt(~Cu$N-!nAO;+leo14Q}YW~)T z0it{IJ|IQ?vP7vwP4sQ_-#6vKw8lQ?t}$|;@g~Xq_*9cJRjP6r$d`TTAGfuu)}`15 z9cY+ZXgXt-ypVj!?F5x;8rlSk*2ebJE?6orS+p)}q@RPZkkY=m!jbK~laZ9w zp`P}N$~rZqG2 zuOG-@?upL)CPCWxg-~0oYXbZG&kMXwhpmMTKj=h5oLW<~XJ>y4;r1QB6*1%3s?4hq zATLryCF+Uuu(`0EIYa;w5jFKmWV^iJL4TmWkqdlhlzN+#-9%bBrlwL*P%u!_JpT&7 zWqs*CBLja!HSmoOm*aKU`DpHHU_%YU;>~o5X$Y&L-O?3&Zm{|_KjY2r&cTLbQTcv- zk36N;yysFxOJ!kciF-Lld-px6nOmnm^lAB6Z<&0sf{I`TA4%UfL|QxlP0yM8DZ9G5 za#kyW8Dr2>;^NhfFR&ed1T92Vok`PIG@*jnm&mY)TZ`(4gx$c&3%g;>KK z$Ko%=CaF&rFvkcUWt->^^4fEQZc9RVDyZqrecGt{?8qKgGcr0_&gSk_Mqa6x2WW$5 z2&Ee?g>liD%wL++y#ByI`rP)m;Os8Q*4a3)dg)j!7Bx-9bWzW%m5-0F)`V-y(WS;4 zJAq+zH+3h%~vCQbv zw~mLb3%w3VX`&yv$!I+zI zbBb^M01$FN%3C}dUJd2vYp@F~Hhou&W`2D9c&H(RQ$y2feRcUUgw!2on3@vo#6)?= z7%^DAsgO2Ow9&JU~uQsZSibb%x$Ih1FInWR=tPMC3Xi~FG-G2Fj@|GJKj z&YgERZ{FOUz#aDQ!GApI0rmNKn1t3|CztOdVLjYdmW|E9(y+q9^we3-;AhD~jE3m4 z2VPw(8~)|k3hY@?p5*p&TU*;jZS<4zj~XFRlB_W_8P8jpt>tZ%paJ;D8f!Ka8{yia zlbW7>_x#dSqKU(6AOrZD*=sW+oZP^g5OJmpSE?HFwThnH&CDS+{w0FW=$hshs@45$+Sgy=vBoa zjklZbl=(EJ+(wg1T&DzKyYk?UI<(XHcyh_r#`6!78RYz~G)-lrDF+j7OFP(p8WPt~~=qSLAdu*P>sZnjlBamEsUZcRfTE?afY^PKD2px-9-7HS54}S+S0ej=ljLPQrO94H@lS>7XCye9a@tlV6>qLlre*aFEXd6AKFiG zB9GJfNHvsVH2od{S^-2;;p2qz$n8t@2{Ci8-_xVr{s~x;J(L;&gTR^1u;`KbJ2p1! z^!wSfXXl{5q~X68T}3W>;=AjAE~?@Y9LxsrZ?w)jzQ;&TkNhtW^ry0Df z%-fhRaQpMm=YD3?` zbTqmmXnZgE6DFkwL!b7hano%}9Wzf}P2KkEhrhkbN7>qD3n)aj<2*W|uDqOh7~rvD zNoqlcSI&ZbW~+j+dBIotWw4Lwib$^Q-D;E)8iTIEY-f5qD7|*3MGop+<{*1tJ3RKn z=GMpZlm?ip%E}usQ!_bR`_3KV{_(Thck};+6wDumJplW|nc?-T{Hmb{yw>d_$eRxl zXh?QgVBl~rHyxPnjph>^Flc$xe%XP6Dn~JsUD&+RTULWk5MQFjP}2U zku)&xCt$DE^LyI@AEn|x?`!Nb`-kkcdYs*t=e(Q|Dq&qon@gpAl%HP_DN;ct+oQmW zT=F9zmvYHS`w#Wsn}1WBZbxvP&nq@=ILh7@!&`0nRpQ?{yKt1g=J0A8)>c1}S2m*s zBZscTa)&Rmu_s`%uAe;GyopS15Bcp7&Gm_{lpue=UNsb?`H+IXTQWU+_H004pdo8O zD4?mSf)gar4Bp%wxSrR(hHYL2$gStzdObTMqgW0Z=La^I6x;-4WOR@^Y-SE{Emv*z zx8wL7loT{475BaI@gl!Aa}rW{f>`Az#L!=01k98PP(d>6@EX9vU-*xCrr!;~wUh9X zZ6q7M2z7^&laq6{&xiYlwzhWJIxrxpbE$Tb=?%{zxb56imx4=eW561-_AWphU85tNFM1J7BAQso6 zs`AMXOphk(!1F-fhTZ0F0!NNqnuUyWSgai5c4K1O3ev0c$h7%w1D=}#u(}hB!)~@t zY!V(~dt?Cq8smR_h$rHpqV24Sg$1|epJK278WNAUyWZqWD_^SJzH=1MFPhqL zY5r?|96RIQynA;HCd$O{DxmoGY~R)HEAG9Ecd|ye%NJm+xF~~@lZUR~3cvU_y@&W6 zRPIY&-h;-bredagdij5KN6%D2k*h> z^wq6p=bO(x%3A-JS0nIIS`34N>3`i)G+&u#Kr~1Mg^Wl+xfCpeU+r#9>LwK(-8vPFF5s_0lv9Z@cREA)&C$#Jj5Q-`)5M9E>rn{`oUa9SfuC_OY^#Si?FQ?F{=V zorXC{DJhr5hA_#>|JP>;bAT3ozdOJ|W>}Bj)T;}Zo?RO7S2QzAfNFfcVlYG z1VQSMS|#*F2x**ff;cJz$oIrw)z#@=uK=~+j7H@n2q-BaHA+ra#{qVWB0Lc*z6KG3 zytg|c2>tdfzu{(DAk2m+lHA*~WR{TL8kxhV>G>r)TV?($9@0f+7}ev|rjhapvNo|0 z&2b}i7#>P+v}Y9hsdL{21YAv$OLMGvy4xMqwrlr7kDF)TKg76vE5xV4j*(oSo0U7a zpNn2T+}+T8yx)H^hT-OzB2{Mxgh)q#u9W^#E+;n^r@!ubtKi8asJd$3Y;@9+dceFf zEpEpg+eicG#)Go8LNAp4fejvETd?!H;OOtpeEh^q=J`En&L2vKNJ;}bEJqbXXkT?w z@J`Ly+`S=yjccw*F6??6;CA7Q0dR=Br`(?rYhq0fy zn26zhM5H{*shu}=TBl`_a_!Bt+{+hPKGKJ+T%>`q-bXZZ%|AeNrT|q$f!k4hH?qv_ z0lO#*I9^g|y|}l?j`ztmo)v0ZBEc=L+|;P(b2uybV`N$Zy*3=-XQEl22$}d+Dxp~4 zb0iHf-Z76UDbbm?ogcmX2?ho-TGoY0wF+L3&(33DV1S(#r^M>g3UX+`w28_yy@ijsZ ztG2PSNL~<(zR*SHWtC4sizEA}-|N@ev5s`{p)-`lOe3MF0VF`Ud|U72CF2qM%fchO zzgmpOTV8|jhDr+nV%d)UaPiL)n;_cU)>K^~q(`OG zrb!7_;taaHs4_aSV<`O{s35@59A6*Ih(pHct;AV{sHq6Zz-JMES@u;SSMUuTKvkSWnW-y=4wWC(VEgBF72lp<-QG zI?3TgSt8`DtJI!rgibY{4hj3XDh@vBp4R+YtM1J+xGV>_nej!sNwVpZ9y?hMrDpI- zDli`U+y4R3@DD)As|Iq!#oI5b(_X!YfE?UTl2s%3fxOg}{CUZj zzQ6>mx$_fA>fB1;2l1v>@GJ3;A~RA)^*BdvTiJT zt%x9D?%^ll@?`TXKVAUQ-)~g+flOHF4|~jvw(1? zn|~KP#i3f)t`W0DcVea!u3;v-j(9OvXlnD&KO<4t`EV+GGL)z6>8@9{!;7yDiwr{B z?t4v(Vig^&g=9;@2PoFM8gV$>2CHjmxB_d{MX%fL*p=8?Y39Q{V)x4#ywd>2DI&Gi2WyiRrHmbC@Y2}BCI+5>ON zBC_Z4dDqfPSpRz1KsPqMSe9wQaenjI59z|O4~*BekR1xWf=9Z>opVrmL#iwe)8%vq z(CukAIobQx3Agj|GhSwKn8f{$K=0buPeglvC#iZ~FFdR9?thC(uTlWpXjpheo?v}b z);n`97Y05X0F!q%)@>#B9Hi#%f^6p-&sZRtval-Uiq!FsJ8XqrD#y4EZ;lt!Gp1bq zYh|o6zg=BM@f@YO>U60ZcwOqSclF}x^mnl|;DnlWbzVAVgmZ{Jpdi0)eD)Oe<*Q}O zoCB+%cMGgozJLwTkE{g=)N5>aM-eL4sDDv>@;Ns*8(?xj6f))#MANdFH(+JJ9b!&#E!U2%IY$Fw1v_Iq-+3PH(~#Je7O z;o{@t*9Mk%9h4x365=R~qTpeVP}WYdjdZ!}FImj@AGZ^BDXK#*0{7R3gnd$)SIHka ziTb>gW@b`YX@P8LNbA|jVuDV4kwfOq@Qdvu%(pCm61$9yHho|8nclU+s^tln!*0Z4 z;=kdfUO#pJiOEJSve*)-c%T#mUh(F^1QS6f>G?Nioq2a-Zhq=NE9xoF#o-Ln!pu_N zqjGH7Q%FAc2L|!Zdl5wWA-BMO^0?oaGT1iRK*75SxY2{&?B;I}5MTNJ{YO4AhU=PR zKD1~fK@J7g;4NmHgFpR+J3yKrgPAA>? zbQRwwsb^lDESkHeUTBBecr)3X?NnGwh13F3zPs|Mx+d|=#oFdblZvk?#liQl#;WQD z$t=*)eUw*+hP_l<%vz9u=5c5=^6zw>t0@o1_SEfkl$u(jYeS;!$~$GtVFN|}eP0i4 z4))c1Mf0tZXW4w~cQR|9s2_`|Vle!C^>gGJF3lmSh#x4E+{BKJH}qHXMhp2Sx{I}C1ADh7`u-=lvFHN4oC zckVRlYe7`_m~UE20p%8|VgHPq(Md^oww2##fZM*T;NGMCdH#GJE11)=|6}Ysqnhf1 zb_J;-f}o%%RfKw6Lz za(8%Nh4+5zyX*dOA&cakv(N0=GtWHpObsCH;zTbWPeraBGB*K876Hg_q#stnJXvF) zgbgqU@aDBoG!0fC(0W*(F0Bb=9m0<#AmY2;H*u?acW;D#ld|iOfMV1KYDu9C94GNF z_1|ZuP9g;C4u{=Mz~Qzazv(;M8mnk;Z(l2UjM6J@REhs!tjOT;8w{AYPoqU4qQ>P_7)tbFm6 znuPnBk%f30Sfe$%+q_mh_wdgPz~4W|B$3Vs7m4O7#x@p)uz|Tsm@Vq%9P{lwes&!L zgOz25UrF!ZUj^b6k)WCAfu-f5&-5YuJxb_Yy0tzez#Kc5VQK*q!96L2+|=~R0OpRE z#OO>fY>AVzbF;}tjh>jT16A|C94$#=LR?Kyr{>UK&f4KSWKFr70`mB*FJFrCLHVcL zbuDddaCDRxKqr{~@o~t+jVl^22Z6OSxU8Mb}(?-0J^OBvIW(Rn^MaZ_MlHpsjPM&7Cur7A8%Ud5ptUgoM?$5U5x~AV)C|@ z7v{sAwINN>f?P()UAz1?!|SSV=R>?NvSamU4>Y>wDT@!GFBW5bm9XvOP{ruP`X;hlx~Bp z3lE@!7EO@thD*ROLnkUi7V?8Z4mvT^;bq3(VFr$H77t=c$8E;->|`lU=Tc`VO*)rK z+==aChl!Khr^)P+rCjbNxo$Qe)WVYrevD){@D?cly6xeeSB6)Gt&IgHZg}lKFj*9_ z$WjFyu66C&wdL%hA`Osx8zHvz4c(u<9Fnn#_hq#1eFvemQw4n2_4V}`kZz@2oH~d% z^#$WXn*sC6W&ly+b%^F%_T7BvwDavsa-_WXnpIYQHUg>Y<)M+}x#(8DUF-s~?um87 z^Yc72Vm0pHrnkqVFAcOhiy17PuKyP#CLn&^hKPwhiJ4>pJLURa!d+(EF7p_uRbKu0 z&+egqNVwZ*O?g{PRP-Sb3Z{H+MIPq4hiL{a$krL~7*_HvQJWEw@{JDhS=ECXRd!)v z$6EC6ZYTM+q?vdZlBqYAqzB*+)VByJwx|HZ+FKVe*-e# ztJGc6xu%v@=w(2K)jOp4^nr3}x3#C@{dhT6c}KPU!jcXQ@Mf%(r&Jh~R@c`Vw=#=)1P>|C#0S4CE!^%S;!=juIZ~ z7QzaanFH+JETEo6;KyWxeExax$ME#rugi5q7ZlzFMYC@V?oKOXQc2+A?y&UY#!7bq zMFe>cVA%Qd-kA0PU0Lv`z=8D){91oKWjt@3K*NzN#_^D8$q>-u8q=9F^Pd)LK*~Ko zHcI~6*FgOa@Dcpf)2P6fdINsse3ckEZ`t%7#Kj7%*AJK z`dt(iW>s0Ip=B52HV~qn;%N1Nj`vPYvwtOmPb*2I+~Pt-%f?<1j#P0LjJ=o|0U)4} zi;Q-th!a%tqnqvWVvPHS!B{uPmZ@RpEhcNczRL{+2qf{0;t0@u*aGU3vceUmJMqb| zCNZZD}Nl&x)F>JA??9 zKh(K4iwbylsy+-;n2Y}S)rPihpceX?(ymd#@~NR6tiV_K9f~ABF$MaG9-V&rgJW(%XNar_ugqMpb-`BmoOR|~|WrYiR+q188sK3>SG}dx2I+xDT+SVsaJE>AIJnY+WaiNft zb~(>_DN2|RtufHUn%Ta$GjQh8Pl#xv?n$DGL@WAp=fE6xeJ-HN9?+H~p$F7<*+Jaf z@hsFD;sS+3?YuGLoQ}xkFiIk}hbejR@fZ&KMF>n4vNiI!XaS>F=@Qy(CWL5w6@3?< ztB}*Olu10>dM!c(S*4_ zjCdLz`^+$?Si@!xBir_MFP4bXQPBqp#HE5C+XdgOe1FO48UmO`OdMRL2xOoia6 zwzMe949V^43c8(?3iXg1r4NI-O{Vhe;~WSXCX+xg@DzqFEdq?VIM4+9(<`(5*QBa4X+>0O1n4`U#K7U!FJ-VYRPRB$<3~YR5uPpXlPf-&T!kQq?Dd#{Jg4IjZE1WL{M(au{CtL zrRb9Kjd>8H>~*3q#$D79vC6nC;h_Zb2kXK0;`!xRBe~+B51R5@`t*b$f;ID->FqGo z@VwXd_(12#2fh8tXPVBsZFbAg z;>lS6<2zFp-ypA{JXz62?+j5lR)J0@Mm~M~Y5YIZ2xMTgecOt~NI~PPPR{lh;X!6(G{ms%bhuPs!FOt2Y#tvRC@3B1NJ@@l zqoPxe2{1d~H2UtGruJTMeDC=Dt7$XJuKBoSbo8wSIHXMLf)uI;a&l~(0Fr13h7@2m zq+gB#M_GDtROOKixbrM=JQEN++&Iu5w`l}J!1siAG^IkDZg zAo@~o@cLDqq6c{ub6*6T-*J|qw*~FMNkUDg2sX~MouM)dqBJ}J=yb=-6d(7#O7n>s zbY0BKoGEN%idAnBC?>E&^gXc(>TOYiMbmR1? zxh6Kol#O17Q>eSU0DZNRyO7++k|1A0{xa6kh;R`L?Ic1--29El|3P`RIcJK^!p0(U zkEx8y$Osi@tOboxN|5X~wViNVHQQZs5O0)UN}R-)D+u8wUa1)fd9Pk%==4Q`m1YJ% zFP!w(KRg3pTuZr2#h0DxYomWtIl-JJcKeM3A2@v2ajQHR#gf6{UFp5NnL`0 z!c_C4zzQ?QG8oH0e(7ONm%Ir9<&PlcyeEbC;MT)z_7&-cswl9zZ)_Wmg3VpqOL9U zY_6!rlawQDC-@h0YyeF)=upS=vQIGyX&!MUehH*-2!h)Aj6c0W zSTb&ZUQ)avzKX-NyJ=6^2E9a4+S?`SQOb%Cprd~fLk_h?KHK353YAI1td3b%R zsdxsHRSxHL!F^Q~Em?tkrTz*s+`k9HP97llH?IHtC`iWF-;E)p^|D6{Y2ODlUA0hs z{lv=69>w+DrF;~K{We;~Zj=trm^PWxe$r2hVq^%>KiKf$D^XtHQ?CU znP@NZbes zIWr6-0>IJH0tmF}AZu+3U--)r2A~$6CH!0AFzP$}=gl<&%ABOz&JVpX#mNew2xm@L zh_twlITcx$YjT6k8fo&n8h=I$PuTLc#Sm&v)r)UerKaA61FOWBvBp&iCuC|)9cdMj z$z}tDQB?@V#^n9&JeRtat9C+R-RY;3}P5Tw3v=F&Z%ecZQGA28x{>THwrfjcn#Ou%HX=i$|4opMP&c7dLwS zmS*1d8*PzFuPc$VfdkTm@7(|U?Z980;{)|K;K2@`>{YrC3B0r#111yjdd38hT#zYz_*u<0}aq(9!a=t+E%q_08V91Cglp8SLavlw9i0Jev zUA*Apnn27U|E6`}&#FtG!`JD)1#}#h`ORs-_%b?5OS~!}5Ffo|w79e`G`qWR%`Ivo zZ2kiHAH%$+<}g&o+{3#LQ$vPfJV$R(Hb>f{uH#+cG1SY52w)5|>9Gb8picczTU)zE z;i=NQ87{7-VAJsLv%?kX3aE_ zrHOZqoP9c7(N`ZT$2{hQ!NPTnBaYvg8vcbpes}QaMFBvQ)$V5(>o8E31tDVf4_8f^ z7a83Cg~Pn&4-#zn2ms(xhRzP}5QFCfRo z^}#GN2?>qIk2$~qvuF^)wh6CcsQZ0?l-n@Xi!~`<57`wO4=Tz2)Is*dFHwku{$nnRa zX!p*Q-Trr%u~2(~!0`KOoc$juF0cWCW)%u`h>U<17RsNcY>m7I=9YId>(&}432xGs z$rK};!~chK*!r(?ctBz9i3WINw>t{(%TKO2`)8Hve+a*0Bqh#iz!E1UNQt#-NBgK;DmFCvGN>Fd`fS-!Pf=YFzk7 z$e%y=Rl`$a7ggWv9aU_|9!d+B0>u_%K!;)aYC{>%nZSVJQMOCSL8n|@I7X3>enR%k zMdWEkfPmEU4`}pSczvxFhl-@+j#bwcS-izoyxbkiP zD9&M10)hA|3AK#B9W1gRrRC)V4vGIFfk=+`KG2Zn(WLkYc6-5!6857OCa`zdgKn@ zEbDZG*uy4*9HOeIusPlivcY2~_z4h1oc%=|NBC!zsL_NBLlATG3$@p|1r0JXIVp!a z|3f4t^9CRJfjb@dm!wR+MTl3D7#g}+%ZegGY(#?c)QRuMKg1>t7KG@IY{uW)l|}lH zAOP+5&V`Z|C^&Fu-k%Wr?=q-@kIYDDn*OyM*+ih1h6ca&u+A}NuS?K=+UIut*|Dcd zyXzwoWA570cGRM)hNm+ty0{?B?U3c=!!KfP1=@2uCOkbub?&%?3iVyWeG4f+CQi-2 zRgpC16hK!gVOP-8OZW*#ngBBv(TsU@%!QsH4Ce;nvrsZm@n4;*w0qLRh)WC%pR%*9 zYCVLNZ$&&3LXegf9EpaV@O^;Sv*1>ZI1(pSznbzDjln>{#H@?g_h!nTD2O;C0HFML zwOGIl0yp@7U5Z7`PVXdYO;Aw%M=kr2^-;gM58hDs@4mRhvM=8LsaXkC>`=&YxQYO) z=xbn`cjmj}8^ZO?W|(o4_7+wvWR^{N9T0AD4em@T?T2Q2wLM~YDTUfpB<5^6{&wRM z5E0@x(DHZnzl-imP1iLE1*Y9u#4cK9LpUlzblLai>W7GJ14*`idWH}B1QQ7C+?AcV zc3fkn*H!T(@e2j3=9lk0)#FPrbk{BN-p!A|Oyl@28M@w+%*$sCPQCbdt=>Gq8|TiG zxO0DvlM(+MhI7!%h3KEZ?~*yh42~8nRb!}J9{gCYOz9}w3bLAA5XR*jtE$9~j~BLo zs_yFH%}(0&FL82dDMpO*sE#_sJ}ND3%Aik<%E;?TS&3Eov(C~bK#KF2>=*9Lm7)Ta{IaY2MzmX+!Czn)zz;49`h|r9JlgTrFv3zeH;_ESeiJ^#EN-_Llc;e2SE!rwD0oIB;~(#(u;U{KJd>t9tOEl?5- z!|;>*Eg@m&TrpDP;S<=1n#MbIeN?;#^1W?RjDcII{Ud#-!fvD!+(9! zaC~wMOmzpkEa`yAMaTPu1yn|v8egxo3Ja=NdvCQfWh$wt6eep*l0#vaXO373KGdUg z0skD@_>-H(npmVPF)E6^u<&Fy+Bwb|LN`l+k{ACX=7k<>{bZ+=_u-bix)*j#>{BMv zMcPg;5{Ekom!JJ8rrOl9G}n@$mmiiWz!YO^d!UM%7^F;;@-_egKZHsjv_0XA<%VOg zt5yxqEXRE7a~i(+0#nd9Df`EuSRz1JBEQ~i0{Qz^UQw9aiGv;&vpJ}?sz4m*xZi)7 zXkhRxW9EF!16@-?&XW8MI1XB~Jd7#aH^i;!l+UfC!&@c1JxcFj5^dIJYN}_8HiX&yTx`K(VS9Id-3dbg*)V*&=6G^KvFc3^HANzTm7G`*yfyb7WUAy6_} z{r>%6-*`cACz7!ycGbY`<*0V0(a^LVC>8#*xv3XGRB;7ME-dwT1^kFXR}$cCF;-Qj z5kMFSzmkcFl_=g<`NGcbe!!*SVClD$Kyb2k{3Z~nHGNxsKU=~OdXLEqE4Q>-@@!=R=GA?`m{03L{@YZ4yw@=fUW=?9CK6Ogb^?NOYmtkmynbL5CM zbhLN^#(6e=R%7F^J!AdTg`GQi5XFEe5G95Yp$VziSZZTSta;EH~5 zimSx#M7+*7f34gS_~+?<5T3;Guzcfc+dMjR*yN>!;S^vVZd$~6@t39L7&_X?3^{}} z%qsJPl#Y#+X|h0-vEV~0gRr_!u7QEU;c*n}HgL>beokzx_kr*Js_h-_OHv5k7|7Ka z7cUpJaj%sWiTR!#k_Gdnh)+?kyt)9qreI-_g{=gwkZ}^Q-xN|SU%rHq8o&&+RIY`c zciUP29e4#g%FH;-rKe;OAtf9K+}7V4R0U2aiOJ)yOQ$BgLeM^{0%VIyLvOr9g3c7& z%F=Dvr@%>QjeH5DayOf5*37%O|HZDi^PuXo86^ZaA?2l(S6L-n#F^fVb6;0n7x3PF zcV|t&c6e~cLT6oDYUjf~TBas~t9m=b*f_JvtlHfK_XI!glS2WBav6h?8FnwAcul4L zmgbdeZAp>4E1fk5evQWPclLSP0DTa}3{Sl#JBM`p%mMAtg&3cF+a#aa4!o zHgX&8H8A(Cdppqk(6uSO0!M^Pf*S^=2N{V14#33 z{&6(cK%a)AK;oSKQD*xQPm|o_y?E45ZRAG;WFAO~5L;Rd%67<%k5+ywZ(ENp0O}x5 zK)T7KsNZnJak@b73!p$nt$|t^ntsj#&%9j6rz^fe#|~GY+TZw38QSI@o$l932!Y%Y zHKiR)j1rP;i~jZh6F7lFyM~$?3t)LModd;}m#D<5D$|{N$MbhG*$9AeJaCV1103gn zZ0?N)0Z>K*3|l-EhRSztg(*vD7*)#IGzN?N1t&ej{MR%A+Up3c^Vz|Pa?ig8>nrIC z+Dzj>GI=7zwD|K(bB5>wXPHFpYsMopA$wH}u4?DyK6=zRC0*ka!vWf*7IDkgeJ;+e z2NiS+iyV$9!5@s5qdf!vXaW4WOOVk$z@J^@s^Pbe)^4bX9niTivZ&iWj9AXKiiue< z(2O^(eFi=H6M!4N2g`e=m$cF5DDHMWg?E*JKV`hwmjy`pgWd&InS=b-bOw6(b0s9O zd&5UTD!BA7ybj2CXDITB^YmL5EOavoTs!Y6Hvq@5{P8(s5DobDfM}4Z{qc4mX%->i z)#V!;jgQH2-e(aL(;mpv=VAB>MdXbe=*55PAVOp*O~v5(yMI<3B(~tX)tw>YN7wyD z)707;3C1q~@wc~ib#x`c#7Z9~kURC>lTSeraa)O3+?#*RwxF_UdmZ%jI4nfG zujycM_?6OBACx3)ZAF`vw*u?$-y#lH=1xBF+}cXQ2COSI_7=()gR;!!+kIlpiLo7> zTVglvZ)m*3^Oo>Nkjh8RJc4NaGyMer+v_3(xd{Ap6TG;1dS&HPkVWs2-bD5AH!`4% zogtZR3aTp;oeg!TN}RTv$TfxL76Yq-n=0LNn#~?6(kiH~CK%p-{ib>pJ%Q5))DhL~ zJDXt-0(LH)QI+UNsGe-}-b1k6x|NI}hc5MNx4+GsoA@f=$vq@YvYP2=-zh(zx$)^= zgh#rM{1=zcXV{F=U&!H&wJ#{V;H3w1bW0zC&SX)eB7i#^8|n*FD4q$6d(WsVG^YWJ zt#r(K_7sxR`!qWf_NxsW0_QKk^C0USqkN;IE;!4I7dEO&3-v3IN^xOpkQJi>7^*z9 zW?wP9)4O`LR|*>mw7Z^bnVydmk~8jR3kTD(T#WQu{hUaWip|TZ+fP%$iG?#r<`Y3I zutNmnJM3Zr3kv9LAj!johLIobu-`OKto$4UlotGevU2G6^mg>Rf%C_wx430aMbL7D zIFK+&PGeJ3vr)#qh?Wk;;E!Gl{Kc+6#cU6xdItJfsrF|n*T)qDW^2VWl_G3&Mh|A4 z*Q0C7`@v{9dWIQ!?=8O%x7Aon=@Zz+rSwHd3!kjum=5%xJ0b7!H*(s0y9A>WP1 zpGqIg7MF7=)9iegIwxp&!L0-_K?e%$)f!w3l}X~-GnSDqw$*Bjw(}iS#iH?-#m{IzA{|@sVz#07^lMUk*sM zsQG~G#Tx^s!_4pvr>|3Fw~mSBhNYbzPO9EQf>ZcWv43Pc&ZVvOK{!#%#hW6u>t1Dr za^s(^3rf3cfPg~qq6CniY+0_?oY}4!zp`56@F+%KpEr3AqZ|4^_nBjT(c z>U#9FgglLU!71(8Dq}VC12=C9TM3eKGko5DGib20sOoL(xfW!NI4@->-@4SnmVt%f z>?5yj!&QZYP3ucDURW{aVIPEnB1-Du>vYld&P#{wLD42{oL6y9xts3?38*>~w$Y|& zKmL}Go30`CC{z@8)BB)u|6sdD%%o7@p|Wx?rJZ==YplVOs}b*qTq+<5JrXD5Nm8A= z6*Th=ynel`uEj9#f2{>Pu+P3f7kc*y+XnRqwKexj2W26Z>UBH9!?4xB<>6izC1FG< z1QD0uX%QDuA0%PR`d%`h*iBpixPA{WJM!xvsK2V)?UW*z7Hf3=H(` zr}vW_Hv7b1+SnpU7jZ^5Ju563VM)T8164SRQLT-C{&(yS}8dhH%781F2TaV#1uF#zVhl_pSHj z@e}4R=TY7;>1!>PHWOp{-qxWD&SG&szm=;Fcf8B_i9J5|t6zsTTVPZNcb)d1$VmnC_Np3529w&x5Cz6jmg z+MAZbFx783UVq`9^!0D;N16<>A#)5HC?o_5Pmw@FO9Q$(&IeKtPNqR^D;@glcgFin zPmY3GosdMov0qPv{-l~`&~mnIOc45IpAD10ILfY(CRBYc_dO@QO26x}c+t|k{Y~#` zHm>bt1cAMT>#*^z6-k+kqmXE1@2*f<5Z(D9{#zMQfiZmDQ0r|Sd~{Cb?X85d-WytR zJP3b(PQWb0z)2EQGyh)h60^szyL%gp*`^-ejfEp!@2n}+aLZw#~C8wJm zI|D2CAcmlqAXAw$$9IuOb81+;O!bAJshxHP{l7=$t8#F5UibDHJ(6wq@g|@=bNee= zY}{35r1bJPuH33jZMarnbIS*(xcG>xh5K6$0j6yerMyb9Iyq~entS`MFSAzfoZ%Dg zDE9CnNgT^f&5%1-Ni}TVkM5mKHav)L6Pi_;nx39{st3D&6G&CkIj(ayg3{x*)nM-_Dzho`WO!nbJ*$frzrj~)b z!b~ngw)z)wxIabxIpWpqZY&kubydbY*0Q5jfi-zj~S;y zhKuCJy>XtQlkkD@>b`Lf0mILcvYIZi$B+p>->)HxH9sgy654jmTC-;h$gL6P0}!$j z&46p4`g!l{kb1+AZBN4{yycahGYmGbCy+G3D%_1Dva&t7i#Zn;%ewuXj2dz}Z%y;ey#yJLr|ys(*jPKxxYoBblis0qPL zoLZw($6t}CGy|i_iTogUniEHRl}$mKK89CtI5R;BJF&m7`ZDHrBZPKxToc7E&VS=U z7PscTOEBMtJjhN#o`ONm6WiAC_e3j#HqmB_pBjx9w4(Kh{n#o(;+I#L~4ViCB4^!J8hNW zv`f4}qeX5oV~=%14JOG%qohFkU=IgVHrScv&&stfN`GK*utU18?Shr9_Uf;>nYme$ zEbh|5@AoB0VWpe+V&lh!=b`=mp4vi#2$TDpy<;vx9@Z^c?*(3e%I@qibpVp}^uPH9 z=!MvwFdok+86_x@U;Ae} zzj==54)ML6@9YCS+*f$&5XX>z)YR0}Jy*`r!`z`(_EcSb&hn>E?A^KznX1V#ik!6r zvqXz+!KLxFX4&Mr4GCWL3(cZIC_ujpbY9}JZbt`kUiIA4SLBcsR4H=kHQuw` zZWRW{_PF=X8zt_RXsO-3cIX68&Au94{E6Q#HJDdF{lXi!qk>}CxOJoy;qfnQC5ly7 z4t7ak%cb%zii(~IIY{U5oUsx$6~>&fd7NYBo$ZeN=Q>mE(+~ zxh8D-rkoW>$nN=#h(q7#{#UvM9v~@4{j{9!f&Ar60BA;RRS~XuuBkd~gbE>vS z5EcKNHowu18CYH^X)|u-Ybu~nCSlM!X}7la(FH3#$S@$tccZ79bx!Z&q{^UxkVsQ* zX&sh>G;Ib&jFg9 z@~r>L!KFTFD>tivJNjMeIL=C8@)0(vChEQvAZ0P(c54_~13m z^r9-qT4|skftR#$tMxjbYf?V|#9BNh>@S}A=IUXKb7L78TViU*3=|q}i|_g6Runvo zY@Qo`+eB_hO>;FyFt=ZbXAib}1p52lvlhIslTn0|0p zKOpiCmJ526@imG~2}jevToBn(AAa6)(2g<;1TVP>Mp@=N5;w@~2A!N*QI9E2pEX}l zxSn6Wz^#tH5z##OPuA_W;F0SwI>c`yA;I+Bf;(bsX|NTf9mczx3rvm23p}+(gi#z9 z|0APtmP-u)4q#Ma%q2+K-BT14q`adp9eoqy5W>-X?Sa-E_?d-glo(drX_5D}7~cvl zx4cT-Gh!tVgLn!UUo6Hgfr=Lx33?H=YjW~f`2{re0a1egR+_7PNVLK1(3vGeTt!Jq zNfVxL0LnfN!{_THZ5AO2=-_+pP>(Fvx5iv`K?*Y&#H?L54?~x;EW$H8AGgYvDxd7= zs;9x>FdZjVzASotpP*~ehz&_IB9INf@jQ@nnGgD6m4g8$BKLxg;f6$mIdAjCI81OHBl)aHzI%8{*?`4 z44OgA5xK0rC`~}ba)N+N`UD}h&k3R)YUxpxlm2Xf{?Bs4cND*VMq?Gu#bENzZL(}t z$(>Jpx+R}m{9DsxhfzUeV!OYpC2X)EHk6*oQ)$s>TJ{OP(n4f}JQl6@Tn!#4S@KRe z@-5@3S|~a_>t}LuL)AG%;e^L7p?g+(H19ko!`**w0)Ia9MR2Qz-0wLC#NhB8N zpgnG8;kQqP4iwSAOm-_-ELTUeheXjmU*Ddx+g9|HBGNjzZuBZ>MEB0RW2eX9^N41( zhW*=1IkZBDGh)}JxU9q#-gq9ntTh=6#7rg#j(_lf*Wi|X3aIbGhfNcPfpFS)!bm_1 zqtN2$=9GzR>W$?`#OhBPJkl_AjENmF)gRFd70u15t=Ii#og}>T{0Ge?F~{oQHKpzR zvCKPZe-H-GokvAq#~I_YJvatbtup^syf znYDmj==v+?a&A36E%v26B%~>9@Lm#_WI}#%eU0E=M`d^!^|33GaQKvsrIg*e_-6^I zeWW!xQiwT$iJ-#NJ@8`CfIIQBHu0QMbnyPcs9Z)pCzpV(DQRAR`vAI2)YuO3>GFz0 zP2iNql(+!$Gqz7m7(I52Lc5}r25y2aYGAM$BIo*GgdhIGB;lUZ7jo>?6Oi@!pO}K` zf9@tdw7%muG~AqwgI2p2mP7mU^K1 z$s|;$^GQtSCeo2^s3g7B+Ru#7cH(0(<;qC++fy6gry`?+9nCZQic6(7a<&G|+KLB9 z4Poow(w}{8H{r)*-UrqHm;FIEA?33%1BEZ-BUhpDG$%M(bN;I!5lh$}k&ve-Ctisabvp z0fgcT3T!l6 zw*EK!r0@2Oan7%gn8z0I)gKXnki~$nUu*mwd+mx9bl1Oh-*w0++Yxu_f!0 zC9jjCHc?IEooQr(wT*jj>nGfDG>ztkD0_FT)4?cji?Eq&}Fj<{BGH*sW`zv`{cXP5&* zfcHB2=ne$d)8`DqPTb9kPADps`c*G1?mqA zx}wr)@9)z%$R`wMYl(pU2mDJcxJ?c?_H|M9jKbxb+s-S-`X3Z|gBqKm%|aOb%a%@g zM$Q5eLh_%VWjngbs+fVDr0;Xn2CrUlv( z+Nec5fc#u)GaWZ7wcOJ^usSrr?jhFyWYKi0HFM5MZ)5)Vh;rQ6xhYlZ{hT(mOKuCqS8^M8GJ0Rx$Ns)7y#3?(5>hydEkqYWX9R>>agf$8q{ zJWFo&7H$Qr@0Y4ai(_MkaHf0(H=h1nnMiFK7;N>2>^LZr+2({jts13&x!*(odcVzo zS=F8>=k!P>NN-H75&oabWf@@w{Sgweg;J<7nEa*gjfIk6g0~Z-8M&!R8%zar6R2o z?paOKF=z9LB$uzGO0*iT_av3J$t~BnejBZJ@ZGaYo_C^$XH)2eIiW}TMaNyIS*&eK z`?W-kYELWysKx}bNR-)f|Hg7(}{)fBB~#jY_bxE-aCh%5HB7X%p@^#KbXNpGgGA$G>Z-a5xtx? z;WVqaD>k~s;d;+q4C#?u5lwu)NN3l_LkZ?JT{bFywg@CNbJwL+@Kc*-(f0x2+}8cl zHmYj|Cef&R4iiji&~PLjUtu%9sj7qEo?>TTM^qx?yuh>11zp6h^aZf3#q+Pw5}2Xy z(4l9fn)hLr>~iU4$&duz-s(Gu7dngY7eb0H67r->z@uz%g$3K?!iOS6aIlW^cpvnKHQ^k!AlNA(Q zUFe2KZ>_ysNlNM-Yu$$JX2-6&*ds&X#BKu(#Wkp1MM75|?ebZMqCWpkjwDtlM9{;B zHt}Xg-iRSX#n@pH!_y95YBtk zHW&T#FkZJ)?{o;mgBuTR-k41-aWc1*<`FaM(~4D_vHl(T|If{QpM&Mccqng>Ol!+Fx(Q4+`bs!+|fh%o90v9QyOxQv*mcCIH{H7 zT3_8+zpW_YsCRML{qeH)Z>vGAAq;B{cbR z-jz(eH%h(+X>@N-ulQ_(Tx>`=13aby(Ugmta@k5qLISV0bQP_FJ#)XZx;d?`q%F-&EtJFiLcWHan?P!DFZ4! z+loQ^8}DIAVDuOex2mpf{-huv%h3YVynL<7(`OEkYf5QpC`TlhD!fw)cZc_8R&Gem z&RjxRH=pgwh^cda$il;Ai&-d_E(?&a8oyh+GMJydwK_3T@+1TESX*EA$JJp@9lGsa zn@E$9&XU*ntz+-VJJe+C8tVav>^sV$7WpJG%V6nk7XLuzN{~tsf6rT!wVT8IIt`MC zdrpLxpbq_dwtX1*NnU(FNf4BA7*KZ2kT=0)gOo!6{K2X8p1KagCw)+HZIS=S?8C%*`EM&lcyuM@_otmifL?xyk z>x43n!)Vr{pCnffIGHrN1{U)b`OL`dbFc`ujTPw7A|l*^K~{e zY==vj!az6yj^qMf{0J2^U|Rq}x>`l~?@g}=1RwYKJKxL|lY2Im4|r(ErPgJ;=T(Ej#XlqURz z9yv;VGpkiuf$KU~>y%f8O_9=G78@)_wSz}rCnrCTAN~v&jfgE_zo%h(wjy89L_*I#{^`LXuxDmkt$T8?&du5-0_s}uhHlYnb|b5&{Afd}wIK zoMFl3ZyAo?+rLTM-=spi7az%rtWp&F;X{VQ?Q!^M$A9#-1ZJUqGT_?(R6UzEq78yjjahHR7XR9ly@uZQkmqdHKu# zcE{kGQY?U3L*lpnb&lnT|Ksri_=L#zl{x>vK0B}jWsr0!Z&Y9B`F}kA=hxEDZa6>s z@1=C8uL1#j&~DOoML?i)eIvV*Lmg$D45rCyO8xVK|J?uQIPlQz@5~8~EsQS%`Gd~} zWp>Y8v+O~S9NtY|+*9b&+5;njhF83rRHx-?-GL2e=t>^8hPV&8P;$N5v(PHo9Xq-UO|XGnbJ$RqkJY_^pm z7eJrbr4C=Z)ptzS9Bpx8@INwHT zVlz@gKD+3Rm4X!D_rIv+_E^-aUl(?)&jPx>z@;VSE1SFfa3+M+-XNSeXyc8|5I*2P zyaoYT$z{TpQ7|YA4z$mkK`3tn#M~_e44i>*3Dq|Ym^^wJ1CB(!OShdqZ~g4PVv}r5 zaf2Rv2|vue5S$*Ppe05^9O&-Lq>;k8hI>B!6IC6W8OVvdKGmZGnUzoDuF~HzQCF;t z@yUrT`V_5zO{;m1ffvEg>)DFkEa@&hP|sIF%Y@!!?^F0yy#z<1ky+>2T+X%0nB4I0 z;~&O+dFFjOH*{^;@jq5m%BrTJ@f<&w@Zxx=)PXBC-23-;=8-_IBy-T*b4H7^^kQa) zC=GrbtmT#a?+RiK+?$~z7F+-x!73@Ryg}XQ{>b!qC8SfzsXu%9C)}@oYtA9$ipu?_ z)KG=FKl_fvR{ZAv^wVJ!%@+d4vqBUfQJCwu{$`JWS;N+>tpM;rfghkd?CmGrBRev4$kJ=qn*NzlGeIyTEhx zYST^Pz#eyn%Y%wK!!6ZX$=|+xyXN^g9}cn=iW;N7!h0sWa??}wLErtN7ZZ{VZ*+2C zg6H4Pt0P^RimHXjGf48^doSf`t*mBgog~%mW`c?Q-bwgIK0g6Xh~D$d$t5{mkS4KR zQdI6}^EJ`sbyg{(P@OJrl2rLwJfGo}U%f*E2A3X~)`0%t*ip!g``!4J6j`x>pQeTZ zW zWdRnC*l+5B*$CMmwEXrGY^yC+D>p(s0hT8U^v0LEQeRTq{jl3ZBM_|oba2pL^DsHX z>w2f~OzgYMarW_U)k7Yk=kMt?+*dAn?i++kKT!06?yaD#>(J@>H4w%9s`5JK^{8?Q z)gQN)h}0{-hs(!H-EEHFB&0_u*6ekRpo>-0%Oq9}ai^xwm3d1{K?fel1PB=l7&TaA z`eUIh{S!Yvf6@A&h&^b>q9*Qn&Ku%JMyyMt`7oWsZN;7NJBF7Lh*kQ{$d4ZyB6I{M(o$P}notl|5&Kqvr-uT~kzoiDZCd5N_2pbfg;KB7Y26#`gmY+D*ykFN#4v0AcIm^*b$n18(@-`io|a8vq(3HEnwK()lq0 zFdX)sW1E%fbI%3}3zG9eNv_{av5VS|O?AI)$Jf-*mE$Uzgnm9d+5MZS1uM?#1sVDM zvY_v3f>?f0_2~Bb*#oQaf-S?q_xXI%|L$Xkx6+a45YdTzdNguR*@XzzF>qe_G}l}u z^i>F#oNeHbQzmv?sBB(S_ty1S|N7#?kJc`-v9RtscWPDP4)$d3JA?L9X@ZS4;BuY8 za53xw-+vlx4z5W1x9=4cT^{M?c`7Gvdw!?xj)Zlbx+@WK zi5T;Qxpny1DJGr5NmxV`&ew#W_=m%;dcV9{1#sLERqtKRr6snoqI_Y0*;z0{lb@_p z0u-Hfoz_7_Pc=M1gW$Mn_0;5L&FZ(w2MB_&C-^yVddZTW;9Is4VAdWASQkwlno@MA zmcM4-0f%t5Kc8ZH*yla@9XZ&b2NM-WiHVeQ}tGhTCK@@G9!Ag0*uhlSQhuQ~SPZ-74ZbR^Gp(f>KG(DSjxt zw>t3?$;a$esJk*DSCra4&!SnvZV-1t?Vt2@n6_zOU~##zrJ|7taUp#6fsp8s-AT=I zI={ZDa6uV88xnUqOuN`Pg9qH|3WN$u@HB2**U4f0gWK0gJ;HLK?>DOHzMP(}2yjUd zz4F~{!-+|1pfZh&$+J@C#li7&IE93;h;64wIK$T2a7JD~DysgCN1n^DNvzRQc*Xk{ zi*_^(9CnI1R5vGmCOvbZH1*MmSO9vXT*C8lTB$T%=g zPmP`$pMUFrV06zfnNB9^L7xBF7rbi$WD;7u@2+-xHgtNKD(({~ydxeT^fa4#7C8YV zW?bdMrA8Ib`-lT(0jB^&F3wwpeLVIz3^vj&pRgYnnd(o5+^3@brZFr=7QK)v^k?vADg>Q zMkH;ITM-}dkoz;eYr8r9uEqXQ#&+nqV&cBnoG$M+DddO5D*ZsmAWc|VZfCy}LaFCo zq~PYQ2lRZw+P6uf4s#6YF*1=aWsLRHGksgM59@0wNwvkvM|?s&yt|IFHHWoQKv!wR#PZ!{8Z>zA5N+>3a@Mqt>=uRiYwyWXm%uWm9SC$Gbzm33aQ+ z1}btFGcNx{GczFYGEH?M1 zd$U8-pT>9j<*E-wGb`(tX!Xc^7C3ySDDWys8;3kju$=G>xYorrg`oG2q;f_A=;@M& zOy|Fu$bYouR7cjx5D4{hp%Rl{%_43QT98^Ch`N{Nrg*1n(L@~>JVI6SW|5{oI&~A2 zY4qiUp}Csm*VTk9@cn>)g8){#q-=Lv?aGTW&zp=0f(-Ljn@?8nfr=`|{5vW5O24yR zwrrV*?&A5&;F`yUGt+SLZodySF;VusRJP~{E+vEONcz+^VYd9%?MDUQ1q00`1?2r zllf5;BZ4ZTyeok@_6#Kq$O%}ukh~p3Z`AHcwP0Z8&Jc}XynB=Nb-6a%u*O9M{MrRo z*^=x$O24n$QHpsyZfJkn!&R3kUEH^9zD*w~yiD|6Sx9+$mvp)VFlPF@sx&xNf3MC8 zOZ9&0p!ao97UW@i*FjV%^E^lV2Q7$k8r;+9Q&FEJCmB&fqe)53%$YEsU2geyIp)M< zQW<;TYV4S4;zcSE=}eA2%QAiL#b+_${h`t|2>Ns92|$*jcmFTt|K_%{GUH%B$Q@a= zShqBDsijRTe$P6yz~(ZyoA=LT&`-}+kN&SS-{E`Vbj^S>cxgq9#lcu*Y#^*$r)<4} zDe&Ctld*o9oUPyn?GegJFkY9~n8W5<}vp#5_8 zn&puPVbW>a=Sp6L`{Zuqw3ID9Xxv*E+?|)i_f397<93tiSku!9q^DWIC~sX|g-3kO zt?wN_%$rz{qo}||KA9A`cjAk?1eazDDt}A{)?R-{BO_$^{;6niOF_lMR7;CSF8%dj zEjKUj$eUMq#o78=q`%yMRCV~^s@zg>BW}hyR)6KqO9V}*Y0)U8{3@h1Lspm*yk9DO zP1QlXBE0hLsv>%GQ43k4A$OoTAGxVASlRdb3_7xofazecNQAcXUW@R2=h+wK1`Nl% zCaO<$m3IB|Ch_B2Lq_f;Q(*^lw~J%l;#SLkjslU2{11^xHH6FVJAD4?!}pF$$FK&ZG1OGP`yXZLdI`qZA4I;T&q%;l!AJhoEpZ z^g>0>boD!!NR&#_l~8GmqTtT6K`DyH1^~*CWZ6}%);SjHok2Ls!AqI7UiAF4bg=vY zha*&IZ6Rn34RunVKskR}8|&6f&=|PuUi=Dr02ws6Xsen=oy&u*@02L-d7)8Rr)}N! z=ImyxpUQlKrnwxvB};KcMdI$)#Y)VlicRK6$0mo=1_uy`tXN|$JW3b;3M5$hkw$)~ zOtg$%UDi!H8&s!vNh4T-*v(MDG|lq;wP$J#BuRZw=CIlOn|KiEeD>(ahb*Ij-J8q2 zYO<)hpSiC$ap&C~8k8Mg_FNv2sBVGVsyDrRM1q93n5)B49*>m54}B?o;Bx8;ecpBA zfs*$8R}LmcZfu6lXSH4mLCd4(CR2U&$C|jsge=N4%W@PpuRd2E{|1w;dD+Zh zq?3v|q*FgJ=xvPh9`3s}W6x`>Phw-o5GTZnj&GX#oDmLGVa%tHdr$7o`W^P99;nOf zo;KpLFVo*qSV)|wkhO*q!6mve#kR?DTDp z^&i+SRsgW;?^{PEgH9spK1!JMAKD%{U24gsY_tp+UFjix1bfU^Hn`vdb@-kDK^MZt=Rxr zmJYmZTHN|2EjIoog_-@@!}3kU^u+NS^_~p8>5Z>G$~Wmbr8*Q?mfJj3lwDR9K7;v4 zhu0*rpx&t{YMBZf3NT-ZZM<8#TM#;{YY6c!bc_B4m$0pIw@v?3O7o?Yg80P zZ>M^In9nX`JXKo&SMFHA7XzYyXQrIyf93UPAfdN)K!(SZmV5d^y{P!W7tE43&ySU5 z^VME)^940-JRVuMbqUF;*CZ$xi#d3*Wn{p%mbYq5kfA!SJ1(2#n-_Q)Nfmte-r*Hq zkNL!|$|hFon-8vdIhKx@U*s4fIdrO*MnQ>1*;7@!mKBMI?_>-|%UImM-q~0wtd;Ry zTz!$3v+Ecw@S|nRg=FwFz?A1(G{D%KEu6XI@9~$XG~qrxhgj3l`y4|do^!D|s%1uN zKu05Lcu~I^J$uW3=(S)PHz#>}z3YXZ<;6oYqI}=73@DUuO^XIRdSxEi+NqybO79;@ zokaV!Uk*L1{ze;7nj>$*6q22T1AvU^VE(F0bD8!ty@^VxD|))xT*H)%H1xN47P`|l zat2I3D0vmMn>mW@&Rn(r_GI89PA@bTBg>cOBC%F+_F5;y$EN|WG7CG-UN0HuC+wJl zt(oDXi<2fVQ$13-TN0sxH^R;ZUm9=^Z-6YUEwUt4k1Vzcz7|(V2(9aIhWPikg6%$5 zwSh*F^3Jz$O`$aicyYN0hZAl1^d%v%sF7>xiwg?Sbp0&J&+An0vv?Zdbg}sL(te-6 zCcUUx4HR}(CyB#x*=g|@GAFUc&lAm6n_Gi`p-RRrN|;J#KG3GW=2%%WN}r>I+ZW_| z2pa5eVU7C=RiZ}Jr&^Va`Y9{TUjNwfC0LSH=cWU*A>A4i@i;~yl}J9bE2)=Fq|8>S z?K%TQoTUyfb{(p<1{Vo`h-=r1mnic6sq_0d|1#Gw0>&aZ7Y4i1#D#6Iw72r3Jillv zh(&jK0`q-O@h{6JF;_%b+JD0W{lDyBdd2V$H{?&P*#r&K)S8>afzj8etMwR1^Q!i& zsq5LrmJM1~t7^$g#l{{v>D+3%{Jo_L+(!pb2A7dbc*59e;~mwHO%NlB-)7jl zr9k=B-eSwgEue=qK=kiRoIbqGOO`-k>A!LMt7?i;B)N49Knw1%IV4#Pi0`vv+gP2r zS5!BzuLsEJkt&74*c>`J&%=2E2)Qxy$PD0CMyVwCZlG=}i^E)9rBe8*GLyxV8~*NcB}#h`ILB zWMvKlO;9UtDtai#|E7!6nvuDWQc<)OkFUN-nLwc_7lt5?znru{F`9*Kt;&yoV;#lK z7H(7USohNips}m{j;6ppMjUJQU#+ z)#bZfIx%%bW0D}r=5ts_!mZ%h=7S7drR!^0_SKNwg{9yp))y47yO6gL<|ScuP?*{R zDlT09!H05E0rbbZ_t;W8-zS6*DsYMDf}dcufFo3Ce#LzzAO%haq=|W+cheqI$Txef z&X4kzq_L4(iEaD2xn4P%C@x?eCH-;_xHsfOE;9g0IzhVh+Na6^9^{DajWQSH0RN2U zdXxXqNA68FasBQc_(%Z-CsHp`)JTDBvKxt~i_orq9qG{xq(Ex9;==Fy@r3UwPM?>3 z6HWK80fY!RF)sV_KB*K&0P+lxyBD1Gd*Jt{zxU4rqyWl+$Ikru^7IQ=ZQ$Kq4kqM9 zRwSPIq6JK6J)jZpKLW6Vfe?-ulAqsy9EJCtdwe1_t8DE4+U{sO)4X~Rf2Z}j;+%i2tbwW_}kORYU`IbkU~bI@J_Dzfc~wY5)h?` zV+7!(TCY&Cpi{j^JnXs-EU)A(rcL&D>ZH7&ek-j$A{?T7hXUC6UufQr%i3c!?!O#8 zqEH<75zfSY{?onRjp8_R-)9&6O~y;X*JJAL0(s~w?9?cmDFk0k*)6Z-R}y_WZLQhAyYySvw@w`Wb14zX?^oV1m-HHE0P_X_qNq`IwVNyPQewr|A&#?8tdn0D9hf9;PY*Qb5# zST5H44Sk~`=iPebkQT-f`}3S_e=X&dJnQJx3?E(zmWG2iQfhdP*jHo=2n;WQ=&<#- zupG(JS8WoSfSxmLiz**&0E&S2%a9LL5YE1XGO!2(CpxS7?1bjFTpvg0ib~ep?`KJ9LVM11tE)YR z1BYQ>v;D;sWdIvCx2zWv|GD%S6;%c>LKMGxQyWn6|18RvLq@7b1N>&e5uC>L z3uX(lvLuCb zFh0xQ;}NtGGk961%Wm3_!YBq zC5;0DlVmoNJ>KuH$pj1mV4N$If#;d%ga1e(0=#?UQc~yom&W0Nfb=hW%ew z{V#f4PL!ezvA!W~*(+?QvvM))=-s^WQo`eB&_!VM)3W1}1(2Qyh7tgOdKq5Cu4CEK z66#m7wDnHfwO6{`_8*}+=JoKzNVM;EE6NpfJ?wbMok;2PR zPEia7fGbf^Fdi(|bITgW!jk^n($b+0$;168$~TYo#y=dp94kc|0jJA0MLp^5bgp-_?!Gv}vICn(<>n{2qBz z6PQ&9DSn^|6d>62hsymely^ZS`+17JmG|1tk(5cFPzUA%vJD=ox)eXDbPEVKMlbK# zd2|d{OA>4-;PsB>K#T=wFi75FBO}gf3FMY=@A=!=EmjS;id&*UduU701B7IX)aUD(VK zuhVH*sZstbY;ycv;a9_NJ-Ft~Igt;LtuIJw3I90pRO-cJg>hGxB!mMpIA0S6zlwI_ zWhhC`rlu`S!+PQH$UYpNCHh&3V~Bj{C1cAZ?*Q0nNnXg_+NXRq6{K^SfiN&!OCN3) z1S^}1i%w29a?4^!ICO~EA&k78haLL-6*XH{wXrm$y^@)kVC}J19tI-hL7y3}0;3U3 zVP`2WRB#6Y{RRJKq!vdw?H6jK_MFTaz$#0U!j<3fqIi6KEML_o_so+J?xAbe)IU^% zwJLehwGjCZ&7KVLS7eNAY6v3?$t=SVe!-GO6~&1BiYk5GN%o7diG6LJJPb0rWSdGR zd2er{>m*e`Du-&E*|Z_FvMKzBj-Wfv7%!LJ>@TuMkc}xN@7^B1_~n1? z>kyR_zS-S&e_aF=*sqP8oha22grPyCw=3-0l;|v0a_SR1=5>hGgF5I1ls?*&!S!Hm zBw$8>+hgLr`^o)<+OSXiQL6W`eYfX+SSCA+&$hyV8nG9h>vK$YL%l%7R|Kar;;)mZ zhd#(NMk;ZSrUf^r`mbtxRh52e4# zv31#$nhM20N`fv*B5M4kG0(eBO^)E6gk8wP1K(jg3_U0ww5{GJLo8av2Owfs?N;(U zT$bDKVJ52ePgDIs9d6knUQUv51Ax@E{e2W_1^!YsYE=0*MfK;;V$N`fDQ8;5EDA=( zu|c&HJiGQPHA;NXft$&pnC{9tYb$1zmfK^-fSbv~6sy?Zg_{Im5QaeI9RdTk1bV-o z(;ZP2U;oT(-}ixgD^l&C9DvD?%p)Pa>jUw2!<8=Mrp%(w23gp0KDOjnQ;NbE|M@YS zO$0DswrjPF0MSQ552J=N=z$qlqU714<(#{eqN{4UywzKA*?9=@?U6!_q3EcVYo}Sv zXiAGO%{ej{vbyaUd*FgNSE4a?g}`j7H$<8=_89;ZR=(YVu?vLrmW=dRbS9bRm7+Ei z${b|S%aGRV4?%vYI_!noWUA}ix|YeHn~=^}aSWyS&U3<2Yo6`s)YYZtwJIs+XCHVu`UyGBcDcgpU|HSg|H`n^?lOkh@FqIMPo-sD z=Zj9qvNM2eHwCck)CV}^Mdj+_7fnv#;eQ)0t0DsEoP|4jy!1n#9sXqu}vG-xa{@zpmkLVL+Jv}DYr6Lq^s4z-y!>WP6pw35KD zIQZ@4d54MbSpoU@l!=g%LrW_0y|1y!D;4o!?^eVK$fUxIZl& zQ{rc$uc+Z?Mc`^aTN8%k?S_7QxUm9r883KEd0!*}Z!~DAJze(k{Hogo@w;rzp*vq> zFj{C36mMJev&Q4k&2)UysZo&J=Y+(J+16WRQW?71XW|M`?yxKrf-OQ!h zWF{7Yl)zP_64&MXCU3ls@LCs3uA+@O@tk-vkq0iTw(|)tkftiF3|H&@byX+=>oPPp zi~#G`BiM>T8Ph-=$nfEqdn@JrO*Ku6GU@q#Vv@(2xshs;K{MpL&tKbvsKZgd{aJqQ z&VHEwJ<)}Uvtt(UVq9Xz_)}kId}V_pryCO!qxl* zx}i?pvc^?ZWhKZ}&fk5xf6n8h1LQ7`?|y*zsI?dd?oaocU;pVfvlu?SKO1OhwX0IP z$?$gNRH^3LO9SHEX!UE4XO=}ng6_%QI7R%svD>b~jq8*K*D6{b++a+8lG7x>0$1|S zPsj<@?XX{uS2Z}Hbq;NA1=k%?1($2QrXxFz#0KWbu|;x6-se+y%k$bs48ZgQ;V$Fe zoVMm=sm|+P-Y;ws^46p`2A|d03$3EL3+d!9b63z`9YbbRuJ4?^aK$Y<>S968_eJj7KS=+t+!DSr#KHRmD+2bl zcF~;k#6vpW&Lsd&Oc&e9aDdZ}4Jcp)LdB}<@6W??!d*(!wAZ5Yl+!$D$NJ?q4qB6m zW-ep)nY{Lg;9W>-vZpV>tZ^?tqCR=taIZXnXxES@WM{<#z-NU>qHd+J7skEz|1kwkB8WF zcCN;VSR+^rWr0`Ahg}A%ifw;tPMbY4U^tWAtwYjfML$w9YZ;OkHFVtl-x3idwHk!s zvt_vARXz*$N{ABQ5#;vRJ;g0DN2z*&Wd^~fBg=@{ImcQVht5on zThT|LotYxO65m@Ume>q-6iuY($Y=@8wZ)pUdNdS2B32#j`M-BIFHT-E2v{kNIGE3X z0^De4#u^JG^6Rzb6mRRr#{Ggy{>Pp;QX4rOB-y#NxfwzIPD6f$hWQokl<*$t;ZO^Q z7z8lXg&kTy=I75mkc9gc%ITu@@p_BkKz*W?6T^EURB8Ck2YFVoOaLWl(doyvz#%z^ zwt&T^Rs0=Oxzf*-_)$(yl1sZK&v}<#Xu7w)lJe^rw?8 z%`XiK7fGelmsNNU1T=Kq#x#4?O}hr2$YY0ePwrdp>)tFPXOWBI!+uvwB6uEd^NCwKYo3gvhL>a zx4y1O>%SeJKV5F1`s}=KLhA@3w37SHO3i?lYX=mza*zpI`LHpPHe*t9tE{JmMSQ%a zVZZil=uVh!7%^9GEa{X|yDW|Dk$J|Adp`w~{N6AP1kTZ++=_ktHel2bWl4&+BM9AL z(iw1pEY$}@SBz<1^)*;Cgs~ZRSkM2ljFsC81e0 zC;wS$B@Q>#HNRjQ=EM|H-OR^`cNu!o_}uqZy?G3#1Bj9kPqR?J+3KSNiQgb3Y;+W7 z=avd2Y`nb@R`l`X?DkN4SnQ(}hfYaJGn?%3F~X|Nppi?WhiS4kjyi_9X`?m}Gou($ zn;$WPV2=-nH3J)(Ay@l4-q2$W4AU!t&nGiM#+4JT1FyJSeUW#+g2x%h0OIdW58p%q zW5OX7#DH*F@73M;dJbLi*2L6eW)l3!uRu&TF!}GA37rTz_C9|z`~D8m)ts40CFPeacs~_XJJIq3i6kq}hY#)Fu6^4Tt-Ud;qin^x2zZ$e$~FuP#CrvDlk| ze$6dbG3|Qf5(R%H;}~C*+!4XO8*?fd1#tURh*myk`uP6Reld1PrUke$6iR69M@-5w zp;30oW^adX*;E|_*Syh7-$b`<-2&YZ{h$T@_m>zeve~89kOat!dhmI+<*-$8_cvtx z{AD{+w-L6|x%;)Oe&MXD9DlhL@DIDqGrJ5q9aae64iDV5&f6djYcM_shkbgY27Po+qU647@5 zJ!w`M#^K^KyAiE?pMj2ZjPd;Xh_))APG=%&)Y;!$v7tft>62uM(dg2x<~W<&GL439 zeuEM1fdj$XWD3SL+;TMgV*v9H7m=CE06b_ogfEi2JV__^C=_LVAn~3eJy+~3`~RU! zfg`p|;p)6V$wpwpJcYcwF!rOH@uY(OOj;JaY;ahBd~~)D^(~+G#WORq!2Lq$O~_|a z4A6xsKgAfVlIKqw)jvYrU8tS+OhVZSDD0@Vx#6c&VF1()^*R}SfwLru8)CTl_=GE$ zxTn%mw}e=xe?Qaz=F3q4>$m310${vCz*ukZ3rxPIjOjsWo{R032)1BS8nLEj<2;$l!3N! z=e73M4tSvD5wMB6(>W_{Mh5WEV8yvUQJ>&H1D?MNQrEeoU6}~oLBUq41z{^$!LW%> zqC8N1Fl?ncxMIaJ8u~*h8v5NxM%d-Yyu{9ug=_1lS28rE`|r3{uxF-^LRRP9^g8}$ z|FbSHQ>c@vh4|?1X zG`bDnUoNS9SvI>hd^<7*`k93@mfl#dbjoaoev_MEx zAJ)+8m;NUZ4LFyNSu53gt;=c(K~2RZ+{RblMz;8jJZL&yUfayrX1(d^bIUu1M8g<8 z;#e(w;h`qL_tc}5810LWe+@3;Mth5ru%ElC5}7QViP|MP9X9v1Q#xJG^5;nn{-K>@M-N&&0|sg_RlKSdB& z?=9dOx%$rL|DooOD3-zpR4*?}he-U#I{*1DAkxhwqjKt}`w3TmPlo+*36SRe|Cc~JQ1RP=7TeL=TPJ`&MOl?cxzf-5 F{vY5YFZBQb literal 0 HcmV?d00001 diff --git a/docs/how-to-guides/data/pyg-example.png b/docs/how-to-guides/data/pyg-example.png new file mode 100644 index 0000000000000000000000000000000000000000..bc359162958d1a2f635dc5d673a1cc8ec88bcf2f GIT binary patch literal 176101 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%0DeZNeVav$EHdgF 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 z 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 Make sure you have a running Memgraph instance. If you're not sure how to run +> Memgraph, check out the Memgraph [Quick start](https://memgraph.com/docs/getting-started). + +The `loaders.py` module implements loading data from the local file system, as +well as Azure Blob and Amazon S3 remote file systems. Depending on where your +data is located, here are two guides on how to import it to Memgraph: + +- [Loading a CSV file from the local file + system](#loading-a-csv-file-from-the-local-file-system) +- [Using a cloud storage solution](#using-a-cloud-storage-solution) + +!!! info + You can also use this feature with Neo4j: + + ```python + db = Neo4j(host="localhost", port="7687", username="neo4j", password="test") + ``` + +!!! info + The features below aren’t included in the default GQLAlchemy installation. To use them, make sure to [install GQLAlchemy](../../installation.md) with the relevant optional dependencies. + +## Loading a CSV file from the local file system + +Let's say you have a simple table data in a CSV file stored at +`/home/user/table_data`: + +```csv +name,surname,grade +Ivan,Horvat,4 +Marko,Andric,5 +Luka,Lukic,3 +``` + +To create a translation from table to graph data, you need to define a **data +configuration object**. This can be done inside your code by defining a +dictionary, but it is recommended to use a YAML file structured like this: + +```yaml +indices: # indices to be created for each table + individuals: # name of table containing individuals with ind_id + - ind_id + address: + - add_id + + +name_mappings: # how we want to name node labels + individuals: + label: INDIVIDUAL # nodes made from individuals table will have INDIVIDUAL label + address: + label: ADDRESS + column_names_mapping: {"current_column_name": "mapped_name"} # (optional) map column names + + +one_to_many_relations: + address: [] # currently needed, leave [] if no relations to define + individuals: + - foreign_key: # foreign key used for mapping; + column_name: add_id # specifies its column + reference_table: address # name of table from which the foreign key is taken + reference_key: add_id # column name in reference table from which the foreign key is taken + label: LIVES_IN # label applied to relationship created + from_entity: False # (optional) define direction of relationship created + + +many_to_many_relations: # intended to be used in case of associative tables + example: + foreign_key_from: # describes the source of the relationship + column_name: + reference_table: + reference_key: + foreign_key_to: # describes the destination of the relationship + column_name: + reference_table: + reference_key: + label: + +``` + +For this example, you don't need all of those fields. You only need to define +`indices` and `one_to_many_relations`. Hence, you have the following YAML file: + +```yaml +indices: + example: + - name + +name_mappings: + example: + label: PERSON + +one_to_many_relations: + example: [] +``` + +In order to read the data configuration from the YAML file, run: + +```python +with open("./example.yaml", "r") as stream: + try: + parsed_yaml = yaml.load(stream, Loader=SafeLoader) + except yaml.YAMLError as exc: + print(exc) +``` + +Having defined the data configuration for the translation, all you need to do is +make an instance of an `Importer` and call `translate()`. + +```python +importer = CSVLocalFileSystemImporter( + data_configuration=parsed_yaml, + path="/home/user/table_data", +) + +importer.translate(drop_database_on_start=True) +``` + +## Using a cloud storage solution + +To connect to Azure Blob, simply change the Importer object you are using. Like +above, first, define a data configuration object and then simply call: + +```python +importer = ParquetAzureBlobFileSystemImporter( + container_name="test", + data_configuration=parsed_yaml, + account_name="your_account_name", + account_key="your_account_key", +) +``` + +Hopefully, this guide has taught you how to import table data into Memgraph. If +you have any more questions, join our community and ping us on +[Discord](https://discord.gg/memgraph). diff --git a/docs/how-to-guides/loaders/make-a-custom-file-system-importer.md b/docs/how-to-guides/loaders/make-a-custom-file-system-importer.md new file mode 100644 index 00000000..f657ce81 --- /dev/null +++ b/docs/how-to-guides/loaders/make-a-custom-file-system-importer.md @@ -0,0 +1,101 @@ +# How to make a custom file system importer + +> To learn how to import table data from a file to the Memgraph database, head +> over to the [How to import table +> data](import-table-data-to-graph-database.md) guide. + +If you want to read from a file system not currently supported by +**GQLAlchemy**, or use a file type currently not readable, you can implement +your own by extending abstract classes `FileSystemHandler` and `DataLoader`, +respectively. + +!!! info + You can also use this feature with Neo4j: + + ```python + db = Neo4j(host="localhost", port="7687", username="neo4j", password="test") + ``` + +!!! info + The features below aren’t included in the default GQLAlchemy installation. To use them, make sure to [install GQLAlchemy](../../installation.md) with the relevant optional dependencies. + +## Implementing a new `FileSystemHandler` + +For this guide, you will use the existing `PyArrowDataLoader` capable of reading +CSV, Parquet, ORC and IPC/Feather/Arrow file formats. The PyArrow loader class +supports [fsspec](https://filesystem-spec.readthedocs.io/en/latest/)-compatible +file systems, so to implement an **Azure Blob** file system, you need to follow +these steps. + +### 1. Extend the `FileSystemHandler` class + +This class holds the connection to the file system service and handles the path +from which the `DataLoader` object reads files. To get a fsspec-compatible instance of +an Azure Blob connection, you can use the [adlfs](https://github.com/fsspec/adlfs) package. We are going to pass `adlfs`-specific parameters such as `account_name` and `account_key` via kwargs. All that's left to do +is to override the `get_path` method. + +```python +import adlfs + +class AzureBlobFileSystemHandler(FileSystemHandler): + + def __init__(self, container_name: str, **kwargs) -> None: + """Initializes connection and data container.""" + super().__init__(fs=adlfs.AzureBlobFileSystem(**kwargs)) + self._container_name = container_name + + def get_path(self, collection_name: str) -> str: + """Get file path in file system.""" + return f"{self._container_name}/{collection_name}" +``` + +### 2. Wrap the `TableToGraphImporter` + +Next, you are going to wrap the `TableToGraphImporter` class. This is optional since you can use the class directly, but it will be easier to use if we extend it with our custom importer class. Since we will be using PyArrow for data loading, you can extend the `PyArrowImporter` class (which extends the `TableToGraphImporter`) and make your own +`PyArrowAzureBlobImporter`. This class should initialize the `AzureBlobFileSystemHandler` and leave the rest to the `PyArrowImporter` class. It should also receive a `file_extension_enum` argument, which defines the file type that you are going to be reading. + +```python +class PyArrowAzureBlobImporter(PyArrowImporter): + """PyArrowImporter wrapper for use with Azure Blob File System.""" + + def __init__( + self, + container_name: str, + file_extension_enum: PyArrowFileTypeEnum, + data_configuration: Dict[str, Any], + memgraph: Optional[Memgraph] = None, + **kwargs, + ) -> None: + super().__init__( + file_system_handler=AzureBlobFileSystemHandler( + container_name=container_name, **kwargs + ), + file_extension_enum=file_extension_enum, + data_configuration=data_configuration, + memgraph=memgraph, + ) +``` + +### 3. Call `translate()` + +Finally, to use your custom file system, initialize the Importer class and call +`translate()` + +```python +importer = PyArrowAzureBlobImporter( + container_name="test" + file_extension_enum=PyArrowFileTypeEnum.Parquet, + data_configuration=parsed_yaml, + account_name="your_account_name", + account_key="your_account_key", +) + +importer.translate(drop_database_on_start=True) +``` + +If you want to see the full implementation of the `AzureBlobFileSystem` and +other loader components, have a look [at the +code](https://github.com/memgraph/gqlalchemy). Feel free to create a PR on the +GQLAlchemy repository if you think of a new feature we could use. If you have +any more questions, join our community and ping us on +[Discord](https://discord.gg/memgraph). diff --git a/docs/how-to-guides/ogm.md b/docs/how-to-guides/ogm.md new file mode 100644 index 00000000..2001483b --- /dev/null +++ b/docs/how-to-guides/ogm.md @@ -0,0 +1,468 @@ +# How to use object graph mapper + +!!! info + You can also use this feature with Neo4j: + + ```python + db = Neo4j(host="localhost", port="7687", username="neo4j", password="test") + ``` + +Through this guide, you will learn how to use GQLAlchemy object graph mapper to: +- [**Map nodes and relationships**](#map-nodes-and-relationships) +- [**Save nodes and relationships**](#save-nodes-and-relationships) +- [**Load nodes and relationships**](#load-nodes-and-relationships) + - [**Find node properties**](#find-node-properties) + - [**Create relationship between existing nodes**](#create-relationship-between-existing-nodes) + - [**Merge nodes and relationships**](#merge-nodes-and-relationships) +- [**Create indexes**](#create-indexes) +- [**Create constraints**](#create-constraints) + +>Hopefully, this guide will teach you how to properly use GQLAlchemy object graph mapper. If you +>have any more questions, join our community and ping us on [Discord](https://discord.gg/memgraph). + +!!! info + To test the above features, you must [install GQLAlchemy](../installation.md) and have a running Memgraph instance. If you're unsure how to run Memgraph, check out the Memgraph [Quick start](https://memgraph.com/docs/getting-started)). + +## Map nodes and relationships + +First, we need to import all the necessary classes from GQLAlchemy: + +```python +from gqlalchemy import Memgraph, Node, Relationship +``` + +After that, instantiate Memgraph and **create classes representing nodes**. + +```python +db = Memgraph() + +class User(Node): + id: str + username: str + +class Streamer(User): + id: str + username: str + followers: int + +class Language(Node): + name: str +``` + + + +`Node` is a Python class which maps to a graph object in Memgraph. `User`, `Streamer` and `Language` are classes which inherit from `Node` and they map to a label in a graph database. Class `User` maps to a single `:User` label with properties `id` and `username`, class `Streamer` maps to multiple labels `:Streamer:User` with properties `id`, `username` and `followers`, and class Language maps to a single `:Language` label with `name` property. + +In a similar way, you can **create relationship classes**: + +```python +class ChatsWith(Relationship, type="CHATS_WITH"): + last_chatted: str + +class Speaks(Relationship): + since: str +``` + +The code above maps to a relationship of type `CHATS_WITH` with the string property `last_chatted` and to a relationship of type `SPEAKS` with the string property since. There was no need to add type argument to `Speaks` class, since the label it maps to will automatically be set to uppercase class name in a graph database. + +If you want to **create a node class without any properties**, use `pass` statement: + +```python +class User(Node): + pass +``` + +For **relationships without any properties** also use `pass` statement: + +```python +class ChatsWith(Relationship, type="CHATS_WITH"): + pass +``` + +!!! info + Objects are modeled using GQLAlchemy’s Object Graph Mapper (OGM) which provides schema validation, so you can be sure that the data inside Memgraph is accurate. If you tried saving data that is not following the defined schema, you will get a `ValidationError`. + +To use the above classes, you need to [save](#save-nodes-and-relationships) or [load](#load-nodes-and-relationships) data first. + +## Save nodes and relationships + +In order to save a node using the object graph mapper, first define node classes: + +```python +from gqlalchemy import Memgraph, Node, Relationship + +db = Memgraph() + +class User(Node): + id: str + username: str + +class Language(Node): + name: str +``` + +The above classes map to `User` and `Language` nodes in the database. `User` nodes have properties `id` and `username` and `Language` nodes have property `name`. + + + +To **create and save node objects** use the following code: + +```python +john = User(id="1", username="John").save(db) +jane = Streamer(id="2", username="janedoe", followers=111).save(db) +language = Language(name="en").save(db) +``` + +There is **another way of creating and saving node objects**: + +```python +john = User(id="1", username="John") +db.save_node(john) + +jane = Streamer(id="2", username="janedoe", followers=111) +db.save_node(jane) + +language = Language(name="en") +db.save_node(language) +``` + +!!! danger + The `save()` and `save_node()` procedures will save nodes in Memgraph even if they already exist. This means that if you run the above code twice, you will have duplicate nodes in the database. To avoid that, [add constraints](#create-constraints) for properties or first [load](#load-nodes-and-relationships) the node from the database to check if it already exists. + +To **save relationships** using the object graph mapper, first define relationship classes: + +```python +class ChatsWith(Relationship, type="CHATS_WITH"): + last_chatted: str + +class Speaks(Relationship): + since: str +``` + +The code above maps to a relationship of type `CHATS_WITH` with the string property `last_chatted` and to a relationship of type `SPEAKS` with the string property since. There was no need to add type argument to `Speaks` class, since the label it maps to will automatically be set to uppercase class name in a graph database. + +To save relationships, create them with appropriate start and end nodes and then use the `save()` procedure: + +```python +ChatsWith( + _start_node_id=john._id, _end_node_id=jane._id, last_chatted="2023-02-14" +).save(db) + +Speaks(_start_node_id=john._id, _end_node_id=language._id, since="2023-02-14").save(db) +``` + +The property `_id` is an **internal Memgraph id** - an id given to each node upon saving to the database. This means that you have to first load nodes from the database or save them to variables in order to create a relationship between them. + +!!! info + Objects are modeled using GQLAlchemy’s Object Graph Mapper (OGM) which provides schema validation, so you can be sure that the data inside Memgraph is accurate. If you tried saving data that is not following the defined schema, you will get `ValidationError`. + +**Another way of saving relationships** is by using the `save_relationship()` procedure: + +```python +db.save_relationship( + ChatsWith(_start_node_id=john._id, _end_node_id=jane._id, last_chatted="2023-02-14") +) + +db.save_relationship( + Speaks(_start_node_id=user._id, _end_node_id=language._id, since="2023-02-14") +) +``` + +!!! danger + The `save()` and `save_relationship()` procedures will save relationships in Memgraph even if they already exist. This means that if you run the above code twice, you will have duplicate relationships in the database. To avoid that, first [load](#load-nodes-and-relationships) the relationship from the database to check if it already exists. + +## Load nodes and relationships + +Let's continue with the previously defined classes: + +```python +class User(Node): + id: str + username: str + + +class Streamer(User): + id: str + username: str + followers: int + + +class Language(Node): + name: str + + +class ChatsWith(Relationship, type="CHATS_WITH"): + last_chatted: str + + +class Speaks(Relationship, type="SPEAKS"): + since: str +``` + +For this example, we will also use previously saved nodes: + +```python +jane = Streamer(id="2", username="janedoe", followers=111).save(db) +language = Language(name="en").save(db) +``` + +There are many examples of when **loading a node** from the database may come in +handy, but let's cover the two most common. + +### Find node properties + +Suppose you just have the `id` of the streamer and you want to know the +streamer's name. You have to load that node from the database to check its +`name` property. If you try running the following code: + +```python +loaded_streamer = Streamer(id="2").load(db=db) +``` + +you will get a `ValidationError`. This happens because the schema you defined expects `username` and `followers` properties for the `Streamer` instance. To avoid that, define Streamer class like this: + +```python +class Streamer(User): + id: str + username: Optional[str] + followers: Optional[str] +``` + +The above class definition is not ideal, since it is not enforcing schema as before. To do that, [add constraints](#create-constraints). + +If you try loading the node again, the following code: + +```python +loaded_streamer = Streamer(id="2").load(db=db) +``` + +will print out the username of the streamer whose `id` equals `"2"`, that is, `"janedoe"`. + +### Create relationship between existing nodes + +To create a new relationship of type `SPEAKS`, between already saved streamer and language you need to first load those nodes: + +```python +loaded_streamer = Streamer(id="2").load(db=db) +loaded_language = Language(name="en").load(db=db) +``` + +The load() method returns one result above, since it matches unique database objects. When the matching object is not unique, the `load()` method will return a list of matching results. + +To **create a relationship** between `loaded_streamer` and `loaded_language` nodes run: + +```python +Speaks( + _start_node_id=loaded_streamer._id, + _end_node_id=loaded_language._id, + since="2023-02-15", +).save(db) +``` + +In the above example, the relationship will be created even if it existed before. To avoid that, check [merging nodes and relationships section](#merging-nodes-and-relationships). + +To **load a relationship** from the database based on its start and end node, first mark its property as optional: + +```python +class Speaks(Relationship, type="SPEAKS"): + since: Optional[str] +``` + +The above class definition is not ideal, since it is not enforcing schema as before. To do that, [add constraints](#create-constraints). + +To load the relationship, run the following: + +```python +loaded_speaks = Speaks( + _start_node_id=streamer._id, + _end_node_id=language._id + ).load(db) +``` + +It's easy to get its `since` property: + +```python +print(loaded_speaks.since) +``` +The output of the above print is `2023-02-15`. + +### Merge nodes and relationships + +To **merge nodes**, first try loading them from the database to see if they exist, and if not, save them: + +```python +try: + streamer = Streamer(id="3").load(db=db) +except: + print("Creating new Streamer node in the database.") + streamer = Streamer(id="3", username="anne", followers=222).save(db=db) +``` + +To **merge relationships** first try loading them from the database to see if they exist, and if not, save them: + +```python +try: + speaks = Speaks(_start_node_id=streamer._id, _end_node_id=language._id).load(db) +except: + print("Creating new Speaks relationship in the database.") + speaks = Speaks( + _start_node_id=streamer._id, + _end_node_id=language._id, + since="2023-02-20", + ).save(db) +``` + +## Create indexes + +To create indexes you need to do one additional import: + +```python +from gqlalchemy import Field +``` + +The `Field` class originates from `pydantic`, a Python library data validation and settings management. Here is the example of how `Field` class helps in creating label and label-property indexes: + +```python +class User(Node): + id: str = Field(index=True, db=db) + username: str + +class Language(Node, index=True, db=db): + name: str +``` + +The indexes will be set on class definition, before instantiation. This ensures that the index creation is run only once for each index type. To check which indexes were created, run: + +```python +print(db.get_indexes()) +``` + +The other way to create indexes is by creating an instance of `MemgraphIndex` class. For example, to create label index `NodeOne` and label-property index `NodeOne(name)`, run the following code: + +```python +from gqlalchemy import Memgraph +from gqlalchemy.models import MemgraphIndex + +db = Memgraph() + +index1 = MemgraphIndex("NodeOne") +index2 = MemgraphIndex("NodeOne", "name") + +db.create_index(index1) +db.create_index(index2) +``` + +To learn more about indexes, head over to the [indexing reference guide](https://memgraph.com/docs/fundamentals/indexes). + +## Create constraints + +Uniqueness constraint enforces that each `label`, `property_set` pair is unique. Here is how you can **enforce uniqueness constraint** with GQLAlchemy's OGM: + +```python +class Language(Node): + name: str = Field(unique=True, db=db) +``` + +The above is the same as running the Cypher query: + +```cypher +CREATE CONSTRAINT ON (n:Language) ASSERT n.name IS UNIQUE; +``` + +Read more about it at [uniqueness constraint how-to guide](https://memgraph.com/docs/fundamentals/constraints). + +Existence constraint enforces that each vertex that has a specific label also must have the specified property. Here is how you can **enforce existence constraint** with GQLAlchemy's OGM: + +```python +class Streamer(User): + id: str + username: Optional[str] = Field(exists=True, db=db) + followers: Optional[str] +``` + +The above is the same as running the Cypher query: + +```cypher +CREATE CONSTRAINT ON (n:Streamer) ASSERT EXISTS (n.username); +``` + +Read more about it at [existence constraint how-to guide](https://memgraph.com/docs/fundamentals/constraints). + +To check which constraints have been created, run: + +```python +print(db.get_constraints()) +``` + +## Full code example + +The above mentioned examples can be merged into a working code example which you can run. Here is the code: + +```python +from gqlalchemy import Memgraph, Node, Relationship, Field +from typing import Optional + +db = Memgraph() + +class User(Node): + id: str = Field(index=True, db=db) + username: str = Field(exists=True, db=db) + +class Streamer(User): + id: str + username: Optional[str] = Field(exists=True, db=db) + followers: Optional[str] + +class Language(Node, index=True, db=db): + name: str = Field(unique=True, db=db) + +class ChatsWith(Relationship, type="CHATS_WITH"): + last_chatted: str + +class Speaks(Relationship, type="SPEAKS"): + since: Optional[str] + +john = User(id="1", username="John").save(db) +jane = Streamer(id="2", username="janedoe", followers=111).save(db) +language = Language(name="en").save(db) + +ChatsWith( + _start_node_id=john._id, _end_node_id=jane._id, last_chatted="2023-02-14" +).save(db) + +Speaks(_start_node_id=john._id, _end_node_id=language._id, since="2023-02-14").save(db) + +streamer = Streamer(id="2").load(db=db) +language = Language(name="en").load(db=db) + +speaks = Speaks( + _start_node_id=streamer._id, + _end_node_id=language._id, + since="2023-02-20", +).save(db) + +speaks = Speaks(_start_node_id=streamer._id, _end_node_id=language._id).load(db) +print(speaks.since) + +try: + streamer = Streamer(id="3").load(db=db) +except: + print("Creating new Streamer node in the database.") + streamer = Streamer(id="3", username="anne", followers=222).save(db=db) + +try: + speaks = Speaks(_start_node_id=streamer._id, _end_node_id=language._id).load(db) +except: + print("Creating new Speaks relationship in the database.") + speaks = Speaks( + _start_node_id=streamer._id, + _end_node_id=language._id, + since="2023-02-20", + ).save(db) + +print(db.get_indexes()) +print(db.get_constraints()) +``` + +>Hopefully, this guide has taught you how to properly use GQLAlchemy object graph mapper. If you +>have any more questions, join our community and ping us on [Discord](https://discord.gg/memgraph). diff --git a/docs/how-to-guides/on-disk-storage/on-disk-storage.md b/docs/how-to-guides/on-disk-storage/on-disk-storage.md new file mode 100644 index 00000000..bf5a3034 --- /dev/null +++ b/docs/how-to-guides/on-disk-storage/on-disk-storage.md @@ -0,0 +1,65 @@ +# How to use on-disk storage + +Since Memgraph is an in-memory graph database, the GQLAlchemy library provides +an on-disk storage solution for large properties not used in graph algorithms. +This is useful when nodes or relationships have metadata that doesn’t need to be +used in any of the graph algorithms that need to be carried out in Memgraph, but +can be fetched after. In this how-to guide, you'll learn how to use an SQL +database to store node properties seamlessly as if they were being stored in +Memgraph. + +!!! info + You can also use this feature with Neo4j: + + ```python + db = Neo4j(host="localhost", port="7687", username="neo4j", password="test") + ``` + + +## Connect to Memgraph and an SQL database + +First you need to do all necessary imports and connect to the running Memgraph +and SQL database instance: + +```python +from gqlalchemy import Memgraph, SQLitePropertyDatabase, Node, Field +from typing import Optional + +graphdb = Memgraph() +SQLitePropertyDatabase('path-to-my-db.db', graphdb) +``` + +The `graphdb` creates a connection to an in-memory graph database and +`SQLitePropertyDatabase` attaches to `graphdb` in its constructor. + +## Define schema + +For example, you can create the class `User` which maps to a node object in the +graph database. + +```python +class User(Node): + id: int = Field(unique=True, exists=True, index=True, db=graphdb) + huge_string: Optional[str] = Field(on_disk=True) +``` + +Here the property `id` is a required `int` that creates uniqueness and existence +constraints inside Memgraph. You can notice that the property `id` is also +indexed on label `User`. The `huge_string` property is optional, and because the +`on_disk` argument is set to `True`, it will be saved into the SQLite database. + +## Create data + +Next, you can create some huge string, which won't be saved into the graph +database, but rather into the SQLite databse. + +```python +my_secret = "I LOVE DUCKS" * 1000 +john = User(id=5, huge_string=my_secret).save(db) +john2 = User(id=5).load(db) +print(john2.huge_string) # prints I LOVE DUCKS, a 1000 times +``` + +Hopefully this guide has taught you how to use on-disk storage along with the +in-memory graph database. If you have any more questions, join our community and +ping us on [Discord](https://discord.gg/memgraph). diff --git a/docs/how-to-guides/overview.md b/docs/how-to-guides/overview.md new file mode 100644 index 00000000..3a7d1c0f --- /dev/null +++ b/docs/how-to-guides/overview.md @@ -0,0 +1,87 @@ +# How-to guides overview + +This section will teach you how to use object graph mapper (OGM) and query +builder from the GQLAlchemy. Here you will find step-by-step guides for the most +common usage of OGM and query builder, depending on the current GQLAlchemy +capabilities. If you are a Python developer not that familiar with Cypher query +language, you will find the how-to guides very useful. + +## Object graph mapper + +Object graph mapper (OGM) in GQLAlchemy maps Python classes to nodes and +relationships in graph database and converts function calls to Cypher queries. +To learn more about how to use OGM, take at [**OGM how-to guide**](ogm.md). + +## Query builder + +When working with GQLAlchemy, you can connect to the database and execute Cypher +queries using the query builder. To learn more about how to create a query using +query builder, check out the [**query builder how-to guide**](query-builder.md). + +## Stream & trigger support + +You can create streams and database triggers directly from GQLAlchemy. Check out +the following guides: + +- [**Kafka streams**](streams/kafka-streams.md) +- [**Pulsar streams**](streams/pulsar-streams.md) +- [**Triggers**](triggers/triggers.md) + +## Import data from different sources + +!!! info + The features below aren’t included in the default GQLAlchemy installation. To use them, make sure to [install GQLAlchemy](../installation.md) with the relevant optional dependencies. + + +You can translate table data from a file to graph data and import it to +Memgraph. Currently, we support reading of CSV, Parquet, ORC and +IPC/Feather/Arrow file formats via the PyArrow package. + +You can use `loaders.py` which implements loading data from the local file +system, as well as Azure Blob and Amazon S3 remote file systems: + +- **[Import table data to a graph + database](loaders/import-table-data-to-graph-database.md)** + +The other way to import data is to implement a custom file system importer: + +- **[Implement a custom file system + importer](loaders/make-a-custom-file-system-importer.md)** + +## Instance runner + +There are two ways of managing a Memgraph instance with the `instance_runner` +module: + +- **[Manage a Memgraph instance with +Docker](instance-runner/memgraph-docker-instance.md)** +- **[Manage a Memgraph instance from a + binary](instance-runner/memgraph-binary-instance.md)** + +## On-disk storage + +Since Memgraph is an in-memory graph database, the GQLAlchemy library provides +an on-disk storage solution for large properties that don’t need to be used in +any of the graph algorithms. Learn how to use on-disk storage in the following +guide: + +- [**On-disk storage**](on-disk-storage/on-disk-storage.md) + +## Graph projections + +As subgraphs are mainly used with Memgraph's query modules (graph algorithms), +QueryBuilder's `call()` method enables specifying the subgraph to use with a +certain algorithm. + +- [**Create a graph projection**](query-builder/graph-projection.md) + +## Transform Python graphs into Memgraph graphs + +GQLAlchemy holds transformations that can transform NetworkX, PyG and DGL graphs +into Memgraph graphs. These transformations take the source graph object and +translate it to the appropriate Cypher queries. The Cypher queries are then +executed to create a graph inside Memgraph. + +- [**Import NetworkX graph into Memgraph**](#import-networkx-graph-into-memgraph) +- [**Import PyG graph into Memgraph**](#import-pyg-graph-into-memgraph) +- [**Import DGL graph into Memgraph**](#import-dgl-graph-into-memgraph) diff --git a/docs/how-to-guides/query-builder.md b/docs/how-to-guides/query-builder.md new file mode 100644 index 00000000..536b0119 --- /dev/null +++ b/docs/how-to-guides/query-builder.md @@ -0,0 +1,1528 @@ +# How to use query builder + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Through this guide, you will learn how to use GQLAlchemy query builder to: +- [**Create nodes and relationships**](#create-nodes-and-relationships) + - [**Create a node**](#create-a-node) + - [**Create a relationship**](#create-a-relationship) +- [**Merge nodes and relationships**](#merge-nodes-and-relationships) + - [**Merge a node**](#merge-a-node) + - [**Merge a relationship**](#merge-a-relationship) +- [**Set or update properties and labels**](#set-or-update-properties-and-labels) + - [**Set a property**](#set-a-property) + - [**Set a label**](#set-a-label) + - [**Replace all properties**](#replace-all-properties) + - [**Update all properties**](#update-all-properties) +- [**Filter data**](#filter-data) + - [**Filter data by property comparison**](#filter-data-by-property-comparison) + - [**Filter data by property value**](#filter-data-by-property-value) + - [**Filter data by label**](#filter-data-by-label) +- [**Return results**](#return-results) + - [**Return all variables from a query**](#return-all-variables-from-a-query) + - [**Return specific variables from a query**](#return-specific-variables-from-a-query) + - [**Limit the number of returned results**](#limit-the-number-of-returned-results) + - [**Order the returned results**](#order-the-returned-results) + - [**Order by a list of values**](#order-by-a-list-of-values) +- [**Delete and remove objects**](#delete-and-remove-objects) + - [**Delete a node**](#delete-a-node) + - [**Delete a relationship**](#delete-a-relationship) + - [**Remove properties**](#remove-properties) +- [**Call procedures**](#call-procedures) + - [**Call procedure with no arguments**](#call-procedure-with-no-arguments) + - [**Call procedure with arguments**](#call-procedure-with-arguments) +- [**Load CSV file**](#load-csv-file) + +>Hopefully, this guide will teach you how to properly use GQLAlchemy query builder. If you +>have any more questions, join our community and ping us on [Discord](https://discord.gg/memgraph). + +!!! info + To test the above features, you must install [GQLAlchemy](../installation.md) and have a running Memgraph instance. If you're unsure how to run Memgraph, check out the Memgraph [Quick start](https://memgraph.com/docs/getting-started)). + + +## Create nodes and relationships + +Methods [`create()`](../reference/gqlalchemy/query_builders/declarative_base.md#create), [`merge()`](../reference/gqlalchemy/query_builders/declarative_base.md#merge), [`match()`](../reference/gqlalchemy/query_builders/declarative_base.md#match), [`node()`](../reference/gqlalchemy/query_builders/declarative_base.md#node), [`to()`](../reference/gqlalchemy/query_builders/declarative_base.md#to) and [`from_()`](../reference/gqlalchemy/query_builders/declarative_base.md#from_) are most often used when building a query to create or merge nodes and relationships. + +### Create a node + +To **create a node** with label `Person` and a property `name` of value "Ron", run the following code: + + + + +```python +from gqlalchemy import create + +query = create().node(labels="Person", name="Ron").execute() +``` + + + + +```cypher +CREATE (:Person {name: 'Ron'}); +``` + + + + +### Create a relationship + +To **create a relationship** of type `FRIENDS_WITH` with property `since` from one `Person` node to another, run the following code: + + + + +```python +from gqlalchemy import create + +query = ( + create() + .node(labels="Person", name="Leslie") + .to(relationship_type="FRIENDS_WITH", since="2023-02-16") + .node(labels="Person", name="Ron") + .execute() +) +``` + + + +```cypher +CREATE (:Person {name: 'Leslie'})-[:FRIENDS_WITH {since: '2023-02-16'}]->(:Person {name: 'Ron'}); +``` + + + + +Since you are creating a relationship between two nodes, without first matching the existing nodes or merging the relationships, the nodes will be created too. + +To **create a relationship** of type `FRIENDS_WITH` from one `Person` node to another **in an opposite direction**, run the following code: + + + + +```python +from gqlalchemy import create + +query = ( + create() + .node(labels="Person", name="Leslie") + .from(relationship_type="FRIENDS_WITH") + .node(labels="Person", name="Ron") + .execute() +) +``` + + + +```cypher +CREATE (:Person {name: 'Leslie'})<-[:FRIENDS_WITH]-(:Person {name: 'Ron'}); +``` + + + + +Again, since you are creating a relationship between two nodes, without first matching the existing nodes or merging the relationships, the nodes will be created too. + +To **create a relationship between existing nodes**, first match the existing nodes and then create a relationship by running the following code: + + + + +```python +from gqlalchemy import create, match + +query = ( + match() + .node(labels="Person", name="Leslie", variable="leslie") + .match() + .node(labels="Person", name="Ron", variable="ron") + create() + .node(variable="leslie") + .to(relationship_type="FRIENDS_WITH") + .node(variable="ron") + .execute() +) +``` + + + +```cypher +MATCH (leslie:Person {name: 'Leslie'}) +MATCH (ron:Person {name: 'Ron'}) +CREATE (leslie)-[:FRIENDS_WITH]->(ron); +``` + + + + +Read more about `CREATE` clause in the [Cypher manual](https://memgraph.com/docs/querying/clauses/create). + +## Merge nodes and relationships + +### Merge a node + +To **merge a node**, run the following code: + + + + +```python +from gqlalchemy import merge + +query = merge().node(labels="Person", name="Leslie").execute() +``` + + + + +```cypher +MERGE (:Person {name: 'Leslie'}); +``` + + + + +### Merge a relationship + +To **merge a relationship**, first match the existing nodes and then merge the relationship by running the following code: + + + + + +```python +from gqlalchemy import match, merge + +query = ( + match() + .node(labels="Person", name="Leslie", variable="leslie") + .match() + .node(labels="Person", name="Ron", variable="ron") + .merge() + .node(variable="leslie") + .to(relationship_type="FRIENDS_WITH") + .node(variable="ron") + .execute() +) +``` + + + +```cypher +MATCH (leslie:Person {name: 'Leslie'}) +MATCH (ron:Person {name: 'Ron'}) +MERGE (leslie)-[:FRIENDS_WITH]->(ron); +``` + + + + +Read more about `MERGE` clause in the [Cypher manual](https://memgraph.com/docs/querying/clauses/merge). + +## Set or update properties and labels + +The [`set_()`](../reference/gqlalchemy/query_builders/declarative_base.md#set_) method is used to set labels on nodes, and properties on nodes and relationships. When being set, labels and properties can be updated or created, depending on the operator used as the argument of `set_()` method. + +### Set a property + +To **set a property** of a graph object use the **assignment operator** from the query builder or a simple equals sign as a string - `"="`. + + + + +```python +from gqlalchemy import match +from gqlalchemy.query_builders.memgraph_query_builder import Operator + +query = ( + create() + .node(labels="Country", variable="c", name="Germany") + .set_(item="c.population", operator=Operator.ASSIGNMENT, literal=83000001) + .execute() +) +``` + + + + +```cypher +CREATE (c:Country {name: 'Germany'}) SET c.population = 83000001; +``` + + + + +!!! info + `Operator` is an enumeration class defined in the + [`declarative_base.py`](https://github.com/memgraph/gqlalchemy/blob/main/gqlalchemy/query_builders/declarative_base.py#L84-L94). It can be imported from `gqlalchemy.query_builders.memgraph_query_builder`. + + If you don't want to import it, you can use strings `"="`, `">="`, `">"`, `"<>"`, `":"`, `"<"`, `"<="`, `"!="` or `"+="` instead. + + +To **set a property of already existing node**, first match the node and then set its property. + + + + +```python +from gqlalchemy import match +from gqlalchemy.query_builders.memgraph_query_builder import Operator + +query = ( + match() + .node(labels="Country", variable="c", name="Germany") + .set_(item="c.population", operator=Operator.ASSIGNMENT, literal=10000) + .execute() +) +``` + + + + +```cypher +MATCH (c:Country {name: 'Germany'}) SET c.population = 10000; +``` + + + + +To **set multiple properties of a node**, run the following code: + + + + +```python +from gqlalchemy import match +from gqlalchemy.query_builders.memgraph_query_builder import Operator + +query = ( + match() + .node(variable="n") + .where(item="n.name", operator="=", literal="Germany") + .set_(item="n.population", operator=Operator.ASSIGNMENT, literal=83000001) + .set_(item="n.capital", operator=Operator.ASSIGNMENT, literal="Berlin") + .execute() +) +``` + + + + +```cypher +MATCH (n) WHERE n.name = 'Germany' SET n.population = 83000001 SET n.capital = 'Berlin'; +``` + + + + +If a node already has the properties we are setting, they will be updated to a new value. Otherwise, the properties will be created and their value will be set. + +### Set a label + +To **set a label of a node**, run the following code: + + + + + +```python +from gqlalchemy import Match +from gqlalchemy.query_builders.memgraph_query_builder import Operator + +query = Match() + .node(variable="c", name="Germany") + .set_(item="c", operator=Operator.LABEL_FILTER, expression="Land") + .return_() + .execute() +``` + + + + +```cypher +MATCH (c {name: 'Germany'}) SET c:Land RETURN *; +``` + + + + +If a node already has a label, then it will have both old and new label. + +### Replace all properties + +With Cypher, it is possible to **replace all properties using a map** within a `SET` clause. Here is how to do it with query builder: + + + + +```python +from gqlalchemy import match +from gqlalchemy.query_builders.memgraph_query_builder import Operator + +query = ( + match() + .node(variable="c", labels="Country") + .where(item="c.name", operator="=", literal="Germany") + .set_( + item="c", + operator=Operator.ASSIGNMENT, + literal={"country_name": "Germany", "population": 85000000}, + ) + .execute() +) +``` + + + +```cypher +MATCH (c:Country) WHERE c.name = 'Germany' SET c = {country_name: 'Germany', population: 85000000}; +``` + + + + +The properties that are not a part of the graph objects, but are in the map, will be set. The properties that are not in the map, but are a part of the graph objects, will be removed. If a property is both in map and a graph object property, it will be updated to a new value set in map. + +### Update all properties + +With Cypher, it is also possible to **update all properties using a map** within a `SET` clause by using the **increment operator** (`+=`). Here is how to do it with query builder: + + + + +```python +from gqlalchemy import match +from gqlalchemy.query_builders.memgraph_query_builder import Operator + +query = ( + match() + .node(variable="c", labels="Country") + .where(item="c.country_name", operator="=", literal="Germany") + .set_( + item="c", + operator=Operator.INCREMENT, + literal={"population": "85000000"}, + ) + .execute() +) +``` + + + +```cypher +MATCH (c:Country) WHERE c.country_name = 'Germany' SET c += {population: '85000000'}; +``` + + + + +All the properties in the map (value of the `literal` argument) that are on a graph object will be updated. The properties that are not on a graph object but are in the map will be added. Properties that are not present in the map will be left as is. + +## Filter data + +You can use the methods [`where()`](../reference/gqlalchemy/query_builders/declarative_base.md#where), [`where_not()`](../reference/gqlalchemy/query_builders/declarative_base.md#where_not), [`or_where()`](../reference/gqlalchemy/query_builders/declarative_base.md#or_where), +[`or_where_not()`](../reference/gqlalchemy/query_builders/declarative_base.md#or_where_node), [`and_where()`](../reference/gqlalchemy/query_builders/declarative_base.md#and_where), [`and_where_not()`](../reference/gqlalchemy/query_builders/declarative_base.md#and_where_not), [`xor_where()`](../reference/gqlalchemy/query_builders/declarative_base.md#xor_where) and +[`xor_where_not()`](../reference/gqlalchemy/query_builders/declarative_base.md#xor_where_not) to construct queries that will filter data. + + + +### Filter data by property comparison + +To **filter data by comparing properties** of two nodes, run the following code: + + + + +```python +from gqlalchemy import match +from gqlalchemy.query_builders.memgraph_query_builder import Operator + +results = list( + match() + .node(labels="Person", variable="p1") + .to(relationship_type="FRIENDS_WITH") + .node(labels="Person", variable="p2") + .where(item="p1.name", operator=Operator.LESS_THAN, expression="p2.name") + .return_() + .execute() +) + +print(results) +``` + + + + +```cypher +MATCH (p1:Person)-[:FRIENDS_WITH]->(p2:Person) WHERE p1.name < p2.name RETURN *; +``` + + + + +Keyword arguments that can be used in filtering methods are `literal` and `expression`. Usually we use `literal` for property values and `expression` for property names and labels. That is because property names and labels shouldn't be quoted in Cypher statements. + +!!! info + You will probably see the `GQLAlchemySubclassNotFoundWarning` warning. This happens if you did not define a Python class which maps to a graph object in the database. To do that, check the [object graph mapper how-to guide](ogm.md). To ignore such warnings, you can do the following before query execution: + + ```python + from gqlalchemy import models + + models.IGNORE_SUBCLASSNOTFOUNDWARNING = True + ``` + +Standard boolean operators like `NOT`, `AND`, `OR` and `XOR` are used in the +Cypher query language. To have `NOT` within `WHERE` clause, you need to use +`where_not()` method. + + + + +```python +from gqlalchemy import match +from gqlalchemy.query_builders.memgraph_query_builder import Operator + +results = list( + match() + .node(labels="Person", variable="p1") + .to(relationship_type="FRIENDS_WITH") + .node(labels="Person", variable="p2") + .where_not(item="p1.name", operator=Operator.LESS_THAN, expression="p2.name") + .return_() + .execute() +) + +print(results) +``` + + + + +```cypher +MATCH (p1:Person)-[:FRIENDS_WITH]->(p2:Person) WHERE NOT p1.name < p2.name RETURN *; +``` + + + + +In a similar way, you can use `AND` and `AND NOT` clauses which correspond to +the methods `and_where()` and `and_not_where()`. Using the query below you can +find all persons with the same `address` and `last_name`, but different +`name`. + + + + +```python +from gqlalchemy import match +from gqlalchemy.query_builders.memgraph_query_builder import Operator + +results = list( + match() + .node(labels="Person", variable="p1") + .to(relationship_type="FRIENDS_WITH") + .node(labels="Person", variable="p2") + .where(item="p1.address", operator=Operator.EQUAL, expression="p2.address") + .and_where(item="p1.last_name", operator=Operator.EQUAL, expression="p2.last_name") + .and_not_where(item="p1.name", operator=Operator.EQUAL, expression="p2.name") + .return_() + .execute() +) + +print(results) +``` + + + + +```cypher +MATCH (p1:Person)-[:FRIENDS_WITH]->(p2:Person) +WHERE p1.address = p2.address +AND p1.last_name = p2.last_name +AND NOT p1.name = p2.name +RETURN *; +``` + + + + +The same goes for the `OR`, `OR NOT`, `XOR` and `XOR NOT` clauses, which +correspond to the methods `or_where()`, `or_not_where()`, `xor_where()` and +`xor_not_where()`. + +### Filter data by property value + +You can **filter data by comparing the property of a graph object to some value** (a +literal). Below you can see how to compare `age` property of a node to the +integer. + + + + +```python +from gqlalchemy import match +from gqlalchemy.query_builders.memgraph_query_builder import Operator + +results = list( + match() + .node(labels="Person", variable="p") + .where(item="p.age", operator=Operator.GREATER_THAN, literal=18) + .return_() + .execute() +) +``` + + + + +```cypher +MATCH (p:Person) WHERE p.age > 18 RETURN *; +``` + + + + +The third keyword argument is `literal` since we wanted the property `age` to be saved as an integer. If we used `expression` keyword argument instead of `literal`, then the `age` property would be a string (it would be quoted in Cypher query). Instead of `Operator.GREATER_THAN`, a simple string of value `">"` can be used. + +Just like in [property comparison](#filter-data-by-property-comparison), it is possible to use different boolean operators to further filter the data. + + + + +```python +from gqlalchemy import match +from gqlalchemy.query_builders.memgraph_query_builder import Operator + +results = list( + match() + .node(labels="Person", variable="p") + .where(item="p.age", operator=Operator.GREATER_THAN, literal=18) + .or_where(item="p.name", operator=Operator.EQUAL, literal="John") + .return_() + .execute() +) +``` + + + + +```cypher +MATCH (p:Person) WHERE p.age > 18 OR p.name = "John" RETURN *; +``` + + + + +The `literal` keyword is used again since you want `John` to be quoted in the +Cypher query (to be saved as a string in the database). + +### Filter data by label + +Nodes can be filtered by their label using the `WHERE` clause instead of +specifying it directly in the `MATCH` clause. You have to use `expression` as +the third keyword argument again since you don't want the quotes surrounding the +label in the Cypher clause. + +To **filter data by label** use the following code: + + + + +```python +from gqlalchemy import match +from gqlalchemy.query_builders.memgraph_query_builder import Operator + +results = list( + match() + .node(variable="p") + .where(item="p", operator=Operator.LABEL_FILTER, expression="Person") + .return_() + .execute() +) + +print(results) +``` + + + + +```cypher +MATCH (p) WHERE p:Person RETURN *; +``` + + + + +Just like in [property comparison](#filter-data-by-property-comparison), it is possible to use different boolean operators to further filter the data. + +## Return results + +You can use the methods [`return_()`](../reference/gqlalchemy/query_builders/declarative_base.md#return_), [`limit()`](../reference/gqlalchemy/query_builders/declarative_base.md#limit), [`skip()`](../reference/gqlalchemy/query_builders/declarative_base.md#skip) and [`order_by()`](../reference/gqlalchemy/query_builders/declarative_base.md#order_by) to +construct queries that will return data from the database. + +### Return all variables from a query + +To **return all the variables from a query**, use the `return_()` method at the +end of the query: + + + + +```python +from gqlalchemy import match + +results = list(match().node(labels="Person", variable="p").return_().execute()) +print(results) +``` + + + + +```cypher +MATCH (p:Person) RETURN *; +``` + + + + +### Return specific variables from a query + +To **return only a subset of variables** from a query, specify them in the +`return_()` method: + + + + +```python +from gqlalchemy import match + +results = list( + match() + .node(labels="Person", variable="p1") + .to() + .node(labels="Person", variable="p2") + .return_(results=[("p1", "first"), "p2"]) + .execute() +) + +for result in results: + print("Here is one pair:") + print(result["first"]) + print(result["p2"]) +``` + + + + +```cypher +MATCH (p1:Person)-[]->(p2:Person) RETURN p1 AS first, p2; +``` + + + + +### Limit the number of returned results + +To **limit the number of returned results**, use the `limit()` method after the +`return_()` method: + + + + +```python +from gqlalchemy import match + +results = list(match().node(labels="Person", variable="p").return_().limit(3).execute()) +print(results) +``` + + + + +```cypher +MATCH (p:Person) RETURN * LIMIT 3; +``` + + + + +### Order the returned results + +The default ordering in the Cypher query language is ascending (`ASC` or +`ASCENDING`), and if you want the descending order, you need to add the `DESC` +or `DESCENDING` keyword to the `ORDER BY` clause. + +To **order the return results by one value**, use the `order_by(properties)` method, +where `properties` can be a string (a property) or a tuple of two strings (a +property and an order). + +The following query will order the results in an ascending (default) order by +the property `name` of a node. + + + + +```python +from gqlalchemy import match + +results = list( + match().node(variable="n").return_().order_by(properties="n.name").execute() +) +print(results) + +``` + + + + +```cypher +MATCH (n) RETURN * ORDER BY n.name; +``` + + + + +You can also emphasize that you want an ascending order: + + + + +```python +from gqlalchemy import match +from gqlalchemy.query_builders.memgraph_query_builder import Order + +results = list( + match() + .node(variable="n") + .return_() + .order_by(properties=("n.name", Order.ASC)) + .execute() +) +print(results) +``` + + + + +```cypher +MATCH (n) RETURN * ORDER BY n.name ASC; +``` + + + + +The same can be done with the keyword `ASCENDING`: + + + + +```python +from gqlalchemy import match +from gqlalchemy.query_builders.memgraph_query_builder import Order + +results = list( + match() + .node(variable="n") + .return_() + .order_by(properties=("n.name", Order.ASCENDING)) + .execute() +) +print(results) +``` + + + + +```cypher +MATCH (n) RETURN * ORDER BY n.name ASCENDING; +``` + + + + +!!! info + `Order` is an enumeration class defined in the + [`declarative_base.py`](https://github.com/memgraph/gqlalchemy/blob/main/gqlalchemy/query_builders/declarative_base.py#L97-L101). It can be imported from `gqlalchemy.query_builders.memgraph_query_builder`. + + If you don't want to import it, you can use strings `"ASC"`, `"ASCENDING"`, `"DESC"` or `"DESCENDING"` instead. + +To order the query results in descending order, you need to specify the `DESC` +or `DESCENDING` keyword. Hence, the argument of the `order_by()` method must be +a tuple. + + + + +```python +from gqlalchemy import match +from gqlalchemy.query_builders.memgraph_query_builder import Order + +results = list( + match() + .node(variable="n") + .return_() + .order_by(properties=("n.name", Order.DESC)) + .execute() +) + +print(results) +``` + + + + +```cypher +MATCH (n) RETURN * ORDER BY n.name DESC; +``` + + + + +Similarly, you can use `Order.DESCENDING` to get `DESCENDING` keyword in `ORDER BY` clause. + +### Order by a list of values + +To **order the returned results by more than one value**, use the +`order_by(properties)` method, where `properties` can be a list of strings or +tuples of strings (list of properties with or without order). + +The following query will order the results in ascending order by the property +`id`, then again in ascending (default) order by the property `name` of a node. +After that, it will order the results in descending order by the property +`last_name`, then in ascending order by the property `age` of a node. Lastly, +the query will order the results in descending order by the node property +`middle_name`. + + + + +```python +from gqlalchemy import match +from gqlalchemy.query_builders.memgraph_query_builder import Order + +results = list( + match() + .node(variable="n") + .return_() + .order_by( + properties=[ + ("n.id", Order.ASC), + "n.name", + ("n.last_name", Order.DESC), + ("n.age", Order.ASCENDING), + ("n.middle_name", Order.DESCENDING), + ] + ) + .execute() +) + +print(results) +``` + + + + +```cypher +MATCH (n) +RETURN * +ORDER BY n.id ASC, n.name, n.last_name DESC, n.age ASCENDING, n.middle_name DESCENDING; +``` + + + + +## Delete and remove objects + +You can use the methods [`delete()`](../reference/gqlalchemy/query_builders/declarative_base.md#delete) and [`remove()`](../reference/gqlalchemy/query_builders/declarative_base.md#remove) to construct queries that will +remove nodes and relationships or properties and labels. + +### Delete a node + +To **delete a node** from the database, use the `delete()` method: + + + + +```python +from gqlalchemy import match + +match().node(labels="Person", name="Harry", variable="p").delete( + variable_expressions="p" +).execute() +``` + + + + +```cypher +MATCH (p:Person {name: 'Harry'}) DELETE p; +``` + + + + +### Delete a relationship + +To **delete a relationship** from the database, use the `delete()` method: + + + + +```python +from gqlalchemy import match + +match().node(labels="Person", name="Leslie").to( + relationship_type="FRIENDS_WITH", variable="f" +).node(labels="Person").delete(variable_expressions="f").execute() +``` + + + + +```cypher +MATCH (:Person {name: 'Leslie'})-[f:FRIENDS_WITH]->(:Person) DELETE f; +``` + + + + +### Remove properties + +To remove a property (or properties) from the database, use the `remove()` method: + + + + +```python +from gqlalchemy import match + +match().node(labels="Person", name="Jane", variable="p").remove( + items=["p.name", "p.last_name"] +).execute() +``` + + + + +```cypher +MATCH (p:Person {name: 'Jane'}) REMOVE p.name, p.last_name; +``` + + + + + +## Call procedures + +You can use the methods [`call()`](../reference/gqlalchemy/query_builders/declarative_base.md#call) and [`yield_()`](../reference/gqlalchemy/query_builders/declarative_base.md#yield_) to construct queries that will +call procedure and return results from them. + +### Call procedure with no arguments + +To call a procedure with no arguments, don't specify the arguments in the +`call()` method: + + + + +```python +from gqlalchemy import call + +results = list(call("pagerank.get").yield_().return_().execute()) +print(results) +``` + + + + +```cypher +CALL pagerank.get() YIELD * RETURN *; +``` + + + + +### Call procedure with arguments + +To call a procedure with arguments, specify the arguments as a string in the +`call()` method: + + + + +```python +from gqlalchemy import call + +results = list( + call( + "json_util.load_from_url", + "'https://download.memgraph.com/asset/mage/data.json'", + ) + .yield_("objects") + .return_(results="objects") + .execute() +) + +print("Load from URL with argument:", results, "\n") +``` + + + + +```cypher +CALL json_util.load_from_url('https://download.memgraph.com/asset/mage/data.json') +YIELD objects +RETURN objects; +``` + + + + +

+ Code example using all of the above mentioned queries + +```python +from gqlalchemy import create, merge, Memgraph, match, models, call +from gqlalchemy.query_builders.memgraph_query_builder import Operator, Order + + +db = Memgraph() +# clean database +db.drop_database() + +# create nodes and a relationship between them + +create().node(labels="Person", name="Leslie").to(relationship_type="FRIENDS_WITH").node( + labels="Person", name="Ron" +).execute() + + +# merge a node +merge().node(labels="Person", name="Leslie").execute() + +# create nodes and a relationship between them +create().node( + labels="Person", name="Jane", last_name="James", address="street", age=19 +).from_(relationship_type="FRIENDS_WITH", since="2023-02-16").node( + labels="Person", name="John", last_name="James", address="street", age=8 +).execute() + + +# merge a relationship between existing nodes + +match().node(labels="Person", name="Leslie", variable="leslie").match().node( + labels="Person", name="Ron", variable="ron" +).merge().node(variable="leslie").to(relationship_type="FRIENDS_WITH").node( + variable="ron" +).execute() + + +# set a property +create().node(labels="Country", variable="c", name="Germany").set_( + item="c.population", operator=Operator.ASSIGNMENT, literal=83000001 +).execute() + +# update a property +match().node(labels="Country", variable="c", name="Germany").set_( + item="c.population", operator=Operator.ASSIGNMENT, literal=10000 +).execute() + + +# update multiple properties +match().node(variable="n").where(item="n.name", operator="=", literal="Germany").set_( + item="n.population", operator=Operator.ASSIGNMENT, literal=83000001 +).set_(item="n.capital", operator=Operator.ASSIGNMENT, literal="Berlin").execute() + + +# replace all properties +match().node(variable="c", labels="Country").where( + item="c.name", operator="=", literal="Germany" +).set_( + item="c", + operator=Operator.ASSIGNMENT, + literal={"country_name": "Germany", "population": 85000000}, +).execute() + + +# update multiple properties + +match().node(variable="c", labels="Country").where( + item="c.country_name", operator="=", literal="Germany" +).set_( + item="c", + operator=Operator.INCREMENT, + literal={"population": "85000000"}, +).execute() + + +models.IGNORE_SUBCLASSNOTFOUNDWARNING = True + +results = list( + match() + .node(labels="Person", variable="p1") + .to(relationship_type="FRIENDS_WITH") + .node(labels="Person", variable="p2") + .where(item="p1.name", operator=Operator.LESS_THAN, expression="p2.name") + .return_() + .execute() +) + +print("Filter by property comparison:", results, "\n") + +results = list( + match() + .node(labels="Person", variable="p1") + .to(relationship_type="FRIENDS_WITH") + .node(labels="Person", variable="p2") + .where_not(item="p1.name", operator=Operator.LESS_THAN, expression="p2.name") + .return_() + .execute() +) + +print("Filter by property comparison (negation):", results, "\n") + +results = list( + match() + .node(labels="Person", variable="p1") + .to(relationship_type="FRIENDS_WITH") + .node(labels="Person", variable="p2") + .where(item="p1.address", operator=Operator.EQUAL, expression="p2.address") + .and_where(item="p1.last_name", operator=Operator.EQUAL, expression="p2.last_name") + .and_not_where(item="p1.name", operator=Operator.EQUAL, expression="p2.name") + .return_() + .execute() +) + +print("Filter by property comparison + logical operators:", results, "\n") + +results = list( + match() + .node(labels="Person", variable="p") + .where(item="p.age", operator=Operator.GREATER_THAN, literal=18) + .return_() + .execute() +) + +print("Filter by property value:", results, "\n") + +results = list( + match() + .node(labels="Person", variable="p") + .where(item="p.age", operator=Operator.GREATER_THAN, literal=18) + .or_where(item="p.name", operator=Operator.EQUAL, literal="John") + .return_() + .execute() +) + +print("Filter by property value + logical operators:", results, "\n") + +results = list( + match() + .node(variable="p") + .where(item="p", operator=Operator.LABEL_FILTER, expression="Person") + .return_() + .execute() +) + +print("Filter by label:", results, "\n") + + +results = list(match().node(labels="Person", variable="p").return_().execute()) +print("Return all:", results, "\n") + +results = list( + match() + .node(labels="Person", variable="p1") + .to() + .node(labels="Person", variable="p2") + .return_(results=[("p1", "first"), "p2"]) + .execute() +) + +for result in results: + print("Here is one pair:") + print(result["first"]) + print(result["p2"]) + +print() + +results = list(match().node(labels="Person", variable="p").return_().limit(3).execute()) +print("Limit results:", results, "\n") + + +results = list( + match().node(variable="n").return_().order_by(properties="n.name").execute() +) +print("Order descending:", results, "\n") + +results = list( + match() + .node(variable="n") + .return_() + .order_by(properties=("n.name", Order.ASCENDING)) + .execute() +) +print("Order ascending:", results, "\n") + +results = list( + match() + .node(variable="n") + .return_() + .order_by(properties=("n.name", Order.DESC)) + .execute() +) + +print("Order descending with ordering:", results, "\n") + +results = list( + match() + .node(variable="n") + .return_() + .order_by( + properties=[ + ("n.id", Order.ASC), + "n.name", + ("n.last_name", Order.DESC), + ("n.age", Order.ASCENDING), + ("n.middle_name", Order.DESCENDING), + ] + ) + .execute() +) + +print("Mix of ordering:", results, "\n") + + +# create a node to delete +create().node(labels="Person", name="Harry").execute() + +# delete a node +match().node(labels="Person", name="Harry", variable="p").delete( + variable_expressions="p" +).execute() + +# delete a relationship between Leslie and her friends +match().node(labels="Person", name="Leslie").to( + relationship_type="FRIENDS_WITH", variable="f" +).node(labels="Person").delete(variable_expressions="f").execute() + +# remove name and last_name properties from Jane +match().node(labels="Person", name="Jane", variable="p").remove( + items=["p.name", "p.last_name"] +).execute() + +# calculate PageRank +results = list(call("pagerank.get").yield_().return_().execute()) +print("PageRank:", results, "\n") + +# Load JSON from URL with arguments +results = list( + call( + "json_util.load_from_url", + "'https://download.memgraph.com/asset/mage/data.json'", + ) + .yield_("objects") + .return_(results="objects") + .execute() +) + +print("Load from URL with argument:", results, "\n") +``` +
+ +## Load CSV file + +To load a CSV file using query builder, use the `load_csv()` procedure. Here is an example CSV file: +``` +id,name,age,city +100,Daniel,30,London +101,Alex,15,Paris +102,Sarah,17,London +103,Mia,25,Zagreb +104,Lucy,21,Paris +``` + +To load it, run the following code: + +```python +from gqlalchemy import load_csv, Memgraph +from gqlalchemy.utilities import CypherVariable + +db = Memgraph() + +load_csv( + path="/path-to/people_nodes.csv", header=True, row="row" + ) + .create() + .node( + variable="n", + labels="Person", + id=CypherVariable(name="row.id"), + name=CypherVariable(name="row.name"), + age=CypherVariable(name="ToInteger(row.age)"), + city=CypherVariable(name="row.city"), + ) + .execute() +``` + +>Hopefully, this guide has taught you how to properly use GQLAlchemy query builder. If you +>have any more questions, join our community and ping us on [Discord](https://discord.gg/memgraph). + diff --git a/docs/how-to-guides/query-builder/graph-projection.md b/docs/how-to-guides/query-builder/graph-projection.md new file mode 100644 index 00000000..ddde895d --- /dev/null +++ b/docs/how-to-guides/query-builder/graph-projection.md @@ -0,0 +1,68 @@ +# How to create a graph projection + +[![Related - +How-to](https://img.shields.io/static/v1?label=Related&message=How-to&color=blue&style=for-the-badge)](https://memgraph.com/docs/advanced-algorithms/run-algorithms) +[![Related - Under the +Hood](https://img.shields.io/static/v1?label=Related&message=Under%20the%20hood&color=orange&style=for-the-badge)](https://memgraph.com/blog/how-we-designed-and-implemented-graph-projection-feature) + +As subgraphs are mainly used with Memgraph's query modules (graph algorithms), +`QueryBuilder`'s `call()` method enables specifying the subgraph to use with a certain algorithm. + +To call a procedure named `test_query_module` with argument `"arg"`, and run +it on a subgraph containing only nodes with label `:LABEL` and their mutual +relationships build the following query: + +```Python +from gqlalchemy import QueryBuilder + +label = "LABEL" + +query_builder = QueryBuilder().call(procedure="test_query_module", + arguments=("arg"), node_labels=label) + +query_builder.execute() +``` + +The above code executes the following Cypher query: +```Cypher +MATCH p=(a)-->(b) +WHERE (a:LABEL) +AND (b:LABEL) +WITH project(p) AS graph +CALL test_query_module(graph, 'arg') +``` + +`WHERE` and `AND` clauses are used to allow for more generalization. To expand +on this code you can use multiple relationship types and node +labels. Node labels and relationship types can be passed as a single string, in +which case that string is used for all labels or types. To specify different +labels and types for entities on a path, you need to pass a list of lists, +containing a list of labels for every node on a path, and likewise for relationships. You can use this as following: + +```Python +node_labels = [["COMP", "DEVICE"], ["USER"], ["SERVICE", "GATEWAY"]] +relationship_types = [["OWNER", "RENTEE"], ["USES", "MAKES"]] +relationship_directions = [RelationshipDirection.LEFT, RelationshipDirection.RIGHT] +arguments = ("arg0", 5) + +query_builder = QueryBuilder().call(procedure="test_query_module", + arguments = arguments, + node_labels=node_labels, + relationship_types=relationship_types, + relationship_directions=relationship_directions) + +query_builder.execute() +``` + +The above code executes the following Cypher query: +```Cypher +MATCH p=(a)<-[:OWNER | :RENTEE]-(b)-[:USES | :MAKES]->(c) +WHERE (a:COMP or a:DEVICE) +AND (b:USER) +AND (c:SERVICE or c:GATEWAY) +WITH project(p) AS graph +CALL test_query_module(graph, "arg0", 5) +``` + +This query calls `test_query_module` on a subgraph containing all nodes labeled +`USER` that have an outgoing relationship of types either `OWNER` or `RENTEE` towards nodes labeled `COMP` or `DEVICE` and also a relationship of type `USES` or `MAKES` towards nodes labeled `SERVICE` or `GATEWAY`. diff --git a/docs/how-to-guides/streams/kafka-streams.md b/docs/how-to-guides/streams/kafka-streams.md new file mode 100644 index 00000000..cde425df --- /dev/null +++ b/docs/how-to-guides/streams/kafka-streams.md @@ -0,0 +1,62 @@ +# How to manage Kafka streams + +The stream functionality enables Memgraph to connect to a Kafka, Pulsar or +Redpanda cluster and run graph analytics on the data stream. + +!!! info + You can also use this feature with Neo4j: + + ```python + db = Neo4j(host="localhost", port="7687", username="neo4j", password="test") + ``` + + +## 1. Create a Kafka stream in Memgraph + +To set up the streams, first, create a `MemgraphKafkaStream` object with all the +required arguments: + +- `name: str` ➡ The name of the stream. +- `topics: List[str]` ➡ List of topic names. +- `transform: str` ➡ The transformation procedure for mapping incoming messages + to Cypher queries. +- `consumer_group: str` ➡ Name of the consumer group in Memgraph. +- `batch_interval: str = None` ➡ Maximum wait time in milliseconds for consuming + messages before calling the transform procedure. +- `batch_size: str = None` ➡ Maximum number of messages to wait for before + calling the transform procedure. +- `bootstrap_servers: str = None` ➡ Comma-separated list of bootstrap servers. + +Now you just have to call the `create_stream()` method with the newly created +`MemgraphKafkaStream` object: + +```python +from gqlalchemy import MemgraphKafkaStream + +stream = MemgraphKafkaStream(name="ratings_stream", topics=["ratings"], transform="movielens.rating", bootstrap_servers="localhost:9093") +db.create_stream(stream) +``` + +## 2. Start the stream + +To start the stream, just call the `start_stream()` method: + +```python +db.start_stream(stream) +``` + +## 3. Check the status of the stream + +To check the status of the stream in Memgraph, just run the following command: + +```python +check = db.get_streams() +``` + +## 4. Delete the stream + +You can use the `drop_stream()` method to delete a stream: + +```python +check = db.drop_stream(stream) +``` diff --git a/docs/how-to-guides/streams/pulsar-streams.md b/docs/how-to-guides/streams/pulsar-streams.md new file mode 100644 index 00000000..0650933b --- /dev/null +++ b/docs/how-to-guides/streams/pulsar-streams.md @@ -0,0 +1,61 @@ +# How to manage Pulsar streams + +The stream functionality enables Memgraph to connect to a Kafka, Pulsar or +Redpanda cluster and run graph analytics on the data stream. + +!!! info + You can also use this feature with Neo4j: + + ```python + db = Neo4j(host="localhost", port="7687", username="neo4j", password="test") + ``` + + +## 1. Create a Pulsar stream in Memgraph + +To set up the streams, first, create a `MemgraphPulsarStream` object with all +the required arguments: + +- `name: str` ➡ The name of the stream. +- `topics: List[str]` ➡ List of topic names. +- `transform: str` ➡ The transformation procedure for mapping incoming messages + to Cypher queries. +- `batch_interval: str = None` ➡ Maximum wait time in milliseconds for consuming + messages before calling the transform procedure. +- `batch_size: str = None` ➡ Maximum number of messages to wait for before + calling the transform procedure. +- `service_url: str = None` ➡ URL to the running Pulsar cluster. + +Now you just have to call the `create_stream()` method with the newly created +`MemgraphPulsarStream` object: + +```python +from gqlalchemy import MemgraphPulsarStream + +stream = MemgraphPulsarStream(name="ratings_stream", topics=["ratings"], transform="movielens.rating", service_url="localhost:6650") +db.create_stream(stream) +``` + +## 2. Start the stream + +To start the stream, just call the `start_stream()` method: + +```python +db.start_stream(stream) +``` + +## 3. Check the status of the stream + +To check the status of the stream in Memgraph, just run the following command: + +```python +check = db.get_streams() +``` + +## 4. Delete the stream + +You can use the `drop_stream()` method to delete a stream: + +```python +check = db.drop_stream(stream) +``` diff --git a/docs/how-to-guides/translators/export-python-graphs.md b/docs/how-to-guides/translators/export-python-graphs.md new file mode 100644 index 00000000..cff451e4 --- /dev/null +++ b/docs/how-to-guides/translators/export-python-graphs.md @@ -0,0 +1,192 @@ +# How to export data from Memgraph into Python graphs + +GQLAlchemy holds translators that can export Memgraph graphs into Python graphs ([NetworkX](https://networkx.org/), [PyG](https://pytorch-geometric.readthedocs.io/en/latest/) or [DGL](https://www.dgl.ai/) graphs). These translators create a Python graph instance from the graph stored in Memgraph. + +[![docs-source](https://img.shields.io/badge/source-examples-FB6E00?logo=github&style=for-the-badge)](https://github.com/memgraph/gqlalchemy/tree/main/tests/transformations/translators) +[![docs-source](https://img.shields.io/badge/source-translators-FB6E00?logo=github&style=for-the-badge)](https://github.com/memgraph/gqlalchemy/tree/main/gqlalchemy/transformations/translators) +[![Related - Under the +hood](https://img.shields.io/static/v1?label=Related&message=Under%20the%20hood&color=orange&style=for-the-badge)](../../under-the-hood/python-graph-translators.md) + +In this guide you will learn how to: +- [**Export data from Memgraph into NetworkX graph**](#export-data-from-memgraph-into-networkx-graph) +- [**Export data from Memgraph into PyG graph**](#import-pyg-graph-into-memgraph) +- [**Export data from Memgraph into DGL graph**](#import-dgl-graph-into-memgraph) + +## General prerequisites +You need a running **Memgraph Platform instance**, which includes both the MAGE library and Memgraph Lab, a visual interface. To run the image, open a command-line interpreter and run the following Docker command: + +``` +docker run -it -p 7687:7687 -p 7444:7444 -p 3000:3000 memgraph/memgraph-platform:latest +``` + +
+To export data from Memgraph, you first have to create a graph in Memgraph. To do that, expand this section and run the given Python script. + +```python +from gqlalchemy import Memgraph + +memgraph = Memgraph() +memgraph.drop_database() + +queries = [] +queries.append(f"CREATE (m:Node {{id: 1, num: 80, edem: 30, lst: [2, 3, 3, 2]}})") +queries.append(f"CREATE (m:Node {{id: 2, num: 91, edem: 32, lst: [2, 2, 3, 3]}})") +queries.append( + f"CREATE (m:Node {{id: 3, num: 100, edem: 34, lst: [3, 2, 2, 3, 4, 4]}})" +) +queries.append(f"CREATE (m:Node {{id: 4, num: 12, edem: 34, lst: [2, 2, 2, 3, 5, 5]}})") +queries.append( + f"MATCH (n:Node {{id: 1}}), (m:Node {{id: 2}}) CREATE (n)-[r:CONNECTION {{edge_id: 1, edge_num: 99, edge_edem: 12, edge_lst: [0, 1, 0, 1, 0, 1, 0, 1]}}]->(m)" +) +queries.append( + f"MATCH (n:Node {{id: 2}}), (m:Node {{id: 3}}) CREATE (n)-[r:CONNECTION {{edge_id: 2, edge_num: 99, edge_edem: 12, edge_lst: [0, 1, 0, 1]}}]->(m)" +) +queries.append( + f"MATCH (n:Node {{id: 3}}), (m:Node {{id: 4}}) CREATE (n)-[r:CONNECTION {{edge_id: 3, edge_num: 99, edge_edem: 12, edge_lst: [1, 0, 1, 0, 1, 0, 1]}}]->(m)" +) +queries.append( + f"MATCH (n:Node {{id: 4}}), (m:Node {{id: 1}}) CREATE (n)-[r:CONNECTION {{edge_id: 4, edge_num: 99, edge_edem: 12, edge_lst: [0, 1, 0, 1]}}]->(m)" +) +queries.append( + f"MATCH (n:Node {{id: 1}}), (m:Node {{id: 3}}) CREATE (n)-[r:CONNECTION {{edge_id: 5, edge_num: 99, edge_edem: 12, edge_lst: [0, 1, 0, 1]}}]->(m)" +) +queries.append( + f"MATCH (n:Node {{id: 2}}), (m:Node {{id: 4}}) CREATE (n)-[r:CONNECTION {{edge_id: 6, edge_num: 99, edge_edem: 12, edge_lst: [0, 1, 0, 1, 0, 0]}}]->(m)" +) +queries.append( + f"MATCH (n:Node {{id: 4}}), (m:Node {{id: 2}}) CREATE (n)-[r:CONNECTION {{edge_id: 7, edge_num: 99, edge_edem: 12, edge_lst: [1, 1, 0, 0, 1, 1, 0, 1]}}]->(m)" +) +queries.append( + f"MATCH (n:Node {{id: 3}}), (m:Node {{id: 1}}) CREATE (n)-[r:CONNECTION {{edge_id: 8, edge_num: 99, edge_edem: 12, edge_lst: [0, 1, 0, 1]}}]->(m)" +) + +for query in queries: + memgraph.execute(query) +``` + +
+ +## Export data from Memgraph into NetworkX graph + +### Prerequisites + +Except for the [**general prerequisites**](#general-prerequisites), you also need to install [**NetworkX Python library**](https://pypi.org/project/networkx/). + +### Create and run a Python script + +Create a new Python script `memgraph-to-nx.py`, in the code editor of your choice, with the following code: + +```python +from gqlalchemy.transformations.translators.nx_translator import NxTranslator + +translator = NxTranslator() +graph = translator.get_instance() + +print(graph.number_of_edges()) +print(graph.number_of_nodes()) +``` + +To run it, open a command-line interpreter and run the following command: + +```python +python3 memgraph-to-nx.py +``` + +You will get the following output: +``` +8 +4 +``` + +This means that the NetworkX graph has the correct number of nodes and edges. You can explore it more to see if it has all the required features. + +## Export data from Memgraph into PyG graph + +### Prerequisites + +Except for the [**general prerequisites**](#general-prerequisites), you also need to install [**Pytorch Geometric Python library**](https://pytorch-geometric.readthedocs.io/en/latest/install/installation.html). + +### Create and run a Python script + +Create a new Python script `memgraph-to-pyg.py`, in the code editor of your choice, with the following code: + +```python +from gqlalchemy.transformations.translators.pyg_translator import PyGTranslator + +translator = PyGTranslator() +graph = translator.get_instance() + +print(len(graph.edge_types)) +print(len(graph.node_types)) + +source_node_label, edge_type, dest_node_label = ("Node", "CONNECTION", "Node") +can_etype = (source_node_label, edge_type, dest_node_label) +print(graph[source_node_label].num_nodes) +print(graph[can_etype].num_edges) +``` + +To run it, open a command-line interpreter and run the following command: + +```python +python3 memgraph-to-pyg.py +``` + +You will get the following output: +``` +1 +1 +4 +8 +``` + +This means that the PyG graph has the correct number of node and edge types, as well as correct total number of nodes and edges. You can explore it more to see if it has all the required features. + + +## Export data from Memgraph into DGL graph + +### Prerequisites + +Except for the [**general prerequisites**](#general-prerequisites), you also need to install [**Deep Graph Library**](https://www.dgl.ai/pages/start.html). + +### Create and run a Python script + +Create a new Python script `memgraph-to-dgl.py`, in the code editor of your choice, with the following code: + +```python +from gqlalchemy.transformations.translators.dgl_translator import DGLTranslator + +translator = DGLTranslator() +graph = translator.get_instance() + +print(len(graph.canonical_etypes)) +print(len(graph.ntypes)) + +source_node_label, edge_type, dest_node_label = ("Node", "CONNECTION", "Node") +can_etype = (source_node_label, edge_type, dest_node_label) +print(graph[can_etype].number_of_nodes()) +print(graph[can_etype].number_of_edges()) +print(len(graph.nodes[source_node_label].data.keys())) +print(len(graph.edges[(source_node_label, edge_type, dest_node_label)].data.keys())) +``` + +To run it, open a command-line interpreter and run the following command: + +```python +python3 memgraph-to-dgl.py +``` + +You will get the following output: +``` +1 +1 +4 +8 +3 +3 +``` + +This means that the DGL graph has the correct number of node and edge types, total number of nodes and edges, as well as node and edge features. You can explore it more to see if it has all the required features. + +## Learn more + +Head over to the [**Under the hood**](../../under-the-hood/python-graph-translators.md) section to read about implementation details. If you want to learn more about using NetworkX with Memgraph with interesting resources and courses, head over to the [**Memgraph for NetworkX developers**](https://memgraph.com/memgraph-for-networkx?utm_source=docs&utm_medium=referral&utm_campaign=networkx_ppp&utm_term=docsgqla%2Bhowto&utm_content=textlink) website. If you have any questions or want to connect with the Memgraph community, [**join our Discord server**](https://www.discord.gg/memgraph). diff --git a/docs/how-to-guides/translators/import-python-graphs.md b/docs/how-to-guides/translators/import-python-graphs.md new file mode 100644 index 00000000..270b6d68 --- /dev/null +++ b/docs/how-to-guides/translators/import-python-graphs.md @@ -0,0 +1,211 @@ +# How to import Python graphs into Memgraph + +GQLAlchemy holds translators that can import Python graphs ([NetworkX](https://networkx.org/), [PyG](https://pytorch-geometric.readthedocs.io/en/latest/) or [DGL](https://www.dgl.ai/) graphs) into Memgraph. These translators take the Python graph object and translate it to the appropriate Cypher queries. The Cypher queries are then executed to create a graph inside Memgraph. + +[![docs-source](https://img.shields.io/badge/source-examples-FB6E00?logo=github&style=for-the-badge)](https://github.com/memgraph/gqlalchemy/tree/main/tests/transformations/translators) +[![docs-source](https://img.shields.io/badge/source-translators-FB6E00?logo=github&style=for-the-badge)](https://github.com/memgraph/gqlalchemy/tree/main/gqlalchemy/transformations/translators) +[![Related - Under the +hood](https://img.shields.io/static/v1?label=Related&message=Under%20the%20hood&color=orange&style=for-the-badge)](../../under-the-hood/python-graph-translators.md) + +In this guide you will learn how to: +- [**Import NetworkX graph into Memgraph**](#import-networkx-graph-into-memgraph) +- [**Import PyG graph into Memgraph**](#import-pyg-graph-into-memgraph) +- [**Import DGL graph into Memgraph**](#import-dgl-graph-into-memgraph) + +## General prerequisites +You need a running **Memgraph Platform instance**, which includes both the MAGE library and Memgraph Lab, a visual interface. To run the image, open a command-line interpreter and run the following Docker command: + +``` +docker run -it -p 7687:7687 -p 7444:7444 -p 3000:3000 memgraph/memgraph-platform:latest +``` + +## Import NetworkX graph into Memgraph + +### Prerequisites + +Except for the [**general prerequisites**](#general-prerequisites), you also need to install [**NetworkX Python library**](https://pypi.org/project/networkx/). + +### Create and run a Python script + +Create a new Python script `networkx-graph.py` in the code editor of your choice, with the following code: + +```python +import networkx as nx +from gqlalchemy import Memgraph +from gqlalchemy.transformations.translators.nx_translator import NxTranslator + +memgraph = Memgraph() +memgraph.drop_database() + +graph = nx.Graph() +graph.add_nodes_from([(1, {"labels": "First"}), (2, {"name": "Kata"}), 3]) +graph.add_edges_from([(1, 2, {"type": "EDGE_TYPE", "date": "today"}), (1, 3)]) + +translator = NxTranslator() + +for query in list(translator.to_cypher_queries(graph)): + memgraph.execute(query) +``` + +First, connect to a running Memgraph instance. Next, drop the database to be sure that it's empty. After that, create a simple NetworkX graph and add nodes and edges to it. In the end, call `to_cypher_queries` procedure on `NxTranslator` instance to transform the NetworkX graph to Cypher queries which will be executed in Memgraph. + +To run it, open a command-line interpreter and run the following command: + +```python +python3 networkx-graph.py +``` + +### Explore the graph + +[Connect to Memgraph](htps://memgraph.com/docs/data-visualization/install-and-connect) via Memgraph Lab which is running at `localhost:3000`. Open the **Query Execution** section and write the following query: + +```cypher +MATCH (n)-[r]->(m) +RETURN n, r, m; +``` + +Click **Run Query** button to see the results. + +networkx-example-1 + +The NetworkX node identification number maps to the `id` node property in Memgraph. The `labels` key is reserved for the node label in Memgraph, while the edge `type` key is reserved for the relationship type in Memgraph. If no `type` is defined, then the relationship will be of type `TO` in Memgraph. You can notice that the node with the property `name` Kata and property `id` 2 doesn't have a label. This happened because the node property key `labels` was not defined. + +## Import PyG graph into Memgraph + +### Prerequisites + +Except for the [**general prerequisites**](#general-prerequisites), you also need to install [**Pytorch Geometric Python library**](https://pytorch-geometric.readthedocs.io/en/latest/install/installation.html). + +### Create and run a Python script + +Create a new Python script `pyg-graph.py` in the code editor of your choice, with the following code: + +```python +import torch +from gqlalchemy import Memgraph +from gqlalchemy.transformations.translators.pyg_translator import PyGTranslator +from torch_geometric.data import HeteroData + + +memgraph = Memgraph() +memgraph.drop_database() + +graph = HeteroData() + +graph[("user", "PLUS", "movie")].edge_index = torch.tensor( + [[0, 0, 1], [0, 1, 0]], dtype=torch.int32 +) +graph[("user", "MINUS", "movie")].edge_index = torch.tensor( + [[2], [1]], dtype=torch.int32 +) +# Set node features +graph["user"].prop1 = torch.randn(size=(3, 1)) +graph["user"].prop2 = torch.randn(size=(3, 1)) +graph["movie"].prop1 = torch.randn(size=(2, 1)) +graph["movie"].prop2 = torch.randn(size=(2, 1)) +graph["movie"].prop3 = torch.randn(size=(2, 1)) +graph["movie"].x = torch.randn(size=(2, 1)) +graph["movie"].y = torch.randn(size=(2, 1)) +# Set edge features +graph[("user", "PLUS", "movie")].edge_prop1 = torch.randn(size=(3, 1)) +graph[("user", "PLUS", "movie")].edge_prop2 = torch.randn(size=(3, 1)) +graph[("user", "MINUS", "movie")].edge_prop1 = torch.randn(size=(1, 1)) + +translator = PyGTranslator() + +for query in list(translator.to_cypher_queries(graph)): + memgraph.execute(query) +``` + +First, connect to a running Memgraph instance. Next, drop the database to be sure that it's empty. After that, create a simple PyG heterogeneous graph and add nodes and edges along with their features to it. The graph consist of three `user` nodes and two `movie` nodes, as well as two types of edges - `PLUS` and `MINUS`. The `edge_index` of a graph determines which nodes are connected by which edges. Provide a tensor, that is a multi-dimensional matrix, as a value of `edge_index`, to define edges. Each tensor element maps to one graph node - first row of matrix maps to `user`, while the second one to the `movie` nodes. Hence, `user` node 0 is connected to the `movie` node 0, `user` node 0 is connected to the `movie` node 1, and `user` node 1 is connected to the `movie` node 0, with edge of type `PLUS`. These integers are mapping to the values of the `pyg_id` nodes' property in Memgraph. Similarly, the edge of type `MINUS` is created between `user` node 2 and `movie` node 1. In the end, call `to_cypher_queries` procedure on `PyGTranslator` instance to transform the PysG graph to Cypher queries which will be executed in Memgraph. + +To run it, open a command-line interpreter and run the following command: + +```python +python3 pyg-graph.py +``` + +### Explore the graph + +[Connect to Memgraph](htps://memgraph.com/docs/data-visualization/install-and-connect) via Memgraph Lab which is running at `localhost:3000`. Open the **Query Execution** section and write the following query: + +```cypher +MATCH (n)-[r]->(m) +RETURN n, r, m; +``` + +Click **Run Query** button to see the results. + +pyg-example + +You can notice that we have nodes labeled with `user` and `movie` and relationships of type `PLUS` and `MINUS`. Besides that, nodes and relationships have randomized array properties as well as `pyg_id` property. + +## Import DGL graph into Memgraph + +### Prerequisites + +Except for the [**general prerequisites**](#general-prerequisites), you also need to install [**Deep Graph Library**](https://www.dgl.ai/pages/start.html). + +### Create and run a Python script + +Create a new Python script `dgl-graph.py` in the code editor of your choice, with the following code: + +```python +import numpy as np +import dgl +import torch +from gqlalchemy import Memgraph +from gqlalchemy.transformations.translators.dgl_translator import DGLTranslator + +memgraph = Memgraph() +memgraph.drop_database() + +graph = dgl.heterograph( + { + ("user", "PLUS", "movie"): (np.array([0, 0, 1]), np.array([0, 1, 0])), + ("user", "MINUS", "movie"): (np.array([2]), np.array([1])), + } +) +# Set node features +graph.nodes["user"].data["prop1"] = torch.randn(size=(3, 1)) +graph.nodes["user"].data["prop2"] = torch.randn(size=(3, 1)) +graph.nodes["movie"].data["prop1"] = torch.randn(size=(2, 1)) +graph.nodes["movie"].data["prop2"] = torch.randn(size=(2, 1)) +graph.nodes["movie"].data["prop3"] = torch.randn(size=(2, 1)) +# Set edge features +graph.edges[("user", "PLUS", "movie")].data["edge_prop1"] = torch.randn(size=(3, 1)) +graph.edges[("user", "PLUS", "movie")].data["edge_prop2"] = torch.randn(size=(3, 1)) +graph.edges[("user", "MINUS", "movie")].data["edge_prop1"] = torch.randn(size=(1, 1)) + +translator = DGLTranslator() + +for query in list(translator.to_cypher_queries(graph)): + memgraph.execute(query) +``` + +First, connect to a running Memgraph instance. Next, drop the database to be sure that it's is empty. After that, create a simple DGL heterogeneous graph and add nodes and edges along with their features to it. The graph consist of three `user` nodes and two `movie` nodes, as well as two types of edges - `PLUS` and `MINUS`. To define nodes and edge between them we are providing appropriate NumPy arrays. Hence, `user` node 0 is connected to the `movie` node 0, `user` node 0 is connected to the `movie` node 1, and `user` node 1 is connected to the `movie` node 0, with edge of type `PLUS`. These integers are mapping to the values of the `dgl_id` properties in Memgraph. Similarly, the edge of type `MINUS` is created between `user` node 2 and `movie` node 1. In the end, call `to_cypher_queries` procedure on `DGLTranslator` instance to transform the DGL graph to Cypher queries which will be executed in Memgraph. + +To run it, open a command-line interpreter and run the following command: + +```python +python3 dgl-graph.py +``` + +### 3. Explore the graph + +[Connect to Memgraph](htps://memgraph.com/docs/data-visualization/install-and-connect) via Memgraph Lab which is running at `localhost:3000`. Open the **Query Execution** section and write the following query: + +```cypher +MATCH (n)-[r]->(m) +RETURN n, r, m; +``` + +Click **Run Query** button to see the results. + +pyg-example + +You can notice that we have nodes labeled with `user` and `movie` and relationships of type `PLUS` and `MINUS`. Besides that, nodes and relationships have randomized array properties ad well as `dgl_id` property. + +## Learn more + +Head over to the [**Under the hood**](../../under-the-hood/python-graph-translators.md) section to read about implementation details. If you want to learn more about using NetworkX with Memgraph with interesting resources and courses, head over to the [**Memgraph for NetworkX developers**](https://memgraph.com/memgraph-for-networkx?utm_source=docs&utm_medium=referral&utm_campaign=networkx_ppp&utm_term=docsgqla%2Bhowto&utm_content=textlink) website. If you have any questions or want to connect with the Memgraph community, [**join our Discord server**](https://www.discord.gg/memgraph). diff --git a/docs/how-to-guides/triggers/triggers.md b/docs/how-to-guides/triggers/triggers.md new file mode 100644 index 00000000..7b27e413 --- /dev/null +++ b/docs/how-to-guides/triggers/triggers.md @@ -0,0 +1,77 @@ +# How to manage database triggers + +Because Memgraph supports database triggers on `CREATE`, `UPDATE` and `DELETE` +operations, GQLAlchemy also implements a simple interface for maintaining these +triggers. + +!!! info + You can also use this feature with Neo4j: + + ```python + db = Neo4j(host="localhost", port="7687", username="neo4j", password="test") + ``` + + +## 1. Create the trigger + +To set up the trigger, first, create a `MemgraphTrigger` object with all the +required arguments: +- `name: str` ➡ The name of the trigger. +- `event_type: TriggerEventType` ➡ The type of event that will trigger the + execution. The options are: `TriggerEventType.CREATE`, + `TriggerEventType.UPDATE` and `TriggerEventType.DELETE`. +- `event_object: TriggerEventObject` ➡ The objects that are affected with the + `event_type`. The options are: ``TriggerEventObject.ALL, + `TriggerEventObject.NODE` and `TriggerEventObject.RELATIONSHIP`. +- `execution_phase: TriggerExecutionPhase` ➡ The phase when the trigger should + be executed in regard to the transaction commit. The options are: `BEFORE` and + `AFTER`. +- `statement: str` ➡ The Cypher query that should be executed when the trigger + fires. + +Now, let's create a trigger in GQLAlchemy: + +```python +from gqlalchemy import Memgraph, MemgraphTrigger +from gqlalchemy.models import ( + TriggerEventType, + TriggerEventObject, + TriggerExecutionPhase, +) + +db = Memgraph() + +trigger = MemgraphTrigger( + name="ratings_trigger", + event_type=TriggerEventType.CREATE, + event_object=TriggerEventObject.NODE, + execution_phase=TriggerExecutionPhase.AFTER, + statement="UNWIND createdVertices AS node SET node.created_at = LocalDateTime()", +) + +db.create_trigger(trigger) +``` + +The trigger names `ratings_trigger` will be executed every time a node is +created in the database. After the transaction that created the node in question +finishes, the Cypher query `statement` will execute, and in this case, it will +set the property `created_at` of the newly created node to the current date and +time. + +## 2. Check the status of a trigger + +You can return all of the triggers from the database with the `get_Triggers()` +method: + +```python +triggers = db.get_triggers() +print(triggers) +``` + +## 3. Delete the trigger + +You can use the `drop_trigger()` method to delete a trigger: + +```python +db.drop_trigger(trigger) +``` diff --git a/docs/import-data.md b/docs/import-data.md new file mode 100644 index 00000000..2636e8c2 --- /dev/null +++ b/docs/import-data.md @@ -0,0 +1,45 @@ +# Import data + +You can import data in the following formats: +- [**CSV**](#csv) +- [**JSON**](#json) +- [**Parquet, ORC or IPC/Feather/Arrow**](#parquet-orc-or-ipcfeatherarrow) +- [**Python graphs - NetworkX, PyG or DGL graph**](#python-graphs---networkx-pyg-or-dgl-graph) +- [**Kafka, RedPanda or Pulsar data stream**](#kafka-redpanda-or-pulsar-data-stream) + +Besides that, you can create data directly from code using the [**object graph mapper**](how-to-guides/ogm.md) or [**query builder**](how-to-guides/query-builder.md). + + +!!! tip + The fastest way to import data into Memgraph is by using the [LOAD CSV clause](https://memgraph.com/docs/data-migration/csv). It's recommended to first [create indexes](https://memgraph.com/docs/fundamentals/indexes) using the `CREATE INDEX` clause. You can create them by [executing the Cypher query](https://memgraph.com/docs/client-libraries/python) or using [object graph mapper](how-to-guides/ogm.md#create-indexes). + +## CSV + +To import CSV file into Memgraph via GQLAlchemy, you can use the [`LOAD CSV` clause](https://memgraph.com/docs/data-migration/csv). That clause can be used by [executing the Cypher query](https://memgraph.com/docs/client-libraries/python) or by [building the query with the query builder](how-to-guides/query-builder.md#load-csv-file). Another way of importing CSV data into Memgraph is by [translating it into a graph](how-to-guides/loaders/import-table-data-to-graph-database.md). + +## JSON + +To import JSON files into Memgraph via GQLAlchemy, you can call procedures from the [`json_util` module](https://memgraph.com/docs/advanced-algorithms/available-algorithms/json_util) available in MAGE library. If the JSON data is formatted in a particular style, you can call the [`import_util.json()` procedure](https://memgraph.com/docs/advanced-algorithms/available-algorithms/json_util#jsonpath) from MAGE. The procedures can be called by [executing Cypher queries](https://memgraph.com/docs/client-libraries/python) or [using the query builder](how-to-guides/query-builder.md#call-procedures). + + +## Parquet, ORC or IPC/Feather/Arrow + +To import Parquet, ORC or IPC/Feather/Arrow file into Memgraph via GQLAlchemy, [transform table data from a file into a graph](how-to-guides/loaders/import-table-data-to-graph-database.md). + +!!! note + If you want to read from a file system not currently supported by GQLAlchemy, or use a file type currently not readable, you can implement your own by [making a custom file system importer](how-to-guides/loaders/make-a-custom-file-system-importer.md). + +## Python graphs - NetworkX, PyG or DGL graph + +To import NetworkX, PyG or DGL graph into Memgraph via GQLAlchemy, [transform the source graph into Memgraph graph](how-to-guides/translators/import-python-graphs.md). + +## Kafka, RedPanda or Pulsar data stream + +To consume Kafka, RedPanda or Pulsar data stream, you can write a [appropriate Cypher queries](https://memgraph.com/docs/data-streams/manage-streams-query) and [execute](https://memgraph.com/docs/client-libraries/python) them, or use GQLAlchemy stream manager for [Kafka, RedPanda](how-to-guides/streams/kafka-streams.md) or [Pulsar](how-to-guides/streams/pulsar-streams.md) streams. + + +## Learn more + +To learn how to utilize the GQLAlchemy library with Memgraph, check out the [how-to guides](how-to-guides/overview.md) or sign up for the [Getting started with Memgraph and Python course](https://app.livestorm.co/memgraph/getting-started-with-memgraph-and-python-on-demand). + + diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 00000000..000ea345 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,17 @@ +# Welcome to MkDocs + +For full documentation visit [mkdocs.org](https://www.mkdocs.org). + +## Commands + +* `mkdocs new [dir-name]` - Create a new project. +* `mkdocs serve` - Start the live-reloading docs server. +* `mkdocs build` - Build the documentation site. +* `mkdocs -h` - Print help message and exit. + +## Project layout + + mkdocs.yml # The configuration file. + docs/ + index.md # The documentation homepage. + ... # Other markdown pages, images and other files. diff --git a/docs/installation.md b/docs/installation.md new file mode 100644 index 00000000..46868abd --- /dev/null +++ b/docs/installation.md @@ -0,0 +1,75 @@ +# How to install GQLAlchemy + +There are two main ways of installing GQLAlchemy: with package managers such +as pip and Poetry, and by building it from source. + +## Prerequisites + +To install GQLAlchemy, you will need the following: + +- **Python 3.8 - 3.10** +- GQLAlchemy is built on top of Memgraph's low-level Python client `pymgclient`, so you need to install `pymgclient` [build prerequisites](https://memgraph.github.io/pymgclient/introduction.html#build-prerequisites). + +!!! danger + GQLAlchemy can't be installed with Python 3.11 [(#203)](https://github.com/memgraph/gqlalchemy/issues/203) and on Windows with Python >= 3.10 [(#179)](https://github.com/memgraph/gqlalchemy/issues/179). If this is currently a blocker for you, please let us know by commenting on opened issues. + +## Install with pip {#pip} + +After you’ve installed the prerequisites, run the following command to install +GQLAlchemy: + +```bash +pip install gqlalchemy +``` + +With the above command, you get the default GQLAlchemy installation which +doesn’t include import/export support for certain formats (see below). To get +additional import/export capabilities, use one of the following install options: + +```bash +pip install gqlalchemy[arrow] # Support for the CSV, Parquet, ORC and IPC/Feather/Arrow formats +pip install gqlalchemy[dgl] # DGL support (also includes torch) + +pip install gqlalchemy[all] # All of the above +``` + +!!! note + If you are using zsh terminal, you need to pass literal square brackets as an argument to a command: + ``` + pip install 'gqlalchemy[arrow]' + ``` + +## Build from source + +Clone or download the [GQLAlchemy source code](https://github.com/memgraph/gqlalchemy) locally and run the following command to build it from source with Poetry: + +```bash +poetry install --all-extras +``` + +The ``poetry install --all-extras`` command installs GQLAlchemy with all extras +(optional dependencies). Alternatively, you can use the ``-E`` option to define +what extras to install: + +```bash +poetry install # No extras + +poetry install -E arrow # Support for the CSV, Parquet, ORC and IPC/Feather/Arrow formats +poetry install -E dgl # DGL support (also includes torch) + +``` + +To run the tests, make sure you have an [active Memgraph instance](https://memgraph.com/docs/getting-started/install-memgraph), and execute one of the following commands: + +```bash +poetry run pytest . -k "not slow" # If all extras installed + +poetry run pytest . -k "not slow and not extras" # Otherwise +``` + +If you’ve installed only certain extras, it’s also possible to run their associated tests: + +```bash +poetry run pytest . -k "arrow" +poetry run pytest . -k "dgl" +``` diff --git a/docs/reference/gqlalchemy/connection.md b/docs/reference/gqlalchemy/connection.md index a2606070..0b690491 100644 --- a/docs/reference/gqlalchemy/connection.md +++ b/docs/reference/gqlalchemy/connection.md @@ -1,8 +1,3 @@ ---- -sidebar_label: connection -title: gqlalchemy.connection ---- - ## Connection Objects ```python diff --git a/docs/reference/gqlalchemy/disk_storage.md b/docs/reference/gqlalchemy/disk_storage.md index 16dacf5c..87c4a885 100644 --- a/docs/reference/gqlalchemy/disk_storage.md +++ b/docs/reference/gqlalchemy/disk_storage.md @@ -1,8 +1,3 @@ ---- -sidebar_label: disk_storage -title: gqlalchemy.disk_storage ---- - ## OnDiskPropertyDatabase Objects ```python diff --git a/docs/reference/gqlalchemy/exceptions.md b/docs/reference/gqlalchemy/exceptions.md index bf8ada6f..722a21e9 100644 --- a/docs/reference/gqlalchemy/exceptions.md +++ b/docs/reference/gqlalchemy/exceptions.md @@ -1,8 +1,3 @@ ---- -sidebar_label: exceptions -title: gqlalchemy.exceptions ---- - #### connection\_handler ```python diff --git a/docs/reference/gqlalchemy/graph_algorithms/integrated_algorithms.md b/docs/reference/gqlalchemy/graph_algorithms/integrated_algorithms.md index b3ccec90..c0d43c8e 100644 --- a/docs/reference/gqlalchemy/graph_algorithms/integrated_algorithms.md +++ b/docs/reference/gqlalchemy/graph_algorithms/integrated_algorithms.md @@ -1,8 +1,3 @@ ---- -sidebar_label: integrated_algorithms -title: gqlalchemy.graph_algorithms.integrated_algorithms ---- - ## IntegratedAlgorithm Objects ```python diff --git a/docs/reference/gqlalchemy/graph_algorithms/query_builder.md b/docs/reference/gqlalchemy/graph_algorithms/query_builder.md index 4a668b6e..a946d6d8 100644 --- a/docs/reference/gqlalchemy/graph_algorithms/query_builder.md +++ b/docs/reference/gqlalchemy/graph_algorithms/query_builder.md @@ -1,8 +1,3 @@ ---- -sidebar_label: query_builder -title: gqlalchemy.graph_algorithms.query_builder ---- - ## MemgraphQueryBuilder Objects ```python diff --git a/docs/reference/gqlalchemy/graph_algorithms/query_modules.md b/docs/reference/gqlalchemy/graph_algorithms/query_modules.md index 487cd3c7..4091346c 100644 --- a/docs/reference/gqlalchemy/graph_algorithms/query_modules.md +++ b/docs/reference/gqlalchemy/graph_algorithms/query_modules.md @@ -1,8 +1,3 @@ ---- -sidebar_label: query_modules -title: gqlalchemy.graph_algorithms.query_modules ---- - ## QueryModule Objects ```python diff --git a/docs/reference/gqlalchemy/instance_runner.md b/docs/reference/gqlalchemy/instance_runner.md index 0692ba44..3078e8f1 100644 --- a/docs/reference/gqlalchemy/instance_runner.md +++ b/docs/reference/gqlalchemy/instance_runner.md @@ -1,8 +1,3 @@ ---- -sidebar_label: instance_runner -title: gqlalchemy.instance_runner ---- - #### wait\_for\_port ```python diff --git a/docs/reference/gqlalchemy/loaders.md b/docs/reference/gqlalchemy/loaders.md index afaa6b5a..4401065c 100644 --- a/docs/reference/gqlalchemy/loaders.md +++ b/docs/reference/gqlalchemy/loaders.md @@ -1,8 +1,3 @@ ---- -sidebar_label: loaders -title: gqlalchemy.loaders ---- - ## ForeignKeyMapping Objects ```python diff --git a/docs/reference/gqlalchemy/models.md b/docs/reference/gqlalchemy/models.md index ba1c9af0..62292523 100644 --- a/docs/reference/gqlalchemy/models.md +++ b/docs/reference/gqlalchemy/models.md @@ -1,8 +1,3 @@ ---- -sidebar_label: models -title: gqlalchemy.models ---- - ## TriggerEventType Objects ```python diff --git a/docs/reference/gqlalchemy/overview.md b/docs/reference/gqlalchemy/overview.md new file mode 100644 index 00000000..c4cbea09 --- /dev/null +++ b/docs/reference/gqlalchemy/overview.md @@ -0,0 +1,35 @@ +# GQLAlchemy Reference + +This are the topics covered in the GQLAlchemy Reference: + +- Connection +- Disk Storage +- Exceptions +- Instance Runner +- Loaders +- Models +- Transformations +- Utilities +- Graph Algorithms + - Integrated Algorithms + - Query Builder + - Query Modules +- Query Builders + - Declarative Base + - Memgraph Query Builder +- Transformations + - Export + - Graph Transporter + - Transporter + - Importing + - Graph Importer + - Loaders + - Translators + - DGL Translator + - NX Translator + - PyG Translator + - Translator +- Vendors + - Database Client + - Memgraph + - Neo4j \ No newline at end of file diff --git a/docs/reference/gqlalchemy/query_builders/declarative_base.md b/docs/reference/gqlalchemy/query_builders/declarative_base.md index f36d58ee..8280e39e 100644 --- a/docs/reference/gqlalchemy/query_builders/declarative_base.md +++ b/docs/reference/gqlalchemy/query_builders/declarative_base.md @@ -1,8 +1,3 @@ ---- -sidebar_label: declarative_base -title: gqlalchemy.query_builders.declarative_base ---- - ## WhereConditionPartialQuery Objects ```python diff --git a/docs/reference/gqlalchemy/query_builders/memgraph_query_builder.md b/docs/reference/gqlalchemy/query_builders/memgraph_query_builder.md index 5453e16f..f12c2c70 100644 --- a/docs/reference/gqlalchemy/query_builders/memgraph_query_builder.md +++ b/docs/reference/gqlalchemy/query_builders/memgraph_query_builder.md @@ -1,8 +1,3 @@ ---- -sidebar_label: memgraph_query_builder -title: gqlalchemy.query_builders.memgraph_query_builder ---- - ## QueryBuilder Objects ```python diff --git a/docs/reference/gqlalchemy/transformations.md b/docs/reference/gqlalchemy/transformations.md index b8067a0f..7cb31124 100644 --- a/docs/reference/gqlalchemy/transformations.md +++ b/docs/reference/gqlalchemy/transformations.md @@ -1,8 +1,3 @@ ---- -sidebar_label: transformations -title: gqlalchemy.transformations ---- - #### nx\_to\_cypher ```python diff --git a/docs/reference/gqlalchemy/transformations/export/graph_transporter.md b/docs/reference/gqlalchemy/transformations/export/graph_transporter.md index 7955690d..1dd40df1 100644 --- a/docs/reference/gqlalchemy/transformations/export/graph_transporter.md +++ b/docs/reference/gqlalchemy/transformations/export/graph_transporter.md @@ -1,8 +1,3 @@ ---- -sidebar_label: graph_transporter -title: gqlalchemy.transformations.export.graph_transporter ---- - ## GraphTransporter Objects ```python diff --git a/docs/reference/gqlalchemy/transformations/export/transporter.md b/docs/reference/gqlalchemy/transformations/export/transporter.md index 1d6298c1..3cefd13c 100644 --- a/docs/reference/gqlalchemy/transformations/export/transporter.md +++ b/docs/reference/gqlalchemy/transformations/export/transporter.md @@ -1,8 +1,3 @@ ---- -sidebar_label: transporter -title: gqlalchemy.transformations.export.transporter ---- - ## Transporter Objects ```python diff --git a/docs/reference/gqlalchemy/transformations/importing/graph_importer.md b/docs/reference/gqlalchemy/transformations/importing/graph_importer.md index 74eceedb..0a9edaed 100644 --- a/docs/reference/gqlalchemy/transformations/importing/graph_importer.md +++ b/docs/reference/gqlalchemy/transformations/importing/graph_importer.md @@ -1,8 +1,3 @@ ---- -sidebar_label: graph_importer -title: gqlalchemy.transformations.importing.graph_importer ---- - ## GraphImporter Objects ```python diff --git a/docs/reference/gqlalchemy/transformations/importing/loaders.md b/docs/reference/gqlalchemy/transformations/importing/loaders.md index 4197d72f..d1fd8d2a 100644 --- a/docs/reference/gqlalchemy/transformations/importing/loaders.md +++ b/docs/reference/gqlalchemy/transformations/importing/loaders.md @@ -1,8 +1,3 @@ ---- -sidebar_label: loaders -title: gqlalchemy.transformations.importing.loaders ---- - ## ForeignKeyMapping Objects ```python diff --git a/docs/reference/gqlalchemy/transformations/translators/dgl_translator.md b/docs/reference/gqlalchemy/transformations/translators/dgl_translator.md index fbe51a39..e88b1cda 100644 --- a/docs/reference/gqlalchemy/transformations/translators/dgl_translator.md +++ b/docs/reference/gqlalchemy/transformations/translators/dgl_translator.md @@ -1,8 +1,3 @@ ---- -sidebar_label: dgl_translator -title: gqlalchemy.transformations.translators.dgl_translator ---- - ## DGLTranslator Objects ```python diff --git a/docs/reference/gqlalchemy/transformations/translators/nx_translator.md b/docs/reference/gqlalchemy/transformations/translators/nx_translator.md index c71457a9..75f15e85 100644 --- a/docs/reference/gqlalchemy/transformations/translators/nx_translator.md +++ b/docs/reference/gqlalchemy/transformations/translators/nx_translator.md @@ -1,8 +1,3 @@ ---- -sidebar_label: nx_translator -title: gqlalchemy.transformations.translators.nx_translator ---- - ## NetworkXCypherBuilder Objects ```python diff --git a/docs/reference/gqlalchemy/transformations/translators/pyg_translator.md b/docs/reference/gqlalchemy/transformations/translators/pyg_translator.md index 9f186abc..1f6fd57d 100644 --- a/docs/reference/gqlalchemy/transformations/translators/pyg_translator.md +++ b/docs/reference/gqlalchemy/transformations/translators/pyg_translator.md @@ -1,8 +1,3 @@ ---- -sidebar_label: pyg_translator -title: gqlalchemy.transformations.translators.pyg_translator ---- - ## PyGTranslator Objects ```python diff --git a/docs/reference/gqlalchemy/transformations/translators/translator.md b/docs/reference/gqlalchemy/transformations/translators/translator.md index 5877ff3c..6f3da35d 100644 --- a/docs/reference/gqlalchemy/transformations/translators/translator.md +++ b/docs/reference/gqlalchemy/transformations/translators/translator.md @@ -1,8 +1,3 @@ ---- -sidebar_label: translator -title: gqlalchemy.transformations.translators.translator ---- - ## Translator Objects ```python diff --git a/docs/reference/gqlalchemy/utilities.md b/docs/reference/gqlalchemy/utilities.md index e522d67b..58776e7f 100644 --- a/docs/reference/gqlalchemy/utilities.md +++ b/docs/reference/gqlalchemy/utilities.md @@ -1,8 +1,3 @@ ---- -sidebar_label: utilities -title: gqlalchemy.utilities ---- - #### to\_cypher\_value ```python diff --git a/docs/reference/gqlalchemy/vendors/database_client.md b/docs/reference/gqlalchemy/vendors/database_client.md index eab44496..5286737c 100644 --- a/docs/reference/gqlalchemy/vendors/database_client.md +++ b/docs/reference/gqlalchemy/vendors/database_client.md @@ -1,8 +1,3 @@ ---- -sidebar_label: database_client -title: gqlalchemy.vendors.database_client ---- - ## DatabaseClient Objects ```python diff --git a/docs/reference/gqlalchemy/vendors/memgraph.md b/docs/reference/gqlalchemy/vendors/memgraph.md index 73b161f4..e0165231 100644 --- a/docs/reference/gqlalchemy/vendors/memgraph.md +++ b/docs/reference/gqlalchemy/vendors/memgraph.md @@ -1,8 +1,3 @@ ---- -sidebar_label: memgraph -title: gqlalchemy.vendors.memgraph ---- - ## Memgraph Objects ```python diff --git a/docs/reference/gqlalchemy/vendors/neo4j.md b/docs/reference/gqlalchemy/vendors/neo4j.md index 7fe42802..f4720333 100644 --- a/docs/reference/gqlalchemy/vendors/neo4j.md +++ b/docs/reference/gqlalchemy/vendors/neo4j.md @@ -1,8 +1,3 @@ ---- -sidebar_label: neo4j -title: gqlalchemy.vendors.neo4j ---- - ## Neo4j Objects ```python diff --git a/docs/stylesheets/extra.css b/docs/stylesheets/extra.css new file mode 100644 index 00000000..aee34545 --- /dev/null +++ b/docs/stylesheets/extra.css @@ -0,0 +1,4 @@ +:root { + --md-primary-fg-color: #FB6E00; + --md-accent-fg-color: #720096; +} \ No newline at end of file diff --git a/docs/under-the-hood/data/networkx-example-1.png b/docs/under-the-hood/data/networkx-example-1.png new file mode 100644 index 0000000000000000000000000000000000000000..f3a2160e0687aac42b81a444ba426a084ad169b5 GIT binary patch literal 61308 zcmeFZg~XUE!W-)pUVt>X)|`zn;=jN}9a1eCXL-OwN) zI1x!eK(t485?uN5{>}se!D$C;B_*}nN=oc%E{+z~cIE^Gw_e2Rkm_nS)1?@^j*fnI zPEqmBPgQC-;fH5miEar5MMM*yyAyuuTB9)?tzp&kCzM9C>ULMzJ?2{8_isPCc2keu z9hJV!#hHeyS*~93bN!tvV!5ZeaBo45z{+p@cIM+8ae~d)M0(e~1YO#>Zx5s(Q91l%0ASM*SrZ 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 UtI`AYx=-D@sVZM6Yy9m00V$tq=Kufz literal 0 HcmV?d00001 diff --git a/docs/under-the-hood/overview.md b/docs/under-the-hood/overview.md new file mode 100644 index 00000000..b8d89f69 --- /dev/null +++ b/docs/under-the-hood/overview.md @@ -0,0 +1,5 @@ +Look under the hood and have a glimpse at the inner workings of GQLAlchemy. If you +are advanced GQLAlchemy user or graph database enthusiast we hope you will +enjoy reading about the following topics: + + * [**Python graph translators**](python-graph-translators.md) diff --git a/docs/under-the-hood/python-graph-translators.md b/docs/under-the-hood/python-graph-translators.md new file mode 100644 index 00000000..9fbffc0f --- /dev/null +++ b/docs/under-the-hood/python-graph-translators.md @@ -0,0 +1,116 @@ +In this under the hood content you can learn more about GQLAlchemy **Python graph translators**. + +[![Related - +How-to](https://img.shields.io/static/v1?label=Related&message=How%20to%20import&color=blue&style=for-the-badge)](../how-to-guides/translators/import-python-graphs.md) +[![Related - +How-to](https://img.shields.io/static/v1?label=Related&message=How%20to%20export&color=blue&style=for-the-badge)](../how-to-guides/translators/export-python-graphs.md) +[![docs-source](https://img.shields.io/badge/source-examples-FB6E00?logo=github&style=for-the-badge)](https://github.com/memgraph/gqlalchemy/tree/main/tests/transformations/translators) +[![docs-source](https://img.shields.io/badge/source-translators-FB6E00?logo=github&style=for-the-badge)](https://github.com/memgraph/gqlalchemy/tree/main/gqlalchemy/transformations/translators) + + +Within the code, translators are divided into the following parts, depending on the Python graph type you want to translate: + +- [**NetworkX graph translator**](#networkx-graph-translator) +- [**PyG graph translator**](#pyg-graph-translator) +- [**DGL graph translator**](#dgl-graph-translator) + + +## NetworkX graph translator + +The `NxTranslator` class implements the NetworkX graph translator and inherits from the `Translator` class. The `NxTranslator` class can be imported from the `gqlalchemy.transformations.translators.nx_translator` module. + +[![docs-source](https://img.shields.io/badge/source-NetworkX%20Translator-FB6E00?logo=github&style=for-the-badge)](https://github.com/memgraph/gqlalchemy/blob/main/gqlalchemy/transformations/translators/nx_translator.py) + +Translating the graph means that you can **import** NetworkX graph into Memgraph as well as **export** data from Memgraph into NetworkX graph in your Python code. The `NxTranslator` defines three important methods: + +- [`to_cypher_queries()`](#to_cypher_queries-method) - The method which generates Cypher queries to create a graph in Memgraph. +- [`nx_graph_to_memgraph_parallel()`](#nx_graph_to_memgraph_parallel-method) - The method which generates Cypher queries to insert data into Memgraph in parallel. +- [`get_instance()`](#get_instance-method) - The method which creates NetworkX instance from the graph stored in Memgraph. + + +### `to_cypher_queries()` method + +The `to_cypher_queries()` method yields queries from the `NetworkXCypherBuilder` object. These queries are creating nodes (with indexes) and relationships. To create nodes with indexes, `create_index` in `config` must be set to `True`. In that case, label-property indexes will be created on `id` property of each node. With or without indexes, node creation follows the same set or rules. The value of the `labels` key in NetworkX node will be translated into Memgraph node labels. Other properties will be translated into the same key-value pairs in Memgraph. Every node will have `id` property matching its NetworkX identification number. After Cypher queries for the node creation are generated, then Cypher queries for relationship creation are being generated. Those Cypher queries will match nodes by their label and property `id` and create a relationship between them. The value of the `TYPE` key in NetworkX edge will be translated into relationship type in Memgraph. Any other property in NetworkX edge will be translated into the same key-value pair in Memgraph. To run the generated queries, following code can be used: + +``` +for query in NxTranslator().to_cypher_queries(nx_graph): + memgraph.execute(query) +``` + +### `nx_graph_to_memgraph_parallel()` method + +The `nx_graph_to_memgraph_parallel()` method is similar to the [`to_cypher_queries()`](#to_cypher_queries-method) method. It creates a graph inside Memgraph following the same set of rules, but it writes in parallel. To do that, it splits generated queries into query groups and opens up a new connection to Memgraph in order to run queries. It will warn you if you did not set `create_index` in `config` to `True`, because otherwise, the write process might take longer than expected. To run the generated queries, the following code can be used: + +``` +for query in NxTranslator().nx_graph_to_memgraph_parallel(nx_graph): + memgraph.execute(query) +``` + +### `get_instance()` method + +The `get_instance()` method translates data stored inside Memgraph into NetworkX graph. It traverses the graph and it stores node and relationship objects along with their properties in a NetworkX DiGraph object. Since NetworkX doesn't support node labels and relationship type in a way Memgraph does, they are encoded as node and edge properties, as values of `label` and `type` key. To create NetworkX graph from data stored in Memgraph, following code can be run: + +``` +graph = NxTranslator().get_instance() +``` + +## PyG graph translator + +The `PyGTranslator` class implements the PyG graph translator and inherits from the `Translator` class. The `PyGTranslator` class can be imported from the `gqlalchemy.transformations.translators.pyg_translator` module. + +[![docs-source](https://img.shields.io/badge/source-PyG%20Translator-FB6E00?logo=github&style=for-the-badge)](https://github.com/memgraph/gqlalchemy/blob/main/gqlalchemy/transformations/translators/pyg_translator.py) + +Translating the graph means that you can **import** PyG graph into Memgraph as well as **export** data from Memgraph into PyG graph in your Python code. The `PyGTranslator` defines two important methods: + +- [`to_cypher_queries()`](#to_cypher_queries-method-1) - The method which generates Cypher queries to create a graph in Memgraph. +- [`get_instance()`](#get_instance-method-1) - The method which creates PyG instance from the graph stored in Memgraph. + +### `to_cypher_queries()` method + +The `to_cypher_queries()` method produces Cypher queries to create graph objects in Memgraph for both homogeneous and heterogeneous graph. This method can translate one-dimensional as well as multidimensional features to Memgraph properties. Isolated nodes in the graph won't get translated into Memgraph. Nodes and relationships will have property `pyg_id` set to the id they have as part of the PyG graph for the consistency reasons. To run the generated queries, following code can be used: + +``` +for query in PyGTranslator().to_cypher_queries(pyg_graph): + memgraph.execute(query) +``` + + +### `get_instance()` method + +The `get_instance()` method returns an instance of PyG heterograph from all relationships stored in Memgraph. Isolated nodes are ignored because they don't contribute to message passing neural networks. Only numerical properties that are set on all nodes and relationships are translated to the PyG instance since that is PyG requirement. Hence, any string properties, as well as numerical properties that aren't set on all nodes or relationships, won't be translated to the PyG instance. However, properties of type list will be translated to the PyG instance as a feature. Regardless of how data is connected in Memgraph, the returned PyG graph will be a heterograph instance. To create PyG graph from data stored in Memgraph, the following code can be run: + +``` +graph = PyGTranslator().get_instance() +``` + +## DGL graph translator + +The `DGLTranslator` class implements the DGL graph translator and inherits from the `Translator` class. The `DGLTranslator` class can be imported from the `gqlalchemy.transformations.translators.dgl_translator` module. + +[![docs-source](https://img.shields.io/badge/source-DGL%20Translator-FB6E00?logo=github&style=for-the-badge)](https://github.com/memgraph/gqlalchemy/blob/main/gqlalchemy/transformations/translators/dgl_translator.py) + +Translating the graph means that you can **import** DGL graph into Memgraph as well as **export** data from Memgraph into DGL graph in your Python code. The `DGLTranslator` defines two important methods: + +- [`to_cypher_queries()`](#to_cypher_queries-method-2) - The method which generates Cypher queries to create a graph in Memgraph. +- [`get_instance()`](#get_instance-method-2) - The method which creates PyG instance from the graph stored in Memgraph. + +### `to_cypher_queries()` method + +The `to_cypher_queries()` method produces Cypher queries to create graph objects in Memgraph for both homogeneous and heterogeneous graph. If the graph is homogeneous, the default `_N` as a node label and `_E` as a relationship label will be used. This method can translate one-dimensional as well as multidimensional features to Memgraph properties. Isolated nodes in the graph won't get translated into Memgraph. Nodes and relationships will have property `dgl_id` set to the ID they have as part of the DGL graph for the consistency reasons. To run the generated queries, the following code can be used: + +``` +for query in DGLTranslator().to_cypher_queries(dgl_graph): + memgraph.execute(query) +``` + +### `get_instance()` method + +The `get_instance()` method returns instance of DGL heterograph from all relationships stored in Memgraph. Isolated nodes are ignored because they don't contribute in message passing neural networks. Only numerical properties that are set on all nodes and relationships are translated to the DGL instance since that is DGL requirement. Hence, any string properties, as well as numerical properties, that aren't set on all nodes or relationships, won't be translated to the DGL instance. However, properties of type list will be translated to the PyG instance as a feature. Regardless of how data is connected in Memgraph, the returned DGL graph will be a heterograph instance. To create DGL graph from data stored in Memgraph, following code can be run: + +``` +graph = DGLTranslator().get_instance() +``` + +## Where to next? + +If you want to learn more about using NetworkX with Memgraph with interesting resources and courses, head over to the [**Memgraph for NetworkX developers**](https://memgraph.com/memgraph-for-networkx?utm_source=docs&utm_medium=referral&utm_campaign=networkx_ppp&utm_term=docsgqla%2Bhowto&utm_content=textlink) website. If you have any questions or want to connect with the Memgraph community, [**join our Discord server**](https://www.discord.gg/memgraph). diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 00000000..86e21f03 --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,81 @@ + +site_name: GQLAlchemy Documentation + +markdown_extensions: + - admonition + - pymdownx.details + - pymdownx.superfences +theme: + name: 'material' + logo: 'assets/memgraph-logo.svg' + site_favicon: 'aassets/favicon.png' + font: + text: 'Roboto' + code: 'Roboto Mono' + icon: + repo: fontawesome/brands/github + palette: + primary: 'custom' + accent: 'custom' +nav: + - Home: 'index.md' + - Getting Started: 'getting-started.md' + - Installation: 'installation.md' + - Import Data: 'import-data.md' + - Changelog: 'changelog.md' + - How-To Guides: + - Overview: 'how-to-guides/overview.md' + - OGM: 'how-to-guides/ogm.md' + - Query Builder: 'how-to-guides/query-builder.md' + - Graph Projection: 'how-to-guides/query-builder/graph-projection.md' + - Data: + - Memgraph Binary Instance: 'how-to-guides/instance-runner/memgraph-binary-instance.md' + - Memgraph Docker Instance: 'how-to-guides/instance-runner/memgraph-docker-instance.md' + - Import Table Data to Graph Database: 'how-to-guides/loaders/import-table-data-to-graph-database.md' + - Make a Custom File System Importer: 'how-to-guides/loaders/make-a-custom-file-system-importer.md' + - On-Disk Storage: 'how-to-guides/on-disk-storage/on-disk-storage.md' + - Kafka Streams: 'how-to-guides/streams/kafka-streams.md' + - Pulsar Streams: 'how-to-guides/streams/pulsar-streams.md' + - Export Python Graphs: 'how-to-guides/translators/export-python-graphs.md' + - Import Python Graphs: 'how-to-guides/translators/import-python-graphs.md' + - Triggers: 'how-to-guides/triggers/triggers.md' + - Under the Hood: + - Overview: 'under-the-hood/overview.md' + - Python Graph Translators: 'under-the-hood/python-graph-translators.md' + - Reference: + - Overview: 'reference/gqlalchemy/overview.md' + - Connection: 'reference/gqlalchemy/connection.md' + - Disk Storage: 'reference/gqlalchemy/disk_storage.md' + - Exceptions: 'reference/gqlalchemy/exceptions.md' + - Instance Runner: 'reference/gqlalchemy/instance_runner.md' + - Loaders: 'reference/gqlalchemy/loaders.md' + - Models: 'reference/gqlalchemy/models.md' + - Transformations: 'reference/gqlalchemy/transformations.md' + - Utilities: 'reference/gqlalchemy/utilities.md' + - Graph Algorithms: + - Integrated Algorithms: 'reference/gqlalchemy/graph_algorithms/integrated_algorithms.md' + - Query Builder: 'reference/gqlalchemy/graph_algorithms/query_builder.md' + - Query Modules: 'reference/gqlalchemy/graph_algorithms/query_modules.md' + - Query Builders: + - Declarative Base: 'reference/gqlalchemy/query_builders/declarative_base.md' + - Memgraph Query Builder: 'reference/gqlalchemy/query_builders/memgraph_query_builder.md' + - Transformations: + - Export: + - Graph Transporter: 'reference/gqlalchemy/transformations/export/graph_transporter.md' + - Transporter: 'reference/gqlalchemy/transformations/export/transporter.md' + - Importing: + - Graph Importer: 'reference/gqlalchemy/transformations/importing/graph_importer.md' + - Loaders: 'reference/gqlalchemy/transformations/importing/loaders.md' + - Translators: + - DGL Translator: 'reference/gqlalchemy/transformations/translators/dgl_translator.md' + - NX Translator: 'reference/gqlalchemy/transformations/translators/nx_translator.md' + - PyG Translator: 'reference/gqlalchemy/transformations/translators/pyg_translator.md' + - Translator: 'reference/gqlalchemy/transformations/translators/translator.md' + - Vendors: + - Database Client: 'reference/gqlalchemy/vendors/database_client.md' + - Memgraph: 'reference/gqlalchemy/vendors/memgraph.md' + - Neo4j: 'reference/gqlalchemy/vendors/neo4j.md' +repo_name: 'memgraph/gqlalchemy' +repo_url: 'https://github.com/memgraph/gqlalchemy' +extra_css: + - stylesheets/extra.css