From d905c96415d966de5b4c90cffcfdbd1b6e50129e Mon Sep 17 00:00:00 2001 From: Martin Weise <martin.weise@tuwien.ac.at> Date: Sat, 15 Jun 2024 19:04:19 +0000 Subject: [PATCH] Dev --- .docker/docker-compose.yml | 41 +- .docs/api/analyse-service.md | 28 +- .docs/api/auth-service.md | 179 +---- .docs/api/data-db.md | 42 +- .docs/api/data-service.md | 4 +- .docs/api/gateway-service.md | 17 +- .docs/api/metadata-db.md | 7 +- .docs/api/metadata-service.md | 101 +-- .docs/api/python.md | 7 + .docs/api/search-service.md | 55 +- .docs/api/storage-service.md | 4 +- .docs/api/ui.md | 10 +- .docs/api/upload-service.md | 29 +- .docs/concepts/search.md | 28 +- .docs/deployment-helm.md | 43 -- .docs/index.md | 1 + ...ment-docker-compose.md => installation.md} | 104 +-- .docs/kubernetes.md | 70 ++ .gitlab-ci.yml | 27 +- Makefile | 2 +- dbrepo-analyse-service/Pipfile.lock | 18 +- .../lib/dbrepo-1.4.4-py3-none-any.whl | Bin 27872 -> 29825 bytes .../lib/dbrepo-1.4.4.tar.gz | Bin 38112 -> 39403 bytes dbrepo-data-service/pom.xml | 25 +- .../at/tuwien/endpoints/AccessEndpoint.java | 1 - .../service/SchemaServiceIntegrationTest.java | 10 +- .../java/at/tuwien/config/JacksonConfig.java | 29 + .../java/at/tuwien/mapper/DataMapper.java | 632 ++++++++++++++++- .../java/at/tuwien/mapper/MariaDbMapper.java | 658 +----------------- .../java/at/tuwien/mapper/MetadataMapper.java | 9 +- .../java/at/tuwien/service/SchemaService.java | 21 +- .../java/at/tuwien/service/TableService.java | 6 +- .../impl/SchemaServiceMariaDbImpl.java | 21 +- .../impl/SubsetServiceMariaDbImpl.java | 16 +- .../service/impl/TableServiceMariaDbImpl.java | 20 +- .../service/impl/ViewServiceMariaDbImpl.java | 13 +- dbrepo-metadata-db/Dockerfile | 6 - dbrepo-metadata-db/migrate_1.4.0-1.4.1.sql | 19 - .../tuwien/api/database/table/TupleDto.java | 2 +- .../java/at/tuwien/config/JacksonConfig.java | 1 - dbrepo-search-service/Pipfile.lock | 6 +- .../lib/dbrepo-1.4.4-py3-none-any.whl | Bin 27872 -> 29825 bytes dbrepo-search-service/lib/dbrepo-1.4.4.tar.gz | Bin 38112 -> 39403 bytes dbrepo-ui/components/identifier/Citation.vue | 5 +- dbrepo-ui/locales/en-US.json | 7 +- docker-compose.yml | 15 +- helm/dbrepo/Chart.lock | 16 +- helm/dbrepo/Chart.yaml | 14 +- helm/dbrepo/README.md | 193 ++--- helm/dbrepo/charts/mariadb-14.1.4.tgz | Bin 0 -> 48199 bytes helm/dbrepo/charts/mariadb-galera-11.0.1.tgz | Bin 48847 -> 0 bytes helm/dbrepo/charts/opensearch-1.2.2.tgz | Bin 0 -> 87253 bytes helm/dbrepo/charts/opensearch-2.15.0.tgz | Bin 25088 -> 0 bytes helm/dbrepo/hack/generate-rabbitmq-pw.sh | 14 + helm/dbrepo/templates/broker-secret.yaml | 6 +- helm/dbrepo/templates/metadata-configmap.yaml | 2 +- helm/dbrepo/templates/metadata-secret.yaml | 8 +- helm/dbrepo/values.yaml | 590 +++++++--------- install.sh | 5 +- lib/python/dbrepo/RestClient.py | 8 +- lib/python/dbrepo/api/dto.py | 1 - lib/python/docs/index.rst | 2 +- mkdocs.yml | 4 +- values.schema.json | 601 +++++++--------- 64 files changed, 1677 insertions(+), 2126 deletions(-) delete mode 100644 .docs/deployment-helm.md rename .docs/{deployment-docker-compose.md => installation.md} (52%) create mode 100644 .docs/kubernetes.md create mode 100644 dbrepo-data-service/services/src/main/java/at/tuwien/config/JacksonConfig.java delete mode 100644 dbrepo-metadata-db/Dockerfile delete mode 100644 dbrepo-metadata-db/migrate_1.4.0-1.4.1.sql create mode 100644 helm/dbrepo/charts/mariadb-14.1.4.tgz delete mode 100644 helm/dbrepo/charts/mariadb-galera-11.0.1.tgz create mode 100644 helm/dbrepo/charts/opensearch-1.2.2.tgz delete mode 100644 helm/dbrepo/charts/opensearch-2.15.0.tgz create mode 100755 helm/dbrepo/hack/generate-rabbitmq-pw.sh diff --git a/.docker/docker-compose.yml b/.docker/docker-compose.yml index d51b00551a..a7496bc4f4 100644 --- a/.docker/docker-compose.yml +++ b/.docker/docker-compose.yml @@ -14,10 +14,11 @@ services: restart: "no" container_name: dbrepo-metadata-db hostname: metadata-db - image: docker.io/dbrepo/metadata-db:1.4.4 + image: docker.io/bitnami/mariadb:11.1.3-debian-11-r6 volumes: - metadata-db-data:/bitnami/mariadb - - ./dist/2_setup-data.sql:/docker-entrypoint-initdb.d/2_setup-data.sql + - ./dbrepo-metadata-db/setup-schema.sql:/docker-entrypoint-initdb.d/1_setup-schema.sql + - ./dbrepo-metadata-db/setup-data.sql:/docker-entrypoint-initdb.d/2_setup-data.sql ports: - "3306:3306" environment: @@ -35,7 +36,7 @@ services: restart: "no" container_name: dbrepo-data-db hostname: data-db - image: docker.io/bitnami/mariadb-galera:11.2.2-debian-11-r0 + image: docker.io/bitnami/mariadb:11.1.3-debian-11-r6 volumes: - data-db-data:/bitnami/mariadb - "${SHARED_VOLUME:-/tmp}:/tmp" @@ -43,7 +44,6 @@ services: - "3307:3306" environment: MARIADB_ROOT_PASSWORD: "${USER_DB_PASSWORD:-dbrepo}" - MARIADB_GALERA_MARIABACKUP_PASSWORD: "${USER_DB_BACKUP_PASSWORD:-dbrepo}" healthcheck: test: mysqladmin ping --user="${USER_DB_USERNAME:-root}" --password="${USER_DB_PASSWORD:-dbrepo}" --silent interval: 10s @@ -56,7 +56,7 @@ services: restart: "no" container_name: dbrepo-auth-db hostname: auth-db - image: docker.io/bitnami/mariadb:11.2.2-debian-11-r0 + image: docker.io/bitnami/mariadb:11.1.3-debian-11-r6 volumes: - auth-db-data:/bitnami/mariadb ports: @@ -76,7 +76,7 @@ services: restart: "no" container_name: dbrepo-auth-service hostname: auth-service - image: docker.io/dbrepo/auth-service:1.4.4 + image: registry.datalab.tuwien.ac.at/dbrepo/auth-service:1.4.4 healthcheck: test: curl -sSL 'http://0.0.0.0:8080/realms/dbrepo' | grep "dbrepo" || exit 1 interval: 10s @@ -98,7 +98,7 @@ services: restart: "no" container_name: dbrepo-metadata-service hostname: metadata-service - image: docker.io/dbrepo/metadata-service:1.4.4 + image: registry.datalab.tuwien.ac.at/dbrepo/metadata-service:1.4.4 volumes: - "${SHARED_VOLUME:-/tmp}:/tmp" environment: @@ -124,7 +124,7 @@ services: DELETED_RECORD: "${DELETED_RECORD:-persistent}" GRANULARITY: "${GRANULARITY:-YYYY-MM-DDThh:mm:ssZ}" JWT_PUBKEY: "${JWT_PUBKEY:-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqqnHQ2BWWW9vDNLRCcxD++xZg/16oqMo/c1l+lcFEjjAIJjJp/HqrPYU/U9GvquGE6PbVFtTzW1KcKawOW+FJNOA3CGo8Q1TFEfz43B8rZpKsFbJKvQGVv1Z4HaKPvLUm7iMm8Hv91cLduuoWx6Q3DPe2vg13GKKEZe7UFghF+0T9u8EKzA/XqQ0OiICmsmYPbwvf9N3bCKsB/Y10EYmZRb8IhCoV9mmO5TxgWgiuNeCTtNCv2ePYqL/U0WvyGFW0reasIK8eg3KrAUj8DpyOgPOVBn3lBGf+3KFSYi+0bwZbJZWqbC/Xlk20Go1YfeJPRIt7ImxD27R/lNjgDO/MwIDAQAB}" - LOG_LEVEL: "${LOG_LEVEL:-info}" + LOG_LEVEL: ${LOG_LEVEL:-info} METADATA_DB: "${METADATA_DB:-dbrepo}" METADATA_HOST: "${METADATA_HOST:-metadata-db}" METADATA_JDBC_EXTRA_ARGS: "${METADATA_JDBC_EXTRA_ARGS:-}" @@ -134,13 +134,13 @@ services: REPOSITORY_NAME: "${REPOSITORY_NAME:-Database Repository}" SEARCH_SERVICE_ENDPOINT: "${SEARCH_SERVICE_ENDPOINT:-http://gateway-service}" S3_ACCESS_KEY_ID: "${S3_ACCESS_KEY_ID:-seaweedfsadmin}" - S3_ENDPOINT: "${S3_ENDPOINT:-http://gateway-service/api/storage}" + S3_ENDPOINT: "${S3_ENDPOINT:-http://storage-service:9000}" S3_EXPORT_BUCKET: "${S3_EXPORT_BUCKET:-dbrepo-download}" S3_IMPORT_BUCKET: "${S3_IMPORT_BUCKET:-dbrepo-upload}" S3_SECRET_ACCESS_KEY: "${S3_SECRET_ACCESS_KEY:-seaweedfsadmin}" SPARQL_CONNECTION_TIMEOUT: "${SPARQL_CONNECTION_TIMEOUT:-10000}" healthcheck: - test: wget -qO- localhost:8080/actuator/health/readiness | grep -q "UP" || exit 1 + test: curl -sSL localhost:8080/actuator/health/liveness | grep 'UP' || exit 1 interval: 10s timeout: 5s retries: 12 @@ -160,7 +160,7 @@ services: restart: "no" container_name: dbrepo-analyse-service hostname: analyse-service - image: docker.io/dbrepo/analyse-service:1.4.4 + image: registry.datalab.tuwien.ac.at/dbrepo/analyse-service:1.4.4 environment: ADMIN_PASSWORD: "${ADMIN_PASSWORD:-admin}" ADMIN_USERNAME: "${ADMIN_USERNAME:-admin}" @@ -211,7 +211,7 @@ services: restart: "no" container_name: dbrepo-search-db hostname: search-db - image: docker.io/dbrepo/search-db:1.4.4 + image: registry.datalab.tuwien.ac.at/dbrepo/search-db:1.4.4 healthcheck: test: curl -sSL localhost:9200/_plugins/_security/health | jq .status | grep UP interval: 10s @@ -235,7 +235,7 @@ services: restart: "no" container_name: dbrepo-search-service hostname: search-service - image: docker.io/dbrepo/search-service:1.4.4 + image: registry.datalab.tuwien.ac.at/dbrepo/search-service:1.4.4 environment: ADMIN_PASSWORD: "${ADMIN_PASSWORD:-admin}" ADMIN_USERNAME: "${ADMIN_USERNAME:-admin}" @@ -243,6 +243,7 @@ services: AUTH_SERVICE_CLIENT_SECRET: ${AUTH_SERVICE_CLIENT:-MUwRc7yfXSJwX8AdRMWaQC3Nep1VjwgG} AUTH_SERVICE_ENDPOINT: ${AUTH_SERVICE_ENDPOINT:-http://auth-service:8080} COLLECTION: ${COLLECTION:-['database','table','column','identifier','unit','concept','user','view']} + GATEWAY_SERVICE_ENDPOINT: ${GATEWAY_SERVICE_ENDPOINT:-http://gateway-service} OPENSEARCH_HOST: ${OPENSEARCH_HOST:-search-db} OPENSEARCH_PORT: ${OPENSEARCH_PORT:-9200} OPENSEARCH_USERNAME: ${OPENSEARCH_USERNAME:-admin} @@ -253,7 +254,7 @@ services: restart: "no" container_name: dbrepo-data-db-sidecar hostname: data-db-sidecar - image: docker.io/dbrepo/data-db-sidecar:1.4.4 + image: registry.datalab.tuwien.ac.at/dbrepo/data-db-sidecar:1.4.4 environment: S3_ACCESS_KEY_ID: "${S3_ACCESS_KEY_ID:-seaweedfsadmin}" S3_ENDPOINT: "${S3_ENDPOINT:-http://storage-service:9000}" @@ -275,7 +276,7 @@ services: restart: "no" container_name: dbrepo-ui hostname: ui - image: docker.io/dbrepo/ui:1.4.4 + image: registry.datalab.tuwien.ac.at/dbrepo/ui:1.4.4 depends_on: dbrepo-search-service: condition: service_started @@ -293,7 +294,7 @@ services: restart: "no" container_name: dbrepo-gateway-service hostname: gateway-service - image: docker.io/nginx:1.25-alpine-slim + image: docker.io/nginx:1.27.0-alpine3.19-slim ports: - "80:80" - "443:443" @@ -319,7 +320,7 @@ services: restart: "no" container_name: dbrepo-search-service-init hostname: search-service-init - image: docker.io/dbrepo/search-service-init:1.4.4 + image: registry.datalab.tuwien.ac.at/dbrepo/search-service-init:1.4.4 environment: GATEWAY_SERVICE_ENDPOINT: ${GATEWAY_SERVICE_ENDPOINT:-http://gateway-service} OPENSEARCH_HOST: ${OPENSEARCH_HOST:-search-db} @@ -354,7 +355,7 @@ services: restart: "no" container_name: dbrepo-storage-service-init hostname: storage-service-init - image: docker.io/dbrepo/storage-service-init:1.4.4 + image: registry.datalab.tuwien.ac.at/dbrepo/storage-service-init:1.4.4 environment: SEAWEEDFS_ENDPOINT: "${STORAGE_SEAWEEDFS_ENDPOINT:-storage-service:9333}" depends_on: @@ -391,7 +392,7 @@ services: restart: "no" container_name: dbrepo-data-service hostname: data-service - image: docker.io/dbrepo/data-service:1.4.4 + image: registry.datalab.tuwien.ac.at/dbrepo/data-service:1.4.4 volumes: - "${SHARED_VOLUME:-/tmp}:/tmp" environment: @@ -429,7 +430,7 @@ services: S3_IMPORT_BUCKET: "${S3_IMPORT_BUCKET:-dbrepo-upload}" S3_SECRET_ACCESS_KEY: "${S3_SECRET_ACCESS_KEY:-seaweedfsadmin}" healthcheck: - test: wget -qO- localhost:8080/actuator/health/readiness | grep -q "UP" || exit 1 + test: curl -sSL localhost:8080/actuator/health/liveness | grep 'UP' || exit 1 interval: 10s timeout: 5s retries: 12 diff --git a/.docs/api/analyse-service.md b/.docs/api/analyse-service.md index 484271bbfe..fe45e9492c 100644 --- a/.docs/api/analyse-service.md +++ b/.docs/api/analyse-service.md @@ -6,7 +6,7 @@ author: Martin Weise !!! debug "Debug Information" - Image: [`dbrepo/analyse-service:__APPVERSION__`](https://hub.docker.com/r/dbrepo/analyse-service) + Image: [`registry.datalab.tuwien.ac.at/dbrepo/analyse-service:1.4.4`](https://hub.docker.com/r/dbrepo/analyse-service) * Ports: 5000/tcp * Prometheus: `http://<hostname>:5000/metrics` @@ -15,37 +15,37 @@ author: Martin Weise ## Overview -It suggests data types for the [User Interface](./system-other-ui) when creating a table from a -*comma separated values* (CSV) -file. It recommends enumerations for columns and returns e.g. a list of potential +It suggests data types for the [User Interface](../ui) when creating a table from a +*comma separated values* (CSV) -file. It recommends enumerations for columns and returns e.g. a list of potential primary key candidates. The researcher is able to confirm these suggestions manually. Moreover, the Analyse Service determines basic statistical properties of numerical columns. ### Analysis -After [uploading](./system-services-storage/#buckets) the CSV-file into the `dbrepo-upload` bucket of -the [Storage Service](./system-services-storage), analysis for data types and primary keys follows the flow: - -1. Retrieve the CSV-file from the `dbrepo-upload` bucket of the Storage Service as data stream (=nothing is stored in +After [uploading](../storage-service/#buckets) the CSV-file into the `dbrepo-upload` bucket of +the [Storage Service](../storage-service), analysis for data types and primary keys follows the flow: + +1. Retrieve the CSV-file from the `dbrepo-upload` bucket of the Storage Service as data stream (=nothing is stored in the service) with the [`boto3`](https://boto3.amazonaws.com/v1/documentation/api/latest/index.html) client. -2. When no separator is known, the Analyse Service tries to guess the separator from the first line +2. When no separator is known, the Analyse Service tries to guess the separator from the first line with [`csv.Sniff().sniff(...)`](https://docs.python.org/3/library/csv.html#csv.Sniffer). This step is optional when the separator was provided via HTTP-payload: `{"separator": ";", ...}` -3. With the separator known (either from step 2 or via HTTP-payload), - the [`messytables.CSVTableSet(...)`](https://messytables.readthedocs.io/en/latest/#csv-support) guesses the headers - and column types and enums, if the HTTP-payload contains `{"enum": true, ...}`. +3. With the separator known (either from step 2 or via HTTP-payload), the [`Pandas`](https://pypi.org/project/pandas/) + guesses the headers and column types and enums, if the HTTP-payload contains `{"enum": true, ...}`. The data type + is guessed by a combination of Pandas and heuristics. ### Examples -See the [usage page](./usage-analyse/) for examples. +See the [usage page](..) for examples. ## Limitations !!! question "Do you miss functionality? Do these limitations affect you?" We strongly encourage you to help us implement it as we are welcoming contributors to open-source software and get - in [contact](./contact) with us, we happily answer requests for collaboration with attached CV and your programming + in [contact](../../contact) with us, we happily answer requests for collaboration with attached CV and your programming experience! ## Security -1. Credentials for the [Storage Service](./system-services-storage) are stored in plaintext environment variables. +1. Credentials for the [Storage Service](../storage-service) are stored in plaintext environment variables. diff --git a/.docs/api/auth-service.md b/.docs/api/auth-service.md index 5d3e0f42b2..35c715fc1b 100644 --- a/.docs/api/auth-service.md +++ b/.docs/api/auth-service.md @@ -6,17 +6,23 @@ author: Martin Weise !!! debug "Debug Information" - Image: [`dbrepo/authentication-service:__APPVERSION__`](https://hub.docker.com/r/dbrepo/authentication-service) + Image: [`registry.datalab.tuwien.ac.at/dbrepo/authentication-service:1.4.4`](https://hub.docker.com/r/dbrepo/authentication-service) * Ports: 8080/tcp - * UI: `http://<hostname>/api/auth/admin/` + * UI: `http://<hostname>/api/auth/` ## Overview -By default, users are created using the [User Interface](../system-other-ui) and the sign-up page in the User Interface. -This creates a new user in the [Authentication Database](../system-databases-authentication), the user identity is then -managed by the -Authentication Service. +By default, users are created using the [User Interface](../ui) and the sign-up page in the User Interface. +This creates a new user in Keycloak. The user identity is then managed by the Auth Service. Only a very small subset +of immutable properties (id, username) is mirrored in the [Metadata Database](../metadata-db) for faster access. + +## Identities + +:octicons-tag-16:{ title="Minimum version" } 1.4.4 + +Identities can also be added in Keycloak directly. When requesting a JWT token from the `/api/user` endpoint, the +immutable properties mentioned in c.f. [Overview](#overview) are copied transparent to the user on first login. ## Groups @@ -41,163 +47,16 @@ Each of the composite role has a set of other associated composite roles. </figure> There is one role for one specific action in the services. For example: the `create-database` role authorizes a user to -create a database in a Docker container. Therefore, -the [`DatabaseEndpoint.java`](https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/blob/a5bdd1e2169bae6497e2f7eee82dad8b9b059850/fda-database-service/rest-service/src/main/java/at/tuwien/endpoints/DatabaseEndpoint.java#L78) -endpoint requires a JWT access token with this authority. - -```java -@PostMapping -@PreAuthorize("hasAuthority('create-database')") -public ResponseEntity<DatabaseBriefDto> create(@NotNull Long containerId, - @Valid @RequestBody DatabaseCreateDto createDto, - @NotNull Principal principal) { -... -} -``` - -### Default Container Handling - -| Name | Description | -|-------------------|-------------------------------| -| `find-container` | Can find a specific container | -| `list-containers` | Can list all containers | - -### Default Database Handling - -| Name | Description | -|------------------------------|------------------------------------------------------| -| `check-database-access` | Can check the access to a database of a user | -| `create-database` | Can create a database | -| `create-database-access` | Can give a new access to a database of a user | -| `delete-database-access` | Can delete the access to a database of a user | -| `find-database` | Can find a specific database in a container | -| `list-databases` | Can list all databases in a container | -| `modify-database-image` | Can update the database image | -| `modify-database-owner` | Can modify the database owner | -| `modify-database-visibility` | Can modify the database visibility (public, private) | -| `update-database-access` | Can update the access to a database of a user | - -### Default Table Handling - -| Name | Description | -|---------------------------------|------------------------------------------------------| -| `create-table` | Can create a table | -| `find-tables` | Can list a specific table in a database | -| `list-tables` | Can list all tables | -| `modify-table-column-semantics` | Can modify the column semantics of a specific column | -| `delete-table` | Can delete tables owned by the user in a database | - -### Default Query Handling - -| Name | Description | -|---------------------------|-----------------------------------------------| -| `create-database-view` | Can create a view in a database | -| `delete-database-view` | Can delete a view in a database | -| `delete-table-data` | Can delete data in a table | -| `execute-query` | Can execute a query statement | -| `export-query-data` | Can export the data that a query has produced | -| `export-table-data` | Can export the data stored in a table | -| `find-database-view` | Can find a specific database view | -| `find-query` | Can find a specific query in the query store | -| `insert-table-data` | Can insert data into a table | -| `list-database-views` | Can list all database views | -| `list-queries` | Can list all queries in the query store | -| `persist-query` | Can persist a query in the query store | -| `re-execute-query` | Can re-execute a query to reproduce a result | -| `view-database-view-data` | Can view the data produced by a database view | -| `view-table-data` | Can view the data in a table | -| `view-table-history` | Can view the data history of a table | - -### Default Identifier Handling - -| Name | Description | -|---------------------|---------------------------------------------| -| `create-identifier` | Can create an identifier (subset, database) | -| `find-identifier` | Can find a specific identifier | -| `list-identifier` | Can list all identifiers | - -### Default User Handling - -| Name | Description | -|---------------------------|-----------------------------------------| -| `modify-user-theme` | Can modify the user theme (light, dark) | -| `modify-user-information` | Can modify the user information | - -### Default Maintenance Handling - -| Name | Description | -|------------------------------|------------------------------------------| -| `create-maintenance-message` | Can create a maintenance message banner | -| `delete-maintenance-message` | Can delete a maintenance message banner | -| `find-maintenance-message` | Can find a maintenance message banner | -| `list-maintenance-messages` | Can list all maintenance message banners | -| `update-maintenance-message` | Can update a maintenance message banner | - -### Default Semantics Handling - -| Name | Description | -|---------------------------|-----------------------------------------------------------------| -| `create-semantic-unit` | Can save a previously unknown unit for a table column | -| `create-semantic-concept` | Can save a previously unknown concept for a table column | -| `execute-semantic-query` | Can query remote SPARQL endpoints to get labels and description | -| `table-semantic-analyse` | Can automatically suggest units and concepts for a table | - -### Escalated User Handling - -| Name | Description | -|-------------|-----------------------------------------------| -| `find-user` | Can list user information for a specific user | - -### Escalated Container Handling - -| Name | Description | -|--------------------|--------------------------| -| `create-container` | Can create a container | -| `delete-container` | Can delete any container | - -### Escalated Database Handling - -| Name | Description | -|-------------------|------------------------------------------| -| `delete-database` | Can delete any database in any container | - -### Escalated Table Handling - -| Name | Description | -|------------------------|--------------------------------------| -| `delete-foreign-table` | Can delete any table in any database | - -### Escalated Query Handling - -| Name | Description | -|------|-------------| -| / | | - -### Escalated Identifier Handling - -| Name | Description | -|------------------------------|---------------------------------------------------| -| `create-foreign-identifier` | Can create an identifier to any database or query | -| `delete-identifier` | Can delete any identifier | -| `modify-identifier-metadata` | Can modify any identifier metadata | - -### Escalated Semantics Handling - -| Name | Description | -|-----------------------------------------|----------------------------------------------| -| `create-ontology` | Can register a new ontology | -| `delete-ontology` | Can unregister an ontology | -| `list-ontologies` | Can list all ontologies | -| `modify-foreign-table-column-semantics` | Can modify any table column concept and unit | -| `update-ontology` | Can update ontology metadata | -| `update-semantic-concept` | Can update own table column concept | -| `update-semantic-unit` | Can update own table column unit | +create a database. + +A full list of available roles can be obtained +from [`dbrepo-realm.json`](https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/blob/fb8d14ba02ee32b9a69a30905437b5c9e28adc21/dbrepo-auth-service/dbrepo-realm.json#L46) +which is imported into Keycloak on startup. ## Limitations * No support for sending e-mails through Keycloak by default. * No support for temporary passwords. -* No support for adding identifies in Keycloak directly. * No support for multi-factor authentication. !!! question "Do you miss functionality? Do these limitations affect you?" @@ -208,5 +67,5 @@ public ResponseEntity<DatabaseBriefDto> create(@NotNull Long containerId, ## Security -1. Mount your TLS certificate / private key pair into `/app/tls.crt` and `/app/tls.key` and - set `KC_HTTPS_CERTIFICATE_FILE=/app/tls.crt` and set `KC_HTTPS_CERTIFICATE_KEY_FILE=/app/tls.key`. +1. Keycloak should be configured to use TLS certificates, follow + the [official documentation](https://www.keycloak.org/server/enabletls). diff --git a/.docs/api/data-db.md b/.docs/api/data-db.md index c91d230be7..3b2738f981 100644 --- a/.docs/api/data-db.md +++ b/.docs/api/data-db.md @@ -4,7 +4,7 @@ author: Martin Weise !!! debug "Debug Information" - Image: [`bitnami/mariadb-galera:11.2.2-debian-11-r0`](https://hub.docker.com/r/bitnami/mariadb-galera) + Image: [`docker.io/bitnami/mariadb:11.1.3-debian-11-r6`](https://hub.docker.com/r/bitnami/mariadb) * Ports: 3306/tcp * JDBC: `jdbc://mariadb:<hostname>:3306` @@ -17,20 +17,26 @@ author: Martin Weise ## Overview -By default, only one Data Database is deployed. You can deploy multiple (different) Data Database instances and make -them available in the repository as follows: +The Data Database contains the research data. In the default configuration, only one database of this type is deployed. +Any number of MariaDB ata databases can be integrated into DBRepo, even non-empty databases. The database needs to be +registered in the Metadata Database to be visible in the [User Interface](../ui) and usable from e.g. the Python +Library. -=== "Terminal" +## Architecture - ```shell - curl \ - -sSL \ - http://<hostname>/api/container \ - -X POST \ - -d '{"name": "Data Database 2", "imageId": 1, "host": "example.com", "port": 3306, "privilegedUsername": "root", "privilegedPassword": "s3cr3t" }' - ``` +### Sidecar + +We deploy a sidecar that handles the CSV-file upload/download operations between +the [Storage Service](../system-services-storage) and the Data Database using a Python Flask application and +the [`boto3`](https://boto3.amazonaws.com/v1/documentation/api/latest/index.html) client until MariaDB supports S3 +natively. + +<figure markdown> + +<figcaption>Sidecar that handles the CSV-file upload/download.</figcaption> +</figure> -### Settings +## Data The procedures require the user-generated databases to have the same collation (because of comparison operations). Ensure that the Data Database has the character set `utf8mb4` and collation `utf8mb4_general_ci` in your `my.cfg`: @@ -51,18 +57,6 @@ mariadb-galera: extraFlags: "--character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci" ``` -### Sidecar - -We deploy a sidecar that handles the CSV-file upload/download operations between -the [Storage Service](../system-services-storage) and the Data Database using a Python Flask application and -the [`boto3`](https://boto3.amazonaws.com/v1/documentation/api/latest/index.html) client until MariaDB supports S3 -natively. - -<figure markdown> - -<figcaption>Sidecar that handles the CSV-file upload/download.</figcaption> -</figure> - ### Backup Export all databases with `--skip-lock-tables` option for MariaDB Galera clusters as it is not supported currently by diff --git a/.docs/api/data-service.md b/.docs/api/data-service.md index 41efb21514..ab64c50d31 100644 --- a/.docs/api/data-service.md +++ b/.docs/api/data-service.md @@ -6,7 +6,7 @@ author: Martin Weise !!! debug "Debug Information" - Image: [`dbrepo/data-service:__APPVERSION__`](https://hub.docker.com/r/dbrepo/data-service) + Image: [`registry.datalab.tuwien.ac.at/dbrepo/data-service:1.4.4`](https://hub.docker.com/r/dbrepo/data-service) * Ports: 9093/tcp * Info: `http://<hostname>:9093/actuator/info` @@ -27,7 +27,7 @@ Data Service up. !!! question "Do you miss functionality? Do these limitations affect you?" We strongly encourage you to help us implement it as we are welcoming contributors to open-source software and get - in [contact](./contact) with us, we happily answer requests for collaboration with attached CV and your programming + in [contact](../../contact) with us, we happily answer requests for collaboration with attached CV and your programming experience! ## Security diff --git a/.docs/api/gateway-service.md b/.docs/api/gateway-service.md index cd3be4f73d..923b95a9f3 100644 --- a/.docs/api/gateway-service.md +++ b/.docs/api/gateway-service.md @@ -6,21 +6,21 @@ author: Martin Weise !!! debug "Debug Information" - Image: [`nginx:1.25-alpine-slim`](https://hub.docker.com/r/nginx) + Image: [`docker.io/nginx:1.27.0-alpine3.19-slim`](https://hub.docker.com/r/nginx) * Ports: 80/tcp ## Overview Provides a single point of access to the *application programming interface* (API) and configures a -standard [NGINX](https://www.nginx.com/) reverse proxy for load balancing. This component is optional if you already have a load balancer -or reverse proxy running. +standard [NGINX](https://www.nginx.com/) reverse proxy for load balancing. This component is optional if you already +have a load balancer or reverse proxy running. ## Settings ### SSL/TLS Security -To setup SSL/TLS encryption, mount your TLS certificate and TLS private key into the container directly into the +To setup SSL/TLS encryption, mount your TLS certificate and TLS private key into the container directly into the `/etc/nginx/` directory. ```yaml title="docker-compose.yml" @@ -41,14 +41,14 @@ If your TLS private key as a password, you need to specify it in the `dbrepo.con ### User Interface -To serve the [User Interface](./system-other-ui/) under different port than `80`, change the port mapping in +To serve the [User Interface](../ui/) under different port than `80`, change the port mapping in the `docker-compose.yml` to e.g. port `8000`: ```yaml title="docker-compose.yml" services: ... dbrepo-gateway-service: - image: docker.io/nginx:1.25-alpine-slim + image: docker.io/nginx:1.27.0-alpine3.19-slim ports: - "8000:80" ... @@ -61,13 +61,12 @@ services: !!! question "Do you miss functionality? Do these limitations affect you?" We strongly encourage you to help us implement it as we are welcoming contributors to open-source software and get - in [contact](./contact) with us, we happily answer requests for collaboration with attached CV and your programming + in [contact](../../contact) with us, we happily answer requests for collaboration with attached CV and your programming experience! - ## Security -1. Enable TLS encryption by downloading +1. Enable TLS encryption by downloading the [`dbrepo.conf`](https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/master/dbrepo-gateway-service/dbrepo.conf) and editing the *server* block to include your TLS certificate (with trust chain) `fullchain.pem` and TLS private key `privkey.pem` (PEM-encoded). diff --git a/.docs/api/metadata-db.md b/.docs/api/metadata-db.md index 38cbe3f127..f5cc4d84cc 100644 --- a/.docs/api/metadata-db.md +++ b/.docs/api/metadata-db.md @@ -4,7 +4,7 @@ author: Martin Weise !!! debug "Debug Information" - Image: [`bitnami/mariadb-galera:11.2.2-debian-11-r0`](https://hub.docker.com/r/bitnami/mariadb-galera) + Image: [`docker.io/bitnami/mariadb:11.1.3-debian-11-r6`](https://hub.docker.com/r/bitnami/mariadb) * Ports: 3306/tcp * JDBC: `jdbc://mariadb:<hostname>:3306` @@ -23,11 +23,12 @@ services: dbrepo-metadata-db: ... volumes: - - /path/to/setup-some-data.sql:/docker-entrypoint-initdb.d/setup-some-data.sql + - /path/to/setup-schema.sql:/docker-entrypoint-initdb.d/1_setup-schema.sql + - /path/to/setup-data.sql:/docker-entrypoint-initdb.d/2_setup-data.sql ... ``` !!! warning "Alphabetic Filename Sorting" Beware that the init script provided by Bitnami executes files in alphabetic order! For example: the file - `setup-schema.sql` is executed **after** the file `setup-data.sql`! \ No newline at end of file + `setup-schema.sql` is executed **after** the file `setup-data.sql`! Thefore a sorting prefix 1-9 is recommended! \ No newline at end of file diff --git a/.docs/api/metadata-service.md b/.docs/api/metadata-service.md index 362a9c36bc..fa365219cc 100644 --- a/.docs/api/metadata-service.md +++ b/.docs/api/metadata-service.md @@ -6,7 +6,7 @@ author: Martin Weise !!! debug "Debug Information" - Image: [`dbrepo/metadata-service:__APPVERSION__`](https://hub.docker.com/r/dbrepo/metadata-service) + Image: [`registry.datalab.tuwien.ac.at/dbrepo/metadata-service:1.4.4`](https://hub.docker.com/r/dbrepo/metadata-service) * Ports: 9099/tcp * Info: `http://<hostname>:9099/actuator/info` @@ -14,45 +14,39 @@ author: Martin Weise - Readiness: `http://<hostname>:9099/actuator/health/readiness` - Liveness: `http://<hostname>:9099/actuator/health/liveness` * Prometheus: `http://<hostname>:9099/actuator/prometheus` - * Swagger UI: `http://<hostname>:9099/swagger-ui/index.html` <a href="./swagger/metadata" target="_blank">:fontawesome-solid-square-up-right: view online</a> + * Swagger UI: `http://<hostname>:9099/swagger-ui/index.html` ## Overview -This service manages the following topics: +The metadata service manages metadata of identities, the [Broker Service](../broker-service) (i.e. obtaining queue +types), semantic concepts (i.e. ontologies) and relational metadata (databases, tables, queries, views) and identifiers. -* Databases -* Identifiers (DataCite, OAI-PMH) -* Queries -* Semantics (Ontologies) -* Tables -* Users -* Views +## Generation -### Databases +Most of the metadata available in DBRepo is generated automatically, leveraging the available information and taking +the burden away from researchers, data stewards, etc. For example, the schema (names, constraints, data length) of +generated tables and views is obtained from the `information_schema` database maintained by MariaDB internally. -The service handles table operations inside a database. We use [Hibernate](https://hibernate.org/orm/) for schema and -data ingest operations. - -### Identifiers +## Identifiers The service is responsible for creating and resolving a *persistent identifier* (PID) attached to a database, subset, table or view to obtain the metadata attached to it and allow reproduction of the exact same result. -This service also provides an OAI-PMH endpoint for metadata aggregators +This service also provides an OAI-PMH endpoint for metadata aggregators (e.g. [OpenAIRE Graph](https://graph.openaire.eu/)). Through the User Interface, it also exposes metadata through JSON-LD to metadata aggregators (e.g. [Google Datasets](https://datasetsearch.research.google.com/)). PID metadata is always exposed, even for private databases. -The service generates internal PIDs, essentially representing internal URIs in -the [DataCite Metadata Schema 4.4](https://doi.org/10.14454/3w3z-sa82). This can be enhanced with activating the -external DataCite Fabrica system to generate DOIs, this is disabled by default. +The service generates internal PIDs, essentially representing internal URIs in +the [DataCite Metadata Schema 4.4](https://doi.org/10.14454/3w3z-sa82). This can be enhanced with activating the +external DataCite Fabrica system to generate DOIs, this is disabled by default. To activate DOI minting, pass your DataCite Fabrica credentials in the environment variables: ```yaml title="docker-compose.yml" services: dbrepo-metadata-service: - image: docker.io/dbrepo/metadata-service:1.4.0 + image: registry.datalab.tuwien.ac.at/dbrepo/metadata-service:1.4.4 environment: spring_profiles_active: doi DATACITE_URL: https://api.datacite.org @@ -62,72 +56,13 @@ services: ... ``` -### Queries - -It provides an interface to insert data into the tables. It also allows for view-only, paginated and versioned query -execution to the raw data. Any stale queries (query that have been executed by users in DBRepo but were not saved) are -periodically being deleted from the query store based on the `DELETE_STALE_QUERIES_RATE` environment variable (defaults -to 60 seconds). - -Executing SQL queries through the Query Endpoint must fulfill some restrictions: +## Semantics -* The SQL query does not contain at semicolon `;` - -### Semantics - -The service provides metadata to the table columns in the [Metadata Database](./system-databases-metadata) from -registered ontologies like Wikidata [`wd:`](https://wikidata.org), Ontology of Units of +The service provides metadata to the table columns in the [Metadata Database](../metadata-db) fromregistered ontologies +like Wikidata [`wd:`](https://wikidata.org), Ontology of Units of Measurement [`om2:`](https://www.ontology-of-units-of-measure.org/resource/om-2), Friend of a Friend [`foaf:`](http://xmlns.com/foaf/0.1/), the [`prov:`](http://www.w3.org/ns/prov#) namespace, etc. -### Tables - -The service manages tables in the [Data Database](./system-databases-data) and manages the metadata of these tables -in the [Metadata Database](./system-databases-metadata). Any tables that are created outside of DBRepo (e.g. directly via the JDBC API) are -periodically fetched by this service (based on the `OBTAIN_METADATA_RATE` environment variable, default interval is 60 -seconds). - -### Users - -The service manages users in the [Data Database](./system-databases-data) -and [Metadata Database](./system-databases-metadata), as well as in the [Broker Service](./system-services-broker) -and the [Authentication Service](./system-services-authentication). - -The default configuration grants the users only very basic permissions on the databases: - -* `SELECT` -* `CREATE` -* `CREATE VIEW` -* `CREATE ROUTINE` -* `CREATE TEMPORARY TABLES` -* `LOCK TABLES` -* `INDEX` -* `TRIGGER` -* `INSERT` -* `UPDATE` -* `DELETE` - -This configuration is passed as environment variable `GRANT_PRIVILEGES` to the service as comma-separated string. You -can add/remove grants by setting this environment variable, e.g. allow the users to only select data and create -temporary tables: - -```yaml title="docker-compose.yml" -services: - dbrepo-metadata-service: - environment: - GRANT_PRIVILEGES=SELECT,CREATE TEMPORARY TABLES - ... -``` - -A list of all grants is available in the MariaDB documentation for [`GRANT`](https://mariadb.com/kb/en/grant/) - -### Views - -The service manages views in the [Data Database](./system-databases-data) -and [Metadata Database](./system-databases-metadata). Any views that are created outside of DBRepo (e.g. directly via -the JDBC API) are periodically fetched by this service (based on the `OBTAIN_METADATA_RATE` environment variable, -default interval is 60 seconds). - ## Limitations * No support for other databases than [MariaDB](https://mariadb.org/) because of system-versioning capabilities missing @@ -136,7 +71,7 @@ default interval is 60 seconds). !!! question "Do you miss functionality? Do these limitations affect you?" We strongly encourage you to help us implement it as we are welcoming contributors to open-source software and get - in [contact](./contact) with us, we happily answer requests for collaboration with attached CV and your programming + in [contact](../../contact) with us, we happily answer requests for collaboration with attached CV and your programming experience! ## Security diff --git a/.docs/api/python.md b/.docs/api/python.md index a48fb53d8d..ab6b2b69a6 100644 --- a/.docs/api/python.md +++ b/.docs/api/python.md @@ -8,6 +8,13 @@ author: Martin Weise [:fontawesome-solid-cube: View Docs](../../python){ .md-button .md-button--primary } +## Overview + +The DBRepo Python library is using some of the most pupular and maintained Python packages for Data Scientists under the +hood. For example: [`requests`](https://requests.readthedocs.io/) to interact with the HTTP API +endpoints, [`pandas`](https://pandas.pydata.org/) for data operations and [`pydantic`](https://docs.pydantic.dev/) for +information representation from/to the HTTP API. + ## Installing :octicons-tag-16:{ title="Minimum version" } 1.4.2 diff --git a/.docs/api/search-service.md b/.docs/api/search-service.md index fff317d6f8..b48be919d6 100644 --- a/.docs/api/search-service.md +++ b/.docs/api/search-service.md @@ -6,18 +6,17 @@ author: Martin Weise !!! debug "Debug Information" - Image: [`dbrepo/search-service:__APPVERSION__`](https://hub.docker.com/r/dbrepo/search-service) + Image: [`registry.datalab.tuwien.ac.at/dbrepo/search-service:1.4.4`](https://hub.docker.com/r/dbrepo/search-service) * Ports: 4000/tcp * Health: `http://<hostname>:4000/api/search/health` * Prometheus: `http://<hostname>:4000/metrics` - * Swagger UI: `http://<hostname>:4000/swagger-ui/` <a href="../swagger/search" target="_blank">:fontawesome-solid-square-up-right: view online</a> + * Swagger UI: `http://<hostname>:4000/swagger-ui/` ## Overview -This service communicates between the [Search Database](../system-databases-search) and -the [User Interface](../system-other-ui) to allow structured search of databases, tables, columns, users, identifiers, -views, semantic concepts & units of measurements used in databases. +This service communicates between the Search Database and the [User Interface](../ui) to allow structured search of +databases, tables, columns, users, identifiers, views, semantic concepts & units of measurements used in databases. <figure markdown> { .img-border } @@ -26,9 +25,9 @@ views, semantic concepts & units of measurements used in databases. ## Index -There is only one +There is only one index [`database`](https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/dev/dbrepo-search-db/init/indices/database.json) -that holds all the metadata information which is mirrored from the [Metadata Database](../system-databases-metadata). +that holds all the metadata information which is mirrored from the [Metadata Database](../metadata-db). <figure markdown>  @@ -37,44 +36,16 @@ that holds all the metadata information which is mirrored from the [Metadata Dat ## Faceted Browsing -This service enables the frontend to search the `database` index with eight different *types* of desired results +This service enables the frontend to search the `database` index with eight different *types* of desired results (database, table, column, view, identifier, user, concept, unit) and their *facets*. -For example, the [User Interface](../system-other-ui) allows for the search of databases that contain a certain -semantic concept (provided as URI, e.g. -temperature [http://www.wikidata.org/entity/Q11466](http://www.wikidata.org/entity/Q11466)) and unit of measurement -(provided as URI, e.g. degree +For example, the [User Interface](../ui) allows for the search of databases that contain a certain +semantic concept (provided as URI, e.g. +temperature [http://www.wikidata.org/entity/Q11466](http://www.wikidata.org/entity/Q11466)) and unit of measurement +(provided as URI, e.g. degree Celsius [http://www.ontology-of-units-of-measure.org/resource/om-2/degreeCelsius](http://www.ontology-of-units-of-measure.org/resource/om-2/degreeCelsius)). -An example on faceted browsing is found in the [usage examples](../usage-search). - -## Unit Independent Search - -Since the repository automatically collects statistical properties (min, max, mean, median, std.dev) in both the -[Metadata Database](../system-databases-metadata) and the [Search Database](../system-databases-search), a special -search can be performed when at least two columns have the same semantic concept (e.g. temperature) annotated and -the units of measurements can be transformed. - -<figure markdown> - -<figcaption>Figure 3: Two tables with compatible semantic concepts and units of measurement</figcaption> -</figure> - -In short, the search service transforms the statistical properties not in the target unit of measurements is transformed -by using the [`omlib`](https://github.com/dieudonneWillems/OMLib) package. - -For example: a user wants to find datasets that contain *"temperature measurements between 0 - 10 °C"*. Then the -search service transforms the query to the dataset on the right from °F to contain *"temperature measurements -between 32 - 50 °F"* instead. - -<figure markdown> - -<figcaption>Figure 4: Unit independent search query transformation</figcaption> -</figure> - -## Examples - -View [usage examples](../usage-search/). +An example on faceted browsing is found in the [usage examples](..). ## Limitations @@ -86,4 +57,4 @@ View [usage examples](../usage-search/). ## Security -(nothing) +(none) diff --git a/.docs/api/storage-service.md b/.docs/api/storage-service.md index bf40ca83c8..a8da4f0721 100644 --- a/.docs/api/storage-service.md +++ b/.docs/api/storage-service.md @@ -6,7 +6,7 @@ author: Martin Weise !!! debug "Debug Information" - Image: [`chrislusf/seaweedfs:3.59`](https://hub.docker.com/r/chrislusf/seaweedfs) + Image: [`docker.io/chrislusf/seaweedfs:3.59`](https://hub.docker.com/r/chrislusf/seaweedfs) * Ports: 9000/tcp * Prometheus: `http://<hostname>:9091/metrics` @@ -36,7 +36,7 @@ The default configuration creates two buckets `dbrepo-upload`, `dbrepo-download` !!! question "Do you miss functionality? Do these limitations affect you?" We strongly encourage you to help us implement it as we are welcoming contributors to open-source software and get - in [contact](./contact) with us, we happily answer requests for collaboration with attached CV and your programming + in [contact](../../contact) with us, we happily answer requests for collaboration with attached CV and your programming experience! ## Security diff --git a/.docs/api/ui.md b/.docs/api/ui.md index 2acc439097..d187772ce0 100644 --- a/.docs/api/ui.md +++ b/.docs/api/ui.md @@ -2,6 +2,14 @@ author: Martin Weise --- +## tl;dr + +!!! debug "Debug Information" + + Image: [`registry.datalab.tuwien.ac.at/dbrepo/ui:1.4.4`](https://hub.docker.com/r/dbrepo/ui) + + * Ports: 3000/tcp + The User Interface is configured in the `runtimeConfig` section of the `nuxt.config.ts` file during build time. For the runtime, you need to override those values through environment variables or by mounting a `.env` file. As a small example, you can configure the logo :material-numeric-1-circle-outline: in Figure 2. Make sure you mount the logo as @@ -27,7 +35,7 @@ if you use a Kubernetes deployment via ConfigMap and Volumes). ```yaml title="docker-compose.yml" services: dbrepo-ui: - image: docker.io/dbrepo/ui:__APPVERSION__ + image: registry.datalab.tuwien.ac.at/dbrepo/ui:1.4.4 volumes: - ./my_logo.png:/app/.output/public/my_logo.png ... diff --git a/.docs/api/upload-service.md b/.docs/api/upload-service.md index 88812d308b..f8ad58ebcb 100644 --- a/.docs/api/upload-service.md +++ b/.docs/api/upload-service.md @@ -6,46 +6,31 @@ author: Martin Weise !!! debug "Debug Information" - Image: [`tusproject/tusd:v1.12`](https://hub.docker.com/r/tusproject/tusd) + Image: [`docker.io/tusproject/tusd:v1.12`](https://hub.docker.com/r/tusproject/tusd) * Ports: 1080/tcp * Prometheus: `http://<hostname>:1080/api/upload/metrics` * API: `http://<hostname>:1080/api/upload` - * Swagger UI: <a href="../swagger/upload" target="_blank">:fontawesome-solid-square-up-right: view online</a> ## Overview -We use the [TUS](https://tus.io/) open protocol for resumable file uploads which based entirely on HTTP. Even though +We use the [TUS](https://tus.io/) open protocol for resume-able file uploads which based entirely on HTTP. Even though the Upload Service is part of the standard installation, it is an entirely optional component and can be replaced with any S3-compatible Blob Storage. -### Settings - -The Upload Service is responsible for uploading files (mainly CSV-files) into a Blob Storage that can be accesses trough -the S3 protocol (e.g. our [Storage Service](../system-services-storage)). Make sure that the Upload Service can be -accessed from the Gateway Service and set the url in the User Interface configuration file. - -```json title="dbrepo.config.json" -{ - "upload": { - "url": "example.com", - "useSsl": true - }, - ... -} -``` - -If your deployment is secured with SSL/TLS (recommended) set the `useSsl` variable to `true`. - ### Architecture -The Upload Service communicates internally with the [Storage Service](../system-services-storage) (c.f. [Figure 1](#fig1)). +The Upload Service communicates internally with the [Storage Service](../storage-service) (c.f. [Figure 1](#fig1)). <figure id="fig1" markdown>  <figcaption>Figure 1: Architecture of the Upload Service</figcaption> </figure> +The Upload Service is responsible for uploading files (mainly CSV-files) into a Blob Storage that can be accesses trough +the S3 protocol (e.g. our [Storage Service](../storage-service)). Make sure that the Upload Service can be +accessed from the Gateway Service. + ## Limitations * No support for authentication. diff --git a/.docs/concepts/search.md b/.docs/concepts/search.md index 8ae41c80ba..8731100f91 100644 --- a/.docs/concepts/search.md +++ b/.docs/concepts/search.md @@ -4,10 +4,34 @@ author: Martin Weise ## Index -TBD +tbd ## Document TBD -## Query \ No newline at end of file +## Query + +## Unit Independent Search + +Since the repository automatically collects statistical properties (min, max, mean, median, std.dev) in both the +[Metadata Database](../system-databases-metadata) and the [Search Database](../system-databases-search), a special +search can be performed when at least two columns have the same semantic concept (e.g. temperature) annotated and +the units of measurements can be transformed. + +<figure markdown> + +<figcaption>Figure 3: Two tables with compatible semantic concepts and units of measurement</figcaption> +</figure> + +In short, the search service transforms the statistical properties not in the target unit of measurements is transformed +by using the [`omlib`](https://github.com/dieudonneWillems/OMLib) package. + +For example: a user wants to find datasets that contain *"temperature measurements between 0 - 10 °C"*. Then the +search service transforms the query to the dataset on the right from °F to contain *"temperature measurements +between 32 - 50 °F"* instead. + +<figure markdown> + +<figcaption>Figure 4: Unit independent search query transformation</figcaption> +</figure> \ No newline at end of file diff --git a/.docs/deployment-helm.md b/.docs/deployment-helm.md deleted file mode 100644 index 5b0be43553..0000000000 --- a/.docs/deployment-helm.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -author: Martin Weise ---- - -[](https://artifacthub.io/packages/helm/dbrepo/dbrepo){ tabindex=-1 } - -## TL;DR - -To install DBRepo in your existing cluster, download the -sample [`values.yaml`](https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-deployment/-/raw/master/charts/dbrepo-core/values.yaml?inline=false) -for your deployment and update the variables, especially `hostname`. - -```shell -helm upgrade --install dbrepo \ - -n dbrepo \ - "oci://s210.dl.hpc.tuwien.ac.at/dbrepo/helm/dbrepo" \ - --values ./values.yaml \ - --version "__CHARTVERSION__" \ - --create-namespace \ - --cleanup-on-fail -``` - -This chart is also on [Artifact Hub](https://artifacthub.io/packages/helm/dbrepo/dbrepo) with a full documentation -about values, etc. - -## Prerequisites - -* Kubernetes 1.24+ -* Kubernetes 3.8.0+ -* PV provisioner support in the underlying infrastructure - -## Limitations - -1. MariaDB Galera does not (yet) support XA-transactions required by the authentication service (=Keycloak). Therefore - only a single MariaDB pod can be deployed at once for the [auth database](./system-databases-authentication). -2. The entire Helm deployment is rootless (=`runAsNonRoot=true`) except for - the [Storage Service](./system-services-storage/) which still requires a root user. - -!!! question "Do you miss functionality? Do these limitations affect you?" - - We strongly encourage you to help us implement it as we are welcoming contributors to open-source software and get - in [contact](./contact) with us, we happily answer requests for collaboration with attached CV and your programming - experience! diff --git a/.docs/index.md b/.docs/index.md index a6cfdea09b..4b869b4d8f 100644 --- a/.docs/index.md +++ b/.docs/index.md @@ -5,6 +5,7 @@ author: Martin Weise [](https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services){ tabindex=-1 } [](https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services){ tabindex=-1 } [](https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services){ tabindex=-1 } +[](https://hub.docker.com/u/dbrepo){ tabindex=-1 } [](https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services){ tabindex=-1 } Documentation for version: [v1.4.4](https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/releases). diff --git a/.docs/deployment-docker-compose.md b/.docs/installation.md similarity index 52% rename from .docs/deployment-docker-compose.md rename to .docs/installation.md index 7b6d992256..2561b4944b 100644 --- a/.docs/deployment-docker-compose.md +++ b/.docs/installation.md @@ -2,16 +2,20 @@ author: Martin Weise --- -# Docker Compose +# Installation + +[](https://hub.docker.com/u/dbrepo){ tabindex=-1 } ## TL;DR If you have [Docker](https://docs.docker.com/engine/install/) already installed on your system, you can install DBRepo with: ```shell -curl -sSL https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/release-__APPVERSION__/install.sh | bash +curl -sSL https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/release-1.4.4/install.sh | bash ``` +Or perform a [custom install](#custom-install). + ## Requirements ### Hardware @@ -26,7 +30,7 @@ the following settings. *Optional*: public IP-address if you want to secure the deployment with a (free) TLS-certificate from Let's Encrypt. -!!! tip "Resource Consumption" +!!! info "Resource Consumption" Note that most of the vCPU and RAM resources will be needed for starting the infrastructure, this is because of Docker. During operation and especially idle times, the deployment will use significantly less resources. @@ -34,13 +38,15 @@ the following settings. ### Software We only test the Docker Compose deployment with the -official [Docker engine](https://docs.docker.com/engine/install/debian/) installed on +official [Docker Engine](https://docs.docker.com/engine/install/debian/) installed on a [Debian](https://www.debian.org/)-based operating system. Other software deployments (e.g. Docker Desktop on Windows) are *not* recommended and not tested. -## Architecture +## Custom Install + +TBD -### Overview +## Architecture The repository is designed as a service-based architecture to ensure scalability and the utilization of various technologies. The conceptualized microservices operate the basic database operations, data versioning as well as @@ -51,9 +57,7 @@ technologies. The conceptualized microservices operate the basic database operat <figcaption>Architecture of the services deployed via Docker Compose</figcaption> </figure> -### Notes - -Please note that we only save the state of the databases as well as the [Broker Service](./system-services-broker) +Please note that we only save the state of the databases as well as the [Broker Service](../broker-service) since RabbitMQ maintains state inside the container. ## Deployment @@ -61,43 +65,6 @@ since RabbitMQ maintains state inside the container. We maintain a rapid prototype deployment option through Docker Compose (v2.17.0 and newer). This deployment creates the core infrastructure and a single Docker container for all user-generated databases. -=== "Linux" - - Download and install [Docker Engine](https://docs.docker.com/desktop/install/linux-install/) for your Linux - distribution. Although the installation might work, we *do not* recommend Docker Desktop. - - Ensure the Docker daemon is running at all times: - - systemctl enable docker --now - - Install DBRepo with the default configuration: - - curl -sSL https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/dev/install.sh | bash - -=== "Windows" - - Open `cmd.exe` as administrator and install WSL2 and the Debian subsystem: - - wsl --install Debian - - Open `optionalfeatures` by typing into the open terminal window or searching for it and enable "Windows Subsystem - for Linux": - - <figure markdown> - { .img-border } - <figcaption>Enable Subsystem for Linux in Windows Features</figcaption> - </figure> - - Install [Docker Desktop](https://docs.docker.com/desktop/install/windows-install/) on the Windows host machine. - Open Docker Desktop and go to settings (:fontawesome-solid-gear:) > General > Tick "Use WSL2 based engine" if not - already ticked. - - Open the Debian container by typing "Debian" into the search, you should see a terminal window. - - Install DBRepo with the default configuration from the Debian container: - - curl -sSL https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/master/install.sh | bash - View the logs: docker compose logs -f @@ -147,50 +114,11 @@ Please be warned that the default configuration is not intended for public deplo running system within minutes to play around within the system and explore features. It is strongly advised to change the default `.env` environment variables. -Next, create a [user account](./usage-overview/#create-user-account) and -then [create a database](./usage-overview/#create-database) to [import a dataset](./usage-overview/#import-dataset). - -## Security - -!!! warning "Known security issues with the default configuration" - - The system is auto-configured for a small, local, test deployment and is *not* secure! You need to make modifications - in various places to make it secure: - - * **Authentication Service**: - - a. You need to use your own instance or configure a secure instance using a (self-signed) certificate. - Additionally, when serving from a non-default Authentication Service, you need to put it into the - `JWT_ISSUER` environment variable (`.env`). - - b. You need to change the default admin user `fda` password in Realm - master > Users > fda > Credentials > Reset password. - - c. You need to change the client secrets for the clients `dbrepo-client` and `broker-client`. Do this in Realm - dbrepo > Clients > dbrepo-client > Credentials > Client secret > Regenerate. Do the same for the - broker-client. - - d. You need to regenerate the public key of the `RS256` algorithm which is shared with all services to verify - the signature of JWT tokens. Add your securely generated private key in Realm - dbrepo > Realm settings > Keys > Providers > Add provider > rsa. - - * **Broker Service**: by default, this service is configured with an administrative user that has major privileges. - You need to change the password of the user *fda* in Admin > Update this user > Password. We found this - [simple guide](https://onlinehelp.coveo.com/en/ces/7.0/administrator/changing_the_rabbitmq_administrator_password.htm) - to be very useful. - - * **Search Database**: by default, this service is configured to require authentication with an administrative user - that is allowed to write into the indizes. Following - this [simple guide](https://www.elastic.co/guide/en/elasticsearch/reference/8.7/reset-password.html), this can be - achieved using the command line. - - * **Gateway Service**: by default, no HTTPS is used that protects the services behind. You need to provide a trusted - SSL/TLS certificate in the configuration file or use your own proxy in front of the Gateway Service. See this - [simple guide](http://nginx.org/en/docs/http/configuring_https_servers.html) on how to install a SSL/TLS - certificate on NGINX. +Next, create a [user account](../api/#create-user-account) and +then [create a database](../api/#create-database) to [import a dataset](../api/#import-dataset). ## Limitations !!! info "Alternative Deployments" - Alternatively, you can also deploy DBRepo with [Helm](./deployment-helm/) in your virtual machine instead. + Alternatively, you can also deploy DBRepo with [Kubernetes](../deployment-helm) in your virtual machine instead. diff --git a/.docs/kubernetes.md b/.docs/kubernetes.md new file mode 100644 index 0000000000..608502e320 --- /dev/null +++ b/.docs/kubernetes.md @@ -0,0 +1,70 @@ +--- +author: Martin Weise +--- + +[](https://artifacthub.io/packages/helm/dbrepo/dbrepo){ tabindex=-1 } + +## TL;DR + +To install DBRepo in your existing cluster, download the +sample [`values.yaml`](https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/blob/release-1.4.4/helm/dbrepo/values.yaml) +for your deployment and update the variables, especially `hostname`. + +```shell +helm upgrade --install dbrepo \ + -n dbrepo \ + "oci://registry.datalab.tuwien.ac.at/dbrepo/helm/dbrepo" \ + --values ./values.yaml \ + --version "1.4.4" \ + --create-namespace \ + --cleanup-on-fail +``` + +This chart is also on [Artifact Hub](https://artifacthub.io/packages/helm/dbrepo/dbrepo) with a full documentation +about values, etc. Before installing, you need to change credentials, e.g. the Broker Service administrator user +password: + +```yaml title="values.yaml" +brokerservice: + ... + auth: + ... + username: broker + password: broker + passwordHash: 1gwjNNTBPKLgyzbsUykfR0JIFC6nNqbNJaxzZ14uPT8JGcTZ +``` + +The `brokerservice.auth.passwordHash` field is the RabbitMQ SHA512-hash of the `brokerservice.auth.password` field and +can be obtained with +the [`generate-rabbitmq-pw.sh`](https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/blob/release-1.4.4/helm/dbrepo/hack/generate-rabbitmq-pw.sh) +script: + +```console +$ ./generate-rabbitmq-pw.sh my_password +klPdmv4dgnRH64czHolIHAfXvc0G9hc24FQmPlI6eeI1NOf9 +``` + +The script needs the package `xxd` for generation of the random salt. If you don't have `xxd` installed, install it: + +* Debian/Ubuntu: `apt install xxd` +* Windows: `choco install xxd` +* MacOS: `brew install coreutils` + +## Prerequisites + +* Kubernetes 1.24+ +* Kubernetes 3.8.0+ +* PV provisioner support in the underlying infrastructure + +## Limitations + +1. MariaDB Galera does not (yet) support XA-transactions required by the authentication service (=Keycloak). Therefore + only a single MariaDB pod can be deployed at once for the Auth database. +2. The entire Helm deployment is rootless (=`runAsNonRoot=true`) except for + the [Storage Service](../api/storage-service) which still requires a root user. + +!!! question "Do you miss functionality? Do these limitations affect you?" + + We strongly encourage you to help us implement it as we are welcoming contributors to open-source software and get + in [contact](../../contact) with us, we happily answer requests for collaboration with attached CV and your programming + experience! diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d2552eb054..f969aa04ac 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -121,10 +121,11 @@ build-helm: refs: - /^release-.*/ before_script: + - echo "$CI_GPG_KEYRING" | base64 -d > ./secring.gpg - echo "$CI_REGISTRY_PASSWORD" | docker login --username "$CI_REGISTRY_USER" --password-stdin $CI_REGISTRY_URL script: - apk add sed helm curl - - helm package ./helm/dbrepo --destination ./build + - helm package ./helm/dbrepo --sign --key 'Martin Weise' --keyring ./secring.gpg --destination ./build verify-install-script: image: docker.io/docker:24-dind @@ -581,14 +582,16 @@ release-images: refs: - /^release-.*/ before_script: - - "echo ${CI_REGISTRY_PASSWORD} | docker login --username ${CI_REGISTRY_USER} --password-stdin $CI_REGISTRY_URL" - - "echo ${CI_REGISTRY2_PASSWORD} | docker login --username ${CI_REGISTRY2_USER} --password-stdin $CI_REGISTRY2_URL" + - "docker logout ${CI_REGISTRY_URL}" + - "echo ${CI_REGISTRY_PASSWORD} | docker login --username ${CI_REGISTRY_USER} --password-stdin ${CI_REGISTRY_URL}" + - "docker logout ${CI_REGISTRY2_URL}" + - "echo ${CI_REGISTRY2_PASSWORD} | docker login --username ${CI_REGISTRY2_USER} --password-stdin ${CI_REGISTRY2_URL}" - "ifconfig eth0 mtu 1450 up" - "apk add make bash" script: - "make release-images" -release-chart: +release-helm: stage: release image: docker:24-dind only: @@ -598,12 +601,16 @@ release-chart: refs: - release-latest before_script: - - "echo ${CI_REGISTRY2_PASSWORD} | docker login --username ${CI_REGISTRY2_USER} --password-stdin $CI_REGISTRY2_URL" + - "docker logout ${CI_REGISTRY_URL}" + - "echo ${CI_REGISTRY_PASSWORD} | docker login --username ${CI_REGISTRY_USER} --password-stdin ${CI_REGISTRY_URL}" + - "docker logout ${CI_REGISTRY2_URL}" + - "echo ${CI_REGISTRY2_PASSWORD} | docker login --username ${CI_REGISTRY2_USER} --password-stdin ${CI_REGISTRY2_URL}" - "apk add sed helm curl" - - "helm package ./helm/dbrepo --destination ./build" + - echo "$CI_GPG_KEYRING" | base64 -d > ./secring.gpg + - helm package ./helm/dbrepo --sign --key 'Martin Weise' --keyring ./secring.gpg --destination ./build - "helm plugin install https://github.com/sigstore/helm-sigstore" script: - - "helm push ./build/dbrepo-${CHART_VERSION}.tgz oci://${CI_REGISTRY2_URL}/helm" + - "helm sigstore upload ./build/dbrepo-${CHART_VERSION}.tgz oci://${CI_REGISTRY2_URL}/helm" release-docs: stage: release @@ -612,11 +619,9 @@ release-docs: refs: - /^release-.*/ before_script: - - "wget https://github.com/mikefarah/yq/releases/download/v4.2.0/yq_linux_amd64 -O /usr/bin/yq" - - "chmod +x /usr/bin/yq" - "apk add --update alpine-sdk bash sed wget openssh" - "pip install -r ./requirements.txt" - - "mkdir -p ./final/${APP_VERSION}/swagger" + - "mkdir -p ./final/${APP_VERSION}/rest" script: - "make gen-lib-doc gen-docs-doc" - "cp -r ./lib/python/docs/build/html ./final/${APP_VERSION}/python" # sphinx @@ -633,7 +638,7 @@ release-docs: - "scp -oHostKeyAlgorithms=+ssh-rsa -oPubkeyAcceptedAlgorithms=+ssh-rsa final.tar.gz $CI_DOC_USER@$CI_DOC_IP:final.tar.gz" - "scp -oHostKeyAlgorithms=+ssh-rsa -oPubkeyAcceptedAlgorithms=+ssh-rsa versions.json $CI_DOC_USER@$CI_DOC_IP:/system/user/ifs/infrastructures/public_html/dbrepo/versions.json" - "scp -oHostKeyAlgorithms=+ssh-rsa -oPubkeyAcceptedAlgorithms=+ssh-rsa .docs/redirect.html $CI_DOC_USER@$CI_DOC_IP:/system/user/ifs/infrastructures/public_html/dbrepo/index.html" - - "ssh -oHostKeyAlgorithms=+ssh-rsa -oPubkeyAcceptedAlgorithms=+ssh-rsa $CI_DOC_USER@$CI_DOC_IP 'rm -rf /system/user/ifs/infrastructures/public_html/dbrepo/${APP_VERSION}; tar xzf ./final.tar.gz; rm -f ./final.tar.gz; cp -r ./final/* /system/user/ifs/infrastructures/public_html/dbrepo/${APP_VERSION}; rm -rf ./final'" + - 'ssh -oHostKeyAlgorithms=+ssh-rsa -oPubkeyAcceptedAlgorithms=+ssh-rsa $CI_DOC_USER@$CI_DOC_IP "rm -rf /system/user/ifs/infrastructures/public_html/dbrepo/${APP_VERSION}; tar xzf ./final.tar.gz; rm -f ./final.tar.gz; cp -r ./final/* /system/user/ifs/infrastructures/public_html/dbrepo/${APP_VERSION}; rm -rf ./final"' release-libs: stage: release diff --git a/Makefile b/Makefile index ea9a9d0ce3..d3438ab7d5 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ APP_VERSION ?= 1.4.4 CHART_VERSION ?= 1.4.4 -REPOSITORY_URL ?= docker.io/dbrepo +REPOSITORY_URL ?= registry.datalab.tuwien.ac.at/dbrepo .PHONY: all all: help diff --git a/dbrepo-analyse-service/Pipfile.lock b/dbrepo-analyse-service/Pipfile.lock index 2ff8fb46f4..9a4ce182e4 100644 --- a/dbrepo-analyse-service/Pipfile.lock +++ b/dbrepo-analyse-service/Pipfile.lock @@ -167,19 +167,19 @@ }, "boto3": { "hashes": [ - "sha256:42b140fc850cf261ee4b1e8ef527fa071b1f1592a6d6a68d34b29f37cc46b4dd", - "sha256:56bec52d485d5670ce96d53ae7b2cd4ae4e8a705fb2298a21093cdd77d642331" + "sha256:7e8418b47dd43954a9088d504541bed8a42b6d06e712d02befba134c1c4d7c6d", + "sha256:7f676daef674fe74f34ce4063228eccc6e60c811f574720e31f230296c4bf29a" ], "index": "pypi", - "version": "==1.34.123" + "version": "==1.34.126" }, "botocore": { "hashes": [ - "sha256:8c34ada2a708c82e7174bff700611643db7ce2cb18f1130c35045c24310d299d", - "sha256:a8577f6574600c4d159b5cd103ee05744a443d77f7778304e17307940b369c4f" + "sha256:7a8ccb6a7c02456757a984a3a44331b6f51c94cb8b9b287cd045122fd177a4b0", + "sha256:7eff883c638fe30e0b036789df32d851e093d12544615a3b90062b42ac85bdbc" ], "markers": "python_version >= '3.8'", - "version": "==1.34.123" + "version": "==1.34.126" }, "certifi": { "hashes": [ @@ -1050,11 +1050,11 @@ }, "pydantic": { "hashes": [ - "sha256:c46c76a40bb1296728d7a8b99aa73dd70a48c3510111ff290034f860c99c419e", - "sha256:ea91b002777bf643bb20dd717c028ec43216b24a6001a280f83877fd2655d0b4" + "sha256:0c84efd9548d545f63ac0060c1e4d39bb9b14db8b3c0652338aecc07b5adec52", + "sha256:ee8538d41ccb9c0a9ad3e0e5f07bf15ed8015b481ced539a1759d8cc89ae90d0" ], "index": "pypi", - "version": "==2.7.3" + "version": "==2.7.4" }, "pydantic-core": { "hashes": [ diff --git a/dbrepo-analyse-service/lib/dbrepo-1.4.4-py3-none-any.whl b/dbrepo-analyse-service/lib/dbrepo-1.4.4-py3-none-any.whl index 503cfef91315990bbf06027d6de14c8b3184507b..7e8fd7fca5aa6158bf57952f7f1050a08b331402 100644 GIT binary patch delta 17178 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 delta 15226 zcmZpC$@t(VBX58=Gm8iV0|N(xh|;NzyxW=U`QlGUeC?DMzM;s#(BsO;0Fq5fDoQQL z*AGf9E^*GuOwB9NE2w-MTU~tn#Kiyi=QAx|)pAAG_vY-JpygUIr?fMRz4mMipR~FB zX{n}w;gk(*jCu@SX(F}XXTPgtW)@&@?AWwYYj(w%FD7Zb>hE6u%$4@p;^dr?nReVa zQg!OrANujjs$<>!&fhJ6wkc#zvzx8<@yty9TK!W^ormwo={$cj_5E4nNgG&hD$Q+S z?A&Dddm^X!OF_E_C3{YM5Bm7&#_2usLiuj<Hg5kH>h$d6kH0oOw*OBoSZr@BRQ);O zP5MTU@AF%yKl$8pX0t+H%Eok+xtF7hM1DU}@qCo>WRHKnr%<4qpB?*`**_0Yo+;jP zY_fS_+MWNO&Md6AKXNkk!EcpE{`FrDWzIR%p<ncr^Zyowlb>w5g#-Wet9-7Bl60S< zJFCxS^3n$ni`nM1KKK4rktXsxYvNsj3=#f)el;A|gzwo@f6Ec7%H+B~d*dwYBR$pC z)jz5Wowt<pdHYzFt7(1A+14?kpycfx)|<V~-9>%-?H5mdHD~Uec#HM-=Jw4EPxOcu zk(yvM(@J>q1XhuH9<GF(`&FI~Vp~;YEmLZ2k3CWO^t{kvazbRl0ae`xpProkxO@BZ zd_A{wP22tT4*vc;d9(TYI-7+{Hl4ijbALsn&ynpao=o#U2sM7^TzgX|(kEl-Yn{{i zmw!%?>6@SU&-skPOq&$Z<JpdOa@P5QXZ94lk(s=5J4fcJy|Z;@%gfcv#8gY}{5<Xa z%k(>J!kd;~7QH`hv9?@x$=8_TTM^}jkDeEG9#`ENWE82gWy$=NPZG`spPhN>n3D1u z)`egEBw|$KHZA$;JlmoxbM6F{8G42j)t~5{nC53wI_;xUp<dj4`8o6VAKUaG-)WN0 zj3$nWS0saUWvt5so++_T^zyW*ombCxUGQV?l;2TTFJ4nhc8&{WzObw$W>v4?LGe{= z#rh$tPvbhOc62=susJSnH`8kRbVret>C>GPidF1A|2_RFaYMQ?;bhk1E0fL~+pZe< zPFpXd_pSB$|I(A?Pd$;jc|1H$%17gnPxEWV2a~7oY`)LCw`3Bl@uvA!`=y!Ef1i)9 ztLMJ1xKmZJ`h)t8`4dgPuFKqY@WjFLbqlI%KK=c@KWfKi$+JR_&c<X_9Ls!mygMge zt=&q_`)~P5SE=GynfS>$78(tVy74OK11Bm3I=U(xb4c{+>ss+!OY42y-1-0ie0wt^ zNbscS)P$&cAOAdg@%QG*g!`O9A=;als_?H#Tx~I-z9mMh{=x@l&(?s_b&F2wnH28# z-t%*giq9R{t{!v4$u?2$o+s7|*k5vfepn#yyFJ&+CHm76iek#joo(hby<Yg3ee#-^ zqLqJqPpB$%PPr#9!DAR`IDb(9ca9YI=h_w5cPPCG5I-zAi^(xtTH;`Mn(}A!-)XI? zaTA1QH_G~bud83+$JnaNHD}8?hklmyb}mUnW;=eNNAERnF8JzcpJlbf{K&tD^X%#+ zL`<%!hjXu5&3sYi`<q9J8{%h)NcT)MR+(fPzw^e^mmSacrHfl;t(o{LSh%<9yxuB1 zhlE>u)wb-sw6o``ejL|R+x?d~#jd(uC=cvt|2=if;)rF-znR3ptY0DZw5N+@-43bq zEBvM6es$lB(H1`%wK;B)=&RE^_Ewzx(QZ58iv{Pu)}r0)yKL|No>#%?Sz*l)#a}&j zs-fd+r|2{8_C|bvP979p%zQuL%C5J}EVF&>n!@{5epEItFBN{a!_E4oL5|RuJJrp9 znh({MS2XYYzwcWi=SeZoB?8^`@jNqs?Rvw0@aoe4ZV}VC|M%{g|1|4Rd~W2!_t#DO zV)Pt@8e{)yPq>|GubkQaF+F}}BkMPr9fC80dUnsL4q!D=e5C(3R8&94=tpvF-<6LB z;%j3Ip4J>cEh6gRT_777^n8w`$DO@x_V4Cp9c>ElUc%tHaysYDiFSL>{@5)re@Xof z(@UKje=Yy@kGZyY(^2EO{~Ncxdm?-^*74GljFzmeGkjKTHjXX0Zux)j=BKLfAMaXK zZQXKA=fN+=w+(U|x@;Z7_)Rnu&vX7LpY$ZcM&{J2f~TQ|+WzYtkA~E2T&?PLi2v7F zi<xW_?PUVe=H$<r-oCB;KF>FMsc)edL=BupTkGv4yPm)3*s~!raIL#nsc)oz*s84X zUmD@nuDwD_HCHZ;yZCf{xnxwG-tI8@+pmHa$NYb*$NXdS>2J4JpW#-T@OJ;-nu80} z_Wha~aJ|jdHgCpsg(vL0W=>%IWpQKY(SJf+!hh|w$~kg4XR4{}P4w^bO8CaEYIBKu zjrrM=3akFFsxMA_+v#OB>0|w>egEyh{`+Wge!|VGQ#$sjIZyKAZPQs5yV{oP*BU{l zhd#v{XFETivaFwRf#D}cuR8a+`MMlQzbYOx9ds(l<ejxk<r4qN*;T=}x7_PbT<z0- zq@?=uy^c3OC9V}u{eCK-PprH_$o9gPX;)d#s^mVj@so^L^wjxseQVsczw;6*{5fBr zxGC)OMzgc>hWQ?yK(4n@RX3IP&bcs)-Q?G|quZZ-k3ITNDDvUUg&*dWA1`c6X8L|C zZ?D0Jl?D8b4r>?v|M7_5Ov9x0tb=n`a?p~}JBMpnXKJ0TTJcJzVxipn-lOafeJ^Si zwXN^#^Sc*2N2Zxwx$x^dwQp(lj7qCE{5!Y5*l2P0^W7}F-p^!<2wQtquvb(4q}S8E zS8TUb|8_L#&HS(PeC69n=^N`5Exq!SmWE6@|Nn;e4Q1mzmTeqHOIF>AW6%7?*mU~7 zI^)c`E!XeH8zx94C9d3htAVFNXGW6gime9~qQp`^UehkDYI)@yyFJS?Y;})%L3w?7 z|FzTezLaIJde^;e)#_d!p5m?h?Zsx*SjGokTQtY%dZ5{dz6fKJu&v_fKD@opt18U2 z*ivtL<NBDqguPBF2F%$9Uq29QUj4=HgSP2<^Ou58&KL?WaV=I@UFQ?=RKO!3_yga& zN?Y5U)f`Tn*Cty1%P^Kr)4k<7$<+OU^{Te8dhYFkVZNJWJN~tNvs)?mY)SmCx0dy_ zPXr{ojZK-S-dZQ;?jd{UTgM&6r?>LV-ix2AIoHqKwKv?vRpgJFn~I5%>bb&sK6cXo z<xVtDUw!&*?DCDBYwXsgZZQe(UU6Z|KWDGQ@nV`0ck-@<9(rdtT{=tnvGt?tts?Wk z>daADw)bScb^pZ~$GT5ADcWyYz1>Cfee6u<4-KLcYx&-v;IN*Ywc^jh9&gQbFSaE| zSi_~n|F3^-v_FRZOMr59$t>|=jmE|)mz;e|*rc0c+TtQUEKEKzcgoIPuK%Z-rUiv; z`1DEC?fI4UYTWw&bCMO;E0&&8KX1w!b^M#e7wKEGrl0%p;!XXN(0$H_Q<k2&d+1?) zX0?<4uDFWpkIJM}GQ)Z_TIW4o89ICKOA`)emf*=Qb9|bTTvpwATiq`|@mlfUDKihR z7x}?6ZH~0`p0jy-&UofOa(%IQ=Ru`EO$Q%+Enc`uaL#Ojg(vTDH@}v4*lK&<+wP#g zT?OCA4M)76N`GAt(6Fi`vaP=2NYmb$3a6=_N-Ex6TegTfC%u_n5qeWCRHEj_Ccn&l zi<ot%vQ4(ki>-EiEuUn2nW3jfQ&msWs&{+3`|{(eJFCn2B!d4+e4F>1>vL<~ysZ;c z#gE;TzLC9bZN~b*=$Jq82fMZPOgajmhW0k;)H_wh78+hkJ%4qb<*yw-{vT7W&&vMR zxkj1$s%`06ON){w4)4+z|G9&%8`#O#ANdicvu~sPr`X^5wk)!W2TeCSy}nV~oZ&vv z=j@00F1L+U3~v3Kmnohrs@>;qa3+mCM1tFyt^8Z#-_RTF%z@!|CAqp~E7YH?zYzI* z6Jvz%rS<Hc#jM|3k40@%-4GM_sr=ily!y)*=AS5XI{JUIvx2jGm}7~v)h1qnhUd=T zjwa4l{<!Gejow8;mJN$1+5Xe$dy*Rc_(ki&IWgTOX7d(DEnVy=>p8(%>XRI=-I*9R z&B^nFO^+#We&y$SQo>(abMx$wwKt3o-`YJx?#}D0JGL&i-xOLc!_=h7u&L<Hvt{pm zn0kHG>sK+Hp0&<KOT)6n_SyOH2dmD+X?`%e`grlGgw*Jxn;BMZQnYFgz9|*kE#SMa z!${SmG2-I1{E5mQ;m&mtR<RAI)Ee?O{y5-rzw~K4H~ZQP3(p)@7kGSV^4|03H@^G+ zZM%oujzZDxZMmXBv8hp^i>J>DyLQyftD$alMS$r|rzJP*<vgr*T(?Wfe!Dzl=f3oS z6J}E{%l6!gDpzwg{rN5}<jEB0*@1xtPAgNEP5*o}RKn**)oQ6(hmS4beagAW$UM|` zOXgIml#A+d9J^XArl0)R`fxGZ(G4@cWls2J=Fz-b;fZ%xZ&Sd{8$l5f#jhqrPtw`> z?BJ*C+ViYi7_Da+?`*FB*1xzQvf~2tUCH><Z+R|rzFkwLoO?p;?)k|g+R75^Z!@dS z?zw*TMNCPieDP=9YZ4a{59y1rOh3IVr^i*?FMR*Sk~34orRVotWNb6*-SJVe`l4N} z-{F8%t%F&YShZN+G5z&huH^A2{6@&5i(448YFnIc$qBRWofDX}AokJiEA<~+iaN^$ z_G}f<nZ4GOVSAa{>%LikBz_+(`N_XjI-4Q$b>L)oh9J4O+g{|%XO>ucbUp8?P}UOb zC)%tg`+^tVP}(N8?Cy4kFr9_`K5L~++jbs4apGHIguO;dL;QY2ovQ967g?Ko9M)eV zBmZ3Qu-l_N@1R)F(gn$1P9Hw%<FeVleuLdH))c!#;_}{B8aa(RU(1X+QeN$RQXFOA zsqSfT{=ALrjKf!McNBg*z_2>(R>y&Dx>gIa9y{gzXytzu^x*7)qQ|~_=eVgpKE9H@ zjB9mzUed0AiB|hpJQj(Pt`z*~_-A40k53$SH+N^Rzk0{X|JgOO5Kj)B-^)y^j+Uu< zADve()S7=Qf=4O6X2UEwL%qgdYuHsy3`@4YE)(`{_1f{Ld`b3<)v@_DI~wob{2HPb z{2(WgE$5!IV!GGAG^OPkeZFTijefq+-*bq2P2XCR_{X2pzWx%6Gde8)`_Qy)hO&OU zW;gKhcqty-lI6j5)|xASE~o3veaxzVw#s%3B|nk8Utdye?Y>xQ@$<)gv$D_LxVgbH zdqLkZkJWqqYqB}gTa8b!d7G*)c<}z=Iy0Svx6aK^^4;Yat#)&E&*|I~+Lk-SukPA< zc;D-&ugk85tc=m$W)dGW`(>n6?^egAYsQf`y>%bC{Nyt@?oqINLelc@xnJgWy18Co z5__jx^H<uInH%pcuD28C&RKj>Z7QGo*3D_+j}u<|Oj%^a`EQd<Q1cJ|QvaLFy3gl( zP6}En-pFewc|=SuDm(7#<cp7aTSQ&Xn)mC6ux+1zz+|0S^@>76k*U|X#imTVUB*|| z7@;29bi3is+II{7H80b8KWiCZ&`l4K9V$XnMf&pG_bh*g^)&3d8Fjqg?tZx&XY|$V zclWNl|9pA=`t`2tx37z(=4RHfoX@Y%tI=S#s*BB`ElQz*&wg3l?fcVxHl1`~oy3-P z;J0kVl%}HxZP%Y&+sod-@=cbn!Rn>Bq7_5OyJdahPAz5$f2C#OkFL)Z7CwE@`J7z( ztLSUtFS0cxcW9(MjAyU>uqkZW)cRmq!|TB_o~@{V#^<p6!?s;=&so1-YOf6Riv9Dy zFm3jF&a3(lbQ&*RzaKTR=4*j&^D#d6Z0(&ndlH)urq(C#e0@`<*~8p<xed?VGuE-9 zEq=2jX4u(YSubM}T{$;ep!c1`!ip>9rv*<v*tEanR~1L9z)OR9eMQlNUgnNmYJ7+5 z-KM>9IV`TM&ihX_KYpLa<{$sA6upuC8+Rk-+x=G??tH4-$#WrJ@YhqJvrqZvbN)8? zrO<KX*o=!wWvMyYEBU%B0~L;}y5h%iFY@FbolA{g>}L-Dyf;&+J(!14DdGFME0xFj z^rrPDsP?Z7dlgxHD60K{px^Dw-#6X-o^vcBK`XW1@JC?Vy3YqK7ILYqu4t2)+Oq2L z_l8RnZ+xHdw=*jkCY;*6KYpgr3%(g~udS6#x)wa~OS_%mz^c{#&|~ZDbKKvTx3jif zax0zj=WwO>bk0%{A^TQa<zqg3*2=Q{TD5FpZiZ*#h89jazR5QC?wpZPw&k^Y>Xl=C zXUW8uc?&WpH`kxf;mI<;vS;JMXUhcp))y|B$(i_``Rul&>w$mHwa>hHWwKZN%^6|W zE=86-xKecLdQKgOs=yA}Ztk52>)Q29=O=_+Uw-d{%J!H|Yl~NJy%spJ<kL(aF%Pcj z)ivLL&kerU+nMlbQx^O2`45`UZ?;fO%ZoGDe8<JHJAk=Y+o9bxrT&e}-gkG7s6T!X zthXfLx_)TdLYAjr*WLcG<1X7espt#&7c5^EZ;Nt0zwl?)I+-?;)p>j-9oo6ePnTY8 zycnKu{wXQqXTh|$U4~u3r~D4ta?dipS9ZUtc7{S*Jcrq|Tg9h-i*De(?>w8?-fgCA z=2wTQKRyMDZ?6@9W|n+<rM2PO`kwB!n^vzCH?(%PvHA1$_WQ`G($~yqoK0Tw?r-nS z`&-?&=t?i+UC1H+FWXY)?%j&Br<Xlz>by2Bf`{AKR-$)O(Di$Lhn=?1E=*mfs+(Y= z+E69=LfigN@4mU!1zXJSO#kZk@_v4|#c5f=>2+MsrY8y<+~jw2|6Hf`CzD*hIBU$P zUu$RE_t!E0#JtY34~I4w+CEq{A@lw8C(|?Xr~W;(s@2y1a`YPi7YYsW?(&Ygww#NX znHry~S~UNV&XlTT%TT|rL#&T1{)*+D{IL7u0XeN1ObcaSykJ@toOGdFGcQmvZO+06 zD{9>(UL8)p_Ho{w3ne0HtN3~@yYfEYow#29$Km$+1vwLzq)8~~FLnsL!|2<wQb0fH zrPhv9p1G2e9$}8E>JKWlKJ0qsU>|(x^G@TKWQX08x74NETuEHJbg^;zk79wJA7gjz zFOIS*jZ#Z=5Rkine&H15J+hbXeYRPa@W}7`yNiN?{Bk!K{bqb)2+_YAY{v1faMSYB zC;K7~EewedkE>r9v-a*X=5Lw(M)DIBKMMFAKjIsAWO;VjnW^E*ZN_^4?$_{3wCb<h zHRYI&iZK&!>H)XUP7*N%No-{t+Q;upc3jva)579=KbBcJ>fP&WC!BL%H5tv`t*VzX zai(2NK=sPAPU2UEcYfmS(wSRx?m@`Y4>I9<u4T_Upf0Q*=-V7of4(3|HhpJAkbCeP zn_so3r&yl4S)})U<4Mc?tj}iz=sWXmSo6t3@nfo3`ytV^bK1=5o-FJ<M=uy`_{0^- zeQDZ0jf!c1Ue94zqMG<j$M5EniiEC15>^bCv_E|C(RkXKI925DCEuUTxi!Jpgr5Ck zx@Kq4;-{#0wQtg%xCthz`}WnJQ0TfD{OhOax+z&sCF@pxo>p;@McKw^cjOC$9es~j znw*1c9&Sq9(Ph-)@MOPhn6}yaHPt)MG(Od?5v|q<4s<@__(|M3WFz|_Z-bX<HI6OQ zt)ABh+-p^f5cs+1#)F?>+XZWHU*e7A-0XDZx=OBbvcFvTlH)gW_;0^G=PjDVUGKGi zN8Y^Wny;edd|E>!a<47D&Qbr?#$9OH&X4lFeLne;cZ@#quq$0pP~m*jUzEAzAHRu? z-V!ETX@jTR_c8N6d;c(~wo59{_)enUGxkeXTVjoG<h{sR`?k1Lc+*N#t^1~B&s$uB ztnM$hzkX%&rb1&=aj8!``ijr_iick>-6L5ay;63!@%$5;)~N?SYx^@-$NWv>naK%k z&6-ngzAZD{7k1buc8-748jo!KbSG|Sotrn`?1_7mW9Gm4RN8ujT@8u;NA6`s>@?mQ zKXYZOW8evIdz%?k-WrGO`ubw$nN0J|GQ~HheYtUvM@`PUZ1xA;d)sr5tUR)51Iwyq zWz!C?oN=&z!FStNEl)!C=2aw5zNRr#_`96Bk+{Kx=?8KdT%`T)gjul^l{VHNb+U4D ztb1_5YVt9+2La2rs!iA%o<751!)?7gn=h=HWq0h=y1#EW#uTm*TWC>mVe6%|I5Wo` zM^>ISjCM%TU7*a7CcjPk&f8SCsI$#;X1tmqd}+qBogd=mmFw&8p7VYDTr&6gfd#EI z|DEf3Rg*WXHP8K-)BWn*6L+r2Rr-;3$Nz{+4u4wm=>sea^qIEG^Y@46-CCqDvs25d zXuZXqyvx(xGDLA3+rF>7r+OjkMcIzhZl{~xF$tS)hOT_G{@AS$mIAN5qnCnHDy0`o z?@aNpWz6#2kha~X<oC4pZS~PyT&(rXs{dJyc7Oly|L}Xo{%ZdJ_7bdDBA(vt<L#Y# z@ICvn)sGgm%=@9w{QJ3w-`(oUn<>>>r62u#{qEIi<!F(!ZASbTR6VVh3E0T|dH-2? z+qQh?iEHmRox9s~F4X$cl|n`?YhN>?3%57FjM{2CS;u~p@9P4UN1E>%Z*KAbT7Ohw z>z({A&qv9JOB?6zD}R6KbZj-hzT+C<J5w&bR@4f~efpIv_&}n(=ySJ(S#k$Av9Mdp z8wmY#wfJ;bS#<TnTwCc!Gd7<}IcL>m)pqQzOqz#gvglRmw20HW-IA<HvAOdC`OQ}B z2zYSZdQKCkZrO^59=Z{N>RtuCec6vVr|hZU_gVF4d&{I0J;C2=WZvYcn&j@ZSBqBi zi%2c!E@S_`$8z?UdD8D%4lb$WSo``=z3$^X{jF1c=i1iAIWVSgD?9($sO`7)f<)a0 z{oW1J1>cwb^6uYo{@BN0J}r)!1{?1sAJ|~bY;AmDy<~>T-zVCenYc}3-)2TM8nykN zeR`9mc71@`p4*YSxoaHG2G?$rcw4?;Pw9d^yzJ~-XQzBBS+J?+;lH%SIc!>|JIXg( z%Fb?c&?~&LR7BxxvRSmRTcjcP(hoT@N6Qb_=607@OU*ZU_i)12&-3Fx&lKJ1@s8J% z!+J@=M3sgT4lZ-Kvr{Y;KVIqyQ$4EN_e?dtp6SS|UwX^yr7HyWBvXx@JI;T)Y%Zyw z-FNEr#EMt<Qp|rRKd)zs5SI3-m@p@h;T|*FOq=hUou01E)Z;qd*|g+=np^x$8L6m) zyVv>TG4%<^*!|2|`c-G{q{ZFhwOQ|MTJ&|M9zI`du}IX<Tk&Gb%0OW?_qBdYj3#!; zas_X@A-&@C;m9M$x73?|d-<r#%d_9O_FCWjsS4}Asqd<jF|ALUpl{$Hb9+_V#~WrH z`J4Rn{>D9w>|J};`fJ{fo0Hq#UUaK1?)mayO@!B-HzIRm8pCo9w3}L1{7lbIp6=i= zH%)#1^B&$iqE3fSSj9!JTf(O<sC@L*QYoF2vo5z^w_5+K$432>`Q~4#^-t#}&#Sq6 zZ{sS~)JgLWl{{3hp7Z3~+EqoXXE4+q%oClz$Mxf*e+ygJmlo)YZ2KO0?d-BCJx8YR z`cq#1&bOFdXChk?vt7jY#-&QDZ7VXrIhns+A$q#TCw^^=li7oHqTH`jE-m_WHSEl{ zyhj^D&$GQh^7+tg3$E!oT<NQJ@=rUPUccXGea`dOZ))c9IeFZEbFD`3@{jU)N6t<D z;bqfV^^W-$`wgq7r{yDxKkQB1uAmm2l(T;h>pAP&5xLUaOKaJ${g+}E_Pr?e{ccY8 zW!c%QZS>FbT$O5AD;^`iN_)o7cSldZS{tLC{m!~tJ518yFL&0=eaFh&^cNa)3r{%J zTDm^7zPt9o`F|0)Q5th+9b4L*T5>>C=gDK%eDCc&(%Y9CNv{)b-uzDEcUhwSnV<Df zt3US`E$ICBFG8Z}^v_9~L`^rc&u)6r@WuG*+K2>U?yqZ0EA}iZP8SQmxH0>})C!yA z2KkRHXBgvME-yH5*yJpHV8Ld?$Dy$T`*PoG`|4D5@`-x=+^D{p2|JH43al*mKJuxc zY#Q5r*$=h}?=oE!Q(pOY)V*s_N}6ZXcxiUfML)a1Nd`M(-mqwt%ftj!ByCj6ICx5E z|DttQ+k9f`-rup?ZFN@c^9Ih?n5@`;yFZHBzWz4BY;)4G{Xe2M9#9kexb*9S<67BC z)6zwwr!8szY8fjjvaepkeu3^Z*2@iE6)(@V?=brqqPFKiYJ22_)|TDB<Zt{+)#cpt zC&Ki9;l3SQ%~P24=O5~ObHr2fpz^n0k2_LR)NjS<bxt=>)Asu0Y30cz6QH%YZq1~c zHH9Hhr<@YfO#RAUqy5riO0<)-n@auJyw_8Nt1f<JV!s>rS=;l<hA*F1*6(wiS~KIN zboe!m(De!Tqh}rYGJUf})8yr^0)0I=ia(lG8oz$uvp4*zh8D+Pv9CL-=Cfz5Pw_hL zzbEtB8C}8KalStu26jaq?TX!zHEE(YU)s^vY%@)_HvajvjgfO{rnnMw>)ew4n&NGI zUTHUi+2@%lWW3Ta>#7Pm8~rnIVUTaV{sqUwv$t)TBE)Q1cYW53E7>Y)CA)bwci)b2 zebw`48^?naS9eRlI{R4b@#pXN=g*IM(N`d_@OD7phTQa>ZAbq-{_^B`T5H<1yJ^y5 z)gNE|zOH`ul&(Wk+?|()!_KBRUbe}sxzn{nwCH9{r-A#@Z7S2h#DqLLTM|D(a|Q3Y zC8A#SRxi)z{QI-`&MLWWZ{=T4yz)*j(oc5!7tZ?UOMYCEJY;fsvBKhMCW@C?=TuvC zrf+stQSrG}^tbk5=-<`zCa+MsezMxd`RtQjw@iz5@A`aJkNsvGH0|uvaMNj*EiUca z`DoD#!(Bhwl@I^h@ymCu(azk$pX-Z$#uOS((s<v+{q*q8`bUex5@jl4|E>OG9Ujy3 zsp9FgciB^e8`QRcNJ(jyxc<rK_1BVZsY3tnelgNeJ!-4h`bhfI3aLAfI8DUje&6QT zjL&M$`&a(0G*K)iHnc#lAXQk>;Pyc_->QXobxhkOG7VW4$jxw{c$I^Dijw!-0>{@2 z95PpaOK^Oy*jUHJ)L$>icf-XXVe`U<Vy#O891iC>|9I*uHQe6wp?LO}lg4q=Dkn=X z%WhOnnGnoz`LV9`)jaX!8%HI|4BKLR62Z(fcXmrSZ<aWGaBpIRe3@Z;?3sm^XE>i# z{Ht&Igu(XUa=`+Pf?Liz4n{qD*38?QWG<hjA#(GgnWjwOYZmFO`qIz$46Al3#^=tP zmFsrvRo$I)-*5bso4W5fqxh3^X+5<QueF3<x@@3fmR7w%GxccRy)`$y?(Iq4IQ3Sb zNOfVY@1->v(PEwp%qGN1TBL-ObSp5o<k)8>Mm+ibJ$-p{)a`pYazXFT-<#Jv2RvY_ z{QS$GvoBBld@Ws7`RCh~jQY+Ao9Fyx%<4~Vs1Uto;wbi{KPfc2=68rlN<ipjneNn2 zX1?N|E9YFX<`0|rgS+9S?b^d@V;A4xd}a16h+AllB9}=^;A7tYmQ8~1Qzp)Sv3}9H zRi?Q~5ld=9qfdy><YYSaa-+t@*D;Tpq}GbqTTY)d`9|19ZJmiiraQAHhTLtgKNvD+ z*W_>4f4z~}=6rwCS;e|8JGC$Q4&Sa`S~yYvkinEG@t%uP3vA{b`g^;H%kK8f_xaEB z@7vVZ=G<MF7PU+9{%a+D>9}WsE+4mSW9HwTciwp4VySI%oC*`(1}qdiID>hD{jD|6 z4qy1sHt%}CvdRbAe*<@4IjAvzo!pjM9>MG1>NiX8aWZ3XKX>5Jp$7|>mX&RpJg2qX z*LC%l8+GT(dB0wNA+F$XdG^+6UjJ6Q*)KQ{B4^*Tktz5_TDJ&)r@qIm*b7l}vNA;O zU0r1(#+o|Yc#8hw3+(sYYqZ(_+BMDEA!3)^Yxy-~`Jx3Am@j_fSQ)<Vi}%Shi$e_; z9(DeF@<;RWdiK2%%>t|&^#4qDPA)hsynZjw1-oBiGVx(k+nLX-`r_oYHY_rz=0ME% zONqLn>nE_k`y}c0r{vhlaK3k{tKUUfyofXTc$jhZn&#@8vt-vDj<&s%pm!yi%lOKZ zqgU6t2PwrAZv5z4)3aEv*{mjwC%gCforc)-CFj33MK$K~oi!C+xklXle?7`FlFcu5 zBANN5bxuWW;m+VH6J}tz6EQi!z_k9!ITc6e397fAMTomk+4Z>QuVT0BUHxw=#=EW4 zKTj|_nRGW&#alJ^v4+HrZ)U!iX59GJz;;~2kIhfQt#k4Pjg;{4XvW8uosWO<CAVlU z&{f^1?(R8*ZB_L1{p&xN&vzA)65yOVr_bb$<_^i!leZ6k(pX{f?{=fuyd(7vGZgMU zu0L6PsAX5yxeJLYa+NL3{fi2`%adOfseIq(>^%9%m5(pYh4#z(G;G!Go}AVxEW^J4 z$qf5=-XHcyZ(4s{-1c<qdlu>Qk~VjF=H1(<a*u1p_4RRed+H=(_J3J3{qpSTpJz{h zwtM>R@O-=bG5`Nq{Fr}mwg38id`XA4O5Tcz`NTc{NBy%`A78!VnqqFil<t0P&Xd<Z zQ_Rf|2z<?BGw~5AKG)WN`?dz(oF{1qHXd-0y0m`lxxI&T4&FYSAna;aveQs-(JdyO zV5eh8)}Qa3ruJKkyYIEou|ijNp=U3WH}!Jf4&S{p{H<bq{}kt2CTCOwC(k~%!}bmD z!%G6cC4OG9Jt$x<S|9P=bbHg`y2_&q*Qs9F+EVqEEzQ{6YSJ8w@7~8`Po^C@R%yP0 zW7>pTRqK*l3ToEx7JSq^E^6h-_*uA<_28bvkL#T8G{x?jQKTTv@oew@YU%5I9-I32 zFlpShS~>s5p_ATu3t}3S1GJxRj<A?->|Ry#M5=k|kEq0(R(V24m&e!C^Zi(+^T}XY z%5BZ^{wb#4M1KkHxFcb^-EC3NwcbN5`ey6qDrKH}lf3JpnVY}f;yB}dYO6DX??t-# zGPVDz{Cq;t#=Wrh=GTkahiAO;6rB6MW%m?qz4tdS%}||`mL_DUc4k9|Q`6=u$2o7O z74iE!>|PrX_=bzuv@iWof#I#Uvs&x>W-Y6dc%!6yZ2yv))}rH|-^jUG@8daSw_vSs z!2c_(Q!AT4&E>u`<2%>O+TC~d_D3Y{ohB~Nd*IcEtS-Z?5&?=I0{VCO<#@-e{iJE& zslxpDidTZ>TjwK+Rs~n4l)P-x@8T`qosu7zJ*Q3a{tIrMuBS1Rn%+nLj<f!qDG+zc zzW$9=>w#5emmcxldpf;3ilwlT^^Tp2z1aV`8#6dv{>qpc1ulCc`0Uu18v?w$emrIr zX5O;FciV6G^LIX&SH@_#a_M>|?eY{p^vfwep5aA*g6l4EHg)yn&&v*d+pqHD%aPN+ z_9bz~mSyg+dn&hm)vYzpY<-$9&-!ru`kvpqb9NUVs_z!pf3W_Al3_%KK(4X<k>-25 zh2D5wKNd4byk=>&{uPetOgY8{a|;yQe*F5xc;4EO|A5^Z9`Ehb<;9Y|75n_0*=n6& z%q1aqPv#@@?EQPi=Dj-k^~8^*hhHyScs9+Fm+y)%^M#Vddakp)O*k_QZ5Zqdw=0VF z_AR^R_2Koqxe?#$Z8Eg4{(N$z^8ba1jMe>%s-2zH?NTrNWN6p#i#+z|altm3u7xda z%X{T>KM8vOKO3aX`E%BTj#p=^MA~Y;#mGy)-r2;{;eJ`6efr|8X)<S@pPSYlZF;%? zP^_JQ&x*(-mHCVHuN7a^)|;^D_!UM*<u3Qble#>Me)hPk$$eLCiLTc>Xze26;#2(2 zfa4TX-cO#eQ;p6+Jvltp#e0tFmgT<Cdp-BeG^vujzb6jv`&eW<=jEcy-9HScC9JnI zvQWO@8?$e(QhD;(NgHauKDV7_c)sfBT)&ex*L}Tb-}hcw$bIg3$o4lsS9ptC3qFiL zbuztTg6;LAR}XG~bVW+yqT}aGsroH4Ilc?F9=#^Jg)gJ$dqSJO1)E#>g(s6@w@R3B zsPMT>(5(0`cQ?*Bu_y60W0e05CR2+QEWFPwv+k*9)H+XQ`pO$5-^3$5#WB9wdYJ{A zg?UFY$DG^=n;(iqRX<g`<hp^iCU3%d#S_~DyZ?$sS(mszFm|wWKhWL1=MLlic8B^_ zVM(72taEmrxXHAkrQ@lvLtXF$g^Arly$<Pmuim_44yZV`QMJeQ#-xMXJLfrN_pcQ^ z@!aU?j!UT<Sw(D?Y+yLgKlO66?4JCrkEfUR>n`w{u&akji{piYu4AS;!%o)|C)Z#2 zB^#a4u6rwyDJFm7YtA3f#r}R4+qPRauWb8)=k<I)=QQ@#Y`G|VqCDW!N!G4CcNq6F zU%Jf5?Wj|J!7Aak*pj;ow`@<CDjSu`b?IH;EzJwJmG?r3jDmitIZR(|gXTBIeOobI zGvJ0YE3=N<#UwU|pcWH{sIE&=3&gvs3>(C|_DCGyc8%j%;2_Ex@m}QmZ{0JuS5_J= zTU1lO|Im&17T>ggoPK{w+0mQ*$|czw?;F1DW|rjBI4pa?T4AqfMN!YZ8g>hQF7*@T z0oPb=@@xE-tvJuP_c@=6)dH9D4XgOnw|1U<%N?!I+;4QIVP5~2w4%kqx0P<3aF;&o zU?=}{_Q|tBxsx64y1y!(pzrYWnS%3zMQj;L4!&m&p08*6vU%s7s{+q;3${6*dv?IP zVb2-I-Hch~e1XabR%~R-OrBE47sGzyD^m)8;5XI)j;mGd?>R44iybKKh|xb#?es-X zILgP>V1c;OUe*i)7hb)Fs*WqX6B-xsoSvBBs<-XHEWxN^&QGoy_k|W^wp=XXl<Em+ z{@(Dp!{WW;KIK#O<@^)eTjm_N5!T!ItbfJN>I;7aP5;ZS`N_I=C(|p#p!h}?L$57N zCnOYo8&Y0but=q>a1>r)yd<yb4Nt1MV^rIvSq_bgtio#!UC>hVI2{lr{HJGSt&~dA zD-PDM#0=43xupU7STAr-oW~cXv_e%_CCN)EVm8n9Wt<ay9Gkuy)PIrVUZL)Bx9RKj z70UV<N{+q}3p!a$6Hk6lD7(-)&B~@RUOj6*Tc?@EMAlgz0m5QEs#!cgd?xsFf0?<! zPIrQ><4xTQ2~AR49B#2Jjb*;BS+tk!goxtx231#`?2b2@Zr|7^JmgHRV6dA%;XM0; z&zwL1FwClO^X&m8?;NJJ^}5^a4(v&v^IiJIQ|(tzl>;mkTl*O*olf{WJd_Ul!Lse| zv}f+#Q@>0#zw~RV_$Bq9rJ`0xOMUOXS$K0of>wI{`J=J>!s4w?fAE;mvBxRr;*s_D z?_brFa676w^S*he+4H*xR8kJ)+fG<5Suydn|CPih$w{@7WNx1Ix8L|hL#X0?{ew=a z{j2tMKf3ELGwtt^s&&khEEW}>y<^Kc=k@aXf1j-$lt;KP`MSQputcTMiSzgI^Vd5c zEU9tPU%Kl^L9m&1{j7%Ar6KJh0c^~VxLmJJE=ibUxApJMm?vM3SIVumRt-P1y;eP* zbyoVz72U`8Pg*}`v8Pm(?awc|4I!WUZ_Hd@->^<5TJ+kw4bi7(aNk!ile)Z4=E-K^ zYP0=2^Q=0(4N4BbTT^^ALU+~A|BL!0OFeIVuvo8=Jne|+8dJ3`v*!z6n>)Y!9*@l{ zwW$X8*mY;I7bQ(Snfz$-w3ECS*rrHaQTThJ^wjBz6Bi422h1t2^<2E<as_+UmRc#H zYaidFzy8rve`8Mi#>^618_!2ybaohg{mZuF)?u%6)6afi)6kZ#`uU)WQF_$nY0|BF zmTI<nv)Z<By97S!c=_#%gXG<S`D)8|iEpzpm?k{^d@eud>wg^nMZe^uKF{Yfm)@R~ zcuV8GyTw8&K4$(`-VI3$-dEP<ew`z@p6f+*%L?1mr(}+P{QIJQ=NFlm?GnNz=aTP+ z-&TL9ce7lF!EOJ<zQpy}Io`Y5T&s45IVtYYxvc)xs#_>v@g?KO*Sm$CeyOUS67+iU zOQwOn`ul>kMOMF`$s|izd_4JV<J(Q0i*~fVbBbm=+H~FT$pKl*xv?pe-f}l6zOoD1 zA+&5)@4u<6VoaX*uW=iszpZ~I>JgoHOWgm(?We^j&n2&}bh0m>`}rKlgR6%_X8ZrS z&j0UT-3Fz7JMKR3yC5k#PsV=j+Xz#Uo6khM1r73e(^{QH+ux)=_fKEgTvmLNtKfoz z)O0_~yz60e)+kL(SIu<$SYY7JubdNabN2At1-!a3N99+$Pc?gS$o0#{f}bnj)^9yq zzJBvJZ~a$M8oc5!ekn@mS((oJz*Hh8T(kN4?fmDCD*Cortd)zN?38ADQ4;oy)6OZ- zLQ8Ar?yQOv;g6QtE;O8G7aQ?YciL*p|B+GMoWjhqqKT|4Ze88BYWAZ3>T@rBPAG6i z`!D;t`0Uf8akZznN33C0zj(wmC~QumlYeD>++GF$oc0(Aey_!=n#Fbhd&OjSYAjVK z%&XX8WAMjZ<<Ilhmi^@h6%WLI-kasWC30owr0HRawW`w>vEAEno6E(UQ;5?`_>^L6 zu;?ypXLrk`iY>=u*iOZMXgbwo`~8td`2@GEWm#)=S+_8WuY5RZUa@kVS<|<97Df+N z^j!-LtKag6U-PH#yc?^%e*1swcRIQAgjngSrBjsh68Al~DzD4(QK>t6Y;|FS@Zzt3 ze4Lfci%TX-{o`3$RJrbr;P%$;OH0e2Tsh@1uXWmzmi?itf{yMxKeu_8Z@GxI!24iF z&ZK)!Yjn$4k8qyO?Vna1@#v;pWl(Hn<;RJy3hxv|hNlbHFEz@u4y$rJ_VmD08SRu) zMxL*#GOkvcsfVAQwfp)0{{EL6A}4)M$~DX4n*9FfTCSTJQI0p6&lP8zd=^mhPx1{t zaqG;baPG54awWHobRrk5`YFIC^vk7T#j0BpX##1xJU<C$FV#IWGwtPLnRZcY#b(=m z4M~~4r7N-`)c#ofTvTt%T+lhA;+95dw0Oy$79qBO?xEohhMfNw-{QU*w;(Ajpy%NK z72opPbToSF7f19PnY1lls`KOah2Daklz`|z@6Rt1uS=MpcxsXK55?chZYAk#H7#}W z*F3pnYQrP_Z!<P+3;7djd(GopgmS2R+mCe1e={{#e?1bv#&OnZxsT%2^#Ow4cdET( zH2vRPs%U@O^1OZbs{LV;SB4zxH=Uh$OWE1tnm|@4kJ+M{O97%sJ}Is^EVx%^cH+AC z@6&(9#7At?xn($Grd<E0!0Do<2ShoZOt6$ac(f={vb%JmaGk)C#Ha^sjw<dJvx-fx zoxONULd@U<_c^uW3mh1lrBY8t`c&7ii@p^x`KWJj``L{GD#{Cwz3tS=Gd7ygxvE$= zL+;DeOdau#r;huSrzjo_thSt}QBbq<tb*9DcBv~(HrE;7hyQBc7<0Yw-ti}$Zkf#Q zs&iAHCiu-+VR&$dgv+|40d|?TPx9=at}+#~5PrXA-bC(gm(+iG#rJTDMNHJ~<g}le zQm=NR;Q-ssii16;FYbC|l&teqQ$nb5iDKal(K(rQ`DeWLiO8&sFHvQ1@Ne2!^R0QC zk;%K;cTRl1<K=gz{9Vg!OO1@;okH)`Gd3H&F%o;PWl_g^L!!8^SFk;7wcEP9>mRwh z-DZUR54g0@f?Lc~gCU?cX~hnfu$sk^w<k~4*)CG=?XZXKt#49jrRKD!MSG=QN^Vb^ za!gP2!_G_h*Y}2YHtTElcFQm@Y+^{Z<UhS|=bV?WpLNZ3gqAYgtYKy1xT2vQvSq4w z`o9BpF&0iH?@l>Se!o)rLusz^JcV61cWYiNv1B{;?8B_BT2r3Py1J87{LqCO>*=eb zYt}UwC{M}nOt0_0bE(aEVLV6HDes3O+wOGjnEHFw(*9-K1)PnN2Re51w|aA|xx3p+ zrdlsh;7;PKFN!i*461!B-0B~<>RCR%nK)zmgWsJ0&z^tFIpw}%mP)<<o4--h*Lxq_ zVl1$+<giCjmGqnbxq-XPcZPlBx~vhrcJdD|w@{Nhi{SNcjOWuA*K2lhOzh5=cRm}k zUh<&n*PN6rr#`-zT!yVXZd&`ND=@tf+xvXyIr{~*mA08iPTSf!@<LBte*M6rx$!%D zroa-`b&gZDbD7jWCZ*p_6<lY*$XId2y6cbE<KNA^k{@nMd_Q7;_y0MQNxx2>V%v2i zyQ|`rT=BIejYU72xfgaUN}OA7e*dP_DPgY6DNcD?Y8I|}l9jU0p1VIb{Ngd6z~FW6 zPqL0AcBw8^nj3U%%N%X3W!0afF7=t*-&uK8e&UD8sVQgO94uGQXUtre|Egl;zuj^F z$}g#GDpwKdUK1pC^-m~6>XIm@-kZ9tVLvuDy+7g1vEseP>`6Bl=13Shh%(I7dsWYH zP-`O-Pa0EpXcDWy#G{t`omRhJ=@|Yn?0xd0Kg!muB0ry(dezm($wuop6r8CuY5aWE zj(^hYbA5}SuX}V!C;CR>NuAmojFVHjqZ7I^Kgn-S_+LBy`TeAaf3N<FKgC)9-gwF{ zzStk%Jg={dUU^a1=8RVO&oHlQ{oj1uzqoEMtN$aSu6p(TQ<pzJg6~ourafOg^V{*Y z;&$n_`RNnSd<#ALm3_Xv?E5*(=PKOfjVRh;$$NCUxZdaOpAJ5j5&3%9Rr}I4{iU_j zw|Aen>&(CK^{4&MSMTN)gnvE4Ehn5dzhL)Cd$X_2b3^2A{g(=#F5k6s64QOlZmuN< zS6x1;R&g!oPyMT~YDTp^t0JDS|MTo=<PxLP<vOnqZ8no*`eplX*_IPg%sPF~&wu*# z>yr-e?Y}}%aVzSAXT&V84vyPgu`_UH!fr{8`VWl_(`^?Y^7Os_erjHnwsYF=AF|q= zD^GpvH7Q<llHF(B;h5v6<NCJ0IT}^>zGFS3#ljO4k6yawruA3ct=`PMVA?m~&BuPZ zM4!K6UXoMNBF<~|o;%~Kr1+6lKJuqnrE>n>c<IPmy|vM0;oL)}n;sljeLYodq6Slw z`Jt+Xr(HE=KTY2|XXW{=S0mT2bhS*(eK%kC^4=QnCFf_|eZ4F9<(&U!Jv_SoS5srZ zi`h&Kz282uvgwwz{?3yA@c--qJji>!HuJl1F$#$&or-8Wmwz^%k%8eO3j>1$!{m!a zQuRxx`1&0-5NQ2wdvt|%!~w<|3$@;Kv9vP#yzR_7`HkiOg(u&7d{?e$nG;eXyt4AM z-T5EBQ;teJocid1-K93uQpJKDFWp?7jo#$Thbip;S`|A#pS`Ids9DHz2FI;0wyd8x ze;wePl#wChp?c}Sym$ICY>ex|v_lWRpV;K?em5hjzU%XgnoHtZw;Wce8|?eT`<wH^ z<_*rFrVHjeCr=l8xo!pH)@j=w@85Ag+(gUZoTH$Ouhj{c*682MqV6{p?3&m3=v-0t zoV|G!_Jud3*Pc9Iy;w{C)Q&F0sME)<t=yhb&DZy3&*oz-N3Z{#Vv-YY)S5ZnLdWB) z>Aq;Mh%eHS%ri~vD^1TbtH{iE`y0huUNrIb(J#iU9P?bwR*K#?oT|EEx95pG%kaW& zyNpDvr|%7%aqg$q@n73oBWk7DE6yzXzVZrpVWAjPZHn?;#<(ln_whBS#t3xAls=a@ zzGljstod){@5Lj=OWop6NBj}svCH9SV2IUWV31>AVA!nUK82szE&lZ8-C;+>1i?!9 zs=Z?v7#KiUX0oEY)Z|sU*&rp8CGtFYK`MB7Rj0c!F)%!xoSUawf5EeVkplzkgX;fc zFW9=iUSKz4jAUUE)MuF$6tJMnHKy*bk5Te*&*QhB+}*$D`>CV`iP{sn{a2T@-Tl&+ ze<b25&+&RQu2Xv4)6CfR-~Ilm)@s$Aig1(sw;k`oe0mGlGrO!@t0vsz;hq0fUZ>^p z7v|um4biI(H?9iN+|H*FC0YM;SyzTv-j&RCca*o@_3E7J`Fx51W5UXIvBzvrpYp%g z^DMZ!FzLZzug>+#4?<UqFRHcDa=ct>k*1sRE%EXif0nadkD5<!+O>MQPW7S)$IHw$ zBEG3}Cr74i<vghyTEUl4k!5-Q=;@U7hOFASBS*^D%3S|{RZIQL5f$qVmgme))_>!= zcS+$)<vf4p`o8wdA`B8&+}`XipEccidV)lw=zPr^wF`y#{O@?p@A9^|zP*w`q}Mn1 zTGPJ$kxuLHl^@dlzMxF+`&S>PZiYYmZ+zu`w9@VFk0&!1p5Enn+S^M|WX`2sUc5p+ za=*HdTxs_{9sR7UIOqPf)TXqGclsWe-oJTYKjo{%#M15V@_kER-HZAk_jcx0yT?wZ z?djG#zs}@cvh(PrCc(L@ZMEJ=E&jIYo*|#>1(OFY;p<krZ&Gvr#LRd8-`@jgmTp`8 zv{(Px@v8zB3mY$I_y@=8e`q@&7SNbEQ)r8Z*8|ZxGj_eR2}#!Uxv3c_w%vQ8d=8(| zNvDrTJu6DWq7R<PV-8w%_UN(QY%NFjD5<w>W;?f`a{ju@&DSb3wobYB%~erW@az#M zMromhZK{#-RsU*3POQJRd2)za+&+O<ue7dkJbEi0;LXS+!VKC13f>?(`B{NIAL<6t z$;O2y%pyvsCTA5&GaXT#++OI!v_oU^=|VfER~nP$3?y`r%|M+LU|<krK!7EU3YwGs zi{!zk6&6V|9krR<SEQ_fSw<o2xnw)}Vv!m+C;TdsW=gl8JTX^tvO%%10w_~_HaXbY zCC0#T){}uj9-)n4Nh7~MSYb`E2w34C<ot!A@LKBRiMeu<&lU54ExB7P&6JY{*6WbR hJ6WNG2dp2S`<NLRWRdi5Y1|G`oLVBrW|j$(0RTCq^4I_X diff --git a/dbrepo-analyse-service/lib/dbrepo-1.4.4.tar.gz b/dbrepo-analyse-service/lib/dbrepo-1.4.4.tar.gz index 9a90176f0a093b05d89d1cd74cf701cd0730861a..3e45d4513a31a1fda334ed9ad2c5cbad3803199a 100644 GIT binary patch literal 39403 zcmb2|=HS@Jn3KlzKP9OswIE;DP|rlqM6V>Vh~drN>UwGObq06#|J8i<ai8t9`BR_n zzWht(t!39*lUr8Xu5X(C_T;nWeX3sbzGk@1?Upt5-~XGtVfw?EQt8uvN`G%f%u?hO zU||$sIdQ8j_jkSCS^xZ*H<Ry``+vImaQ>eC*4Dq-FP7Kr+r4@F?(cIyzTB-^<797O z%kcm1_MbO@ACzFbHsNY{{M&yU>MJ(XmxNeb{CN1{!STIY--pd#|L^kduQyKIy|q^M z3g5Q<)w_QFfAvA&|GRxwcP{>4Wx2n)V9S2~_`W#VgMaQ@-?02~&LZa7A9*{Y)9F8- zs_p&nWWRN~!vF7mmp;|ktNx#^^#8lk&;PHE%NKH8D+`<S|Mrys>1!uHtK9ul<n#X* z4;0-0y_bFaPJYs#`?eKdv)Jdqe<%N@@$dG{XMX<gJ@wx-`O<Pjquu3aEH>{t^D#2; zXZ(!k(d&}mTrFF5?7pwM$=;0{w{I?<5dBh*!|nL(+x`9hrjrj`iOJuPTO9E3n^f4I zytuvD(!HO9A3u5YXG`hbT^9M$`FiVmW|wWwiZRt+ujiNV_n~mA*W7Klu7|I^ZvLZ1 z>c(2h<!kaS!x&Ed+-ll*cGruGyB^-3xh<Dx=1U32FD421E|~i)PcMmGemq;U_PVjt z{7~K*dh>2`@BXnvYu2Gnwx{`RUYi|x-u6=3mgQvCv9~ueHtXf5h~N5tr=TGHPsWbg zABm2Z+okzt3afl9+AES2TW<1g&B54&9sPWtc^o*kq7L3LIQ-z;*ERMW^D@*|yA`Cf zu`$S2sD+fUg?L<WbZ+4Fxt$SoSyRP{-P+@Z@!>Z?+Ctn4%u__q?g(&D$S|DW%+|y< zFFTy~a`LBkUytyO=08kI4)8UWA71#nW15TO<BMGHDy(G^&Q?6GYB{d)#Z9lk$0gMC zK~c{&SMAqVMDMSNn7wD!?-P5pc;>S&Zt;lV`yXe@bp6FFgBKBgTMoqwvf3nPSUqca z_&_nn{>?qkBdd-*mR<br@C)IX$+xa)e$G%dchnZ;Hdy%Z<NGy&+pcW?<#1N;^R62u zPYa&^_GNm`RB7=r)j5&j68DEz!-m99GxVcd)beLCyS#`pn6mMjsm)@=|5tgh_i|l1 znt$)tGP_qF<S#ur_^S2BwDcE$6r~d8Gen<ucVT$H@agX(AC9Eg2wm8)Bw{V^g<S@$ ziB-Il=a_wpm|rOuvV42(q93+R61!}<ccoogGl@CJGS*rp=zxlejJZKhc7|e!g!}!s z?ENR=>=;`dUow7udS`K)i}4<Z&~yLynR3`x@gGhy_N|Gz^G`ZLv3J+Yo}b1NeHWJf zy!ic&;+{A6X7VNIs&f>yK2G)wHWIPjc=Y_fM5#G8S7J=>IbL*IG}|E8P0UYY`UK&- zG7Rbt@(&8v9NzV%X`Wrd%eTqaHShQ$&l~k7*j(EE_ukic!A=ha<%Eu@v`@IaNHf85 zlXMnS!KKbT-o%HAGx(RK&fdOl&i`34s}`BKvb~wrG}T8{d`Stjkwc>DJ&UCaHn^sk zHZzoR2YMuF&syQYenY+3g6Twnpo{ee%k>?q(u)O|Ps~p+y7}&LnoDc&vq*l2qwHx4 zj(@(Yuq*WBNOj!no@T+T@@V_A{^sWwLf$CyJgIvir?*-_gjf7r>v8MV)yp}VCDt&M zFr4w}w~a8Fa^k3il%YQln@E}MPwrU)hu54}yC{)m`HXqFz*k>}XSYl=7tAu<Ak#2O z?(-I#X+^8#Xa5UT_Ox@feUfHac4f~6DLLs`(`L=jNvS%b=^_5=*o4Y6a))gS-gOpi zKcIU;z0WdbcF_f00hhS@ZzfGzk!2MmXxb_g)V}j?#ufj7DcrL2Egzk<T(E2no4;Uy zkHt!FQMnrtIX)fj)rW*8>h7Fl7Q%h+xnlfPHP?oq`>YqXiQKNM;NIlS!Jk<!P%ika zW!?-fmX0SCr`AkZ?DJ|}K=g|?F0WLk{y%l68)nohxbFLCG<Tc%wb1$3T%%*|Yj5P4 zI)hjELb0Pnc%ew1@9ZBhE*`GplaybmydwXB&V|l%N=}M%ne1ojxYX~DTG2J-&85Tx z^@4s1g1XY$w-bV#vS*zNS~kJ{8?)J$Qb9f|^OO}%yOt=sa@ze_@pH%4MLD{2UxfPh z9NFQp*z6K-&Yip$lc%Y7I8T~>sHetXNI%H;&14m)J?kgQFVy~b;#FJTi^ET3XWg^y zveVzxx8&r}n(PM?-mr%qF;qH~R;0wW`fKrm?U^r%w{Dv^?-1wjsM6?j2RhaI{T!zB zA7%-7%r{|Y>H+@*Bcn-A8n*DM&uX#zZOig+qhQW;)~e#tUbgjSe|IR{S}ke6FtRnl zKjiz;)YL7`>ta~fr|G3_$z0~0$`*C$0!PXM4#qhryOeh`^f<pzji^u-V@Or`-S}d2 zb-&mxslL}a7f<}Yko;#SYgoVef!4{^W^WVrT>UQbXVZZV)djmXP6XeIS@U0DK}@bA z?~G*SCy%Er=|1vPV^8ZY2iJrv6LXmsuU2m`4&Q2LE7;b$FYof%8rANT5q^$m0-mcx z|6q8V&0LbX=)zwvx8+P%Z)hCgWb^KGnB~#1;JmoY>|-6@L#1sEt}onZ{kd`CRCU2c zrCV;lUp$xHtKp_X-Ov3Bfie0Im=`~3FqqOB>XGF3jmPuAaSta`cV+46v)3^<`-QmO zR1J82YZ>d8XQ^AyF^aAfoV&{_&&r^>_Wl>0S#xXom-NS6H1K|9SNkaZk8cFqZa!ft z!6Wh!DyLR0&pOGq$+@OgdyDRZ^Syg4ikOZl^R-?nHC=r5_{Z>UMR^s`Pg|s>9FQsy zIn&s=-t$CfYqe@n#HnrHV(#BpYDzTUmDll2_&=|5zSOp#FWSQzVz=IG&}LjP!^LhB zr%=#Fj{_6^9(4RpS}D8raxYuD&TiG?$sW_ROb+{Qv{3h&?5XE=)Mp}hZ$=;IRQ0u5 z>tqYM9=-64Gpx<r@b$sM6g$`04BqRVwt8HAS;s^#+d7*v*_s@mnBwiFIH7skmfWOI zD-N7mtmwE|u%T7qNk{*MMUDH{T{`hG)j0g2<)k%Ix~&}wg4w*1j~Cx5&y5f+{HvFG z{o|~t@Z3-H+74tg9}&O!_%*LY827FYCvWrGtFHv?SN6?XB0ovH^S_FzR^q)ZgPo7n zjFuM4w!SWZcje=R)`Xu4mM7F}zP`wQ5O_p$+A*`jmv#zC2KW4Aio%=UY-CW22)%Xo zme9N~_J+Vs#Zn2Z21y-S=Qem)hq0E22kLy2xaAvqc7}o&@1mD#zmCNUNd8c9&AL<c z_)_pT#}i*;j4~WgCzwy1Q**4+amkJ)tn=Sw%*oj6D-xCU=jb8+_Nu>s9_=c<6w`k4 zyQV_b<1NAl7oJ>u@M5#KFr%cgs%xZ_{#wnQUrZ8t&dRMdR9==mGsSgb%A)z<*=`)B zlX&(hUuk`1QgU_H$z=s<v7I*;@XnrTr?<RBfA0#Rvtb533@<jiT%Ka#wxv%)<gwO% zf%gAbS}S`_eyNl#caRLTpJcqkh<zfP&-V9KS52n+X1>mh)7xlvVnL9-VepBD22llh zos0{wa}(8%XXVIzIe)N8l9xN}kkXf5ed`Ye)Ga-^rq^7OzeaQIoSF@79b)S<79P1M zSlq30&EnbY@T|jczJA!<{#tgf^42hwS4~cr&$MVQ-^b6q@O$UA;1~B^e4TNbyZus5 zZ()y!PR(ESc4N)U9S1ITGNzoE<MU)~ld14_<~;@{>*p9${uZ05(iJ9}vTf4ldD0A= z$ETZ#+~|1G-e<JyiO!a&<gmOpR{5RZjJEYu7~hJUc>DZ;Wm3Mg?R3SCTY3xLwO+nV zXlwfd)BLy=hpg>d%UY*i?cJARv~*&BQl8}2AkQ@{Nz6qa-Le~n4_se0QS`<29%=S1 zEBu>}*)c9y*LpfWEAX~L;J@C&OI=syM9z}dzFsOC`HREw<%x&O?yY@SJ1;d;?Tn67 zaI(Zb7W3HZqVE&0+m|!1SyGnovH#Aln!vWpWe%sULzG))$v0Vji0uE^t1yS{)&vfR zJG&n61ua+<CB&QH>)vB8X512%@<#Y|meM?y^-3Mb*_IvuK6O$y|3>iwmPG+l3U*zt zXZzmmRIy~vE6TQZ@~GIj@Yq@LoxO>C7xS0tNPVd?e9u_>>yi2cm5LeS(|oiI*SW>1 zZ}j<k<NZR_vi^XDzYWw@T*~xt{J7is&OEoAhEoaUB@3IAG_EXSw%w}vf6W}<qB|{S zCjuDf1g+0Hw({xaOPuDpzmHXKuy52$HsusqwLN)X!_ukddK;At9Tt0ZPd~vO*30H| zrq<qRYtxQJmlbxpT=ic3+sJIk>=)OWChotNA-(q7u8+Ge=519iyuW?j{kS_Z((k3i z!+Sr!4%?g?6Z7)+C-MBAV?Wm)JHPgGutB-bKIT81dl%PT5$=BC<zGD6&A8*wl4VnZ zlOvu8t;}$IveZ>a;PbB1+G}f=uAbi>^*n!F)N^~&`=;mDuRgZ>+0~QL2R41&ReEjL zzo`)~d|&_CbMx6lX5Nd(QXg}%y?M5#Fg500Ol;hi*)g|2-F1>K7i0J@$gnlzdShAI zk5vZe^bCsTS%1<oIluC7?E^g>r$6GJF=yjX?d{#iZzfn4-j#h?{p7pdvEI6qcLs?6 zUh|~)s(IAq?#Of1_E#QkSJ4c!+I%MZ^s=*`#j@g<&&aDQ*i=Y=IH8uV{(wU}_v}@r z@=XnmOm|ZsY-r4F{CYKYcIejIvAsKsran(s+8@4SVS`=m?Om$PeG{Y?*gL(A_L#uv zrto8n^*meq9bbA@@|T=Cp}1L>NymoCWXrP)GDm8EL`1i-xEy5s*YWV)u5G`0gt>U4 z_f2hJ<N5ybQQMr15U-3cI~ni2SoiJ6Jj<-YrK=0CTkO1`n$_lYtmRMV(~g5zo~(Lj zxI*Mzr}vr-x3`^^EPJqPulwn1we8;*Ou2jUgp0o7Efz(kd*-^<Uv`)oy{&uUa*S8= zV2_8u9ae{DS6?1vG?tfO|0%%xWr?!imW6X(roBJ7$oJAdj{6Og3LOf~(k`EC*#1Nq zOT}K{^kCJj6f9B>x^intMSc6S>Y80@=G@%dZ!ZzOwYNC-9jmH;dd}v#HR}?#f0aBb zEKu6A@MVeQ`y(B@9b3Oh3*X<kuz8{CMCYE#SEuceez#V4Pe97{oW(aBPfyR^>QG;> zujA{~r^mNdCp3P%R(oWsK)jb$lc4R^w#EMfUAmLAcPpNHCU#rt$q~{1zzJ?iQ$DDA ztKV|%RH=HRdFh73kCwu-DPMQi9OFFy-1_3O^%<9wYa`ZukV=sJZWQx;nYoImN^iF7 z(G08hdE#%Uah^9kkrFZWane-lz}1=iKfaBSkPd7==F!-(?9`0<D?0*>rA77TG|qm$ zd`0-?Ll0imKK>-swdG%BkF&=;rU@&O1@|pzfA`SZ>1p6w)x?UsQ$$xO^(ejboshPb zd-Jj8)Cz^YQdcun?{A-R_cL#RfWgh37xo{G^<tZ|^WVeARa-n9&$nDCOFrqN5_)u% zf3)ZIo>MDd=d7q;%<VgM?Em>?j;l+fmi<bIV^DACT>n8}HM4JScJ*e9@IQtpKKo}W zPZ9en!#F`W;NrK!=C0{tbwQd(SL!^MeqgjE;^(IBGiN4-94pHHI?Yv4dyBJ{;m3`S ztQ6e)vZow;y+Zqu^?aottQT31ZN5^sXTh91<)QCpo;aCUb=UgN#%E^)a@Fc24nJS~ zvGD_&jqvU@@+)^FOq#bXt!uM?C_jg(R)oXRn7n`LW{TI9H8^(s5_(shc`UjwqHR(} zh|E$SncS=I?@ii%rf26H73JBDDc?O6mn*SUaR)5Zx*YMMa$9?cW%T8}Qw*y-zZkSQ zYEMXS)X%8%K0N!xwKSc!rj#P1?1uCO+2<5k+L$LZTxpuz^G5jIq!V%9FaKS&_R#C_ zpZ2T&oDco?{MF~wC;wyq{Smeb)SEWze{sQwtnUgF|L?5t_*uXD&-~^8_aryoG-fXL zzL9l2Va?lhbDJNQ=M>zF2+r^DymsrMfbH_*$6mhHuE>q)Yql0=esSR4w`1A)cNK3t zd4HYZqZ@xCD(wDx)`yFa&Y5*{?aYH_ZFw_xoV?8IWDu~;azk#*#{GM*EwH$l{8;wJ z%7oy(?zg(zqa}EA<fUK#+P$i<HhE9`wd=kAr7nGz>b?H|g~9)AYCMyZlZ$R$e)H1* z^KwVu*?g*}U-Ifsk(+uo!6;U1wa?C%!CCF=r<kltsuA~Fed)1un)musu4|^0Xm8Do zj=DAV&y-1ZORJ*2q{2l01UgxT^%SKpNnOb%?sxuF@=VvuTNioEzj<lfrw^Kjz1ng; zn+vR_cfFW3<=WKiTU#&hnQ}lw@vb-b#|VqJ-qUwYzP$g_iC{OY8Gois5feMPw)OJi zC+XKrHrixOoo1$H|8!};=EQ(BshNMK%=Q!O-l?Uz*5_oW(dE-6(TQCqn{C!bTD<i+ zzIe_T<Eu%UnHgO_QkN~x49r=&bg8IBeev?;C;clkvo;>oRFBo2v@&(s+Lu}@mV7b& zsj1tmD=V@$!fLirthZ<OYz-qZzvAG_E7p{l=Wg<!{cYOS(?*vcEXs`aIyALQPfz)y zR_@s|bLEyRoj&a~dGh?7m!EE8+qUJ)PW{A?(>|*w&%bo(byDCb)g?Dio`3YR>{D>i zt-14p1KfVaZfT1(;q^cJujtapFDL#PUHY`;o0#AE$@7aYec7_6@#Uqjn_L1TUsfAh z?ktd+ZzOTr<9YX*^M|(Vld(>|XtICjrN5sFH1+@HUo$yi)8pmMtz&AtVU5Ybpv$c4 z%Xyy(?wn(CNZmtS$8zn4CtnUty3FJ4Z?0qdcEg`9hl4H)oc4FuG1c98=gW~xmqon& z!gVZj3yXdw^(AQQ&JA4oqv(>9>GfjCm%UZR+{-Lq-Fp^vN%rx(eVv*8k<5`<QYlaL zwKZjfq9;zBBsO#JlX<qbL3O9RCtqpb)KhZu#-zeiTTbfy(=hD~>b!R8lBTKj`Yl^d zdBo|@iJR$qvFMWS)sSeDw?<D_&9MI)q^s=hc{t=*X64Hnv#xF|h+6h%%Cvba-L|YT z@m-pC%Jce}M^7(ZGB@Sk++yPQG*d@&Zt%&qlP+03UB2gwU#@Pr->meM)l(+Dll*L; zJMY`dpS#5U|M$2r)1Ah)N=fy(C;Qo1iBFfdFEjfs?kU{M`h3a+y;W-`dU;Cs=5N-U zXSeFD(X>f!t1=h0UiMrpd%N|rm#JY;P}Rz77k^&%*{tRkcq=pPXXWL9;;{Womn>cN z)R*(+%3F_$KAMEahUv^%x9WJB&WvrV#2!CgvR=#nmr~}MtaE23oSStt#CXZ}v`~G; zyP<WbJgR-GI@Ol$f9A6}@>1gFSsI$QW>0J5ReZNCNe$A84Xg9=n%&EDWzm<LTfNU8 z)!nmp_G)91)y~JxZeabCm83iG*xrYq&0qH?Xw`Xbxp$~R&pxXxfpuGDwDjGXVdsrI z&mQRcvQ6Xn37*23vup3Y72EbYndeo-?)%2uTOJ>}fA7{Z0YiJfrMi!Hoo?Fn%~-lQ z?&VLT{VS`uObs_&+YuCc%`ZUj(Y8hGM-RN)cvrCVp4kPXFTIbGlkeX!k}_K$s9pWG zufe@fFjw%vy6bJvZMwOxUEi2>;c;U+U;7E)^hpO7Z1LFZRIv5#-H55(f_mFFIL%gi zx#0rq8Ic5|p3q|nj(c}JN!Pl1s3GnAQ31Ulx=ZF9ib!*c{b>0<zfh;IcmGw+?#mvY zIdco{pS||A;z*z8=G?{1tJsUeo+ah(Wjx5vQQ#=NwTjF5?+h01&&>bxzwW*DFYnXa z6T8fV&mXh>5>PVvd}55-<B-G|{mb@m`!;<}%C@cD`%YYZaZBub|7Gr3-{mXj_D}t( z&Zkr1!{ejC7TsMj$$jCZ$o^+~&S#G;-hG{6H~%Cp!50@RQUo{m|9Em^nybJOcF)O8 zpEhw!RgV%CS@!+*?CcETngfm+SrT#ikI!n>|Ku*1&##@%BNQ9``|bAo1+|Q9e{cO~ zZ+1($FLh`_pGFSb_3ujm1-#a+otP|Q@lh@^e!{Wohg)mDhx0v>UwC!z@hRsLa^JG( zq<%4%X#5oLi9@3z<n=H9Lneo06*oP8@@bpfjlwzCUYH(VQpPG``>;nrs%zd6u2~K( za<8o8x|EB0Bj)TVvtUU){r}OP702Qq^9f~qV%QP%AttstsBx!t(ZkYO=OCMg>86a~ z&-e6dNr}rzS$_Sx@AbNH<Inu=3M>H+u3pdg&94=H-o$yj*)Xs32Y>b->kIqzmO1$D zd8=?csK|r$<PFK02V-mRs&Cg2D&MOW`+8k?{CcO;DgQ%%z2?2C^1W6@dcNue`-NBH zd)Dqh=%G;hr;4???9~r`R*NJD&g)@c<^D)45@+kFdfRS1!QQO&M`*^hD{Bv183l1f z|D4|Z_id4#qF&_VJ&USN-!FZU>3Z%;-__Oc!?-V7THd^U$Gb->W$%s}bEzLyX7(X! z%leyUu-#i<f1_g}*ON^fH-Fq{wXy0&gog1ec_H4Mnm;=%IV<gA<b!(R9+n&sj9KqD zzhriVD&zF4i#da>b7Rb(=dHQke(?5ssbldy@eenDeRnr(y?K7}flE8?Ufh}f_}5nP zO*=OhIo*CYV@Fl$-e1xYi#DFsynRZ!GKa%^N$uw)U)L3yl~?ck%D(#jyEFDRUz@We z7rUD1rSB+sATFyrA!)T?)yw23JYmUSt|Wgk+$8L0vQ_81r`=`!RP_)K!Ou^uHz-<} z1l(a${JkXWO4e52OwX%3ERRjK-0PoF!slHx|I{kY7dz|od#y4Gf83CoDR<`Ot{u9; z@&BhUmUPM2IsWN=#Co>#CvLD>Z#(N76VbGnQR~5}gFpBmo6e|;p1xzH3*+kS=wsHW zx|E#x4GedSNaTgseYvyF{{Ep9>n{tB>VAo{iFi}^TmKHzEhm9!rUTEGG4Ted^8QtC z)Q-NMpw;o@?YBmw2G(b*x@3EUE=pYF^J_US*6#UYOUHZ`&KfZt{!KHaCEgw?&$y<< zu4$t!E?6SWGl!#p;#FmpSvD$c4$XHv{JM({Zu0lIt9wfLvCenl2@)Fx0&6TH|K{qv z$^RT=cXqDu#QW#3U6YcKe!Efb{=%gZwufa`daR6&@ZOXlomeI2##@xGT`Z?_zVw9V z=Y*;)-8#+15A4;<+H<>#U$&d&tq$f8O0$;8uIEpDd%~tCE@}I^>i5A`TzwMvr!!W% z-r-7myItzQFJG3lL%*(+`QF;TwJABOWnHZ4?dx-orLMkgW50J##@zVp*VT3ZTwCmA z{`T3`%Ez&j^%)jFpWa*c`|r`Kn(<#;&)+^fdA7Dj@1ly@wIAQfPyh1ct!uT`j#Y=A z9u*C-u&LU*+}1}yShP=h@x1?+cJ11iIfwJbZKkucPjBu%_LAqxjkcpd$}F5t<prPl zw@YYK_=lW~zJLkaP9Arf$9c|?(c|XUt^d3CZLd4~<3d5zj`wLXGau@HR^sE=u|Igv zLOnLU`v398bLF$j4_>(UN8euNukRfHFY&j3FyFGxbzJ>R&@Fh&&hLj;hgVnc?5*4Q z{Qq0orRV?Oj-UH~`;^cBzis*a|681_jI8XnvM}}kwX>i9k2RHE{(jch#Qd4h|G$0r z?!C;VpY_%4?CrbTcUSzofAQkMSAX`W)`VHhub$g~_1y8S=gC_?Z@l$0;%&_un{6O5 ziM3^R*rfOTnA<;9y1exN<*fh9kNlp`7xvx0w)?mJA-T$~pZ{NdFi8L3e*Wi?zy9v+ z>-QP+h5xp{-}Wc|?f?BffB*lzd-(9*y;uMJH`n_wefYk6&E>UbQuaUp{Xh5c;5obd z|Lv`;?%ZrG+U;Jw{#)4Z|EGU+)JA>L4cKJ=`T7y%@Y=;D-XHJEuRi|&Sg^*C^4qdJ z8Jw1d`V!?V*DvUIs&l){Io2-`7ytaY?gLAXi`Ioaj`zQQ*)5*5y!4X<Ta1JBh6XdG z1vfU%YCI?KC6@1FipD$chkOEcQit|)yl75M`)$99Z8dLJNKBqn@dbu$m6Z#_p8QGB zD%w)8ooh1tjKcZ+^Ztk`9&B8tmr@<~W9!x9A!m1dy;J?H^j(Zktg6t-e~%W=Dpb5< zUD7z;Q~J#7J$+~L<IZRBot%=vC!cE8Uf0{B#!zgdY0qu^aTUYiw-P}`kL@n@)T}XG zczsgz&y#f>$4^F0I-A7OYH0N8*iM^kW^S_GO@blsjd#yoAz!NUQRz@<^+q+m8HQG} zd$g8aUist9yYwG7j05g<^nY}#Tbq*p$vdqyH`#ji%QbarBBx({Rm)3xF#SbMp`v@% z_GS5{JIyyAI<L1fzb4-Buih=K+50})zV*q?d;9KTx%A{0Kbw{R*dCE)VGGDxoONOM zuAJ{%e*Sv4{E@Hpf&Q6?tvGhglK*nYpd*j-fZ@taWrn{6e`n3uxs{PyOWN?fV#9T> z^zF_;s}{(XXt=#ic)3D$_567M?}~Xji$06>OLqoacXr#oa<w>mJM66C?fLsY_AD>_ z<#9~Q$;B#cYsY++sjBxyCq?W?G+))_Yra_0vwZQ7@*1Z{oVq1!HXjY|eRgzjc-Xd} zqKRwyz0JEE*~-0lIzN~Cl=jh$^~>wWjh-b<`xZO6>}s?Z-@wywG=Ao>wQoPYp5$=c z;?E(0g+?Y1B^LG^3f$`V$RyJ2n!L_BMqg34BbAz$HqE?yMI>%6Pv@;pr>{YKS3mf0 zee&hiUR^8Z&CxY}zw?z%*!kp>Go!DXg}=ID_}205B{SXUDpdiU8^7GyeJuFhgx5X$ zC4D<OJfB4D5&I+D>!~VbuvV#{=WtFBZ}$%$n>9<i3LoB`_}R@UCbq8g?5thiYK0>6 z?%vzc7nZ(OoX@?^)i^49S%2|5p_?;A?F1jrKYP|k>dK24U5EOo|Koqwhy9a(`QQFW z;nV*=kNvd|yzo`%kNxitmNq?q{_pVLP`zb;^_EZnbuRv2yt7nke}B=dj{8QNo2)BS z?zMc`l28!8IKA&c$phA=3)2@q*?6Y$^@Z!g>^~%9KB=yHXP(h`B-Ybh<fy=ThYRyX zf6o1v|4P+9ZKB`Z?oE;(d?L#peT%sK`9s4E>BKdr_77{9JxUbTx9qjGEN{M%|L$7l z<Erf<VaoIN8Ry0v+ca;@)SMskil2|YJ@8fKN4bu{#VX5*?H|gH3$^>(JnNT#BgTB2 z<KwYK4s#}IT04~p+26a6BsC%L#Okf9kBQ2M2QE5$m*Zpn#72+vQ<?RJL^IjvO*1xH z%gp~c=0dUY#pLN<u5$9<bLo%OTA>kTp~iJ$sj7)+iLp(!Oj2WgzS#MBE|b<TQxU!L zIOq6Gi(SPGZ0{Fao-6rybZ_RWyEFG>t_quH?tA4^r1=+yOVwQ*$tC)}^OI6Kxq>QI zxER^wh|2&|kxLGx$$ocq2fJ+G&~eOvZh$LQfq^>d9!cUaFjYbw`z%>U!@qvyrk z-foOr^JJNu)t<%b?>Kwd5){ql;%f`7?(AA;ySZAw^SIkLh3RiPPHRki!Ro3}Kk=QF z>Ho`o3#J$_{Mhv4*_CrErW~1ZT5>8^K#%2OE}6Pcj$@tc?CdtUN~~ymb)eqjgY;yZ znpM94RFBHpmPzwHij4WoyG!WqmY0`G`ybBjjS26t2$}fiyQNu2eb&s{`A@gouXbuF zskwiQtK;x|=~>+CKficbn>p{p!^Vbv#np%6#jCdca7#L4Z)O+r;rTOnOUnmGB}_Bs z{@=BDs?ikZcISUAO_>)`WkoWwgg*8#9^CkGxykk=9cw(ZpG3(2SmD?;y|;Qw!39CV zI_~10>qlmv{jsA`EzWyVqJBcizRvJPi~fjRcl18fr_6X(_|21@=U)qUGubW-{@Z)x zKyBOe`n)FvZuQQ5C)58u^*_6Mj*b`evDw|eJa#od@669}=lh=iPxYdd{F0Z^lbe6d ztk-<iAhLG;)}50Z^eS?yK6Gi?cjwoO{d$`EyEN(1skFq~eXCD3NBIlQUFK%DXp=*1 z-D=*0N48nNIC%MiP;|CeNZ+9^HuHGn6#ga3THgJ-#=as*;oRGQzp~S+&ImtNxc#em z?*xfh$;9*e2a49lmH(c$y}7m{&~`Pm(Ah{U#g54z6xHwS*_`0}>ehoznv<4qeD=TR zivQjsckh|LYm4Q$oz8cvO#2b^@bdO^|0fizJ^VkkDfD>#k~QnH&)DCT?en|8D?vfE z@%5wiQ|^@hTfWMN>DS_wjB;H1QyRRAlwSIO691R>{^|!&kvK<>mt5O!FRh+;Mj^}f z-rVEer&5EfjNO>KkC~b-jrBUAANRoA_JQ^6cw--J+r5T<^)udARGIBR?hw<si+}O$ zy~k(Ex=b$YS@oz$_RR8^?PcGVoh`T%DET96Yuv$uJ}1A1^c~!GO!beYvvII#<YfM> zPb$Ca#)gVqcX5sXwqu>>r#Jk+`e$9=J|`}fd4l1;tT%G$dw;(^_U!nKx~Xry44bbD z87^0vKiPK6<fX1#S<TLD^{6gdadF3?#VlVh8GAW(?-1+Rd~Uxy^QAvc<;K2$|LA_( zZ_lRjZ&T&(CcQp~d;fm_&eqF{DJ<NvM{BCwDQ=ddSC8ztvdGj-^ufuD#%llTs*7!} zvrm54XYc9X^kY*<=kW{AOD^~D<O+uzS1NW~b1Sgpzt~QNy35mFuAF=3M_0J#6IQ{X zw?2&l$F9uFvI+Venawftvj2{GeNR(w1{vC4n%l>ruxnF9nby^?J8NBYf9i2n7d@Ns z_1)2Rfo7#!XXoi3{x@gS#T8+@uI9|Y+S0c5Y@p()<j1qwQ)Vsuc~|F?ljGYmh0^8z zic6;C7cmOGG`{~z+VirO-rX&(`De^Jq#Hh_x?TDe%zbahR-??V2exuG+*ae<w9wPj zk9)<Eoc@Wgi=VnoW1Gp9a<wjQI>&nVLkqLkc&l7nEcxqs+L={T1G4PyKEL>q>1p7v z_ix`E{oQVTsijM!|A6qdEfZclv2nlt&UkHag^>rV^bD>q2mO}4>hym%;~V4NMkSVM zEUSF?G$?PpbfSIxd{%uuhD{F_3ThkOUf#0x`{66ymvtJ9eo8Yo^Bj?$(D*`mvC_2V zbw}E5m>%voU+(<I!1A8V#+;v%dZXiQnc_?}m7K&)ZTj42|GTWTExzGK$cqQcb3{rK z<IR}%T%7XbWM1T1pCf_kR=i*BpGu`CFFJbve#6PM5Gi%_v!`D_dzmICtu5?1L)z2W z(@srNXy(t>XBR}*AD)&iplY!6!0J6x_b1gFOji@HHZsoqy!_He?ic2(7TQctO5AJ5 z)m)kzs~bCc{`F*?Ep;;KEA98&eN}sY+$c1L=h>O8yt-VW=G_f$Gu;*(Pq1AcP`{`6 z>_XQ?F;(e3|HDNBy3<dccs=Rox3p<ju7uBtvDl<=-R@lJ{nYB@i(A%zxh_0!%hxlK zlXC;rqpZr6m1REsv45>u?^shUSj!r5u>V9^+RuaRJ*gFMBiH;loLy#rao;ZA1Alxr zB^v)(Rq|<vZ;;mK6TuCv8g?_vHfn@!DrQ^BS<<=W*_2HM>2Z-OSPz8=UAe!;^Wu$% z?Kx^HPfUbG_J-F;%uA_zCo#2qes{WB;ml-KO}*yy$r3!PCBO5<&D0k89Kf<`#pd3w zpZwAljDOfOYApY>KMs<6{gA^(`}NN(b@BaWYvNLFKMv7;;IQw}Lc!;jqBX2nw6BPG zKi;-{)1t?US*H#y-}gP{SbIler>5%rZ|ROd?Bid_IM_uTkeGYbAjGIr?)~v|j$&JW zED&{ky?f#1+cSbYZLYhBE$3E$w&~Utk2h%{ylsusKUVr_nO1N5Y$6bI*!s=HsCiYw zPH$$dtU9(^z~sEHa660t?$QZ4YE!2i{p~Cn`J>e6POD1D%<exu2X3(NdQM~bnk&(E z@5fCRndckl3H(|ne|FkSnfE6X;%j%Pm44K|*{pGz!Cijuv+XnH{8y8eu2EAy9U8L4 zX-iG8BG;#G0g=*Q<x$K3y;F*6TXI3@uiT>(WqP}xf2lsRsvybWccH4#?3ADTo;cOi zow*b0-#xQtiPCO8#g=6*iQhxTxI7sRcx$#TJ=wmzjOQuOnc_UtCks^M^tas<$o|dw zW?JmxqN1xgJ|(`bi{sipDv2wJykGZ5;&ut!!j(eDeouSO{_+Oz?K2g#Iyc{ZAHB_W zk@dZn*QIMq-njp3deLU}(0{u|myg=3rB}WMcuDDfG2UU!e0YDc^KSQL+>I}m_Q*TV zf4xF#aSBWOnf0Z&rS2@;7V&=OJ==dv*`s${Y&!n@l=;PGk%o>JTx~T+4zF6GxiG<~ zeOBtrZCeBvAFG(pvU1ZVjiic{(6_UlPs{nQl9tZcyX%{i_0Js(R1Zp4NsEW8uf06y zmj1B|HJq;>xK8^q=Z62zWqxniTooT(zIRgbtd1Vfi8G5%Ml7#aei=GF-h?wO{QfiR z^A3J}yZ!`SjoiJiR{YRfzyEfXD~>hoYmVf#I;Yw#S+e<;w#kfJOl6$wx+Bs#|Ll?L ziSRzZ(|@TXv#jT7pVbP_F3t$DWapfJ$XMg`j%H`A2@<c@l(;QB7jaba+-j!ns_9dg za~p@;T{>s2rum`pHOX6k{^8Y}&GKN$A<f*vebd5JCx57vJpIjcN9XtMwf9REl6Zg2 znI&y5?D{3nD&>*Oz8PwHN?A(_K3i#h`(u5BYr1}#w6&qq(%cO9#h>QvzQx6zXuaxw z%Hc#et4+%mIbKxTzG~I&PRrSMK5t07SJut+TcrEt&Wh^aoBfW7?~Y#UR?0XzA?#^K z<Lxes&-p6qvnu!fT>LJ{`^3lKk2Os!;a9oSJGH+4`4qkA)6tH6Q-P(Nd8ShOP4BIy zv<MZ>S3U3I#i|~#=~T+H$4^Vvoj!fH_MlC><*ja`xeqk<7zJGw+<CvG<m9jAx{Ln) zdN%!>i_`b)@?y7D@#p3%os}>2TKBBK?_H?C6V81l8&ez&=ICr@;a;e6ozwn#x#hXZ zo*Sl_T5h+`ZvLI*D|hm&_m+yJ%YQrnGO!jbk9>c;@?~b&pPd<ne#d9~I_p}^-gLU? z<E+R#cExuRogQQrwy!J|_pqKXpLX|Yx|y$H?@`sQyByrkdwx5mQ#C_%<>I%=wl;=c zQ~gEy7uU-Q?+UxMbA2iA>8x;0b;gMs9xea%@M9%gb;7*}4?UZc@58PfV^)n_@zPew zeMg_IA8)MAtNoA4-`}{f=GF8cd1|w#e46t(s;TK0({`C<;qy8-yDUGzk#8u+{NH)1 z`sJf`ca3+;#M*FP<2IQhEI5h#%~SXE2a{VC>z3`?yN<hk*FWdUg{5ELo;<AXy@Byr z&%B;37bbmk2r8Jq;qSyINzVzAx%206oNbw-$u^IR^-2n#-|Yyl8<QTXEjK&$pfYBO zP3D^v#)~@Y@)ISMH0EF7nr+q<G$YCL`1Z8!mA98W*zula?DjE|U(>p7<=tjc+o0(& zq8(=@rrR=jvaPx9xooaWzL2EGucwhVkBqhih1ZK7Xt{J!ZCT;V_>GKm|KA>6<9@pF zVc{-`Cues3X_7O}^;J5VrJ*R%|CQnHGxuZ8;kQ<-a%=gMD>30^+K*?<x7Ia=tXY}j zo3bjputa>7m&Wn)pVq1N_}ee|JWulV&qaM5GV$GKoX+#Im;Vvzy<e3lK3yvA#fLr_ z_Gbrfy!soKqL|I3_qu5Di>h5K6zopx$QZ^P>Nxg1a#_h7RpGhM-+x+obf)=kqr0c3 zcbz-==t;%j6&&{~doMlye7lSN@00DKt_-TTPrcxnyQSXyr}-f@pF3PLxDq#6xhAK5 z(Wy_FoxJQ*rHc@g&-8sWi#4PpBo%cR*Bwr)JIye&`<Kmwy4N4`ue{3VnC^dikE)M} z<o>s&XDW>juDR;Je!k}dLG=zBorz_Ezm>`^pWgOks?tT@x?P`p;+LtZM#a`eK9Dks zy>a!ce4%a3^?Dr!J?B$bjpt2eR_tQ)wigb+q<ceF@%pPr`JrBOcm4SNM0>rF*_`Jw zRhhGoo{p_nHQPOX^N&jn)As(dnm<Q+I<Kv+{_|)To44Ek_w0<wI<H)m_$+7H*~jOv z9^N?hsdV|YEVYf#ZlApwHakr?@9E0FL2G49d%SNw{d387bufFU{+^?jxjjFux2JzS zzTah03gh<|_r#ybi8AhzRLZ+~@zG2T9sM*L@jsj0`qGoW8pTY%oG9Ts@%)>kF|*sv zjBl!bJn>OU`fzQ}ovE3hl}a_P%4}nGjA)AtoTA#6eo;V4+jL*hWB+x>ws&5g=QA_@ z!kn#Dr3XK1f885&|NgdLdW=ukyUhRG`u5Mk?K8Dx*eAz-{+iIJ6ngr_@_<*BFRv>_ zRxe%V9dg;E!#nWO(FyaMUA@)rsXf#44L?6yY{L5H^jAFR&i9^KCjRdHn%Y^Hj#NaZ zv5C(=pO)nD;e0~eiv{s*nTm#0GvgXf%1&=kP`M(xmR-(wp5R88L;B@E<-1k4A6|Gy z{?CE(%=H^Taqj&wV{_{X{Wj*i4bO9qXRUnBFym+Jc`4QNjmp`rUi)40oy!b%+c-^n zF-!EKT%dD{#|ie!+Z5UwuP>9oe6>e#rj@wuiM+&5mRTWriQZ>^HSunIbAvBW|GdQY zjhkLt{P*3{u;PTkteZ2mEel$YOqJWR=<KFl-)hfwa2q~;{U|?FT%q*s@5%150ru17 z3mp&dev`q?SW-DrOzObWBVimBF<ED89(*{o@HNw)6k~sJ3xBDt^A35`uT%OX&J``L zFwgK7%jB(`-1|>NyF8OS`z@1?|Iyp24?ay?9`b=reYS-DS-pyRJTGTnz5iKm@xqN) zmo%Gr?Y}qG_*&4CU3`9q7nItsoH#b`{e<>MsmgnMJtsDW%Gkek+&m+g+qB4r`{M2w zt8|@w*T(NN5Ij;CH>o+I^4IiD3uf@VwLJRjTlz^G{ckE=u4_N-eAg8<uW}B{_C3n_ z%gh3&m)&yZT6`l={MQq$ms`4*8%Hd^V0qv|&Z6x`Ys)_6N7yc9i=X!BXVBbKZ+otn z-erY?>iX{<&GMK0n7QT0yQgv27N+?>{_#*l|K>+w_FXJzr?Kr2xhuy0+vwZPPX$8f z#cfR$?)@p2yQx!htEBy@-=&nggONLTW`3R|_Aw^bXU6+Zw~wM6hWR=yi<)Nbds&gx zx951<JLbdLZ@(<5*xP1p^v>u1JM(qr?;})#E-l@ws6RXG^yI$YU&~D139nuu<fs0x zsPxjO%l4NWrZ1oEWszWc_foO^%=5h(nrFl;H;L?O&ifmYp~B%%|Aswh$JYZk@@Z4< zM2Wk<NM+T~5i$75BpZ1C$;QgSi?!aoTjt-FTsNcqWZXxVJ4g3Cib_8JM(%yXTG1W% zDy-^R<;*^^Pgd7@`|gcTWk8XMFsp^tbXJ4UO}UEscLh(W&A9bX_@_Y-JHuZ^<;8~{ z>h>SIRB*y7itX3$P>D2S%jfYc+8=TLd3w9a{J(VM;(wC==iYArr+Vs1B(IO^xhG5F zX0^^_tem+^fv;3e{zOh(8&Ah&nY6ig7S0Oybq$#B@0qyjz>^F8@e4xgF0}h|I{q^f zZp_)J>)o)wiMy`ICBtUo<5u<}fyp`|hYYWWDQrCO$8GVwW1syF#|R6?AA6<}v`eF} z>C@+BGkXKg?jMSd=JKqY;lJwSjW0*P>#I$B)IEXe_I%dH_?#PzMo%{_=9{2)n%k;l zfv!r%yr0WDoB|g={dJ-6+NTYVdYF%WYMro4r>UFq`OM7)0^K2^7k6iuh95AQswNld zwsl|2<5OSq>MpOeKI_jYw>5M7NmuFol#WXwFWhHNQQE<}>&${Rhwog7pF96k63>H8 z!j%EXURK(e{3!kPy)th`M8L^&GYbxHy;k%&ciOUB!5`92Zo7H<O>A4hNp{U8Jx?z* zcpWtn-ze^P=%K{k6}y!uX*^{7mwH#~W6HG~TW*>w{Yu_;^}b1<LU454=@`bkzl~y- zqlAriB&GW57^fAzEB!KEdhVu>v$D-Q_sp1*n)OcNM9VX=_ZeRLnrWX^U%r-^;&t)* z#%=ShV>(zo9G3*dq(0u*%e-~z{>gV9o{ygN<=367Os)53Y&+lY$f(p>mhi{^R&UMY zh1Zp@bIZt{{Z^FI_++Y;%Z%(O&7k8C8lM)p9%^PYI?PhWmBf3A_u=k28O>i_YSgY< z`*O=!g{;0Dp($4n^e)SfVVe7(U#jKIv&<_+fAtq7p3O};5&AUzdG|vxf6r;cK9-8t z(hTPAd$;Gvj!5UFN-N!a-a1Rm+r4tCcPX#?D0uKIi*M~5tzU<C{CKW=wLoW1+|o^r zzBvUix9yCK5W0Q$L6iUf3w6gD`0r)S{a<<LERTwq_?Dx6VvI5=ZWlevVjL2_#U4+N zz5e>AC_~`m&-Ry(GOwSfH?QTqD_2i+l1?XEsb`@IXGgdE0;7`#J`AoCTZ8A_b}Zgq zoW`GivEV}MRS~mCF5WBm2Rc3IZo7Z^ZIiF?=TB2U-m{T;rrq(b?ql?0OZR!}nD%^r zcF*`od3xhq^F7u#uNAwOi|a89FT7j4mbv$U)S@GDeI5&p|3prXzjAc1>N>HjFT*bD ziqE$&{I_(y#MX<QPMk+%kF5w>d*fBX)_Z@f4!_?&LpgijjH8MP3zuE{5)dky5l|bi zYdOFCq~@~6o378Xy0KJE|IF4`bL@*BvabJH!ZP3VNnu&EZ@|@8ez%J911HHYx4%*n zzl-&#wVL!|xkajsVchof8`XI)t($hkyiYdyY{5zueued`S3eKkX~fI1*eTs*PV64G ziiLNTuQ`acS1dJoox4t_hgFxy?uLI_oQ}-8=^e+MpN2UKl>SLS7qNT!os#EYYWRAm zGgfkX>9c2@tXltJ*90Dsv@5OLTDy2y<{2*NIepAhWZwAzdln5djYs?W|Gw@y^Pum) zp2Mf_7kFpXC9|89<@Z``d-~wxmQ(jH9%s#Jx4ck2!F?ka>)OY+EOra&{K&0-_Dx`Q z$kMO%mH&&bsb^Lx>CW5m#9qMG@YwvmP?OH6_?BPS+h$&3SfCv<-9103)Ff<&+R<LF zZf&Pm=5sY!@92Ep^sr08AcH4-Qsz|EV1tgrMb<t)&Kx}+^S$)_0vQRmxJGW*^sPS< znZHa>3RrMrO5Q@1{<zC0!~ckH>$EdVv)U8G7{<BoY&KiB=$1(dA5ye`>{?LPbb0bt z=2MGWkJ?@+*NBOq8Dh25Nb9}s^5=HHW@~?bmu>id*S4b`M)!LP=J>rxZ?)Vzk-KQk zz4-q=YO`xTsLyOvoO<_I<oosRSwi)}k3wTjq93zrdlg-|y8Y}?-ZQ!96wgl*J2chd zXxVO)y3(7azKz$eZr2hoEd5pfZFii~#jyT;TDDo66%RLdd9JzHSm3ED)!nJPGU4d% z83wat`8<_<uUtufl==B7>xCk<YO!cL-b%@BHD*`xPfzo|{J^r=*Eiru^8DK$4^}K$ zm*IKinda@eje<+QF{?`+iP#~$W80Q1J9E#n?#OB}JDTdivgne+6`gv&U`gKii`Ivo z)IRUH_~4gKr|3kcK=*H*Mo}9k<!K0cUP}8MJahHu8Ru$L9{oH}Q}e_zqOIQj7{7#F z^Ms#va=lWjtk!z<TzB<1d|9NZa$7#f`+Ui+C#!<5K6cQ)cA(Jq%crj|UFW`+5<f73 zXX2Y~C2ijIi}reXKl>WA_fdbSX27)=KI#8m8&_E{nJvESpkgpPq2sN)SjVx57l*zu zr+qV88)dZjbD4K_PqtR!Ws~PymgY@;7O~7FbI<0e&a|6B&S#dD&174mnO3=tGxMuz z_>p64d`=hDy`FTlE@^W>w)@ocH#mE*uFN?RB^`S8K$>Zw+u8rTzGBP09@^Y~FxmdI z?74)Ga{Jw4f6mA?;x@Y<b}KP?<?lJw-7NMmwNg4?o(X#DGPx>mabDPGE$$NgI<t-f zB~{UjJ!U>)3#KO=xwHA>mT%tkK7KTow%>Ty@Y5Q_cdd+@^lxwY5q8y3!tDDjW^ZZz z#oPxxn%0<n^$I?}a;5r;s40o@9n-F+JT2CYSaR+2i*P<m_r2R%E%NF^UrpWZA*gWS z_^V%=<4)fQGu<4zdP3A6BY`NdsMyQPSQypbt*y_Dj(5F&Ra$WAzJlD3uJ=Cv5P9w_ zviiWCrI$^1^9gRY`S`HAn)~igiL(#W1%95)+*)#SzMDg4g_qzrF{{anjSdUtt>qVg zx^q+Y*raERXImU~+#B`7roCpu`IX*>1M@FtTwJxmc3FqaUd0TfqA%Y4(oeU{w$CwP z><bn=`0$cnGh5Y?YIW1@=bubY`!M*6tai8?&#GhNd4MT>QF@O%?{aSUr@`iOeW%jv zWdBz-?!Gx^)A^0F=Q37u?!IXmFn#Cjxs8X4$~PMeR4|&yo?92Y{Mw2~R?qca7Vk3< z-5wNo%zO9c%CN7dA7>o$X#Tj;N$QR2YTdu{?mb<#mgj``KE_|sq0y2i6_VmDN_q@h zB~8n1KPJ8^miLf#Di-c5RhSaqZf*1PA>Zo7;>)f)UA_6=yi+bS-hW_Y`4isq=YGV_ zf0F<IezrHt&z$ovrtRm23jsHO^zRVye=qpD^?$YUZfmZ~ztX>!PD`Hue#Xt{FaJ~? z&S%$*4J_Rd`|PJ_fbP`Z`n<UdYVO^rS*0!G@youMbt>DQp3^c$jdp)O)@SbUwr1RL zVV3vftue`Zy#FiT-<W-@!#j3|!Q{@bO8IdoHn@wNTFu-M?sigG&f$-4=FO+`*UfI) zZ6dq-i*Q+RLj0t*x&Lq64H9`1<ac%MlK81U2A<U-b64M9AXL#@aL{yHNLr_tse3$^ zjls42($u$Gv>JuqE{zM-K7apd&J0PN(8C|=c3plc^0?4R_ie{6pB<m&j?K<`Gn21! zck<oekxTfWO?`4FrrY<Y_QlOYw#7H+?>KHY|ICB0n%v(zd(57^`LwLwulRh`smCQk z3~o|7y1!gcrdjOlGi^@M`t5SBK=;{l>!l?QC%V^v6a5zvU^?^8?ge?OEgqIl&$##T z-uh~Ba9NL8gvpA!O2)7Hm-G+p%=*1K;fDSEcPSor@!BW$m;OmFmh?RHG;%_5-03+& z`%mv(_|r1yhSCLNSI;v=ACo@*vS(j>Qv3h%{x|b`qRp3`&^aD)M06taTh^8@`WH<e zY&>Y=?>9m8@)_TC6=BN`oeGJV$@O#=moe+x`s8U&5~`B6?Mo-H*Hua~=${BWarlL5 z1lQz3VO6h<BA*uQZTQkssnfdhl2F_h*9}2;w2$sBIcjSd`|#*9Wt-_%XPNi!InyG( z#P72~73ZrGqr62fny*awZyDcnR*d;nSMhrD9}nxU1w!3#55;i4wL6_7dwa=>8iD3z z7ylif$#b^r{jIx({U3GLT=*OyHEGrk<Ap&9H_m)vULc`iZm4#1)sD8V;OT`D-tF!i zN`2e={2s4lTXX#N;n@sJ^;?}+3uGAlZr*)%*2imyHa}dmjzj5*uEIO9>#G-ii_%h0 zaa4A=VC$9T(6%6XUwlH4TcL#VgcsRm&K*-0t?Zpu|DfOzXZR(y3&$nqxykZA={{rE z^ptUishq<xg_?VO^Up4_+{oW^!y>xQLMUDC-sX?Wah5-LXF1KW@%A|uQ6uhp#N(R% z`o+~rB5UNOUteg+{rH-9+r_mT|2^mVuFPTSlM@jbwA4?>_<3vW<=s)sb~=65{FeCR zfPVFFSEtx}>$>?0r&XN48y@*VXwfQ;gk=ni+b_?`-)(8)cVefKiW<ir^&Wd&hpeWJ z-j90aZz!u=t*N#Wx?>zQMI!OkMGZR}rzw#p?Bxrkudcr#*3EOtC)wowdF3wsS1&HU zSn%?lzT(?$Ys#k8?fw;>-(7TV&c%b@Ql)AR88yB9|MR@%ngegoXZ_Q)buYhG+__Xx z<KMb>mh<1wE4H(oR(F0UUzw-l6VD0$HRpHoy<7QquF9V0r<YyKnalZem2sraQO>nX zCG@@=E`4L@@At{{?(2GMx3i~0euVk7u0NvnL+euk`>cAQ2R6-WVg=Jzb(zlazIc@B zUa-dFt$W_?6ZtYTWOK;wn^9$6SG{&kz7zH{a<z<W;qwdK5$~RBEYkF^u6Wp`oW0t~ zL^F89;?1*c&6w02=X~5N&9=B;X?GgWt%$67dS|z?{`tAtt8kZkT4&u?kv%j00xf18 zUM|}#aq|7d=XMdca+U^<toyPy2{_yLx}7}uEOT0!VZ!<C>mJ|!-TL!n`T<?}j_>wj z+EN+mUZKHGPDV+snirWqbO+0>KI(SQ?aOJQS2L_GznHn0LEwT#?PfLAnsgJkEpybx zzcfvpuKqHaVg7}He&*<|7*Rpj^U7haldk)0s}a@T`6Y3~53~C!m-qF4zprt*B%|v4 zr+)#JZ?*>-etZ@vZSYYeAp0|G{?C)^(qrXMO`IrR{phIurwr~o_f->WY|8F5-ure| z@A7-$Ua6nqSuKe#CRSWX=_&iv@LNEI<$JY4vxrknN#bW-mmTNDc&6>CN!==^W&gY9 zxNGOjaPj*2Hmtc9Q?JbNOm|Y(F~91=5F6JtlkG!h@}fr{jFubfe_A4$#PlavTC_0Z z{7i8*rJISRZ&<?aH?5ps{lorg;P#M%*<KU*)*MJn`uU}Ce%M0MgVW`^A8ETQ3Qj+{ z`y!|8_0!oOTK4~ocq&>ck)D3Wr(ZdeVde2Z>(Vc#g~h#I9yqc85nt0HvEK%=5qhig zU#!hK&X6P7)1Xs#tlp3LxY=As59zw}N3*j`^1iG*{!4KGtHd{-+B6Tm5_vcCaYgd4 z(+gieSo-nu)>nomiq%qwk8)NVz3*P~XT^OsL0dh$9ULZ`v@*ZgY?eQhR(-0udH17x z-&bsHdd&LawvOo0GYeOJsck!TYtO-7ub%Vxx&*(C3S-cGnt!g#HAhG*<wr2{{Bsu) zY9?J;;Nss^csXyChsmmEFHLVg_>z2Y+oH&x-p=@9^JQvgrfTZnZG4}u?d_7<owUDw zTKh_y@(me_m6>muufKgZyLM}`WlE4}!#S(D)ovU1Z<+Nzoq1O6^HV(u>!sJ9pSAg* zFXvH}!-o&=WHWGHpf-Ei@nX|?nkAJx+U91YX2qS0oaffMzj2Rhoym?FIo^I}=9L`( z;l2O-oE_YW9C@cNaqaZJyP_b4&wJZSY0uy_i&p;H^=<C$EngjsQ(ph^H@&o?^lNUH zjiPhr)m?uknT5VS$$oXlz16Snmo;gYM8*E;%{ja4Pf+NsrF#1_jwQ#|&gPmU@T2sj z`6iv$pS(>q)n9ks4?gJGd8F!<r>XartH$$k?GE0odGtPbd97>Bo<CRCcQl>$`+rGM zU!PTn^K0b!JC`TUJf=9YI<@xa&&ZoA78=Wjy6GtyFG+bRFwanzd-s&GJ{Nwa?<c14 zP2T#4TTtCP=vmqHHNMKp%I01#&rN!|!)xBrz)vE1la`lGx{x;iWx;Qev&Lt`ozx9G zwS&G|SDsNY*j--J7A1LZ%8{Oq^(>pdy$HKEed_nrr?rul@i6AkpuPIH=O=glKR?wx z?P;&(O=)4fR^zny-9^Vflz#mbYpA)yyWmL5p&B`JAFip>AGK&Y_^i1rR(fcOf=zly zm%z`<I}(>g{g3<fO(>8l>Q7eKl2=by-<?v4o|&S5LFKmC<>gxzoL?VwluOCBecD;3 zy)3S?*}qkm<cgW;yWSOh95(6LS*A~Oyu^!tKB;QGk~?LW`rnT~PgZX`v2-%8N1UF| zp6)PrPE*U;2fH&Kb$jwoo-${OjM>|Zb`$Hr{1kFXY)hJyJ1Nue$79VIZe|I0tlurZ z^e#)?iLXpi|D;*kbJf7l-HD2x*EdCY1iiD2^!P0D#AWgM&FiP{|2%8seR0Ee`%ZrQ zUvRzDh&}s9^VgJ{GmO;Vl=kzsroQBgUzb?bEZ{FV@9T#ZH@7Q)IXtJu`JQ>*<%U0P zF%6N0Iy15sCoW{$Y%Z9Vy~%;)2wUQ%L)z)3htG2hsB;LdHs;>0-Sb58k^%c8{<rty zKmH8z`x2qCUT5#E59v{PKQ<cA+fq2|S;%s^8%MrIY>QfBdi40u+@*=jPQQ5c{<}bq zr|Qp)ETzs5Mog?{Cg&{QzGg;Vvhi-?{~xWtscN6(D-fBSF8O!Df@g1zGJkX0BKW>} z&id0YTAEDL^_kwZ<}7L1>};R^f%%DfUvKY|JNJJSzx0Z~?8!Y>+u;1fn2oVM{r!r2 zzBX@M>sO?FI(K1loRIg|LtB%%R`0kW*S0{QAwI~+Iy&Wi;i9xAmGc#D4Cz1DWw$%4 z+fVf0UcQP=f9-!Y?hV3KVy-iNCthI<KEE-@^hBH0!fV~{CbiDAFlns2J7Y2Ll}VaC zOnnMnt#2N)hWugtC(tTxm!ojp%Cq&O%aO$v^Ej$jEpQ8sn<6J+9=?_-SZ|SbYzF)O zNuot}&dE$(fAQ%b7Pp(Hm}A=lXB7WqxG&MM<)c~p*|+Dj-c6}cIQS)eXTih6M}u8w z&n<mh9eQ^Eu0NliESD_knN~lCQNA~Ie!4@z^vZdSY#&bA-2IuL9)E8;PkWi1-_j%R zk4w-0C=z_vmbYMkbnT@1w_s<oc>cBJ?UDU=^7rn|o6ALNk3ZjSUA_DFeaZRL92qt| z^W{HKzxeU~?dd!pf2{rWZuMRHZ{_^_-@j*BukQSGwx(*kob=A<-CLV)9W?vDvDVnB z``M9gAKFe|+%e^6eMvz>eR;g>yBGDD-}c|S{WI_TgN*w3FJ2U+i=TQcC;N8auX8sd z!3VPhxIqtQxh9~WW}H)QaA0-tQUB}H@7t*D|CwCh>*vpEdt3FM!4c_y*}1uEvuE$i zfAQw<TaL^}kDY?*vp;ZEY>T}v%Xd)i*wm@}S}ba7S!FU~OmAOzdn_cjiublzhURIe zJ^3CnOx?c)m%ZJ6tT|QcOy!0I#inY7M;?3GFK;f``5>G(O!~?Si{dI}aq|ogu>+ZL zaV4{!FP|>H_H%Y!;$G%}r1kl?&aVD^Y`2<;a7p&D^?4o~JNVCh{$P`EWQH?~@)`a; z8>Ahso0Np^FOd-~OS06R_DaZc-@j=h0sY4Lmm>CaH(mVr?Hhy7GWX&=sy=#AeyuJ) z-r7lo{j17}Q1Y0#S+$6@)Jkk!sMVqWlXdnOs-EC2x_?A=N7L)94cj*FO8EM1tz+wY zpV!j&!+rL9vpfGf_FYt_>+IUQwtw<Av!{J#cmGj+qUOGg!_MASj_+S>x_kNA>)G?W zt`}V3Oyhff;7)?mw>ts5IXlIAx_n<5Xl5nd`0<p-LS-&^o%G72IlUbYhWS#L90dec zUX+|ULzwA6r`FEh4Z5=uDt7W*V><WoPQd}oj`PZyQx>o8wdVa`VRFVg>-5wbtwyaT zf6b5^2LDWA-f?cYtGDJxdz$#QuQzu;%3r{BmN!tDv1pZVk<qoC0xP%~gLd=P>WORZ zkn5jlFD2^d-L^)2Yv5#m?N#NaUv*={MXrmTagOr2{=;kOrjP6EbHnXsME{+;R^I+! z>F4<WzqEU@Ln7}_d+!}}r8hB`;jr<lH#v1TZ13IrJ0t0{+-}~+gXS*Ywtm0Qb6vF0 zyr|NlS^nN5<&Lq9WWb?I;un*q>c^kW*}3-3|EYiV-~JD`|F?txOZ?6M_jml&H?5Q0 z_Fv?i{n^Sb|I7K~_TD=9e0Tf$zOt}y|IHu&ziIDr`v2akf8x9T{CE8RUq<eYyzEsz zKE6J_x;xRCjrk$}9$#Af2DHk$V9_7<$B$o#-e}s*&i-5BKY#cq(5lgs|EK=l|4S$K z-}IeqGw%Mgx4Lsb_U3=>pZh2MKRxBY{hRl)a&Ojts}KKl|JFO!yvTR+IY0gX@Zjn{ z!TbMfS%v=#y#0T8@!hHa(>3L9U3^>eBQ$Al-<?aQvd5o>&-|5Lb6q^yAanP$pPK^i zCzbW@PxZ5y(m(q{Y@Sr|8?i3&jm0){7k^IpBfCs4<f>lU)eMW|KkW?07vE*v5#D%b z&$;Z&>F*7uY|Q%b_fYU^?%tSN%bsqTnLcydSN3^5AKL<=ce7nE*mrnhV1LxV1K*#r zq?!Iyz3O$;tbM!f<q8WkxvaVeUpI!NKK>oQeV=?@?fu>V{=NP9{e9p5{OkMP=jYT} z+`IKZ<ImL_KkoOgx-sSDg`dGYj&J`KnA^9#?ODUzB#vdTPO07hEzI~?$WrdZsdDGc z<psV+j@EnG?lJz$_vqOBXVJmzp&R4ayET<GRQ~;wFgf%<ueHgux@_)&z3F~e_8k8u z_xb&#{<U$RIDeZQx+AqgX7Riery}1c*jR1nsXA<>e0|%lR~v$*_Hy+!y}WL|;EI_3 z)}!8?clGzbeiS)Z$l}A&es%Xmg$3Vc1ibl>Z2K`XM~3V8fn?@{fIa@6+ghb_F0N<a z(|6|TuKUdU5@T~?s^+n_TCo^Z{d#{dcl+VP{aY8+u<vj7kxOPi$#kJ%j;4IYxxSPo z{S^_~zDK)qmgXltIJl#abII(Fdi%fWT+@H^y(Mnhh3RKM7vJ<_eZI`$$n3Yf_}G@X ztG_KU`NL<=;!{wx=cRCDy3_6Qb?bSXTKD!jeq1Z}dRClzoS$89{{fD+3!82-ESuEB z(YY!^-@W14;@6qVQc+9|Qf3v(=dVsxwJ-=}T5!xuWKZAZXUEPj@RCaO5!+_^C)vaO zq4nN9V$Ige%*E$cXwCnkd!FCo%$+>u37)QJ>h3q4loxpXbXw6~J-+N`)mJ57xY?av zz0oT$i>b+V!N<Sv6*=^0Ox}C0rA>o5Gic#H%PnsT12vEG?hIC`Z@VnI@Iu1!46&o> ztY=py>jjjQE`B}hi_ht|@iniWo@;YW59#vQe9CF>?U3y&-dm=8bz;9<U?LKD>1Y+> zt3P><ERu_kuK6+9>1v6e(&T*I(hA2wcb9Fv*Vo9%pV1E0h)Z^!Y<R{+iO<v8(AaUB z(jSNE9Curj7xO58zj$zQ!IYQ|&n`ECifg$N2KAF(%vNDg^EQxu*K_D(NQRvHg*vf^ z#*T5zzMe9@w5j9JORecnp-Zz;UvFTO+;pN}bk}u;=_<27MugNHv6(8fs>pmNZ%p^p zy;){{3$0%pT&~tC`4n|;V~^s3A8f{bE9OdFTb%TMebn`{=Z^j^Ui0@wWWqT{<}`E1 z^_4R6ZToT+mv^Ov%nu6WPBb}pPDvtQg#?>v@SPH$OJ|%;MoiL`-PmlT<alxN_FnBH z+pE*7{+!hB)&BW`vH8Q3&)3&}K6Z8ej~~~HeDc?Lx$7_3^Y7iR(todCZ|=VSLu<pF zk89uFbIV^h`~RM4`3B0qdnWo{6~5^d@;mnPmeS9D(_}Wy6Xjd{>Cf6VNAJ6pp4U59 zKgl%rx}?k354~$z^A}m2{XDz;hsgD7e>``4^8WC7bYs`E7S2Wgww??9-Z0%|XE*mF zz9~(MmX;qdShT{vWny@0rTr1@d%R!$Y<h3y{#B8?8^!$f%h{W*&2ryzuZx`b)6a{W zZ~8IuJS+G7&gEw(izztuM~Yurec;`e!n3Cjz3HD9v;E%6<vZ?7t*yJB6K{Sm_EQ|U zsLbBU{XZwi&z^JiL&CF;lTW|OUEZ|Aq(<21?gB@XqaRGAzMK}>fA7NjeLub$|J^0t z{E=U(?fy|~sghtGOZRZUHa1S7V2=sgkNhofdMlk<rJl4~djEy>>>s;NBycI2teB_y z`mg@qU(P(5j{8L~#0SggxysKnKhn3b!aet1msz}U+IFVR*YjUqpPM3lPU(^O!%FQB zHNJm$Po4Z%{g<i08jlJ-)_LkJ-r)~E89%JFpYo`MTlizQ!E3HF=T?fkZ~3%8<P(47 zq^c{TwpNO>N?Fg=)%gp^9o@}c^}H)Srh;?L{Y&euKfZ4Hb^WXA<DzMz`#GHa9W2z( zm8)F7Z1Lsagvs;$Yd>}`FlL<V&8W#T>q@j*)$ca1Z>}fJ>zBv>7u%m9^D9Z_p1`%* z#;?+k&hLA0e!j<D-j+?jJ3q*9*qqPk$uV@Z5B~oy_5TkR(H(z$KD=Yyqqg;si?;pc z_0=C=tG{~d@a3Dj)YL|asoSsIw!V0KJIi~&1J&Li-m&c2?sCxD@!)orzkUw&-X%MQ zODequ-m$cZ_0CXrTjQ##8@S1J?^c)mXcuws3rk&hL@-Skdzi!-6UB0Hl0e43=%juB zUB0qylAFGAQGNaL^8aG*|M~s-lz(!f%hGDcrSmiYygT~iuTSj`@!B6VAKc}x2tRUi z-h(IeSDvlDsrL1KT%X$4zj0swrazijebClExc{ANf8DakQu}FMJ*)LUcK=G~wwohp z6Mew?ahKmJS1IM_o{N%S&x`%Fetarum1k2P_lx%{>YXp{FTc{haEg>m=fVX?tRHP& z_+WE+%<4|FdZjaLOq<JFP6s^r)VIP~<Vvl3P_o97W1?TL3Gc0SkKkv$_WVk@`<K6S z6fBDN34ga}sy@e=?VeEUcjvLe$`?E5iNEKVr~F{9FsrQN!Q!TO94~ZVHLLzAC~Vq) zXWb9i#V@-q?pg3}=c0OX72jAzU;U1zbqgM-ZnYH3jSKqkwy1u3NRf)yzJ=wrKl?Q7 zg{JIRIn~ed^uOccpSvZ_YB#;(d=Y*{+5gLnF0ZPECeb?%D%A<H);b<EbNtTw#q8@{ z@!I_0{Mw7R%^W|lwwU#H>ANlU-TT!w|MrpeeOE4DQI4M#V4}58Vyc<>QkVbdIOi!p zFzxg*dcDfm_ETzqM&7TaylpF&=z9x&|It*vj<ZT(LHy-E+)GY+PvKxuUDqkpxZsHC zcJ`?YPoItX*!{z5Le;M(>CQ_PkCsjT;rgEGXWs`NmU-7*&O2QAJnNTS$G&)BR%XY8 z*{^aHs;ZqM+L>NUYe{xZGQZ-b5w%nCq#W1Df81XmI(~U5e(1B~gP+_Fe=2;a@t;y5 zGQ|R%As|_I-YeU#s{bmxYJ^IDPF3h(ZHZs`Bx1^+_@)o-4IlQKY^!gXn5p^qVU6po zxG$4_t3<6^C2Ajk^SR}WNB8b$-tN<1oxXPJ4qJoJK-J1e(N_5<J7dkRq@8I9<^P%0 zGw=3NXRX$DmST>-kKg9n%PeGG?>4)4L&(~l_Y$N}{kr|><TRTdrKjKD+qiJ&*Mfo# zrY)vAamS7BNmah<sBAp?XaAf0i@ExR!nV&|9l9QQ?@h*HSDUV#Ru+vRlCSiHw2qtF zcjox_x<2FWKB{MV_x?78IH@x$GeTM(8-4VOQ;YO4s5ACI^j|~n)${!4zi&)RwdO1d zmMeZzdyN0nsqc<<v*Ok>YhS<Z^kC17gu_Yei=Wxf*1S}s{X}4SZu$ndEACH^h`QfQ zH7=^+Ha+|2!-pF$BJV0F9#fxsZ2tG0H|kpRjb=X$Ij3><^Mqhk!%z!5+1fVGV~wjz z|9-!~%f<fwo>Xbh>BPE&_x$f~slCQHCooeacOFZeMX06vmbX1cE6;izSj}veonaYl z`T48!fk{`oWN%L2-@erEg?0-IZ}i`f`qT37Mr{-Axg0ZN^YnAtaW+=0xA_X|mdu@V z^7qdVS6dRB1Fx)_>vDc;?BXA9H!o7yH$&u9z#iEty6d+*Q!i24I(?~x>m1c(>^G(u z&Zzml>bPBL&NH5--A$YiqU$#_UEjN?yms{q(_PbpFRFH=%Ghytai<E!^43{d9NhR} zMR=*|=4*FU*ccM;@11VSYN>uzvhv!6FUMrPmdszObWApqdHLbiMaQ=0|LC57v*Oi{ z*-vb5wYs(LNHkdKHeE8IvDYVPZ%CTf+Ibo`A9__k<C?ss=E~-m7f!7+klcN!DwyNL zoZVM1M<pL+k2jTH@-9w)3K#z}*<~hSt2meLd9lt%>Q2Z^?T=aqCrrLrStP=hklwyV zfK772V(W{hJLk?SwCPf*{kfBiu}3dGyjE=b-gGl>?~nbS!K&-GY!mpqLbonxms#~& z)2aL3><n8t#Y1<&Ww#A`*fjbk@5#%MQgOK1{7cuwWzmJjca&aTns7&mWx0V7|HlG@ zWn#^Hx|1qys9)n%?>Kg5_m0hOdPn~R2cAu~+o#dNaoKC>v~4R3E<GuI9z0d#`*iWP zE54e0pUv7=wL#2&Be#Fm)$A=VJ@>>}DezxaELrBhF!1DbW8eQRF()T#7%CdBt(XyO zu*T)kbakP9d5IsmdrmAeoS$?i$=>yR@@50u$;m;<P7N7n91nFzHL|KsT)E|V>mucM zmkylcj(0mGIb+_V%X%_9*-oltD_;E+;}CvCY2`MH=Q7E1V*Sp~reAg8FG`<j_i1U% zpI2hllQQCk>N6CdztGiE@jl}^r}<CI(>q_*8J7H6^eES%aby0{zs8b%F-Kp#koxDa zuxR4?H;--JU7CN>LcH+=_gP29{i=(C0^c(iN8DXw>XqKHGEJmO!q&+CWq;e5l1KZi z!~S&2f3dRtrXaua!=s5u`B(V|`rc5Rl=3JeXl~nHmmcHFQz8C;c-9y4T@9Vvp<{kv zo__oBSxa<o+85-d1$kNAPrfqY_l(PJNm<jEO+GkPH0O@R?qkK(>!bIZSYKb8E!Tc) zL*_O1Ys|_Ej4U2+)w;-+-~8h2*U-m%YOn3co9C7rQ@!l*WUcG7cI>FTz2reF_a4_Y z+xms}-sY`=g0J&-EnY4zvXY@bMS%5a&jI<Lzvuk7n|^SqNHJsmllS%8D(<ZK?*H16 zEq|Zg&Ig6H+pp<<TJNx-aNq8J|Cikr*Rnp}kou*>{Oz2-<<@(%{QQMheihd5s81D; z<5xVo|I^8@ob^SuN{5fS{7w)2ot`T<rM=#D#YO9XEdRUIn*^o{s_L!G{Goiv{#)hT z<F!2RPRkm-+^A80BkJurPj1QArmai1{1N8X+B>aq{fDkYxgS=p&)Sl&r+<Fd`&rMg z%gW8Z{OR_?j3eb+*4^zXl4@9y!ot3BhsFN9x%XepXxN)>xv;HQ<B*|HzVaHs*>5MW zzLvd~bzk4k-lz$#D_DPCn||ifyFJ-)=6=#PZ7<ip+%No5j;p2Se&ylh8&RuHNK2k; zJNxI-o~-S9=Ulb-e+W^y+EH<PXT{;!0`K*ItvXWqxpvhR%W5C-J$thLUD~z7b9?2> zjqIm+jc@JCiHUVT>Z3p5y+C1&=7wY8flFs!KkzNTam(7`z+fHU>a{D9!_S(ZUH$B5 zrx{cDn)5bnY#mZep&iE@_FixM_~?n+L8IkLN$%1ffgSuyD&A(F`SNa4so3MC4>|Hn zJ0m)|IQ$ls2fmG$3SZ0i!HnnA?u;oPmXxR;u=Y32ii=5<a(b*2_wCT(DJ+-$MDpe` z9a}4`p_|S-|8DH%YihiFnV)NW+A==96gk4wRP)1YK2!LD3_t7qbrm71evCdW@ArO8 zX;Ae$-93Bt<YkApy={w|o>>uR`oHk<uC7D}^YAQ*0LDh9{a1~YPQLzjG%{FzUw8EV zqq6m(@nQ?vo<zrU$8@`&IJ2<d)LSuFdw*WDpRHnC{+&l|iQ!8Z#O&W|p?c(A;G&&9 z?JTFv5;@KnE^wUt`DQP>nZbV1*i5x%h4}f3wVo?H^;DBzFX}JSesuNqvy-=rlQ?r` zc5Qqod(Sl?dG*n#xoc)ea=3U;)u~c&{^;TMP2%*uN2YSV@jK)l<{v0GIL}<SS~0BS z(!qa)m!CuihU9j&{Se)}amo6hIa88Ur{A_+JL~D`_+%S(m7Asp=Tg{29@>-|SBblt z1wJlath>20!_=xY`PHF{t1=s<_;-e`^bIy~Sz7!;Zl}rf1$ObRDZEXW6h(S;ueviH zTg9`KGwN{SibUTfd$RT{RD4;Pwm-wAp&+6uepRMb!;;k773J(YyBdV&&-uShM&;+# ze*Oz*Vis?o{A|WbwdQ+A<_J6HD<#iM*FS5tNWdh&^BGg`dTC)j$#>VnA8pJyI`gH# zsiKz)yxDp+?K_S>IwG^UaQcLIS9_h@xc5|E-sOM#!|RV38{aqz{PmG*nIwBGWP<hn zfWG~bY<cMiWagxFzF7X|$^V%BGw+}5Tr89>r1Kyz!oaG_y75YO(H9l2g7pE8f`UBD zrV8@y4>6b##xmFRGJBHmEg6lj^RsqHi^v);F%^_GFmc~;>j=|{8IxyA&YEv^c`D1T zQk(A^HQGWfS-IVUDml4NX)I6hle{Y(cdn&&=jG3<XH=Yi_J79f@{4OHZE3sKXQ6qA zqqF@{R(06NgnKS5?{ki?JyHB3@9}I?MQ^$8$88lKrTfq8+-W>{KXh)Pb*a_aLlftU z{4tCCF-7<NnRdpeH$LYx-s`aYN6hHG|ETS_iSLr$?mKS9=ewdiZhtIMw`t86`oG!# zuJvU}70bf5yAGutcMD6Fg`D&`)%)$~1}l4hHO{VzbS;f1Y~Eq+surQSg*(FP=BTEs zEc@849^uF8)mw9L%e8G+99Vpw{djys<+SLAN3~m0#akz8o97g+ixlavTNCPc*tYL{ zWTnLN4=m-IxLu{?7d^<S4p|g*?US^=_nxf6eEBsSna)qTw{NoB?<EJ#XY5*b-?Unb z{ok(Qy2JgZO_mN~U1!?goA@pHeZJ5-&AjM$;@Zp4W*<8{(?)B#vP7b7^Rvk;QM-=u zZ1TG3yvgBMM7_=vh1@-#x_0=r-=DDVV`0vhN6*Eq9C%B<`02>@+iJe3pL6=^%ACwA z!6_4cW~};srFPeolM0jFHdn+w_nrH4a@>xLpEIVXEmED4vV89om2ED2e_I^2e7E}Z z|M2JkSAYKh9ei%Xx^w^I=l<W%d+74f(|M<NFehC4tKaVa=->Cl&4=$Ej@|SBX+nN| z>A(L*c8_BI*8iT-c9{Q{y4ngx;VV^*+WhzYkDJ8x%(%Sl_oUf#!nJOAynX++yZEC* zqTW50DJ$2+{_^u_o1IwEy~S!bf4*bhR{b9NzOpjjchee~KJ-78=1Z<9{PcFl0cn}K zl+0Dq+gs17ue(#0|9`J!?1tR03st$dZ0S5^wr925-pgH?+qIo%&U(6AX1dp_PpS4Y zj_-rNthi)3Z?<VCchbj4DzCl%umAENMAUozuXi%HN>kI#WAeH1|M!71&cFY&zF)oP z^<V$-Vk0LvgDY=XzKHeb<e&QJKkpsutXslMHD}3gEjs_|a+S5g4^#W{ic8l!N(~Qj zh}|pn7npZL*7~o^UbVCS8%n;aH&1I{80^y7dpxZFqeXT_k6Gi(9TIb0mvS|jeU$3S zRNSPilRIOtT*>Wtj(0zKWLXnLgfeWR4$20I<jTJ>U;N9};Z8!C#IpYB9~(A`TJ3Gx zc7MmcwO3yorWf75qwcOIZQ>){?HaM)ICsmsi2S0{B}*)}SWgM%nzi&sSJ{KAHFwHV zj~H528%P~}*{9CT@T_9Pu3J|oxZiZWraK{vWigZS$_kMKJgtR!HVo;P<Q|zM>@Ha@ zzU94Lgh4LzIfjH8O3I((U(9hj;=o;?b7Fh6$>bxIb#D!?Nc;IWt&_fG`zr6cET41F zRvwYn*~eLaUCCo)s^}Hvzwg=+ym_fQQ(7T+?CN-i6=x0G8OtNets*vUt`%N9uQ0SZ zo2P5};kC*a&!x=x?9jx@X;hdLbJkNJ-)&pApCP-m*77H9@|T`@+i&5%weL}ekMgt? z3sP=Gzlnd=5)qjnfAUxUe}%pOZbz^EKW)>$-;VqLfBlf~|HX>3f)9r;9_+7P{qt+? zy8l@@1~)d%*|$6P(VzO#3X6~b^7qvIdm(!F|1SR14v!1A{)_(kKkQR|<v)AH|Kb1k zPyM6*v;OC2|L7UQ-<SN`-`pI&o1GIhYqMq7|7uP7mnU!ha*g}4JN$O6^>PQbb9~va zcnwcRS<58VoZMLW>las?^z_FM_@-S+zqXdW|N6aM&f82EMc7rY`v3TG^4V9vw<^?Z znGtNf+tm058{20e`wxfo?%BNazHfZ!#{Ia%rM7LA`;7M<DC+s{QT?&N`%cpCb^BLK zT{k~gol$%D$9hHE^%pDt_Vazt&wf;~Dp`5k>F^(!J!kZEyj;&_zT&K6R4fOdug|hc zqWZuKVQuAuEPH*JyuZtz*t~69XzkvGub*Arz3rlf{n0CbE{nAt-OB6JyFb%>^|8>; zpI$xs(zfX7s*qP(S{p0Y=YQ}_Yu;`8c*@t8OQgU2OP_Xd>W&2`c0IiR@NA>Rx%1x( zXPQ6R&Q%t>{CM=jyY~dzIb*%^^i|wlOfRZjd--tg?TVSIK^MLhDqk=9(U(8l+NUO2 z{6R&Y#SY`TCEV;6Ew%Kg%xGEvda1y>U5huS^S)z}^Uk?&tfayEs+yrpT0i3-m+DB< zrSka?9xnZw6d!$IC4-@vLGEHth2RsdeS5+JE7mUv?VRgeZl*Tt@w^PJrpo#jAvUe* zb+M*C{U_zkN>_F5J-WQ4Os4X2jQYhzD-`Y)UyyTO&^FKGP_{^wvbcqb6z@@olZJ8P zYu5&g*Dg-V{iJrs{f^=LNVy&(rBus5)uMMJV})(s2IyUs(svU1)U)tq!wp9@2b(_| zs?`P7O7)lboM4J^`QY0$(RHW0klKZ)qfBQqBK}%ux9EObYZp*^WRG6c3Ym8``#lq4 z`#TxE%p}+(QXB;N4Av+-O*wtxi*9j)M=W=n9h>W6>-nj5rH4xwGvz)s&#w)BF14qO zHNh@oufXkZJahL8@ox0LAkEVzk+8pQ+WX5a%Kx5D?rSSn;{N=Y`<iBy^2vkBTtB`n zu&lbheBv(m2{!DLcgOuzSsdYaov*V*f#<~OjA-XGB5rjb?$&+i$k8@4C{SJ{wLe7d zqKtmT)S{L7yiS5U?;I~y|FpZT@OOT~#**tk>1XB_s#_^}&5n0&JNUGs!XYT(L89ZU z2~09G9AxBG(spDP7zJ&<YQZR!t9s(1sCst70xmy!KfbAwV(LEAuCR7>ypff^{n)7G z)A}zF?{q%xDc}2h%7v<y_AAPh=AXEEQG}&ech}5W4Rfw6`t2OiFSYE>LxE48lb45H z;XCmnHh9CTnUkV}teAIRu+=+iyj(}_wDaKvHpW*`i<TU*yBNZ1b<A$&;fcQ1{Ym^w z)yw^)77H@_*d1K5?e6ijHCY!u6-u5>X>9p?eX>mJhRvC(D<)@5yzEuR^I4(b_*56? z{`po;F(*@XnwC5~X8EHcz4X0Ni`cTq&F7dq8;@TX@P4p{QK+jj%RoZ#`sDo!G!N?i z%JDN<Wi}<_iVwrPTPBhVt?ZYnHm6_urK%bK+wfzE>7*y3SB~CPIyUD3$J!SQ6=zNo zE_o+gBy*{EmwAfZ=HnIH?%E1|6WhV}llObFx$5PBTLJgqOcGj?c7v<yho;KJsxxn& z7xSu#d(PIFoII)6x3iDOM&#hpmg(DC5AjR)_NtzpIB&y~NxHk{Obd}d^|W-|DqlOB zs@6ka-Y&8FbU1oKrqc?~>fRkwt6W}mX}U9b+Alq`L1lVHP4_+r?N@DbS>jI2&oAmS zCw*^pncTbo<r+n+jg8+6Z7-^AZ=Vv?c<M|W=lh)td{$XRZC~d5r(=2rGw;^5!ArQ$ zty^<2QBZMWU!(l(yR{Cpmv~%Vma>XZ_+NK{NkL>=Z^9zcEvr_hr8<538)NUy+W1z` zD5NuX6R(TsIkOcnca|>C39BtwC7Gmi%=Xrb3$gE~-RG^{RP|$}n#%dso&V;k6huAU z<Uh%yP|9Q9u_ZSrUgf=efjyBi`$DzI(YTaQHQ(@O(ai1h`Ht(SEoVIOBtvA@>*o^g zi7z%S*k%`*qH@i;OQ&d=f3DUm7WbdFJ_^Zq7$<G-dHAeq`ow3A=U#lcH2LoFxpC?n z1bf$UKR$d`G$teCvQ4zXyQ@9(FZj5Y_=)UXvNUUpbDmF!<%FFYXJ=g7WtNyADj}uF zE0TIaeN*2_Kc>ghD;TDI?qGE|s1n_ru?=)eep27-96|P<4w8R%wwmAJFK~R*=W8vI z|J9alzmCBa`8#@A3u3a}elQC#?wr*&%V4>?g@2Hc#oE3KCG7xNwL>S&5}j76E9EWd zTAZxy>>WQnUH9;mcMFbsb2alAx242<JMb=>xjJ*vrXOAITMs?fc`38bfs5Jc#&ho5 zzR5>27xY@`%wKR3d_?{nmkED#^xU3IG)mqUEBgOaM4jCNFTKvz&JF84|EN~?s60y6 z-e};iEPa=I9kY+~;>Jy(3vO-o<v!Lr{p<^qfZ0-)-5pO>wkK+IzKm26{Uzt&x>G1M zENJ^{rWKF!rIx+5^2w+XxV-(5L{j48h`3Eon-&`}bV^9=I@<fhViVI9WqYgM*Pmux ze5HJU$+Zo39zk=Avjmv44+I*qtL;-$)RD28>LIxNn$f)1zoT6u-o#z!y?F1*{>EgV z!)Ee-FK|s@F_SJxb*mKKW1Kl#Lve36i-EmBlhq^c>E65c=9$b$z8Py-=e+5U;iax! z($8Nk@zk8lpQLuGHQuDX)oXf~`t`g|7hbBYpSjPZz;I!R(MBoO4AJZV_vQqa1Q@TI z@owT8K`-ZG8P9u5N?0s&J#Xs=`-w%IG?|i7$9zGc#o(iIRLzI$zL6@0-#N`wi&Sz= zqc#aWytKwDrKi~Y{?Q2EyyqS>tLCJqhn(^Cn<!vW+3?r#%g-u-8%LOe76e?KF0nGy zUUuy?l@8BedOHvOK0iZp;*qCehg+?A7BA&l*L?B(;kli1n>2LZ>#+ZvP|f~_XG?&} z>Xj|IpNpBR<^<e`GjxmPRqlVtC>Xl4?qZDXpLI_PyEr5{G+mV1RzK?LU(>v5Mr^3a zYumQ64Aa9u7OfO?xg38%q3gcigXznq9!)d6&a_F_Y1{KpE5e>7exLX!hUvn?sWWYT zW*Z!Jd6&EBL+Bq>v0o>gUOyMVzIO66D~@)5#@^|51<OQJ0wd<Xops{WjEyTNE+{;g z5wuIrhxzfbliLLh%}>j)Rc`XQwt@4Z&!nF63A@7PrpXx1IxRQzOrgTF)@?ayzjoN1 zyTvOUs;tSxrZ%@h;ewg!xr;MgM9w@3+ApyD|COnsJ(-)I_}mffn%Ur`x9Fuohfafu z%=OjJ`r9;fGta)(x>h6^^5*#&52Gz|A6U*$s41Ry{q~`A{Z}JCedal6!o=J&Gp?5@ zZTBOK+kYNj_|ej%^DZdxTt>uaS3mA8FE(8iE}p6K%3|C0rB@c+eEqPT|N2_1^z<!i zyHzwS&ho7O6!<Cez@}ebuTx686T6)BWlp6!^*mnE@c4C&<)6w;)7YG>_BZ&<oE&;o z^K<j&LpFBLT4tBU8%$nuQ7a&JfdbFc7G|?#j*W(rf7h3C#vawGcVBB{6c(0wz4+KP zy?nphhf9A;-Uz*Xd9%M?Q{g$Gpzl(vHND>|aY^2L#<B3qx}q~ufvXknI4@M?{gk|H zxBprLVePGl8f})iuD%iZcwg6vSKqRa^(H4r3G$i!X5lE&Eom2E$#ph*sxPg+w*2hM zRXYQVW0$`al}wsYB2jetSJ?g9ndv8W&xAWgC)?Z;iMRSP=_1>o;&*Hjk#84G+PA0l zXOi^MV-3^Zui)bhJ$2+8=%D<_IeC)KnheFOy<<uaFIxJR;o2LMjmMJME_p@E&78Y6 zC4}YkjRRkP)a4hQow2#Sj72F%D$A~`ICt*lV#)LC7pP9$=G@J!YIbDj%;|UJOxj;u z4;53WN_Oq)_`$iO%kmKSX-~!KAm3{H*4a)=&K2BaYChJ!(PeU51QU;fcylv{wS;Kh zhZ}1pc3oK{SgsWGo4@GWsgGi}be*TB27d`XYq7N^N-EjF{eA`iH@ge@Yt&}HI`npi zwb2RVX73kUB9!tL9L;#Lbgdh+UdlxI(uGa64(h@4Ry(b4efL9Ra?Yapq9He`7Uyoc z_4?Rrx7}C$_>TR)_Vsr6?Ci(2k6*1Sth<}Ft+!j-_RsT2y%#P1U;VMOw2mun;ZbEL zyIze(!>i8SPvZP<vvs8Dyk(vd)c5G-M;EWC2UR~;F?RTsKM6_Pa?Y^n!>ZDM!gn2m zOz)Yl_q)e*t@rxc&DXxJKhl*Sb^ZBSGydo-m0O2i8$_v_r}t{_Irj9^qPtJ7vEBc> zy)fPH$>OLj+3wc!??_KLTW0VGbU1#DnxNya18XCu{II+va;uKv`?TM7H~Ku<mh9SC zb17io?X6ROw`i*i#yjrjt7>q)wQ}Ow)Am;$?3H24d2+@m|D{Optcy<EM;MAPK5Sq0 z+3ev&U%#3IcfTH!TxYX$v&@5ya<fjKOk}<-^<ZJ->`+nF;NINCB{sdn&x2c~19q^d zMQ=}$5Z=W6C4K3)|0-OJZdN}<Vkg`F-?62CrDMr2)%IK4I0PShDqS=9IOE`rdE(oY zoO>57P_92>V5Y9D)yh{c5?z?_;iE0j9Ru-R@3T$&5?-+9-LJ4Y#<q6Gl(kNpGdSJZ z18qZ$^q=_axby5&`@h-7XX>FFlAWrP4wwC8k=T*<{^F+1HFv)!^z2aPd9h|vuSin6 z!9{~FJEoa}56G9-{MmHE<c{rO&xMz}l@HY<*gQ#(QBajV(z)$Q+T@$n8#G=l)IW40 zp^a1NWP%o>T6Nps2;&b=P6(bYU#Tgu*ezv6#^iT@W%U+5N>a+-yuZLYChGfL>+4VB zYCqjbXM28O9@CBewQir*dZj1!z4#$@@1$V)YwnjeYIbSP?9TTu^+nn7Y<n~L;k{dj zq`k`Se*1s_-t@BVy)m8p&i@gW`1V@yr=0l&1<jYdzj~r3UH01Jy6N)Cz>*sZj9wDO z+zhwQe)(8mU%Hx0d*fn;pt3}xJVEb;1+TB&6<26pkSH)+?OfirJ33zi%(a6U>TlLC zo}D^_L#83=M|IqTI`h5*(fZDNdivHm-|f8->FCdVu>7R$Jo{-ZvG1QKsu$@_k}Fwc zCvc(kE9*mbhYXIn2RB5^9Pqm;=CM}AU&+^nw@_8{7+0`M^vuEqH6CtdZ4aw9uRPB3 zQQ+)>&Rs_=FW7yVeCAuo3#&gDY#mOt?p^Ft`!Qjw`=7FBV*3p9?!`6B2#UqYRQ-SY z`}>QDxA(_0XeDF|Jz}Yrl6%U#ur0e{RlHK|Zh>oaiW<y#?|+J(+w|%z+uNvQ?!7lw zT)S7MYr7+A4d>Ps0)k3DIc$L(Qnwhtwjcksu!vJk_tewxW}B*_cUS0W$1beg8)-i0 z$6|q~#QksVqg4J%&elAWK1Y%NZQz^Az_(|W_q7~JI}m63y~F<RI~Kcy#r!h`7R6^Y zEamJ=E;9eh&azXeuI<56Pj3GN(_5D>a;iv41sPtxGr>wmP;kynPUb5YmuyUCuke(u zSZIH#k?rNfT?t()<&S*4;W{<*PHXbF;@*^iYHp>dLlaN&3RT=#{5Y`U!2Q;J$^y9` zC4O1B+Ff1D{rlpkx4eJEXB9LHE8qWBe{W&VULg+g#K%{7Q&&g+nl($=ptIcIt3$|_ zh)y%(oTH&N%TlWkYlK}f^Y*f==q*{h{kysB7te*xOD?Whlwu)uIGTI&zTXdW>e<$r zJia$!iKb}C<eZ}?*xyzAe)c_iFC`+zWyi}ee(p-5N$sx_Qc4eKJ%1Jc?BVya?DxIA zJ3d&+zmH>%jLmf6(Vh_gSo-6weBSf+Yj(OufBb&n#dd)Usk;u_y}TAQvvm9Uu60se zZpJEZQnGVum%K@co!V#h`oIpgBMaVDbBDeRINW;k^_PN<887Qk+xEUr`#SAb{1)3s z+N(03n{R!~^!U)+&mM2NUMRiwukC#@?`c}Mr+(&b)tDF#=Y`5KdKXP<zSrHz5$uaO zuqBgW_xG3G+_PL;zhvJ}e$hRjCv_`RPF1e5#ID)P;tsyvwdh6lle=Q!&)oPY+|nty zY`rB|V3Ok+BNpze{Ounl@0W5jo;}9qwBtg)*V8$Yw`T^FT|US+^Jwdb$vx>0Gi7cp z?EPjXU$C(BL5{6~!^)0xw{}L%4Yvx3T-I_-_N!F6{i3Z7XXZa~EZ1OLpZC@O)WMy5 zxx~6EKiEV~fBWx2+7@}y&0)V4m1eH}mgiV(^2~egjpH9#_q>-sVcdWAk2JfcO<whe zS>2OWxJ0|ZD!hBNYLd#X-EC>#6P%CMel6R7)o@e($!9NaZa<(cmowwYo&5Vv?~iZj z+9?_TeruM3u+0IbBfLF&-=kt#9?J`So9R*9rf@Op?e_b1%zv3Uzij>AE5_Trce9iC zuA_;@3+`Y3<6M%ywvBf&hp;{4tKbVWz7;Xv`y2nMYyZ11Kh-^6ZpktY+I=VQN!sx$ zCLhs-*5>xX7ddR4BKkI8y{$J-cIM>uYOiFQUWhufSWT!_TUVhqlS5C%udA)vdinOh z)9>bKn|2j%damocrF^?|No3v)f$bNL>ea3n|16ceJZe@<e2&@IvW$O<A(t4N)UT&^ z1?C@&3n=g}Q<*(;em2+J^L=TK%PubsFPtwlN9GcXf#3G7uR7O#bHrF5T)UmeU%B(1 zn{x8c^*dMG*1f;-?PI4OhwDy;mt5y}dak~E#hyDY3uGn#9c1hi2yoglb<HAq?G1+% z7T)`u{5R!)M&<qcZim~pET8^=XWM&KUMG%eS2)&L#CxxsDD}<PUtKsd=lHT>p$+$i zwGB5+sQUAF-aP9f3p*3x%kG}76+ag~WENd?+G+pC8-6u&!j?~$XJR&ylaKbCtbY1y zLBk7QCiaMfRo1naavi*#BGh(EFRQNo`B3e9!Yd}-dmD5)>^c5BxIaHTyKmJq*)zel z@&6LuY`L@f)3*DQ;uS@GvzN+fb3NIon!@pW_UhZ_)7KaGv-2KK**L%cXUfX6Nm~ti zZt95Z)Lgvk6w<T);>z_Ge|4@8yqW#w#VO8kxotVWJ^vlpFJrl|Q*z_}^yxk+0y^`z zwB~KUy-9VYp5So~<Kx$vW$tFivDGi1l$Esa&Yvau%M}V|7)XiPzNz|N^ml%Czrz== z_{VamV@vqBcYE~hRaeprIvA&@(eO;+&+-q(LSL=kA6(hO9F{HnkoR2Ip{6+A?<blL z6fFF?An#e4-O(l6jW2e{ZisVmUVo3@h3VA+ZL2S=Yo~pFHS6~MvpP@retR*m+$w*G z@4=S;YaG8D9{+f_L@N5t!NTVk72hAZyz}S}7srIGu+scx)ra4;^#uR7iG6;<kL3)D ze|EWCbnMZ|I}{ZSO)up{ruQ=3de3l|FSD^d{)akCQjEcLmyZwYN^S3yt#g-t`fzWt z>*wEFquvT7E#~!Am5Y*Dt)8>ZZ;8k{-K?(<=CbMK`1Gv3^=orp&b1pFpCb)7h~MNp z=lK8fisFjS$1!5NRd-x1<Pb`+=Gbcge!{yIk^*~|oHd*6ujc38D5_j1>9XEno6@Fl z(c*hwn@i2;{1U9Ox+|9B8f%zS_676Ys-OSLsy=`F^>_E}?eb5mCOrx-m;Y5!U;O>s zr?b3)40k`j*MI-MzP7yFcZ%KjKY!0&J#JlMKH*W-+fQfX??1l0f6s3JuW`>CzrTNX zfqC)Aln0iQGkU5w*BhPtx&Q9H+8-4^XYJeTzWnFMzpu-uUza@4c>3n#rmeOzo8!wn z-pE>Q58CG7;rW~|XQqM#i?2%d*8j}gw!4N`?1)+Ypj`Ofl)FC0F+AH#j2rH4P&a>l z??cTU``32St5aX^KXdn+der<E`>Q@M_g2?-yM3Kz;AQyiL5`6mj}rUSum3Cl+Q<Fx zmp}9B|K0t+E6PiY?{BT!eromq>*7Z}H~f2@VlbuR?|v=5<L`@#EB`)QwmT^Mwyo*i z^0jBPBAq{7%)5Q}U3Q4i?wG&X-Z>ZNO<vb{t9X*gWP1zSxlV>XFR$2^MigukYwl#f zp3{G=hX2(yb>lB;yC2oRaLsNuF)cV!xh`qr!-91`wq)fprQa#5+`2-|%9Q(e@`L-D zB}?W9Ial3KUB0>GhHEq*|L$k67!t!*M%%v;^7!z31NVhB<yPflh82?B4->@;^ruYt ztgz1brPc}lxc@Ux*T?*O?4J24ULrkJ|NlY%{eR2_R0|J1-LJ*B@2chh=YQsZu0QwR z^8fpznrENhtpD}*qC&?1nI6gK{;#%RV%%o2=o;rjRm06D9@E~7g48|#GhhBb@Bi;N zk9t4(|JT#uzq?4o_xe=@e}A@t%=-U+-hciHw@l><|NY<lseb?K`7i(VKm5-um|OPX zfAd5WA$O&B|Fw($?w|Cyaovw(-f-s$tyTv+s?NUSZ}v-kv*P-mr}7tWUYK&T>aDQv z0=MlpS3IsO*C_W+UElsB_<DA~>8<_8Dqry*oEK0r|M<3s-wua(C-Ta_J``?Z6mnNp z+0s$(>#W$f{%-n*E^dEe)Z5y){Fz_gmhaY&jQ76f_nH4B*M6ej{@eSkEw|p@XIvd- zUM0lfHhD>AlpYiB$+v7G3*;O-zLhZ~OHWj|DsaZ*+wX(3p8WCc_4<~d6J4a2BrLqZ z@onO^%hR*kztk5#f3%N>T_tk%S)u)TI%U5<$W&&rEe*M*b>_z2wcYD|!)GnMa`A^* z=WR*v&l}UiLmS*bJukeTy)TOEDBI$zBCkw?91mJctd`>XDy2L1Ou-wg^kp&s&a40D zU+Vm`{=n1!UQhmScK$tIWp3}%&y3fZ_L={jf8^IWasM~p>(~7Cmty}@e<{J>(WiRV zPy4@pF=0)9pL{lG-m-`gry$0Ejn>ajIPE{C$@u*LoqxyQ*8lk-_rw14lOC0S_HLi{ z-~XrH+06L-f2fT8ANTxpsl7Azy~})kev82E31Y^VeY4YFdT+MAFEK0j43DyB?~~S> zPv>@=yr9?SsM~I|Rr=O)+h@)@>t1RveV(~8+dT1;Brj`Xy3SK2HmPcvq_iouZm!Rj zOt}`_Onfa7V#{k|an#M-^4OD%`~KNiXMSp4@8Tg4wr_KQ`MGuGe{QU5;VS++|MmZv z|Ih!(f3BajI`Y)N`8{riAMFqR$#3a+{9m=l;{Wqs^2`6n{D15|^^5%)C&!t;=3B`0 zG5xxqV)N+ReJ{RMR}K~(-gW&&{_Vx~vANIYznT1i^H`%`K(#?>?3*2jZq#4=R%ZGl zs+T2}<4Mam!Lu)zrIu#;ujSsqZh_DP*R^iHKXOQfzwNp*f6HD=)AG+dm#s{@d}Uhq zwA(vnw5RSn|7xG({|vXyu2q}Q*~eb_qsza&>CN0k;bYVPXS~RI?DS%L>oF&DA8wO` zFVQahFMfGDzj?jx{RI05;#dB>y?s$+p2_N)2evxBaR2f^wRhVGd$miGE{g10-MdP6 z`K!FGxlW$hGG#`sNy?uV*mLY-(NA2kSK^D;r9ZAmqGR<>*nHhB-R)Vw#3wDQ-cEXj za;`;STJua3iLdRCjW@36k-GP5dT*Js`&0j*u3j<AZ?=5e*HmpM<o(+kJk9sZ-`wZI zQ5?=+S`Ci6+AR-uoYwlQr0dGZuO(6H-p?0s&B@(nA^rH1{Ph1j{v7Y0^J)Hep3uxs z^DSmv_$A->$GqYH<4^YupX^s*3}8+QOuj67^w_#>1-lRRuAO6SFTHEqg5@9Yvp?Rk z^s0^i(V|15lX~-bn5%5|-HkBc|N4dYhxZYlBKu!S&3bjSXoc}io=F-)&+qsq`)$2? z?bhbW9+O)=p5NWZ^7F%tXqPYb-o}n0)fHbnvkC(ebr#yobS$Vd$x<`VF8sB1Ph-;g z>-OA9`?b67CKm0iuYX!u!2PnzYIfJ(l^TA*Hu-O^T~OAG{VWh97(4ZC?v1VgGn9%n zx3(rmOZ42%`1IocM7vAJ{}<=A)&JWYnSFPzsefMUg2Qza?()vy>k>>@nsD->?ZHyj zWw8^RAJ<>GDbuunzWFNa$tesr+Rrw}#LwY97y8x5(t7fQiY4DdpZZAYw>_S?D)Ui- zf?i0Wja%15jkD*E+`Rdy#?V4uSL~5QXVCLoE8@TB&pv+Wx8%b=&i^ki7Y*BbwE0%V z9l3V4i=o0c`}1^EosJrP6K9W@z#XzB_c<fGm5ki3+@p?triCRQiN?97SLLW|5cuou z|7V{0vew-mj%-ecRvb8&T4*rE?c?{EyH=eQO@1Z4+xh&p%eLM3O=Z3b$AwBh{1))G zhvoK#c?-6_l5=EQ92$N<Wx>|UlQoQ=`o8sVijF!b)MIS3O4~cPPpmfCrgZ*S$%GB9 zVy$!DU6L*EtxKCZY2jl2SxFx!^7tuUVwJnH_t<pf9`RE<jeOXpu1`F6{-DN`C5I=r z6>qAY&7!&bt&k#HLgjM%H$2BUj_b2M?yj>hS65x0%>UD9=fB7HR`%zt?N=S@-yid5 zMf{(N`PCUJ_y51+;kI4mS#0redc0oPYVONtYz-!<F1v9eXo<Uws#5Ta@)<tv5BAUK zdy;#0N=sz>l9gA_^(Qm8Ssatw8j&1Q=%RI{OxsrN>)ro*d2FP_jwveyEbiWSV&jY5 z2Nx~*wruH&Cdrc7^CX@Mq%8hv8vB*`hOMz_!LEA|9QozhTdQgX4xd>q=(RMfWuwB9 zR}1e;NiLNRd-M3oKl^w8AA<<)um3Bp&Q1~kZz{*LG~wU*6r+cK=lk9JpFX{0X4U29 zf6H`AMZ+CA3wJ#&6}@HJeCv?A@SoQ9b<P&`nUQUFw->(8u=bC6G;d{Y;~()T{mlic z+gih=liRG@F5S<cqU!NtmREiJyEW+<M@{;fTo?Vn_^+wwo%?d>{IB=ie_!pH(|>Nd z$XDB43Y|=DGt@7()qi#f;NISuD4oF^CnY4>K6PoYBJ-@KdABU2`OiPA&AcJmd1;06 z*)5y<jIOABx&GwOpO`s{wn;q?IAXV)IMDJ>h4qf+Ik5?UtrvA(5NwNl<$pd**~j`; zjpOf?PdLS9+?%r{#Ws~gZRStcKlc4*b8a2$_qeioQ{APG*-ITgJWfpiao3PnNY;Ax z>cs7{F2Bv&cICOCo2UE2iLvrQ8c!DK9!U|}=KRwCRFJWVqsZ>0a*2&xjX#5DmmfKM zqww;AzS$ksLVK9)<O7r+FlQaHpZwsrCck7;-#m|+zU_Cd<>t3N{@8g_I#cY(>x-ES zO65w}4a;xE&2W>__qk&cx87U%&}*U3d#<0J^oZH`$J{@BGZxuRo$_s);GxyVU*f;W zckVr^n{MLCwfQfH@9#zSI|P=>l$~90c5C4SkyC;z-<j?<bGqYb+4jY<DXM?r`R!RB z)9=LhPvt5;qwF7ay1Y}&J^kn7r@IR}-xZj<c@>3v6k0y*-?Vi5oXe}6vQArX4U#C4 z^3+{AMNEC+(n;qYeVMW)C^D;4$5X2N;q=I*8$^U6DldgEdLnxE?q%<o%q43}CW&!t zuI^}=>bT2l!kQrCLt&yl8&ve?*wzH69AjNwzWZlF$gb<UTqz6d%zmiomMSb`cCP&^ z$ul$f>a7;%j|tZpB^QTs`)DUf@XidsG^Z>(sKw*|_A()F?XZ1Y*xPP?S?z7XBrdvh z#R*qeJ*}d^iQQdmDxQixOlrBPva-S1h<&bb{>uJPE0Oi<uH2q+-SM#KPCM?F8I=;c zlFOtMntb(t3;j{_dCL&!Il=F3d1>N_Z4SqBR6isLgiL)}^m%DXrCLqzpGRj5=34}( zw0gy<YMK75z53I2*{UyHCf%yFtGlO$S99Kt_K2<6nJv0heM4J?#|pQq4ez(D;(s&0 zG<g0?Z(FrbP1zDLhaX6>T{qa#cF?qEici_}dlGZ^y2(U~D$i0hi+!BM`1erdD%}ak zgFZjz+S(h-_4?(>71B9jIw99Jw46eh6}~z3Ic3g|rlqI7PHj1^b-}9aYW2JsPPQ)3 zPq0?$WET4#o;SlNIK6xGXHR$Ox%10aa+fUV)crO0WJW<<nOde-yhyF^?FAQk*JTvA zHfu}8Tzt^wCK3NOQR;Wl6<(X03eIg0m#_Tk9OcWhf7R;Mxr%RhWLEqv+$xg3F}`D+ z(6&1}mG5;g;I#gF+_gD5(@xMsp-{!6orNbvi(l8G&+Moe`=wVQKH-yYRy_;7R&%hL z%g@1Y<*JD}PnT`IpS5ZB&O3W|@7&|p;J!06-EPIS<z-K=m1=RZyqkDb$5d{HQcu0{ z5)t1$FW*UIMrj&swmPURx5P(<-%a4$`KyZ+YS!#{qw&LQIm3M!9%G4j2Tr~|t+HP6 zqcY#7Z$WhxJCdY6emx!<e)yu<iuKPN&KMn;FY%A*LR;jvOSz|~#>y`Jm9gZ^jVH_d z{|fgSYs(i)aGw8n$ig+__eZ5$ea+6AkMFNK*s@qVxX`0;jliR(3d1K`mKJ44^GL~R zZrQ0I<SEnHm$&xuspH(Cc4bpv$t{1X`TJT(e}`}6%vT$Khne=D5`11U%bkT!_NMx8 z-xD+RMY|;`N>)!ZEWf|1<7ZG|$J~xepZ*Vm0UB%X|M+dtsK6L}dO?}NVYW|k(>MaR zeer(jYH^^;t$k_KlvPLkzGWAioZNiHHCb8SO{c8%Q=;T)+dp>GtlJgDH{S{6C`#4Y z_N7**jIUEWFMqmz;oJ*Rzg5<r3e#y02r2AdlmF|%-~AQ;_3!=f{{Elq?f<2#9VUwJ zN)vg-Aa?)1_Z*&M&h`J-JJwrBefSr@{N8_U-{AE(=7sZBZMCg$Ub##+CNX~b^EG+8 z&VKO|uRPiI!T-!pXFVC7hx2w^JF|1)<7@Hl%D?sYg<bQvzLVawN4?^+_7a{4`%-@V znY)d}e(m?qe0~pwE8aAFvoN$bPY!SA;j6nmpEowTV*ak<ixN(?r5}8kdhlJ^!FTBk z@1D)LZ&c1DX*K=g1IFnOHf+uke81aT`%azeN`0?sB2&)q`o{WBTFul@z4EL?%H_Sw zB#g>#FRwUObB$-`$A^nQXx|F%z1$(>ke#deVKu|$OYv>GJO9aE`g{BB+4Y^pD!0S7 zeb4{?Eceo(-M8hczO_tbzO?>cwR)6vOK;Qjd2X)_Uruh2`We^wQaCfoZ{4NDk3XL< ziqG)*;ifW$xy{Afaoy#fZ{hp*dC6T=SaNK$_Qe+`zkO!rVilgTrS<%&qV_o5Z@V8Q zX!K6-v(Ddg(wm`eqROV~(%%oC*-d{a_t;mX@on7x-M%agx-}1*HB)sy_%7a7%ij8G zYSI~#!#B3K+UNVkR{F6S2HtpTu<35?|BuhFZ~wmkPR#PzOW$m0bW&B1TDzt(N3Uv5 z#m(sQMeU|Mhhp4Ua`f%(cV?ZIwyRdg?aAe$?h=!8ihK_zc^iusax7&RRPr}2*)CqZ zZ>pD8mjJK*<&KFevv1C9^KMp3xu2%Qt92>jNq~X1lU{rOp*dxBZZf@^F6j{$XEpth zvP=_{3gen5e$M{mgFk_rc#<~Mo!B@pxmM=d^Yc9%3AIN(1r06q3+FtykZ=F|bMuMj zDf=#|9QK$ZzfrI5fZ%r%!R;QklKpzeZl(O1a4~Jx$&6X|vSyvmnRPfXYU;x+QKvKG zE@#T!&MZ9^{O#Ihp)<=Lew*ZTEzs=jZS7674UBe$C6uNnm8IsD*Pe;EbG$ihqwlTT zhm85&89udtCBVCX>nm}m*qeE|t8O)?zmDggy7rTgTDEn$+_|HV_gDN8@Bjbk_{yX8 zifjuVmp)cH7~lCZ{;y-b(Z}QUos&13Jp35HT=@S{wR^8k9o5x?POR&gsOZPx!rL|V zSx9tl@~t;hBmE}&9TeOx$9>Z88@no}AAkSFIxG2v2x+DlhfHG?`91H3&z=AO;>2CG z0%^Rlc{b74uI+j8bwk9O`fJZ-U*$TxWw+tHoQj!yZ|-ZCdwDe5tnTTDNae)R43CFh zJ(@Q{oi4~S$wnXeCn;PT=iXY!{4F(g?IBB*eD2w;3vO&*eQ0{`M^6Xyh!?D%&qiJS z`1ac7q=~^UyTnU^9TsiccvH$MC}Udnj)r$vujDCjJ|fp?pO{pws&O>6Q15^7&-thS z$NYQ#>Hoq%{Vc4>@gcwbC;ew%{I5V}%KvuZdH)MVe#&>hSD13c$=X9%%`*4x_FunF z?km`N&-lF9LG!$cCze^P<XoV#$7sp}1IDXNy&I#Wav!d5*r=l1^yl@p$&1B{(_C1L z6`CZ4D&AD97-W56IeD#OaU_>VZFok;mo3}oy$@az@ZjL4bpIK<XLhF8AG>7Fs4J4- z{C}eSKTxNSsV12Bc3W?qnb>UK$Jx;f!r2>F8z0T6>D_$lwpdp6kA3wFhTjrnr{2%I z7PZ=e)sJbHaDTkoWS(bn`3F7QAEdtee=W!&^Dq0d4@H0fJ^On0Dm!CU<ju_@ad-Dt zE6<Q#!nxqOuIa<;@p<p^F6bV58@*6-8~a+T<{d#@n~tyLf2Z>=vwd2dUVYkh*~6mx zGKrqy|8JPiQNC7x;=29SU(fqZzpVNHu}j~5&Auby_E%p$@89+L-M{3iU-{!}3WK~J z$j(;P$yWUAwotcZOX0_o2=93jJZ%fQ3QeZ0dg1%lwrE@IxB59|$G5!{O5T5}KXtWM zSFb{qviKr%p*Gho#~l`_3(X1rmVY2IpzqYpzpsza-d*o<f9@oW37PiV&y2V9$mxnb z{umSFHu>YtfH@tv5;o4r{>&&6eQC?bnI?9xS1-CI-`9S4r<H}Y{<+_eJFV>GJ-VvI zjLR3jx%k~9IaBFt`l$#R9=65Bg%-0r7vD_SBhY^MWXh%abG)B#zUU#{&z7Ek>*mjz z9Tu}aKW{X#3*Yk7r>m0R<ab-!Ikg9`v{N&)I*X&;hZ&zez!iUH$Gwi-$HV@u%WO&c zer)NMU)<N9Yechb3U@j9X~I+G@^7CHZ1{4oPSSB!d=qcO_l(@XN{!lcxeAIoIzAXR ztUY({q`&R0epkhFC%*dcHwvD9{zmS5R@v+YOD7)J5<d~)kutR-CG?4S$h4?{Ng-j4 z5z_+oyyspCnwSzcGh>>k*=dzItV@l{w#=xM@Ll=jr^=B{S}mJI0(7or+~mHf?41;P zBJt(JnZe%{DarQykF63u&ST<Mv(9C!;CesLUC9FM59YJ}cyKe3x#}zTQMT=~<@vl{ zIO!a`a^aaYb0ceQXZ}KYsVBFk`qu<%{aD5oz;&{d`)BjU%aaOMXWMB99KBSh`BV0% z49~3+$5jUn(iq$)Px#`pM&_GRXv(V-Zfso}Zz^o*&-=pBzO^K1L)w9+=N#wG9Ij$p zd4PY5vE)C$y3EJ#=W5T;QCht$^#EI5ZK~@G4hgMC6)aD#PMlIwux`?_6c%&qQ;(YV zas8Ua{^1fQlb!6$hc9LSJoqVZ^S}9d{Rd^&f9;Knw|YoKHR?=Q@+Y73uk4HehEjZ$ z|J+-D%1h6Bl*r9cCe<>x=)$o}LchdMvPNz?xY%g#;$X=MEh&<_EvJ0%yi~!&6drM6 zskXB03&v89kbN({&J*$ez37egi&N>f>#p7|JFs+H*mmjK+}6Ir?55(yndU0X(w2y9 zzm+(D;r688?0YX>d1ie$Ea2blBYIlb{_I@+s(AHI!;63HUbB_({X8tWs;<2Fe<I3= z_JSk*b0_wyTJ4It_Kv&CJA7uj=<0iXk`EsLJ$v`|X>)Uf14)}X_dfso^zYyG@87L^ zIB#ZB%e~_I;;$e3dYJYpSMgtEbDloC?z&fZV40*&t&K~NBBLyCv%5z#*B3?}ZAD(E zg!*U=x0WWpqDu#tx6RXHvbxT`eucJdxciposnQ?97jMaRJysAmTW(oO+{*^3U8g67 zEXt1&e)P$H`v0AO&OiMh@KfIX`jol<ZRNiHKHU5#f8z7{`9c4_pH!);XPB}@`t3vc z@CZJqm|I5t!TUUweq2r48SU6_|9<TgmCSAF%lj|CtD9|lBjn;`4z1izUK#?cW>2## zpI35jOY8TxeL+2c<G0xE{oT9IEq&Uzwdee6CT@FGe5!5Qh57GwnHIlyajB~EIOiX| z<L6zbjoFp^&2@91p7%K}Kf%^mR(O)f$te~~K3rI0Q?SB%Udn}ovtM<p9zI!{a$?2q z$&Y^t%u8^XV70ka``6V_w!LCK<#%f$vqOEhJTN)UJMHS(m+2k3F6ApN7AckqUA}3j zyC6$&;X><PF>N-Lt{rD@ywR!sYw~x=!s|CrX}<HxU#u0<_U>2@gW~KR5mk50cbWuz zyWo7|w8O2Z?Z<O8J3I6;e_fVJoBQ|S&&_84r~KWhyKuWi5Wn8XTrtlTJS?2dPbci% zaz`)bUH8u9&zmgMgf{hun`C}w^|4sosWkcUf8VvoSLk*=XTQt;L0)o!?~CVeOKtDI zwG>L(d`Q#bR;lUJD^uofooScZ(USB^WbfHS+m^9sU$*yHV0Sd|^|}+6{{H;tzdhf6 zNqxCcBu8c1-e|qIAJ~N$-t{iivow^}f6;k8`Cu`R)vLWpURyjK<t@uua^8KfbLxWx zm4tPhbW*Hkw`+CxGA@su@|4430zW^Oc($TN;hQMkhY^NPA_6(IKTR*NOkFd<B245^ z*Po@a8et8=u7{Q92!zckUZc?_T6a6hFR5@%lf6%&(!zV^Cx&f%@JsBaTl@YWGg^N# zcR3$?Q}fAk<|g~eSzm%VHu{|{=RJMa#H(PDuIc(v)8#_*?_H8gJE3#0M*Fo~a$vE- z9f3#{>0AB3&P-ld{HE>5obHO_4(IMpc;e}?mwD6UI<Gb7+urMMI2IWi$L4lfcfX0d zS3k4!dS|xt%+l|j#e$Wy^<5JET^RFSOyxRH?G;-7VCIPjb2XkVJn?YpiI*!+JYK8u zXrsoHtr|~uCOp}D;`Kp~r$<kyCx2yIDpJOARXjE(Q8`=I()V6#{L7PTW*&&tslUql z_F~ba#SGeW*%FFx2whxvNhrB}2IJH{y1FqFBO+FvpE!$SuR;fN1<!+3x8L7Xs4!XX z>vmz2q7b`x5bN9%yA&>Y$4*#uWT{ejiR<f!i?6dTh`J&0=dYN6_x(PNw(0YyhdZ5# zo#!#fB3(J})2~Fu69KiH8x4Arq8xR2-R8#qHQ?_H6MZu!t#U?-&BnX`e;#gUDzM}H z`+3i%F0Y-6u^z&<b)DNHEWFiOp3nJu)26^~=cgRT8`Hz*>T<MrwQw@MTXmvTizD1) z{bt5ll2`3|t16Bw-`ja0ZcfX5C*3`d13$$$q`RJHeDOoS=HU~D`nsY9eoyJMa?&TR zB~4H^F_5{Jx_m~9ON-jepqDiXA8eBTY+LvHdGAW?^DiDtof4ii!R^I)_1xYk%sYB! zth)B&mRHOIVGo|fGc}So4Q}cu{BzY&{JA)ZRqyyG{-2-R_3JO{^m}bRCDX0{@o0bC zADN<yd8@<D%`A_UELN?%!R#T^YPeiR>iGVf%RVsY)$Ld@wea)Z(@D?Xi0^&U${$^0 z7IZ-IQiulYo49ELAJ#7N<$I|pldCmRu1w#%;z!uTWf>`Mra|sC3C9ds`<WAtRE9s6 z{I3|ZI_Zz)f$E%l@f`1RD&9S;n(L);-*Z#!HSI8y6YGP@rf2V6lApDAM!~Gf94slj zV<ui~&}o=w?s7r>-31xJV|-sqG#xUF>Mp7MTypBw$tlMs>*lLRFY>#0X3mwB7R5oX zq06p@%$5v3TGpm_+w|$xn_<DFOLrU2tBO|H{cW9q%{()XyZ5DU#oT`-c5FY7WMHUC zGXHVY|2>cAwZB?rbS27{-%9_&zM7wx{w}J_+iBw=yX?|bpCAOGZ-*iBb^`5;tt z2}jQ~t6M6|HeBU7_~*Kxp-E!viD`n|Yd?gnUv%ox0{3s8{yx#&c>#sGy99!yWS{3= z7oGX+toPB>gQpK{DtKgg)|s{Ih*YcLGT{yVzb<@8$zAd^G5%%7alZQ!l98HA{0^Ow zYOZzet6knv>zcb&?v3@Pt!8ZBRr;!zcT~H|o{c*d?l^UaR^a*N-Qik0LRGdKx-Z+q z#>TqxM)hS+x$;@%Q-ZQiz2&{MrginrWq;UL{1QKSP4VpcQ$@QjUEg%WwMzKk!asWR z5BE=9w&tnePwvM4f4NbwLay4KZhn_iA+cxvl=+Seh1y=}b==Uj3Ou+hushiAWw%Gj z3cJVJx_@SR{P1y{7r&~PrT*(n&z}eM=kooioLpY_;a~rr|H|+GpXk^6W#1GPv*&NJ z)BocKSLpXO{gr3WaQ^hK-~GjZiF+>$lar5sxYoNwJUOEM*p^&@_bWQ;TUCs2t@)t5 z_0Er7viB5DroGJXkjR+eaZ8@<wnp1FXP$3yd(?Z^{;d^El#;xqR9AUVL)$jy!`9qD z$F-d{mwU2J-+w#JR~tL!-R$d1&t__xb{#!CaT{m*!$r?HBRdM#-s1Z7u=n)FV+@lM zL%ikc!#5{<t&nJ`eEWmhbkUkkXFFSGg&zHJh2zS?%9Q;R&S)=Q9(DVO6njOX_J!8T z2Scj*$|Vl0=&N>k{E&OA&dIFQ93it@wkS!X`$0;@AFow#`uaRbJ$qR8-KLf{%Q@1{ z+;cBAyuG#k&-QP-H{H_P`mSbkmO+MRdwA)x6~VhIddg09$HhI{>UJvna{zPFzO}jj zJ-OK{#rrs(>+=XYJ^5C1qrp#W_fk_+vn><Uk9S>)D1RC8F#Pf-MV7jyCodjwWiI@5 z=z_wE{mb23HceUb$?E2lpsubH-}frnrrwyosB}ZdEU7&{B5S?w_UBAnBDHtTg(Q(B zk4@B`nUrt%u%!OlwJozRNgv(trPTGd6uais2IuB~4KMBVRX5qP`)zA&&6^RnYbuxJ zv{Sz_m)k6CH~q5ULB4XB&8|BO?M2<bO>=7WTlV(b#{gC7T`g_TpDFiGJ@#y#(EnfW zHny`CuQl4WP2`E>M$x*yZYE1X#UrsZ`K90R9!^~+6tF$r`TJ6?c)qHXyONb<ju$Ev z*8M)_wdu&eSu>wJP58|%a&XavmnNwjy$scbzZr-esd@2bk;<lwlt~swsqSiGMKhay z=5P61vop|cZ%K?);h`z))Au;0@tnBiE%bF}auC<d{Y5n=+C?K->*jGD;-B~b;Ai`a zf9&?3p48V|+p53xc|FhXMJAlj>N_SIp8s#*_K)4~5Cij+xy6jv)Qy#NkL+u`_WRT< zwN0VdRy|TFw|Hxv?dhp<@XN$)AIw`;<lf?)_D8AnTkb*K-04dDRc7!Dosr^P*3@z$ z+0Tu`N6FcZqvC$z?$Fu41axW`jT5H4Z?Hc$|9*_Y&&G!K(r?Ubf}N&%EGlBEJ9gy= zhe%n-<M)1%!9ng7ix(R{yzJ?^`$hG|>C)9Z>*_!MdiJV$!RkY+cbDh4T$Ou1g?s<M zqT=%A2R~K*sC;?Nx!7mE=;z3F^SwWJnn=z$>k=qA|NGX7EBcmpR@9l<Sxb9NewcC5 zURZte4lhNEkeuWbPmlVimM{jCd-<py+`_8&_LLmI-cH2|l^siM51*=KyJi>h#5i&4 z=INh!>H=Jr9y#9Ps<V|zWzh_=TbozyyWm~hzm93An|@>2z5ccCZc`>zIt7+Jnkn(c zZN>AzYNp^BQ{|3M<Jg<DRw=RKTF!}QPKQ12_#SRC`naG(M}wI?=}^OsPxHHO`WL>N zJn82gp7)wFzfL(<sg-2IxG%V;<y%`|;s4f3zYTJNYNZa-A`0en{eAm!gZAG161D)b zY|&aJA6u4Hmoyzr*_)T|)SYv@SnhnK&GV0{pMQK%+a7m!Q$?Nq?HvyMwLF)S^uK!D zS6d>`nHUhx5d7=0nF;^Z?%&IW%!2=QiAR4uwD+v`G+*Nf2PQmrP?I@v|G}MujgPmQ zrDw|i&NE!F;7EMvnwXay6DI76|72tob!N}e`<c_Nw^_wpi>q5$Rk$@aSy<#*#sb;h zhB+<14^^TLrEPb5^8Rns#*|5gmTmgQmY>Ya)=qK_*({cL)^W45iT>O&p2Io2YlO3< zIoYzLe%OC%zI%L&u1QWx^StNXXP154s(WE|^MR`~lT7v<vpCk8E@PT)b@=;V=8ld0 z$`wvmuN}I_usb%#Qm^rX*~Xl|Ocg&L&S!0@-{{Qp<<azR4wmk@3wG$atoP;3?R&9^ zQ~q)E({{F>dyXkb=Wy*)H#LjhVSK(lBG)lC;ij?V;a$%*Z@L;|qr6{vezW6jy%<x8 zV>}62Hmkz!Tc{OH^;*j|vz_J1^vXX5cAW8wm+ii*I_zw?KEa`K-_5nU*XDfpnWT2u zQ|kuvO&_LxzES@({_HJg{p|YX$`+m*8{1_!eA;Nv)Xp_Srm;Nqi!yJ?YGs9)4QIM~ x1RBEKeKs}MR3s_*y9ZaKDcb)y$Y1xNS^m!hc3jNDrsMzF^SHQz7#6TH006D#_G<tD literal 38112 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≫l~Je&X4-c3K#*J#4D1ExR2J>N<F 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 F0RT&wBqIO- diff --git a/dbrepo-data-service/pom.xml b/dbrepo-data-service/pom.xml index 3df58f676f..3d3182bb23 100644 --- a/dbrepo-data-service/pom.xml +++ b/dbrepo-data-service/pom.xml @@ -30,26 +30,6 @@ <email>martin.weise@tuwien.ac.at</email> <organization>TU Wien</organization> </developer> - <developer> - <name>Moritz Staudinger</name> - <email>moritz.staudinger@tuwien.ac.at</email> - <organization>TU Wien</organization> - </developer> - <developer> - <name>Tobias Grantner</name> - <email>tobias.grantner@tuwien.ac.at</email> - <organization>TU Wien</organization> - </developer> - <developer> - <name>Sotirios Tsepelakis</name> - <email>sotirios.tsepelakis@tuwien.ac.at</email> - <organization>TU Wien</organization> - </developer> - <developer> - <name>Geoffrey Karnbach</name> - <email>geoffrey.karnbach@tuwien.ac.at</email> - <organization>TU Wien</organization> - </developer> </developers> <properties> @@ -176,6 +156,11 @@ <artifactId>commons-validator</artifactId> <version>${commons-validator.version}</version> </dependency> + <dependency> + <groupId>com.fasterxml.jackson.datatype</groupId> + <artifactId>jackson-datatype-hibernate6</artifactId> + <version>${jackson-datatype.version}</version> + </dependency> <!-- Authentication --> <dependency> <groupId>com.auth0</groupId> diff --git a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/AccessEndpoint.java b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/AccessEndpoint.java index 95332db436..4966e00842 100644 --- a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/AccessEndpoint.java +++ b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/AccessEndpoint.java @@ -8,7 +8,6 @@ import at.tuwien.api.user.UserDto; import at.tuwien.exception.*; import at.tuwien.gateway.MetadataServiceGateway; import at.tuwien.service.AccessService; -import io.micrometer.observation.annotation.Observed; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.media.Content; import io.swagger.v3.oas.annotations.media.Schema; diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/SchemaServiceIntegrationTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/SchemaServiceIntegrationTest.java index db00195e04..cc64476927 100644 --- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/SchemaServiceIntegrationTest.java +++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/SchemaServiceIntegrationTest.java @@ -59,7 +59,7 @@ public class SchemaServiceIntegrationTest extends AbstractUnitTest { } @Test - public void inspectTable_succeeds() throws TableNotFoundException, SQLException, QueryMalformedException { + public void inspectTable_succeeds() throws TableNotFoundException, SQLException { /* test */ final TableDto response = schemaService.inspectTable(DATABASE_1_PRIVILEGED_DTO, "not_in_metadata_db"); @@ -95,7 +95,7 @@ public class SchemaServiceIntegrationTest extends AbstractUnitTest { } @Test - public void inspectTableEnum_succeeds() throws TableNotFoundException, SQLException, QueryMalformedException { + public void inspectTableEnum_succeeds() throws TableNotFoundException, SQLException { /* test */ final TableDto response = schemaService.inspectTable(DATABASE_2_PRIVILEGED_DTO, "experiments"); @@ -135,7 +135,7 @@ public class SchemaServiceIntegrationTest extends AbstractUnitTest { } @Test - public void inspectTableFullConstraints_succeeds() throws TableNotFoundException, SQLException, QueryMalformedException { + public void inspectTableFullConstraints_succeeds() throws TableNotFoundException, SQLException { /* test */ final TableDto response = schemaService.inspectTable(DATABASE_1_PRIVILEGED_DTO, "weather_aus"); @@ -241,7 +241,7 @@ public class SchemaServiceIntegrationTest extends AbstractUnitTest { } @Test - public void inspectTable_multipleForeignKeyReferences_succeeds() throws TableNotFoundException, SQLException, QueryMalformedException { + public void inspectTable_multipleForeignKeyReferences_succeeds() throws TableNotFoundException, SQLException { /* test */ final TableDto response = schemaService.inspectTable(DATABASE_1_PRIVILEGED_DTO, "complex_foreign_keys"); @@ -294,7 +294,7 @@ public class SchemaServiceIntegrationTest extends AbstractUnitTest { } @Test - public void inspectTable_multiplePrimaryKey_succeeds() throws TableNotFoundException, SQLException, QueryMalformedException { + public void inspectTable_multiplePrimaryKey_succeeds() throws TableNotFoundException, SQLException { /* test */ final TableDto response = schemaService.inspectTable(DATABASE_1_PRIVILEGED_DTO, "complex_primary_key"); diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/config/JacksonConfig.java b/dbrepo-data-service/services/src/main/java/at/tuwien/config/JacksonConfig.java new file mode 100644 index 0000000000..d6a30b5250 --- /dev/null +++ b/dbrepo-data-service/services/src/main/java/at/tuwien/config/JacksonConfig.java @@ -0,0 +1,29 @@ +package at.tuwien.config; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.datatype.hibernate6.Hibernate6Module; +import com.fasterxml.jackson.datatype.jdk8.Jdk8Module; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import lombok.extern.slf4j.Slf4j; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import java.util.TimeZone; + +@Slf4j +@Configuration +public class JacksonConfig { + + @Bean + public ObjectMapper objectMapper() { + final ObjectMapper objectMapper = new ObjectMapper(); + objectMapper.registerModule(new Jdk8Module()); + objectMapper.registerModule(new JavaTimeModule()); + objectMapper.registerModule(new Hibernate6Module()); /* lazy load mapping on REST endpoints */ + objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); + objectMapper.setTimeZone(TimeZone.getTimeZone("UTC")); + return objectMapper; + } + +} diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/DataMapper.java b/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/DataMapper.java index 1516d698bd..163ec5940f 100644 --- a/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/DataMapper.java +++ b/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/DataMapper.java @@ -1,23 +1,80 @@ package at.tuwien.mapper; +import at.tuwien.api.container.image.ImageDateDto; +import at.tuwien.api.database.DatabaseDto; +import at.tuwien.api.database.ViewColumnDto; +import at.tuwien.api.database.ViewDto; +import at.tuwien.api.database.query.QueryDto; +import at.tuwien.api.database.query.QueryResultDto; +import at.tuwien.api.database.table.TableBriefDto; import at.tuwien.api.database.table.TableDto; +import at.tuwien.api.database.table.TableHistoryDto; +import at.tuwien.api.database.table.TableStatisticDto; +import at.tuwien.api.database.table.columns.ColumnBriefDto; import at.tuwien.api.database.table.columns.ColumnDto; +import at.tuwien.api.database.table.columns.ColumnStatisticDto; import at.tuwien.api.database.table.columns.ColumnTypeDto; +import at.tuwien.api.database.table.constraints.ConstraintsDto; +import at.tuwien.api.database.table.constraints.foreign.ForeignKeyBriefDto; +import at.tuwien.api.database.table.constraints.foreign.ForeignKeyDto; +import at.tuwien.api.database.table.constraints.foreign.ForeignKeyReferenceDto; +import at.tuwien.api.database.table.constraints.foreign.ReferenceTypeDto; +import at.tuwien.api.database.table.constraints.primary.PrimaryKeyDto; +import at.tuwien.api.database.table.constraints.unique.UniqueDto; +import at.tuwien.config.QueryConfig; +import at.tuwien.exception.QueryNotFoundException; +import at.tuwien.exception.TableNotFoundException; +import com.github.dockerjava.zerodep.shaded.org.apache.commons.codec.binary.Hex; +import com.google.common.hash.Hashing; +import net.sf.jsqlparser.JSQLParserException; +import net.sf.jsqlparser.parser.CCJSqlParserManager; +import net.sf.jsqlparser.schema.Column; +import net.sf.jsqlparser.statement.select.*; +import org.jetbrains.annotations.NotNull; import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.Mappings; import org.testcontainers.shaded.org.apache.commons.io.FileUtils; import java.io.File; import java.io.IOException; import java.io.InputStream; +import java.io.StringReader; +import java.math.BigInteger; +import java.nio.charset.StandardCharsets; import java.sql.*; -import java.util.Map; +import java.sql.Date; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; +import java.time.format.DateTimeFormatterBuilder; +import java.util.*; import java.util.stream.Collectors; +import java.util.stream.Stream; @Mapper(componentModel = "spring") public interface DataMapper { org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(DataMapper.class); + DateTimeFormatter mariaDbFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss[.SSSSSS]") + .withZone(ZoneId.of("UTC")); + + /* redundant */ + ColumnBriefDto columnDtoToColumnBriefDto(ColumnDto data); + + /* redundant */ + @Mappings({ + @Mapping(target = "databaseId", source = "tdbid") + }) + TableBriefDto tableDtoToTableBriefDto(TableDto data); + + /* redundant */ + ColumnDto viewColumnDtoToColumnDto(ViewColumnDto data); + + ForeignKeyBriefDto foreignKeyDtoToForeignKeyBriefDto(ForeignKeyDto data); + default String rabbitMqTupleToInsertOrUpdateQuery(TableDto table, Map<String, Object> data) { /* parameterized query for prepared statement */ final StringBuilder statement = new StringBuilder("INSERT INTO `") @@ -37,6 +94,579 @@ public interface DataMapper { return statement.toString(); } + /** + * Map the inspected schema to either an existing view/table and append e.g. column or (if not existing) create a new view/table. + * @param database The database. + * @param resultSet The inspected schema. + * @return The database containing the updated view/table. + * @throws SQLException + */ + default ViewDto schemaResultSetToView(DatabaseDto database, ResultSet resultSet) throws SQLException { + return ViewDto.builder() + .name(resultSet.getString(1)) + .internalName(resultSet.getString(1)) + .vdbid(database.getId()) + .database(database) + .isInitialView(false) + .isPublic(database.getIsPublic()) + .query(resultSet.getString(9)) + .queryHash(Hashing.sha256() + .hashString(resultSet.getString(9), StandardCharsets.UTF_8) + .toString()) + .columns(new LinkedList<>()) + .identifiers(new LinkedList<>()) + .creator(database.getOwner()) + .createdBy(database.getOwner().getId()) + .build(); + } + + default TableStatisticDto resultSetToTableStatistic(ResultSet data) throws SQLException { + final TableStatisticDto statistic = TableStatisticDto.builder() + .columns(new LinkedHashMap<>()) + .build(); + while (data.next()) { + final ColumnStatisticDto columnStatistic = ColumnStatisticDto.builder() + .min(data.getBigDecimal(2)) + .max(data.getBigDecimal(3)) + .median(data.getBigDecimal(4)) + .mean(data.getBigDecimal(5)) + .stdDev(data.getBigDecimal(6)) + .build(); + statistic.getColumns().put(data.getString(1), columnStatistic); + } + return statistic; + } + + default TableDto resultSetToTable(ResultSet resultSet, TableDto table, QueryConfig queryConfig) throws SQLException { + final ColumnDto column = ColumnDto.builder() + .ordinalPosition(resultSet.getInt(1) - 1) /* start at zero */ + .autoGenerated(resultSet.getString(2) != null && resultSet.getString(2).startsWith("nextval")) + .isNullAllowed(resultSet.getString(3).equals("YES")) + .columnType(ColumnTypeDto.valueOf(resultSet.getString(4).toUpperCase())) + .d(resultSet.getString(7) != null ? resultSet.getLong(7) : null) + .name(resultSet.getString(10)) + .internalName(resultSet.getString(10)) + .table(table) + .tableId(table.getId()) + .databaseId(table.getTdbid()) + .description(resultSet.getString(11)) + .build(); + if (column.getColumnType().equals(ColumnTypeDto.ENUM)) { + column.setEnums(Arrays.stream(resultSet.getString(8) + .substring(0, resultSet.getString(8).length() - 1) + .replace("enum(", "") + .split(",")) + .map(value -> value.replace("'", "")) + .toList()); + } + if (column.getColumnType().equals(ColumnTypeDto.SET)) { + column.setSets(Arrays.stream(resultSet.getString(8) + .substring(0, resultSet.getString(8).length() - 1) + .replace("set(", "") + .split(",")) + .map(value -> value.replace("'", "")) + .toList()); + } + /* constraints */ + if (resultSet.getString(9) != null && resultSet.getString(9).equals("PRI")) { + table.getConstraints().getPrimaryKey().add(PrimaryKeyDto.builder() + .table(tableDtoToTableBriefDto(table)) + .column(columnDtoToColumnBriefDto(column)) + .build()); + } + /* fix boolean and set size for others */ + if (resultSet.getString(8).equalsIgnoreCase("tinyint(1)")) { + column.setColumnType(ColumnTypeDto.BOOL); + } else if (resultSet.getString(5) != null) { + column.setSize(resultSet.getLong(5)); + } else if (resultSet.getString(6) != null) { + column.setSize(resultSet.getLong(6)); + } + if (column.getColumnType().equals(ColumnTypeDto.TIMESTAMP) || column.getColumnType().equals(ColumnTypeDto.DATETIME)) { + column.setDateFormat(ImageDateDto.builder() + .id(queryConfig.getDefaultTimestampFormatId()) + .build()); + } else if (column.getColumnType().equals(ColumnTypeDto.DATE)) { + column.setDateFormat(ImageDateDto.builder() + .id(queryConfig.getDefaultDateFormatId()) + .build()); + } else if (column.getColumnType().equals(ColumnTypeDto.TIME)) { + column.setDateFormat(ImageDateDto.builder() + .id(queryConfig.getDefaultTimeFormatId()) + .build()); + } + table.getColumns() + .add(column); + return table; + } + + default ViewDto resultSetToTable(ResultSet resultSet, ViewDto view, QueryConfig queryConfig) throws SQLException { + final ViewColumnDto column = ViewColumnDto.builder() + .ordinalPosition(resultSet.getInt(1) - 1) /* start at zero */ + .autoGenerated(resultSet.getString(2) != null && resultSet.getString(2).startsWith("nextval")) + .isNullAllowed(resultSet.getString(3).equals("YES")) + .columnType(ColumnTypeDto.valueOf(resultSet.getString(4).toUpperCase())) + .d(resultSet.getString(7) != null ? resultSet.getLong(7) : null) + .name(resultSet.getString(10)) + .internalName(resultSet.getString(10)) + .databaseId(view.getDatabase().getId()) + .build(); + /* fix boolean and set size for others */ + if (resultSet.getString(8).equalsIgnoreCase("tinyint(1)")) { + column.setColumnType(ColumnTypeDto.BOOL); + } else if (resultSet.getString(5) != null) { + column.setSize(resultSet.getLong(5)); + } else if (resultSet.getString(6) != null) { + column.setSize(resultSet.getLong(6)); + } + if (column.getColumnType().equals(ColumnTypeDto.TIMESTAMP) || column.getColumnType().equals(ColumnTypeDto.DATETIME)) { + column.setDateFormat(ImageDateDto.builder() + .id(queryConfig.getDefaultTimestampFormatId()) + .build()); + } else if (column.getColumnType().equals(ColumnTypeDto.DATE)) { + column.setDateFormat(ImageDateDto.builder() + .id(queryConfig.getDefaultDateFormatId()) + .build()); + } else if (column.getColumnType().equals(ColumnTypeDto.TIME)) { + column.setDateFormat(ImageDateDto.builder() + .id(queryConfig.getDefaultTimeFormatId()) + .build()); + } + view.getColumns() + .add(column); + log.trace("parsed view {}.{} column: {}", view.getDatabase().getInternalName(), view.getInternalName(), column.getInternalName()); + return view; + } + + /** + * Parse columns from a SQL statement of a known database. + * @param database The database. + * @param query The SQL statement. + * @return The list of columns. + * @throws JSQLParserException The table/view or column was not found in the database. + */ + default List<ColumnDto> parseColumns(DatabaseDto database, String query) throws JSQLParserException { + final List<ColumnDto> columns = new ArrayList<>(); + final CCJSqlParserManager parserRealSql = new CCJSqlParserManager(); + final net.sf.jsqlparser.statement.Statement statement = parserRealSql.parse(new StringReader(query)); + log.trace("parse columns from query: {}", query); + /* bi-directional mapping */ + database.getTables() + .forEach(table -> table.getColumns() + .forEach(column -> column.setTable(table))); + /* check */ + if (!(statement instanceof Select selectStatement)) { + log.error("Query attempts to update the dataset, not a SELECT statement"); + throw new JSQLParserException("Query attempts to update the dataset"); + } + /* start parsing */ + final PlainSelect ps = (PlainSelect) selectStatement.getSelectBody(); + final List<SelectItem> clauses = ps.getSelectItems(); + log.trace("columns referenced in the from-clause: {}", clauses); + /* Parse all tables */ + final List<FromItem> fromItems = new ArrayList<>(fromItemToFromItems(ps.getFromItem())); + if (ps.getJoins() != null && !ps.getJoins().isEmpty()) { + log.trace("query contains join items: {}", ps.getJoins()); + for (net.sf.jsqlparser.statement.select.Join j : ps.getJoins()) { + if (j.getRightItem() != null) { + fromItems.add(j.getRightItem()); + } + } + } + final List<ColumnDto> allColumns = Stream.of(database.getViews() + .stream() + .map(ViewDto::getColumns) + .flatMap(List::stream) + .map(this::viewColumnDtoToColumnDto), + database.getTables() + .stream() + .map(TableDto::getColumns) + .flatMap(List::stream)) + .flatMap(i -> i) + .toList(); + log.trace("columns referenced in the from-clause and join-clause(s): {}", clauses); + /* Checking if all columns exist */ + for (SelectItem clause : clauses) { + final SelectExpressionItem item = (SelectExpressionItem) clause; + final Column column = (Column) item.getExpression(); + final Optional<net.sf.jsqlparser.schema.Table> optional = fromItems.stream() + .map(t -> (net.sf.jsqlparser.schema.Table) t) + .filter(t -> { + if (column.getTable() == null) { + /* column does not reference a specific table, so there is only one table */ + final String tableName = ((net.sf.jsqlparser.schema.Table) fromItems.get(0)).getName().replace("`", ""); + return tableMatches(t, tableName); + } + final String tableName = column.getTable().getName().replace("`", ""); + return tableMatches(t, tableName); + }) + .findFirst(); + if (optional.isEmpty()) { + log.error("Failed to find table/view {} (with designator {})", column.getTable().getName(), column.getTable().getAlias()); + throw new JSQLParserException("Failed to find table/view " + column.getTable().getName() + " (with alias " + column.getTable().getAlias() + ")"); + } + final String columnName = column.getColumnName().replace("`", ""); + final String tableOrView = optional.get().getName().replace("`", ""); + final List<ColumnDto> filteredColumns = allColumns.stream() + .filter(c -> (c.getAlias() != null && c.getAlias().equals(columnName)) || c.getInternalName().equals(columnName)) + .toList(); + final Optional<ColumnDto> optionalColumn = filteredColumns.stream() + .filter(c -> columnMatches(c, tableOrView)) + .findFirst(); + if (optionalColumn.isEmpty()) { + log.error("Failed to find column with name {} of table/view {} in {}", columnName, tableOrView, filteredColumns.stream().map(c -> c.getTable().getInternalName() + "." + c.getInternalName()).toList()); + throw new JSQLParserException("Failed to find column with name " + columnName + " of table/view " + tableOrView); + } + final ColumnDto resultColumn = optionalColumn.get(); + if (item.getAlias() != null) { + resultColumn.setAlias(item.getAlias().getName().replace("`", "")); + } + resultColumn.setDatabaseId(database.getId()); + resultColumn.setTable(resultColumn.getTable()); + resultColumn.setTableId(resultColumn.getTable().getId()); + log.trace("found column with internal name {} and alias {}", resultColumn.getInternalName(), resultColumn.getAlias()); + columns.add(resultColumn); + } + return columns; + } + + default boolean tableMatches(net.sf.jsqlparser.schema.Table table, String otherTableName) { + final String tableName = table.getName() + .trim() + .replace("`", ""); + if (table.getAlias() == null) { + /* table does not have designator */ + log.trace("table '{}' has no designator", tableName); + return tableName.equals(otherTableName); + } + /* has designator */ + final String designator = table.getAlias() + .getName() + .trim() + .replace("`", ""); + log.trace("table '{}' has designator {}", tableName, designator); + return designator.equals(otherTableName); + } + + default boolean columnMatches(ColumnDto column, String tableOrView) { + if (column.getTable() != null && column.getTable().getInternalName().equals(tableOrView)) { + log.trace("table '{}' found in column table", tableOrView); + return true; + } + if (column.getViews() == null) { + log.trace("table/view '{}' not found among column views: empty list", tableOrView); + return false; + } + /* maybe matches one of the other views */ + final boolean found = column.getViews() + .stream() + .anyMatch(v -> v.getInternalName().equals(tableOrView)); + if (!found) { + log.trace("table/view '{}' not found among column views: {}", tableOrView, column.getViews().stream().map(ViewDto::getInternalName).toList()); + } + return found; + } + + default List<FromItem> fromItemToFromItems(FromItem data) throws JSQLParserException { + return fromItemToFromItems(data, 0); + } + + default List<FromItem> fromItemToFromItems(FromItem data, Integer level) throws JSQLParserException { + final List<FromItem> fromItems = new LinkedList<>(); + if (data instanceof net.sf.jsqlparser.schema.Table table) { + fromItems.add(data); + log.trace("from-item {} is of type table: level ~> {}", table.getName(), level); + return fromItems; + } + if (data instanceof SubJoin subJoin) { + log.trace("from-item is of type sub-join: level ~> {}", level); + for (Join join : subJoin.getJoinList()) { + final List<FromItem> tmp = fromItemToFromItems(join.getRightItem(), level + 1); + if (tmp == null) { + log.error("Failed to find right sub-join table: {}", join.getRightItem()); + throw new JSQLParserException("Failed to find right sub-join table"); + } + fromItems.addAll(tmp); + } + final List<FromItem> tmp = fromItemToFromItems(subJoin.getLeft(), level + 1); + if (tmp == null) { + log.error("Failed to find left sub-join table: {}", subJoin.getLeft()); + throw new JSQLParserException("Failed to find left sub-join table"); + } + fromItems.addAll(tmp); + return fromItems; + } + log.warn("unknown from-item {}", data); + return null; + } + + default QueryDto resultSetToQueryDto(@NotNull ResultSet data) throws SQLException, QueryNotFoundException { + /* note that next() is called outside this mapping function */ + return QueryDto.builder() + .id(data.getLong(1)) + .created(LocalDateTime.parse(data.getString(2), mariaDbFormatter) + .atZone(ZoneId.of("UTC")) + .toInstant()) + .createdBy(UUID.fromString(data.getString(3))) + .query(data.getString(4)) + .queryHash(data.getString(5)) + .resultHash(data.getString(6)) + .resultNumber(data.getLong(7)) + .isPersisted(data.getBoolean(8)) + .execution(LocalDateTime.parse(data.getString(9), mariaDbFormatter) + .atZone(ZoneId.of("UTC")) + .toInstant()) + .build(); + } + + default List<TableHistoryDto> resultSetToTableHistory(ResultSet resultSet) throws SQLException { + /* columns */ + final List<TableHistoryDto> history = new LinkedList<>(); + while (resultSet.next()) { + history.add(TableHistoryDto.builder() + .timestamp(LocalDateTime.parse(resultSet.getString(1), mariaDbFormatter) + .atZone(ZoneId.of("UTC")) + .toInstant()) + .event(resultSet.getString(2)) + .total(resultSet.getLong(3)) + .build()); + } + log.trace("found {} history event(s)", history.size()); + return history; + } + + default TableDto resultSetToConstraint(ResultSet resultSet, TableDto table) throws SQLException { + final String type = resultSet.getString(2); + final String name = resultSet.getString(3); + final String columnName = resultSet.getString(4); + final String referencedTable = resultSet.getString(5); + final String referencedColumnName = resultSet.getString(6); + final ReferenceTypeDto deleteRule = resultSet.getString(7) != null ? ReferenceTypeDto.fromType(resultSet.getString(7)) : null; + final ReferenceTypeDto updateRule = resultSet.getString(8) != null ? ReferenceTypeDto.fromType(resultSet.getString(8)) : null; + final Optional<ColumnDto> optional = table.getColumns().stream() + .filter(c -> c.getInternalName().equals(columnName)) + .findFirst(); + if (optional.isEmpty()) { + log.error("Failed to find table column: {}", columnName); + throw new IllegalArgumentException("Failed to find table column"); + } + final ColumnDto column = optional.get(); + if (type.equals("FOREIGN KEY") || type.equals("UNIQUE")) { + final Optional<UniqueDto> optional2 = table.getConstraints().getUniques().stream().filter(u -> u.getName().equals(name)).findFirst(); + if (optional2.isPresent()) { + optional2.get() + .getColumns() + .add(column); + return table; + } + if (type.equals("UNIQUE")) { + table.getConstraints() + .getUniques() + .add(UniqueDto.builder() + .name(name) + .columns(new LinkedList<>(List.of(column))) + .build()); + return table; + } + final Optional<ForeignKeyDto> optional1 = table.getConstraints() + .getForeignKeys() + .stream() + .filter(fk -> fk.getName().equals(name)) + .findFirst(); + final ForeignKeyReferenceDto foreignKeyReference = ForeignKeyReferenceDto.builder() + .column(ColumnBriefDto.builder() + .name(columnName) + .internalName(columnName) + .databaseId(table.getTdbid()) + .build()) + .referencedColumn(ColumnBriefDto.builder() + .name(referencedColumnName) + .internalName(referencedColumnName) + .databaseId(table.getTdbid()) + .build()) + .build(); + if (optional1.isPresent()) { + foreignKeyReference.setForeignKey(foreignKeyDtoToForeignKeyBriefDto(optional1.get())); + optional1.get() + .getReferences() + .add(foreignKeyReference); + log.debug("found foreign key: create part ({}) referencing table {} ({})", columnName, referencedTable, referencedColumnName); + return table; + } + final ForeignKeyDto foreignKey = ForeignKeyDto.builder() + .name(name) + .table(tableDtoToTableBriefDto(table)) + .referencedTable(TableBriefDto.builder() + .name(referencedTable) + .internalName(referencedTable) + .databaseId(table.getTdbid()) + .build()) + .references(new LinkedList<>(List.of(foreignKeyReference))) + .onDelete(deleteRule) + .onUpdate(updateRule) + .build(); + foreignKey.getReferences() + .forEach(ref -> ref.setForeignKey(foreignKeyDtoToForeignKeyBriefDto(foreignKey))); + table.getConstraints() + .getForeignKeys() + .add(foreignKey); + log.debug("create foreign key: add part ({}) referencing table {} ({})", columnName, referencedTable, referencedColumnName); + return table; + } + return table; + } + + default TableDto schemaResultSetToTable(DatabaseDto database, ResultSet resultSet) throws SQLException, + TableNotFoundException { + if (!resultSet.next()) { + throw new TableNotFoundException("Failed to find table in the information schema"); + } + final TableDto table = TableDto.builder() + .name(resultSet.getString(1)) + .internalName(resultSet.getString(1)) + .isVersioned(resultSet.getString(2).equals("SYSTEM VERSIONED")) + .numRows(resultSet.getLong(3)) + .avgRowLength(resultSet.getLong(4)) + .dataLength(resultSet.getLong(5)) + .maxDataLength(resultSet.getLong(6)) + .tdbid(database.getId()) + .queueName("dbrepo") + .routingKey("dbrepo") + .description(resultSet.getString(10)) + .columns(new LinkedList<>()) + .identifiers(new LinkedList<>()) + .creator(database.getOwner()) + .createdBy(database.getOwner().getId()) + .owner(database.getOwner()) + .constraints(ConstraintsDto.builder() + .foreignKeys(new LinkedList<>()) + .primaryKey(new LinkedHashSet<>()) + .uniques(new LinkedList<>()) + .checks(new LinkedHashSet<>()) + .build()) + .isPublic(database.getIsPublic()) + .build(); + if (resultSet.getString(7) != null && !resultSet.getString(7).isEmpty()) { + table.setCreated(Timestamp.valueOf(resultSet.getString(7)) + .toInstant()); + } + return table; + } + + default Object dataColumnToObject(Object data, ColumnDto column) { + if (data == null) { + return null; + } + /* boolean encoding fix */ + if (column.getColumnType().equals(ColumnTypeDto.TINYINT) && column.getSize() == 1) { + log.trace("column {} is of type tinyint with size {}: map to boolean", column.getInternalName(), column.getSize()); + column.setColumnType(ColumnTypeDto.BOOL); + } + switch (column.getColumnType()) { + case DATE -> { + if (column.getDateFormat() == null) { + log.error("Missing date format for column {}", column.getId()); + throw new IllegalArgumentException("Missing date format"); + } + log.trace("mapping {} to date with format '{}'", data, column.getDateFormat()); + final DateTimeFormatter formatter = new DateTimeFormatterBuilder() + .parseCaseInsensitive() /* case insensitive to parse JAN and FEB */ + .appendPattern(column.getDateFormat().getUnixFormat()) + .toFormatter(Locale.ENGLISH); + final LocalDate date = LocalDate.parse(String.valueOf(data), formatter); + return date.atStartOfDay(ZoneId.of("UTC")) + .toInstant(); + } + case TIMESTAMP, DATETIME -> { + if (column.getDateFormat() == null) { + log.error("Missing date format for column {}", column.getId()); + throw new IllegalArgumentException("Missing date format"); + } + log.trace("mapping {} to timestamp with format '{}'", data, column.getDateFormat()); + return Timestamp.valueOf(data.toString()) + .toInstant(); + } + case BINARY, VARBINARY, BIT -> { + log.trace("mapping {} -> binary", data); + return Long.parseLong(String.valueOf(data), 2); + } + case TEXT, CHAR, VARCHAR, TINYTEXT, MEDIUMTEXT, LONGTEXT, ENUM, SET -> { + log.trace("mapping {} -> string", data); + return String.valueOf(data); + } + case BIGINT -> { + log.trace("mapping {} -> biginteger", data); + return new BigInteger(String.valueOf(data)); + } + case INT, SMALLINT, MEDIUMINT, TINYINT -> { + log.trace("mapping {} -> integer", data); + return Integer.parseInt(String.valueOf(data)); + } + case DECIMAL, FLOAT, DOUBLE -> { + log.trace("mapping {} -> double", data); + return Double.valueOf(String.valueOf(data)); + } + case BOOL -> { + log.trace("mapping {} -> boolean", data); + return Boolean.valueOf(String.valueOf(data)); + } + case TIME -> { + log.trace("mapping {} -> time", data); + return String.valueOf(data); + } + case YEAR -> { + final String date = String.valueOf(data); + log.trace("mapping {} -> year", date); + return Short.valueOf(date.substring(0, date.indexOf('-'))); + } + } + log.warn("column type {} is not known", column.getColumnType()); + throw new IllegalArgumentException("Column type not known"); + } + + default QueryResultDto resultListToQueryResultDto(List<ColumnDto> columns, ResultSet result) throws SQLException { + log.trace("mapping result list to query result, columns.size={}", columns.size()); + final List<Map<String, Object>> resultList = new LinkedList<>(); + while (result.next()) { + /* map the result set to the columns through the stored metadata in the metadata database */ + int[] idx = new int[]{1}; + final Map<String, Object> map = new HashMap<>(); + for (final ColumnDto column : columns) { + final String columnOrAlias; + if (column.getAlias() != null) { + log.debug("column {} has alias {}", column.getInternalName(), column.getAlias()); + columnOrAlias = column.getAlias(); + } else { + columnOrAlias = column.getInternalName(); + } + if (List.of(ColumnTypeDto.BLOB, ColumnTypeDto.TINYBLOB, ColumnTypeDto.MEDIUMBLOB, ColumnTypeDto.LONGBLOB).contains(column.getColumnType())) { + log.trace("column {} is of type {}", columnOrAlias, column.getColumnType().getType().toLowerCase()); + final Blob blob = result.getBlob(idx[0]++); + final String value = blob == null ? null : Hex.encodeHexString(blob.getBytes(1, (int) blob.length())).toUpperCase(); + map.put(columnOrAlias, value); + continue; + } + final Object object = dataColumnToObject(result.getObject(idx[0]++), column); + if (object == null) { + log.warn("result set for column {} is empty (=null)", column.getInternalName()); + } + map.put(columnOrAlias, object); + } + resultList.add(map); + } + final int[] idx = new int[]{0}; + final List<Map<String, Integer>> headers = columns.stream() + .map(c -> (Map<String, Integer>) new LinkedHashMap<String, Integer>() {{ + put(c.getAlias() != null ? c.getAlias() : c.getInternalName(), idx[0]++); + }}) + .toList(); + log.trace("created ordered header list: {}", headers); + return QueryResultDto.builder() + .result(resultList) + .headers(headers) + .build(); + } + default void prepareStatementWithColumnTypeObject(PreparedStatement ps, ColumnTypeDto columnType, int idx, Object value) throws SQLException { switch (columnType) { case BLOB, TINYBLOB, MEDIUMBLOB, LONGBLOB: diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/MariaDbMapper.java b/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/MariaDbMapper.java index afb0701455..8b43248271 100644 --- a/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/MariaDbMapper.java +++ b/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/MariaDbMapper.java @@ -1,41 +1,16 @@ package at.tuwien.mapper; -import at.tuwien.api.container.image.ImageDateDto; -import at.tuwien.api.database.DatabaseDto; -import at.tuwien.api.database.ViewColumnDto; -import at.tuwien.api.database.ViewDto; import at.tuwien.api.database.query.ImportCsvDto; -import at.tuwien.api.database.query.QueryDto; -import at.tuwien.api.database.query.QueryResultDto; import at.tuwien.api.database.table.*; import at.tuwien.api.database.table.columns.*; -import at.tuwien.api.database.table.constraints.ConstraintsDto; -import at.tuwien.api.database.table.constraints.foreign.ForeignKeyBriefDto; -import at.tuwien.api.database.table.constraints.foreign.ForeignKeyDto; -import at.tuwien.api.database.table.constraints.foreign.ForeignKeyReferenceDto; -import at.tuwien.api.database.table.constraints.foreign.ReferenceTypeDto; -import at.tuwien.api.database.table.constraints.primary.PrimaryKeyDto; -import at.tuwien.api.database.table.constraints.unique.UniqueDto; import at.tuwien.api.database.table.internal.PrivilegedTableDto; -import at.tuwien.config.QueryConfig; import at.tuwien.exception.*; import at.tuwien.utils.MariaDbUtil; -import com.github.dockerjava.zerodep.shaded.org.apache.commons.codec.binary.Hex; -import com.google.common.hash.Hashing; -import net.sf.jsqlparser.JSQLParserException; -import net.sf.jsqlparser.parser.CCJSqlParserManager; -import net.sf.jsqlparser.schema.Column; -import net.sf.jsqlparser.statement.select.*; -import org.jetbrains.annotations.NotNull; import org.mapstruct.Mapper; -import org.mapstruct.Mapping; -import org.mapstruct.Mappings; import org.mapstruct.Named; -import javax.swing.table.TableColumn; import java.io.*; import java.math.BigInteger; -import java.nio.charset.StandardCharsets; import java.sql.*; import java.sql.Date; import java.text.Normalizer; @@ -45,9 +20,8 @@ import java.time.format.DateTimeFormatterBuilder; import java.util.*; import java.util.regex.Pattern; import java.util.stream.Collectors; -import java.util.stream.Stream; -@Mapper(componentModel = "spring", uses = {MetadataMapper.class}) +@Mapper(componentModel = "spring", uses = {MetadataMapper.class, DataMapper.class}) public interface MariaDbMapper { org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(MariaDbMapper.class); @@ -108,49 +82,6 @@ public interface MariaDbMapper { return statement.toString(); } - default QueryResultDto resultListToQueryResultDto(List<ColumnDto> columns, ResultSet result) throws SQLException { - log.trace("mapping result list to query result, columns.size={}", columns.size()); - final List<Map<String, Object>> resultList = new LinkedList<>(); - while (result.next()) { - /* map the result set to the columns through the stored metadata in the metadata database */ - int[] idx = new int[]{1}; - final Map<String, Object> map = new HashMap<>(); - for (final ColumnDto column : columns) { - final String columnOrAlias; - if (column.getAlias() != null) { - log.debug("column {} has alias {}", column.getInternalName(), column.getAlias()); - columnOrAlias = column.getAlias(); - } else { - columnOrAlias = column.getInternalName(); - } - if (List.of(ColumnTypeDto.BLOB, ColumnTypeDto.TINYBLOB, ColumnTypeDto.MEDIUMBLOB, ColumnTypeDto.LONGBLOB).contains(column.getColumnType())) { - log.trace("column {} is of type {}", columnOrAlias, column.getColumnType().getType().toLowerCase()); - final Blob blob = result.getBlob(idx[0]++); - final String value = blob == null ? null : Hex.encodeHexString(blob.getBytes(1, (int) blob.length())).toUpperCase(); - map.put(columnOrAlias, value); - continue; - } - final Object object = dataColumnToObject(result.getObject(idx[0]++), column); - if (object == null) { - log.warn("result set for column {} is empty (=null)", column.getInternalName()); - } - map.put(columnOrAlias, object); - } - resultList.add(map); - } - final int[] idx = new int[]{0}; - final List<Map<String, Integer>> headers = columns.stream() - .map(c -> (Map<String, Integer>) new LinkedHashMap<String, Integer>() {{ - put(c.getAlias() != null ? c.getAlias() : c.getInternalName(), idx[0]++); - }}) - .toList(); - log.trace("created ordered header list: {}", headers); - return QueryResultDto.builder() - .result(resultList) - .headers(headers) - .build(); - } - default String databaseTablesSelectRawQuery() { final String statement = "SELECT DISTINCT t.`TABLE_NAME` FROM information_schema.TABLES t WHERE t.`TABLE_SCHEMA` = ? AND t.`TABLE_TYPE` = 'SYSTEM VERSIONED' AND t.`TABLE_NAME` != 'qs_queries' ORDER BY t.`TABLE_NAME` ASC"; log.trace("mapped select tables statement: {}", statement); @@ -182,7 +113,7 @@ public interface MariaDbMapper { } default String databaseTableConstraintsSelectRawQuery() { - final String statement = "SELECT k.`ORDINAL_POSITION`, c.`CONSTRAINT_TYPE`, k.`CONSTRAINT_NAME`, k.`COLUMN_NAME`, k.`REFERENCED_TABLE_NAME`, k.`REFERENCED_COLUMN_NAME`, r.`DELETE_RULE`, r.`UPDATE_RULE` FROM information_schema.TABLE_CONSTRAINTS c JOIN information_schema.KEY_COLUMN_USAGE k ON c.`TABLE_NAME` = k.`TABLE_NAME` AND c.`CONSTRAINT_NAME` = k.`CONSTRAINT_NAME` LEFT JOIN information_schema.REFERENTIAL_CONSTRAINTS r ON r.`CONSTRAINT_NAME` = k.`CONSTRAINT_NAME` WHERE LOWER(k.`COLUMN_NAME`) != 'row_end' AND c.`TABLE_SCHEMA` = ? AND c.`TABLE_NAME` = ? GROUP BY k.`ORDINAL_POSITION`, k.`CONSTRAINT_NAME` ORDER BY k.`ORDINAL_POSITION` ASC;"; + final String statement = "SELECT k.`ORDINAL_POSITION`, c.`CONSTRAINT_TYPE`, k.`CONSTRAINT_NAME`, k.`COLUMN_NAME`, k.`REFERENCED_TABLE_NAME`, k.`REFERENCED_COLUMN_NAME`, r.`DELETE_RULE`, r.`UPDATE_RULE` FROM information_schema.TABLE_CONSTRAINTS c JOIN information_schema.KEY_COLUMN_USAGE k ON c.`TABLE_NAME` = k.`TABLE_NAME` AND c.`CONSTRAINT_NAME` = k.`CONSTRAINT_NAME` LEFT JOIN information_schema.REFERENTIAL_CONSTRAINTS r ON r.`CONSTRAINT_NAME` = k.`CONSTRAINT_NAME` AND r.`CONSTRAINT_SCHEMA` = c.`TABLE_SCHEMA` AND r.`TABLE_NAME` = c.`TABLE_NAME` WHERE LOWER(k.`COLUMN_NAME`) != 'row_end' AND c.`TABLE_SCHEMA` = ? AND c.`TABLE_NAME` = ? ORDER BY k.`ORDINAL_POSITION` ASC;"; log.trace("mapped select table constraints statement: {}", statement); return statement; } @@ -411,23 +342,6 @@ public interface MariaDbMapper { return data.getLong(1); } - default TableStatisticDto resultSetToTableStatistic(ResultSet data) throws SQLException { - final TableStatisticDto statistic = TableStatisticDto.builder() - .columns(new LinkedHashMap<>()) - .build(); - while (data.next()) { - final ColumnStatisticDto columnStatistic = ColumnStatisticDto.builder() - .min(data.getBigDecimal(2)) - .max(data.getBigDecimal(3)) - .median(data.getBigDecimal(4)) - .mean(data.getBigDecimal(5)) - .stdDev(data.getBigDecimal(6)) - .build(); - statistic.getColumns().put(data.getString(1), columnStatistic); - } - return statistic; - } - /** * Selects the dataset page from a table/view. * @@ -490,48 +404,6 @@ public interface MariaDbMapper { return "DROP TABLE `" + tableName + "`;"; } - default String tupleToRawInsertQuery(PrivilegedTableDto table, TupleDto data) throws TableMalformedException { - log.trace("mapping table data to insert query, table={}, data={}", table, data); - if (table.getColumns().isEmpty()) { - throw new TableMalformedException("Columns are not known: empty"); - } - /* parameterized query for prepared statement */ - final StringBuilder statement = new StringBuilder("INSERT INTO `") - .append(table.getInternalName()) - .append("` (") - .append(data.getData() - .keySet() - .stream() - .map(o -> "`" + o + "`") - .collect(Collectors.joining(","))) - .append(") VALUES (") - .append(data.getData() - .keySet() - .stream() - .map(o -> "?") - .collect(Collectors.joining(","))); - statement.append(");"); - for (int i = 0; i < table.getColumns().size(); i++) { - final ColumnDto column = table.getColumns() - .get(i); - if (column.getAutoGenerated()) { - log.trace("column is auto-generated, skip."); - continue; - } - final Optional<Map.Entry<String, Object>> tuple = data.getData() - .entrySet() - .stream() - .filter(d -> d.getKey().equals(column.getInternalName())) - .findFirst(); - if (tuple.isEmpty()) { - log.error("Failed to map column name {}, known names: {}", column.getInternalName(), data.getData().keySet()); - throw new TableMalformedException("Failed to map column names: not all columns are present in the tuple!"); - } - } - log.trace("mapped tuple insert query: {}", statement); - return statement.toString(); - } - default String tableOrViewToRawExportQuery(String databaseName, String tableOrView, List<ColumnDto> columns, Instant timestamp, String filePath) { final StringBuilder statement = new StringBuilder("SELECT "); @@ -583,280 +455,6 @@ public interface MariaDbMapper { return statement.toString(); } - /** - * Map the inspected schema to either an existing view/table and append e.g. column or (if not existing) create a new view/table. - * @param database The database. - * @param resultSet The inspected schema. - * @return The database containing the updated view/table. - * @throws SQLException - */ - default ViewDto schemaResultSetToView(DatabaseDto database, ResultSet resultSet) throws SQLException { - return ViewDto.builder() - .name(resultSet.getString(1)) - .internalName(resultSet.getString(1)) - .vdbid(database.getId()) - .database(database) - .isInitialView(false) - .isPublic(database.getIsPublic()) - .query(resultSet.getString(9)) - .queryHash(Hashing.sha256() - .hashString(resultSet.getString(9), StandardCharsets.UTF_8) - .toString()) - .columns(new LinkedList<>()) - .identifiers(new LinkedList<>()) - .creator(database.getOwner()) - .createdBy(database.getOwner().getId()) - .build(); - } - - ViewColumnDto columnDtoToViewColumnDto(ColumnDto data); - - ColumnDto viewColumnDtoToColumnDto(ViewColumnDto data); - - default TableDto schemaResultSetToTable(DatabaseDto database, ResultSet resultSet) throws SQLException, - TableNotFoundException { - if (!resultSet.next()) { - throw new TableNotFoundException("Failed to find table in the information schema"); - } - final TableDto table = TableDto.builder() - .name(resultSet.getString(1)) - .internalName(resultSet.getString(1)) - .isVersioned(resultSet.getString(2).equals("SYSTEM VERSIONED")) - .numRows(resultSet.getLong(3)) - .avgRowLength(resultSet.getLong(4)) - .dataLength(resultSet.getLong(5)) - .maxDataLength(resultSet.getLong(6)) - .tdbid(database.getId()) - .queueName("dbrepo") - .routingKey("dbrepo") - .description(resultSet.getString(10)) - .columns(new LinkedList<>()) - .identifiers(new LinkedList<>()) - .creator(database.getOwner()) - .createdBy(database.getOwner().getId()) - .owner(database.getOwner()) - .constraints(ConstraintsDto.builder() - .foreignKeys(new LinkedList<>()) - .primaryKey(new LinkedHashSet<>()) - .uniques(new LinkedList<>()) - .checks(new LinkedHashSet<>()) - .build()) - .isPublic(database.getIsPublic()) - .build(); - if (resultSet.getString(7) != null && !resultSet.getString(7).isEmpty()) { - table.setCreated(Timestamp.valueOf(resultSet.getString(7)) - .toInstant()); - } - return table; - } - - ForeignKeyBriefDto foreignKeyDtoToForeignKeyBriefDto(ForeignKeyDto data); - - default TableDto resultSetToConstraint(ResultSet resultSet, TableDto table) throws SQLException { - final String type = resultSet.getString(2); - final String name = resultSet.getString(3); - final String columnName = resultSet.getString(4); - final String referencedTable = resultSet.getString(5); - final String referencedColumnName = resultSet.getString(6); - final ReferenceTypeDto deleteRule = resultSet.getString(7) != null ? ReferenceTypeDto.fromType(resultSet.getString(7)) : null; - final ReferenceTypeDto updateRule = resultSet.getString(8) != null ? ReferenceTypeDto.fromType(resultSet.getString(8)) : null; - final Optional<ColumnDto> optional = table.getColumns().stream() - .filter(c -> c.getInternalName().equals(columnName)) - .findFirst(); - if (optional.isEmpty()) { - log.error("Failed to find table column: {}", columnName); - throw new IllegalArgumentException("Failed to find table column"); - } - final ColumnDto column = optional.get(); - if (type.equals("FOREIGN KEY") || type.equals("UNIQUE")) { - final Optional<UniqueDto> optional2 = table.getConstraints().getUniques().stream().filter(u -> u.getName().equals(name)).findFirst(); - if (optional2.isPresent()) { - optional2.get() - .getColumns() - .add(column); - return table; - } - if (type.equals("UNIQUE")) { - table.getConstraints() - .getUniques() - .add(UniqueDto.builder() - .name(name) - .columns(new LinkedList<>(List.of(column))) - .build()); - return table; - } - final Optional<ForeignKeyDto> optional1 = table.getConstraints() - .getForeignKeys() - .stream() - .filter(fk -> fk.getName().equals(name)) - .findFirst(); - final ForeignKeyReferenceDto foreignKeyReference = ForeignKeyReferenceDto.builder() - .column(ColumnBriefDto.builder() - .name(columnName) - .internalName(columnName) - .databaseId(table.getTdbid()) - .build()) - .referencedColumn(ColumnBriefDto.builder() - .name(referencedColumnName) - .internalName(referencedColumnName) - .databaseId(table.getTdbid()) - .build()) - .build(); - if (optional1.isPresent()) { - foreignKeyReference.setForeignKey(foreignKeyDtoToForeignKeyBriefDto(optional1.get())); - optional1.get() - .getReferences() - .add(foreignKeyReference); - log.debug("found foreign key: create part ({}) referencing table {} ({})", columnName, referencedTable, referencedColumnName); - return table; - } - final ForeignKeyDto foreignKey = ForeignKeyDto.builder() - .name(name) - .table(tableDtoToTableBriefDto(table)) - .referencedTable(TableBriefDto.builder() - .name(referencedTable) - .internalName(referencedTable) - .databaseId(table.getTdbid()) - .build()) - .references(new LinkedList<>(List.of(foreignKeyReference))) - .onDelete(deleteRule) - .onUpdate(updateRule) - .build(); - foreignKey.getReferences() - .forEach(ref -> ref.setForeignKey(foreignKeyDtoToForeignKeyBriefDto(foreignKey))); - table.getConstraints() - .getForeignKeys() - .add(foreignKey); - log.debug("create foreign key: add part ({}) referencing table {} ({})", columnName, referencedTable, referencedColumnName); - return table; - } - return table; - } - - @Mappings({ - @Mapping(target = "databaseId", source = "tdbid") - }) - TableBriefDto tableDtoToTableBriefDto(TableDto data); - - ColumnBriefDto columnDtoToColumnBriefDto(ColumnDto data); - - default TableDto resultSetToTable(ResultSet resultSet, TableDto table, QueryConfig queryConfig) throws SQLException { - final ColumnDto column = ColumnDto.builder() - .ordinalPosition(resultSet.getInt(1) - 1) /* start at zero */ - .autoGenerated(resultSet.getString(2) != null && resultSet.getString(2).startsWith("nextval")) - .isNullAllowed(resultSet.getString(3).equals("YES")) - .columnType(ColumnTypeDto.valueOf(resultSet.getString(4).toUpperCase())) - .d(resultSet.getString(7) != null ? resultSet.getLong(7) : null) - .name(resultSet.getString(10)) - .internalName(resultSet.getString(10)) - .table(table) - .tableId(table.getId()) - .databaseId(table.getTdbid()) - .description(resultSet.getString(11)) - .build(); - if (column.getColumnType().equals(ColumnTypeDto.ENUM)) { - column.setEnums(Arrays.stream(resultSet.getString(8) - .substring(0, resultSet.getString(8).length() - 1) - .replace("enum(", "") - .split(",")) - .map(value -> value.replace("'", "")) - .toList()); - } - if (column.getColumnType().equals(ColumnTypeDto.SET)) { - column.setSets(Arrays.stream(resultSet.getString(8) - .substring(0, resultSet.getString(8).length() - 1) - .replace("set(", "") - .split(",")) - .map(value -> value.replace("'", "")) - .toList()); - } - /* constraints */ - if (resultSet.getString(9) != null && resultSet.getString(9).equals("PRI")) { - table.getConstraints().getPrimaryKey().add(PrimaryKeyDto.builder() - .table(tableDtoToTableBriefDto(table)) - .column(columnDtoToColumnBriefDto(column)) - .build()); - } - /* fix boolean and set size for others */ - if (resultSet.getString(8).equalsIgnoreCase("tinyint(1)")) { - column.setColumnType(ColumnTypeDto.BOOL); - } else if (resultSet.getString(5) != null) { - column.setSize(resultSet.getLong(5)); - } else if (resultSet.getString(6) != null) { - column.setSize(resultSet.getLong(6)); - } - if (column.getColumnType().equals(ColumnTypeDto.TIMESTAMP) || column.getColumnType().equals(ColumnTypeDto.DATETIME)) { - column.setDateFormat(ImageDateDto.builder() - .id(queryConfig.getDefaultTimestampFormatId()) - .build()); - } else if (column.getColumnType().equals(ColumnTypeDto.DATE)) { - column.setDateFormat(ImageDateDto.builder() - .id(queryConfig.getDefaultDateFormatId()) - .build()); - } else if (column.getColumnType().equals(ColumnTypeDto.TIME)) { - column.setDateFormat(ImageDateDto.builder() - .id(queryConfig.getDefaultTimeFormatId()) - .build()); - } - table.getColumns() - .add(column); - return table; - } - - default ViewDto resultSetToTable(ResultSet resultSet, ViewDto view, QueryConfig queryConfig) throws SQLException { - final ViewColumnDto column = ViewColumnDto.builder() - .ordinalPosition(resultSet.getInt(1) - 1) /* start at zero */ - .autoGenerated(resultSet.getString(2) != null && resultSet.getString(2).startsWith("nextval")) - .isNullAllowed(resultSet.getString(3).equals("YES")) - .columnType(ColumnTypeDto.valueOf(resultSet.getString(4).toUpperCase())) - .d(resultSet.getString(7) != null ? resultSet.getLong(7) : null) - .name(resultSet.getString(10)) - .internalName(resultSet.getString(10)) - .databaseId(view.getDatabase().getId()) - .build(); - /* fix boolean and set size for others */ - if (resultSet.getString(8).equalsIgnoreCase("tinyint(1)")) { - column.setColumnType(ColumnTypeDto.BOOL); - } else if (resultSet.getString(5) != null) { - column.setSize(resultSet.getLong(5)); - } else if (resultSet.getString(6) != null) { - column.setSize(resultSet.getLong(6)); - } - if (column.getColumnType().equals(ColumnTypeDto.TIMESTAMP) || column.getColumnType().equals(ColumnTypeDto.DATETIME)) { - column.setDateFormat(ImageDateDto.builder() - .id(queryConfig.getDefaultTimestampFormatId()) - .build()); - } else if (column.getColumnType().equals(ColumnTypeDto.DATE)) { - column.setDateFormat(ImageDateDto.builder() - .id(queryConfig.getDefaultDateFormatId()) - .build()); - } else if (column.getColumnType().equals(ColumnTypeDto.TIME)) { - column.setDateFormat(ImageDateDto.builder() - .id(queryConfig.getDefaultTimeFormatId()) - .build()); - } - view.getColumns() - .add(column); - log.trace("parsed view {}.{} column: {}", view.getDatabase().getInternalName(), view.getInternalName(), column.getInternalName()); - return view; - } - - default List<TableHistoryDto> resultSetToTableHistory(ResultSet resultSet) throws SQLException { - /* columns */ - final List<TableHistoryDto> history = new LinkedList<>(); - while (resultSet.next()) { - history.add(TableHistoryDto.builder() - .timestamp(LocalDateTime.parse(resultSet.getString(1), mariaDbFormatter) - .atZone(ZoneId.of("UTC")) - .toInstant()) - .event(resultSet.getString(2)) - .total(resultSet.getLong(3)) - .build()); - } - log.trace("found {} history event(s)", history.size()); - return history; - } - default String datasetToRawInsertQuery(String databaseName, PrivilegedTableDto table, ImportCsvDto data) { final StringBuilder statement = new StringBuilder("LOAD DATA INFILE '") .append(data.getLocation()) @@ -1292,258 +890,6 @@ public interface MariaDbMapper { } } - default Object dataColumnToObject(Object data, ColumnDto column) { - if (data == null) { - return null; - } - /* boolean encoding fix */ - if (column.getColumnType().equals(ColumnTypeDto.TINYINT) && column.getSize() == 1) { - log.trace("column {} is of type tinyint with size {}: map to boolean", column.getInternalName(), column.getSize()); - column.setColumnType(ColumnTypeDto.BOOL); - } - switch (column.getColumnType()) { - case DATE -> { - if (column.getDateFormat() == null) { - log.error("Missing date format for column {}", column.getId()); - throw new IllegalArgumentException("Missing date format"); - } - log.trace("mapping {} to date with format '{}'", data, column.getDateFormat()); - final DateTimeFormatter formatter = new DateTimeFormatterBuilder() - .parseCaseInsensitive() /* case insensitive to parse JAN and FEB */ - .appendPattern(column.getDateFormat().getUnixFormat()) - .toFormatter(Locale.ENGLISH); - final LocalDate date = LocalDate.parse(String.valueOf(data), formatter); - return date.atStartOfDay(ZoneId.of("UTC")) - .toInstant(); - } - case TIMESTAMP, DATETIME -> { - if (column.getDateFormat() == null) { - log.error("Missing date format for column {}", column.getId()); - throw new IllegalArgumentException("Missing date format"); - } - log.trace("mapping {} to timestamp with format '{}'", data, column.getDateFormat()); - return Timestamp.valueOf(data.toString()) - .toInstant(); - } - case BINARY, VARBINARY, BIT -> { - log.trace("mapping {} -> binary", data); - return Long.parseLong(String.valueOf(data), 2); - } - case TEXT, CHAR, VARCHAR, TINYTEXT, MEDIUMTEXT, LONGTEXT, ENUM, SET -> { - log.trace("mapping {} -> string", data); - return String.valueOf(data); - } - case BIGINT -> { - log.trace("mapping {} -> biginteger", data); - return new BigInteger(String.valueOf(data)); - } - case INT, SMALLINT, MEDIUMINT, TINYINT -> { - log.trace("mapping {} -> integer", data); - return Integer.parseInt(String.valueOf(data)); - } - case DECIMAL, FLOAT, DOUBLE -> { - log.trace("mapping {} -> double", data); - return Double.valueOf(String.valueOf(data)); - } - case BOOL -> { - log.trace("mapping {} -> boolean", data); - return Boolean.valueOf(String.valueOf(data)); - } - case TIME -> { - log.trace("mapping {} -> time", data); - return String.valueOf(data); - } - case YEAR -> { - final String date = String.valueOf(data); - log.trace("mapping {} -> year", date); - return Short.valueOf(date.substring(0, date.indexOf('-'))); - } - } - log.warn("column type {} is not known", column.getColumnType()); - throw new IllegalArgumentException("Column type not known"); - } - - /** - * Parse columns from a SQL statement of a known database. - * @param database The database. - * @param query The SQL statement. - * @return The list of columns. - * @throws JSQLParserException The table/view or column was not found in the database. - */ - default List<ColumnDto> parseColumns(DatabaseDto database, String query) throws JSQLParserException { - final List<ColumnDto> columns = new ArrayList<>(); - final CCJSqlParserManager parserRealSql = new CCJSqlParserManager(); - final net.sf.jsqlparser.statement.Statement statement = parserRealSql.parse(new StringReader(query)); - log.trace("parse columns from query: {}", query); - /* bi-directional mapping */ - database.getTables() - .forEach(table -> table.getColumns() - .forEach(column -> column.setTable(table))); - /* check */ - if (!(statement instanceof Select selectStatement)) { - log.error("Query attempts to update the dataset, not a SELECT statement"); - throw new JSQLParserException("Query attempts to update the dataset"); - } - /* start parsing */ - final PlainSelect ps = (PlainSelect) selectStatement.getSelectBody(); - final List<SelectItem> clauses = ps.getSelectItems(); - log.trace("columns referenced in the from-clause: {}", clauses); - /* Parse all tables */ - final List<FromItem> fromItems = new ArrayList<>(fromItemToFromItems(ps.getFromItem())); - if (ps.getJoins() != null && !ps.getJoins().isEmpty()) { - log.trace("query contains join items: {}", ps.getJoins()); - for (net.sf.jsqlparser.statement.select.Join j : ps.getJoins()) { - if (j.getRightItem() != null) { - fromItems.add(j.getRightItem()); - } - } - } - final List<ColumnDto> allColumns = Stream.of(database.getViews() - .stream() - .map(ViewDto::getColumns) - .flatMap(List::stream) - .map(this::viewColumnDtoToColumnDto), - database.getTables() - .stream() - .map(TableDto::getColumns) - .flatMap(List::stream)) - .flatMap(i -> i) - .toList(); - log.trace("columns referenced in the from-clause and join-clause(s): {}", clauses); - /* Checking if all columns exist */ - for (SelectItem clause : clauses) { - final SelectExpressionItem item = (SelectExpressionItem) clause; - final Column column = (Column) item.getExpression(); - final Optional<net.sf.jsqlparser.schema.Table> optional = fromItems.stream() - .map(t -> (net.sf.jsqlparser.schema.Table) t) - .filter(t -> { - if (column.getTable() == null) { - /* column does not reference a specific table, so there is only one table */ - final String tableName = ((net.sf.jsqlparser.schema.Table) fromItems.get(0)).getName().replace("`", ""); - return tableMatches(t, tableName); - } - final String tableName = column.getTable().getName().replace("`", ""); - return tableMatches(t, tableName); - }) - .findFirst(); - if (optional.isEmpty()) { - log.error("Failed to find table/view {} (with designator {})", column.getTable().getName(), column.getTable().getAlias()); - throw new JSQLParserException("Failed to find table/view " + column.getTable().getName() + " (with alias " + column.getTable().getAlias() + ")"); - } - final String columnName = column.getColumnName().replace("`", ""); - final String tableOrView = optional.get().getName().replace("`", ""); - final List<ColumnDto> filteredColumns = allColumns.stream() - .filter(c -> (c.getAlias() != null && c.getAlias().equals(columnName)) || c.getInternalName().equals(columnName)) - .toList(); - final Optional<ColumnDto> optionalColumn = filteredColumns.stream() - .filter(c -> columnMatches(c, tableOrView)) - .findFirst(); - if (optionalColumn.isEmpty()) { - log.error("Failed to find column with name {} of table/view {} in {}", columnName, tableOrView, filteredColumns.stream().map(c -> c.getTable().getInternalName() + "." + c.getInternalName()).toList()); - throw new JSQLParserException("Failed to find column with name " + columnName + " of table/view " + tableOrView); - } - final ColumnDto resultColumn = optionalColumn.get(); - if (item.getAlias() != null) { - resultColumn.setAlias(item.getAlias().getName().replace("`", "")); - } - resultColumn.setDatabaseId(database.getId()); - resultColumn.setTable(resultColumn.getTable()); - resultColumn.setTableId(resultColumn.getTable().getId()); - log.trace("found column with internal name {} and alias {}", resultColumn.getInternalName(), resultColumn.getAlias()); - columns.add(resultColumn); - } - return columns; - } - - default boolean tableMatches(net.sf.jsqlparser.schema.Table table, String otherTableName) { - final String tableName = table.getName() - .trim() - .replace("`", ""); - if (table.getAlias() == null) { - /* table does not have designator */ - log.trace("table '{}' has no designator", tableName); - return tableName.equals(otherTableName); - } - /* has designator */ - final String designator = table.getAlias() - .getName() - .trim() - .replace("`", ""); - log.trace("table '{}' has designator {}", tableName, designator); - return designator.equals(otherTableName); - } - - default boolean columnMatches(ColumnDto column, String tableOrView) { - if (column.getTable() != null && column.getTable().getInternalName().equals(tableOrView)) { - log.trace("table '{}' found in column table", tableOrView); - return true; - } - if (column.getViews() == null) { - log.trace("table/view '{}' not found among column views: empty list", tableOrView); - return false; - } - /* maybe matches one of the other views */ - final boolean found = column.getViews() - .stream() - .anyMatch(v -> v.getInternalName().equals(tableOrView)); - if (!found) { - log.trace("table/view '{}' not found among column views: {}", tableOrView, column.getViews().stream().map(ViewDto::getInternalName).toList()); - } - return found; - } - - default List<FromItem> fromItemToFromItems(FromItem data) throws JSQLParserException { - return fromItemToFromItems(data, 0); - } - - default List<FromItem> fromItemToFromItems(FromItem data, Integer level) throws JSQLParserException { - final List<FromItem> fromItems = new LinkedList<>(); - if (data instanceof net.sf.jsqlparser.schema.Table table) { - fromItems.add(data); - log.trace("from-item {} is of type table: level ~> {}", table.getName(), level); - return fromItems; - } - if (data instanceof SubJoin subJoin) { - log.trace("from-item is of type sub-join: level ~> {}", level); - for (Join join : subJoin.getJoinList()) { - final List<FromItem> tmp = fromItemToFromItems(join.getRightItem(), level + 1); - if (tmp == null) { - log.error("Failed to find right sub-join table: {}", join.getRightItem()); - throw new JSQLParserException("Failed to find right sub-join table"); - } - fromItems.addAll(tmp); - } - final List<FromItem> tmp = fromItemToFromItems(subJoin.getLeft(), level + 1); - if (tmp == null) { - log.error("Failed to find left sub-join table: {}", subJoin.getLeft()); - throw new JSQLParserException("Failed to find left sub-join table"); - } - fromItems.addAll(tmp); - return fromItems; - } - log.warn("unknown from-item {}", data); - return null; - } - - default QueryDto resultSetToQueryDto(@NotNull ResultSet data) throws SQLException, QueryNotFoundException { - /* note that next() is called outside this mapping function */ - return QueryDto.builder() - .id(data.getLong(1)) - .created(LocalDateTime.parse(data.getString(2), mariaDbFormatter) - .atZone(ZoneId.of("UTC")) - .toInstant()) - .createdBy(UUID.fromString(data.getString(3))) - .query(data.getString(4)) - .queryHash(data.getString(5)) - .resultHash(data.getString(6)) - .resultNumber(data.getLong(7)) - .isPersisted(data.getBoolean(8)) - .execution(LocalDateTime.parse(data.getString(9), mariaDbFormatter) - .atZone(ZoneId.of("UTC")) - .toInstant()) - .build(); - } - default String selectRawSelectQuery(String query, Instant timestamp, Long page, Long size) { query = query.toLowerCase(Locale.ROOT) .trim(); diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/MetadataMapper.java b/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/MetadataMapper.java index 4cde78c7d9..fca56314af 100644 --- a/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/MetadataMapper.java +++ b/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/MetadataMapper.java @@ -10,6 +10,7 @@ import at.tuwien.api.database.internal.PrivilegedDatabaseDto; import at.tuwien.api.database.internal.PrivilegedViewDto; import at.tuwien.api.database.table.TableBriefDto; import at.tuwien.api.database.table.TableDto; +import at.tuwien.api.database.table.columns.ColumnBriefDto; import at.tuwien.api.database.table.columns.ColumnDto; import at.tuwien.api.database.table.internal.PrivilegedTableDto; import at.tuwien.api.user.PrivilegedUserDto; @@ -33,9 +34,6 @@ public interface MetadataMapper { ViewColumnDto columnDtoToViewColumnDto(ColumnDto data); - /* keep */ - TableBriefDto tableDtoToTableBriefDto(TableDto data); - @Mappings({ @Mapping(target = "database", expression = "java(PrivilegedDatabaseDto.builder().container(PrivilegedContainerDto.builder().image(new ImageDto()).build()).build())") }) @@ -47,4 +45,9 @@ public interface MetadataMapper { PrivilegedUserDto userDtoToPrivilegedUserDto(UserDto data); + @Mappings({ + @Mapping(target = "databaseId", source = "tdbid") + }) + TableBriefDto tableDtoToTableBriefDto(TableDto data); + } diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/SchemaService.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/SchemaService.java index 2319d16b39..f5ef05b44a 100644 --- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/SchemaService.java +++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/SchemaService.java @@ -9,8 +9,25 @@ import java.sql.SQLException; public interface SchemaService { + /** + * Inspects the schema (columns with names, data types, unique-, check-, primary- and foreign key constraints) of + * a table with given name in the given database. + * @param database The database. + * @param tableName The table name. + * @return The inspected table if successful. + * @throws SQLException The connection to the database could not be established. + * @throws TableNotFoundException The table was not found in the given database. + */ TableDto inspectTable(PrivilegedDatabaseDto database, String tableName) throws SQLException, - QueryMalformedException, TableNotFoundException; + TableNotFoundException; - ViewDto inspectView(PrivilegedDatabaseDto database, String viewName) throws SQLException, ViewMalformedException, ViewNotFoundException, ViewSchemaException; + /** + * Inspects the schema (columns with names, data types) of a view with given name in the given database. + * @param database The database. + * @param viewName The table name. + * @return The inspected view if successful. + * @throws SQLException The connection to the database could not be established. + * @throws ViewNotFoundException The view was not found in the given database. + */ + ViewDto inspectView(PrivilegedDatabaseDto database, String viewName) throws SQLException, ViewNotFoundException; } diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/TableService.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/TableService.java index fb045b4a19..98ed0ec7ae 100644 --- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/TableService.java +++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/TableService.java @@ -21,11 +21,10 @@ public interface TableService { * @return List of tables, if successful. * @throws SQLException Failed to parse SQL query, contains invalid syntax. * @throws TableNotFoundException The table could not be inspected in the data database. - * @throws QueryMalformedException The inspection query is malformed. * @throws DatabaseMalformedException The database inspection was unsuccessful, likely due to a bug in the mapping. */ List<TableDto> getSchemas(PrivilegedDatabaseDto database) throws SQLException, TableNotFoundException, - QueryMalformedException, DatabaseMalformedException; + DatabaseMalformedException; /** * Generate table statistic for a given table. Only numerical columns are calculated. @@ -59,10 +58,9 @@ public interface TableService { * @throws TableNotFoundException The table could not be inspected in the data database. * @throws TableExistsException The table name already exists in the information_schema. * @throws TableNotFoundException The table could not be inspected in the data database. - * @throws QueryMalformedException The create/inspection query is malformed. */ TableDto createTable(PrivilegedDatabaseDto database, TableCreateDto data) throws SQLException, - TableMalformedException, TableExistsException, TableNotFoundException, QueryMalformedException; + TableMalformedException, TableExistsException, TableNotFoundException; /** * Drops a table in given table object. diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/SchemaServiceMariaDbImpl.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/SchemaServiceMariaDbImpl.java index 537c4878a4..cc5840080b 100644 --- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/SchemaServiceMariaDbImpl.java +++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/SchemaServiceMariaDbImpl.java @@ -1,17 +1,14 @@ package at.tuwien.service.impl; import at.tuwien.api.database.DatabaseDto; -import at.tuwien.api.database.ViewColumnDto; import at.tuwien.api.database.ViewDto; import at.tuwien.api.database.internal.PrivilegedDatabaseDto; import at.tuwien.api.database.table.TableDto; -import at.tuwien.api.database.table.columns.ColumnDto; import at.tuwien.api.database.table.constraints.unique.UniqueDto; import at.tuwien.config.QueryConfig; import at.tuwien.exception.TableNotFoundException; -import at.tuwien.exception.ViewMalformedException; import at.tuwien.exception.ViewNotFoundException; -import at.tuwien.exception.ViewSchemaException; +import at.tuwien.mapper.DataMapper; import at.tuwien.mapper.MariaDbMapper; import at.tuwien.mapper.MetadataMapper; import at.tuwien.service.SchemaService; @@ -25,20 +22,20 @@ import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.LinkedList; -import java.util.List; -import java.util.Optional; @Log4j2 @Service public class SchemaServiceMariaDbImpl extends HibernateConnector implements SchemaService { + private final DataMapper dataMapper; private final QueryConfig queryConfig; private final MariaDbMapper mariaDbMapper; private final MetadataMapper metadataMapper; @Autowired - public SchemaServiceMariaDbImpl(QueryConfig queryConfig, MariaDbMapper mariaDbMapper, + public SchemaServiceMariaDbImpl(DataMapper dataMapper, QueryConfig queryConfig, MariaDbMapper mariaDbMapper, MetadataMapper metadataMapper) { + this.dataMapper = dataMapper; this.queryConfig = queryConfig; this.mariaDbMapper = mariaDbMapper; this.metadataMapper = metadataMapper; @@ -56,7 +53,7 @@ public class SchemaServiceMariaDbImpl extends HibernateConnector implements Sche statement1.setString(1, database.getInternalName()); statement1.setString(2, tableName); log.trace("1={}, 2={}", database.getInternalName(), tableName); - TableDto table = mariaDbMapper.schemaResultSetToTable(metadataMapper.privilegedDatabaseDtoToDatabaseDto(database), statement1.executeQuery()); + TableDto table = dataMapper.schemaResultSetToTable(metadataMapper.privilegedDatabaseDtoToDatabaseDto(database), statement1.executeQuery()); /* obtain columns metadata */ final PreparedStatement statement2 = connection.prepareStatement(mariaDbMapper.databaseTableColumnsSelectRawQuery()); statement2.setString(1, database.getInternalName()); @@ -64,7 +61,7 @@ public class SchemaServiceMariaDbImpl extends HibernateConnector implements Sche log.trace("1={}, 2={}", database.getInternalName(), tableName); final ResultSet resultSet2 = statement2.executeQuery(); while (resultSet2.next()) { - table = mariaDbMapper.resultSetToTable(resultSet2, table, queryConfig); + table = dataMapper.resultSetToTable(resultSet2, table, queryConfig); } /* obtain check constraints metadata */ final PreparedStatement statement3 = connection.prepareStatement(mariaDbMapper.columnsCheckConstraintSelectRawQuery()); @@ -86,7 +83,7 @@ public class SchemaServiceMariaDbImpl extends HibernateConnector implements Sche log.trace("1={}, 2={}", database.getInternalName(), tableName); final ResultSet resultSet4 = statement4.executeQuery(); while (resultSet4.next()) { - table = mariaDbMapper.resultSetToConstraint(resultSet4, table); + table = dataMapper.resultSetToConstraint(resultSet4, table); for (UniqueDto uk : table.getConstraints().getUniques()) { uk.setTable(metadataMapper.tableDtoToTableBriefDto(table)); final TableDto tmpTable = table; @@ -133,7 +130,7 @@ public class SchemaServiceMariaDbImpl extends HibernateConnector implements Sche if (!resultSet1.next()) { throw new ViewNotFoundException("Failed to find view in the information schema"); } - ViewDto view = mariaDbMapper.schemaResultSetToView(metadataMapper.privilegedDatabaseDtoToDatabaseDto(privilegedDatabase), resultSet1); + ViewDto view = dataMapper.schemaResultSetToView(metadataMapper.privilegedDatabaseDtoToDatabaseDto(privilegedDatabase), resultSet1); view.setDatabase(database); view.setVdbid(database.getId()); view.setCreator(database.getCreator()); @@ -148,7 +145,7 @@ public class SchemaServiceMariaDbImpl extends HibernateConnector implements Sche .columns(new LinkedList<>()) .build(); while (resultSet2.next()) { - tmp = mariaDbMapper.resultSetToTable(resultSet2, tmp, queryConfig); + tmp = dataMapper.resultSetToTable(resultSet2, tmp, queryConfig); } view.setColumns(tmp.getColumns() .stream() diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/SubsetServiceMariaDbImpl.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/SubsetServiceMariaDbImpl.java index d298f2fada..2ab2f7b349 100644 --- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/SubsetServiceMariaDbImpl.java +++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/SubsetServiceMariaDbImpl.java @@ -14,6 +14,7 @@ import at.tuwien.config.S3Config; import at.tuwien.exception.*; import at.tuwien.gateway.DataDatabaseSidecarGateway; import at.tuwien.gateway.MetadataServiceGateway; +import at.tuwien.mapper.DataMapper; import at.tuwien.mapper.MariaDbMapper; import at.tuwien.mapper.MetadataMapper; import at.tuwien.service.SubsetService; @@ -35,6 +36,7 @@ import java.util.UUID; public class SubsetServiceMariaDbImpl extends HibernateConnector implements SubsetService { private final S3Config s3Config; + private final DataMapper dataMapper; private final MariaDbMapper mariaDbMapper; private final MetadataMapper metadataMapper; private final StorageService storageService; @@ -42,10 +44,12 @@ public class SubsetServiceMariaDbImpl extends HibernateConnector implements Subs private final DataDatabaseSidecarGateway dataDatabaseSidecarGateway; @Autowired - public SubsetServiceMariaDbImpl(S3Config s3Config, MariaDbMapper mariaDbMapper, MetadataMapper metadataMapper, - StorageService storageService, MetadataServiceGateway metadataServiceGateway, + public SubsetServiceMariaDbImpl(S3Config s3Config, DataMapper dataMapper, MariaDbMapper mariaDbMapper, + MetadataMapper metadataMapper, StorageService storageService, + MetadataServiceGateway metadataServiceGateway, DataDatabaseSidecarGateway dataDatabaseSidecarGateway) { this.s3Config = s3Config; + this.dataMapper = dataMapper; this.mariaDbMapper = mariaDbMapper; this.metadataMapper = metadataMapper; this.storageService = storageService; @@ -97,7 +101,7 @@ public class SubsetServiceMariaDbImpl extends HibernateConnector implements Subs SQLException { final List<ColumnDto> columns; try { - columns = mariaDbMapper.parseColumns(metadataMapper.privilegedDatabaseDtoToDatabaseDto(database), query.getQuery()); + columns = dataMapper.parseColumns(metadataMapper.privilegedDatabaseDtoToDatabaseDto(database), query.getQuery()); } catch (JSQLParserException e) { log.error("Failed to map/parse columns: {}", e.getMessage()); throw new TableMalformedException("Failed to map/parse columns: " + e.getMessage(), e); @@ -129,7 +133,7 @@ public class SubsetServiceMariaDbImpl extends HibernateConnector implements Subs final ResultSet resultSet = statement.executeQuery(); final List<QueryDto> queries = new LinkedList<>(); while (resultSet.next()) { - final QueryDto query = mariaDbMapper.resultSetToQueryDto(resultSet); + final QueryDto query = dataMapper.resultSetToQueryDto(resultSet); query.setIdentifiers(identifiers.stream() .filter(i -> i.getType().equals(IdentifierTypeDto.SUBSET)) .filter(i -> i.getQueryId().equals(query.getId())) @@ -176,7 +180,7 @@ public class SubsetServiceMariaDbImpl extends HibernateConnector implements Subs try { final PreparedStatement preparedStatement = connection.prepareStatement(statement); final ResultSet resultSet = preparedStatement.executeQuery(); - return mariaDbMapper.resultListToQueryResultDto(columns, resultSet); + return dataMapper.resultListToQueryResultDto(columns, resultSet); } catch (SQLException e) { log.error("Failed to execute and map time-versioned query: {}", e.getMessage()); throw new TableMalformedException("Failed to execute and map time-versioned query: " + e.getMessage(), e); @@ -214,7 +218,7 @@ public class SubsetServiceMariaDbImpl extends HibernateConnector implements Subs if (!resultSet.next()) { throw new QueryNotFoundException("Failed to find query"); } - final QueryDto query = mariaDbMapper.resultSetToQueryDto(resultSet); + final QueryDto query = dataMapper.resultSetToQueryDto(resultSet); query.setIdentifiers(metadataServiceGateway.getIdentifiers(database.getId(), queryId)); final UserDto creator = metadataServiceGateway.getUserById(query.getCreatedBy()); log.debug("retrieved creator from metadata service: creator.id={}, creator.username={}", creator.getId(), creator.getUsername()); diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/TableServiceMariaDbImpl.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/TableServiceMariaDbImpl.java index 55e96c5161..be15d46895 100644 --- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/TableServiceMariaDbImpl.java +++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/TableServiceMariaDbImpl.java @@ -13,6 +13,7 @@ import at.tuwien.api.database.table.internal.TableCreateDto; import at.tuwien.config.S3Config; import at.tuwien.exception.*; import at.tuwien.gateway.DataDatabaseSidecarGateway; +import at.tuwien.mapper.DataMapper; import at.tuwien.mapper.MariaDbMapper; import at.tuwien.service.SchemaService; import at.tuwien.service.StorageService; @@ -33,16 +34,18 @@ import java.util.*; public class TableServiceMariaDbImpl extends HibernateConnector implements TableService { private final S3Config s3Config; + private final DataMapper dataMapper; private final MariaDbMapper mariaDbMapper; private final SchemaService schemaService; private final StorageService storageService; private final DataDatabaseSidecarGateway dataDatabaseSidecarGateway; @Autowired - public TableServiceMariaDbImpl(S3Config s3Config, MariaDbMapper mariaDbMapper, SchemaService schemaService, - StorageService storageService, + public TableServiceMariaDbImpl(S3Config s3Config, DataMapper dataMapper, MariaDbMapper mariaDbMapper, + SchemaService schemaService, StorageService storageService, DataDatabaseSidecarGateway dataDatabaseSidecarGateway) { this.s3Config = s3Config; + this.dataMapper = dataMapper; this.mariaDbMapper = mariaDbMapper; this.schemaService = schemaService; this.storageService = storageService; @@ -51,7 +54,7 @@ public class TableServiceMariaDbImpl extends HibernateConnector implements Table @Override public List<TableDto> getSchemas(PrivilegedDatabaseDto database) throws SQLException, TableNotFoundException, - QueryMalformedException, DatabaseMalformedException { + DatabaseMalformedException { final ComboPooledDataSource dataSource = getPrivilegedDataSource(database); final Connection connection = dataSource.getConnection(); final List<TableDto> tables = new LinkedList<>(); @@ -91,7 +94,7 @@ public class TableServiceMariaDbImpl extends HibernateConnector implements Table /* obtain statistic */ final ResultSet resultSet = connection.prepareStatement(mariaDbMapper.tableColumnStatisticsSelectRawQuery(table.getColumns(), table.getInternalName())) .executeQuery(); - statistic = mariaDbMapper.resultSetToTableStatistic(resultSet); + statistic = dataMapper.resultSetToTableStatistic(resultSet); statistic.setRows(getCount(table, null)); } catch (SQLException e) { connection.rollback(); @@ -109,14 +112,13 @@ public class TableServiceMariaDbImpl extends HibernateConnector implements Table } @Override - public TableDto find(PrivilegedDatabaseDto database, String tableName) throws TableNotFoundException, SQLException, - QueryMalformedException { + public TableDto find(PrivilegedDatabaseDto database, String tableName) throws TableNotFoundException, SQLException { return schemaService.inspectTable(database, tableName); } @Override public TableDto createTable(PrivilegedDatabaseDto database, TableCreateDto data) throws SQLException, - TableMalformedException, TableExistsException, TableNotFoundException, QueryMalformedException { + TableMalformedException, TableExistsException, TableNotFoundException { final String tableName = mariaDbMapper.nameToInternalName(data.getName()); final ComboPooledDataSource dataSource = getPrivilegedDataSource(database); final Connection connection = dataSource.getConnection(); @@ -181,7 +183,7 @@ public class TableServiceMariaDbImpl extends HibernateConnector implements Table timestamp, size, page)) .executeQuery(); connection.commit(); - queryResult = mariaDbMapper.resultListToQueryResultDto(table.getColumns(), resultSet); + queryResult = dataMapper.resultListToQueryResultDto(table.getColumns(), resultSet); } catch (SQLException e) { connection.rollback(); log.error("Failed to find data from table {}.{}: {}", table.getDatabase().getInternalName(), table.getInternalName(), e.getMessage()); @@ -205,7 +207,7 @@ public class TableServiceMariaDbImpl extends HibernateConnector implements Table final ResultSet resultSet = connection.prepareStatement(mariaDbMapper.selectHistoryRawQuery( table.getDatabase().getInternalName(), table.getInternalName(), size)) .executeQuery(); - history = mariaDbMapper.resultSetToTableHistory(resultSet); + history = dataMapper.resultSetToTableHistory(resultSet); connection.commit(); } catch (SQLException e) { connection.rollback(); diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/ViewServiceMariaDbImpl.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/ViewServiceMariaDbImpl.java index c85f5bfbdb..6f88c40973 100644 --- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/ViewServiceMariaDbImpl.java +++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/ViewServiceMariaDbImpl.java @@ -11,6 +11,7 @@ import at.tuwien.config.QueryConfig; import at.tuwien.config.S3Config; import at.tuwien.exception.*; import at.tuwien.gateway.DataDatabaseSidecarGateway; +import at.tuwien.mapper.DataMapper; import at.tuwien.mapper.MariaDbMapper; import at.tuwien.mapper.MetadataMapper; import at.tuwien.service.SchemaService; @@ -37,6 +38,7 @@ import java.util.List; public class ViewServiceMariaDbImpl extends HibernateConnector implements ViewService { private final S3Config s3Config; + private final DataMapper dataMapper; private final QueryConfig queryConfig; private final MariaDbMapper mariaDbMapper; private final SchemaService schemaService; @@ -45,11 +47,12 @@ public class ViewServiceMariaDbImpl extends HibernateConnector implements ViewSe private final DataDatabaseSidecarGateway dataDatabaseSidecarGateway; @Autowired - public ViewServiceMariaDbImpl(S3Config s3Config, QueryConfig queryConfig, MariaDbMapper mariaDbMapper, - SchemaService schemaService, StorageService storageService, - MetadataMapper metadataMapper, + public ViewServiceMariaDbImpl(S3Config s3Config, DataMapper dataMapper, QueryConfig queryConfig, + MariaDbMapper mariaDbMapper, SchemaService schemaService, + StorageService storageService, MetadataMapper metadataMapper, DataDatabaseSidecarGateway dataDatabaseSidecarGateway) { this.s3Config = s3Config; + this.dataMapper = dataMapper; this.queryConfig = queryConfig; this.mariaDbMapper = mariaDbMapper; this.schemaService = schemaService; @@ -122,7 +125,7 @@ public class ViewServiceMariaDbImpl extends HibernateConnector implements ViewSe statement2.setString(2, view.getInternalName()); final ResultSet resultSet2 = statement2.executeQuery(); while (resultSet2.next()) { - view = mariaDbMapper.resultSetToTable(resultSet2, view, queryConfig); + view = dataMapper.resultSetToTable(resultSet2, view, queryConfig); } connection.commit(); } catch (SQLException e) { @@ -152,7 +155,7 @@ public class ViewServiceMariaDbImpl extends HibernateConnector implements ViewSe mariaDbMapper.selectDatasetRawQuery(view.getDatabase().getInternalName(), view.getInternalName(), mappedColumns, timestamp, size, page)) .executeQuery(); - queryResult = mariaDbMapper.resultListToQueryResultDto(mappedColumns, resultSet); + queryResult = dataMapper.resultListToQueryResultDto(mappedColumns, resultSet); queryResult.setId(view.getId()); connection.commit(); } catch (SQLException e) { diff --git a/dbrepo-metadata-db/Dockerfile b/dbrepo-metadata-db/Dockerfile deleted file mode 100644 index dab74c702c..0000000000 --- a/dbrepo-metadata-db/Dockerfile +++ /dev/null @@ -1,6 +0,0 @@ -FROM bitnami/mariadb:11.2.2-debian-11-r0 as runtime - -ENV MARIADB_DATABASE=fda -ENV MARIADB_ROOT_PASSWORD=dbrepo - -COPY ./setup-schema.sql /docker-entrypoint-initdb.d/setup-schema.sql \ No newline at end of file diff --git a/dbrepo-metadata-db/migrate_1.4.0-1.4.1.sql b/dbrepo-metadata-db/migrate_1.4.0-1.4.1.sql deleted file mode 100644 index a849d52476..0000000000 --- a/dbrepo-metadata-db/migrate_1.4.0-1.4.1.sql +++ /dev/null @@ -1,19 +0,0 @@ -ALTER TABLE mdb_databases DROP SYSTEM VERSIONING; -ALTER TABLE mdb_databases ADD COLUMN image longblob; -ALTER TABLE mdb_databases ADD SYSTEM VERSIONING; -ALTER TABLE mdb_tables DROP SYSTEM VERSIONING; -ALTER TABLE mdb_tables ADD COLUMN processed_constraints BOOLEAN NOT NULL DEFAULT false; -ALTER TABLE mdb_tables ADD SYSTEM VERSIONING; -ALTER TABLE mdb_columns DROP SYSTEM VERSIONING; -ALTER TABLE mdb_columns DROP COLUMN alias; -ALTER TABLE mdb_columns ADD SYSTEM VERSIONING; -ALTER TABLE mdb_constraints_foreign_key DROP SYSTEM VERSIONING; -ALTER TABLE mdb_constraints_foreign_key ADD COLUMN name VARCHAR(255) NOT NULL; -ALTER TABLE mdb_constraints_foreign_key ADD SYSTEM VERSIONING; -ALTER TABLE mdb_constraints_unique DROP SYSTEM VERSIONING; -ALTER TABLE mdb_constraints_unique ADD COLUMN name VARCHAR(255) NOT NULL; -ALTER TABLE mdb_constraints_unique ADD SYSTEM VERSIONING; -ALTER TABLE mdb_view_columns DROP SYSTEM VERSIONING; -ALTER TABLE mdb_view_columns ADD COLUMN alias VARCHAR(100); -ALTER TABLE mdb_view_columns CHANGE COLUMN position ordinal_position INTEGER; -ALTER TABLE mdb_view_columns ADD SYSTEM VERSIONING; \ No newline at end of file diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TupleDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TupleDto.java index 88170c4e0f..a428cb5726 100644 --- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TupleDto.java +++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TupleDto.java @@ -16,7 +16,7 @@ import java.util.Map; @ToString public class TupleDto { - @NotNull(message = "data is required") + @NotNull private Map<String, Object> data; } diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/JacksonConfig.java b/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/JacksonConfig.java index a451032e9d..61e7f2b180 100644 --- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/JacksonConfig.java +++ b/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/JacksonConfig.java @@ -25,7 +25,6 @@ public class JacksonConfig { objectMapper.registerModule(new Hibernate6Module()); /* lazy load mapping on REST endpoints */ objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); objectMapper.setTimeZone(TimeZone.getTimeZone("UTC")); - log.debug("current time is {}", objectMapper.writeValueAsString(new Date())); return objectMapper; } diff --git a/dbrepo-search-service/Pipfile.lock b/dbrepo-search-service/Pipfile.lock index 3388956b20..7117575adf 100644 --- a/dbrepo-search-service/Pipfile.lock +++ b/dbrepo-search-service/Pipfile.lock @@ -929,11 +929,11 @@ }, "pydantic": { "hashes": [ - "sha256:c46c76a40bb1296728d7a8b99aa73dd70a48c3510111ff290034f860c99c419e", - "sha256:ea91b002777bf643bb20dd717c028ec43216b24a6001a280f83877fd2655d0b4" + "sha256:0c84efd9548d545f63ac0060c1e4d39bb9b14db8b3c0652338aecc07b5adec52", + "sha256:ee8538d41ccb9c0a9ad3e0e5f07bf15ed8015b481ced539a1759d8cc89ae90d0" ], "markers": "python_version >= '3.8'", - "version": "==2.7.3" + "version": "==2.7.4" }, "pydantic-core": { "hashes": [ diff --git a/dbrepo-search-service/lib/dbrepo-1.4.4-py3-none-any.whl b/dbrepo-search-service/lib/dbrepo-1.4.4-py3-none-any.whl index 503cfef91315990bbf06027d6de14c8b3184507b..7e8fd7fca5aa6158bf57952f7f1050a08b331402 100644 GIT binary patch delta 17178 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 delta 15226 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 diff --git a/dbrepo-search-service/lib/dbrepo-1.4.4.tar.gz b/dbrepo-search-service/lib/dbrepo-1.4.4.tar.gz index 9a90176f0a093b05d89d1cd74cf701cd0730861a..3e45d4513a31a1fda334ed9ad2c5cbad3803199a 100644 GIT binary patch literal 39403 zcmb2|=HS@Jn3KlzKP9OswIE;DP|rlqM6V>Vh~drN>UwGObq06#|J8i<ai8t9`BR_n zzWht(t!39*lUr8Xu5X(C_T;nWeX3sbzGk@1?Upt5-~XGtVfw?EQt8uvN`G%f%u?hO zU||$sIdQ8j_jkSCS^xZ*H<Ry``+vImaQ>eC*4Dq-FP7Kr+r4@F?(cIyzTB-^<797O z%kcm1_MbO@ACzFbHsNY{{M&yU>MJ(XmxNeb{CN1{!STIY--pd#|L^kduQyKIy|q^M z3g5Q<)w_QFfAvA&|GRxwcP{>4Wx2n)V9S2~_`W#VgMaQ@-?02~&LZa7A9*{Y)9F8- zs_p&nWWRN~!vF7mmp;|ktNx#^^#8lk&;PHE%NKH8D+`<S|Mrys>1!uHtK9ul<n#X* z4;0-0y_bFaPJYs#`?eKdv)Jdqe<%N@@$dG{XMX<gJ@wx-`O<Pjquu3aEH>{t^D#2; zXZ(!k(d&}mTrFF5?7pwM$=;0{w{I?<5dBh*!|nL(+x`9hrjrj`iOJuPTO9E3n^f4I zytuvD(!HO9A3u5YXG`hbT^9M$`FiVmW|wWwiZRt+ujiNV_n~mA*W7Klu7|I^ZvLZ1 z>c(2h<!kaS!x&Ed+-ll*cGruGyB^-3xh<Dx=1U32FD421E|~i)PcMmGemq;U_PVjt z{7~K*dh>2`@BXnvYu2Gnwx{`RUYi|x-u6=3mgQvCv9~ueHtXf5h~N5tr=TGHPsWbg zABm2Z+okzt3afl9+AES2TW<1g&B54&9sPWtc^o*kq7L3LIQ-z;*ERMW^D@*|yA`Cf zu`$S2sD+fUg?L<WbZ+4Fxt$SoSyRP{-P+@Z@!>Z?+Ctn4%u__q?g(&D$S|DW%+|y< zFFTy~a`LBkUytyO=08kI4)8UWA71#nW15TO<BMGHDy(G^&Q?6GYB{d)#Z9lk$0gMC zK~c{&SMAqVMDMSNn7wD!?-P5pc;>S&Zt;lV`yXe@bp6FFgBKBgTMoqwvf3nPSUqca z_&_nn{>?qkBdd-*mR<br@C)IX$+xa)e$G%dchnZ;Hdy%Z<NGy&+pcW?<#1N;^R62u zPYa&^_GNm`RB7=r)j5&j68DEz!-m99GxVcd)beLCyS#`pn6mMjsm)@=|5tgh_i|l1 znt$)tGP_qF<S#ur_^S2BwDcE$6r~d8Gen<ucVT$H@agX(AC9Eg2wm8)Bw{V^g<S@$ ziB-Il=a_wpm|rOuvV42(q93+R61!}<ccoogGl@CJGS*rp=zxlejJZKhc7|e!g!}!s z?ENR=>=;`dUow7udS`K)i}4<Z&~yLynR3`x@gGhy_N|Gz^G`ZLv3J+Yo}b1NeHWJf zy!ic&;+{A6X7VNIs&f>yK2G)wHWIPjc=Y_fM5#G8S7J=>IbL*IG}|E8P0UYY`UK&- zG7Rbt@(&8v9NzV%X`Wrd%eTqaHShQ$&l~k7*j(EE_ukic!A=ha<%Eu@v`@IaNHf85 zlXMnS!KKbT-o%HAGx(RK&fdOl&i`34s}`BKvb~wrG}T8{d`Stjkwc>DJ&UCaHn^sk zHZzoR2YMuF&syQYenY+3g6Twnpo{ee%k>?q(u)O|Ps~p+y7}&LnoDc&vq*l2qwHx4 zj(@(Yuq*WBNOj!no@T+T@@V_A{^sWwLf$CyJgIvir?*-_gjf7r>v8MV)yp}VCDt&M zFr4w}w~a8Fa^k3il%YQln@E}MPwrU)hu54}yC{)m`HXqFz*k>}XSYl=7tAu<Ak#2O z?(-I#X+^8#Xa5UT_Ox@feUfHac4f~6DLLs`(`L=jNvS%b=^_5=*o4Y6a))gS-gOpi zKcIU;z0WdbcF_f00hhS@ZzfGzk!2MmXxb_g)V}j?#ufj7DcrL2Egzk<T(E2no4;Uy zkHt!FQMnrtIX)fj)rW*8>h7Fl7Q%h+xnlfPHP?oq`>YqXiQKNM;NIlS!Jk<!P%ika zW!?-fmX0SCr`AkZ?DJ|}K=g|?F0WLk{y%l68)nohxbFLCG<Tc%wb1$3T%%*|Yj5P4 zI)hjELb0Pnc%ew1@9ZBhE*`GplaybmydwXB&V|l%N=}M%ne1ojxYX~DTG2J-&85Tx z^@4s1g1XY$w-bV#vS*zNS~kJ{8?)J$Qb9f|^OO}%yOt=sa@ze_@pH%4MLD{2UxfPh z9NFQp*z6K-&Yip$lc%Y7I8T~>sHetXNI%H;&14m)J?kgQFVy~b;#FJTi^ET3XWg^y zveVzxx8&r}n(PM?-mr%qF;qH~R;0wW`fKrm?U^r%w{Dv^?-1wjsM6?j2RhaI{T!zB zA7%-7%r{|Y>H+@*Bcn-A8n*DM&uX#zZOig+qhQW;)~e#tUbgjSe|IR{S}ke6FtRnl zKjiz;)YL7`>ta~fr|G3_$z0~0$`*C$0!PXM4#qhryOeh`^f<pzji^u-V@Or`-S}d2 zb-&mxslL}a7f<}Yko;#SYgoVef!4{^W^WVrT>UQbXVZZV)djmXP6XeIS@U0DK}@bA z?~G*SCy%Er=|1vPV^8ZY2iJrv6LXmsuU2m`4&Q2LE7;b$FYof%8rANT5q^$m0-mcx z|6q8V&0LbX=)zwvx8+P%Z)hCgWb^KGnB~#1;JmoY>|-6@L#1sEt}onZ{kd`CRCU2c zrCV;lUp$xHtKp_X-Ov3Bfie0Im=`~3FqqOB>XGF3jmPuAaSta`cV+46v)3^<`-QmO zR1J82YZ>d8XQ^AyF^aAfoV&{_&&r^>_Wl>0S#xXom-NS6H1K|9SNkaZk8cFqZa!ft z!6Wh!DyLR0&pOGq$+@OgdyDRZ^Syg4ikOZl^R-?nHC=r5_{Z>UMR^s`Pg|s>9FQsy zIn&s=-t$CfYqe@n#HnrHV(#BpYDzTUmDll2_&=|5zSOp#FWSQzVz=IG&}LjP!^LhB zr%=#Fj{_6^9(4RpS}D8raxYuD&TiG?$sW_ROb+{Qv{3h&?5XE=)Mp}hZ$=;IRQ0u5 z>tqYM9=-64Gpx<r@b$sM6g$`04BqRVwt8HAS;s^#+d7*v*_s@mnBwiFIH7skmfWOI zD-N7mtmwE|u%T7qNk{*MMUDH{T{`hG)j0g2<)k%Ix~&}wg4w*1j~Cx5&y5f+{HvFG z{o|~t@Z3-H+74tg9}&O!_%*LY827FYCvWrGtFHv?SN6?XB0ovH^S_FzR^q)ZgPo7n zjFuM4w!SWZcje=R)`Xu4mM7F}zP`wQ5O_p$+A*`jmv#zC2KW4Aio%=UY-CW22)%Xo zme9N~_J+Vs#Zn2Z21y-S=Qem)hq0E22kLy2xaAvqc7}o&@1mD#zmCNUNd8c9&AL<c z_)_pT#}i*;j4~WgCzwy1Q**4+amkJ)tn=Sw%*oj6D-xCU=jb8+_Nu>s9_=c<6w`k4 zyQV_b<1NAl7oJ>u@M5#KFr%cgs%xZ_{#wnQUrZ8t&dRMdR9==mGsSgb%A)z<*=`)B zlX&(hUuk`1QgU_H$z=s<v7I*;@XnrTr?<RBfA0#Rvtb533@<jiT%Ka#wxv%)<gwO% zf%gAbS}S`_eyNl#caRLTpJcqkh<zfP&-V9KS52n+X1>mh)7xlvVnL9-VepBD22llh zos0{wa}(8%XXVIzIe)N8l9xN}kkXf5ed`Ye)Ga-^rq^7OzeaQIoSF@79b)S<79P1M zSlq30&EnbY@T|jczJA!<{#tgf^42hwS4~cr&$MVQ-^b6q@O$UA;1~B^e4TNbyZus5 zZ()y!PR(ESc4N)U9S1ITGNzoE<MU)~ld14_<~;@{>*p9${uZ05(iJ9}vTf4ldD0A= z$ETZ#+~|1G-e<JyiO!a&<gmOpR{5RZjJEYu7~hJUc>DZ;Wm3Mg?R3SCTY3xLwO+nV zXlwfd)BLy=hpg>d%UY*i?cJARv~*&BQl8}2AkQ@{Nz6qa-Le~n4_se0QS`<29%=S1 zEBu>}*)c9y*LpfWEAX~L;J@C&OI=syM9z}dzFsOC`HREw<%x&O?yY@SJ1;d;?Tn67 zaI(Zb7W3HZqVE&0+m|!1SyGnovH#Aln!vWpWe%sULzG))$v0Vji0uE^t1yS{)&vfR zJG&n61ua+<CB&QH>)vB8X512%@<#Y|meM?y^-3Mb*_IvuK6O$y|3>iwmPG+l3U*zt zXZzmmRIy~vE6TQZ@~GIj@Yq@LoxO>C7xS0tNPVd?e9u_>>yi2cm5LeS(|oiI*SW>1 zZ}j<k<NZR_vi^XDzYWw@T*~xt{J7is&OEoAhEoaUB@3IAG_EXSw%w}vf6W}<qB|{S zCjuDf1g+0Hw({xaOPuDpzmHXKuy52$HsusqwLN)X!_ukddK;At9Tt0ZPd~vO*30H| zrq<qRYtxQJmlbxpT=ic3+sJIk>=)OWChotNA-(q7u8+Ge=519iyuW?j{kS_Z((k3i z!+Sr!4%?g?6Z7)+C-MBAV?Wm)JHPgGutB-bKIT81dl%PT5$=BC<zGD6&A8*wl4VnZ zlOvu8t;}$IveZ>a;PbB1+G}f=uAbi>^*n!F)N^~&`=;mDuRgZ>+0~QL2R41&ReEjL zzo`)~d|&_CbMx6lX5Nd(QXg}%y?M5#Fg500Ol;hi*)g|2-F1>K7i0J@$gnlzdShAI zk5vZe^bCsTS%1<oIluC7?E^g>r$6GJF=yjX?d{#iZzfn4-j#h?{p7pdvEI6qcLs?6 zUh|~)s(IAq?#Of1_E#QkSJ4c!+I%MZ^s=*`#j@g<&&aDQ*i=Y=IH8uV{(wU}_v}@r z@=XnmOm|ZsY-r4F{CYKYcIejIvAsKsran(s+8@4SVS`=m?Om$PeG{Y?*gL(A_L#uv zrto8n^*meq9bbA@@|T=Cp}1L>NymoCWXrP)GDm8EL`1i-xEy5s*YWV)u5G`0gt>U4 z_f2hJ<N5ybQQMr15U-3cI~ni2SoiJ6Jj<-YrK=0CTkO1`n$_lYtmRMV(~g5zo~(Lj zxI*Mzr}vr-x3`^^EPJqPulwn1we8;*Ou2jUgp0o7Efz(kd*-^<Uv`)oy{&uUa*S8= zV2_8u9ae{DS6?1vG?tfO|0%%xWr?!imW6X(roBJ7$oJAdj{6Og3LOf~(k`EC*#1Nq zOT}K{^kCJj6f9B>x^intMSc6S>Y80@=G@%dZ!ZzOwYNC-9jmH;dd}v#HR}?#f0aBb zEKu6A@MVeQ`y(B@9b3Oh3*X<kuz8{CMCYE#SEuceez#V4Pe97{oW(aBPfyR^>QG;> zujA{~r^mNdCp3P%R(oWsK)jb$lc4R^w#EMfUAmLAcPpNHCU#rt$q~{1zzJ?iQ$DDA ztKV|%RH=HRdFh73kCwu-DPMQi9OFFy-1_3O^%<9wYa`ZukV=sJZWQx;nYoImN^iF7 z(G08hdE#%Uah^9kkrFZWane-lz}1=iKfaBSkPd7==F!-(?9`0<D?0*>rA77TG|qm$ zd`0-?Ll0imKK>-swdG%BkF&=;rU@&O1@|pzfA`SZ>1p6w)x?UsQ$$xO^(ejboshPb zd-Jj8)Cz^YQdcun?{A-R_cL#RfWgh37xo{G^<tZ|^WVeARa-n9&$nDCOFrqN5_)u% zf3)ZIo>MDd=d7q;%<VgM?Em>?j;l+fmi<bIV^DACT>n8}HM4JScJ*e9@IQtpKKo}W zPZ9en!#F`W;NrK!=C0{tbwQd(SL!^MeqgjE;^(IBGiN4-94pHHI?Yv4dyBJ{;m3`S ztQ6e)vZow;y+Zqu^?aottQT31ZN5^sXTh91<)QCpo;aCUb=UgN#%E^)a@Fc24nJS~ zvGD_&jqvU@@+)^FOq#bXt!uM?C_jg(R)oXRn7n`LW{TI9H8^(s5_(shc`UjwqHR(} zh|E$SncS=I?@ii%rf26H73JBDDc?O6mn*SUaR)5Zx*YMMa$9?cW%T8}Qw*y-zZkSQ zYEMXS)X%8%K0N!xwKSc!rj#P1?1uCO+2<5k+L$LZTxpuz^G5jIq!V%9FaKS&_R#C_ zpZ2T&oDco?{MF~wC;wyq{Smeb)SEWze{sQwtnUgF|L?5t_*uXD&-~^8_aryoG-fXL zzL9l2Va?lhbDJNQ=M>zF2+r^DymsrMfbH_*$6mhHuE>q)Yql0=esSR4w`1A)cNK3t zd4HYZqZ@xCD(wDx)`yFa&Y5*{?aYH_ZFw_xoV?8IWDu~;azk#*#{GM*EwH$l{8;wJ z%7oy(?zg(zqa}EA<fUK#+P$i<HhE9`wd=kAr7nGz>b?H|g~9)AYCMyZlZ$R$e)H1* z^KwVu*?g*}U-Ifsk(+uo!6;U1wa?C%!CCF=r<kltsuA~Fed)1un)musu4|^0Xm8Do zj=DAV&y-1ZORJ*2q{2l01UgxT^%SKpNnOb%?sxuF@=VvuTNioEzj<lfrw^Kjz1ng; zn+vR_cfFW3<=WKiTU#&hnQ}lw@vb-b#|VqJ-qUwYzP$g_iC{OY8Gois5feMPw)OJi zC+XKrHrixOoo1$H|8!};=EQ(BshNMK%=Q!O-l?Uz*5_oW(dE-6(TQCqn{C!bTD<i+ zzIe_T<Eu%UnHgO_QkN~x49r=&bg8IBeev?;C;clkvo;>oRFBo2v@&(s+Lu}@mV7b& zsj1tmD=V@$!fLirthZ<OYz-qZzvAG_E7p{l=Wg<!{cYOS(?*vcEXs`aIyALQPfz)y zR_@s|bLEyRoj&a~dGh?7m!EE8+qUJ)PW{A?(>|*w&%bo(byDCb)g?Dio`3YR>{D>i zt-14p1KfVaZfT1(;q^cJujtapFDL#PUHY`;o0#AE$@7aYec7_6@#Uqjn_L1TUsfAh z?ktd+ZzOTr<9YX*^M|(Vld(>|XtICjrN5sFH1+@HUo$yi)8pmMtz&AtVU5Ybpv$c4 z%Xyy(?wn(CNZmtS$8zn4CtnUty3FJ4Z?0qdcEg`9hl4H)oc4FuG1c98=gW~xmqon& z!gVZj3yXdw^(AQQ&JA4oqv(>9>GfjCm%UZR+{-Lq-Fp^vN%rx(eVv*8k<5`<QYlaL zwKZjfq9;zBBsO#JlX<qbL3O9RCtqpb)KhZu#-zeiTTbfy(=hD~>b!R8lBTKj`Yl^d zdBo|@iJR$qvFMWS)sSeDw?<D_&9MI)q^s=hc{t=*X64Hnv#xF|h+6h%%Cvba-L|YT z@m-pC%Jce}M^7(ZGB@Sk++yPQG*d@&Zt%&qlP+03UB2gwU#@Pr->meM)l(+Dll*L; zJMY`dpS#5U|M$2r)1Ah)N=fy(C;Qo1iBFfdFEjfs?kU{M`h3a+y;W-`dU;Cs=5N-U zXSeFD(X>f!t1=h0UiMrpd%N|rm#JY;P}Rz77k^&%*{tRkcq=pPXXWL9;;{Womn>cN z)R*(+%3F_$KAMEahUv^%x9WJB&WvrV#2!CgvR=#nmr~}MtaE23oSStt#CXZ}v`~G; zyP<WbJgR-GI@Ol$f9A6}@>1gFSsI$QW>0J5ReZNCNe$A84Xg9=n%&EDWzm<LTfNU8 z)!nmp_G)91)y~JxZeabCm83iG*xrYq&0qH?Xw`Xbxp$~R&pxXxfpuGDwDjGXVdsrI z&mQRcvQ6Xn37*23vup3Y72EbYndeo-?)%2uTOJ>}fA7{Z0YiJfrMi!Hoo?Fn%~-lQ z?&VLT{VS`uObs_&+YuCc%`ZUj(Y8hGM-RN)cvrCVp4kPXFTIbGlkeX!k}_K$s9pWG zufe@fFjw%vy6bJvZMwOxUEi2>;c;U+U;7E)^hpO7Z1LFZRIv5#-H55(f_mFFIL%gi zx#0rq8Ic5|p3q|nj(c}JN!Pl1s3GnAQ31Ulx=ZF9ib!*c{b>0<zfh;IcmGw+?#mvY zIdco{pS||A;z*z8=G?{1tJsUeo+ah(Wjx5vQQ#=NwTjF5?+h01&&>bxzwW*DFYnXa z6T8fV&mXh>5>PVvd}55-<B-G|{mb@m`!;<}%C@cD`%YYZaZBub|7Gr3-{mXj_D}t( z&Zkr1!{ejC7TsMj$$jCZ$o^+~&S#G;-hG{6H~%Cp!50@RQUo{m|9Em^nybJOcF)O8 zpEhw!RgV%CS@!+*?CcETngfm+SrT#ikI!n>|Ku*1&##@%BNQ9``|bAo1+|Q9e{cO~ zZ+1($FLh`_pGFSb_3ujm1-#a+otP|Q@lh@^e!{Wohg)mDhx0v>UwC!z@hRsLa^JG( zq<%4%X#5oLi9@3z<n=H9Lneo06*oP8@@bpfjlwzCUYH(VQpPG``>;nrs%zd6u2~K( za<8o8x|EB0Bj)TVvtUU){r}OP702Qq^9f~qV%QP%AttstsBx!t(ZkYO=OCMg>86a~ z&-e6dNr}rzS$_Sx@AbNH<Inu=3M>H+u3pdg&94=H-o$yj*)Xs32Y>b->kIqzmO1$D zd8=?csK|r$<PFK02V-mRs&Cg2D&MOW`+8k?{CcO;DgQ%%z2?2C^1W6@dcNue`-NBH zd)Dqh=%G;hr;4???9~r`R*NJD&g)@c<^D)45@+kFdfRS1!QQO&M`*^hD{Bv183l1f z|D4|Z_id4#qF&_VJ&USN-!FZU>3Z%;-__Oc!?-V7THd^U$Gb->W$%s}bEzLyX7(X! z%leyUu-#i<f1_g}*ON^fH-Fq{wXy0&gog1ec_H4Mnm;=%IV<gA<b!(R9+n&sj9KqD zzhriVD&zF4i#da>b7Rb(=dHQke(?5ssbldy@eenDeRnr(y?K7}flE8?Ufh}f_}5nP zO*=OhIo*CYV@Fl$-e1xYi#DFsynRZ!GKa%^N$uw)U)L3yl~?ck%D(#jyEFDRUz@We z7rUD1rSB+sATFyrA!)T?)yw23JYmUSt|Wgk+$8L0vQ_81r`=`!RP_)K!Ou^uHz-<} z1l(a${JkXWO4e52OwX%3ERRjK-0PoF!slHx|I{kY7dz|od#y4Gf83CoDR<`Ot{u9; z@&BhUmUPM2IsWN=#Co>#CvLD>Z#(N76VbGnQR~5}gFpBmo6e|;p1xzH3*+kS=wsHW zx|E#x4GedSNaTgseYvyF{{Ep9>n{tB>VAo{iFi}^TmKHzEhm9!rUTEGG4Ted^8QtC z)Q-NMpw;o@?YBmw2G(b*x@3EUE=pYF^J_US*6#UYOUHZ`&KfZt{!KHaCEgw?&$y<< zu4$t!E?6SWGl!#p;#FmpSvD$c4$XHv{JM({Zu0lIt9wfLvCenl2@)Fx0&6TH|K{qv z$^RT=cXqDu#QW#3U6YcKe!Efb{=%gZwufa`daR6&@ZOXlomeI2##@xGT`Z?_zVw9V z=Y*;)-8#+15A4;<+H<>#U$&d&tq$f8O0$;8uIEpDd%~tCE@}I^>i5A`TzwMvr!!W% z-r-7myItzQFJG3lL%*(+`QF;TwJABOWnHZ4?dx-orLMkgW50J##@zVp*VT3ZTwCmA z{`T3`%Ez&j^%)jFpWa*c`|r`Kn(<#;&)+^fdA7Dj@1ly@wIAQfPyh1ct!uT`j#Y=A z9u*C-u&LU*+}1}yShP=h@x1?+cJ11iIfwJbZKkucPjBu%_LAqxjkcpd$}F5t<prPl zw@YYK_=lW~zJLkaP9Arf$9c|?(c|XUt^d3CZLd4~<3d5zj`wLXGau@HR^sE=u|Igv zLOnLU`v398bLF$j4_>(UN8euNukRfHFY&j3FyFGxbzJ>R&@Fh&&hLj;hgVnc?5*4Q z{Qq0orRV?Oj-UH~`;^cBzis*a|681_jI8XnvM}}kwX>i9k2RHE{(jch#Qd4h|G$0r z?!C;VpY_%4?CrbTcUSzofAQkMSAX`W)`VHhub$g~_1y8S=gC_?Z@l$0;%&_un{6O5 ziM3^R*rfOTnA<;9y1exN<*fh9kNlp`7xvx0w)?mJA-T$~pZ{NdFi8L3e*Wi?zy9v+ z>-QP+h5xp{-}Wc|?f?BffB*lzd-(9*y;uMJH`n_wefYk6&E>UbQuaUp{Xh5c;5obd z|Lv`;?%ZrG+U;Jw{#)4Z|EGU+)JA>L4cKJ=`T7y%@Y=;D-XHJEuRi|&Sg^*C^4qdJ z8Jw1d`V!?V*DvUIs&l){Io2-`7ytaY?gLAXi`Ioaj`zQQ*)5*5y!4X<Ta1JBh6XdG z1vfU%YCI?KC6@1FipD$chkOEcQit|)yl75M`)$99Z8dLJNKBqn@dbu$m6Z#_p8QGB zD%w)8ooh1tjKcZ+^Ztk`9&B8tmr@<~W9!x9A!m1dy;J?H^j(Zktg6t-e~%W=Dpb5< zUD7z;Q~J#7J$+~L<IZRBot%=vC!cE8Uf0{B#!zgdY0qu^aTUYiw-P}`kL@n@)T}XG zczsgz&y#f>$4^F0I-A7OYH0N8*iM^kW^S_GO@blsjd#yoAz!NUQRz@<^+q+m8HQG} zd$g8aUist9yYwG7j05g<^nY}#Tbq*p$vdqyH`#ji%QbarBBx({Rm)3xF#SbMp`v@% z_GS5{JIyyAI<L1fzb4-Buih=K+50})zV*q?d;9KTx%A{0Kbw{R*dCE)VGGDxoONOM zuAJ{%e*Sv4{E@Hpf&Q6?tvGhglK*nYpd*j-fZ@taWrn{6e`n3uxs{PyOWN?fV#9T> z^zF_;s}{(XXt=#ic)3D$_567M?}~Xji$06>OLqoacXr#oa<w>mJM66C?fLsY_AD>_ z<#9~Q$;B#cYsY++sjBxyCq?W?G+))_Yra_0vwZQ7@*1Z{oVq1!HXjY|eRgzjc-Xd} zqKRwyz0JEE*~-0lIzN~Cl=jh$^~>wWjh-b<`xZO6>}s?Z-@wywG=Ao>wQoPYp5$=c z;?E(0g+?Y1B^LG^3f$`V$RyJ2n!L_BMqg34BbAz$HqE?yMI>%6Pv@;pr>{YKS3mf0 zee&hiUR^8Z&CxY}zw?z%*!kp>Go!DXg}=ID_}205B{SXUDpdiU8^7GyeJuFhgx5X$ zC4D<OJfB4D5&I+D>!~VbuvV#{=WtFBZ}$%$n>9<i3LoB`_}R@UCbq8g?5thiYK0>6 z?%vzc7nZ(OoX@?^)i^49S%2|5p_?;A?F1jrKYP|k>dK24U5EOo|Koqwhy9a(`QQFW z;nV*=kNvd|yzo`%kNxitmNq?q{_pVLP`zb;^_EZnbuRv2yt7nke}B=dj{8QNo2)BS z?zMc`l28!8IKA&c$phA=3)2@q*?6Y$^@Z!g>^~%9KB=yHXP(h`B-Ybh<fy=ThYRyX zf6o1v|4P+9ZKB`Z?oE;(d?L#peT%sK`9s4E>BKdr_77{9JxUbTx9qjGEN{M%|L$7l z<Erf<VaoIN8Ry0v+ca;@)SMskil2|YJ@8fKN4bu{#VX5*?H|gH3$^>(JnNT#BgTB2 z<KwYK4s#}IT04~p+26a6BsC%L#Okf9kBQ2M2QE5$m*Zpn#72+vQ<?RJL^IjvO*1xH z%gp~c=0dUY#pLN<u5$9<bLo%OTA>kTp~iJ$sj7)+iLp(!Oj2WgzS#MBE|b<TQxU!L zIOq6Gi(SPGZ0{Fao-6rybZ_RWyEFG>t_quH?tA4^r1=+yOVwQ*$tC)}^OI6Kxq>QI zxER^wh|2&|kxLGx$$ocq2fJ+G&~eOvZh$LQfq^>d9!cUaFjYbw`z%>U!@qvyrk z-foOr^JJNu)t<%b?>Kwd5){ql;%f`7?(AA;ySZAw^SIkLh3RiPPHRki!Ro3}Kk=QF z>Ho`o3#J$_{Mhv4*_CrErW~1ZT5>8^K#%2OE}6Pcj$@tc?CdtUN~~ymb)eqjgY;yZ znpM94RFBHpmPzwHij4WoyG!WqmY0`G`ybBjjS26t2$}fiyQNu2eb&s{`A@gouXbuF zskwiQtK;x|=~>+CKficbn>p{p!^Vbv#np%6#jCdca7#L4Z)O+r;rTOnOUnmGB}_Bs z{@=BDs?ikZcISUAO_>)`WkoWwgg*8#9^CkGxykk=9cw(ZpG3(2SmD?;y|;Qw!39CV zI_~10>qlmv{jsA`EzWyVqJBcizRvJPi~fjRcl18fr_6X(_|21@=U)qUGubW-{@Z)x zKyBOe`n)FvZuQQ5C)58u^*_6Mj*b`evDw|eJa#od@669}=lh=iPxYdd{F0Z^lbe6d ztk-<iAhLG;)}50Z^eS?yK6Gi?cjwoO{d$`EyEN(1skFq~eXCD3NBIlQUFK%DXp=*1 z-D=*0N48nNIC%MiP;|CeNZ+9^HuHGn6#ga3THgJ-#=as*;oRGQzp~S+&ImtNxc#em z?*xfh$;9*e2a49lmH(c$y}7m{&~`Pm(Ah{U#g54z6xHwS*_`0}>ehoznv<4qeD=TR zivQjsckh|LYm4Q$oz8cvO#2b^@bdO^|0fizJ^VkkDfD>#k~QnH&)DCT?en|8D?vfE z@%5wiQ|^@hTfWMN>DS_wjB;H1QyRRAlwSIO691R>{^|!&kvK<>mt5O!FRh+;Mj^}f z-rVEer&5EfjNO>KkC~b-jrBUAANRoA_JQ^6cw--J+r5T<^)udARGIBR?hw<si+}O$ zy~k(Ex=b$YS@oz$_RR8^?PcGVoh`T%DET96Yuv$uJ}1A1^c~!GO!beYvvII#<YfM> zPb$Ca#)gVqcX5sXwqu>>r#Jk+`e$9=J|`}fd4l1;tT%G$dw;(^_U!nKx~Xry44bbD z87^0vKiPK6<fX1#S<TLD^{6gdadF3?#VlVh8GAW(?-1+Rd~Uxy^QAvc<;K2$|LA_( zZ_lRjZ&T&(CcQp~d;fm_&eqF{DJ<NvM{BCwDQ=ddSC8ztvdGj-^ufuD#%llTs*7!} zvrm54XYc9X^kY*<=kW{AOD^~D<O+uzS1NW~b1Sgpzt~QNy35mFuAF=3M_0J#6IQ{X zw?2&l$F9uFvI+Venawftvj2{GeNR(w1{vC4n%l>ruxnF9nby^?J8NBYf9i2n7d@Ns z_1)2Rfo7#!XXoi3{x@gS#T8+@uI9|Y+S0c5Y@p()<j1qwQ)Vsuc~|F?ljGYmh0^8z zic6;C7cmOGG`{~z+VirO-rX&(`De^Jq#Hh_x?TDe%zbahR-??V2exuG+*ae<w9wPj zk9)<Eoc@Wgi=VnoW1Gp9a<wjQI>&nVLkqLkc&l7nEcxqs+L={T1G4PyKEL>q>1p7v z_ix`E{oQVTsijM!|A6qdEfZclv2nlt&UkHag^>rV^bD>q2mO}4>hym%;~V4NMkSVM zEUSF?G$?PpbfSIxd{%uuhD{F_3ThkOUf#0x`{66ymvtJ9eo8Yo^Bj?$(D*`mvC_2V zbw}E5m>%voU+(<I!1A8V#+;v%dZXiQnc_?}m7K&)ZTj42|GTWTExzGK$cqQcb3{rK z<IR}%T%7XbWM1T1pCf_kR=i*BpGu`CFFJbve#6PM5Gi%_v!`D_dzmICtu5?1L)z2W z(@srNXy(t>XBR}*AD)&iplY!6!0J6x_b1gFOji@HHZsoqy!_He?ic2(7TQctO5AJ5 z)m)kzs~bCc{`F*?Ep;;KEA98&eN}sY+$c1L=h>O8yt-VW=G_f$Gu;*(Pq1AcP`{`6 z>_XQ?F;(e3|HDNBy3<dccs=Rox3p<ju7uBtvDl<=-R@lJ{nYB@i(A%zxh_0!%hxlK zlXC;rqpZr6m1REsv45>u?^shUSj!r5u>V9^+RuaRJ*gFMBiH;loLy#rao;ZA1Alxr zB^v)(Rq|<vZ;;mK6TuCv8g?_vHfn@!DrQ^BS<<=W*_2HM>2Z-OSPz8=UAe!;^Wu$% z?Kx^HPfUbG_J-F;%uA_zCo#2qes{WB;ml-KO}*yy$r3!PCBO5<&D0k89Kf<`#pd3w zpZwAljDOfOYApY>KMs<6{gA^(`}NN(b@BaWYvNLFKMv7;;IQw}Lc!;jqBX2nw6BPG zKi;-{)1t?US*H#y-}gP{SbIler>5%rZ|ROd?Bid_IM_uTkeGYbAjGIr?)~v|j$&JW zED&{ky?f#1+cSbYZLYhBE$3E$w&~Utk2h%{ylsusKUVr_nO1N5Y$6bI*!s=HsCiYw zPH$$dtU9(^z~sEHa660t?$QZ4YE!2i{p~Cn`J>e6POD1D%<exu2X3(NdQM~bnk&(E z@5fCRndckl3H(|ne|FkSnfE6X;%j%Pm44K|*{pGz!Cijuv+XnH{8y8eu2EAy9U8L4 zX-iG8BG;#G0g=*Q<x$K3y;F*6TXI3@uiT>(WqP}xf2lsRsvybWccH4#?3ADTo;cOi zow*b0-#xQtiPCO8#g=6*iQhxTxI7sRcx$#TJ=wmzjOQuOnc_UtCks^M^tas<$o|dw zW?JmxqN1xgJ|(`bi{sipDv2wJykGZ5;&ut!!j(eDeouSO{_+Oz?K2g#Iyc{ZAHB_W zk@dZn*QIMq-njp3deLU}(0{u|myg=3rB}WMcuDDfG2UU!e0YDc^KSQL+>I}m_Q*TV zf4xF#aSBWOnf0Z&rS2@;7V&=OJ==dv*`s${Y&!n@l=;PGk%o>JTx~T+4zF6GxiG<~ zeOBtrZCeBvAFG(pvU1ZVjiic{(6_UlPs{nQl9tZcyX%{i_0Js(R1Zp4NsEW8uf06y zmj1B|HJq;>xK8^q=Z62zWqxniTooT(zIRgbtd1Vfi8G5%Ml7#aei=GF-h?wO{QfiR z^A3J}yZ!`SjoiJiR{YRfzyEfXD~>hoYmVf#I;Yw#S+e<;w#kfJOl6$wx+Bs#|Ll?L ziSRzZ(|@TXv#jT7pVbP_F3t$DWapfJ$XMg`j%H`A2@<c@l(;QB7jaba+-j!ns_9dg za~p@;T{>s2rum`pHOX6k{^8Y}&GKN$A<f*vebd5JCx57vJpIjcN9XtMwf9REl6Zg2 znI&y5?D{3nD&>*Oz8PwHN?A(_K3i#h`(u5BYr1}#w6&qq(%cO9#h>QvzQx6zXuaxw z%Hc#et4+%mIbKxTzG~I&PRrSMK5t07SJut+TcrEt&Wh^aoBfW7?~Y#UR?0XzA?#^K z<Lxes&-p6qvnu!fT>LJ{`^3lKk2Os!;a9oSJGH+4`4qkA)6tH6Q-P(Nd8ShOP4BIy zv<MZ>S3U3I#i|~#=~T+H$4^Vvoj!fH_MlC><*ja`xeqk<7zJGw+<CvG<m9jAx{Ln) zdN%!>i_`b)@?y7D@#p3%os}>2TKBBK?_H?C6V81l8&ez&=ICr@;a;e6ozwn#x#hXZ zo*Sl_T5h+`ZvLI*D|hm&_m+yJ%YQrnGO!jbk9>c;@?~b&pPd<ne#d9~I_p}^-gLU? z<E+R#cExuRogQQrwy!J|_pqKXpLX|Yx|y$H?@`sQyByrkdwx5mQ#C_%<>I%=wl;=c zQ~gEy7uU-Q?+UxMbA2iA>8x;0b;gMs9xea%@M9%gb;7*}4?UZc@58PfV^)n_@zPew zeMg_IA8)MAtNoA4-`}{f=GF8cd1|w#e46t(s;TK0({`C<;qy8-yDUGzk#8u+{NH)1 z`sJf`ca3+;#M*FP<2IQhEI5h#%~SXE2a{VC>z3`?yN<hk*FWdUg{5ELo;<AXy@Byr z&%B;37bbmk2r8Jq;qSyINzVzAx%206oNbw-$u^IR^-2n#-|Yyl8<QTXEjK&$pfYBO zP3D^v#)~@Y@)ISMH0EF7nr+q<G$YCL`1Z8!mA98W*zula?DjE|U(>p7<=tjc+o0(& zq8(=@rrR=jvaPx9xooaWzL2EGucwhVkBqhih1ZK7Xt{J!ZCT;V_>GKm|KA>6<9@pF zVc{-`Cues3X_7O}^;J5VrJ*R%|CQnHGxuZ8;kQ<-a%=gMD>30^+K*?<x7Ia=tXY}j zo3bjputa>7m&Wn)pVq1N_}ee|JWulV&qaM5GV$GKoX+#Im;Vvzy<e3lK3yvA#fLr_ z_Gbrfy!soKqL|I3_qu5Di>h5K6zopx$QZ^P>Nxg1a#_h7RpGhM-+x+obf)=kqr0c3 zcbz-==t;%j6&&{~doMlye7lSN@00DKt_-TTPrcxnyQSXyr}-f@pF3PLxDq#6xhAK5 z(Wy_FoxJQ*rHc@g&-8sWi#4PpBo%cR*Bwr)JIye&`<Kmwy4N4`ue{3VnC^dikE)M} z<o>s&XDW>juDR;Je!k}dLG=zBorz_Ezm>`^pWgOks?tT@x?P`p;+LtZM#a`eK9Dks zy>a!ce4%a3^?Dr!J?B$bjpt2eR_tQ)wigb+q<ceF@%pPr`JrBOcm4SNM0>rF*_`Jw zRhhGoo{p_nHQPOX^N&jn)As(dnm<Q+I<Kv+{_|)To44Ek_w0<wI<H)m_$+7H*~jOv z9^N?hsdV|YEVYf#ZlApwHakr?@9E0FL2G49d%SNw{d387bufFU{+^?jxjjFux2JzS zzTah03gh<|_r#ybi8AhzRLZ+~@zG2T9sM*L@jsj0`qGoW8pTY%oG9Ts@%)>kF|*sv zjBl!bJn>OU`fzQ}ovE3hl}a_P%4}nGjA)AtoTA#6eo;V4+jL*hWB+x>ws&5g=QA_@ z!kn#Dr3XK1f885&|NgdLdW=ukyUhRG`u5Mk?K8Dx*eAz-{+iIJ6ngr_@_<*BFRv>_ zRxe%V9dg;E!#nWO(FyaMUA@)rsXf#44L?6yY{L5H^jAFR&i9^KCjRdHn%Y^Hj#NaZ zv5C(=pO)nD;e0~eiv{s*nTm#0GvgXf%1&=kP`M(xmR-(wp5R88L;B@E<-1k4A6|Gy z{?CE(%=H^Taqj&wV{_{X{Wj*i4bO9qXRUnBFym+Jc`4QNjmp`rUi)40oy!b%+c-^n zF-!EKT%dD{#|ie!+Z5UwuP>9oe6>e#rj@wuiM+&5mRTWriQZ>^HSunIbAvBW|GdQY zjhkLt{P*3{u;PTkteZ2mEel$YOqJWR=<KFl-)hfwa2q~;{U|?FT%q*s@5%150ru17 z3mp&dev`q?SW-DrOzObWBVimBF<ED89(*{o@HNw)6k~sJ3xBDt^A35`uT%OX&J``L zFwgK7%jB(`-1|>NyF8OS`z@1?|Iyp24?ay?9`b=reYS-DS-pyRJTGTnz5iKm@xqN) zmo%Gr?Y}qG_*&4CU3`9q7nItsoH#b`{e<>MsmgnMJtsDW%Gkek+&m+g+qB4r`{M2w zt8|@w*T(NN5Ij;CH>o+I^4IiD3uf@VwLJRjTlz^G{ckE=u4_N-eAg8<uW}B{_C3n_ z%gh3&m)&yZT6`l={MQq$ms`4*8%Hd^V0qv|&Z6x`Ys)_6N7yc9i=X!BXVBbKZ+otn z-erY?>iX{<&GMK0n7QT0yQgv27N+?>{_#*l|K>+w_FXJzr?Kr2xhuy0+vwZPPX$8f z#cfR$?)@p2yQx!htEBy@-=&nggONLTW`3R|_Aw^bXU6+Zw~wM6hWR=yi<)Nbds&gx zx951<JLbdLZ@(<5*xP1p^v>u1JM(qr?;})#E-l@ws6RXG^yI$YU&~D139nuu<fs0x zsPxjO%l4NWrZ1oEWszWc_foO^%=5h(nrFl;H;L?O&ifmYp~B%%|Aswh$JYZk@@Z4< zM2Wk<NM+T~5i$75BpZ1C$;QgSi?!aoTjt-FTsNcqWZXxVJ4g3Cib_8JM(%yXTG1W% zDy-^R<;*^^Pgd7@`|gcTWk8XMFsp^tbXJ4UO}UEscLh(W&A9bX_@_Y-JHuZ^<;8~{ z>h>SIRB*y7itX3$P>D2S%jfYc+8=TLd3w9a{J(VM;(wC==iYArr+Vs1B(IO^xhG5F zX0^^_tem+^fv;3e{zOh(8&Ah&nY6ig7S0Oybq$#B@0qyjz>^F8@e4xgF0}h|I{q^f zZp_)J>)o)wiMy`ICBtUo<5u<}fyp`|hYYWWDQrCO$8GVwW1syF#|R6?AA6<}v`eF} z>C@+BGkXKg?jMSd=JKqY;lJwSjW0*P>#I$B)IEXe_I%dH_?#PzMo%{_=9{2)n%k;l zfv!r%yr0WDoB|g={dJ-6+NTYVdYF%WYMro4r>UFq`OM7)0^K2^7k6iuh95AQswNld zwsl|2<5OSq>MpOeKI_jYw>5M7NmuFol#WXwFWhHNQQE<}>&${Rhwog7pF96k63>H8 z!j%EXURK(e{3!kPy)th`M8L^&GYbxHy;k%&ciOUB!5`92Zo7H<O>A4hNp{U8Jx?z* zcpWtn-ze^P=%K{k6}y!uX*^{7mwH#~W6HG~TW*>w{Yu_;^}b1<LU454=@`bkzl~y- zqlAriB&GW57^fAzEB!KEdhVu>v$D-Q_sp1*n)OcNM9VX=_ZeRLnrWX^U%r-^;&t)* z#%=ShV>(zo9G3*dq(0u*%e-~z{>gV9o{ygN<=367Os)53Y&+lY$f(p>mhi{^R&UMY zh1Zp@bIZt{{Z^FI_++Y;%Z%(O&7k8C8lM)p9%^PYI?PhWmBf3A_u=k28O>i_YSgY< z`*O=!g{;0Dp($4n^e)SfVVe7(U#jKIv&<_+fAtq7p3O};5&AUzdG|vxf6r;cK9-8t z(hTPAd$;Gvj!5UFN-N!a-a1Rm+r4tCcPX#?D0uKIi*M~5tzU<C{CKW=wLoW1+|o^r zzBvUix9yCK5W0Q$L6iUf3w6gD`0r)S{a<<LERTwq_?Dx6VvI5=ZWlevVjL2_#U4+N zz5e>AC_~`m&-Ry(GOwSfH?QTqD_2i+l1?XEsb`@IXGgdE0;7`#J`AoCTZ8A_b}Zgq zoW`GivEV}MRS~mCF5WBm2Rc3IZo7Z^ZIiF?=TB2U-m{T;rrq(b?ql?0OZR!}nD%^r zcF*`od3xhq^F7u#uNAwOi|a89FT7j4mbv$U)S@GDeI5&p|3prXzjAc1>N>HjFT*bD ziqE$&{I_(y#MX<QPMk+%kF5w>d*fBX)_Z@f4!_?&LpgijjH8MP3zuE{5)dky5l|bi zYdOFCq~@~6o378Xy0KJE|IF4`bL@*BvabJH!ZP3VNnu&EZ@|@8ez%J911HHYx4%*n zzl-&#wVL!|xkajsVchof8`XI)t($hkyiYdyY{5zueued`S3eKkX~fI1*eTs*PV64G ziiLNTuQ`acS1dJoox4t_hgFxy?uLI_oQ}-8=^e+MpN2UKl>SLS7qNT!os#EYYWRAm zGgfkX>9c2@tXltJ*90Dsv@5OLTDy2y<{2*NIepAhWZwAzdln5djYs?W|Gw@y^Pum) zp2Mf_7kFpXC9|89<@Z``d-~wxmQ(jH9%s#Jx4ck2!F?ka>)OY+EOra&{K&0-_Dx`Q z$kMO%mH&&bsb^Lx>CW5m#9qMG@YwvmP?OH6_?BPS+h$&3SfCv<-9103)Ff<&+R<LF zZf&Pm=5sY!@92Ep^sr08AcH4-Qsz|EV1tgrMb<t)&Kx}+^S$)_0vQRmxJGW*^sPS< znZHa>3RrMrO5Q@1{<zC0!~ckH>$EdVv)U8G7{<BoY&KiB=$1(dA5ye`>{?LPbb0bt z=2MGWkJ?@+*NBOq8Dh25Nb9}s^5=HHW@~?bmu>id*S4b`M)!LP=J>rxZ?)Vzk-KQk zz4-q=YO`xTsLyOvoO<_I<oosRSwi)}k3wTjq93zrdlg-|y8Y}?-ZQ!96wgl*J2chd zXxVO)y3(7azKz$eZr2hoEd5pfZFii~#jyT;TDDo66%RLdd9JzHSm3ED)!nJPGU4d% z83wat`8<_<uUtufl==B7>xCk<YO!cL-b%@BHD*`xPfzo|{J^r=*Eiru^8DK$4^}K$ zm*IKinda@eje<+QF{?`+iP#~$W80Q1J9E#n?#OB}JDTdivgne+6`gv&U`gKii`Ivo z)IRUH_~4gKr|3kcK=*H*Mo}9k<!K0cUP}8MJahHu8Ru$L9{oH}Q}e_zqOIQj7{7#F z^Ms#va=lWjtk!z<TzB<1d|9NZa$7#f`+Ui+C#!<5K6cQ)cA(Jq%crj|UFW`+5<f73 zXX2Y~C2ijIi}reXKl>WA_fdbSX27)=KI#8m8&_E{nJvESpkgpPq2sN)SjVx57l*zu zr+qV88)dZjbD4K_PqtR!Ws~PymgY@;7O~7FbI<0e&a|6B&S#dD&174mnO3=tGxMuz z_>p64d`=hDy`FTlE@^W>w)@ocH#mE*uFN?RB^`S8K$>Zw+u8rTzGBP09@^Y~FxmdI z?74)Ga{Jw4f6mA?;x@Y<b}KP?<?lJw-7NMmwNg4?o(X#DGPx>mabDPGE$$NgI<t-f zB~{UjJ!U>)3#KO=xwHA>mT%tkK7KTow%>Ty@Y5Q_cdd+@^lxwY5q8y3!tDDjW^ZZz z#oPxxn%0<n^$I?}a;5r;s40o@9n-F+JT2CYSaR+2i*P<m_r2R%E%NF^UrpWZA*gWS z_^V%=<4)fQGu<4zdP3A6BY`NdsMyQPSQypbt*y_Dj(5F&Ra$WAzJlD3uJ=Cv5P9w_ zviiWCrI$^1^9gRY`S`HAn)~igiL(#W1%95)+*)#SzMDg4g_qzrF{{anjSdUtt>qVg zx^q+Y*raERXImU~+#B`7roCpu`IX*>1M@FtTwJxmc3FqaUd0TfqA%Y4(oeU{w$CwP z><bn=`0$cnGh5Y?YIW1@=bubY`!M*6tai8?&#GhNd4MT>QF@O%?{aSUr@`iOeW%jv zWdBz-?!Gx^)A^0F=Q37u?!IXmFn#Cjxs8X4$~PMeR4|&yo?92Y{Mw2~R?qca7Vk3< z-5wNo%zO9c%CN7dA7>o$X#Tj;N$QR2YTdu{?mb<#mgj``KE_|sq0y2i6_VmDN_q@h zB~8n1KPJ8^miLf#Di-c5RhSaqZf*1PA>Zo7;>)f)UA_6=yi+bS-hW_Y`4isq=YGV_ zf0F<IezrHt&z$ovrtRm23jsHO^zRVye=qpD^?$YUZfmZ~ztX>!PD`Hue#Xt{FaJ~? z&S%$*4J_Rd`|PJ_fbP`Z`n<UdYVO^rS*0!G@youMbt>DQp3^c$jdp)O)@SbUwr1RL zVV3vftue`Zy#FiT-<W-@!#j3|!Q{@bO8IdoHn@wNTFu-M?sigG&f$-4=FO+`*UfI) zZ6dq-i*Q+RLj0t*x&Lq64H9`1<ac%MlK81U2A<U-b64M9AXL#@aL{yHNLr_tse3$^ zjls42($u$Gv>JuqE{zM-K7apd&J0PN(8C|=c3plc^0?4R_ie{6pB<m&j?K<`Gn21! zck<oekxTfWO?`4FrrY<Y_QlOYw#7H+?>KHY|ICB0n%v(zd(57^`LwLwulRh`smCQk z3~o|7y1!gcrdjOlGi^@M`t5SBK=;{l>!l?QC%V^v6a5zvU^?^8?ge?OEgqIl&$##T z-uh~Ba9NL8gvpA!O2)7Hm-G+p%=*1K;fDSEcPSor@!BW$m;OmFmh?RHG;%_5-03+& z`%mv(_|r1yhSCLNSI;v=ACo@*vS(j>Qv3h%{x|b`qRp3`&^aD)M06taTh^8@`WH<e zY&>Y=?>9m8@)_TC6=BN`oeGJV$@O#=moe+x`s8U&5~`B6?Mo-H*Hua~=${BWarlL5 z1lQz3VO6h<BA*uQZTQkssnfdhl2F_h*9}2;w2$sBIcjSd`|#*9Wt-_%XPNi!InyG( z#P72~73ZrGqr62fny*awZyDcnR*d;nSMhrD9}nxU1w!3#55;i4wL6_7dwa=>8iD3z z7ylif$#b^r{jIx({U3GLT=*OyHEGrk<Ap&9H_m)vULc`iZm4#1)sD8V;OT`D-tF!i zN`2e={2s4lTXX#N;n@sJ^;?}+3uGAlZr*)%*2imyHa}dmjzj5*uEIO9>#G-ii_%h0 zaa4A=VC$9T(6%6XUwlH4TcL#VgcsRm&K*-0t?Zpu|DfOzXZR(y3&$nqxykZA={{rE z^ptUishq<xg_?VO^Up4_+{oW^!y>xQLMUDC-sX?Wah5-LXF1KW@%A|uQ6uhp#N(R% z`o+~rB5UNOUteg+{rH-9+r_mT|2^mVuFPTSlM@jbwA4?>_<3vW<=s)sb~=65{FeCR zfPVFFSEtx}>$>?0r&XN48y@*VXwfQ;gk=ni+b_?`-)(8)cVefKiW<ir^&Wd&hpeWJ z-j90aZz!u=t*N#Wx?>zQMI!OkMGZR}rzw#p?Bxrkudcr#*3EOtC)wowdF3wsS1&HU zSn%?lzT(?$Ys#k8?fw;>-(7TV&c%b@Ql)AR88yB9|MR@%ngegoXZ_Q)buYhG+__Xx z<KMb>mh<1wE4H(oR(F0UUzw-l6VD0$HRpHoy<7QquF9V0r<YyKnalZem2sraQO>nX zCG@@=E`4L@@At{{?(2GMx3i~0euVk7u0NvnL+euk`>cAQ2R6-WVg=Jzb(zlazIc@B zUa-dFt$W_?6ZtYTWOK;wn^9$6SG{&kz7zH{a<z<W;qwdK5$~RBEYkF^u6Wp`oW0t~ zL^F89;?1*c&6w02=X~5N&9=B;X?GgWt%$67dS|z?{`tAtt8kZkT4&u?kv%j00xf18 zUM|}#aq|7d=XMdca+U^<toyPy2{_yLx}7}uEOT0!VZ!<C>mJ|!-TL!n`T<?}j_>wj z+EN+mUZKHGPDV+snirWqbO+0>KI(SQ?aOJQS2L_GznHn0LEwT#?PfLAnsgJkEpybx zzcfvpuKqHaVg7}He&*<|7*Rpj^U7haldk)0s}a@T`6Y3~53~C!m-qF4zprt*B%|v4 zr+)#JZ?*>-etZ@vZSYYeAp0|G{?C)^(qrXMO`IrR{phIurwr~o_f->WY|8F5-ure| z@A7-$Ua6nqSuKe#CRSWX=_&iv@LNEI<$JY4vxrknN#bW-mmTNDc&6>CN!==^W&gY9 zxNGOjaPj*2Hmtc9Q?JbNOm|Y(F~91=5F6JtlkG!h@}fr{jFubfe_A4$#PlavTC_0Z z{7i8*rJISRZ&<?aH?5ps{lorg;P#M%*<KU*)*MJn`uU}Ce%M0MgVW`^A8ETQ3Qj+{ z`y!|8_0!oOTK4~ocq&>ck)D3Wr(ZdeVde2Z>(Vc#g~h#I9yqc85nt0HvEK%=5qhig zU#!hK&X6P7)1Xs#tlp3LxY=As59zw}N3*j`^1iG*{!4KGtHd{-+B6Tm5_vcCaYgd4 z(+gieSo-nu)>nomiq%qwk8)NVz3*P~XT^OsL0dh$9ULZ`v@*ZgY?eQhR(-0udH17x z-&bsHdd&LawvOo0GYeOJsck!TYtO-7ub%Vxx&*(C3S-cGnt!g#HAhG*<wr2{{Bsu) zY9?J;;Nss^csXyChsmmEFHLVg_>z2Y+oH&x-p=@9^JQvgrfTZnZG4}u?d_7<owUDw zTKh_y@(me_m6>muufKgZyLM}`WlE4}!#S(D)ovU1Z<+Nzoq1O6^HV(u>!sJ9pSAg* zFXvH}!-o&=WHWGHpf-Ei@nX|?nkAJx+U91YX2qS0oaffMzj2Rhoym?FIo^I}=9L`( z;l2O-oE_YW9C@cNaqaZJyP_b4&wJZSY0uy_i&p;H^=<C$EngjsQ(ph^H@&o?^lNUH zjiPhr)m?uknT5VS$$oXlz16Snmo;gYM8*E;%{ja4Pf+NsrF#1_jwQ#|&gPmU@T2sj z`6iv$pS(>q)n9ks4?gJGd8F!<r>XartH$$k?GE0odGtPbd97>Bo<CRCcQl>$`+rGM zU!PTn^K0b!JC`TUJf=9YI<@xa&&ZoA78=Wjy6GtyFG+bRFwanzd-s&GJ{Nwa?<c14 zP2T#4TTtCP=vmqHHNMKp%I01#&rN!|!)xBrz)vE1la`lGx{x;iWx;Qev&Lt`ozx9G zwS&G|SDsNY*j--J7A1LZ%8{Oq^(>pdy$HKEed_nrr?rul@i6AkpuPIH=O=glKR?wx z?P;&(O=)4fR^zny-9^Vflz#mbYpA)yyWmL5p&B`JAFip>AGK&Y_^i1rR(fcOf=zly zm%z`<I}(>g{g3<fO(>8l>Q7eKl2=by-<?v4o|&S5LFKmC<>gxzoL?VwluOCBecD;3 zy)3S?*}qkm<cgW;yWSOh95(6LS*A~Oyu^!tKB;QGk~?LW`rnT~PgZX`v2-%8N1UF| zp6)PrPE*U;2fH&Kb$jwoo-${OjM>|Zb`$Hr{1kFXY)hJyJ1Nue$79VIZe|I0tlurZ z^e#)?iLXpi|D;*kbJf7l-HD2x*EdCY1iiD2^!P0D#AWgM&FiP{|2%8seR0Ee`%ZrQ zUvRzDh&}s9^VgJ{GmO;Vl=kzsroQBgUzb?bEZ{FV@9T#ZH@7Q)IXtJu`JQ>*<%U0P zF%6N0Iy15sCoW{$Y%Z9Vy~%;)2wUQ%L)z)3htG2hsB;LdHs;>0-Sb58k^%c8{<rty zKmH8z`x2qCUT5#E59v{PKQ<cA+fq2|S;%s^8%MrIY>QfBdi40u+@*=jPQQ5c{<}bq zr|Qp)ETzs5Mog?{Cg&{QzGg;Vvhi-?{~xWtscN6(D-fBSF8O!Df@g1zGJkX0BKW>} z&id0YTAEDL^_kwZ<}7L1>};R^f%%DfUvKY|JNJJSzx0Z~?8!Y>+u;1fn2oVM{r!r2 zzBX@M>sO?FI(K1loRIg|LtB%%R`0kW*S0{QAwI~+Iy&Wi;i9xAmGc#D4Cz1DWw$%4 z+fVf0UcQP=f9-!Y?hV3KVy-iNCthI<KEE-@^hBH0!fV~{CbiDAFlns2J7Y2Ll}VaC zOnnMnt#2N)hWugtC(tTxm!ojp%Cq&O%aO$v^Ej$jEpQ8sn<6J+9=?_-SZ|SbYzF)O zNuot}&dE$(fAQ%b7Pp(Hm}A=lXB7WqxG&MM<)c~p*|+Dj-c6}cIQS)eXTih6M}u8w z&n<mh9eQ^Eu0NliESD_knN~lCQNA~Ie!4@z^vZdSY#&bA-2IuL9)E8;PkWi1-_j%R zk4w-0C=z_vmbYMkbnT@1w_s<oc>cBJ?UDU=^7rn|o6ALNk3ZjSUA_DFeaZRL92qt| z^W{HKzxeU~?dd!pf2{rWZuMRHZ{_^_-@j*BukQSGwx(*kob=A<-CLV)9W?vDvDVnB z``M9gAKFe|+%e^6eMvz>eR;g>yBGDD-}c|S{WI_TgN*w3FJ2U+i=TQcC;N8auX8sd z!3VPhxIqtQxh9~WW}H)QaA0-tQUB}H@7t*D|CwCh>*vpEdt3FM!4c_y*}1uEvuE$i zfAQw<TaL^}kDY?*vp;ZEY>T}v%Xd)i*wm@}S}ba7S!FU~OmAOzdn_cjiublzhURIe zJ^3CnOx?c)m%ZJ6tT|QcOy!0I#inY7M;?3GFK;f``5>G(O!~?Si{dI}aq|ogu>+ZL zaV4{!FP|>H_H%Y!;$G%}r1kl?&aVD^Y`2<;a7p&D^?4o~JNVCh{$P`EWQH?~@)`a; z8>Ahso0Np^FOd-~OS06R_DaZc-@j=h0sY4Lmm>CaH(mVr?Hhy7GWX&=sy=#AeyuJ) z-r7lo{j17}Q1Y0#S+$6@)Jkk!sMVqWlXdnOs-EC2x_?A=N7L)94cj*FO8EM1tz+wY zpV!j&!+rL9vpfGf_FYt_>+IUQwtw<Av!{J#cmGj+qUOGg!_MASj_+S>x_kNA>)G?W zt`}V3Oyhff;7)?mw>ts5IXlIAx_n<5Xl5nd`0<p-LS-&^o%G72IlUbYhWS#L90dec zUX+|ULzwA6r`FEh4Z5=uDt7W*V><WoPQd}oj`PZyQx>o8wdVa`VRFVg>-5wbtwyaT zf6b5^2LDWA-f?cYtGDJxdz$#QuQzu;%3r{BmN!tDv1pZVk<qoC0xP%~gLd=P>WORZ zkn5jlFD2^d-L^)2Yv5#m?N#NaUv*={MXrmTagOr2{=;kOrjP6EbHnXsME{+;R^I+! z>F4<WzqEU@Ln7}_d+!}}r8hB`;jr<lH#v1TZ13IrJ0t0{+-}~+gXS*Ywtm0Qb6vF0 zyr|NlS^nN5<&Lq9WWb?I;un*q>c^kW*}3-3|EYiV-~JD`|F?txOZ?6M_jml&H?5Q0 z_Fv?i{n^Sb|I7K~_TD=9e0Tf$zOt}y|IHu&ziIDr`v2akf8x9T{CE8RUq<eYyzEsz zKE6J_x;xRCjrk$}9$#Af2DHk$V9_7<$B$o#-e}s*&i-5BKY#cq(5lgs|EK=l|4S$K z-}IeqGw%Mgx4Lsb_U3=>pZh2MKRxBY{hRl)a&Ojts}KKl|JFO!yvTR+IY0gX@Zjn{ z!TbMfS%v=#y#0T8@!hHa(>3L9U3^>eBQ$Al-<?aQvd5o>&-|5Lb6q^yAanP$pPK^i zCzbW@PxZ5y(m(q{Y@Sr|8?i3&jm0){7k^IpBfCs4<f>lU)eMW|KkW?07vE*v5#D%b z&$;Z&>F*7uY|Q%b_fYU^?%tSN%bsqTnLcydSN3^5AKL<=ce7nE*mrnhV1LxV1K*#r zq?!Iyz3O$;tbM!f<q8WkxvaVeUpI!NKK>oQeV=?@?fu>V{=NP9{e9p5{OkMP=jYT} z+`IKZ<ImL_KkoOgx-sSDg`dGYj&J`KnA^9#?ODUzB#vdTPO07hEzI~?$WrdZsdDGc z<psV+j@EnG?lJz$_vqOBXVJmzp&R4ayET<GRQ~;wFgf%<ueHgux@_)&z3F~e_8k8u z_xb&#{<U$RIDeZQx+AqgX7Riery}1c*jR1nsXA<>e0|%lR~v$*_Hy+!y}WL|;EI_3 z)}!8?clGzbeiS)Z$l}A&es%Xmg$3Vc1ibl>Z2K`XM~3V8fn?@{fIa@6+ghb_F0N<a z(|6|TuKUdU5@T~?s^+n_TCo^Z{d#{dcl+VP{aY8+u<vj7kxOPi$#kJ%j;4IYxxSPo z{S^_~zDK)qmgXltIJl#abII(Fdi%fWT+@H^y(Mnhh3RKM7vJ<_eZI`$$n3Yf_}G@X ztG_KU`NL<=;!{wx=cRCDy3_6Qb?bSXTKD!jeq1Z}dRClzoS$89{{fD+3!82-ESuEB z(YY!^-@W14;@6qVQc+9|Qf3v(=dVsxwJ-=}T5!xuWKZAZXUEPj@RCaO5!+_^C)vaO zq4nN9V$Ige%*E$cXwCnkd!FCo%$+>u37)QJ>h3q4loxpXbXw6~J-+N`)mJ57xY?av zz0oT$i>b+V!N<Sv6*=^0Ox}C0rA>o5Gic#H%PnsT12vEG?hIC`Z@VnI@Iu1!46&o> ztY=py>jjjQE`B}hi_ht|@iniWo@;YW59#vQe9CF>?U3y&-dm=8bz;9<U?LKD>1Y+> zt3P><ERu_kuK6+9>1v6e(&T*I(hA2wcb9Fv*Vo9%pV1E0h)Z^!Y<R{+iO<v8(AaUB z(jSNE9Curj7xO58zj$zQ!IYQ|&n`ECifg$N2KAF(%vNDg^EQxu*K_D(NQRvHg*vf^ z#*T5zzMe9@w5j9JORecnp-Zz;UvFTO+;pN}bk}u;=_<27MugNHv6(8fs>pmNZ%p^p zy;){{3$0%pT&~tC`4n|;V~^s3A8f{bE9OdFTb%TMebn`{=Z^j^Ui0@wWWqT{<}`E1 z^_4R6ZToT+mv^Ov%nu6WPBb}pPDvtQg#?>v@SPH$OJ|%;MoiL`-PmlT<alxN_FnBH z+pE*7{+!hB)&BW`vH8Q3&)3&}K6Z8ej~~~HeDc?Lx$7_3^Y7iR(todCZ|=VSLu<pF zk89uFbIV^h`~RM4`3B0qdnWo{6~5^d@;mnPmeS9D(_}Wy6Xjd{>Cf6VNAJ6pp4U59 zKgl%rx}?k354~$z^A}m2{XDz;hsgD7e>``4^8WC7bYs`E7S2Wgww??9-Z0%|XE*mF zz9~(MmX;qdShT{vWny@0rTr1@d%R!$Y<h3y{#B8?8^!$f%h{W*&2ryzuZx`b)6a{W zZ~8IuJS+G7&gEw(izztuM~Yurec;`e!n3Cjz3HD9v;E%6<vZ?7t*yJB6K{Sm_EQ|U zsLbBU{XZwi&z^JiL&CF;lTW|OUEZ|Aq(<21?gB@XqaRGAzMK}>fA7NjeLub$|J^0t z{E=U(?fy|~sghtGOZRZUHa1S7V2=sgkNhofdMlk<rJl4~djEy>>>s;NBycI2teB_y z`mg@qU(P(5j{8L~#0SggxysKnKhn3b!aet1msz}U+IFVR*YjUqpPM3lPU(^O!%FQB zHNJm$Po4Z%{g<i08jlJ-)_LkJ-r)~E89%JFpYo`MTlizQ!E3HF=T?fkZ~3%8<P(47 zq^c{TwpNO>N?Fg=)%gp^9o@}c^}H)Srh;?L{Y&euKfZ4Hb^WXA<DzMz`#GHa9W2z( zm8)F7Z1Lsagvs;$Yd>}`FlL<V&8W#T>q@j*)$ca1Z>}fJ>zBv>7u%m9^D9Z_p1`%* z#;?+k&hLA0e!j<D-j+?jJ3q*9*qqPk$uV@Z5B~oy_5TkR(H(z$KD=Yyqqg;si?;pc z_0=C=tG{~d@a3Dj)YL|asoSsIw!V0KJIi~&1J&Li-m&c2?sCxD@!)orzkUw&-X%MQ zODequ-m$cZ_0CXrTjQ##8@S1J?^c)mXcuws3rk&hL@-Skdzi!-6UB0Hl0e43=%juB zUB0qylAFGAQGNaL^8aG*|M~s-lz(!f%hGDcrSmiYygT~iuTSj`@!B6VAKc}x2tRUi z-h(IeSDvlDsrL1KT%X$4zj0swrazijebClExc{ANf8DakQu}FMJ*)LUcK=G~wwohp z6Mew?ahKmJS1IM_o{N%S&x`%Fetarum1k2P_lx%{>YXp{FTc{haEg>m=fVX?tRHP& z_+WE+%<4|FdZjaLOq<JFP6s^r)VIP~<Vvl3P_o97W1?TL3Gc0SkKkv$_WVk@`<K6S z6fBDN34ga}sy@e=?VeEUcjvLe$`?E5iNEKVr~F{9FsrQN!Q!TO94~ZVHLLzAC~Vq) zXWb9i#V@-q?pg3}=c0OX72jAzU;U1zbqgM-ZnYH3jSKqkwy1u3NRf)yzJ=wrKl?Q7 zg{JIRIn~ed^uOccpSvZ_YB#;(d=Y*{+5gLnF0ZPECeb?%D%A<H);b<EbNtTw#q8@{ z@!I_0{Mw7R%^W|lwwU#H>ANlU-TT!w|MrpeeOE4DQI4M#V4}58Vyc<>QkVbdIOi!p zFzxg*dcDfm_ETzqM&7TaylpF&=z9x&|It*vj<ZT(LHy-E+)GY+PvKxuUDqkpxZsHC zcJ`?YPoItX*!{z5Le;M(>CQ_PkCsjT;rgEGXWs`NmU-7*&O2QAJnNTS$G&)BR%XY8 z*{^aHs;ZqM+L>NUYe{xZGQZ-b5w%nCq#W1Df81XmI(~U5e(1B~gP+_Fe=2;a@t;y5 zGQ|R%As|_I-YeU#s{bmxYJ^IDPF3h(ZHZs`Bx1^+_@)o-4IlQKY^!gXn5p^qVU6po zxG$4_t3<6^C2Ajk^SR}WNB8b$-tN<1oxXPJ4qJoJK-J1e(N_5<J7dkRq@8I9<^P%0 zGw=3NXRX$DmST>-kKg9n%PeGG?>4)4L&(~l_Y$N}{kr|><TRTdrKjKD+qiJ&*Mfo# zrY)vAamS7BNmah<sBAp?XaAf0i@ExR!nV&|9l9QQ?@h*HSDUV#Ru+vRlCSiHw2qtF zcjox_x<2FWKB{MV_x?78IH@x$GeTM(8-4VOQ;YO4s5ACI^j|~n)${!4zi&)RwdO1d zmMeZzdyN0nsqc<<v*Ok>YhS<Z^kC17gu_Yei=Wxf*1S}s{X}4SZu$ndEACH^h`QfQ zH7=^+Ha+|2!-pF$BJV0F9#fxsZ2tG0H|kpRjb=X$Ij3><^Mqhk!%z!5+1fVGV~wjz z|9-!~%f<fwo>Xbh>BPE&_x$f~slCQHCooeacOFZeMX06vmbX1cE6;izSj}veonaYl z`T48!fk{`oWN%L2-@erEg?0-IZ}i`f`qT37Mr{-Axg0ZN^YnAtaW+=0xA_X|mdu@V z^7qdVS6dRB1Fx)_>vDc;?BXA9H!o7yH$&u9z#iEty6d+*Q!i24I(?~x>m1c(>^G(u z&Zzml>bPBL&NH5--A$YiqU$#_UEjN?yms{q(_PbpFRFH=%Ghytai<E!^43{d9NhR} zMR=*|=4*FU*ccM;@11VSYN>uzvhv!6FUMrPmdszObWApqdHLbiMaQ=0|LC57v*Oi{ z*-vb5wYs(LNHkdKHeE8IvDYVPZ%CTf+Ibo`A9__k<C?ss=E~-m7f!7+klcN!DwyNL zoZVM1M<pL+k2jTH@-9w)3K#z}*<~hSt2meLd9lt%>Q2Z^?T=aqCrrLrStP=hklwyV zfK772V(W{hJLk?SwCPf*{kfBiu}3dGyjE=b-gGl>?~nbS!K&-GY!mpqLbonxms#~& z)2aL3><n8t#Y1<&Ww#A`*fjbk@5#%MQgOK1{7cuwWzmJjca&aTns7&mWx0V7|HlG@ zWn#^Hx|1qys9)n%?>Kg5_m0hOdPn~R2cAu~+o#dNaoKC>v~4R3E<GuI9z0d#`*iWP zE54e0pUv7=wL#2&Be#Fm)$A=VJ@>>}DezxaELrBhF!1DbW8eQRF()T#7%CdBt(XyO zu*T)kbakP9d5IsmdrmAeoS$?i$=>yR@@50u$;m;<P7N7n91nFzHL|KsT)E|V>mucM zmkylcj(0mGIb+_V%X%_9*-oltD_;E+;}CvCY2`MH=Q7E1V*Sp~reAg8FG`<j_i1U% zpI2hllQQCk>N6CdztGiE@jl}^r}<CI(>q_*8J7H6^eES%aby0{zs8b%F-Kp#koxDa zuxR4?H;--JU7CN>LcH+=_gP29{i=(C0^c(iN8DXw>XqKHGEJmO!q&+CWq;e5l1KZi z!~S&2f3dRtrXaua!=s5u`B(V|`rc5Rl=3JeXl~nHmmcHFQz8C;c-9y4T@9Vvp<{kv zo__oBSxa<o+85-d1$kNAPrfqY_l(PJNm<jEO+GkPH0O@R?qkK(>!bIZSYKb8E!Tc) zL*_O1Ys|_Ej4U2+)w;-+-~8h2*U-m%YOn3co9C7rQ@!l*WUcG7cI>FTz2reF_a4_Y z+xms}-sY`=g0J&-EnY4zvXY@bMS%5a&jI<Lzvuk7n|^SqNHJsmllS%8D(<ZK?*H16 zEq|Zg&Ig6H+pp<<TJNx-aNq8J|Cikr*Rnp}kou*>{Oz2-<<@(%{QQMheihd5s81D; z<5xVo|I^8@ob^SuN{5fS{7w)2ot`T<rM=#D#YO9XEdRUIn*^o{s_L!G{Goiv{#)hT z<F!2RPRkm-+^A80BkJurPj1QArmai1{1N8X+B>aq{fDkYxgS=p&)Sl&r+<Fd`&rMg z%gW8Z{OR_?j3eb+*4^zXl4@9y!ot3BhsFN9x%XepXxN)>xv;HQ<B*|HzVaHs*>5MW zzLvd~bzk4k-lz$#D_DPCn||ifyFJ-)=6=#PZ7<ip+%No5j;p2Se&ylh8&RuHNK2k; zJNxI-o~-S9=Ulb-e+W^y+EH<PXT{;!0`K*ItvXWqxpvhR%W5C-J$thLUD~z7b9?2> zjqIm+jc@JCiHUVT>Z3p5y+C1&=7wY8flFs!KkzNTam(7`z+fHU>a{D9!_S(ZUH$B5 zrx{cDn)5bnY#mZep&iE@_FixM_~?n+L8IkLN$%1ffgSuyD&A(F`SNa4so3MC4>|Hn zJ0m)|IQ$ls2fmG$3SZ0i!HnnA?u;oPmXxR;u=Y32ii=5<a(b*2_wCT(DJ+-$MDpe` z9a}4`p_|S-|8DH%YihiFnV)NW+A==96gk4wRP)1YK2!LD3_t7qbrm71evCdW@ArO8 zX;Ae$-93Bt<YkApy={w|o>>uR`oHk<uC7D}^YAQ*0LDh9{a1~YPQLzjG%{FzUw8EV zqq6m(@nQ?vo<zrU$8@`&IJ2<d)LSuFdw*WDpRHnC{+&l|iQ!8Z#O&W|p?c(A;G&&9 z?JTFv5;@KnE^wUt`DQP>nZbV1*i5x%h4}f3wVo?H^;DBzFX}JSesuNqvy-=rlQ?r` zc5Qqod(Sl?dG*n#xoc)ea=3U;)u~c&{^;TMP2%*uN2YSV@jK)l<{v0GIL}<SS~0BS z(!qa)m!CuihU9j&{Se)}amo6hIa88Ur{A_+JL~D`_+%S(m7Asp=Tg{29@>-|SBblt z1wJlath>20!_=xY`PHF{t1=s<_;-e`^bIy~Sz7!;Zl}rf1$ObRDZEXW6h(S;ueviH zTg9`KGwN{SibUTfd$RT{RD4;Pwm-wAp&+6uepRMb!;;k773J(YyBdV&&-uShM&;+# ze*Oz*Vis?o{A|WbwdQ+A<_J6HD<#iM*FS5tNWdh&^BGg`dTC)j$#>VnA8pJyI`gH# zsiKz)yxDp+?K_S>IwG^UaQcLIS9_h@xc5|E-sOM#!|RV38{aqz{PmG*nIwBGWP<hn zfWG~bY<cMiWagxFzF7X|$^V%BGw+}5Tr89>r1Kyz!oaG_y75YO(H9l2g7pE8f`UBD zrV8@y4>6b##xmFRGJBHmEg6lj^RsqHi^v);F%^_GFmc~;>j=|{8IxyA&YEv^c`D1T zQk(A^HQGWfS-IVUDml4NX)I6hle{Y(cdn&&=jG3<XH=Yi_J79f@{4OHZE3sKXQ6qA zqqF@{R(06NgnKS5?{ki?JyHB3@9}I?MQ^$8$88lKrTfq8+-W>{KXh)Pb*a_aLlftU z{4tCCF-7<NnRdpeH$LYx-s`aYN6hHG|ETS_iSLr$?mKS9=ewdiZhtIMw`t86`oG!# zuJvU}70bf5yAGutcMD6Fg`D&`)%)$~1}l4hHO{VzbS;f1Y~Eq+surQSg*(FP=BTEs zEc@849^uF8)mw9L%e8G+99Vpw{djys<+SLAN3~m0#akz8o97g+ixlavTNCPc*tYL{ zWTnLN4=m-IxLu{?7d^<S4p|g*?US^=_nxf6eEBsSna)qTw{NoB?<EJ#XY5*b-?Unb z{ok(Qy2JgZO_mN~U1!?goA@pHeZJ5-&AjM$;@Zp4W*<8{(?)B#vP7b7^Rvk;QM-=u zZ1TG3yvgBMM7_=vh1@-#x_0=r-=DDVV`0vhN6*Eq9C%B<`02>@+iJe3pL6=^%ACwA z!6_4cW~};srFPeolM0jFHdn+w_nrH4a@>xLpEIVXEmED4vV89om2ED2e_I^2e7E}Z z|M2JkSAYKh9ei%Xx^w^I=l<W%d+74f(|M<NFehC4tKaVa=->Cl&4=$Ej@|SBX+nN| z>A(L*c8_BI*8iT-c9{Q{y4ngx;VV^*+WhzYkDJ8x%(%Sl_oUf#!nJOAynX++yZEC* zqTW50DJ$2+{_^u_o1IwEy~S!bf4*bhR{b9NzOpjjchee~KJ-78=1Z<9{PcFl0cn}K zl+0Dq+gs17ue(#0|9`J!?1tR03st$dZ0S5^wr925-pgH?+qIo%&U(6AX1dp_PpS4Y zj_-rNthi)3Z?<VCchbj4DzCl%umAENMAUozuXi%HN>kI#WAeH1|M!71&cFY&zF)oP z^<V$-Vk0LvgDY=XzKHeb<e&QJKkpsutXslMHD}3gEjs_|a+S5g4^#W{ic8l!N(~Qj zh}|pn7npZL*7~o^UbVCS8%n;aH&1I{80^y7dpxZFqeXT_k6Gi(9TIb0mvS|jeU$3S zRNSPilRIOtT*>Wtj(0zKWLXnLgfeWR4$20I<jTJ>U;N9};Z8!C#IpYB9~(A`TJ3Gx zc7MmcwO3yorWf75qwcOIZQ>){?HaM)ICsmsi2S0{B}*)}SWgM%nzi&sSJ{KAHFwHV zj~H528%P~}*{9CT@T_9Pu3J|oxZiZWraK{vWigZS$_kMKJgtR!HVo;P<Q|zM>@Ha@ zzU94Lgh4LzIfjH8O3I((U(9hj;=o;?b7Fh6$>bxIb#D!?Nc;IWt&_fG`zr6cET41F zRvwYn*~eLaUCCo)s^}Hvzwg=+ym_fQQ(7T+?CN-i6=x0G8OtNets*vUt`%N9uQ0SZ zo2P5};kC*a&!x=x?9jx@X;hdLbJkNJ-)&pApCP-m*77H9@|T`@+i&5%weL}ekMgt? z3sP=Gzlnd=5)qjnfAUxUe}%pOZbz^EKW)>$-;VqLfBlf~|HX>3f)9r;9_+7P{qt+? zy8l@@1~)d%*|$6P(VzO#3X6~b^7qvIdm(!F|1SR14v!1A{)_(kKkQR|<v)AH|Kb1k zPyM6*v;OC2|L7UQ-<SN`-`pI&o1GIhYqMq7|7uP7mnU!ha*g}4JN$O6^>PQbb9~va zcnwcRS<58VoZMLW>las?^z_FM_@-S+zqXdW|N6aM&f82EMc7rY`v3TG^4V9vw<^?Z znGtNf+tm058{20e`wxfo?%BNazHfZ!#{Ia%rM7LA`;7M<DC+s{QT?&N`%cpCb^BLK zT{k~gol$%D$9hHE^%pDt_Vazt&wf;~Dp`5k>F^(!J!kZEyj;&_zT&K6R4fOdug|hc zqWZuKVQuAuEPH*JyuZtz*t~69XzkvGub*Arz3rlf{n0CbE{nAt-OB6JyFb%>^|8>; zpI$xs(zfX7s*qP(S{p0Y=YQ}_Yu;`8c*@t8OQgU2OP_Xd>W&2`c0IiR@NA>Rx%1x( zXPQ6R&Q%t>{CM=jyY~dzIb*%^^i|wlOfRZjd--tg?TVSIK^MLhDqk=9(U(8l+NUO2 z{6R&Y#SY`TCEV;6Ew%Kg%xGEvda1y>U5huS^S)z}^Uk?&tfayEs+yrpT0i3-m+DB< zrSka?9xnZw6d!$IC4-@vLGEHth2RsdeS5+JE7mUv?VRgeZl*Tt@w^PJrpo#jAvUe* zb+M*C{U_zkN>_F5J-WQ4Os4X2jQYhzD-`Y)UyyTO&^FKGP_{^wvbcqb6z@@olZJ8P zYu5&g*Dg-V{iJrs{f^=LNVy&(rBus5)uMMJV})(s2IyUs(svU1)U)tq!wp9@2b(_| zs?`P7O7)lboM4J^`QY0$(RHW0klKZ)qfBQqBK}%ux9EObYZp*^WRG6c3Ym8``#lq4 z`#TxE%p}+(QXB;N4Av+-O*wtxi*9j)M=W=n9h>W6>-nj5rH4xwGvz)s&#w)BF14qO zHNh@oufXkZJahL8@ox0LAkEVzk+8pQ+WX5a%Kx5D?rSSn;{N=Y`<iBy^2vkBTtB`n zu&lbheBv(m2{!DLcgOuzSsdYaov*V*f#<~OjA-XGB5rjb?$&+i$k8@4C{SJ{wLe7d zqKtmT)S{L7yiS5U?;I~y|FpZT@OOT~#**tk>1XB_s#_^}&5n0&JNUGs!XYT(L89ZU z2~09G9AxBG(spDP7zJ&<YQZR!t9s(1sCst70xmy!KfbAwV(LEAuCR7>ypff^{n)7G z)A}zF?{q%xDc}2h%7v<y_AAPh=AXEEQG}&ech}5W4Rfw6`t2OiFSYE>LxE48lb45H z;XCmnHh9CTnUkV}teAIRu+=+iyj(}_wDaKvHpW*`i<TU*yBNZ1b<A$&;fcQ1{Ym^w z)yw^)77H@_*d1K5?e6ijHCY!u6-u5>X>9p?eX>mJhRvC(D<)@5yzEuR^I4(b_*56? z{`po;F(*@XnwC5~X8EHcz4X0Ni`cTq&F7dq8;@TX@P4p{QK+jj%RoZ#`sDo!G!N?i z%JDN<Wi}<_iVwrPTPBhVt?ZYnHm6_urK%bK+wfzE>7*y3SB~CPIyUD3$J!SQ6=zNo zE_o+gBy*{EmwAfZ=HnIH?%E1|6WhV}llObFx$5PBTLJgqOcGj?c7v<yho;KJsxxn& z7xSu#d(PIFoII)6x3iDOM&#hpmg(DC5AjR)_NtzpIB&y~NxHk{Obd}d^|W-|DqlOB zs@6ka-Y&8FbU1oKrqc?~>fRkwt6W}mX}U9b+Alq`L1lVHP4_+r?N@DbS>jI2&oAmS zCw*^pncTbo<r+n+jg8+6Z7-^AZ=Vv?c<M|W=lh)td{$XRZC~d5r(=2rGw;^5!ArQ$ zty^<2QBZMWU!(l(yR{Cpmv~%Vma>XZ_+NK{NkL>=Z^9zcEvr_hr8<538)NUy+W1z` zD5NuX6R(TsIkOcnca|>C39BtwC7Gmi%=Xrb3$gE~-RG^{RP|$}n#%dso&V;k6huAU z<Uh%yP|9Q9u_ZSrUgf=efjyBi`$DzI(YTaQHQ(@O(ai1h`Ht(SEoVIOBtvA@>*o^g zi7z%S*k%`*qH@i;OQ&d=f3DUm7WbdFJ_^Zq7$<G-dHAeq`ow3A=U#lcH2LoFxpC?n z1bf$UKR$d`G$teCvQ4zXyQ@9(FZj5Y_=)UXvNUUpbDmF!<%FFYXJ=g7WtNyADj}uF zE0TIaeN*2_Kc>ghD;TDI?qGE|s1n_ru?=)eep27-96|P<4w8R%wwmAJFK~R*=W8vI z|J9alzmCBa`8#@A3u3a}elQC#?wr*&%V4>?g@2Hc#oE3KCG7xNwL>S&5}j76E9EWd zTAZxy>>WQnUH9;mcMFbsb2alAx242<JMb=>xjJ*vrXOAITMs?fc`38bfs5Jc#&ho5 zzR5>27xY@`%wKR3d_?{nmkED#^xU3IG)mqUEBgOaM4jCNFTKvz&JF84|EN~?s60y6 z-e};iEPa=I9kY+~;>Jy(3vO-o<v!Lr{p<^qfZ0-)-5pO>wkK+IzKm26{Uzt&x>G1M zENJ^{rWKF!rIx+5^2w+XxV-(5L{j48h`3Eon-&`}bV^9=I@<fhViVI9WqYgM*Pmux ze5HJU$+Zo39zk=Avjmv44+I*qtL;-$)RD28>LIxNn$f)1zoT6u-o#z!y?F1*{>EgV z!)Ee-FK|s@F_SJxb*mKKW1Kl#Lve36i-EmBlhq^c>E65c=9$b$z8Py-=e+5U;iax! z($8Nk@zk8lpQLuGHQuDX)oXf~`t`g|7hbBYpSjPZz;I!R(MBoO4AJZV_vQqa1Q@TI z@owT8K`-ZG8P9u5N?0s&J#Xs=`-w%IG?|i7$9zGc#o(iIRLzI$zL6@0-#N`wi&Sz= zqc#aWytKwDrKi~Y{?Q2EyyqS>tLCJqhn(^Cn<!vW+3?r#%g-u-8%LOe76e?KF0nGy zUUuy?l@8BedOHvOK0iZp;*qCehg+?A7BA&l*L?B(;kli1n>2LZ>#+ZvP|f~_XG?&} z>Xj|IpNpBR<^<e`GjxmPRqlVtC>Xl4?qZDXpLI_PyEr5{G+mV1RzK?LU(>v5Mr^3a zYumQ64Aa9u7OfO?xg38%q3gcigXznq9!)d6&a_F_Y1{KpE5e>7exLX!hUvn?sWWYT zW*Z!Jd6&EBL+Bq>v0o>gUOyMVzIO66D~@)5#@^|51<OQJ0wd<Xops{WjEyTNE+{;g z5wuIrhxzfbliLLh%}>j)Rc`XQwt@4Z&!nF63A@7PrpXx1IxRQzOrgTF)@?ayzjoN1 zyTvOUs;tSxrZ%@h;ewg!xr;MgM9w@3+ApyD|COnsJ(-)I_}mffn%Ur`x9Fuohfafu z%=OjJ`r9;fGta)(x>h6^^5*#&52Gz|A6U*$s41Ry{q~`A{Z}JCedal6!o=J&Gp?5@ zZTBOK+kYNj_|ej%^DZdxTt>uaS3mA8FE(8iE}p6K%3|C0rB@c+eEqPT|N2_1^z<!i zyHzwS&ho7O6!<Cez@}ebuTx686T6)BWlp6!^*mnE@c4C&<)6w;)7YG>_BZ&<oE&;o z^K<j&LpFBLT4tBU8%$nuQ7a&JfdbFc7G|?#j*W(rf7h3C#vawGcVBB{6c(0wz4+KP zy?nphhf9A;-Uz*Xd9%M?Q{g$Gpzl(vHND>|aY^2L#<B3qx}q~ufvXknI4@M?{gk|H zxBprLVePGl8f})iuD%iZcwg6vSKqRa^(H4r3G$i!X5lE&Eom2E$#ph*sxPg+w*2hM zRXYQVW0$`al}wsYB2jetSJ?g9ndv8W&xAWgC)?Z;iMRSP=_1>o;&*Hjk#84G+PA0l zXOi^MV-3^Zui)bhJ$2+8=%D<_IeC)KnheFOy<<uaFIxJR;o2LMjmMJME_p@E&78Y6 zC4}YkjRRkP)a4hQow2#Sj72F%D$A~`ICt*lV#)LC7pP9$=G@J!YIbDj%;|UJOxj;u z4;53WN_Oq)_`$iO%kmKSX-~!KAm3{H*4a)=&K2BaYChJ!(PeU51QU;fcylv{wS;Kh zhZ}1pc3oK{SgsWGo4@GWsgGi}be*TB27d`XYq7N^N-EjF{eA`iH@ge@Yt&}HI`npi zwb2RVX73kUB9!tL9L;#Lbgdh+UdlxI(uGa64(h@4Ry(b4efL9Ra?Yapq9He`7Uyoc z_4?Rrx7}C$_>TR)_Vsr6?Ci(2k6*1Sth<}Ft+!j-_RsT2y%#P1U;VMOw2mun;ZbEL zyIze(!>i8SPvZP<vvs8Dyk(vd)c5G-M;EWC2UR~;F?RTsKM6_Pa?Y^n!>ZDM!gn2m zOz)Yl_q)e*t@rxc&DXxJKhl*Sb^ZBSGydo-m0O2i8$_v_r}t{_Irj9^qPtJ7vEBc> zy)fPH$>OLj+3wc!??_KLTW0VGbU1#DnxNya18XCu{II+va;uKv`?TM7H~Ku<mh9SC zb17io?X6ROw`i*i#yjrjt7>q)wQ}Ow)Am;$?3H24d2+@m|D{Optcy<EM;MAPK5Sq0 z+3ev&U%#3IcfTH!TxYX$v&@5ya<fjKOk}<-^<ZJ->`+nF;NINCB{sdn&x2c~19q^d zMQ=}$5Z=W6C4K3)|0-OJZdN}<Vkg`F-?62CrDMr2)%IK4I0PShDqS=9IOE`rdE(oY zoO>57P_92>V5Y9D)yh{c5?z?_;iE0j9Ru-R@3T$&5?-+9-LJ4Y#<q6Gl(kNpGdSJZ z18qZ$^q=_axby5&`@h-7XX>FFlAWrP4wwC8k=T*<{^F+1HFv)!^z2aPd9h|vuSin6 z!9{~FJEoa}56G9-{MmHE<c{rO&xMz}l@HY<*gQ#(QBajV(z)$Q+T@$n8#G=l)IW40 zp^a1NWP%o>T6Nps2;&b=P6(bYU#Tgu*ezv6#^iT@W%U+5N>a+-yuZLYChGfL>+4VB zYCqjbXM28O9@CBewQir*dZj1!z4#$@@1$V)YwnjeYIbSP?9TTu^+nn7Y<n~L;k{dj zq`k`Se*1s_-t@BVy)m8p&i@gW`1V@yr=0l&1<jYdzj~r3UH01Jy6N)Cz>*sZj9wDO z+zhwQe)(8mU%Hx0d*fn;pt3}xJVEb;1+TB&6<26pkSH)+?OfirJ33zi%(a6U>TlLC zo}D^_L#83=M|IqTI`h5*(fZDNdivHm-|f8->FCdVu>7R$Jo{-ZvG1QKsu$@_k}Fwc zCvc(kE9*mbhYXIn2RB5^9Pqm;=CM}AU&+^nw@_8{7+0`M^vuEqH6CtdZ4aw9uRPB3 zQQ+)>&Rs_=FW7yVeCAuo3#&gDY#mOt?p^Ft`!Qjw`=7FBV*3p9?!`6B2#UqYRQ-SY z`}>QDxA(_0XeDF|Jz}Yrl6%U#ur0e{RlHK|Zh>oaiW<y#?|+J(+w|%z+uNvQ?!7lw zT)S7MYr7+A4d>Ps0)k3DIc$L(Qnwhtwjcksu!vJk_tewxW}B*_cUS0W$1beg8)-i0 z$6|q~#QksVqg4J%&elAWK1Y%NZQz^Az_(|W_q7~JI}m63y~F<RI~Kcy#r!h`7R6^Y zEamJ=E;9eh&azXeuI<56Pj3GN(_5D>a;iv41sPtxGr>wmP;kynPUb5YmuyUCuke(u zSZIH#k?rNfT?t()<&S*4;W{<*PHXbF;@*^iYHp>dLlaN&3RT=#{5Y`U!2Q;J$^y9` zC4O1B+Ff1D{rlpkx4eJEXB9LHE8qWBe{W&VULg+g#K%{7Q&&g+nl($=ptIcIt3$|_ zh)y%(oTH&N%TlWkYlK}f^Y*f==q*{h{kysB7te*xOD?Whlwu)uIGTI&zTXdW>e<$r zJia$!iKb}C<eZ}?*xyzAe)c_iFC`+zWyi}ee(p-5N$sx_Qc4eKJ%1Jc?BVya?DxIA zJ3d&+zmH>%jLmf6(Vh_gSo-6weBSf+Yj(OufBb&n#dd)Usk;u_y}TAQvvm9Uu60se zZpJEZQnGVum%K@co!V#h`oIpgBMaVDbBDeRINW;k^_PN<887Qk+xEUr`#SAb{1)3s z+N(03n{R!~^!U)+&mM2NUMRiwukC#@?`c}Mr+(&b)tDF#=Y`5KdKXP<zSrHz5$uaO zuqBgW_xG3G+_PL;zhvJ}e$hRjCv_`RPF1e5#ID)P;tsyvwdh6lle=Q!&)oPY+|nty zY`rB|V3Ok+BNpze{Ounl@0W5jo;}9qwBtg)*V8$Yw`T^FT|US+^Jwdb$vx>0Gi7cp z?EPjXU$C(BL5{6~!^)0xw{}L%4Yvx3T-I_-_N!F6{i3Z7XXZa~EZ1OLpZC@O)WMy5 zxx~6EKiEV~fBWx2+7@}y&0)V4m1eH}mgiV(^2~egjpH9#_q>-sVcdWAk2JfcO<whe zS>2OWxJ0|ZD!hBNYLd#X-EC>#6P%CMel6R7)o@e($!9NaZa<(cmowwYo&5Vv?~iZj z+9?_TeruM3u+0IbBfLF&-=kt#9?J`So9R*9rf@Op?e_b1%zv3Uzij>AE5_Trce9iC zuA_;@3+`Y3<6M%ywvBf&hp;{4tKbVWz7;Xv`y2nMYyZ11Kh-^6ZpktY+I=VQN!sx$ zCLhs-*5>xX7ddR4BKkI8y{$J-cIM>uYOiFQUWhufSWT!_TUVhqlS5C%udA)vdinOh z)9>bKn|2j%damocrF^?|No3v)f$bNL>ea3n|16ceJZe@<e2&@IvW$O<A(t4N)UT&^ z1?C@&3n=g}Q<*(;em2+J^L=TK%PubsFPtwlN9GcXf#3G7uR7O#bHrF5T)UmeU%B(1 zn{x8c^*dMG*1f;-?PI4OhwDy;mt5y}dak~E#hyDY3uGn#9c1hi2yoglb<HAq?G1+% z7T)`u{5R!)M&<qcZim~pET8^=XWM&KUMG%eS2)&L#CxxsDD}<PUtKsd=lHT>p$+$i zwGB5+sQUAF-aP9f3p*3x%kG}76+ag~WENd?+G+pC8-6u&!j?~$XJR&ylaKbCtbY1y zLBk7QCiaMfRo1naavi*#BGh(EFRQNo`B3e9!Yd}-dmD5)>^c5BxIaHTyKmJq*)zel z@&6LuY`L@f)3*DQ;uS@GvzN+fb3NIon!@pW_UhZ_)7KaGv-2KK**L%cXUfX6Nm~ti zZt95Z)Lgvk6w<T);>z_Ge|4@8yqW#w#VO8kxotVWJ^vlpFJrl|Q*z_}^yxk+0y^`z zwB~KUy-9VYp5So~<Kx$vW$tFivDGi1l$Esa&Yvau%M}V|7)XiPzNz|N^ml%Czrz== z_{VamV@vqBcYE~hRaeprIvA&@(eO;+&+-q(LSL=kA6(hO9F{HnkoR2Ip{6+A?<blL z6fFF?An#e4-O(l6jW2e{ZisVmUVo3@h3VA+ZL2S=Yo~pFHS6~MvpP@retR*m+$w*G z@4=S;YaG8D9{+f_L@N5t!NTVk72hAZyz}S}7srIGu+scx)ra4;^#uR7iG6;<kL3)D ze|EWCbnMZ|I}{ZSO)up{ruQ=3de3l|FSD^d{)akCQjEcLmyZwYN^S3yt#g-t`fzWt z>*wEFquvT7E#~!Am5Y*Dt)8>ZZ;8k{-K?(<=CbMK`1Gv3^=orp&b1pFpCb)7h~MNp z=lK8fisFjS$1!5NRd-x1<Pb`+=Gbcge!{yIk^*~|oHd*6ujc38D5_j1>9XEno6@Fl z(c*hwn@i2;{1U9Ox+|9B8f%zS_676Ys-OSLsy=`F^>_E}?eb5mCOrx-m;Y5!U;O>s zr?b3)40k`j*MI-MzP7yFcZ%KjKY!0&J#JlMKH*W-+fQfX??1l0f6s3JuW`>CzrTNX zfqC)Aln0iQGkU5w*BhPtx&Q9H+8-4^XYJeTzWnFMzpu-uUza@4c>3n#rmeOzo8!wn z-pE>Q58CG7;rW~|XQqM#i?2%d*8j}gw!4N`?1)+Ypj`Ofl)FC0F+AH#j2rH4P&a>l z??cTU``32St5aX^KXdn+der<E`>Q@M_g2?-yM3Kz;AQyiL5`6mj}rUSum3Cl+Q<Fx zmp}9B|K0t+E6PiY?{BT!eromq>*7Z}H~f2@VlbuR?|v=5<L`@#EB`)QwmT^Mwyo*i z^0jBPBAq{7%)5Q}U3Q4i?wG&X-Z>ZNO<vb{t9X*gWP1zSxlV>XFR$2^MigukYwl#f zp3{G=hX2(yb>lB;yC2oRaLsNuF)cV!xh`qr!-91`wq)fprQa#5+`2-|%9Q(e@`L-D zB}?W9Ial3KUB0>GhHEq*|L$k67!t!*M%%v;^7!z31NVhB<yPflh82?B4->@;^ruYt ztgz1brPc}lxc@Ux*T?*O?4J24ULrkJ|NlY%{eR2_R0|J1-LJ*B@2chh=YQsZu0QwR z^8fpznrENhtpD}*qC&?1nI6gK{;#%RV%%o2=o;rjRm06D9@E~7g48|#GhhBb@Bi;N zk9t4(|JT#uzq?4o_xe=@e}A@t%=-U+-hciHw@l><|NY<lseb?K`7i(VKm5-um|OPX zfAd5WA$O&B|Fw($?w|Cyaovw(-f-s$tyTv+s?NUSZ}v-kv*P-mr}7tWUYK&T>aDQv z0=MlpS3IsO*C_W+UElsB_<DA~>8<_8Dqry*oEK0r|M<3s-wua(C-Ta_J``?Z6mnNp z+0s$(>#W$f{%-n*E^dEe)Z5y){Fz_gmhaY&jQ76f_nH4B*M6ej{@eSkEw|p@XIvd- zUM0lfHhD>AlpYiB$+v7G3*;O-zLhZ~OHWj|DsaZ*+wX(3p8WCc_4<~d6J4a2BrLqZ z@onO^%hR*kztk5#f3%N>T_tk%S)u)TI%U5<$W&&rEe*M*b>_z2wcYD|!)GnMa`A^* z=WR*v&l}UiLmS*bJukeTy)TOEDBI$zBCkw?91mJctd`>XDy2L1Ou-wg^kp&s&a40D zU+Vm`{=n1!UQhmScK$tIWp3}%&y3fZ_L={jf8^IWasM~p>(~7Cmty}@e<{J>(WiRV zPy4@pF=0)9pL{lG-m-`gry$0Ejn>ajIPE{C$@u*LoqxyQ*8lk-_rw14lOC0S_HLi{ z-~XrH+06L-f2fT8ANTxpsl7Azy~})kev82E31Y^VeY4YFdT+MAFEK0j43DyB?~~S> zPv>@=yr9?SsM~I|Rr=O)+h@)@>t1RveV(~8+dT1;Brj`Xy3SK2HmPcvq_iouZm!Rj zOt}`_Onfa7V#{k|an#M-^4OD%`~KNiXMSp4@8Tg4wr_KQ`MGuGe{QU5;VS++|MmZv z|Ih!(f3BajI`Y)N`8{riAMFqR$#3a+{9m=l;{Wqs^2`6n{D15|^^5%)C&!t;=3B`0 zG5xxqV)N+ReJ{RMR}K~(-gW&&{_Vx~vANIYznT1i^H`%`K(#?>?3*2jZq#4=R%ZGl zs+T2}<4Mam!Lu)zrIu#;ujSsqZh_DP*R^iHKXOQfzwNp*f6HD=)AG+dm#s{@d}Uhq zwA(vnw5RSn|7xG({|vXyu2q}Q*~eb_qsza&>CN0k;bYVPXS~RI?DS%L>oF&DA8wO` zFVQahFMfGDzj?jx{RI05;#dB>y?s$+p2_N)2evxBaR2f^wRhVGd$miGE{g10-MdP6 z`K!FGxlW$hGG#`sNy?uV*mLY-(NA2kSK^D;r9ZAmqGR<>*nHhB-R)Vw#3wDQ-cEXj za;`;STJua3iLdRCjW@36k-GP5dT*Js`&0j*u3j<AZ?=5e*HmpM<o(+kJk9sZ-`wZI zQ5?=+S`Ci6+AR-uoYwlQr0dGZuO(6H-p?0s&B@(nA^rH1{Ph1j{v7Y0^J)Hep3uxs z^DSmv_$A->$GqYH<4^YupX^s*3}8+QOuj67^w_#>1-lRRuAO6SFTHEqg5@9Yvp?Rk z^s0^i(V|15lX~-bn5%5|-HkBc|N4dYhxZYlBKu!S&3bjSXoc}io=F-)&+qsq`)$2? z?bhbW9+O)=p5NWZ^7F%tXqPYb-o}n0)fHbnvkC(ebr#yobS$Vd$x<`VF8sB1Ph-;g z>-OA9`?b67CKm0iuYX!u!2PnzYIfJ(l^TA*Hu-O^T~OAG{VWh97(4ZC?v1VgGn9%n zx3(rmOZ42%`1IocM7vAJ{}<=A)&JWYnSFPzsefMUg2Qza?()vy>k>>@nsD->?ZHyj zWw8^RAJ<>GDbuunzWFNa$tesr+Rrw}#LwY97y8x5(t7fQiY4DdpZZAYw>_S?D)Ui- zf?i0Wja%15jkD*E+`Rdy#?V4uSL~5QXVCLoE8@TB&pv+Wx8%b=&i^ki7Y*BbwE0%V z9l3V4i=o0c`}1^EosJrP6K9W@z#XzB_c<fGm5ki3+@p?triCRQiN?97SLLW|5cuou z|7V{0vew-mj%-ecRvb8&T4*rE?c?{EyH=eQO@1Z4+xh&p%eLM3O=Z3b$AwBh{1))G zhvoK#c?-6_l5=EQ92$N<Wx>|UlQoQ=`o8sVijF!b)MIS3O4~cPPpmfCrgZ*S$%GB9 zVy$!DU6L*EtxKCZY2jl2SxFx!^7tuUVwJnH_t<pf9`RE<jeOXpu1`F6{-DN`C5I=r z6>qAY&7!&bt&k#HLgjM%H$2BUj_b2M?yj>hS65x0%>UD9=fB7HR`%zt?N=S@-yid5 zMf{(N`PCUJ_y51+;kI4mS#0redc0oPYVONtYz-!<F1v9eXo<Uws#5Ta@)<tv5BAUK zdy;#0N=sz>l9gA_^(Qm8Ssatw8j&1Q=%RI{OxsrN>)ro*d2FP_jwveyEbiWSV&jY5 z2Nx~*wruH&Cdrc7^CX@Mq%8hv8vB*`hOMz_!LEA|9QozhTdQgX4xd>q=(RMfWuwB9 zR}1e;NiLNRd-M3oKl^w8AA<<)um3Bp&Q1~kZz{*LG~wU*6r+cK=lk9JpFX{0X4U29 zf6H`AMZ+CA3wJ#&6}@HJeCv?A@SoQ9b<P&`nUQUFw->(8u=bC6G;d{Y;~()T{mlic z+gih=liRG@F5S<cqU!NtmREiJyEW+<M@{;fTo?Vn_^+wwo%?d>{IB=ie_!pH(|>Nd z$XDB43Y|=DGt@7()qi#f;NISuD4oF^CnY4>K6PoYBJ-@KdABU2`OiPA&AcJmd1;06 z*)5y<jIOABx&GwOpO`s{wn;q?IAXV)IMDJ>h4qf+Ik5?UtrvA(5NwNl<$pd**~j`; zjpOf?PdLS9+?%r{#Ws~gZRStcKlc4*b8a2$_qeioQ{APG*-ITgJWfpiao3PnNY;Ax z>cs7{F2Bv&cICOCo2UE2iLvrQ8c!DK9!U|}=KRwCRFJWVqsZ>0a*2&xjX#5DmmfKM zqww;AzS$ksLVK9)<O7r+FlQaHpZwsrCck7;-#m|+zU_Cd<>t3N{@8g_I#cY(>x-ES zO65w}4a;xE&2W>__qk&cx87U%&}*U3d#<0J^oZH`$J{@BGZxuRo$_s);GxyVU*f;W zckVr^n{MLCwfQfH@9#zSI|P=>l$~90c5C4SkyC;z-<j?<bGqYb+4jY<DXM?r`R!RB z)9=LhPvt5;qwF7ay1Y}&J^kn7r@IR}-xZj<c@>3v6k0y*-?Vi5oXe}6vQArX4U#C4 z^3+{AMNEC+(n;qYeVMW)C^D;4$5X2N;q=I*8$^U6DldgEdLnxE?q%<o%q43}CW&!t zuI^}=>bT2l!kQrCLt&yl8&ve?*wzH69AjNwzWZlF$gb<UTqz6d%zmiomMSb`cCP&^ z$ul$f>a7;%j|tZpB^QTs`)DUf@XidsG^Z>(sKw*|_A()F?XZ1Y*xPP?S?z7XBrdvh z#R*qeJ*}d^iQQdmDxQixOlrBPva-S1h<&bb{>uJPE0Oi<uH2q+-SM#KPCM?F8I=;c zlFOtMntb(t3;j{_dCL&!Il=F3d1>N_Z4SqBR6isLgiL)}^m%DXrCLqzpGRj5=34}( zw0gy<YMK75z53I2*{UyHCf%yFtGlO$S99Kt_K2<6nJv0heM4J?#|pQq4ez(D;(s&0 zG<g0?Z(FrbP1zDLhaX6>T{qa#cF?qEici_}dlGZ^y2(U~D$i0hi+!BM`1erdD%}ak zgFZjz+S(h-_4?(>71B9jIw99Jw46eh6}~z3Ic3g|rlqI7PHj1^b-}9aYW2JsPPQ)3 zPq0?$WET4#o;SlNIK6xGXHR$Ox%10aa+fUV)crO0WJW<<nOde-yhyF^?FAQk*JTvA zHfu}8Tzt^wCK3NOQR;Wl6<(X03eIg0m#_Tk9OcWhf7R;Mxr%RhWLEqv+$xg3F}`D+ z(6&1}mG5;g;I#gF+_gD5(@xMsp-{!6orNbvi(l8G&+Moe`=wVQKH-yYRy_;7R&%hL z%g@1Y<*JD}PnT`IpS5ZB&O3W|@7&|p;J!06-EPIS<z-K=m1=RZyqkDb$5d{HQcu0{ z5)t1$FW*UIMrj&swmPURx5P(<-%a4$`KyZ+YS!#{qw&LQIm3M!9%G4j2Tr~|t+HP6 zqcY#7Z$WhxJCdY6emx!<e)yu<iuKPN&KMn;FY%A*LR;jvOSz|~#>y`Jm9gZ^jVH_d z{|fgSYs(i)aGw8n$ig+__eZ5$ea+6AkMFNK*s@qVxX`0;jliR(3d1K`mKJ44^GL~R zZrQ0I<SEnHm$&xuspH(Cc4bpv$t{1X`TJT(e}`}6%vT$Khne=D5`11U%bkT!_NMx8 z-xD+RMY|;`N>)!ZEWf|1<7ZG|$J~xepZ*Vm0UB%X|M+dtsK6L}dO?}NVYW|k(>MaR zeer(jYH^^;t$k_KlvPLkzGWAioZNiHHCb8SO{c8%Q=;T)+dp>GtlJgDH{S{6C`#4Y z_N7**jIUEWFMqmz;oJ*Rzg5<r3e#y02r2AdlmF|%-~AQ;_3!=f{{Elq?f<2#9VUwJ zN)vg-Aa?)1_Z*&M&h`J-JJwrBefSr@{N8_U-{AE(=7sZBZMCg$Ub##+CNX~b^EG+8 z&VKO|uRPiI!T-!pXFVC7hx2w^JF|1)<7@Hl%D?sYg<bQvzLVawN4?^+_7a{4`%-@V znY)d}e(m?qe0~pwE8aAFvoN$bPY!SA;j6nmpEowTV*ak<ixN(?r5}8kdhlJ^!FTBk z@1D)LZ&c1DX*K=g1IFnOHf+uke81aT`%azeN`0?sB2&)q`o{WBTFul@z4EL?%H_Sw zB#g>#FRwUObB$-`$A^nQXx|F%z1$(>ke#deVKu|$OYv>GJO9aE`g{BB+4Y^pD!0S7 zeb4{?Eceo(-M8hczO_tbzO?>cwR)6vOK;Qjd2X)_Uruh2`We^wQaCfoZ{4NDk3XL< ziqG)*;ifW$xy{Afaoy#fZ{hp*dC6T=SaNK$_Qe+`zkO!rVilgTrS<%&qV_o5Z@V8Q zX!K6-v(Ddg(wm`eqROV~(%%oC*-d{a_t;mX@on7x-M%agx-}1*HB)sy_%7a7%ij8G zYSI~#!#B3K+UNVkR{F6S2HtpTu<35?|BuhFZ~wmkPR#PzOW$m0bW&B1TDzt(N3Uv5 z#m(sQMeU|Mhhp4Ua`f%(cV?ZIwyRdg?aAe$?h=!8ihK_zc^iusax7&RRPr}2*)CqZ zZ>pD8mjJK*<&KFevv1C9^KMp3xu2%Qt92>jNq~X1lU{rOp*dxBZZf@^F6j{$XEpth zvP=_{3gen5e$M{mgFk_rc#<~Mo!B@pxmM=d^Yc9%3AIN(1r06q3+FtykZ=F|bMuMj zDf=#|9QK$ZzfrI5fZ%r%!R;QklKpzeZl(O1a4~Jx$&6X|vSyvmnRPfXYU;x+QKvKG zE@#T!&MZ9^{O#Ihp)<=Lew*ZTEzs=jZS7674UBe$C6uNnm8IsD*Pe;EbG$ihqwlTT zhm85&89udtCBVCX>nm}m*qeE|t8O)?zmDggy7rTgTDEn$+_|HV_gDN8@Bjbk_{yX8 zifjuVmp)cH7~lCZ{;y-b(Z}QUos&13Jp35HT=@S{wR^8k9o5x?POR&gsOZPx!rL|V zSx9tl@~t;hBmE}&9TeOx$9>Z88@no}AAkSFIxG2v2x+DlhfHG?`91H3&z=AO;>2CG z0%^Rlc{b74uI+j8bwk9O`fJZ-U*$TxWw+tHoQj!yZ|-ZCdwDe5tnTTDNae)R43CFh zJ(@Q{oi4~S$wnXeCn;PT=iXY!{4F(g?IBB*eD2w;3vO&*eQ0{`M^6Xyh!?D%&qiJS z`1ac7q=~^UyTnU^9TsiccvH$MC}Udnj)r$vujDCjJ|fp?pO{pws&O>6Q15^7&-thS z$NYQ#>Hoq%{Vc4>@gcwbC;ew%{I5V}%KvuZdH)MVe#&>hSD13c$=X9%%`*4x_FunF z?km`N&-lF9LG!$cCze^P<XoV#$7sp}1IDXNy&I#Wav!d5*r=l1^yl@p$&1B{(_C1L z6`CZ4D&AD97-W56IeD#OaU_>VZFok;mo3}oy$@az@ZjL4bpIK<XLhF8AG>7Fs4J4- z{C}eSKTxNSsV12Bc3W?qnb>UK$Jx;f!r2>F8z0T6>D_$lwpdp6kA3wFhTjrnr{2%I z7PZ=e)sJbHaDTkoWS(bn`3F7QAEdtee=W!&^Dq0d4@H0fJ^On0Dm!CU<ju_@ad-Dt zE6<Q#!nxqOuIa<;@p<p^F6bV58@*6-8~a+T<{d#@n~tyLf2Z>=vwd2dUVYkh*~6mx zGKrqy|8JPiQNC7x;=29SU(fqZzpVNHu}j~5&Auby_E%p$@89+L-M{3iU-{!}3WK~J z$j(;P$yWUAwotcZOX0_o2=93jJZ%fQ3QeZ0dg1%lwrE@IxB59|$G5!{O5T5}KXtWM zSFb{qviKr%p*Gho#~l`_3(X1rmVY2IpzqYpzpsza-d*o<f9@oW37PiV&y2V9$mxnb z{umSFHu>YtfH@tv5;o4r{>&&6eQC?bnI?9xS1-CI-`9S4r<H}Y{<+_eJFV>GJ-VvI zjLR3jx%k~9IaBFt`l$#R9=65Bg%-0r7vD_SBhY^MWXh%abG)B#zUU#{&z7Ek>*mjz z9Tu}aKW{X#3*Yk7r>m0R<ab-!Ikg9`v{N&)I*X&;hZ&zez!iUH$Gwi-$HV@u%WO&c zer)NMU)<N9Yechb3U@j9X~I+G@^7CHZ1{4oPSSB!d=qcO_l(@XN{!lcxeAIoIzAXR ztUY({q`&R0epkhFC%*dcHwvD9{zmS5R@v+YOD7)J5<d~)kutR-CG?4S$h4?{Ng-j4 z5z_+oyyspCnwSzcGh>>k*=dzItV@l{w#=xM@Ll=jr^=B{S}mJI0(7or+~mHf?41;P zBJt(JnZe%{DarQykF63u&ST<Mv(9C!;CesLUC9FM59YJ}cyKe3x#}zTQMT=~<@vl{ zIO!a`a^aaYb0ceQXZ}KYsVBFk`qu<%{aD5oz;&{d`)BjU%aaOMXWMB99KBSh`BV0% z49~3+$5jUn(iq$)Px#`pM&_GRXv(V-Zfso}Zz^o*&-=pBzO^K1L)w9+=N#wG9Ij$p zd4PY5vE)C$y3EJ#=W5T;QCht$^#EI5ZK~@G4hgMC6)aD#PMlIwux`?_6c%&qQ;(YV zas8Ua{^1fQlb!6$hc9LSJoqVZ^S}9d{Rd^&f9;Knw|YoKHR?=Q@+Y73uk4HehEjZ$ z|J+-D%1h6Bl*r9cCe<>x=)$o}LchdMvPNz?xY%g#;$X=MEh&<_EvJ0%yi~!&6drM6 zskXB03&v89kbN({&J*$ez37egi&N>f>#p7|JFs+H*mmjK+}6Ir?55(yndU0X(w2y9 zzm+(D;r688?0YX>d1ie$Ea2blBYIlb{_I@+s(AHI!;63HUbB_({X8tWs;<2Fe<I3= z_JSk*b0_wyTJ4It_Kv&CJA7uj=<0iXk`EsLJ$v`|X>)Uf14)}X_dfso^zYyG@87L^ zIB#ZB%e~_I;;$e3dYJYpSMgtEbDloC?z&fZV40*&t&K~NBBLyCv%5z#*B3?}ZAD(E zg!*U=x0WWpqDu#tx6RXHvbxT`eucJdxciposnQ?97jMaRJysAmTW(oO+{*^3U8g67 zEXt1&e)P$H`v0AO&OiMh@KfIX`jol<ZRNiHKHU5#f8z7{`9c4_pH!);XPB}@`t3vc z@CZJqm|I5t!TUUweq2r48SU6_|9<TgmCSAF%lj|CtD9|lBjn;`4z1izUK#?cW>2## zpI35jOY8TxeL+2c<G0xE{oT9IEq&Uzwdee6CT@FGe5!5Qh57GwnHIlyajB~EIOiX| z<L6zbjoFp^&2@91p7%K}Kf%^mR(O)f$te~~K3rI0Q?SB%Udn}ovtM<p9zI!{a$?2q z$&Y^t%u8^XV70ka``6V_w!LCK<#%f$vqOEhJTN)UJMHS(m+2k3F6ApN7AckqUA}3j zyC6$&;X><PF>N-Lt{rD@ywR!sYw~x=!s|CrX}<HxU#u0<_U>2@gW~KR5mk50cbWuz zyWo7|w8O2Z?Z<O8J3I6;e_fVJoBQ|S&&_84r~KWhyKuWi5Wn8XTrtlTJS?2dPbci% zaz`)bUH8u9&zmgMgf{hun`C}w^|4sosWkcUf8VvoSLk*=XTQt;L0)o!?~CVeOKtDI zwG>L(d`Q#bR;lUJD^uofooScZ(USB^WbfHS+m^9sU$*yHV0Sd|^|}+6{{H;tzdhf6 zNqxCcBu8c1-e|qIAJ~N$-t{iivow^}f6;k8`Cu`R)vLWpURyjK<t@uua^8KfbLxWx zm4tPhbW*Hkw`+CxGA@su@|4430zW^Oc($TN;hQMkhY^NPA_6(IKTR*NOkFd<B245^ z*Po@a8et8=u7{Q92!zckUZc?_T6a6hFR5@%lf6%&(!zV^Cx&f%@JsBaTl@YWGg^N# zcR3$?Q}fAk<|g~eSzm%VHu{|{=RJMa#H(PDuIc(v)8#_*?_H8gJE3#0M*Fo~a$vE- z9f3#{>0AB3&P-ld{HE>5obHO_4(IMpc;e}?mwD6UI<Gb7+urMMI2IWi$L4lfcfX0d zS3k4!dS|xt%+l|j#e$Wy^<5JET^RFSOyxRH?G;-7VCIPjb2XkVJn?YpiI*!+JYK8u zXrsoHtr|~uCOp}D;`Kp~r$<kyCx2yIDpJOARXjE(Q8`=I()V6#{L7PTW*&&tslUql z_F~ba#SGeW*%FFx2whxvNhrB}2IJH{y1FqFBO+FvpE!$SuR;fN1<!+3x8L7Xs4!XX z>vmz2q7b`x5bN9%yA&>Y$4*#uWT{ejiR<f!i?6dTh`J&0=dYN6_x(PNw(0YyhdZ5# zo#!#fB3(J})2~Fu69KiH8x4Arq8xR2-R8#qHQ?_H6MZu!t#U?-&BnX`e;#gUDzM}H z`+3i%F0Y-6u^z&<b)DNHEWFiOp3nJu)26^~=cgRT8`Hz*>T<MrwQw@MTXmvTizD1) z{bt5ll2`3|t16Bw-`ja0ZcfX5C*3`d13$$$q`RJHeDOoS=HU~D`nsY9eoyJMa?&TR zB~4H^F_5{Jx_m~9ON-jepqDiXA8eBTY+LvHdGAW?^DiDtof4ii!R^I)_1xYk%sYB! zth)B&mRHOIVGo|fGc}So4Q}cu{BzY&{JA)ZRqyyG{-2-R_3JO{^m}bRCDX0{@o0bC zADN<yd8@<D%`A_UELN?%!R#T^YPeiR>iGVf%RVsY)$Ld@wea)Z(@D?Xi0^&U${$^0 z7IZ-IQiulYo49ELAJ#7N<$I|pldCmRu1w#%;z!uTWf>`Mra|sC3C9ds`<WAtRE9s6 z{I3|ZI_Zz)f$E%l@f`1RD&9S;n(L);-*Z#!HSI8y6YGP@rf2V6lApDAM!~Gf94slj zV<ui~&}o=w?s7r>-31xJV|-sqG#xUF>Mp7MTypBw$tlMs>*lLRFY>#0X3mwB7R5oX zq06p@%$5v3TGpm_+w|$xn_<DFOLrU2tBO|H{cW9q%{()XyZ5DU#oT`-c5FY7WMHUC zGXHVY|2>cAwZB?rbS27{-%9_&zM7wx{w}J_+iBw=yX?|bpCAOGZ-*iBb^`5;tt z2}jQ~t6M6|HeBU7_~*Kxp-E!viD`n|Yd?gnUv%ox0{3s8{yx#&c>#sGy99!yWS{3= z7oGX+toPB>gQpK{DtKgg)|s{Ih*YcLGT{yVzb<@8$zAd^G5%%7alZQ!l98HA{0^Ow zYOZzet6knv>zcb&?v3@Pt!8ZBRr;!zcT~H|o{c*d?l^UaR^a*N-Qik0LRGdKx-Z+q z#>TqxM)hS+x$;@%Q-ZQiz2&{MrginrWq;UL{1QKSP4VpcQ$@QjUEg%WwMzKk!asWR z5BE=9w&tnePwvM4f4NbwLay4KZhn_iA+cxvl=+Seh1y=}b==Uj3Ou+hushiAWw%Gj z3cJVJx_@SR{P1y{7r&~PrT*(n&z}eM=kooioLpY_;a~rr|H|+GpXk^6W#1GPv*&NJ z)BocKSLpXO{gr3WaQ^hK-~GjZiF+>$lar5sxYoNwJUOEM*p^&@_bWQ;TUCs2t@)t5 z_0Er7viB5DroGJXkjR+eaZ8@<wnp1FXP$3yd(?Z^{;d^El#;xqR9AUVL)$jy!`9qD z$F-d{mwU2J-+w#JR~tL!-R$d1&t__xb{#!CaT{m*!$r?HBRdM#-s1Z7u=n)FV+@lM zL%ikc!#5{<t&nJ`eEWmhbkUkkXFFSGg&zHJh2zS?%9Q;R&S)=Q9(DVO6njOX_J!8T z2Scj*$|Vl0=&N>k{E&OA&dIFQ93it@wkS!X`$0;@AFow#`uaRbJ$qR8-KLf{%Q@1{ z+;cBAyuG#k&-QP-H{H_P`mSbkmO+MRdwA)x6~VhIddg09$HhI{>UJvna{zPFzO}jj zJ-OK{#rrs(>+=XYJ^5C1qrp#W_fk_+vn><Uk9S>)D1RC8F#Pf-MV7jyCodjwWiI@5 z=z_wE{mb23HceUb$?E2lpsubH-}frnrrwyosB}ZdEU7&{B5S?w_UBAnBDHtTg(Q(B zk4@B`nUrt%u%!OlwJozRNgv(trPTGd6uais2IuB~4KMBVRX5qP`)zA&&6^RnYbuxJ zv{Sz_m)k6CH~q5ULB4XB&8|BO?M2<bO>=7WTlV(b#{gC7T`g_TpDFiGJ@#y#(EnfW zHny`CuQl4WP2`E>M$x*yZYE1X#UrsZ`K90R9!^~+6tF$r`TJ6?c)qHXyONb<ju$Ev z*8M)_wdu&eSu>wJP58|%a&XavmnNwjy$scbzZr-esd@2bk;<lwlt~swsqSiGMKhay z=5P61vop|cZ%K?);h`z))Au;0@tnBiE%bF}auC<d{Y5n=+C?K->*jGD;-B~b;Ai`a zf9&?3p48V|+p53xc|FhXMJAlj>N_SIp8s#*_K)4~5Cij+xy6jv)Qy#NkL+u`_WRT< zwN0VdRy|TFw|Hxv?dhp<@XN$)AIw`;<lf?)_D8AnTkb*K-04dDRc7!Dosr^P*3@z$ z+0Tu`N6FcZqvC$z?$Fu41axW`jT5H4Z?Hc$|9*_Y&&G!K(r?Ubf}N&%EGlBEJ9gy= zhe%n-<M)1%!9ng7ix(R{yzJ?^`$hG|>C)9Z>*_!MdiJV$!RkY+cbDh4T$Ou1g?s<M zqT=%A2R~K*sC;?Nx!7mE=;z3F^SwWJnn=z$>k=qA|NGX7EBcmpR@9l<Sxb9NewcC5 zURZte4lhNEkeuWbPmlVimM{jCd-<py+`_8&_LLmI-cH2|l^siM51*=KyJi>h#5i&4 z=INh!>H=Jr9y#9Ps<V|zWzh_=TbozyyWm~hzm93An|@>2z5ccCZc`>zIt7+Jnkn(c zZN>AzYNp^BQ{|3M<Jg<DRw=RKTF!}QPKQ12_#SRC`naG(M}wI?=}^OsPxHHO`WL>N zJn82gp7)wFzfL(<sg-2IxG%V;<y%`|;s4f3zYTJNYNZa-A`0en{eAm!gZAG161D)b zY|&aJA6u4Hmoyzr*_)T|)SYv@SnhnK&GV0{pMQK%+a7m!Q$?Nq?HvyMwLF)S^uK!D zS6d>`nHUhx5d7=0nF;^Z?%&IW%!2=QiAR4uwD+v`G+*Nf2PQmrP?I@v|G}MujgPmQ zrDw|i&NE!F;7EMvnwXay6DI76|72tob!N}e`<c_Nw^_wpi>q5$Rk$@aSy<#*#sb;h zhB+<14^^TLrEPb5^8Rns#*|5gmTmgQmY>Ya)=qK_*({cL)^W45iT>O&p2Io2YlO3< zIoYzLe%OC%zI%L&u1QWx^StNXXP154s(WE|^MR`~lT7v<vpCk8E@PT)b@=;V=8ld0 z$`wvmuN}I_usb%#Qm^rX*~Xl|Ocg&L&S!0@-{{Qp<<azR4wmk@3wG$atoP;3?R&9^ zQ~q)E({{F>dyXkb=Wy*)H#LjhVSK(lBG)lC;ij?V;a$%*Z@L;|qr6{vezW6jy%<x8 zV>}62Hmkz!Tc{OH^;*j|vz_J1^vXX5cAW8wm+ii*I_zw?KEa`K-_5nU*XDfpnWT2u zQ|kuvO&_LxzES@({_HJg{p|YX$`+m*8{1_!eA;Nv)Xp_Srm;Nqi!yJ?YGs9)4QIM~ x1RBEKeKs}MR3s_*y9ZaKDcb)y$Y1xNS^m!hc3jNDrsMzF^SHQz7#6TH006D#_G<tD literal 38112 zcmb2|=HR$sosq`$KP9OswIE;DP|rlqM6V>Vh~Z6bb^UF#O&R~cEq@T0-~V*?raz|^ zf0cV{*|pXr>(8oG^V^f3JzuKg@obh-=%h`HpMBeXzmh@W$A#02WS38@%hj29Ai+T5 z3=f;JL+R>WU+vSs9XCJpuIs^U_MbVQ(=XkB`*v^o$MTweoA>VC{JZz-$Jy>bdJdi7 zTktb~-?{VezF$))Vq3KBbJ6qPbKg$CeZM~bZ{qi-@9uruyfr^;{{BD9Z}T0waR1Iq zyVZ8Le?5En?EmTK=Rdwbcl!D5XYsbr%jfOAar^GQ>VHM$?9cwc+nhV&|9Sc1fBf%S zgu6~YP22n5$^Pnch5zO8DNq03^ZIAs_2+)?)BmUC>uxar3f~?+>Hq5~|J~0vAM;%O zQQ-6cqnp!(pZtH<J$LVOmH*}Q_SWp|JzxH9-rJ@>_v_C5{6F>7f79%1%k8#UUq573 zWOa!9=$23WI}}Q4&fi*_7rthGPJRk|a(212&Ph+xb&E50?B7~iULL-6<;+#`U$)2O zY2ArB+$G-o`SG++d&@0+e*S#3#m`=zJnieRFL!q3m}*_CeEjCmmk*y9<il57N!(mo zc(10k)1Tvj-&HFS+vCMb4ti_WdFFU+a#z*fvn}?z6vyq&N-r{1njAB3#$A8)BW`+j zq^<o1w}mSr3}Tt~TfchnxQnGVb+?}ct6z1?d0p!*yKXFb5%qTCRUuinP0Syd>#ywJ zR=44g+@FF4bM8y>wumqN_^FvENw(gCZ_dBcl%M7EICLC1wX81Q*yMh3tGq>hK(&xx zT<?opeL5Li<ZlFAd>yRl$<EApaeM4)#|6e7JvMI?67_X<I|qn}Ik0JHAN&#Ep!A|+ z!fduCx5oEjI@SWO+Pyu(H<<q@dD1A$^q!6R{^SWMj<3&ku9M_5kJuXboAIHc46C!e zh1#-Jas{Sts+>z*Vma4t+I%qdueD%E!Ve}1RhL5_e^ejss#%?UctNryXKTD5D^qqt zby@s_2Z_5Mt|-<OTpdw<y=fQ!V*j_dSZ*&lGq?E;OTa0<1gFEoan{Z)SBk3~&MxGz z;@I`4=J#&itaI$23?7Ou2xPg${h`&cA(6{vg#y!wZ66vqWZBz{81Ei1mirX{H}IsE zbL=0nDQ0H^+y75c+wNE1vVrOJ6MjyI8kU^70)mWt*!?7g4hzr!sInmO<c28jsMiNX zT3(uZ6yGusuoYwpn0xPA$0PF_M-IHVx?nmxZK_nl@z*<)l~{e8PJdQDUCPF{jqkC< zue~q$ZfY-KOAOfMP;2^~V*<-zR;{dm-{<_(Sn%CIXPv>3<C(wjAK;3-lAC|#e1e6W z-r4@R2mB9GpWph%kZtPNpuI=H`&QS&7oFPm-*j##eG=H=wW(RiZPjdp+%`TxjrkKM z-+jZZ?jZl5aM9sqUz+CK+w_G`knjB6#urxGM0?xQw%`AG(AQ1l&OzrxGoA<(McJ^* z_?J5SGpNmdbB#evZdz@&^}4%dSO1tl31VHUX_Rn$+M1N?oeP#oPhjNA{&;Lk(;>cz zSNoK%=(;Gju4M^q<Ll`EmcXIw>?-i~z_S=Z?`!SOjJowLC!hQ(mo^mTbA51!Ni@H; zm4(wglkb4pr%Z)veMLiFkw>}KM-G0@&??)=`=suH+_caeBD~_~T6bqJFV5v)mRQ44 z!f@t{!yPM=DJPCPNLl*pFp7L*{>treBGD{;GD};OU&{eams)A5&#|*a0?xj)mfJE( z_VXH>u%cDdXZ#b@_O<i0eUfHb#uAs+>%f!ae%{}33-cq9CETUS3QQ0C66Gq)U3Qoi zaDVDd=ReXWRl?2^cww{k5*4kszAG+g6<V(d*6GWAWfplFbo_Z=MHSx*&Fn49IW^Sh zTv{r{&oWIy_|e04TU<m`=4U!@eehT1iT1H29RaU?U)ZwxNSQ@e^P35WoNvk=iEXi5 zsJ@)Z)TPKKIc!CsTB&(x^o%wxuhcBLpL=y1X4onmO?jMZmzzJeWWJY>*z0QDX$vP6 zBr>ttaXjYgbGlvD+5e7d&GU&L4L_-T)t$qtcG1;GV@a^cvB|A3<inP&QqtXh#_Yj< z3H1pbece-I4Kx{NE!?z4Q>5>(2ai*5OY=Ed&Jab}OA|M-@Y`qEZ42A7HdSbEQpZFV zafvH#yBd3MOSUd~y7DOFN$*UzeafBUtJOXR3M$?VKiYp`YQc*Vw|^QfC#^R$ON-Px z=E!PJ_HOaJuY8k#O-Hgz%h{(cB4JB~7i`a+S-dssl;6WCwQF~;O?%)o`M8S0spF2T z0$)o_$mD*YZXn6(S>$jlM}1z)!XLFPe;y}omX&{T_LUTGT=K7t3b)oq*)NK0JuCO( zo%ZQdS-lZEz2eTso{_kGX38n1ElW}bPB;lNSxgpnFJqKwzu>*$Lz@!QDUEN;7oV5C zm)T-!bN}{|iTn$X|0ot-GjBmZw|aff?u!+h#W{XFZAdJCT^=wYeap_6|B206TUkvL z`gkYy8&A>`dww`j`W2ICV_^F_-kx>y8P2WAa;{S1<u1OPHtT1U*yN3KG7a75PR@DA zc*~gW#TmDSzr`iy8ifcS=1`Z=u~bS`Vr){>?=V}V`2DJct-*E18(V9&Pn-(oxM+3j z{nrcUm{k>G1or>Y_Ykq~s7Tl%GofwM7B0^-E9NP3R`i6d{#NkfQPJh^2^Ts~Y3x?X zlD%Hma4+WC3z>k44KuD>ExO!%Q@X9}!G$+(SQToobh%l0eV-}3UncK>(T(pdS2`5_ z9Z<R$W*h1q9w7TjblsJ04R+F%o=;MQ%PmB_u7|Eo<3Aq1zSU_$$cf8U0ZPlyYuu=n zj-NbXGWYkQH5<0%%Kk{);mLA1ujG&5E&o5#Zuhpu{MM7P6fC<cS{ugXVAxudBfMnE zBNIk<t42Zor$N?jmpj?h*X&w)EZJe2RzqU2&dJVGDM8(Vmcdt?l;<S}J=I*@wUyZ~ zP{#JCcG(J^ZF)8#XO^$zzECjtMrz=PHCc1HFB^v}UB>>+Vp>k7CQH$Uz-_)xa=sfs zWq4f3X*uSm@T8;v!lK6g`>vfhnQFZH1LveQLi(*83WnLdEe`_U{nT628L?mc=GOho zu7^tBxhz-^CI8X&OT}Ks!>=5~12bkWTOTL;Nd0o)>@Ut$svpaP7Oy(H?V_4>UQ)2s z^}ro<>C62ZbXZQaA9uEUcr`i0q+iKzv&o?&ORML1C`$NkdfIofNI_{vf@rF_w0A|6 zEQ8z2bCSHT*^=8<JmBfxn(SIs&U!Q{e8Jri!yeA0iyHItHs!x*I&n~4H)!%SX>Whl z<_WKVrCey5b}&!Lvho;f;F=v%Sm(dXn3QpsS0t+H&(lNv?Yl~fsxI1OOiB1u+tYE+ z;%$m_Mv?T}8JkZFFj^X`I!8+BGf#=Cx@FK-HvQTR!^@p9n-&FZx_CajVWLy73UhhO zu7H{C>)2-0a6P{?bp~(3jzfHfmZ?=QQ>RvJYf5D4eWz`b+nVh2dWI9{I<Do9K9mQ~ zP@i#T&UH`rDNny7SvG5Jmd`$*Q)9m(Wo3?b^!X1(C$~ECO|4ov(}|5`4MXJyhJ*`u zkNEX{y;1REelx4Fl-Qv**B3`k*B=U~OFfy>V=l?RXUa7{y9nna-QimTCcQYZ(^V*Y z&WE$vTNBH7|FAvqweRFaHj&m{OD@<LFFbUGKT+X~-Nh=dyV7^peb}|Q(I{G2W-$x* z`u|r7mZeGwMpzm)@a&x2xhHf(T9UPb#L}ProW_~=m8QFVT-9_YtmxWi#tB6=lFp3| zDfT{7E~-9XaCO#(qGFvNH?~gSoO&doXRp%!>CL{X^UQ3cbo$hFTz%fpndimAKih0i zr6JSIyQ^Bnu7#QZnsjoCo1NE=)GuDDTZKG$P83JIIWd<ZZuPOSgov$rwigyD^3M9f z!CNX5^H0bnx!L8n`LRsxO9g3?d22e?t-f*TxY*@B8MCjqmVK|BxOAq;W)9!xL<yGJ z>teV5KJnH64~O>4yV95RbLWevTIBxTvd7ufX+^7Y0Q<rhT=zH*WhU@+=5(y(E}Ot4 z`gPI@{%otHKO5&LZc!4JcReofQKiDvk?G=g=6m5@>usOJ9pDydJ;lHos3TQYa$WtT z<i?Y^Z#WbmK5dhlt)C@*SZ=|6pJ<a8Uxg0p{`&IN|A6Nw1Mx7Q)duU1#HsJ};XU$R z+5Mf|LMQ%2pMa&8Cp10!&c4I8_Xfk%gYRBAus;oW;mTf>W&AJFboP}Up1BhiGtCIn zUwv(%@TE(f=DF3^tT)&<>LuH9nyh+jsGpGewAXu01kVMHOOI5)HHAK6oLp?*6R4}a z?uChme&E?lFZTKHykq;d)#1tXSGucjYDKPpwKmOL@O$j%M`vF?ZT-5gt}f1gXNFnS zwU;}0>em0dwQByKti8GOWSVw9{=oOa{Yzh4p}))|?byS<Qs)&uO}^#j*PA%ed&wf! zzzL!o9nN$=I~ur{Da8I}&b&Q#`SbqVu*jPe6SC&<v7ZN}4{Z9ks`AR7A5$Y<lzx7+ z<l>_bjk{V3!|dA`ciXI*ADuq^dHV9TY}wKGbV~};89&H7E#`Y`b>SS(dalWDn3TnT z96sRqd5+Z`=68pbj?`~FV)|$4n_M2}4V@cyd&O8QdVag`-lA&e8K>BHn<trHyOVKN zFKy=ced`b9y9TW(d2%E7_|mhV)w1Ha&&ca5*+{V26rH@uX>rKwcEQ#ab9E9HoG6j3 zSoGd1p|<pho9p|saG`ZEZ-34_`99T5<ihgzR=GwmICk3oQvR~9HOuG_N6Un=<DZ|i zd!KLl<*>X*%INySwx#Y3ZP(;({9VE?pS^lQgN22H4A-4#^RoGgPK}ADqd7AUZ15L1 zf1(ngy71z2wu;5OtsdAGUwIT2{&-zs)k5zpGMSRbkJS6r*)LC6z3lh`n^OOn#MZlI zwP`o@y)S<+bN!3#y@sG~?atDBTQY=u1U}AtyJK;~)`@Swxy9w&nILqgljUG6LrUCa zxjP#;8Ve`zUv%)dex$<l)@S?f?R>eDzNP$NJHz0~B6>&R;Afs63$w0TuMnQV<@G7) z^w)?$>B*1on$CK6^5v|1I&*g2UAE@JxvlRvi%+qc+j+L^)6S;5*MwF49j*wrZM!ab zr&Dpa<I*qE!uLBH+ZU>CbnZF%O6!j9{<mKGA~$uTHOel0db(EZ1^+qmo%@Oo9Vz42 zF}U}me237ZrAyQ#E?#Dk`QEP-Wpn)o??toicf=Ic*VXhinTRcJ(T}wHsOP0~G1-6O zLAFckJ=to@kAIR>w>e+F$k+e!GVQ7jF%P8@B+H9qo|hRYcrNM5_B~o*)!(FWPj~XX z<OwG?XdOSQWgVy;xxcVlr?+>9bMg`gpWxgx_a*OS%;=R8PkV6eq~fcqdkie9;_a=Q zmCn|`dn_<%JA=xrh&KHh3#)(h1?;?B?I{swp5EHUv)H3bcuM5k!)rJbB;_>MyQ#*V z{4Vpb%$Zw+#ivZ{SMHsqA_rzJ{VwnIQHj-7IOuk-sPV**sjKahRb#iFYTvhg-DB1s z%T*2kkGHw5E{$5&mJr9F-q5-J<Al}B&biXnn=Qf*8J_suU!^=n>}wCh3C<NS+IBb| zUAlCBh-abJ=^EykHZg7e-6zh-Xr->%7Is^SFLI%5P^)K$sCR>m<+?z&=>g#?<#wqb zxEFEuJb&@G!qal=`&D<1H%>mxXLWr?^4T*2`D***4?l1II`0FUP4MnD@+)?vOj@@w z&1;kYQ67%1ry?AV$K?HybzJe4gNrFF{!;C_GZn`tpAHb}owayNXY!g~f6XdSziBz` zXShjLvuwU-k(ToUbH>zFM*XdJC%;WFOwV36-N;eDRj$oIf>kZ@f%mNYr#`4{+S=l= zV8M(zXQUoTzL<4gp7C&_CqvdjZ})GW`JOrJ+i%u|hClqe`p^8(f6ul47k~X}^r`;b zy?-5kQ!cxo{a^X*&C_$6L;gL#_j&Hz(0}KXYx-PM%HN*2H)Y!`JBe)TZ1sd6Z==sh zXaC|gJQ<a3;&A@uzS1ABWa6UJAHTSDoWW|t?&goTr0W&TE(YCI57wTtZQ5n-)fZo! z6O6n1F63<nx3hW9ohL6{lnny5?bxWBlboNu)~|5U?`wuPRwe}Rb-s1FeYOPen|INw zpJR{i+Og#x<CjTa<C&}CmVW#tzxiza8qdQi_h-%hwx#0N<-eB~Jo9Z2dg|lgz100F zqt9~hr&Be}YQ5fn5S`>^DtmwF<yB{Xv>m;)T1_d;W7pJsTXc2adew4y?!UBGSA|!b z@1KT(thVD$rAwPk4lKRAS#9H)O)sMgmz+<^jGp{K)1X&dvS)LN)%3m>v!-4%U778@ zyfU*f&|%kf!ABcQZcW!LO<!K`tK={EGT~KlKvaaz_Gy0n!Sh`&A5jZjy<v;tS53WI zpY9f=%O|cZzfrQu<xHq!W@?n5$jrF3TU^CUX8Jywwe<2iADb>u`^y5{p3aw#=o`tN z?MTwr(ar7pSpNQt$yZH1UtL3sqf1sFHQIV&i)k>c=#+iS>{^#@Ol@8?-8=pAvTVi7 zTw~W`mooFJq(rB_OY`|wdHLR_s>l?n7@M`+o;xmGJnE_vm%4Ul_44B{PkdT*>B*Jn z_g)rNGDk=Jx-;EimFu#rEBzB+mUe3VWV-a`O8U<d>#v#`Z_l04)KL1X7k5~1cH8pw zdc&6$X({!BnU!pNmR|mRW%&#fTjlJ8eI<Ks0z*Q6#X0%u%{{i9_n6Y9pGmKav!d>^ zSSQ~!*<Zc%x9_2)JHG69z09DV7!nbcu<&K0>rzg!S$Y=MxdlQKyFHa_8cGf|UFPEU z)7P;$yWvC0VW-P{-TwAECcGPelpJxoEY$7muVdr8@j=ParpsdK%k}*Pa$1)fXNku9 zL@j<;rKhy_BFpxaS&Luh>Z#l{eEDwn%x^QyC$uheJoax>(<Q}T(MZM2i9fyH9lfl4 zb@>hx&ti>kkLf--lFxl+pLyKxbXj9-hOW-sOB+6Nd9Uty`t{Pwsg)wSYIlSDx29g! zGhWyAdwKk;)D*?c8Mkb7^<*z^u$ty~I%NK#OU7S2#HKD=dDYkO<*dp*F%iF(B_@hZ zIJVNZmvw1z*3Qs?sO7&zrr*n4^R&zJb5HJ6r%SfNa?74xw&RWe{^{lXlP9)3z2s23 z<Vo!%$IodIg)bM*Jo_*8l8f*`OV%abQrSzKF1by<z2@}teyQC(txG0K&B}OLa;f5Y z*~=|K&OIVi;<8G<{L5TcDV!X2D>Lrr?_~@9BL0d^nzm}XIqQ<;Qr)MYUJmh%+*q<} zmE`P=DYsU|^@va2x9abU(@QqKvfS)ol`R*nJK^4}@VyNs;a@eC-kQEuoi+8JRpKn& zNqn=}7cKa5qvw0=Op}{U(>yy%BEM>C<eHfUEMIzl-CS0?yob4Q^W+ys$a0t+o_1oj zr-O}8)#3O2W-^CD{>*5)ccfvR0o(0zrR#a&?bo+m=FLemHc)Q%J!QAa-D2IhwC#I4 z3!Hl#W%Ix8`nIejrX_lIw1|?JT6E^g9q$%JMOJGcTM)i$;i>#pGETlcYqp*%ow}8I zO81Vn5)OtNs$=Rs7HwzUBGY>9-@dKsxlyI!7d)oy{m_0u`FF=Qo&@vk!^P(oHGM5z zB=u#7{EcSDqRSJL3^a6u*KgSQ>YU%AQ!fR?qazl&PArLdA(F;rAbCtHdBcLpn2*L& zvyvQ&A0%^#|Ctu#m%PSk;kn9l?X!E1?)%y=l~^dD-FcSz+ufYFp7x~qCbz|`7VJ_; z57oQ&EL)(afq{FL#4E)!UuuPPlzI-;UnyH%ZT)h)^YdfpY^2LCI$!j(Z!eVWGj2_^ zyY=wat?j~-ZeH`NHgaG5*y@e^a&eRQ_lxK9KmF}56Y=4O#0&?XZDOBQ+!s!Y?0>e- z;q0-Cce5MrR=ZB!@$zBC3xUo2l|?x#m2MoVcAc#GG*nQ_f6J_(8TayY*DUn?Ajh64 zl~A#_)qHu)Z{31;4()Uvq1fo(*Z2Qxea&s~;`%>+9;u17#SG3?OEyTx+&}%tS!3rm zx4ys!N2F6~J!b{*ihsI$e@EwhcfaRs!B&g6Ze`vu<>LJW*IUjf1p_{;xW$>jG_%Fp zDdqUer@2!%B+t3_!ZbO^mc2{PK-t6L<75{{>5dDowa1rAOyoZD=s>wUv%t1L;?G@G ze@c~4aG30VVCtmjS#H{?Gj==6$6dcBdQ`b0a_ZYzbGFAhK2~y2ULN-9XWhz4v+FHb z6dRb<hh^P%%w&Gv#Cy8gFt4*^d-fmMjQGjH3$*UXDc%k$@{l}PVY+4U>nKf??HWSc zLju>8+OL?Z#W3^D{-X6E;R-juZ_KX^>ixsHbl+C9|BT9wS2(j%d2X$IXfN`hgHd(O z+N{_gh7S5X5?_z;uU}u6GvjSIgU-rm|Cp5?iY=dJxBq=>FkfK$8pHK3?tR*=T@@8( z{Pon!Yh_x&mn~<$(fua0m`l@F|9&U?zG>(ApU!-_SYcV?_w4uAg_khx%*kC}zv9dq zyH7GxB)5LoWOyxamvhExUi<6Xwu`5I*kuj|rT$xT`-&Fljx}QbGhQYBT~wH#a957! zUfj`5`?l7#o`3f7W7_uW_=E$OcHAv2RX(=0J3-}L?^N@myV}y>>lZ~=^Lm?XG*n;X zsp8L**tjKM#-#tX`}a0+tNM;x=f3@IU;k}Q(2)$m-fl@fnIEa{+)Hj`_00PvQTg|( zgzXoJ+K#s^%+9*2YbW`C@xINO8gyh%4ZGP9QC^YT3MunL)?{tnwNPiJ*6idpXI|EN zEiR7!^gAZ(?38)!=I1_e>GlaMocL04PhbCSqpg?n=Oqg4EwfSIBX(EIMmbsh%?+{H zJ2tRX^M)Ll+Wd9?HEn~hX6FlnJDI|+o2^Yg)urUjZ?Mr?L?UnM{qnzl75iIHUejRd znEhh!j?yD{uWip^%uN!Wy{WO6_pZs7RT&a?9=o}AU0jwoanD`F0JaSWVnTN=4%Cox zzICwk<Bca~oO9JaPF8W$Sadu)@*HnZ*+bb`TW>gWo$qpGxyw?ke=PY$31=r;`w@rB z3FeC~FS?O-)P2c2wWpnir~h)Oxap*b$opL@;O1_Rj?r4OvsmHt@1wV(WRn*&UwkSX z)pd3ApM`x>vJOWDxkTScdysHN!8*FN{58uycfXm@)(c`&MCUO7=iF)eCTNa#{*y=B ztXdTkw>5A5cA4W^pVEOBsu#cgoju`FV8M}!c(x~^h1wlk>q8f=tv`9dCu07teZIf9 z`EBv<zOePP+v`WG>aOj{nj<rBu9?4H*3wAs{XsD=H(j-`Uny^1!6;#Gzj}Mrd%yGi zl^4bB^G*5m&M!3SdUPr3?~mukRezpsF%93n>(I@YmLV1Y9z9+6(V*2Q#-g*Q?w|MP zKaV!msYKtOlo2;icJ4KPafRbzI>)xVIWKu5cJ$5kEfZ|p)0wL~nzp#wiGA`hV0TqW zy?*VV{;zvgp|5N2zJ9cCc4=P!Eu{`io1#M^)sN?V*}HbHd|Xa_{N6sccgN~m7eBOr z^3&!2)>eClcZtFaX1Pn8Wi0;wd%AvkxjNI|r1Sr8*G{zkpPyg)@BZRB|F=ue|Ns3{ zyZpC?e^=jLJy{?B{Ad01-d_(37hAosd-k*5+PeDo`Imq8&rR2l&wKoN?p|^IdF#*p zukJaY^*nj&=Z&|1M!c<AQ)U-tEx&qh|J37UTR(4<T731~act7+`#*0idc5vkebn3k zA{GBH-+T3M`TD~D?zfcr4gbg6)!QZhZ+~9%>fdtlfIC(DZvFph_2hrn|N5=}_y4ky z{24F*$L@*m_E!ae9{m1)`~3Xe_e;P1kAJi8PVC$N_Q%}cU0#&mIO(tJ4mJ6ozoeH& zo_hZ<!v3H6JSWBdyX*G*d!LwDeQ<~Jj<z~an@ELcCU!|XLLNO9`ykWuW3Elxg6Hhd z?s9itwz6zv6u%&*vtaFxz&8<Bozgje>9JQBiTrlD!FXu7;vcu(dsb!p{x44I%-ZjD z^s1VPIqzAsbADgD=I}35a_8P1+G2H}r`E3GQ+N-H`KsL$-d8@%Uj2RLtgC!~qy=MQ zf6v(Er4sb_sC($^kX_|3nCxep&G3$Ke`-Fx=z!wPpa&lU^(?+*KWSh%^Kr=^n=?;V zYf9v)P6(3zu4(XUBjcepOSgTx{C7hC<*g#KRXMnlQ?9NNE?tw`WW~p-{Nmp8GV4(L zcOI`?dscr;@|814j*Wd7Y8W2=G+@VG8To3yQ?E}N#?6n>zB}`z>gQeC_DyBCT0h_N z=%=c^jna}oRPEwpPEE|Z%{P~?+W2%$nP=|b-J4{~E`;6WSo=OBJuA65U3~xU87}Af z;~u<cyr*!Xz38=Q_r0qkcMcz0eOi8b{w;>OLvmLfE`%Ol@w$J}k7*1tlUErsUEsH0 zb82Sv+wK*6=6#TH`t0_y#zJN3vICCoNj&V{#|!4%ds4NGzp$2h?)Hj19+Pfm#+(V9 z-xe&ijZOVdLEQsO|H)qhdrWx+pGKG})dhuw)tFB`a*20$+{K(-g6BPUNvrO8#@VU9 z<$~mgBgZSwv&%BJNjH7s)S44@{iTcLowZN+=4PKr_~^#^<@Mu6&yuEn%V&3#GTTqj zjl3YXf79A+uRoW1E=ac7XW+7m$JyeT#^Qo27d+=IJFWJs`Dm}3ajRgVo@<oZ_StQR zR!>w6w7sxm-ple-nSW7LRiPe&S1)Z&eP|m#`FPgkh@!+5$DVohTBX^nn74D=W7#A8 zr#PqW`@Zhu9P1})kMoZRE2RmUimg}qe<V4mkNwOF4w=WC;>m}T>?ZS{o|&YxXZ@8u zfjr^C@j{!IrPa)Lown`1?DY$;)|9z7Cq|g{Tw5jkXpZ)Av$UD&N`E$Qoao)GHFq`Z zi}ip0YyUrg>i^+?|HbWV{vST||MS$}^^X?3cK`7Ijot0qjh}sf|DXTZ?jT>y{m7s7 zau@$6?<h^$-(U9X#C@&JO>=Fu@|`N940f!)x3xXNs-Q7LWL3Z?muCl#YM2PK|KQR4 zDir!XdyB)QbxXXvl04EBW}IL4bMC+VXR7j>J(j;adXuMO*&2%vyB7(vR5-j@YI03V z{-a&+&kc>!=cvt_^CR$)`R>xV-;T2nWj(o^eEVqXnis30G7s4IyBOrT)-9N2FE+9F z+UZ8CmhHx27Bx?1*xTLEy_i$mVlL+TsmJH4;3DC_7y7nWbfwGYyRAFEr_a2{-?9I+ zkAL*7<7&3~#<saL6Bbk)oUXNCS_^~Lt0xstb{y5L+v#dk#N`>ss;Twj_)k9l$|q^^ zJXfu&=e(ZfU3JjpPV1h8UDs6fXRHzJI;YVv?OveD^aa0Dszh#kg#=8FQ*U@^`S6K1 zL)WV6hMc42pYG&(Y3;Je%H0~}zVW3lQ)Qj@vC{{2))ak_n7^;Tdzx?0HsQN2CwZGo zDz^JwY8K}|5cJMG&eTx$*1q?8Z>D)a-Z;<x1grIhqOPS?juVf@FPZIo{{NcCYRWtd zYC~(1^VEaflJ1=DoWiN&V=-}=#jBu+?Z&YsHXAM*TxiHTP;c?!^=6x5DYbgT8-Mi< za35oO`Gx6Z#oO|w&DkP5K1rYKFSuV7e{8<Ayh!+=Zo^e`r2g+(wp4Y>VbNbH=UD%} z?$Dm1GOOD1NZcl`Pnw2XC;5gh-S^$M>o|kv0h5<aj#<h|HMxaJ6Q0iQRXNBc{r=;L zzzq_|@*c}B(y(~?_axWmzY#`7ZnLa3c8YvvyC7_JHTwUQgx~h|2S3|iH#Xj;eM@=9 z>epEwb|0tP^P1=E(%_Y7_AXH2zn`+r`*7glzn%M+EcmE!mfx56mHI!Uwai}2YK>-? zUETF$<ImaGeSUh@{Vram9DQ)Tpzw6_Wrx1i#L9iiob|%QR84sm*Oe>VUoqqaedmge zbK8C7THCjv#Rm5M&&~A(>*JmLzB51PKey=c&b!)sg~}9|Ecv*u&0o6m$cq&dO7<C^ zD&IACt=Zv&b}B38U1w~4rZjiL5l_q5;JS;h8`NwwH|AVgd33(ega18G>(<uzZu{SM zai@dJ;sf2P)BXfKdl~)MUL_{`Lw)P5RS)e≫l~Je&X4-c3K#*J#4D1ExR2J>N<F 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 F0RT&wBqIO- diff --git a/dbrepo-ui/components/identifier/Citation.vue b/dbrepo-ui/components/identifier/Citation.vue index ca5d2da00f..8cd96902d4 100644 --- a/dbrepo-ui/components/identifier/Citation.vue +++ b/dbrepo-ui/components/identifier/Citation.vue @@ -63,8 +63,11 @@ export default { identifierService.findOne(this.identifier.id, accept) .then((citation) => { this.citation = citation + this.loading = false }) - .finally(() => { + .error(({code, message}) => { + const toast = useToastInstance() + toast.error(this.$t(`${code}: ${message}`)) this.loading = false }) } diff --git a/dbrepo-ui/locales/en-US.json b/dbrepo-ui/locales/en-US.json index a14d729283..a345e0bec5 100644 --- a/dbrepo-ui/locales/en-US.json +++ b/dbrepo-ui/locales/en-US.json @@ -35,6 +35,9 @@ "pages": { "identifier": { "title": "Identifier", + "export": { + "text": "Metadata Export" + }, "pid": { "title": "Persistent Identifier" }, @@ -1209,10 +1212,6 @@ "created": "Successfully created table", "semantics": "Successfully assigned semantic instance" }, - "schema": { - "tables": "Successfully refreshed database tables metadata", - "views": "Successfully refreshed database views metadata" - }, "schema": { "tables": "Successfully refreshed database tables metadata.", "views": "Successfully refreshed database views metadata." diff --git a/docker-compose.yml b/docker-compose.yml index 48d62373b2..65d23f7e45 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -14,13 +14,11 @@ services: restart: "no" container_name: dbrepo-metadata-db hostname: metadata-db - image: dbrepo-metadata-db:latest - build: - context: ./dbrepo-metadata-db - network: host + image: docker.io/bitnami/mariadb:11.1.3-debian-11-r6 volumes: - metadata-db-data:/bitnami/mariadb - - ./dbrepo-metadata-db/setup-data.sql:/docker-entrypoint-initdb.d/setup-schema_local.sql + - ./dbrepo-metadata-db/setup-schema.sql:/docker-entrypoint-initdb.d/1_setup-schema.sql + - ./dbrepo-metadata-db/setup-data.sql:/docker-entrypoint-initdb.d/2_setup-data.sql ports: - "3306:3306" environment: @@ -38,7 +36,7 @@ services: restart: "no" container_name: dbrepo-data-db hostname: data-db - image: docker.io/bitnami/mariadb-galera:11.2.2-debian-11-r0 + image: docker.io/bitnami/mariadb:11.1.3-debian-11-r6 volumes: - data-db-data:/bitnami/mariadb - "${SHARED_VOLUME:-/tmp}:/tmp" @@ -46,7 +44,6 @@ services: - "3307:3306" environment: MARIADB_ROOT_PASSWORD: "${USER_DB_PASSWORD:-dbrepo}" - MARIADB_GALERA_MARIABACKUP_PASSWORD: "${USER_DB_BACKUP_PASSWORD:-dbrepo}" healthcheck: test: mysqladmin ping --user="${USER_DB_USERNAME:-root}" --password="${USER_DB_PASSWORD:-dbrepo}" --silent interval: 10s @@ -59,7 +56,7 @@ services: restart: "no" container_name: dbrepo-auth-db hostname: auth-db - image: docker.io/bitnami/mariadb:11.2.2-debian-11-r0 + image: docker.io/bitnami/mariadb:11.1.3-debian-11-r6 volumes: - auth-db-data:/bitnami/mariadb ports: @@ -331,7 +328,7 @@ services: restart: "no" container_name: dbrepo-gateway-service hostname: gateway-service - image: docker.io/nginx:1.25-alpine-slim + image: docker.io/nginx:1.27.0-alpine3.19-slim ports: - "80:80" - "443:443" diff --git a/helm/dbrepo/Chart.lock b/helm/dbrepo/Chart.lock index e7fbf0ea09..dd42ade0c3 100644 --- a/helm/dbrepo/Chart.lock +++ b/helm/dbrepo/Chart.lock @@ -1,16 +1,16 @@ dependencies: - name: opensearch - repository: https://opensearch-project.github.io/helm-charts/ - version: 2.15.0 + repository: https://charts.bitnami.com/bitnami + version: 1.2.2 - name: keycloak repository: https://charts.bitnami.com/bitnami version: 17.3.3 -- name: mariadb-galera +- name: mariadb repository: https://charts.bitnami.com/bitnami - version: 11.0.1 -- name: mariadb-galera + version: 14.1.4 +- name: mariadb repository: https://charts.bitnami.com/bitnami - version: 11.0.1 + version: 14.1.4 - name: rabbitmq repository: https://charts.bitnami.com/bitnami version: 14.0.0 @@ -20,5 +20,5 @@ dependencies: - name: tusd repository: https://charts.sagikazarmark.dev version: 0.1.2 -digest: sha256:f724e33944ae5284b9417a3424a4af9cd67eb8bea0baa0ebeddc76f4c0c9c63a -generated: "2024-05-17T21:25:35.919266246+02:00" +digest: sha256:867a4a60bbccfaeb880d000eeb634db20554ef91523aa3b1331c53bdf48e8db4 +generated: "2024-06-14T15:12:25.44560113+02:00" diff --git a/helm/dbrepo/Chart.yaml b/helm/dbrepo/Chart.yaml index 24e580a297..4838a04ed0 100644 --- a/helm/dbrepo/Chart.yaml +++ b/helm/dbrepo/Chart.yaml @@ -10,28 +10,28 @@ keywords: - dbrepo maintainers: - name: Martin Weise - email: martin.weise@tuwien.ac.at + email: martin.weise@tuwien.ac.a home: https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/ icon: https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/master/dbrepo-ui/public/favicon.png dependencies: - name: opensearch alias: searchdb - version: 2.15.0 - repository: https://opensearch-project.github.io/helm-charts/ + version: 1.2.2 + repository: https://charts.bitnami.com/bitnami condition: searchdb.enabled - name: keycloak alias: authservice version: 17.3.3 repository: https://charts.bitnami.com/bitnami condition: authservice.enabled - - name: mariadb-galera + - name: mariadb alias: datadb - version: 11.0.1 + version: 14.1.4 repository: https://charts.bitnami.com/bitnami condition: datadb.enabled - - name: mariadb-galera + - name: mariadb alias: metadatadb - version: 11.0.1 + version: 14.1.4 repository: https://charts.bitnami.com/bitnami condition: metadatadb.enabled - name: rabbitmq diff --git a/helm/dbrepo/README.md b/helm/dbrepo/README.md index 01f699d9e1..41109de114 100644 --- a/helm/dbrepo/README.md +++ b/helm/dbrepo/README.md @@ -10,7 +10,7 @@ sample [`values.yaml`](https://gitlab.phaidra.org/fair-data-austria-db-repositor for your deployment and update the variables, especially `hostname`. ```bash -helm install my-release "oci://s210.dl.hpc.tuwien.ac.at/dbrepo/helm" --values ./values.yaml --version "1.4.4" +helm install my-release "oci://registry.datalab.tuwien.ac.at/dbrepo/helm" --values ./values.yaml --version "1.4.4" ``` ## Prerequisites @@ -27,7 +27,7 @@ helm install my-release "oci://s210.dl.hpc.tuwien.ac.at/dbrepo/helm" --values ./ To install the chart with the release name `my-release`: ```bash -helm install my-release "oci://s210.dl.hpc.tuwien.ac.at/dbrepo/helm" --values ./values.yaml --version "1.4.4" +helm install my-release "oci://oci://registry.datalab.tuwien.ac.at/dbrepo/helm" --values ./values.yaml --version "1.4.4" ``` The command deploys DBRepo on the Kubernetes cluster in the default configuration. The Parameters section lists the @@ -64,18 +64,18 @@ The command removes all the Kubernetes components associated with the chart and ### Metadata Database -| Name | Description | Value | -| -------------------------------- | ---------------------------------------------------------------- | ------------- | -| `metadatadb.enabled` | Enable the Metadata Database. | `true` | -| `metadatadb.image.debug` | Set the logging level to `trace`. Otherwise, set to `info`. | `false` | -| `metadatadb.host` | The hostname for the microservices. | `metadata-db` | -| `metadatadb.rootUser.user` | The root username. | `root` | -| `metadatadb.rootUser.password` | The root user password. | `dbrepo` | -| `metadatadb.jdbcExtraArgs` | The extra arguments for JDBC connections in the microservices. | `""` | -| `metadatadb.db.name` | The database name. | `fda` | -| `metadatadb.extraInitDbScripts` | Additional init.db scripts that are executed on the first start. | `{}` | -| `metadatadb.persistence.enabled` | Enable persistent storage. Requires PV-provisioner. | `false` | -| `metadatadb.replicaCount` | The number of replicas, should be uneven (2n+1). | `3` | +| Name | Description | Value | +| ------------------------------------- | ---------------------------------------------------------------- | ------------- | +| `metadatadb.enabled` | Enable the Metadata Database. | `true` | +| `metadatadb.host` | The hostname for the microservices. | `metadata-db` | +| `metadatadb.auth.root` | The root username. | `root` | +| `metadatadb.auth.rootPassword` | The root user password. | `dbrepo` | +| `metadatadb.auth.database` | The database name. | `dbrepo` | +| `metadatadb.auth.replicationUser` | The database replication username. | `replication` | +| `metadatadb.auth.replicationPassword` | The database replication user password | `replication` | +| `metadatadb.jdbcExtraArgs` | The extra arguments for JDBC connections in the microservices. | `""` | +| `metadatadb.extraInitDbScripts` | Additional init.db scripts that are executed on the first start. | `{}` | +| `metadatadb.secondary.replicaCount` | The number of replicas of the secondary database pods. | `2` | ### Auth Service @@ -89,33 +89,28 @@ The command removes all the Kubernetes components associated with the chart and | `authservice.jwt.pubkey` | The JWT public key from the `dbrepo-client`. | `MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqqnHQ2BWWW9vDNLRCcxD++xZg/16oqMo/c1l+lcFEjjAIJjJp/HqrPYU/U9GvquGE6PbVFtTzW1KcKawOW+FJNOA3CGo8Q1TFEfz43B8rZpKsFbJKvQGVv1Z4HaKPvLUm7iMm8Hv91cLduuoWx6Q3DPe2vg13GKKEZe7UFghF+0T9u8EKzA/XqQ0OiICmsmYPbwvf9N3bCKsB/Y10EYmZRb8IhCoV9mmO5TxgWgiuNeCTtNCv2ePYqL/U0WvyGFW0reasIK8eg3KrAUj8DpyOgPOVBn3lBGf+3KFSYi+0bwZbJZWqbC/Xlk20Go1YfeJPRIt7ImxD27R/lNjgDO/MwIDAQAB` | | `authservice.tls.enabled` | Enable TLS/SSL communication. Required for HTTPS. | `true` | | `authservice.tls.existingSecret` | The secret containing the `tls.crt`, `tls.key` and `ca.crt`. | `ingress-cert` | -| `authservice.tls.usePem` | Use PEM certificates as input instead of PKS12/JKS stores. | `true` | | `authservice.metrics.enabled` | Enable the Prometheus metrics export sidecar container. | `false` | | `authservice.client.id` | The client id for the microservices. | `dbrepo-client` | | `authservice.client.secret` | The client secret for the microservices. | `MUwRc7yfXSJwX8AdRMWaQC3Nep1VjwgG` | ### Data Database -| Name | Description | Value | -| ---------------------------- | ----------------------------------------------------------- | -------- | -| `datadb.enabled` | Enable the Data Database. | `true` | -| `datadb.image.debug` | Set the logging level to `trace`. Otherwise, set to `info`. | `false` | -| `datadb.rootUser.user` | The root username. | `root` | -| `datadb.rootUser.password` | The root user password. | `dbrepo` | -| `datadb.persistence.enabled` | Enable persistent storage. Requires PV-provisioner. | `false` | -| `datadb.replicaCount` | The number of replicas, should be uneven (2n+1). | `3` | +| Name | Description | Value | +| --------------------------------- | ----------------------------------------------------------- | ------------- | +| `datadb.enabled` | Enable the Data Database. | `true` | +| `datadb.image.debug` | Set the logging level to `trace`. Otherwise, set to `info`. | `false` | +| `datadb.auth.rootPassword` | The root user password. | `dbrepo` | +| `datadb.auth.replicationUser` | The database replication user password | `replication` | +| `datadb.auth.replicationPassword` | The database replication user password | `replication` | ### Search Database -| Name | Description | Value | -| ------------------------------ | --------------------------------------------------- | ----------- | -| `searchdb.enabled` | Enable the Search Database. | `true` | -| `searchdb.host` | The hostname for the microservices. | `search-db` | -| `searchdb.port` | The port for the microservices. | `9200` | -| `searchdb.username` | The admin username. | `admin` | -| `searchdb.password` | The admin user password. | `admin` | -| `searchdb.replicas` | The number of replicas. | `3` | -| `searchdb.persistence.enabled` | Enable persistent storage. Requires PV-provisioner. | `false` | +| Name | Description | Value | +| ---------------------- | ----------------------------------- | ----------- | +| `searchdb.enabled` | Enable the Data Database. | `true.` | +| `searchdb.host` | The hostname for the microservices. | `search-db` | +| `searchdb.port` | The port for the microservices. | `9200` | +| `searchdb.clusterName` | The cluster name. | `search-db` | ### Upload Service @@ -126,77 +121,83 @@ The command removes all the Kubernetes components associated with the chart and ### Broker Service -| Name | Description | Value | -| ----------------------------------- | ------------------------------------------------------------------------------- | ----------------------------- | -| `brokerservice.enabled` | Enable the Broker Service. | `true` | -| `brokerservice.endpoint` | The management api endpoint for the microservices. | `http://broker-service:15672` | -| `brokerservice.host` | The hostname for the microservices. | `broker-service` | -| `brokerservice.port` | The port for the microservices. | `5672` | -| `brokerservice.virtualHost` | The default virtual host name. | `dbrepo` | -| `brokerservice.queueName` | The default queue name. | `dbrepo` | -| `brokerservice.exchangeName` | The default exchange name. | `dbrepo` | -| `brokerservice.routingKey` | The default routing key binding from the default queue to the default exchange. | `dbrepo.#` | -| `brokerservice.connectionTimeout` | The connection timeout in ms. | `60000` | -| `brokerservice.persistence.enabled` | Enable persistent storage. Requires PV-provisioner. | `false` | -| `brokerservice.replicaCount` | The number of replicas. | `2` | +| Name | Description | Value | +| ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | +| `brokerservice.enabled` | Enable the Broker Service. | `true` | +| `brokerservice.image.debug` | Set the logging level to `trace`. Otherwise, set to `info`. | `true` | +| `brokerservice.endpoint` | The management api endpoint for the microservices. | `http://broker-service:15672` | +| `brokerservice.host` | The hostname for the microservices. | `broker-service` | +| `brokerservice.port` | The port for the microservices. | `5672` | +| `brokerservice.virtualHost` | The default virtual host name. | `dbrepo` | +| `brokerservice.queueName` | The default queue name. | `dbrepo` | +| `brokerservice.exchangeName` | The default exchange name. | `dbrepo` | +| `brokerservice.routingKey` | The default routing key binding from the default queue to the default exchange. | `dbrepo.#` | +| `brokerservice.connectionTimeout` | The connection timeout in ms. | `60000` | +| `brokerservice.auth.username` | The initial administrator username. | `broker` | +| `brokerservice.auth.password` | The initial administrator user password. | `broker` | +| `brokerservice.auth.passwordHash` | The initial administrator user password has generated with [`generate-rabbitmq-pw.sh`](https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/blob/release-1.4.4/helm/dbrepo/hack/generate-rabbitmq-pw.sh). | `1gwjNNTBPKLgyzbsUykfR0JIFC6nNqbNJaxzZ14uPT8JGcTZ` | +| `brokerservice.extraPlugins` | The list of plugins to be activated. | `rabbitmq_prometheus rabbitmq_auth_backend_oauth2 rabbitmq_auth_mechanism_ssl` | +| `brokerservice.persistence.enabled` | If set to true, a PVC will be created. | `false` | +| `brokerservice.replicaCount` | The number of replicas. | `1` | ### Analyse Service -| Name | Description | Value | -| ----------------------------- | ----------------------------------------------------- | ------------------------------- | -| `analyseservice.enabled` | Enable the Broker Service. | `true` | -| `analyseservice.endpoint` | The url of the endpoint. | `http://analyse-service` | -| `analyseservice.s3.endpoint` | The S3-capable endpoint the microservice connects to. | `http://storageservice-s3:9000` | -| `analyseservice.replicaCount` | The number of replicas. | `2` | +| Name | Description | Value | +| ----------------------------- | ----------------------------------------------------------- | ------------------------------- | +| `analyseservice.enabled` | Enable the Broker Service. | `true` | +| `analyseservice.image.debug` | Set the logging level to `trace`. Otherwise, set to `info`. | `false` | +| `analyseservice.endpoint` | The url of the endpoint. | `http://analyse-service` | +| `analyseservice.s3.endpoint` | The S3-capable endpoint the microservice connects to. | `http://storageservice-s3:9000` | +| `analyseservice.replicaCount` | The number of replicas. | `2` | ### Metadata Service -| Name | Description | Value | -| ------------------------------------------ | --------------------------------------------------------------------- | ------------------------------- | -| `metadataservice.enabled` | Enable the Metadata Service. | `true` | -| `metadataservice.endpoint` | The Metadata Service endpoint. | `http://metadata-service` | -| `metadataservice.admin.email` | The OAI-PMH exposed admin e-mail. | `noreply@example.com` | -| `metadataservice.deletedRecord` | The OAI-PMH exposed delete policy. | `permanent` | -| `metadataservice.repositoryName` | The OAI-PMH exposed repository name. | `Database Repository` | -| `metadataservice.granularity` | The OAI-PMH exposed record granularity. | `YYYY-MM-DDThh:mm:ssZ` | -| `metadataservice.datacite.enabled` | Enable the DataCite account for minting DOIs. | `false` | -| `metadataservice.datacite.url` | The DataCite api endpoint url. | `https://api.datacite.org` | -| `metadataservice.datacite.prefix` | The DataCite prefix. | `""` | -| `metadataservice.datacite.username` | The DataCite api username. | `""` | -| `metadataservice.datacite.password` | The DataCite api user password. | `""` | -| `metadataservice.sparql.connectionTimeout` | The connection timeout for sparql queries fetching remote data in ms. | `10000` | -| `metadataservice.s3.endpoint` | The S3-capable endpoint the microservice connects to. | `http://storageservice-s3:9000` | -| `metadataservice.s3.auth.username` | The S3-capable endpoint username (or access key id). | `seaweedfsadmin` | -| `metadataservice.s3.auth.password` | The S3-capable endpoint user password (or access key secret). | `seaweedfsadmin` | -| `metadataservice.replicaCount` | The number of replicas. | `2` | +| Name | Description | Value | +| ------------------------------------------ | ---------------------------------------------------------------------------------- | ------------------------------- | +| `metadataservice.enabled` | Enable the Metadata Service. | `true` | +| `metadataservice.image.debug` | Set the logging level to `trace`. Otherwise, set to `info`. | `false` | +| `metadataservice.endpoint` | The Metadata Service endpoint. | `http://metadata-service` | +| `metadataservice.admin.email` | The OAI-PMH exposed e-mail for contacting the metadata records responsible person. | `noreply@example.com` | +| `metadataservice.deletedRecord` | The OAI-PMH exposed delete policy. | `permanent` | +| `metadataservice.repositoryName` | The OAI-PMH exposed repository name. | `Database Repository` | +| `metadataservice.granularity` | The OAI-PMH exposed record granularity. | `YYYY-MM-DDThh:mm:ssZ` | +| `metadataservice.datacite.enabled` | If set to true, the service mints DOIs instead of local PIDs. | `false` | +| `metadataservice.datacite.url` | The DataCite api endpoint url. | `https://api.datacite.org` | +| `metadataservice.datacite.prefix` | The DataCite prefix. | `""` | +| `metadataservice.datacite.username` | The DataCite api username. | `""` | +| `metadataservice.datacite.password` | The DataCite api user password. | `""` | +| `metadataservice.sparql.connectionTimeout` | The connection timeout for sparql queries fetching remote data in ms. | `10000` | +| `metadataservice.s3.endpoint` | The S3-capable endpoint the microservice connects to. | `http://storageservice-s3:9000` | +| `metadataservice.s3.auth.username` | The S3-capable endpoint username (or access key id). | `seaweedfsadmin` | +| `metadataservice.s3.auth.password` | The S3-capable endpoint user password (or access key secret). | `seaweedfsadmin` | +| `metadataservice.replicaCount` | The number of replicas. | `2` | ### Data Service -| Name | Description | Value | -| ----------------------------------- | ------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------- | -| `dataservice.enabled` | Enable the Metadata Service. | `true` | -| `dataservice.endpoint` | The endpoint for the microservices. | `http://data-service` | -| `dataservice.grant.read` | The default database permissions for users with read access. | `SELECT` | -| `dataservice.grant.write` | The default database permissions for users with write access. | `SELECT, CREATE, CREATE VIEW, CREATE ROUTINE, CREATE TEMPORARY TABLES, LOCK TABLES, INDEX, TRIGGER, INSERT, UPDATE, DELETE` | -| `dataservice.default.date` | The default date format id for dates. | `3` | -| `dataservice.default.time` | The default date format id for times. | `4` | -| `dataservice.default.timestamp` | The default date format id for timestamps. | `1` | -| `dataservice.s3.endpoint` | The S3-capable endpoint the microservice connects to. | `http://storageservice-s3:9000` | -| `dataservice.s3.auth.username` | The S3-capable endpoint username (or access key id). | `seaweedfsadmin` | -| `dataservice.s3.auth.password` | The S3-capable endpoint user password (or access key secret). | `seaweedfsadmin` | -| `dataservice.s3.filePath` | The local location to download/upload files from/to S3-capable endpoint. | `/s3` | -| `dataservice.consumerConcurrentMin` | The minimum broker service consumer number. | `1` | -| `dataservice.consumerConcurrentMax` | The maximum broker service consumer number. | `5` | -| `dataservice.requeueRejected` | Enable re-queueing of rejected messages to the broker service. | `false` | -| `dataservice.replicaCount` | The number of replicas. | `2` | +| Name | Description | Value | +| ------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | +| `dataservice.enabled` | Enable the Metadata Service. | `true` | +| `dataservice.endpoint` | The endpoint for the microservices. | `http://data-service` | +| `dataservice.image.debug` | Set the logging level to `trace`. Otherwise, set to `info`. | `false` | +| `dataservice.grant.read` | The default database permissions for users with read access. | `SELECT` | +| `dataservice.grant.write` | The default database permissions for users with write access. | `SELECT, CREATE, CREATE VIEW, CREATE ROUTINE, CREATE TEMPORARY TABLES, LOCK TABLES, INDEX, TRIGGER, INSERT, UPDATE, DELETE` | +| `dataservice.default.date` | The default date format id for dates. Default: YYYY-MM-dd (e.g. 2024-06-15). | `3` | +| `dataservice.default.time` | The default date format id for times. Default: HH:mm:ss (e.g. 14:23:42). | `4` | +| `dataservice.default.timestamp` | The default date format id for timestamps. Default: YYYY-MM-dd HH:mm:ss (e.g. 2024-06-15 14:23:42). | `1` | +| `dataservice.s3.endpoint` | The S3-capable endpoint the microservice connects to. | `http://storageservice-s3:9000` | +| `dataservice.s3.auth.username` | The S3-capable endpoint username (or access key id). | `seaweedfsadmin` | +| `dataservice.s3.auth.password` | The S3-capable endpoint user password (or access key secret). | `seaweedfsadmin` | +| `dataservice.s3.filePath` | The local location to download/upload files from/to S3-capable endpoint. | `/s3` | +| `dataservice.replicaCount` | The number of replicas. | `2` | ### Search Service -| Name | Description | Value | -| ---------------------------- | ----------------------------------- | ----------------------- | -| `searchservice.enabled` | Enable the Search Service. | `true` | -| `searchservice.endpoint` | The endpoint for the microservices. | `http://search-service` | -| `searchservice.replicaCount` | The number of replicas. | `2` | +| Name | Description | Value | +| ---------------------------- | ----------------------------------------------------------- | ----------------------- | +| `searchservice.enabled` | Enable the Search Service. | `true` | +| `searchservice.endpoint` | The endpoint for the microservices. | `http://search-service` | +| `searchservice.image.debug` | Set the logging level to `trace`. Otherwise, set to `info`. | `false` | +| `searchservice.replicaCount` | The number of replicas. | `2` | ### Storage Service @@ -209,6 +210,7 @@ The command removes all the Kubernetes components associated with the chart and | Name | Description | Value | | --------------------------------- | ---------------------------------------------------------------------------- | ----------------------- | | `ui.enabled` | Enable the User Interface. | `true` | +| `ui.image.debug` | Set the logging level to `trace`. Otherwise, set to `info`. | `false` | | `ui.public.api.client` | The endpoint for the client api. | `""` | | `ui.public.api.server` | The endpoint for the server api. | `""` | | `ui.public.title` | The user interface title. | `Database Repository` | @@ -227,6 +229,9 @@ The command removes all the Kubernetes components associated with the chart and ### Ingress -| Name | Description | Value | -| ----------------- | ------------------- | ------- | -| `ingress.enabled` | Enable the ingress. | `false` | +| Name | Description | Value | +| ------------------------ | --------------------------------------------------------------------------------------------------------------- | -------------- | +| `ingress.enabled` | Enable the ingress. | `false` | +| `ingress.className` | The ingress class name. | `nginx` | +| `ingress.tls.enabled` | Enable the ingress. | `true` | +| `ingress.tls.secretName` | The secret holding the SSL/TLS certificate. Needs to have keys `tls.crt` and `tls.key` and optionally `ca.crt`. | `ingress-cert` | diff --git a/helm/dbrepo/charts/mariadb-14.1.4.tgz b/helm/dbrepo/charts/mariadb-14.1.4.tgz new file mode 100644 index 0000000000000000000000000000000000000000..83f470bdcade4fdfc13b0d1f4f46095b877e3bcd GIT binary patch literal 48199 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 literal 0 HcmV?d00001 diff --git a/helm/dbrepo/charts/mariadb-galera-11.0.1.tgz b/helm/dbrepo/charts/mariadb-galera-11.0.1.tgz deleted file mode 100644 index 75966763de12ffca164d475cccac327a338857df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48847 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 be7izA|1p2xd`1R_|NrwZKm5qhz`_6k*RZrq diff --git a/helm/dbrepo/charts/opensearch-1.2.2.tgz b/helm/dbrepo/charts/opensearch-1.2.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0393bfc1aa2fa964c68e66af6da6f356ea84e29f GIT binary patch literal 87253 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 literal 0 HcmV?d00001 diff --git a/helm/dbrepo/charts/opensearch-2.15.0.tgz b/helm/dbrepo/charts/opensearch-2.15.0.tgz deleted file mode 100644 index 7d2f6efb43a2d44e8dfffde4e0265d302af2b2a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25088 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 diff --git a/helm/dbrepo/hack/generate-rabbitmq-pw.sh b/helm/dbrepo/hack/generate-rabbitmq-pw.sh new file mode 100755 index 0000000000..4bccc93d7b --- /dev/null +++ b/helm/dbrepo/hack/generate-rabbitmq-pw.sh @@ -0,0 +1,14 @@ +#!/bin/bash +# https://stackoverflow.com/a/53175209/2634294 +# THIS SCRIPT REQUIRES xxd TO BE INSTALLED: +# DEBIAN: apt install xxd +# MACOS: brew install coreutils +function encode_password() +{ + SALT=$(od -A n -t x -N 4 /dev/urandom) + PASS=$SALT$(echo -n $1 | xxd -ps | tr -d '\n' | tr -d ' ') + PASS=$(echo -n $PASS | xxd -r -p | sha256sum | head -c 128) + PASS=$(echo -n $SALT$PASS | xxd -r -p | base64 | tr -d '\n') + echo $PASS +} +encode_password $1 \ No newline at end of file diff --git a/helm/dbrepo/templates/broker-secret.yaml b/helm/dbrepo/templates/broker-secret.yaml index 9291cdbead..84a3088663 100644 --- a/helm/dbrepo/templates/broker-secret.yaml +++ b/helm/dbrepo/templates/broker-secret.yaml @@ -34,7 +34,7 @@ stringData: { "configure": ".*", "read": ".*", - "user": "broker", + "user": "{{ .Values.brokerservice.auth.username }}", "vhost": "dbrepo", "write": ".*" } @@ -60,8 +60,8 @@ stringData: { "hashing_algorithm": "rabbit_password_hashing_sha256", "limits": {}, - "name": "broker", - "password_hash": "Sek6WxpX2L6UhxlwRkD0cnYAH5GbtTcCFq1yY/SCc1mAa0gB", + "name": "{{ .Values.brokerservice.auth.username }}", + "password_hash": "{{ .Values.brokerservice.auth.passwordHash }}", "tags": [ "administrator" ] diff --git a/helm/dbrepo/templates/metadata-configmap.yaml b/helm/dbrepo/templates/metadata-configmap.yaml index 4bb2eb136b..7965f0a385 100644 --- a/helm/dbrepo/templates/metadata-configmap.yaml +++ b/helm/dbrepo/templates/metadata-configmap.yaml @@ -12,7 +12,7 @@ data: 02-setup-data.sql: | BEGIN; INSERT INTO `mdb_containers` (name, internal_name, image_id, host, port, sidecar_host, sidecar_port, privileged_username, privileged_password) - VALUES ('MariaDB Galera 11.1.3', 'mariadb_11_1_3', 1, 'data-db', 3306, 'data-db', 80, 'root', 'dbrepo'); + VALUES ('MariaDB 11.1.3', 'mariadb_11_1_3', 1, 'data-db', 3306, 'data-db', 80, 'root', 'dbrepo'); COMMIT; 01-setup-schema.sql: | BEGIN; diff --git a/helm/dbrepo/templates/metadata-secret.yaml b/helm/dbrepo/templates/metadata-secret.yaml index 3beda17fc5..fe48d381ea 100644 --- a/helm/dbrepo/templates/metadata-secret.yaml +++ b/helm/dbrepo/templates/metadata-secret.yaml @@ -15,7 +15,7 @@ stringData: AUTH_SERVICE_CLIENT: "{{ .Values.authservice.client.id }}" AUTH_SERVICE_CLIENT_SECRET: "{{ .Values.authservice.client.secret }}" AUTH_SERVICE_ENDPOINT: "{{ .Values.authservice.endpoint }}" - BASE_URL: "{{ .Values.hostname }}" + BASE_URL: "{{ .Values.gateway }}" BROKER_EXCHANGE_NAME: "{{ .Values.brokerservice.exchangeName }}" BROKER_HOST: "{{ .Values.brokerservice.host }}" BROKER_QUEUE_NAME: "{{ .Values.brokerservice.queueName }}" @@ -33,11 +33,11 @@ stringData: GRANULARITY: "{{ .Values.metadataservice.granularity }}" JWT_PUBKEY: "{{ .Values.authservice.jwt.pubkey }}" LOG_LEVEL: "{{ ternary "trace" "info" .Values.metadataservice.image.debug }}" - METADATA_DB: "{{ .Values.metadatadb.db.name }}" + METADATA_DB: "{{ .Values.metadatadb.auth.database }}" METADATA_HOST: "{{ .Values.metadatadb.host }}" METADATA_JDBC_EXTRA_ARGS: "{{ .Values.metadatadb.jdbcExtraArgs }}" - METADATA_USERNAME: "{{ .Values.metadatadb.rootUser.user }}" - METADATA_PASSWORD: "{{ .Values.metadatadb.rootUser.password }}" + METADATA_USERNAME: "{{ .Values.metadatadb.auth.root }}" + METADATA_PASSWORD: "{{ .Values.metadatadb.auth.rootPassword }}" PID_BASE: "{{ $pidBase }}" REPOSITORY_NAME: "{{ .Values.metadataservice.repositoryName }}" SEARCH_SERVICE_ENDPOINT: "{{ .Values.searchservice.endpoint }}" diff --git a/helm/dbrepo/values.yaml b/helm/dbrepo/values.yaml index 15e6888d17..39d8517cfb 100644 --- a/helm/dbrepo/values.yaml +++ b/helm/dbrepo/values.yaml @@ -22,380 +22,282 @@ clusterDomain: cluster.local ## @section Internal Admin User -## @param admin.username The internal admin username. -## @param admin.password The internal admin password. -## admin: + ## @param admin.username The internal admin username. username: admin + ## @param admin.password The internal admin password. password: admin ## @section Metadata Database -## @param metadatadb.enabled Enable the Metadata Database. -## @skip metadatadb.fullnameOverride -## @param metadatadb.image.debug Set the logging level to `trace`. Otherwise, set to `info`. -## @param metadatadb.host The hostname for the microservices. -## @param metadatadb.rootUser.user The root username. -## @param metadatadb.rootUser.password The root user password. -## @param metadatadb.jdbcExtraArgs The extra arguments for JDBC connections in the microservices. -## @param metadatadb.db.name The database name. -## @skip metadatadb.metrics.enabled The Prometheus settings. -## @skip metadatadb.galera The Galera settings. -## @skip metadatadb.initdbScriptsConfigMap The initial database scripts. -## @param metadatadb.extraInitDbScripts Additional init.db scripts that are executed on the first start. -## @skip metadatadb.service The initial database scripts. -## @param metadatadb.persistence.enabled Enable persistent storage. Requires PV-provisioner. -## @param metadatadb.replicaCount The number of replicas, should be uneven (2n+1). -## metadatadb: + ## @param metadatadb.enabled Enable the Metadata Database. enabled: true + ## @skip metadatadb.fullnameOverride fullnameOverride: metadata-db - image: - debug: false + ## @param metadatadb.host The hostname for the microservices. host: metadata-db - rootUser: - user: root - password: dbrepo + auth: + ## @param metadatadb.auth.root The root username. + root: root + ## @param metadatadb.auth.rootPassword The root user password. + rootPassword: dbrepo + ## @param metadatadb.auth.database The database name. + database: dbrepo + ## @param metadatadb.auth.replicationUser The database replication username. + replicationUser: replication + ## @param metadatadb.auth.replicationPassword The database replication user password + replicationPassword: replication + ## @param metadatadb.jdbcExtraArgs The extra arguments for JDBC connections in the microservices. jdbcExtraArgs: "" - db: - name: fda metrics: + ## @skip metadatadb.metrics.enabled The Prometheus settings. enabled: false - galera: - mariabackup: - user: mariabackup - password: mariabackup + ## @skip metadatadb.initdbScriptsConfigMap The initial database scripts. initdbScriptsConfigMap: metadata-db-setup + ## @param metadatadb.extraInitDbScripts Additional init.db scripts that are executed on the first start. extraInitDbScripts: { } # 03-additional-data.sql: | # BEGIN; # INSERT INTO `mdb_containers` (name, internal_name, image_id, host, port, sidecar_host, sidecar_port, privileged_username, privileged_password) # VALUES ('MariaDB Galera TEST', 'mariadb_11_1_3', 1, 'data-db', 3306, 'data-db', 80, 'root', 'dbrepo'); # COMMIT; - service: - type: ClusterIP - annotations: { } - loadBalancerIP: "" - loadBalancerSourceRanges: [ ] - persistence: - enabled: false - replicaCount: 3 + secondary: + ## @param metadatadb.secondary.replicaCount The number of replicas of the secondary database pods. + replicaCount: 2 ## @section Auth Service -## @param authservice.enabled Enable the Auth Service. -## @skip authservice.fullnameOverride -## @param authservice.image.debug Set the logging level to `trace`. Otherwise, set to `info`. -## @param authservice.endpoint The hostname for the microservices. -## @param authservice.auth.adminUser The admin username. -## @param authservice.auth.adminPassword The admin user password. -## @skip authservice.postgresql -## @skip authservice.extraStartupArgs -## @param authservice.jwt.pubkey The JWT public key from the `dbrepo-client`. -## @param authservice.tls.enabled Enable TLS/SSL communication. Required for HTTPS. -## @param authservice.tls.existingSecret The secret containing the `tls.crt`, `tls.key` and `ca.crt`. -## @param authservice.tls.usePem Use PEM certificates as input instead of PKS12/JKS stores. -## @param authservice.metrics.enabled Enable the Prometheus metrics export sidecar container. -## @param authservice.client.id The client id for the microservices. -## @param authservice.client.secret The client secret for the microservices. -## @skip authservice.extraEnvVarsCM -## @skip authservice.extraVolumes -## @skip authservice.extraVolumeMounts -## @skip authservice.replicaCount The number of replicas. -## authservice: + ## @param authservice.enabled Enable the Auth Service. enabled: true + ## @skip authservice.fullnameOverride fullnameOverride: auth-service image: + ## @param authservice.image.debug Set the logging level to `trace`. Otherwise, set to `info`. debug: false + ## @param authservice.endpoint The hostname for the microservices. endpoint: http://auth-service auth: + ## @param authservice.auth.adminUser The admin username. adminUser: fda + ## @param authservice.auth.adminPassword The admin user password. adminPassword: fda + ## @skip authservice.postgresql postgresql: enabled: true auth: postgresPassword: postgres + ## @skip authservice.extraStartupArgs extraStartupArgs: "--import-realm" jwt: + ## @param authservice.jwt.pubkey The JWT public key from the `dbrepo-client`. pubkey: "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqqnHQ2BWWW9vDNLRCcxD++xZg/16oqMo/c1l+lcFEjjAIJjJp/HqrPYU/U9GvquGE6PbVFtTzW1KcKawOW+FJNOA3CGo8Q1TFEfz43B8rZpKsFbJKvQGVv1Z4HaKPvLUm7iMm8Hv91cLduuoWx6Q3DPe2vg13GKKEZe7UFghF+0T9u8EKzA/XqQ0OiICmsmYPbwvf9N3bCKsB/Y10EYmZRb8IhCoV9mmO5TxgWgiuNeCTtNCv2ePYqL/U0WvyGFW0reasIK8eg3KrAUj8DpyOgPOVBn3lBGf+3KFSYi+0bwZbJZWqbC/Xlk20Go1YfeJPRIt7ImxD27R/lNjgDO/MwIDAQAB" tls: + ## @param authservice.tls.enabled Enable TLS/SSL communication. Required for HTTPS. enabled: true + ## @param authservice.tls.existingSecret The secret containing the `tls.crt`, `tls.key` and `ca.crt`. existingSecret: ingress-cert + ## @skip authservice.tls.usePem usePem: true metrics: + ## @param authservice.metrics.enabled Enable the Prometheus metrics export sidecar container. enabled: false client: + ## @param authservice.client.id The client id for the microservices. id: dbrepo-client + ## @param authservice.client.secret The client secret for the microservices. secret: MUwRc7yfXSJwX8AdRMWaQC3Nep1VjwgG + ## @skip authservice.extraEnvVarsCM extraEnvVarsCM: auth-service-config + ## @skip authservice.extraVolumes extraVolumes: - name: config-map configMap: name: auth-service-config + ## @skip authservice.extraVolumeMounts extraVolumeMounts: - name: config-map mountPath: /opt/bitnami/keycloak/data/import + ## @skip authservice.replicaCount The number of replicas. replicaCount: 2 ## @section Data Database -## @param datadb.enabled Enable the Data Database. -## @skip datadb.fullnameOverride -## @param datadb.image.debug Set the logging level to `trace`. Otherwise, set to `info`. -## @skip datadb.extraFlags -## @param datadb.rootUser.user The root username. -## @param datadb.rootUser.password The root user password. -## @skip datadb.metrics.enabled The Prometheus settings. -## @skip datadb.galera The Galera settings. -## @skip datadb.service -## @skip datadb.sidecars -## @skip datadb.extraVolumeMounts -## @skip datadb.extraVolumes -## @param datadb.persistence.enabled Enable persistent storage. Requires PV-provisioner. -## @param datadb.replicaCount The number of replicas, should be uneven (2n+1). -## datadb: + ## @param datadb.enabled Enable the Data Database. enabled: true + ## @skip datadb.fullnameOverride fullnameOverride: data-db image: + ## @param datadb.image.debug Set the logging level to `trace`. Otherwise, set to `info`. debug: false + ## @skip datadb.extraFlags extraFlags: "--character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci" - rootUser: - user: root - password: dbrepo + auth: + ## @param datadb.auth.rootPassword The root user password. + rootPassword: dbrepo + ## @param datadb.auth.replicationUser The database replication user password + replicationUser: replication + ## @param datadb.auth.replicationPassword The database replication user password + replicationPassword: replication metrics: + ## @skip datadb.metrics.enabled enabled: true - galera: - mariabackup: - user: mariabackup - password: mariabackup - service: - extraPorts: - - name: "sidecar" - port: 8080 - targetPort: 8080 - protocol: TCP - sidecars: - - name: sidecar - image: s210.dl.hpc.tuwien.ac.at/dbrepo/data-db-sidecar:1.4.4 - imagePullPolicy: Always - securityContext: - runAsUser: 1001 - runAsGroup: 0 - runAsNonRoot: true - allowPrivilegeEscalation: false - seccompProfile: - type: RuntimeDefault - capabilities: - drop: - - ALL - ports: + ## @skip datadb.primary + primary: + service: + extraPorts: - name: "sidecar" - containerPort: 8080 + port: 8080 + targetPort: 8080 protocol: TCP - envFrom: - - secretRef: - name: data-service-secret - livenessProbe: - exec: - command: - - /bin/bash - - -ec - - "curl -sSL localhost:8080/health | grep 'UP' || exit 1" - initialDelaySeconds: 120 - periodSeconds: 30 - readinessProbe: - exec: - command: - - /bin/bash - - -ec - - "curl -sSL localhost:8080/health | grep 'UP' || exit 1" - initialDelaySeconds: 30 - periodSeconds: 30 - volumeMounts: - - name: s3 - mountPath: /s3 - extraVolumeMounts: - - name: s3 - mountPath: /s3 - extraVolumes: - - name: s3 - emptyDir: { } - persistence: - enabled: false - replicaCount: 3 + sidecars: + - name: sidecar + image: registry.datalab.tuwien.ac.at/dbrepo/data-db-sidecar:1.4.4 + imagePullPolicy: Always + securityContext: + runAsUser: 1001 + runAsGroup: 0 + runAsNonRoot: true + allowPrivilegeEscalation: false + seccompProfile: + type: RuntimeDefault + capabilities: + drop: + - ALL + ports: + - name: "sidecar" + containerPort: 8080 + protocol: TCP + envFrom: + - secretRef: + name: data-service-secret + livenessProbe: + exec: + command: + - /bin/bash + - -ec + - "curl -sSL localhost:8080/health | grep 'UP' || exit 1" + initialDelaySeconds: 120 + periodSeconds: 30 + readinessProbe: + exec: + command: + - /bin/bash + - -ec + - "curl -sSL localhost:8080/health | grep 'UP' || exit 1" + initialDelaySeconds: 30 + periodSeconds: 30 + volumeMounts: + - name: s3 + mountPath: /s3 + extraVolumeMounts: + - name: s3 + mountPath: /s3 + extraVolumes: + - name: s3 + emptyDir: { } + persistence: + enabled: false + ## @skip datadb.secondary + secondary: + replicaCount: 2 ## @section Search Database -## @param searchdb.enabled Enable the Search Database. -## @skip searchdb.fullnameOverride -## @param searchdb.host The hostname for the microservices. -## @param searchdb.port The port for the microservices. -## @skip searchdb.protocol -## @param searchdb.username The admin username. -## @param searchdb.password The admin user password. -## @skip searchdb.clusterName -## @skip searchdb.masterService -## @param searchdb.replicas The number of replicas. -## @skip searchdb.sysctlInit -## @param searchdb.persistence.enabled Enable persistent storage. Requires PV-provisioner. -## @skip searchdb.service -## @skip searchdb.extraEnvs -## @skip searchdb.extraVolumeMounts -## @skip searchdb.extraVolumes -## @skip searchdb.config -## searchdb: - enabled: true + ## @param searchdb.enabled Enable the Data Database. + enabled: true. + ## @skip searchdb.fullnameOverride fullnameOverride: search-db + ## @skip searchdb.servicenameOverride + servicenameOverride: search-db + ## @param searchdb.host The hostname for the microservices. host: search-db + ## @param searchdb.port The port for the microservices. port: 9200 - protocol: http - username: admin - password: admin - clusterName: search-db - masterService: search-db - replicas: 3 - sysctlInit: - enabled: true - persistence: + ## @skip searchdb.security + security: enabled: false - service: - type: ClusterIP - annotations: { } - loadBalancerSourceRanges: [ ] - extraEnvs: - - name: DISABLE_INSTALL_DEMO_CONFIG - value: "true" - extraVolumeMounts: - - name: node-cert - mountPath: /usr/share/opensearch/config/tls - readOnly: true - extraVolumes: - - name: node-cert - secret: - secretName: search-db-secret - config: - opensearch.yml: | - cluster.name: search-db - network.host: 0.0.0.0 - plugins: - security: - ssl: - transport: - pemcert_filepath: tls/tls.crt - pemkey_filepath: tls/tls.key - pemtrustedcas_filepath: tls/ca.crt - enforce_hostname_verification: false - http: - #enabled: true # uncomment to force ssl connections - pemcert_filepath: tls/tls.crt - pemkey_filepath: tls/tls.key - pemtrustedcas_filepath: tls/ca.crt - allow_unsafe_democertificates: false - allow_default_init_securityindex: true - authcz: - admin_dn: - - CN=search-db - nodes_dn: - - CN=search-db - audit.type: internal_opensearch - enable_snapshot_restore_privilege: true - check_snapshot_restore_write_privileges: true - restapi: - roles_enabled: [ "all_access", "security_rest_api_access" ] - system_indices: - enabled: true - indices: - [ - ".opendistro-alerting-config", - ".opendistro-alerting-alert*", - ".opendistro-anomaly-results*", - ".opendistro-anomaly-detector*", - ".opendistro-anomaly-checkpoints", - ".opendistro-anomaly-detection-state", - ".opendistro-reports-*", - ".opendistro-notifications-*", - ".opendistro-notebooks", - ".opendistro-asynchronous-search-response*", - ] + adminPassword: admin + ## @param searchdb.clusterName The cluster name. + clusterName: search-db ## @section Upload Service -## @param uploadservice.enabled Enable the Upload Service. -## @skip uploadservice.fullnameOverride -## @skip uploadservice.image -## @skip uploadservice.containerArgs -## @skip uploadservice.envFrom -## @param uploadservice.replicaCount The number of replicas. -## uploadservice: + ## @param uploadservice.enabled Enable the Upload Service. enabled: true + ## @skip uploadservice.fullnameOverride fullnameOverride: upload-service + ## @skip uploadservice.image image: repository: tusproject/tusd tag: v1.12 + ## @skip uploadservice.securityContext securityContext: allowPrivilegeEscalation: false + runAsUser: 1000 + runAsGroup: 1000 runAsNonRoot: true seccompProfile: type: RuntimeDefault capabilities: drop: - ALL + ## @skip uploadservice.containerArgs containerArgs: - "--base-path=/api/upload/files/" - "-s3-endpoint=http://storageservice-s3:9000" - "-s3-bucket=dbrepo-upload" + ## @skip uploadservice.envFrom envFrom: - secretRef: name: upload-service-secret + ## @param uploadservice.replicaCount The number of replicas. replicaCount: 2 ## @section Broker Service -## @param brokerservice.enabled Enable the Broker Service. -## @skip brokerservice.fullnameOverride -## @skip brokerservice.image -## @param brokerservice.endpoint The management api endpoint for the microservices. -## @param brokerservice.host The hostname for the microservices. -## @param brokerservice.port The port for the microservices. -## @param brokerservice.virtualHost The default virtual host name. -## @param brokerservice.queueName The default queue name. -## @param brokerservice.exchangeName The default exchange name. -## @param brokerservice.routingKey The default routing key binding from the default queue to the default exchange. -## @param brokerservice.connectionTimeout The connection timeout in ms. -## @skip brokerservice.auth -## @skip brokerservice.extraConfiguration -## @skip brokerservice.loadDefinition -## @skip brokerservice.extraVolumes -## @skip brokerservice.extraPlugins -## @param brokerservice.persistence.enabled Enable persistent storage. Requires PV-provisioner. -## @skip brokerservice.service -## @param brokerservice.replicaCount The number of replicas. -## brokerservice: + ## @param brokerservice.enabled Enable the Broker Service. enabled: true + ## @skip brokerservice.fullnameOverride fullnameOverride: broker-service image: + ## @param brokerservice.image.debug Set the logging level to `trace`. Otherwise, set to `info`. debug: true + ## @param brokerservice.endpoint The management api endpoint for the microservices. endpoint: http://broker-service:15672 + ## @param brokerservice.host The hostname for the microservices. host: broker-service + ## @param brokerservice.port The port for the microservices. port: 5672 + ## @param brokerservice.virtualHost The default virtual host name. virtualHost: dbrepo + ## @param brokerservice.queueName The default queue name. queueName: dbrepo + ## @param brokerservice.exchangeName The default exchange name. exchangeName: dbrepo + ## @param brokerservice.routingKey The default routing key binding from the default queue to the default exchange. routingKey: dbrepo.# + ## @param brokerservice.connectionTimeout The connection timeout in ms. connectionTimeout: 60000 auth: + ## @skip brokerservice.auth.tls tls: enabled: false sslOptionsVerify: true failIfNoPeerCert: true existingSecret: ingress-cert + ## @param brokerservice.auth.username The initial administrator username. username: broker + ## @param brokerservice.auth.password The initial administrator user password. password: broker + ## @param brokerservice.auth.passwordHash The initial administrator user password has generated with [`generate-rabbitmq-pw.sh`](https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/blob/release-1.4.4/helm/dbrepo/hack/generate-rabbitmq-pw.sh). + passwordHash: 1gwjNNTBPKLgyzbsUykfR0JIFC6nNqbNJaxzZ14uPT8JGcTZ + ## @skip brokerservice.extraConfiguration extraConfiguration: |- default_vhost = dbrepo default_user_tags.administrator = true @@ -419,174 +321,174 @@ brokerservice: management.oauth_client_secret = JEC2FexxrX4N65fLeDGukAl6R3Lc9y0u management.oauth_scopes = openid management.oauth_provider_url = https://example.com/api/auth/realms/dbrepo + ## @skip brokerservice.loadDefinition loadDefinition: enabled: true existingSecret: broker-service-secret + ## @skip brokerservice.extraVolumes extraVolumes: - name: secret-map secret: secretName: broker-service-secret + ## @param brokerservice.extraPlugins The list of plugins to be activated. extraPlugins: rabbitmq_prometheus rabbitmq_auth_backend_oauth2 rabbitmq_auth_mechanism_ssl persistence: + ## @param brokerservice.persistence.enabled If set to true, a PVC will be created. enabled: false + ## @skip brokerservice.service service: type: ClusterIP managerPortEnabled: true # loadBalancerIP: - replicaCount: 2 + ## @param brokerservice.replicaCount The number of replicas. + replicaCount: 1 ## @section Analyse Service -## @param analyseservice.enabled Enable the Broker Service. -## @skip analyseservice.image -## @param analyseservice.endpoint The url of the endpoint. -## @param analyseservice.s3.endpoint The S3-capable endpoint the microservice connects to. -## @param analyseservice.replicaCount The number of replicas. -## analyseservice: + ## @param analyseservice.enabled Enable the Broker Service. enabled: true image: - name: s210.dl.hpc.tuwien.ac.at/dbrepo/analyse-service:1.4.4 + ## @skip analyseservice.image.name + name: registry.datalab.tuwien.ac.at/dbrepo/analyse-service:1.4.4 + ## @skip analyseservice.image.pullPolicy pullPolicy: Always + ## @param analyseservice.image.debug Set the logging level to `trace`. Otherwise, set to `info`. debug: false + ## @param analyseservice.endpoint The url of the endpoint. endpoint: http://analyse-service s3: + ## @param analyseservice.s3.endpoint The S3-capable endpoint the microservice connects to. endpoint: http://storageservice-s3:9000 + ## @param analyseservice.replicaCount The number of replicas. replicaCount: 2 ## @section Metadata Service -## @param metadataservice.enabled Enable the Metadata Service. -## @skip metadataservice.image -## @param metadataservice.endpoint The Metadata Service endpoint. -## @param metadataservice.admin.email The OAI-PMH exposed admin e-mail. -## @param metadataservice.deletedRecord The OAI-PMH exposed delete policy. -## @param metadataservice.repositoryName The OAI-PMH exposed repository name. -## @param metadataservice.granularity The OAI-PMH exposed record granularity. -## @param metadataservice.datacite.enabled Enable the DataCite account for minting DOIs. -## @param metadataservice.datacite.url The DataCite api endpoint url. -## @param metadataservice.datacite.prefix The DataCite prefix. -## @param metadataservice.datacite.username The DataCite api username. -## @param metadataservice.datacite.password The DataCite api user password. -## @param metadataservice.sparql.connectionTimeout The connection timeout for sparql queries fetching remote data in ms. -## @param metadataservice.s3.endpoint The S3-capable endpoint the microservice connects to. -## @skip metadataservice.s3.bucket -## @param metadataservice.s3.auth.username The S3-capable endpoint username (or access key id). -## @param metadataservice.s3.auth.password The S3-capable endpoint user password (or access key secret). -## @param metadataservice.replicaCount The number of replicas. -## metadataservice: + ## @param metadataservice.enabled Enable the Metadata Service. enabled: true image: - name: s210.dl.hpc.tuwien.ac.at/dbrepo/metadata-service:1.4.4 + ## @skip metadataservice.image.name + name: registry.datalab.tuwien.ac.at/dbrepo/metadata-service:1.4.4 + ## @skip metadataservice.image.pullPolicy pullPolicy: Always + ## @param metadataservice.image.debug Set the logging level to `trace`. Otherwise, set to `info`. debug: false + ## @param metadataservice.endpoint The Metadata Service endpoint. endpoint: http://metadata-service admin: + ## @param metadataservice.admin.email The OAI-PMH exposed e-mail for contacting the metadata records responsible person. email: noreply@example.com + ## @param metadataservice.deletedRecord The OAI-PMH exposed delete policy. deletedRecord: permanent + ## @param metadataservice.repositoryName The OAI-PMH exposed repository name. repositoryName: Database Repository + ## @param metadataservice.granularity The OAI-PMH exposed record granularity. granularity: YYYY-MM-DDThh:mm:ssZ datacite: + ## @param metadataservice.datacite.enabled If set to true, the service mints DOIs instead of local PIDs. enabled: false + ## @param metadataservice.datacite.url The DataCite api endpoint url. url: https://api.datacite.org + ## @param metadataservice.datacite.prefix The DataCite prefix. prefix: "" + ## @param metadataservice.datacite.username The DataCite api username. username: "" + ## @param metadataservice.datacite.password The DataCite api user password. password: "" sparql: + ## @param metadataservice.sparql.connectionTimeout The connection timeout for sparql queries fetching remote data in ms. connectionTimeout: 10000 s3: + ## @param metadataservice.s3.endpoint The S3-capable endpoint the microservice connects to. endpoint: http://storageservice-s3:9000 + ## @skip metadataservice.s3.bucket bucket: import: dbrepo-upload export: dbrepo-download auth: + ## @param metadataservice.s3.auth.username The S3-capable endpoint username (or access key id). username: seaweedfsadmin + ## @param metadataservice.s3.auth.password The S3-capable endpoint user password (or access key secret). password: seaweedfsadmin + ## @param metadataservice.replicaCount The number of replicas. replicaCount: 2 ## @section Data Service -## @param dataservice.enabled Enable the Metadata Service. -## @param dataservice.endpoint The endpoint for the microservices. -## @skip dataservice.image -## @param dataservice.grant.read The default database permissions for users with read access. -## @param dataservice.grant.write The default database permissions for users with write access. -## @param dataservice.default.date The default date format id for dates. -## @param dataservice.default.time The default date format id for times. -## @param dataservice.default.timestamp The default date format id for timestamps. -## @param dataservice.s3.endpoint The S3-capable endpoint the microservice connects to. -## @skip dataservice.s3.bucket -## @param dataservice.s3.auth.username The S3-capable endpoint username (or access key id). -## @param dataservice.s3.auth.password The S3-capable endpoint user password (or access key secret). -## @param dataservice.s3.filePath The local location to download/upload files from/to S3-capable endpoint. -## @param dataservice.consumerConcurrentMin The minimum broker service consumer number. -## @param dataservice.consumerConcurrentMax The maximum broker service consumer number. -## @param dataservice.requeueRejected Enable re-queueing of rejected messages to the broker service. -## @param dataservice.replicaCount The number of replicas. -## dataservice: + ## @param dataservice.enabled Enable the Metadata Service. enabled: true + ## @param dataservice.endpoint The endpoint for the microservices. endpoint: http://data-service image: - name: s210.dl.hpc.tuwien.ac.at/dbrepo/data-service:1.4.4 + ## @skip dataservice.image.name + name: registry.datalab.tuwien.ac.at/dbrepo/data-service:1.4.4 + ## @skip dataservice.image.pullPolicy pullPolicy: Always + ## @param dataservice.image.debug Set the logging level to `trace`. Otherwise, set to `info`. debug: false grant: + ## @param dataservice.grant.read The default database permissions for users with read access. read: SELECT + ## @param dataservice.grant.write The default database permissions for users with write access. write: SELECT, CREATE, CREATE VIEW, CREATE ROUTINE, CREATE TEMPORARY TABLES, LOCK TABLES, INDEX, TRIGGER, INSERT, UPDATE, DELETE default: + ## @param dataservice.default.date The default date format id for dates. Default: YYYY-MM-dd (e.g. 2024-06-15). date: 3 + ## @param dataservice.default.time The default date format id for times. Default: HH:mm:ss (e.g. 14:23:42). time: 4 + ## @param dataservice.default.timestamp The default date format id for timestamps. Default: YYYY-MM-dd HH:mm:ss (e.g. 2024-06-15 14:23:42). timestamp: 1 s3: + ## @param dataservice.s3.endpoint The S3-capable endpoint the microservice connects to. endpoint: http://storageservice-s3:9000 + ## @skip dataservice.s3.bucket bucket: import: dbrepo-upload export: dbrepo-download auth: + ## @param dataservice.s3.auth.username The S3-capable endpoint username (or access key id). username: seaweedfsadmin + ## @param dataservice.s3.auth.password The S3-capable endpoint user password (or access key secret). password: seaweedfsadmin + ## @param dataservice.s3.filePath The local location to download/upload files from/to S3-capable endpoint. filePath: /s3 - consumerConcurrentMin: 1 - consumerConcurrentMax: 5 - requeueRejected: false + ## @param dataservice.replicaCount The number of replicas. replicaCount: 2 ## @section Search Service -## @param searchservice.enabled Enable the Search Service. -## @param searchservice.endpoint The endpoint for the microservices. -## @skip searchservice.image -## @skip searchservice.init -## @param searchservice.replicaCount The number of replicas. -## searchservice: + ## @param searchservice.enabled Enable the Search Service. enabled: true + ## @param searchservice.endpoint The endpoint for the microservices. endpoint: http://search-service image: - name: s210.dl.hpc.tuwien.ac.at/dbrepo/search-service:1.4.4 + ## @skip searchservice.image.name + name: registry.datalab.tuwien.ac.at/dbrepo/search-service:1.4.4 + ## @skip searchservice.image.pullPolicy pullPolicy: Always + ## @param searchservice.image.debug Set the logging level to `trace`. Otherwise, set to `info`. debug: false + ## @skip searchservice.init init: image: - name: s210.dl.hpc.tuwien.ac.at/dbrepo/search-service-init:1.4.4 + name: registry.datalab.tuwien.ac.at/dbrepo/search-service-init:1.4.4 pullPolicy: Always + ## @param searchservice.replicaCount The number of replicas. replicaCount: 2 ## @section Storage Service -## @param storageservice.enabled Enable the Storage Service. -## @skip storageservice.master -## @skip storageservice.filer -## @skip storageservice.volume -## @skip storageservice.s3 -## @skip storageservice.init -## storageservice: + ## @param storageservice.enabled Enable the Storage Service. enabled: true + ## @skip storageservice.master master: enabled: true + ## @skip storageservice.filer filer: enabled: true replicas: 1 @@ -599,9 +501,11 @@ storageservice: enableAuth: true skipAuthSecretCreation: true existingConfigSecret: seaweedfs-s3-secret + ## @skip storageservice.volume volume: enabled: true replicas: 1 + ## @skip storageservice.s3 s3: enabled: true replicas: 2 @@ -616,55 +520,51 @@ storageservice: auth: username: seaweedfsadmin password: seaweedfsadmin + ## @skip storageservice.init init: - image: s210.dl.hpc.tuwien.ac.at/dbrepo/storage-service-init:1.4.4 + image: registry.datalab.tuwien.ac.at/dbrepo/storage-service-init:1.4.4 pullPolicy: Always ## @section User Interface -## @param ui.enabled Enable the User Interface. -## @skip ui.image -## @param ui.public.api.client The endpoint for the client api. -## @param ui.public.api.server The endpoint for the server api. -## @param ui.public.title The user interface title. -## @param ui.public.logo The user interface logo. -## @param ui.public.icon The user interface icon. -## @param ui.public.touch The user interface apple touch icon. -## @param ui.public.broker.host The displayed broker hostname. -## @param ui.public.broker.port.5671 Enable display of the broker 5671 port and mark it as secure (SSL/TLS). -## @param ui.public.broker.port.5672 Enable display of the broker 5672 port and mark it as insecure (no SSL/TLS). -## @param ui.public.broker.extra Extra metadata displayed. -## @param ui.public.database.extra Extra metadata displayed. -## @skip ui.public.links -## @param ui.public.pid.default.publisher The default dataset publisher for persisted identifiers. -## @param ui.public.doi.enabled Enable the display that DOIs are minted. -## @param ui.public.doi.endpoint The DOI proxy. -## @param ui.replicaCount The number of replicas. -## @skip ui.extraVolumes -## @skip ui.extraVolumeMounts -## ui: + ## @param ui.enabled Enable the User Interface. enabled: true image: - name: s210.dl.hpc.tuwien.ac.at/dbrepo/ui:1.4.4 + ## @skip ui.image.name + name: registry.datalab.tuwien.ac.at/dbrepo/ui:1.4.4 + ## @skip ui.image.pullPolicy pullPolicy: Always + ## @param ui.image.debug Set the logging level to `trace`. Otherwise, set to `info`. debug: false public: api: + ## @param ui.public.api.client The endpoint for the client api. client: "" + ## @param ui.public.api.server The endpoint for the server api. server: "" + ## @param ui.public.title The user interface title. title: "Database Repository" + ## @param ui.public.logo The user interface logo. logo: "/logo.svg" + ## @param ui.public.icon The user interface icon. icon: "/favicon.ico" + ## @param ui.public.touch The user interface apple touch icon. touch: "/apple-touch-icon.png" broker: + ## @param ui.public.broker.host The displayed broker hostname. host: example.com port: + ## @param ui.public.broker.port.5671 Enable display of the broker 5671 port and mark it as secure (SSL/TLS). 5671: true + ## @param ui.public.broker.port.5672 Enable display of the broker 5672 port and mark it as insecure (no SSL/TLS). 5672: false + ## @param ui.public.broker.extra Extra metadata displayed. extra: "" database: + ## @param ui.public.database.extra Extra metadata displayed. extra: "128.130.0.0/15" + ## @skip ui.public.links links: rabbitmq: text: RabbitMQ Admin @@ -674,15 +574,21 @@ ui: href: /api/auth/ pid: default: + ## @param ui.public.pid.default.publisher The default dataset publisher for persisted identifiers. publisher: "Example University" doi: + ## @param ui.public.doi.enabled Enable the display that DOIs are minted. enabled: false + ## @param ui.public.doi.endpoint The DOI proxy. endpoint: https://doi.org + ## @param ui.replicaCount The number of replicas. replicaCount: 2 + ## @skip ui.extraVolumes extraVolumes: [ ] # - name: images-map # configMap: # name: ui-config + ## @skip ui.extraVolumeMounts extraVolumeMounts: [ ] # - name: images-map # mountPath: /static/logo.svg @@ -690,32 +596,35 @@ ui: ## @section Ingress -## @param ingress.enabled Enable the ingress. -## @skip ingress.className -## @skip ingress.tls -## @skip ingress.annotations -## ingress: + ## @param ingress.enabled Enable the ingress. enabled: false + ## @param ingress.className The ingress class name. className: nginx tls: + ## @param ingress.tls.enabled Enable the ingress. enabled: true + ## @param ingress.tls.secretName The secret holding the SSL/TLS certificate. Needs to have keys `tls.crt` and `tls.key` and optionally `ca.crt`. secretName: ingress-cert annotations: + ## @skip ingress.annotations.basic The ingress rules for proxying requests directly to services. basic: { } # nginx.org/path-regex: "case_sensitive" # nginx.ingress.kubernetes.io/use-regex: "true" # cert-manager.io/cluster-issuer: letsencrypt-cluster-issuer + ## @skip ingress.annotations.rewriteApi The ingress rules for rewriting certain paths to /api/. rewriteApi: # nginx.org/path-regex: "case_sensitive" # cert-manager.io/cluster-issuer: letsencrypt-cluster-issuer nginx.ingress.kubernetes.io/use-regex: "true" nginx.ingress.kubernetes.io/rewrite-target: /api/$1 + ## @skip ingress.annotations.rewriteRoot The ingress rules for rewriting certain paths to /. rewriteRoot: # nginx.org/path-regex: "case_sensitive" # cert-manager.io/cluster-issuer: letsencrypt-cluster-issuer nginx.ingress.kubernetes.io/use-regex: "true" nginx.ingress.kubernetes.io/rewrite-target: /$1 + ## @skip ingress.annotations.rewriteRootSecure The ingress rules for rewriting certain paths to / and force SSL/TLS encrypted traffic. rewriteRootSecure: # nginx.org/path-regex: "case_sensitive" # cert-manager.io/cluster-issuer: letsencrypt-cluster-issuer @@ -723,6 +632,7 @@ ingress: nginx.ingress.kubernetes.io/backend-protocol: "HTTPS" nginx.ingress.kubernetes.io/use-regex: "true" nginx.ingress.kubernetes.io/rewrite-target: /$1 + ## @skip ingress.annotations.rewritePid The ingress rules for rewriting certain paths to /api/identifier/. rewritePid: # nginx.org/path-regex: "case_sensitive" # cert-manager.io/cluster-issuer: letsencrypt-cluster-issuer diff --git a/install.sh b/install.sh index 9850ccd35e..a11a7c3b23 100644 --- a/install.sh +++ b/install.sh @@ -1,7 +1,7 @@ #!/bin/bash # preset -VERSION="latest" +VERSION="1.4.4" MIN_CPU=8 MIN_RAM=8 MIN_MAP_COUNT=262144 @@ -59,7 +59,8 @@ fi echo "[🚀] Gathering environment ..." mkdir -p ./dist curl -sSL -o ./docker-compose.yml "https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/release-${VERSION}/.docker/docker-compose.yml" -curl -sSL -o ./dist/2_setup-data.sql "https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/release-${VERSION}/dbrepo-metadata-db/2_setup-data.sql" +curl -sSL -o ./dist/1_setup-schema.sql "https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/release-${VERSION}/dbrepo-metadata-db/setup-schema.sql" +curl -sSL -o ./dist/2_setup-data.sql "https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/release-${VERSION}/dbrepo-metadata-db/setup-data.sql" curl -sSL -o ./dist/rabbitmq.conf "https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/release-${VERSION}/dbrepo-broker-service/rabbitmq.conf" curl -sSL -o ./dist/enabled_plugins "https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/release-${VERSION}/dbrepo-broker-service/enabled_plugins" curl -sSL -o ./dist/cert.pem "https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/release-${VERSION}/dbrepo-broker-service/cert.pem" diff --git a/lib/python/dbrepo/RestClient.py b/lib/python/dbrepo/RestClient.py index 6813acd095..ae956dd072 100644 --- a/lib/python/dbrepo/RestClient.py +++ b/lib/python/dbrepo/RestClient.py @@ -1543,8 +1543,7 @@ class RestClient: raise ResponseCodeError(f'Failed to delete database access: response code: {response.status_code} is not ' f'201 (CREATED): {response.text}') - def create_subset(self, database_id: int, query: str, page: int = 0, size: int = 10, - timestamp: datetime.datetime = datetime.datetime.now()) -> Result: + def create_subset(self, database_id: int, query: str, page: int = 0, size: int = 10) -> Result: """ Executes a SQL query in a database where the current user has at least read access with given database id. The result set can be paginated with setting page and size (both). Historic data can be queried by setting @@ -1554,7 +1553,6 @@ class RestClient: :param query: The query statement. :param page: The result pagination number. Optional. Default: 0. :param size: The result pagination size. Optional. Default: 10. - :param timestamp: The query execution time. Optional. Default: now. :returns: The result set, if successful. @@ -1569,8 +1567,8 @@ class RestClient: url = f'/api/database/{database_id}/subset' if page is not None and size is not None: url += f'?page={page}&size={size}' - response = self._wrapper(method="post", url=url, force_auth=True, - payload=ExecuteQuery(statement=query, timestamp=timestamp)) + response = self._wrapper(method="post", url=url, force_auth=True, headers={"Accept": "application/json"}, + payload=ExecuteQuery(statement=query)) if response.status_code == 201: body = response.json() return Result.model_validate(body) diff --git a/lib/python/dbrepo/api/dto.py b/lib/python/dbrepo/api/dto.py index 4656a5220d..20d7a82523 100644 --- a/lib/python/dbrepo/api/dto.py +++ b/lib/python/dbrepo/api/dto.py @@ -720,7 +720,6 @@ class Unit(BaseModel): class ExecuteQuery(BaseModel): statement: str - timestamp: Timestamp class TitleType(str, Enum): diff --git a/lib/python/docs/index.rst b/lib/python/docs/index.rst index f905221999..08ee924d83 100644 --- a/lib/python/docs/index.rst +++ b/lib/python/docs/index.rst @@ -12,7 +12,7 @@ Quickstart ---------- Find numerous quickstart examples on -the `DBRepo website <https://www.ifs.tuwien.ac.at/infrastructures/dbrepo//usage-overview/>`_. +the `DBRepo website <https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/1.4.4/api/>`_. AMQP API Client ----------- diff --git a/mkdocs.yml b/mkdocs.yml index ada8171b50..e2627e6b0d 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -10,8 +10,8 @@ nav: - Welcome to DBRepo: index.md - Why use DBRepo: why.md - Help with DBRepo: help.md - - Installation: deployment-docker-compose.md - - Kubernetes: deployment-helm.md + - Installation: installation.md + - Kubernetes: kubernetes.md - Migration Guide: migration.md - contributing.md - Concepts: diff --git a/values.schema.json b/values.schema.json index 2cc52abfed..0e02517ab5 100644 --- a/values.schema.json +++ b/values.schema.json @@ -187,6 +187,9 @@ "password": { "type": "string" }, + "passwordHash": { + "type": "string" + }, "tls": { "properties": { "enabled": { @@ -314,60 +317,29 @@ }, "datadb": { "properties": { + "auth": { + "properties": { + "replicationPassword": { + "type": "string" + }, + "replicationUser": { + "type": "string" + }, + "rootPassword": { + "type": "string" + } + }, + "type": "object" + }, "enabled": { "type": "boolean" }, "extraFlags": { "type": "string" }, - "extraVolumeMounts": { - "items": { - "properties": { - "mountPath": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "extraVolumes": { - "items": { - "properties": { - "emptyDir": { - "properties": {}, - "type": "object" - }, - "name": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, "fullnameOverride": { "type": "string" }, - "galera": { - "properties": { - "mariabackup": { - "properties": { - "password": { - "type": "string" - }, - "user": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, "image": { "properties": { "debug": { @@ -384,208 +356,230 @@ }, "type": "object" }, - "persistence": { + "primary": { "properties": { - "enabled": { - "type": "boolean" - } - }, - "type": "object" - }, - "replicaCount": { - "type": "integer" - }, - "rootUser": { - "properties": { - "password": { - "type": "string" - }, - "user": { - "type": "string" - } - }, - "type": "object" - }, - "service": { - "properties": { - "extraPorts": { + "extraVolumeMounts": { "items": { "properties": { - "name": { + "mountPath": { "type": "string" }, - "port": { - "type": "integer" - }, - "protocol": { + "name": { "type": "string" - }, - "targetPort": { - "type": "integer" } }, "type": "object" }, "type": "array" - } - }, - "type": "object" - }, - "sidecars": { - "items": { - "properties": { - "envFrom": { - "items": { - "properties": { - "secretRef": { - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - }, - "image": { - "type": "string" - }, - "imagePullPolicy": { - "type": "string" - }, - "livenessProbe": { + }, + "extraVolumes": { + "items": { "properties": { - "exec": { - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, + "emptyDir": { + "properties": {}, "type": "object" }, - "initialDelaySeconds": { - "type": "integer" - }, - "periodSeconds": { - "type": "integer" + "name": { + "type": "string" } }, "type": "object" }, - "name": { - "type": "string" + "type": "array" + }, + "persistence": { + "properties": { + "enabled": { + "type": "boolean" + } }, - "ports": { - "items": { - "properties": { - "containerPort": { - "type": "integer" - }, - "name": { - "type": "string" + "type": "object" + }, + "service": { + "properties": { + "extraPorts": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "protocol": { + "type": "string" + }, + "targetPort": { + "type": "integer" + } }, - "protocol": { - "type": "string" - } + "type": "object" }, - "type": "object" - }, - "type": "array" + "type": "array" + } }, - "readinessProbe": { + "type": "object" + }, + "sidecars": { + "items": { "properties": { - "exec": { + "envFrom": { + "items": { + "properties": { + "secretRef": { + "properties": { + "name": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "type": "array" + }, + "image": { + "type": "string" + }, + "imagePullPolicy": { + "type": "string" + }, + "livenessProbe": { "properties": { - "command": { - "items": { - "type": "string" + "exec": { + "properties": { + "command": { + "items": { + "type": "string" + }, + "type": "array" + } }, - "type": "array" + "type": "object" + }, + "initialDelaySeconds": { + "type": "integer" + }, + "periodSeconds": { + "type": "integer" } }, "type": "object" }, - "initialDelaySeconds": { - "type": "integer" + "name": { + "type": "string" }, - "periodSeconds": { - "type": "integer" - } - }, - "type": "object" - }, - "securityContext": { - "properties": { - "allowPrivilegeEscalation": { - "type": "boolean" + "ports": { + "items": { + "properties": { + "containerPort": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "protocol": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" }, - "capabilities": { + "readinessProbe": { "properties": { - "drop": { - "items": { - "type": "string" + "exec": { + "properties": { + "command": { + "items": { + "type": "string" + }, + "type": "array" + } }, - "type": "array" + "type": "object" + }, + "initialDelaySeconds": { + "type": "integer" + }, + "periodSeconds": { + "type": "integer" } }, "type": "object" }, - "runAsGroup": { - "type": "integer" - }, - "runAsNonRoot": { - "type": "boolean" - }, - "runAsUser": { - "type": "integer" - }, - "seccompProfile": { + "securityContext": { "properties": { - "type": { - "type": "string" + "allowPrivilegeEscalation": { + "type": "boolean" + }, + "capabilities": { + "properties": { + "drop": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "runAsGroup": { + "type": "integer" + }, + "runAsNonRoot": { + "type": "boolean" + }, + "runAsUser": { + "type": "integer" + }, + "seccompProfile": { + "properties": { + "type": { + "type": "string" + } + }, + "type": "object" } }, "type": "object" + }, + "volumeMounts": { + "items": { + "properties": { + "mountPath": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" } }, "type": "object" }, - "volumeMounts": { - "items": { - "properties": { - "mountPath": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - } - }, - "type": "object" + "type": "array" + } }, - "type": "array" + "type": "object" + }, + "secondary": { + "properties": { + "replicaCount": { + "type": "integer" + } + }, + "type": "object" } }, "type": "object" }, "dataservice": { "properties": { - "consumerConcurrentMax": { - "type": "integer" - }, - "consumerConcurrentMin": { - "type": "integer" - }, "default": { "properties": { "date": { @@ -634,9 +628,6 @@ "replicaCount": { "type": "integer" }, - "requeueRejected": { - "type": "boolean" - }, "s3": { "properties": { "auth": { @@ -762,9 +753,21 @@ }, "metadatadb": { "properties": { - "db": { + "auth": { "properties": { - "name": { + "database": { + "type": "string" + }, + "replicationPassword": { + "type": "string" + }, + "replicationUser": { + "type": "string" + }, + "root": { + "type": "string" + }, + "rootPassword": { "type": "string" } }, @@ -780,33 +783,9 @@ "fullnameOverride": { "type": "string" }, - "galera": { - "properties": { - "mariabackup": { - "properties": { - "password": { - "type": "string" - }, - "user": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, "host": { "type": "string" }, - "image": { - "properties": { - "debug": { - "type": "boolean" - } - }, - "type": "object" - }, "initdbScriptsConfigMap": { "type": "string" }, @@ -821,42 +800,10 @@ }, "type": "object" }, - "persistence": { + "secondary": { "properties": { - "enabled": { - "type": "boolean" - } - }, - "type": "object" - }, - "replicaCount": { - "type": "integer" - }, - "rootUser": { - "properties": { - "password": { - "type": "string" - }, - "user": { - "type": "string" - } - }, - "type": "object" - }, - "service": { - "properties": { - "annotations": { - "properties": {}, - "type": "object" - }, - "loadBalancerIP": { - "type": "string" - }, - "loadBalancerSourceRanges": { - "type": "array" - }, - "type": { - "type": "string" + "replicaCount": { + "type": "integer" } }, "type": "object" @@ -975,66 +922,8 @@ "clusterName": { "type": "string" }, - "config": { - "properties": { - "opensearch.yml": { - "type": "string" - } - }, - "type": "object" - }, "enabled": { - "type": "boolean" - }, - "extraEnvs": { - "items": { - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "extraVolumeMounts": { - "items": { - "properties": { - "mountPath": { - "type": "string" - }, - "name": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - } - }, - "type": "object" - }, - "type": "array" - }, - "extraVolumes": { - "items": { - "properties": { - "name": { - "type": "string" - }, - "secret": { - "properties": { - "secretName": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" + "type": "string" }, "fullnameOverride": { "type": "string" @@ -1042,53 +931,21 @@ "host": { "type": "string" }, - "masterService": { - "type": "string" - }, - "password": { - "type": "string" - }, - "persistence": { - "properties": { - "enabled": { - "type": "boolean" - } - }, - "type": "object" - }, "port": { "type": "integer" }, - "protocol": { - "type": "string" - }, - "replicas": { - "type": "integer" - }, - "service": { + "security": { "properties": { - "annotations": { - "properties": {}, - "type": "object" - }, - "loadBalancerSourceRanges": { - "type": "array" - }, - "type": { + "adminPassword": { "type": "string" - } - }, - "type": "object" - }, - "sysctlInit": { - "properties": { + }, "enabled": { "type": "boolean" } }, "type": "object" }, - "username": { + "servicenameOverride": { "type": "string" } }, @@ -1450,6 +1307,42 @@ }, "replicaCount": { "type": "integer" + }, + "securityContext": { + "properties": { + "allowPrivilegeEscalation": { + "type": "boolean" + }, + "capabilities": { + "properties": { + "drop": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "runAsGroup": { + "type": "integer" + }, + "runAsNonRoot": { + "type": "boolean" + }, + "runAsUser": { + "type": "integer" + }, + "seccompProfile": { + "properties": { + "type": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" } }, "type": "object" -- GitLab