From 6ac3a00a82e504838b59ac47e4330bee09634b77 Mon Sep 17 00:00:00 2001 From: Stefano Cunego <93382903+kukkok3@users.noreply.github.com> Date: Thu, 5 Oct 2023 17:47:37 +0200 Subject: [PATCH] feat: Import f10 vitss | NPG-000 (#588) # Description Importing vitss from https://github.com/input-output-hk/vit-servicing-station/tree/catalyst-fund9 into the monorepo. Fixed all the dependencies to be local to the monorepo. Also deleted the vitss snapshot endpoint. The depencencies of the crates in cat-core have not been changed yet from vitss to the new vitss-f10, this will be done in a following PR ## Type of change Please delete options that are not relevant. - [x] Breaking change (fix or feature that would cause existing functionality to not work as expected) ## How Has This Been Tested? ## Checklist - [ ] My code follows the style guidelines of this project - [ ] I have performed a self-review of my code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have made corresponding changes to the documentation - [ ] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [ ] New and existing unit tests pass locally with my changes - [ ] Any dependent changes have been merged and published in downstream modules --- .github/workflows/rust.yml | 20 +- Cargo.lock | 2031 ++++++++++------- Cargo.toml | 4 + Earthfile | 2 + .../src/jormungandr/rest/raw.rs | 8 +- src/vit-servicing-station-f10/.env | 2 + src/vit-servicing-station-f10/.envrc | 1 + .../.github/CODEOWNERS | 8 + .../actions/nix-common-setup/action.yml | 18 + .../.github/dependabot.yml | 13 + .../.github/workflows/api.yml | 21 + .../.github/workflows/api_gh.yml | 37 + .../.github/workflows/audit.yml | 30 + .../.github/workflows/nix.yml | 45 + .../.github/workflows/release.yml | 260 +++ .../.github/workflows/test.yml | 190 ++ .../.github/workflows/update-flake-lock.yml | 19 + src/vit-servicing-station-f10/.gitignore | 8 + src/vit-servicing-station-f10/.gitmodules | 0 src/vit-servicing-station-f10/.spectral.yaml | 4 + src/vit-servicing-station-f10/Earthfile | 10 + src/vit-servicing-station-f10/README.md | 124 + .../ci/release-info.py | 94 + .../ci/strip-own-version-from-cargo-lock.pl | 16 + src/vit-servicing-station-f10/default.nix | 14 + src/vit-servicing-station-f10/diesel.toml | 5 + src/vit-servicing-station-f10/doc/api/v0.yaml | 793 +++++++ .../docker/master/Dockerfile | 35 + .../docker/master/block0.bin | Bin 0 -> 1177049 bytes .../docker/master/database.db | Bin 0 -> 35840 bytes .../docker/soak_tests/Dockerfile | 30 + src/vit-servicing-station-f10/flake.lock | 150 ++ src/vit-servicing-station-f10/flake.nix | 168 ++ .../resources/snapshot/snapshot.json | 18 + .../resources/tests/block0.bin | Bin 0 -> 1177049 bytes .../resources/tests/csvs/challenges.csv | 4 + .../resources/tests/csvs/funds.csv | 2 + .../resources/tests/csvs/proposals.csv | 21 + .../resources/tests/csvs/voteplans.csv | 3 + src/vit-servicing-station-f10/shell.nix | 14 + .../vit-servicing-station-cli-f10/Cargo.toml | 26 + .../src/api_token.rs | 203 ++ .../vit-servicing-station-cli-f10/src/app.rs | 39 + .../src/csv/loaders.rs | 277 +++ .../src/csv/mod.rs | 2 + .../src/csv/models.rs | 297 +++ .../src/db_utils.rs | 60 + .../src/init_db.rs | 44 + .../vit-servicing-station-cli-f10/src/main.rs | 21 + .../vit-servicing-station-cli-f10/src/task.rs | 5 + .../vit-servicing-station-lib-f10/Cargo.toml | 43 + .../2020-05-22-112032_setup_db/down.sql | 11 + .../2020-05-22-112032_setup_db/up.sql | 150 ++ .../src/db/migrations.rs | 7 + .../src/db/mod.rs | 37 + .../src/db/models/api_tokens.rs | 48 + .../src/db/models/challenges.rs | 134 ++ .../db/models/community_advisors_reviews.rs | 109 + .../src/db/models/funds.rs | 350 +++ .../src/db/models/goals.rs | 37 + .../src/db/models/mod.rs | 8 + .../src/db/models/proposals.rs | 534 +++++ .../db/models/proposals/community_choice.rs | 36 + .../src/db/models/proposals/simple.rs | 23 + .../src/db/models/vote_options.rs | 22 + .../src/db/models/voteplans.rs | 92 + .../src/db/queries/api_tokens.rs | 96 + .../src/db/queries/challenges.rs | 82 + .../db/queries/community_advisors_reviews.rs | 40 + .../src/db/queries/funds.rs | 142 ++ .../src/db/queries/goals.rs | 8 + .../src/db/queries/mod.rs | 7 + .../src/db/queries/proposals.rs | 103 + .../src/db/queries/voteplans.rs | 58 + .../src/db/schema.rs | 139 ++ .../src/db/views_schema.rs | 38 + .../vit-servicing-station-lib-f10/src/lib.rs | 12 + .../src/server/bootstrapping.rs | 77 + .../src/server/exit_codes.rs | 30 + .../src/server/mod.rs | 6 + .../src/server/settings/config.rs | 544 +++++ .../src/server/settings/default.rs | 21 + .../src/server/settings/mod.rs | 7 + .../src/server/signals.rs | 25 + .../src/utils/datetime.rs | 5 + .../src/utils/mod.rs | 2 + .../src/utils/serde.rs | 145 ++ .../src/v0/api_token.rs | 167 ++ .../src/v0/context.rs | 74 + .../v0/endpoints/advisor_reviews/handlers.rs | 12 + .../src/v0/endpoints/advisor_reviews/logic.rs | 25 + .../src/v0/endpoints/advisor_reviews/mod.rs | 6 + .../v0/endpoints/advisor_reviews/routes.rs | 18 + .../v0/endpoints/advisor_reviews/schemas.rs | 8 + .../src/v0/endpoints/challenges/handlers.rs | 11 + .../src/v0/endpoints/challenges/logic.rs | 22 + .../src/v0/endpoints/challenges/mod.rs | 6 + .../src/v0/endpoints/challenges/routes.rs | 23 + .../src/v0/endpoints/challenges/schemas.rs | 9 + .../src/v0/endpoints/funds/handlers.rs | 218 ++ .../src/v0/endpoints/funds/logic.rs | 24 + .../src/v0/endpoints/funds/mod.rs | 5 + .../src/v0/endpoints/funds/routes.rs | 44 + .../src/v0/endpoints/genesis/handlers.rs | 60 + .../src/v0/endpoints/genesis/mod.rs | 4 + .../src/v0/endpoints/genesis/routes.rs | 19 + .../src/v0/endpoints/health/handlers.rs | 35 + .../src/v0/endpoints/health/mod.rs | 4 + .../src/v0/endpoints/health/routes.rs | 19 + .../src/v0/endpoints/mod.rs | 69 + .../src/v0/endpoints/proposals/handlers.rs | 143 ++ .../src/v0/endpoints/proposals/logic.rs | 51 + .../src/v0/endpoints/proposals/mod.rs | 7 + .../src/v0/endpoints/proposals/requests.rs | 9 + .../src/v0/endpoints/proposals/routes.rs | 32 + .../v0/endpoints/service_version/handlers.rs | 37 + .../src/v0/endpoints/service_version/logic.rs | 6 + .../src/v0/endpoints/service_version/mod.rs | 7 + .../v0/endpoints/service_version/routes.rs | 19 + .../v0/endpoints/service_version/schemas.rs | 6 + .../src/v0/errors.rs | 61 + .../src/v0/mod.rs | 57 + .../src/v0/result.rs | 15 + .../Cargo.toml | 18 + .../src/main.rs | 126 + .../Cargo.toml | 53 + .../vit-servicing-station-tests-f10/build.rs | 9 + .../src/common/cli/commands/csv_data/load.rs | 50 + .../src/common/cli/commands/csv_data/mod.rs | 19 + .../src/common/cli/commands/db/init.rs | 20 + .../src/common/cli/commands/db/mod.rs | 19 + .../src/common/cli/commands/mod.rs | 44 + .../src/common/cli/commands/token/add.rs | 30 + .../src/common/cli/commands/token/generate.rs | 25 + .../src/common/cli/commands/token/mod.rs | 26 + .../src/common/cli/mod.rs | 33 + .../src/common/clients/mod.rs | 3 + .../src/common/clients/rest/logger.rs | 48 + .../src/common/clients/rest/mod.rs | 198 ++ .../src/common/clients/rest/path.rs | 75 + .../src/common/clients/rest/raw.rs | 179 ++ .../src/common/data/csv_converter.rs | 331 +++ .../data/generator/arbitrary/generator.rs | 116 + .../common/data/generator/arbitrary/mod.rs | 5 + .../generator/arbitrary/snapshot_generator.rs | 370 +++ .../src/common/data/generator/mod.rs | 7 + .../src/common/data/generator/snapshot.rs | 107 + .../generator/voting/builder/challenge.rs | 35 + .../data/generator/voting/builder/mod.rs | 139 ++ .../data/generator/voting/builder/proposal.rs | 12 + .../common/data/generator/voting/generator.rs | 209 ++ .../src/common/data/generator/voting/mod.rs | 15 + .../voting/parameters/fund/current.rs | 63 + .../generator/voting/parameters/fund/dates.rs | 60 + .../generator/voting/parameters/fund/info.rs | 65 + .../generator/voting/parameters/fund/mod.rs | 7 + .../data/generator/voting/parameters/mod.rs | 20 + .../generator/voting/parameters/vote_plan.rs | 37 + .../generator/voting/template/arbitrary.rs | 247 ++ .../generator/voting/template/external.rs | 99 + .../data/generator/voting/template/mod.rs | 89 + .../src/common/data/mod.rs | 46 + .../src/common/db/mod.rs | 204 ++ .../src/common/load/mod.rs | 43 + .../src/common/load/rest.rs | 69 + .../src/common/logger.rs | 29 + .../src/common/mod.rs | 9 + .../src/common/paths.rs | 2 + .../src/common/server.rs | 54 + .../src/common/startup/db.rs | 186 ++ .../src/common/startup/mod.rs | 93 + .../src/common/startup/server/bootstrap.rs | 123 + .../src/common/startup/server/command.rs | 181 ++ .../src/common/startup/server/mod.rs | 7 + .../src/common/startup/server/settings.rs | 77 + .../src/lib.rs | 7 + .../src/tests/bootstrap/arguments/address.rs | 43 + .../src/tests/bootstrap/arguments/block0.rs | 50 + .../src/tests/bootstrap/arguments/db_url.rs | 25 + .../tests/bootstrap/arguments/in_settings.rs | 110 + .../src/tests/bootstrap/arguments/logger.rs | 64 + .../src/tests/bootstrap/arguments/mod.rs | 6 + .../tests/bootstrap/arguments/out_settings.rs | 80 + .../src/tests/bootstrap/mod.rs | 22 + .../src/tests/cli/db.rs | 29 + .../src/tests/cli/load.rs | 97 + .../src/tests/cli/mod.rs | 3 + .../src/tests/cli/token.rs | 116 + .../src/tests/data/mod.rs | 36 + .../src/tests/mod.rs | 6 + .../src/tests/non_functional/mod.rs | 16 + .../src/tests/non_functional/short.rs | 85 + .../src/tests/non_functional/soak.rs | 47 + .../src/tests/rest/advisor_reviews.rs | 66 + .../src/tests/rest/cors.rs | 153 ++ .../src/tests/rest/funds.rs | 55 + .../src/tests/rest/genesis.rs | 51 + .../src/tests/rest/mod.rs | 8 + .../src/tests/rest/proposals.rs | 59 + .../src/tests/rest/service_version.rs | 29 + .../src/tests/rest/token.rs | 38 + .../src/tests/rest/voteplan_id.rs | 50 + src/vit-testing/valgrind/src/bin/valgrind.rs | 2 +- .../vitup/src/mode/mock/rest/mod.rs | 4 +- 204 files changed, 14395 insertions(+), 849 deletions(-) create mode 100644 src/vit-servicing-station-f10/.env create mode 100644 src/vit-servicing-station-f10/.envrc create mode 100644 src/vit-servicing-station-f10/.github/CODEOWNERS create mode 100644 src/vit-servicing-station-f10/.github/actions/nix-common-setup/action.yml create mode 100644 src/vit-servicing-station-f10/.github/dependabot.yml create mode 100644 src/vit-servicing-station-f10/.github/workflows/api.yml create mode 100644 src/vit-servicing-station-f10/.github/workflows/api_gh.yml create mode 100644 src/vit-servicing-station-f10/.github/workflows/audit.yml create mode 100644 src/vit-servicing-station-f10/.github/workflows/nix.yml create mode 100644 src/vit-servicing-station-f10/.github/workflows/release.yml create mode 100644 src/vit-servicing-station-f10/.github/workflows/test.yml create mode 100644 src/vit-servicing-station-f10/.github/workflows/update-flake-lock.yml create mode 100644 src/vit-servicing-station-f10/.gitignore create mode 100644 src/vit-servicing-station-f10/.gitmodules create mode 100644 src/vit-servicing-station-f10/.spectral.yaml create mode 100644 src/vit-servicing-station-f10/Earthfile create mode 100644 src/vit-servicing-station-f10/README.md create mode 100644 src/vit-servicing-station-f10/ci/release-info.py create mode 100755 src/vit-servicing-station-f10/ci/strip-own-version-from-cargo-lock.pl create mode 100644 src/vit-servicing-station-f10/default.nix create mode 100644 src/vit-servicing-station-f10/diesel.toml create mode 100644 src/vit-servicing-station-f10/doc/api/v0.yaml create mode 100644 src/vit-servicing-station-f10/docker/master/Dockerfile create mode 100644 src/vit-servicing-station-f10/docker/master/block0.bin create mode 100644 src/vit-servicing-station-f10/docker/master/database.db create mode 100644 src/vit-servicing-station-f10/docker/soak_tests/Dockerfile create mode 100644 src/vit-servicing-station-f10/flake.lock create mode 100644 src/vit-servicing-station-f10/flake.nix create mode 100644 src/vit-servicing-station-f10/resources/snapshot/snapshot.json create mode 100644 src/vit-servicing-station-f10/resources/tests/block0.bin create mode 100644 src/vit-servicing-station-f10/resources/tests/csvs/challenges.csv create mode 100644 src/vit-servicing-station-f10/resources/tests/csvs/funds.csv create mode 100644 src/vit-servicing-station-f10/resources/tests/csvs/proposals.csv create mode 100644 src/vit-servicing-station-f10/resources/tests/csvs/voteplans.csv create mode 100644 src/vit-servicing-station-f10/shell.nix create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-cli-f10/Cargo.toml create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-cli-f10/src/api_token.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-cli-f10/src/app.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-cli-f10/src/csv/loaders.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-cli-f10/src/csv/mod.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-cli-f10/src/csv/models.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-cli-f10/src/db_utils.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-cli-f10/src/init_db.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-cli-f10/src/main.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-cli-f10/src/task.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/Cargo.toml create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/migrations/2020-05-22-112032_setup_db/down.sql create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/migrations/2020-05-22-112032_setup_db/up.sql create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/migrations.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/mod.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/models/api_tokens.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/models/challenges.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/models/community_advisors_reviews.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/models/funds.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/models/goals.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/models/mod.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/models/proposals.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/models/proposals/community_choice.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/models/proposals/simple.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/models/vote_options.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/models/voteplans.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/queries/api_tokens.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/queries/challenges.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/queries/community_advisors_reviews.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/queries/funds.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/queries/goals.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/queries/mod.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/queries/proposals.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/queries/voteplans.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/schema.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/views_schema.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/lib.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/server/bootstrapping.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/server/exit_codes.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/server/mod.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/server/settings/config.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/server/settings/default.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/server/settings/mod.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/server/signals.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/utils/datetime.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/utils/mod.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/utils/serde.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/api_token.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/context.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/advisor_reviews/handlers.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/advisor_reviews/logic.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/advisor_reviews/mod.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/advisor_reviews/routes.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/advisor_reviews/schemas.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/challenges/handlers.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/challenges/logic.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/challenges/mod.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/challenges/routes.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/challenges/schemas.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/funds/handlers.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/funds/logic.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/funds/mod.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/funds/routes.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/genesis/handlers.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/genesis/mod.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/genesis/routes.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/health/handlers.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/health/mod.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/health/routes.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/mod.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/proposals/handlers.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/proposals/logic.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/proposals/mod.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/proposals/requests.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/proposals/routes.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/service_version/handlers.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/service_version/logic.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/service_version/mod.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/service_version/routes.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/service_version/schemas.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/errors.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/mod.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/result.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-server-f10/Cargo.toml create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-server-f10/src/main.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/Cargo.toml create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/build.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/cli/commands/csv_data/load.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/cli/commands/csv_data/mod.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/cli/commands/db/init.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/cli/commands/db/mod.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/cli/commands/mod.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/cli/commands/token/add.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/cli/commands/token/generate.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/cli/commands/token/mod.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/cli/mod.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/clients/mod.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/clients/rest/logger.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/clients/rest/mod.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/clients/rest/path.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/clients/rest/raw.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/csv_converter.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/arbitrary/generator.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/arbitrary/mod.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/arbitrary/snapshot_generator.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/mod.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/snapshot.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/builder/challenge.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/builder/mod.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/builder/proposal.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/generator.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/mod.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/parameters/fund/current.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/parameters/fund/dates.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/parameters/fund/info.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/parameters/fund/mod.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/parameters/mod.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/parameters/vote_plan.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/template/arbitrary.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/template/external.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/template/mod.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/mod.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/db/mod.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/load/mod.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/load/rest.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/logger.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/mod.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/paths.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/server.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/startup/db.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/startup/mod.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/startup/server/bootstrap.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/startup/server/command.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/startup/server/mod.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/startup/server/settings.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/lib.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/bootstrap/arguments/address.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/bootstrap/arguments/block0.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/bootstrap/arguments/db_url.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/bootstrap/arguments/in_settings.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/bootstrap/arguments/logger.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/bootstrap/arguments/mod.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/bootstrap/arguments/out_settings.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/bootstrap/mod.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/cli/db.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/cli/load.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/cli/mod.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/cli/token.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/data/mod.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/mod.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/non_functional/mod.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/non_functional/short.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/non_functional/soak.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/rest/advisor_reviews.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/rest/cors.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/rest/funds.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/rest/genesis.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/rest/mod.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/rest/proposals.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/rest/service_version.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/rest/token.rs create mode 100644 src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/rest/voteplan_id.rs diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index a3e89aff38..c0170711d5 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -127,7 +127,7 @@ jobs: # We are excluding cat-dat-service and event-db because we are already running it with Earthly - name: Build and archive tests - run: | + run: | cargo nextest archive \ --workspace \ --exclude vitup \ @@ -138,6 +138,10 @@ jobs: --exclude vit-servicing-station-server \ --exclude vit-servicing-station-tests \ --exclude vit-servicing-station-lib \ + --exclude vit-servicing-station-cli-f10 \ + --exclude vit-servicing-station-server-f10 \ + --exclude vit-servicing-station-tests-f10 \ + --exclude vit-servicing-station-lib-f10 \ --exclude cat-data-service \ --exclude event-db \ --exclude wallet-uniffi \ @@ -211,6 +215,8 @@ jobs: path: | target/debug/vit-servicing-station-cli target/debug/vit-servicing-station-server + target/debug/vit-servicing-station-cli-f10 + target/debug/vit-servicing-station-server-f10 target/debug/jcli target/debug/jormungandr target/debug/explorer @@ -221,7 +227,7 @@ jobs: - name: Install cargo-make run: cargo install --force cargo-make - + - name: Install refinery run: cargo install refinery_cli @@ -232,7 +238,7 @@ jobs: - name: Build external dependencies if: steps.deps-cache.outputs.cache-hit != 'true' run: - cargo build -p vit-servicing-station-cli -p vit-servicing-station-server -p jcli -p jormungandr -p explorer + cargo build -p vit-servicing-station-cli -p vit-servicing-station-server -p vit-servicing-station-cli-f10 -p vit-servicing-station-server-f10 -p jcli -p jormungandr -p explorer - name: Setup Event DB env: @@ -242,7 +248,7 @@ jobs: # We are excluding cat-dat-service and event-db because we are already running it with Earthly - name: Build and archive tests if: steps.archive-cache.outputs.cache-hit != 'true' - run: | + run: | cargo nextest archive \ --workspace \ --exclude vitup \ @@ -253,6 +259,10 @@ jobs: --exclude vit-servicing-station-server \ --exclude vit-servicing-station-tests \ --exclude vit-servicing-station-lib \ + --exclude vit-servicing-station-cli-f10 \ + --exclude vit-servicing-station-server-f10 \ + --exclude vit-servicing-station-tests-f10 \ + --exclude vit-servicing-station-lib-f10 \ --exclude cat-data-service \ --exclude event-db \ --exclude wallet-uniffi \ @@ -388,6 +398,6 @@ jobs: with: toolchain: ${{env.RUST_LATEST_STABLE_VERSION}} components: rustfmt, clippy - + - run: rustup component add clippy - run: scripts/check-fmt.sh diff --git a/Cargo.lock b/Cargo.lock index bf0fe2634f..7f99bff0fa 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -38,16 +38,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "939d59666dd9a7964a3a5312b9d24c9c107630752ee64f2dd5038189a23fe331" dependencies = [ "abnf", - "indexmap", + "indexmap 1.9.3", "itertools 0.10.5", "pretty", ] [[package]] name = "addr2line" -version = "0.19.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" dependencies = [ "gimli", ] @@ -95,6 +95,17 @@ dependencies = [ "opaque-debug", ] +[[package]] +name = "aes" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2" +dependencies = [ + "cfg-if 1.0.0", + "cipher 0.4.4", + "cpufeatures", +] + [[package]] name = "aes-gcm" version = "0.9.4" @@ -102,7 +113,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df5f85a83a7d8b0442b6aa7b504b8212c1733da07b98aae43d4bc21b2cb3cdf6" dependencies = [ "aead 0.4.3", - "aes", + "aes 0.7.5", "cipher 0.3.0", "ctr", "ghash", @@ -115,7 +126,7 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" dependencies = [ - "getrandom 0.2.9", + "getrandom 0.2.10", "once_cell", "version_check", ] @@ -133,13 +144,25 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "0.7.20" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" +checksum = "ea5d730647d4fadd988536d06fecce94b7b4f2a7efdae548f1cf4b63205518ab" dependencies = [ "memchr", ] +[[package]] +name = "allocator-api2" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + [[package]] name = "android_system_properties" version = "0.1.5" @@ -169,49 +192,57 @@ dependencies = [ [[package]] name = "anstream" -version = "0.2.6" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "342258dd14006105c2b75ab1bd7543a03bdf0cfc94383303ac212a04939dff6f" +checksum = "2ab91ebe16eb252986481c5b62f6098f3b698a45e34b5b98200cf20dd2484a44" dependencies = [ "anstyle", "anstyle-parse", + "anstyle-query", "anstyle-wincon", - "concolor-override", - "concolor-query", - "is-terminal", + "colorchoice", "utf8parse", ] [[package]] name = "anstyle" -version = "0.3.5" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23ea9e81bd02e310c216d080f6223c179012256e5151c41db88d12c88a1684d2" +checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" [[package]] name = "anstyle-parse" -version = "0.1.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7d1bb534e9efed14f3e5f44e7dd1a4f709384023a4165199a4241e18dff0116" +checksum = "317b9a89c1868f5ea6ff1d9539a69f45dffc21ce321ac1fd1160dfa48c8e2140" dependencies = [ "utf8parse", ] +[[package]] +name = "anstyle-query" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" +dependencies = [ + "windows-sys 0.48.0", +] + [[package]] name = "anstyle-wincon" -version = "0.2.0" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3127af6145b149f3287bb9a0d10ad9c5692dba8c53ad48285e5bec4063834fa" +checksum = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628" dependencies = [ "anstyle", - "windows-sys 0.45.0", + "windows-sys 0.48.0", ] [[package]] name = "anyhow" -version = "1.0.70" +version = "1.0.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7de8ce5e0f9f8d88245311066a578d72b7af3e7088f32783804676302df237e4" +checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" [[package]] name = "arc-swap" @@ -233,9 +264,9 @@ checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" [[package]] name = "arrayvec" -version = "0.7.2" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "ascii" @@ -291,19 +322,19 @@ dependencies = [ "quote", "serde", "syn 1.0.109", - "toml", + "toml 0.5.11", ] [[package]] name = "assert_cmd" -version = "2.0.10" +version = "2.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0b2340f55d9661d76793b2bfc2eb0e62689bd79d067a95707ea762afd5e9dd" +checksum = "88903cb14723e4d4003335bb7f8a14f27691649105346a0f0957466c096adfe6" dependencies = [ "anstyle", "bstr", "doc-comment", - "predicates 3.0.2", + "predicates 3.0.4", "predicates-core", "predicates-tree", "wait-timeout", @@ -311,14 +342,14 @@ dependencies = [ [[package]] name = "assert_fs" -version = "1.0.12" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9d5bf7e5441c6393b5a9670a5036abe6b4847612f594b870f7332dbf10cf6fa" +checksum = "f070617a68e5c2ed5d06ee8dd620ee18fb72b99f6c094bed34cf8ab07c875b48" dependencies = [ "anstyle", "doc-comment", "globwalk", - "predicates 3.0.2", + "predicates 3.0.4", "predicates-core", "predicates-tree", "tempfile", @@ -341,7 +372,7 @@ dependencies = [ "fnv", "futures-util", "http", - "indexmap", + "indexmap 1.9.3", "mime", "multer", "num-traits", @@ -364,7 +395,7 @@ checksum = "c121a894495d7d3fc3d4e15e0a9843e422e4d1d9e3c514d8062a1c94b35b005d" dependencies = [ "Inflector", "async-graphql-parser", - "darling", + "darling 0.14.4", "proc-macro-crate 1.3.1", "proc-macro2", "quote", @@ -391,7 +422,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a941b499fead4a3fb5392cabf42446566d18c86313f69f2deab69560394d65f" dependencies = [ "bytes", - "indexmap", + "indexmap 1.9.3", "serde", "serde_json", ] @@ -427,18 +458,18 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.13", + "syn 2.0.37", ] [[package]] name = "async-trait" -version = "0.1.68" +version = "0.1.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842" +checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.13", + "syn 2.0.37", ] [[package]] @@ -465,7 +496,7 @@ dependencies = [ name = "audit" version = "0.1.0" dependencies = [ - "base64 0.21.0", + "base64 0.21.4", "bech32 0.8.1", "chain-addr", "chain-core", @@ -475,7 +506,7 @@ dependencies = [ "chain-storage", "chain-time", "chain-vote", - "clap 4.2.1", + "clap 4.4.6", "clap_complete_command", "color-eyre", "criterion", @@ -503,13 +534,13 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "axum" -version = "0.6.12" +version = "0.6.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349f8ccfd9221ee7d1f3d4b33e1f8319b3a81ed8f61f2ea40b37b859794b4491" +checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf" dependencies = [ "async-trait", "axum-core", - "bitflags", + "bitflags 1.3.2", "bytes", "futures-util", "http", @@ -535,9 +566,9 @@ dependencies = [ [[package]] name = "axum-core" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2f958c80c248b34b9a877a643811be8dbca03ca5ba827f2b63baf3a81e5fc4e" +checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" dependencies = [ "async-trait", "bytes", @@ -552,15 +583,15 @@ dependencies = [ [[package]] name = "backtrace" -version = "0.3.67" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca" +checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" dependencies = [ "addr2line", "cc", "cfg-if 1.0.0", "libc", - "miniz_oxide 0.6.2", + "miniz_oxide 0.7.1", "object", "rustc-demangle", ] @@ -571,6 +602,12 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d27c3610c36aee21ce8ac510e6224498de4228ad772a171ed65643a24693a5a8" +[[package]] +name = "base64" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" + [[package]] name = "base64" version = "0.13.1" @@ -579,9 +616,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] name = "base64" -version = "0.21.0" +version = "0.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a" +checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2" [[package]] name = "base64-url" @@ -589,7 +626,7 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c5b0a88aa36e9f095ee2e2b13fb8c5e4313e022783aedacc123328c0084916d" dependencies = [ - "base64 0.21.0", + "base64 0.21.4", ] [[package]] @@ -600,18 +637,18 @@ checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" [[package]] name = "basic-toml" -version = "0.1.2" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c0de75129aa8d0cceaf750b89013f0e08804d6ec61416da787b35ad0d7cddf1" +checksum = "7bfc506e7a2370ec239e1d072507b2a80c833083699d3c6fa176fbb4de8448c6" dependencies = [ "serde", ] [[package]] name = "bb8" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1627eccf3aa91405435ba240be23513eeca466b5dc33866422672264de061582" +checksum = "98b4b0f25f18bcdc3ac72bdb486ed0acf7e185221fd4dc985bc15db5800b0ba2" dependencies = [ "async-trait", "futures-channel", @@ -683,6 +720,24 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +[[package]] +name = "bitflags" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635" + +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + [[package]] name = "block-buffer" version = "0.9.0" @@ -764,27 +819,26 @@ checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" [[package]] name = "bstr" -version = "1.4.0" +version = "1.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d4260bcc2e8fc9df1eac4919a720effeb63a3f0952f5bf4944adfa18897f09" +checksum = "4c2f7349907b712260e64b0afe2f84692af14a454be26187d9df565c7f69266a" dependencies = [ "memchr", - "once_cell", - "regex-automata", + "regex-automata 0.3.9", "serde", ] [[package]] name = "bumpalo" -version = "3.12.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" +checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" [[package]] name = "bytecheck" -version = "0.6.10" +version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13fe11640a23eb24562225322cd3e452b93a3d4091d62fab69c70542fcd17d1f" +checksum = "8b6372023ac861f6e6dc89c8344a8f398fb42aaba2b5dbc649ca0c0e9dbcb627" dependencies = [ "bytecheck_derive", "ptr_meta", @@ -793,9 +847,9 @@ dependencies = [ [[package]] name = "bytecheck_derive" -version = "0.6.10" +version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e31225543cb46f81a7e224762764f4a6a0f097b1db0b175f69e8065efaa42de5" +checksum = "a7ec4c6f261935ad534c0c22dbef2201b45918860eb1c574b972bd213a76af61" dependencies = [ "proc-macro2", "quote", @@ -815,9 +869,9 @@ dependencies = [ [[package]] name = "bytemuck" -version = "1.13.1" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea" +checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6" [[package]] name = "byteorder" @@ -827,18 +881,18 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytes" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" dependencies = [ "serde", ] [[package]] name = "bytesize" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38fcc2979eff34a4b84e1cf9a1e3da42a7d44b3b690a40cdcb23e3d556cfb2e5" +checksum = "a3e368af43e418a04d52505cf3dbc23dda4e3407ae2fa99fd0e4f308ce546acc" [[package]] name = "bzip2" @@ -882,9 +936,9 @@ dependencies = [ [[package]] name = "cardano-serialization-lib" -version = "11.4.0" +version = "11.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9bb241f81c6128c6b1055415c3cc69b95998dcde64bf055fa01380bb26ddeb5" +checksum = "8c3fab2c10aa73dae6ea90ed459ef07ed7acb09270ea90d9a37fa00420b9c25c" dependencies = [ "bech32 0.7.3", "cbor_event", @@ -893,7 +947,7 @@ dependencies = [ "cryptoxide 0.4.4", "digest 0.9.0", "ed25519-bip32 0.4.1", - "getrandom 0.2.9", + "getrandom 0.2.10", "hex", "itertools 0.10.5", "js-sys", @@ -946,7 +1000,7 @@ dependencies = [ "axum", "chain-impl-mockchain", "chrono", - "clap 4.2.1", + "clap 4.4.6", "event-db", "jormungandr-lib", "metrics", @@ -980,7 +1034,7 @@ dependencies = [ "chain-storage", "chain-time", "chain-vote", - "clap 4.2.1", + "clap 4.4.6", "color-eyre", "csv", "fraction", @@ -1018,7 +1072,7 @@ dependencies = [ "test-strategy", "thiserror", "thor", - "time 0.3.20", + "time", "tokio", "tracing", "tracing-subscriber", @@ -1037,25 +1091,26 @@ checksum = "089a0261d1bc59e54e8e11860031efd88593f0e61b921172c474f1f38c2f2d3c" [[package]] name = "cc" -version = "1.0.79" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" dependencies = [ "jobserver", + "libc", ] [[package]] name = "cddl" -version = "0.9.2" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bca702a7a9e1ed6b08474b2ea25cab93439822898a283eb4087de5cf0a83892" +checksum = "436ba47def0bac296c651f18d8b731e1e66b136dcde4016149452535837efdd2" dependencies = [ "abnf_to_pest", "base16", "base64-url", "chrono", "ciborium", - "clap 3.2.23", + "clap 3.2.25", "codespan-reporting", "console_error_panic_hook", "crossterm", @@ -1068,7 +1123,7 @@ dependencies = [ "pest_meta", "pest_vm", "regex", - "regex-syntax 0.7.4", + "regex-syntax 0.7.5", "serde", "serde-wasm-bindgen 0.5.0", "serde_json", @@ -1151,7 +1206,7 @@ dependencies = [ "rand 0.8.5", "rand_core 0.6.4", "rayon", - "sha2 0.10.6", + "sha2 0.10.8", "smoke", "test-strategy", "typed-bytes", @@ -1184,8 +1239,8 @@ dependencies = [ "serde", "serde_json", "sparse-array", - "strum", - "strum_macros", + "strum 0.24.1", + "strum_macros 0.24.3", "tempfile", "test-strategy", "thiserror", @@ -1254,7 +1309,7 @@ dependencies = [ name = "chain-vote" version = "0.1.0" dependencies = [ - "base64 0.21.0", + "base64 0.21.4", "cfg-if 1.0.0", "chain-core", "chain-crypto", @@ -1277,25 +1332,24 @@ checksum = "17cc5e6b5ab06331c33589842070416baa137e8b0eb912b008cfd4a78ada7919" [[package]] name = "chrono" -version = "0.4.24" +version = "0.4.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b" +checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" dependencies = [ + "android-tzdata", "iana-time-zone", "js-sys", - "num-integer", "num-traits", "serde", - "time 0.1.45", "wasm-bindgen", - "winapi", + "windows-targets 0.48.5", ] [[package]] name = "ciborium" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0c137568cc60b904a7724001b35ce2630fd00d5d84805fbb608ab89509d788f" +checksum = "effd91f6c78e5a4ace8a5d3c0b6bfaec9e2baaef55f3efc00e45fb2e477ee926" dependencies = [ "ciborium-io", "ciborium-ll", @@ -1304,15 +1358,15 @@ dependencies = [ [[package]] name = "ciborium-io" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "346de753af073cc87b52b2083a506b38ac176a44cfb05497b622e27be899b369" +checksum = "cdf919175532b369853f5d5e20b26b43112613fd6fe7aee757e35f7a44642656" [[package]] name = "ciborium-ll" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "213030a2b5a4e0c0892b6652260cf6ccac84827b83a85a534e178e3906c4cf1b" +checksum = "defaa24ecc093c77630e6c15e17c51f5e187bf35ee514f4e2d67baaa96dae22b" dependencies = [ "ciborium-io", "half", @@ -1344,60 +1398,61 @@ version = "2.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" dependencies = [ - "bitflags", + "ansi_term 0.12.1", + "atty", + "bitflags 1.3.2", + "strsim 0.8.0", "textwrap 0.11.0", "unicode-width", + "vec_map", ] [[package]] name = "clap" -version = "3.2.23" +version = "3.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71655c45cb9845d3270c9d6df84ebe72b4dad3c2ba3f7023ad47c144e4e473a5" +checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123" dependencies = [ "atty", - "bitflags", - "clap_derive 3.2.18", + "bitflags 1.3.2", + "clap_derive 3.2.25", "clap_lex 0.2.4", - "indexmap", + "indexmap 1.9.3", "once_cell", - "strsim", + "strsim 0.10.0", "termcolor", "textwrap 0.16.0", ] [[package]] name = "clap" -version = "4.2.1" +version = "4.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "046ae530c528f252094e4a77886ee1374437744b2bff1497aa898bbddbbb29b3" +checksum = "d04704f56c2cde07f43e8e2c154b43f216dc5c92fc98ada720177362f953b956" dependencies = [ "clap_builder", - "clap_derive 4.2.0", - "once_cell", + "clap_derive 4.4.2", ] [[package]] name = "clap_builder" -version = "4.2.1" +version = "4.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "223163f58c9a40c3b0a43e1c4b50a9ce09f007ea2cb1ec258a687945b4b7929f" +checksum = "0e231faeaca65ebd1ea3c737966bf858971cd38c3849107aa3ea7de90a804e45" dependencies = [ "anstream", "anstyle", - "bitflags", - "clap_lex 0.4.1", - "once_cell", - "strsim", + "clap_lex 0.5.1", + "strsim 0.10.0", ] [[package]] name = "clap_complete" -version = "4.2.0" +version = "4.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01c22dcfb410883764b29953103d9ef7bb8fe21b3fa1158bc99986c2067294bd" +checksum = "e3ae8ba90b9d8b007efe66e55e48fb936272f5ca00349b5b0e89877520d35ea7" dependencies = [ - "clap 4.2.1", + "clap 4.4.6", ] [[package]] @@ -1406,7 +1461,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "183495371ea78d4c9ff638bfc6497d46fed2396e4f9c50aebc1278a4a9919a3d" dependencies = [ - "clap 4.2.1", + "clap 4.4.6", "clap_complete", "clap_complete_fig", "clap_complete_nushell", @@ -1414,11 +1469,11 @@ dependencies = [ [[package]] name = "clap_complete_fig" -version = "4.3.0" +version = "4.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c73f19beec3b698ecc59d023cf373943f0ff405237ed0d7c6df118fb554334b" +checksum = "29bdbe21a263b628f83fcbeac86a4416a1d588c7669dd41473bc4149e4e7d2f1" dependencies = [ - "clap 4.2.1", + "clap 4.4.6", "clap_complete", ] @@ -1428,15 +1483,15 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d02bc8b1a18ee47c4d2eec3fb5ac034dc68ebea6125b1509e9ccdffcddce66e" dependencies = [ - "clap 4.2.1", + "clap 4.4.6", "clap_complete", ] [[package]] name = "clap_derive" -version = "3.2.18" +version = "3.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea0c8bce528c4be4da13ea6fead8965e95b6073585a2f05204bd8f4119f82a65" +checksum = "ae6371b8bdc8b7d3959e9cf7b22d4435ef3e79e138688421ec654acf8c81b008" dependencies = [ "heck 0.4.1", "proc-macro-error", @@ -1447,14 +1502,14 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.2.0" +version = "4.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9644cd56d6b87dbe899ef8b053e331c0637664e9e21a33dfcdc36093f5c5c4" +checksum = "0862016ff20d69b84ef8247369fabf5c008a7417002411897d40ee1f4532b873" dependencies = [ "heck 0.4.1", "proc-macro2", "quote", - "syn 2.0.13", + "syn 2.0.37", ] [[package]] @@ -1468,9 +1523,9 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.4.1" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a2dd5a6fe8c6e3502f568a6353e5273bbb15193ad9a89e457b9970798efbea1" +checksum = "cd7cc57abe963c6d3b9d8be5b06ba7c8957a930305ca90304f24ef040aa6f961" [[package]] name = "clear_on_drop" @@ -1487,7 +1542,7 @@ version = "0.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" dependencies = [ - "bitflags", + "bitflags 1.3.2", ] [[package]] @@ -1547,6 +1602,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" +[[package]] +name = "colorchoice" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" + [[package]] name = "combine" version = "3.8.1" @@ -1560,32 +1621,17 @@ dependencies = [ "unreachable", ] -[[package]] -name = "concolor-override" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a855d4a1978dc52fb0536a04d384c2c0c1aa273597f08b77c8c4d3b2eec6037f" - -[[package]] -name = "concolor-query" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88d11d52c3d7ca2e6d0040212be9e4dbbcd78b6447f535b6b561f449427944cf" -dependencies = [ - "windows-sys 0.45.0", -] - [[package]] name = "console" -version = "0.15.5" +version = "0.15.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d79fbe8970a77e3e34151cc13d3b3e248aa0faaecb9f6091fa07ebefe5ad60" +checksum = "c926e00cc70edefdc64d3a5ff31cc65bb97a3460097762bd23afb4d8145fccf8" dependencies = [ "encode_unicode 0.3.6", "lazy_static", "libc", "unicode-width", - "windows-sys 0.42.0", + "windows-sys 0.45.0", ] [[package]] @@ -1600,18 +1646,18 @@ dependencies = [ [[package]] name = "const_format" -version = "0.2.30" +version = "0.2.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7309d9b4d3d2c0641e018d449232f2e28f1b22933c137f157d3dbc14228b8c0e" +checksum = "c990efc7a285731f9a4378d81aff2f0e85a2c8781a05ef0f8baa8dac54d0ff48" dependencies = [ "const_format_proc_macros", ] [[package]] name = "const_format_proc_macros" -version = "0.2.29" +version = "0.2.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f47bf7270cf70d370f8f98c1abb6d2d4cf60a6845d30e05bfb90c6568650" +checksum = "e026b6ce194a874cb9cf32cd5772d1ef9767cc8fcb5765948d74f37a9d8b2bf6" dependencies = [ "proc-macro2", "quote", @@ -1624,6 +1670,16 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" +[[package]] +name = "core-foundation" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "core-foundation-sys" version = "0.8.4" @@ -1632,9 +1688,9 @@ checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" [[package]] name = "cpufeatures" -version = "0.2.6" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "280a9f2d8b3a38871a3c8a46fb80db65e5e5ed97da80c4d08bf27fb63e35e181" +checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1" dependencies = [ "libc", ] @@ -1699,9 +1755,9 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.7" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf2b3e8478797446514c91ef04bafcb59faba183e621ad488df88983cc14128c" +checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" dependencies = [ "cfg-if 1.0.0", "crossbeam-utils", @@ -1720,33 +1776,33 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.14" +version = "0.9.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695" +checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" dependencies = [ "autocfg", "cfg-if 1.0.0", "crossbeam-utils", - "memoffset 0.8.0", + "memoffset 0.9.0", "scopeguard", ] [[package]] name = "crossbeam-utils" -version = "0.8.15" +version = "0.8.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b" +checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" dependencies = [ "cfg-if 1.0.0", ] [[package]] name = "crossterm" -version = "0.26.1" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a84cda67535339806297f1b331d6dd6320470d2a0fe65381e79ee9e156dd3d13" +checksum = "f476fe445d41c9e991fd07515a6f463074b782242ccf4a5b7b1d1012e70824df" dependencies = [ - "bitflags", + "bitflags 2.4.0", "crossterm_winapi", "libc", "mio", @@ -1758,9 +1814,9 @@ dependencies = [ [[package]] name = "crossterm_winapi" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ae1b35a484aa10e07fe0638d02301c5ad24de82d310ccbd2f3693da5f09bf1c" +checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b" dependencies = [ "winapi", ] @@ -1800,9 +1856,9 @@ checksum = "382ce8820a5bb815055d3553a610e8cb542b2d767bbacea99038afda96cd760d" [[package]] name = "csv" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b015497079b9a9d69c02ad25de6c0a6edef051ea6360a327d0bd05802ef64ad" +checksum = "626ae34994d3d8d668f4269922248239db4ae42d538b14c398b74a52208e8086" dependencies = [ "csv-core", "itoa", @@ -1840,12 +1896,12 @@ dependencies = [ [[package]] name = "ctrlc" -version = "3.2.5" +version = "3.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbcf33c2a618cbe41ee43ae6e9f2e48368cd9f9db2896f10167d8d762679f639" +checksum = "82e95fbd621905b854affdc67943b043a0fbb6ed7385fd5a25650d19a8a6cfdf" dependencies = [ - "nix 0.26.2", - "windows-sys 0.45.0", + "nix 0.27.1", + "windows-sys 0.48.0", ] [[package]] @@ -1895,71 +1951,51 @@ dependencies = [ ] [[package]] -name = "cxx" -version = "1.0.94" +name = "darling" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f61f1b6389c3fe1c316bf8a4dccc90a38208354b330925bce1f74a6c4756eb93" +checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" dependencies = [ - "cc", - "cxxbridge-flags", - "cxxbridge-macro", - "link-cplusplus", + "darling_core 0.14.4", + "darling_macro 0.14.4", ] [[package]] -name = "cxx-build" -version = "1.0.94" +name = "darling" +version = "0.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12cee708e8962df2aeb38f594aae5d827c022b6460ac71a7a3e2c3c2aae5a07b" +checksum = "0209d94da627ab5605dcccf08bb18afa5009cfbef48d8a8b7d7bdbc79be25c5e" dependencies = [ - "cc", - "codespan-reporting", - "once_cell", - "proc-macro2", - "quote", - "scratch", - "syn 2.0.13", + "darling_core 0.20.3", + "darling_macro 0.20.3", ] [[package]] -name = "cxxbridge-flags" -version = "1.0.94" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7944172ae7e4068c533afbb984114a56c46e9ccddda550499caa222902c7f7bb" - -[[package]] -name = "cxxbridge-macro" -version = "1.0.94" +name = "darling_core" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2345488264226bf682893e25de0769f3360aac9957980ec49361b083ddaa5bc5" +checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" dependencies = [ + "fnv", + "ident_case", "proc-macro2", "quote", - "syn 2.0.13", -] - -[[package]] -name = "darling" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" -dependencies = [ - "darling_core", - "darling_macro", + "strsim 0.10.0", + "syn 1.0.109", ] [[package]] name = "darling_core" -version = "0.14.4" +version = "0.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" +checksum = "177e3443818124b357d8e76f53be906d60937f0d3a90773a664fa63fa253e621" dependencies = [ "fnv", "ident_case", "proc-macro2", "quote", - "strsim", - "syn 1.0.109", + "strsim 0.10.0", + "syn 2.0.37", ] [[package]] @@ -1968,19 +2004,30 @@ version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" dependencies = [ - "darling_core", + "darling_core 0.14.4", "quote", "syn 1.0.109", ] +[[package]] +name = "darling_macro" +version = "0.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5" +dependencies = [ + "darling_core 0.20.3", + "quote", + "syn 2.0.37", +] + [[package]] name = "dashmap" -version = "5.5.0" +version = "5.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6943ae99c34386c84a470c499d3414f66502a41340aa895406e0d2e4a207b91d" +checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" dependencies = [ "cfg-if 1.0.0", - "hashbrown 0.14.0", + "hashbrown 0.14.1", "lock_api", "once_cell", "parking_lot_core 0.9.8", @@ -1988,9 +2035,9 @@ dependencies = [ [[package]] name = "data-encoding" -version = "2.3.3" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23d8666cb01533c39dde32bcbab8e227b4ed6679b2c925eba05feabea39508fb" +checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308" [[package]] name = "data-pile" @@ -2011,6 +2058,15 @@ dependencies = [ "byteorder", ] +[[package]] +name = "deranged" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2696e8a945f658fd14dc3b87242e6b80cd0f36ff04ea560fa39082368847946" +dependencies = [ + "serde", +] + [[package]] name = "dialoguer" version = "0.10.4" @@ -2029,10 +2085,11 @@ version = "1.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b28135ecf6b7d446b43e27e225622a038cc4e2930a1022f51cdb97ada19b8e4d" dependencies = [ - "bitflags", + "bitflags 1.3.2", "byteorder", "chrono", "diesel_derives", + "libsqlite3-sys", "pq-sys", "r2d2", "serde_json", @@ -2097,9 +2154,9 @@ dependencies = [ [[package]] name = "digest" -version = "0.10.6" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer 0.10.4", "crypto-common", @@ -2149,13 +2206,13 @@ dependencies = [ [[package]] name = "displaydoc" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bf95dc3f046b9da4f2d51833c0d3547d8564ef6910f5c1ed130306a75b92886" +checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.37", ] [[package]] @@ -2178,9 +2235,9 @@ checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" [[package]] name = "dyn-clone" -version = "1.0.11" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68b0cf012f1230e43cd00ebb729c6bb58707ecfa8ad08b52ef3a4ccd2697fc30" +checksum = "23d2f3407d9a573d666de4b5bdf10569d73ca9478087346697dcbae6244bfbcd" [[package]] name = "eccoxide" @@ -2242,9 +2299,9 @@ dependencies = [ [[package]] name = "either" -version = "1.8.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" [[package]] name = "encode_unicode" @@ -2260,9 +2317,9 @@ checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" [[package]] name = "encoding_rs" -version = "0.8.32" +version = "0.8.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394" +checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" dependencies = [ "cfg-if 1.0.0", ] @@ -2289,15 +2346,21 @@ dependencies = [ "regex", ] +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + [[package]] name = "errno" -version = "0.3.0" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50d6a0976c999d473fe89ad888d5a284e55366d9dc9038b1ba2aa15128c4afa0" +checksum = "add4f07d43996f76ef320709726a556a9d4f965d9410d8d0271132d2f8293480" dependencies = [ "errno-dragonfly", "libc", - "windows-sys 0.45.0", + "windows-sys 0.48.0", ] [[package]] @@ -2344,7 +2407,7 @@ dependencies = [ "chain-ser", "chain-time", "chain-vote", - "clap 4.2.1", + "clap 4.4.6", "futures", "futures-channel", "futures-util", @@ -2390,13 +2453,15 @@ dependencies = [ [[package]] name = "fake" -version = "2.5.0" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d68f517805463f3a896a9d29c1d6ff09d3579ded64a7201b4069f8f9c0d52fd" +checksum = "9af7b0c58ac9d03169e27f080616ce9f64004edca3d2ef4147a811c21b23b319" dependencies = [ "chrono", "http", "rand 0.8.5", + "unidecode", + "url-escape", ] [[package]] @@ -2416,12 +2481,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "1.9.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" -dependencies = [ - "instant", -] +checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" [[package]] name = "filedescriptor" @@ -2436,16 +2498,22 @@ dependencies = [ [[package]] name = "filetime" -version = "0.2.20" +version = "0.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a3de6e8d11b22ff9edc6d916f890800597d60f8b2da1caf2955c274638d6412" +checksum = "d4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0" dependencies = [ "cfg-if 1.0.0", "libc", - "redox_syscall 0.2.16", - "windows-sys 0.45.0", + "redox_syscall 0.3.5", + "windows-sys 0.48.0", ] +[[package]] +name = "finl_unicode" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fcfdc7a0362c9f4444381a9e697c79d435fe65b52a37466fc2c1184cee9edc6" + [[package]] name = "fixedbitset" version = "0.4.2" @@ -2454,12 +2522,12 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "flate2" -version = "1.0.25" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841" +checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010" dependencies = [ "crc32fast", - "miniz_oxide 0.6.2", + "miniz_oxide 0.7.1", ] [[package]] @@ -2479,9 +2547,9 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "form_urlencoded" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" +checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" dependencies = [ "percent-encoding", ] @@ -2535,6 +2603,12 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + [[package]] name = "futures" version = "0.3.28" @@ -2591,7 +2665,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ "proc-macro2", "quote", - "syn 2.0.13", + "syn 2.0.37", ] [[package]] @@ -2672,9 +2746,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.9" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4" +checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -2705,9 +2779,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.27.2" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad0a93d233ebf96623465aad4046a8d3aa4da22d4f4beba5388838c8a434bbb4" +checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" [[package]] name = "glob" @@ -2717,9 +2791,9 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" [[package]] name = "globset" -version = "0.4.10" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "029d74589adefde59de1a0c4f4732695c32805624aec7b68d91503d4dba79afc" +checksum = "759c97c1e17c55525b57192c06a267cda0ac5210b222d6b82189a2338fa1c13d" dependencies = [ "aho-corasick", "bstr", @@ -2734,7 +2808,7 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93e3af942408868f6934a7b85134a3230832b9977cf66125df2f9edcfce4ddcc" dependencies = [ - "bitflags", + "bitflags 1.3.2", "ignore", "walkdir", ] @@ -2843,9 +2917,9 @@ checksum = "8995bd73dd9ff926fdfe2b146e3e571d4b488488844561c9628cf7a736d973de" [[package]] name = "h2" -version = "0.3.16" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5be7b54589b581f624f566bf5d8eb2bab1db736c51528720b6bd36b96b55924d" +checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833" dependencies = [ "bytes", "fnv", @@ -2853,10 +2927,10 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap", + "indexmap 1.9.3", "slab", "tokio", - "tokio-util 0.7.7", + "tokio-util 0.7.9", "tracing", ] @@ -2895,17 +2969,21 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.14.0" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" +checksum = "7dfda62a12f55daeae5015f81b0baea145391cb4520f86c248fc615d72640d12" +dependencies = [ + "ahash 0.8.3", + "allocator-api2", +] [[package]] name = "hashlink" -version = "0.8.1" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69fe1fcf8b4278d860ad0548329f892a3631fb63f82574df68275f34cdbe0ffa" +checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7" dependencies = [ - "hashbrown 0.12.3", + "hashbrown 0.14.1", ] [[package]] @@ -2928,12 +3006,11 @@ dependencies = [ [[package]] name = "headers" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3e372db8e5c0d213e0cd0b9be18be2aca3d44cf2fe30a9d46a65581cd454584" +checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270" dependencies = [ - "base64 0.13.1", - "bitflags", + "base64 0.21.4", "bytes", "headers-core", "http", @@ -2977,18 +3054,9 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" -dependencies = [ - "libc", -] - -[[package]] -name = "hermit-abi" -version = "0.3.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286" +checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" [[package]] name = "hersir" @@ -3000,7 +3068,7 @@ dependencies = [ "chain-crypto", "chain-impl-mockchain", "chain-vote", - "clap 4.2.1", + "clap 4.4.6", "ctrlc", "custom_debug", "hex", @@ -3051,7 +3119,16 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", +] + +[[package]] +name = "home" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" +dependencies = [ + "windows-sys 0.48.0", ] [[package]] @@ -3089,9 +3166,9 @@ dependencies = [ [[package]] name = "http-range-header" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bfe8eed0a9285ef776bb792479ea3834e8b94e13d615c2f66d03dd50a435a29" +checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f" [[package]] name = "http-zipkin" @@ -3111,9 +3188,9 @@ checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" [[package]] name = "httpdate" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "humantime" @@ -3123,9 +3200,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.25" +version = "0.14.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc5e554ff619822309ffd57d8734d77cd5ce6238bc956f037ea06c58238c9899" +checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" dependencies = [ "bytes", "futures-channel", @@ -3147,15 +3224,16 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.23.2" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1788965e61b367cd03a62950836d5cd41560c3577d90e40e0819373194d1661c" +checksum = "8d78e1e73ec14cf7375674f74d7dde185c8206fd9dea6fb6295e8a98098aaa97" dependencies = [ + "futures-util", "http", "hyper", - "rustls", + "rustls 0.21.7", "tokio", - "tokio-rustls", + "tokio-rustls 0.24.1", ] [[package]] @@ -3172,9 +3250,9 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.56" +version = "0.1.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0722cd7114b7de04316e7ea5456a0bbb20e4adb46fd27a3697adb812cff0f37c" +checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -3186,12 +3264,11 @@ dependencies = [ [[package]] name = "iana-time-zone-haiku" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" dependencies = [ - "cxx", - "cxx-build", + "cc", ] [[package]] @@ -3209,7 +3286,7 @@ dependencies = [ "chain-time", "chain-vote", "chrono", - "clap 4.2.1", + "clap 4.4.6", "cocoon", "console", "cryptoxide 0.4.4", @@ -3269,9 +3346,9 @@ dependencies = [ [[package]] name = "idna" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" +checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" dependencies = [ "unicode-bidi", "unicode-normalization", @@ -3342,6 +3419,16 @@ dependencies = [ "serde", ] +[[package]] +name = "indexmap" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8adf3ddd720272c6ea8bf59463c04e0f93d0bbf7c5439b691bca2987e0270897" +dependencies = [ + "equivalent", + "hashbrown 0.14.1", +] + [[package]] name = "indicatif" version = "0.15.0" @@ -3360,7 +3447,7 @@ version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff" dependencies = [ - "bitflags", + "bitflags 1.3.2", "inotify-sys", "libc", ] @@ -3385,9 +3472,9 @@ dependencies = [ [[package]] name = "insta" -version = "1.29.0" +version = "1.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a28d25139df397cbca21408bb742cf6837e04cdbebf1b07b760caf971d6a972" +checksum = "1aa511b2e298cd49b1856746f6bb73e17036bcd66b25f5e92cdcdbec9bd75686" dependencies = [ "console", "lazy_static", @@ -3412,7 +3499,7 @@ version = "0.1.0" dependencies = [ "assert_cmd", "assert_fs", - "base64 0.21.0", + "base64 0.21.4", "catalyst-toolbox", "cfg-if 1.0.0", "chain-addr", @@ -3454,44 +3541,41 @@ dependencies = [ ] [[package]] -name = "io-lifetimes" -version = "1.0.10" +name = "ipconfig" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c66c74d2ae7e79a5a8f7ac924adbe38ee42a859c6539ad869eb51f0b52dc220" +checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" dependencies = [ - "hermit-abi 0.3.1", - "libc", + "socket2 0.5.4", + "widestring", "windows-sys 0.48.0", + "winreg", ] [[package]] -name = "ipconfig" -version = "0.3.1" +name = "ipnet" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd302af1b90f2463a98fa5ad469fc212c8e3175a41c3068601bfa2727591c5be" -dependencies = [ - "socket2 0.4.9", - "widestring", - "winapi", - "winreg", -] +checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6" [[package]] -name = "ipnet" -version = "2.7.2" +name = "is-terminal" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12b6ee2129af8d4fb011108c73d99a1b83a85977f23b82460c0ae2e25bb4b57f" +checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" +dependencies = [ + "hermit-abi 0.3.3", + "rustix", + "windows-sys 0.48.0", +] [[package]] -name = "is-terminal" -version = "0.4.6" +name = "itertools" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "256017f749ab3117e93acb91063009e1f1bb56d03965b14c2c8df4eb02c524d8" +checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b" dependencies = [ - "hermit-abi 0.3.1", - "io-lifetimes", - "rustix", - "windows-sys 0.45.0", + "either", ] [[package]] @@ -3514,9 +3598,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.6" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" +checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" [[package]] name = "jcli" @@ -3533,7 +3617,7 @@ dependencies = [ "chain-impl-mockchain", "chain-time", "chain-vote", - "clap 4.2.1", + "clap 4.4.6", "clap_complete", "ed25519-bip32 0.4.1", "gtmpl", @@ -3563,7 +3647,7 @@ checksum = "10bbdf445513bbe53f4666218b7057d265c76fa0b30475e121a6bf05dbaacaae" dependencies = [ "chrono", "cron", - "uuid 1.3.1", + "uuid 1.4.1", ] [[package]] @@ -3592,7 +3676,7 @@ dependencies = [ "chain-storage", "chain-time", "chain-vote", - "clap 4.2.1", + "clap 4.4.6", "criterion", "enum-as-inner", "futures", @@ -3626,7 +3710,7 @@ dependencies = [ "serde_with", "serde_yaml", "thiserror", - "time 0.3.20", + "time", "tokio", "tokio-stream", "tokio-util 0.6.10", @@ -3661,7 +3745,7 @@ dependencies = [ "chain-storage", "chain-time", "chain-vote", - "clap 4.2.1", + "clap 4.4.6", "custom_debug", "flate2", "fs_extra", @@ -3692,7 +3776,7 @@ dependencies = [ "serde_derive", "serde_json", "serde_yaml", - "strum", + "strum 0.24.1", "sysinfo", "tar", "tempfile", @@ -3790,7 +3874,7 @@ dependencies = [ "serde_with", "serde_yaml", "thiserror", - "time 0.3.20", + "time", "typed-bytes", ] @@ -3840,7 +3924,7 @@ dependencies = [ "sysinfo", "tar", "thiserror", - "time 0.3.20", + "time", "tokio", "warp", "zip", @@ -3857,9 +3941,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.60" +version = "0.3.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" +checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" dependencies = [ "wasm-bindgen", ] @@ -3877,7 +3961,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8066473754794e7784c61808d25d60dfb68e1025a625792a6a1bc680d1ab700a" dependencies = [ "anyhow", - "arrayvec 0.7.2", + "arrayvec 0.7.4", "async-trait", "beef", "futures-channel", @@ -3942,9 +4026,9 @@ dependencies = [ [[package]] name = "kqueue" -version = "1.0.7" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c8fc60ba15bf51257aa9807a48a61013db043fcf3a78cb0d916e8e396dcad98" +checksum = "7447f1ca1b7b563588a205fe93dea8df60fd981423a768bc1c0ded35ed147d0c" dependencies = [ "kqueue-sys", "libc", @@ -3952,11 +4036,11 @@ dependencies = [ [[package]] name = "kqueue-sys" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8367585489f01bc55dd27404dcf56b95e6da061a256a666ab23be9ba96a2e587" +checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b" dependencies = [ - "bitflags", + "bitflags 1.3.2", "libc", ] @@ -4038,15 +4122,15 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.141" +version = "0.2.148" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3304a64d199bb964be99741b7a14d26972741915b3649639149b2479bb46f4b5" +checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b" [[package]] name = "libm" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "348108ab3fba42ec82ff6e9564fc4ca0247bdccdc68dd8af9764bbc79c3c8ffb" +checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4" [[package]] name = "libmath" @@ -4058,12 +4142,14 @@ dependencies = [ ] [[package]] -name = "link-cplusplus" -version = "1.0.8" +name = "libsqlite3-sys" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5" +checksum = "0bb2c84bff2c4d43bf6866c786098f7b6a17714b0cbda3abc6323a6b7571a045" dependencies = [ "cc", + "pkg-config", + "vcpkg", ] [[package]] @@ -4074,9 +4160,9 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" [[package]] name = "linux-raw-sys" -version = "0.3.1" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d59d8c75012853d2e872fb56bc8a2e53718e2cafe1a4c823143141c6d90c322f" +checksum = "3852614a3bd9ca9804678ba6be5e3b8ce76dfc902cae004e3e0c44051b6e88db" [[package]] name = "local-ip-address" @@ -4102,11 +4188,10 @@ dependencies = [ [[package]] name = "log" -version = "0.4.17" +version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" dependencies = [ - "cfg-if 1.0.0", "serde", ] @@ -4118,7 +4203,7 @@ dependencies = [ "chain-core", "chain-crypto", "chain-impl-mockchain", - "clap 4.2.1", + "clap 4.4.6", "custom_debug", "jormungandr-automation", "jormungandr-lib", @@ -4198,7 +4283,7 @@ dependencies = [ "bech32 0.8.1", "cardano-serialization-lib", "chain-impl-mockchain", - "clap 4.2.1", + "clap 4.4.6", "color-eyre", "futures", "futures-util", @@ -4223,7 +4308,7 @@ dependencies = [ "tokio", "tracing", "tracing-subscriber", - "uuid 1.3.1", + "uuid 1.4.1", "vit-servicing-station-lib", "vit-servicing-station-tests", "voting_tools_rs", @@ -4242,7 +4327,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" dependencies = [ - "regex-automata", + "regex-automata 0.1.10", ] [[package]] @@ -4253,24 +4338,25 @@ checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" [[package]] name = "matchit" -version = "0.7.0" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b87248edafb776e59e6ee64a79086f65890d3510f2c656c000bf2a7e8a0aea40" +checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" [[package]] name = "md-5" -version = "0.10.5" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6365506850d44bff6e2fbcb5176cf63650e48bd45ef2fe2665ae1570e0f4b9ca" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" dependencies = [ - "digest 0.10.6", + "cfg-if 1.0.0", + "digest 0.10.7", ] [[package]] name = "memchr" -version = "2.5.0" +version = "2.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" [[package]] name = "memmap2" @@ -4292,9 +4378,9 @@ dependencies = [ [[package]] name = "memoffset" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1" +checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" dependencies = [ "autocfg", ] @@ -4316,7 +4402,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eb2da0a53ecf563b398350e3c1834ad27dd050eb47977472f2e654ccb39ff75f" dependencies = [ "hyper", - "indexmap", + "indexmap 1.9.3", "ipnet", "metrics", "metrics-util", @@ -4440,23 +4526,23 @@ dependencies = [ [[package]] name = "miniz_oxide" -version = "0.6.2" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa" +checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" dependencies = [ "adler", ] [[package]] name = "mio" -version = "0.8.6" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9" +checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" dependencies = [ "libc", "log", "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.45.0", + "windows-sys 0.48.0", ] [[package]] @@ -4471,7 +4557,7 @@ dependencies = [ "chain-storage", "chain-time", "chain-vote", - "clap 4.2.1", + "clap 4.4.6", "indicatif", "jormungandr-automation", "jormungandr-lib", @@ -4534,20 +4620,6 @@ version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" -[[package]] -name = "multiparty" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed1ec6589a6d4a1e0b33b4c0a3f6ee96dfba88ebdb3da51403fd7cf0a24a4b04" -dependencies = [ - "bytes", - "futures-core", - "httparse", - "memchr", - "pin-project-lite", - "try-lock", -] - [[package]] name = "neli" version = "0.5.3" @@ -4564,7 +4636,7 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0faa3f4ad230fd2bf2a5dad71476ecbaeaed904b3c7e7e5b1f266c415c03761f" dependencies = [ - "bitflags", + "bitflags 1.3.2", "byteorder", "libc", "num-derive", @@ -4579,7 +4651,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f346ff70e7dbfd675fe90590b92d59ef2de15a8779ae305ebcbfd3f0caf59be4" dependencies = [ "autocfg", - "bitflags", + "bitflags 1.3.2", "cfg-if 1.0.0", "libc", "memoffset 0.6.5", @@ -4588,14 +4660,13 @@ dependencies = [ [[package]] name = "nix" -version = "0.26.2" +version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a" +checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" dependencies = [ - "bitflags", + "bitflags 2.4.0", "cfg-if 1.0.0", "libc", - "static_assertions", ] [[package]] @@ -4643,11 +4714,11 @@ checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" [[package]] name = "notify" -version = "5.1.0" +version = "5.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58ea850aa68a06e48fdb069c0ec44d0d64c8dbffa49bf3b6f7f0a901fdea1ba9" +checksum = "729f63e1ca555a43fe3efa4f3efdf4801c479da85b432242a7b726f353c88486" dependencies = [ - "bitflags", + "bitflags 1.3.2", "crossbeam-channel", "filetime", "fsevent-sys", @@ -4656,14 +4727,14 @@ dependencies = [ "libc", "mio", "walkdir", - "windows-sys 0.42.0", + "windows-sys 0.45.0", ] [[package]] name = "ntapi" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc51db7b362b205941f71232e56c625156eb9a929f8cf74a428fd5bc094a4afc" +checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4" dependencies = [ "winapi", ] @@ -4680,9 +4751,9 @@ dependencies = [ [[package]] name = "num" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43db66d1170d347f9a065114077f7dccb00c1b9478c89384490a3425279a4606" +checksum = "b05180d69e3da0e530ba2a1dae5110317e49e3b7f3d41be227dc5f92e49ee7af" dependencies = [ "num-bigint", "num-complex", @@ -4694,9 +4765,9 @@ dependencies = [ [[package]] name = "num-bigint" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f" +checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" dependencies = [ "autocfg", "num-integer", @@ -4706,9 +4777,9 @@ dependencies = [ [[package]] name = "num-complex" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e0d21255c828d6f128a1e41534206671e8c3ea0c62f32291e808dc82cff17d" +checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214" dependencies = [ "num-traits", "serde", @@ -4772,9 +4843,9 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2" dependencies = [ "autocfg", "libm", @@ -4782,11 +4853,11 @@ dependencies = [ [[package]] name = "num_cpus" -version = "1.15.0" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "hermit-abi 0.2.6", + "hermit-abi 0.3.3", "libc", ] @@ -4807,9 +4878,9 @@ checksum = "17b02fc0ff9a9e4b35b3342880f48e896ebf69f2967921fe8646bf5b7125956a" [[package]] name = "object" -version = "0.30.3" +version = "0.32.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea86265d3d3dcb6a27fc51bd29a4bf387fae9d2986b823079d4986af253eb439" +checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" dependencies = [ "memchr", ] @@ -4854,7 +4925,7 @@ dependencies = [ "http", "opentelemetry", "opentelemetry-proto", - "prost 0.11.8", + "prost 0.11.9", "thiserror", "tokio", "tonic 0.8.3", @@ -4869,7 +4940,7 @@ dependencies = [ "futures", "futures-util", "opentelemetry", - "prost 0.11.8", + "prost 0.11.9", "tonic 0.8.3", "tonic-build 0.8.4", ] @@ -4892,7 +4963,7 @@ dependencies = [ "fnv", "futures-channel", "futures-util", - "indexmap", + "indexmap 1.9.3", "js-sys", "once_cell", "pin-project-lite", @@ -4933,9 +5004,9 @@ dependencies = [ [[package]] name = "os_str_bytes" -version = "6.5.0" +version = "6.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ceedf44fb00f2d1984b0bc98102627ce622e083e49a5bacdb3e514fa4238e267" +checksum = "4d5d9eb14b174ee9aa2ef96dc2b94637a2d4b6e7cb873c7e171f0c20c6cf3eac" [[package]] name = "output_vt100" @@ -4972,7 +5043,7 @@ dependencies = [ "percent-encoding", "serde", "static_assertions", - "unsigned-varint 0.7.1", + "unsigned-varint 0.7.2", "url", ] @@ -5021,7 +5092,7 @@ dependencies = [ "libc", "redox_syscall 0.3.5", "smallvec", - "windows-targets 0.48.0", + "windows-targets 0.48.5", ] [[package]] @@ -5083,44 +5154,45 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", "hmac 0.12.1", "password-hash", - "sha2 0.10.6", + "sha2 0.10.8", ] [[package]] name = "percent-encoding" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" +checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" [[package]] name = "pest" -version = "2.5.7" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b1403e8401ad5dedea73c626b99758535b342502f8d1e361f4a2dd952749122" +checksum = "c022f1e7b65d6a24c0dbbd5fb344c66881bc01f3e5ae74a1c8100f2f985d98a4" dependencies = [ + "memchr", "thiserror", "ucd-trie", ] [[package]] name = "pest_meta" -version = "2.5.7" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6733073c7cff3d8459fda0e42f13a047870242aed8b509fe98000928975f359e" +checksum = "1df74e9e7ec4053ceb980e7c0c8bd3594e977fde1af91daba9c928e8e8c6708d" dependencies = [ "once_cell", "pest", - "sha2 0.10.6", + "sha2 0.10.8", ] [[package]] name = "pest_vm" -version = "2.5.7" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b08a824e4c0fd842e2906becbf538359a2ff159bbbeeaadb912ca7b16fa0b8ce" +checksum = "e42d84ab5b383273ab842bdc50249b5fea1cec928bcf3338e7749113f25bab7a" dependencies = [ "pest", "pest_meta", @@ -5128,12 +5200,12 @@ dependencies = [ [[package]] name = "petgraph" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dd7d28ee937e54fe3080c91faa1c3a46c06de6252988a7f4592ba2310ef22a4" +checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" dependencies = [ "fixedbitset", - "indexmap", + "indexmap 2.0.2", ] [[package]] @@ -5148,47 +5220,47 @@ dependencies = [ [[package]] name = "phf" -version = "0.11.1" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "928c6535de93548188ef63bb7c4036bd415cd8f36ad25af44b9789b2ee72a48c" +checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" dependencies = [ "phf_shared", ] [[package]] name = "phf_shared" -version = "0.11.1" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1fb5f6f826b772a8d4c0394209441e7d37cbbb967ae9c7e0e8134365c9ee676" +checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" dependencies = [ - "siphasher", + "siphasher 0.3.11", ] [[package]] name = "pin-project" -version = "1.0.12" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc" +checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.0.12" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" +checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.37", ] [[package]] name = "pin-project-lite" -version = "0.2.9" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" [[package]] name = "pin-utils" @@ -5198,9 +5270,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.26" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" +checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" [[package]] name = "plain" @@ -5216,9 +5288,9 @@ checksum = "989d43012e2ca1c4a02507c67282691a0a3207f9dc67cec596b43fe925b3d325" [[package]] name = "plotters" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2538b639e642295546c50fcd545198c9d64ee2a38620a628724a3b266d5fbf97" +checksum = "d2c224ba00d7cadd4d5c660deaf2098e5e80e07846537c51f9cfa4be50c1fd45" dependencies = [ "num-traits", "plotters-backend", @@ -5229,15 +5301,15 @@ dependencies = [ [[package]] name = "plotters-backend" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "193228616381fecdc1224c62e96946dfbc73ff4384fba576e052ff8c1bea8142" +checksum = "9e76628b4d3a7581389a35d5b6e2139607ad7c75b17aed325f210aa91f4a9609" [[package]] name = "plotters-svg" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9a81d2759aae1dae668f783c308bc5c8ebd191ff4184aaa1b37f65a6ae5a56f" +checksum = "38f6d39893cca0701371e3c27294f09797214b86f1fb951b89ade8ec04e2abab" dependencies = [ "plotters-backend", ] @@ -5248,7 +5320,7 @@ version = "0.16.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c3287920cb847dee3de33d301c463fba14dda99db24214ddf93f83d3021f4c6" dependencies = [ - "bitflags", + "bitflags 1.3.2", "crc32fast", "deflate", "miniz_oxide 0.3.7", @@ -5274,7 +5346,7 @@ checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" dependencies = [ "cpufeatures", "opaque-debug", - "universal-hash 0.5.0", + "universal-hash 0.5.1", ] [[package]] @@ -5291,9 +5363,9 @@ dependencies = [ [[package]] name = "postgres" -version = "0.19.5" +version = "0.19.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bed5017bc2ff49649c0075d0d7a9d676933c1292480c1d137776fb205b5cd18" +checksum = "7915b33ed60abc46040cbcaa25ffa1c7ec240668e0477c4f3070786f5916d451" dependencies = [ "bytes", "fallible-iterator", @@ -5305,11 +5377,11 @@ dependencies = [ [[package]] name = "postgres-protocol" -version = "0.6.5" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b7fa9f396f51dffd61546fd8573ee20592287996568e6175ceb0f8699ad75d" +checksum = "49b6c5ef183cd3ab4ba005f1ca64c21e8bd97ce4699cfea9e8d9a2c4958ca520" dependencies = [ - "base64 0.21.0", + "base64 0.21.4", "byteorder", "bytes", "fallible-iterator", @@ -5317,15 +5389,15 @@ dependencies = [ "md-5", "memchr", "rand 0.8.5", - "sha2 0.10.6", + "sha2 0.10.8", "stringprep", ] [[package]] name = "postgres-types" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f028f05971fe20f512bcc679e2c10227e57809a3af86a7606304435bc8896cd6" +checksum = "8d2234cdee9408b523530a9b6d2d6b373d1db34f6a8e51dc03ded1828d7fb67c" dependencies = [ "bytes", "chrono", @@ -5343,9 +5415,9 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "pq-sys" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b845d6d8ec554f972a2c5298aad68953fd64e7441e846075450b44656a016d1" +checksum = "31c0052426df997c0cbd30789eb44ca097e3541717a7b8fa36b1c464ee7edebd" dependencies = [ "vcpkg", ] @@ -5366,13 +5438,13 @@ dependencies = [ [[package]] name = "predicates" -version = "3.0.2" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c575290b64d24745b6c57a12a31465f0a66f3a4799686a6921526a33b0797965" +checksum = "6dfc28575c2e3f19cb3c73b93af36460ae898d426eba6fc15b9bd2a5220758a0" dependencies = [ "anstyle", "difflib", - "itertools 0.10.5", + "itertools 0.11.0", "predicates-core", ] @@ -5418,13 +5490,11 @@ dependencies = [ [[package]] name = "pretty_assertions" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a25e9bcb20aa780fd0bb16b72403a9064d6b3f22f026946029acb941a50af755" +checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66" dependencies = [ - "ctor", "diff", - "output_vt100", "yansi", ] @@ -5458,7 +5528,7 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785" dependencies = [ - "toml", + "toml 0.5.11", ] [[package]] @@ -5527,20 +5597,19 @@ dependencies = [ [[package]] name = "proptest" -version = "1.1.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29f1b898011ce9595050a68e60f90bad083ff2987a695a42357134c8381fba70" +checksum = "7c003ac8c77cb07bb74f5f198bce836a689bcd5a42574612bf14d17bfd08c20e" dependencies = [ "bit-set", - "bitflags", - "byteorder", + "bit-vec", + "bitflags 2.4.0", "lazy_static", "num-traits", - "quick-error 2.0.1", "rand 0.8.5", "rand_chacha 0.3.1", "rand_xorshift", - "regex-syntax 0.6.29", + "regex-syntax 0.7.5", "rusty-fork", "tempfile", "unarray", @@ -5558,12 +5627,12 @@ dependencies = [ [[package]] name = "prost" -version = "0.11.8" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e48e50df39172a3e7eb17e14642445da64996989bc212b583015435d39a58537" +checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" dependencies = [ "bytes", - "prost-derive 0.11.8", + "prost-derive 0.11.9", ] [[package]] @@ -5588,9 +5657,9 @@ dependencies = [ [[package]] name = "prost-build" -version = "0.11.8" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c828f93f5ca4826f97fedcbd3f9a536c16b12cff3dbbb4a007f932bbad95b12" +checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270" dependencies = [ "bytes", "heck 0.4.1", @@ -5600,8 +5669,8 @@ dependencies = [ "multimap", "petgraph", "prettyplease", - "prost 0.11.8", - "prost-types 0.11.8", + "prost 0.11.9", + "prost-types 0.11.9", "regex", "syn 1.0.109", "tempfile", @@ -5623,9 +5692,9 @@ dependencies = [ [[package]] name = "prost-derive" -version = "0.11.8" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ea9b0f8cbe5e15a8a042d030bd96668db28ecb567ec37d691971ff5731d2b1b" +checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" dependencies = [ "anyhow", "itertools 0.10.5", @@ -5646,11 +5715,11 @@ dependencies = [ [[package]] name = "prost-types" -version = "0.11.8" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "379119666929a1afd7a043aa6cf96fa67a6dce9af60c88095a4686dbce4c9c88" +checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13" dependencies = [ - "prost 0.11.8", + "prost 0.11.9", ] [[package]] @@ -5700,7 +5769,7 @@ dependencies = [ "mach", "once_cell", "raw-cpuid", - "wasi 0.10.0+wasi-snapshot-preview1", + "wasi 0.10.2+wasi-snapshot-preview1", "web-sys", "winapi", ] @@ -5711,12 +5780,6 @@ version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" -[[package]] -name = "quick-error" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" - [[package]] name = "quickcheck" version = "0.9.2" @@ -5753,9 +5816,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.26" +version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" dependencies = [ "proc-macro2", ] @@ -5771,6 +5834,12 @@ dependencies = [ "scheduled-thread-pool", ] +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + [[package]] name = "rand" version = "0.3.23" @@ -5868,7 +5937,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.9", + "getrandom 0.2.10", ] [[package]] @@ -5910,14 +5979,14 @@ version = "10.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c297679cb867470fa8c9f67dbba74a78d78e3e98d7cf2b08d6d71540f797332" dependencies = [ - "bitflags", + "bitflags 1.3.2", ] [[package]] name = "rayon" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b" +checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" dependencies = [ "either", "rayon-core", @@ -5925,14 +5994,12 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d" +checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" dependencies = [ - "crossbeam-channel", "crossbeam-deque", "crossbeam-utils", - "num_cpus", ] [[package]] @@ -5950,7 +6017,7 @@ version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" dependencies = [ - "bitflags", + "bitflags 1.3.2", ] [[package]] @@ -5959,7 +6026,7 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" dependencies = [ - "bitflags", + "bitflags 1.3.2", ] [[package]] @@ -5968,16 +6035,16 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" dependencies = [ - "getrandom 0.2.9", + "getrandom 0.2.10", "redox_syscall 0.2.16", "thiserror", ] [[package]] name = "refinery" -version = "0.8.7" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a65acc0e1f0e7c80480aacb5087e3509b85806985f54dd7dfeafee4c3128943a" +checksum = "529664dbccc0a296947615c997a857912d72d1c44be1fafb7bae54ecfa7a8c24" dependencies = [ "refinery-core", "refinery-macros", @@ -5985,9 +6052,9 @@ dependencies = [ [[package]] name = "refinery-core" -version = "0.8.7" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d3af3c282b6dae2e9952b28a637ee8148ee34ef6edfd0415df6de2799d4fc3b" +checksum = "e895cb870cf06e92318cbbeb701f274d022d5ca87a16fa8244e291cd035ef954" dependencies = [ "async-trait", "cfg-if 1.0.0", @@ -5996,36 +6063,37 @@ dependencies = [ "postgres", "regex", "serde", - "siphasher", + "siphasher 1.0.0", "thiserror", - "time 0.3.20", - "toml", + "time", + "toml 0.7.8", "url", "walkdir", ] [[package]] name = "refinery-macros" -version = "0.8.7" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6feea59ecc7e3ebf27244271063f3dfb59226629e2661f535c771fcb358ae9" +checksum = "123e8b80f8010c3ae38330c81e76938fc7adf6cdbfbaad20295bb8c22718b4f1" dependencies = [ "proc-macro2", "quote", "refinery-core", "regex", - "syn 1.0.109", + "syn 2.0.37", ] [[package]] name = "regex" -version = "1.7.3" +version = "1.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b1f693b24f6ac912f4893ef08244d70b6067480d2f1a46e950c9691e6749d1d" +checksum = "ebee201405406dbf528b8b672104ae6d6d63e6d118cb10e4d51abbc7b58044ff" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.6.29", + "regex-automata 0.3.9", + "regex-syntax 0.7.5", ] [[package]] @@ -6037,6 +6105,17 @@ dependencies = [ "regex-syntax 0.6.29", ] +[[package]] +name = "regex-automata" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59b23e92ee4318893fa3fe3e6fb365258efbfe6ac6ab30f090cdcbb7aa37efa9" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.7.5", +] + [[package]] name = "regex-syntax" version = "0.6.29" @@ -6045,9 +6124,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2" +checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" [[package]] name = "remove_dir_all" @@ -6060,20 +6139,20 @@ dependencies = [ [[package]] name = "rend" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "581008d2099240d37fb08d77ad713bcaec2c4d89d50b5b21a8bb1996bbab68ab" +checksum = "a2571463863a6bd50c32f94402933f03457a3fbaf697a707c5be741e459f08fd" dependencies = [ "bytecheck", ] [[package]] name = "reqwest" -version = "0.11.16" +version = "0.11.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27b71749df584b7f4cac2c426c127a7c785a5106cc98f7a8feb044115f0fa254" +checksum = "78fdbab6a7e1d7b13cc8ff10197f47986b41c639300cc3c8158cac7847c9bbef" dependencies = [ - "base64 0.21.0", + "base64 0.21.4", "bytes", "encoding_rs", "futures-core", @@ -6090,13 +6169,14 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project-lite", - "rustls", + "rustls 0.21.7", "rustls-pemfile", "serde", "serde_json", "serde_urlencoded", + "system-configuration", "tokio", - "tokio-rustls", + "tokio-rustls 0.24.1", "tower-service", "url", "wasm-bindgen", @@ -6113,7 +6193,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00" dependencies = [ "hostname", - "quick-error 1.2.3", + "quick-error", ] [[package]] @@ -6133,23 +6213,26 @@ dependencies = [ [[package]] name = "rkyv" -version = "0.7.41" +version = "0.7.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21499ed91807f07ae081880aabb2ccc0235e9d88011867d984525e9a4c3cfa3e" +checksum = "0200c8230b013893c0b2d6213d6ec64ed2b9be2e0e016682b7224ff82cff5c58" dependencies = [ + "bitvec", "bytecheck", "hashbrown 0.12.3", "ptr_meta", "rend", "rkyv_derive", "seahash", + "tinyvec", + "uuid 1.4.1", ] [[package]] name = "rkyv_derive" -version = "0.7.41" +version = "0.7.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac1c672430eb41556291981f45ca900a0239ad007242d1cb4b4167af842db666" +checksum = "b2e06b915b5c230a17d7a736d1e2e63ee753c256a8614ef3f5147b13a4f5541d" dependencies = [ "proc-macro2", "quote", @@ -6183,14 +6266,12 @@ dependencies = [ [[package]] name = "rust_decimal" -version = "1.29.1" +version = "1.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26bd36b60561ee1fb5ec2817f198b6fd09fa571c897a5e86d1487cfc2b096dfc" +checksum = "a4c4216490d5a413bc6d10fa4742bd7d4955941d062c0ef873141d6b0e7b30fd" dependencies = [ - "arrayvec 0.7.2", + "arrayvec 0.7.4", "borsh", - "bytecheck", - "byteorder", "bytes", "num-traits", "postgres", @@ -6203,9 +6284,9 @@ dependencies = [ [[package]] name = "rust_decimal_macros" -version = "1.29.1" +version = "1.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e773fd3da1ed42472fdf3cfdb4972948a555bc3d73f5e0bdb99d17e7b54c687" +checksum = "86444b802de0b10ac5e563b5ddb43b541b9705de4e01a50e82194d2b183c1835" dependencies = [ "quote", "rust_decimal", @@ -6213,9 +6294,9 @@ dependencies = [ [[package]] name = "rustc-demangle" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4a36c42d1873f9a77c53bde094f9664d9891bc604a45b4798fd2c389ed12e5b" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" [[package]] name = "rustc-hash" @@ -6234,23 +6315,22 @@ dependencies = [ [[package]] name = "rustix" -version = "0.37.7" +version = "0.38.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2aae838e49b3d63e9274e1c01833cc8139d3fec468c3b84688c628f44b1ae11d" +checksum = "d2f9da0cbd88f9f09e7814e388301c8414c51c62aa6ce1e4b5c551d49d96e531" dependencies = [ - "bitflags", + "bitflags 2.4.0", "errno", - "io-lifetimes", "libc", "linux-raw-sys", - "windows-sys 0.45.0", + "windows-sys 0.48.0", ] [[package]] name = "rustls" -version = "0.20.8" +version = "0.20.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f" +checksum = "1b80e3dec595989ea8510028f30c408a4630db12c9cbb8de34203b89d6577e99" dependencies = [ "log", "ring", @@ -6258,20 +6338,42 @@ dependencies = [ "webpki", ] +[[package]] +name = "rustls" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd8d6c9f025a446bc4d18ad9632e69aec8f287aa84499ee335599fabd20c3fd8" +dependencies = [ + "log", + "ring", + "rustls-webpki", + "sct", +] + [[package]] name = "rustls-pemfile" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d194b56d58803a43635bdc398cd17e383d6f71f9182b9a192c127ca42494a59b" +checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2" dependencies = [ - "base64 0.21.0", + "base64 0.21.4", +] + +[[package]] +name = "rustls-webpki" +version = "0.101.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c7d5dece342910d9ba34d259310cae3e0154b873b35408b787b59bce53d34fe" +dependencies = [ + "ring", + "untrusted", ] [[package]] name = "rustversion" -version = "1.0.12" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f3208ce4d8448b3f3e7d168a73f5e0c43a61e32930de3bceeccedb388b6bf06" +checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" [[package]] name = "rusty-fork" @@ -6280,16 +6382,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" dependencies = [ "fnv", - "quick-error 1.2.3", + "quick-error", "tempfile", "wait-timeout", ] [[package]] name = "ryu" -version = "1.0.13" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" +checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" [[package]] name = "same-file" @@ -6314,7 +6416,7 @@ name = "scheduler-service-lib" version = "0.1.0" dependencies = [ "chrono", - "clap 4.2.1", + "clap 4.4.6", "futures", "jortestkit", "reqwest", @@ -6324,16 +6426,16 @@ dependencies = [ "thiserror", "tokio", "tracing", - "uuid 1.3.1", + "uuid 1.4.1", "walkdir", "warp", ] [[package]] name = "schemars" -version = "0.8.12" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02c613288622e5f0c3fdc5dbd4db1c5fbe752746b1d1a56a0630b78fd00de44f" +checksum = "1f7b0ce13155372a76ee2e1c5ffba1fe61ede73fbea5630d61eee6fac4929c0c" dependencies = [ "dyn-clone", "schemars_derive", @@ -6343,9 +6445,9 @@ dependencies = [ [[package]] name = "schemars_derive" -version = "0.8.12" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "109da1e6b197438deb6db99952990c7f959572794b80ff93707d55a232545e7c" +checksum = "e85e2a16b12bdb763244c69ab79363d71db2b4b918a2def53f80b02e0574b13c" dependencies = [ "proc-macro2", "quote", @@ -6367,15 +6469,9 @@ checksum = "1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8" [[package]] name = "scopeguard" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" - -[[package]] -name = "scratch" -version = "1.0.5" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1792db035ce95be60c3f8853017b3999209281c24e2ba5bc8e59bf97a0c590c1" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "scroll" @@ -6394,7 +6490,7 @@ checksum = "1db149f81d46d2deba7cd3c50772474707729550221e69588478ebf9ada425ae" dependencies = [ "proc-macro2", "quote", - "syn 2.0.13", + "syn 2.0.37", ] [[package]] @@ -6425,18 +6521,18 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.17" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed" +checksum = "ad977052201c6de01a8ef2aa3378c4bd23217a056337d1d6da40468d267a4fb0" dependencies = [ "serde", ] [[package]] name = "serde" -version = "1.0.164" +version = "1.0.188" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e8c8cf938e98f769bc164923b06dce91cea1751522f46f8466461af04c9027d" +checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e" dependencies = [ "serde_derive", ] @@ -6475,13 +6571,13 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.164" +version = "1.0.188" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9735b638ccc51c28bf6914d90a2e9725b377144fc612c49a611fddd1b631d68" +checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.13", + "syn 2.0.37", ] [[package]] @@ -6497,9 +6593,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.95" +version = "1.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d721eca97ac802aa7777b701877c8004d950fc142651367300d21c1cc0194744" +checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65" dependencies = [ "itoa", "ryu", @@ -6508,18 +6604,28 @@ dependencies = [ [[package]] name = "serde_path_to_error" -version = "0.1.9" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4beec8bce849d58d06238cb50db2e1c417cfeafa4c63f692b15c82b7c80f8335" +dependencies = [ + "itoa", + "serde", +] + +[[package]] +name = "serde_spanned" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b04f22b563c91331a10074bda3dd5492e3cc39d56bd557e91c0af42b6c7341" +checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186" dependencies = [ "serde", ] [[package]] name = "serde_test" -version = "1.0.159" +version = "1.0.176" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f259aa64e48efaf5a4fea11f97cacb109f7fc3ae9db7244cbb40c01c7faf42bc" +checksum = "5a2f49ace1498612d14f7e0b8245519584db8299541dfe31a06374a828d620ab" dependencies = [ "serde", ] @@ -6538,30 +6644,30 @@ dependencies = [ [[package]] name = "serde_with" -version = "2.3.1" +version = "2.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85456ffac572dc8826334164f2fb6fb40a7c766aebe195a2a21ee69ee2885ecf" +checksum = "07ff71d2c147a7b57362cead5e22f772cd52f6ab31cfcd9edcd7f6aeb2a0afbe" dependencies = [ "base64 0.13.1", "chrono", "hex", - "indexmap", + "indexmap 1.9.3", "serde", "serde_json", "serde_with_macros", - "time 0.3.20", + "time", ] [[package]] name = "serde_with_macros" -version = "2.3.1" +version = "2.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cbcd6104f8a4ab6af7f6be2a0da6be86b9de3c401f6e86bb856ab2af739232f" +checksum = "881b6f881b17d13214e5d494c939ebab463d01264ce1811e9d4ac3a882e7695f" dependencies = [ - "darling", + "darling 0.20.3", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.37", ] [[package]] @@ -6570,7 +6676,7 @@ version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b" dependencies = [ - "indexmap", + "indexmap 1.9.3", "ryu", "serde", "yaml-rust", @@ -6599,13 +6705,13 @@ dependencies = [ [[package]] name = "sha1" -version = "0.10.5" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ "cfg-if 1.0.0", "cpufeatures", - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -6623,20 +6729,20 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.6" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ "cfg-if 1.0.0", "cpufeatures", - "digest 0.10.6", + "digest 0.10.7", ] [[package]] name = "sharded-slab" -version = "0.1.4" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" +checksum = "c1b21f559e07218024e7e9f90f96f601825397de0e25420135f7f952453fed0b" dependencies = [ "lazy_static", ] @@ -6649,9 +6755,9 @@ checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde" [[package]] name = "signal-hook" -version = "0.3.15" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "732768f1176d21d09e076c23a93123d40bba92d50c4058da34d45c8de8e682b9" +checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" dependencies = [ "libc", "signal-hook-registry", @@ -6722,14 +6828,20 @@ checksum = "acee08041c5de3d5048c8b3f6f13fafb3026b24ba43c6a695a0c76179b844369" dependencies = [ "log", "termcolor", - "time 0.3.20", + "time", ] [[package]] name = "siphasher" -version = "0.3.10" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "siphasher" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" +checksum = "54ac45299ccbd390721be55b412d41931911f654fa99e2cb8bfb57184b2061fe" [[package]] name = "sketches-ddsketch" @@ -6739,9 +6851,9 @@ checksum = "04d2ecae5fcf33b122e2e6bd520a57ccf152d2dde3b38c71039df1a6867264ee" [[package]] name = "slab" -version = "0.4.8" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" dependencies = [ "autocfg", ] @@ -6773,9 +6885,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.10.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" +checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" [[package]] name = "smoke" @@ -6813,7 +6925,7 @@ dependencies = [ "catalyst-toolbox", "chain-addr", "chrono", - "clap 4.2.1", + "clap 4.4.6", "futures", "hex", "jormungandr-lib", @@ -6829,7 +6941,7 @@ dependencies = [ "thiserror", "tokio", "tracing", - "uuid 1.3.1", + "uuid 1.4.1", "voting_tools_rs", "walkdir", "warp", @@ -6847,12 +6959,12 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.1" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc8d618c6641ae355025c449427f9e96b98abf99a772be3cef6708d15c77147a" +checksum = "4031e820eb552adee9295814c0ced9e5cf38ddf1e8b7d566d6de8e2538ea989e" dependencies = [ "libc", - "windows-sys 0.45.0", + "windows-sys 0.48.0", ] [[package]] @@ -6907,14 +7019,21 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "stringprep" -version = "0.1.2" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ee348cb74b87454fff4b551cbf727025810a004f88aeacae7f85b87f4e9a1c1" +checksum = "bb41d74e231a107a1b4ee36bd1214b11285b77768d2e3824aedafa988fd36ee6" dependencies = [ + "finl_unicode", "unicode-bidi", "unicode-normalization", ] +[[package]] +name = "strsim" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" + [[package]] name = "strsim" version = "0.10.0" @@ -6944,13 +7063,55 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "structopt" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10" +dependencies = [ + "clap 2.34.0", + "lazy_static", + "structopt-derive", +] + +[[package]] +name = "structopt-derive" +version = "0.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0" +dependencies = [ + "heck 0.3.3", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "strum" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aaf86bbcfd1fa9670b7a129f64fc0c9fcbbfe4f1bc4210e9e98fe71ffc12cde2" + [[package]] name = "strum" version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" dependencies = [ - "strum_macros", + "strum_macros 0.24.3", +] + +[[package]] +name = "strum_macros" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d06aaeeee809dbc59eb4556183dd927df67db1540de5be8d3ec0b6636358a5ec" +dependencies = [ + "heck 0.3.3", + "proc-macro2", + "quote", + "syn 1.0.109", ] [[package]] @@ -7002,9 +7163,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.13" +version = "2.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c9da457c5285ac1f936ebd076af6dac17a61cfe7826f2076b4d015cf47bc8ec" +checksum = "7303ef2c05cd654186cb250d29049a24840ca25d2747c25c0381c8d9e2f582e8" dependencies = [ "proc-macro2", "quote", @@ -7044,11 +7205,38 @@ dependencies = [ "winapi", ] +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + [[package]] name = "tar" -version = "0.4.38" +version = "0.4.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b55807c0344e1e6c04d7c965f5289c39a8d94ae23ed5c0b57aabac549f871c6" +checksum = "b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb" dependencies = [ "filetime", "libc", @@ -7067,15 +7255,15 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.5.0" +version = "3.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998" +checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef" dependencies = [ "cfg-if 1.0.0", "fastrand", "redox_syscall 0.3.5", "rustix", - "windows-sys 0.45.0", + "windows-sys 0.48.0", ] [[package]] @@ -7137,22 +7325,22 @@ checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" [[package]] name = "thiserror" -version = "1.0.40" +version = "1.0.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac" +checksum = "1177e8c6d7ede7afde3585fd2513e611227efd6481bd78d2e82ba1ce16557ed4" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.40" +version = "1.0.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" +checksum = "10712f02019e9288794769fba95cd6847df9874d49d871d062172f9dd41bc4cc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.13", + "syn 2.0.37", ] [[package]] @@ -7167,7 +7355,7 @@ dependencies = [ "chain-crypto", "chain-impl-mockchain", "chain-vote", - "clap 4.2.1", + "clap 4.4.6", "cocoon", "custom_debug", "dirs", @@ -7182,7 +7370,7 @@ dependencies = [ "serde", "serde_yaml", "thiserror", - "time 0.3.20", + "time", ] [[package]] @@ -7208,21 +7396,11 @@ dependencies = [ [[package]] name = "time" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" -dependencies = [ - "libc", - "wasi 0.10.0+wasi-snapshot-preview1", - "winapi", -] - -[[package]] -name = "time" -version = "0.3.20" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd0cbfecb4d19b5ea75bb31ad904eb5b9fa13f21079c3b92017ebdf4999a5890" +checksum = "426f806f4089c493dcac0d24c29c01e2c38baf8e30f1b716ee37e83d200b18fe" dependencies = [ + "deranged", "itoa", "libc", "num_threads", @@ -7233,15 +7411,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.0" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.8" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd80a657e71da814b8e5d60d3374fc6d35045062245d80224748ae522dd76f36" +checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20" dependencies = [ "time-core", ] @@ -7273,11 +7451,11 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.27.0" +version = "1.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0de47a4eecbe11f498978a9b29d792f0d2692d1dd003650c24c76510e3bc001" +checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9" dependencies = [ - "autocfg", + "backtrace", "bytes", "libc", "mio", @@ -7285,9 +7463,9 @@ dependencies = [ "parking_lot 0.12.1", "pin-project-lite", "signal-hook-registry", - "socket2 0.4.9", + "socket2 0.5.4", "tokio-macros", - "windows-sys 0.45.0", + "windows-sys 0.48.0", ] [[package]] @@ -7302,20 +7480,20 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.0.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61a573bdc87985e9d6ddeed1b3d864e8a302c847e40d647746df2f1de209d1ce" +checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.13", + "syn 2.0.37", ] [[package]] name = "tokio-postgres" -version = "0.7.8" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e89f6234aa8fd43779746012fcf53603cdb91fdd8399aa0de868c2d56b6dde1" +checksum = "d340244b32d920260ae7448cb72b6e238bddc3d4f7603394e7dd46ed8e48f5b8" dependencies = [ "async-trait", "byteorder", @@ -7330,9 +7508,11 @@ dependencies = [ "pin-project-lite", "postgres-protocol", "postgres-types", - "socket2 0.5.1", + "rand 0.8.5", + "socket2 0.5.4", "tokio", - "tokio-util 0.7.7", + "tokio-util 0.7.9", + "whoami", ] [[package]] @@ -7341,28 +7521,38 @@ version = "0.23.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" dependencies = [ - "rustls", + "rustls 0.20.9", "tokio", "webpki", ] +[[package]] +name = "tokio-rustls" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" +dependencies = [ + "rustls 0.21.7", + "tokio", +] + [[package]] name = "tokio-stream" -version = "0.1.12" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fb52b74f05dbf495a8fba459fdc331812b96aa086d9eb78101fa0d4569c3313" +checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" dependencies = [ "futures-core", "pin-project-lite", "tokio", - "tokio-util 0.7.7", + "tokio-util 0.7.9", ] [[package]] name = "tokio-tungstenite" -version = "0.18.0" +version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54319c93411147bced34cb5609a80e0a8e44c5999c93903a81cd866630ec0bfd" +checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" dependencies = [ "futures-util", "log", @@ -7387,9 +7577,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.7" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5427d89453009325de0d8f342c9490009f76e999cb7672d77e46267448f7e6b2" +checksum = "1d68074620f57a0b21594d9735eb2e98ab38b17f80d3fcb189fca266771ca60d" dependencies = [ "bytes", "futures-core", @@ -7408,19 +7598,36 @@ dependencies = [ "serde", ] +[[package]] +name = "toml" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit", +] + [[package]] name = "toml_datetime" -version = "0.6.1" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ab8ed2edee10b50132aed5f331333428b011c99402b5a534154ed15746f9622" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" +dependencies = [ + "serde", +] [[package]] name = "toml_edit" -version = "0.19.8" +version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "239410c8609e8125456927e6707163a3b1fdb40561e4b803bc041f466ccfdc13" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap", + "indexmap 2.0.2", + "serde", + "serde_spanned", "toml_datetime", "winnow", ] @@ -7476,11 +7683,11 @@ dependencies = [ "hyper-timeout", "percent-encoding", "pin-project", - "prost 0.11.8", - "prost-derive 0.11.8", + "prost 0.11.9", + "prost-derive 0.11.9", "tokio", "tokio-stream", - "tokio-util 0.7.7", + "tokio-util 0.7.9", "tower", "tower-layer", "tower-service", @@ -7508,7 +7715,7 @@ checksum = "5bf5e9b9c0f7e0a7c027dcfaba7b2c60816c7049171f679d99ee2ff65d0de8c4" dependencies = [ "prettyplease", "proc-macro2", - "prost-build 0.11.8", + "prost-build 0.11.9", "quote", "syn 1.0.109", ] @@ -7521,13 +7728,13 @@ checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" dependencies = [ "futures-core", "futures-util", - "indexmap", + "indexmap 1.9.3", "pin-project", "pin-project-lite", "rand 0.8.5", "slab", "tokio", - "tokio-util 0.7.7", + "tokio-util 0.7.9", "tower-layer", "tower-service", "tracing", @@ -7535,11 +7742,11 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.4.0" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d1d42a9b3f3ec46ba828e8d376aec14592ea199f70a06a548587ecd1c4ab658" +checksum = "61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140" dependencies = [ - "bitflags", + "bitflags 2.4.0", "bytes", "futures-core", "futures-util", @@ -7583,26 +7790,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09d48f71a791638519505cefafe162606f706c25592e4bde4d97600c0195312e" dependencies = [ "crossbeam-channel", - "time 0.3.20", + "time", "tracing-subscriber", ] [[package]] name = "tracing-attributes" -version = "0.1.23" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" +checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.37", ] [[package]] name = "tracing-core" -version = "0.1.30" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" +checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a" dependencies = [ "once_cell", "valuable", @@ -7695,9 +7902,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.16" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6176eae26dd70d0c919749377897b54a9276bd7061339665dd68777926b5a70" +checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77" dependencies = [ "matchers", "nu-ansi-term", @@ -7708,7 +7915,7 @@ dependencies = [ "sharded-slab", "smallvec", "thread_local", - "time 0.3.20", + "time", "tracing", "tracing-core", "tracing-log", @@ -7791,9 +7998,9 @@ checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" [[package]] name = "trybuild" -version = "1.0.80" +version = "1.0.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "501dbdbb99861e4ab6b60eb6a7493956a9defb644fd034bc4a5ef27c693c8a3a" +checksum = "196a58260a906cedb9bf6d8034b6379d0c11f552416960452f267402ceeddff1" dependencies = [ "basic-toml", "glob", @@ -7806,13 +8013,13 @@ dependencies = [ [[package]] name = "tungstenite" -version = "0.18.0" +version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30ee6ab729cd4cf0fd55218530c4522ed30b7b6081752839b68fcec8d0960788" +checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" dependencies = [ - "base64 0.13.1", "byteorder", "bytes", + "data-encoding", "http", "httparse", "log", @@ -7835,15 +8042,15 @@ version = "0.1.0" [[package]] name = "typenum" -version = "1.16.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "ucd-trie" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" +checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" [[package]] name = "unarray" @@ -7853,9 +8060,9 @@ checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" [[package]] name = "unicase" -version = "2.6.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" +checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" dependencies = [ "version_check", ] @@ -7868,9 +8075,9 @@ checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" [[package]] name = "unicode-ident" -version = "1.0.8" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-normalization" @@ -7889,9 +8096,9 @@ checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" [[package]] name = "unicode-width" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" +checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" [[package]] name = "unicode-xid" @@ -7899,6 +8106,12 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" +[[package]] +name = "unidecode" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "402bb19d8e03f1d1a7450e2bd613980869438e0666331be3e073089124aa1adc" + [[package]] name = "uniffi" version = "0.21.1" @@ -7926,7 +8139,7 @@ dependencies = [ "askama", "bincode", "camino", - "clap 3.2.23", + "clap 3.2.25", "fs-err", "goblin", "heck 0.4.1", @@ -7934,7 +8147,7 @@ dependencies = [ "paste 1.0.14", "serde", "serde_json", - "toml", + "toml 0.5.11", "uniffi_meta", "weedle2", ] @@ -7974,7 +8187,7 @@ dependencies = [ "quote", "serde", "syn 1.0.109", - "toml", + "toml 0.5.11", "uniffi_build", "uniffi_meta", ] @@ -7986,7 +8199,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "729835442da829c9b6f7c111c76cf87b2498e129101203bec94f0c39a3296a38" dependencies = [ "serde", - "siphasher", + "siphasher 0.3.11", "uniffi_checksum_derive", ] @@ -8002,9 +8215,9 @@ dependencies = [ [[package]] name = "universal-hash" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d3160b73c9a19f7e2939a2fdad446c57c1bbbbf4d919d3213ff1267a580d8b5" +checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" dependencies = [ "crypto-common", "subtle", @@ -8027,9 +8240,9 @@ checksum = "f7fdeedbf205afadfe39ae559b75c3240f24e257d0ca27e85f85cb82aa19ac35" [[package]] name = "unsigned-varint" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d86a8dc7f45e4c1b0d30e43038c38f274e77af056aa5f74b93c2cf9eb3c1c836" +checksum = "6889a77d49f1f013504cec6bf97a2c730394adedaeb1deb5ea08949a50541105" [[package]] name = "untrusted" @@ -8049,16 +8262,25 @@ dependencies = [ [[package]] name = "url" -version = "2.3.1" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" +checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5" dependencies = [ "form_urlencoded", - "idna 0.3.0", + "idna 0.4.0", "percent-encoding", "serde", ] +[[package]] +name = "url-escape" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44e0ce4d1246d075ca5abec4b41d33e87a6054d08e2366b63205665e950db218" +dependencies = [ + "percent-encoding", +] + [[package]] name = "utf-8" version = "0.7.6" @@ -8077,17 +8299,17 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" dependencies = [ - "getrandom 0.2.9", + "getrandom 0.2.10", "serde", ] [[package]] name = "uuid" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b55a3fef2a1e3b3a00ce878640918820d3c51081576ac657d23af9fc7928fdb" +checksum = "79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d" dependencies = [ - "getrandom 0.2.9", + "getrandom 0.2.10", "serde", ] @@ -8102,7 +8324,7 @@ dependencies = [ "chain-ser", "chain-time", "chain-vote", - "clap 4.2.1", + "clap 4.4.6", "hex", "hyper", "itertools 0.10.5", @@ -8142,6 +8364,12 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" +[[package]] +name = "vec_map" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" + [[package]] name = "version_check" version = "0.9.4" @@ -8162,7 +8390,7 @@ name = "vit-servicing-station-cli" version = "0.3.4-dev" dependencies = [ "base64 0.13.1", - "clap 4.2.1", + "clap 4.4.6", "csv", "diesel", "diesel_migrations", @@ -8172,12 +8400,31 @@ dependencies = [ "serde_json", "tempfile", "thiserror", - "time 0.3.20", + "time", "url", "vit-servicing-station-lib", "vit-servicing-station-tests", ] +[[package]] +name = "vit-servicing-station-cli-f10" +version = "0.5.0" +dependencies = [ + "base64 0.12.3", + "csv", + "diesel", + "diesel_migrations", + "r2d2", + "rand 0.7.3", + "serde", + "serde_json", + "structopt", + "tempfile", + "thiserror", + "time", + "vit-servicing-station-lib-f10", +] + [[package]] name = "vit-servicing-station-lib" version = "0.3.4-dev" @@ -8185,7 +8432,7 @@ dependencies = [ "async-trait", "base64 0.13.1", "chain-ser", - "clap 4.2.1", + "clap 4.4.6", "diesel", "diesel_migrations", "dotenv", @@ -8196,18 +8443,18 @@ dependencies = [ "jormungandr-lib", "log", "notify", - "pretty_assertions 1.3.0", + "pretty_assertions 1.4.0", "r2d2", "rand 0.8.5", "serde", "serde_json", "simplelog 0.8.0", "snapshot-lib", - "strum", - "strum_macros", + "strum 0.24.1", + "strum_macros 0.24.3", "tempfile", "thiserror", - "time 0.3.20", + "time", "tokio", "tracing", "tracing-futures", @@ -8217,11 +8464,44 @@ dependencies = [ "warp", ] +[[package]] +name = "vit-servicing-station-lib-f10" +version = "0.5.0" +dependencies = [ + "async-trait", + "base64 0.12.3", + "diesel", + "diesel_migrations", + "dotenv", + "eccoxide 0.2.0", + "http-zipkin", + "itertools 0.9.0", + "jormungandr-lib", + "libsqlite3-sys", + "log", + "notify", + "rand 0.8.5", + "serde", + "serde_json", + "simplelog 0.8.0", + "structopt", + "strum 0.21.0", + "strum_macros 0.21.1", + "tempfile", + "thiserror", + "time", + "tokio", + "tracing", + "tracing-futures", + "tracing-subscriber", + "warp", +] + [[package]] name = "vit-servicing-station-server" version = "0.3.4-dev" dependencies = [ - "clap 4.2.1", + "clap 4.4.6", "log", "opentelemetry", "opentelemetry-otlp", @@ -8237,6 +8517,20 @@ dependencies = [ "vit-servicing-station-lib", ] +[[package]] +name = "vit-servicing-station-server-f10" +version = "0.5.0" +dependencies = [ + "log", + "structopt", + "tokio", + "tracing", + "tracing-appender", + "tracing-futures", + "tracing-subscriber", + "vit-servicing-station-lib-f10", +] + [[package]] name = "vit-servicing-station-tests" version = "0.3.4-dev" @@ -8249,7 +8543,7 @@ dependencies = [ "chain-crypto", "chain-impl-mockchain", "chrono", - "clap 4.2.1", + "clap 4.4.6", "diesel", "dyn-clone", "fake", @@ -8273,12 +8567,50 @@ dependencies = [ "snapshot-lib", "tempfile", "thiserror", - "time 0.3.20", + "time", "tokio", "url", "vit-servicing-station-lib", ] +[[package]] +name = "vit-servicing-station-tests-f10" +version = "0.5.0" +dependencies = [ + "assert_cmd", + "assert_fs", + "base64 0.12.3", + "cfg-if 0.1.10", + "chain-addr", + "chain-crypto", + "chain-impl-mockchain", + "diesel", + "diesel_migrations", + "dyn-clone", + "fake", + "hyper", + "itertools 0.10.5", + "jortestkit", + "lazy_static", + "libsqlite3-sys", + "predicates 2.1.5", + "pretty_assertions 0.6.1", + "quickcheck", + "quickcheck_macros", + "rand 0.7.3", + "rand_core 0.5.1", + "reqwest", + "serde", + "serde_json", + "structopt", + "tempfile", + "thiserror", + "time", + "tokio", + "url", + "vit-servicing-station-lib-f10", +] + [[package]] name = "vitup" version = "0.0.1" @@ -8293,7 +8625,7 @@ dependencies = [ "chain-impl-mockchain", "chain-time", "chain-vote", - "clap 4.2.1", + "clap 4.4.6", "console", "csv", "ctrlc", @@ -8327,7 +8659,7 @@ dependencies = [ "rand_core 0.6.4", "regex", "reqwest", - "rustls", + "rustls 0.20.9", "rustls-pemfile", "serde", "serde_json", @@ -8335,14 +8667,14 @@ dependencies = [ "slave-pool", "snapshot-lib", "snapshot-trigger-service", - "strum", - "strum_macros", + "strum 0.24.1", + "strum_macros 0.24.3", "tempdir", "thiserror", "thor", - "time 0.3.20", + "time", "tokio", - "tokio-rustls", + "tokio-rustls 0.23.4", "tokio-stream", "tracing", "tracing-appender", @@ -8374,7 +8706,7 @@ dependencies = [ "cddl", "chrono", "ciborium", - "clap 4.2.1", + "clap 4.4.6", "color-eyre", "cryptoxide 0.4.4", "dashmap", @@ -8409,9 +8741,9 @@ dependencies = [ [[package]] name = "walkdir" -version = "2.3.3" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" +checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" dependencies = [ "same-file", "winapi-util", @@ -8497,7 +8829,7 @@ dependencies = [ "chain-vote", "clear_on_drop", "console_error_panic_hook", - "getrandom 0.2.9", + "getrandom 0.2.10", "hex", "js-sys", "rand 0.8.5", @@ -8512,19 +8844,18 @@ dependencies = [ [[package]] name = "want" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" dependencies = [ - "log", "try-lock", ] [[package]] name = "warp" -version = "0.3.4" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27e1a710288f0f91a98dd8a74f05b76a10768db245ce183edf64dc1afdc3016c" +checksum = "c1e92e22e03ff1230c03a1a8ee37d2f89cd489e2e541b7550d6afad96faed169" dependencies = [ "bytes", "futures-channel", @@ -8535,7 +8866,7 @@ dependencies = [ "log", "mime", "mime_guess", - "multiparty", + "multer", "percent-encoding", "pin-project", "rustls-pemfile", @@ -8544,10 +8875,10 @@ dependencies = [ "serde_json", "serde_urlencoded", "tokio", - "tokio-rustls", + "tokio-rustls 0.24.1", "tokio-stream", "tokio-tungstenite", - "tokio-util 0.7.7", + "tokio-util 0.7.9", "tower-service", "tracing", ] @@ -8574,9 +8905,9 @@ checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" [[package]] name = "wasi" -version = "0.10.0+wasi-snapshot-preview1" +version = "0.10.2+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" +checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" [[package]] name = "wasi" @@ -8586,9 +8917,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.83" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" +checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" dependencies = [ "cfg-if 1.0.0", "wasm-bindgen-macro", @@ -8596,24 +8927,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.83" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" +checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.37", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.33" +version = "0.4.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d" +checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -8623,9 +8954,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.83" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" +checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -8633,28 +8964,28 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.83" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" +checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.37", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.83" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" +checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" [[package]] name = "wasm-bindgen-test" -version = "0.3.33" +version = "0.3.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09d2fff962180c3fadf677438054b1db62bee4aa32af26a45388af07d1287e1d" +checksum = "6e6e302a7ea94f83a6d09e78e7dc7d9ca7b186bc2829c24a22d0753efd680671" dependencies = [ "console_error_panic_hook", "js-sys", @@ -8666,9 +8997,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-test-macro" -version = "0.3.33" +version = "0.3.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4683da3dfc016f704c9f82cf401520c4f1cb3ee440f7f52b3d6ac29506a49ca7" +checksum = "ecb993dd8c836930ed130e020e77d9b2e65dd0fbab1b67c790b0f5d80b11a575" dependencies = [ "proc-macro2", "quote", @@ -8676,9 +9007,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.60" +version = "0.3.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" +checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b" dependencies = [ "js-sys", "wasm-bindgen", @@ -8686,9 +9017,9 @@ dependencies = [ [[package]] name = "webpki" -version = "0.22.0" +version = "0.22.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" +checksum = "07ecc0cd7cac091bf682ec5efa18b1cff79d617b84181f38b3951dbe135f607f" dependencies = [ "ring", "untrusted", @@ -8696,12 +9027,9 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.22.6" +version = "0.25.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" -dependencies = [ - "webpki", -] +checksum = "14247bb57be4f377dfb94c72830b8ce8fc6beac03cf4bf7b9732eadd414123fc" [[package]] name = "weedle2" @@ -8720,20 +9048,31 @@ checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb" [[package]] name = "which" -version = "4.4.0" +version = "4.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" +checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" dependencies = [ "either", - "libc", + "home", "once_cell", + "rustix", +] + +[[package]] +name = "whoami" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22fc3756b8a9133049b26c7f61ab35416c130e8c09b660f5b3958b446f52cc50" +dependencies = [ + "wasm-bindgen", + "web-sys", ] [[package]] name = "widestring" -version = "0.5.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17882f045410753661207383517a6f62ec3dbeb6a4ed2acce01f0728238d1983" +checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8" [[package]] name = "winapi" @@ -8753,9 +9092,9 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" dependencies = [ "winapi", ] @@ -8772,7 +9111,7 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" dependencies = [ - "windows-targets 0.48.0", + "windows-targets 0.48.5", ] [[package]] @@ -8805,7 +9144,7 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "windows-targets 0.48.0", + "windows-targets 0.48.5", ] [[package]] @@ -8825,17 +9164,17 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" dependencies = [ - "windows_aarch64_gnullvm 0.48.0", - "windows_aarch64_msvc 0.48.0", - "windows_i686_gnu 0.48.0", - "windows_i686_msvc 0.48.0", - "windows_x86_64_gnu 0.48.0", - "windows_x86_64_gnullvm 0.48.0", - "windows_x86_64_msvc 0.48.0", + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", ] [[package]] @@ -8846,9 +9185,9 @@ checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_msvc" @@ -8858,9 +9197,9 @@ checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" [[package]] name = "windows_aarch64_msvc" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_i686_gnu" @@ -8870,9 +9209,9 @@ checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" [[package]] name = "windows_i686_gnu" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_msvc" @@ -8882,9 +9221,9 @@ checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" [[package]] name = "windows_i686_msvc" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_x86_64_gnu" @@ -8894,9 +9233,9 @@ checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" [[package]] name = "windows_x86_64_gnu" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnullvm" @@ -8906,9 +9245,9 @@ checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" [[package]] name = "windows_x86_64_gnullvm" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_msvc" @@ -8918,33 +9257,43 @@ checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" [[package]] name = "windows_x86_64_msvc" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "winnow" -version = "0.4.1" +version = "0.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae8970b36c66498d8ff1d66685dc86b91b29db0c7739899012f63a63814b4b28" +checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc" dependencies = [ "memchr", ] [[package]] name = "winreg" -version = "0.10.1" +version = "0.50.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" dependencies = [ - "winapi", + "cfg-if 1.0.0", + "windows-sys 0.48.0", +] + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", ] [[package]] name = "xattr" -version = "0.2.3" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d1526bbe5aaeb5eb06885f4d987bcdfa5e23187055de9b83fe00156a821fabc" +checksum = "f4686009f71ff3e5c4dbcf1a282d0a44db3f021ba69350cd42086b3e5f1c6985" dependencies = [ "libc", ] @@ -8981,16 +9330,16 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.13", + "syn 2.0.37", ] [[package]] name = "zip" -version = "0.6.4" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0445d0fbc924bb93539b4316c11afb121ea39296f99a3c4c9edad09e3658cdef" +checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" dependencies = [ - "aes", + "aes 0.8.3", "byteorder", "bzip2", "constant_time_eq", @@ -9000,7 +9349,7 @@ dependencies = [ "hmac 0.12.1", "pbkdf2 0.11.0", "sha1", - "time 0.3.20", + "time", "zstd", ] @@ -9047,9 +9396,9 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "2.0.7+zstd.1.5.4" +version = "2.0.8+zstd.1.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94509c3ba2fe55294d752b79842c530ccfab760192521df74a081a78d2b3c7f5" +checksum = "5556e6ee25d32df2586c098bbfa278803692a20d0ab9565e049480d52707ec8c" dependencies = [ "cc", "libc", diff --git a/Cargo.toml b/Cargo.toml index 68ec9c06b1..4ca82bd472 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -54,6 +54,10 @@ members = [ "src/voting-tools-rs", "src/cat-data-service", "src/audit", + "src/vit-servicing-station-f10/vit-servicing-station-cli-f10", + "src/vit-servicing-station-f10/vit-servicing-station-lib-f10", + "src/vit-servicing-station-f10/vit-servicing-station-server-f10", + "src/vit-servicing-station-f10/vit-servicing-station-tests-f10", ] [workspace.dependencies] diff --git a/Earthfile b/Earthfile index fd509a7a31..1851d8cbcc 100644 --- a/Earthfile +++ b/Earthfile @@ -32,6 +32,7 @@ build-cache: libsqlite3-dev \ protobuf-compiler + RUN cargo chef cook --release SAVE ARTIFACT target SAVE ARTIFACT $CARGO_HOME cargo_home @@ -64,6 +65,7 @@ builder: libpq-dev \ libsqlite3-dev \ protobuf-compiler + RUN rustup component add rustfmt COPY --dir book src tests Cargo.lock Cargo.toml . COPY +build-cache/cargo_home $CARGO_HOME diff --git a/src/jormungandr/testing/jormungandr-automation/src/jormungandr/rest/raw.rs b/src/jormungandr/testing/jormungandr-automation/src/jormungandr/rest/raw.rs index 80f08e3c3f..212f777d6a 100644 --- a/src/jormungandr/testing/jormungandr-automation/src/jormungandr/rest/raw.rs +++ b/src/jormungandr/testing/jormungandr-automation/src/jormungandr/rest/raw.rs @@ -249,6 +249,12 @@ impl RawRest { headers } + fn construct_headers_json(&self) -> HeaderMap { + let mut headers = HeaderMap::new(); + headers.insert(CONTENT_TYPE, HeaderValue::from_static("application/json")); + headers + } + fn post( &self, path: &str, @@ -310,7 +316,7 @@ impl RawRest { ) -> Result { self.client .post(self.path(ApiVersion::V1, "fragments")) - .headers(self.construct_headers()) + .headers(self.construct_headers_json()) .json(&FragmentsBatch { fail_fast, fragments, diff --git a/src/vit-servicing-station-f10/.env b/src/vit-servicing-station-f10/.env new file mode 100644 index 0000000000..2944ef15fc --- /dev/null +++ b/src/vit-servicing-station-f10/.env @@ -0,0 +1,2 @@ +DATABASE_URL=./db/database.sqlite3 +MIGRATION_DIRECTORY=./vit-servicing-station-lib-f10/migrations diff --git a/src/vit-servicing-station-f10/.envrc b/src/vit-servicing-station-f10/.envrc new file mode 100644 index 0000000000..3550a30f2d --- /dev/null +++ b/src/vit-servicing-station-f10/.envrc @@ -0,0 +1 @@ +use flake diff --git a/src/vit-servicing-station-f10/.github/CODEOWNERS b/src/vit-servicing-station-f10/.github/CODEOWNERS new file mode 100644 index 0000000000..d59646f60e --- /dev/null +++ b/src/vit-servicing-station-f10/.github/CODEOWNERS @@ -0,0 +1,8 @@ +# DEVOPS + +/.github/action/nix-common-setup* @input-output-hk/jormugandr-devops +/.github/workflows/nix.yml @input-output-hk/jormugandr-devops +/default.nix @input-output-hk/jormugandr-devops +/flake.lock @input-output-hk/jormugandr-devops +/flake.nix @input-output-hk/jormugandr-devops +/shell.nix @input-output-hk/jormugandr-devops diff --git a/src/vit-servicing-station-f10/.github/actions/nix-common-setup/action.yml b/src/vit-servicing-station-f10/.github/actions/nix-common-setup/action.yml new file mode 100644 index 0000000000..16805fc798 --- /dev/null +++ b/src/vit-servicing-station-f10/.github/actions/nix-common-setup/action.yml @@ -0,0 +1,18 @@ +name: Setup Nix Environment +inputs: + CACHIX_AUTH_TOKEN: + required: true + description: 'Cachix Auth Token' +runs: + using: "composite" + steps: + + - name: Installing Nix + uses: cachix/install-nix-action@v16 + with: + nix_path: nixpkgs=channel:nixpkgs-unstable + + - uses: cachix/cachix-action@v10 + with: + name: vit + authToken: '${{ inputs.CACHIX_AUTH_TOKEN }}' diff --git a/src/vit-servicing-station-f10/.github/dependabot.yml b/src/vit-servicing-station-f10/.github/dependabot.yml new file mode 100644 index 0000000000..29447d7273 --- /dev/null +++ b/src/vit-servicing-station-f10/.github/dependabot.yml @@ -0,0 +1,13 @@ +version: 2 +updates: + + - package-ecosystem: github-actions + directory: "/" + schedule: + interval: daily + time: '00:00' + timezone: UTC + open-pull-requests-limit: 10 + commit-message: + prefix: "chore" + include: "scope" diff --git a/src/vit-servicing-station-f10/.github/workflows/api.yml b/src/vit-servicing-station-f10/.github/workflows/api.yml new file mode 100644 index 0000000000..12e6a58bf4 --- /dev/null +++ b/src/vit-servicing-station-f10/.github/workflows/api.yml @@ -0,0 +1,21 @@ +name: API Check + +on: + pull_request: + paths: + - "doc/api/*.yaml" + +jobs: + validate: + runs-on: ubuntu-latest + name: Validate + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Check that the OpenAPI file is valid + uses: morigs/lint-api-docs-action@v1 + with: + files-glob: ./doc/api/*.yaml + ruleset-file: ./.spectral.yaml + fail-severity: warn diff --git a/src/vit-servicing-station-f10/.github/workflows/api_gh.yml b/src/vit-servicing-station-f10/.github/workflows/api_gh.yml new file mode 100644 index 0000000000..5eef0fcac1 --- /dev/null +++ b/src/vit-servicing-station-f10/.github/workflows/api_gh.yml @@ -0,0 +1,37 @@ +name: Api gh-pages + +# Run on each push to master +on: + push: + branches: [ master ] + paths: + - 'doc/api/*.yaml' + +jobs: + api_gh: + runs-on: ubuntu-latest + name: gh-pages + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Bundle + uses: seeebiii/redoc-cli-github-action@v10 + with: + args: 'bundle doc/api/v0.yaml -o html/index.html' + + - name: Check Result + run: | + ls -al + test -f html/index.html || (echo "Missing index.html from previous step." && exit 1) + + - name: Deploy + uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + user_name: 'github-actions[bot]' + user_email: 'github-actions[bot]@users.noreply.github.com' + commit_message: ${{ github.event.head_commit.message }} + publish_dir: ./html + publish_branch: gh-pages # deploying branch + diff --git a/src/vit-servicing-station-f10/.github/workflows/audit.yml b/src/vit-servicing-station-f10/.github/workflows/audit.yml new file mode 100644 index 0000000000..2edc0ba292 --- /dev/null +++ b/src/vit-servicing-station-f10/.github/workflows/audit.yml @@ -0,0 +1,30 @@ +name: Security audit +on: + push: + paths: + - Cargo.lock +jobs: + security_audit: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - id: ls-crates-io-index + name: Get head commit hash of crates.io registry index + run: | + commit=$( + git ls-remote --heads https://github.com/rust-lang/crates.io-index.git master | + cut -f 1 + ) + echo "::set-output name=head::$commit" + - name: Cache cargo registry index + uses: actions/cache@v3 + with: + path: ~/.cargo/registry/index + key: cargo-index-${{ steps.ls-crates-io-index.outputs.head }} + restore-keys: | + cargo-index- + + - uses: actions-rs/audit-check@v1 + with: + token: ${{ secrets.GITHUB_TOKEN }} diff --git a/src/vit-servicing-station-f10/.github/workflows/nix.yml b/src/vit-servicing-station-f10/.github/workflows/nix.yml new file mode 100644 index 0000000000..25b6da75f3 --- /dev/null +++ b/src/vit-servicing-station-f10/.github/workflows/nix.yml @@ -0,0 +1,45 @@ +name: Nix +on: + push: + branches: + - master + - catalyst-fund* + pull_request: + +jobs: + build-server: + name: Build server + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Setup + uses: ./.github/actions/nix-common-setup + with: + CACHIX_AUTH_TOKEN: ${{ secrets.CACHIX_AUTH_TOKEN }} + - name: Flake check + run: nix flake check + - name: Build + run: nix build .#vit-servicing-station-server + + build: + name: Build ${{ matrix.package }} + needs: build-server + strategy: + fail-fast: false + matrix: + package: + - cli + - lib + - tests + continue-on-error: true + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Setup + uses: ./.github/actions/nix-common-setup + with: + CACHIX_AUTH_TOKEN: ${{ secrets.CACHIX_AUTH_TOKEN }} + - name: Build + run: nix build .#vit-servicing-station-${{ matrix.package }} diff --git a/src/vit-servicing-station-f10/.github/workflows/release.yml b/src/vit-servicing-station-f10/.github/workflows/release.yml new file mode 100644 index 0000000000..1f34cc5b9f --- /dev/null +++ b/src/vit-servicing-station-f10/.github/workflows/release.yml @@ -0,0 +1,260 @@ +on: + push: + tags: + - 'v[0-9].*' # Release tags matching v*, i.e. v1.0, v20.15.10 + +name: Release + +jobs: + + create_release: + name: Create release + if: > + github.repository_owner == 'input-output-hk' + || startsWith(github.ref, 'refs/heads/ci/test/') + || startsWith(github.ref, 'refs/tags/') && contains(github.ref, '-ci-test.') + runs-on: ubuntu-latest + outputs: + version: ${{ steps.release_info.outputs.version }} + tag: ${{ steps.release_info.outputs.tag }} + date: ${{ steps.release_info.outputs.date }} + upload_url: ${{ steps.create_release.outputs.upload_url }} + steps: + - name: Checkout code + uses: actions/checkout@v3 + with: + submodules: 'true' + + - id: release_info + name: Get release information + run: python3 ./ci/release-info.py "$GITHUB_EVENT_NAME" + + - id: create_release + name: Create a draft release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + release_tag='${{ steps.release_info.outputs.tag }}' + hub release create ${{ steps.release_info.outputs.release_flags }} --draft \ + -m "Release ${{ steps.release_info.outputs.version }} (in progress)" \ + -t $GITHUB_SHA $release_tag + upload_url=$(hub release show -f '%uA' $release_tag) + echo "::set-output name=upload_url::$upload_url" + + cache_info: + name: Bootstrap cache + if: > + github.repository_owner == 'input-output-hk' + || startsWith(github.ref, 'refs/heads/ci/test/') + || startsWith(github.ref, 'refs/tags/') && contains(github.ref, '-ci-test.') + runs-on: ubuntu-latest + outputs: + crates-io-index-head: ${{ steps.ls-crates-io-index.outputs.head }} + cargo-lock-hash: ${{ steps.hash-cargo-lock.outputs.hash }} + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - id: ls-crates-io-index + name: Get head commit hash of crates.io registry index + run: | + commit=$( + git ls-remote --heads https://github.com/rust-lang/crates.io-index.git master | + cut -f 1 + ) + echo "$commit" + echo "::set-output name=head::$commit" + + - id: hash-cargo-lock + name: Calculate dependency cache key + run: | + hash=$( + ci/strip-own-version-from-cargo-lock.pl Cargo.lock | + sha1sum | cut -d ' ' -f 1 + ) + echo "$hash" + echo "::set-output name=hash::$hash" + + update_deps: + name: Update dependencies + needs: cache_info + # Caches on Windows and Unix do not interop: + # https://github.com/actions/cache/issues/330#issuecomment-637701649 + strategy: + matrix: + os: [ubuntu-latest, windows-latest] + runs-on: ${{ matrix.os }} + steps: + - name: Cache cargo registry index + uses: actions/cache@v3 + with: + path: ~/.cargo/registry/index + key: cargo-index-${{ needs.cache_info.outputs.crates-io-index-head }} + restore-keys: cargo-index- + + - id: cargo-deps + name: Cache cargo dependencies + uses: actions/cache@v3 + with: + path: ~/.cargo/registry/cache + key: cargo-deps-${{ needs.cache_info.outputs.cargo-lock-hash }} + + - name: Check out the repository + uses: actions/checkout@v3 + with: + submodules: true + + - name: Fetch dependencies and update cargo registry + run: cargo fetch --locked + + build_assets: + name: Build assets + needs: [create_release, cache_info, update_deps] + runs-on: ${{ matrix.config.os }} + strategy: + fail-fast: false + matrix: + config: + # Linux + - {os: ubuntu-latest, target: x86_64-unknown-linux-gnu} + # Macos + - {os: macos-latest, target: x86_64-apple-darwin} + toolchain: [stable] + cross: [false] + include: + - config: {os: windows-latest, target: x86_64-pc-windows-msvc} + toolchain: stable-x86_64-pc-windows-msvc + cross: false + # Cross targets + - config: {os: ubuntu-latest, target: x86_64-unknown-linux-musl} + toolchain: stable + cross: true + + steps: + + - uses: actions-rs/toolchain@v1 + with: + toolchain: ${{ matrix.toolchain }} + target: ${{ matrix.config.target }} + override: true + default: true + + - name: Checkout code + uses: actions/checkout@v3 + with: + submodules: true + + - name: Restore cargo registry index + uses: actions/cache@v3 + with: + path: ~/.cargo/registry/index + key: cargo-index-${{ needs.cache_info.outputs.crates-io-index-head }} + + - name: Restore cargo dependencies + uses: actions/cache@v3 + with: + path: ~/.cargo/registry/cache + key: cargo-deps-${{ needs.cache_info.outputs.cargo-lock-hash }} + + - name: Create .cargo/config.toml + shell: bash + run: | + mkdir .cargo + cat > .cargo/config.toml < Cross.toml < + --manifest-path vit-servicing-station-server/Cargo.toml + --bin vit-servicing-station-server + --verbose + --locked + --release + --target ${{ matrix.config.target }} + + - name: Build the cli binary + uses: actions-rs/cargo@v1 + env: + DATE: ${{ needs.create_release.outputs.date }} + with: + use-cross: ${{ matrix.cross }} + command: build + args: > + --manifest-path vit-servicing-station-cli/Cargo.toml + --bin vit-servicing-station-cli + --verbose + --locked + --release + --target ${{ matrix.config.target }} + + - name: Pack binaries (Unix) + if: matrix.config.os != 'windows-latest' + run: | + archive=vit-servicing-station-${{ needs.create_release.outputs.version }}-${{ matrix.config.target }}.tar.gz + tar -C ./target/${{ matrix.config.target }}/release -czvf $archive \ + vit-servicing-station-server \ + vit-servicing-station-cli + cat <> $GITHUB_ENV + RELEASE_ARCHIVE=$archive + RELEASE_CONTENT_TYPE=application/gzip + EOF + + - name: Pack binaries (Windows) + if: matrix.config.os == 'windows-latest' + run: | + $archive = "vit-servicing-station-${{ needs.create_release.outputs.version }}-${{ matrix.config.target }}.zip" + $args = @{ + Path = "./target/${{ matrix.config.target }}/release/vit-servicing-station-server.exe", + "./target/${{ matrix.config.target }}/release/vit-servicing-station-cli.exe" + DestinationPath = $archive + } + Compress-Archive @args + @" + RELEASE_ARCHIVE=$archive + RELEASE_CONTENT_TYPE=application/zip + "@ | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append + + - name: Upload binaries to the release + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.create_release.outputs.upload_url }} + asset_path: ./${{ env.RELEASE_ARCHIVE }} + asset_name: ${{ env.RELEASE_ARCHIVE }} + asset_content_type: ${{ env.RELEASE_CONTENT_TYPE }} + + publish_release: + name: Publish release + needs: [create_release, build_assets] + runs-on: ubuntu-latest + steps: + - name: Check out the repository + uses: actions/checkout@v3 + + - name: Publish release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + hub release edit --draft=false \ + -m 'Release ${{ needs.create_release.outputs.version }}' \ + ${{ needs.create_release.outputs.tag }} diff --git a/src/vit-servicing-station-f10/.github/workflows/test.yml b/src/vit-servicing-station-f10/.github/workflows/test.yml new file mode 100644 index 0000000000..c7fe26cfb6 --- /dev/null +++ b/src/vit-servicing-station-f10/.github/workflows/test.yml @@ -0,0 +1,190 @@ +on: + push: + branches: + - master + pull_request: + +name: CI + +jobs: + + update-deps: + name: Update dependencies + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - id: cargo-deps + name: Cache cargo dependencies + uses: actions/cache@v3 + with: + path: | + ~/.cargo/registry/index + ~/.cargo/registry/cache + ~/.cargo/git/db + key: cargo-deps-${{ hashFiles('**/Cargo.lock') }} + + - if: ${{ steps.cargo-deps.outputs.cache-hit != 'true' }} + id: ls-crates-io-index + name: Get head commit hash of crates.io registry index + run: | + commit=$( + git ls-remote --heads https://github.com/rust-lang/crates.io-index.git master | + cut -f 1 + ) + echo "::set-output name=head::$commit" + - if: ${{ steps.cargo-deps.outputs.cache-hit != 'true' }} + name: Cache cargo registry index + uses: actions/cache@v3 + with: + path: ~/.cargo/registry/index + key: cargo-index-${{ steps.ls-crates-io-index.outputs.head }} + restore-keys: | + cargo-index- + + - if: ${{ steps.cargo-deps.outputs.cache-hit != 'true' }} + name: Fetch dependencies + run: cargo fetch --locked + + test: + name: Test Suite + needs: update-deps + strategy: + matrix: + os: [ubuntu-latest, windows-latest, macos-latest] + runs-on: ${{ matrix.os }} + env: + CARGO_INCREMENTAL: 0 + steps: + - uses: actions/checkout@v3 + + - if: ${{ runner.os == 'Windows' }} + name: Fix up Cargo.lock hash + run: | + Get-ChildItem . -Recurse -Filter Cargo.lock | + Foreach-Object { + ((Get-Content $_.FullName) -join "`n") + "`n" | + Set-Content -NoNewline $_.FullName + } + + - name: Restore cargo dependencies + uses: actions/cache@v3 + with: + path: | + ~/.cargo/registry/index + ~/.cargo/registry/cache + ~/.cargo/git/db + key: cargo-deps-${{ hashFiles('**/Cargo.lock') }} + + - uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + override: true + + - name: Install libsqlite3 (Ubuntu) + if: matrix.os == 'ubuntu-latest' + run: | + sudo apt-get update + sudo apt-get install libsqlite3-dev + + - uses: actions-rs/cargo@v1 + continue-on-error: false + with: + command: build + args: --locked + - uses: actions-rs/cargo@v1 + continue-on-error: false + with: + command: test + args: --locked + + lints: + name: Rust lints + needs: update-deps + runs-on: ubuntu-latest + env: + CARGO_INCREMENTAL: 0 + steps: + - uses: actions/checkout@v3 + - uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + override: true + components: rustfmt, clippy + + - name: Run cargo fmt + uses: actions-rs/cargo@v1 + continue-on-error: false + with: + command: fmt + args: -- --check + + - name: Restore cargo dependencies + uses: actions/cache@v3 + with: + path: | + ~/.cargo/registry/index + ~/.cargo/registry/cache + ~/.cargo/git/db + key: cargo-deps-${{ hashFiles('**/Cargo.lock') }} + + - name: Run cargo clippy + uses: actions-rs/clippy-check@v1 + continue-on-error: false + with: + token: ${{ secrets.GITHUB_TOKEN }} + args: -- --deny warnings + + test_coverage: + name: Test Coverage + needs: update-deps + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: true + + - name: Install Rust toolchain + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + override: true + + - name: Restore cargo registry index + uses: actions/cache@v3 + with: + path: ~/.cargo/registry/index + key: cargo-index-v2-${{ needs.update_deps.outputs.crates-io-index-head }} + + - name: Restore dependency crates + uses: actions/cache@v3 + with: + path: ~/.cargo/registry/cache + key: cargo-deps-v2-${{ hashFiles('Cargo.lock') }} + + - name: Install libsqlite3 (Ubuntu) + if: matrix.os == 'ubuntu-latest' + run: | + sudo apt-get update + sudo apt-get install libsqlite3-dev + + - uses: actions-rs/cargo@v1 + continue-on-error: false + with: + command: build + args: --locked + + - name: Run cargo-tarpaulin + uses: actions-rs/tarpaulin@v0.1 + with: + args: '--ignore-tests --out Lcov --skip-clean --exclude-files vit-servicing-station-tests' + timeout: 600 + + - name: upload to Coveralls + uses: coverallsapp/github-action@master + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + path-to-lcov: './lcov.info' diff --git a/src/vit-servicing-station-f10/.github/workflows/update-flake-lock.yml b/src/vit-servicing-station-f10/.github/workflows/update-flake-lock.yml new file mode 100644 index 0000000000..73d8018626 --- /dev/null +++ b/src/vit-servicing-station-f10/.github/workflows/update-flake-lock.yml @@ -0,0 +1,19 @@ +name: update-flake-lock +on: + workflow_dispatch: # allows manual triggering + schedule: + - cron: '0 0 * * 0' # runs weekly on Sunday at 00:00 + +jobs: + lockfile: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v3 + - name: Install Nix + uses: cachix/install-nix-action@v16 + with: + extra_nix_config: | + access-tokens = github.com=${{ secrets.GITHUB_TOKEN }} + - name: Update flake.lock + uses: DeterminateSystems/update-flake-lock@v8 diff --git a/src/vit-servicing-station-f10/.gitignore b/src/vit-servicing-station-f10/.gitignore new file mode 100644 index 0000000000..5d7fee8e50 --- /dev/null +++ b/src/vit-servicing-station-f10/.gitignore @@ -0,0 +1,8 @@ +book +/target +/vendor +/result* +/.idea/ +/.vscode/ +/.direnv/ +/.pre-commit-config.yaml diff --git a/src/vit-servicing-station-f10/.gitmodules b/src/vit-servicing-station-f10/.gitmodules new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/vit-servicing-station-f10/.spectral.yaml b/src/vit-servicing-station-f10/.spectral.yaml new file mode 100644 index 0000000000..4b237f38a1 --- /dev/null +++ b/src/vit-servicing-station-f10/.spectral.yaml @@ -0,0 +1,4 @@ +extends: spectral:oas +rules: + # https://github.com/stoplightio/spectral/issues/1271 + oas3-unused-component: off diff --git a/src/vit-servicing-station-f10/Earthfile b/src/vit-servicing-station-f10/Earthfile new file mode 100644 index 0000000000..310ad4ec21 --- /dev/null +++ b/src/vit-servicing-station-f10/Earthfile @@ -0,0 +1,10 @@ +VERSION 0.7 + +build: + FROM ../../+builder + RUN cargo build --locked --release -p vit-servicing-station-cli-f10 -p vit-servicing-station-server-f10 + + # Store the artifacts + SAVE ARTIFACT target/release/vit-servicing-station-cli-f10 vit-servicing-station-cli-f10 + SAVE ARTIFACT target/release/vit-servicing-station-server-f10 vit-servicing-station-server-f10 + SAVE IMAGE --cache-hint \ No newline at end of file diff --git a/src/vit-servicing-station-f10/README.md b/src/vit-servicing-station-f10/README.md new file mode 100644 index 0000000000..a7e6d5bba7 --- /dev/null +++ b/src/vit-servicing-station-f10/README.md @@ -0,0 +1,124 @@ +# VIT Servicing Station + +-------------- + +VIT as a service (VaaS) + +-------------- + + +### Building tips and tricks + +We use [`diesel`](http://diesel.rs/) for database (`sqlite3`) integration. Please refer to the [`diesel_cli` documentation](https://docs.rs/crate/diesel_cli/) to understand how to operate with migrations and setup. + +Diesel generates rust code based on a *SQL* migration script (`/migrations/*/up.sql`) when running the migration with `diesel_cli`. +Diesel code generation is configured in the `diesel.toml` file. Right now it just contains the path on where the rust code should be generated. +Currently we use only one migration and make changes to it as needed. This is due to the fact that for each fund we spin up a new servicing station instance. + +Another file to look at is the `.env` file. This file holds the environment variables used by this project sql configuration. +`diesel` uses a `DATABASE_URL` variable to know where should he generate the database file. + +### Running tests + +Tests are run using `cargo test`, but require the binaries to be present in `target`: + - `cargo build --all-targets --locked` (**without** `--release`) + - `cargo test` + + +### Server settings + +The server settings can be loaded via three options, **environment variables**, **command line flags** and a **json file**. +These configurations follows some priority from low to high. +Env variables are overwritten by command line flags if used and those before are overwritten by the json file if used too. + +#### Env variables + +- `DATABASE_URL` -> `URL` for the database connection +- `TLS_CERT_FILE` -> Path to server X.509 certificate chain file, must be PEM-encoded and contain at least 1 item +- `TLS_PRIVATE_KEY_FILE` -> Path to server private key file, must be PKCS8 with single PEM-encoded, unencrypted key +- `CORS_ALLOWED_ORIGINS` -> Semicolon separated list of allowed `CORS` origins. For example: `https://foo.test;https://test.foo:5050` + +#### Command line flags +The command line flags can be retrieved using the `--help` when running the server: + +```bash +--address
Server binding address [default: 0.0.0.0:3030] +--allowed-origins If none provided, echos request origin [env: CORS_ALLOWED_ORIGINS=] +--block0-path block0 static file path [default: ./resources/v0/block0.bin] +--cert-file + Path to server X.509 certificate chain file, must be PEM-encoded and contain at least 1 item [env: + TLS_CERT_FILE=] +--db-url Database url [env: DATABASE_URL=] [default: ./db/database.sqlite3] +--in-settings-file Load settings from file +--log-level Application logging level +--log-output-path Output log file path +--max-age-secs If none provided, CORS responses won't be cached +--out-settings-file Dump current settings to file +--priv-key-file + Path to server private key file, must be PKCS8 with single PEM-encoded, unencrypted key [env: TLS_PK_FILE=] +``` + +Some of the flags default to the environment variables explained above is not set. +Some of them have default values as fallback in case nor the env variable nor the flag is set. + +#### JSON file configuration +Additionally if the you can load the whole configuration from a json file providing the path to the file within the `--in-settings-file`. +An example of the contents of the file would be like this: +```json +{ + "address" : "0.0.0.0:3030", + "tls" : { + "cert_file" : "./foo/bar.pem", + "priv_key_file" : "./bar/foo.pem" + }, + "cors" : { + "allowed_origins" : ["https://foo.test", "https://test.foo"], + "max_age_secs" : 60 + }, + "db_url": "./database.sqlite3", + "block0_path": "./test/bin.test", + "log" : { + "log_output_path" : "./server.log", + "log_level" : "error" + } +} +``` + +There is an option to dump a configuration into a `JSON` file with the `--out-settings-file` providing the path to the out file. +This option will dump the configuration with the defaults, already set environment variables or provided flags into the file. + +## CLI + +The `vit-servicing-station-cli` is an accompanying tool to interact with some of the ecosystem. +Right now it offers the following commands: + +### api-token + +#### generate +It is possible to generate api tokens (URL safe base64 encoded) with a simple command. For example: +```bash +❯ ./vit-servicing-station-cli api-token generate +F-4QxU3FrbH7qg +``` + +It can be combined with two (optional) arguments: +* `--n` number of tokens to generate +* `--size` length (in **bytes**) of the tokens + +#### add +We can add a token to some db using the tool too: + +```bash +./vit-servicing-station-cli api-token add --db-url ../../db/vit_station_new.db --tokens 1CNDAo43fo4ktQ 0wNbdTDMJCFcnw +``` + +We need to provide the url to the database where we want it to be inserted (with `--db-url`) and the tokens we want too +insert (with `--tokens` followed by the tokens). +Notice that the token is in the same URL safe base64 encoding as we generated in the previous command. + +**If not specifying** the `--tokens` argument the cli will read the input from the standard input the tokens we want to insert. +This enables the command to be piped from another command, for example: + +```bash +./vit-servicing-station-cli api-token generate --size 10 --n 10 | ./vit-servicing-station-cli api-token add --db-url ../../db/vit_station_new.db +``` diff --git a/src/vit-servicing-station-f10/ci/release-info.py b/src/vit-servicing-station-f10/ci/release-info.py new file mode 100644 index 0000000000..a2fe804078 --- /dev/null +++ b/src/vit-servicing-station-f10/ci/release-info.py @@ -0,0 +1,94 @@ +import json +import os +import re +import sys +from datetime import date +from subprocess import Popen, PIPE + +def check_version(crate): + # Checks package version for matching with the current tag reference + if ref is not None and ref != 'refs/tags/v' + str(crate[0]): + return 0 + else: + return 1 + +def print_error(crate, match): + # Print errors for packages which versions didn't match tag reference + if not match: + print( + '::error file={path}::version {version} does not match release tag {tag}' + .format(tag = ref, version = str(crate[0]), path = str(crate[1])) + ) + +def bundle_version(crates): + # Reads package versions from workspace manifest file + channel = Popen( + ['cargo', 'metadata', '--format-version=1', '--no-deps'], + stdout=PIPE + ) + + # parse json data + data = json.load(channel.stdout).get('packages') + + # read, map and assign workspace crates versions to bundle package versions + for package, _ in enumerate(data): + if data[package]['name'] in crates: + crates[data[package]['name']].append(data[package]['version']) + crates[data[package]['name']].append(data[package]['manifest_path']) + + # Checks package versions of the crates bundle for consistency with the given tag reference + consistency = list(map(check_version, list(crates.values()))) + + # Print errors for packages which versions didn't match tag reference + if not all(consistency): + list(map(print_error, list(crates.values()), consistency)) + sys.exit(1) + elif all(consistency): + version = list(crates.values())[0][0] + return version + + +event_name = sys.argv[1] + +date = date.today().strftime('%Y%m%d') + +ref = None +if event_name == 'push': + ref = os.getenv('GITHUB_REF') + if ref.startswith('refs/tags/'): + release_type = 'tagged' + elif ref == 'refs/heads/ci/test/nightly': + # emulate the nightly workflow + release_type = 'nightly' + ref = None + else: + raise ValueError('unexpected ref ' + ref) +elif event_name == 'schedule': + release_type = 'nightly' +else: + raise ValueError('unexpected event name ' + event_name) + + +# Cargo workspace crates/packages for versioning bundle +crates = { + 'vit-servicing-station-cli-f10':[], + 'vit-servicing-station-lib-f10':[], + 'vit-servicing-station-server-f10':[], + 'vit-servicing-station-tests-f10':[] +} + +version = bundle_version(crates) +release_flags = '' +if release_type == 'tagged': + tag = 'v' + version +elif release_type == 'nightly': + version = re.sub( + r'^(\d+\.\d+\.\d+)(-.*)?$', + r'\1-nightly.' + date, + version, + ) + tag = 'nightly.' + date + release_flags = '--prerelease' + +for name in 'version', 'date', 'tag', 'release_type', 'release_flags': + print('::set-output name={0}::{1}'.format(name, globals()[name])) diff --git a/src/vit-servicing-station-f10/ci/strip-own-version-from-cargo-lock.pl b/src/vit-servicing-station-f10/ci/strip-own-version-from-cargo-lock.pl new file mode 100755 index 0000000000..70729f33ed --- /dev/null +++ b/src/vit-servicing-station-f10/ci/strip-own-version-from-cargo-lock.pl @@ -0,0 +1,16 @@ +#!/usr/bin/perl -p + +BEGIN { + $ln = 0; $ours = 0; +} + +if (/^\[\[package\]\]/ .. ($ln == 2)) { + if (/^name = "vit-servicing-station-.*"/) { + $ours = 1; + } else { + s/^version =.*// if $ours; + } + ++$ln; +} else { + $ln = 0; $ours = 0; +} diff --git a/src/vit-servicing-station-f10/default.nix b/src/vit-servicing-station-f10/default.nix new file mode 100644 index 0000000000..c7d0c267d2 --- /dev/null +++ b/src/vit-servicing-station-f10/default.nix @@ -0,0 +1,14 @@ +( + import + ( + let + lock = builtins.fromJSON (builtins.readFile ./flake.lock); + in + fetchTarball { + url = "https://github.com/edolstra/flake-compat/archive/${lock.nodes.flake-compat.locked.rev}.tar.gz"; + sha256 = lock.nodes.flake-compat.locked.narHash; + } + ) + {src = ./.;} +) +.defaultNix diff --git a/src/vit-servicing-station-f10/diesel.toml b/src/vit-servicing-station-f10/diesel.toml new file mode 100644 index 0000000000..8f685b3408 --- /dev/null +++ b/src/vit-servicing-station-f10/diesel.toml @@ -0,0 +1,5 @@ +# For documentation on how to configure this file, +# see diesel.rs/guides/configuring-diesel-cli + +[print_schema] +file = "vit-servicing-station-lib-f10/src/db/schema.rs" diff --git a/src/vit-servicing-station-f10/doc/api/v0.yaml b/src/vit-servicing-station-f10/doc/api/v0.yaml new file mode 100644 index 0000000000..45534ea252 --- /dev/null +++ b/src/vit-servicing-station-f10/doc/api/v0.yaml @@ -0,0 +1,793 @@ +openapi: 3.0.3 + +info: + title: VIT as a Service Rest API + description: Voting Implementation Testnet Rest API v0 + version: 0.2.2 + contact: + url: "http://github.com/input-output-hk/vit-servicing-station" + +tags: + - name: fund + description: Information on treasury fund campaigns. + - name: challenge + description: Information on challenges, structuring proposals within a fund. + - name: proposal + description: Information on funding proposals. + - name: reviews + description: Information on reviews. + - name: snapshot + description: Continuous snapshot related information. + +servers: + - url: "http://localhost" + +paths: + /api/v0/fund: + get: + operationId: getCurrentFund + summary: Get available fund + tags: [fund] + description: | + Retrieves information on the current treasury fund campaign. + responses: + "200": + description: Valid response + content: + application/json: + schema: + allOf: + - $ref: "#/components/schemas/Fund" + - $ref: "#/components/schemas/NextFundInfo" + + /api/v0/fund/{id}: + get: + operationId: getFund + summary: Get fund by id + tags: [fund] + description: | + Retrieves information on the identified treasury fund campaign. + parameters: + - in: path + name: id + schema: + type: integer + required: true + responses: + "200": + description: Valid response + content: + application/json: + schema: + $ref: "#/components/schemas/Fund" + "404": + description: The requested fund was not found + + /api/v0/funds: + get: + operationId: getFunds + summary: Get list of the fund id + tags: [fund] + description: | + Get list of all the funds in the db. + responses: + "200": + description: Valid response + content: + application/json: + schema: + type: array + items: + properties: + id: + type: integer + format: int32 + description: Identifier of the fund campaign. + "404": + description: The requested fund was not found + + /api/v0/proposals: + post: + operationId: getProposalsByChainInfo + summary: Get proposal by id + tags: [ proposal ] + description: | + Retrieves queried proposals. + requestBody: + description: List of voteplan id and indexes query + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/ProposalsByVoteplanIdAndIndexQuery' + responses: + "200": + description: Valid response + content: + application/json: + schema: + $ref: "#/components/schemas/ProposalWithChallengeInfo" + + get: + operationId: getAllProposals + summary: Get all available proposals + tags: [proposal] + description: | + Lists all available proposals. + responses: + "200": + description: Valid response + content: + application/json: + schema: + items: + $ref: "#/components/schemas/ProposalWithChallengeInfo" + + /api/v0/proposals/{id}: + get: + operationId: getProposal + summary: Get proposal by id + tags: [proposal] + description: | + Retrieves information on the identified proposal. + parameters: + - in: path + name: id + schema: + type: integer + required: true + responses: + "200": + description: Valid response + content: + application/json: + schema: + $ref: "#/components/schemas/ProposalWithChallengeInfo" + "404": + description: The requested proposal was not found + + /api/v0/challenges: + get: + operationId: getAllChallenges + summary: Get all available challenges + tags: [challenge] + description: | + Lists all available challenges following insertion order. + responses: + "200": + description: Valid response + content: + application/json: + schema: + items: + $ref: "#/components/schemas/Challenge" + "404": + description: The requested challenge was not found + + /api/v0/challenges/{id}: + get: + operationId: getChallenge + summary: Get challenge by id + tags: [challenge] + description: | + Retrieves information on the identified challenge, + including the proposals submitted for it. + parameters: + - in: path + name: id + schema: + type: integer + required: true + responses: + "200": + description: Valid response + content: + application/json: + schema: + $ref: "#/components/schemas/ChallengeWithProposals" + "404": + description: The requested challenge was not found + + /api/v0/reviews/{proposal_id}: + get: + operationId: getProposalReviews + summary: Get reviews related to a proposal + tags: [reviews] + description: | + Retrieves advisor reviews information for the provided proposal id. + parameters: + - in: path + name: proposal_id + schema: + type: integer + required: true + responses: + "200": + description: Valid response + content: + application/json: + schema: + $ref: "#/components/schemas/AdvisorReviews" + + /api/v0/snapshot/{tag}/{voting_key}: + get: + operationId: getVotingPower + summary: Get voting power by voting key + tags: [snapshot] + description: | + Get voting power by voting key + parameters: + - in: path + name: tag + schema: + type: string + required: true + - in: path + name: voting_key + schema: + type: string + required: true + responses: + "200": + description: Success + content: + application/json: + schema: + $ref: "#/components/schemas/VotingPowers" + "400": + description: Not found + + /api/v0/snapshot: + get: + operationId: getSnapshotTags + summary: Get list of available versions + tags: [snapshot] + description: | + Get list of available snapshot versions, which can be used to retrieve + voting power + responses: + "200": + description: Success + + /api/v0/admin/snapshot/{tag}: + put: + operationId: updateSnapshot + summary: Replace the snapshot data for the given tag + tags: [snapshot] + description: | + Replace the snapshot data for the given tag + parameters: + - in: path + name: tag + schema: + type: string + required: true + requestBody: + description: list of VoterHIR entries in json format + required: true + content: + application/json: + schema: + type: array + + responses: + "200": + description: Success + + /api/v0/admin/fund: + put: + operationId: putFund + summary: Update or create fund + tags: [fund] + description: | + Update or replace the fund in the db with the one provided. + parameters: + - in: path + name: id + schema: + type: integer + required: true + responses: + "200": + description: Valid response + "400": + description: The input is malformed. + + +components: + schemas: + Fund: + properties: + id: + type: integer + format: int32 + description: Identifier of the fund campaign. + fund_name: + type: string + description: Human-readable name of the fund campaign. + fund_goal: + type: string + description: Description of the campaign's goals. + voting_power_info: + type: string + deprecated: true + description: Deprecated, same as registration_snapshot_time. + voting_power_threshold: + type: integer + format: int64 + description: | + Minimal amount of funds required for a valid voter registration. + This amount is in lovelace. + rewards_info: + type: string + fund_start_time: + type: string + format: date-time + description: Date and time for the start of the current voting period. + fund_end_time: + type: string + format: date-time + description: Date and time for the end of the current voting period. + next_fund_start_time: + type: string + format: date-time + description: Date and time for the start of the next voting period. + registration_snapshot_time: + type: string + format: date-time + description: Date and time for blockchain state snapshot capturing voter registrations. + next_registration_snapshot_time: + type: string + format: date-time + description: Date and time for next blockchain state snapshot capturing voter registrations. + chain_vote_plans: + type: array + items: + $ref: "#/components/schemas/VotePlan" + description: Vote plans registered for voting in this fund campaign. + challenges: + type: array + items: + $ref: "#/components/schemas/Challenge" + description: A list of campaign challenges structuring the proposals. + goals: + type: array + items: + $ref: "#/components/schemas/Goal" + description: The list of campaign goals for this fund. + insight_sharing_start: + type: string + format: date-time + proposal_submission_start: + type: string + format: date-time + refine_proposals_start: + type: string + format: date-time + finalize_proposals_start: + type: string + format: date-time + proposal_assessment_start: + type: string + format: date-time + assessment_qa_start: + type: string + format: date-time + snapshot_start: + type: string + format: date-time + voting_start: + type: string + format: date-time + voting_end: + type: string + format: date-time + tallying_end: + type: string + format: date-time + + VotePlan: + properties: + id: + type: integer + format: int32 + description: API identifier of the vote plan. + chain_voteplan_id: + type: string + format: hash + description: Blockchain ID of the vote plan transaction. + chain_vote_start_time: + type: string + format: date-time + description: Date and time for the start of voting on this vote plan. + chain_vote_end_time: + type: string + format: date-time + description: Date and time for the end of voting on this vote plan. + chain_committee_end_time: + type: string + format: date-time + description: Date and time for the end of tallying on this vote plan. + chain_voteplan_payload: + type: string + description: | + Whether the voting is done using the public or the privacy-preserving protocol. + fund_id: + type: integer + format: int32 + description: The fund ID this vote plan belongs to. + + Proposal: + properties: + internal_id: + type: integer + format: int32 + description: The API identifier for this proposal. + proposal_id: + type: string + description: Unique identifier for this proposal. + proposal_category: + type: object + properties: + category_id: + type: string + category_name: + type: string + category_description: + type: string + proposal_title: + type: string + description: Short title of the proposal. + proposal_summary: + type: string + description: Brief description of the proposal. + proposal_public_key: + type: string + format: binary + proposal_funds: + type: integer + format: int64 + description: The amount of funds requested by this proposal. + proposal_url: + type: string + description: URL to a web page with details on this proposal. + proposal_files: + type: string + proposer: + type: object + properties: + proposer_name: + type: string + description: Name of the author of the proposal. + proposer_email: + type: string + description: Email address of the author of the proposal. + proposer_url: + type: string + description: URL to a web resource with details about the author of the proposal. + chain_proposal_id: + type: string + description: Identifier of the proposal on the blockchain. + chain_proposal_index: + type: integer + format: int64 + description: Index of the proposal in the vote plan. + chain_vote_options: + description: Map of named vote options to choice indices. + type: object + chain_voteplan_id: + type: string + description: Identifier of the vote plan this proposal belongs to. + chain_vote_start_time: + type: string + format: date-time + description: Date and time for the start of voting on this proposal's vote plan. + chain_vote_end_time: + type: string + format: date-time + description: Date and time for the start of voting on this proposal's vote plan. + chain_committee_end_time: + type: string + format: date-time + description: Date and time for the end of tallying on this proposal's vote plan. + chain_voteplan_payload: + type: string + description: | + Whether the voting is done using the public or the privacy-preserving protocol. + + ChallengeType: + type: string + enum: + - simple + - community-choice + + ProposalWithChallengeInfo: + discriminator: + propertyName: challenge_type + mapping: + simple: "#/components/schemas/SimpleProposal" + community-choice: "#/components/schemas/CommunityChoiceProposal" + allOf: + - $ref: "#/components/schemas/Proposal" + - type: object + properties: + fund_id: + type: integer + format: int32 + challenge_id: + type: integer + format: int32 + reviews_count: + type: integer + format: int32 + description: Total amount of individual reviews per assessor + challenge_type: + $ref: "#/components/schemas/ChallengeType" + + SimpleProposal: + allOf: + - $ref: "#/components/schemas/ProposalWithChallengeInfo" + - type: object + properties: + proposal_solution: + type: string + example: + { + "internal_id": 22, + "proposal_id": "4af0e6b3452cd4ee822b2ec1859fd57b5512f85c14875f408081aa9b796dfc6e", + "proposal_title": "Authentication for DeepFake Defense", + "proposal_summary": "Deepfake videos are dangerous.", + "proposal_solution": "We will create a cryptographic proof on Cardano that verifies videos are real by connecting their blockchain ID.", + "proposal_public_key": "Fvd8zI3DH85qnaChQE6Aymt1diMJP32LB0AdpheZh/Q=", + "proposal_funds": 12000, + "proposal_url": "http://ideascale.com/t/UM5UZBd2t", + "proposal_files_url": "", + "proposal_impact_score": 0, + "proposer": + { + "proposer_name": "Community Member", + "proposer_email": "example@vit.iohk.io", + "proposer_url": "", + "proposer_relevant_experience": "Cryptography student, website development, blockchain technologist.", + }, + "chain_proposal_id": "4af0e6b3452cd4ee822b2ec1859fd57b5512f85c14875f408081aa9b796dfc6e", + "chain_proposal_index": 0, + "chain_vote_options": { "blank": 0, "yes": 1, "no": 2 }, + "chain_voteplan_id": "b1eeb620baf1445672f6c9422481aff0f6babaf775760d187a7703027e098166", + "chain_vote_start_time": "2021-02-10T14:40:27+00:00", + "chain_vote_end_time": "2021-02-11T10:10:27+00:00", + "chain_committee_end_time": "2021-02-11T11:40:27+00:00", + "chain_voteplan_payload": "public", + "chain_vote_encryption_key": "", + "fund_id": 20, + "challenge_id": 2, + "challenge_type": "simple", + } + + CommunityChoiceProposal: + allOf: + - $ref: "#/components/schemas/ProposalWithChallengeInfo" + - type: object + properties: + proposal_brief: + type: string + proposal_importance: + type: string + proposal_goal: + type: string + proposal_metrics: + type: string + example: + { + "internal_id": 31, + "proposal_id": "494d8d685e3b195eb5610494f1721db7747df0517cb1b6a705bb3cebfef3c998", + "proposal_title": "A for ADA Cryptoalphabet 4 children", + "proposal_summary": "How to increase general awareness about Cardano and cryptocurrencies?\nHow to make fun community-building incentives?", + "proposal_brief": "A for ADA", + "proposal_importance": "We need to get them while they're young.", + "proposal_goal": "Nebulous.", + "proposal_metrics": "\\- Number of people engaged into the creation of Cryptoalphabet", + "proposal_public_key": "zqUCWwguCt6+NHYjkpvasvccuA7l2SuabE+1C0bzf3Y=", + "proposal_funds": 4800, + "proposal_url": "http://ideascale.com/t/UM5UZBd1p", + "proposal_files_url": "", + "proposal_impact_score": 133, + "proposer": + { + "proposer_name": "Community Member", + "proposer_email": "example@vit.iohk.io", + "proposer_url": "", + "proposer_relevant_experience": "", + }, + "chain_proposal_id": "494d8d685e3b195eb5610494f1721db7747df0517cb1b6a705bb3cebfef3c998", + "chain_proposal_index": 9, + "chain_vote_options": { "no": 2, "yes": 1, "blank": 0 }, + "chain_voteplan_id": "b1eeb620baf1445672f6c9422481aff0f6babaf775760d187a7703027e098166", + "chain_vote_start_time": "2021-02-10T14:40:27+00:00", + "chain_vote_end_time": "2021-02-11T10:10:27+00:00", + "chain_committee_end_time": "2021-02-11T11:40:27+00:00", + "chain_voteplan_payload": "public", + "chain_vote_encryption_key": "", + "fund_id": 20, + "challenge_id": 1, + "challenge_type": "community-choice", + } + + Challenge: + properties: + id: + type: integer + format: int32 + challenge_type: + $ref: "#/components/schemas/ChallengeType" + title: + type: string + description: + type: string + rewards_total: + type: integer + format: int64 + fund_id: + type: integer + format: int32 + challenge_url: + type: string + highlights: + $ref: "#/components/schemas/ChallengeHighlights" + + ChallengeWithProposals: + allOf: + - $ref: "#/components/schemas/Challenge" + - type: object + properties: + proposals: + type: array + items: + $ref: "#/components/schemas/Proposal" + + AdvisorReview: + properties: + id: + type: integer + format: i32 + proposal_id: + type: integer + format: i32 + assessor: + type: string + impact_alignment_rating_given: + $ref: "#/components/schemas/Rating" + impact_alignment_note: + type: string + feasibility_rating_given: + $ref: "#/components/schemas/Rating" + feasibility_note: + type: string + auditability_rating_given: + $ref: "#/components/schemas/Rating" + auditability_note: + type: string + ranking: + description: Measure of quality of this review according to veteran community advisors + type: string + enum: + - Excellent + - Good + - FilteredOut + - NA + + Rating: + type: integer + format: i32 + minimum: 0 + maximum: 500 + description: Rating in range [0, 500] (0 stars to 5 stars) + + AdvisorReviews: + type: array + items: + $ref: "#/components/schemas/AdvisorReview" + example: + [ + { + "id": 1, + "proposal_id": 1234, + "rating_given": 0, + "assessor": "za_assessor_432", + "note": "foo bar", + "tag": "Alignment", + }, + ] + + ChallengeHighlights: + properties: + sponsor: + type: string + + ProposalsByVoteplanIdAndIndexQuery: + type: array + items: + $ref: "#/components/schemas/ProposalVoteplanIdAndIndex" + + ProposalVoteplanIdAndIndex: + properties: + voteplan_id: + type: string + indexes: + type: array + items: + type: integer + format: i64 + + VotingPowers: + type: array + items: + $ref: "#/components/schemas/VotingPower" + example: + [ + { + "voting_power": 1000, + "voting_group": "representative", + }, + ] + + VotingPower: + properties: + voting_power: + type: integer + format: u64 + voting_group: + type: string + + NextFundInfo: + properties: + next: + properties: + id: + type: integer + format: int32 + description: Identifier of the fund campaign. + fund_name: + type: string + description: Human-readable name of the fund campaign. + insight_sharing_start: + type: string + format: date-time + proposal_submission_start: + type: string + format: date-time + refine_proposals_start: + type: string + format: date-time + finalize_proposals_start: + type: string + format: date-time + proposal_assessment_start: + type: string + format: date-time + assessment_qa_start: + type: string + format: date-time + snapshot_start: + type: string + format: date-time + voting_start: + type: string + format: date-time + voting_end: + type: string + format: date-time + tallying_end: + type: string + format: date-time + + Goal: + properties: + id: + type: integer + format: int32 + goal_name: + type: string + fund_id: + type: integer + format: int32 diff --git a/src/vit-servicing-station-f10/docker/master/Dockerfile b/src/vit-servicing-station-f10/docker/master/Dockerfile new file mode 100644 index 0000000000..5652fc1738 --- /dev/null +++ b/src/vit-servicing-station-f10/docker/master/Dockerfile @@ -0,0 +1,35 @@ +# Simple dockerfile example to build a vit server + +FROM ubuntu:18.04 +LABEL MAINTAINER IOHK +LABEL description="Vit servicing station server" + +ARG PREFIX=/app +ENV ENV_PREFIX="vit_server_env" + +COPY database.db /data/database.db +COPY block0.bin /data/block0.bin + + +# prepare the environment +RUN apt-get update && \ + apt-get install -y git curl && \ + mkdir -p ${ENV_PREFIX} && \ + cd ${ENV_PREFIX} && \ + git clone --recurse-submodules https://github.com/input-output-hk/vit-servicing-station src + +#install rustup +RUN apt-get install -y build-essential pkg-config libssl-dev && \ + bash -c "curl https://sh.rustup.rs -sSf | bash -s -- -y" && \ + ~/.cargo/bin/rustup install stable && \ + ~/.cargo/bin/rustup default stable + + +# install the node and jcli from source +RUN cd ${ENV_PREFIX}/src && \ + git submodule update --init --recursive && \ + ~/.cargo/bin/cargo build --all --release --locked && \ + ~/.cargo/bin/cargo install --path vit-servicing-station-server + + +CMD ["bash", "-c", "~/.cargo/bin/vit-servicing-station-server --db-url /data/database.db --block0-path /data/block0.bin --log-output-path vit-servicing-station.log --log-level info"] diff --git a/src/vit-servicing-station-f10/docker/master/block0.bin b/src/vit-servicing-station-f10/docker/master/block0.bin new file mode 100644 index 0000000000000000000000000000000000000000..0e520a00e8a2918bcff88ec8c1041ab71d9f3c44 GIT binary patch literal 1177049 zcmaIdby!u~9xr?vq*GG5yFn1?M!HKnq>*l29Qvl+JhW_ndvsx#M~6 zU4O8a&-(E7H|H8_)SN&lLqI@aTm}90^FI&P5!b%H$K^6a`m0(!QPz)HHP%amIU*RU zd#$@sEhD)9f&aG`fBt#{10wYAxAo^z+#rM@A-W+Tp;Q0uq5l00{qJX3NEir+l1@lr zD475M1r)-+-!Op^gMf^MfDHWmC#*jNjMTs1fPl&Q=N0e_`Om*$2LE{lwXx%M#81n9 z=EHoZwCC7FAK>dDWzF>~M(Kx|)pYq-^e|kG&zV@OsJ+JAqFBYQd-E*@hx*&1FgUqI z%k{?ywc=5HxST6m{gcWF&7fQn1c){4n#p98+S1sf?wdwjOr7ISh-C;Z2*`i`=QQXL za$gqkG(`e5iMTb6<0@IGD&My&RQ1BRW=B<5cM9hEJH2x$Gt7n5B-SLFAIiAL+9xX1 zgRyk(_x*3v!_}$sRqGex{b~oEE#0T1&(1kx% zig+A!57!Z*<^)qh+gp7(l*(C4|D}=YnZfzr-9 z{s=}lqRV-e9+MIi5?I?j9K5eQ`3XV57UpRGztQ{ujec49NIEV^n>`V?QNuy2KRiz* zZPjPbRS44}gAPVFpev^pruLzhSFEBr`s+g46hjbb+`+{_DEy~|D9AyG{M|x$|7sz| zK}p;$l#cj^fha!eLX}qe0|r*EikSX9$s)zMkZP*3I}`Zis8t(2t@VVbMM}T=SKu`MIJFD`b;tb@ zN_@W;YIr~+1OevnuKfQA{Hrzmr$S4pY;qqX#xUcenmXKj9V(8`&=nab`zh|aRqX!? zoWd6x>Z}#Tbg!2xy|(J}?xBYu$Ou;#gy8+pAv?1|F#LVUWPcs9o8UA=6iQ5k3T==S zmcfW^%8DE0V4xr?>fBfL90&sMfV?;V^P7K_@}J+Vd@+x}sHLeo>rUQ}c#yOlf~A#w z-ThwAm?k9TuirGjb|3hkPcTF1zn|cfVhQuA!}A3h3jM0AtmG%L1-rl!v)oySX)LIJ zeS&Zeu7#5JWNyQ;r{P*2>+-I?wPCKZ=dKiT#f}gJu-Sw^AT1ye|LIl!dPe*AYwW+D zArbXz^xkYI)xq2)A=MBbzJ{VP;XdQqgw|0CS0EoxldC$eGhgv(A|J> z|JmcbmN<&{JrV{Jljig@v}4g|TqkPCuuB%Fpg#xW=D{JILZH%)5F;V^6D3Qk0JM>X zZ7b9hd+A~~hV7wPRR>w8=3R>HobwS+hGnDayb*NxWNNj(><;UV8}lL~DeUCdNjGgG`~MQUWnhI+qq-2_1(6Nqnt z9%ajY6DAK`NXvlW5V(M;*M?U4{e|+epWwH{4b|;qs5jI&9ckQe=&#voT>T`{f8ORk z#GrghrjDP#bBFDzF~OO8kL|jo?)ulb@c%y3>r}~=hNiAVFy0jBa6FirLy_!X%_!Ns zcD(&w(eKHNK`&0L%2sMzX!)u=9>7;V%gk19R;>uA`sF)mlOo~pAV8DxzM17roBNK( z%`z&+(u6;PUa-Sra>;ne@6hw9Y?c}N{sFPX*!0#av(17o9dY|vmItz);u~(*A%p;8 ztj$Iubk5>8Ps>eeWUrHgV9vLEB?~qN4ckGya8t>>=_7QqhR}C-E1B_lY0&W4sMNNJ zz58-lIWB3z+0w#SZc~Ih1|HBam^hG;QDbo{ePS<;Z@&v!IA`8x1gZd%8s@j2wvk7`Syr00XbM_?uh zC*=0f6H_x8dYZ}gdIO_8_sOW)H9NNzO zLo$p9aQ9=XUW#t5*!n+$g4Q25bZN>71x^v5Af8S zU=K81D|Ii?;WHt!&<`tGv_)z;lP+$Cu9U?r9gI>%u^74B39H^G}@~4c)P;&b{D(YX|sLtM{|| z`pK1`uVTqkQs_kkbcAIi1un_6Qf+|W?j-*wtjG= zh&--9j!IFDWmr~+llSr9lh5$G%_Bnr_ze*;)wzU^fd7VC>C zzydsxo*+OF1&JjL zT$x$J%&L{7m~$h+Ct13i1o$tA`?TL&oYf>_TRXz#`u9&u(zu+w%J=Wqi@?^fhW^ zSHa|Zd$ylxlDzxEMh@T-+2WUHVtpu84ev$FKDl#vAFjJ21{Mc%YQoxN(I0#RIAM~x zQz4YLr7B`JS%D6Mjns2nC%m3>tjr$O)Q>Cjf0hLQ^kRhaArA{drv|JJ+CRCk>%z|$ zb7EDe>j#h2HP7Tn(?@`GuJ9mHsXp&Ky1j%dd9-Jg=IHK_-Dc>J7(Lg$*YNqZ0Oz?K zhIkrOWK_&X9b_`F;=I|@O|Bqe+V=1j>!9@Mr2_b-(IbYa7z(4Lew>v5*9K{6fiRkL zypMBjQwVD_g@s=LzF@2StrAo5_Bn1yi?|P+jYMOFn(9`#v)BmKruJJrtkc)nV@GB31SW?GP%N7(y5o+2s8n>@NgO(iQhp~ z4(_CQf0xf1UUA0CKefZKV@oS6zk%PC34Yd%&PV>I9SK2K!I%~ppJ z1=-|UH3M8H=+ZZ2k#Mhs%UQ6lA^xCV`4GOxO-z$&TDnqJTJjm-mMd?N;UUnh;HvcB zuolmu(VOme8f0DJ8cDIsa^Q3Qy_Ws^@lTtv&+_G-)3D0sH7FR>m&Jm^64r}zgx2uz z9$TKCH|8(KNYB>@dM^SU zp}W#~LSQg=Y`I758E9Ty1$!APnPAR@dIs$J3d2Hnc6Va6OzG;hhu-{2 zjd~7jo9s?HP|P1!$b6e?DU{?xg0--oVb`0JGJyi5FURTEN8u&Q-^2ml3`-gp!stYp zwRB$%CFr7G4hwPnTfc0e&5qw-&(<{?;2E>rRH_iPcx+=co~P;gRV$n+Lne}j10?~E zQPxDf7yv(iza+%M`*lrGhv+UA83*=mP|FxXtbt6Aful6l-|Z8?wYRQ&|2#b@(_x#w zTgbU+W888iyOL!ZDmc9~U|^RA)0r2TW=&mle$#hBtrl!cvB03N3t4|2mq0Yv&(NC9 z%mdQRi3Hz6arL#}TK_nSjXZ>7lW$GXi5Jc_E8EV2#>sF2_)w|A@%GkT-@&u5-sH?i zNLi_ev*OJ69u-oA#9!}wcmYno{DZ>gt(zl1=k-~Bqs=bN+|XN8{{i$@EFPa?DBn~7 zoMJ80Lh0U^p@T>WPx0GuyQCT$tTpZ?U6wb!k=Gs4F2FEEVKUOyjW4~MuMjDf% zqP(cdsoGS$yLvb%<4gg#BKHsxqziEdYl}uQA^X(V!-iLWAwm5TXTAj$Vg*?B0KbVJ z!|lCzo#DtIYvr8)qofD@Cme~?=l+9VM$gm6}3(w0TT`EQ|B;L}+uIS{;>+-Fu2i|Y~AK`oWgru;WV+JcX_O1bjs=9omT_t_Gy(U^2a$N zWF|~+y90HvsOdkvNKDAAY@-WyRc4Mv06f;G<&j9~`JDFLBXNnjE{tB#TxsV|u)n_p9NwyHVfYXKGOB=b z0UT?45{t;bL~UnN+WgO03k#;b$E&W5h@aNsQ z`Z+l53^Zky6-ym*>zI zUACHga1gDeEJ?qGfZM~s_*4#XtKrpkhwq1dfu4Lc=dm?qGaZ@rKeXQm`|w7~RR1iz z2Dl#XfbTZP?zniW7>9Q*Ryg;^a?<=EC;LL=mTKu0jW&Q|O*Gt^=g6yWPokG2h?D7` zoN4aY#2-^YhDGZq7d?TUUUVML&;0O*Ux^+KdJLPK3jQ7pyrGK7`7RC_GZZ zYQlcciS<1?gJF%gjj!SODSM2S*(x;pE_b~Z6J9C6jZ0_aiJT!%meVYm?HDTqd~CMh zVOeUmLO;}=j1X1F0-U_CV|~il?Ri4pRxzUfJY%KZO|{F}r$F?oTEbs#ofJ7 zCVHwGtU)^7Ie?p`N??)D)ipM+%knfg+!86`uapbD5y#s>c7w*Su@(b3UrdL6%OCn` z{o*-^#JI#Bk!xd-L%BgD^F3>!WmBuacjW(m{4GD%U10{#1E8qQ(+cClXrW#2Lx z!`;M;v&luRWCB#O0FLA9xmDHDl1(gSsbITmS7>+WH-8n6D{L1Wnq{C~*#z)SKX{x% zbU6ueG<6uH=CX0|4O}*CXAaLja#z~waW1gK-k(fJk5S~zKDMp+Z81aY-)xWuIa6Td zuMm9Pqq}7Wa{RohqO$=V@r_+%CZi3q2N|@BB~E>B5`l+Mu26JUaB0rs(=Lc?gL9e# zwYl=LyZhB<3Cd6rjw4|J3%613R1N%U5BL_tOdK1eEg+DOx@J?Q4!SBVTJ)9(qkf>w zc>L)c1RUx|`8aDAw7Qe=SLf*Q>{|lRuWHQwwkF_a%Z;z-8B1;fPQ*SzR73h(r&;y0 z+r_T|o64TWq2@WId`#Ms-b5Jp5P&P{NZEA46AtXxi;ocs?8R&&A~iK`c`-H|Gq@R4 zQ1t-ZaZ)#4{?aw(vLkt*F>nc<2eAd_%bV(SxU5JSiYxPf>;JTwi5ySV54^5*lzZ6p znWoNdDr3y|SfAN6eBK2<*u4}-0_o{#$ZhiS6#X#9Xa*&t_XpX^!^zTp#c!_E>HO%7 zRlpv&Rw-$GQ~7WR+MTKG6&=66RBFi>oDlSs>2cK=>!TI85bEp}KY{UvY}Dm4-B~p| zq&##>Ri}KEC)WM86kwkV&jJ)PIfzCtPbSpL{N{}r{&(nN3u(R&T}InVKW^9s>facH zOBJl;Gmdq14et4$4&o{6@5~UZd(pJ#O!>$dAcli8kvW0%adqazqU_FJz_)U{@j8a0=uO{ zDwhr%IG#C^@xDimk1U8Kl5*7Rr98%exHj4=ZGQ;@>8ZBfIhg$vZ$p#)7MV^Xb$r7L zxAAdQJ#eb|D<=h5`2p@eB6wYBhQ1<#qmc!nYB}lGNcpr8>sx@7RCi{dk^!#d{iDaA zvK9wRxCw&jFs^k!a`e}KI-~a)&rCP!P$y~tJB|dpC_5B$=K53>h)#DIt$agDytgt@ z*0N)L&>7Me*Qr1;!5Syrb;B9hnvbQ_F++IS$W0t37>i;<2?r|@qOqSO0PaV*cR`DS z9oSz#ZZ4NI=;Pw5AhosTJOw>I6SFl22aehTZ{es0FyS#0>2^ZX!mne#ydY{I2xkjB zMfH_94-{qq>Beu(_8(kfO@R}a z#yx$gn0Mtt>{LR{Tft;_Z{Im=55$4H5S!|+==9zf`?*2l^sUO!!6Sxj;>+Gfdo+I` z*|b%nodt?P5laZVbcV?6Ll!tL-kIu6(WYjp{_snaM~9-9gf}=B;MTE^DLFrR^i$*8VI0;hSQ+@n3)1ahGxcNJKWRF7e zD@}05A;A2K%xPKU2fph3X1dO8o2@1X3R1Hoep2l%_Z3FSMl(qi6PaAP@lgCs1#Gu#*8vmNctm}W1DQUYiT9P+&Oe_^ca#fwURtyW1# z2Y6tnSpZ9W!UV=4Uw@Y69}53Yr$&8h%Z=iZ5EUH7w_rbWl?%^3zDQnWJ-M6ZsJoXB z`Qehve!uKe;2YVK+ zUxg5{v>&W6k$+9Twf%52+no?De70vNZ~jeSl&=n4B9f!Zk0Z0ANziW)YQSpva;>5$ zyN%Xsw{Ye+B(+gdPXOr)tBuSa1aEWMIYKOjLj_YT6urZ7TYZS`SqrB*GA>mBZotkE zU{IW_lN@Lk5IIRMo7}C*gU--tBc$=+rrrnc8Q>+aO5{jsO5qhsvaU1OIE>SD1oMWi- zO{Y-wIh!ySz@6nUUQk&{x#{6Dw)vl=h!q&}e8bvAM`YbqQN}zd8~}b6qxJUA^ivy; z{^zc`SgHD>;aP^f4WAqBq@nck!d0-3JTTr38$}N|D>;pzkq_XUS`I?AwBJE4cBI{X zjY>xgE)i!u^ViSk_W3tb#I-qe$C)(o`jjs-*GLFmce}ac2EaXz9e+Z7{JgJecDO4L zv!tVYzX`{WONEL}r(HD39#K2Tf!aL+eFS6e`bV%s7K%F0PM1GGO6r+5fACLPk65gH ziw%x^P$5Y+4hL#oMf1p4OmFcO&uB#HpY=S8tcF;Waj^Y2fppy`*U1#AcMb6^jp4Ou zdsvB4exhGTlv5S0LygXSlE4Oh_S|0{aR`~5Ev_#sA|cS!cVPFSNu>AWyvLdC)R-FF zv@o7$j%!5p5@#)qn7M6m_}CEldQEA!o=e=QWR?s*(Xy-{1HrWEbTGeP$-deb(j%ig}O?xfUL%TQ6Lm9vXvb#;0vB zqw#6+U2CQoFkg^Q0GBFpu&=XFFs1BmOsA_1zH)az);8amTS*+kU+9ry*Wcd&>93*~ zTnyrFzcHP4>iiZYiJq6t455E>$*&_Yw zcxZofTDCmPH^!kLAMWA9QML^^JmODSr{QW;w_ zT*%ilMF7vOWv@gzb?G7ZeB?7=b06`1-89eoEr%U(1G|oP|GO!`FSN;Hg7>)z*<0QZ zlcL&M%JP2hz7#I8$&gc|6W_=L_pm7kO!5tX-7{EfqQX>|3C0qN1vShzUjI59{Z;>g z^4AuS?l5Klkp44qhw{!=pnx?u!BhQyQa?I9m5>jwBZtid3gGSsk=>U!P?+v|94po# zuD_HbD3;guh!Lelm2Q$vbYK8JoR4Pb^lLo!+(^g_)|%J;&>1%oas$mqWPNaY4)+n9 z=^e)8;M@nabHRP;o<1Y=HGi9VA{vs}^Z~CxkMrY~3mG8Y`!*qjjN%B{x>k}-%+g18 zqURp*JF6zPh!O@8PeObWz*p7?6MhfPh}<7w`XS{0>=dXxA)<*}_fPn$4ddog1Fp5r zJ^6&8d_;mCd{KSa^w#Tk+r9{X$a}1HQJnN?k7RKH(y_mNP8Ob`q5Uzp*3#@kOXzQe z_{*l@*VE;|K2N687ioa|Y}mX1!1l&PJnklEUsUB;#QjqV_1ON0$9%**;GtUz;AY=2 ze?IjLsQ6sZ?HVF((IBu%9^Kq|F+xT)*4{>O;sczm_Q1O)rL9LeIyI7QYSsA4?ff!> z5qlrH#)= z+H&PSsG&Oooa%Ljfgo;GQkoy)*XQAf!4Nev3&~h%I zha_L$0qLj_AA9oKXhxM2Dr!0(L%DWiXA!({YH$K;W2A_!-uwhO`V`AkP_w4FNrB8| z!R$`FCSev*#QBWa>0zlyOnNT3V>pGsgD@VXOrmw^mee@5J8P|mjUe4OQNd~&hnrS} z1Ma21Gn@&A6xcMPS{Bs(0S{eA_{bo3Hd-cxr(4h*%6)kV6vGtnn>p|*a>m{R-*qkb z{Sr?D7lq)HVPY%Fs@J4fdss1bz2GH&6~YG)Sui?-ydQvs(ZM}^$H?glmOmd4C!;&+A*3kzRubBZ9^?I zNpE(rk<@Ypi{7Y|27wgd8*hX=tf@j%2ei(qnCDDnujBk_FexFcoVO^C-D_Vwe|-uUdM&*I#Ah+$VU-x!dtK4KBy+(=m#{}g>QzAMS1 zO7y$ZM0c}DHi*>pBeM;d9;r0_M!iPT-Q6(>UX@r<+RP2Ebg7=K$#1kDODjY=6iBB` zhrg`5BY5+niAMi}Q;*GzWVjATvlB%li`viZNm8&yZV|gnf2s()apG0)lhfb)qlb;IHGMfB4M^{%9l_uIQoT(BSJgIEeuMv(XPJ)KULV{Ve#vV{dTw6yk}F5w!W#fFPiNd zE8-W7{Eg*>QsB)E9B5Rpx8;-Zj+LQOe0NGd7cuhvVIWuR+VCh_Jc~Ge4HRQsjD4G_ zk64Pw-8Xv+n+)cTVHjwU7=`dA#M&8t}x*<-#$?kusbsQhX5}Wg@ ziA}|WlGryc`>5gIf!dixC%$2>A8adUKadaTx2~YE~aBj z7!tE4?a16`itM!8`;-B@E-(uv&kJr^ygw3;t{`t{jje9p%Ry@K!+?%78fjpNMsHZw z$crc>2WmHQ#a3=v78ABoVT_-~i~e}8aTZaA1Sf#-s@Cb->FVu73HU^?&LPwZnW zNudMq7WeqtatMU>3NlMUZ66Maqw=+nR%W!I+Dc#g_ve&BA&K$pH( zj<)_}0Nuu#sp&8Vo=6+%AG}c%F!?91Rp??$@GhFmd)V#Fv{T8_uyx)WKCS?@+h#rA z|Aq(_JFfG^5~Yj{$fH>Kn)(bqpU}+Q{It370pK`{RzEi$=*sDw(>^#r4Yi{njLjK5 zoaRoSqg_IMUseaWjVGTj6s|^2-^$g-=jYEqvcx-R+CRG{A2R$1x*vTQ1~_+v#KOnR zPK`t(KO^CH!7`|f<_l_9T2tB&&|Bl-dzAqH#UeX>1*eBc{P`F$3H~nhDL88VN`7g` zHHQ2q%*|pH;7Lti5!e-GotoEfMzX~=D>XW1d4yeQ3A6mpbV-Iy!FAKu3!hhpa9qY? zx81}jE+p?-a0lx%3+}KC3Mz13FDHPrr6Q;c$QdrOO9u6-qohBoN9rffM^{GU4c9uP z4D`xB!8Vgr@ksJfzYq0GCvk`O})e$0;~G94>_M^1S``RMS)_(vet-?Zbx9X-|)sZ z$_svZ$3@qcRkeV!#&TtDTxEm^@E7Vm!Mvs6`A#7nKBvo5lA7H>?U`WC)n}!Xfz+wt zeSj0E2FbBRLR~cwY(td13=u76?Vsu{2M1+e%__)zp#n#~hHpbf3B1!VDdYigzJC&$ zdRP~{9t6V8nk0V1+(LJO4Vd^xICQ)wcS%yTy(DYt1OHmcQ0r0fFU>14q{=CsNeiGD zC~GuVYZq8Cl(RN(lV)mqIP&!}ave4H>ny(P`p9c=`eQxHccCBN(-InN$TPZ6%>y06 zsmle|@Oo<_DKboRg%C(LwVibH%Z?^AELYv+ar%V5;XB9XNfnO!;aot5!)OfLV2pM! zY=}W%SV*GXwEjw_XBD%t^Ihi1!2DA!ZHJ^p+76Je;o_xlKP8#BN{lt@>^yzwR;G<` zf)T}|h2dBv=CSAp@FC@sY=x^Dv`>@BT0hAM?O1g9Mbz<}Gp%N9aQlnigY%h5l|+wu z#MA1_gFOYz7Wq9wyUIZ^ji|A9%jc z%>&vbsw`KyR{#%hprOGdZ3|W{li7CrS)e}n7PePknEUJJ=PAaVH-X^wCI)lS$0`K> zAI`~RpYh0Q*eMZIhng+rUr{Pfi2td_B?Z!1i|erHb~!U+CYeK8{pia!>(Tsv?in}m zU0OqbSRe-X3HA``JQPL$2&m~xnbUYWWvo0u%;-2XTtoiQA=;Zl1$(hXo}s~W9k-n7 zp%5%7kQqVooEei7nur@3A|>g)Pz@vi`cpniYz_L8Lr! zc~(l*4PNZ6<38of53NAyI^}g!X?yad3-g#Y&dr<96u2X^f zm$ERh)3cSkpeSe3S!R6NxICC=JjZ+NPLd{bpvh7rEsVj#sRh#MBoSv&&hHeL90*L^ z2X5ykFZys^IXqftbt5Zu$L>r6+zwW=D7#WLRg~lvEsE^1lJ#nwtbD-JFkyf86C| z<~f=zY9Y_+BvP-3@svT)9pFJcIUH42t*xeL0>nbaDu}Ci(s5$uhFX}`CKvv+=YQY% z{`cdbr3!Cfmd1StA8Ton#4h4r`%JmzsB%JztiScr6i({4uE3rEaWh(=aKg2Y3UO?1 zxqCqZy8cz(pl09asV_zZ4ISd(-qO;wZa9n-i;58X#eSdi650V}XmMyV`*+voyH+Fx zMv{Nk@}FX&19Z-Li@Ubi6IKP$l593I$-QJ zRPXClTw|T^qBR+rY&=gzJZd@*c;0#OTNoFb!orbSvLsk^7u%v~{DKSV@*}qOvM4YQ zCw>9xo^ix9Rr|9aH&Z;wd*+2T>_iFNbIzNqlC7UQPN!$UYX=qM-+%9|eleK-&P0s& zJ6B85mQixs&yM$k;f(u-nFjc6Qp<5sr?zn$lZ+}lx%9y&jnu}wrsq!dv}h#z(Hw<0 z2o!^CV1~C=qlW1rzEZA{s*ijt(4#f3r5eT@z-HIzNjOBMp02 z*$oW|Eke(Mo0$1U&(g1>u!YB9%BH{mSVk}MubGq4cKAJfpG%P(G>i>U zj9rV{`CtS$?sH7H?c>R=IoDkmUk*Js{O=G1O{(0~IDnT{oLbhvwxF8BK0wndSF`?OD@ZKNPc}t16HdOizmu_;1$XzCXJuq0;znqg`3VphE~+@?X%X<^ z=vHanxp>jgWm9p0^sRo^N2{4)1}$Z^UVjxOj;w}LE0HkLF!8sL*f7*y;2^Jdu%8-{ zmx7-XQX0ih+Falkc$qnKp)w9vmij41=l%gmXE4G^o$yD}YACFSK}AOKh?{D<*1sUD zN4B4ipGBl|1^9QW57$3Xxde7!&tL|Z=6m!b8<59<9`ou*7GuBb-N)h z($QZ?e8YGPTd1EhQSrDqc4jkP4RWlf0o)eHB46<{DS~ZgOp0SI@*vkjm>yc0ZTn@EYBZ)z0hbZVi z?U#d?h>qOuwLnsFWy(mKrmAE|Ai&e&b~PY&v~$>VjVsD9>jWY0mzLY&kNs0QbS`@6Z)?pB?%3zD`xW z=kjp-`vQ$^pR)k$N59lb(-DCGwXqqy`ns_o?9c6&&+`oFT3p^C`wCifOX9-a>NZVT z0B;jQh@IAh$fzf34>~t-f<5eb_Pb^LmSs(I64K86NCoi2gfTl-pUS>Utrr8e{mYwM z4t>C|&(>QoM5C53-HY(L-D_ zF;{CM(K7CCsrwWa;4h1wFBR)?3rcQF6-mvmH#=4tW20tb1~r0@so zN4+f5*pf^nvq-!6Rh5@kL>0XuFQ{e}MH^8dUHpT`p^zs_iFW*}rE%nhSl3}^;thff z9kUGFo-fw)L;$bxBO9~G--s$b&rykvNhy7O*~0a?;E@1tbKMX+JKg}`f&|V!`HRqk z-A?^G?T4ZT&-tSzwjTuTSKO_gp!0||aDOZbS5(PT*bkFg_2EY&8-w~vLxR+LAjr}m-zsF0neimAf;aelmJmOTu z!sP_;1arqT*gQqIN+&{%dt@;)amMGG9i5Qv_EFyt4`Gtvd57z)--|;vG2|U^Kb=u? z5m93tM@@ie6*6Zo|4GKv9RZ|w?|+>vn2JRvp`F&F#aYNvN?af+|M3*4)(F{P{$&ss z;QawK4N%8!684`{`rZ=@R9Du1?@l?PBng|GfSwZUSOxe}#YUjM$`?%BW-UXGKhM%? zkP_c$rB(`i2NVxmD1U*S-sR{Q4GPwXiD=J|>~2G|{4SfsQIB^epHwdBr)kJ!^ni5n zfybrxlUCbahT3fs=s#{(+e;O-Z}UurOCNu@n-Y=&Ts7eBC&?)etF~biwAqfKjmJaX}tw6kh&m~p|BenfXY?wD+*3*A)iC0fY2b)TkFSVBdJccJqb9#C9 z2@kIRp#+AdTQ3qDPkJd$<%r=O)2CX`cL4XuaCLhPgeWGuxn14w^kp~TfBzdAH8 zkXGXszwLZy)g>%!Q*5)2!KR19ELaWj$?lJmyy1HnY8Gk{bvSb>y~c6nyZYJ?Joq@} zB2Qny2Kkt=4IfBPqBi)RF0Qem=8JJV zKuMi)JTrlPA2o50t)XN&Q9c4Tu@1dZDtR^Khcs-NzUA|DBW+mn9xQ(C%pIl771BK% zN+8`Ia|r1Xe{tDH+wgq=kt2q{p5R;2{dy#9oR}vy33YHK|GTM;IObh5jn+XfSK+z_ zDJ$pr7k@pu$5vF=D8);qG9Vq&r5PL6xnpCk!px#xw>Z+HJlxN{w4MF%HCOT%TW4^_ z(UoLix#sG~BR3?1`_YOgRMVBicP9KEm*e*^WRnRUxXi-u_~Qxhfj_t@7nY@m`p8LV z#Au%dkraFC08vX4b$9?2L-*B8KxjmbEVgD!@dK}{&U9EaB>g2Xxde6s)JSS?0l@P} zB1#hiI+n{ka99CtHK4ZJ(&kKK{2 zgY%pZ{n!`fPv5SqJc`V$&(xO#8Vq&kV=MK+OPZW8zY7HHFV@@b=+V8%-V$&8+^_9d zEBbDyBPeBAlj{rAPD0x?X zrd&ZZjhV%d0qHG)P&(~Kttp4UOIitx-a?Q}h`+>MROaHG2ao3J%Xa}>^iz>W_D84$ zauM#=5=c|MdQ9(Ta$n3YKRM5It1$?(0bJ@wRahr!Y%oHjF>K6D@Gk z8@8|GBX|J6IY}M=ZK{iygZ@fbSV(Ell$9EO8?j?IxbSdX;?@jYfV!W}s9LG2L;MQq zERYc7^4_>IML=K3I<#yK|PbM&SIe~fiDr{V(SH0?;nGoOmJ)!nE=Np>*PPk_z|S?7O}?( zB`G3zVkPqh>HIBe|MW8Et72Y&f6a6Yi!x~^^B>l=n3&owcW<#TxC&rw!bAA$rYEXQ zu+1=ksKG7Tl@=!huo&qnimv}SPsUFBPWtMxplT@PE7T2bE1 zhVClMkZ8jG!z@C|Zyz@XexR6f3o%F%X51ooXJK3Vn$dJEq9;U1+k$nv%H4KM_C0WH znv3K~z7yf7<9Xr)ixd*QzuzS(xR zHYs&;ysdlx1zGo6pb;EB_NT6V%S0}9{2D9T2IFa#wIb*cDy+`VL`O)MrO`$VfZFf3 z5vmvUFQf%eZ7H+vXrL>bRhJ>gzlk1%kvbrFG5rC!)i#Rt&PZ5DD#1?XP7>qkAKbyC z@KnL}iuS{bU{ty+jzdg8;>X|LQwOBJ6&Ww>0sJ=9WUtgnG<_&NWLF^D>7}W~rE-=5&hLfOIE#Yy z>XnjO*%3t^F42#h+Ez ziaea!Q?m=CzmBI4c6@WQUh8>L7Ayc^DOM2|G#abuQo)ik5Fb!>2yp#9{G2rYm*@kE zh3n6ZTR|A6j`pw~Xm-PQN7c4(-uVHXNy-2Fr{RvkZo?}D2OEC!D#H3&9n4uAQ8)i- zYy_olfOj_?l%b^m(eP~GKwLxo_@QcFfPgd%1Hn^|$}x1}@;AU&=TC`|T_%6gIdU=B zJ7v4)OraeduEUelHN}xnzjZ3KD&><7c_56wyfHVp2B&TV zXpGXt96x28|F}O@mcMAodE6kdX^&cBvwuIET?VY`uIW)^~*;X`z1o z^(P3uXRUk-n3Nsce&E+b9~qTGdC~=Pt|B_yZdo~YyVC64H*um=e0MLJd_>VvAiX7E z_+`gJ>uYMz;Gw&2rGUfow6XaEeQlRLNhcD5SuVh_9-zC+Z{DNi{7^7glk+SeVD*-u zbbT!qW_Ez(rd0@XVFjric5CIRAC3B$XDDMvuoEbMJnIj(jCp~?^IVQ^Ho>?uSrW-a#)GZ0dIQZTz0 z2z}8f?c~280ui4k!+9051#Y->e{zb;8D(FrdxRQ&-WhF&Aa~yAOLl=vBdCcLTyN(C z($f{c?#7!Ga8uZzIVmA%1lYEb9%7V|&@TyD`ls8!%>npe{P;1`(AXmrK6iSK)Po4#E&*LB*T(S!8b>A8yI$_D*g?ib#+4L2&4ZmnhVcTRfF=)6p|ecq8xc)QGQll#T5TR*Ck8cRs;3=(kM$3P`mYPf#tWa?PrkP9o8=Vs#0B#l*^lA zHt-ys$LJ2ew{rmJk*y93PASvO!d#HUkMQ}7snOLr?Q5$DxfY#-$Lfs;aO#Fj@x?^* ztJJbVCGDlj>_nEz5ro;c>6_Oh{&I{c?Epu=O|qc+X;x_2mS=lx;{DpH2JT>xh1mD} zNgTn(Nm?1;I+tPA8bZpBwMep>Y211W+SGQ5h(y~C6R(GeUKS?I0PcWus_dIR!uUqo zD0e%&b4E{QD53}u$3qJ?Yq|K!CcpBK5JWhFm#y)^DSPw$e^-U;euN4i|_irka zUc{~})bHJ4bwkBd4ABenF9BRhBu5zrhb?6AWVdF>PcjlWduW%@sXkk0nL(GuxIG5o z%*~ut*iQ7_Z8*nonAOpq8?0{2W>3%~RHD*q-rY%pldEm4+L_r%Q)J09GE$zh8XX*V z=(XF{zc$nicsP?iv^jwEgqm48VxfwU5&FmZp)`U}^LAag(83l5-m#teI^cG_Edlf4F)4R`yn~6nWJDqTFz-ip zdAG=z?cyQPEKwUvpcp%inyrK%p>BG8vULL}45P~QHv947#NUxnwXxQ|zkq$@{LR?< zevG41vVlfIYm$Aa(Wq_haAX@I!P~`NMERsQKswu;S^WpDfq?kn-ZPEu&{s#UN?V_P zi_<67Ver`W-hpQ(V?`C8BtwVRf4J~duf(CkvK!-#!%*oc5;g6IvNuQOK>EgkmKWLU zjcdq2R@Z_BZ{-E~Idl<*J5Cjzbm2X0D{xyOJZBsl#;rtQ%2@bLjkp!__I~^8wD~ff zxx9mT7NOW{Ae~uhku+zBenr<+6UJAVi^-(Ai*K1NU)TcYskZpIs}A7!`OMPoVQh@i z!Bm0k7t<;F$oa0QW3ykAE2v`C3Fd79?(X}AhN@8O%b2y<Mr>}@OKcNLJ z<{HR*edRx)>))J#Pb*Pl4Nr}D2GTuba2~KPD+R}?ju2xEh2iYqbVKX^yk+oeQutM} zF8UqdB|k=$(MV|`q|wd3gp;aRjU!n`)yPK)C8Ub(LQhB00X%zs*6`N>|6q}dY1i6= zLRF+ikri1ViWU%uZf{U3$~o`bea0H9Zpu3%16Bo z;Fpvev@zb759BqE@1_hsB_sVQi97CYxD6-o5N0~t1}C+%svqCC(kpbMK#seeUATtl z@i19_i>K^D`F*JUa`CFXocWKAFvlyr|6xY8l(Q&77Mey8zts zur)jeUD!wrt>?JRosH?bYa@L=I!dk_T{avV`v_cnl$RsP6e2Rnf4)ChHQxGJJQIfc zuBIz{m1x0urJkh)T*;@hn-9!m1y~TRYv{*x;xrumd`q8wM`DkPs_ei#Sp_a8cExW> zi$B@aE#l&tBsG6e4%OQbA7S>)`U=lPYVWix1k_H(^lSm$?=v{mp4?tAHKraU$J5+# zmC`;Vt1D!a8x9`ooPIfZ0#D*{uI1ChO@4?{My2Vranw>a2j9BD3mYmpY8$N0^cdyZ zmG}zCNa>#}EfN;gQtN#RhwHoIVMK#n^aP4|Cc(Y9Zg^Qe%E(~Awih$CDYb$N;1l! zBmcXW|J;}%`(v(rB{i)rbh8%kfiD8-m&pigN-)1XXk%wftU=th+Bchk!{KYo5ppl^OX zl~c$k2Ht)kcq@}gyuM{Ak8E#}{aw6Pwly_+Z(~NTRlf12-8vBL#k}Lgu*wPPb*wxI zh@bhXNlZ=a&r1kX!Q1i(v63E5w=AtFBDja{|b z_ej~XC%FaHp54G>=jnz_=FiTEBBTd8r>r67&t&NTbIYzbX^V+?gb$02U4>YLMIucE5`{9V9=>~J&89CAxWxBOeny4kj;L1nwY9~)}yZWuq6H{sj&2$oHK z0{Y4n;1KJVn^O8ay->U@piAc{q9K~qbmxt9 zf)ZWnS8=(19&m_BD!Pbg#k6kV-hrFqT$c50V{Dg$<_6-wmfG_#^ZgiMSop2HU6Us7 z?7=G4M=K;~AU(cAPoCo-tYny~Vo57xKTxmgah0BQ`ZYfSxYYbrEK->*;pnFOQ={^i zLo4oVT*mH+*4!dAgy0WI1>nY=Hm9WlD+kMcYa&FtieKrR#@N!cklUHEf>A6NSFs5% zpdPf2k;Im~wT~gyGB@HB7gEjVkY^H3@5Q2wm=BqttO($nj9W%h$Ix^aE$!C%UV)gV zZ|FhEO6~YAjD0NI?`MesTrRk%0Ojr;x=DJ&%KU*W?J62Me{F9F;T?rX^0*1v1b{n# zfFlikIXHX-^V^TX)qpXal9&x}t9sal|Tk_j!skN^Y2==oW=3IyJ!G!^{W0}w}lPaC3TQeO`)@wyic-zJ@|7C zt1C+9&t(54fX634j`7#djHovE9V5<{SdT8ETHvxE?`FcB7l8?Gh zQJZ&+g~Lqe6=!c4(MW57eq4V4d?(nilKFof2%ceW%0T%3JV8~HR=>R)Z!nc20m}urQToP{JHV<_a#|#MIIq}=gN!DFLXBjmxdP? z;$T3XF}W3j3^C@!qlp%ckFn?#tHh`J@jg%X9b4e+6A|(k0PjvI+%_-gYVI&)9OB`J z9#gYfh9B^29{gIF~ac;Bk6uJd&Hu%?5_Q|18eIjca?TLIdyzHqBkAYjPbGDK(;_l~rQ8 z%`QIAa&qCqCvm8m#eFbKWt>^SihZ>gr7}9?W4a9A5l^oayYi`jp`d)@?LMX72Gq4h zFT)C`JYZy=1laLkVwr7wo=ki@hRQtK#uC6W+sAer zd4-u#(w3|bqx#ZRsqm ze^inyu~->tYp$?s_!)`=b$e66`Hac}P8_o@GN0-7VRvxDag%d?mZc6w=o?`{rdd3( zU+tn6w1645e+1X3MLwQcx}LNM_q!f0_(7)&49@K9Z$hZ!a`R`UfEkuz=#TT+=Hwsd z;YqNVtf-$6f*swN=-NUIJ=J)a=%oRCy+6DviEt(7*#Cg_TQHqp_enWbsYdv156C|T-#Pwr}jFGEwOdG}Ppn>8v28{kNCDPkhHrZYYN(`w7p{?li{nX`0)o%abL{&#(zJRkB zqf1tc`n_dr!5(QwCnN-xFN#5mnW&$h`o1Ss##S2m@HMPTR#w~}+7Mt+7HbP^H)-Q$ zj4R)|itj?X7rwU*7y-OrGAsN{LoiwQe$LbqU`SW_W6E*ghT@NaOG$ zQ+IMmmi^4gt!vN>tS+u<*<;)zX)LLJBg^%sRWnZ8%sL;XXoR!l>1N-h7*x6q^$ z@-{dY?oO^D%o>oCB`4G4PeL6&_i6-_i~@M4|6|0B8N*vd*>&7c<{~g(fQRNx<&pe+ zS|~!>ywn8Z-`y+u#)nA#RwoqUgbR{OV7zE^#YLKj=DMuhMNofg0_xXH- zDdDd{msDOd+>abXp{3bU=OIZm0N=oLjaGKx9d`L(u#hR#Uw}>eR7{|{jgha-f^^|w z9uDB4E7|P~hzN|_Ei(n&+9kFqyt${2P9`m_2dFP$EjjRTFf<%+7z~)qNG*J`nPX+3iSV@6F)b(JDun~^ z*!g9sl^F)SSb3Hmr7=k;GFA_QS4ZtOJ?rD+I=hK$03R9cAr|}=&YSO@-B@RN#*%iO zIw<*jzG5IsJ6$#j8$5VNA|J==nq2U6o;G=7!#1|~n(j`8Q&No#F&6X+>~94c z`Y!7sY`;(jGSX}V-uY1A%&p?XW9#aw5KNB7`|=zkh9>;kq6jK&pu+u$z!_M3^0~wn zLi5;9YW1!N)1X?M==-}$BsD0++Q+`vmq2i_!Br^KRE?xT%=D^9`V)QC`@zL@{48y zVGmX81Q`J{*aA!fwNFa?NZ06|x8(3mMLW%RN!`puAILW!@8s$I1x=9RWIuvkGt5|LRxc*E z+-dOW348Yi&biv67`me&ZU-=9XbAg3rcf@!vVvo<%siIE3TdWPB%6Hl@1HNcmgP{% z0Pe(tX9-REW!8ANOy3-N4|!Gb*@^p!Q_7*s8UqVZMG0P{)mS z$>N&xwSw5c@I$-pfqXBp=39^Rr%2G@(Ni!vrvSi7Aa!u3N`t6u11vtITa&%3`_4XA zlj##xB1vT$IGB_T;9lSQNHH*eX_7s3Lf~+#9t{vZAiNc7$^4=r%7W3qCIoP)xqrc} z@l3xbc-F0-hq<4ah<6UL7>4Z28RX-sGhD!VrbXj-Aa7(PTs^!QtyH%0qOn%TtZ4X) zqCE0T#U@11Z$O=!)1);HVVf`}_|~Nrh3Ds8E0xfsNuf?d_FgDD+oPyiJBjPv;lLsb`gX3N>-Ehk!eigiP~(59W|B+QktjJr?wr}=?+)RShsTA&r5*!?(p%h0jY39 zHu7@lJk+V-LDJddp=>qh0vt12^X`!s01tyVV@u+~pH}fcS5EEiPH}`4kE*i#uEwd7 zb>Yy-qYdCiB>#PR-d$m|2z^O(RG#Sl;Rd(Az398jEiI>&)?Ilpsr_;B_UliL-;mH+ zM2nCoiX0`8C^pZX?L-tBBDVnn(IKEtyPlUyTPqR!7RSL^y%yWM_1}NgSq;|Kjnmgmyl+K^=X^L7AAjWt8eLw>NN$HFL=PWf-Mgs5HdIHw-)`H z{dh69S2pxzUy0jf@1KEKb4*KBKpl!-v3q1J(DJV!p_}O1%>5=8;jOV~O>~!E*h>Jd_qZvrJBz4*omDx$^>cWo}&P(7$m)=}J^=CxdY{ zj+|uGEhd>)k&US_qQ_P(^iDH1pvP`4sd6SX|FP@=!P0F#L6Ho zTMYJ69)UE=Q1=Zh&0RHpF z3L({5=zhS3YHb;suvp^KBZWSNT4!E$c|5i9BiPB4y{MRX-s)fv3wn}rlqA!0zcjFa z_#<1jQ8ju)pu{f@s3Y*we7+Y<#JZ#SEz>hNp&pr>8EC3vZj-yo|1WR5KncL{n!;z* z*S82IZPnI)2$5q6gU=Ufjf9w6Va;O$sFf{ zlo=M-7w!ZXQh>VKhcBvvt2;eA3;rscVkh-Xx@8iXLcW8$;;_oI1%-wHKK9k@M&7u$zgwm)SP}$fc}xoge1u__-Zt)W)OH& z7?w%6;JyN=Ylv>pG_SC6wQ?Qo_EM`IlJNZGze_SzV>Q!ZcoygS|MdUvd!Tf%a)t%} zgqY^hVyy~(XfL9aE1GWoH9#H8@A8tHgbJt^Uk3Ej7P6ckZLvm8@)!`NG1l^Ad@+tD z$Qni^V)so4aEB3RlZi6-o!D=@j5MJ=by!&cZ0`3rQkBRJGz4PCz>?XD^7X#lyfNIL z#48WV1L=q+%DKyhkC`#S$L&5W5ffY}`-mM_5!iynZ^9}5yXrRu#wy?ax0g77RCq{# z!z*G;zzqF&KC)L6f{pHy5A<~n^^KGDm%V=~yq147|Jr=exf%j+w%`Pp+L*Wwf&S!aR>IukWq0RLGy2k-3~BfQGfETDi#`jjH~+$A18oNfNSZH2I0 z3~YoH2qLoSq>4D&qDdz|!hct|?mn3au(FI^yZ@E`1_6BzsKXvF`Y0$IOt`dpl89oU z39Pf>>%vyNTZlAjWj(_@Zv$|-`vq=}prT(;QtO$4@jfy{{S!0q2)eFbu#%(a0*9$w!W;{IFvqHzYY7$c`Rjd0ewP049;Q$@18UZPDX|%QM6gvPm(K{ z1XKNT?ks*;L027y;gu`{W@tl2+jH3*)2@`{n6Da@CriBY!UP;k4W?Ctdr5c6#{s-E zlT4*QUY#{xz_sa|Xigz#crp|1aPT(yPa(UV|0#DH{FUTEtk{1q=*K<*>YA@`Hr6ZJ zk&s0g|9#Hsq6zzq&yel~O&uc}CW4rE6P(|fBTF;TJ2$Gl6uORKYFvq!#3b{~!u@%U zRjs(WadM6T^)m#xF%ySH1T2CeF*_a80_WQJiLNJm8vpR=hwtYs()hS&~US{Cm z*?VTeOF%ucYi29tL5bn<$w0yxN1?ruz)&2I+!J2uAkzTuK!X{;y=k$-Cb|$6tO?vI z?{So{h|hix82t!L94k$g_*ndZ-Vy3hyqB8CYODQ{H*mze>ODO3N%12$bzhRD6b+g{c*$Qm~DS(^!7Jb!ji$$rgG3f}` zMyCi0Uy%*+Va}$uRF@=Hpy&bcO59|)4@>!OyyClUDAkM`3NTHms_dhLmwXL6XHG1F z0B$Y*S#jw27yUB_8wrH>ROeJs9_-+LwU5vPCBOZg9TR|CE?a%!)TjCFHbElF=gUb9 zx%Y3S>uDaAN1j7U=R@JK2gmyoLv-Kb>5@(WTlhB6_ehj*`07Hw0 z{|>QV*oJd2d}6HWeNzr^M)ng5Uq( zC6{3pfNSd)L8;~`{Sm+k5mk-oI&5l~K9yqmk?>FdU95E5)gAoz`bgn>kd_(&;4!%& zr}>2>9OJ~yJ2u(5h^M>+p9ZOIDP14RxHBYPP5^w3D>+Ox*P~iR(zJpsI~Xqtt?P}& z(=B*x{ONCOZR!Ak$9@^~&NCnU`uV?;9_8af9F({yh!xA4G_m{HTFW$d5LK8mx$mZ&k>Mc*0n#3!&l=g9Zu;7myYJcDE2XC z99v09>BARfFnXn9t*$^AbL1pept)r(akfrXCYH~R@A!&L@=hQ9&s(8(@3en)r38?p`8Vewxy{7IE zzAfIu_HbJ6sbSdYtT;GLb5M)jr$GU@2j%2v6f5HIjYXKlDSw&Pp?{PR=v_jn2NODe zN;^jR3gG(t$&~K{@jqRVL|y;GnGb z8J{U4+c@>wEoj|)G(8|{f;*sRbAdjqUOLi()cJ+mD(NSsvf?VRl0F(!dZ;Y_|9)_rrSjMo&gFMEZuI2WG-5Uu^u#R>4X=5d87`j zDZdwZT;fFd9!6~H+5m<{$W3u)8lE-$h{-tosjy-`QOg-_bLnZLpR{ggqojGA(3gA|COV{vsMZBiEzv_ zyjRFiYTF}lu#blW_dOm+Ab)NBTVwOYLqTbomv<8;jAu^Ncbp-~PJayR%m(|WcSq5} zmBB}Y9cOy$jGu9vHI4BS73Dg}wbT~iyG^gbR>k?xMjWQ-d^YOOmHHt#b5ulaoVKVu zuZ?{er|5PWQ$N7F_UC{8ea&wn1@F{9o9A!w&%^DL$#dMo?jRZm+jt{_-SCXe$tY=# zGJK6exXk-K&#~jLQ8Xl&Es^-YYD+Y%?lA!M91&HaSAu#jR^KIq+Tz>uIg{qR^T#Dx z|CybMF^ObT03YnfI8pmG;*`&b03pO!_P!{kvfBNC5PG~~ZJ*!p)f>R+H7SpwyMF_Tyzc1y!4}Mq(o+EUgn9`FA-KXq)(9_<_Www zlH)9Mivab$KM-%TRgwV{u_veKH$ND3zQX>{FeDu7!=)~61aL6xr z8$eyr+Vp9rL94|avQSsk^+8hOObuC&rO6!%vf;xYFH~>g*3(2h>>z9c^`TU*yYh9?EGHgZ+c@I)*2unY<2=uZ$Hv$5H`Y z<}0b5kIytIOGsmt)Dm0LtUF7PZ(zvVEL(ht#V?vg02hU^b?RkfS)W|oj@=hrI1-VG z@65O$uMv(O(hEwbI0f)*yfq^>avXC!a?&@a65n;nzK=r9&vr=oyltjYo!DTt^j(ET z5f$FvxsfHR!T=TJrvZAXi|wEg2;d&I9Y2r7h*Yq)e%MY)fzA79HuNL5vgWB(J&0 zIgUw11=%DaK;18J%VP5Ei_qzTeNuAjx6LP)#uEb?G&QSjX=zMbO0a|&`7Me{THsFQ z_WNXCaE4NfP78YyIud$Ma^!u6Z)c?upiVE(HkDLlD%lCU9_7e%5Y4s86{DbEjx=7E zXRb9cWCGygbrAYjVgbe*yTp9Dx5#0CJp7mODqbIZBn6-jwKwGfymXNkHbj0-`(NZC zCPMjtc5Jbqz{Ha3fMI?76BzIUl} zgaDTNqWZ~SD43*&yboVdG5r(qKe{B%5>oge)-LXX?q~+#ArImU z0bKi~;Z;KPtMw_4|8^Ag^Y zn?&RuQ!8|fm@2L~-p^!MXkFX&SSB8jT*_K8q)&sL%|+sPy*oK77esSVl8;>L30GY+ zZ%x!EZLiq$mC;3=en8zjQ|YL+j#NmYERfDWM3r;_QE{^LaRw51y{h5cgD2PxyIMu` zzfYCVNL>q~DM);miIScLAJy_EN=Cc*F%Ab(6i`=S8Q7(V`QWS#(`zsvJn5B`x3T2^ z3I}6r@P2}}7QF?)3B{DQiy51$oyq(eP(|Kfb_a=wG@sy2neM3&6?)WE0JsfB)PcIb z%nkH^e;15m3QORQ<)+KRB`!-v6!Y;+_J;_7Pe^xt^Ge~NcoD>$3Q@V>@Z^5MPI@7B zF?tO%K)J8K2k`k?c+ZOrxsNPe+B*;I9v$tzL=nF%DyRhUAyx=$!vp~QrgjE#nFhyA zrn3-6Uvd2R$mVUdi!KI{^WJCKfWKXy0G<{3lC$A2lX!HVNtkHJIVt*G;0rYJcRRn1 zFZl`s-QZb>_2)JWV+U0@`H1toS($ff8Ur}f&<{{tO2b!~!~5pifcodfr7ps!A)H{T zT+%e0-(;-)^yBN_va?K@xE>bxKGg$wv_2(*D%wlbm^f$3E8ARG>Az2nR}L&iLlmw# z@ANMk0el@F5u&4yCTWi*QL~1@{tsRa#-)2&fpP_ z3|M}r8X%`lmy{qdd(SrlY>6;@~iedVQ`~rj%9~*g;n| zb0TGS_?_|&ENaJh7Na+QI!1EpDn$LRsz?l?fh36>7fk%gCo4(cHIoUL!CiJhQvFxJ ztF(s2dun|22p!Kn&^epQqpZ1%tGn%t3gC*LgiLs}KK<=6nhaRw6PQ; z#dpd!b8ZE2#0w$w^kdORxn}tu>LvsQRqhL2$*YBJbkb&#Q1hb>0Jo@lm&eoCbjVhb zaiA1$+A1wWThp%WEFbZyr|miT0t>)lMKZ?D5@y_#{+%N|o1VEMj6;ngC@aw&<8%_8 zW1SfQcw&ER#SM?Zyql#QCzjJsd%q;ul}lB|0H53ieS_*u9sn;js8;>_axV0}dKvOm zh(U^hOJ8lu!y4-g7J>WVmL)jp4cnSEEt4`9llx85c`DZ5tWp2-EUve9giPx)3QqY2 zE@ge+4F)Q`Xd!q5<+Jh1YlqQ4sMg^LC|ARxh1oCh9QgufHrQmMLYTb5YN`%*&vmz? zCZ+S1r4$-sso`zYoAa{P?$Dw)4B-_>M=8)u?UnHk6 zg#IWs!imzuBQjH6fa(5GV|EZ@ODW0-#5w-ETCLD{L}HCk<;BVd3YP?Oo(iFW`ky&0 z(Op}IpE5^~@yg%T2@tGJ-|CxcKL&H}-MVk%y8yTbM;*z)LvOZ_MWp5tbpRz(_3(X< z5-t0?<(nDDNjz!*KZ^X`s<@-Pq&U=TAqXqjxMBS5Mq`+sC&@x^0oMRC4!}Rh_F8>! zgAe+nFi}y)>!waBL_#YxSQD~t?U(hFvIRW*L&@-Fn(~#z$ZhjYc79}<-Ogb@*L=(@ z&vtam9KIzI95Vv)RB+=W@k505Boek%JMbGNBG)?~V~e@IA~{o!8-j)5ob4B7$M%4P zx8rlV1-S35rVEIbq4^Z@(_>ABj<>F0PB3;$3FD5(V$wkl&-CX4Q%|K}l9%ey;_s)i z@%O#&Yh{5;J%KCfrV*A3I%ug9_L=+Hb|_j)`IV?*gnDZtLVBtkY~ozJFfq>3P-&?( z9|T%ANHJR7s!XG>R^{w@^@G=5hD-tVBR^FRC2IJbgq5jZ{HK9#GoBZI+K!uQ679>k zt{yVT0M4wDEO9@|N0^*$McZ2@68X9b^XZJ=@^mm-;q%T0eJ+4|YoVT^kX79p<>*Im z5TxXI<`Akw=L-i} z*mmhBwc6{Nt%e~~{;1fdV*sb%&iV1Del_w)`j2x_u~g%K{~YV``zEUl_qP{`AKVv2 z0JndAYGIldV4o$qoEKZ}obyC-nJJA(o47&rtBkEA1tY-V7;*kB*qmcZ?Q8EL#w)L6 z6pL|JpZg%(aI4Gv2E!UaU6Bdu%&9ExI|Po33Hv}?42^2KoqZGG%eG}UmmOyaxQnQJ z@^6YTu4Z+)Ca)%6^wzbwkm}r^XlvVKRI{#Fp-c}@7iW)YD#(Ye67A~e(!GGxrt*Fs z%aG_{g`da@?mONFyW#mQznalT+`){uQgrIPeixiRz2c$7adft#jZgWVCg3rr5wns+ zVHt_!7}#CixTGX}+nDj)a;)7Ui1*jEn=j4-fSIs0bF@lbM4{HOB-s-OUGKk?CLIrA zIx(SDNk7oZ|Idgl^wy===!F&wc%s7F>ij6)DQ0F*_Vew26z*~qHIG{mP#5wio7_^y zV<<{M54Od*zZb|iE+sJ9BZvMPrN`+IzXRZq^tYV_1Ii0Hw{;Y;%|3}UN*S_jy)rh` zrjVBWh~{9=ccliqeyglnkXuXnYc1B_Isk_W^@aK}5@y-+c@uXYj9!h4c+S!#4Z=Lx z9AEUJL|GJq3HavAE|YYuWQ0 zJ~7V8j9PkV^mAAmRy*G>+1LfJ@%LE^&4+c5_Wss_GftnkW5Me@_Li^X(2;MoV$@ER zpbD4~v@PT^N+OxWnfYSL%v++WESG{uTVJu!pvH}U>X`}y;5`c;xCcY65fk(vg_K9A zl@0S7S5smk6XrV!#XX9*HUT`aOuYJiYDb)D!i`HpaA}N2c}%*oxK0RJmMRK=86miV zWII`S&V1CRh!VG;Pi6{LqMAVRD!lMdoHO(?)2u5HjM3WUa$L#EXV`s^;8#4Wb&IYA zSRQM#wtbs1{Q3#G9~}TQ*ddX1Xh#4hSvm<)F&_cd;Hst7tMwXN(o`EGZcYuEK_(Y-ynsf;%# zETX^mz1_3`UfPWPE#J1RA}+Yq2t>C4uP*t2Wk}60Fa$k^Z zqhG6A%!c8f48GLnS}PxGpNMU=o;Q};Bp|T7r7*Y$R`K46 zQ2_W0DI$YDc_~7)d^HMh&(zYM=OVN^FJJ~t4S{H-g^VYbnxQjHo*UJSs=8v|B z%bjL08lSA|q7GgG+*l^9$CYi}nV-U-wL=O5TA%XmT^$4cPvw|968_$TcL2_+LpT~F z3U%}zQ7d3w{W_WOd7$yf_>pYgYj#(g4x|-;cU0cW5OiWPGb%*H7^Lt`=+*newYv7mIp&OgZ0%M z3zXh*CG(r;qEzE&?U73Iil8zIOe7~B*1v^&%n zaP+W%_ewUxaVfPhzvW3Ty7&5!o3LPBhU{^L7Q6MjYI4{9hs_~9! zmOsW3%Ba|{mn6oExiCU`*y;pOH=kc+59UaaX3rwD__>g|^V+;@gP7WN{3kH#%cGS% zSkIg+yyl#?ye$Mv%Y2w*CRPs-f^s!2d;`9C(NJ|QM zZx(tur=Oh_*1C*nMRp@Pr6Gy=&dQe}$Q>))$A2jX)-yg-hc1VkM)%5lJ6!{pUbII1 zOyd&KA>tJWM+_b&;b0TT1onJ>rho&&oOtm|0(h z^U|a3SBJnuTgwgr5%UC!MPGoIO{&TJN0PW4=AAlL;_WfY; zxm5ARV62gvEi5F=s*uXkXdOj}VD6X9-P~^gUN@0q49^^_&jE*}xRYS-LANSea|WlS z-)y#GIy6`gHWN*Bc?NN%MHjm966bdsT@|G%@*3AQ&$4XoX=pXxq49wFn^Q1xC4*Tc z8Yh9j$j0vU(wc(!DE=6dAv5bvXim*Ofakiv{~GD<>_uX0(AW@K9=peU3nG@RQRxs| ze@z`NBnNQ84J0hrBbHRsNeR!y&$?G$xp=1eai1}X z%m}VcED!E#9j3>7$oNW!V$HgQB5>b($ZT?zzlS*xA5?4n2F(0!r4rrC&N|>!#${p+ z>l7f|z(?0@t#%uD8I8U2_&<|gL5ei@8+C5_5unk&a+-Ld= zKwW|@Z=kL$@#(OIGMP-bb=&)U3mvhF%|xa;tQEQt1i0fbnZOu>7cB1X8fBbAftaKW z(IJp^ST53HsL3~_g^XzlsMkPpF;mm{P5tky$KVcV zy^meuJpwN~{Y<5W98z&854DFs5i&tb1FjyOj?y+Ipl)fSP(d#@(f+_vGKNa;Wuraa z#GYUxg-%-N$m@wubpYU$kCpIJbEle*pOXUXk6;b0AEJA-1IL7}q^apYAyw`HxFRZ5 zD^9|@qk5%HG5q=R?nGo+nzfldT20x{U(ISud;lDiWM2YW#AO(N4Bee=4{cheaSaNo zt=}4}4xT$SWHAK5745OIQeY=B>NN$r7bYn{4~`HXNm043`6YidK%`3pnmytE$ov%@x96q7z64lagn;NQVH{O znL?!5-LMOjU-@_G-xjoO`NvUPJ8?4r{DZLOCV425U&_A(deUA3ak4sgZyAn^Q`GvU zVG}$lFzwu*qIAlkAT-co9iq%#+#=kKq`bJZm{2C%_iX5f9Zdt&_3$l<)? zg-h@n65Sp{tDRt{5k5!Ba8qxAv9Y}RZ=tq^GkB&V{ppmA)|zdGq6CcFM z3$QyF*AQ}-L8xH3vOS0`_DVCOrj>gk#r<`O)WTGk&tPf4#YSJl-PVIc6o}e!?Uzc;n9r1-%bB(M4|WGSK=KZ;$@n*H%v1 zq95p*Ubin`^|O+D>H?qD+qU5IXcEmv_?2~tf60n=PVSto+I4ISY0waPRcK7){D%Au@Jk zEG<9E{p|VIH*(-P2H@?8*CMhl=}r=q>V+gI=c|e|M@(=(oeyqZM7|1y*MhjYgqyNm zUL?K?q3Q5vnE$?+q*-05WR%pz%x^j?gF>tVsC#tduAt~Iubfe5le`9BtO$1)m-rK6 z5jqf&!d-SEgNyubP`cUzMArVsoK6bnr6857ZG7f`-y8_P%dbazpE=YFs7J2nPSK%sXdAzzLAlhZ$ufnlXT*hD_% zg(_mNhnZ7=`XW8-&$IgTiXjN;&(&~jBx(fEL1W7K4ZTi>3RqlEU`_C|aM~Er8;ZAt z)Kgr5>x$^W=yfSNV$NJ(FovnnL0%3}r>5jD#ZS`>M*o|a2q|d<1J^kj&`ZyfuQ9zAEvwE)J0|os& z5sRZ+V==^^S2S^aor%Cq4r@1I0QX0WxJRLP*dbIhNGLfAS(>x8cu^W7>e=%*oRIPQ z3`Qb>X#9C9yVsZ8uXB$%W(eKo=4dG=4#St2}kNV(vi zys@)7p(Z2&x~#bltN)#_{igM#ZXnpPL^nshASASHN%dhh40_ zA|vfeDfy~bGp_sZ6N!ASq&-Eq!G&zY+JjiZf0q}SY+(!`{v`1hEj2!PjM zv@cB!<(0Y@T`}zx^qVf0OZr%1wUxdSXZ~TN!~<)BnM{{-QX}r_K#UmdKXt8T(?ii$A1+-e<$#sfHjT}8^wusv63$+8d9M1M% zhd7QXnruj}?cIg6b95By-yRPCDtHl>^;#RjSfO({V*%y~UyXd#mRzqhpxEZOGxyR6 z+))~xfmi6U2$&eY&WMH$eXU>dRw}cIX8cPHzqt-A@uSzW(@d~6xiwA_FvBxn$L7yS zMT;%EzakUY5R^S86Dq3i;8JG2WD_#~Kf%@iz9Up2;Nd$XskE4*AieUdWA(C0DY?in zzZ&bs;sITAzv=~0Z{`R_b!=cYO%S-*=4shp^)k+Y-1u~&96YwqfF48!nlT{%`gywY zizwXf5GH@_LY(>-&)Wi=+851(QR7twELcGOCG$*7b~9qnw0lF)J<3oXQcTTozxcDi zQO?zeg*JY05Kxk^^w3b71POWqesw~b^9>)&#n$05R@nEH6tik^no#jVwh0eJ69!dRq;B~$0qIBTW%+V=b+29*_HaT~~~*oiKM zFa*v7$9vrtr{V^DM`^*9j%9N{B5;0G24dZhgxE*!muW(S=Qz~hrwcX5nuXAWf8U~h z@UT8&>3L3y{KQg*TUsT3QIZdsF?c^)X6)ouVXT*q-XIc}yF>uD%I^Ci*Dtlty9)X* zxKT~Uxc~SP*B$D}P%OCu`>#Hg#E!3xT5WG!gqPS8>m2MTm1=^RDdFJIuxJZDz^Hb& zDiYOT>8HbfEF{7U?M>L{1@d4%@*3)A8ke;pGN~nR77WxczT81}#}SnFPV_9okp;iFZ% zRaqdlcGhcmeN;^a)Ftf2p(}|-KYYje<$P9W)*L*eoE3Ci>-yb+cvCvrg&n|gLo`p- zT;pHj3~y+=6Jexp&Mx*#6~7KrKHra@U5kMw1XWF?_E^46MtA){nSw`^10P-VK5}oA zMSK=Ne{A$;Y(TwbYVVmvWIe|(JLUS6Qg)9>n=&_;_ITxK8*VniH8>x@30Wo68HuU} zNpDJ+wD1={@us)l>YizReolD3D`Xm?0`OG@)G(6Qp$TtA1UI9 zUG0S3ifRE|N@?&EFPpSgnEtI3^%X^xfeS60$A3jY&OWwG$u&p^z_~iE12YW~Z)e<3_YQaW?ToI*Oa9>5ZU{ZfBzOCZNn{vy%za*R2LhA)KN9Y%b@!TE;~*3KKa z3^y6(+~u52tu&QF?;4Px@|2etotg58&yEc7xI+XSgK_;{VtDm{uV=u_&z5;u7)3us z&fMtV-9c0(_772f>cI?vcX8LL_D62CxA!Q!s-I?V$8c;K3gG5BJMpA{DGSTGgEjDD z*#^`lPxRlr`hD-g-RX2UYE9JL-a25FM>A+Gn6_~!|AcL7Pp()TbO9B)H5fElpy|4aMD^S6MRFXC71xL&ThAVcOS&j#~)H`EypHR982a5;FZMy=~n z)#xg|aNFm-?#39|n#?06cO!mKGVR0a7Q8YbyGSxa?y$TB``8nP*H? z=njGM2QVk-T+@bjyj;NKdCDCK8-^NHT{K{+I8+Y!uw9lk5Mm4F@4X7gn%ST9&s^d+ zv1LNz^CVOlg1?!cXk;6m9&$hv8~|ogU;a!bRCUuz^b^%XkK?4%jbk)*SbX>WnEL)n zGS-X-zyr*$qZ9>^u!^j)Km~-9mFWM9YFV-&X4J)ToI=@jKT)fjK zyvpQ`drM3~s!I*F$vkrb=l8Hm$TjB7K@)*fbV@i4>0&vOK3n!(HSP0JQjYw|1n_Xf zb`Y{Lw+NTvF&Xw2%pVMK1}p{ZoUtNl#sm2=eQ`vv!ais}mrbCA9KSoJ-5!M^?49$B zY0Il-MbxAjX_HuMJp;V|t$~2H)b8}?9mU{~Ux^l`NJXkifFk*l)j5$|q$Un}$HBFK zI2>y4FG&AnfQPjrPbI-@l(6vwk2Xcow^_0UJn$%`f-zBkpIIqkVztt7A$Pp&fz6e2 ztF<8U8U3#Cd8r>T)1Mx%yz!$+`G6)(;d`FVO(^%Tv^4@FqOXCGDLk|Ix&U4xp*tCM z#l6csyzpt1YMQ!*RH=D-(Hz;WwAx3xKS3M7$slbe4d<^6-l`7yWK)KlXeg^^|BNL{ z!$iTFf43@v0dS1>MqB+xr-TikjrTMg*|NxU?%$211WO&crf0v+ypsWNqugrT0Cgxt zx3g?cgvla18oLlxPsMLN1GvM7IEunx-=u47z3qL4S(|bt#K}`!R3oN3cx8aEL<(zj z9g^^42rN*SHy%ctx3Pt-+z#-;yuxr~=Q`&IU`c}`xZP>qQ+~NN;TO1`K!bkAm zM<9Ly>i71=7X3dM`*VB#;V2?@`?0d~v_k(dp{1-bu|$;mpNHvx8zFVZ=lQYnpfHI{ z_^GNLf?+sp1bpJg>&>qL;;!vEL&$)-pU|k7C)IItsh6u3VYJ8ifUXU4`mqpc=oEVJ z741p|fWsG4=&VIrrpcHKE~T`GF*xpQ7{S9{=1Ib!bAQ89oB(jffRqk}6;<;#80G9x zkBh3`&>wAJP`}}LZp`jV_aB3o`dy(WJ=O2iFJ~wWB)5(Ig)`_AGTI8s&SM98f1stKrnDiB!Lf-QQouPo=gft$;EvI%D> zH)dLGunDoR-7-!G@MK>I%2WO=^2%{_rPsM{C0BH`%hqjfZs+2VzsJ`8z6WrN`mTD3 z`0cxk&zfzUx!q6RVE%1j?+{JCl)GT&xdwkI*-}kNk8i* zAax=^A!oj#7I3-4S0Z7XJ^qmH2o0E_(cGV${Nc1_ffq)a#rKNdo!6Dk7Ngtx@mFc_ z4dgT#fFnAhJt7e%6W01OFrWVS7u7S>f_1ORDrm_kfltqkf5DxJQlw zW>(SuC>JjHbuyy=N7h|NRq=lR!zZM>yHmOmq`Q$W>6Y&97NkpBLb|(Kx<92FRzvM*2Xsbs!^}PFEUMx*p|nL z?XBD$IX#lA;a-;w;Bs7wQuKhVUfF%8TA3`w<3Vn4@T(CNvOz%`j}O3elo7>9sQyg< z`7O#Ap*eEiDJGAeP}8qs9RRscC+`glaGMo1ByY^<*h`c9S&_PT945W|`px^{d6omj zu!A+hOaM34tAOdCTG97*8BIztLyapF_IL3}y*xX4o`*XXm^u z0k2H3(#s*B#Xj49=|Vz38tBjEOHw!ZjQf>UiEZ=Pbhh>rkls$C>&SgBB-rSiX{UQ4FvUr2ptCv`9lDa(QT3oCG)lGceT))y!S z)r81ajwxYdA0h9s_1~I%*S+YPjmL5bpUUy2a%xpBz@Zl&)e~umD1TsBG#2OJbfVsC zc9?#u{ZqURthMgmz|-82q3)+Te@vSAiX~5X28`d$xj9*)tp6l ziac-iR=LIUo*NP1r_yH{cc0^)b*~z}Q0c(31Z)pkO1kU|E#_bMU^Ox|0X#^)!8_Qd zE=30Op5rEx1AZJ;i6zlO-*ZP>Vcq3WjTqoX?Mt0U6p#*Wk$Hm8Du?Fg zy1qU&oBH3gM&XaUsC)WfDYMnZben4dZivgXy$&5c*7iaCFY91S7TdAGUqk}hCU#;) zqVO+2z`JucIIFke=TULfv`YM#yQXxp6rJ}Lt2MK5|30jr`^HC>(u=P~(ibHg( z@@wL>wg_2&hIg7y%{5KfVqh;II03E~WVMm{*pVQ zVyPa0lSVT@jux<{$X2dRLO0!#rb}~O=q@*hXm7GCg5O%Py-$b&m*ariEBOT*#p1(9DwS%AHPzye zB}!S=CoX7~v0#w~8mH30GvCGiHYdNn)AF=qUIK-_HecfiWSh!_x=hN#u~K8I8aRc} z6$&O-`Pk)cEEnD@cwaKW&hkamBcKL_!hPUDGVOn!1vqJd=@d5T{-@(8GpettXY1L* zUc#(tW8+>hwPSaR`a4j&n7%^5O9)K#Iwy>Wbzy>`?56Y!EFsaT4{omKZ#9-hfUlu! zrJ^|~^@`SK9ktmr&Q54(Sf5vhh3#U8yg}o5Is+V&C=_xi(BmEPb&9I91Ez!EaPYGu zrP#LiYEXpP@(lP}&2?!o@l+u*LBbQR`l-vOjGj~nQB)Bzc)c6G_}IrI3#8+S+lw)J z1{Xe2h%#-7Sj5|!D<-z>i%qx*4;#EQ^#-p9out~6BSxSFZrm~$u3V(oNWUrCN%uTDT z2U}IwAL{dqCnUF^-{)GXl@e^GuJS$a0{l{|gUA`B0fA_Eii`LgGl}UT6)CFDlrD*P$E5`Z0)ZH~WJS4LNEH6V-e}w+NFeh)M z{m(60wRCPpOSd6c!y$zstgjo$t&T_Ihb`&S=b6}(0d5!%KzfkCz`?to)75y1LQ}g@ zX8rN`i(KuVo#Hsh@DDhA8eqq<=J);c-o0oG)uKKg(UOqoi1SA*jS(6e0@L0PvkzQg zy4=>`RJ(%m3%+K+HaF|C>m#EBn;iFM{(6zye82s6Ay7;NcW4%R-)B+76RpV3!NO&W zOb2<$!?Y%SzWCi9^VVvByYF3m`b~*0ssl~6%EiGUuk3{sm}UL(?c?xZ`_q;c*uN+J zjU78ik50KrK%$)~{WbHwJ?3*y1tj|7-m3QTSAR7i9kJ&+4Tb3BfW*kr0jV;&MT-@q zkyq{%R{d;M`e#8AEx--8il*eR4F)a0xleq!3BSTTFUzI(cqDpTall{qivwpIG<6w4 zL#vwA8RVaNx7a5!+^Y%xFf*?m!*VH78gU_jmr3$q(P!UX#H>bCuq4;~-K}2T?yN!J z7aVKW5P4|UY6qtfbQlM0$gRww5p3S$%Xtb|ib1^i-W%$Il*pt7#jh@JK<#xz8@=qs zV<90wy`^jxD1KZ1B04zkcL~54*he_4#58aA}S4s@T3keHDon{tDSkFI9xXZ4XYS$i7`<$;nk)tUgS7!Ae z-W|4>bYWN!bx{72As=~P1x~BKYS05OxT9LZwPM#i&4&R{Z}3=_)N(tPa54h5v=$oij z>W%E@)*=70dB+S!HGQ2G8H$1eDkeSFO0&oT&bELVsOyGc)8(mhUvXnk(LU8IfAuHj zx=Oz*u#@`${PEp?o+l1w>Y+GB^w@?{mZWh&Ixb(-U3{HQ&Q7ds;4<+d_Al~Rh*WRsz8P3;)IfUk=Dk>dYPH}_8JpMK#%)wP71Jm=i)@>5e^pSb zGz~bEHvIBF!vxAp*yAspHH15%NkQT0h)|?JS-FsB-abVGIAA2m@4sjej)U0KKRiJs zT@ue8lf6p1v1^PLMmg=Tived#)6!o&&41moG1C&GwbB6oD$Kgi?%TFh z0JV#xeZrDS!{+ir!LxMA*el|W;eHJ&#K4BFbKK^IQ9%Isra=$80Ov-!)eoPaf*0KI zHQI%@{K$E$Z?Zv94)FHH0M|jg8gIUmXCHeMAnK?sFT%~ZcRV_Q+hSmGd4AZ=UH~|R zK66mLe@92m43f3O=527(_jQ$B)Rl||`>rKN{vmK{E*%3kKO#hZm&U^-K#!8Gsi9Qo z5|Vu&>f^f=BYH5(52R~)Cd7uU=Cw$*BIm4~AjVsz)3qrDz zV@qUd6tt^cm__??*6)Wh`^5=Ls*c`%cpCE%Al+%T*K)hWc}MDUo)glzaIPlwHKS$l zBct|}oGvbe#UQ{TIe(IDeR^~FNa+1+AygDwPMCH4PjPxTnwi__9<3T4;EeZUKL%@5 z7t-P?)^Pl+ktik>qvj44zF{1|nzsqs#{wMxiuO~#YYCSW{14WQHts@6 zIm2#0k^fs!|NoKqyWV09jdo5g-L;J^!~ze?uq*X++UlJ=XWn1bD=~6-K)UuB`Tbii zV=TTISu+mAPqRc_g@0Mn^pykGjP3GP0$_*zJV6}8DTD2K$G>`+w zmSZrYZq!(MBQYl!Lha&&!vD+;&^}|%>9?H+@iIt3cm|*|F0{*Z1v`I65`Qt^Z zc%zboz3^G1Vc2Q1Otf4?sPj)0`ILe#kp9to&x)3NZ9|Ght%OXSpS z&#nfxV?V%8=XqosMBrp@xKi8Q{|z`T_5HX#jceedOWVRdnTj3KofR#0h*y;WKHFxbC~bw{++wkObj`1aq^?vMMc--Xt(+?(}{Vqtk z2WrPbn7-r3FnVvsTh0I1l(km5KH&MA8vmeb?C@f3T)Q&BWvrK};@a|NSmp(C0-*9S zZ5$xwkeZymoQI|4{&Bd0^Y?GT+xmwPa2TlTs7N05Mra#z9 zn%&NyEIr_^emI{lwt+qHY=8B=o4_L98SbgtA=^Kxu*Op2$nuu$cVel-onJjIfRFln zV%ph(Kv*t#o1U`T+eK;|!|6FRi%8I8oYNo^dK7F7sl!QOj#ruz&<6&Lgfe=wKcQ|j z7+#+4@yfc5-nAJx0_pu|aFecVwClg*+C`|FqGS>x3^|F_9S#atX@uiQ=9~cj>IXHa zB`NI*zew}8tyQQf?;JsWBrCmCo{%TFTFV*$aOt6uT%~R``t~a!lp7{{>A|@&Jz6QZ zq+jf#H#UstmjKV=ijH{+m4(Fp9n8NSH@ehLmsqHtbP>3IHa1t$G@TCcDRj2ff(itF z9p44W-7Z1zc|!8%Ip*v4f4q^uenM{m7Y^xgzb~2iN6NWJijPbRbq1F9x^|-PCZJ45 zMHNsuiNIT*|9d|+$A!2hg3jtwmn-$42EWc=m9&z&TFMV5akH*Aa-f)$Ygja`ag|hd zDK`Hloc`pT@so)d=+@s#v?Y9yZ{gsr6MElnb`LO|is$ug*plTe389dF$P^g|l2xuN zJZAk<4+qjSp42n*VZ2BxMBt#aXy2cAb6prl_3j?_e~dOmf>s#@c$a}67gu~B{5;Lr zEs02a@wF>ou~}*uYDZiUg!yaB|Aq&Et?X86isY+W#KWuN0>%4w_8sqjXxdeA^Cr%4(YiSFtgwhPbd}T;)=IE;CFG zJ;@lpahESn>W@q5{QvT4YQcdzV>t5;B$<_x9MX(`M6nDmw`Kvxud?~RFC^Iuc)Gd& zceeSzcVv8J7pY%XNMk|{`iVPTY3FyXG#WSPt=#xjh+b`baA^INjS#lO<^Q6uMZY*nu6yWEP@ zP2d8&{inWGKZh1)K5an5Y-i&S!cD}&)o}Zpl3`Y@^}{z!fJ??je-vbZ3>aZZ%wKgR zTHy#;XCLC8JNfU?njdU(CBc5?(FHT#SSM-W(JgwsgLN_kbDNg4xFtfX=)B0k0B_8unV2oAQ6hQ^}932u$2&}jB)k~`W#CB?^)5(M}+sJE4SBG!+h2Lqm4XF{ZM z-{szss}-^12IF_5Wc<&&NpydjB>vcOvh7;?^BF}fQS?u~4V)e0pj#`Xv;J>K{uLnI zS~oe*fceR>B`}LHFe7YY!6wS-)9U0F)*2Uz{gaCez|l@=)Dp%gNdl#A>+<4St8Idb zgs-{Oh+L5=pkyeugaO`4M(&+~$V%Q+5sUu*lu|&}gkK->@K(X(eWbpohS)j4Q|d(b z48Ni?Q4L1HOuFdS3w@s=h3>xfztbR1{A8J11#n7PpQSQ~f;B3&(p#T>o3Rt=-xoeT zy2Ly~QWBI{*98FI{qF_O5iyZ%iV<7yY)2*X+feUH;byg;ZTlS7v*2&n0S?Eiy)0A7 zy=9Z=}|FfAUmGiyN zJ2~ZhkV3i{kZ#9YAeSokI`$16zGK6jEWu7i^(n4?c?X(c&6cdhZ~)-9ri%_l3LIDX zo|Z9FY!`B76Z%1QqS?{OxIr3H z#HhpnywV!$&f_qDvbLHosxc>3ej(k_G*Q*gY3&P+D7zc(?*s6oV#Y=#qq2V`c(-D& zv&vU7L5k=s_ptE^so4EzKWiHeDo_j|lADg;Rf`zS4!^L(Qt0R}60M-7L|cqY1+I); z?j`WJv;TnRJhuKF#@me_+HhmkQnL@GPv++EMHinZ$U?$U21qx_?)bS^?#nJnx?Exd zV;#-OYA`H8%=cVW1eaUCo1Or0?aw1wbrcqbao0!UL~(J*oSv|G#TATF&y*8k9`{_} z7|mkMbdYpk-W|mdtyRcUHHkjZ;KTAOyu(3b2VMPWE)$S0sX2&~fUujI|4a?@o2(mM z2GuYYpNW1a>RejGfn@}2YF|DK)>|khrIgqK_SlAmvQh?{vCiOmbw=T$S@o~rEBtVKZ7aP8Qlsbs z0x7}49M+2?tR?lE&vmtf1h;ze&*p*GsZWr?}uL(_*!m5&n!jD-bX5= zf@f`!9bef|!OIVfcWn$vTT8wAvRI}BnS8Im(HEs=r2kz2>5qq!*l%%YP-ax@U+spV z3Ymi{4@ptc2Z{M@5yBfF_5hy7utOS2=Dz3KQ8O#gIdtDRHxdZpDwSd6qJ&o>Qw~lc zmVYTp*T260_h3bTwj7S+P=nDDKdB`PG?y4dLN7Kba9P3^L&MB5m}D$siA5DYQQ$g@ zT~{Wc8_1fJ^tbR-F#vb+-?|xSjrKZthg?H7*}gUl*AUm<4!Un z)@gN+mul%OKe5{R$$1er)>x)>sqeEsw0j>?p4YT&IA*B&6_lQ(AI~-fO?BAPU+7C$k9GMnPGjQZ>4XO9b z?8d&QBQtXZW=%2T6sYw|CWn7(90!sT_}K(bq}~>I346=hW;|Xu47P4os; zbUNKbk>xlnKNyM38ODz_Gh3$p(@D1BZ{XJ4=lLtji~w@Rx(Dm7(BSYa0#tU7Dtj|F zT)7$xS>yjaCWt?ncJsc|?e~{&vd^NeCr*Dx*s5-l(TtHF#p}KQ>49_LOcAC@-PJjg zhc!kRx7OC^DB9v{~;0rV2*4*r_rF2k{ev~K9EyY6c%Cv2A>KE`luU$@t#>Jjjn z%%Ot&RTs{a<*Z<2cj%VQJ(3;X`XYE<{0w{j9ntEdY{=G=3ZR&9BBRtFE3_*O=+IWZ z0b8&zjZx;L55J$Dd;RU_HR`}UU+vxmq+@<{YqJSyrBbu9q-!Yehu3%6!)fYw==!aG z;0*#>ztrscACP_Lw!dNJ!7jUSCW+`wlhu8d<@vcOl**h16!QTFQSWk(8fVI(@6OnE zmD>9VYO20nTvQ@^A+HxB09+%ZL{1wkQA2xW!vm!Z=7m;^k}YPlDjNTZQA^7$QNtwz z>70#ajJg7%J-9S#EEfFIDDz)vMSVzR9#E_Q;pz9>&H!A)i0WVPFl!8F{;zx51_w{U z{(R}5PVrxDvAca^Y74OcKkXm;Zp>zKUnP3gkhPTPPx@f1FSYeV`B1`+MGmjLI5>cG4&<{= zf_g8rJJGx+s5Vu(h(eW`%lGQvn328G^ zRIwAuLhWM07HlB|oc=U*N4m*IMi}7gZB&SFEBWU+v}~_XR?r*!$&NF2q~beQwgH?=)sg5;yL-_3T}4SQx5|fh7`QeAh3VDP zJ)w9RW$|Z#LoZSiFzY1vUgO+)3k$mMhUqYcG8>>1o{L>G1#^0WD=_8(u5R2&b7F*b zYegAzn|a9Z!sxhtb0~~a(FyqUe6WQOR3K6*Wk5;pqhDErU!(IyK~Z0jGQnUBm@Rpz z$Y2Fe!-iY>Ns}m)d5^=Qe;^^0q1n~>lMffIlZSb%47(;|@`2iGo%%=qRwFa*kLD-_ z6p6WP%b-phE(pB_K2IugrnrGyb2DLoE{l;L4FaJDCPO?uGt`-l$KT&x$Ns!eV3P<` zY5>yz=+j6@p8fiVgz1++9HUuQ+T*$~R}G>=iive`Nm!eUXq5Np4vr7-i7*fG2cS+^CoBr@3yAr0lbK) z{QB2vy;A$%FZ$5~=a9(f1ov1HZ>BBiv}%~&KPUryvTr~AiM`V#XB_%+#1q4*TAWkv zVv?$+bP#7PqWgdT29(+1#*>XIo_a%t*H!zme$sglUPXFczw3cgM!c%3Re z!By$CW|$W{UIjQ)cR+mSiSBzmtWOIqUaR!5RVfSXj^cC%M|YlZQ<7l&;|cvwr}YE9 z?YRdG;iTBE@oVMMA$L~E@2-PhhT5qw;C{6nEq?OoWglNQu3TyF_W~Wx$4#fdc7Y+f zGVBxcmU=`$F~$3+rKJ|;!g>15OoC^APyNOsyWP{tI2NcXPBs;divSN<`8pyd@?;`h zRFkVVngc@-{`#9fSNZgnH zU;MF<19%3azw6|DBSIlw&tDepK9|KbM4|vo$DLJov4BCM58$p0F^N)iT4pPBnM_*d zMd!GmH-MGOb9KE|4gT~9Zb+6ENZ02>&6ZDY9m>4zMrb*>=2cpw%{Jo6En4SE=+V4V z8U=VlDlDGwCTW0Fxx`j$9>7ioHFOdVX-va~w|0Z#4J%Hu=&>&FQDZCqVbK{)?C$r2M>|D&UOMb0%{1vS9^ zh^^0RgY~i)bbf5rL!L=<_f`glH4O+F(gv=(&F6ycKKZA0C+i(Loc2XZM63`|&D@DN z!t#8C@NZ%WTy`!_;1uH6|6Q)k#rgAYjqWq_9&M8p|7MsKpy{UzsZ^UReC9H{^M-kn$e zxaGbd?+O2$Vdcs6{6}ZAiG%xeJAFFy_QN`GAV~zCIg2`X=jiNBV05Cr34huVl;I~s zt-+gW6kAGO*8v<}*7oZUdy1?wr10F1ZDq)kvG0VhJToPi{TwMo0nqROhq6XLcv*YF zxBrA^9mM)u46fn(9y{5aK{=LcH?*%Icul_J4R_O9pMP5M^jyriyix)+{BWd__yY1) z3Z+te0h10$zcPP$&!uq>L2iBdlV;WHLTG!lA}?RoYc+=|Vb)W%7U1^OZ9Dj@47GO^ zk-c{!B~Y_0)|P%sb}POa%x(*1|8u*1dy?-O<6i3{hEa1GaVWQS8M?5^gTt*p{ksrk zv91~L>@lUEAc&te7w>|nc2CIiGuohdise%vZEiZOq76G^6*5qa7_<2~WHr^~OoOe@ zM_z`Yqj>l%J}2(rz~SQt>2D?Aaer#WLYthRyTA;?2)`whw?HM$o6Y+-zgbOp{h~wo z-wV|KzkmNXAul(BIL1?7W??-ya(sScTEunsi9NiUhS(+fvR|X%(E@PXuxHmaWyHHE z{#aulC?uv*YNi5LNfBQS$dU&nWNT@F+w^mthig2ei4ppjvUFjTYEal`9tW);{4m<` zOj@{Z1-N%v`ubJ|5+&J5ziCm<6vaTbP|Z9=r)&&Aj7y+6axlP^CZ8<4^-)<+_%jwd zv?nIQAz-&ynT@rb29_8Yeg%TP*hlRWY*AvL6WG2*wPU=gof$^NVA!kdIo^ltv)2MT za23lF`ns*}W>@c2nzJ6%ifl2|^i`V40LjB@G=VVeK@Z$}gx%NPh+5yrw^%J9s?RP? zN%pxEe2o|zeoip((SCA$0cvN;*lfy^@t2RdZ!sN|`e5#eOT6uG^PVWB*4rMYR3E%n zM!uD|pql$-dk^KYC=rsi_#BUYea$0J&d5K|Lojt5+}YS(E{f+ee7M*rO_RSn9DH5! z%Sd;UTvR&@$CXWR9RwE+cl27x>_Hfe_dRfrUtSj;y^jovKWy=x%R)Hsg`+QlTSUL; z_s<=MLP=AZ+HOP7Y#qE#4`SqJ5Iz6II|c+r1pem|e!%upGBIP#P^}9=?ur<{m-8D< zL1BzmdZWd?@$r`Bd3PPx-OQ~0-OBlZrRPWR8!4{Z_Qyc$&2=WMqnXNey-*R)4u$vF0EQKo{u@X85f2(qQIzuJ==BMJHaMY8G4=I)8SV9d}Do=J#g4AmK zJ6V8qhYr8wX4-80LHbkE2Cr9!5Vs0k2fv}p<$vZMtpcsD0PY^7fnMllt)B7G$XE(P zy1(}VVa%O-W8o{l$YIm^-W$LbdK211F|3Ie#<*`3-|M8!@+ODU%;=ZB4-p95?&lr= z_;a>R=Jo|~vtu?HMF;0uT}5Cd!_V*0d>uUOc;ZEzOaMX39M)MYB*v!e$MFwy`9#U>D z6ejGJ5)#?Gqe>keeBIbZkxIJWW=O?tPvJ;_+p)c44MVBiRKFgndM8fhN$n>OKa;#_ z@FUfDdDta|3gA=hu!RO9~B)h%-x9s@irMAQB&gG;yF%qzU8U742 ziP4)#ceazn1h)e!4heuSD~glj2j~8~BOLkg)r0PHV7}ugj@bQjtx(o_h*xg#K&ppw zR=pGCz!OwdEG~7`zN500f!dR2fjSX0>T{1z9b@0(1G#H`P`oh z{y_>UzeK$)I?g!*#oX_HCcmTj5rSPt!$g@Q_+6rItZz?z^iM;x6TQjT*q#vs(u+f;LGD}JZ)l48ukEqKrFAce8hK88RupR; zj6bzRfOOOA#0)13I30Wk-7{H;?iN#YZS~(gQ4eUaFRG`nPq+XtpFH*7_*4GRky6}` z8=B5F0)J}cQ8Hjru~0ey8AbqH2?~Esw?=s=e9ts2Rc%ConOEs56rFhelk%gRXP^gW z^#_o?cgewSCE~7^DK=tsY1UU&xMf=w%!bC6gRqK834si5KyQ0$CcV-MpPkA4j7E)z zzs1lWa1!$|R-Vo=e=6u=0MC52=LG_?+ZYx6$JxHrHFP@YH|A%JB@xw0LFdViCp+26w;Q@hkfWuH~T$lf7=c&Vd8H@i_ezajNd z{Z4~7CUv%ePFcdL3rH{1-wjoSJs-YA{wsvwhF-L(p1fO+cIoF2^<5vw4^9B!24e8O zz9B~YGsOY?UHoF5_-Ds0dn<49{aWkUN2bkSAK9q;Oa9UXDzxFKwet>{Isi)9fqt>X zXLo=%guUnwCwR@qrL~}q!F`LSMgA^HolYRXH{V}(^Lkib<6QaWunpD~C`R6i8jURC zPmmow_Sq2ife#}B4CCMurRQoy?Jpq;N&|qyE$wq~ku%MERIaf;s^v0UeIcZkq;T{4 z1N&Ev`{oE-IHt)c38q(eR5yqe#;4fUgxKtgk2ZCbp>TRLW510<69Va6GkPa-tBXosSDND}ihfOB?6wK{qXy0R>R0^ zfT=!?{UN=<8Xw@oGBtl)=D#Ykgyte`Ct=?_CEb`blT0lDJY!ngIaYj& zs|-<4=J&Up^An+e>^kFH82JfuTE#3?4gjwj*dpS@gU49*I^=Fk5JzR#om zsph!A!rmm6OgUE_m&!X9K5__fGXyy&@tww0tPKj6_c!(fvlN8%FZ?Xhyic+WI;ra4 z0Y0%Ff;zo4bK7&-tFM74vZk^%4?qa$%I$B3f{>66I}f_o(tbPQWb5`w0Ud79nACka{x{s z?2_Nz%kq8nrg;#FWI7P3Z?Klot+$F-u$_yDq!j!D6aD&0pTe4;$jO+Jre(g&kStor^t|C-St5-31_nTEnu&stbM8P4k-YNsWCS6 zMR+re6g<*M_EY$V7tCfn6Vqrw&&#>3UHOS=7T{%@`@S%R6MpYTa6(ezl!x-1ZqCae zX_!pwzIXjooLK`nOC(~J-3n>^VXB8^RVNewQ6>s5F?Z8o%L_*z+a_L)^n}?ZYTQV0fwySot*whK zvp3DyJ@Rd&FYFjaM8Npz&^1T0fnx>YTpQUJC~THA9)<>_Y5Mz7e}b3yywU^~WQd~f zc<113sk|jMG=Vk8@?OhN+_-xiPQHNb8}u7Cl0ebvLv^MjIL^U@qvq)5f#I8;wPe+D z&^LwoPKPJCPa(TG`~Dw_05U1?QOzP~R2DMUT_nATzIVYmqyEa$iDiOcu176`<@=E& z&IfSZQ=L$rq&1{&4Eo{Lt5xwt__Ds5Axvv@>Gx8!4)X)P6IeuclIJSVCET5^Mj% zrfVu}nqq`rqi;1*5xnig-upwC@wy|Cijd}i?{MGAyODF$3WJmB>F!31@3i>}w#=%3 zepsGQH~Wf}WHX)&H-BULARSyRrVFR?_cpmS@dLP%@5H1odY{qD#>UHt`sFk1UP90ngE05 za7zojI0+4Iv)qtB*#wP;Dvg>MtIw!Gd=FMaLMmm^7yj=C0XupDfAAYQ_wA||%E~%w zpTReN;g>;=Md<4dPJG*6MYHy)=it_Lpcub-5xvU_R@V4aHL~SZ0*^b7B=+8G_`rp= zve?~S^4|czTD9~Kgpkb*A^WT2KUDWRecHyHT^sTf>xHYMn@Dv8;HkrJGFt@uiaMoZ1Z+Ju&x{ajKaPGo(5<`wL zRO0f~@-(jys^nmq;XRotG|vXo1!E1`+CsO{rH>ybLe~*bOZ!rR z9d_;Cxe|(?+lb6M{@NF$-#6AC`L`~jN(8?R0}G;$H_YTNK^0WfsN9)^8H&{x@o!APjI@A z_aO~^t)umFo{6PS1@njca`GpI6dX1BwWFfdxMxamYi@16g{Y5Tg|&M8mcvY6VyTX8 zpye4G6p>8UYEHzk2liqrmv&TbmS^)%Ua+t#>3X3GR}-YEd5rWs+K$~_@{L+R?a4E5 z-f8q<8cR@FvfG?L@vo^=v>k_{(u#812Cv*KjR3wT5stIYbp20Ayb@3rOLl*cco9QlNkmbov0QV;kFm?Re zEeKBfcBzP40pR$5i>A7hJEvkW5k4R^ z#8t+_Crc|&K}kr4I7Axjlu-a2C8h7q!B9B-wJFfx*gv!C^vCpzW|!&&^K4Dp7xvdc zfPYYU=rnuAH71seuSYxdktrJwmr2X*EARh8e-e2u0=CTfxW;gT#i5FkLH9(?=Tax>5L-r<~AFVZ`ytWviy90E=IRV-`;vkPi1{x!j{_B_+q+fVC*2`TL zd#D{`Rz0y0H{cjeOt+UIy~=Ff*3>NepNd&2Zdt5hBSR1}_UB2u4TA%)sof7sr#U_+ z#lyw&+`Pb>Dv09pFY(X9YvZ-^ZQQq;1}{_-EU-#?SzwvD)b>(jZq9GJRTiagix0fH z<}MpsjeCOkplH%%y(>UEF)ASc<&bl3zM(JCtlp`8sp&!3QL-&c9}FBBEL@6sG>h#< z?;#$JG8Hd2*Inj6tv)7cl-m+&oC=Nx0Cz^fh|(D=&2x{oz2rdMr~G+H>9ZXo!pLYU zSb1&C^&a5ppBbB!n*thh7V76+3m=|jwOFzt1PQ5Bi};08$>ZH}nj5s%Zw`cl^lGoifE)NuN^D-H^qg z_ekA&U{Q7@@VVZfA>jCd>$_l}byoX8!G$N{1%>hHoB!mH9*f!UXCh~~yk)n(NATAq zQO4BAu-U>`Mwm7_-8Wh3+G@eDFMm&ML><*io_P$8bL9K8WbMn5nrg+3*~G)^1D_2d zGEtU8XPzNM3>dkL+=1Gwt^RW0bR-P^i;933v9xKgb?7uBS_spf^M4l|@9D7v@JgOf zrL&ET+iAZP>m9zRMA3}zB3pVZhIqR(Z?~dLvIG1*iH#GQCuC(GN90l>U5HGld@o^g z2#&iS-1<&I^SKGYn@aQkeWhDbz4icf5n_r zSp;QfZb@g9ml=P7CfOHy&r3;?}zoRd!?q|f~+#%sCbafxq4fPRYERkEkK!L}-aw4A+`T`&N zRKsgDx1Ve4^R|4Lie)vtSU`On0tFiwezJNa3$zOWn%kewrh=nczl%+>}I5&O0g1 zpdW!C{CSMH#BpjB;`sgKX=CIA!lvp2t=*=ZJv;I9@>E}?J=*8(0xvGGu1P;1pDcUn$_Hc0?n3_FQ z<6T|NE_LsAu5pZ)FldK4{1?G-PQgF&%h=i`IEc-=3MR^bI)mnmg4jFqCau$Xx8@Kq zf+)DD=K8F~z;was+Dr%E;gr5&xQ^Up0%s?nnV$mh*c! z2RYs~q>?d*!h!&~-rA~l9FU$k%Sb-fg;#5QwK(nMe@?~I@B2h>^XSsZR$k@lKo=r8weWxiGTQV@d&Wy@ZPiFRm5*gp=g0{8vb1PDme(jnmwXI zncertjcHzV(0h?T5x|weZ-L6h70Tl0a<_!rV{sRmr5&y>FI%9Gp4?{BagOdLPz>*? zR`n{>^?x0ZiQ&nyt@PndQLP^4*H`w2d?dE_z2K#Wo2I|D1Rf(iw@zMB8ywJf0*1q5 zGWKNAIU|GVeDW;dZn$7jWi8Fc&PyS9A=|{xLM~xFA@DVnG_fJo_GkMEFW3Xe>E#uQ zK4jC!QIe6P5hTN#a3gPP$Y(Y3LfnwHLTZB@HV#AQ$d-R*aE%}#s@RDu3J0G{Q2>z< zPrkqa`3I5!a1-~*G>IX6mB2`%7O8xt#3SN1%)&r1)I8)-4VivFQ z%>-xWIIx&oo=&WQuRk?+60EI8mywdNl?ZNprXd~{PFT%oPBg)@c25|tAC^#GW9DZX z!iY3|8=NR#SqMvM3^EiqB%i?lxscKQAud<9cD7hKC$j!=W%aEzx19KVi-fLzWTxi6 ztOZtAruS1&7D;n?>TYoQ7t{EdTCDlRVYg{N5dPY29EhM?D?;%4MI=Hgf z4)DHD1jfH>zPb3YS3|ErKA7@1a+@}A_1zKFcLx1gVE{MJK^GEb`!S2JD(yzC@Q#;- zH3%B&If2y)Xf!{@AkA&S8w5sGmV$$4G7=-xbM(8-nJb9{MVvy=WfCQ~qnOWMUxNuz?5s+`_8$A{m{pK`{Dgf}QDCl2h6~R9xZp>_bX%^y3KIDvF zGbwz48H91`84CozVtLxc7{e8j5TqgtUNy%XHFWr;WvRap25PeYEo~vLf}07(v$D$( zGUG=9SEj>kJpv=whCrhtBTZ7XR*G5Qq;wvjm@pGqakC-#&NGdV0`Sl2LkE;BtWYL*j|^U^5NypIrxnU&4@5 zM4dk1cQ+dzbOh&eNTE#rzFN-|8&iw`Pi3J7))TE)vc5CI!)?&aR`||>@c%t>WyG`0 zNKE~61x+E4&VW*2&t*dlExK+~VWjdRb#m)FX+y#K_Ep9)bLdzLT;C;S7k-7>P>xV! zh&6Oh|39+cDk`ofT*JgAxJz(%CrEG$B)Gc;NbnFmxD(tVxVt;S-QC?SxI4_hX6BrW zI(_}DcfDO*Ri9M#-b&Wi{%q-vK5n9@_Az2o2WLEh`cQ>e-=f^IV?{6gkO~&mJb_#A zqt?(wTj_hunlz%(X#nTBoK1?nxNeS18|7`r>cGbV$pFO8?B?06Z(pbDzwVlfk+1CrX~M#cFk5MF~yj z7J1py1sP@|DVVyI%`hFizP-=E{X5jYHGk#$E^@&3Hv%tIyxB{fA&l=oKpj^!HY*~u zKf@HJ1?6tt*@pI_7G0>?Pt)Wq@W$ny5C_10r$Pwn?(;50?r|?dKlUPM&iFJD`Dpng7$SNQC6DwJowjq19VCLC}l2+^`~O|f5F%;b)K$!kj^`F?$vf{c+n5bYUOgy%qqOKc1Vi@d) zRH$bFkIJj`5Vt$wyBhBmT3~}?D7Fv|PmX#eqMnRh`m@8U0^njazuLXMEAhVz?YC|C zz|gHZ8+r+K^20zqE)#P#OM-di?WU?@28~2s%V0Y#A`CR~55>t1E+M_pd4nsDHmPWE z5;!WMaeYo!6NzjT?dxb4A$4)FQzCl*p-bTehmz^985lisplMRGXE9*cSVi<)ratAU z|IV@Ftv*Bg6N%9chmn*8c%O7cqy9a~H5qT!z0Hh&ndCgfC=wVrL|-;+8m%Q13;s;$ ztS!h*EHy4(L*Eb@#>E+b%Oefjt`w`Zd<&TjG@Jhgs6Uj7UP?MQ91E{qPl%R2MUS@7)C94%xTd8^`aPTbuq_rhaPRDkB~=fWw>Jz3ltq4G+YSukF9(*HKA_$}`sGy$HW;u|g&1fXP(}LpJjKcu$ll znHvgS(5X^gO`CakaSj56+jO5Xr|Au#4sq!mQOajOQXvmjZHDqYyiD%scZCn3L!UyI zf28$yu+c?s*i`WbcWo}r@dATub-XrlHz00>%vkGV8+B@^Zj+%#HJ%eu1lyz43|q@{5X_|9j1J$PoGOs zVm5$>etMu%Y;}|@tve!wHbyk&7i1L2Um@pK3Sby1@}ijmaGLY0DQbz&R+@~~eJba3 zgGIy4;LO8zG1#lkB)AE7SiOF5k!z8nxyjiLyDzn3y7S1=!9Rez;Ce{bj@(8Cq&x5~=ycVGnbT zx1MiGa(LKS9p&Q&psr0U%$E}EN|}EzggjTyP3H%9olyD%%4^t$W!kSLrvbp%x6?05 zRby+OOOg)O);I$Vri*svKNWkJ^L;4hxwmo#aF>za=EZ18aMWJK=S;<6c5&`<2dbC21VA{pM&j^H5x2h9{vC+jQB7{pFq zX0cQ)i?3ZNa=0#qB4x#v9_fQ}H1>4?GrjJp-bbAf0=lY4{s!R!Mf~3R{?)Gc+#JXm zH>qtzwqU#dv$7BE!qoXY+Td3jSDGK&o#q46^#eZ9T7AiGRCM0yfSEYCX}SDLYag81 zyh2H{S%zNrKXjs&{pkChTnlFHvP1y>5I&`ltlt3{xbe%oD4x6&#Y*VG;Zus1EL_M1 z6*eO{XKE{3B=ddaq*4|4Mzn*yRC&MY{SXNHv0a5k?w$qre}c`#^bm??X(^O!90a+4 z#x&1J(LT+G;bHmj8QusYnGgbinUEewm)DOO5hHvRj1WX9lLg)XI;^72tWu4YoXl1c*r7rF_$4#djGHe1r+N(}N$ z43%MZ!`c`c>#E9IJfRr`liIq5qWjsC+Mk+w%-PxhMpYF@9J2h+JR2yD%)T%_%z%w9 zM}16)$lC(pPN|^<*O)vjR|WG2Cg1(W)}f>?qV`$foT0t8WyvhMx@ubx&4ugLW0fjY zZEl8le&D7&9Q-SM1CxQR!CHI}Y0wISTue$>t%pL; zn0>(s{VWvn3xM0PHhapg?P^I4T%Bnk`Pb~Ur4}w95u#4;$yZV`!FU3AAM^Bz?7b7+ z)sLWDbJ;(pbIS-%mvVB!R#zx~>fUeQ6wBC%^VIv;(^=0@1LO3&;cAp{$%yJNT*nWNQR(2 zpsa)*N&i~cgylYK{WW}Yi=h$CL^^0QGLN_rA>xPs877WN&j|sdwwv%2tfoC}gIlcN^uyuvY*) z+Je(&Qrm7`eDgOPl2m(rZEC&4*Qfvu@!0~Ad`>(X0QYZcuwM*3JG^7Q5PlIEmm_Sg zB~2X03-XmAKt`p%G6Zn>_XhrwC_d2F$5@IthF|BN!dB6#6e6;E34;AG6~hJqoQO1; zLg>CxmdA#hFJC=)bhjLe*zZ@~^_XWbY}W}P*q^~^gSkB^QNzh-F*|x0%pVvL)+A3 z_X@Rl#2o^DHbo$F{v7Lro>7sV#PyL!GBW{iDj7XyM;V?<6q6%2!Co63Y1I)Y6Y-M~ zLi^AqU0d4+0H5t0DVebFNXIJ*o0n|nxGP3$pP`@P*@#}8Hqs5*7X$E`5o7Fyu5KoN zw;;_r7mSDL@M16JD{tD{sFOoI92Z3ZPsqP17kk1%_(hES*}6~~8`2~{WJD6faK%^C z#RrB9nYJyoYb1#O)@zLjyFfjf3H`K$(pXUN0#b}r@ z>G)H3n#z&5?u&UWbj$F!F8{g>z>E^g9NF#c>qK9P>qi{i7~wp*XsOTY)Muu0D*7BA z+~7%^#)qUPneC#icS-g|FrO)Lt~cq_wGsDI(*#b9|4H;;1L{-Rsfb0_m)zq-K`(9_ zopS%ZboL|K%^;qH2XSL2D%5`k!vFjEpMO;Eer!>_AA>g9l<+tzrjF|pJs;@9bgL~v zb)XbM7?l4G;7?W;w|LS*^oN46<%2t2RClQN{n76z`CRPGYmYe?IRQMu$$vt?&bHYx zW2Pj?_Mlb8Pr+oBb3b3erF^i@j|))0%{e9{wNTWO@sx}U ztu5*%&Ao=EuC272LLjR)@1IKraGLVKzi;ij3#wzCv08IAjc=pp>^!3}P|OH*mFN<4 z;6CG{Idbo$TWYs6i;}ROfIT)JYb@bur#$1ksGXT7w-*npCs`)amldnwenvjGHsT_f zvprMnuI428?qyKC^~S$z33Jl_CDqjuq+S*>OT0)&zu7T{?X zJ5s5&pTxGuGP?*T@z;N(85ZOQu!^A&AnaaZ&Bu%Ls_KI6oPqw@ zh1hjs+JK!u5^n9v=QAzUaSZiolmae_DYRb9`fk}gy zw22yl&w?3{@8B+hk#RJ(DoMDn{98tck;Qw6+^8a>5Yv)_qKsuvk!w62QU&0gy~Rw> zK8K?6qPJ29jv^<4pZJZBr|rh&--MHGVWD3Ed>xr(j#PoIm!tNJ$o>T4fBoanLUy6^ zRi59nUG{gTTmXDukfNZs8LNBK%sq@;&jz}WtEsVqc7h#qhqdaox&tgggAI0-A~iHl zXkikjXYflF5*IFTDt|^g$Be=K!bU3qdmR2y@_5;2@l6)u2T|-i^~1fekf|Xq3@()zKfmhH$E385}X^b@kjVJ zEQBBj_Qg72Mh#XO1^GisH7AxhPrpqSl*stLw5Z&!M%hMQYJus`a>5GE*OP!j`!0jc zueM>PBvvr!XrcI|zvBx!`nX=(0W-3#zhMtk@M@?#d2W~tms78^tCgP2CGrOR+u zTRhEQiW;VK(%4Zi<5NBE?E=}^ zSr|eO1Sr7Cht?qB}_`5Whml&+-wq%&vi@3WfdeEpD4qQt1rhrITBunIaL? zhnte`FHqc?n9t;&DgkvKH;C?eiN*xQ3HD2WM@3X*0DM8@5>YDI z6wY!7a(K{zsF(Ztm#=Wmr$4pnYqG4@OpyS7JY+S?g;4U@p!%4{XqN0g|Dna@ZZ!k7 zKX_bjpgkM`z!6oIQWF&IR}4b6B{Ms}u(0$vOm0Y=y1JANlVATLaRhLFT&B0ESMP7R zR_`84^@7TXeMtxb4h&(b%fM2 z7K#DX+1r+?8K#S&nEgm*99HG@yE{AkSD%WfkM(0TzF;1W19*IzM;h`ERvwf#gHOSg zg~Y!g=t8rI?`Y<<4o?kIw6Op@Cj*C^-(+RrW`dlFF z!1IV2;y*kLVg$>0E(JOej!SK5egA7Fkk6tyVDmXN91O#5LRXV)vk5WRGt>XQ7dI8L z1cSI*+MK+v`*7G*{cA3`6TFvD7fO2Mzb8Rsl~YxjEB@8^!zx=mu||;KYhbi^^d?{? zj%Fa?zH5tm@w#G|Ao-%6#4t)%Q+&ufxWc1$&G9pspjd@=DwyBTh?@rMW82y+6TP+VG7rFYhDKX&xZUZMp6I4V-73PYQr>KNRgGmDQ8K~TfJltoB4(cHUc=*US&TL3;a=psDE z9t+h-!n5C}kn&w<=tP>mpD9JG^~+f0ejqq!mZ1E~yAvGOPlqa6sCxNHZf=A}7H@5F zE@P)z^f#aF0Ch8j*U>My!H**nY6-Y;V?m!AW>HFB-Si}m-qTfnr8oxgfS*(8G;z!w zK?gSsuZlIl8=(31Ib))X-X^$14tD;}RUu|!jiF+N$m1OZQEnZp>DRz9*QVh$Y|mT`gKWeLf^~ zSZaxQ3a83#XqV_#eK$*B$u%(o_VhH9DyifyXiqb|2OqN*O8VgIexbPD4?-@JYKcY~ zd;qi5q{Q8SY6s$q-(fli$$x{9{C3~f`ng{TJ zbWxuY8xx~Bm@vAd>glJ-j}aMF$BZ4R;Yq@|r!?Tt)U~jncQwaH`Hu@xolmSuccZt6 zDT_hr$WIeWE#wpp+)_zj@-ai3w(b2@&{WJgg?@V|8XTtwa@jU$)2_t66;UyEGZF6WJ7<2?P zEoY#**;Kji9uyws56<^@$a%;V!#F!aR~wNErXNSfDnEs!vInCe)-kad&JpGJVQCY^ve6 z6z<1AkyH~T;sE?P`g32TA3`I9RltJBPvL5qSqCGf1p%)$MvM=9?-Ic3AY%gwroOO& zgErLZDd^ilf$o-d0~GWyjP8D{{mJL5TtNM1U8P*oDmZh2YR_)%gNX8olx{Yu2W{Z> zH?E&euK(xq+9yja61~&d^oxYO%kyov_z{AG#>gAJ(!B#&6PDM58$kV^!|`pc+^EKjOlCPt(EiIHG$O6(zjgO2xwUqwAk=< zmh0MQ6#$PsCbcA6o+%qkQW!JiwUQIPQ76#kU35A{Rs2r+x}2JG4I*a&SNYceEz&iYnIY#V^&B*1)Ien-~nHZr?GX!!QKdm2}^AD+}Ol z9}zIi{p!hjX<_=MM!VQi^9HE1yeW>}37h?8+YjcvS%;)z$i!+Y8AX$jb2o$-?fgLq z;1qXteGsBYSO1_NE5%lmt9^>rY8#+(AfK*phw<=jz&}Cg5x~OM!0z1(<9;7yb;vq3 zX0sAX|Fd7k@v#$q_63d+P``d{uQEVM9MO+%h1C1#V|}xcjjOiT64Rj)LC2QzaR9(? zv^1XfPdb&c+9TQbjY2O-@7y8yKhak%%i5VkzXhy{w{B;~ zb!wBxfQ1dUpK(D;#|1K?Qd-`wf^ zKHvql!`={XhCo+t8nE;Ec?&;tsLnWN*roxv>4T!mL$s6Y{}NNWxs7b!-(WG_l1|1W^;DUHP+GKK#NxZg$juBfmU40D3*g7`rlYYH9x?*iSeL$gy6!W67T2Fd_{X_DWr^Sa z8ioe&+`DU-^!66}57U|=>X1vp-b-|&-pSD`9E2IXS(^VnNb~>u{7)$B9@cbJ-9;2= zRFXefe_*_9QKO4r>7;N7XODO_TK+%JzTCI;@UQ7o#-pdQ`4jLO=BCSTrzw(&)V%Qr z%7?i02HeFS&Fud?`Ccq^(L?8#X44@mT|VWSBwNufM(@7~=3o2-%!sq!xIzr3*WOS+ zYvlaw9K}|FYa6sSqHC9gf-FbD1W!QA2=bb-=Ls9e_=zJ+?bWVp4#UK-Zxfl{Zf2Xw zsv^OI4C2Y8Q%IP{j&Ln9CuCQ~N(JGugR7?8U00S*0c% zi>~z)vcF|zQj}?3y{v_plo%@jei}@yqVx3%n!>Su%)Wwn+6a1)J+CII{<>is-KOY_ z6TtPc>a z-}9y}T^~ixGsVA>56Nh}1Jt$CVZ=}$Z`@a#PL?lsr~AUPq>)pG%np0wy+wa+2kZg3 zgKkkdMt=zA(#p}*-Tyx>qyi>cpj*#9{tj|%2u zyM=y5rMP-_B@@Mm%WMg!EK4OP!RJR(={y`C8tra40PhnvC5L+P+!)i&A`*#l`zPOU z1Jm{6!u5GespHkSC&AKOVAWuuS|V5;`Cj@xRazx6ku3d>?tP9gQyXVYxYp4fUpMl{@=#jz84)8Xy~cqh8iZYp<1eQm?9u3Qehsr<1?7H@8A z@=cua`#wI|eI9_Zdl;ypu=F5xH{lLT#*w#4B~jye zTV*8z-UkKgomfjoN$kRII;G(PnAgy6k85dMbaMA$!+dEHh6C3!9C3bv%rtwR}?tKq*T<$-F!G{U2cLrYX_y-XMHWpLZkk9s7}uOP~Juo z0L&zLaI(;gb!_#%;;)Jg90YvTgPL%q37j@W7+92<-tYl%W5-tatB1Jelk@}^*D%Se zRm6|gXq4}%-An7nf~}%l0i1?Wd&%L4dA5mPCf5X<6B;s`wLLI#DaiuuXYTQLe}U_7xWViuUX#q1Ic zDlE=qX?M9>N&D5I$wt%nz=nojems@T{KVedCRyLSGh1Nep~$8z;mF zLT?qKb*EvDCU^w!NQM$9uLo%Tz|82bxoK09Pb)?ZkY$ zaU+Gv@U`8PU_^P6DAVKS(EO0A}l@P$^LMLxTq zC&yNR8+Mm;kNlYVk3kwj=xOUr6&9&FL;fC!sP5CCVa>wtJfy%^4gKn4@7|Bp!mIF) zhytykYrhcJl_qZ}8gF;Ho5=_g%u;;~zD0z#*?RkEQ>P-;){rWpbnzqigcB`_xG$93 ze*^<%7=^@%!JjKr6qM@_ES<}$G{X*OsiH-Tlf9Uq0%<*9c}qhp`WWlSJ@-ATBSY5n zaOW*m;q9i=-rl`oF>B$2eIele51(L`(-b05vA{K?zDt`=vT)*-7~=ghS4kA-5d#Xf*@SG34%w$EsHO9cF;!X)qk%)=~qu<<^k_z@`j4NxXohnv>tRZDb=#Oh$-5uXW}a6HD*qn6#?}C9up&< zS;w+S45v_-9(CEtMu{k#smG8OjIV6o9}H*29pF5cyep?C0M)+=e<1$DDylpC zZDj%9Aq3JPaZ$yvxMU}39TWOTec2FTroGLa0UIIVdzzm21o=m!y`YCe&Z3G>HCzpU zW*EhmpaA@$tk-9Kkz&l?HQiCfU;3X}t@Bf;n?wJ$kVQ~tnq|4!oVx@lHYz;z$4Mv_%g2vJ;z^{C0nEs2 zG#dwJ`XIeymYleT+yQ6u8XV{z(b_BvDf2eY%`4d{b0_0I?fcxYJU&nZ(b$cw#t03Ohj{mauB65me>&d0VdvUA zxztiIU7=CHd*QsvxT;PhaTMAL{SK2C3zO_lslyNE<&rUP1Y;A2-vIv3-MEBcQ%fwB zmUiYCde8Ht=qJ-zVyf*DrNMte5wvdrUgh(2!|!@e9TTF{oN9G2((S|qm-YbcgQA0n+g0ZUK@PqUuWD@=mL@rqFo_BJjdjom zA2Ps9+@~>;RUgCbuAchO>;4=*_Ji0q4nq}mbNNu{n( zF7uJqlxGjhmVkO;f)4K#6e~deYT&uFLpC6{v!KUcf_i5>TJlg3u9Tq=JB3U8PeGkI zfSdYv*?whIuahyq7$i^Gfl3khW{5a-G7WW;W8w5&9BiZQ=x7tqq-g&&P55Sv`~k`b zDYc!_M&)lcM5$rK+=vG_frIjq4sN&c*dcCp1ami?ek}fZ7?U$tUlkxYx(H%V1{;jc zsEoZIRq9x=h301aL+Tn34Ty=>5E-rBC$v-#?@g!x-ihnEMm{{YL>E$aF8g=5O%YXN zy9+Xwn(4)H>`@5?fj<-5CO?+Y>R#g+ci+cN=>pWTG|x3sd}N8MUW<(%j5xV~`c29g z+LX6AJbfrdvdZ~erI^xu7;BXPu|KFN@TuJN697JQRezcxT35?Y-Rm-X2wyL0r+Ocf znjaM{mM^KA9t8dgBE}H4^VXwld1sxdzK}=HK(55Y_Et5ghv23^3PRqY0#t`dP5m4F zos;t}DfkxeiFP0ZaShehtsFBC-cKHu{{w)Ri`q8OIL(SnQ}>~vJsRMihf7rXs95rF?jyTn4kBr2x69WgdN=8@yl7#vgLf^>tLC+g86 z=?5>BV0HXfRM8*5DR6i@o-`w{T>ZT+bNPqZSs|6}u2A4BC!oHOZMnbzjq)e>mdC_L zep}{-BH$}!H(UJW5yQ9kUIs8_PRgcPiRk%-ZfN4AWu=+$WJ(CD6Fft>B}6l?8y~PE z45&NWt6=-~qm#)0wr4X7gllp91{p^u`c+N-vTEkg=SNyb^k>nwY%!wk^OfO6(dm|Td><% zlfmWUy^&h+ft2~az-Hdl(QOk)A)6KZ;34sSC-Z_d;GI~a+L4P&2Rb~BaPt?ro;t0= zr{8@r>kh>XGp;g231A-i`MtpF=i=%%ew$~E3`s;Pqz~o7JhA=toGul1I}O4g3BmmA zqPKXQ0>P-V6hNJX+<(eZ*-ZPFwFHxH@I7lrd2&|6R$y#|odOYIFI515EA}sXKZ$&h zjKXL~J}~Uvs*T7L{s%`$tT8zJ8S-~Fm_ood@SjcyN7M(i^(Fqg(UAL>8NN%U43P}| z-2gARZO8^tC*f6hSbgah;Yf)8bjiurvra_vRjy*+F)~weS!Cub3xG?cNr=$B9N|FT zY~MZylsZUDy@pQ9`ZoGP3dr&p^|~P{`xPVJDO%Bgv7AR3*ALt>{3a_nDT# zyamAhFo+?Pv=)2PL{&d18S}1-rLC+HB)A%(dhV!Dsk;XQI6e!3mrPj~t81FsO_^cM z=#b7j|5wS+&Z!&gWjpn2-2mP&C!1IJ2y1lr-aU!n$F}cnq?QAJzr3(&lv?6O=}|d= z|0O(lemO5QSrc(Fqm*$nA%&@;Pq4WJ9(gX zmX5U(zpgqN9GRQ(Qj-Jfr5k9_On0L<`UeN|b+|+@1bN#O5<7=FvlTyAdA)xd0l3Sq zmt6}^U=^l;7S&&Y+x)8BpvJ7@BpHNm=$$)RIWRV{kZTAs(4)@@iCp(x5C} z5ROjko)VZ9bJ%AF)cq(%g?>ZH50i#I-nZ)H87B=9M`5c;oFGG?M9vhSHUYR)6jAdh z^Fj9fs+@%+11vtNp+#eOhPbYuj9=c9UewtGI19=lpC^l)28I|<_Y0M1OQpr8sqS%HMS0)Md4vX)>nhSKfz27J}mtyG-&?@F1YYSjNG@Z4jD2n&+m^%xAJF5 z2on+uzzkOBUBI>BXLz3fUQ3!q@TzN&#oozQ8!y`0?C&Bn&G`kuiMTF|ho$O$4@vsD znX3!wFOy_SG7-mB_IhJ0o=2LE#_30>3)K@h(pG8)BE!XZ*^NARsRA5RW_2s zIk*!{e{dm9BOqEE9prT$*2hv1x(Q88Ctgi18~;U}k{8|#sFQ!^C$)6OhmmPB)tU=% z|5cuG8*8OhfGd@snsCus3I=%zd-6L9wDx`0vzYkrvWzYE7v2+#WqvH`R8hKonTCFV z`a+YB%Y{`@quU=PxmvEW>nB6?8OyI36PE{KGhr9e)c~Hk1f?7V&yX_9qeFZgK7;fw;oIlwjKk-b#VO)7pIs7i0U1mwi;}8EV*7i0d;|o zf{`&7P+01g*ms57=9&Xj^1<`^Yof>NeutmX?=}Hkr-UvZ2}x%$lr=-uL2Dt)-Lbl8 z6KbnT`Cz$#*|rd@hTj_+-*?1XA_mg@_k^ij{@W}93h1Q24iw>fn1i{@_uvgi`B}1S z0xC6GDZIqE5430wfld{sNo+30jqEia;u2xNJ(96f)vCxQgB&|LhghQn_Ze5D_Gbb1 zI>~#s#=w+-?<0WsQD*H?gmU$xd&-y5-9Z;M&vw6A@?oQtY|h(ZDvu2^0O#^>%&WK6 z`*c+mDVJ;Tp_b84VdqkI0J5)}Oziu*4tVb2S&L2;%nn)nL7`{eI{)2P?Vl1PwpO`= z3B+2u8ca7ZK@m6-BW;Ap z9f`|(aDR`sdC9ig&gG9+ApN~Z4-M1SOGO`qgEhhU7p1@)K^&a#3!B~$Q_xK}Fj(Di z@SM~Vi&VtnS1M82p%6q{Z65v z)Xw8)35299KK$`@$W^dF%>&Fhr9bFuE;-;+6OMv5W_m15W*IdAe?N{{T3qSb$#io`&HS^jaWxos-IaJczmM@Qc6twXA;|hJO5B9TAMH)lQ;uGdhL8 z8*F4#-vu6LMHSGDnZ-qE(6Nom7WAuu;b3!j!Q60Ab*$yqze@Vu)>|4AwM6z#r-=Id zN76LAb1cC7GBqLpVi9IV!hHwtj&!VnL;%+ZB_`#OFS92zMWN!x06uJsSt9Uo?2qax zw-qkujU)#@DDUy;JnG58Y&tn}!Vci?gr?EbK9(ptO>`Yp3v2L6YJL5iMsObeIWO^2 zhMWW$z{P@ZeLRM)Hsv}~$mS*-z0Ul3YqXd>6!P9yUWmeGz!YLzuLXzQ@XPTQl*L1z zi4PCb_1<(uk8{@x+?Zbi%&@c$#EAJsy7VeWvp{%J*p9Nw{jJ ztZ063;bwwe-SaeydjL-zs*?{#q;U_O8wvQ)r}E#U(RNc*tq+GCXJBI`zKw(4y=sQ9 z;2gcTu3wXS^V11A`=!5*hNnK$d-ZeuQ2Cx;1*j)(t3dyCsbd+J;~c`%F;AYHVdKBU z9fMrl(HW3l%3cTXIAuBYa9bz3(Wn3efr5qq+PvX)tzA6?Y}b<4E1vXV5obyd(Pq}_ z5zL0tdnXBfbm-0mpTjOfBe|d)-Fz2p4i<4#(iZFKLpKyZ@1+i1wdJ)mH@b@bNdb#IY!Eg zus7?+F6{bU{fTY@m*pj;J>Dy83Qw@Nlwd@d56iA>ZH#>4uZUA)a7zdUp;KjR7GCx< z6!$<0w-!9?9;xVbYdgL-pt`EJ0r+pc#D28Ud47_7Qjyyet&Ln%ccD`DTRw*!yqtLZqcKt&xK^F2J|Dopj%wd5Z?%OS@x{_1 zsh9f-`VVlNkj=xJSpEal%`770ZK2l&Ca5qxlQSPov#zfV(hkt>;>|r_qhQqK0o?1q zv-JgI2YV$QJo_aqPSr1eUHU?~FkK+3M$L1fn!p|hqU0lk%=qts_(b;EQwk+!JQjUHxrH`r0)Yrb|uR7C6!A zDwOX>e6F|g!7%(g{m3Eb+W=}|+687cy#`$>6sn$yc0M)(Z>yGW6L|xm-V8^<6gbf?|aq!&J5hR<$5RIvlDlg?Cs zvJFo>Grv}|DuhPrVfVI}NBnCLn4km}moX}giIJe=c zXn?uchbN|lfluzS16~5FDRZzAQcAHot5CzTr}^5K0(MQ$fSD)5N!o;tPs!QamRM&D zQ}Z=t`2#FI$h<$^I$tGHBfu{6`k!D8&Gba;65$@%L=Gvz5CwX;p`3u7^5NHiJR5>V zfO=JIpfPjPcOv2qi@j8~K?iY(2oiBy>#7!oA?8c*3b1YbTj}pdoH#tH0g-bly)T_R z%>~dk8Nqu-4V?^oSe8CSfV!h*D-EN;OxdbA%Dz%WsiFs!cpLe_(lK%0f_$uRBZ!yP zr!jWX2S&4ml4S9PZItj#nU61GYX?copoTU0GJ@V=^S^z7(Hql!sI`P#wsWSzj-#&I z7UoJtmM8!HyCw!~qa`fR_T#HJu4tIHc9kK*8)X029!b!E(0)skWJx~~2haJ2j)Okd zNpHewF=z=Wb>aG&9-)$n$ozozW)Rd)RRT%i~hxhpgy`+$;$kkHVT1yv6Wq;7BfM5{;L za&NFI;T8VUSvds;F9*_4ZbJ^M2gF3}HGuQP!W0+|eR1H6nRXKGy+@29lD-v;4dQ94 z#?17j%0mP2=$)KjgW6xG+If+`2;Wi3rbxh?;5|;^+fA;v4pBnu0J!lO>QLMC;KM!<&~^OF?QagJ<|WKIga_2=U7U(Pg>y89uwQ=q z`6(K&WpE^!dZVTFT~_$|=FglM0FRzPd!MYEK75NC>hqpKhI18tQg^H>$8PQuF0>nS zEF6GG97t@QsF+t~whende_+S>XXl(O)ki*p0y#_t-*f^l57-Zv&10juC~$IG9cmqj zdO}4@b9az-zAO6;oE6JMU^wu2yllbCHxV5aWPN2uuiYxP65AmDumuiAPLXQrp4DbhXSVm_Sj zC(Ny&T)E(17U=j_cqIe?hobyqcI6A9a6R6ug|H6bM?OfOEO`0IO+~KK}>=*&uDbK{M3dYsQsBZ!*3R7-AdhU(! zs-csYDUD-61KJ4ecFr{^tD2ej)S{S>dReK=N#w&d{)3+F5rciw3-ARKM21mL(^xp`19Ug zE8)v-H%=aE2Y{Pjo*x|^xV`BL9tNI@n`8`;YLMMN)ah?nqnq*OY=S#*j{OyvE+gBo z_*ChBhTs1U3|dbuD!L5hT7AH7FuHjTpq~6h+^INY_R~(TYGh?RwySGkWdG;-PeaS| zH7?8axE}!SDp>10{?bx0N6k4mkON%`omx2x;nIuCmyW~Ujo3gB-~z3@TN%^hNxvax zEZ3}Id?6a&lb?6trIUW`c4lwV1rK|V`&$y`C8te;FHF;+c#yw*^RWAI1_SM(OE&{q z=Vb~mzE$s*Rh|!XBkYH5ccSd5&=ZT{5qOyHaWq8rtw=jfs(=|)Ch~}l9*&<-&%^6Z zc-a9L`_Sd-{RwY>^(Fm-2FN-9+*;H1Pnf^@fGCgWFZ~fDXg*^*! z5O$yOPf8W_jqG*J5#Pu{0rjW6wapkr@6_a8M2RyimkSJ~ep|7{Idpz{Hr!v@?qUFL z(0pxtL;JIIlX8+Qp^?^~Rxe3_Wr)@4M@jj#0{^`VfJ>p((uAGkoW~pdu)W z&$ddQH%P6hr5QwA4IB!r%$P}3X{&zH) zzgA`$hNrqPkJ@t$J7eMTQwo0i$|ZkdRIkP!c)n`4CWIuDl~f6fY%B3mnjA`n{8-pA?1+`AaDnZmWJ`5C)by+tKh?W<~5@OxzDK(9GtUC9ip1 z)hw_1aN-#W-xQx6z3yud$=|_6X5NJSMnV^Wj6+=gzfS73PFFB^{@ddl+QlQXI zi}SpCxRH4-fH&8FC#&6Q6>mU|u=z;hZ!@Zt|2G)QZ`152b>s4m3m1Uzmb0JrZtBV* zWR(=0kibNW$L~4P5heJ?s-D55-NyC-IK7PbnK+FT*$AAb{2MLXX-1*`&kDT|`5VN7 z4EC|Ip8&2Q@aFF=LcXue{COUaYW&%QkUTYR%57v_@+bnUCcg#15!dc+5xLP?N;6xp z0=MkWOS*BoPugA6#s+(ROPfX#0Nm0HWo?C$12eCAF^#vIY-^r1j*+jhr%{Ynys@|6 zz!AW4?r2nU_55iTzb^=VWvlo3#=UVTuxas$hNPd~((w&6!;sqR7jv08hg6AlZTE@F zq>X%E%}?g6ykn}eU$|$^5>UU}lF>sIK7IF%gS7C)tLPzGXjFA`@->gKAFnagRpcDN zW4Wn(-ao7ykfOUVl{?wMmOCkU%3d8Px1z~*-i7Vh0(j=tu-m*UEQTPB3{O~U0^88U zi-ygK0|`@7kfTQ^?_SgCNlu@8AE+- z$CsdZTsXXe-v5WJy9|q}Y2yG6NJuH2N=SEicc*lBO1E@(w}7;ibayvMOG|fm!~1-m z_xtbqU-$0L&bepioLy^n1^5C>LtRD`3iUsCE#6z2G~h0?+w%J+q|PSPHT&O}w)l5a zmr9%cO3#xq1K|vQKiQ7)fnttlAt=by*b}}woPQY^YUv6)tso@p8Rrz*uSFCt zcQZ90aMwdZE-OxyY#K;kid}5`V2A|mQfve(7`3Zic>d2teX4fJXR8x+K%;*G;A7+u zJc48j96UA}qi>A+l&0r_U(=5d_Dm_Y(CNm%SOWZta&3|^U^(L8%My=z+4C}7KI6j7 zv$Y$)FuTwBsUw)~Zk7dYYsN9067fFNfvV>%hfKCmGz~L+3eM51=F2fDkgiifc%RvP zo_v(v6sANNP)|!Jago+tJ2v9cbin)b7JMVm`+q%94MD1`%$4$%1mrpe-qKYhyhGL8 z_Nn{>BgG81Zof5*C1AzzH_>snPFGuoZ{C+Wg-%u(Ktt>L^K-szMghevDaIg@L_>H^ zLWk^Y)Skf@i%L2yv@jTJ3%W~hSjB<8SdesmVP-h=qiAPjxJfQdfAQchTKnRFy6b-7 zQ54K26Of)DPb=cQE@>9Q?B4s$J!4q~dDy9s;AY8q7286svzrj$-MU-?N2cdO!04|yoJay>?nKfjO<1f!+|F?x5l3@6^^NVZl+BHQt zKA3*}zMC^Iw#zbyJIUeENt@jS#euc6Nr1l1O;N-j`Hl!k*LcFdt4P=;cKZ8OU0#|c z(EncaT&f>($WRUcp%ffmx ze6vN_Px;5~OpcKT_P`@G#7S(&$n}C_Fh&TrpAP#zPh+pAYEG!^T{EM=oGbygKb=hF zWA=pmMkfi`yZBd+rj4W>Qv>v>YMCT~D+Zpnk7)uiiQ#;jo zFs8xeI`Qk|0=4h->cy%if%o&TO=BS4K#xsqSHsc-4@IAnvJqHZ{ z(p9;6L>?+*U!qm^F;^!8!B16uNIBGLVn-Aqy?d^e8$W1wQ1w$O?~}}V9;`Ohl_oEc z?)3;~CG^y!N{gzzgAl~-WTQfwP#jmIi@0BjB!#`?4sc5U_@A7ynVS_U(;>V=gttq# zMSg`1k@#s`X!KYY_}u_E=-PP_lL)TU2*zM+rIXB3hF@h|YMstpp-M&;6t?vNc&9Hu zK?U184tqVyLK3bgbXBe+Y}NL!8=l_&!!u!FQvi>jo#^(-|KO_?y_H3<5h6-jCi|!p zT;1s)zAtIbg#f%~c&-i0uqk=yMJ6@TuQ2^PRJ4BewRBG{ch znlpVu>afUtI6qgH!?=!jGDmmbIad+@9PaP~_O--Vnkd3(7=?0`p`n9FiLkVE=v#3a z{j1zHxDQ-ckJcPaR4)wSfOIAu^qKg3DF1pE6->uGGpfU|jsp>po@ePTsyJg`;QKC~ zcm4s9Tv^>RB8W`x%mI~L54BNW58#<_JT~X^nRG5g3+#OZZv&K~Io3a3OU~m4G3B~n z5WpFjb)6{oGJ>~nZDtnBYEaWWo8b;B+L289L6P5v6Eh|gNaq;tcnz=c{*0CAG*gb- zjBdG2%aP(cn>-Y`N_9wATnX^Ql-d5M3bL1p-aE@hvp;cVyUV}V(2}!G!)fL%%hth- zU3qf>?3TTq(4N;gdYu$UYIFnIwy7qvltS#EL)x!N;D~Hi9UWr{_Z~26nIySzR2`e9 z8f-oJKCYW8<3=#UC9(<~R73t<4Xm zN0KpN(^zE=QQ*-UNo*YteTb4sPEO{>k0NcVWN`l`B#FI!@7_HgN9q}Xi#Sc~q=`a5 z>eun=LaiZ~U~S!d_2s{cGGeVV{|0Rb#{ch)M2zFu(8&`xM(0>*^WEGwf+J6vyVB7s zQL5C`k~r4{YUhp$Ec#c$rxaPtnMzyNB%~pMN*(3+*5IC7>fjz~B@J+LVMk6VX_uM` zhQ2(}a$=q$kF3(TU+2wg)pE%_7hQ7zf7=httZbrhqlGMX!^qWChyaf@%&Oa#OM~OT zLrx&w|Gy`GcYcN62YdLqM(a%Pqw&M}KWN)GC!RFDPYc$+2lz=kRS%`Z`+RO{qsF)h z2IOR#ECXV{fw2p|fgMWf_#lAW)N}RM3&F&C{a(Jjg}3SbI98ytnJI#ZXWd<{K-vMm z?`c3h+khw4I{LJw8lmXo1af_tgbzh@?e*Y;kO!oTD`l!>7- zw<_EZC+eo=J%p_5Rz(g0#lY(Y;3~J^9(^d(#?-BWMtHatQLyYzJJK`fVYFdk1pAqe zciJ8|GLrciY61jY!$!f;Gx=40FB7ah1{Omr(@)@1WgJzBbR;P~>2#}6`Rbl{2M7fJ>Z$y!?=<|>wp!br!slv|0_Sy?--+U91#qar=iv5y*Ctpz`&5xEi<_i919cp!dWU|vGI|(`@Grf7;&w{{?LkI`canOW9N>+S^x4iD#N{>+A-$rgi-H7@ch2h|R zK_LB|!k1&`=w%)!7_7v17im_dhLc7Yv^%O2kme1P++OMcw}_BTZVt6$=3p=Gs!(Rn z`{5+zW=1AFqpLtT%fhhe3-C3!?*i1_azkR2twtWGPEYa?ZT(Tlt*)wKduFf90k;4z z=>Axv7FL*kbOl#R<8_nclKfzGZ6-XK(fHc|Ln_7|;B4%n&_DW4o}W}?km8P>jFJK| zt^>9p*SAdiIB;78&(_dpI8gxIeg?_vBx8e8>MaP%d z<5s1)x^oKfQs!&=cy;k(*^RLxn->fJcc!+f11l(7``S*H1p@1m0N*;Ht+T#PX&8kM z$gG|I_IJL?d42Gc9F17<$@5CM=_|k;S%Q9|o=U;YzbSue(F{Fw(1A^pgikk7+WDS< zvN0bH@MvzV?^FKE*|UDv?Z4^9ohm*l339f`3gKF2#nF76(j5$>@Y$32lXS=e~PyKZo&mXxsXYd#szrdVnt21~^neu2(xXYmhv_8^q4nz61z zaLlx8KUtG^|D&8p4ML-u(LEudX|rlna6O1||L@QJ-nD|`{g8i4OnSxDJ^%Itai5$+ zYY5^buZVW;t4UHdOyx|x6i_=7BGxLIky~7CYXUlifuB@SkZmT4G8NCBhb30b0x{Te zVEod&sjmviuXcWzp@$Xt6)pr5O;XyPgd*`rjxXnO0Z2db*JiB>jmn0%AmQ~8#M5hH z;{0spBQUv+2p?7R52qR6vG2BQXcDzp5on0&$%8NtRL5K+W@!BInU&QM+Ds#p0FIZr z>%NxwkQauz3is#vFlX(nAkyQN*P5CDt;P?9qBDRe?S!m3C7z&&{an!tOhkEQa>OK; z{6UslU{BNO@z&7_a9oAg{~muS-uGxO{2@M4x$=s7-zBr$saX3vZi=)0|CWerQl_oe zX-{^+B%tY40(>JEYLDw8J+9NnxwWTDUJaE$P)sN)TwKy` zUe9sA7~C8k5IGu4=ZfTno^rjKvB`e^KKk+*I`5SYtAyxu^v2EvNJonN?;lh@@CeZ@!NIw&WsN9wt@C{vZ%-XC^Xdci?MRi%X9W$=3P5U~! zQv&dpg@w-|c-40M8$PY`-29yic~&TtC2Bt(e?KT`#SKsZd`W;)$5zXev?7`dD-O$R zAa7rRm}od7NbM~O!tp1EHNa!GGBDl_qD@fSF2DK1um1Od4lMLEy20I><6d0ilCu}U zml1zBHhO>khKnbQ{O!w;$I5{E>I1E}q;Eyk&D*kn3&5Ms39C00W_w&`wVa~mJ6`0Q zp2T;wgpTkAUwy=DKZEZKOR&jJH_g;XE0)U?Q7s>Y-xlY_gYKaL$?qXjlP6ihg}(%} zD<NE|thcjxHcw4jJ}f zzBxmAkNHX1ZQZ<4{}WC77JK42#38>ZHC!hNz;iWlrk|}sPAAaga!FY!<06QnN?Qs= z1H%nShV_~b^a0L;?alW3m7SZurXf{IN8v2$-T5w|_m9AWTI{#l`~Q0~ApW8#cg_PX z)lK-%x%7cmV-2^|cO1$Cx_3+F+$rn_^FVqgH5Vdm#!bzz#xT^0{b*&5WTp(3oXX|~ zH`zOZrCD=;msCaxQ5xq+EMmT-V6zi{PABvaY=!TPAs^%VXiYf-9w4RgGCzJ+&)@yo z8P!|R|A1{tT*sto02?em-Oz|gGHY#*Y}qJ*aq104F`tQYV%>-MzoD7t<5027SNY z_+#jKaNoXIs5dT^_mZgr>1kX%HB+u5CTn7+LzaKYVexJuROgnsIEW|xZ}4idQ2{=1 z!m-Jr9bkD}WhioNpN!`QV^nFnLtI74dL=4YsW76*-nsfZ zom*|p#0MAZ?T4?a02geCc1Yy^>$;P1-zn9ueDVXc9YfKsGG$5{V!*?tz!c!z-Z=2( z9>lnAa~wnH2f|G)seX&uQ~c*wZ^8-|kC%{pMT0M!x49>`LK9MEq>Rw5Gg2es+1>+Cj z&#qt8`~jTb*EQ*gGrmS1dMD~4P;A=g+V7qi!eYa|iwo{ASG4&CPI@O>buJ#uJ#eS<5B~P?sVMCnej0tWU+s*E#ZaXDr7||Zi2Y;=o=jA{Iqhf8vl@S*!-h(1 zle+G6DTPG;VDCAiC=EMA9<~UiciH&u8s*<|NmJ$_Vd+Z7Um1OTiag+LVkyQ&vKun7 z12`W}XN3@?_q#9Jq;hkADdMUJ-K{eSTuqkN<=nUzXYT=?CFhlTeO19Fr`7Dr?Li(b zw<-C>*i>$d*sqQFsoEnL;2n8f2ALTo-fYpqItwHJk`a^<98Yf5n%%QAJn9q*`2lWH zdmIznr=vEWw4ut{>)`FbuiTXFP40e58O}cS3mUvz0TJ)<{k{}bLuM`lW~Q}p?nf`7 zsrwb-k#j4wm=5nTY9QVC_LyL;tte1b1+z?SqUZ6g7IAR&WPeP`>gsqf2o{`D1^a|u zqyAtj{BXdS+WT#D0sWoN_D`B$mIHSAcL@Vda3QqV_5LlbxIsMjQ;YrQJGCbg{g#WN z?)M%)711APIJ?0)lH5dZXv*Q>o4z$+Zmtk#T@aR9b$}M3F%g8(jd|k#J(c{L|A|Lh zS38TDXh1A$eJR{Z zAh3j-c#T^FzfEx|LWDO)?x#<-Tt+!u>nH&g--aYG_7J{A58!n|8#e)OWEJ|*XI4*^ zaf>g=@Oc``*%b8t6I@2x|Hf7paEZ$Hbpg(rw#&hW;cNo6%;X89U0mh`L6w%;`5e6| zzJTX+N9P?UOTQ}WY9Z0-*m?L$|ECDbYIGRDss0q?D$ zkzmEa?fQ%DR}t;YOD9vo4bB2Py+Ow^^S`a__$8R{M7T)RioXNtem6zAMR;^gek4eJ z`XAak?(GGAj@A`+1#-|^l;@7w0M25OXE_DUL)B0}O+014=;izOp1i{_F`_L=cP6OG z0|DSxBvUM7nKm{pat9#?`HJRss1<=f`K6LZewBaa!zlp2tL@Q4*rDR`=f4$P*jUJW z;p}MHdw&R8@F;Z_A1mJH9RTU%DV9t2s!0|j1%JHhkrOjcpq2cbxD{>>ACtDx$2HIZ zzM$*kQ%Dy=OAoJW94F0*c^z)`&BA?v`P3)xfoIO<65zpOjRr|b)z}ASFO7C#Fx68*{sE5Ic8jcOV6GAzGdCOm z{gdi}`^h%9x5NGXl^nN06VyzHxugrJv3jzHJGfNA<*xoU?)%ZR<=gzIJV&O5eX|)# z$<$ZRv(`Z@gh)zoMR^#epTn6tR{Y#$?cx?~YeD^o;zu)#YHNffKhH1cT|c09gT8~w zU1x_oLvkWRngOLL`|#`HAX|(Oe-A>#n2V_efcuZpzUbDN&b|m{T`qI3&Nm~s`c}3% z=c^CVlR~w+fg^I+j+V*xh{($^$@&MczHEoo7R}d7G`u3G6hC9rIm|mC-IV^GkQ?GRWv~oL56yoiuU2t^H|`qyegu2<*so_Ky_DbKQ9?dl%$m1F{oJ|d~r$q?%8Y6`pHYBShe*@bn^WBE?Vf3unR3w?Pza;Mh|)zqM8Jw5rW zq^hX_Y$2eTG~t~Ma>8W))}>SkAO6O)_bJ=zT(UJdQ!q6$TI>O8XBQq6jyLjfbg%U@ zrJ-Z@Ls}eR&x%PV`Z!HSt0WRg3Ghv1ov|g2PUV{~aqJ0rY$)}JoXvr5?4>Ce%Yz?& zp;ZAK{!9Gbz;Q+Ntj<^4iC{iiS&bKL`;BCCbwnJg@sGA!0Qb$)w$Q(3LCLdMm%dSv ztCqn$oyOyD9-^LTHN9RjYyf%ivjs9Eer*GO#^$%CYRL2W?@M(GF?Qu^^?r*!Phd|V z@O_vXXYSX5!sqchg7i-tr1ctc_HC_?xH9tF>rH6j5Zf!oqQXELy||~n(0XEM*u)sV zK&PP{Q!ij(O^4>t2A3){0&7sL$5O;5w7H8_$!>K_YBW|pm(a(8g;8>D2Lb{>?dQ^p z@R}RjF+tdz65cCVoJT7a0sj0OPJt2U<|hC869G=66s1)KZG!92$#j9Zl5ZGoB+}i& z9dLV37x}JKCFl>p(?y>!$f-^PkQYAoyz-GAKTl;vM-+D?q-o1rsNC*@CvnneBQ$y$ zePt8Fy8_nlH`%qE>Ak0A@{x`xtXoYdcJzRBr*DRoRJ;vX|JK3+2YqQby}5juu>+<9 zmQrxqv^|Ps0bXiFlYt9;*3CCnTC?{Ow)z*FV$~rByTT&Q!^7G%n}X zq7}#v(sV#E#=3~knbqAZyQ{Xb8lk4FYxJyXDLgNJ9Ki=7a`idjJ+;xD)in@kR|WWv z(6bWHu-6E9K1&KRXL%0JNRFI8KY*X=;a|<7MURcvzh9bu({-0Qe2mTyD9bcq^SMDX zvy6qT28!8vu+vtlB!`;)hvsmyaqHhJvOud%+bE*jnH{iB0uKZ5n`JXrD}^Z=kqfGK z$f%Uk)y|r{sO|!BsO>$%l1jMxXs8>5%eo z8eEkHYkNjXr+Xb&!PfCx?%TxG7Glm1y}{9ytOyiyFj}e_GQN+c7m-~|ONUVM!9WlW&harAn$hUrf{r0L zEsZ&*lw&^x5~dGIeG9hk&yVs+n&-JYM*H*6AJ5Wj7z#)a>t&mvnSb$6IlAhE73s13 z^4>P~(@)_f%*;;^Q_nq+09U>jfPnv9$CG;WS$!~)pz_;PZA($B^Hkr@K&chXvk8F1 zhKVk`YQJB|OSt>Xc+->m-!Dv;;)k0gz`@rqOd5+u0KCG_IH*`U=Zgig5=AYH+4U?w z!ngy>_7ul#;fvE}6i0vy1>a(;UvZ;EMzzr>FDe<_MeQuNl#2J^@nWd2L=l54d8&J! zPgMOr3uBT`DM>f;-S59u+dd#Ki3tt6S}AK7#{uajGoSmu7H2?=rlwUkBC8*`^sMQP zobMGaaCHuF@7PNNoCgQ$uFw`~?Y_9(>ys@env?W9oImiSm-<0PRp>`g830et9%~`a zVvPUDGn5ehJe4pF{kc&(Dml~qF@BY?*sEk z_&e`YUfOdoogksi4e8)RDHFn7I;eEOZL~o-V)dlrB`Pzdwm2u+d7;`&Cr?M~5SgS9 zcO5mNO*tTa0r|^(fy{QgoT?wO)rRYf<%;!y)u)`u?2<^2A&sX_fFFB=@lE)u1kxX% zkI7yNJyG`zWs#pu*e(4l=4^wy1h;d#f|gc;&82b@*?4<4gR)UW>tmCYtM@wBEId%U z2G#|E^tTj4f;R0BMTPnAT^VY`{g}8|Cl7V34QuOIdTwi;82~O&7g|2ja7(j+Fi3fl z@2DKbtGa(}va3F!@Lit=!5<#rn9lR&Psp#36dY04RX<=>u3|c=NzJs1_E*`ze8TO3 z1Gs|>UQY|+_0-13h{1}z-W6F1$&RhJk50i^VnqTiGx(`m`Mu{2DGG=jH(5cg6PMPI zUDhR;zpSYT+K1kMaeJ*9 zdJKj8%HJ5Jz7{LWyL!8(7Uh?!xO=sNn8)j0gk8gzX<^DVZYlq7G);6c2!G1U7w#*WS4mI z-$P&C1v;+dnz>fsTD$H`)1kLfWq^Q}!|v8X_7F!~h^^~_+p~=FDs<210Pz0ER?^bV zSpp=zOkppfk&x`Uppd`}oT+KPg4??ri^948+o^S|tU4nJ)#MCM9UmdGNhE5t3E}jy$*db1Vmpat8^=@%| zR!_<^U;o=UO;iIXEpEui14+`fG-I7=rxSpuGR=yLRBaq*vi#kD=djmBr`m7(OUu2m zsIxng-6En8;PV&~;!?5xP5bhpruJ%$Cp>PaFC-naBL*DI&%Ff39snn4mcq+-=H!s- z*&N{Ig0>XdZM|1pu8IxHPII-ds=5LA45yk2Ni1X+TKk#0H&0M<93cdPTy3d#Y>C>y zrk4cRN5<>u;`{rsvaINr+E@;a(}odG5pD@!@gPwAdOWhg$OY0TgH#xt1+2-gS{TD&Ju6izfOO(ye{Hy6&8|P3Bzq(hRZof15^ZeKqPMjf<2uEjgWx=K zEN9NkwRpHW|KC5(Ii~%1WW}L%+7uo$V&xNcX;WPcvZUkDgtB+-Ym z|E$uM@8#^UVrO$JO$A;kJ=KDKtw?om&vh?EN-?rHa~~;C)=4&(+j-Zz#BA$10O>Ex zS`xH{&53bE!&uRT28gIF^J<6jUSD{N67re7qIv=DUDzpc@!zwyubRlYQ|7IQ2Z6o5 zA6tIDoPM5oJk2Vk2DswU)(TDV{BQ1vr{!O8?upE0DjdUuczv_AQHjRp6W}}J4?mno zSN*v&Ipx7XF_j`~tbcPHUQn_~1DPfm<*(U}S5a*ISxL9M@&0!9o0fI1uqR(dPl;b3hd{FVShIBr zSB&w#Z!WXRE7viE@|PY`GnswwI)!Koz{eVuvyCBdl$D5dCKQKL8v>)J7bBCUFq6`VF}-9MLSTpwei_LD4vlUA6}H{UEqhi5z}BQwZFQ`S1S5 zfH)8L3^*4jWkyM?2ES{)LDY;;a52Gk9*5ux$*(+j7;+*u62UIh!X8g5e_3K^ha!PB zR{)NgcI-|es>R${=o=im-$Pw-r}_Q;&HoVfdYP`Y1tbr_P3aLSjf6Yo^evB>zU#G= z&a8+8b+`25qM`uG4Xj&iibvq3%8Q5?qfA?_l3Q8`8C{w|K-xsa!ZA9-aHaWnoOz$aq=mh=qHGdJg*TRAZ4oA0um+`OwQ(7`O*;o8d{$tpv^)q#L|X@*lV2_Kh;8LuCxP5+9^38pfUv0RFz)5}#eaCDu0Yzq-yi{>7ibajw`$iz@kX{M|G-65Rd4Mu4T8TX#+B zz*XQpGOj11s3Y~+^EnB`*rQO)Ms1`A(tj7pic@%hkxg_c?1LX)6LV)3a*6zR=x-9s zj7AcyQ3LSPU9U={ANmnb{C~Gpy5t6ho=t+Loi(@5%4e6ey79mXn}hhHLA(|i*xnpK5T328RrgFhJn91`}|A(kEY#=6FOUDJRk()wHWBa2130nA04ft@){8o)Wo zPGdfJl|}OH|Hg|=Y`;aF=lElX+atsFB}Ldz?>GS9rebs_S>YP~8*-2Bfvr>P1cnV1 zGgnN_|GW*ED6-taJEeEO6c{!n5|Ap(W0H98F9%!(=O9Aa`%!yTSC|&)CD{V$U(crx z@Y|$bIhi5%2*aHP=m~T}xNKYc`^k(IoC8q6y8xrz)DF?m)ZqW!+-ZJWcU8WFqyE;= zU`^m9b`ZI6g47PA^OlC=H4a15vl?~E+6+jIjGH(gy)0KYD5l(1qLw|40-PBMu|9VY z@%0xCq|b4c8K-$bzj}Q;5!(gFy?AQeI`~$yGUV0(etC@4epKKgwy#8QT8ec1UL6)~XhdT;NoTMTdq?~>lk@F5=+wJf%c(CB;}|@nRGmTZ?^&8pHur@h zb&>g#9KO;R+IHqJTU;RH0Uz%IF5=AL5?Lm#BpP&g^l1dHR(wx!6@`TE3HRkTm>?JPc5$$Me1(vAxdE?dXsr zlwtoUZChr{2X~UIqz_&Et;Y&TpZoQZdqCP)$}ix~?^BxBH*GfkFhU%56GM zp}gvew!XM|M>Tl%?O#W2@FDY4Tb?F$8~hL+KF}#+bzzMQ>L=(Go2* zLdmj!sa2IE44tx&1zU)iD~O=T`i2Z*wR;yLB);dNW!_b0=b`ZB$8ht0N|t#b{b(eb z{hvQ;C8hmnWY!>F_R4FgWS@lX&&hsrC^2_huw`CyQ{$|%{JZx<4c$n>kk$Ey7)eP} zRaI$YiuntHOp!2 zlB2SK2~`2Nb8s8$A8y%K>s=SL<^t}XWKCEl6+J>G6N4l2`=Q;(Dp-^dGl+h* zJxsqJEWaz4&Jgp_p$K>pqbd}4fOKv3?~G6LlRevPbvh+O>Qj;B&F~o9jw8R47E7&X zFZKaG#OlLKjPiH+Er%BnD@~p43$TQo^9kA^K;dAfIDp2)_uEtY;>;hrL(HK zC*(QbZ7Y*2?D8`;t?T;yUIXCHi5zB-nf_uj$?~Hv@CCgXvdk@-Bpk(XS4h4di4~dv z&(vdTIj6UuUar(Fk|M-Zw#97Rj2KlN{wwuf^@LOO3E(>G3>*Ov?hLNs(y||LcfN}c zUA&pqKssedTm?jKDBJ>k8^Inc`TW9RR7Ny_{BS;r_)`;0Z>Ut4jjSTndvr~(j}&9v zR5W#VuH9C_RC<5z`uF&~5|g=@*zdUy0eGwmN_RkdhS6NJ+#?|#F&C|byF2DS8}_Av z16%g)brB8Wk27vgfD1zvLPi7^Jmt$n|M-5hi1}4zDSi;*4C5z!8-pO+>>Pi57D(%>jnu%^f!IiZz4M3N5r;nWX@;|U)y_=Z9SXuK z<=?jP!9Fz8r$9Qi@tSmnqM%fIf&7yo} zc;6Z1rRYUe`06zL*Eo4FZ+K+;U4~LGE|5-z26F-pg?6fFnl>IG21(2TIqqUxUR&_# zxp#F|DVqe~-L1ZhNSyL+y5}A<$%Bx`bSLcE$1M*#P@vAP>O9M`zetYVV^-Q|ZSDn(58^Nyexk^FpOd9g-;T zI*h=}@MBWgwA4tBY2G{H6SnZCi$8=`(AA>TTxV<6eX{HH7(lu$snpwp=_g+wYL*mS zV&3c=tEkLgNd3WYEh{-fw`$;+A+!;`IPZm6-5*4I5RF?*YJ&b|7dtK+;U=h1??rrG z4y4a><;haxQD#f`*M%L{@~|#cTfSi=47Ix?rL~pfxpqr7Sx;-M12344=_wE4zNa4fzr^psBdwx{9`JA#nfq42iG%ujdXw?3el zNp1f+2<|LmbwmcbPwQAL12t#xp@$3sY$t2sp6kDb050F{b9Ch7D%m8>awgvpfUSQ# z&!0f63_yfQYKdk*mLtOnQK?P}e6=)HYdvV&$Vn;3N+*)J$ork6VkRn_23a3D=~ z6s5C*MNl#G5B2##$)L$yOJqTwndOr!CO0P&*me#oF&zawEtsos$lX>KMnXkHD6Tpb z!l{Jo`Vn^TGJ~fo;X&W0avU z{kyWah&8V1u12B83J2l41-tyDwPD=}1}EU9HmXc@no{e( zeh{da(frK^ZX16J;5`ye{lnAgZ7QJ2zD2J1mbi>#+nGY}(L=9J6yAvjoz z6sD%+(=dw+%Pi+D%T?a!Y*@tDsrVA1AhZL*18<7w@bqw;@;N2m{|0K8 zB*w*`av2(Qcw`jb4MlCusDUqPXrwR8Z;L)0O7LTv14DO%gRd(1up}sry*&B6CfdjJoKWHiJL=IdqV zjaMuQ`mMm=1bZrgmxk&Rc23vgzCzgLqC~~aF6yy%pY3UG*Z$)!<~IzxY5p-a;(y<_}cfE4~W<^Vcq zOUBZRzMwK1D5kztjlqHqX-}GvV0R8Nt)2>#^CHppz-)~(?_vzz!vf%U+EAa?Ssxr(Nt0?ae%I1KjEedQuI9Xhw2w^}`Xxdjvx6J`{u$=^na?ABYgFC*l;-&ew%57){o(t`l`EaZg+ za7WX&=_CTL&TXmbj327srBDQQ4OH!EFj%Rf$bGrpUjTmVDJa)tSn!w=yxPWZi%o_& zp5)xP-+pkN{#JLp+rtjM)0gi*( z@AD8+)&6Y|+E2 zw^|VvdFC4!fnvxmpAQS~bv{{1$s_+}zreA+Kf{ve2{3Tj{`PyblnPuOv~y`)t4isl z-%X#@qkXUKn5TBh`6#o4)ja0M0=JzA?&88#6kCkB`RbaB3YL8eYz6^N}~K)pSbtIruHY_O!ZPvug+ig zdBfs2w6CuBx+ZjsX+Qnu>8yC7U9*9g+Ci7KN9gpnjl}xb&TXg`E0vOSvpe34ts+>? zjaBbY8o(tzUpm={(Rp^e6&=v5M$xRFC$EP#ec;hnpiT;R53&Fb1&69+UDrI^8>4o4 zLmQ8SC;Ob?AEhA~ja>bLerm-5@MX3B#_E}x5aT1ANjAjFhMfx2Q(Z~J`FX9Nm7!Wx za78K1y3b~~mtd2vB0W<)nJGcy(Yx{>@GQCU=MOrolN}V0j)|~6_+yE-n3k5sS=GT8 z=a(Nx*C6_6a|6S+5S6q#*o$pUilKOTgvT;8h{iEkX~P!Dp!1YS-YyTcwDQh|Sb+0P zp~_2Gv!KB{LmXJmTjRgQEwONV-B(zoA`6&rju6Dr)~4 zdfhO-AA5}%ji5S#yFU##Q8RICB)1G+CB+1`W$Xd))&kfHPqa^G9{=8@#e-`Pht8cf zWHS!l{(lM$np^64 z0wt`zM8%$ol`im7N4%`u(TsiJdrxJHy6P#`c5LDP`|am?D^^<)k4>LV@IF0A?JTYZ zxttb6B`7%d<%(ckcw8+v=xdgr8|z!UGVNefyZy6;#&Z3ExI6M!0TY;MnmYbQL(DzLJR}Li6 zC71%Yea`^rR=J#TVqf&T`NnNiUGRp4i#(pbx{1bSY8TzdnCk9A2xwF*kB>Xb(HJ|yrr$D@tK3~$xOI$proVk~0 zael@H;Pb`Z_j#K;5~gX1qg!$qBRL0nYHHF(f3qp9r2@H&-UB@PGVpfZRAUGVDdn%k zZUl*u{y)8I?|FtUp|sUI&!Jv``x~SU zzACU6c&{K*y(ICLOuw5`_+DbdXmjx4p*bPrvL6DRuqgulgz;s+;KQIV^i18^2sIBV zLRO|~JgYW2GQw5r*Z}E7M!KUa2E-=kNckt>xkINmi*cd(uRLL+QTvd-aEnos{>8Hlon zrn94^5t}R+9s>84@Q8SXmp`(+>%XoZo-9T_J0~#@feGxeaV3=v1lLIa^+Y-2HNJ=y*a|Z#WZT-^ zi3NI4A1y%+0_kxfIbHV3?r>17>Z;TaIW>f@Jo#pHL>)oBq}*RRLiqu1)9r0qqwJ9M z%kvv#bJMtH%`+WrdBYmc7K%5y-G|`@fa6e&%1i65qrQF(_&#m0ErFn;y+FlAjsu5a z4U?94?G5mUAogSu!A?@hNRu}PchY~N`gdx=tNTg&_sS2Bu7oWBces;b2K5ijXCA zVCdB{I69nT@6FV8vl;u>uTp>);kD(-7)Ixh!sq?c{ucuO_*(v+*{@MJBCVFJLExee z;A+P`vt80Is5~=QgMyF+qZZ6d0-`^b|3xjSkM3P4gL5QVfvQt;1m6aGlULmg-!Va~ zGsWeX#Cd`r#FKV(Q$j;PI@cr|RMM~IQdB-N@|FO`W6F`g7jv(i-&)JpOJr(R{Q&M~ zFC4Kf-#l#Iz*Xe74*^YHRze({gq7|-ypw>PaLEF2b^K)f7Z&r=QqC^?om4!#E}bB34h$qNv&Yt3bg5^JKp5XK+gOuLz>* z>(A#dsDf>zv`d}shvMk;<0#OO|3?>;Z=eD8k+n+Dqf<^S{@VKSf9O2FnRB^@5 z0@b$?Z+D*D$w2M8!pHh9Urr2PQm9<_e`Mjv-42PLCuaLwOQpcyJ6M7zaf(vEPmI-t z(JDW4F?6#hC=skCHfZ3Y+)_XW^za-k*Q zl{xI!lRSv}gC$NeSaU{b8GPTVa94Ijw>)37IFL8`G}a^rgvrg{JZiD-9?haLpCvqj zV(!M04fI0`AxcDFUh;Gx+Fu;bV_}*w6!v042AnVfOImS zE)9zfPK;+fc}bI>If+BZct|-29^Sq^%$d|yQ(*f83xhj6k*Q<=?(A9f`W9OasMGuwEJz z-wm-iY2^E8q}P7g=iSGB|R3QGts%l6|wH0F9%J zX$E2!;w$&QpLl3;4f7OCTAX-Mo&f^j*TXX*<&gXsHgrJKx%~OF3Okup@~@Wtb3-Qz zZ|U$w-w~h~u92KOBIGK5HF)3ljY(HHhg*&d#3SbL_ObjTt+^8`fE#yJamQ{`DKOEv zP@(2nt3n0ybHWGj!W^Mb|BtM@jH;>&+XYN_cXvy7gLF!FhlF&4bax}&AzcE}f;32% zlypj$G@N&g@0{~ve*C`1J)XUoYv$T(BODXkC<1%|uh#c1v7XsVC+WJu;orXz%-Tae zO5R{z+LPtfS3$6ts9;{kwc*+ak^?NM?ZYW(On%z2?MppardOTA5+uiSARQ&s`r33u$xX+W6x&N1qRC6$^dKchzpiv+%NuSx7|@+6G-Rm=7Q#dy>VTTs%7h%uE5)K43^9!6FMWNt8PUl zd{6`UPl;429v%+QN2=fT>*5{KLcE=bU;ACHoaU=hy(4d|03LQAh?+>5&2XgY!#iEm zNs!~j?@x5AnUCgk6vRf@0M3D>LtLn6^+}-2H{(cAF0=NN!kg)s*gD2(2Y&7r!hCfB z(pM?wUJm|PP4rU@Y6_`zd}n7|bSVWqZfQnuTt{Q>LA<6v8s)4#YE@&HHv zg((PsMud!`evX@<6BymKVSwqUAjIF{{^9Z4Nofqg&uk^ntp<|+WzKTL-UlxKT81~6 zw*AeK5(&bKV9^Aj; z<>f<(#LT2wYrxt&Z8Ri)bE~A>qn3p(f z(I9q+xB@7G6n-vU1tuIZW|j$sZ^ILfx4=g|+Y?!XYsVj6D_@+~y<*pi&~~1)eZO>J z!Q4=YP8tl3+99cO?Np-52lee=^1bmljKvC>+8ByLM1M&LA(DJdIRMf-MII5Kp(IfW zK29%ZM6o0&7k~Rph>D0GSm=?@H(b9D@L%on?vCGh5%#J_dB)#iTs zY^#X8rv&)kU`upd%5jsS%+#&?SqD};dLr0>IW-ufG&J6Ey@sf_ zF5ry`{SIUpS{$zR{PLtKlLnPl2c%mKwH^d3ZO*2U_#=;}D2)G-K2KOu_%z!3w-%O2 zs#_Z1ZEwZB_(px%i0_#P6w-gnCa;HZWJJau+1$P*Uh%QQ1ANq2@VHU%WpP0{^OaMo zaNgg$0rxwvpJ%sWM=}zEqAI{m3i@KvzEP|nBU${rRk(~Lf~*Yty*+|PT8xp9(MN#} za3uG|fSqBq*7M(SC5gD^+4@x-5gegS>=$^6r7eBt;6MozsJ_$k7QWcBu6ih%u?21A zL#cFswq<9;r6;p7#kT>ZtETfvr=&%OtRaF zO-egUX{kxY@Xv5vfX}v4NnVnyazMq%1<5ojGu<7LL}o1D{^{XRFYg|%1V_GYc{Q=a z&bgM?{uCqxhH~oV7Bs$a6Qjk;S$2zw-=?2{bdethcikz@FrM0e%TSdi3zr17im7n+ zrb)$nQ_JFhV2cdbLiQx%DVrU0`hcPq@JLJ7HNkwHzuF*6R=7pe_K^@sH_cQ*$jIg0 zYl*UQL^*gyu)ITvtCW|p7>>3e!4i)v1-SFv^90qI9fGINDG%Q5Q_OL0`JL$4Op$Ir z0gKrLX62sHTK=koy~gAnTvrga-1;s7pr}K9C;2gj)n1V2vVTurjpL zonO-L$VPo;Rd!hjSBE5#=LpU?dYpW7aWWS^|K%Wrz(bhiZC;2hNX!k<)(@LBaNGM0 zcB$#VkKOriUFi<=+_@CBd@qP)hslIfE<4F8Dt8YBhQTJr)I|Ctd$%l3x>SjN7%ymz zLJyTQ8g5JU>eg);?Zv$ny8Psu*r=_i>Z#Ay{? zGB|e|R4J#+0P^%ew6Nyc@k_62d==9er|=DYGA{WzjxV{#lK_Xi4Y0wbFJx7d zSf@emrlJ<}laT&WU%$TpX!*9;jRx*<=x01Vwz$=A^OLtaNO~Hrm0pSEIQ?GrKNMjtx!s zND?X0_$aBa^Qra*oig~_+bkM*0=lm+=8xN9{6XN|Pf0itIP0wKn5gp0;R^b0%3Ahj zCn%@JpvZCb{10LrJ8rH1^?CDfHlyLNlOO!sQG>QsGCz6n<`Mu$;o2-3-jL845zgd2cmL2;_((JV28cP zP5#4F0B8Ozw|cfJ+tZ~}0L@dv%8v{k9TIJ!_!oF;o^{GVm`aPa!-F2`Nbz0v?~}NB z_CcSlQaYm6fA{ZNJWx!49(Ty_#J;}F>YpR_BTJJ{pBhFY7kDuF^C>nbVZVU2V-7H) z_QKrZV79o0Bucg z$0QNZGBp(t?$HK#5v+W>$F2%R+wU)XM!bg8Ixp=(Emezyy!{g$npVfx05|2!)v72A z%`WHjs9U#t&b>BLL5ISvcqIB@2!CZs<__?Xt9SEUB&!WLPCp3j7`|DMS~X&b(Obj! z*Wx`-W=VVl_#OVTVsuzmi3(&RGWUml7%mkuLLTNXu*_)ol+c-TU@?p*9QQQidJ&K( zh0x}a@BA50lYGj_^ul5`Jq2KASOEG68u{q6Zhpzs3z&Bw8o0_O)H3i^z2fa z_GCxMxYEBELF=mD=}blfB|xdh$QOy(P3@V~t5Z(4t7*fb^Bc0xZ{CtPZS=EQ*`w_*07k zrZT|wIS}-ve$mwses(tM(8-=$#2S!g911x4@B-nD@~E=}@c4vZzn_Rc8oXJ(aS-Tt z$gHk5W~&Nh;`#_az~=MC5CEJ%_0A;MH&D3h%$T>=;ckCJnax1sj@#XV=}4hqhOr3X zNRiQQyY>0D$|aBNiwOlaDwFdRGRq=G{iSX97ZK9z02evc`Kj}{BT2f`kO|Jiwb(@k zWgZ3}uAl?)48nfP5d+|%l%fwmyLp6@)z8P-1fq`AF6cYn+$<$Okw{e2)JGKpT)kEl zm1-lYKtQOo*Dz?MWhMJ5wh?=*P|b_J;MnPZ?J~0)t9Vy`&pvF-K46Sj6Rs^_Ge7ZZ z!YB=5VRb)c)BX&kTbqVPZ}ej)On)XTOQt!X!m74B$Cw<+^ux9d)LF&t1h{+ui=3>v z#b$`vn46(scKk=Wya8n02Nj|@?@lExgiL_Dc1L&NYW7% zs^FtSw%-c(FKVIm8i};+Ei)c&^FOOm2~+Wg3$goEDV=GQ1I0Yh_Xe~O(PXs`Qb6y) zlT*XR5TtF@zLPc#>kkfr6!_iZ3?&yd;It8LYhFq{L{$6tCKKL4D>Z@Z{_U{Z{zQRvRn3T ziu=syC3Z_?8|BB=Mq>604S)~i!egNoT#!+G-ZWM$g2|9qmHV|dm(ZZM9At}NR1Wq8 z&v=2FJ7}y&PEad%t#K*SbI^;ryCM0xTv_e>*QL~4K)O5@DTna6ZZ|A#D*jN$dwYl6 z;?MdxZ1q28wo{3RWbXm)95Avw_g=Q>=2Mj~baJ}=d;JQE$5LuJ*MWF|!i}p&i(cg?+c45Tu3oY^d zK6PybiG2lKa}CuD;4_CX4Vz<@1MfNz57!2#PJIpJVN^o#ptuH_+FRb!fO~qsUru#J ztA(S6?xNz@CDqL!y?aNUAVP_3QM_2E;(mc=HrVQX*XBPgVS+FcKVQ)bvRlp&q4kL{ zRV?Tdohh`*FagCBtvOy0SuvsgGZv!C$%sNM(l5){EtjOV)=+!sVEXe4aLO0KUQbFB zC{<01x5g0YfOMz9Jz-b+;F^!_gI~ZC|48nqY3&b-Y_)*%pQVJnqN0qMAu=t12FBxz?fQjkc@ zbf0y1uNI(LSt;7LP2RtK?4Sd<*4fQnR$Rz3e>g<(2i-v9wv4B##Zr@&w-wComY?Z6hm1?_@&t8iVLPP)}GAyD1K-9nqXV`$Rw9Qzd_w|}*O(@vbD zKXTAs1Fxe!iZJ?7J?9<{($-@5q*~hhc!rpUWet6Qdk$F$#%6;-?5@-Yz8uXA}4%Gv|{1GHjXyI4{RFH*Uov3NAz+0OzBCQ9lc%XmJ8A(NVr0N!DbG?>!f)hh> zzH=`xM-1HPf(iY3nHD_Lo(xT3jD5;8O=tM@Bb^(uVSP*HlHuPjDNs!Qi(yO#?pqhl zKarA1sbYaugpt=>alCuHST+|~aTxG!nj0Wj&Vm1ArWI{jMw8eyMW*XQ{vPuK^h?=N zUq;y#_+L#l^lTOwE&j9lje3bmb2jQK9QcN$(@Ed8gC~` zGEU3V!y$s)Qf6{?hBN|Zn}7- zi^+q-@M+>NgWvZCm>iPq_03rSdPT~He@>50H!2otB(|%afEQAf*J4NUywuU}UCzZl zQ;im%4d;A+0CuWRG-pH^YGNc%%&gkXKupGyIVa{9vrK#85RZ>umq#1SUjrU@$KRg_ zfQ_K+K-~OuHTHbpONGVr>I+fZNuwtl)qv6DY?OkBM=~{#Uhzyo+X(mF`9A3qt6gu@ zN4O^^zD3Por6BJkV~bJH4!~{E4Iflc*C?@qLUE=ZP+KxyL}FDYOjJv|89Zq2yAS|w zH80-tjl)q}>wBw?`}OQC%j&Ri^68`&>XsMrQ2;(T7xT^i*_3i=Yu?Sv|L+{u=`Ers zD##??UMDTts|EI)TLVZBfFrk^eOb$2Hl(gp_<0`dva@1{#!vgQTuGfQy5h&c@%W1Ob*$sjE&8 z28JFVSFtYeTY_ao~Oep-0VSH)zb!|SSYKTp> z7YKJ1uN`8fD>S~a#N^I2H>7F^6w~3&d~x5AVwIxbuFy1&t%IEwf;7l@32A90VLz!! zY6oy3hHXg3=-1-YHiid|@0e>)e8HsDnGrsgNws?%Hj-2T|EzkR^Et=cWT3)w2hPZV zDIM);8`guq^%WcC2j)HI8^C{;FteB_=`P9igh9)t1SA9xUx-gSFMhIV%@BkdQh_bdD1=1aE(!$z=s!j9Yca&|+oc!*V z@RPItxO=(Yy^u3(wLk&9vDAep$7}MlM1v*U%~0`A$mbyRBW*d7$6(x>bAo!XOXWZ0 zR$X(?Z<;Pire1C(ME?*xyOX&7)ZJTJsdm1A0oMM5pyE$_<2@{~)CPGXv6am^Lay)= zM^jQd&dH$Xojceq{j98hFm6lEp^7y^>CTNRd^+Fg8t9o?^yG*%)KeiJ?@}gh*WDl_y6kuzx&fyuA3~| zwZM~7ndju2^RRQKdNo6Mi6)2`ivuJ1SPc0F9%;0~&EOviVxbotlZu6HPOGgX#Tfzu9xhiC1TnqoU z^6VNQJ*E93sx;=rRmqd{yXkWer5hykPq58QU6jos#eOa9cODe=E_o=z|L?gH=z~w92DB9;J7$ z9{7h~e8%QOkeZN4$@1Q)b@#iADVwDSz{#UJcczNb!%`5YOi5!OO0rMIKE2lQ^(oV) za|pch^#OdGfz_2AeJ-|yjel7|xf_9=5>;}a&t}GOKk*(SD-t|};d!aJs94)AlYRnEpD`f9cdew(DnK1ige%e4ot4wB9DogDs7E={PY#tm#ZqJiVy zX&}fk=k9_hJ)FV_MEyUfA0=0`{j$bY71)XAhif^98&cQ=Yft1}iPE_WS~||Z^ZI_D z=^VrT;5?ui@w??WWBu$iczax%6o`Geg%&O1v0A+j?NCs{p{{OcHH>W!?5UH4ATfCxDzTx`JI}8drSYl zhwJG%tOVXyVlR`r%H;KYW=LWtO_~k=86ov7XtxaQfILg z;W*FWKb95d3a>%c@yR%QeOzp^@;$+J2id#f!p?UaAcMxY!@5LeXC; z1;yi`1_Yik9v2-~Y_;tE*)?IJYT-O8GXUSeBg;OD{s8eMPkJ%-;fkG3f+|Hllx?Y( zRQ6rAE9C;f>qtHYbIbjkM$(JgARUy}i~PgX#x?at?N%+vBUmqgKoMSO9+JrRAylOPsEWYg+FN zD!8%7-D5xazqbhIE4SzG3yXstM@>Rmx8|HIETMAZJo}2dJ-h@v5qz)Ym~#2vw5V`4 zxOi@+s%+I7z?75fi7sv|ktT=AMohU8dGP;dj7oi^YcF0cu}FuhY`E36oGj77ib9u9Y*nrHQd+9USNRi`dMj>*WUU z6HRw*-&^Wlr}`f-a$_^!+dC($*Lmz5CtFmCi9(IT06w5C9z29)=tU%vF+_J9q;?_I z7G+Y}U1lkG;uH;4+Y0dAGU2W7=l|_Ur-JkBQ{(VCqh<60r8pWpM1+KyVdd&aGxR{@TYPm3FkTB%IFL(@pqS1qJ@9YYOG zfbkhY9~~DNdg~709_^TaXeTP}71h14hjz<3dwyNEiw{y}mP=I4e5C#g&h%c}uxj^j z1vdGsYG^*k$q;RPB!JP8BA|f=@Do;&7+KX(_;EqgnMdarNe| z`xr2&k>^V4zjHgnH>USI12uo;7+Omw%)VYp+u?g^q!Dj1-ki&-b zAyyNeU3Ej3Z8PgviogY-8J2l~U$%aLEnjfx{MvZL&O0yr#48SMZ~q82j@HxV>DcB? z3vdQ1>tiu=95KV=<5rz|BHcMus&^C5_nNY?I={I8y#xQN_4~`>Vd{U2>AcPB)-NIa z^1RCZv{daK14jkFCnWQO2N^JlA!%gHD`U#IsbAK)w}v#Ou6pCIGEs)S7nJFoUvhwA zR@>CAyv=PV#FIm@|3SBXGnmV<%@6xlxQh{d-jkFE&Xx#lj1e_$-LzhUObRpm0u{8Y zI#vhT;D5l~M z$&aaT@TQL|M?Og2+Zcaj&k7se7j8pXBBia}rNAE8vwzz?S$mA+HS|ld1KF9BM3E-5 z;WQ(GMd6l=e5%WDAYI&kWGadBI>&4k_fC2(8%0NgKjIq>V)SBlt@@1M-2}jY3e@6>br%wA*qTyTSf0j&aC z@FMrFaEvoE*nnwlmsAt+mV`0p-MkD?7ab{_2o0DgM45gKNF)k>qaYlkL()N@jC}`o-8sTy%>w;Ln*>Kk<;ePkZ+gQ z$kgZU%v>)0)hIFlf;-GV;J(=QZqaT1@iMt)=JCi|A06u^GF0PIfXY{vq&~>NR$5jd zo%MRI+D#Oao9``>uyG@c6z;GfQSkb#`P3|Gz@XF!oD)#WRH`S0a&R5WF2aP)+==5% zQrpoNRAN-BsZjo@y0`(-<17gH;B2S61Q`EHdKT{M&cCDBIL{Q(qRi%X%b4EG130_J zk8-PiTVXgy35aigalblwVtplt&Qd-#;W=I(^@8JSweZfTSItHQ+8upw$)LQ^!H*Zn z#ojE8HKM&JCZFJZfONEy`p-ijJifCW-!9@=WV=kqObz?L8}MOB$Xmo}s(S=@g$28H zxY+cV;!P~NE2cb?huVgMnD{*nk+~Hn3}V7RfQORW%t2+K3>JPa3%Ri^!s5)ZKI=FT z3@f73AhbhSH3K-BGg*d7Q)y+RCbY*7`tjP+8snY{p2QjN=_|2SOu00qfaRM(;97b7UT zk_h0Ub{;z2d99hb4jB)g@re{UK-4EfMG<$}4C#-jr zMVryvz?WJwP7G1vMpr`;9GejO!s4Y;7a(6^aX(W#Y|`~p{KH~2nVZb0LAB$2l?FRK zR_OQE?7A}jwnxZctApkR)fLr}$d4%RO2Vbt?5~uRf!c-P=Vt@RCMWd1U;goGNO3gp zG{94mmc+}MKIE^8tp;B`ay0eH^3b^D4|+Lnxr4gIqD)1K8Vuo`oTtkR9!5VqILJ3$ z=?R;e`(4GgiwBIibfYo7rdpL-e5Z$%ohB4U=VJnj>6p3~6k$bCX8DI4{WI^E*8@cT zdV{D5x&I}Th=cA0*kO}Ss`I(6P*HsfC6PrJ;6^Y)v!GG^qP^a5A6`nRGRX_1AGt)K z6|P_?mWX~eW)HmBYjg;3P=k*vog2_M!;7m0w{v76Q{{fm(0y8g;b!QZ^1X|oXSR}vel8K)owF8oLJu#>%p zTGZ6^)g@#(G4nav^A_GmZBo3+em?v&TnBa>r8F}b{fre%6Qhrcodj3%By3JAAwMIX zf8czD62?f(Qu&0|?-I5@O^t5)xed1nTx-{%g;c#!;S$~4qbATGsz z34M_+!w7NxU2;N%1p0frWO5L|ZIeHuglQX0qDxgq2yb1W3Y%8(ucE6p1+D&Kw`1l5 z2YJ#nKKFvl_}zzV)fkQef!M>V${ePsU+r2!Z^7{Jh{r&B1lm+@_`-ULkEPiZBBJ`Y zz^SM)<=ynnstwWnW5SX#kRzGNTz_uQ+Yt8ivMQhGRXC@_NHm=6cZf4tqA{ZZ?^P)x zerlzHJ$Wse1%3C%N-q0=uKsZysjztJ0~ShtOI#qGaFa;UT6}#|W9dtY*>$%x3_(I!5*qu9f82*BzWfAh$U9ZgP*SUs;e29O*mI`q-zD=CBei zz91@U(O5%(3x7H}ou2`(qD~t-`5JNsoFQ03Md9iEif>F#M|+<0Oglg^<;TG+OKkW! zr8*0`(1 zgj#@++gkpSY}m6)=kpM6{+!dQ1r#&0^vM0nYrpF$2U%vzT{fi-LmemXL&&0ty@7X* zgK`A$?x&3;h`_ZHA>-<}L_+LjikjXAm>6cENYr-{L|((|0Ef#6c*gOIS1IHk#z-*a zs=Rgkt8Q)1mAi~c#Y`3d9va|^Qte$vsf&S?K0LbB8^W1_RMX{Ki!d0B>k|GZZ|mTd z38vUMC^L>Fqa2RFmev@9Vx~&_`RRNj?x~mfs3O%b8%US4`dm6!>>G*37G@9=w!Y<0 z$`zmFX4K8uQ&!m$7l#V)DbXPgzK2WXCECH*RspB3fL%H%s0L3eO)prwEsT%W&OI8^AePvtz(}ml)yzHeFZe+FY;eLDoGxO%eRULr34u7>>eBFd zjX?4F&_9A^#%-7uAf1fhVlMKv^ZLJMD?%|dLvNcES~4wYvU0bCKOd%|1%RDi9ov_h z>Rl1@FLs)*Q+Np_{wS}5_fE@X|NTb#5E<^(7PPwD(|i}&3>?h5Iq=lwhUsR@U_gZ<(t!T%6$86Ua8=}+LO^}3ip z!{>bt*fx2~_jXaJ5WEy6nF>5ph-414q2NC7A%=jPP0ll6y}!Yz4yuYzuUywg-Bm3W zREV6f_rw)5P>i{-zVvnF40F}hOb?!s3`Y8JrCmlUywgWU@kTlHC2&fPzngMDN~ItsR%4nuD| zH7>aWoZIB!v7UK*^kpandoirQzvVfW;%5{U{3$y#euC?~Kfr&+UUK?|F1$>^1y{dd zxJq~mhkc?XQDi-lWDB25>;u0TX>IqfsX8vpjBz%k8nz~_M^4X1c#+BaE3)+)rsbX^ z*kMlx8XDtxTC04CCZM%fO(sX;k%kGkbu!R}8knEWeOCb#M zuX6Yp66}ZG?*aBldiHKC$N<+a3t+$EW#r5-`E>O&)-_?{2SX@E9HXG{4Fc+#H@?!DC{|8t zvT@H^_PuZh3VOEisXBmHp+h6pjIDQE2T3yIW_o`U&?|Owu(f?B=$<5X0o{}U@Kegz zVcRXUD*_@k4rlk`FJw%8^w5 z1Isft|J^6}07u^MSM6!T7zv{~_09;cbN)f>Ams+r$I4^=>~wfr4-S+CSEf}89iGDY z@eBh5Y{}iQGw44sRE7L$3H zKNE%*yeb)*6HY7cxP2AC{5E{4A4)c)k2E!hZ zuKn@ZvJLudINKCESM&UxvSS;w%g*D@qNm)4V(MCYa8=exdlx{mF;+GkWso~$dGyw% ze$ZIIq_o7X!|K9nb1nm<{~U|isIo+)A9&~HQ`xvZC2tSMM&52IdW!#DE-57dJdTZ4 zF)pX7nX3yoyByauEw)g+)(s4$mCJok5az|fNd*a{Pc@%C7VmJWy5q8^r70wv8&4p5 zLA&`rjKADt+Px&z0Q|$SN`%I}D?GzI`V+A^aV48qXMfl5eqXK=l|Jz|g<*hGwU?0a z*x}N_cb6M-Y--AKtiqdl8(zBkhUc+bGPNxMTxj?yhI)aI`5GpZ=ezH(3s~g$)mx>a zD4b#ByJ33h;0`%W%i61&C1JH@Fn=G$p6KiIA87U3*e_}>GH+>qZ>SqUdWs272$9`V z@#vCI0{O4^uhk}AUU_6g1hCnk>*33~!CuU;E|SA2Up0oA7v|oMhvT&_t>RETDcwbi zmXyyZL|F|;UtZ~CM}v4EhI3Wj5H)nEErjGtv)s*gynLF!C5(y!_plYZ{u(5d&E;I? z^j{`_iBxl}fg?8I%u*{YK1)|`*ajb2QU5E_{3q1PUlgW4_8U=tu_Q@Vv{lBZy&a|x zac#u-gg`Or>4rr7c}zceJ_Iek+{^o?PuT0?I3X&TqF=PfO(y5|iBZx6}bpaP3Gi=jq015;_I ztaX)HkxFq(VhZJymV_wSK`=dG<}CV=lRC!H*vj;^y1r7mW;ZKt=^;P*D7=$#(Q6VY zrnoA!Idf^43%lX(yLR3WpPqi@isVe^ym}(tc2|7h0K3%Wje6aFx#}a;b{>m6SQG?- z1MSyQvHIBIaaw-*7I!otopyArsS9bX6B51i6PfzXZF=_B^fu;Qs+_2lKl_LdIO8z* z0A<}bXuH5^oy8Jeu7IBUbzVyTW;?#b@@_K z-;?Hv8X|lZXdoRb2JmQK-UR6sf%=5((nwU)&m%c8@+Eivo{sMR&w@Kn&FuhR;h@LR zKvk7>mEs?y&gGDoJ;78H%QAYpu^`fa>>CFU9rKOo6#Og^f-)O#16)I$-yldcs7f1Y z;(G2VQG7MhGk|oPye$&tpE&||R60upmvjQkAL_4%M90b;XtWd?tu!wH&IaL_sEnKV zOklMh^>_E(bHn=#zWIf+o2M_NWFoIHJ^)u~t5%rgc5}qdQEZRo&`qqRoIV?Jr^a~n6&rU~$ph8#rGRu#!`e)DD1*5lkjrj0(W_x~Ieo+~KR zw|{_JfaluD5|jsVpRk^`#$7IY(l_j?ux_UtW%SM*>k{+R7=UzFW;{HOut?QrE>3x; z?%T!w%bJLBHgC_DW&Ow-#Jg#Lr_`^@9pc7zJp?0mi71)hCn?Phrm@piO*(!00Rt4u|GO33R2o;7AmEZRWfF3wRwMeS*M@q|`+g>(5K~W!2j~iW?On z#J4^b+_v;vjV za8^&;1IuLd8zaIWxI3+0$M;;W|Le6_9Kw@|F-fH{O}N(_a#5Pne>_Nvx-qOQBf@_C z4a~h)0Mgx)F-nvaEFvuESJ|6&l1}oeG~%K18#UQ1`Fa_GEx;2{ZBhaP)zvHJzq%vS z7SnWZHgI#1wn(eFEgtA&MRxB`f%F+`pQ)&@GX>*2AKJ7(yOWAK77S%fuNdQeWUvcn z#c2S)O5Cnd7M&7NK7*hkB0NE!GWG4MGC8+=|0ykc7Vpvm;QiV=5?5Q&&omvJw%KpQ zpVODwaNy;Xn92|l*;=`}DFDu&RrFWbH%bk`YdEaQUL;_(z?MVdlN=Gr;Rw#Kevk^l zOAo1pGRt}Sx!GoEzQosG{P(Ej)V-YPb3?lWbf2D6fLfd8F^ z^~?_)%{qszPg(ns)9rkxc08ncoTFJPE;U1^0#5f)^ZSd~?E?#z5!qtS;6$etH2E87 zo!^kET#dVA38u0!Q7du2GaL=g`wE*{m5RT>g zbtA_%178|7FFREDp-4xgU=BY%d!2E7o+uLFymB#){bYzIA4+&ywM{2#>O@|gFJL}4 zC(U#d#H*x$>02Gu4G>}!w8O<1+bk{ePlsu2=N+W7mIaoOoZ~D-^+5Xgy0x<5?~Os< zbt~3>U#YmT$Z5j?y4jejH4FuWh*XgO3q<)5-24~s59)KCiAW|fa;TE9&ON6y*SBJ% zQsyUqAbrXC^-pO0K9=q%|JMjCGa-eJKrcwEAQWDucfYOvedz*t^UAsz;EJ01VT(IT^Z?*Mb)W3 zFc$Bngfng?^LNtxOi3Dzlma-NU&}b$y4i*uz3S8)*(ysGJmR0j?l)XoW3=vw2aroSD~&Zrs_*aGiS_dxm0qve$zuFm zPR0C4?yN$Y=;8*XAE=10qABZ>xX&tW2c<=9?iYUa%?NKo_ZbJn70K@-(rL{> z+C>`0U_UdE3=Us_@BT3_kIFGs`kFm zVKI`1u9Z21#fqBFCie}_CFbRO&gycM8gMKC*Xu#vEJ3TY%N1mbxb60L%5Bc1(8clc zP~*Wo_+>p}!h$ZjG zR~W{BZn9pZtrgKOvY#ly2F!boqwhTS%4P`vod(;}Rr2{=+zE{hreO};0PXH(Zv^mB zRVg1uYu@4YcMZ-Szb7dArh9LY?HnH@u*){Bz<2Oh9N=QlRMf`_C+2@c`vQta!rs{W zN#;_s>+2f6#uCjCf2ILAIy}{TwD2aB65ktvJ*e(sQJSY6z7!%Gn5Ul?>;h1T0JktB zvHY|DKH7xY`8J0|uVSty+=I(PWWGLgTD(9Z7@UjQjC~e*|8+|(f>DFCM@4=0AYdpN zGKTm^c?dr~l&&VY_82B_|L^C)4^W2|lVB9?m6e#@9V&(ktU?CWo$mfnv;$YeBwA$W zXYMl#f<6W*W0teDr-*EPT`89=7CGC0$nGz}gN*q*owU`y)u4|kJ|-TBe3UVWmRAlF ztT+n62G!7P_IUj_uns7r>L5sAI4HGZsx-^^M8{E(wjnx^RM3=ST^hNewNrE693wM=8s(O zupU_sK^w6a1&;+Mjk4b>=n5(9tew7a{Tr1O8mSKoNF>wv|R9ASXC+k(JR8)nu#zZUeh_9mvmvEag-wqFMa(QOHv921W@ThkWSN z>iiLb0N|O7C%RrWpYYF!gKA^GX_=gzMDuX6J{a8@y%~K;BEARs_~!jP0}pnyA*@o% z#H$&!5wo1HPwla-gJXsib0KY802eZK;Y*Uf&>g8eLAM*TfViaM;*FkYKjgfJ!6TIw zvI6*Vk7R8$YJT8ma26ANg2g+UP_31q6uyiQ0enBn?WKHxI}~w4oE{o!XU00%IZ@xN zRM6>3uHIPgJOx1+R3A?#0X+T;7DGTQ8H;@gf$@h1rxgnxYua&wE1tuFCA}|+Ne{p& zcKYrTn1vfn`Af~M2%jjQEEpo>qN_$l#64;qOsv7l745uHA(BK!eZptq+AIo%aD-0V zxok_uhPwdQd9H>Ze88q{trcPAVs3b2S^K<`Vr18WGx?m6}<|z^u ze`4r{+XbmB%XO+2ZnzSEc0RLQJZ|Ajv;x|Y3cz6(`RYPA;_;}p<2D?Ibe%I{q0-;V z&-EHoT`6gZpTH@zjAN1A>;BK)R!kw37{gAf_c`pb3flwM1o1dkrn%amfb?q)wm9Zw z(gbHr3H*Tc1@e9?fzD`YIx$l!xKWOxiDiKQamBp5(Pgl|!t!TJy*6HKRKiQKq$bWI z)>WHS=BV)l_yWA(iixYBkg90sVLn31lTacxz8UtIR z$36cl0sLS^_W)zQbT8R$XCl+~xeOC$!_m4`0gnfvP61DB0i27;Fin5!1_?(XjH2I-RSZuq~0{qKXZ&+qHG-o+Yo#5>oV@D6GL>9TxKvmaBp zO4As7{y-K}?md3|*VcD9ZO|@PGw2z4n*ne?tC8U=^a_;D7h3+nKbIEl3i{b>vb|G# ze?B`hy5EHXoY*;_sJdBlF5A;rpIu_;z6$3fv4o~(55tUb-}u>QDuAoA&$z$Iw_zz# z1z&GvD=cz5wKAOUXib+rC+`j8(R_V>)FmcO z!ifM}!j;Kgft$urOsn9xufM{6{hm{b(O9>3NGLIyDJ0Jcz&qS0c@bOI)HDg`4RTgg z)?AAuwpO0qvL8A9hiGX!z{O@Y;DLzfsT5V_ptb2;$(b+XftQ*E9Q zCYuUjj;FbS}?l;SXE=Kbw5=KPU|*OU~}?556e@(N2Qo~3QakI3c{oZs~@ zJ?O)2Z59r!ph#E_I0Hunxw5xirSyJoTCJgEw#5U*M9r)gq#q7l=s}Tm3y%^!{d;$) zVV4;@S;DE0o$+>i4)9%px~lB87^$sG7rP@~N4V%R3!mlyxz0T%%B`&#qYnT-JWdCLK)^V&3e7@BO_*KAp(gz1eE7?_K$8*UpH9ysv1_2xq za{=8FmKd+XVSvM}ItWVXCAWm?!8-_ct$<-#1!XTfdzfqJVcmV?0ah#8IAc zJe|qkcu)_E;GZ!$a*G|reUG_m3aS@jf%FpOhlP^DX)<9q&MI!$3c+B1)(H31q04hR z=777ZC2%>&QMN55t=>%h(A2jJPkB`fO>n~d#VpTY)1 zz2r9L8sR%lo7OV5X!bMX?bc55gT1BuE@8%s%r!rg4WGugOS&MlPnc}5(BwOHOX$}7 zg4hi}?UTIp{Jr-QudPM%Zd(@P5g8}13uYqe6N3qigwq?H=^vXD%)u@=-gtr5*aZVJsox(va3LmZwrohmJi+!T@rBx3&F6bq^H|**JUA;62A6 zGxNun5FAlwdP%rC2-2ss0l1hgDy+_~jjyDZr7`PoM{`ejwOX*pc@>lg(scmW z?PRjql*k)bRSe=6tUgwVw^jQs7^q}fJbppD;tLOcs}OFEIpxddEE(P-Gf*4zF`kmO z1hmmSbZHKCb1C7bJwW=*T}x0MbAzO7;rs_P8#8VTk5~gjKD^>*iOq+`zzAmA3 zmh7EJCFk@4+~4ZFL&KNxo$8>SPhGth>g~Sl=&pLw4=7KCVC|KMjuONu5%3?@ zLvA8VAQt@HQo7HFb;x>G|ND_?@TeP*j-eyg3LPL~(fHs0t+OC;PZpAAVrIPP%#UwR61fQ?)09;V1HKf^(swT5 zL8}8iwf8R2U3XS!M0Mm3dXRiaQfgr z5+Uz?!Vvo|i-2=Mhpbc>=l*T&Mk#bxW7zE^+2gZ=AyCXywi71nWpOlzd=K)$t0eJ> zJo~UrBgG5;4&?_*Q$etEMOowd`9NE$P>?bO+19H{pTT|#_RWFJ2?I{z?mC%721q|w zPIMuFiTl(ZTaL*S$?Zy7DZ3d}X4=ZE8GSzNTn-O#3iM~!=h8Ps4UN+2bY@~WY>X}M zz6i~!>eC9?xc93o09Q6|E+lq(FSz2>cepe%n&Z*|L+R$E&*^Raxyqv63=!adN2gXa zhOvQB3q`ARY%8x!T^>fNSvjg7W|& z$Y?Fa!h(?55P^W7Qyou?O}Gc zj!r$A|Ne=5^^ajM0s%qc2%bKP&K*RjY@is71)dV)TAqyJdK@WDQ69no{C%68%1}bC zp;fuNAAtw}XUye&TXSm?)qLjgwAD)R{eD0Iw(ZV<`qJi{(s~Hdc#dKmH4Up?Q zDw55@GvkYGZsjY=RBJz;ClIOnC3=WLnmG*1M-<`x+PaVXJY4{I z){cPSiT{R@LMH6%J{=urb(OEXGDNfVYD3l^Hi}F>4xaf|{~X&2U)lcaEN~eNCoU2wwnB z@Dn;DqSGi&4pFxZg6G&h0oTg9jjm7-hXUJKCKAIZyOpN;raymYh?QAB}DP0WU z#y#uy_=){}5Xq&?xD`{V^0pTv(8^1K)J8t)J_=Ib0L~=&6$yEgRrSkDprhN(y2czF zKJ*7ygENcxyTt{n;U$1qZ?-afY%X`und1udNhzGo3b8XcSg|ki(C-U1rdn$Pyo-tX zW$P#xr$Oo+XO>%{M8{u2ui^rvtB<$WX*k)+;77HG5Y&ODUlJYf`+fP5-&qkGJ?mkH zl;yXl;_o$9r$cbt8A45DuR>5a7nNY#DxD?4Q;j-q{KXcoV78tJjh7V#oKhc7k$PR1 zm%79ZbCU5s>R$WW=JqwUEkjm{u{1>c8i2#7lt}N$e+goFA%|D!n4+J}=&yALmP+ezg+%tJmY z!0j|=syC4#pEMI_Xa)k#R(&2L9#&nIO=9t$zj6%vW&+%0Sa2I_UC_2fIIL?FJ8Ysr z?X#;XTZ_5E1p>XbK?57W+v2#XrijhC3(r|HI;t^nxDm&o{BVa+$SY%#qaz5908Uih zK%agjIaVB!N?A&Cbm5)AYv!Gho15L@@^s!7W)1M9nQnTWdiB=_g4j;jOPu|6zx2C$ z{-^Tpi3rAu4Tvdvj}N}l<6-+jPSKn0(h{@@h`P^ z%7|lVLFAfZi*7^6KPTNn&%{}c8Yo8vf)4zlNP;io9Sg69P*ZA}M@El9+pzzL`AHyGlg<^Z zzTG=Uf}7d{K`ZIshn&<<$&s2^boY`eA2n9OiZ^u}{Yvvzp5?&Da!^9?w$DqlMd|S4 znA}FXC7}9T^F9iNFArhYR|GlK+!1+#OPL;d<;a84g-nWM;zu--7 z4lEx#Cx9b}CDZs{A4|!;as8tek4>}Km);K0bjzq9_1Y@RLCgjC9$ke<{7q&m?JMg? z%yDJ(-(6qeDn2o5HI;UBNUsSl06d;<4BcoJ!;!!=-ZswdHpW(;j%6yu5 zGH?*M;RMKT!_jBCBTDyKJj-C-#Nk^6er)5=u3cusmo7^K(tAWMX%Y~Ayp8k!UFEii z*0x7xJz>^(-_} zaNm`e9jc=}rik!Qf=#$TXE_J@2>dfxa3rCSStUw7foDGdbp>Zyj9x*84x zubefN8eSMEw~qS`SI*$79X>=;PkdKm7c0}J-r1MDs@zUg+^}$fFRkbHb?8)i4=5%x z#VK7eYz@=r(rT&V*98Y<9$iv}=Rdd8ZzS$EQoeKm9}&WB*Qv%E#(?oEsk|ro;5=(F z=D!=Y%W&^78BMzhwl7{H-JaP4M#2l z7fbe##Jiu?B9a&Ihz*WOgKuBwZ2TQLxMAv{fnr{iu;$=;9@5Y0%MC0NF8j&+iPaDz zeaXJ>(eN}F<=zAQeWRhq{hZE(SMO=q$%Qi!Lu8Yva~vD$1o6DdVG*ke!0A6U%ACf% zeKj+|M%svz;zjpUajII^VK%QzR+sn{_7C9EgwAQ>Wp{4#lK(9U#Jw=HDx)js(3ru_ zk2Vjlk!Y0w=TwrSfl-T{x`c0!8}#sB@P8Tq#@gmDuW}^SJqYM$cxv)4gg%q-rcixc=;~72_yq7zYzR^;HV!QEaCZ91 zWaZ}*T8`MyLJzlxv9Fe>ind@eX%&O7uh5QeGm1^p_+%UrMY<1Uqu{;{CkLp@+xjlJ6`p&I~lAu!9H&tD$q=T{^!qqq5 zae`+7c-#2GiMmT`G=O7pXp1QLQi#+yv#}4aaQPwGv6KM3r~G@* zU%AV5qb!G-mPJ%8h0#&-_Vv$kSMU}S1ZMxhPVH>c!0}B7~UzP zh9>m7ztziko7;eNYe<#f32ftJI&17nRx&@bjLIF7&9rekr-sR~4hI3dlRns7gBxF^5;)opGW8Z}e6-fY~)QpHHS2J0S4=~&=*2Y43P!T}w!J=dlOiVDn zgv6hfzEK5ER%Dy{dvUea<199hk0ThE036P(;N6mw)eX%_zk?SVJgZegf*$p!cU~Xn zqN^yFc-{a$ujAfJk)3Y({!I}B&x@Kj;A68kI?|(ODJJQ(MOOycic**EAB%Sl8?)3l zD<9+!e>{{Z4Q&aUo!Mvq;_&B+9_+fkTc>!7sB7RNAvYKb{4`{M{QF#@*4BHHV|Rf$ zxgf*?C`O8-Wcp9D;5=*7hi%2DKx&?>{JEg!oJ!HIof}^i17m=X7&~A&7rPcXY-CEf z&z`P@DmwNE=VEgro(Q4gVzih8T$-5o5>gZ8(xl)C!bVWtrQd`CA%cWyzqxUrgMmWi8c0^}f(Y-RS#$(aXa zypH5{NMP>E<{Tl6k_9?=@L!b@&MxoOQB8$Y7#KivRfBl=rHvQ3pjQU}yyK&;1+9Aum<@R${Eq!Y&TviT;Ea^|u0_!KS(Gue#| z?ev99r>>d%@u(O`mzs-wneqH%)e!z7?6fSBDyhd`WH)bRXC?Y+cGR8y5#Zwqvyq8J zXpM`uc%F%ya_Z!&Fd`jT6gROt)7XRf%{~B6pG!X|(|K?3?MGr;)^hf|Et-ko`E{A0 z2u8LQ56LOGLAguMt81?BJ!F=6oIW4dWTkJCFfvM@MUtX?JDwuE0+-MZE~4Jo%OcUOzZ-0KDWquR+NnKgQcE>3Y@j zv2OJ?DLBXh3WM>yOW7|CZw7=|EkY55 z8MXwI<+h4=p)O3t^-chOJXvCHa~PGRFqI?FbnmaYzAK%7C6s-2bz$OnGVC%2@VM8L zq11k8yWv{@y>o)tL{>%x=OX4iYUGUfMkWltmjLI*=eEAR+a$dnZWsPir4_DXu@@Hc zviLXsw;pdk;tP1M%w)$p+!R+Vstv8Pg^PV8G-hRK;>ABE(H-T(ONPv$C6Ml|7^y;< zlyy3n@Sr=Yo=O@lM64H)LA%&nM+Wt`JiYK&5s5C-Gn z@jQ0Zhr(ho-Qqsr)eOJkA#Ytq!=X#>Lmb@E)X!=`P6&5E5r1(2?edNOvyP24=H z9*L9~SW)U}xo|*kRWik{_R~-5PcwLFyL+bp<4s|eaA_WdzSweGz@GczgPT3~it(c@ z`_m&ecq(gv??$}NrgN3uId~uqwx&SHkGOh8S%$B7(`PGFArS=N zp_kB{#Q#`R+TNGnyz}An+}Pk3@N1I3H^BJUtI={yhefuF$_jr3?`NfJ($@Ir$HuDZ zpg9YW{_H9w`A>dG-RivMi?1vWGZJy_quuk#)Y~9}6QhG94Zy!6TfKR(GXxKv*Y)B* z{&$b^)ORqR<*~Dt-=w*f1pN@;_zRyL22AScFdMXTCzQCByTqK*ATQ4k+6YW-o73Ne zw|LeET)rJal*EaKKlInmcg*V`uu)is@N60O_9uj5&FWuNjfVD(n!)dw52f z3d}`+vdbvkuMVTb(!T>aQ4^tuW=Bj<6>RHi?sNM!#5jbw44jm4Bvx z5OUCUVKL#moM)~d4I`E?s1>jVimW4*)I;IP)T@Hj#{=I0jMsvoD z#R=6&@zuzNZQxCqFXV<03A4XHhYrOfa9aKCRxhHfrmQV?9cu1&A0Jx*$Bb=nlUeBv zw;f?KJXB?cR6KK=$$>p1yL*X(LDEjTvfBi1kZX~ zl_HT1%M2IXM_Tyo`4Ms#*n2QmQS_Uf)v?DRMRP^;G7SDwzS?&lh5m~UiG?|6< zX@E;SKpEhh4mP2((CWO$!7;~}b)@W{DO_24O7LIEOT@p5NEdwvc&@Wm)=&IPAqJ(H z_Lo_a)eyOoEIT_l_E~Cync9BX0)UgcUD-{pW1@X4o5$Y{CPJKVLYmyD$5mcRP9KL` zB?gz_Vs0iwXPA={-R$;RB(!nE|OIHHGjp$pu3A}g(!hyMr;kTi64%Brsnl0TN_5J7|khWlUnIq+B$g0$fU)i|P~y16HY6T>kVEBPO}7M^RO@)%0>HA>za(F1Qz~ z(hb5r#}7M@+4z?nXdtn$>$0rPKq`kncX2SAU8V*8TESF+_pi58*KJTevQ*~61MhiBe=sBD5^=K&BLpYDA)KDlYw)ycO(=Uh#R;rb1?ANQSCD-P`e%V zJ#|t7lrgg=1l8gR5wnSC(B#MJmpV(DiqN@nz4riTTNEMTJTZdX)W8a(dbRNK!~B}V z^y#AzwC@?z~3##BhOMk3SRJ_T&Dld3VHvdajyB(E2J-sSzY9gLKMJfPIM+V z_;!TfLJJnL-z&8J74#clmQI3`V7Y$fH6s${ibf`%$&6*Pv=9S18t-vtk7&k!k{*UQxZnu0#9L z5rbfcCAp^O9iarw2Slzn-sqUY_vDp+02gy@4Jx5$qTq4M4>_-L#^@Iol|~oKsv}uD&6$8zsU<_|dk+@%^9Y`S$O*UseC{BqB+X zxJ}`6ltC^LbVXE4h}_c^m5_91`DDLJJB;sFy}-fj7xd^LSnZfnFlrR5xr6A^ylQUG6clX#hh&^cm;%PLhM$nq$M8v_xF5bHk)Cu8E78r_sKJ?BZXIl>_bi$6A=lW@rK-)b*yAmd z@?Az@t=%J}j#=Lfy(NpJRKHeYIfExkjIi<-*z>yggnDiV%xRZDjtHrJcDXdzgQZuhm?|O9fnpXX zf96M{xOG3hB5{wvJOn2Z-7(>mm`7!&=`lPb>uUpikT&u!ewek2B%dDKyAz2|>G{#Y z2jozO0bAR!L$|B{qyP6_*(NRNKSK^0bR{DaTEF8hv?xm(gLsI{vX0K(o@Y5OL?B(a zJwM*Fb>uvMNjQM3{9hyf0|EB$^2HmzF!*z-%UebKWbvVT z*pH!jm7!SEX7{-Y2l!it%Dg1XZ~YY{JILq1OjH)_AH(a)fBxlx6SU{rK6V2*R+X1O zj{2t;q!c-0%4X+loA{}dTtD59a=NaYc5877)8^Y?m^edoNdD_w;6J;cG4ikO0l z|EGltf%?{l2zZD~H$b+9&_}44HpcjJHQM>{#v4h_x;1{zc=fAUTAKthPz+QAZ!<^y zeR?{(1>T7xHj4l4l+sDIq>8u@gCn&2+=$Tcwiw+lj9llqc))jG2y?}WDLn%wY4 zvy%1%ewXD6kgk$3`q(i@P2t>+<~%P+VGDcvO>y~+!AqeT*4y(U2b?3BYGrc|>2*q7 z!fJUqd;5Gt1jI99ErV=wf400IUEsa~(zoh33L;y6USx8~_CxgfOHkZu7oy|f7Vu=r z-FF}yg8g^pZ+ppTL_5CUG6X$!+SM?jOc}QLAvGff-bTiv-g|+^+s(a#dFbw@cPeOD zE5B2xEexz7@3BOPE{1r2LyIo+}OBx3SA3UNj8m&rS(@XJLuSFM#iS@W_Mk%n9{DLDA^` zIPi&u_YYRy7`~z|xxv#!<`fmc*`RwfCGt)%p>LrV1sUiJ_76Dc|8)0dvhY)D5w0>B z1Dty1DV$SQoh%cdF++!|tAPls$w}cBrSJS~*JK6d1YDcMxGrf+JDC`c_b|UFP8F-0 z_C>}Mgn2TbsV2B(X+yRG={y4?Hl0()E2%b7hp{cK*0nc(oJ;Wy**-k1?{oBwgRLlH za)Zq|_s@|TXs!xxwTOf%F2~G@Ci)cZ3R@*@wv*04dbWD~;pbKS()PAP)B{1}=An`g zs8(P5At5cV656=4f&i{;%nI%Gg=2HHS|j7{zK~ZF+_a0mz)niStS)u2SH3O4p@f_2 zGEA4O7p5H|f=~vn%__82+A{5$KK;eUbHv3C0XQ3{zxNzEEOYC76@~sa8-rSH64uKH z1w3ZWgJ?U1WN<{zS2Zhp1|7s*@8@@Haz2qGDTaqVED9^VgYsj(54Qz7B@yd~6I{O*%5#oQ z#9;qMSrUl^YOgMyaS9VhC$0+h_1{6shl&z0*A1pXI@4$0Ahnkkha@w;C@8i)S7(`>`fr!#nK*MF zG6IOn!To!vRu7K70wu7rOZ&zPIG{02AL zR5xg^MG@t4yqhN&&z$43CTR@*qd+mV*B|-(zi6AG^emDH1?|B!S~|^Qu}QhO(*HHL z=rII`nD@f5krJDq3+{if+}Go~=)HT&ewRp2QL|9ebxuuQwF{)iE@VEEv5r!ifoP*n$9J#^ou^D+7PGFVK-^oiex@v=ZZ5;9#WvmnEXtA!6Lca2HOGpB!EDFItUkwdYw2SCgxz@va2#H^SbL1SC+ANJzH?q-vlWB99wrQ$~ ze(>#Qmdk6I`&KW<0C2oZsZ9QmVNUz+b=x}-(GDnM23L3jh5-tKfdUtbqnQ0*PtTLi zAG7O|D(||N@G@RQ6?;P~g^o?*%J-AuG)JKJv^ADr&FhjJ0uBzzORui>#w5F5 z`zz!p|Go0YBs|W-0^seEg2;___QoHQ8tCns)qZpG{gnN7n|{@q$XWU&=JE@`D-18` zNiMJNnzYqY7q)oz4Heoak3DdZugn-Grpr4Q0FH*%yF}(npmJu7#EBl7-rl@-y}lb) zKALcD-8sRM3N~Ddk79p26}gTyH+0ZD{KQaS<4+h(jr`m>pa}EX zGO?XF&47X);JQ0jTM2}f#gZvAro1Gz?SF2L2OuDmVj$mV>=9YLxdR+IUa~G^#GRM< z8*29RyxKha_ef4<6iQxqt^!wkeo_vA2hOkvWyU9epUJN#=nM%cHAq2e*rwqK3abrg zc%L5vj!5hFk4D7|k&)4Vn!csO<7M(;Xq8U=-5aS-oU4Ic{I2)TR&@Y= zQ|sJU#R_x}%vaQ(Q#t}bI#G&6CygWO#<6TKCEnZQU{xA@s%xqUxjH9KMBs7y3BXhT zstc}&cuTUXf22e55mw@Q%t(%Sgmmj?bj6Hlokjz=QdVv?`@R^96a1Bvy>DoSh}?dB zZ@*^uPprtWbT4Ocv0;x8!8(cftO1`oC9F)`uxw&X!$gHlZE{|%*F(oco&}`mTaeW& zz{=MAxXcb)B_zwgc%}Or^Wi(e8prz%UHy6+fEyrU|44p3I^4K9!-F~4FsjZ&xX7PpOW#lDY7OU~e>O-l8lwu5!P zej;ahsjir;_H+kV6NhlY+yN~{^rB}ETx@jP1s;}~yjgqS*{wc}(wq^?qmPz#q{Q~t zH0%nK-~9lJ!I`ZivGmezN&Jcw)E87$Rlvt3r1l6UDtbwQM*3=w!l zywV~=ogQc*hg2}b6~%W#bs>R!3Lzw?ZnT@2(OvvMi;b(yw*pm7^C{sOA@r)Y#MSF; z8He~+H6(RQBQ#5=`E8(>nkAjTYjD>Q`~z@Iw;9-k-Rz9f9Wi^pUl5KgJ&)gt08aBP zFwHuKK76`iktiwj{jX_W0}JFAwBH2-tMTxj+$aFglZChS!Sd5h_?L+?%x?BFB*f$P zuN0mtW4flUeft&);3>EN;0~}E`m|kD9uiOcaBMv%|J1XoTj}`3O!Q%3g9CVrx#7OW z(ZXV`>1^Z(`s*~Ki`-y|13T3m9Bn5oT;m@gJ@=aHkr7Ub7^^SfHA;_~Q6j5JG;faY zZ^-?RvG^>{GJtFK*g3kOQxLqq$CYA$BbAN`zw}aI`*gtrA=s}UwFORkCR&Jb{aS)& z4`ScN>>J;;FEhhLo4DtCz6N9QRx7uD1k&4-YZP=(OtVF5c|UW$@CEhoevhYg62~Y! zyNZB1hKmC@`$U?|7uWW_+aWRo?dwnszV82??#nsUTCh;`TopM1H??$h?$VH7H)83b zCK2qEw~1h&4h&gZZHi7QOl=6c>X3nS58H<*xti2##!;F1Z--4LSUX4um9{h}Vp3f) zu=`lx)uf}?IYVH#IowL~wM?K~*l?QQmjHvfbr_p)6Hz3JN-2=8O5q&>SAm~7(NLk2 z$HrQqe1D5>@SsAgVx@;#D-<#haMB4rXTdbA-*wqBNbaH|X5ZjSwGA+=-16Zl*c;*q z!PaZs+2ne-H6gcZP%DB(hV;$2ade<81QE(s2A9#pfhgF%yqx6|4$sC@?%Vzsf6|pB z?i@YPv8L)2S93;F-;~AE1Qau?@Tu(5-)}n=H*z+4jp0Ey%g&}lcWB%vt~z;k);b#C zx3YAaL+02Kwe#me&E|ok{D#)3&LRKh&b$D@qkruMz#AdGwl8M|2^jomE5>>jpz z-CG3uS-whe?%gpHBG@rZTp)*a?uM{`KM|WB9#5dSE&)GZ!%kr!$iy1W_{I-zu7tEl zl#pH0Us~U^6iqR1Ll%>>xG<^xUDrqaX$7wtnSt6j43c+A=2F8AJSfQreSWDPf?!U(JX*&Psz1f%giq-uN^bndr9p& zgB{xZ^?LJZ2qN)ltyH3q*z@~_d3ewL{4iN-J<)n&WTy&iaL&4ZSxgre=Q z*2IL(V%Om_&%!PHxw@%6-2`nTN9F_443G{(7Vhb!?5*|a#3qy>uR|5K@>Oi3_=G*p zzeP`7DAkbeU?9QDyyPS@yqt_t<8p+ z%Dn%&@BlA@Jv=Z$mq6s}2;Lo2ofVq*OXZI7eT5dV|@B4ifita4o zZge0WJ{I=bX0cVoN0aB>jNWZF7Nj9W_;rx_O+^W&_ppH~z>z;}Ppptv;d57*%^Mn2Pvnrd^|68VIv4#c1Un0 zs19hoJZawYyxD`ifAPx1%z#KG^FbFwpNklk?b44c1reF_p&c<}s2`=PLs8{mA& zXsEXK^1BG;A}O#%gdSLfXrj$Z%DwIFKAD!<;`snKuG6u4psPW&AUE6&_Y}DI*-bOR zYbj4V433YRv(tG8@VGFp5+;eZqZ%FGwq)naY+d9zI`D$KXDU5eomsZ@q`_%@GezH;iy^6 z@k3FUxW61E0Du3@^_&paf>po-J`CC2{&VsNsLh)zn>DK+HoBj%UwQy;)Eu@1(L-{B zXDO0X9+u2=iXZUDE~YR4uF&$La$_01H>@h6wy#+8dRr4vtC$hA{qv{UM+DV|X%)}R zMS%ooV|gGQ_J?W#VN#+SM|1_<+0#Id1=kOpK#Q8={3y3ROi}@SfHS2i(fP+_L`=_vUU&Y;Na|9;`1a7rj!`2umYgW{ zRU=-2TRA15{e_9?nToNvVJ34*!c}b6p_UaQv>c7M4=1bw2QcaaRzUL#;h)f@5EHX? zl;_@~$kBMTUZis>Y$ACUJw_lMV<~i=$+PP|H6wvsfRzAt@JPSw?sJO`OmPyKW(4H_ z=>NT|q6{t1?cGEwA>5(C^yiM&;wbWX-#7QX~?aba2tV z#6i9!MT#@-Idt7CX_oSMMGPK<`y10z4LegNb~V1cTu1s)xaL-ivJVz~vzK|jF9 zkSI;4L{n{vMPw1D|6FlHy;};&a1B!2b^XlSE*H8F@X&M#MF@w+y1Hmmzu-9W<#rqa zU5%#!Ro1e}8lJQ=aJ*weY>?^qc^<6to3tOSt9`TDBB0pzrdN38N8{D&P_zNk(fzzQ zN94XuYBi_m%b5&yqc_1lvmKY$m;CuTPs;&1{q8q@L)#Xj{wdisPDf&Ow-l(OqUTOt7mZ3DO4*#TZ_7gceqd_+_1J$bl(C_-uPmtRr1 z)}*VWIbct3>`1_aw6ylJMV>jRbE)7#d5LsBfS_JBSe6I!AbP&@sZsPwPT+8a#xR8W_VFjVPs_naO1=PH;acKGV@ zOpgF(CU5>@31i95dpY@BLce&&v}(aol-Jpf0Hu;-lVnN?a8z2(l(}`rh$pWsw7o8q zx$+hCFQF&81-v_{>?yqZgjpLtJqQnOnF?{_*~D2&$tJ61M?o4KH&U*wwW%Y5>s5qp3OzteX9C<>XBNj ze~O%BByT<{RbmTlN^?4mdPQhL$q&>C?hi;{$XwR`6ApsiVzd!v*`QPA0ow|jg7R8E zXbO-SL-hL@Jel3+o!@hBO@`4ranVB+9J$1Rk9zv&HFJa3tglemUFXNCLFHH&31r$R1WYWxLOd{!oNW_+Q~+5+&c8v^jo-m8%fxu{c5)h@XGw;{vZz- znjGR_6@_1kssnFD4{Un40v|G4DZ8uj!2$d`$E-bX(ZxlR>P4D2BB2+$DYL<4{F|oe ze7bW+nmh)OUi$q)DD-lRNO*y4+wG1PUFo}l@q5$Jx)|DIre(;00Iedk6F@UEnaw)uu%zka6|-H@|f?|Iw(_twN?=1Lb#mo>w$ zG2k4TAwO<0FB}GsTZ4eNa(vj{5fm>^1NjouBuKc@WAF>y)FQynh;kG~qa!ji(5rtB z_J-$*NkQ=&k5FohO>OIB1~=p)Tz_#pMhJLq=k@3Nf<>>sOWdv*2HP1I&1rBZOArzR zwVTT##|@-j^e-O%M1?V!dA!*aa=S954@fU0 zZT$h!ffwY7(ivN3vLJ-fnJKH7_?cg0j3jrZlhO;|B_CP3M?D6HZ&h0z7yDDZ*$1pz zVQrdVvWyv#hh50QuA3SwceIUhEBb-ntCLSKCNlzh21Fj&laam&ek|g=^CFNQ$hL@; z)xxm%+jQiowUXX5cXWn8R}MeucK?+m zoq5PZ_9NjpAtk`qYz<%pA3iK(M81-Jn4;MGoMpvg9U#L{OF-dL(7!aXM-M?z;E~p&AH>-I z$ku=7^q35Aid;mcPxT?J0&Rug-1J}ExFnvq1&)rErE z0Yz2ER2i#{8=<0^rq(~YPU?z3GUh;fi(Q2oUKwGO`}Ya26LRxv&gUfuI9}9jTQ+09 z@9Hjh058x)oUAjKdcKCBPMXCRc|Bl{KfOR@65h5A$6SWo2bTj%75F;=%zt4R!fa}W zlC#wZn7eZ~yhSmv2I4!PKE*!+>DS*(Ruc|-JO{2CiqC)kaXt15GB5sUbRsEF+M2|f z`G499`Ze%6CYaRC2@Uw>Y4^~Bd+(fYeMWT`^M1<_8#;p5>H>rw?fh~x()na9zVOqK z`vC<%(YrE;4Sai@L!v%baFH+WM3#AmU)Sbf^hp`XO$d;Rcgix4w~(2I{j*HdKY$I? zuAler!1RllriXJxP7A>kGXa%nx@rVRU+|9$H2HDrL4aEsA)v&sY6WOC3g%X?iY1?L zu8Bu?IdG{$o!?aT^GyI8+H|v@edcV_fb{t%B>Rc@#E&T0^NsSY1Bt*?#gjpB;^0gD zg)F_cb8O*Y@Fd;)`rq4=Jp_lO&^ddvL!;m>^N)aZ>yH0k$_!yeQ(W}Q=z#EJFha|q zqV~W_EF^b{fxHMk1mJyn*Kz{1@eZDsE|t!o1B(uQF<_s*#nFUI8kkyz9fN0&(dJ8g zc^M)(2uf#{FQiCm1-&8E;?Zo083>w(?;wsvfb{m`CJIRCqtcn(`7an*`o-VQMEnc!8bW_(L8-E6cssAE{H->(N=H@<(UJdHIiXv*7lTjIH{ zx_y9pWzz!tGqWMfep5qc;sIPF|2-(=;(lep5L~cndQ9i(J47!iWDgVr`7W=#QBn5s zCOg%$f4i4ex{psXYp;JRGvJ6W1vP~p;OytA>q)|a#}l~0x#_MdtXC1&$nUUz_v`Vg z2#S#0frDVbCQMAd)Vb-VDh!!X9Q(%~lgwu8BiN95RC`1q{UPJCd${epya($j zUcP=P%W4^iv@*WEv|s#7mTHZp4gmL*_6|W_YCq-Rv9lzw=l^3p$3G^%G;^*up`(05 z@Qw}OBf5FbG6_-Q`&%LbOA=!#(G)=}2U)Gsw6et9T)j5n9(cBwAL;3abcfKRhB$T8 zq22z27V1vob9F|a6lH}atqhPpqrz8z<=VQlNI79gt34`)X&*m|=MobOyTwT&C(;FW z$Qy~-&A0QuIn!I{Piy#;^16pGt`U%9bwD!7PJI%W2KSN4b({lQrpw>^;qIl8*8`MM zHs8B)-rpqkMD>eM3;Y7-_gpU-LZgC^A6XlWEgEg}zU;=LrTh1~l%z3oVkKGD;IHeg z4^iM~G!M!--oc`6baSXaQRGbMtPn_=B%b$L{XCokJ}L^#8rE%H8h3isi6c!f$+#Q; z$XId(XMT{33R*H2(ocX};+UGXe>iI~TsC^en=52^{b?50U@`VfE3l|lxFj7Mz*3U6 zZdtTn@K!~%?FK21V%szcVlsnXk0(A)9dEW7ECJ~pTb3`STVstETTHBfQ^r882#Ma%IQixg zv564=jO77AN$^gq%BPu6*z~nv7W|qR-UkM04`AWEGx=^}S`oG*8FNJ>{#DQZv`E`q zz@^FuNLQ3-4Kpd5tj^d0e%AbzRQlz6QJ8s>`{jzfL2nRGk}A<)0xCpVFKcBP zcxg}J_`;DwrMQHVnK}7q3UQ2JcCIaQ*X*5AHIv{9Yk|jG>h0-rMDus370Ytpf5{@G z4K-$`1o6b9Zt9tOE{-6AlU~e}(=Snrjymi7kSPc94%?R)3`f`wq(J+rBVB~38SqB6 z?X2Wd{7>PmI;YAM1>$iNt1+g<3LKdYgN8fGyT zk^B5YGDCdVAM^f#9TW}LsB)`cH?9Z9EbITm5js{XD06TOgu<-dH4bE|e}iW}y!4j| zA+NbTF5__q$HTy{Do~acZ^dH*cc0!*DSX~U0E&r(Gh$wfJ{m*aP)CrTQO^vQdAMd? z<6DDvW-gG15WfI8tTxH|^W8@qtEYoz`wj2LAV~BJ?h}mHlR~2>J*>?{fPcy!`zwvx zsCz2)=I?jZ7n)jouIx;P>#>;lc#_%E1$M|`6_N}Mt1Ts(ZZ;$R&P?LN%3|>swJf%< zTq6!r3E8ZHbcOoeBRn{X$UIs|I07k_UmqES%%NgC9$CuA{CVrwq5+<5D`{}&I@Z@b z>ZDO)=jT(SN@QeksNC$OO&(21Si1r6PdhD%8!58FMAv!ORTl_c#=GwW6u2h-b#PA# zYLC9{0X%di^jCU^!(Mk@8b@2oAJX3*O(b|C^ua|C|BtM@42!Dk!T?Nnmo(BL-Q6JF zjdX*60umzK-QArcCEeZKUDDl1_`SdP_y4}0Yt77=9c!OCgDFGdNmveWzpag`*kNnx zOoyQpozBYYwSPEFTPEA!VdPBSSUtJqY2L?NeR|LYuv zV8zzUWbjm_;WtuAMN;QwQduGmV;QEUxEVd-qm=c4n&QmfSpT<=Kry1cvhid6xNN&F zg4i0HCVhOI_$a$QpOM{ZW99`^&Y=NLn=NEBs^Q@&btNDq1lg4;X|JtDyS{*F(}J-0 zDPb7g2#uaZj*I&H+t2)_*I)9m42#n=Z!$_?Ls+!=nE$uQ;yaMuz!6Ley}A)^oHwV8 zQ%J1=d5h3Z?jznVkcRIRy*>b5kx!#fq)dh@U57g%Ufa&zbisqNA&Wiyx?<3uv(Ml6 z!U5^C-7KLUCTPPy_>(6Bn6n|9CwZFRo%($xI{VjANHdWP@aUM6k2U4^GEG^g00%PIRIBkVn++W6K3MI_8Ryiizi#${R~I5f)IF8xrD6wqYd2i zjj;4)gRv?XScm#Yu}1pmyA~BzZNr^h&WE$Y(~`_o8^zb0LPgA ztYI7_sRiBq+D3Af%&CqaY*+YYK%4xRMCzTfc@V&nFCoJ()Q%lo7xr%Amj_M)*&DO! zl?MJbg?Wno`Q8h*bD|`tG;HE67W(&p#~Xz_X0x6D=0Z~9^D!rDwM>h*X#4j#Od_I>8$Fj>b;$^_j=NAx?vz>RS)ea=djdjotuxb?1iR&vcTcnIIu% zLP%R0!FpsSVIZ9i_6_nVVWAvvt`iBdRAJ&nkc`SN8j?@)= zqRWWjHfysWU#+ZkTfn<*dT#Av?Xm8vEdw8)1SZ0g;oN>@+#5)T{lh?|{ZnYh;kR>C z4ce)7xryT=o_9oSaQnvJ;}0)$09SFiPGOmCRE+NGs=-gY z0IrrY;wd>0-x50ZZ!y5nQx7ctB1Mq-P6bJ|=HJ<1yo%hG8!E zlFK?YvN9SzL=rq0i@G(;fs+lQ72Ghq)_rMU8aD3Ui4r!yqX_vTC8nkXm5Ca0J~bAQ z-pT=SgbdH;q{U#Rh%$=$dq(7M@CSI~RdffZeK8{5Gk~WyYJQwp4V!vf8wt!L@!wA! zjy!to)JWjcbX=^)eLDv@+-$Cx`G0@Ai0R3^#duYc?xJ_~2$h|aaX077uI%&Y5#Vjt za!^vgltP<)M*5U7@C>zK9LOMtsSVXtI&lN1F1i4oO#`Er>iIiZZ)-d$eSla5L5@7_ zA5P2w>8xaoXs;YNm3gnKJBC4;jcT}|UAxWtGZ9o{DlA+F6r)Stlhv08E5oeKc|c(+ zG{@LL%(DAeAUNpNOx3TX$m+`7`I?^WECgQ(=?^Z2BT6Uw)67Q9|F*#f(rNh0kR@1f z#pxR&TP%;xv^mEkf7DooSTwGwkY8}3tO0yiarAX*i_Va8Z;Y5;!zwnN;CaNX--}%w zC-yNm@$drRZu1@KGc+1owsffhaQzveUtKBaiI+xzkt|H8X z0S=c>&b>+f{kMB?_yP>y-cjxN`u@Jd#q%=t=G=MTBRDLnz!I5ZQsKJq=yUl%VM-{52CtotCjeEhBp)@n_<-v*K&;(K_XCEApy9k zj|Ved)_iC+njWN*lk~F6iV}>z$}G1XSJ_x+wG-G9u{-on zllcw2DU<@MbE~lrC6I23!EUdXAx--?o*zGS`yyXsg=#E*`&SvWk>ehIl>vAdVC-nJ zV3y|NR@f@c$#~jGH+MaC?= zONTB@v-;v`Yr+O_t5n+u6bLao!WSzaSyHY^`9p&|?=54eSW2jUdWQyZ)*cKLxkZrk zlublV=Fd)4P&|cI$GGzNMBHNaI=W=O7Xze66>er%>o%FnXFU9>>(I`odMEdDa`Ja$ zhgRX`VfQmQ^NGwJXsG-Pj`x;;*um35&lJP`Im9OiiKsQM;b_i`1ol!>c5_mCRq)JI zem-c&<)_Mw{85j=)xSZI(V{ICSvEffigCxBnv76`YFzgC;rh;pc!L!dvmUOhmJ?IR zKwWg;bphbodz1hD`&n!9fZwN&PX;3yVXIXyGTvv5>p}X#b*$;&nt&m?zO!wuf=0N> zr%NU+btd%4@yO~0Ki8thCK~nua{x#ea3hYUY+N+ez-xrf+TfJF-y?&PiZJ;Qf0@gW z_O7)F;AuQG^c6vLIGR7iJe3{asz?6T&FMAx4?OXn?Q?fjsRKOYgUHw9C}Y>01rrfdOOjkLzBu zF2I>77M=5pu=48~g;gsF8gz@kl9~^?8+J{B+AF znxny2RsBUoLdsXs<%sXi08hoLpmnpe6x96}KwUBr&7@uLur&P_+U}EAen!_#%O1cP zi|y+TWT6f8wbJdB>KZoRkH2|Ru`>`Gs`sA;(-CSw1gF1 z&P?pZb}y%S`Np=)4*>ru8=qqI*PM2P_$hrrS)6UKL1$`y3Y#4jW_YYbodx`Tlbp`2 zV&bNh%lOCNhbFzOLK-w z92s#0V)Aegqr5Mz(UByEE=$}wSia|UG~m8T0PQvc^318FXCd9AHB?%fg5bC2t*moYc>C$C2TYDzedngslEQ^!`y_yyA`-R+BNGyd z`@rLrq6la%=8y?l_8b-cQ|a>4l28Ws+WgfSMEHAE9w8n$7>eH-H~oVuYG$U z^jP5i0tuw+>GLZ6i8*CKEMy|Tc$8aVG|%cP$-R4rhGn6^Op*^aE%s7ISM_cttPDMv zsI_D?2{=~t2M}hTYTW6@A&|Jm*nxD9(RFF7V!zmjZ7;#39%*kM7rc>+;|D3G&)r1> z>v-Telhz@n*i@c@Q1Y@VMOljgvqKA`4Ko}|B!P9G-pPT71f*}VFE|)NStL&2VL53p zz0c8G-Aeh%*)r+uR~Bj+_>&aiF&-l5s)Ul31D}%zVG3OWx}EkU7DCr5vu4VJH6(RM(( z1@Uo7&C(O|(|ehisyky*suS_&AHgq#=~@XR632ny2DG@u6oW?r(+UkLPY+IQ+cDD# z-#WAta$1eyRw$gOofb$xJyOWuSNcJur+b*U3stEHC8(ef? zoN0T0{cDUdPm&Kv?-K3XH-YtUcnvy_SK!%6_-P!6VA5Il(O7sL@xVFyH^8CmCHuBA zFk&U_{1K*bb)@sQj>~a>8&;!#Wvs9BdjwB!WedH+zYQidkdLJJho~1oum0VD68&Cv zgtlWN>;C!t9!L*bv?&&u_a{JQuUp?-h9btadu`=X}%s@ zvF!NY{;6lz#+W`Lo6$N--FtP<7a%5pZ{!SyUQ?z?fy0=ywRpb8we~xHcVPxtW(ypb zXS%KcQE*<}!Qe-P-;AlCg)$0m=VmIyJkDB#E(tks{IPl;@gi&p6hp*O4U;9O1rv8! z5%Jy~FO91(hy!hA&y#!9J#?&k7z5xgD4!-n@6?pU%)eblG+>bsjaG(SDu|51mF z(W55=+<@o$&sWb<_*tu zfJa8yeXCE=Zb?Rh<`uora7wr^9Fe3NP=E}Lwu(AY!N}w!F9i$ zB`HR-C%Tc7mp*whMUN1`;ZkHbbUdf$kmUEbTOjD(Y)H;vocZ)IsimiF=t2d{0Y2R8 z6W5Q1*p1bh|L;aoEL(?$IUW79GxH3G?36}XDgof7czUvsA!Tq-H9w96*NS^nM5d_< zUfgwb_AD(+ifXa}P7lo=%fX`VfW6@OUfqa2n*Aq@fn8i`LxHEQqy+mfaElnJAV<+U zk&e#y>HQ#X)g{)4q_Sa33M{S#szbI=daPa`ow$I+qiJ*aOR;#~8+zM)LL!c0aD+a; zWSbcq>SU^YEWr1n{R{)jv=TaTT6wkIzT-47vY&{E;z8k5VzeQ`oxcJ6Hr_3i!9D8v z2%FW)9GB^%xyMi(t&h1CZ=(z%$_gsDD|=U>A8)iXhlQp=ZLP@=#8*qyz9T&o6pJgO z$5NAs>I|e;bQi)fU$04GJ{?%Fn5Q_i1(92x!n(YpHnj_Xbhif6zcwhELHxeSY^ybx|WWCxGgiA6b;#E)o_bF}0gE8s0Fo>iq|qJatr1lJ!Z;C=mO zlyas=9>!ODD?%RJFQ|RNi@?dL)p+Kb29c_8-8|8hPg%Z7>p?cvtvmSVyI6@&UZfCnHjbvA|mrhOmoIzgh*oR2YF zMh1DF4(rq_s(x6C%?$A5o$%G0gSXT;7H5~UB+1GBf->qbL`?=FqOlaQ>k!1$cw}4}_e%_C5P=n%`|%6!)-9nd|=Q zXcj~%{5-933i6w`BhJ~^_O=)s@uFCMM+Z)LhH!TyyH;l@Ey|9GS5|Nhj7@M`1GFu%vH z&EfDY2E$BS_*R^okICR4lnjg0=-)$dcd$Lz~1cq z_pU|L=rxI!8V5rs|I+4Z1WKw)y*>jL+*({ zPDG+~)Yk)X&JBC=ccWx|Lo?tFkBg@StAs&l^P_rls8fWZi0>5?{K}27l965@*;-rN z)q(UotKdf2>?8X9Lr&-A6ISKNX_*>0(J}lR4JFPhtZi_`L7);1uO1a6K`67xwAZ95 zFB8{qKB$V~rW5=QrZyMS4@hUuC?U`ktMg}j@}%5UZs)Qs|6QLS7=dIgb^O4|B$%kf ze@sSqXDXo$;AB)fE5U2f#602w#XjDRNL)%8n{3b&p=_xYIqOEh0s+2N)_HUFm4Y6_ zi4ddyJrN$&$jKA*2-BR*Q^0`C=%XmWQ3kus4q^XBl;|d;27HlNUhpZ8WlL&?Yk_!6 z{7Hof){b}3J}%}JJ+W}|-GcOWb%s^FE3l(M-mZ7+kUC@)66|5uZq^n4k-IK8Nv=vb zH+ko)qDzI#^;^|;eW&|lq&(9hPz+VAc8IiM!&4ZJPaEUgE{g${xlL4bfv`Y_NvJ*& zej~tVNtk>&zaC%s)(g{r;#`w-Y4~=Vstfm2Iy8%!8X4vYaMh4|XlJ*-N3Z;9yJNqg zyh!+tq1)s!i>y;cO<(vGzzbL&i5A80x+@>SU(;aPUv8Lk#c(HWJ+XJ#vNe1eW77jj zAG(2g3w2bLG2%%OX&MY&+h4zl7i+IqTrpPtmvh|$9>UNa%RQn`!!Zb)bTA0zylju5 zpcl(hI0iE?R-ix8kZu9#4o@mk_2w38>-E2btFZQWhtip{WHMfyFc*khc;*yqBcz|aEl~UlDwEz zZS54Wk-ghRF)Q5xxUW8yKz$DD3@#rVh3h+_Ojz3wX+H zl4A_vrPpU@t7WR->d_5RbzCirJk+7D1+$k~e>e1=+Lznz zhR0F_;MX*kdO>S}9M{68P7S!eN)0p07pt;T(Vz9%Ws~nGivb=O5LeMKA6YV64X;$0 zY5#;5j7YqZJCdh`+1D|f?hURu%3U>X@AR3rxa}gxI8y~wzI=SqF&Zz=C`flS#|*6e z1f)xy*4;1XmB5iQL=49E7M9=j~{9eq5nG43cX5#aCQtXR-}3ooZ^N2sT`L zrJUM+&HK5T&>!i{#DBYzD9?@?3RHx#Z26PW|Bdt=P>eJqrp`-R`KlVf$bs$?ymEX} z^+NH{>N6#-qCl?%XyFxbs29GUVjyz*K8T9m!@bp&Bz)ynqyku9)DV3UKhw)%oG zO!?>UQ7xwbhzW5K4x4SKY`bB$GV)YDc?@>RGUh@nzN;=xxum1Hao+h-TwW32lr2i{KlS05F<|cya6|G1ubme6tA{aD z8R+#$eI|`r2e@rjU8PH@)p3g=+MwOm-TXI7Oa8$sS7qv{9l1@00B|G->Mv=w?66QQ zh)kFg9{uG)khBn%ikMH;R34BB%i0Dn13}>tIP%_6H zfe)hetpJKaYMu9nmMziug}rj#^T^N`U46Wt`|n0SdF;t$)ZLRKfDQ@kn9U{f6B};s_4}P`X&wdTxN}Swu^t*{~7k-0Op%)C#)HnO7#@vg_ zVBiGqhDlCxh>3=iVerzDsop#5D#m^^Jm`JnRLm*ocGjQTk%ae>Q`F8DEV7_U>o$zuq-xo3Q?`aAQc zXiz1}`0)eu2hYx8R}oS(ARX&9L%=d)(>1*=lEXo8EXw)0$&ujNPEhwfVbR7Hnn0OA zHp5S+_#gStsNKIbir}tnCgYZ9vE==JG#ge6?JWb2q`?LD!0HuW)~+mZMW}clkWO6| zQt_^Q@>KAZOD6`+CTEA`TI|}ikowK)yk}jSAp_uD&Je?IxgyuY;$y3Fx^bTZh0=U8 zeoHPSY%+c>xG9bTcy11x!t{@r12ibLZDvKAl`v#$*n?h+f6dB05DJ9HqX0J~pFde7 zviDdr8fI9IXG?NSPQ}3m`)kgt0?-iQ}sLn;&_JaV_&fnMG z*-WYe<~qk;0A5gcff~6GhRn$G%{e}6R9cnsY~BP7`Psy5KhvXkv;^Q9kc$!DV*Qn! zbwv9A{;LaavuEJDa9CxTqCX?s_?G~P#nk2uyHA266doI}CdR$&3PTn=c4~A{ z3hpXg8~}$t7A)P-dN&?w7&NBuv%gjo-j884P&;|oIB-}l1)j~N2d zw%R~3w)VzJ)%No9^>IV{bO)dMdOrgv_dWd zxTINe;fAHHZJV%r3gi1g9&vRum~oPn=0LpLa5wfB7=W`Gle)5qBSBL7yP3Su{|+0B zjye>UuaOO4a>o=HQs4vlr@&bos>>V%X){P6!9WuNV}5_AAQ6A8^pY6CLo5xj`vYGw z>NpVqUz%)ANykQ&<*Q9oAdbQM5>3*HR#(l;BoCxhnvIVJ*H#*i5yXwDR5w>nP0DKs`yUd%6(5UQ!r1(=|x$ye6>+py)kw=;J zxri6yZ4$sMZbX@d6eZcMN6DE#(?lL)x3Ed@`Fs*K%UKUtaAXDhGZ9I2jB&&9luvg? zwDs9K9fNiY0>Lc$X-dP`v+trUz^zKnm-Vj|&H69}$`0-`5+UmqM)n;szRqFvWG74U z!JGj=F(seUb(I$wG1)^dn_{79dOYVTX(VjVS(zlE|5?8trUCreq4%>cz5iEu6QS@% z3A&dvBITk;{Ku)>-4r@>KP_;;E+NEX6-$lP{NSZPy8fNoJ6DfOmIU&nBSZ$#-TQ^Y zFd%(`$;fVmSIMPXq`-rfZ?KvG)8|q#CqH5Q{yD9gIt|=65vnwOHk26iXtktyWYsuc zz&ITLq{qY{`la)^6Z>-oIL_2>Cg!X`mznQZO0mm z5|m)jk3sA3Wa>mW&wFp{~iwT}!fT#LGclgtwM?zd^mG70U5@-b_EiY#% z>-j}{t!R!3*8rStWF`^QIA&CHiH@z-{`H^MO6miqGOu(2ZoBb z=dKQ0WcSDCzgBvEQ7Ig0#{8E&ls}t#1Kchn4btsSDZu;huxRfYiD40f(h<$4mgyhf z#j|dexL{LyuJ-ebx!_;B9aT*XJ?4puSkVRF*;iIH#jsLw4xwQsdqPhZ z$*b27j0%0sk32L?%%qkVOBPwqpBVryCGCnD<);5VOX9_yXU%~dVLZj?#-YhKVo%Ay z$<&`7;G%K?y}Mt?^pelp>*75@6~kq^ECv;+WeLiDUMIbn62o>BCi z!X92I8IYeR)w39rT-+owlxBJXc$idMl)Yn@mA>(6j{JL17M6l8+nY~WeMCLWA%_Wn zz+$|1ko(iiO)uUW80Z$}ba|V%%4)>BgN8*&^TJ=Gl#zk-Gc4+@aewkl7(s)wA~!2s zly%Zp2D`f?j@N&Qb9Pu=8bDF<3+4Eh%GomS<&Sm%s zvd#h*CvqQqBIhS#B!Hjjhs+lx7@bt^F1&oI+bGIi{yfVOoc8BUtHe`?+*%3XQL`{8 z98;tICcF5(qBo9tD^wC~$5P7?x+mju7EFua`%cQDx$3sCJ;Q{`D;gklc{@0UNnUOx z_{&Ixh7oBmK?O)(Vo=;HWuKfKZ@@zyihYr8M`?cjC}bnwi27^$m#{DRUF|SiFoh6# z2{*}SnCfIOks_KVe+o^2gjeEw7Z6-q^#MrFaF_6Zej0{J8)Z+zVl1T3$>igj)%0ue z8|zP}<+nToc&_Gn(Wbbil}_WR=uB}1&Ub?&3YlG%nq`Ow46VOnV8aDj;pUDKXG9;l z?L{4SnGM@biMNI{m(amh|H?QtRt+5ACqxaEa*E(8%tX%MtZ2W}v;RntGZPmey3&sm zPr63|TOwQH&DvVY)o4FMR?4$EF3ohb*SV9nYim!Y(Vfm%wpM`J1y00?PJ>MDlf6YPZmM`Y11^7!R76i^IG79&i5M%;ao?2}U^&QNKhI-avQsSU<9SZ4`A|Cnq+>w*Mxi-R;D#5V>BNwgUO^yc z=_cQTAvk&pis(oiA^|wWGv(e4qz%{X$7I))_9wCm)`t+f*`6nDvv(x*k*q6=zF%!SloG#f z=u3o%6r964V+R+8M3}j@F9#tn1FfiplD7MilTAs=iAO(jlrWcXS6(+7fMROn6F;%d zC=BSR!^Xj08o5u(e^461;DWZ%=0J79V%!3_`Qr$I2ZvGVyT8v_X07Qk1#B(5V{W=7 zdxd{K1x|*64VNXy%CM_zYxoqmeaqgegb*LvI3x{Q(-Rn~9>1z#c<}Ix(YC9mGW(6N zd1!;FCv?m3gAAknYlPE7K-IB#Z}u#>AP*k#-cF3(eBNAzW2o-3C)cD>fiand-Q>S( z{J@*YlMmDm`2!EO=^!p4)Ef(z^F&L^chFw)X8z|1vJuYMen%~s{*a*87{)6wcsAK) zf`q`0j&ImfKgTiP&)U?LIA6qQ zyB4@)p5ms<Vly^)EXp6PH4I8&M@mU+mKiQCtf7Ks})K&LSpC|${n)}*Ez|PSAvvYh*Hihq#R8H zTOyPfJM`2|Lu`m`O30?1_D5d2`nf(n?7ucVuR>2hEwTaWX}sbWi9(T%zu!;%dUp_R z1Ha!B_rXO`QBL@MGF>#cG{B!aO3bJHJ0y4JuAjo&?9+UiLG$C15+yMbV-d2}%@>Je zKGrW!`jvc^T3UNBIS44m-KSFV?vgX@_mO45CZ&};-5W*6vr=yucJSAc$KV?9e&FwV zx`w}cupK6;+y2ncTT^O^n-oTA!g$S*j-IgbaajZDi?(RY@3oks@YwzxLL>WxCBUHR>csJ!q+LNVRXV}=zQ}_O|!Oegi?U7vPmG2 z>lSqD)^z>-HQW1+_38lk(!PwKxJ#%eHF^!4hI5$IeGh~f(L|kcA=baV^FAq>QodZ! z#SXaf4`zikU;@%%P!4%-8HiX7dh~zzb|Y_bS@UI3b0^T)^zb41^IL#Bn~h!Ag1p$8 zVdt?HPd2fwynOT=VskU|D1WwJ2w6OLU{iXUu^<)(OTG(LfMc|=Y3&=rKY}eNtLq=; z?csu=!B(C?F&L=x#$UgC3{>S*oS$??S}pt#KAg@NT}J0|$-a8y>jSv#R_(*GZW00B zBgR;0eo5SU-<0fD5513xB&G$ymoo4Ire*hWW$1a#SQXF}jMi6~DTx_bH$i5VwY*&n zx}K|p0@AlHQ3O1f3x01gH@oZ!)vs;KYJA*H?5V6|Lw3d0S^-z7q=pYvGp_IH+o@G$ zZhM4|yY3=}tm5&!*?fdO274sHD{`vyV_WXtMNR03v%aVr2>Ls0+#!^-jRkh8uQIBv z4S_&0s*}~nbu@7tYdL3)k!qJy9X~;D1F^%`|RvM-XR#51VGMgT(TeaIM z0B3);B%`mvr18a6kTUc7^Bt2j8kO5sQQOA8QDn`l8SLrlO%e+1@At&x$g?F0Fg03A z3%q319f&_QDZDL`BDdrM=|w&QUzI)|58tAS#qZg;SQ&B?={-coW0pCX2T{EXG6Q(t z^L?tV1pironvhgwO0qi)XcHQM$E~oH`-%Mb)TVUCN$Av%!h)*d zSb3eAwMI7{2sXvv#Q<*k@hJvYa(D}W4_lm~BQM&PE3jw$$J?RrlN`^RbDYC{zmgJ6IwQl@C#iS82CMve~Pq(zza8UObrhS8{M zX#>M%n2E&Up8d=aDb=4;a)H}lW*`nzGoNbq2j56FtUcc@>AT9lai?P`T zDi0+ZflX-xi0|(FS+<6b9K3B3lys%F1-&TYguh_c8EN^i4wfx|bgm^cN4)TP0$2#0 zZsDCV8jd?bV(K}o3N^>t&j#V&!R3ClY(Ho7-dbwZyK+XD0(o_q9L0vKSsLVWODUJq z+W&k0On4~y;NSWbbSa3?t|AB>Sd{lrH7sAWn0$urYy#2xz)@`CCt{kR>t-wQy=`s& zw*F(wk3ZiQehFvjXCS5ULYh(owOb6&uIaVhI5QgF*5Q8FGA$0{c_-|LKX}K5xbgW^ z4BW4-h0$`IFa24P`j`H1Z<2BVMc7y4R6d?AwarbO>ARp7O%55Rzp5(QBIY` z0cJy=+)%|>_r&j``d@hfXIGBz9vF?4-Bf~FMr|T337(T84bFgR??yN9&UJSI+i31F z=102gqjf};)-C5^nK_&HC|m^etA3mq$$Uh-!{7>AQB2YIyT(v5rAle9#WH6;fz+b| zGXDImt%LFb#8E7`qdfYH&*1MFf>xYh_@E_v>YGPyLeS86&`Z{I%Xdnh&;``aclb## zVbO@VZ`o5Uixz^p%bk7XuW!|T&ew432{SlifFG?OQC}Pwq3)8%PpZ&G9sRu=`z7tt+%zXX_6F!BUd zTF!^0tp?5>Q3^a|3r2{HPBd4Soij{K1AO^PG09bufa-MZt1rLsEB!T$(wNN$ugKPO z$#*#g_}~bf!N|{_Hg}ZR^QY9^W8oya#3b+CmR4ESFYhv|t~?`fNOg`X$+k53d-|+k zGG{59tFko2r04p}by`Kw*ijRu?H^E#;br8%PEPGk(z%^zN=p0W{h-$_H=aFR4D!l8 zRC+V;5C)&`@l;mb(n0P{LQfmXlPB%2LcOfP#D%J%XqWxIAG{(VUiwEaFOj4m+lThW zh6djbuypEvhj?#%Y=ZvDxcIvcD8}Ptx;X&zB-5(#jNa8S=vR!yb}eE_8;cq9qA-PF zK@PyvHKILs67C+(Le{NuLY)T~9z;D?`4g2SaCv&YWf9N;ZivIH!9>JFr6sLWeCg~k zur!~8=i7&-`;*is-|5W05a6%Es4+qAwIfo!L;6VM5%9vaCB==A^*hsJi8J$Ddf?o| zxFJjTrZ;XK<*tK=Mi2(~JV$S6=qanbZ;k%KlsaDtq_<7eaAE`m^9ZXYI&qa2K|d6HcqeI5tq z#%*=Jy^M~X-Dq<1VLJ~#tl|3&^UgGDX-nuQaOOjLGdn{wJ+Rf~N_iy2kl8pDLR)T->KZN1tP5&?iSvxlb_Y6guP6{=Cf`s#01Hou=KLl9d` zL?O4mocaQ;BlY?>V|H3vvgODU=5=Xs&o$p6CK9B>=6d= zHB`}Uqyy5+d$6&ua*kX}zs1)vHL(*cxQmlA zh#)i;C%wT^Z9s4Dhx{JCZN61>mFY|(X>+@U<2uIMk8LhRQ)*v{c|zh z(a5D!!L(y{ypzNtB^={y($bs&7m>E^{iJ2qfo@Ryt;7{!a(CApc7w)IsqTnbw77bw z3gD1 z`5n%Gf8{N`U2d!JE)I(E55R{A*}E5BK3oxn(7XA!zm|D+w%Sev%ZWt}Ke%qzIfMe7 z$c!?_BbZ^!SyWx`#qW96l|eY6%vjl(C2q$%I+`AA?9z-vLd31&V@-vh2icpAVOS|l z+SN4DzLEB=7)&@^kpbzf$MqFF%|l;#dN@W5$ug6w(h@$-D$KPpK@qz?y_JI}pbWwA zXf8SVzrtlCtBszPbaDl|rjB1B`z*d!GGXlDECK1UG2eI`%k>1ZuH1qiq(A)3iJ!~A zjc>JIN@Y3vZAA$#A>ew+3g6B4qy3w(EAnl0Kby6dDOgDnFT}3=L^XglO%9|ph&gTW znRYCatTOxA;Ynt8F}jX@SsCQg}sg0RkGfZ{_XonvE> z9Qn}dRWp#DCMpj_cwb9g@68d2`~EzT)-S6=k^TLEZN)u})x^pnz!&39<2R3#2iLB* zHXfLEBY2hTOxnnQZ_^Pmy!nzwgIoipzeEoj;`QrFF7hh*NIz6t$r^uvobZ!&3}uSo zml`0w-$ZsUhYbrVhfLK&ta6Is08d{3lg({JRsOE(=Bhb(;~j&R2vo z*$lm(Utf(BAVx{P%^1fL*TVwo50XE%Jlp0S^AeO-Jjc$u$oq>Jyv&c(x;k~L?>|^O z1Dr8nYmM!UIU_R6)RXPYR%N~h-*l%D1+gU?Y+l3J#~Xl~zx6>Nc)M9rPciR(CB;sJ zkStY6fP%*=SL~R1Wc>_wP`<;tHLh#hiukAV4)7t8$5NDfFS>=6>gCWM8$AQd8 z*u*}S-*SYkn3!I;;8&X;PUjWRm7~`8EJ8y^i|c(dLfYAv_%g$$!?amPL|JR#rACd3 z#QO<-ZhGFmhdI!x*nT#PT!Z~OxNdrfx9az!jSk=+kcS295ZuT5b)V!PM7Ia%tWYam z&{PjUQd9q;@WfC6IKvK?_Ifs(lnvQ99GMp)vwBcpJLll>F1n?mZJ{sjF~HmG$%>)S zsCOiE;_z%wG(3AHW$c-qQnS(Anh?gko4}7L##e}-jP(wtwbEm-Elp(hW-NeCa0QvW z8_F#tp%C2%NZ^!GQ_{S9LTP+nAg@x<)`z=fbh4yB802j7Cr<=(bsIe3hAgrp0 z=3(`nmqQZmj20622rRSN3j%mq0LEz`Kk`;1PFOXf^zAUoVy@NQ=MiT9V&B`$L*I=zN^t3eqK-d6hMcjilCL`db4ppaGaZ~LN(r50_ClsBonL*q* zj1UJbl~MiaGL;=219*s;K@L8*@X*pA^!Ia z2i96gbt;E-XtrDN~`Ow1Z?ARiT}%;Jo_L#wFk;Wc7Rn zBIOkZWvz=~YV#LY=E~zI<%!}%qJuM_n6fNhX>(RSAK`!ISX=DcOek{BlPM3+$QS~9wFx){ zQBw|>%ZonGtlC4WZA%=JA%N>*4n9&Z$PlQ|zN36CTTi>t@$bn3zo$;y945X8mQ2evzT|-b#7knT_xTn-~qBUdM`STzXg_S4fV+7onVpFGxnrl}b-@A=-b%37+&!jE? zqhpOw=AoXyLyE9pMAczWAA8MV{64m*wFnNW1`Z*&iw6}&v|;8J)HV5g4c26q7Up-h zfwv(axsCO|0qIp@BTBQHnXDVZRJ3T4vMJ<*4kVDYGE?oU2al27+u{J1q(jE!`;cJH zG|;e<2(w3&X!LcdF-hCHN|Hjnn|KF&XL{Y!4|Cr-wPLIjycj&4qarj_*_Nx-?H-*Y zkI|rEynyt^pQs~ECsay)NwY3JujDs`VNfxO|LsR+m9OkCVqOgZ&abSZ(V*1VLoVW8 zo8PUH8C~eYsV7uW_8{ucDLRVi3-EmBok_SnhDIG^oA~8pSovsKx*K zYnTD3PjviG=EDit0*v7PGfyMRx;eS2=*O%_ z9C8&Sn=5{0Y>R2QjYl%a3XYNC{%M#BvKvY-sV_Xx$3dzh!FD7%Eq?}{J3c!rZ)ny5 z#XN`K)pB?gYrD8CnjMg-mM3%P+e227c>7Oa2MhZ9;8zyC7AOd$aDzO2 zOD;VrPK_P)v2*e34==a?m;UI8l1jf(*MU0@pZkT0@7tJC-@}Sk`xnJ9$hfT)ZGfMW zwD2I8j^}IlsX_bcwYZfMB{ZKD>S6PusOH$-VuFL7a`B@)VU_kZrL;niYL}xW=?AEU z?%dGB;h(=yj9DhZ>EKd|U5Ke-#i7>lee{=}7HSE^>%4sg6xr_lZJxir5Q0E4$j$VM zd$0|Qa5ofN-&i(NiiG>-$B*<(pww-c$4ufi0Up;WPn|(n?=0#3H_zp|2~7ig7P$&m zdt@+^x{&RFw>$+V6c;1AR-6kW!|5wfa*Ir8Q5BRPB`re8Gp$_@vC-0Tf&@h9iJmv#ZDNl6CdrC^krxGE~rNgs@d&pQyZKhW%E#v^@A#S#EpfHXwi(gs_WgIRQxIj4#{%mB6rk2!w8S>`d75|)%QWGMCt`C3brnKoH z=+gZn0U2nmNPkHMD*r2lr+Tm-rS9_eA^n>eLUq!T_%|d^dV&Yd=7Rw>z!d z7w=PQ8XF`@``wni;4vU`ZS)Y}B5qknvY`)mrDWu8PCK`+B6-KQd9q=O$*KZEA@usJ z0LK~jLx$XDB!|uluc%FA$>}1SBg_0^N;ug@K)4skhX?Qr;{-Z)?dHXib`&znqc6Q# zANt%6huu87B{M^1yE(Q1elzipZa-aM%{Z7eV(GqyvHuor@u!JkAxRtY==WEezX1PK zlQ4_rTB&x|rr&7>bK>mkPYrqV^KP3hs z4_h%VVXZv|UCwy(Lf6^qm>IV_HXo;U{9;`L$M?8igAZB_;^D&UUG7A;+oI5<`DOaT z>Q}NjQnI)T4d70GmOPKYp7ujyL(RebB_7Trw$*B~Lz)Vl7b?5jS4f@jKryfBs0Uf% z3{ee}8>;4u0vI<#1mYwmlWzAbLxXUR+P?uF`u3-e_qNaFlhW_6Lq^&IKg~RkGokTD zc9$aj;d({Di(tmu@*MG5$g}*p(ZsGNGA@)@z~tKmfyGM2m*ddfccDP~ipnv{M|6J7 zGWw%=nTzM~dUaUT(G%F5riHS6s8&R9l}ZvkLShb^obx$X8d+Sy!};EPC5cyeuTy*c z@vr7>I(X=apy}P#HnZhKY4RotlW~%%CK(24QBBprW!C^rLg1?jS)hVFmxc#^_p z$Mxl^+i;a0QZdiPVwBmT)2B*BK<%)>vjMbWfyos|uQ*uER?uFsoVA`)>G4eqovoGU zMJ)h_97K@~WDSF~pVOqMF(6ctuom7Dxl7pjz+5ohs=6==aORlO{)o$!`#W3ez!0wk z;n`#{NJ}k&_safCud;jo;OyZj1&^Jyy$Gj+1qBf|1~pMi&Y%4+#rsBW6Y;Sc z5hYnWy7VXQ&p%p;$$kO&rDAh*z4ME8N0?H3)hZi*YDi@+y5UFHCR+HLYjxBqfcF*e zED;-uDjd}fAq?URhBK7r5-T&2} z|NqyUDyuCVfw9kB?`bFMWIUnd*4XRm`cac@p>Cl zQpNL9*s$j_rAxYT+`pPm0GF)xi9E?ux`TvHNrst3k8~*dCiwVLCZzl&xi?pLwhF+- z!^YN+>0e*dN0)hwW)6eUr=LZLU`Im>HtA*Geh+{RmlFQP$wu`F!6}L-u2lW&;kh2C zZ;DP0Hi&zQDP}&YKLB<7)F;UMxr9^GRiwyBP2uOSd}=<^SQ*2;O+0}Cr zDKW!&EhCuU@A5=A2Lur>^2)}E9gQsr^fXG zhx&VlDu8#C2GS7wXTsb?TiM5o@8aJc>(pvN2MvVD?f;3 z_zz~{10<)df)Sz1CTwj)JY^-pOJ(@A%`9;xHL%H@^lj{G1UB{4ykWsYk%E*q@1es- zrF%eqfwjVLU|~mPU6B3JR|jSH%a0BL_Rq{wCb4JzT^^xh0PZ==tHNj@%r0Ma6RSO& z`z^jne|v$2B*WNrjj8&3AQpgQm@v|@dg4JRX-05s3tE3MuoW|gP5Voe7_ znIwj_g3Heunv+$7Aqz+A4Hdt0_?zA2%0Fez8}>-Q( z>&$1YH}CZ%F6E$kE8RlU$2u z2LUE={33tGvpTxS!>-OqjYib$8G+Y!aGg;-)hjPyZL!|{yb;6*+aYu~V2fQdM_54N z`6tm^eohKdALV)GtVzpWo}BR8U2CGPbfXW6L~uhQ5bamB+jOmi2k;fPq3bF;PZ*fR zk5Ce&5U2(4?$67W-q1b!#-7C+_0Iqvx%I1z)(%DT?L*HV=6@eC9sW$H^i$iVh|4QB z@PJ$z>=>#XjVFJV5I7ZL)uFR+rV_?#izeTq;vm?8NP&8aiTYpYgM?s)fP#R84pZz4g?@P8*!A4lCS99vctH5IzH2pIt;wNSL9=IDRO zF{d;1yjF8m_5H9YsNO`RIp9h!XfOX&Q3GZaUB@sg5P}PJ z-R})EM<{^}#ud2dGx#=F7hO)4_1{05`b)P{vSN(|)AqtwOrrN7!Me%OV;K>Y~>9w)8G*zF6vskwN1enbGc9B}M%!d} z@i5W|R>Pgl(Ov!x4J&E#S@ojmsMH_+jI!3@Om8gJ#080Z3lIV7R<(V(>!=W!xZPS) zY*r%dL&=tM+x1X3PaSJjal%{u0DiTBP0Nv=al5Zzp}?&v$~5RCma$N3-JZ$18yCXq z4BkkTO-J7uk{nsmQX0VvRW<)y2(iMi5JFZ*-m0q~?GeD#O?*HFkEhe|EtcPXy;5(d zCv0UXO=l|4h2_vRF?gz764pW)yj%rTXY7bm=+e97xC5 zm_1-bl%+p0oXY~ZD>q?9u3!ZfBK{H){;N}=agDmtgZ-{aI3f+5IW-jufZsZ<_F5_5 z#8jx!3JgS~ymv4ws?j`8LB?|;zIto29{}(;?(I5k@uLEeES;^D=(XxAe9_`d%b{B7yKX@{X7{9hbU)FeO+NtemIj#2;e0g>Mn#pQ z9vHcIjdmN*h7BqDaeGEI=tlbr0Dk;o60u%Ze~}EFry_PM}XR z+;I?4)9Ud3Egm^p%@l*=FaTU_MCkX88clqLJs0mV0h*CyqjO=5{-tL88u}wgpCZ`k zQd6I;zH&*xFB_tE48*{WRv-}uOTWnQ9GgLVHFSol zW0Cbkv;W1h;jI1JYzNj&;p&Gm2X17nZU^)>`t&9Rk{Z!CeCi!_((19_)phvv0ChdT zNrKf&qnBq)dL0sDDSJ~C&3Y2SiE<%I#P><`7GPqyUYue(d)|q&aMUX!8`Kxt^pktP zh8Sz0!*HfAVmW^hP0yUBWE-A`GO!lYm0w^>CDML z$+AL~rkO~O+yGolj$VMT;n?-Rfc;=-0wJKR@P2KKyDgJ*ZB>`(P4 z>A8o#64`*6gMbDux8E|*8AQAo>t)%O2gQrfN_djg)|$?u)HG!70Ips)vZ(G8-ys}= zy%VDFt9n8bvA2wVyCI=O7$M%Q*$Tkre@0aWqiPOlz^n)=Ij4_vIE(nLuB|$@_71*V z*i!-vP_xG?D<~L4)JI`TJkqKjcc*>RPgLtN9b$a}=WKo&fq?qfv-L;r=K_dwiS8sj zGk5~3d$_(l_@Na-xPbZ)*i$gWRxmmg;DW}Cg}d6`FxSVwHR!yI_J_>O_01DuI*VtX z0@N)Eg=ritZ`END`s}$))n1%Nhl&33U0YMDr}sE8DuQ>$)uGKk(GC~g1Ld#!fw~60 zq(T7v#H-eyWCh)?9O4gP4xIPjK9S#Xwq}!DUgIqMj0|ThBYbZ`=Np-(6WntaHkj$5 z^+(gbsjIJ-Bl_XnBEUx0LE=c)!1Pz52kNNTfvDz>MZ)Ht$&B z^3sg*jh0Dr@v`$Ap&r1`k9YDSilw#Jod2To@9!F*K}r+zodo>WfpATjii4{I@XCDK zDF4k*QpH{`VIc~lhm1l%-Sl=y#eObOZ1L|^R-d!K7TJ8akd?KR&_xGA)H_0Du+~PbqB$x} z@`<60R9l1U-&&VXyY*#^j!!(U=q4B|G0p|lrCKc_9S@_4xa3;teQkVw|5nB?o(X3^ zx_qm^kZv3W6O^-*pWD`5=i)_y47GW*Fr*WNc@-Ee_c)L0G`!Swl$HNN*zz!%O7hvDJLbinQw;1P3$5x zQAKCXDi7en!#gVDsKYR%FtT4My2yGWZD6U8ERl!(2Wgy@a_No%yeILUP&npjFwwwe zzJtv6ZBA$5@dV8W*o+hcJLajnRRBjd^Rk4i6l)U8ZlE>|b|*`5TQ_{OABZfqLGb=4 zBKZK||0FBwK7K(p41h?-AVTB071&8j{na(Y`L}p~FUu~-7{F`N;Gev260SFYE4lFy zM!UpFzm~Zx1|#OE(%U3*lMw^>>kgGh4D(3EA*6eqP8m$V&U7JiY0TF9nQjTyGUYE| zH9Sglmc6miQ8wbC@EIfG=zSSV?1j_Jl;k7!;$FSdKG<+MLgqbNu%Ln!G>TRZJ9Pcw zx{wZ`yfti-KDNrqWnKVAzS*)X&BG|y*r2*DyL!t$G7e+t(*$TIvI5mpn`PE%Ccrz& zh-%?NivEq1=a0O6xm-*Si<}joNIoX7lozPe%~det*pR}YR-f;?X-X42GpDq<;wwZ)uQ)< zze>D#$J9@^?x?u%a}oQ#o=x^IX+8=-yNCIj#|8ZOGV|2E5t+mGd#U425ze;^X^qHjUq z>a7IVyHXtj_`mjZ;cBceU$G3ZkD6pgbkqJ@NYBin$}BlOP8%oN!G0v3m&y;uQc zit>KEf7-UYRg2=dX;%`4rt11fm>T zq|+Q4G=R%Lz&XQotW;$4NPC8~*wAncQ^qneJjQgm<=bl7lY+ZhJi*08`-5icejbzf zU*Tz@&zZ~fw0l{iVE6n+Y|wJRseNKe6(;v5>Ye02Q;W6%SJjnzwJVRx8mcSD!UcE~ zWiaD_k=tBw4TP^^8GTp(W;x!@L~S9B_7GkY@YlV2GTR1JugxwS%S&=ABNhFs5Tr_s zCSW%aa2Eo_5aDQWK3gI=23#uUj2Fe}k90xY9WjZ6uT&&j_mx{yA&u4q$@QO|c+7kN z+@F!=yY!B=5zfn*r7Yaqb1hiS}axcuHUC-V50(k4z zOAY4+5#}qy7K7`x>rg6s#5=>#D~|}ZOkFswFmnL+9Ei>z-Z?&C>Sp_*C}BCRv#o)7 z;5S{uKtdHHl8X&C82!ZvhS{M$kGivlcEYYah~%H)%@PSOF(qJ*xxY%du>tCl8*?Ma ztR#wuZ0u|zWIbY8b80dX--wb%^Ld=A-YiW4d~#6!f~+2);`yf{lkp98Y`sR+qBXmS zOsIZcQ-#FZM*xo87rVPDJ(W{I~ zx`J>^;b#Oq#MoxqsFvSbM(tz-72GT^fVv5k)l4eCLsx&K#M;77wv^mk_Xk+o_d9mE zcnIZkxL`ixz>u>GnBYKv#4f!oVEhpk_cG1c{-4rvfCheLuR z-=$Im-q-K!{%dHxsEwek=>GWtB{$8HkY7V`@ciSt&`q<2a~8nK#KYAE3VoJFCXd!p+T0le@t)!hinO<@inA4hmh!?f%3-^B%X zX8=z`(9KFb#gcEccAqsB9A01=*bny=THIm${F61$uN^EAx9$0m z)V+Eg*s?`UG`m1Ma92810n`KKHCeWpcSb7Mp_bpK2g36jVq5&lgc*0`YyN%wcnDTy zMY?5j!uB105Yi2BTFcA4=HG5>i?-O1OskPudis6^0_u2B18b(z!2~j5D~~o+G5B}OXqwnxZ~yXl*ARx##7lzBt?0Qf06st9 zmHZ=_>!hc{TF%4_W$x~NuVpQRlRUkuO#3DQ+Ze##^V^%@6K6-GZ9*|Wb`}2G4V3B} z@g$WTmb9>yYuf@##CQk(49ZqZ^*agVBYBv(IxDX|QZe2LhuMtGDNMAyX+T|bRrjaj z#6Qz|n0C*XFXy{aO8Jc~)K0!}h1*D{wHXrt-jNrXH@hoESx&?Hf@y&8--rIH_9i2- zCSpcq{DaK5!OgGfuZOJeCSwy>7Ae{HQvHis`l{WpiQ!ObCHE%Ks>OMLdgZmJLKXD~ zqAp~N%4_pu9U+cSpOYys6=+g>ohZJf@&LH~17rCFcH3M*5xH?s#QqdIC9Mb1)@=7D z2a(hO>Ig6=7_dJ^=?#in&PX?s@0jH4xg&q?)+?jOI^B7fWmAk_38-7QBqZU#Yx(O# zoJn@noRPRet|&3!)+OvpjTBy;W(q#l<$C8e%Z6#ufQ?gsOmQbK^j|R@5@dO;!pBl! z0cMQafV#l%>^~F=F16y{%O7Qc@E^@8Dg}`##nUccfGzr zQZTNDc_nB_Iaf@!DEvC2eu*q#oAw)06PfNt$s5@2}ojmJ%;kp%Cs(fFf z(K3hg496QPp5~`@Kx8nE83AzRUe+VB0_arBXZK#T9XD}^Z+uu1wG}wTH?E2uKWSqC zoXyNx2h*{%diViY9Wwy7>yj6z_Tqyfnkr-0l+s^6-nl}lU1)`HIt&Y)g-&3Jyw+Rp{^@p0cft-*GEYR!+o_GUP_s;h za!)VM_HM5QB?G{{!hC&3(WQ3iLc|$fwTf)U*2iwfL-<+fM~}*DQMXZWA|RE=68|O2~N2 ztb>X8U?dsC97#*(xne_~9Ka{WKKfM9W^)@gh*>=R9>FpF^~}Tcii=1)7DX!T{;=?`*WI7>S>E;0c#X8k;{?J>dH->zRk=#Gch2nrOPR9N5t?UKI-Ul*1 zk{Ygu|65z@CV)H9;st!6)1qXb{-i&ZS(c;MDGDL_Rj&gkIM`F2MAib# z(9wUtyIiF#f=9@*iS_lkY(&XnoxCKr=$# z6&%O)Z5j1Ek}@}K=GW!rMR(|@7qW$-#=Z0hU{dR&T!G|0O_SX0Y{=d%IELlPx8-1w zOQes4P9}Eq5lskC54b__sV8r5qJ6HFv1pvF+((Mz`FKjwj!ROE|9YaM0N@=N9&l^A z(Ry!NU42jOY>m|96*|KD z${h=JjO-t9XM*JUO=9)mMkz(#@b<^zT%0L8zX>@Pe65g2mapjlj5h%@Z}mJbzdwzB zglf%JOHr6qo=mv^*~O+T>CVOuJFxfyM!sSHzu9TWB>lv6M&Zn|JAyx^f|p5=T^48Y z4tljcf9?Y6YM!{QbEcpBpLX_d=6=lC<_5zrV^G&4+_RmbIEKv_1NhqJx9w`Zb3F!5 zENM8`#<4=@EK_LQJ(T%3`s;^<74WFg&;Q=iPD3Tm#}l)U!_$wi>ez?Fefx)A?cd#Q z712NI38+^oP03d~Wm+{(Pk$$X>rC<1|9J%`%Ezy8f}?4SQ3m!>trKm9PKH-nI-j}d zo9{BYO=8=f`Rf-<^D?9NUh!nf0rm9Lm%^rVRvJfs>V?uwXe-pO=Bp`i9t$b3j4}bU z66gRfk%@HHUC6oU?=%W;W8h%)kWdq>GJjT09hTphm`k|K|B*d@o zmx>#A$JOk9YADUVtVkXK`0Hsb(s|jNaO>Bn==Qm5ZDA`5P2bRuOFY$N$Za|9^6n26l;)y<0Nl5kYLmK^|$l z^dGrJ8{ghFCh=+!+SV&8pgwSHixhO${LD0py!ZCs&kN9q;@#E_WHo#Sy`PCLN9e(n;$Q-pVMEBg6bCXiu}g4TKlhwl;sEM#SJJ!l zlTn*nDG)sqW5uq+q@L3&GVdAC@{lpAWhGGoJmgVvr^G9$XZc@gWt((Em#nJzqsN}d z%c~ZI9ZQ*QAAsi~&{i4S?w|TKh`1v-wlL~4vUWd1&BScAVy%ivO@TFE#-9ULbWe+V z+lqdPN@@XK+vbOG;csSJpP~9~qYq}l0sNR=){YNF2U+Wmc|ru0 zlfGn*kOP=8t7ojsj-0(}hppsBdx}_xTX)_XC@OX$7j+6 z(gtV>qphDTWpA;6wF&2x1h^!t;sM;E_`GhyAmT40ss}H5OoE=N_jbvVR=tp1D4#bk z)t@E+zmE}~;);&jzf70jXhWAPImS|i31MFkOhA*#-DrGN2JndBEm$3#E%6`El!<20 zN6!z|Yxr3;Q}Ya6>5@o{?2iE6(4J}h279Ib-M<5CB#Y4fJymLq^XAY$+VnHFw4Qu0 zpNaV>Ju^{;m2-V*1ovaJ08UR4OKQl(XPMrDD2X|2&HzyV?F9RT#z9ZC70T{m?g6g_ zzwk*%F$AyQ#%(p=X}OFGz@3In*@CP@GvrIBTAaxKn35(gaxL#~{8tuKVgX!- zVfGwdAjEet4Vu@+p{Y!aV-yu`lu@ui*!r>L{(%I*H^-Q83ND->gxrxsnhw)wnCVnl zYalTUl?V%~{4UXi0i6Ht`jMBqK0dLQnX2n)l~+f2!O(5D|IH!he!_znz5~F^)PV`f-dJty&5WOWxk$*)NPxNA2b0Ta?gBUSj2U5w~2QYRW_)#j?*R46H<~{J6QpwjPjux}Mx(K0W=yn057+z^ z*q4jZ2p3xbp5-`fZ{gzoawtqfBydExN4+pk$vJ2>{wm%=^DdkhEL9qCS8;7&p*wfg z4nux~*{HY2FE7Mj3HQgA2bBEg*8$a+5uB3iVr_K4Bt5!%;`wkqwZ4-vT}52M|6`v3 z`Q*h6m>JtE)QT8_Sb&fW%2vF;IIU_w_-jm}{Dh-Ku*OV&CJW#s)X;auZoZG%jNdya z^|AsG?8+apVghoB4H9KtEp^2KoQM>adCm7O^74niV47$U)vz2KJC()NHKM=B!P=ll zI)Dduc?A(1W~7}|tYUsWcXDqjT4YZA4(suuu8^~P3=&ND6(l#_WV7Ej=-FtNXTatg zmZ;<8*z@C$*UfXJ9N7iZ1L}T0N|C-1-6kGp^O-KOG*aY+afUwL;m8~aCPjqg0$?w- zK+Wd601=wG9LAVh(x+Gw+I^xXg9`k_YG<}yNk-H6fcpKm5X{qf%Gefav6ZHLOoDn( z^s7x$VwmD(9!$(lQwTLBz{_a$3pY30H3qZ_pAH#!*IoTF-%6JLJW z@3i59u(3e^u7JzMmWh`5Ueo~YjMj|`aolo#pYy|u!YQk1`xtGF3xHdu%YQEN{Grm% zEd26I?VaIX*DLw){AjkGIC#4jX0 zC_B0gJ|^>%Gh-I9j8tybC|XDJkDQXF`G@P06(>95N0&N#u~mSXX+Cs*v2vT=UHcy7 z1wXFdEKKiT!whV%yC`GB+%*5s`yQ4V+eJ&0sED>Xzhlck4k#Q8WvZ|Y`4K`a?a4k+ zO@fz7;;8IIvpTTiJDzc5fLYSQ-yoP#-Zz-pF|XRhb!iNS;hu(W`cJtXKi_+Hhokci zWoh{f4=bcn(^{Pn`4JN&fbAT-U~}7BO=THj*&M1q8@el}??G(!4N60_elP`$BjrWF zr6S3gLFb*(X6twq8XM;_hboOD97aJd44Hhz^#A>^2Tnf0GYoeDG?ZqzAi0RlEP=U# zFv$0(o(L68o1Q&?l)}Nn|6O;;@6i0uj->H?jYNNEWu$aw+X}4Hm`RX4m0&&_{{zgh zBgFmqM{gKTCA8P!sMT1rz9FdK*bIgIcMhLCjsuGg!1;>O@fHN`O=?OduzT<+58#H- z%*R(H@M||Vga0(0?F0Dl@shW7eEbkHwatkSmhJ(O$)hQr7aa}Jnp@8EIVNC+T^~sN z^Sk2&-lv5bYvaFvx>w>{?TGqHjvNuCJeZ^ZtODxK)Mx#FRZH@!*4ADjIN2N6+d7W_ zdOe*US;C`K4iWSN_>-1yx?ypKG(y>F@E!yncxA!LeU@^huN(N8) z%s-FQ{3_7BlKL)>Y4Os~1+GWTpYnIFemNzeo~}suCnY6WE%V)Jk`L2FUEpVrg#`vA zYtOm|e!FC1u(!lgl#I$ATS+~uEnHstvAfkRVCiD(^|t}duR^vwr1c&^z0R7P^p(fP zqwG*7(CpL292IRs(aIVB=73R7$(OilKLBUA)f*lpmL|V6`hfl29XB0$PkAi5JXhEV z8`?Ic!w$@rW>lZM)T^@wO+PW!(tqAV8iy81OnS3LRE8BeOVeWk6T=jea7kONdr9*& z_eJWw!33Gqb)ho+`G4^HJ>*NZECGO-S%LkDHs1*$Y7#F-dc{BkVPTdSf`G}}=_abC zR^q@K0EZ**DdRmIw}(8rcYbK`UC|;?#bZlPxvos5`@}U1(+uF7j13t-u?rtD<83(C z)&$j)J9?d;$kQEtNwi8QZPdj8oPPT*bKLbCLEm;39+Lvm(nW?-xGC}2Oa)by(~iw02hUOl*7xB*E(bVX-~4B-kwD8xHzot8~25xRy5$YA8e!X z;;N$D_Yl>u7=DVc&=)f6OP&$%QGIfsf#ZrRAeV9g)EAOA)AKbo2ZK1Od3BcJpO+pc+KMpr3^Ch8P8sQJO?yGAacd3 z;xXfFh=N6vUa-c9ARf5*!>~85r6VEvUE*Odpnm37s7A54uZ6;-;_Y{ebuWO^XT#~P+qoTtrG|^TNGlYmMRIJ0g_p9)i?Kacxvzn(DC>6|4u4HI zy(A1*a%b~-(erqoCDWfW9V!)ACoYRK!DbPGHJ1`4wdYA;wjcW{=U^rnSdRCMr+#589wxW=@EqYXY*_z;|>UJPsTLdL+XWq6& zI%e)BEb5Mn7xW)LbJ1&sze@)fjwtI9^l15z4UUTLGC`-nl^))wm)wn5moFK)ag8wq zU>?aiHf!X9!yXP}F_k9k>pMu0A$BeS(Pc;5OG3B&ZUL<1S8^;_V7ko$JHpx-at0l` z!c7dR&m)u6B;DV+%KAgP0+(7byY|I2p3xW?G2$R4bglSbrr4&^Q*xG%JMI*$F|QJU zdomd*Ury^p3s8kdb|t3jE=SZ%LP$l2!X?O6WfjUg0k}cl;C_DG??9fI)bo0RUygkS z-{Zz~Cw;i3@cEk~1jYgUqF)JlPs7RIb@zPpQkJC-7q#*Cg&;6ZFG4Th4 zR!t~-l4rM@4kBQ)2>qE3e52~8i=`14z@chhr%Y#7R zfcNh1-_y)ka>|Yp5xA?vcb^*v+Q!{23dQsXpbI1xJKAwYfl^M3B#aln^ z&(neVK-L-V_(HZHVU^UpfFV^0Zh<(PKcG&Yy|vXXs03LsY@kn|no*C@{-CdCkP`)& zHC&G-jL-n!s+y=(d)g>p3;kN+)DCNDPMgVRiPlNurX2;jch}~?$=BQ(va~03PSPk` zQ;#G|P_QB}DpBsVl=!oIp~66u22|$@S9vC%t9pl?GNf?1S(0cl7U>Z(jO zY9|1g(U_XL!1Y8>*7`X4cSV+|Vw#0J2z3c*wJD~5Y(-sR9l(+2ww4CZy>lmW>ef-U zQQGQB-s&(*wcGJ>H8>*}Z^8Sni!^t5c2vVCVzU@SK{mTB`BgqeJ?I5JM{i3_7)}N3 z7-sYQs_?7zgz_8X{nGR&SO7w>x<)*TpV2&6f!R2ttP3zx)P9)!h;}Krti!sm@h2A7 zm*PfYv?59J^Z>#y8sQ%}`NkWy8T?z<qjM!+4wY+(T6%$RVfYpIJ zl4(!E6vdakyYRfkZ=cCV2zDv^s_EgT?_F&ZvhLaeGtKaaEM`2|XrX)=$l?N>8_&ub z^Q1D4-V7mc?+25Azyr8fH-+n*fo%akeqzdpn{HEO^sO0BiL}_j7nf)(k{@9DwoX#TGY=TbxWB2WsCHgyddJyKPT<@$Y_ZAk(N-R1_PB=-J`4dC4$4I+j& ziAth9-zB>TUi4@~c{G%{xi64nx|&?eW7P}52M;^Ao=af48KG%ObXp8g@(5480B{T5ow^@01xL5&&He>Zx^&Jiy$xmN7{r8H&Zd40eIEfFwwI=olOckl z+biBiR$#ob(xLl$4{)7n!Ften-V+g@v zi!;f+K8D8PmvGbIrw(Uq_E8>@Iwy)r6D(D-zbD>BE~*lKatmPG=Nr4tt0yw{Ru@QI zjkDREOFh&9)VWu_3wKfVnjXUF%_Okq<2LDW6}YT@ztm6t7%W@xxCP)6obm{XQYg0^ z>NP>|E4|~#hrFp+a52`#HdpWuv3QBS`2FqzP zx6@1ma`t1G102xMbB}pF>;c1I>Q?39oxb0|(YZRy#W~3OGwWNm&o82Qyktx<=cA4W zb#RT$!gA1DZQUnZ>VzK-^?!G;++3)LS%C+)rB({#pjBgGhTtDQPlrgn8C z4r`igjo+5;g^p(vX!`0dVgh*oO*^srBUg&nf(QfWGnDZ?^kN1D;@&oGf{8$3MP@5(!60V9)&`#=K zg9Ar>TA7(zRQ3?dF%#MVJey$2CL&|)cgFkQIO}W27%YFtopNmZTFvCGy0#+LF#&v{ zMw2b0z}0(w3{vv*|;UjDNFo;5*OYGB~hq(jc&)J|F7(vW&I0vi%hXiIiHE zJ^Kr3cWhJLM6=;eHJ~miBD9P2jY`O$UHsp?;1|jIE=f5L#3%=D_N!k_1y+9n{9#Vp zC8W1aM^NL7Vys}2Uw)S|O_9YdF}esF$H8x8aPw<`3Cou_HSv>_3@l{8i_G;$k2Ds6 z?yrbdOcf%+o1X{)b#WI~du|?+5|VR&;<(C2TT-{HYyR{1`X9c0%Z0wG027p$D$b82 zTRXOpY3myPI=gvB&!;nlD#{x5lqH0ZxhG()t!cM}Z>yU_InbItDpn4|7E^BZSx79y zB6?`x6PK>OFJQ(j7~>_O>(h-&Y*9NI>t6360{!4h(Rf4fNG(FVY2*Tc3#;wKJCH+v z+P`8Hqk*@Zdb#LR-8!G_O3a^o``8Hst}~sX-_nr~VpYz11BPVWCtp9ZZaB+)K`#}e zRrh3g`SAv*7q*voN}o{et`8I!QG14CH#myI=BauU)%#ECDmu|NX#TzN*52CLYcZLw8G(R5o$K|o+L{R9 z-BhUXffp>HzxE}WNEk-V-g*QVZGY8#5lKt2>K!@61@Nx)<1gOwVr2wYo6*A<#O*`w zLZ^$nSs{X7%4^IGqq_kd>T?6V@pqUPS{(oUHtDo__u5WwbY!fcrre~4WsDse0Pkor zV4f9YMiI!rZ(m$zXMiorLc@AGZ7RVfUdRxWxd8A!tbbAk?RYgyK6Al2a=$ekUQ`(? z*t?cy#38E74QO)#{0rrU-6_4v*Q+|h1tHIBQ5|?Z!srT#QJtLcLg8G2B%}>hw@o2q@94$4&_rRv4{dI0@FpwK zusv`sRSw_^nv)u4Bf4_zi-h6gAO37_#*ktsFb~p31s6-s=)-`g6)LyN?@EY8xJ?a- zAMx*C8yIE7(nUi12PbL*WBBslq>bGUHQSIRUDEC$=Ss z%GJfZ3E#382?w|Q+}HPf0Pdw+nPQ-=^=cBYKGM&b)aQyTfpGj!7jIm)fY&@Le- zjAxjr@xZK&`TczEkX%6hbj*OxZ=eJgLxRC|LGMYUo5xeRk-xQ@Nns$d2Kf#Rz-c7k zpIVFYDwp5*-dM7rt3S1WE9Kv+z+0FdfNDEJ*97o9%h7BEpXor0LgWbZ1KB%ra@k%Z zju5X|hH}Zg1ro5G199Q-0|LhKQ}J+^wvJXsiOdovvt1ZT{1s-F9uD`20HE&I$<yYY`IaftG_7`wlu!Yu@kK7a}(Ptwl|cw z$BXINy}(5e9o4t;3_VylKQOGB#t(}+348B%kPjVh*X;I>Rbi<{Ks~3yV~&x!MCM0k zZei2m2N`kkPZ=m^Lf7V!W&BQ#3{e0sp7Ey$O)dR~zmU3KoLrs(LH_MRL8J|DAj+i) zmRAKlwrxZqc^u=Dlm_9I&CEU&(Q7tZMdXzmo;0!7d-rn+>IqOMq7dnlyvIbg?_t*e zPAA{z0xi3d+v&_T``R%4lIaSbV5CIc$DNz48Tt6ZnECYqHjP6jTu&xYjRt|EH-{Rq;3ZzXTQ38$nc zq2@MVUh;C2QYkliwMhJ@vR&+ND1b^gVjct1>QgQpE*AqQ1{&$K+scnutK*! ztNMMIUwVgH78VVtS2pUaG~|&-3Zg-jGhGb#5io4g@HLh9=IC3EMzRoqff6x>=RUm$ zBUQ&X3xm>=AoiS2BCAf58Od*#*2`P$5erZ+g6dUk+uX5Yz~w!F5-QL%n>wqL&h#mJ z`pcn1*N@5r;O&|_Tji)<&Wuzz1z^#Z$!=28(&~DxwB%n-khsZ$rT`poxYup+?K^Yd zoJ{%c`Uayrf!$lO>-(So+Pr$*^-l5tT`Y;g{3AY0IQ<7oApo|6bWhimb`MjiJmgaSlel7d(WUXV-Q7X&izR)S>cM<%8gk#)ST$Ef`n|&Uj%w^0Fx@Wzg;}-Ce6cNy@g~q zG@1I>I`vG1?%U39HD3icf=O-6X`{A)=Kj{>9~(u_z@Tv53SOb(MX$dFxX&sMeNx~a z<*a<%;@iKPe<>;9tyXh87;*vrf9`J=IJFw$)S|Lme*%}PljGaA$XLQI_DdCWt}?sH zK6FtWP4!p+hr5cgju6=pz$bScP$09E(MErcl^T?P*FL#8d1yzHvRuC3r&fLa2Id4L zi)5=1@5cyZGUp`=#&}JX;~SUy^a?1dxOU$rk|mn}^{cRJ@i|W-L6gMcX-ZZS>4wu0 zFI|i#iqF&6OB2k41OQI%T{Y*t?NBDI3}csYZjNJ3QD}IMV}&4)l2)C;HhT!*FrkX+ z5=3EH2re;wTC|)fme5i#*TbDlrx}8t)K$Au01k&rTHtKGd9S1B-grh%Z>}2yPc?V@ zEY4NxQGisS3>N-j&7zMk@KuQmvC*6I6N%$?cEO%==4Kf@-`BKC;w!;W_Aa}X?B9Ly zr@9|4P-AGz?I9>x!5E~)!S2CaCFeUTf`FM%koe-PBU6US%oY&`ClVFu`HUowhyV3 z7dR{)0CkO2a)Dm4s(?&9ypn|vs;OtWc` z+JLLrlHgSub1N+c1b)J}ae`BZh7k&tG!A^#sqZh=P>)6qKz${y8gr${O)9*4N1q=e z&v)0ya4=XIF8IE}p1Mc!R|DRK(`LU=??UdBMJ1M;a_T2OrrX)B=)KSAy)wSO0fT%LPISbHDumzf&S1K7h!z;g zyvl+ctWoy6t8BKACNeru@V+%9vaU*WI1sj7L7n1gSM&5u zAl4v}R(WJH9l` zWNeauBpMFvTymkR$oC` zxY7bJLu;qIxXUE-?%mN5bjkou@n)A9>ihlhmQjf#w`bFcRsauG^J8U$lQFpUh$vY< ziFvJXAYHueQgZdTs7;Tcj04YcM3upiMFqCeIk|iyyCze_5nbunLTUAXVaO^lGWhiF z08rPEV`IzV;TtTiomXn4DfBKTbk*GPV&wTmEV6VJ%sK|(yr+#6sy0y{O1p*_;`c5! zzO4>=)b~$NP3ejYruBqC0r(m5Pq`MW)J3fuhcYy6h+O^BoxVF$y&MEam2g_OJaFN# z9;^HyJ+M#jEdH@*=z;InB}=A@>Z#2jD26Q8l`DlFP~TyrJ;)&2z@Ys7+C$d|jc#s_ z#wwWN;eNsB>3h4wb_d{fOf{iAo`_5@kx|MURznS#iJTLyIzMDz+zlyOD|f-k_y5Q` ztEjBHuwB!glG0t$-7VeS0)ljdAl)4j3P^W%N_R_lNQZQH>~D;{|9vojj<0c#d&PX_ z6N~x&q6t^$*q)-V$r@B-`#J)fJB>4n3VC~jxvVe#-ioccZ9&@ z!CW&9<=7e+Nox3Yxn3oQ=F}e{%X(WFpA02yFk$~QxE+)eVbpta{&y%aY*q`)mf}O# zc?9pq_xBFRHe26d``N%D%sJP;`aSe7KA5I21cQI6tb3Sa;m8nLr~muqfp(cUReRt@ z*4r?IAEK;A{9O&ufs^c(A$uTGA=pK_AWn`R(U*k=iwT~BKiljI;SU|13E!zPA$w^O zIKz?no>B+Uj*8*5ZOpr17@KNX(2t5(gw-+6=2}V2;9(CxnoWJJ@Oc0&2n;Nj=gI| zg~f!&DylBc+Jb@ts0)dXj*pP*34DM%Sr$lnaxBR}rnc}_XWU2RytgA>I0W!d28(#b z6yL2Di~muJ1RSeS+=x55tdPbN(*C~1$_YjS@PGK^B#5U3zblL_Mlg5h^IBaqG!aN2 zOKn&kf2S!+gMG0UCD+@I&tLJJzTfP3Vv~(=)NSpUcj4cR26%*Ti$BQ$>R*Zj3mm1D zN3%3zPbSG0Wm{+Pf8encHilp$LriRWfqeoBb%$Gv{&wcyIGWS^WMzm@C*@vY8k_0{ z{$yHB+wfq@yx0WA_U|+=cUq6~+Jm|z5B^;qr2M4CH$es`b?fSNFf8%;mO86A?VJ3Y zsXoZKKG3(f_X9D!~7VcCkWI(mCbgXC`^B_L3bt3 zwk_@f@64kUTE8Zo6>3&?RP&rRb*t6!bi>xZFi(jMT>z;+uMaz#cbU^3bH z%RYVnHbC|q{{53hxp)ABKI;%OxK`)nnVDgmv@I|$<}?~MkSZOBNV5-mzj3!WNPS-V zH&_O!Lpcs9$Sg9k#rn$sKz$C8=j!qm6uN^Q|D3-T+KpH%2H;EZdHV>0jZ48DX7&36 zhL%PsBgV8xF&C}E-=}+xA)WyI73SL?Ug9)aNW0DXyJ8NOy9hjT${K;OM9Q~k&w7uk_?}v-$5t>vo%fab!)dBO-86@W1J#^( zpzmg1FR%wi;#9v^C8hHI3+S_(NZtXvKh0?l{Lk?(zK_9lW%UIk@?vggiNjcP5J$}y z>o+qBkbpYFmblbzOjAY~d#@f@u}U9d!JZLi@|OCgK^-h63Qa12SM@63!@GsKeyPP; z>1!s)oy+-oQ#-6-fH=_kZ01Ou0pNq``})c9Wu3upvm=gdS?^U_p+iJHOpPgZDwwPx z!<7O2Xi4Chx`LVwRgW?^ui3NOvz*2`_^H&rYGkuO7FkyZz}Fk$3w5y@PP4rxGwyL) zULeESo;b$x$Q~WN1ldX`ECBpO!L;#r&xF!$3fhdl%PJ|})moiR0cN&9W6p;%kD4X` z|L-`9q<<10vx(np{zcSSK=ORvH&`8yT9_|C_nkcMdk5frFhooO4GJNTI9-z{ln0%p>Y$i!8yn9Z3OJc&Bu3575Z!^W~1PtMV zpOxNEEl)m~h2#>tUkd$LzRlk3SZyVCfC&mqY4&2$Ci<|%Eh|Ts#1gw*O3R#TSWCd? zkx>DpI%n{y4wxJTd+jZgZHU;dp7#e-o9GEu6ulPp91zrE*=-hssavD@@+dtk!c8TM ztY>@DG?r(aqE+Yueu~Fx93?{FNCM!!G$QL7J=bTNqA~U-c^eTTTK+J)fhVd6j`?lZN+>73Aw z3F2mhDm4&E5~=+YW_o_BUoVV~x*f}$#SX~<4{wQWpw61#|22+OI*6NVodVZt z5&hr7OxOWpi+XiQnCO^n37(Kpm;am7-?|cj4?UVmVH5+0W)A z$012p*(WuPJHo5v#}a^-spee`j3zMiljJyBxM10;QFBOJ1wD#J`qf8c)$DZuxbiod z5Ak>7L-%kIdjtJ)nW$lk!>|hmQuPws>kzBC*8t9eu8Ly3j(S|2o6st({C*FXYVY?W zhCiJDtaYPrY8lw=6o0ex%vZc+SbzV~NQCxQPf!ARx7l@{aPWI>yqdayI-s7^+@({! zA4PK++H9hp*aw;CnRk4BPEo2BI$ovx;0zXVoa@l37M}(B9hqtUW6bT{*EVgmutdcK zHN4g{HFHJ5?Lf`Zm}S$-_-l+a#fa;a`*lK1W@yWttbDgDPg|qk|2kg`gQ$>@Ldth{ zcNCM9WR3GBjgrasotmuw^H&cje+VTsz`6)fGg`fU0Wa&1vfz5 z#i>+3-M1u0QnUTSxS6j?4`LOODF$#0p59x%tvb^=_YTF*omN>B6P%g1l>MQcHKWqG ziF0u0tKgwVPT(1z7kylY>7N#Wt2??`yF_P9$Z|< ziFbSd*_4iq*P?dQ7!Pj=7Gn>6=qI z0PjyLMsNWgt)!ukQ@`nYeW7 z7O<&y8SiG;%6zs-{;d`-UYB^dXK9mUE#?6lEbop(Xs%Sg zCcA6!Q($?0n}vE?M+NY)L1oF&y`bmSfPcG*iJ=;5Qd_@P@;q1bINhZ}Biev%Ixbyo?n`-BASGec$g!|W$x@hd;N5epR%_0!oimRxW0C>}?RY%Ye zbVT@~YxhFv?%0-P&_~T^&+u)>Ou(ygx43HtrEo1>pMdu@=qX~~A;A1T`A z@U>BYNm2lu4Xd4VNX8B=VM2arCtF*Fh(*DtlMw6hrx&6l-#9-q3ID*a&aPR#A$WdMx&_RWCC>Zq)-*?l1X3RYW>kVuI-a)Yp!=I!R zH!~Ns*p`aw{mUMnk1pZ4Lj=@Q1Ib;()FcY86=T20y=|n|6ZBD->kZSO!_T@b(XH$N z_%e=j-YrE-m1}&H5x1M*Yh4>1D$dC6X7}h6fAnOz8i3bNxJeaS6U14eVtJAE3ZeyE zeSGn5d6oS)5k5EBISIb+4PJEc@IC&epUEh-MHt7b4T~b7{~(aza9NZ?hrpnM<*gC} z$rygaT2@#HwCLG#Ozu^CzD|`d*&*x2gXB9IPMcGU3*!kU8zCyp(-V zvb9UFWo^w|T6_`yF9c>4dHY^*j z*#{JteeO(|+);y_U+$yPIDNh(a20w^1aKPHroagL^Ia|(<3R?rN5nuAkqL9+9adTh z{ta?+Q62ynK~OHsX1W%M#ojdYSn&_nXZuX>fjXq=F}*Ndstg-ktLdYsi)pR9)d3AF zhU-NkBz}dXctnrej&B*ZDa;3*;GGfkMN*%0iqz|$R`p+mW`6tXCRFObY)>OE*9~>kdZsKMG3R}OU=pqZBQVbxe5qb2jP(z}xz6@{ zA@j#zB5M10pZFCz35!V(h?9Uz)u_pC&PEu+%(Q6Q4O?1hL(b*+@AtwKub+N<=ub2i zf#azN@m!_Oqtz?snM>BgVu#9ph?ZaXofK5<4IK?f*pZHadPc)Ian8xlS%#;zSR>>Q zpGNd1TWhZk|8eBy)|HXdf$`n@0ylS#XA_lgk#->`JL{7;;;)QiuE2%Jc8&XH%V)3v zl?xt=u%UUyr2pMM%||jPy-uX1cJ3%;m22LLYw`ZF9WW#B<^jQOei1e=a51?{7#q29 zyJY5#ZV@?$TrZ3uyr2T$mE$G(y>^Aw@4U)NSqv6QqQdFl93eupOQtEFs{)TOq-%u+5v3E0?mkIxSjG>S-BJou_kq~4lEWGY`~ z&nv_^md{Dfc;W|Usoirnb&`Qswc?g1GK3~e1kZRA?`EEBn4+q-EAr$PsJ?UGc*nnQ6|M- zKC2@35P$l`3zmrSOvn*dQWHGA_SK}wHX)K^bP;$I;xTxh_W4xu)!!zzCJS%x}O@&@s;s><`ap{j%(G~+uX0Z zqW$+o@{oCeI%38`zSCsqz`d8^Tq&W8C=OzXowccnso3>{zMG8+34l9aqo@Z(vum_Q zbn#2+v|Sy_=goxv5^^hTfZ=cGgj@!2v7m;_&<9`1`9R6Iy@PU?(9Zi~{29vX?(1bM z$s$y+R9O$)m3=Z~nogDYgH+Ey7kyNi&E!HwIjqnG7sK&Igcwl&ER;=T;o#CqJzxcS zP!*c2TYch%Ifeh{%BN&;jZno8z_}bgCh^{2$VoapJgErF|K)eR%!YQu$(l#u#LHWP zbpdef@9fTSYx3+LbB2=bmh-9R`BdX?(?uW>4%`Yu*to#Y`ogDvX)FpnUud%^42M#d zDf>-}Sv^>*9{>K%PX+mu3C=ydk+%9VzVD=DHRkfB5eNn~SJ+$;-D;^`Q5I-1nP`KT znqW1@(W0*+)Dtwb|1>I7JW2afpygy4BP(@8z>-780eByLcuv0L2xRvRWi{mr@vgWx zrSqm5XeUxO%>Qjbn*)CT4i&c(;u?CdV8{8Jx7B5n&UuX!M|H;%^NADUbl9r^Y`sn_ zW;gx!J6IuDJCTV#B&j z1FYffCxQg2+L*mdU{BBQE4KWzD1w!~o-57h{@n1hWr(RrKEHI|ME$J(Uqx_fV!>xh|7{) zP@wLv_XyAJB;jhc^IYRFQJ9s|h`x!V)CH)EU$0!&eXpxPB#rSEe6KK|i$5zLaAoj5 zE&S`6td#{5fXC9w6V$$c&S8eSbM}-z2!8O}4zqQf4BNaRzAS;R0ta_8e}!&Dj{R6L zoCc6~5U%MQ4_8CBkZ41Xa=$Q|IZJ@8*T2((v^Srw&$JjmmO1Qra@{!KwJ3R>ys!&> zn-Fw3fdh-@)=^RVYjKO|n`FY?y(}FM6l02mvo~d;-M-GQC*HOwp(?3Z(G!UEM z&PNU7rV4uv~$f+-@&y!<5BAD4Tfehysf&>eC$$yP&5KFegNzeMT$ zTFI;ok2R4zM(J1lQ(jFeEM~1i4JiXaTrYCsIM=@2-aO7J1??#!wR)KekIS zRQuoz`IrbOr_jOo{R(N$PH-Dd+~fDNGAg#O8=+uCX4voKC{6b*y0qL5TtL0ZpZBRW z1od6Q`w2?b&RL$sqo0-BUt;czbeudDiG9KJhvuG+bglA9E2pWU?rR?P*z^`<;Rn&l zALsgrI#jf~U=jD$v4f!7w+YcDOHa2%5H zP- zkD}a#4O0LP@61+IPRV0z;r0~DuyxmVCHWVgJ)v$8J;jjiLlQlh)Oy3DU0~sbv*pBo z7>fB^DESog<5S$MGMN&B8pKrjp$!hK?l3!yJC zJq;QBvIr`&&C)tr{Kvmkiv#RQg)kv9;YJCf2yO-ixD#H<5b(ZR=g)Re3N`oRAa)MJ ztw9j}5Pi98^jg*-#YiO{G;T)*F17n9fdAw2(#J01%n{@D$Jz#6$=So-gLM3?d++82 zRKYy*tZ9)zL*`)R*+$KVB2ou01G}G^C0rBtfRY0`ozLG2Q2%nNi}H;>F*i;ByRTTM zu!ArK3nJl0j*$K0i6)_x{U(4*uXITwc^fdAeS)ZcqxK0dzX>NFn&U+LYmQ6yuY4IS z5ig$|TsKSjhm95Ey}j?a5KatYvy^B3|Ju1BRP0#M-~sBY^IbxcFED;BG#NBkaExD8 z*3J6ik}RFVHz~hDmJx${6WzUpgr@&$B5Sr+_+~ zz?#vDBiWOib0(i;YI~1DmQ!mJdW;~K^q*1rH8CFm&&}+r#wL9xokZ1bEh zzZFji@4F_UWT!yf3E<{`ywGyeFTb)24#EpZ7|oC_3r!FY*oNVjW}_~qmlOi{;Y7Q%t#s-7ljxaP-f36sBl8Q2q zfvecqe}})D1O~a(Ic=S*1}&b0l}$yXzuEVBqa@lEoe-p&JLV*^+hF_-oUW8`EsD}s zyGp=2$Lks{;oeyFBy5i~NjbIoE@ixA#hBJ@RcsLdg~T5(0Pjvk`ial&??!=bV;mn3 zyGxKupU*j}duyB{;(?gjD+A!(Pbe|<%8{E#q0$>3-Y@zY1d2T0Hz}?LtBlffcoD(P zMl>i-rFlJ6xcM2sqQeRz*N}O=)VdDBoNE~wgNw!a2cSOMbLkQmP_J$9cB2~RXmdFm0s4ZIB8;n4l#D(fr|O416Xk9AyPC$^lvk*FmQ5tlE48TNaQ zc5cRtlQ_vn^oe$*ZK@BdWo0~L7rXiEpLy=hP{2*zyCw1F%;qH7tU-Zr>*cXKjDq>S z=DdUybeGYjQ-g&wU}g{NXMIVkvZT)Rsg=0ttI9?gtzGlmpyGcA7UA*UD1*(>Z#=@3 z8Di-|EAShP-CtsY+5i2#9e)d2R1F?78Ajon2h?4Z6wzF%U?fB+U>5m<+Z3ekBb^NR z2Oi#nSJZkaSirf5-Jcc1>1y*#tv~A)$0u=k5OjMKufuL;LFwn`5kltOfI1xJ8dY#A z3d?K%jQLo~=B_@~ujAa3t$pY}ds%0~Sm6L3pvuC4vGmu=Pl_dVXrjF+*gK$9T%(V` zi#E~8%dQ|4z*&2?Ba56qjhs~^6Mnqstb>n=h_(14M1J%$jGgDBD3};_`TD_(I5}5e z6W_hSDB?=z%G|rZ-H+kahm@^XpI9XW>X{?z0UB*kJ_c`x= zh!Ua^xdQkN)51A!d}h|M{9&c(c5M7U$8=XEY`$u{tX)ZyL?JJzZoA zLGP)RlmH?>jQ&qRnhkSoU zcdcP9Am2_4cpyEXo$UcL&9Lo_m0s>b3Sv{t&nRR+#=;G6-(_}RLA$5DYtBE_1Mu$A zokbKMH@H5=4ljjm99W9tzyWvS@`!S~#sf%kqeES31@Fj9TanGX5#yAV?~-M}{Ek6a)0VB-d6u2dMEJQtwe%wA&T zZ|{Y}sr0_!_Rv9%@ZYXLP+JB9>Bov-!CMC~Bj; zu_p@egM8UGeLb3 z)t?E(%yVvuS=N!ueXwJGLso_wQTS;uejG2z}=$)teBRG1 z|FqKFLfWue{8-K?dAI)_MscDUfJebQNBs@ZDfS>CMK>mTPV-GiBNcqNh;QYaa((lY zq8Y&P?SI(0M1}3UBYFu_5nd>LnpdRa~rhCJ{v&8(&XZ1%B4&L$5FrjPuUOQ&b1@1V;8H*6$*QUJbhs>kAjN-;-hW`f|5ox* z>*5VcPg)G7z&a4XvCaqdMCl>7izuA?8%b_r{aNOVl9Ep;orN`v*|jeh0sO=BM2ijq zE#~O2=Nyz{0)9ulXPKBR^2F)CGE*lBM~wik*DMAZ>-=r9csH(U)upTDGyBPp48<^k z)p?Tx1xvAe0Dq$x)Q=R$%{P7ZGf>3Wl#s8j)UJQ$ty+h>!;ix-AqL>J`=K&jjHR%| zQ)gbtGE+y~o-#?&@~efyIxnGyB6eUTaEej9l+4he8ZA8GMZMD5W`^51DnI|789GHL z)5N5|45*89W#wY-UFoCfzw(agd*h7tpnq3@cqhnXyN-Tw(EtW)a)ODscecWET2$fY zES03D^Gi*QLIbcIe`WDs@X?}Z(!KC7=eDA6<1GVk0pR?39fd4$#QlamY))`kgFA2~!6vT%)_#MS3IB2!Kv@=Qp8b1BekC3N8c7hmLC#9e{hn+0nDQBIV-`aAL* z=J2P0KnT5=wEvE@>jx7<=f%Sf^Yj?IR{9E*h))nY^Y`w59MOI|C1sUYDt!4R1eo!2 zr%347zaamVn^d7?Br_MBReI2$gChS-_I&zqA|ego+DgBa^MfKw4%=Bj+Qa#+E8#~~ z^W4aywH9lUO9t$NCE|!7c_ZY{5F1jWfxMwlgbtTt4v&am_6ewJmjn;ojsK@``k(W~ z$Tp3~Web&(6^^aQKa8+Rf8^S-FL9L<%1;&WMVbFT378q=g@MoPVP#Ex)w1AV;WENl zhYDYVWF6ugQyw3*dHV_Azv`+xrb!U(!j5U#zwhvDWJlV!3uj13Q;epUK^k`a2Jj;d z{qyyhKC^EJUsnYm+OUGu=#Tq?zOXD(&c&fI7^eVuVRLG2G#=-O%ej`!m~qj75I?T# zI6IF`19nh0PQ4Q$fTItJ9Qu`!D90r(%X&>X1^tv${1+5GcIu68Vs0&91@3$Yc#{Xa zB^76kSv3^|Hxi#Ipnj>XQNXEb3<#_GB4mLTrF_WVK^cyff%=0Hmt6Iu`2ex88J|?` z;lJ+o^rT=caMw6vs~zylw?kqUx&x^ z2)6k^Q4@?}BlCCgZf@&N6amZoh%^T_V)Kx~r2N{>hM#5+usEVh0CnxL80E9Sa53Jk z6K84l(Nu(HXf3VLRZiBBmf^5|iaG!uVz@ccyM5|6_invzIBQhPrr&eD5mo)-68mYJ zL;ge-z;!>IxGL9a-_VtJ%$%u*S+FOM3t7XBv*Y1BHe*{%f{)1r5m{WL__Ul@jI~Gh zdYUTTuG_84S-irI9~S$j{u2B^K;IhI=QD0Zdmzu{dPK`!LQ?+hQ;Y;UPqt3|@J26T zA7JLuEv}XE>v^jGyDYE!P$+dl{D7PD?K2YX(s4q=-x#L=-Zd?lju@2OS&DWdaLT%% z&$ZjmL~y!2!7$+etWc=>55!C4#xjrQFfp4KdM5nh1djp~(<2kB$3yxnSuvPM8vy(# z!=zJ%&_D_bBcGyX9Xk}uPp22ctnaDRMtVaXnAvLpzSD|liMybG<&YR|G^BtW4|%&b zzbK;86Wm!G0X^n{3E&d1!-xcNdD-rqp6-!(^{^sD@SYhXj~QU|(nZ~AR1nd^I=2?Mc}p^UKHasz4)057=+kK&8=Vd#c*l6caNrEc3FLi2o% zpM7L0>9+Ph*8*_YocLZrd|)Fdwfd>nuNieea9 zCPmFNiooJG#2Skxv9CxAY;#HBi|SE^Fn$Hezx)W#Uz4%XG?)0 zNP9FiuMK8PiJ9Mdd$;@-#adXy?`JSupnu7<3LI}U@EY}dB`iN_0A|`ws5LnXMpF+H zSvvF!II*@_5DJBV{r%E6X}s4Pr`qb#gVS=*Uv1}*;k*Hw~z z`bMi8@Qr-l+$XQ_&Yh&IZ#a88lrszZxZtRZ9a76-q($E}+5!crqkH+k#_UlA1+9No z=zbC5kfzSewmqsPY+8TUx+`;c4dDBb6utUw_-`~f+aWdLd9YUz%&o7!O{$#T3Hg6w zdHn&rbGh!;WQ(sgoztQa!@I$1cD=wUct&H5De9_V0c&Rfz$vko=!RklT%(c~VY=Je z!=Y`7Yzm~UmXNNoSGrW?IRPAP9ZgH)6<*4kIAq=-gnGz6?tyLWd&ZR78L!92s~$Ml zZmAg-)JMnosA<_pgW;0YuNSA4TLAxB4h7vB?pd1-CRfzY9SFCF49_w%m`}WW%D*4_ zk3HU6AX^iS4i9_pw!mH6GTnPe&0~y{f@J{4B zlmMM!G`=0T%fm=A8mV-~mwl&+5K;;I-%0;c(qMz}oyO#Xj3+1WL@*ymFjR`%W9aHz zo{lEfm156Z4+J`Brd2E9`rx|4=n*4#KCzG6mrpL1dw|x5FOR|@)c_9~tUaKhxC2Oz zn&?RT#0M}us!X=^eI)#MMrk<=5}_JVIBWs$e-*T??DK6OQsXh>i8+z-C?^;;29wRS zCi$X-DffEb132C4M6T;5Mv_K@%TL0;%QU^+Za*wOpMC51N5(0F;RDr~Q!4&8tG&19 zVw9hNZp16ip*iyQv7TL~`eOT;?rTLRplaF1WO@Ml*S3TZ1>Yzq;56lR^?7pnfA8N0DIH8aaqovTFjjGWCiEDVyD_ehZYh zyQ$-VxLxz2J9=wq_l5e*P5l)<@Ust5LhqnB-5NhZbGxsi30ShE^VkkhJT5`Wf@j#s z!?ZhqcN#teUdJ31H!G?TU9=p9jh1cZ;%I!>p=_W2F~|lt3;@T5(L%+%UUG9#tN1Gx zT6atDy+JrKp!A{H=DRLyY!Ep2uz}3ptKa{2F<40QWU^A`D}2X(9AvN}Nyt+4n)P!E zY#Y<|ew2KM{t|uS>UwU%b-z>d(dL@|nI7$?z{^e9<5K}(CVl~}(7Uql!B?sg5e;+d z6SkP=7X!BV9Mg$v_N8iL@V;~8buwqGHCiO*Pg8YuJ%9Hfg$xhL+llb(7j5jrAq0!( zOYe@=61*}5G*jByfw3&;D8+uOLJ}&P_dX5bEROR_fSISsYYuf^9A;^1?2V6b$2TIC z<6QF7a%KLe^-&VyqGbSHn9Z*yx0!c@81ndV<0CP(ea80710-+}@4FG|B{Py&_|j(e^REgx0Jti*9zxm%y`{5pO=)86Z$~HB?vl-ZR#S4Fq)&LnVlM!m=vhL` z?jocZ^-zquPS(%Mcf{bpMw6~BrOx(xn=LvF;Nnj^64&SsIWrWmD{Qt&H~#2I6R&}A zge|hq{Yi;j2LO(hbSwN58M*Of!qvzjO<|SGHKaUnGk%bu! z`RCg)YS1$3Eth;|e_T7P8)hmRZgur02jHbRk}XBaj*4Vz>R1&;3sBEWd>Ap2hfzZe z*|*~0(cyZn$_gTlC}d5lx7 zPk(_KHf~*Pgl6hD+24DI+(Vvvs@<%WConv}n&wv7hOO{3z*0r~b2glJX)#H?i#w*# z?jy-fz#7w|xkFKdYAp>jc?;OSH1?g;=(gT3l!;8dPEtM2w~?3C#{846@zol;P}A=g z>@vGdUr8m3Vx0}HA9>_<@AaP(62_zJ-#AixAN2-?$%D0aTyI4<;=7qY6DLgx^Wi2_ z@NT>0PO?z(gSU}VcvkBEz>Rzo`J23!vW|nCL%!+W%%u8>b?Cj?+0ps<+&E8TQ~3>m zKc;*jHx8|S?j_4BALm|@cp9o8(s0_+yE1`BQYNDZaeB93I{JchmxMV8o`5j{#1;?q#=1_jDWiFMv0M4=mqv zmYWb1&$Ne)h#toQGu8viF^8yC`rI~pPutC6&%p}@!@3>f+PA~-|H!-6Hvv31AOIbk zUD7CYZu(8Q`;M)MqTB$EI%@ISYf0X#no7|cKDg|pfUhtinb8)m2M?>Xx z=xKc;e_FZLUMpeGF6xbvWn|9PsyI3Z)GMH3T==#TlcEdq-=M$o(7NbcE!I6gN+V94 zQ2b^%1V2AOcD`6rJfv_?5VBC_>7jl?hOs&>5r-|oa?{rlG1UZ{MH19krIAwgq3W4| z3yk&~q1@gYP(ft^eQDPF=alV`9|1FxNbimz>Ag+$S%^duAyFJ&CcO&=3f|kW)1Ol` zJU4-zE1!BLQUTbioXoS$1#HibHuiGgE-aMLwJ^05SHU0A=773B(cRo)L8x4x!>jW1 zgwk> zCJko!pL;7Kb~P`CHt0<|ntrYtMC8jzI^23=mLgG7z)XL6-e3<|$2iGeV{!A(#IkKT zy=Fq9wmR0*l_dJr7O((K$Z`G^p13&1%#YnDXqEnXrD&E;$ta#=n*IZ}-uJvcKs`oC zR`TU}?uFJcQx)E!{^;7DP6TgYdgEhY`3f8k{40QeC|W)mq4svfAqgzvo=85zl=$j$ z*k&G&v~^+vZL#78;G%t0q|Z}V`xZ7@@^T#G-yPjxdLUangI#7KwPuVr zg2;;pkyUaT88|=mt@d-idzw=hA#>dd$}sR-2-FmhI7BJy{+TY`z;znWelOAoVJ^=X zZRO;YuN!p+?SL7ER%d~+k7gtTShk0m!^*NjVN?kQ_bP`CftR{*kxx7TewRxiQ@C}2 z`}6BfIm1rW+rezd&LE@uss@ZKEWwRe5`dFJY#FYb<-=po@=9j}wWrU)3cTfbauOEw zzINecM}vispfx7`7WSrkNvvTdea;7gXq`zS4M-_6uGLV|OnmNaKppX)qpJP+9-?T0 z(-*9G(t7I{sHnZ?3p+#Yo?i^_Pr(?uX&|y%bNfNxoPerRsXXM;r`GOlG_7e~M5<+a zUo|-qP;WtR=}rslJ;zme;4z0aAEuF3EtL~Smotm$=ibWAz3-MA+C9R375ek$=^72-X^Hp`4=O7p(6MM8#xR{P z=GE{Nb^7P{hWgWtuq;eqMVV;WS=?4o04lpHP)nk0Pc*4?off*zZ0cPZOI%(9xt_M8=P;w z1izR1lCP1{BCn!yKfMT zu_FFEnZ+j5)h0PMe_{Cf@V$BaQ+$>oU`89KmZ$9>CFJtX{G0dAAIS{^OV-?O#bwwc zY^rsx=>h-`^9W0lC*2wHw^^?lcl9lX$YRL&0h1K`F(HRQI52A(Ix-xYG z?2CD)8$;Tl+vp%|4IJGUC*a@-H30Qgooh@TGcY9z`0CAz^z`L87tRZ{5+Zep~>4F1ycvD&2j<*IeDNUmLo~ z!e9~-+o;z2-U`Jm1B%2Cz+-OQHI-qs5>V*SQrsV}xL(MNRGXI6{Cmr?HnMjZ(YjE?6v}PLJHomJg z33Pqz+wOv>@00;tncLU^ArR(gp&a$Ni(Y%dbMJ*@MQ4h$9?9+{Rdxm+fQO9-qzk-H zi;aUp_FmyqXYT%B$xatf+opJ?xJ~_q6r5(chHld$EmdR8+fsfjbAHrUT=~wP6LJPe zQ)|bN#9;zXRq~xJesDy)c^NAjeDJmuCb=C9At!02h2RsGL#z#}J$27e>NM9{J+rawV$!notuw zoJ#P=NEE<-Hcw0-wprKj***;i3sK>AaIkL|+Snz!(g#9eEyb;pHMFc)L~(q_)otCa9?-eg)u-oTe+WAW&g!NsqMqxJnQo`_JdPvfv6}trJ&oI>@?lQ^`@r8N=hS4+hD_V1K4IF} z?#LwM9qGYfNRP_MH1#L+T7CsCbwM&(c($+bjONEAlQN9`UwM8TMsa)%t&h|--SZ3w zbpQ@wE6V@rbwov&Q84Kw|8p{`QF1@!Ypi(lQY_lK=>_;klJ2@#n9@&w(2ADYa=E~~ zqa}Z^FGe}Yft^4%w?!qt1Juc9t9iOZo@|}uhY8N&U4Fw!iscr+s7Pvy;$6c`#(_-> zG}(uT$b@#ttI8u2J}aIm|5bxw`@8VJ4M;S1^C%eLr9x&pIYX+2Pvj`Uq`7r_2#;It z-Zq9F8ZPbUa@u(KgSE#u&WQf&WJ=6K6dj|wN#0>t3e6$eI7yTdNU!qy+<34we^L%V zGM-R2(+T+)Bf9oM~7eK zDm5M`ZFOD|)N)8&UqC=Kh@YjeLoSF}Qz!9rLZRI13=Bo6JUp?V>EU)pL%xk*M^vQi(v>64|V}hoS zpi}UV`u=g@Z*3gh-IUDt4+JwTr{4}zpsPdU0r->Q)e|X&IsQ!(k?C(F*`O~_&|!2j z8v1;iy#a4dP+0&DIl9IZa(+%FNJPFt$X^_*yB>u|r&g^RZ=qtEXYP&w;2wLFwU>=n z?-(tGiv+Q7y|G0!Zf{la)LK|w8z!c#z_n@&ak9OV&uZ~Z+@1Pxa^h$mX}gn~hu-SE zlc^kfFpv+Z=Qz)LkUPEC4lb=s4Tk7P+f=#ADS6*;0(HG05C9tr20f}U%y6zZ2S;y~ zjC}^Be@iLvW)@Gp{3>V=%lJazI4>P?x(?u+4wki@jEaqTbT}qj zy`Np7;liH8O)n#UyBm5IjG&?cxW};Gr@@#w>A1^ zxqJL86aaB}K$bv7>Gyfy0l@$0sp8PeavQbL--Y$^zWTYrHJ6#=^}ppohov(9`w5O3 zM(-rghM`?Q@Nj+D<-zxJ7XFtaBRy0Y8Uc}Od4eU34X8&6LgU%ydcm&86_2|TFhQ2n z(Z#o~XBJkOaTLX`|F46V6=*|p=XV$hKWDZiD7+u@avia=nt5N)Ab*XorHaZ2)=mHH zy>u)sAQx9-a57iy>~$)KzXckIgc!!3a;Ce5cZ1E*-+?&OGR+17J?4v@OfOqY)mPNkh7o9f=Veu-9%siPK*!#dA`Mq?5$iXXcxK;p;P!!&d zlN4r>An>kJn<8%_ta1){w=lciN7p6e_E#pDzbjZWAFl1$sLHJ-d_1ZD)7V^gfs@dy zyrwsZUlc1`U;wC3h*p`sosx9ZzJ2(U8}q3jrWRujilnJ^DhWZ1k+~Agma6`>wVO?U zQXxTV4^oq!)246vZHbtPzBWI4%{T(?w?6oYPfXs_c10^dmmj}I`WD9 z7Ykr+ZxXQpTtmR|F?bL)NuzZkzFd_g?6wQ?9)Z}eHdRJIC-8Utqpe1VN|73 zP1+D`5uta!PP(N({6ut zxrcXwGkMC@e#H`)e|$l2)RGsmpB{C$H&UNT{-qO z&?FS)c=x(L)T0<+q^Zg+y5wkU0bJYSG~)JCo09>0?~Lip0#Xb$ae$Sbuy0>U?+>eE zc`$Xe#fT4_J9zhxUOhTiZDgHY@!#kqp?UMI9G@JYunxS%y%7)i4 zxgOov_MCpCHo-T?ffOZn(gVy;WgQf>uF)BXL{K0~qkreLtYV}<4VfvU1&m@d3{P#FAF45`NM~s%Jbxeo z7_b`@&1sxR`s!s>>KJD0nkjUJj~f|zUeI~Ov187})WA+HbsNXQj6rHNmHKvZh-0lg z3jJ1zy>i`<`|PBgrE!)zV8-kM^@S&FdmL~6(SX@bp2zj>@5Dy++i!c3uX-?Zl3-P) zw;-woRVnl4u*4MEnZZLys&<&S_USVCmXj$pe+Uuu9vM(FUHjtIHwtm->v=GRh-zfN zP?c>l(A9z-t!8%E37F}>?+uoB09!Y9*mMzEGr0mMLQN`xOb`$#BP3 z`jiMcTDAhxXV(OY2%nK!BdTL}a0y#L?eYg}S@omTp?0r!Zf ztiyZ79I1h;3AUmd`yj{5(zjFwauyW1#(piWbRK8~C8SLHL_RR2nKCT`W-d0*2Mw#| zi>e5CyQi$|;aDOk*i9Ypr?`SVolUx*X8{~~c6hQek1Xfwt_M{cvaaPBLi;;IOXT_q zx~p$5IuIcMZcvsj^rjPSy~Y0>=h9nm$DgIo{36A&{bj0Vcw7SQ7QibT=gSwuI#w_W zP2*_25jNdP-t|%|b=}-;=?+XzEP};EXyrle8lz(Zu?iQYl2UdjKL!TQu0FHO3PlhIE^PHO()Z4eb4@gTC;mA3elAJ6l&Z_KKw zUTU8ZlXvTT!}jQMg0rLd1T>>WXB!vDF-pRNcoMq& z&RJIs(*Q#m&Zp)&yXYF;Y36RMPydIky9$b{i`GUB1b26L4Hh&wL4&)yyAvQd2?Te7 zLvVL@hXi+*;1JyXd{yV)`(kdcpL%O__gYiNT-_Lw6nxoinB=Hm2hu%o1CGAn#Qogf z<*!tawH&H?;X$Q(qNe#RB%Pl&_+S9=G72k17#{a}|EKIP3mK}#DD$|j>D+YfNg}*T-s6;D(rWwQ1+G@I!f3X)>X+N z$pB}GfbaJx8b5*??BZqS@z<1nNtC13;^GnI{I$QwsuJ~KYTp}HVj+ZL zFT#j=Z-2?=LX{9UV}Ngp@lGX(Hx;xg*pN!kK4>-!>_D#AyAAKi*lrWxaPZ`@$akBG zrb1uMYQ@`ck?ykjc^+S9aa3DIzvTCx0o>^5p`R0b{;v@^|oWGdoW#OhH_s9O7FquC_@{sB@;2a4Se-` zV{0VZYjaHzwx<_3RWi0v(TFCy5Fp+Aa!ob*{p`ZV;n!wNTiByDPUnH($@tL~r$78s zot?q}U)l@bVo(yLnpI{eu0~JK#lElNlAIb4ufN!InJaM#1h{SQuFNKNr6McbVmo>s z87i^z9Xva7p4B%wn+E9$W=w!XK(ld3YN>NhN?bn0=R`YUw8>uC9vaLJxrX{9b|kdg}DKkB>qTvf9tEDE*x4Uv(Ndg~7|^w$o`folQ;B&%=YykuUCC%8HcG3$M0 zJ+ST?(*~CFN@Ax614zg~G3<{lq8Djt!IFot5H=e@DJRo%myZ{kF_r1mXcOXngaAkV z3r}9Jv(oHSVTJDe5?(&zKkF6?KA-VoR}x=#lv&&q@}>4)EiWoSz53R-4ceJX50oadCyA>&M=U zZoKCVl!}kovCszih8qr9V_%zZe*4$7pmR3r-D~)#{nCR>sF%qR3#&CQW0rMZuk}x&AeXp?aEAn zqM0fNa=A}gKrv5(gjD814#q)$AL}PL-IpFeBJ_Lpo$mYZbA*bQ(FFsX2rBKLcSyQE zu3d=t1rEKApr5h9?p^LD2_3(6%-yRhfPW?#&`%{)rNgCqhfwk>MW5k)hzo;#0M#0I zwZD?Xl`g;~EQ+RBVnWw_=t3fE2zIlLT-yI^6UuJ?3V*TrO_>0`k-mH-ztN(NilRLq zwol4Vo)pJ?qJ=7!ts~|0tC8Sm!6qH5unO)zI9;>yN9bq9|I)@g}Z@B_Bg+TYmK!dvX9g-qKGh z?<&lgUgCBj46YH+-SAfLvz)DTkYMoVs4$dsfJ0`B?cefz(3ha5@q&Sv^57>>ba@Pm z65vm6f~qHge*^fJngYDzTF(VyU(034A{Ge?xi&8Daj|E}#L9ARBHK=Y$9tgaMX79s z@g@a2b_92JkQ9|27_a{KkK}V$;&^BvZ2|5hJ-@q8->BGVN!`QpN)%%#qN+|Lv3lD` z{4yR%vql2&oWJoirqlXa6)P$`(hweKa@kMFO58ja>$nWtfyHq-03Xc6&v{HmB|yy* zA3U6S*NrM;$ijZB$3_2dwMssF=mg*lSax${&6)cV?-x*-x}_6xc~%CG#%9wuNYq)$ z=9yjqo`WRAV~kMI5c}7^qQQ|fnaW)vpn5nEwvdZ2;V~X18sONx2(Bntm-hqLTnCl= zh;CDS)NI}4Gg6I#_4mG<8S4P=e+kUrj0kFI9MQVy*BgIoYyUH;(=(0~-MIjvrO%^brh5eY2!QAMq&pBeiAGE|2AsEXv|61y zkfGlSEteXW2Z?%1Qh>#H&pX-wcC6+3f>=;EgOzaNkK|Ns7{ zCDLvB&>1ou!P>~Gvfup38QHuFuj%&Re>IQoPQiHDqc8(_LcPt7bf=b~gt)1MtXqh% zXFNX%Rf-p4;_?Nr{eC3{z-#kXe$N^Y$u@lFh`k|T;<|+NN$2yMo!-zG;Lq;t zHug8Ulb3;#O+Jiio)6fmx!-!Jh+f5C%*~tCz=veJaZXfN&{qo|+zsQGUB{ntq*W(| z*w+|LEMl4D=Jy4FbW}#gVLscXP{owZ|9<>G@-u9EYPIIS@b}KNQPO;9so=1besRWJ zSlJlZ8RT#Fux<*c{p2L=2`fKDmL(>eS2_xAvmhHTI|m`lIX?Q3d2#8qJO>7talCM6 zh2RNYLbovz$pFRFbyJ4xHUi&}anSdG^uYAMs zJTtp9AT5YAquRRO$mAXNX%jfSW3<=FGyu}6^7=L_-^{CSFt@M=4P2X8j;^%zAzdBO zyVqgT2Cz;6ZvWRha-fevv`C{(lGvXZk@|bj7D{iID13^ibB`)#7QkQbKgtE|{UL)Y zqp3L5j8t7X`mWUMn$$RgzM~SXn+sk95fzvlBZqCpajwk984=}40;acgpF^MLt(Lzy zqrMAs1=3**ZMwtx6&zB=HC7=q8wl_0jjiom(8R1rF5pf2p}_$=uETY4$JjZ8dNH)u z5c`VK$V(R6xqQipY{MXp4bG+-NdK5|9llgXm(uoA%E%6nb`HIOf2NeVv=Z5o;fqJ; zHrQZf_NaL3>2QO(;TRKqut%D<8k3^%V;l>UrSyJ+cJ~1Ht0n)C!{-p?s4iPP^l9}B z%uLYNRK;b>M`NqWk+q1F!AG>l6y8CPmKK^j%)+d~>-yrCbXdG?Zn8~F4J{+i2cd!Y zYI>mgZzj~R8coLF6Wn&nplR%R@6r%XE)BzTEpsez4 zHt4;2Bz!CHhy4iKS5SrEPBl*d97$D*Vwg+!OBgG#os>2d4WIy1+1bkx4`Yk#^ zp2X!w-lG0sYHHXEUclT@!%D{CpAsu}+o{K;s60EAWzTRAHd6(@t>k=;WC;L1RjF43 z^%$^6IZPippBuPCd zGO~^4pHjHa{)rsm$$DtWy44kMH}tTZ`NI*-0X30{w}c{|iT9(|%g|TgvNQeT!`%mk zg@Q35pZ&x|EiRX#Z3tZ&Oj^6;MAE9Z7(nL&2 zW*ux8hwJU5ug7g82#4ik@V>6=h0&@6_)Sr$6qCTGu>32GByBj8*gK=Ji;VwvXYy*O zO&+=-GXTf`-u?2=j_>WS;0N^DLYb7z92D)8Tw;CWca-bt?=-=iPhsgP&{%XMa85+_ zSf6N9`ozLns?_~g#k=`9zF9pKbRfOPdQLcJL7-ow3SQ`Qcgd_=f^0)o$iL3E_I&2T zEw}FgU%+CE(xTt{o;@}KArl!AQ~3C;L|*Z?WL97Aft;j}IKaR9#k*3biib0;SIi5_ z;5>dy8Fk9e?!Tg3vE`p;hFAf(;0?DGq;Mg=+P$q>d{tGxpi`d;pY|#dHePc?UK#;7 z**J*zewItrS)|W6gY_j>ywPy=cCUE2A4U3xL|e86Hw2^~m6&IH{R|}2Ka^8s%H3>~ z801!(q4$`h3Y}O8woC(y3HJA%Z`QDy&|Cgsoh*9-XB;0$bem`AqIu+4x}s1 zsqG$ZPUOfW-Xu>5f8rh?Qr|WmY3vT{`+Ou{K>)UM9{1G;X*g^29~@~Kcr=TZ3Cf7^ zSBt*QOeH3_2#v=y1L+|e=wnDXoG>S^|4!NtDGB2F=M$%FBlDX|C>>CqA;5Hb+YMRa zxuv0lrvSRh@3aStoNO6*SiHH;$KPQ`Nm#+P7?sEs0=YqweV$@aL|Ve%QBql@_&+o5 zVUKXJ-n)GiV8dlP``~gux>DOQ`oBe+inox|a?8&^3tQnY1#K<1uc7fk?FrBbD>QOl z1`y%@n5wi~QOUK4=FKa%litl0nbeZ}0ylBg*cR`~#&sC3VeR`US)KQEBbG6G-J$;W z#EKvXC=CSy>Dso|OHqPwG*pdDU(0F|Cp@X$rFN@fecN!{EF^I%z(dDYDULTJ$Qj?A z3>!tR7k_T?1>r+i6I5Kq9n?GDZYHo<#4>eysybmKZ8_BTW!?VkX#43Ks_@Xc`R=Y* z2wczDJD`{qj@?JgEVrXcN13a8wI{p*le;?n>}Y{XrXBKQB}r?5zZfzS^F8AQ!mk;6 z$Z&hXL7S2l3&F~HJ~;{qf1jEHN3pT_#IB;Yv4P3YfiKm+`L)FgXLOn!1mF7o7MO2G zRuF*nPHJ=}f2ykH|2E{kq~eu*O3MNb4F3u-5SUyjv%f7706Z_BcfLT(T-berES7Da za?fgzOoT^g3SY1_#jpfV18f%6Y9$F1Fy*G1UYh$KCx)XM6y^$Qpm@NkY2nMR={qL1*muB&P@_nS($a7EW6lUy!=jB_8}s{y>o zHoLxVf@+!6ChGAopB3zp{HteP%s>?8;1;#o7Rmy^i{)Y{(v|iZQSH19EJq^(=PLqF zy=$H4Gixm0Hs5lc0q%%H<`VA4El(`-*dr1ePNMm_AUsR7AV@l{6uLP~2|U7|jS^Pg zsvCpa(L})zG}whEz2o+ED7@4o9~S6VW`bn^(o5c>9%eDplw5h`Lk-0UUys}y_Z(^I>f>rOcDPxY0!wdj3pE7Du% zzwUxP3%dc11QoJ!Q0VFqjtSqdcU3RZe;F3!Qk}{q?C^14IC%4M$b4jt#dSufecu{1_>0j@IWH&3{t-+67Or^c zGcEihPz>oVYb9^rhnyrFO0*AGX1vi%s2c@MQOF;4=ND9BE2jYN(WYxh`$m#cOSsaZ z>^Z?i+?u>2Frv}76TYH4Wb&v0a7)xaHa6sHyE`8b)DDN5q*L2RHLehxKRQ3oFg@BF zJ_Ed)o}F~G+o2xP0iR`@BTq*c+f=?dT9hF0RrV*xCk-Zm7uP)Vt@B=H zSK10FfqVW zsF)W!BBnD1w$EFNHFZzEr3xYPo5OPNbvRSgV||?f_=`ot99Ep$CwvB#4CJiZ%tt}d zv?1ezg2TJO~|Kdy#O|qTsYcLHHOQwh;#^U?BpG0U?Z2^ATxcrZnQKakdNx1J3-*T2P3aQ1hBClj;MUuW&* ztK#2nTp$oXX{GVr{Ce9Sgg#hml#+BE!mt3+FDVQS=vgu0A2y(>W!k?A5-@6u&0<}# z_hK;WN=lc10Qfl^or%RKJDqP2eFJHZ=t2I^PLLNW6pa$9s&UqB@L)gk#rb5K{KqU@ zHBs_P>l^K9(+p*g2Ue*~bvD1QdVv|Z>_o;+&geg)j_Z!w8H&#GtZaIKY#Z+2cl2~4 z&GziBKLCmm_~!-vMZ||YQfkgFJE<~nM2KDPS|YXU{k3+h8=M5V_gFBKvwGRiP`zq* zxT`(TQpRzS|L|6-FsEdxR>XAOn+Bv?;?j(L*hw1FRhg+cbFE}Ne|HtbMlY?u1;oi4ApZwC_ybGFwn&rr-R5?A{WJbk!5Uej&0u8M(kgAk*9^9`V%$;to;G5q{WVz z_l_cr_U5c;ji#8QKq+h9mj0H^^07sZ1wxt^;Jkh#0(!mQg|;W7?@yrkx10OK9H~%6 zG?IFAwZlm(Pyz1OX4e*fPri#e#bJZo_%!|*XK^1ZgnC_cpyldY+c77=O=$ikxK6;| z1sr}=kZv=u-k5XF*JvgG@hh}aoIvpi98$GABHhLIUkh~6&VTr&WS7fSI0^f=v^t_2 zm2vr877+pI{rZ*r(r#jZ2E%mDf4Q55HbXi%Fbsa4&Sy>9so zOm(|JYqkN+l0H-2cP3G%EHJY5A6#xPF7hW zWB+WS*FWL;1Q(Z#j)~M%26F%&2CS=84SrN1f|`c?fLK~M}sM{1U~p&uAC zcLfw95$4J0)3@Q>rqE1xyJotr(Z+17tHE(_(WVkwM94S}@C!a3nq(p!7siz9W(vg} zxe4ux=Ru;8}=FMQP)Ka*iHn5Z%bbGXl9>P( z>1JCd|C0li?bvh}AFg}pSd=dhL^KPknN%kNI~h>>BbHYAhz*aFTCt^pFvc~K-aiUP z`ulF?BnzpLWh3+dr~mia{b>V5JxVXOSA%T{*P*eT1a8gOzMQPiPMU-^H+yI$uut%} z;R2t7D$)3&`b)8%jtL%m;%`PxBIMUY8SCJQrFd}WgI`BnN+8ucBrLL=UN7;6RQs|y zDH^hL(3HB#XP>a}1k_$TrW!dn)Sb-YTE4HIYN_5OL54^lWsyFm9NPVxjrIuO)AQSd z1@EAcXZ!6Zg)(w)OO>Ar=yA-#RC!wi>b}r`9~16b5d-?y7I{)v0n9KSwS~4eSNv{z z1=$uxu^EiBkpLk5%DA%q)EeQ6%mk?)b~}M#(=+wQJ=X=XZ97Hyd#rYEv{sz)W5df0@P5J|Ic%JE9!N1RxnLBjFSUKGm*Qs zB7&+2qntEX+GX@()Q5aOfpnFxHxmYgP2QQMqPJQIS;mOU^JPSBp@$=u9V2bBui)g1xl&>Q~RODr1xMKTFo{s^R54h+)O|3bA;b zpNP5r;ZJuvWftJh)B}p)e*9$--~kn4%Jt#AN20E(CcMBXPz4Y6X@ORJyx%Vy;BhzN zbcZ1o{j6yi8MYGteXr$g0MXZm23vbx7(=$A5o{}*kp{Z>TDC6bBtU;b@}a(%xw=`I zm88q+e_WqJeL7YK(!E*aT-(hBK2yZCQDs>f31Ogr-aXTZrdr;2!1{F-3m!GhrY$xa zc7NdMG2Ge_eiyMK*0HF7CS`(bgBX6ZsAB^Oq~ALv>Zz4i!HgEqw{lA0WBVG96 z*M-0(c7zEHCg~rY?~Ihvq6EEeuO|Kt#8S9{3&X!~F{O!Klet(4*^ECFi=2EL>ZrnK zzuQ>pNL;l9=QshyKw=SaUb4BKwenQt=Xm?jt}cb9ic)+J#nW#t`+bfIK51bUwC!=- zhJ&*&s@a4Por8UnC`Zk~o|;`-oQcc0fg1*-Bg56U+E=oeN2+( zDh%&?%B`Kz;CyQ5>~bKRpe@ApjEj200X~(1pZ^2NNE!PQULu%uUJ2o`KFsBHw>HLU zL-;k`0-WSs-o86T!ujPlxVn3h%+dYqr$yxp-;+o02^HWAFiB4Y(!2QxRPQRuq+*|! zMZ%S#*2UCwdvI~rDL3cw#P8aziUGdBkWgSRVjN3OC)zjt3H}l$G<9klRol;PtrQ{z zT^GEYdOSX@;~C5MUvEv>YQE|sPp?k9tJCua5vw!J8?TVE0qKj-B*V{RB5EHcbpMK6 zeGin>O6b2GuX%3piCs*8{@w}jz8LRb#Jb;X<|#gif25&JgEt(CCv#prF0(&NB&A-I z0o>u-y(y=VJ?wD7IPYiamNx41Y3fH2#TSwxMzUX@dB9I~!Sz#he&%y`;Wc|^gjH8i z^nfBxQ?k0^`|>aKNy{xFKze9C1$>q$YjAlc7` z`P`PKoB5O zGx7t@s>%;Zi#t=1kl(%{Bmyo%e1tm5Hqv61sLufJR{52l{}G2?dgfhD>|olMY^dOd zUMlvO@fT06YFP3yfU~2NZir)Nq#8MsB$z%zRWDy9!pDeLebO|J6rc*XpaJ+w$$Wz7 zHayfy?;XoWeC5&kpc3KP_W6O7vZauWFaKvJ4|jakmD|YDtYdEL(pDfpv4x! z!n5Ej=^gjB2c#>iz7VILalLm^wMV0!{P8<7euRvIxmREe`UU^qj-Njv=yix`)t$&&;FFed0Jd-6w*|Uw74)mVZM< z6tMZz_i=&r5u%i8{$+x@Sm?>=w;(lzLl%91jW{ zLT*1GeX#8LIJ4c8IsYQ}R!h#A-{@?I^baLv!>^sJ)%ib*dU54#;6zn}UOYHeT(`m2E! z*kH7;E7ZF0dCdx~Q^!|qsk2d?LUQMM%5Un>wH4-!J(dG%*BWJHOrxIvY`GE3XExN~ zQiko_EzdLe^@B(_QhrJt*!@Y2Jh#L~(<@R)!$CwuMQ)HwIdPOI9(h2ai_98Lpk^waExTgvHy>@L1Kjt+3>|WFN%ow=V?XI&L&wEj z6!kN;q{?EHpzV@skSf3%F)Fglwzw^K%FmajMTOYuT`>Jl5LbxfREd7suZDpGcGlsx z7I8d>Ykm9h2fdYPdQOp_K?eIaPNsq30&P3x;F38|4+Cy0`HbWpqIj&T(7wP)+n2wl zYoR&R<$qOPyOQpKV)puD4XEAI!E2~=w^|4 zTjJ|~lcY{e;4~cP3ImA=f%$>F`di9k&-Y&C;R=<`LG>|naoD5>SAB34GbA^`>%Qr< zm>*I_x@e30ksb)Krad?_2DR5m)BTFY4HQGT-{d3ZPmZ)_V(Fz)NY^A=LCyL0o_H`A zIp=OU2pgQ6n5|^Qv`qRIE*afeyq60PWe= z^Lw<;tNzHxISbuWtn`|lW&Y7?eF!$XP{)IG$r8&>lq2Dc;`_zB!!Dbg8Ei&weV4SUu}V;$8&L0O^Uo{w*xE+UC=Lo?fsX-Z$~u=^=EOvlnzoQ2FmU z)Pd1J$+18i%6bboTDbn;=u5E8iD&d28I z4wO|4IeoZ}aX|wb#vi>L>HrUPuKq4)`8I#`CjnOYp&Uz0U(@ae}p~ZN8PPB|Oz^0Q_$4RDDj0{-*>aoOA$Ir(xJw znSQex%$D4=TheRVp$fo-!qAghF#Q&IMS?8I8`j{i!;vO2oZj$${_}=?qa-p0IM=i@ z;!YC>r;4I);3v3#Q*q`rMPmfYX}s5K9k);^ zTLg00my8OkcxW^~m)mS=7{f8tPv zE#rIj6LSIFszgBaOvMnwvt}bBDOs?wZ-0HVRNFF|zIXe)j!Bmm2cBl#4UG?W#E*+o zPCek2?FyZT;y+O8=#RJ4^dCXbzEyy?w%Vz;!A&v|2DTHman-jxg0bJyBRzd$ties2 zy%wvrU@J;UZ@COU+oYsvCQPB^pVxv)x^dl0)5&RRxc;5qE3zT*QrE&+2y?knf7JMp zpBqFSQj&KFjZcQnc6Ao`H9lu|g4g>Gycr(fn6NVbq7IJcsr^{JRy~Zb5|};3WU}Hy zUvR;m-d|)yH-Wsu`J?2(?f}mD(u^aNGmBx)m(uPAw1k5rbhNJT| zoLgU9Z>p#oap2xk=G9~sMlOv2u4L4or{17w&zD$_AV_)JXS-uNo3Jf7Z(r`4kvz;u z3GmsTD1278&j(IQ0V@lEi0l)A1t(%oopXOw*71Ud#mNAkHdkRo)#a=VFNW8S!h9<% zf)dDTYFsUgXD`0uG4=~w=|L&%Mv?!d8Q^tuCNA)Z zSa7|;I?7@iQ}`=&x&mAiRsTQ|%`kD&caA;j4~u;&*9;rt5gdD9}ma|?(R zdX%W~)g1)Ox7Cuf8)bHCRrxv&klTpM==Bc3S-UB)$6!o@s^vn6pY8mYrx{$}1RLSi zbDwf#gdqXTJh-T3ugU)?vvEc1U6`#JqZVs1km*~)!8c*<7UVLVOX~=JkpPdx+B&5= zO}vtsKUu?YPDe-_?^K<~*0CE6r=Bfm51iytcFV0Abye-6gk6+;S+=CYU9;*MefW3L zjO^}pAIm0yms<7jambQg_CZ8_9*J_Pbi~iZ2q}z80Ig@#=CfJd_;-MZ+sF`h4WA{c z>1ETpO>|{5oxhhrX|*yQD)Zf6ypPQRxHmzf-Rj_pk}{W(>m=8^*fIfWp_fQvlh@{C z8s`%#u)8mbly8i+y9l$*hfSb!c9tcybV!FNt z3wG{o(iLg$(zjgNN+Fl281Ng*n?7e!%*44~U_*oB`)iR=hObiZ{AP6llChGx z69gycp4M8*_n58z8-!JZVmOIz5|Y+I~|I#%6UljWA=DUZ?4PsfB@~YkD5w zGH<3h@@x9MI3JMS_HjXW!$=C%X5b9XE!>z_@%7)w$efiT2^TUgeKt4)fa{ya zK?`4X^kP}M9ihbb2>sfTG`4PTwuv^-5T3n10Pj_jW%B_VvBWR0UW1-1#GF-B8CQDs zlM-0cQahaFm^pqxx=ojmaI~S^toy-Lb_4XkI_@4@WZ?(RzvHu_jv;4BU>CwFRBG>1 zjc%SvZ*S5iKKqI}m*&joXl)fY^=#A9aRD5#rS#eNNy?H46*~*NT$UXBlkOPeGUR^I zQ(EvIKn$jg0L5s@VI?dZJVpk*-b(fe(_Ac?#F!7otv<$gQX(Bv@qnl1E!A44ta^i6 zFmn4$-O&yQLD&15zK>E>pG-v8Htt5B8l>E`9%FSgEpeJ zZ@(`qk$V9Cors&b2nycjdAL5V;eK^$msdxkbwl91!&h3?N{rnZ;F>H&$M+3=%LM5k zc*nkahTaxF--Ql%q6&5ARnQ$IkZiSi%mr9A($@ z*DoXhhm3JhMJE|MF*eA1{Y2+^qUes9=dew4B1~kow2cs(4{+2UK~W+U&$KmM{@2=W zFzHr*42HUx$?ao0O9$wsL4rBl9m)1h zAU!%`p4M&$A*LAx<3nrKdQ!b1=Vdvg7;db+=B*O`0F-Er_J`OH>X%i}M^OI^sXWwla#zT?2} z4~SbfrlBy?Do}E*;Jk_NV4#1A7sfqCDR#QpFg1M8ug z%nLR6Xf%V-X$#!=qop4qWK>HOEkbz|4@%QAK?{?>M#ky)L2K_O#W@Px0_nX!f<&Hf$+;h#yXWQhb2BRtxD?b5m$w(I=}+jL+N-^z3Weyp8EP5WoVxJ-JT zu7>2ig;&&?@cPfc7@ff0@J zx&l&isX%$JPyhDtdHYEh+Q6BQrbom;x>!%d^SryJ8P|35*ya64P5Tq{2f{9 zSL#0#C87S!wBk8S=Y2onxxSv-IS5r0SE|CqbqeE@74Cd1%Ogf`sI&#I8Gdq})*%JV zi6>(+3>GMaLe7Ox%#NH?R|I|xeKg&NVO75iiPjta>Vlf5dkPreNX zs=WML^%sEWATQh}D&F0GxM)1GY|W^BCV(fxZa1AN8%dmc*n4;dxJ&$j_TsFK*%s59 zLi;0bmYO#{mKpvp9i<{nhN?*daD4yaOW!UYy2cvrHF=#?CC39BpX93_rJP?j_A*(W zjR!U@J_+aYAP!+fDZr)h`X`J*2OeVWgjQWdAm%*@yXNl=iiTLKlgLWO8Pyce#SBpaDc5>VW-)T@SZ8s3eNm-#an!|uF>plDDWVo zSlpv*&wj$(Pk^~sB@8-`koKtcT-UCB8#6DjR+tZL7TKI>#7Kr2oc{NV{!vn*EvI9% z&f_DJbrnu@m=9)1WZ5u%zKp@@R_z1x}y8ulU zLFl&t=|a86-SYbnlKvY;1 zR+Y(WzvgA$nF2Vna*Vw+$`91E?JfL8P6CO!X65528O;aNtJRTkQgb+fXTAUAhCGTH zOSCZ6lZl?y7{W~XZ2G#s_Y>}&f_wgAJ-~4S7U4yVF7L>ClP&?;xr>?Cl7~qxAs({>xGXd4JwGWjahk zkZE&uQ3@_<@YW<8PYAO0i~u)Sd&re@C(8gl0u1>~lT_+)^_C0oOYYA`9FvjWK)L{o z-$44*B4x!8pZI-d+LBgr`_h{!A2Kh`7nCG|8roYYL>sUvy^r*=gWr{R^lnwxLmbs# z8Li2KBSFNwnh9lqnaV8--1u8uOH-y<3@Xg54$(F#rg%O4EetC7PT1oCH>1nT!fpi= zw#dVCP&j|LjqZM1b!vip`YP3b|lad*QylMm}wE zJO}@MA>+y5qD`y+UbO&l_jsy`RFRe_md;+N4;guHw?y@|h6ae2D58dK<7}vL0FN2* zp|0i}cgmga(Y3W-GPEL8g70-~#-sH0wWo(lP>h&@x)Kf5GJC@b?W=s%F0}FzeiCJzk)nr!DRVl5GD=h)tcEA z`yultTXNJO3Z?EX$yErM_4kz8V9vT@Q86Fa3wH?=CmrE^)^o+nb}$0jP%rbt@+ zeYU(&G7A*5zkB>y&5@YuX{DA=x-m>@A`8k_Da~d`#e&6{3d>6X;6I3||G>(^?$u7} z=l&3WpeUNk)}8Cz7u|0s`;v`E2;NOxC|a2c1rUaP=7;8eXZFp^S(K%kJ_GMJ-dGAg z9T;Q+=`xgFO>er8IZ})2+40erKQX2zYMCg3j0PC=k+!$5oq~J;_7mpVh_( zx$pQnT-_tz^PfV$i%rE{Eq&9>*bSHLDmi&Mp~}GRUqJ1Tfg*W5H_dk_b(WnT$QS#j zi>F~In#7g3)PzT0HaW!sUgs#lNpy+#6umJj!-$bLth%Ks=Pn?YzEF$;m9`u^36yUIg!tC}1{_BZtke~Jj(nmH`G!@;i zMG4h~e>~9=aB*vTfpkp*y4!q4EU{oNEyNZ?66>9$Q?%c0A(FCul{hZzbi)8ISRE9Z zt~uI0{c~}P@i{<}I>2}@m=0~|X+cO%{qHQeeqW_m#l$@{7tz()kaKDkyBxM=%4vqO zZQZFAe3-Ss0xw|08LfLcSUHZ1xP6yzV`7ow@wI%-_P;KcxE^-4&2(vjVqywVgqIUD zkQ?0%NDqn_$?V`Lu@naDzR{ad#MGBF=?=E{DEyVAd6fCUNmV_$^ENglh6T)z?|eiSICr99yCUac%Yaj$fRsHk&_2{ z-|h>PKOqpWy9ZV@mfHbP#V6Hlbgnf3?^O%j$xMg5gy*h` z6)Z;b26%vPN%|KPyT9@GobxV68u%6)r9xKU#P%gE$FMY^{-;gwzc2N}1QxF*evX}U z?|a#!y5cEgMEMY5W*FMtZ=DSlHHD%;y68oB&zo%y$;C$WfeXdR>}uA50ZRd8U2m<5 zN-&ou_|61B5gUebwc@ekMm+pRw_9~&crIZmWiTlAtglPUzXJEGm3luiC@$XZ} zHlY*Vf0`ls;5IN-Q1>|O--o#?0~8}{&O+D5;Zsc^{Op*enRhBF7B(T{K&g#kmFhSM1e@3DaNujMYkw?jW%mWIFjE<=>F zObYHQkLkh2O!#I*J!D9z033g|YEtCYHS*AD0Z((*B_{f*(BlfNjEW~XagDDt-WA|k zFYFW1aMnI6dedykWzWU+b|fpN>$v~fxVIJato{L{PvkM9 z@*{>hBW8I`|GN6_C6&ba-JZm;CKBG0xC$3*6yU)PJkJRvUGDC_5v|5gANm)RVf>A` zlZ0==&qm4eL;C@4@RT`}-%J?R=ZFE*;_S3GFBvc$$yX3uAGC21=E8^vaJ+BdN{Z4~&UY%>NCJ-N1hEC?#6g>4PvK$u zsDZ0pryD$9-LX>skd9ErWBs?n#&6A%#+f0v>u2On){ZOLSuvfo5s;3HjuMSx?a+!i z7gUA$i1EV=S#l#EZvv+VPhY5=bCCw%?~?2gn_~_6^}i}zza5)BPd(n#rH$rprnTqm z1muos09*j|W2-kbG(jo;lf_S?@oxACL$2y<;rB-j$?dJ0VYUF*ZipYRtX1;ccd_dh z*7;`HPpIslJLw;ifXC4VdxZZ#1I_>ZT+P}0VbjgH&C#7k6DY$^xat^ha7xSvozOT6 zB-vh!AJ&0%i;9eaZC%Zs8VriED$Z}6%KushpkYR~4#{!wWu}?H%|t!ze&?SzNV8rv z4$^*(Af&@6U5X%P3?cDJn~b)(KVaAGOpOt8^6urAP?GApkVmS&&6Q?TtpN7^?F5eP z?=mw&pcpTQW$d^Svp)g3iuTl1^}X_J$01W;d|#<3brFY{lgj}v^PHr!)gN%XN{4RM zjlQ7=VKgMJEBkZqpzK7}Uv7N{;FH`)_a%wn^EL7Z|s#Hh`DHj&AfL)0Cd-=9A;wW6zDE*}ZtsJCg`}Gf5s$)fzD0=jdSjdY& zde=aTws%b%DqhB#10oG;Fs+?E%?pg8#yAA z=yc+Fd6S|j-qf*n8C`S7&U>@9AY)QcbwaxM8SG()#`1kcTdB1#)VdQ`&bNE?2;k!~ zr!n=+Fb&9T?b`>>n;^F|(gfLI`hRg^cR@SR5&5Mg|hWLjaPP5bpyk|L{0M3>Em!gpXvYcnCaQ zH<&+3WSP54_F`t!T+$)GPpO5I3ST+c2GR-bSM|T{YmHB@{6SyF|MY$8*^5N1ZhXUh zi>Pk@YF7~8=@XJYzNzqsVSLsR6@MPist&sRORBBqS_foCD73G@+hb__017|JcGqGA zzg)@yV|z0eb-z-@bno;+z@pl$x*15P;g4^h^}l3UmCcnSDrBV>bm9(1?uKz-Q~5YY zyDcsaaDfsAvB>DtGA?%B=P7JC?}}mw@^M6X7|TZ@vVz{;C4f&?hFK4*k!l_8c0YT) zLFgWoJ<0PjaEP90XQJ-egSO)Pn}e!Uy35e1guOK^6E8D>Z_4Kw z-hScJ%3g`x4sPh{VHv^X3{{Apn{;>j&eW`10B}i@Vzr8R$oiW!7T=fo&mG5+9*C}4 zlj^}|h49x{#c2SqIr=`!o_vZ_=-OXIDF4HvU3~1BHotj&dlwl2zmpW)9n^{2v80y@ zha^rBt@Fko#~ieYw?~;aA-v|U!lxBX3j^s`DG@O2Q#r(TzoT^jP*nNk&SH}}K#F#6 z?yMuNrGl=iCe;aOT6Ta$Q7ai)G>| z-upa4r53vl)A-cP6Tqc|c)vn4zyiLJ#_vW2RNh&j>x4WT!pIK~;gVZMp{TcKtQaH; z=h&`*eFE}MvXYipgi220&6%iiq8Apn6V2jmJ+$r48v5Hb?@HjMe*9H4HUFIQTI1X< zbtSmqdAy23Ov8Ni2Jw}*Y7x~DEM{wjRbAF@)NmT3QeX}@$32h1%!M=6DQ4*{@|5yV z5Cf1Npr^XOPs%kjvFiTH!}Z-`)Nfd-K`xOaH)9f4#ri@7;EQv^oc~HQNndXfX_Sdo zX+G^{$A1s@{BUS3{rq4r2VMjUY15wQ*#DwA;@l1f->ec??ELGZw`pY-ZF zOuEPNJ;0;?T65`^JxKmx74qf0y*Os9%Pnk>m)%Zl!od2lPG<-3xlAuF-7K8nG0$G; zPC8}YXa3wep55C22=q@0*+1td06bIho5_878oT*gu*fnR;cz2y_$5BN5xV!Rg}TXv zaSgzmp)&ijqD>{)c*Qo=$eLBOgw1`b&wa-4Oy;;B*8E}to-g;+C7MM6CJg7SZH3gDYfUshv)yC7u6hZi ztM2}5n-2a}*Zvmryk$cDF?pEVrf>7hrDq?Pp8_0;R)sJCuUi7kP5&)8JCQrmSaxPk(d&QhB4i8SYY!f@z!~(f+mjXKH(6 z8YcYBPv&_lI)IC0bPcuai?UDWVm}3~aO6y(vF%IFAj8c%=nbJ=-jM-(wiZ8Eprd}) z%$<5ZrTs;zE;_nd&$VLbWC25q+JON4dW1IZMDG_OMq|#!Lga)DjugYAyoOLFc3(zW z(XeXPssrgt%Z?S4rm6j{TuxX^i-%Z)%|p2gc1gUWuJ#q#_`x0kAG+_Ip7KH8kS*r% z=~^Kc+OQRg)RCq?^*DuKOxBsR2DpOc;kko=>k)OB0>IzQ$6Z=ZICogH)5(aRF(=XWAwQi+VMXKN61Q>o8$vstVM5_8*zHZfO z`LxLb9REZu`W|VoH4O8ngDRSB`pMS)kw)#k%9G1C3-9*38Gui@w(qyjEdF=Z|hS1=@V(0S<{*t2hr+IlT}XV}>~YP}DznPNvJ&y~f()*5TBoeh2V; zR-B>UKiCbmzvQZqq3zb0DTgbKxfXW%rpO%(Gx)(N#I7FoPR?J>%2}SaMxA7Y+x0db zE#+Ec$RtfO+>&oL;PX|1n^L&ii}F2VwnV?(5J?3!bY6MLZz#C5?Y2eQp+;~(F&->= z1cfOz%@s;<8UZ!?aD96Zt!*B)ADe7K3BI9pgAeXVrdAeeWOy|)l(9n_^v73ka=X*A z$geb4u;TO%QJXb^^w-Jkci9x5nL~xs-j}5)vl>9q-RsW#{F+6CN`0P$zy`SSlfzjB zy_B5Aq>{hx*N1#p%`=QmJ>>lbxMuwq)1793)7P$!5>ov}jliQK`xcUw$j;h5rPk_+ zF(&o0i0)fH3-BA(uHgXsYIGZw-I!V)Uk*&Xp|-0HE&ZNluDapB^k8#UUZwGjp)VVv zmPSgeyyY-1fRT(^7CzM=v{2PQcBo2W(emwocvZG1*i8^H z;tRgtcmsIa%?#5%U63ZxxOA~i&u~n3pLw#0)#{#B{UUY9vkTZQIbGK~G6i{lze=Q$ zA$n^iJ!78VKbb^#`$c?9t1K|I52UNNDIKUN8qJsFI7(_b3WvM(v+6S>y-7JZ&auaJhJ)9eE`Vs8bgB8o@B5;ag+d`Rs6bu#MC-6X&wB%bk|F~i$*&Vx8tBWnW3l!xc>5*KI-^_et^+Tl-k7>QMsX+)4LB- zf)Jl$W+np38UcPP>HLr;8aHERY*gyBO8lKtW_b=98jweGVICufc% z6Fu-&Rvx*IW3>f1`cFk1f6-fzlzuL$2l$I@t89G)3;C3)z7M7lHPK$2W~wjo8g7{W z-Cgpx4J3dkWNxA($q8Oo$H=$GFm^C25PSL=9=)hqV@4j}zmCNLd__#!qA2t5$A>sb z-VZQ2Ool2-PK9QhJP(Gi5H`MevDs!4RHp*(j3@^Gd^4DwvA{ z+&l;CAk1KyhSd^ktfECN&A`GSFtShYjXCp<2>*~uI0c^~a%c7rnK6!^2uKAtvk06P zwG*XPM8Ke3j4PeQ%Kn{92M+bBHP5&DpI`5lP`sz1)Ee1gtdf^|7rnOP`NCg5DGM}! zyDBDg$q3oQv;H+RW33uO*Z;IT8J$wzI_;0iqoYdq2jI!_{X&W!x`{i~ORJkpcBb38 zD2q$E`tXO{RANqsmf-Gyy*!nd5WkBjy1yM#W&e|ou0~oD3^^3;#t3Q{l8E0Ckp4)F zJwnxl&_Y;(p`VmZD1`tsz=)f8DA#rH;CRxsGYN16r)!g=b-dj?B#X$@*m5%`Ii-Rx z!oxC*u$Z!DgP9V`uFOZMB}1F}Xy+o!58&huAq$gs z^KTa3cH@luKj3U(Myw}=pQ6teJ(2(L$%2RK+O(GNH9~$eCNopG`}*bWK_{?+^>`Gq ziFV3GO9{n7M zHAkzqP6B&@h73A!0ENS9a*c z!`&0jEn(R{%} z$}$CTH0bv>I&Xq9Di=D6WUmM2`I?k+LQ4#H%i1RUu9$G(OwZZbS{0jXQ;(Scmrei2 zOMUq6A)Ue9d(AkzInToKcJTf#iZ|yLkUlhvp0n|7$2LzJ=8NPI+0P#P6yE5y4w%C> zpqRT5{1}vAQlm3{1cnof?HP^$2SK{})%}3R-aoe+vXTIYUzNTy${(vkPZ+~&CATe? zKtSms?>Js$YlAh#&^iLUrSF&__UM#uH+=+Xr8CYs?wHcW=oGlh0Z8s0*>0 zPLPby%VhUvP;JJE;6oUy&Vh~M!6_??$Y!L|Q2HP2K~%@ixNc-qDNaC?S0iZfQR+loeG}C8Co@- zaJirdHyEU~a?fBbui1Sq{O=~!2QCMGd}o|+WC>1gPM#`GipnT|GUjnJ93Ffh;1~$= zUf=Zr>5`C@n6i+w151KNo;Y%B6T%-L_tLf7BM_0DS#Z2ef&ji<%@_MT-HoSY!8=;; zoKpq|J=UprCb1ohvc7N4gt-QA{6Rbx#6`_iFSh^!Z~bUjf=&Mo5C6?y+(Eaz9@N1! z0KYe?-#RT%QRT;x`LgrroTS&9;Z@k~UH{<^!NW+lVhVs;AmbYuDx7-hMC#7dPx8h7 zol-rnQAiX>EMat?ktqXbsRQ1g%YW>va@R$**unWWewN`9E7LGci^KHsL3Y#WH2{|@iYTo>&`TpuAJE{!6yF_^sbeg0 z9SbVK^CwH^GypGPsB^D8noL#9Pi6Ycp|KlY&x%2#N@Vc@q{P)70xmedF#0QeC+=EPq}}$T4itF*BjIG&H}_@YLwNR0MeW(m{xbH~Hi1 zZ=Pqf`6r7V5{Ssbz3S~?=b1c(B*hMZ_pzbXk3x?QLs67lF)R$vZ7R>O3&hrXi$_=d zXnI2d+n@D;VEY^Emk!EU_Okt|eVNxB?rA<@yOF`}Uno>HV&IUDh@`f8*s=8k@d0jJ zelLz^-X!(!aO6lz^|MBEGr51xKru&qlpTA_(A5w0sQDH@OBm7wFvpMP+n9D>q53%k_vJkXV+vs#4Q zP<);|rgR!*oQo_OyM((b1zWd$3ARe2zH9SFM{)QxoKlC$0o8X8*?M0rZ)>PWY)JWm zV%+#FY6e#z%Ny+|f9wCjR7OVWhEVD}FUzAvOrMXErw2F&b!h3j@Lcu=b73+(sV@2cDUdoA7RV6_X1XH<2n&M;0Xn1}xg9>Y%5@W45t!Oadby{rO^kIdoMf0#0&&Qrls|9;gPJpkgvlK@zGkX~D#>EP_Y~$|pS?v7l6vvng zP`VH;ZDIj9eWkBdap*14$n3x8-^Y_iF9qUlhb6?49cJ&Fw||!}0o=Kz&k+-5B&?-G zNwagJ`{-y+HziVl*Hq*|t8s<)5(40Q?_ix*Fx0GiZhap=>X6Ae?n3Gd5}@q!Qu7k@ zx@LfV@;`mjkr#ag3a(yB@uysS2zlT&GLgD!Yw-Bkn zo_=lXDE={}Fuxfiep=77IU3xWdk~eJ+lVE1I_z^HPmX-NV-}i=Ijxt)$|{Jt38Z}j zF9NY8VGf+Mz^AHItZyTPgXQ@H7kzo?W|;_niM-G%;YPrr2F^h3p%n{>%=S4{Z{08| zPd<*mkkChke7T4;zpw7_0=QAShlc3jV0Od|$~ULc85rSu8PTbe<=(4XJytO&dU=5F z5}(-N*AsfPb90CO&L!wT1XzuaCq^qy%cd`WH_oP8Udab~A zgE(vP-KNI!*S1M(oDV#hoYgkI!}^zEjFV9u3;<^rp$|-ya#*s>Y`T8ebf5WH)BEM? zc216j#gXqKI!z3~Tij5D%1*F|%q(0knqW27I&YCJ(emm@B9StOt%*>|0{s=2EWZKw(LUd z)|IG9@E>USIm<5Z26_dhb5uzK*s|^dtJ??syCFzxt0e zxmHemJU}|e*_Fp152!p&={oBoVT37W!W_k_5;sbvY)J~X7H#m=XO<{rZt_r4wkGz| zex38rnqScdb}$*d910Z|eIkD<1 z9k?B3hd^BVSKh*VyMfqhh^k*oe54EGRkZ5GNJDmO+Y&(S!)al2^m zR=MMP|1QZcnMDe_lH*fK0Ztjl*^2#pf(L#Af8|Tu=X z6Tz8M-6G^2O*e(QsQt2NMqv=!>jzy;8i`{LZiGDjh^PFuL_+!@Tm5WQ7v_7AI&nDn zFz@Cmy1pa&xRe3uf6;K*7$_jqGpRi+b0(j{z%h}zU zc_H&moycnZ=OP)aUj)$y1|lwm7zHK8Gn)Xv;^xD-nXPe4UlOsYUQ~GbXoW#Lp-T{u z9sHAtkPjJr8Giw($z!e6LmfW#EF7J{eh1cP^n&nCH2APbqd83`ECWanj_cR`>YzI5 z@F-rVja_8^@2IZx-YH39nbr+TFoqeNc7DBtA*4-SE3R3Yv&VKD+Rf!R3sgt#AEMP` zB?Q5yV zwEu$V{RM7I_Z=LsZ)>w+NDu@5aYhegxYDXq6{6tf;1QDZ!Jo$FCSuv<^=sp`5WeMUS1u@x1C2%(! z8su%BI?}&e^B6%Aj)0 ziLpli6H;8b+gAhqR?9|jTUi`=bfV&~#`S>wT>;>BfjL52j=PA4tAgTcMs<0LNiNAH z0$P6~1U$tqM|1Z9F7g%bXO?(DGrtbb&lD#JyX%agnIZ}2r_z1tW4n9Z5>A(WgVDpBmn8?=vG5X}d9`z4fOxPWLI z1xoAypN7a#4nC2KvghrmoT!Dra@th@#|X7*OE2IJp_2;9?V;U>fGENh@kT0Z!5H~f zPe)G+_G0W(o?na^ne9|!ty5tpR8 z=Q^)b4C(@EwT*Qq*18dqpZ;v>JIh>Cz9VQPdAF_}83puNf zrvd&_CAFMbA2L5y{99gV6AvGPCcQF+Dd=*x1e>GMuqqYc{yr0EP6AkPx`;Ny4Xd*m zxlh=Zw^1E&uy9y(^~(sq0p86ZPzIkPsJf1qJB7a9uFTU7?W5PWTFiGRqdb%C7!L5W zM+O~hnc^44b@?aRiVBMBm(`^+CpgCZ3WS*Fsz`8#J@kMzpu~0VC}*!FRT%!En{?>7 zY#WzEaBsVp{)Ji|>{1g_S8+GkzBc{ZaG+8#nPNnQdiP9{NC{%^M{m5qIjTl0Z_ZMY{QnMw!B*9h>_O{G@-j`uV=T_ zO32Iv_o;-b1N9idHNR5PRN0!Og}0J-ul%DbTCy1a5(d%2q|%Y07_^`E1>g(=3z*~m ztcDcVlz-w$i(AX(88nNOX|T^v^f!$mZ@~0IbwMAOnik(rFY`s8spy%s?au4y3u7z3 zsPN3J#94wP5yi?eH29y)Y8QL1uJr^5CcY?8gcVI&bP@TurVpGdDL^rle<@PvKbT#k zKg_#7ESc;@`8r~J^6{2Ha9=|lX@&xy-l85QvFjz3J-exoUM2Sr8_JDgBgG?9Ff8M_ zWAfm@f%C{%pUedA5ix~JsqHxi9~az?^p>Lr43i`o=Hs%|EbAo8x;A;LxEZKl3Bg2#NL2S`VL2h+N=D zMg|X){pBi^%eW59QjNZ`=~x)x0^*Ivt32{7UT-MVAx}p^Z}VZ^d-@4acWtgxN~Y@I zMF8E|vAIr9oIP6+KM&JeWdi@fTYl;ZQJ+n9J;4EtjfHldL5q;?gHE} z@V7bwk_-Wp?T%z?#jJt;zWo`*F4X4R0WpjzQ`0@b|7Juye&*$&oyt6*&ul(Xr3y;c zca2jXmPNz9It$}!2Y9HP7)}iz^}=w#!9Ov?-Or^qcARNMG8xzSy)W>DgC+pqab`z- zqB<~bLw{vZ-kSg2?nEFKVU_LDf#?0m@9d->&q*1U_Nx4s@8>n43$Xb6aD*bmbSJ|%et(X9*h!B>xIQwG8 z4IV9Dj_LQqdH|mJDPp)`W*Mt0alYA_ zZOe%6-(S+tBdzsvceru#>vrHQHL=l?YTvtrRqVb1o+cMbv?h#75trQ)6WRx5<~L$l zC6I2nQ8l;Mpd~NI&cJM z;x#0Z5k`A*n2}Dq20j4kk5uGrJ^b*nP#;64I>?8)RdPnObYbtHD_q%(ElEYdOH6X% zT`4w(mY$peap%Ao`o~oh!HdU*+R!A*+J_B@w^blrJfd0Ty_A_2-&*0OS#tyf@9{9V zq+Yh!JGlMMr#u-!fOmbxE>Qio8oFXSjCn(Em@gd0dSU}-9O*%<+}XCjmyb;n-2Z&SsbCoreD~(D zWQY!K%dqzg^(v zydl%(%(Sh2&>m`s*L+0UCrtm@IE#LOt2(aj97?Iu|Fkt#cWnJDfk=h>LczV|fFvMm z!0M>Ipu;|$p$57yZ6r9GNU-Gc_d92Z#XSq z_&`q3m5tODQ$8L&9`?}sFTBScV^SE+dSwZ~X`GCcX~c`ES^v%l#fgiC(zkhrOZe z+t~pUy{WBlo&FNwQr1dk4Uax{^4&2tRPI!;(6PE>+X{Qj9pJUVb4* za{BM4HndE?AJ`LMn1skLJK3bPwR3Lm8fLRq1~TC+@08}$$GSGT9iFiR=}Mj?w|Pnz zG{M?QdVXaupVCLnMDb*Zp^#|zxj&cZf_DOLUnAmdlttGC)2xF{<6{>IY#|~9PUFK! zo#KGeJ}osMT}QM^qz&EBiuJ!&ZlkYJeMJK zojr1VPY!vTWBl2Dw6Y9#s z*YKnF3XmS&H8zkFIpiU7lc_F1ZZo-t1Xdx73!XnNLiJekDoA9^?ud9`KJ3L|1t4I` zB!G8UJ>F|BhJvfSD zjoSNQ`U?;Cn%PT-fe$5Y_s&C%BHrwB#$^0$8B%N&#h!=s`29Xi^TQdyWB&jvDi_6TKD~-f>2>A1UcXCz=;%%}^9O104UK%qQGEW=l@946YF7nVd)$Wt-n)*C`!arQx=I2aD00b^LblCdPaoO8bV0Q(mq+rS8{FjMNx5 zo#R=HlL|f-M4^D8d*)Fo|N60sCB6W9;u;!jW@L}b`3=v$(EFztIdG`B`-FdKGgDiY zlISEj74d!66F9DztxRqMF~;XLh(GlLe6$hoN4J(Y1_Go28M)&;2aA>Eokl?#?1gp8 z|J!tAKReH)rCfPXO_y+VMu%1+LV^zU#S zp(~$jlF4p+sVLNdfUC%Q0%v-YZ7NXvrT<3xy8YaKBsfQWJb-@(B`g{LaBDe~MfWZW zNdNf4{PY-TlbhdWQ~R@kQ^RH%)<5`o3%B_1>hV!I%OJpGFI=O_1o_+{>PCfP`nqBW zsBMP!-1Rm?A$;NCRo{F8p2`+$aau;AA|k7<#v*- z`n<#PcaAbvj31xTg=A!l^&$vdrnmaueeUXR28w}-j=cZFEBhY01$*35Tn~e7y+BVv zjaF8a>jEQ^Q(79}@fEFnE0zBwKf9F-TpoAmi7Mt=2n2c*y06d0c_(_w0NlAKVCBQ{ z%X|O-eig3yJzFZD+Gu)+CP{suw4~Y9cL{BP6GouXna-aG5~a7H7e}1^_!(6tr^QTI zE%tqfrhDuhoc>Ta_YJ*Tmmzbh5>cf$c9JxJqrl?JS##nGF>B%WX(qHV#=_Lp=3Xv5>P)@1 zo*;36Uk{{*mG|0%pC;59!kWy#Y)%fVe1}YyzLQH3*!uyyPY(7oBN-(YFUJlGJk3%% zWkpVhG2h1?93nBR9yr@n_1JB}=X}9z=oXINqYi0*U9wz;<)RJa;`&1}ok z(KMiS9-_==WSHp?U||G1j!{?LKh?bLqrw#U;T6)@C-vz(YyWop+)X+eKM!jqT>{1U zC+HHoGa5c#NI^IqjUz_MX2hBX;_WjQ;EQUonB_FkA;QumHnj<$w~r+s1#-J64KP_ zM~G(&Jzpf=RPY@XWZ~;Y%)@czC@YHAq|N4%H~h+1Cv&TV%L%;qge*)&Krxw?q#G4P z>ovVP-{#QicO%#n@b=e{clS8qq8fwmDLnzc&2{dK${w~JQeIVQOtb`p^rd1rP!Ws1 zobLV$HFOTR&00qhng4uAlIc35f0#9T?^fBu<35}WvYq?slc z7%gf6p*7}5zfF>2FiYM!=kdzfS5VvJ`vxTle&5&_2W_ZPn z@h}1$$El;=>P0-=5vx_io|@zftCx$lhWr_3CZ{2H4OG7iz+tT?5u7p>;rD3tV@cQd zHxv>XP7A-K4x=fsd7LYjR}3A*1~Wz1PuvM*9^R(`nE4S?R)C|i=-S89(U9*68SL*r=Qi7` zIkR0s9X5?C^RAg&34l+{W4~~Q64*Xt7S<0gq0X}mH?fW*A`5auB9XF)6BBj>1L>JF zdw!}YpVn{p_YMu0PQ)?gbWOrs`fY2WJa^@j_`s#C3LF0*=VWJkb<^(Wa>%H7E#q-W z`;TDmsRmB+e(x1*AbtKPba=XSV%)Aq=jRvJ3`4`7rWyh5ugJ+ilSre8D!{f=I$=^fQDDa`Z)y6@dzJm-9FFL8vHs4$HF8e#362S{M6$_PDD-h zbL;*~V$7zFcMebtCqf+()7lzqTbesH50$3}-@RTuCVwN{{4#GQS&~?QlBi|3z~-^j&Ff@h6b3vV~_eD<1Ifng*r*j?3Ql&T(DES4grm z?j-KN!AcsqD=W;i(R#&`tn~hXjhS|xh{UaDbgPPMO0i*Iv8#a2o(!b-aHm#un)_ku zTgv2yy%|)vlKgy7IAn)=lgi9%M#;wqIF`@PK?Um1k7(xg%iZ>EdBj&mC8^G%fl_=elwBrnF2n?zjW_~kyvR>;>Ee`t{zBY#N z4uwv`A6I(3}z@1NfJ-y&}{2=QCCSQ#) z~^dK?2;1cgf*{*v$ z23hO(?U6?1*XMS*{Ei<0x5rIla{F9V1CbY?z$*P%y!5zKR&q)}Ob0vFpN-FsPhpow4(wKM^WQAJ8L~TSb)oN3^X<|@~ z52L$vN3)Xx?*t*wcWSAV`JT8 zca*ellHt2Nww#^?Z|h7IS)5_{NWq{a15k|5fzeU5-R~f|{Dq9e{8Md4%!O?O&F^m$ z8)J7k;pDFXpX+1NP8MX2bb-=O6?`Bm>;C-jCU`U<*6jI(bjobP4d7iq#p_)dh?QB% zp$62thFPBy$K~0hwcLS(;US#eYxp8~vS?WahY%+EUrlzd13 z&7>pYM5n*w$1374xHa0(@7IrvV~O` z0Gw<=Bs^DR9{LO|syrC-4U$yllAO`YLdaKtCICI22b}IJ>k7ok`Zc{EHt|RJovb;% z=ylu0dYw>+g!yHRsr!N-)5}<)qCmDyO9tZVb%E!ZIP0I%kmttVNN^u&p7qo>(Sc&* z+?4j*F!p|$MRGuzpNcz8x`+;~+9AdS^UzNSGQ42|TsLUvoLsT(U`pXu-|m(#N&e4l zoGNjXiJK;b%#Tv_9f0Gxx1_?KMuF%Hl5Ha`J8-X-wo zLAn1eIgTH+;q_S{dxlU1G|I_Em|hQ8vhJxdz}X;7;xW(!NlfF-J@o~v4AWBXFjErCLE#2fcKK>~U5YV%8^Bk>aO5Sk8P|1lezVQrz0Vud^cl3hX0sB` zzBUYsfC1;gM7{etjCki%b^ehP{}5qj3*RsJ@LS)7FYd`2$kx4q^LMohCv>fks28}7 zb+nbwdhV6YJ^nrLqgra7guH)ZzNZ1j{LoMl|HNip`;kg7=O(5^NX@}kfJf)}Amwr@ z4nqXe2;lfie-%f39prafXu^llWOLm2)~8|E?-cTSRv|kSkBIY-0Dq?^jvI^2(Mwt~+j@IH%60N>Sy3Bh3r4`H6Eai(7$$#sLZXuaR_+5Q-f&*aEW z2HrRn1Fa6;I7Fq zr1|Sm@`%9sO{~)Wt>O+3;JZ+o$?2DIg?Kg97)_*d*dh9&TMxLLsup3ZQdFyz;6_Mv z%;f~(u!>RlomcQ{7vTkl^e@$8$AZ>(Gpps3E(^gx`Ze^V&HB9rgf;iO*CfIl4s3_n z)5n9AxS6K*qsLkUVu1h3@d)mnEyMM>Q!o7b{!FWooZ7alWWmB|5C(4>V-%eJpg3=( z%1&DZwn1CbjuA8jC+Q`za_j6h{=2#3fc!fnl!YFGEuWk&!^UWLTLB)Z6XB^6h1`m6XmreDA{&76++x zxtD`)%mJG|z>_9kPSRp`dzf1DSVluVq!r5^iqjC>;s2$1Eof_fJOH>Xf{}BZ!Bm=ECaBtwSh&pH)$LIk2*K5^DREAi`t>{^Co5zVd#2OypDvjge7?q zrBy1e1h_!p;&5)pOaN5c=L$C7Fe2`~TAjaJ!Q=Qd4VKsBXI}tLEo&m>z;s(5H(9EA z7R^-;-QAnj?u~gZz`r1ZQU3Egz_%>4!z^UjQ!mxLcU2KwOJ|P=HnBGyQ}|^fp@TfD zegm8}%Lx0)QhJGoPSVc)gQI8##5_JZWnN+Oc0_puk0#jebKJsjdqs_eo)VI3UGEkY z9cHE8EN1rQVuz}gv=;ZT0qJl`VS!}dq{bFec8Lh#zKv~uD2^z?#a)%i=b?cJetZTv zboO2PhTPxNYmzCw8HplG3W4D-XZD3cFH4N07#Oi&PXIqWL*)^e2p?oPOC*iXIkNav5k@{Ze_!Jw z^HbMe&E>uFQ+_9FTG|sppzRx;=RpeJ66*AA`W{Gs=5E+vG}`{bDW`OjN2#135vR$N zm|lwd613t%^Bi^!@GJ;~j|h67GRP^+vhF6K&uIR-2Q_x=HXb?JweK!KgVP@ls#h2a z5496pCA3`Se=;IvRetebPbRaCJX{qtuXCw^^v*8%f*$`Fd%>1`<#O>&SW%h@NBQe% z^%SfqDg_fd@Kg2u$hJoVhZ@Q|4Z@@UQKsyhmiI%o7BK5mq4>;_AmEx9}~NB zwIAT2@~8w32Q(smeOK`(ycr4U!<(6$Icq#!1`q!X2S&hc)`r@T&1%DS*R)tDbtI8z zvijM8&rgJ9T2!By5){b@PJnbvO{1ht4sQx3%la>OP@$^9LoRpDCn5FY+?{{yW@*6@ zp!m0=Ow6<9=j{OFv=I;oBX?eJy8)oX_MLA4X;Z6H0$!U9gMLPOz7LXo+mm*rFH zUPX+NB1C?mg-{*WY@7$c(PSNquC`+Rew1gI6;+AK<<-GoRHQm-#mP+ce{k;81Gqpz zRBmw9AmiE9n|A>HmhAUVHCub+#FH(s%D!2*XPXgq=8Wrc28ULh z?h)$q{Kn5u;Ba(Tv4)WNOv;Uec%R22y&XSJa}=#z5mvx4rdRSaE({!y{^{$&GxKKV zFnQ$I#p+GS(Cx@a!L?OU9lbgjw4ATs!1ErzA!wGR>phF3*>pMfB~-Do%1=1H_8$ej zhdXN5$6fHH@b?OOH`1)vqgfxXiCpPa8j|KwEQ{5Y=ruxr5mXR zw9S0jHtn7t1|6my1W~TvbmEN7Qse1?+RvM8Uze3QJP&%7xJ4r0YpXgpflPzN>? zHO%bqz>x_2X`Ue*+WOtXHa+t+8PZ``MovbFv?g?>0qaRMvK{yUDTSblu$hSw5t^&J zhGNGlnN5-8@qSb;KE&54+P&^`1mY(Gp`JvEbMci^ATO)iRm zN(@T@&h)-%OfB*x_HRfn(c)hS8V#|hb41v{ z0gf*;Qhy%EBUEN48Tx)&Fg@7dV3Y)oQUKN*??oXN85~8iLHVfr^*g0e)kzct9nNXn zYF;rZqrdHmD=%U>FI;s1>7lSz+R8z3q2bCAm75Rm{AOGdwMNB}=R@3H1U+7GkpSK< zbTQ388!9K8T^37|9P>Idyi+_YiRdmqZ6IIxqzYaHPdxLavcGa1BM2ud_Lz`=i(+0C zeMr+hV&cFTKcTh)7fP3#z>Di&$|ZiiTmo;UpP!6~JIhnTivH#w$yAVWae`mI*y~K_ ze-H>|zIS6%@2fuaxSHDrs(OgV(yo&yEV4pfsR2OZ!4t}mGhWr_zXXhDV&+hw-jXOGl$53rY%8eV;UEs|Zz+h4)vJB|ti}yo?l$zwIlF z)}PlWjNoWJlPBU;GvhL9lGgk5YP0}=ldS0O@SB-C$50>N%S03&np={iY#(tJ2x{}s zNe~Lz0X*^ioz9k>g^qLv$F$6Q1I4%M4#VWne}_UxCJpvf@xbk^lJpA^(m*~|gJLN| zf>^8Ju+-ZN`NaFBXTqb(@A=cFK)PD#K|UiwNy?55R&d92O~=)hnr!l8WQG8Y9s8a` zALg+IU(B%Ll9gYMl&F$gZ({qWvfSgf zYtu?+(JnURgs0*;wS@wt|Cy3q8q{10NjN)K@M?5$^GkvvK$^LEdgbSz@clJ=2y*)i zM3=8rwCLjFGsRs=9xS$XLrQ>+Jgg!9NnN4m~U|b#MyB5^6%6vo;I`W@7sQzKl-v(*4G4aM5ARn{Fba)D= zW6hH;jTl5M`Glrh92cQ_YB#p!+~s5`bT6lwG-@Ub0C>tQ{H&TpenVLq4c-R@Q&gsdk6*NFRK@zI+^XahPPsr>HXavm1R1gz`Y=yWX1<59EHUk41F=KVL)BSqn4O+ zNJ+zHXEsIIFzlMcApFzGyZnzvl0*HTA!Fdqg!$ooAj?I*!s>_OLv5W^x;B~bGXtYf z@m0Piur4WEqkwt=O_nry#~%(#!Z@#~k?shBcmp04UFzI`EkWTZ$N&ofN7H1D=ihEG zFM$79eU9}Uqq97Tnh_mR^m_$LobM=j0l+z+XBO!zMNn^werg_F`zMrr^G+3X&zgoD zzA>DEKcNP2<_wQtgc4mnP?Bw{QzxaZ*HElUWdM9HpW2q zDAu0+tD)==hHVjMwOH=!~ovlNqov$D77#x)X^rM zI)LTHkK5xs`SJI*vVO~VHg9?!mx%kSG-mkZ*ov}{l>Hzi1KG^C?MAf4Wdyjg9UK% z@Jjjs{V}m$8(AW~39HVPltM$a4>dPuiv<5N4XwdbBAYvL)loGVmJ8ZKYK5DQrI4R7 zZmT|QI6(*mi~EU(gK1}wO|Cr3?w}YMgcI%9jh;5MUSp0?{U%PiRY^=7LjahdtikK# z|1!?Z8Je{?pmHo*IP;n1j$jXW!*xL*Yhv@l0KAWR8eKHR7AaOp7{wT0p|v8vVk{px z7rp!Hs73_kc^d-Y6P@>G&Mck+$8r0q)U;u)YcyQ*644etUu7*$%$sSzJ^>;+Y-Tb^ zp}=}A%?xQ88tcSBZxJC+JLO?gemW=Z&l^Bp#T(9hYp~Fq9I>ZUU+BY`$(!(iBdRoG zlH9XB&@fyDI%F?=8>dLOJa?Z@Ef-0-ZH|A z;*wrKSp)dO^05oA8BWeKRm6yGj+L(i({0&?988QBCKk z>tF`(gyxDnfXf)F2pc~I(;Gm9+d1U>CJf~-5nH}*!ICXFKa=^Brw8Do z61+h*D~ul>#D7v=qBqz0rf)k-7`xD ztff=WHoVJXzkc;F*c^pW5UhW_{W^HsGQB+${2cS&%a!;4*oMw<(KkD4Q@wKr)Ga@M zmMa;WXOkA0-Z`yzleg*Ff$VfU7oh!M3vD}N+zH?xXBfoy4sy&P154js|NE$Q-<^f@ zC)vHSi$VS08!7W=0B;reGgWmGPjr+9g)-fn{-m|{c}$VO*~kFfRaGed3K77KaHf6# z(pzSF)*Ryd=W2&)=^YTwmdnIPS6D|={44__pKC~7rqd0#3vZ+1ssdX!5l`3DqHgv4 z$E2`5s?xb0aD6A?2zJ&&Z-$I%D=GTU)@4DXF>cGrV7EP_LX+Ioj0YCa;k@Z|E-g^$ zlFBlER=ZB_D$Vkj~6 zn@nb>yd1dHIKFI@fqhyH-{t+RKaYqdgb!{af&5gf1a*p^L{x3S`8v>?u>|EI z6>Rf{*vuY0=78yKSmoC*0AXrE^~?&Wi=d_J^U8}+90qJpDa70MJ{dl> z+g((mLl8=I?!4y%GdvI}#QW>->KS$S?7guGNHaS$!tpq1<$Sg08e(Q5$p(!$k z#@=kX;W|-s>F^<%UG+2%)FT(TQJugU+(Y@W+y5xc#`+^-B$;Nr1gek2e~Gh)6N}7M zj0Ct;#D_=Ot#QTyGlRfO-Is%5pC&$BJ^}9e5F#kLRx?$wc-DTUvd&k{no!usd>O$S zBTr5)HbPH`JB84w7e5-J$OF{Z;nnNBcn0RF5RN}bZ|_56|J0g&8sa2vl1)xs_}~EE z9(t&vwCEdXjED@x;%l{t@kN3e(jKbORU{~GRtj;h(}21iq{ZW42*<#20x!a}e?<-U z@%8ePulyH`^@b}0!rlr1XIEblM(h6fC4f7iSBe_%=f^kUzvYkLb9hq-ot!DBeE?kk z)~|DQ!Gf-DO{vRnCc$m0qdv$7G2Kx{SUZsc+NY@a*V9XAbn>{DzxbcEwa76 zcK6uVV$WZXSd*N-0Mt|F2n*Ui36<>5!28dAPe5VL zmlt*A^nTS`JEHOxvn4h@{Qgq>x*_&E7*K~hDP*b0#9_MDlsDxcgPkDgOG1h(p*3t} zLvc0xLoos1;$&tm@D|pty`kJH3~@dZ1c%OZ2df%N$7DCAx?N7o0M598zpF_M^IS2@ zHO3KC2l*}5;qM@_1+`vJC2#MaeSZK?6#Gk}d-btVd#~$@2@Pl0?K7>dvBF!^xii}Z zB$rGhfX{RcJl$MLy#Bt>BB?gx(5;r*s%BE3hodUvjmh6D0t2Nj2izBpz*Z{}>3YxC z*wx3PI9f4ehVB1e9*{}?T?48JPcBbnY zVF}=n^r(rDZ{F*6Y$0FteU4St(Ux7?;VjK=x3F>gBV2z0xYiCj-k&O>R_=bvmG>0+ z4TQc^{9iffpR4-v*C$E7lmhqxof`$!cH|bsTsD0}w(0_^42WBE z6nkuD3I{KNZRXZ+-C&j)8wuYv>%Q4owP1g=}F^6pB zzj?;ZUdia*=P`lht$-e1hZx?_(&-V4a1Ex&F$U)fF9pxEhi`jpA2pmR1E3x&@ZO_a z-``QOLO|GY{d3&B73SJnZMXBuIYNLdo)8#U-<$?zPwW1Eu<@Qw7g?HBQAkDp>$K=g zusBPjXyz7i~VvQ&z283jv>5kN zuq8%NScm-EZv%oxuitsvt30;yTsrN;02~Q_si zzRxt7JYWi82H9h~OU7~lLBd4A`eH7&WO-}qM48M=D)okw7>fz61kBF*)p0i|3q9gP zhIztcUv;8y1J;~BCABysb=9Q~gL7uBvjZ9u)^e401aA+)ZoWP%CN9h`njA`k;G&)U z-&aGxJ8GddM4|}vCFyvkn7}FwU0Cp+7`XCUF2v1cm)QZ<6#(a#`Uyc0_w7v+PGu;T_ydT!yYuY(>h?YB?ohyt9}OI@ElW({QGC+hw`D1G z!@}Ce|K896&9c<(VNLiyA0R^;*z7u2)RIL-T)iI*XgrBZj5dIX_kVTkxQ$U0XUNZ)G!H-RKIz)sL4K2@{SJ1 zmmb?s?>*rq6b{UM&Z+=hL@m6NfRbHHwwFueluj<^qhmHqyRTlu(*5hXH64>Wfctvn zcva1RVjKNPpO`c#fEvbq#8MJ5i*WyoJ*1*f9aNV#W!J9fcwCJzDtDAu3_d8djp84w z@oLrKezPswd-EK-1La z_Uxcr%g?3*n3)VK%wLN>4ljXPV5ea1wR~VaM?lC7vhW#=JFc@%n0@=utxY6!-4o2jm5fEYDu_ z#8RslSen}!5F1qbt>1~)Yp;fIp&^D~da{<&A`>3zYYbZExq)GL%=Uy=m7{_6dh>D# z4<3PCgS(rLa6h}qSh%A;H6In+p3)vhm9oEK3%wf9Fs7DCYfgwt0ZR5=WNFejjgAJJzf9&^jHueOoi>gs*f z@;GsvjW`t)M@avZ`b-O`XLGIyOpVQ#`S>a7+=S7?dFTXZ)h)L|LF>)xzLiu8pgm_&=oWr4%uuA}M#rT*q zqAOG%nF?huIhG=6E_L3deCy8OGCiF3C(vMVWuqf zrZ8&z+Erhspj2zwIyTQo&W~SVni576j7=o9O0mrfHI->+-BgGhvVW~e|81LSd?yqZ zpZTqjnUn;0=N`}|`4mUK4LjE!oDZ#5^(gsN4B*4+xD^7J1%i0S zZ9iQmH!V^Yi(im;F^BA8^3@0ZH3$Iwe%k}jI+3>yZG@3wlew7-xg+n^E6Y=M@5_z> zd9AuIfcqWkI(9QoMVXht+!1!^n+;NJ3T3N>BeTJNJLkxe?gQ|wsFPs4`s|Q&Y&88C zlNVNw31MOglyB;4RnU$#2-s8r{& z@E7oPH#TZMPRwDQ?|%i%$nbliMpq3M&Qp$dwo4&(^%cS;5hWgasgG^n1L@EJdC8Hc# z&(!+rs5Tp}!4-QD!1qubmJjp4;cKFqFXT*e_|wXAG$DD@a3KxjR@e8me+Tf$Cycuf zKB`Lc$tW>P!=7^j1C^pp3ydhqjF@^aL}60^KIJ%rxfX7H^nv;73#D)KcU_Gr=&%%qTAh_vK8OL-mkl=Z|46U2 zVW3Z4YPosB`nNm`sC(1+;NA?$_UE$y2JkieFX9p!v_vgZ6klFq61_I>6dm>yMA-1Z zSWFGs{?8+$%y>D|tY$^N&9_UaEI$g;Z@1&rA3rEp4@Mj7(v-df10`L{7mcfh-6!1J z-DXM~3@hw~+c$c(uA>!-LChlxgATxqG~Lar)!&x3@DaNz2PwNLa%jERMLl$xrgMDV z`8WzNxpM2X{c?w`T^{Jiy86qkG_-Q3DXwgHx|yz^Ias~r7zX<1YJi z_(s(ci5xkdeIkhgnsWFPc~clz9UL35oA~2BkP0++Yf1=_YiIS*C*i&nVx4%8Dxj2V zgHfB!z8$8Ru=z{44guX!JwlHAkyVd#XGjnqiCwKn4$2{5CbDq>InM4YOy1+Kofswk z`>S`J?gSqDT#__2eD|!f=>RT0-F-Cw?)%p=RgxC+DbaLk63^#p>fu9Acf*K}LkYG3 z4m+Y(f{{Hl%SuG@l>8N{k6jF=1sVcbAu{Ait@nT!Y#XZ;zqDPWo@cW8D&d@J(}^we zEuFuYRbRlg`SD?^&d&=_mq6pzbFA0kNek*J=&t5_B&q%j>*|PI*X*)=#VR>L2H+Z6 zZm{!yh{chaYx@YWdAI!&FZ;qnlQgA$k$X*BWi9|dfus|9;@(KAOG8^3q$-vbfn4^z+tF_zfSlqpk2M^hsIi*O8E-`8w%YwVqWH%)JL0+@(#dzeie4Z z)e13e#D^I&Fs+_YIdukAd~na4;ceTvfV=_EprEM2i*=1`Fcf0)HrTx^693UI&kih$ z)6$!by-yC$clR(RNGE25&*7??q}Cz8EwS}Wwb2Q#bXzPeJkI7n*Ptw zH8CGyzeO9sd4$ZP?Nme+>ts2d4o@v`Mt}GTSWPPbc~Z<8*491%Q;0+J-1ke!@@IRp z^nvb*cTY<$Pz5IuT=p@Axlt~9`{4RM-2E-~`Pq&$Ow`P!hnjVTM%@N0Sqo7RtrK;_ zhDr?@Fyq;gqOOv0DR$K;m4LcD2VuBF@NN3=cAWXOncT4V;~aqJFp5)G`99Hhin0*O z=*adP_RXL`zkH6{Nc*jNyXNTkIeM2+ z28zA0O>^U#^x5(q>waQ!4S*93O+pZA{j`Em{dXt18d@sNbJx+?sG5}U9f=mAH zm(W>A8?lig6>g6P{>lT?`&}>5G9xt|pW`dv^^xYSiOdmBX;=;_WP13_bUd}7132|^ zP|1~Ugk}R#$PTj2SxRQDVUt4h+ZVR!C%d_zN^lY^o4*qbm$Q=3owc6EopSE+nC$x8 z=rMCaQq!BCPihSXsC)S_GP!K^zmIEF8)JG)Ynz!a*LGg3v&(>5VYq)T26vuY)F@hD zY2N~i#q|#4&bhunUD4l-nLl((O>uiW@Y?PI z-2TawEd7n=1G{b-k6p{C(-VpioQzsyPk+Bt6v^)UDVrRx%?-aDeIk(q)Tzogbj+EGK zo4}ievTjjKP4nG!?VdR)K~4Y;gC{tF@j7bDW(4S?#O#|PpeuEtnS?!w^LQlNMq$%l zE((8x>SmByZWOVTgv2%s(k_%;%B;uZ*X7))a*6wvOLg~0C4ia6`pzonHYG2q5-)>> z<)1!d@5&!+rRF$29@f_F(>A~sU@6%iq_kDy7ZPD71lA76NSW6^b9h5^JH2B0daygy zU=B=|>Y_PIQ4t4~FxKVr>3wuV{^y5F>-`+k=vB!no_{KUnJM_7-`s0vtNan8gGNy1 z?RNg`!^uUh+%LsBg%OeVqyTuLUQC`I#EqLD`@4+zh-x_4MsRA{T-~$JrdQ40MwoD zR#->qGdVY?P%j~`PUP` z`pTBsd`^dS;+{}%p4w|)Ni-0-`kKGSUl3XMcJZEN2uZ_>zA19)A;&dxA zA}RB2{NV@y{NtVK3ESS@^ZRlWDhou(LPR0IpLsMR@;uI@(Rk?#p!z`{UaKF&J7u4%lIny(M8JTsw*lIeL?0}Z4T0Huh z#xK&HT6kaQ=)7N-E>(AYyaAk{a*YS4X}`&Ro{F$iV{q}0E;~)&*dDon!fecvXm%Zd zkJ!_QV;_n(!{HlQXPT8u9PI0dDMJ>H(ls-`NO(OGEe z9xYpJN0wJCLAvQl7I4v{3G@jzY22mKtRAq@RpTQ7@=BLkEB!rbo)H>o>i*v5x98dWkuBm;Qy?OhzK<>1W^Jcvr2mh2SS!8{B7Wc zyf#9Wd>#lJz-{n&e(#FRmy%o#yDPNJYE`VXU02l$!^BX1A&JE~C}FUJqWi)?ouV>7(OWDCQF2v2m++sN$JwzmxDD<+k70LL@&wnrkLcgPDD)!c zvvnuk#674Eot1KTL13q|Tl|K~P-Jr6BkkK)0-NBo^Y^!APjw0>aH-fuKY}%r^4hyq z-At3yi@QkEBD#EfxYn5<>@RTj!|wn*r{r@_@2wHu2lwg?ibYJyI^_SpOBwK2f8KR% z$~(mNf_ zqI7$BaZ_d|R5{gG>fLdAmY4YSfEhvJtZFM4hSB_Qn>s4BVF@t>3#06`Ap#?gT&I>q zIbeeFtCFC$;nW6JU;iB>{0#ZJ0AF2YAQ3&w<8fE8d6_KOR!E*_6_@q;`4^v%OBl0u z7w^P5Y{a%!0>L?7*Zw;RI(V-xO>6zORodE>!SLz(p8K71EBhNIhCClT7tVf0>E}fe zz`Oa__o5t5&rp3#FV0pmasn#raMuuw_=@!L4XP&csto`~c6t7MhTK9@H`aAU;L2OB zXs;>Jp`62=*g{xR_~jNfBbdg{FgZyTgR<0^-Fmbg75n7Q6L;3AKe~Q|)}`J01gJAV z71;VRU{NawY`7K6SENUO@UJVuH!rlIg3l8)mTCj=i)ssJEZVK4okaraw%}#uN+0DJ zLYQIH$;6-qZ5PZn0N46>vdy?`(MfxEbtr%?^$;EN#eF|U{gkM;h`kWjj~&2~pp54D z^)Y#}VGMp=+>5$53wn92E9A8CVbh=R@*3MrUdiy9!9O31m>fqvQu z5zm#l1x{cWx!hh?$-!#h_y0O;&g)ZfR6?sOaURTqSY%}nTsB7mb-DS4f6#3)C0>Qc zQ^Q4aiAhmL&L&sH%iFqKs``!gN&s#nyCXs&t{rWY2RRat+6SX^$JEM?AeEl!T;*7$ zQ3TGJCA}k5Hk?LpRtY#{NW_*(Ovs1mDhT`iV+YqAB0(K6!>0C-3(QYv#=4)DjI>t_ zv>z0q^p}g}G5_`fJuYEA7i=qdYP-GQM|kkOJuK(B?&?KD;kT<_k^kvV^)zt{v(60$ zywB%4phaM*)}LT&i5z@$tr>GkTiZ+dW56XE7W?^6=na5l-%+XO;qW7+g;9K6MaH8e zXtbzX|F@AM+vMx4L}^hC;B)HSbzexTBZ;;4+*)8G)%l0HIoMI|K`AqM_+ zc#bY1UH3IQ9P|8A5_BHjpGBLu-dlae{jmAp@!$XZ`~No!zP_FsFa%O!SvOY z@2aLJK0$c3T^8>1?w=4@O#pvMPS(xmYo?)5KZLZ|R}kEZIA9)3k|mKvWUt^j%xeYk z?{+&OWY<<*pGFD<(Mx7M=(pt+zKNmFXuacvXW3f;Ls>3o1G7~9#49RNe4a3Ge#T!I zg{@tao5^J&)Z;K#ol8JH#5Aj^++KPm22cCMSz$G$B ztf8qbokX%O8sY?fS3W2jCN8tWj}aR%2E*k>gPC4AXM-}yLbr5UT_CB@a@x;99*JCc zn(>khG${#YgREyj9m`-hGmlNA(c`7V_#bn$@Bv0KX7t7Gd*rxh?EoH5SpawY>7;r~ z@T_g{!Lql_?sK;lcfycTgiJnWNBo{dCzfoL!nvHUQVcb zlSExU%370w>5sgYu$go3&Br7*u96Z_@iQjHTwUgEQhd(GP2NjM3UJO?R8%8+c{bcd zUA9=_l~*Wq_^ThLpJvjaBs)iV=+o5$W{gYPCmSK`9<5}IQ3_u@u0@WW_3AV?8jTb> z4n zNjz9)4fZ`So*M2|f78lU)%hkd)mA zHeBW_pX~~f)R7-<k|Z=Wz^A+OM>fw8)5Gns9~vH^D#| z&OBvU=}pSb%ef3+KL*Wrw1$^!`x~8n7*@PLe({e7aH+qqHn~zoUK$Vw@s)etmEJh4LjRD{{BQt}Q~G zwj+I}ti;WOR_~-->HCN$4e9W{O*$48y~>mmCx6N z738S%YkRo$ynmJbrx!@1$NQtjC0br6^ue$R!1GS|pGp66X7C!N9mu0}KgmET_2+(Q z!g@?A3dPuM2PbeM#BZk$+a6he{p7sc)$>)xjU(l~kGN3Zb#&mYeEpw+oT7bIe6N5? zUnal3g`Mno zo(+DX-Xm}aR5f}t2{Q=#?<;O}Fuw%qZqDvMjSA+~Dj(5tvq&i!u*>}ZhxwtGHS0G1 zVuNRSq?o_$JhPyjB1;`<70b&LY;#Pi8m2$Y`#XwMnNtrhqkpmf zzLb6WV7=OwaZ&jXkAN0FIxezaV2YXZ2v9jmbe%Z{AJxLtyu?u1FYKcPl+H7X5dv&OAX0d@Y9FqmdHGfOIzD6NUW z5nH^FAtvdsN^5hz{GL0_mhk|dVyhgRB~dFkMl%yNJsJ0CC3^kIQXp)Yz>G*Dgw1Ce zz#qk+moV3bmIob#%DyhRP*}1~_?N|!v8@C#KkHvjhXHt>?a2Rmjb?spP?HaPNT#;+ ziHt%2Ds;X1&J5uKts8iF&HRSTdw?t9zE)+uSDqH~Vh<&yJkv|tB9N=Qbqe+f8BoV> zUzBujR1yA(D<6w(wAV1FXsDpVll}JqRfaLx#DyBbRg#GZV)TC3Co#3S;o=t)hrMiT zt4Y7&5qzoeRhmnQ0Py{8U59){4D8B*^}d?vsj)zdZbgMtD6Mz(s0f`tSp6=O7%WY@=bEY^Ox?kr!wW z8AsNsOA08v!Sy`|^Bz+VHz+es-MX<>BAR~u@%hbOzUHA`HE^wI#+?dK_uly(Dq)mg zvZtC^x5vz@eM5huK%aiy_-QSrqoVo0_ecHT-~X43nR&*n#H zi>oe?YS%Er&+WHrwraYzND}PI*!$Kr>-mD<)|$*(u-23^I%9MGM$B$lGWm3rGsl+v zx6kjrYKy<-vVwi!-RZLD7pAbqyle7otT-4`MRG-2Z13dw8Hj0g)jY}!z&p*i@_fG; zcHHQ+VCOjurO;bu#$NLL=yudvl(pKb2r%Pt6d4Q=Un^n?$G%?tJHhc0($O@>@*JIt zM4T@$Uh-=vpf1L3NGjgR#WexV(cwxE;RA=e_4x4CQi7mk$%?^Q0QP58-ojTzVHqk= z#1gMb80Nhh;dP}~N-|;^#UN`wIckBsw?h(`oE;yyiT~{z!F>L_qBlj>(OV$t_DVQZXVvdVm5PEEV?>Wv=uM`Ucyb~dbY?h=wKbMM< z?u(KU#W_P1dq6=UZy@^G3sH;r3IKTZGY1-RCPFrWplj5?GwWyw@nC6<9mz5M&2*0( z^S4|8A3T_X50%iLLnd^K!*n;(Ic`H5p!?KivU3L6Uecuqu93m?Zyb;cR`>#H0gS%{ z`YK7Z3|1_Ojpr0`5o`}-3&Bvf5b*VB^|N>U-}>?2kSLA|?%eLy1ol6@c{JW>^lOnV z0A`#=+`O`2RYEpwS#hhbFUYd#Y3-}e-$zDRRvS9CRsRC;ze|j@+0t_7zxV#7xHY_j)HCFO6Z)jKeCD~Mya_1y~#p$aa=3k9rgzq0l1CsyAI6%jzPV5_myEp!i6fh zKT)n~M8J=);TmuoT>#5l4hy$0GR)`yUK&>ADKX&A6i+WphrCq`n+IyM@Cn`;0d)t; z?uhdb+@E_M4v7;VeZ0JX1S(uR_yO6yL3Pb_Z-_WD=@MG1$2 z&nA=k#_@)H2d*WW4kx5uMc_%#W zw(r95z!!?-SvGcwR%nzke~NnPa8AeU12!1LDL4&a@7gAK5=Q#|w4e(J^rq6~mVdGP7NuFotS|3z;lYF$_$ClR{qZw^$6#6>V=5PseSE(y z>L%2NQK{RZHnml2K~-b#(B_j3s+Y4hav^our%I1eIvM=R_r_&r(r2OH$(L+HoWBq` z`3b1M5EW}NM(%}P*b(7Aura}W8=+30xYZ5Lzi&75WOhbp zte-|QT?=~P;6yHiL=(-4zP+g)8u`FjHxrs#tnUd)LOaK3GL_#dDfe#at&T7AlUtGTa z_keP4wYm||+498oSfAv<4W`T=l<72d9Bp2Dt$Sjglfr1866d?OP{)pQ(n5Y%g^|Sp zX4uGD6hxL*PlY8hAazx4u&eadE41*qDNt^l z?ZoU%fmW(9m&YffT;zO?9S2SMbhlFDB(DbM^IZUcUs$O8B=mT5gE%$5H#;t?x}BQh zPRrH`!L3Q-wc`!80OP{O1{kc*JCwvnN%*iChT1;5-F1DYV?NqA-7ixr0sFv$S4Kmr zFNv70^Idp;dP5OE-~6Cb`j5Q-P#~46b-XbHW4i*U#o9eTmu67d#su@B(Ez650^}bsypk>w;Vl zwBM7pZsipk|6B{9!c%gGgnRMB1|d!Fz@2A3Uxw?97<6H#0|sHaU$#Rca>2j2?lM&# z50zUR)8F0$>c$^-qI)7f=SQ#If5?%Y$ZeR-ajB0dO4$A3oo~2u5ewk%ERjf9$R+IK z1bLgrv#qT&?A2rJif`lvf9@wVNL9dI>J2<;P|V04l5tb@vptVNY8F&N1p%eAG#~tg zi`l`N6rf&l82spFGbaA*+_ARng3Z&AP-05{Xc z>{92u@u!0OkfXNet>(46Z^(ZN#U3G{6Ke&%)Ngt4YUC+Q?Wjm*LOUy zPw>E(cZ&O1iZzw;GPuDkR=M?;BtCufU!;d_B1^=WlPNGVb$E{MO=ep~lGIL6v(tSs zoOC7UR<8IuGd6O8C9J~WB=~LXk%ti*%q3sVM8u2EH+Ha2ou5+cyM zJd=hJp}fw2oEs4T831^`%Tu51=Yf2q?+80VlXZ!Z4DL3n2pv_jXwg>mj%26+-pep+ zbQ(~l8^Gc5&iE4n3F+Cqj8CN$Y!%}l=2X%`69A7$qNBQ?p4N%=hFP-t^^W*L!^ngy zpr`uN!<(f@pgA}rZBgsUh<+=F$DC$Yeh^annp?h>buD^q*V5PoWB+0cR%Ola$e$l+ zvaXuV3SA54FWeaZTtXK(j=?oZ9ju%56hALZZj)i%X!6O&( zmXN~xpZNf;wRn*5-Yi_*{jO&i7Y}*0@MQ&Ssxf8M$?Go?HiQ!*fbXEZK+lytzAf2G zxfa)a z-f@%K!=f}Th=!YPNCWVmU`g~3rh0VO-*a1pMiw**5nI=&a9rr^+c#eg$J~bj{2R=Q zPz6Jz_40tOMAS5zA=wa;QQf)6LewyhC5EsKSW)`J`(`XR=WL1-Ie$pUIiev)-50wM z;z|{}(xkwt`JeubcbQ|`8T|VeD7{8o$?+|COO0v8qRJm(8K2L!YN!-L05eL?s8UIF z#xt~>8M|S>v@duAzC{&qUS9b}|Iy+~f(Iu-5f@DR_SI~WlxL4o@k49jGCaqp;JKAA zsS%+WKf`;6VFZ{N8`88~T>Sem zH{S8#ax~B}zU8#+Wn_9+-POQfXid`>z%vF9a7V%;LbnNnI0gpt&Y-_39t39CI;O&v z#YdM}Q#>1yxX!Rx%RTNq)REr2ienW%r@BdUeaA^kRpwDS_shvNpX+kGp%M8hH) zJ}3&{I$If)GnIc=l_H9^acV|*YU&%c(xikB(wgWE2u^LlQ{ILMrzNWkm&46$h{Ix| zgiB)l0t{)jWOQaZpS)DMu+RYY6a)618#TG%Xe&6CT#0OAJ5}-X*Ovv9RPWhF<6&ZY z03Yc;kV#03Il3NCiTM7T0aqzrXVxIJaFj|>Si=}XfC9k9iy^**D=F2)(B%eU>Uf0J z|23sd_JYXDD14ij*BsjiaLAy@G6gKF&Ue+ZdtKJuv%8pwb!>*~&wjQ2mAM)2RscTq zU~2v^Be67q*6CCgNLY{b1DnigXy zUX*!mR%M+DR{NyY0Jz0MA2dIqV64&F@{6_~DxKsM1Y(gYj{{Y$4E=&c+9v?lYmRU; zUsxP;9_jU{agigB2Z`-4k`WBx@WZP9)dYp z{1IbDdaTlqU~vUx44NUm8e^}$s$pY zk;Ci&<4Jw0~zhx+|C@6Jti6ykRbzmKTky$Wf9Xw;G5<~*^aL$4%ZTu6iKno&itDn7$kK$sfWMRvp z)kEzGP`6cC?q4hyAB?7o3k{)$F~64f-D z^|$(Me=Bjs(3%i2Y897N;Oy*4G*K1M^4Bnn1Elcu(an!)m z^@T>Q#@~cqKL;T0tot}o+hTVr*7-_&$B3<;W?cKEtPglEeX77g!NmDNw=yyDY!kMeCA*9k+IS?o-I+Cp9#hj!P_Hh zcW9;Cvf7eBMAiQhk5+G?icH5o1l|(%S?(l=a;u_7dlOlkJG2QnnK(S-LNP{2r2cf>r|H%GP`k zlm$g$1aJh;+;FLPx`NB^$2sYJqE{W^ZhWu6`QC%$u>WHML%+(DS%jm9Q?vQd*@2j8 zA@0jxjqXjaGf+K*m~DR=fwzjJ(B=&1I(tN>#D?nKU>DJlluR|(&?;D}Y}(oi&L<(w z51UOAaNcJ6j7)Hzbt2m2AKANI(rATh0^WDbGPOLgks4>&Vv)#wt1?n4S9bOC2oppc z_}g0_D~13Zi%itbYcwSw&O6D|^xL+z{&Ts);qYLye@yVlY7rkC0RMGJ%06~Um=xia zS#3&Dl;L_wwUWLhFvttT!UV5)36|#Kro0z*>&ziRDzAHxUrypGY`^dQRHY|zB>j-k zaK-ZtP)BB@-+})g!aU;qbudpTLz0_SIy!d{e>cX|)1jh)m=VC=t49?g_UFtngi$Cx z@NU9+knPDXn40QkRo455O6GyRCGu=hH^OAtWDII=ynm3%8^{N7>wJsl)^(`)5M~ON z?*VlfDv8wdMP|>Ft?(35<@*QI(q7nz$VsZ_IeOzi5xQU=sS$LnAP?h%qCPSy1nKoj zlC;QN1znTY?v=zX;RCij1E5Y)@slXRH_^fBCpYQ4cAN7&t+i)Unw!46O+tk(iz8S7 zPjE&n%~%_$gmn3%NS@D3&eV`gIq`7duMtSk-&qJn2;gp#t~l)k57=&$uXq>J!u{lK zT4-YZX)3CC527B}DJMD%xnwf5es z$HoW#o+p*LBl$ht{2qosgAeg|j}WffRKfOym7#zcuV_#CpJnqOuoa{+Y-2Qt`#;TJ zF)6twR;gr_T0#+ky(KG@dZf)OUk$~GS;fx*(M-mM8)BlSH4% zR2NzHKRohW0$d0q%6GOlv6$*l4L$>B2jg8}H7trlPX0*@1qA~H!{z`fyRmZMbf$J|r9 z>DN=V?lDftZ@BSsghpe`!%RaMr{lALIw$L|K^h7>m12b055`SIcp5fK%2Nvq!ZvRE z)d!-Us{lU7W~;|Uv}zE_qoj+cV$T^`9GTRJ5pInd|3{^P<{oTcQkQbD%nruLkN7wG zZOrau)g2psJ2ig@2{}ycG0)uw6GMd1eaCsa4YS6?H{wgF$~wJ{0?t&GZ|d#V^D9sz z>EI+_F`G%ST!9J@{OFT$Oo-Q0kVeR%ME(6NRH5MA1_$>k;QeciynNhtDl)I}hQfzl z&6d~St}2yu*BwYCX@~*MRtEs?fVP!`!PYM)Mr-Gvn&_XG4!3HmeNlp9m(iu6ow6ki z;Jc*dzj|hKYW-1Zyot9>IU{9L^NxK+hF_TOk^N4i%K$vJj9u>4snPCm!l=*%UAl#; z9VbG(((h9Axhtorl1K=^H{~gG&K+-bXrb}%x7C{b?#H>U7h_?nRnbykMNfOA0o<*O zsO&&~!_P$iP3O|_kEzSN!d9OqCOXa_W9c`?khS*$j(zHk)v!J*jqWhOn_Wh$0%fr z&RP`5&oA{VwzARZG@PP@D!QUuTDva?>9MZ>KB>%J*D<}^48fR~Kl1q!awT`I9cuUW z(GXH?mgy5EIGTPqzqHvwqlVowJeOq{o+h!7c@m)5@014i=X%0Fp@GR&IETo0Jhs>q z*`jR0ai~xDnXXFt&i(p6Q^q6^(tql=05d!ys?mo#i^(V?j#Y}kGH>#oq%cySjEX{6 z)>Rxo5Y+>?fsCCqmEDta5Q8fTb$|9(8!q$=)HT~ZA?WZ!(hw%_SWb`dj&#d!MOcLv zC3vd2z?WYlp+g6vk6tm~2etfzNc@b2s`N4LWTc0e*{^~9 zx9ol3;Onkfk41Usyszcs5`<^Vmg_TngY>!dnut+AX{tLWRSxu?k7QKHML2ccb1bTy z<7Hwo24&N$@|WpKNLm^_y^{&RS9tHTCa9;)!^~Dwt85CP?L=B5VF%I&r-nauqxHat z0eFh@aSIy*-0SlpB6eC6`Gvl$8e~QNx4E7OpMoK-<5d7B4Ujd?<_>aQBc(l*P$rsD z!7yenX@KL>l~|_gvG)QyS7C$otLb)l-V)v|@FKhRBHk4;((YPE_9UdAuj)$mn zZnE78#&w&2wP8^3Rq@Oi<9&)*>5Hp49C~SvdH<(gAYAJSSLafnwls*n4y7HtVwGIi z;Z3P8uJG`~36T$c#U=@|EF>t~<*{JZ;cDN$;CUGvb)0dd%`A6rO*1JsfZctjy;1@s z`2YSc(E8ru+%Sjv*y^N@;SXk)%btTvHsbG4N!Lg-p^%Vn*}8m!1XlQEjT~23?p71_#UhIaDT0@ z(ZWIwd`v&Zo9Hma0+6u_{+cR#QnjX*o+WG58z|2{6(V3c@RK^;i8^vD~iX=hv6^PJN<9{{Q8W3a5 z-r(%f&Fr|tGmk@8y7Z~&jg04q0<9)yk_i5tEy_Q;2-pF5K%H(2i~dh?_e8S#cXQ(y zJnP|;_=6Az@6dlA9|bJOsZ zfKNE)2~GZr5x`)v+KZ6F7_y%Hdu=Q-jb?ITc-P9e0%q9a;U70CH0)}22lg^Y>l()& z+{@uMMlX3e8NctDX3^#X>iA-Is#Jpxll0%VN#F=%PuIpPT9hk|0{JL32IRl^fjO{- zI>#u{s_Hh}&1lw_^5^LGN?e*|<+qHY!%d<-1WYxSW;_Y#bs(%eU~@wAy{nnQ?&nyM&^# za=fCp)!=ypF)ByOah1}2!okFfMfbVeG$%F@0ADsMe^2+L!E!r=cYqTfH`ammh4|FL zTD$eM;92@>;x>Sjg~NwCLR)JP>Gj9Kl`I&O?;`iKQZBW3|ixa2FFp=4|CA zNd_3`!SdfZC*tG9A2uXVsr_dJJ`Vg|_XlwIt2+W^Byzpyr0SE^7_#hN1ft55^3ZQw z*Th0H8~5P=E=MU}B~b2}$+|#`Xj)0nXFi*8LtHl8G28Ur+d87U7Qln*Ct3UbMjVs$ zxP}plf)~Eylqp4HJ$}7}Z!fWMqVETA6cJO3r1j%)ND6}?RvTfZNfXt^LwyPw58L&> zu@kxA`%aMHDK6!;g#BCh-w5$@*357GdCdwboi*iDNwddOnGir7*`Prbp0;mCb=NS& z+;<2!HW*E^ocLG$JW*f>3>!Sy==$^#*(5~O64P5@;OXOOLhnlbY1m$ig+D^O#R*|b zAUL#D#>Z)L%!&eniqQu0diJu!AOhBQ{5Rw+QD6{T7X|bHGw%x>=7fhI=xU|mg`RgB z?Ho-OJ>H64meb727ghD6aLGAuvb%W=BR(?g>g~nf`nS)!xA_R zLyq`pBkp7?{0nA@sg%*Q@?djp>AYe#$uJLxGTG+x1sZ*u#7lL_5Nu%c9G z*DF^)6_`JwJK~Vx;7O z_+B+n{cytg!kA5c!23&NMCEtE#%=ocmK_P0C2*NL7kcJ*@e8=6ho@@o$8Kig^%Bn zg=+c77*k6^-M}S$dO5aERPv;>o6bXJ?i*Tx%1Y?Hf10$k6#AmRn{_40fI1q%Im!vb zJ1NTfz=o_fS3T<8AU&97VjI+sx}Ar*gJ=NHD{o)yGs~nyc2^pHi)7X%JK_@{s7t7E zetV%i{ay&ZVl1Xg0d1)wS^~WST5MBF7X#D@G@2{ZTkeB} z#r;bqcQgDCZ_}BaidX0So;a!vavqcc9JcF&LZcK5#$QNc{`HWvm!SUcsh}0hS3%|t z_%zLUur&XBAdi0=+*)@5L;aL4zxENzji$nnyZ7UzL&4twqA&M=I%o9WOLtUXtB_!p zydhj+o-eYK@-xaWV_CIb(-7r7u;xQgS}|z0>vv;1<27ZJ-mG14RLwSY;70j%m^L^j zj`j{ve>jf}QRYTfUX~E@H9C2M>(1=1>loZ7@oR143KO*ZbSIw zQh3?SeYI?4t2hkpV^LSNd0;M9;XQ^-*8b|s7%S)<;Il8vydlPB@I<4AXs6!SH zsGsOX9csf~a#C8JIA9KT-}50;#fL_1!v@w0>@#a(B?0)pTEEVIrYLd4RF@qMQ<_k_ zDu3%K{zjaL))&JSvF&vL|N9wXioW?f+>Yw@pU*DIy=Z|O`2pOR4BEt7l~Z})K>*Hc znO7-bp(#W6`IN?rPXk_o=2lI#WyyVd9{Xd&zlZ|>clpQHFG$zr5@RS8d-@|&R_?26 z%6xPz+K2A(GFqrHaONYePqWV}XpuVXWtf@qUoQ8!LM%%)ENxA^!~7OShwuofhZ$Y8 z9xOPpZ`;1FLJGivglz!Ahlhc=OG+|pB(f;60FS|!M-#MI6T_Cl--oOLSt2;9Gw27bR zp*eoU;M~`*77Y>cq?gSS^GMRf_k@Yw}cwkpA7H@)aQ(l4$ky=E2CZ0n^KOlm}$jC}T$Io@N^9y`V?;Mv1u~D6VFMxA>D57i*<93qIJvKbXJz*ta63snQ+u7ItOl$P4 zhgAUJJu`GEDuMr|temdWrbpKZ`r(<-NE_O-OB>4su8TR50h~oPm4&M}tBj{WL#3Ka zo7CZU7QzLR^@~Bdjlwv47g%Ps7fB%g!QN7+L)R!UQy8ELoDlc0o!qHa@}))6dqY+P z)e!}=RmZeN(;d}qMs`)3N+v{Z&2%?)ToqBtRB1*@4G zsa+=~8M0{4Ka+!M4X~JyGfdV%I=nKXU1y_pnU4++&~QmIFCaj4{~Q`RCOt6*s3!=e zdqzEzKZ^=(4?dDAvkL9IwWi9#+$4U>hNxF(1>?+LGQ8%H;PTPewAjrN`-uK+v_bK3 zjK)m9P5U0%fCDgaSf^Dd!Fi`EUHE1rF$C*5dI$c?s>7srT1aFolUvINSK_G9kZYpI z4f{ik;TFd`-~E(A`|d*0BJeyFD+RY^W$6ld=g66Gq;BI2{ea!+VUn$06whQ&fx2S> z0fp)%T+x#O<^)8vWhc(-^;An&iGPY76|AjXU4&AjXJKxzFwCFOk--?*1z|i$o9+4Q z@_ta|NM`Qo(q>bMl5`*YS5P~|(ex}9U?z8jpz4RNg1Gw$^5d$!SR-#Pl;}rM9|(#6 zejoYIqZM44uzN47cq{ey%7miM!uT#z+{^@%riGAKrk9h3_ye9YnAEC4Ey)>T$%`C_ zc-?%$m(bq!hh>|g9Erb+VYwjwb$$t$@wxxhv(0eBL(^|9pl!PIwHP(8r=NU^zJQz9 zWY6!*8i0>eM!P8X>HUPj96f4MrmbObv6u=8^5o~qT_dz)Vc@Q&rhr;izb#zl0#BkNse zsT|)Lq_|a%N=rI0cmDSsAh1s$HPi2hWC7Jw^da4BeCo{Ly!L%#(Payd5#)DOmkRSe zKz&Yc(dkr|yX96qO7JGgi-nt5q>=VwZ~!L`hlPz&8B~uwqCIIr&L7EHUc^*S3gNKf z!n!0PP+mfNPTQkWVABB9yk#2Fj@fME;ZzE)pa6j$swm*GuS7dMz+x09GB z>w~N!Q9ngI3tFHG1GvDS8vAf2)c$1r>c5a&N;F9oDwdSX^A!(;sN>1_vf%9To?diV z)OY8F!-w4@>c68oUk-bWE^yDJ2}=weJma{)X}GH6r+300#-vAauC62J7x>$b0 zTj^s(Aa|^aKNuseD5Y$&h@)@S9cRM{i?Nx%2KDVOq3=*)Ug_9OFK@B~-b>CQHi#D> zKMoiC9ur5p?+Wnc++r#S~AQ7;RKH1+|AA;@RWDN%5;>3S1oOi2p+D|&2tk6$YI!$Qn_>zfay;iI6y z6GY`MxL`W^R-gk*neT5(K|OGF=ui5)Y%{aE&_>)Qc19w_OCtyHj%kCMt7W$-`Z@OL z9@TngFp7riJT3z=rH)pNfLY}UtZcHNd*@O0R3@=q@UD{}+S=^>w zQpU_KS+AxHbj0)|?qVi@87}u;*T2q7>b9M)oVL90t@_OSS$pTEDl)M)-NZF?!D{$1 zMhju*kEhw#z*fx69*5~=^#ZgEJB(e3C1J(I$n_JTzV%7Y>|{dcAYet1Hj?;@N`YF_3+NA8(O*apNfpXYe;V?44Xcr`B9VG`I7+$uqoT`v9h5po3L3OJ3D>)${t$dq zw9Ua(vj6^bWJ&?3r&=9XZEV>$Q+cHLRfaiuH$Znl5`}lbs`y@a{|)<|4&dBh7IOtw zsBcfhDgPy(+=dOS7F=X|K@or|a>6UjxDDFm@P!UdmxaW3t%x{Iaa%)* zZAUTHYeS;cOv;WXc-=QuR0IHA1}01yVsmKn&o6#KWh5x)_m-91_vBLr+Gc3p0n2S8 z04^bYkMQSFU`Z;``_B*IuM63EWmUC!(s>)w4=eeb#9#`sxr`%n->PX;Npy33d}4T( zDSlvs9??A3^wXtfcXIF=P-i`Ow4a_{94MYZA{D)%*;Noo?V$Uz@2eWSN#*gVi4WkR zob{=?T6Fk7d!>-Csa?kc<}Y82^V82e6tcCE3^Bmt-9u+R%({Pr|I&VaG7n!qwSuvY zIYOUC%BiA^AlBFwrvlV15XSR214fJ!kV0W9uw6F!yykGfrmCFwBWXQg_7j6$H)a8c zls)BI8s>a~kfAgASStDlRMgnq;$j(N7bp4+aPN-;>e%`9)vC}2+mC@* zwq&Fz20{+%Rc^3U`H^gjpnP<8vk}KmRlRU1rVowfx|5B&5ftoWnHZ$Y4|q5Jo5fX2 z(HUmo^Ndoe@T?7cp8Cq=C?qDblf7Ve8yg4UdOV5E1}hH-QK+F@xHT#_N!$orC|id_ zGYguGy7W`v5>LVgFL5F(wMZGte}`LNh|F&y5DaTJ&L6j3`Oc|5w_wcIPjnQU0W)eX9}$-xTnCv_t3ImlE+$YiXfMej+f*+6 z#!(cmTEYPE7M4Mz&mngqB?2dYh7T?O{lVvi`Rjc|DC$1H+rt5jBY+F2te>g-XhOTr zI;!mx$eHns$`x11|2s?i!?*hzUQ`9Zi6Aw0apnobf?xfbPh8hmxsfNNg&5^@= zkTVVo1#r=oL7e598TaP%$J$qVl98=pt%{?)n0UoLPt9K__GkdUhaeouUekNlS(YI} zvhLBG$u;6UFx(qL@>^Ed(0>%HPdLjA?p3F;srLI@9n9Pf9w>%A8lh|wp@cS9__wSdjiz~$jEeW7C zN^@_zF&SGfe&^!0z@z+V0yhonu)}EOf9&vcdsOa|N?yE2Zga&pUHAlDJTzaLTcys8YIe{;~riBUYiNaMv5wU)o}0X$m9vzUS%Xmw8xiNn5US|Ah?z-LYz^m&Vv)~PX_o2TO4mD2WfkGnfcmyONhGl! zL^~rcs`A9SCaR+GmH~^nZ$nu~2x6%QfgaP| zezT!&zFUe-E&ib+2@kVM@g%>&3>&|Wd1%HqrS$B-FOf&QrE9$%jygV1z8q5_xgl#i zn}Zc)9mYPt*oIz^`sg0pi>2bro&Krv9s$YlIHKXa7AYeH&DT^&q1t)vVZz;PtuCp`#Oss1!}#QQ`4V z1n_OfzR7`sfUaa?p7N6Gg1FlNRk52Znd#FmBr7a0UogIh7uXp6=E&lW(C4`(xHK)h z{FK>K`}ni&dPSx+94pfZP%n%Od1*_Hm(*=FqrEz?^nM8c?#UCkrp7L1S?8T z_z(*PNv;?ZrN||TxW@~0Co%LHw2iWdk$Zf~CVMaf^M6xo?GJ(W(C`=wqKiBH%0bm- zg~1h6V$U@cJ+Ax#OllQ>o4<}o3KQnPr#D1r`e~@^;fl1rSs#;(ur~bnm>!&)*3<6d zAIp@^l9T4Lx-pKtj9e?R8bsqniLf0k(?(Ok410Tsv8N<4tZ=Y2R9C+?E)0dQe~4^^Y@ zY@Tjz`bQl8+ZQKEH#IC0D$))oc(jFDtN9tgM;2ngp*MdE_ENH;$sZX;?V*~ln>-kN zhXUa?62sV%3*fn{k7HX7+t0_4$YjJ1=NIuhg<)_}${*cYUQMtbbHLI(EQyigLYZ?+ zs~aajf#hc+oUVmh9q)xfFxFnMyq&QPpx)VE9(FRaEL+O-nilp~nE`7?p{@R@!qNaq zqo5&s3T&wJ4HEC=Id~#WS*ku8z;8JVibv#fet>i27kX)%zYL`W)cuN^iGm7BkC>NJ zg_GZS?fnBtdfYCvzB3e>e)yy?0d`QV-$GM7I-(|Kf}z2Abv;KnJ@EjN)g(;O6e-8K+s8V_i`akeiqw`06RFD# zOx-%gwtRwm|A|I2nKCk3#=>kf8C7iYHgfg+nheu9A*ln*SSVdd?8t=f_9-;?Pjk7# zX031>PHdrBC?v1F~DLv+}Or8Ckr`u6~? zO;9uX@!%VO{vuW<^fb~ZOgM~I)4Uc^mJ3El2WeTb8V*#5fNhKj;I$&~H*feJ#kg==3}o966X^(F?aqBbVP`KP(;+2hWrMEp{1{%hUA>+L;7ww} zmD<)m!}VXs@bt-~^aJ;Q5R;h`mXgNovk{th4FI^@aR;PLfZ#B+BIP>G#Bm*y$h*MT z9}##WEAlsZaE^8Wz9L+2T)DNC8?DCFKHscP;tP@OeETBliqw1l&6|n`e5#A-P}Q*M z@W$(+7r_%NB3p@1Ot~(pc-NWA5Bgtpn!p_{^nNlo%yct{T+^sFVMY+YJ&8>ZSQces zsBHunMg^cy0WV-*P43F)bEr1CcuZKdxhV;{WBZeS;1A))qPVPMcV_&uxGvX( zyb>)H3ovCi<@+bQk27qIsDtx_|fLgQ^#z$L0%!MD}FJ~I836Bj`04HF(t zCq@TeYEnVU=Em1;Rp?)e{>Lm*A2&2?rHy_+Oxl$BU|O@Gg3BbkuflT;Gen+a8lHeHkS+0VC?v7%6_RMz;Ievse3UZHs@D&1t5IpL#(daFoN-0^p>|7q{Jm5rMqt`B9(O^VE!F ze2TMix?;{6T4cQa`m*VYT(C2ijjASTc-d#?;v?;P58zpRfz%2PeG;{dt|dv>_?HB}7s^P9WcJEKGBZOc3F-h&Q(^F&y3{Es zcn7ybfe|o5TQO*Ve~K8JLcL1XOzYGD;P~xkYUWr23PRJ^8v~`u2Z#rM{_NLZ3otc& zuJ6|v0pCcvvkPTy$B}LaWIs0&q#&%Savtd>rWc+Ry#iY-A8H{ zAMhIib!+YzatY|pQ(i?UMML`Hp%mlYq=S*4WZ(X_MkdH_hyb|R6!%#PY&_~R#bQN_ z_KKi8OFY3s71yRPmM$IUOAI(s4m5W3f9IgC@tN=Dc|Umc&iCq0I6EuXHBD-xBp+QB z%s2#}dMvDbcYdVv%le}G=ATs`*5(u)ZTzx;HPqw@2mrgx1lK8i@z)137t(bZt6};w zv0f!zl{=A9A2o>BFMpqd_dUGCk<5P#x9{_bW7v1IhrN9-!rQ!QB*IymVP3;^IhAA7V0#UX1!jlc=?g-MJeYz)!Dk z++ru!~dm)sRlDu1nT^ov>QQa~rH111?;$8wLA%Jsx2l6W+ zx(ZpN$Cdv@`=q>)bXi$}I{&Nud&)@{loy!KGz&FFWOJ+@@1S^eTC5-5X8L_3`m#z% zkrQ?jZ?2qc3#fZBBWbMFDZg+s@l$Hi(cO2qu-0UCPly(_mHXWZLV)=@$_4K8nn@V$ z^vqf4r*tC@h&qaNuFeYahRxE*JeDmmq`qel{qHl*s!Kl+QCZ}%Lo3kf%ZD>`y^ado zpBPAwHW2|c5azteY5lx+e`yuPKg{P<8W|AA;S9oFp?#M2XHQvn1@I*IR^d()FU}b1 z-@IdNS??f?veIAb;4y6&Ry|SXV8sA@>cV66myDiS-Fiu!jPpl(_$^9T^jG6B(!%a( zWHrBK02ipF_$r-3Ar6C!`fdbCn-i%qv5Ijms5?AN>MaZg9SX%iKjM-}voAi^4p=2X!iKfdAir zHtqr3*W1yQl_3$wRDyUFQ-Ltk;NSWQN`H#*JdXT)K#hPYfOF}dLmd2&T$iwE+P|@_ zRU7ol@&Bk;ph>8DF!bVQq6y$zD>(58j8MP7eYFhEo3&A?NiS(Ev*J^!t9_cP>6Od} z@Rs|;pRgWVYE#E0w9^=0UGoTZSh=4i;1*)zZyEL`Isu%WcsyQg2T4$r%c$kQ`syD4 ziZR=pap`xTre|@iz-14B@37F1_Y&LPQJt|Q!a$6RwOW{>e>BD4$vB`NkEu(Q1aS5@ zoolqqEvJA!#&+1P4h9XS($~%jzID$PqCyhL=WhT$Wb*Axy*`ESTYIj@2u7>SRcFC&|vrHy_2s)cKj@p}1T4rzJ!gJ<7fr+83h=g4T z!NYTqLS4YP{QykCq6_qt|AOwRgvxOh;t&B~ChKo$Q65as=)Ko2LKaoucrw|K7c;z zHwMS@b{aUz>rYZN{d~HoFoJ4g%I&fBD*s^5UnE=D2D?JvP^jzw26$hJ@Rs$I zx|vZ^0UWQ>&MrXQ!A?gxAQ)ydI>CF_=Dc3-aI(xX>N}yZc@=;soHEyQ@nDwqMws5S zlEkv@Vgv-~+#9J3bB2x=5KPDb__+NIUo(UBxxulb6936{g~1ha<3yiG2p?09Z)#^U znC=JaIKRP9KFx(j_v>JEW`AQ!QT%SCU-t*w{A9uW@(RrK=5nEf>d9pjY&BrH`dIZL3Pr0;a`p{^0?* z*;Uh&nt;{6g4Pcv6EKn$x2cLlXX1TN720rmt|cMmny@F1 zp_amkxt&ME#M{RVNzIqfL4`jGVT`Q4@!3Y#|87h~f}25@^*!8*$-7c)w)Zz2?` zIv@PP%HWdh3Cht@gp7(Pm%ycl2Ula`NGGe3f>tVosMpk1?}X32*WqF5Y0lN=tw>xw zfchxjYexc`en~l@!yKjQzh_T`0~P3&LL^m;%|0ULT0;Preiw_XwYgJfrN7#>-^%)R zu0S0oYA+$;NtGuj<-c9d0Iq|p)pW<<;%b;<0|j02^9_C1Q)(JvA-dI^pu)9y1QNgn z;8HL-VLB{s&r;1Y;6B(xz1>%8u@V2KhP|U(u2w7o@Q5THZogNDswbmHK1C?It0qR( z9CHdcZ%JwQXvjc=Cjeg>exv$Wptevk9m(^566fvzQ`#C#l4?;;n`{Dbf*o?QQs* z(v6!TEaQXSPK>u$c!MZhr{)^{f3qkm0Y4asJXj1F3bqtSrXYm+!Su(3_rEig{;??4 zYAiZu7B1>rEhg>M-WMn|j_SX3TA08VU@7vD{CJ15wYJMJ;YnEW(~)N?R;0>s1mT0z zr?}Hmdcb??=9>}S_z#oTrA5L6VfDO3G7WE}1k95Ks=P(q#{@7z*?RZWQ+ixvM{sKD z8!w6{N4SF=6V|G(8q0;Pma=5uC7=#Rha^Qc6oOC@$zeT-Bg@ectZ^E1umR`NKOrQJ zY!d_E+Z@K7apjs+X06rvyx95UUb@Fv-J1?HBzDFX#2T6)t|r|0*M|7dyR>RVrIpDT z@&MoX3ccpfI!%Gk0g~@7GywIo2|EWV^>Gghsg8pPZ!v1OPjzlGeeO&RCb1uAk&nTd z4_`d`j%IR;>Mq4pD0IC{f{iSS*(L_{)%=Tp_K}wlm~q_e$D`_g{B9*_iJPT};~I&^ zf-#C~X>Tc#rpZ}Q?+Pv@zfE?39Ua#nUlWnU?oJ8v7S}4TSz?rrv8YLHxdmDR|xvPi& z6gP?pn{$%*IKwJ?4d7&izQdT3i+vt!2PrKcGuKe_X`ezhq4iT!qmprSeD{ZQsfSUto==mTV@I{qR;CqISA(Pe&}RI`q(a z0@!Wi?~1FF6Qcn$ho`o}20638!o`?8FFhxkKkvfUK*d|Bu@vA8aWnKx1Ne9J#eh2g z-rw<J(xQT!j{Ez~HM{oNnPbpw#S}?EV20;cY z%|@VLNY`eZkm1BQ=qEG!;eWr1(VZs+*ZESEnoJ^dl})Via?5>vrs)D?Z_g&H%O1RE z$ZeWDXpsQ*fLT4RX4p@?j2|@I&pKp8DCu zG$oI5deh12|9yWF0x?I-<$@#!P(P57H!el%5Ii1h;~K&yK0Avk!A!RpLp;QTt>P;& z@dR*9J>?Xi_n7GyV&%`B-BVEWCo3;SX?vDajChO zx;?Tj^6N0g1LHKyeNHk$AApOYjd)JE+kgC%&T!#IF~uFb|9KRWDkiv#>`#5ZkLU`3 z+fZBu*{#I0Dj#L%RrW;{qE&vxeGSeT`n@h6wXiAu9>7(wXq&M2(n8e_OwPL$<$?^x zuIVIuuwaIb;!x7?D8M|j{O_PVlAEK%YX{!t>w;ahb61E4cZUvv_e);VE4ddIpe{VH zfqKGrB=Szhar|WWRlnqobR|l_v@dJO_+0DMrwPF8xGE`sU2%uxx_^{WUf$0PneWNn zHOckN6^VYlr|LZeaJI;Wvvkru3GAi9x`hkk6Ru9?^kU<-J=mVcJNQT|@G<$F?kkv* z&oPM+O(OCe8KI_U>eq_KXpgFP(oB4P$LRfJ;R?>Z`mu=QmbEm(0H<`e{9Y5&EXlnOD$Pr$~|f z2igh1KbyPdHnINwfsaL}ht3mS{h(fxGVCXXq-$5Sq0o3(1K_0e$jox-Uha?gN3K@d ztZL@y8b@Bwj?Z@sp_x!tgOvd8QUA&JS24Qa=Win^A<-1IOk<+$;U+MUyJ;abs}9Gz z0PdBwE6@?kGopwbzeS$1EjdJ%OWoYC-{^`y78kuU$&6>d=akPuv^t{SHJ$_slJY3z?uF;;8` znM>F@#x6Zqz#?v;*l+Wl2pg*KK7PuFgl?qNF(yTV+wC%D+IP{1$g{(M86@mLnX|H1 zx4yr=PJ-OV+MfFLMI<&y6T)o}(T=ZeSpfc1>)SY7BBg=M(m(Unbh=v7hL@d+hO1x? zaTW4+G;3}E4o!xy##3y_!;5*f;Qf_v{_`ekz$SZR=Kg`{0;&@wSg#u4)vDrkVFLHMK|bHUT*@(+WPq z91w46vu%J}aqGt_amecHs1041r$52_aAi)%{AU8_rLTBMS&jhFrg zQX!D(PK>17s@zc3akz!69KfAKrg2kMRk1KvE(CP%5=ZW-?yibbZA^o*Ed3$0vvL8v z>|=iYCatfILzJKo&vp>+b|JNNAOp3Or`s>IYWegd0Dl_Aq?JnvHu7CBFC`@FW^cRQ zDZM=W#x~Pwc}m>$ClbKBQ~Hh(l9bIgr^oX6WLgsYP3()YCsXFaQ(cE=!z0E3d_F<{ zOKKqQEmh@TwYiK0vbqzLD`_ONjR-yzFF|OFS^!tm;x{8HlauUWxvnf6diF6<+tzAM z*Dk7ET3^=V^x*>VCKKsTKSQ0;c)A>o|?Ymc9D0x*~a z6#9!jYbqVek9f{=t&MS|>pw0=BVcD>kF5Z8IuVt(;=`?_5a!R{RgF3u{QWPxA%dQN zciO?fth@<{19+slwFWwh@u3ll347^TCwdgbQbcu|TwgfO=(6Q^M6itp!8r0Z7iN2) zT=V6FvmA1j#b<{HHQpr7qGH%2v~7@p9dWgDr&3;wXXAi>g8kpZ(pA?#nq0_ ztSJ9?#6qmirvRZJx+ej$qQ{$o(9ZPl2?ac4em@@3A(yh++$!K*WWg%6<;}9BM3&I} z!`Y);`0z562gA`?d64LYAJo|mfXli}>@O5v>f{k(#ic!Xgk_glG@%=kcZwL$@=Qp# zSpxX+qQOd#`oGJ>30jDv{+lr`J1!1)kBP!AMFjM2wG5Qd#g{T}25ffa~R;Vx%{8~G)!)@1a9MDmUdU`7YK zc)tom%GE3p4nhi)X=_^xe=xLOmqkx&KPvqJ- zBl98!mC5^UfwL!p`(0k_5K#>bD|1ULJ~v?DpLmw#yTH^~QG*?O+*{Q*U0oMOn>L;a zanF59BZO~93#b!pBN}C?*h^IDat%yowd}6;lYH@bhC816e?s%MrZRhh=yI7DSbOFja8y|Uv!yPl7-?#hsU5mESh*9& zz|FB*$9Heuu}R^z+f&xF=wK8RjvyJqwL+QQEd z@J{gIptD;~w@L`FQt-8^aec?ToRcbiiyQvy0wH30ynrufD6Gs$x91&9_*Pl{L9)3$y&_=e0dTIW*eASo z`IZ}OKhAuq0-xrwZYZiSPj03}C3rk_IuKthPu_Xko}uN4KHoM^*W+SiMf!x2-L`() z$`)w5$o>vc&v4F+LKioV)?7R?5>2AW<=E*c+9fj*uM#BI`eoOj3*fp5VHO-V77f-x zQFg^>QH58PwC{yj#1T&WJr?(mQo%lOTE-&JyGM~#PHBF8!53N4; z{>PS|wTM_I_+2s93pz11N}^m~i3pvWZ)c~Pb(+S7jgPC)*uI{3XgPZQ_LSEgybxyE zi3pe}72%>o$S)aTv*shcU(MP3FTi6s;8k~v8r3hp?6Efh_z6*61+3)G+xxNU?CCJV ze7Nvmjv@M899oDxLSMdbf@X-FvUq$=pm6haoIZaxox)BD-e$YGdM{{YGR?q|C;AMi zd)Vd;Iw9xqpq*L3SFN#dH|=G?cVu|4eX2Jj3z=p|0PyQUfzRqhd(*#g%YtFVSHm)( ztXIRB)3+*EY#mbf8{+_6W5C+8^-$LQ_5sGm86zHpZser@5$@US8rv%Pyz>JxB+}8&Uc$-o8;efj`JETEbi15G7NgG zQk<|&%B;RrC=$3eF2%)o3K3B|^xiOll+;+D+`BpKO}qoLsjKzanW@+r4p4_Y>7v_p z?#x)F4zx+FVm2{tYejXBcX`-wdU01i7z1$;!cvJuo0-Jv|Go+Eu2E}?F+t&XA*R6f1_(dt< zsmw%Q@{b-Nlawvl@wTqd3_R2sG(4wQsw^-1Gtq98w@Cs9fgL%S22sD>;wx>}Y9!(< zpze1Z7Dt)G_WmY0jRN7F4f${MR_S9BF<4CHK_I;J)PrW(1Iu( zks~-)OL+sr;N(QJR7o1l#qOVJvX-WfCN{YSBB0hk5x+s}eK*XB znD-0JGj+3-0STN8EY0zrsjYv%Sf4^J8?Ax&J=!Pg-H>fu$O9v?N`M2W&IbNd%XI(=#SnX@q`FUn$qPq3`()V1JJ3!rSd^rIdS;S zx$jV&c(Wn7F+`m=cD82K>cYTfi3O~Wf*Hpl%o9?lQQkl}guD5H*|P3pGd04pvgPco z-`;gX_&g?{?qhKV)2xPOT?PnNe72!a{j@WtbfnZ2!|8Zk zgRNDQ0PfuBI8)K4D*&^c{UFkrPQbqUiPgj8jnwFV^#C{jy#|0Aogh>UZE+bOC~j*` zI`g}<@E2;}`@*5DTf(a45Ez1KXG#Tks$oOJTOvQ9rZx7%nd*jrCFbACM$h?r+$g^` z8bBScyzlkOjfK7AnsLeW8k>m4U}C&DxzeL`vt)Ep3Ni}7sSi|tw2XPUT+0alx&A^; z8F*bAPW8tYGd|Z{s+rOS3>-)#86JBp#Xc?Uec0m%a~@^LbZQ>m<7l^TK}FWDcwoB! z9c!zK$p^Ze26s1`Ki6Rh)8~UnjO;-4E!3#svkeV1U?!7s657$b=~ zIu5~x3!Y!wf)>pVnBe|ML5yX3AFYq%in~q1o(~fybx-L$MM5V35PZ!}J4vEIoK@Re zJK9bVeP$~5CJbk`O8hNtb5M*w6-A5vS}raHd}r*gLtwhPQU1|DA|A1ZGWk*RDndcP zMA9n&P;)TKWp(zDUrmAV?ov)RTzvH*8lWPjF){Ue2->u^fvh0jJMH!dUDm8^NG zNSz329A=f_45)X~<7mjgl`RxjPNak!5q3RfRj`l|V^Bi$CA`7REP|21`UBlMxp~+n z#u(3se|Q-fKBheZbX}Se^{L?yj!QCNNR6U1RmbxfHg^;w`4XMED4TO>_Quy#u=gYC z!)hKfvJzmX=>>*?JH@?MX_kUoF5q}5!oUCeQ^rrCp@$2N&aMBEbyrbwbX~ZpaZQ4| zLx2$6U4u(-cXxMp32q7Q65J&~a3{FCyIb(U`Nr61?~CL9A6p+rr^pa+jv-he}reYN-m3rRP!$2L&9H6^WvJj%wM6GCqO!R9pRBv zvT~lAPSe=v83&7hT=ye9|BPz%uVvg{_J= z&^k8we#JTs?8TfT1ZTSx*PHNMtFE1k)|hEawLa-^ZWEgR%a(q+7ySvOClk2N|77BD zSv)YLb4>^jvXT_LXTEn{lx;HI z3*nX1OPYFxBJA~=@2@G;BW?F&2{tH^zO`EO&q9^Bu5IkUGwebVuPN?Jl>_FiLI#ew6P$=a3Go>gH4DR{N1Q#E5#Fa5niv=aw zqw4fMTiR5u*T%HDmYz-L80a#9^!%-UYHt!wb?IUCh$$*JC#FgLt+=&?n1E8j;H!h| zWPqQ??&P_KaC1UIhx5|)*rKN))SW5?yGm%pGbT9bjQ{`o|2?ypB=l{f*eZys-Se#5 zHFdy2*AQbfBmh#fwB+BmE2$I#kZ!Il4QKWBzn_jsHOkU8Mtw!v7gXcQ7#I$B!% z`eb1fYg&&iT+fM0@#Uwc^~?*Zcd;! z2K7@NY-%Y;`1fJ@BTvaX-mOBx!ClrFd_(oxG>qpySzl)nCmR#-*G}a z`S5(0S4+YX4O5v zXc}A&aJQRZkSVBVWsGr+nDEImf2W-v5frEd*chPP9SQe?T`EZwnMk+q#tZM4nhOUJ znqQ=H1Mq#<8T=UhW>ox`AHnxsh+96~MkinEqjj#&%i3PDX)?CSG=|#)(^a&Dz}^?| z2;6n6BFk8eH-_i4852_1-6YsMM9lGceYg9YjBsqcvUo!=6Za%_?uP6quHza=f&`XBMx}d@yZPI5VboBUb{?}O0jb&A1$z7 z&$aTg-)&R5!s*^>5%@PrauaH4HBrpbj>;VHc_HmavzK1|F*R^rUPx9LqDcw^IB$3% z^&4esF8sde`zm+ejUk(>Tby$TGoSERGaD_NbAXp7-4^WZnj%MbTySDnEBrXHlFB4k zoZ%-cn;B(rSp}P`zvt=*yjI#XGzY1i^t$cR&8~&f7?{LmVImJ~LH--yS(UV)-w>`c<{{8?Mq4$AV)sP!)u8isxXWd5H$tiUfH)1$z(vO->B zEE7-pA1Mp9fQ6mGU~M&8s-9BxkbWxga!PBM?u%wj8uozb?G>d#<2-#vOR2D-7!%Wm zK4Y(||LHgmPIh@=ZHuH;Fp0i8dM}T1ufxGkJ2;||-;-=MEBr+UYKQaq?@4R<(Pps= zH7!ZYY=QC2yVnX7?y~LLeek8>Y}oa+Bs3#k2gPj zU{(&nMczK;*Dp)aupp#>_WRNnYQn2(N|`YxINn;7=##`WGH}q*U@N~B6Lg#A?JWy?0+E-E#&mnw4bawau2$)2z6M4RFJpm3i$ z{iASkD)F1k%DngizLRF3ml5i{Z5e2)=;{S|cgjCuAHZ0XodsFdn-#KI0C2;iXSnv) z9q8|ZhXteO+IeBQjwbP~?xt~sZ_Zi4|MNU~uUQSAGJ>%5*sCYyD+I__X%nwUBX{#QLzJ75{p+44MJCe%J%$&djII;WTeEK&?Ath3hYAQZzScM&@!jz{xS_$LW|X(kdEy?oG4c=5_V_0`g=oeT%yio;EdanoAC?|J$A zMD6%nE>nVB8xioQ+d?r%>^uMGhfPMzhKjeiV0UwGXR(cuC7Ik1Zr1zlGhUX3yeRO6 zNe_W^FQz{*U&aX(Td@MxM;$0QOwzbFxroGSCPvUZEMRZRJv8uc>lEJ0Sgo2{>pg#iD-bSpQTMoWg?-F@!Y15^YM7#OytbCC&!f|AfFH5ePQJ;~bVEN?GyS{bESz=Y z_wt{k^S7kFmp$lN`74P7FLg;`l@G(ny8ee6|A!8j4%$m#+U z?<8~_iE3iXw7UNSkHD4}L#b=V%<&KYRSx+$&2ircY2(9B z=$!4KtN)>@pOXXWW{hiijVI}Z$c!+B^JDJ?EmBc!jWCW6rbgJG61g-g0d7DoA3I3^ zQ}C2a$xUh@S&V7;>rr`uvzvrx zimHX!zx(Z9oQ7?f9cQ&3bq4eXkx&!>=)xBS%VF-jOv+}WQV=CBhQEuGc z*N6h?)wifirx0Ugl&<)?FG$(*T@{e6y4EJyL-e{h&#i=x0M~-8=Fc0aWLqrf zW)i4K7bR*F+p>0hC%<}cvkdS?BvSMk4)0rO_q2Tu&e&>kKj+MrKBTr)7_skzLA78% zGdE?}+1=03jhR$TXI9ud!A9@^3m+sls}TJ)&{(C!8%THiL#%w1n&gwyW9j2z<9=0# zQp0~Jt@}CP!=xKLJ>Db0KVDIJH1RMTy>A*_QYz>f>^Nv1{g^cm2en@-pzShE2=L(P zMm&lZ4YTQXesokzfnXVO(#MpIkJ_zj$hI2(U#Cxaa0 zhc~P793$K_{-$~|QS`d6PHpkRujq70i1r)c*^{&oO!WJwe~*SZo2*wg%A|Y{aejRy z)a|-1qS`SOpW6h%usLl0S6%X$J6iW+9>oqZQxCfQ8ab-Qr#nFUt)Wr=nl(<( zz(v?rgrc(E^ZILo3c=HgWzTP^Ll=7&fYa`{W;ygRs&t!rFc-yClsl_)O4c3+slJgg z`F3(-ftxtV%x%eRfy1rB1BjmYRXn{~cV@~diCK(Qh_Jj|u zE8#lK^m(T}!qYGm)erlFLUh)p{~3xi($s`CM zwdVurk@;oblgUsrva@HqFd96;SoWnfE?mr>ub^ zz%gU8Q3|uQGR`hxpYl1Y(4StNB`~S#1~0qs<(r8lz|8~^qW|~odEVHcZDR>a@R+(& z17q#u9Dyk~KXoA(>QumPDM!Y+((!maW1wwzEXqkp_u<6#HH$Gllg%f-t3p6a2Y9J? zQ=(m}NRlvZ?R-;!4d5uw=+ITP#3OVE4437ZXAIclC8xdq&Z4HD(VZrl@=O3;@Oq$E znIii1cfsIjLwAOxXcVhP6KO*S=ZjLUe0(E#;a&Y!2Wh}+B=%@y(oi*C#+tgJ)n|1l z-aqH%%%nLUZ@NJGUAM@&ifWai2LJV6f+*ItXG#&MhPb&9g2pjO`OZOFfFlybJd~;o z$A?5>Ti#ywl1K5i*C3rDAtA(86Eye{(f~X%RIxZjZhw;d$8A~mMT}37CUm@XLR8jx zNLDiBJPjtm$4q(ciz&QLmF;GDq}w09^HL65oiqELzd& z;sU;BxU>R>C4=&v)HJso(R;p4wl9>-{j=&Aa9V@~q!UIi$nHk;aEF`!H={pB?)VfXTG7Kj#GWbfXHSSM zHxl4HUHGO`ruI+N=Qdi`z( za%S)4+K-I2jPV+0u%fzpekC2*9w6LjFwa8zsv`$s1AK*uSw`uW0KaIvbL_(|ifPf0 zuNRt|jST-9P4xe%k!l0H+=`E^wl=syNgVB)9?{I9ANPePO_i8>%fT^98sty~z~PWl zRMtM&W69F(s9GXPOt`sNQR84+-;*(NXz`GZ1pwT+%q{M5-=&`Q^TIT9@q-6STt)qhRQiJM3TaI^b^jj8SqiIoInh_Rlfjp67urV?N0~VSe7L z@3>_YkJKZ$JGfu_zK7A)vSvRQ1Rrxi@<*m}UfdxxZ6u+n>YqIP0od+S71zaycSmrc zyDiXT7Y9vtbN?1=O!V5LPaFETv>*-6ma^*IJWGok{(H)znOrO}BU1VT+ZWii9&uCA zv%mrN4r$<>8Q|EWi>&*$u=`QF^FS2$Td;cT980b2LSl{_v2ehjF@SR~w=9Lny_qPo z<2A|6{zVu>;|r3Y$esT0*}BJ0V`Sd|&LB@2t7*B|;(lAzIUei?qlgo&KRT ztVd9wlFiJ{w_tH353QOMCANjsErO1BlVNEQZ{B@evF|y>tnJT~` z7c;elCbND&4pi3ku2(N~Th8tuH{jT`wHrGN=mb&%ynrI;kIfI?5OiwwWg%B0s$K$T z1qFywxL{98s{r%=`5B4TK8;qq3??trL}YeP;?=EI?ZHNof^7a6esU4JMk;V;L!ho5 z{+yZQ7ks5VOifvSjt>Ppx;IDuci=vbCp(S?oVux1pxgS8VScB)wJc@NMJglK-}%`q z)EK6PvCR{H_I&}Uy|>U>sf>RfO{&jhsS>7+{A zon11syQZE$=E1Br_(h$1#OHb69*tl2P=jj|WPg<}vo&rLtUkoo%~&V3qc8uR^m=Kx z$3SZ1;oHAH0n)W-I?FxIwUYl-{5&eDXa00vRq^4XIMQLu;I*fPMk)f}eP?hEB5H49 z^5JBIHR-PXiPQ^5XP*)FaXO-sF%7(0zt5ksAlK)C`VcS zM)cu??i0Y1eiU>B&}jW_B8kMe)%|j<{Q9G0(H9)%jA3JATsTdZ_g4EyuhDrlkwP(4F3q#Hv<*_uX zWxZN}Kk=PXqUU6j$ixMzWdF8Qc2~WT41OfjxzIX!W2RYy1UTm>&w)RSE6&Ck92^G{ zQ?DADxf09e6H~b)jS_n?SsDOu{_tYuJ|g~C+C8=XqzOv9K0-zH{dpl`Hu5#{IVO>=lxHv@+l+O8jAn0 zr|Gmtk6HyyV{6@Sx}P%v-Y@y_zei7sO}A5zWeR>`O@RNMhlzHHjnCPUj|pY!R0eS8 z+G#g6+~Be?VzOy^Q@RcD(*m6Q)Oj-)T1e50KEAb>t)M?5KkQ>zJZc-D$e z2L|dNVjB!94MOk2$53!^c}`0xQ;8Wd`%u^v0Ul8*<|M?_4LhUC7v?>LI8A>tAkKW5 zhWB?PAnu%#*csqVPClBLn=PnGD)$sG6K@hOuT3GGHt{i&BI9_$-?_d5{G#;!AEg5x zf8-g82ZY_}ey2enksij42GW4^%=JiHIl%qA2}2#D{VJ5Ai9Oyt?tKLz(^spp$vo>b ziJ?osp@I9Rkno>em0GDtii+phy91P^jo4L3=sZSCs})W^*4RxQf%I6O{jD|B_s4E{ zg)sT$@_E9WomxK-Lcw<6tr6rEw##Boj}j&j67G zXIF51JsaF=Vcbx4|5J<(JOUFg5Zw&pxxT|FU=k2p;QBf;J>g-_X_{W4d|1v8H$niU z+qmQ9`nqE@CDK2!be=3+7||ABV5EE|L}OZD=tdL*KQl2A)h7O3%|F;E4?SAo6LvG1 z*iyJ-7ZNO4Qll{O?YV$-T{(92staOM@sJKEh~vM>f(>sU({2++o-!=f(e`7(rgoa_ zFpO&Cs}>>WGuhlO4-ZQSG!J*&FIeR%WRnCkOt6Izu{01c{r0>nbGP&{4Lj1-UdlkQ zidb+K{_|is8goDRzSjl^bwMAoFU!Lb#C_3|Ys%J2R=U0Z8^N8(fi_3-g&nB<-vtkP z*i*}YA3?ZV_C&QgC)jiE7>D-$N=DpQX$rMtfCr4`R$Q`nD=RPahgwRQE!y*yOp9jz zVaS4e2V=xf3^wF+f|fyMegwbc8};#SSSUtHj3i1*Bb>rT7BZ&f8a%+UvGn^bOBYxM z?6)*8dGtS{%c3zKq8^}$Kj#kQ8m-c@B>=^6$`lJV6jz1pVhx+y^law3NyzhrBN%Wg zz0*6yORWXB=7D5HZB6UfL3;DprjN{zDqI_X2a6MZN*Hx~=#WIDhJf^&wZ_hna+ z$d`%34Ja~$-YnnP%vAG~QQ|Y#9|Yq8USmh?k~9GaKdNX*zH76i?j5pS+FuTlaxT4% zT&;Z!o&jw#?E1sghA>E&{^NZjGq(SEyRW%*D(it^*&;p6=nU9G#HRZ@3B%=1W_Kcq zMyfG4oXN20lMwGt2=iR8Janj%0mZa2euZJF@$lpF;#K30A_?hx40;w@Rm*U3R zXZRh!Uo$4DAnmymEVAAs3%Q2DIxf|7e^(-&3G}cOU7@og2RJjgdz5tPTJ=9E1}$?9 z^!f*T7`+l}X0u8$C6j^LI0k@c<3(z>!eky`JDaI-xm1mjy-pSmZc1Wk7j|#Et(?9B z{J^Qxp-{)lN@Celpmj28&W4;>4H%g?o13ZwJ ziRd5lmSE~58ce@j)2sDn8q=oh%Z${Il-szuUXa%xiw5m|bix$Dlq$Ilx^X~*=#^@4 z$0u)PcGCZ&`pFAOhyU_-E6K6aAW$p!UUr^cr?NlaN@|PjTYz|U(|$n%czjQzBzQyH zBUnjC+1`^r+naqv;%Xgg(#1J;BSenmg<}HJNilc6xH*cpvrVA$uQ0D{_k5Z0+Y9d$ z9$b7#rA-=MJWQ`@&pLHF-(!`9c6M6Uc{iPo1}y zNEn09qpb;N?hPBo&ri&5Q1)eO%k%_W2o;|1oaLU-v*^hdK@JdVJTx>FgQ$Zps8#q9 zFzSJ4^g#Of=*DK+4E3CR@x~;C36UxvF=?cbm^UZXHHEZ|0p2FSH!hzR=mpLs&Hh;$ zrxP|}_V`?{7D~k++Y+w!8DY7AOIb1Yi#8jPn!9aY_r2LhvG0ra6BFya*^0{yskbHB zXakUL5~UynJLHSBywD~>+r4d_9EHZ-Q#n;&P^#u%-c{BEaNGn|w(CkLm|E&@1!_t& zFw(g&pK$){KG#(Xq16;aRrnV9gox4u|{~;y%RH*-$|bOgsYls zl9@kjhbmsd!S4DNt7jFhWLQVpr}VH(fhDUI7>|-aHpmK@Ec$RaeNaF;ihA#htNZU> z;Xt?s;Zy2RS2MD%j(hASbOYPhBt>j~fLkXjiAGy%?m_MQLNOAIO5{#xdE=-fThL6@ zp{S&yLjQOpE4sz;3E(HnDO_c_83()By%L>x>3__{-$iccZn|AQ4bb2J zfd?CMCi_I_=yw(J)A|P4%C>_rgXUOXcnshlBEyCmBks65Ov+<+>Z!lavh)8nsyPXSt&M z9iDi_HVtZ0759c0{a^sL5TW+6f*X&b&eak3m%fX^hN=%%YreDJjGOfNk1DlR!Is%u zGgNQ!zw=PdfhOWTMHyG``hzUm$_*yD=O+~la>TBIccz>5;Rse~BJ`&lOu%@ij_*u7 zZPKuaBlacIJJTs&s$zh*P(>b5^)K8xv||6E;Zb0)aeb#fs+=@1lylyK|ZTT%$bL{Nmqy1#Zn}9=!;3 z48EbXK|ASTZKvGfHPq^&M>tGEhE0wiMi^NE>EutNVGp{>Ge_iMJbmnDB$fF;SA#?o zDfzhHmUE2e^8t>T8J{;lE@R5`jU72eE&8fp{WY08x$YzBq{3I8ncrZCtr8_xl&i~a zhb3Lx+n{Wv!cjC)C;9HRzQwidqpnznNwHkblvm7<4kMDGW^wYPa_x9^_N~L#YlEKvr+#iene)ut)zndKf$1@So zdJgcE+=mQ`h+Jy{p;P57^O42dPi&t_xbaHcf;khIXXRr6{=l0$vpQw5{Sd{GkR5jL zp=v(RNQ};|4v9746Na%h*pMff^24Ci^Yza}vg^+6mW$AcD9DK*Rot$(7o$C&n$-a5 zRBMYd5Qu~2Z0W57f!%S?_D^!Bf)+z~1f3Hu+BX<&0FO)2hxJ6jok$HFZn|g=^4QFzEkZb1jBaq&`N!hft#Zll#!cE;KVOuN$G2xte zt9V8iEgP7FjScR~zPm*Xem3zwa^f3dI~4mT%82IytvvG;MN)g6pbUw32S_I#BZl6< zT%g8Jv5@7;$mwfxs#OcSpqBp7u`Rn8EBFfVJd^n?c8W!bM18I#^hl$6-mygTIvwY> z43_e7`>|DUmdfUm&Q{qf9XIBXsUc@fA}`oh@yfu~*HN(dTa!4VQ3FW-7XG!L9;qaG zk&RBZAdG{T>Q_u*L>jO0JXY)=yrj52z}-!>vv<{DJm2yC`>S&sPsW-q#%g5w2HUHA};!q#dh z12|<4WU{I#4QpC5I*qP`%IT$B5s--;#i>GWx|820@t}wW(n(G@uizbQF<(B`^anG< z)IvZH?vN&07XPkrq<=$F0MjW-R^FTC^Sg;_q3|9~4k+GYq77K=h^rnjC|1BN#hd}@ z?jb2qT!+x-v9tAw?ey<@SAG=O%~#A4s~5;fFpO|)0Q^!DJ`xc%+z`4|BY}TgcwC_7 ztM0zURzpP@CNU+FKG<>eEAW&_2l8Mq+B^hxZJ`D7IGruFSYv(BYHkdcjs1iIq{qH? z2K{+@LBskkrQGZ@JDD-j;j7s=E)q9>>_DBa1D@h3-WN}H>`@_=oEe|^8m1a;6@L?c zlFJLfgP`QNH%$H!NcR=r{v9fyO!Uf*%KcnZWwF*YJ7FfvXm)`Mf22+E-|v?GpFc{tg{ZQ*qJE`d7JmWXJa0d>iAvumT|q}H({X2d zItQQ_H9 z>MDJ^ALMvXt&V|c;KrfoUj*>@2}_nbg<&IhN<~9yU$ppu0)M3`fkHp86x~lMInrPY zfj~hy45QGwBiSC0cv3Ue|6+97E5dGPY!EI$jgNtJ1*EG7(98+s*P+oj*L@B;4yY3A zyunT7#OnV^|66q3lLS1Zb_VoFPrh~Xd@ne%m1CFNi%9VKl|m3SFz|1LQxI<%Jftd; z{?drSGL^X&Y%#K7L0rfWLS32biDbZAd^ZPyY2^kKb9HMQ@$Bt$SL|h4w1YdWdl#u~ zf>;V4)Voo{YAomA3-Bg1e)}J7NAFLroT{j&YCcG0qq{^F?n%t}E3Zj}5rqO=^!#5y z@I{pAH$^EEFUE#Y$yXaevYYZ**+dumtcNAAF~mE&I=fdbCFQ46-CD#i6m=|g(}$;) zQjO?%N0pzs4PNjlQ2QctL+!QmCkndlfnWWEotS1tj?+;Zda>*a+hF`UP)t?-kLFfE zh-R%Kx@>o(%lf3YUQZd}`YSZl&wSnS5+49A0lWO&Zs=KMWxc}l1pU9~IO%SZrmUz< zEm_Z4#1sF|g&Bm{OUSeJ7%}-anT0*eZSu!G`a09}WwA_HeUo^F4J1IisThWl7$JiV zzXv}g5<f_8?#GphRa|zX`>7P{*M2h!Y)D<`NUuD z+GnD1N_MlHxTBMB+MgY!sF@PmO`Sm^JT%>=P78Y$n`wG%~NY6h5xV(R7 z|U66Z@Ns0 z67+3!+es70?Om0S=A6r4)aMm||0dp;o*u=9FeUiRFn){bT3WZtm>jBFTS9*lp&?~0 z2ymm={Y(fOQjw12McSQ@IId&_rduV=9R&yr8jOp`WgyqQZk911_?1LDCgxUy^C8M6 zf%FUVCfvEk0<$G##t&E^eevMoCTXLuo6ab~K~qGf)-)$QtLr5rn_v~8HuY!;0pKUn zucRr{nIijB`unKjac`{RC|VD!QG7+bCI^bKzD)cc z_I)G#F^b>h4Fe(2jl3Ac)MThU%wkbi^+xMEz-9KZo`e+sRZZ+8=>}CDj-PZDMZ~kf z;f0~L);gw$;sxbxE&fE;2H@6c8yY2IbfaPn%xRl-IYG^}G{i04 z_ek8s0FM>PiyxPzQ(Y8961uQzSd8w?IxK!>W^sTrA9$usVF7rsGqmHju-*IWxtYS% z5|PW8DMIS8Q*m1g;qEW&n^4;T$NKp!bn0)a+AQAxBtEpXR*}D9Of_)9iO9$U2SwNvQ|uU@c?;1w(3q3 z4_789Kb_#2H51+BmHNlf55(#l7K|o{;WFSN|9EQdI?C%th6!`5dFzppf=+M2%T}ng zy7JSV0oS<&JXdyr@!y#rD@v$Zdbb`CEA3zCJ|u2*sUN@A%d4S(;2r%3)Xr!B#GB?S z*N=N=oV(e`(J~kj0K1+l=?}Z`L$9wk^%CIpUtHa>GQ8zJO%&&ZwI3%0_KhIqzT_J> zi`%5b5{doKGW-|SPeQ{@dfrRh=`5IRcEV~lf)Vemcs0rQ3Y&4G6-d9EX0;d^zVU9k za@UCVJDUy+pW)#DckBH^Zamr$f3Fa)-0t=|(!x3Y(Q z+!nZ#6;0nR^AeoI&Td)Lcz|W1agSW|EhOFnck*=Tk}*}SA)I+Bz1Tmlye>`;YiKA7 zbGEDtMv3!$BKd%H{Fy}air)m&+N~YY%c3VLDh{VjxrsE_@GJ;YSLpcQOBKm8L4!mcVKo0^yHN3?8{8c@S{16Qi+*sz zP~hmJk?3GK#|lW-(N?_Y#5}X5gVqJlOiWt-QbR|V>{=om2>yXdgR58wmHdu?ocR9Q zf<$!Z92zJ__=PR9p*Ag8Ndk|k{{`>Y1k9S%~gCc4L<^R2N~JwqQlOP ztR-w^3BQJKFHn}-6&1alf<`xj|8^4p&%KC;h~2oqY7*R@1a+E6tsh=FL%!AoZJDcZ zwtwPkCfPLyilN-Qjr5JC`0^ziyEyLcYfP9OrqMh_$L#hkcIla{W<0>TJ-@X$8p~cd z8I3*33kqh$HVt?_F)EK(SMEbedU+fJoF`)B$v#y1ZBKILMj)g47@@LaoR`60&X+*0 z-#U440^s+-r@cNuh6mjbwKPE%0Rg4ze zT?ddJ#4}0IGUs^uP2N4Zt0Y@(w=RgNCc?>d0GXy@Qw$ee`O<&n$hUXnB1aip1bELw zNwZS!OVP1gzAz7#LYzpd2LS06(J#TQsive>D)@)+X?f$BA4H^nl$d+=a8k7@kRpQT zC?(}E_c*^?Xlj}dr>s9kzu+rnZ0Rj73j}x2d>j7_-4CQAF0MNjL@9fGCnNdz!(Zx^ zqT8;uJLgFJd5n}=X6!cxz~6jf7E?-nZn}~!@b^aj)afyE^Zl-Ugbpp(gLV=Hzz(~M z>ap)JayHLqU?gqb0^&sVhBLq~@~V_#3568i;<*>1B!aY}*95#;j+D zoHxY3XWu~A8X8MJlb?K+Ic@iKZL^v5#N9BN0AFAka+5#4%#a$gjyI`%XKiO(i{-OY zV1SK-sP?k4d=7B+TTS(KEz5Mz64#-06rs4#R$41mBZmO-w5GVHKrvN-Hw=$|;DGy{ zyYRJXlej`G!qPzb>c zsEjPf2u1)GzqV*g4_fBl&Dtgy(BLGyJVB5e7R2Fg=Y6T>;M@TZOLqYVdtFt{HV0Wm zW@8^bs%4rGKao{VM@-{58UBiJqXN^@+rxy8UB(P zVUDa3WsES#FXJs;m)Zoyqdo8g%$;Tv=1Gb3%o?W`FDGB{vny|q#UwA{>zQa zTC5UVf~Q21(qAP0FTKG_JL2lzxCn_=~#UoYjoFf5qfH=`a^*;ovb$aX9eJg9UD!j z#_OVdFp6ip40X=ZS9XYptRKRhqx&w!=;a3i{?gqL4Y!h7sG`|sXicWrgHe%Xb8+Ih zPcV?w*Xg8%1#s~L_Uk=UY*%X0yAZvEDGSqZC&sZFg+HW2`;s{Rzrl~#Vx?x}GJ~6M zePO?)eyOE<{p%*aAZ2C{zyH^64sthdAbq(_yC^<+cOW#W+-AVx{+Ex9C}njbCkyFc z+P=tXZg4_wDU_{(pG{G+{_LI1JR^B{!>`eMdB5?)gJjNa?YEZ`kgkQ#x`1E6UWBKa zEYtTBg3PN9@ui#r?ajS^`q!5pHB*4Ap=t-wp_g#$c`e;yt@$!3=)fKsXh={(zk5@$ zAvvP}xcfGWMY~aCpN_ zkhb7@hD73`PRzXWBJe>?f64=RU>CXoKa@vk8UE*7SY0%C@2|x$u;?;UhNPcL6l6NV zb2i$Fcb_{x%RH9TI~3YW(_1IxuOcQoqh5M^a5)P$umm^$Aul`&_R-df56cYP!yCU2 zMkMxRLUrB`c8e4$NU~8B0L9d;_Q9?S7qUE!S0;T z5zif%FOsRZKO=#3{JfY4O4O4zm0&{%14U6YP6U=ty8dKTQl^-KD6hIvfTsxux^9mg z6YJ&0*G!`C`W@r+t;aXEH-7$Sv7_Zs-~jNS4jUntJ?hcSBw0)sq9@KPOW$?mH7nmn zHR1(nUW6kJF^D55Y;zj|D|S*a@TUOPrSaZ_?IO;EglrT@rROxp?HETg^ao~~K)P`_<0VMQ6iCMnLSH-*`2WsP!@TLG z+-&bA(_bA07@alLX}**Te+oqV18{1Bc7bi(aBd%dOEnantp}B;u~HtqB~xBO_KJ^5 z2jH%Z{=D!^8{4yyJ%88<=aJ*u!%=DDIh0(&Xa?)@=uNE%NM~MV*^b{_@Hdx79V?63 z=lgW1i#t^>>wsT6#1*{tKYMMBAFoIL16DM{G6F;nmahqwV_K7Ubrh_%qrWJRQP=(g z=^jBz${pk-rmLQEa)ENEeQgtGy11@Ps%PEbass^=?*Sf1AXvQtbtBA|fSC~jkHYyO z@MmXKhg4GG9GSycnudLV3q*50D=@V|F%~h1h3>K8m}bos9u^ovzPBx9F>87i1Gv5- z%1=K(Y5s?NM1HPB#&(Y3KN7z=X!agnFkPw)6axY7@%|mA<@&)3PTV;yCvBA*?OgTv zj3_l?xu6Q|iiiaGZ?gSdAte6LXah&lwg24OtsG-_7pg^>O`{Wb_ur4TpuYj>BW9W# z-H)fg2!FCb5NUZ?#|+N&?-Xwb-L@=cMSD8_0C*bGq)`BC@07D-Jy zP}*-}DGICLU{_x#ZwigfiJ;9_fI48XCh_s~_Ab8c8a1)*lJ*_x|NM46f1nWU;qv%)lKm0pwUL$wPK^^ca`Nj zVOQU}uRJ9H&u?nBl*-l8vbj*{<2o|(9qfJ#{x&ThOw=M8)A2B?)-y{OuSC0fyTC9Zu-)1S*sPYV>YH@Db#;@YX{_@{b zsEj&r%6#!8a2_Qyed!^-$PyX1o!;VHN@pdS9C^Grt`bV0Fa)Ig^tITb(;;|lSJrNEt37r|uF0+++0Oy@Ik6z4dfAQ$M!lWO`hITR9_UG<^P#b-A$+ zZGeYrJbdn37V!9b#das?!?*U(Uc|nkl>Hq_zuKh0REKS(DmHBp2FX zDm}PT8&Yk8mpfBL`s+>sfTI(y*q(e+`oh(cNgMGU)0VFRnaEtgY)MOd#0tf#KLg8k9V{lm432;>0-yJmM+dQLl)x8Vz^GZAmgI=W$rM|XwtZ`KKkEsBU(azuE zkGSgR@8r9s$%|MQgBNV|96Eo13rn^9_8kQrT70Re!PUl@#aQ;#Kl|aHm|1D7miqF+e)w7f-qH-coo6 zGgtE5G!o%~q-3lk+y!;nU?_N8-5=mFa_%}<7z)zY*e{!A6rCqv6!nFHeu>YZu)8V! zvcyfN97s2wcS#x2VJc(!I#Ac2U9QI9JRRz~E#vdiuk9E{5)z#06^6hw_armgPx%k9 z#+haRvgQsAFIW7+lk3PM$y!7|2c&zayehaU@x?j8DDkKCK?rWwf6Y!#oB4DiH`MOs zlMnWhrI7O3PnS$4PX&!qSvPWf*Gv6-VoFAC(sDg~n;n(OK>FbV{uDi8{w0I=f^_L5 z4(@gFrH=Q@?%r~M)4$$kE_Q%NJr6#l3WmS`Xw4^FS6lhjfGsA`MYM04Rz6F>ci9J= z1DDVF$XdC&=9?I%K}3?kx&{<}<%Z}@hgp9=EptQ#3oexRvd{kS?b+ZBE(f`se${L{ zwve%(2Kx8;d#H5LsXw>@#pL(fM=-xNFT4zj28w!=G>_Ic=II2RpSw?*5(@mC0w=X6 z0fo@>)XWbDYsFvXSR&dDO*DSQ+7qd6JhK*=5W0bDQ{`K^bDTJ93#!%w-24=@`8us6 zPx0fB8_Vr`H=P(#u-!Kgl%C;%8&uu+d*CYA-}=TqLyp%dtxnm9wT`@W{VW00K3@mv z6SN&KB{xT*Lld*n7v9d<)BWsf0A&=>oLR$i1aJr({)NcH=YPpnXZV3ls=-&{-Tn3T zSjw<=-~9!n+v@Rfs()c1_ZUqNc0hv4q+5+F!$3+@)&-5r7jcY-@4 zI0Sch_H(em|DfLUYusaYv%1!-S4=;)@P{;(qe zd_}P#OghVGNttIU&{X2eHE>6v@CZ6OX6S&<+(oFs0^ly1FT|W7RA50|hA% zYzU(1?+8#4QRXKMsKCtxwl?|T21XR-1Y%T+Sb$``!%eQ%7Sc~ff~d>nbY*|=NRxvZ zrij;Am?%JxHiP{p5oQmj?rDg0)JbD4)fnq}9(*Go-p9qv{qlWQ>l(XW(%<7E34>1v zeN*DX&qfO0!Kwj|c)0EhNMKO$j)Zh4=Xk#}6DfV@8gyLMBJljnmG`k+c?Ec>bzVco z6sJL0OSIcKT<8Pl(WOHwaV~x_@3bn;=B`ep0N#~mCm?|6%g?(hJudDuLl1Y6fji@O zRkrO;5VGU_xf$RSK3>5*1`Dr5W7}Qjfv;#UukH1dZgTo8EpzO2HYyANN6Xx?aE|_M z=cb?HTlq)sFrMcvXlarx+2Dtmu#WhqCcu@0CtP^nc2!j_Y(DAqaya!(jPuURA=Fje zK$6wAr+}AOB6>iW+v8%uEz7s2Fa4oPwOXx@WboeB@pi|d=??ju#dN$Ey!SU33~aMN>d} z!6SiTt!ucDq4fJU4_J01UtDGihi2L$#gZboE_n^`2tTiY|0DFog+%if9=`0I9;U@> z1si}H~KP4vEnHXj;Vi!NdgnJ%E6*+vpR>H+Crxiz}$j4@L4^JMOOT$j9-o%XT5 z2KQEsnR^q<3H0^>Ja(<$m30)l9A&2c%`ToxZ{fkGQ!W=ZQq1^vT=+@b)kk2aI_C_`}koh1TS z1FL0ZP{!?P=bZJ&&%@)g;?r3NfOpi(lt%I4Dp#re)fiuKnhu>PJzsQEqelzyvhZFY z1BVt$H)PJG2X%?Pp|{2bVYH^%Bb4dF(BZQ)eB>jO*IQ^B#Rjc-u z1mOG7K_B-O_UrZ>?h@He%#_c6rxIWVeMrHuia5ql3K;;ngXF_8;XDBQC6K>N1&5!u{cXzI1TDolyN8qE*j1?@MHd$Bk`G@&)*~ z&&OuJgXw1M=@iQctR`ifS@bBkFVNcB1BJ76ODGQjpS5Osx%#+@9JR_TiY!PkP-BM9 zd_*T9HJbZtsvncs8sHBELPgzrnviaM#x=#4cm*Q5Nrezbv{lHkXVcCryWpGvb*Y@^ zDdH)q7>$7Vr>^=939D8<*M!unrpcq^hKxrmkX|HYw@_2)yu(TAuBlUAs0fv46yn~q zjJaNAuD|enw+!&WTY>Kdu9ef+l9(TcP$5%SCftt)Kmh&|NFO)N#Ahl(-lr_5{b*0-Pl8l$NZK!1GF+ zhYu(Baz8jsZ4t>GJx3*jG)W@;@jbw&dp&!C5Hc~<84)#N2bt0ORGI&Kr~unsm8i+O z_$BLSfJa!s#|Q6L@xm~?Ae#REggeVnB$FRKna8i9u$%d~>ksgQi`xwNDrFXSS2_z+ zrQ=Ovql|Q+hy^<1z?Gg1Wqa_YF2%a-=>JOgHJ_aFt@|j>GaE|`Dfr*hIi?^<8AD#Y zq=9q^ZMqiX%j)Ms%BAY!_J02WPdVkoSnCY;`Zu?k{k za}mjlLcMG6vFyP+pYjK!u8PW8-N%jV&1%P}FYT#FNaguUj}OB+9`&*Ba)ETE)@l!0 zC}>l%g6i;gn`tHdm$(aCk+}108kT=w43@xdsm@}wfs=@{T?w`#bd5i#!pVAqp14;{ zQYw_IC7@@33`iFxkrf!P_rDIFK$CZ;idZNdeHEH~$TED??!o=|>`e@Ci-mG|=m@p- zfycAM=;f4TU#z!|{7e>c|2lF=SaN(gfZMt=<+Kyrea2KQU4WBbd#hb3lh8^*7UXY4 zDPWU>1E&x%>Z!FZK?t&3k6T50WlJ}#dFrtmn{^2IUQBk<-bKB!i*s z0YB3^=vMwFV?m#jZ5;Iu9OMFAUEojU>KEfRg-Oj+PF|B*GEO~?j#A;*k1lao7DBSe z0QX9jOWjp{KG8WGYmcB}b`kL)M@rg)8f%8JMaN&^LIyZ*N;`d69{zbXcZFn;m;{5S z46HTc1-a8wFsI+@2Gr5k*R;*z-HJZHNfn5VHw?hcLs+RT@aI&vyqUl&+j&Tf8cx>*x8QR zzD;AAZy*};{`a6g2o!_L4%tVM1f7E8yek2rtm|Zo{jW6!LLigf{WnCVXdt)&J*7Hg zG8Q%ZSbot0X-4YX)_N&z*f;Gj=Pv-oln0<4@sz%u6aD@9iB?xkX0H7MSLxg4-kDM!n^fBsxV_z|Tp1?Y zJizQm*pK6^Vxm8EH1fhLRA!SC_S+bzWyb^3ac2_`6*93&31>3Upe)UwkMQ@#c|{EDJ$U%M zibD~>+ksm_P=l=DrTBlo`qG~oL#&7aOGNueO}0JlAm zx<$vIs=R3UM(vl*kkfK?^`WF2D8~KRhx;pH?ToQ`fujYMRjur6Zoyufc$}dl*Ot2o z{2IW8{Uw|;5Cq(uSQMDZ(lpEf)xg& zWA4@yW>^>Xx%gL@+PNSL2Am;2MjcY{;b1trm${s_09-ZX2siX8He6?gkd#R1&TH;40Jy7Vr|gJ$nbAife*D63MQ&wBLnz!%CIy3D;BV5eDa$k{b;!sczdA zJDr48WD=NvxE)h_v7maXaBIS6^#WCa^ zs{S_G*KOz{t)n9V@VoiDLq!eP%e>@Z+7aGrfpe1uUvCebPBA_(RUL=(ZF^YMOMu?r#l)SoLcyo3=##g?d za{_HbSm4*33RLno)qk9YX7L!1So+U?#n=iTOy5$l^uGU5TYWNR4AicAU|@$|y}gab zT$isZ+EUfRbI#NM{(9jwbW=|6#7i9D*}T)3%2yCpya9iIG&mdw$h!u*#lWlDDu%rA zpvGBv1Dq`aRZ#za59&+VBF^5Wef_FU2-)+uMRt!iN0n?zt#1Gy+d7~6Ks2@TtzCRG z3N2+TFRq}}o#xwGnVh2$Ys~p1z%$!SE&s|{AhkQQNcg1`S12(uYMzEX=ON?KUF_^r zgX=quNrrO#ai2Lf@h6C5Qx!8;1|7MtMYK659~4ZVPn|vj>8ih1BSDd?RilP~RdJ_UD$SCVc*Or1ev+EPHeJO!UD#h4Aeu463|ds1tRC#e;| z?Hb!k)$f(MVeca(fD6KzD(+(M=o)^|nii(AG%aM}oN^@mImh;>Ro907tqkB**ioyR zY}^D=kvBeq0b!?@?A=dD`}fOlmy;o8v}xehoP#^S7w(TW8kRyu(>na9FKnZ;f@UWD z^Y*>EnA$`x_(m>&D`K3;6f=Vux=iV1$70V#ZJ8VD!Gfym+>?TCe+M>KCR=4C7Q2w+ z%QpMEr=|ZqqEio&Dg03}1IT&89}d{SkB4tVDdtdM=u*PYsVBk`%Lr&7n6q$0XXx5-=)P^pjzrk zi0Yzsb%h}*TE8^Xpz3!Tk$?5I1X%!YRu2E93`2xHL2QQjj6sqwD!FTmbb|^b#oPIp z^4-l6z>}+q%F*u2X0etG+v^f%nTchf5F5z@gG8DFlDi1~ngQ+&pIq==Ct9Hxde1GA zaYbW&n#@&)o<99$%_9jxOw1SIAjq^?HSDaE=7@{!PswBJ1W zKsr3i2(`2;XZ__<0;zvs&>mFi;7{49#gKFVbJbI{qjZ4t>F`k@BIo|Lm7Z=(>x)y9 zEUHk;74Tg}nCmVydSw9beDyv%pWneKPA^7o&AiA2=m#ug7j(gtq_($=;wG{nECT5z zvf~aGsl;W9hS-^x_AqZdHNQ(!s<4IDP`q0nmsi0h)w=OLl^K4_P81=ePywo&^HvXP zbV^34M7dFois}KXdnLH#ODkb2&XU*l~#Bke^adSeGo+C~&*Y<<5dNUDOw6&ug{(&9NW&v^b@f~aptT)|J^H4i>BQbaq#EIJ;3?!KC&|^ zYPr3LVR(J6^cE~I7`z9G4bHXKBZQRfVOQ+6?*%xcC3z) zW+8xk_Z7+f_lW1V9$Gl^cophjBhb+q6l+{YSXt$;`u)G`0p1iK{94-9;ku^PupLd# z3!QX*6magFqv&vh;##`f*8}i{tY4Zw2Jg;i>l5~CdgPsmMxGsVSp-Tv`HrB1jlR(X zTt<$zC)bHipGdw?K^Z?$7f?Q5*jq$i9hsD}e!~cgY z`SGcN(=Hbd&M(H!d`=zU!Etp3dFVLY7&lV&hDY8muyLd14`bSI!@2qqooh}?0N2{; zqw1IEfPO!mkndd^i@n5Jt83m($q0+vFfDXB7OMqMdsiF@&l$t2RES&z^W2P`iQc?5H7xTIoecGV01_E5LD@5opwgl{6 z(+BKPn=}Y)X*p(mAR=4&wFe`$G3cJbKGHFxQ_5g!F=N0kJ7Vo1^mmsQ*=YN>?WL0V zcx};70-u0lLd_s79N6#nYr0nO;!oPs&*ia}CJGNbyL2g~m#KZ;0ABh@oUY_ibTRbR zE0EV{KL7Om;JfMK=a0n7i0o%v5~%>kc71itaYM~Sl9i>|QhtQ%!0a{g@SMnLlziW_ z&foR|@EyU!*VA!>-%ki>elVpShSzVIzikh7u+qlfKd@`8Bm=xEHFP?>u=dqY<4Ryy z2N{>*U0iK%*hp+(64JNfRe`Snw^$VGlqjQ_|01Fpj=!%jl5_Z}PDUabYE0{3)I@>m z8sL9AIWaG0p-d~OQ21{N;;N0?>0|TnsW>P1w5uGbf*Jvih(Gph9Wb7@80Oq<^t0gB z$&(1a;5$qz~AaAcZ>gKx{~47Oen^2Zpsz%dAR(BGFqt-k)R?N{0ZqW^b}@&69L0*2)Rh>OHZ*qtY>KQPtq$**&eJXXqt=s^2q&IdiM0O{?; zn=|f~sMIV8s2^z7@C*oop;6WrqxjrSpC37~3Bm86IQYO$V;}V_7TChCF()EdZ-~mv zhnhRlF*Nm1dFnWTTk|UMZg#8snZ%V({XbiaW)jxrvO|qB@|&Z*9qUs*2ZOEK@SitF za&>)7e2$JDGTG!!MBbm1%iBGunnjIpSBetgy-7K|vo$9EzO4Q@>K(dahz109?<(39 z3<(@lSC7ugDA+CauOqvKPdgYiqT!YkC)_Zt=gf^TrF}Sh|2b#e$=y>IcxRGAIS!*) zF&fgtYmx@9Yw(f|7awRU2;Yl3(^(4QYRm$B_szWF8LB6@n4TX_$XL@yH?DUek>$5l z-|~tzHA_Phz+=*9`0q63m}s!NuMA%VMFs+>gFK2Bdh6F&m{tmfOaR_hrx&uBg%|Wl zvpoI$J!6KJLx^Xc8@5?26ee~(_yF8dwhEy9NklAHaWwO(c)?9tDQ!g)YE?S?_*!l5 zO5B9=8AwMs;(A{awC;yZt(M``%>Gk!kkrMD72svH$yr)WCT`d~yNG zqKmXF`t^3CRH^P~OM_6uCN7A2IaY7CJ|O)G<@fJcCz)5<&is26awN_&O6@+;;s|tT zYn`a(LuhdHYSDH6%3GZ$TI?*Jwk*Zl%Oy*#bL~^L{2SL#RNMSF_w-typ+tjo8E~Dd}UBjkMm!eoX-@0#pM z#&IfXkOLIcS-vc=ojh}#h`aw-Sg_-^{|qg_Y{;1yUG}wZqs0*%MWsZ(tWc7V+jb%) zylx3dWrwc(6Y)BSFwH#IRU)RJLj}@Ji#B6 zB;?OkH@V|ZCBGxLA@Eiv8QsB4hn)G-^8Df37O9HFoB&UzZXfez8+_hdceMsMh4_vX z&ypgevQ_E=N70t8a)V@LGn&fn6{}kAC4TGKDgqSq@1+t2l#9BGTO4~=;IQZ}FUGc}r4>4B{e{lsZAynw*y290XH=z%V zuukM7X9`>~;1wBG>ce)1vZEONkY`K0bW>2Fra!|Lgs%w8IPGfYdIWZ#zNXs4Z8TU0L2VSSygK(oQ^#OrgOo3)t%?(L|f^jEDCWI z$Y=KG5CssRpH=Y6NKryRTDS7QtA9XA6ok>v6aa2WEA&!gp zJF0~140s8SMATA%jybnf*uBJS_;Va6uu9AHnd?-&!mVvcmlzERZnk@PCm zO8=(G!bi~3Kr`?&_rwS|G4wA+OlVf&l7OsvWJYW+x7@=(`_--7_jYo}(f@R=a1InR z=(*W@ZEsmS{l{jO=R(*PCv-|QI{Ox>#HdGeE5Pvszo#k>2v)GkjJ8^zzMHy}agPOLb=(qNn^ri$ed1h6 zmxG@?|CqC*l1$sQ82>}kqM}aZ^ryu>a#gsA0{9A?V`QZhuF+O+Mh2VY{M$D30&QUX zn&7wn5FG=AP4MhM-b|G@eE^#1cz(oO<63af^HJw2eYBsEJW8dsqo4-3day1+@awqi{ zaw5b5I|>J3sX768sY7l5b`A(#F%oc#m;sh4+4?@qx%mgSgWgwTJ%hF#QT1PqELD^hPS=He+QKjRY&6 zMfr!A<=5tr6D+j9F*0sD6(TQ}IIH^;{8+2PeQtx20IwFq4f%%{h!J*Q4<(j+3F z7!_}Z0d+b-r9`m_N36ohXaO`wqPr_b2Gnb;FDDJ!i~x5lX>Xjgq?rHVAUj&RmE}On z`qwsen&^*ES=Z~5S~MZRd;FL;7x$=F(;Dn{mgnsHivmzu$x`G4BfUSpd!6$c1o&}& zwRn~nW-5(O??B!AFH5y_JV;!_?56j@8Z@K$U4j7j-U_h2xf*1Hlq3J~Mi9&+P4S9H zuNZwaOvFej>oKN!z4sGgq{C>VT7c)#f0Zd_kuqoGAa-f&Xvq)Np?DIRaV@6Bo z-AX0SpzhAYng_t2%;|{T*o!GElF-lVNt~PpX0Pnvaj?FlzKW_IwrT|cdkdwBF(!Za3r$w-xmUSwsc%}E`~i%o?Ke$HaFFDOHL7f z5!J$y#~!-@=@aO!R&x=|?Jo(MG48yn-A4hNML(k6=IW8s^pw|5n#di5n zKjl`a$ky{w+rLN2FgJWCqW|-0Qg+N25XCJZ-ikB`hN8TMPD>n39c8ze!WimOH?>7B;$XO7pd~cAva52uGJJFlr2+rTpM)Yx#ufGwgg$&l@=+B@2 zj)~iwKwvZFg>A{}?1!NT(nmx?jKk95-QJifsIUG0HrYR-2gpUBAONra|_JNmQ@jrw3 zX7!{$rkd`(wd%cN2m`pA&RH!AsYj<^pP0}~h+wVlucLp|oCO=|lx@G@%2JR4jw}3u z;V5o_Xk1uy&^gM4E+SQ!m`6ikuJd+=ilXQiJPZh|OZ1eOEEzmzDA=T`d&7H^`%S?n zpOX}G{boOFk4XlkQ)1<$Wh0p>$RXW$72(uO%D5s^_{QfsVPWQuWsSQ^0sK%PfU@tq zQQ?dWzKmM*1m2fh8b7BZJR64}4J0;i-@!hzc7xyB``2=cx+X(nkTzj#Jfc=!Uf{D8 z@?2d3TKE5~k#`6cwT5HUs4e&ES1R6~!glu;{EV(Q*zX`{eih}L%cUVUFV4EL1m^h zow*vy-xuKX-pD6pedjISLB+%}#!3oR<+Hivueg}R@9>RM4r#$No0a#EN-B?-R;-LY z!A2kR8n`^jx(ApS)MVH1uMb&9kAZYHCwi~EYIy7~i%EM(6guY~EFo(D{n*fn;BNFi zv{@WDK@prf)sA;qVEsjIwNA92*W4u=>5fkF@fq1y7*{B6O$|s#@3LbX;rhJ{^5admK&OWm25Bm09?2pkg{wg-tIk+%7Ck>cr0tq-%E=4brTrw_`Iyc8Ka< z350FmoD0x=#rGBeECsn|+Xe7#ZFJ?T=i+1S#Y}#hh}y&Iw>6We5PsA4MI;;oUG47x zZ>XXe`DeLGg=Wv0l(P707>fD{WotY3264}O<@H~FF~GUqp=d}a^w^kBKDGzP4q5-ZC#dI0UXXGQbZQ%N;GrQ|D0L#Xy z?wwwjtr@0pxtjpMlx0Pcg@=tm<} z31#*N2G3l6=-*_M{JtRGFdhtj?Zq;$19(PB7Im8AdO2Wh!M4gdlrAP^_sT#sBz3-q zK%ID)BwBI?q|=eS&r@GR=-FX-$Pk=K`l#pexfVw_q~{Cq)b4vLs9=DLWN*?yI`5(x zI8DDJ#E0UtgXwz0NXsX7PG!QzM_sc8IKdzSUkwcLZxMu)T!@fa4~bOr+yloZZ@jj$ z1>Ik#7Xa_SrGBq2nm~(Art?hgC{_485%Ke+yw>loP3>wl?V~vEJa8WG%|{ zdlZ0cudn@3vI%#2yLUsZE`Z5{S6ow2h}{s-CrBxO+?;X+_^fkjUZRqqaq&anN{0u* zD=KY=mrMPG`pXU;GKWVdc%xj|QW=1Eq@l%qTRWACech7W;qFu16l%7hLHn4jDFF5a z*g{4@<6g)kg=)W8*dUnVww+U}4e-|RXDHDX>E!+JfnsXmEJACQ-x#NveQ@VDn&^5w zC6UBr3-^RO^yZ!jXg2_UYg}JaoRZI`Ix;{kSK%><2*rUTf`fhe{#zs!N6I;P_o!l; zwKhERMX3Bm?o@M!W-alV$vEkeCbMv1q^0?X9k?sgbtHhqKZ_2QvNI8kQee|iZIxs` z(IgB1tiFVo4UhB&6eC@%6F1d)7sG3&G@|Io1lu8JIYp4{sHX@|zom9GXaR5u9ka+E zK{%@HP@>BSAKx;Ls4?L=t@QG0J)tD0Ex$(r9KT{lXcSOqOxT1{ zVO6~sJgd?GI2X&;GjLHxU!-dy)FzoCS)Uuu-5S0K`72Pwwju;|n05f9mz(`qo-M}M z^{o9@@~EHS-(Ncn75eGfK8)T~A6xxSo8vh;{q~ct9@oFX z6fyU4UQZa{WtNO@{Y0qnk3)kHbmzsT(&B8FHDQ-hxjD!sUoIoF0IolMZfj=loTYyw z0xh~3s}+N#jeEcoi}fPnd>484xB+l3R_q)vj>H;|qVhMaw7;Fsc9Q;yAFA*(S_ev< zTw1`9w@btWMEsJ{PkN=?Rg7|Bx$P{2KRO&xR?a6%?@fOh{{_E6@RD9?!n3=f^t$AAZym8~D5+ThjQ+d$#wh zAaR`r%3sl>I4E^}3AkXZ2Y{=$y@X-rhFTW29u1PIH;l40y`7nFyE6_gNO_t7PvfgTlel=rnC zl(7E1qJ3HZ+S|#lAb4-0^4?V$e1dyw7>c9sG&K|p8_xL01&Lkl67-oh&~g72NGIo; zn8-rsDOIzs6uiX#da=L~t?fs{X#umzH2wOP0uC4#u;Ywv5V}GQ1yYs@b{r0<`2*ZESG`hgz-8@_$%DLDNQrMu{PgoY z;cR7_e`}^RSPW+n1^Z$|7vr&eENa^q)Cz*^W7c$HyRS*K42|5JkQhKQkz4IsE6t7v z{F90Eu>@vr7llIgMKa%`m8vpve+U|ZA8oeKj;8Q#ba)T97Tl`2ZiXWmD!|F8##&sx z`fm@vADy%E2tNQuu&C0cq-3_506ba~Li}-cu&GLG6TtRNRf4_Jm9$?frjkt!N8ZHq z&H0uXNVk#6=Bhq!!=i6<-lbe(p#C|>C-RqdK|$ynr_Yfh40z~RtdyAT!=Q^X#vzi< zl8c*)H4;FzB}I{7@u!NKzfG$MNZ+D$)z6O^RXAJ4X*ViCxA;ps6OUoe{e~`EX}Qn! zKmTV_k#?S$MCbyO_qCV8aUl>@4f(z~eC76&*+2JlqUL*EAiXSog5i>(GT29TJ_8q;7{( zmiq8{DA9dc_%ERL=pi~OgLlt4ed&bz^3b0NjB8UBvc1+22R*mg6b1k1TTwJd^(hZi zrYQ@Hmf@=9eqZ12M8>?}ZESm`pNj@svB6m?JU)^1UXzL0@Fc-Oo^ZjNi-T^S9Xp)+ zekAIwnfD+eP>eq6m^$V{FtW^luh3(pL#{fdLTHS6!sB^YzR(SE@j(so%+(`d zTN)z**g!FoEyCwE662%Wq5-wVizN$73Snb7Li}GjXAhpu@>p&FUS|6*y^E5tZyLSF z0_}yP(-_C{jpgv}PMrS&!H+5*oEY+E{xDfF)`O-?9$_w2%gp>z8tH_u631lP$sT=* zv$6%G_atWtn4|>v{Jj72nn80z>Fi5#6gIvH??_Jt_s+?y9N_Mxw0XZNw270n9~58b z+6W@jDmYL7pjbk}GgRqOCEx)(dF4S-;9_(imD)grq3EIp_xZo4X<8R>xRI9HG@nPe z1AHi=vOvWm>gI+IwIIFD69cj68>R#zM)W1Yu5=XN12~_d8Y`-l(>b!_tN1BCO58kL zpr`aQXJkoi@j;lNV|57pGkL5kyW;)#csX|*H#`M+#n(Igqma%OAI4I5ikEA}yjq|b zY7HWEMr0busJy5m2)LJkfYFZ}Dt2X-T9bm2=xk{)0FOO0N($)6{WBRkqNB-VriwDM z6MYjisWbIrOKhm{X2N76TxCD90?62az)_nZw1_JhXngGI!-OR797o z`%S}wT9O{P5i-K@4SqG1nt6L@x?q)%Vj*N=!$|jS$I{M7f(~hQDFxE~@-1rLr)_H< z9*yAFeaLCgL}_Z>93GdSWu zX~xodmq2>@vHi@uv14e$shoyisT%xHyr<-b-=({P7a$@-z6FC*X6h}K4KGc$#P~ae zuY;yC$7_0F34cDcUUEVD9VK-R7t?D(;G1?| zBftg4r%lBvD|?0Y8xElT*v$Ero_h8CW0=Aac(ajSTReSb*Eblr@$f;rN=2Is;zp1^ z72OM?jMq`Z&DsRg4N5TF8U*^;Q{0VNODK6-YgAjGew(qgnwmB~nG)Hx0UWAkCnP5P zHncwTF4=*Ex3NrutJlq+{4y7{2cG3!~>f$DQ z3a7Cd{c>Ao1`j7C{+Jf*u?G$CjJ~EN(#%i8vMa{2w+DGQas`h_VXeMs2vwcO8i=Og zPQK456KA**@vHZ37#QJe>fJCRE0)h?Eyel*`td!|u-PQu!qN$)K81Qt zb25yP0bGf#OLk-<5*7Uhz~?7JjQq|L!q7wv0|rvocmG`u5Vvl{uoPbg9-mlpfjzLg z0hD6Q+d~?CuS~!(x7kRo9^&1|PYOKN*v}jOQ~t6*dYKLue~*7Dtp{`TK&)DhfKEi} z$n##egn3Hsa&ZmdTVX<*_Ot;hXTmMX{=d!E7^!z0*zuIxc=}FouuYfh0RGJP=csTh zb##FR%gv^^V|-t8H#oNO?>T9J4ZW?|KYWp; zUvVY=(N(1&SE;@9PVX7?X~$I3v$u}#$e}gsyA9U91}9hBN+Md8(~*ehcnG^c zd<%T2{m59EW)@E3^>ZbtuQ9=`N)|$2$t2{cEbdR03Qn&XWf=Ofce&{am73T_ z4L~u|I(Zu;1|{gG|20Rkwx|qk1XB#;Q0V{k)EIP@%<#bxp!mUeMCSV|gL17%#kc}R z8&++j>yq7A8qFh01`5AP4j`RiHbQ&hw#I|anaLyGbe(=dHhqf;PL0`Mk}QvO_0a?1 z$q5winU*-%ZP(CQDsqXV8{|8JGaG&u=|V^?QSG*ZEyU`p!x>8-`qHufMtFqF=kJXB z9WIgzBkRtT>KazCC6GY+->WadgEw3`i(-y^t&C0cwc_!|he2FuBl*x~ADWc(0G^7~ zJw0>blJ-i!ge$i8=`?(|l316Uw#E7RNnF-AHVWVheSeS8-*)3hDTg~JeY^&AX{(v_)uX>PiB*o1h)GFC_eR{-g6z= zaSgTY=beilXA%%>yQVvDEWZ+N@fiL9(vMRz6J;o4cwX79Kub5YYZ zNewS9wbu!EiCnBC?lh$WMXF}<3E;hxcrzc39P$MNPCTyOV#>TXnHMt-8jR1oQ-?&u z-W~xCh4l0g65Xg&RJmK9s$6`=xZ09pB|f zw;kEr_gdKEl=Z`etlAu?<$&~l2<^!mZ=%da*h&Uod#VBMaeBPC#V%;of{wx@?h>#u zq>RI{H|`>Q#@}*JE_+*do-R1Xg&>2y*+eGhdWaHU0n!iJAiEXOebz{qeiN^L_%l+c zx0d%U^!I)lyo)yEYAg8R%Xa>0x8piJoa^vjzr7Gclsmw$E7KJtX}cie!B%He97u11 z-)B8|sUDl49PUc&$GU!6d*`A0ILF$!_NEy3Jx3xZ6klwXy{!{H!$6KKHZT?AnPokYznm{*ggQoG_X%T zV-u@Q4=F8BH=fOAOFega_kK;ep@!a*bj998+(swR#)e+B*@>1M!pP(92p8NKaioV*TeS zRdDtR_tSuU8Dd!PY(@!Nf3KcXI&E5L7}${WRm%LrY7-1^`5M~Plw58eLNdnnq!zcg z`WBy));a0}q(9{`ytT{kl|k0FRH%yeu``aoORPz-l!~Qa6KeF>RRZ`2gAp4`{9NU! zUv!uQI!k=-@0oOC{Bo;(T#v7ewf+$UT*$P;MwXlFA++Cy#UMcb_`I8G<6B5wc*Kd+ zVMz7{v!IV^Q_w{Y8Wg=eAwz(i0Apu!{Wf0 ztT#8m>XR?+&&y`>PBOgI>fPf!pct%ka-Ek2ZL5*jAbv_Ck#y^!AFGMiMdRK+WK!QG zaw`D7K3?H1SE;<)Y~CO+hQt}U+rH&2#Sm>>8tT;4QRt}>7 z0#jDVxhLF22!Sr$Yt?iYBL<{b@~+Z5V)e7DD|ze0U~YzeJ&>SEby?CGYYP!Mh<5=u z6L7C9^KjNpofv~!?QZBbACjwFl;yBuKQXG;e4{nCr3BK$Cz28<5RIuGIPpTHwh+fD z1*UxRxUQ12MNJ`M$-gB5oT8uYZvTa^z0GuYB+XEib^Zn?mi>d)U$QH2s$7*)@Y`tA z-H!?(3h)P{W_6ZkRAxnK`Ie`x^%iG*3WKg1 z>a|<*58t~Pt-wW3mFt1oWnYw*>^6UpisMqQ%w=A6fe~74Q`MafOF9s|dstLyaNBA9 zGg}yk=x$iWk5+i--6#NzXcRR6nD2B%bZ7{u00YfOcL*FsWy-)Ait|HL`(uIOt?+2UE>3GWPd>j-$*PAg@lA1`QEmsE1;-3#eodR6S zuib4HJF0*bO>+Cz(@@1gf3*ChMzr+$Yb2)5Ttp7QIg^?sLVwta)ciM5|G1=e7&+&m z70fu7&sg5b@12jD~D^+EdQ-{y>nYeeNFa#B8OqEP1je`MWdR2@yUE@~vW1$PbZ zL4vzmaCZ;xkl^m_?jBr&yAvch1PN|Ig8TW#y=R{vwfX&wcg$XEb#>LOru&@su(v|B z=?&IL1>kqK3e9y}4N#wqqzQv z>?S1=rIt=#IP-9Wior|`IHY12DXC^wG3DFYF`c}u+nbpi*J8)>3vY^K+q-DGrb+_o zs>O626`LMS8d2NPRiEfwv}&=7(%-R8>Jvdc5%Hg616(v}EfoH0%?5uxJ=8>Vj=b$q z`#v@4bpX!#kZDbO?F!(u!2-(I(?@|`WWuf@^jum`(x{k=lkIQ{6=34Ig|^#na{9@;sGvo`eF6Y3UcgtK1K( zHPN-;qsc4MZ5UOu_deCCc`((YSn13O1JW@&IR+y==V(ox)#1?_q4XsrLcg-0Xh$Q) z3I>p#OoJoAa`xr+`Zq6mgq?Otn6p|MbAEM6@MW< zzb@TIpD9%&2!-8jL5ZcV*Fq4YJUj!%=;|yNT6_!p-E?W5{IQr)2<}M)KlyAzT->od z%qQYR9pIkQmx%cYOT5TaMd@XKI%jCZN#GSp)_=hN zlhn&8D@Hl@q|&Qyo2hZ)#=u7daFV!7MDD#h@uWAj;u1{tDi3!-!Y9)82Uz|@(|^@& zd;nh&@;?>XKkC{J{$Tm9ln;r>tZTgFvN)P0%p zPZFw?Kg!0xNfd?iARU22eIG$O@$wOdc4QSwp18B2>R%y)*6y}P2Nzv<*V)V89e}g9 zuRXReeqyuUrO!e4xm#`*|7T)Q5diZfF@%qczfJ~lIEU;G-Q(mu+5|UpBuEMTQZCoo zlKsANBj~8JlhIF~0e-ud)l_D+JO(Xl^h?zZeqs{+x5#HYGW!(NmUL!$OK{M`?1!pp=R^?y<#YyKJ>vbVkZ_@myD3=19RjP4)?f@`EqclW zD_kiOYm#`p!G;UEN=gvvXuti8{0pT!QOPjrZizCyy!|6(8%;E3wLjSHyv8&R@FWUG zV)_$>h&p!WyW~Ge0^ch&&lN>{q3zc+2pnoO9#674b}S856HOq3g?p`G(lIvFD0Vd zF7JxRUSFl=d@gsi%G7gQZW7eVw{I%|?|>bRmXhjSyupC8rK|PI9~&b^7u)&Raq=XE z@}AT;0N@QiD>&_MpX*bhKI7QIR^?LP{uS%ePPT~nR+oi8|9%eOFB0U+&o?u>G-4i^ zO}p&Re9G5#zRx>3-&z*p+C&GW0bZ?VH(>50hvIj5+Wv*Dmphl{#Y`RzM8bwSE!+SKnfyfmJ$bTkpTE&L=8&;_cE{(wEXjQvQ%A2IvqC@%;)#4^NvGC?7lV3VPYNyF(3oER!rd`p&epLzPH7Ypt@k7;*mcH;~uwh6&W>3m1Jig_nGh-aBC^R(*=#aY}7-uB@~ zO*gc>p-nkh}?>z52K_<02H%h*&0er6jL2rQg>k zGHr_GE00kr0LNb$Ze)4a>MW&ZaohX-)Ar|O+PD{$0Oo~Mi>^t(_uyrCvBZ*uolk z4^{9^i@*=UC?Xvz5*TfAZoCY0USs`%{5CJv@*mSs=OKb%z^NMn6}8vVTI9W}T$Q6B z-icO2+v=}mj(2s=SyVFQ!Q;p5$>!S4hl#NV~lqECf+A{4FCqM*deyWdC@ z!10~aT!UHRo`?pUN#8_;AS~nD)7(Wf*P)k;_Y+zCw$Gxh@@x{hI zAimutVJ2|a`ud|j?@@MVfGZn zAYI+|*0nQJW$))tq7Sn0B=ol8@_PD)sn~u;hh9PXGT<)a*PXt|?iU*d_pctp2)A{f zTU$aywmHGYJ8MD|L5y7B=N@g47ufSUv?r%UptmDs;A$|W8qRI;ujSK-`2wmIdLmE^ z@~ZZ`c-w_ANcmDls=qYvL@bJDiW$`9hs0b&uY~eP0iHO1f1%0$yR)L#yQm2|_99to zY-vGwRRH-!lx9K=SrFhow5BpYX9-(80-EC7GZbq@^G_nH=iqEgV{sp1GL^wO0qI4G zq!e>NC29sfMWRk?T2;-deBl^bxhmAI0iJb0D3A_A_PK!21&#f#ZY0rI0UsOcIx^;s zPb|c@tyxzDq7)L~T3L(-R-rZ28gyf+^LK;+=X>iO%fDl1LCia*K14ZyueQ!W9`q68qJJOp z?|SD2jEC~O@#qsg2`RT<1?RT{NaO8^DI=wu}5CMpy9R*_5WY}|DK|? zg=o}5KU02xPFm#Th+99>44))i)1Y?_^S4Ez42p;qNN*_7MBs>9-lx^qc=Tqf<#4}8 zfZyp(;BC#CcdM)O0!Lt*j*@6WY7}(!+d(wZdYz7bIx7`O_thkpbmlDVD0D;|U3ltMXR;H=mD3m-zeIdY%w2!A-+q&JKPp$UsEVOYa7hGe`Z0jb~VQa=VDRs+=r>M z6&qs~@BVvf$3)emZTL`+=+ZcWTbM@V%?B(Xy=w78TJ2Mqe?=@8zb?Y`X{#8=*AJ2c z0&j^hCL}$%-~?sy`e8{h_ATci{PVKomv{4HHvHJ zXn0Kris=y1VDvCoUr~X38oMBGATn#KB7!CPYn1r;qHp3l#T*?o+PQLdv|Pu$M!$;$OhaaHirH&!y~>WU|>}JXdlVoF0oeBrgAXg0W-$Z?w<{ zY(RPv!4TmwAB2H`hHTm*{;^Kw{&@7BF08mmDr_{InABjS8Bvl=_io#tu&t#eu8RPsJutyakKspP2ND=4RZzt{Jq0Wec~p1 z|8aKg`}fSTM=B_9coS6)Ze0S^kIGR8k5gb9?d3XWL;wyuEXKF85UpjQ&C3FTB)0*h!TuKEsnMy z`^OqBfb=&jR#e{&oO^k_8xP{qim$Rxk_h(P14ch&NltzvZ}9*;pZU#b9$WX__XFo& z6_yj3y`zpN1cK2ynS`vKRjps30q$Z2$7pWJ5pE~+%Vf! zyXixYNm_h4uWgTV)`8g-2=EiQ*aikZ8B)IY6O<7q3Damlq^p+J35QhQFuX>Z-+{|4 zoJucveKii#imaCotE(<8M)nEHz;dDmwcl8$=k=!Vfpq8{4Gl$2M|m-Ec2aM&<4T_7 zoYpq70$KQtqg&>y31@&4`CcP3_OvaM9ID%o=Qy$uB{Lx?p`T#Me9l#({_qvNlr?67PZ3w2n}^bQXl!CHyLd{X_XN@j8d8FxYi?{@!!AE%59ZJ7d|x6P z{o{IEv93}Sd>;-LvlKFD|7PKne3T_HUerBqTR3zm5JzWk_HW&5GDR4M1xQ!_iI@r( zh<5jSw`@eCtj8WRA1EHjE7{9za=~TatkMneDjt$((qeapIbp3L75@|}_l1W16wCLA zwl}s<88gq|p;l%LE$HHJ`xH0Cdm?DVqrtq}ST6PUTKWm$rS+tKI|HOsw7zb${j57R zaeqfkkNVYlO{m`}P4skMj=|=UQ7h;b;O4Jvl?4QHYqlBUToCyE?<-6w(y=@PP8d(! zxO+4Gp#c7<4Og6u%~KfO?DT|pXe{gF2ti$$;yfx;dBAZerM?4jF6*dukBR9wy3FJ} z9$|?n)CfgZrdZ3 zE;2y+-Y5oV^xsWp)0!cJ495;`2(1sA0z^Wd`Z;2m@AIPJ0M61%I8f`-i&d_7AK`x5 zh!*J60V({j_jQ=EhL*UX*dO4$FELsx3)FeK6Xy_LM|k{63RJH*qVh4m6ZPzNBEAEE zVpP20e-I3YU2e^S4iCrBbxUnm8E2^K3QpG!#GW{;z;hJ}wKoA@+e=q`2=|-yq+)`s zHA~^aN#Ou=7^xg@03P_CFtYAiZar27%RwXg!EQf{P6O>ZP4*5g42662%7ysuVS(EF zm?U(#T*vlNyso%vFCn-O5R&*Sk&a!rVs89)DZ{`eqT-G>UH}U7x2!sp$m%hdq}p*$ zdsEmtgFScO^nA(M>^(->SeIDhy3WR-P~5f6L47V>v;;QlQ9<_8PA z0Q3p6%h>RUxFI-odoz2ryxY=nAEpaqJSS)|UWjmQp$@LOmrR15WctPp0~AvbhCujq z)J>J=a!E*T@0RojyXW_Od;KrlROc+s(nu1+E(4WAqF zcE$kd$JbwX(xT>>RB5P1z9ZP2A57DTfpnRmFD_@2xX&hoethrpydxdb^na?cn9a)j z_Zkrz4QT#emeRpyQSeCESDVpZjMNkL^!y}Yr3(rP#R9p}Tk_)cN=3g= zGN2e}T-U&h{&PINE(kOxh4q$|3aleibuB-gI6Y{cusLCX$4@(YBs%Cz!_JQL(mffg ztlXxcIIsT#XC5HBc({H$=3F{U}_+S5F zYM7uW`#yj1B-`frmyuR};(;tTaorI`H4+|E+G@Zmxc1nBbRBl$A`~qtLx2qngol^_1L6|P41?8ys`Kk@a1ig@Qx_U?^(^~-Lt+-0^1mN$d zZ#z;TScz3OmdWEFwHl^wAFWN^Byu?_Bqm=I9Krq7Z=rj?H=DX2R;`fzn{?D`4&~>& zNx23()qJUVC0iKZfOJK?X1M8>kB~=U>ziX3x|F^je@Xpae3F=kbfQe^qVxv1fNRjs zUmuTf3WRaE-A+6Vx4x?3jYvJBdNxcM=HEuA0RML^DMUWe6{kM=HY5&ZY-~~anUdJ% zBFiJLw`@i#3>-K}q7}~%Y^E9xd%2aiwin+G#@_stCneb1LUPb8H4_Iv8AV^;CW|}G z<3}zVDLviV$2-PqUY}Z`K|fb}8BkHve{$^1J5+m> zQD@iA(covP3Y6>ybJ#iVgI^`bgu&aKrk+ZkRyCfQzMw<%Ct7txuHv$Wc5i*9>*do7 zbzzrx0@4w#bs0J!+BIS8Rt{xFh6}O;`Q9i6Q~rgx7$Js|_UvPnvTs;GMTQ|Ohs zdfN2Lm__V7n8Z^5zd+9;;491jGN}hP)WizDD88KHh($3S)H)> z^Z=w+&}!?CI5K$Xtw9AK9xy{L3}JhI>m+Pt_lIupYq_2UI98^E7Gj{0;7sbDe~Hx@ z%X~^nhoM%4)+k5cnj(wuz`fxz9wk=?`8{4W1OLpy?nvYLIBZ<;{BXAZZ*tKVpUo|S z^r4^TyCb(qv91gmZFm^av+q0HUC=a;v}R|1$BkLG`vM#zTh-E$VExh+v3xX)pM?p9 zr*}2b!i+y6FW(O~Mgi=l9!KElP9*d}Kb!;`JHO5LnvN*K9ZOGkU&g;tzIkAX0O`CP z`Ey^zCNAG^1-H9p$aN#k@4?R@i)r`3!%#WfYrX@x!4P(+58D)^E0LqhdZ(zXUG6=+ zDpmqMHzbZjL<|$Syq$SNZTu44>A?)g;VF==H^K9@+~VTXTF2JEL#E~8v=Ja3v2a4E z7In`uKF4kIE#1{-n#dLA&q(=^Hcfb18=f~Nz)w{p>r5bF3|@SWBUxIApuOmej;x;6 z7W$YDprHIrzz;G!TSg0x>^=-D7XQQ{X>4K6vK9X|04nFDaK=ly+;$mA*Zhf#gTE~M zVSGf*WvPSq`>4-(=I@3kbbCVfO$KcDT!8af!0l;_a#^JG{4uNyj{oLm{NJX-;sfJP zL`4rVM5zOSQ)%~0y440Cde-WBC-grm>dGmj)0GW*<9{2qgSSdT0l0mi!4cXY!3K1@ zX5(?y(-8K0CT|C}z&1Rs;xDfy$fb>e1M+~KwOG#wKenK~4Y#Tp?+O&tm**{dV|jpoqA{gKHg*hDRUIwP zf88|k51TU~i_sWP!eut0NW2;b_*r|~1b&9N02wN)-bZnVD?B8Lg|J>PYEIrd%;V<} zet=Vnn>-5WFkuj3>#>SUaDOREE3o28eZnjiwq+i7F$I@d?Xry~1Bc#Q2juh!)N$6u z?LyzWFwwq9Ft8qrvB6D(BXFNxX*WetuuypARR*K+CR;GcqIR~JdgLoi1-Z&lbtX_u zx2M+Is2N6~oFq5oS54{PmF#g0_&73l{ra6$8kNQ1z@d%AxmI7gvAb9^fxjj9=tB6W zfVx4H;|b5Q^Oxi1e@)$(qDHY_RD%afZH_jM2OHKJD^`Dx2zl}unm_;dPgLXUKr!SU zZe>^;|9Vu{htzCbZVWJx|9gM?pzFLCv=3o!089kHRSQaJD+;_0csI zblonbY2?B&UxEjAUD<_Ssc+Z?{HyfOT?S84!2$ah>L;XeI1xk6Yn@QR{)60&AlyWV zdrCpOv&-ilqQp%gy)`JqYS-4*3=B(-V*bkY&4W6C!AReLSr~QIRy}DVfkpN zYk!AJNHkJq0S;47sMuJU{r>3(tCU5PqXhF>8-;6H!>s?Wj$q^OVjlobYKOJ_V*WmH zOgg7vx7bRMD*^|RUU{Lakw{~c*5ol1;J7ls15@W*wQ| zc~~0Yar=5VOuq}E*|_e);=f8!STm3(^GZ%vhs+f0jsD6CKM~)m4GsqT7KVb^)iWMHq5Ks=^3c~hby$@m}L(QHwhbCvHIp} ziD>!qi4*Zw9`T9azh~4-fQz2}U24gNuFb>%qzL#mh2uOcU9E0}bR0IczH@2erYDC} zT~$9_NTS-beF)8s2GR|Znk8Qy3L^?eBom3RH0A2}24NONnArZMiY2#a=THM2o_X;* zqcek4=vNi_$kgJI>rWTsapEM2HCNEF{i z7(yy=qb|hF@!$^_@oSyqoMbSSr83tuP3wGa>{SM=t)Nk*4_b%mw%An&kgjvLLTfS~ zq%Bl|w`mLw(|g?W>^5q05l-U1PG+1O&kFF#)C;Zvvn@-KH|B+4`n+7!-}pm&MFCr4 z@L5$aDc=JCjx+E&LQ?zQ0s_Lep8+ZVjYWmh`}0+e+@6fz+dY#33BVUd_%QTe!sVt4 zg**yUSg?JVd^06;6@=ZijQiXwxOV~Gl$1rVhpK0o%AHa#n5oFzLSvC`Y^6ssl5bUsY8HjzZk4To@1oBb19;s7^mnbJVpjp4gbvMfCQ zn}sb)T$rceDkjmgPQ%-Msuv9K+6SMBVPdyaH7|-?J0zRhmj783o`Y)A>g1xwrk!y;QZ{OY4iDh;0gMb3W7Wytq1s`s&jDlV zJQkryzYFe1?PhJrNbnD+gnEO`#0>P_NH5UQt`A?U^Ml#k{c{`(Ah{r(LBf9`|D=GL(*kS>#Kez=$$N)bm3<=z?xYboRPl0u{v z=D~X0H_ib~Pnir6zB)KLByy69UL1h)ciTJa-4%7@ z@IbzV48il&hk08kffp$B6l`xS^tU}sa4VViGKW(Y$w=Dvy2jGvUHUfPfzB+>X8lU> zb{7IwPiq!X`&cnK6+F$-jDhzGQOYOHjLfj+Si}YvX53SV)QukjU{6mg&PwL2u#--j zA>*ibolA+-=J#@T4~@}~1Fo0-!bh-|>csM1KBK}GZ!9_dC@C*btzOc~NbS-y7qfS! zg+`QJA1DTG`b5vVKNb4sUqQr?kAhLjSTPD_Ii{B)Z4-Y8YdJK)c}5bAXcoA3#D>06 z6&MMRS0({G&Jl=W`ha@+qg=FT|^}Dn;W1qAAG-@h9GF~nc?hvH`J}BjoxrtFkcg-!6FwD zT9E$|zaq5&&#zI2gIaqX@U&da7&PXiadvk<)E)+IUolbfXWnK4Id^12{)J!%P4rIQw4DO!KA1G}5JZ}L`a2Sm&-rABAsclc zCXN)w-L7wOjjfHqZxv3e`-rCAI}zCi`rU1{-QGM)Ey)28#xkZZ_zZyi9a?6J z6WWT{lVDn9B}gOL%E;q7AbXR}mi8^?VXnFd{`$y_+HzPeMgsMh=;8b2N zJk1W^HL*(CDG@yy#mQ55F{j6BI!1{@?;w*oBQegSr(a0G4*6J+Huj(w1-E?W!9BXo zy5_X{uoIUcBYR5IVa_XoANVz?AOAVsI+F{g+&ZEsaZLJdQ=B6dZjp(nU=EjKjrAxA z6a(Et9$L|tlK04Lu-wWn8V}!xWVoA{jf}w2j?%B_)C+KbiXJr+iVWoF+^Xa#uJ=pn zZBwix7MV4FUWG3W@e;rhn8=V~McAIFi85q(f;L4_qGYplxGta&Mc1m=*ZxgO8AzWk zO^}|1M)ItVCiHiqJBA0LRD? zE^E!GdrL&g5SN3*+`J(SgK1cNMx;vb!qL>BnfMx@7z=CB&th7>^#PwE#@7?MND;V2 zQC4|B1{R|VZ!cY%fID#oH7}+PMft*4PBRfMGvW5@pZ$>UD@F%dDn)}OOA7>nbcF+1 z4?Kjot;vf`R7XLT=NYK&3nx9yx*{&^WrIKm9Ds`(xqaiY3EvEBAu>1$J2NF?RLI%= z34Ja6PdtJ68T$p`o}!8WJw2%-Pc}X=ynG-6awnmA+Lq;C5G0?UK?ZH_9Ka*BimJQO zd=%yb`Ya_pZYNI)*2@sXJ=VA=+8Xc;$b0~9Qp8@_wui?v$XT}Exm2>vs~niHtVt6= z>bhzmr%~+)a29ml1Up6K23*gsdpAMMZAvKO#l+<3HsLQ_(ezDoUjQ!fOO`CxpX2b) zw}1N|4&Og#jmMQ{<{!PsC=R$`O{xZ`oeOV8D9|6G*e(zuW9qaaw7TlOb6xEVV1}ac zb$=vkf&Cf8q%N2f3*L<4Ul==!y}!8f(h5*nzhLk$wfpV|O?0{g#VkmUtuQujs(M7< zQJe<*j3EW2W+FfqyM`iHjmMdXqX4{ZKH`DNvavQFa&CNr^;x7=*!yEv>DM7rBu#Y5 zeOPcsseEGBNUo*psp6I8bzODe!PburX?d|`L~JL-nD?E68Ax}P8Xc9Um?QrB$Jlu+ z9wq(&Z%MtLPvMU=UF;b{7ydrLRck~?^CUjx@4DSOCr9dY{~Sw1I-Ya&F?HC&>5fGJ zn?;&2=K@%Z(D5^tM}f|aexaR7p`(2tdL0+mO3Y6FRo?*V$GA8)xf1rabJ-%qTMo$@ zop@F)EN#Kg%%#H-<)z400RPa)9~Xzs=!6GfUGuQX3o#kO%KStb+uuAo)6iOH1l|zC zlE`2S;Z&tH-3Z-m93^~d-`slp9ivB&&X1Pi(i9Uc=4yG7f2m`;o!3*1SDYDpW*Jq{ zsLQ)N6_Jr+geAB%5GY2SzGC7Q@27CAXLCf(S^(7D16SmHL9%8b``| zd-m2ocE0dL8c+b7ywAv;JN^2TP?34t$<1h$7%@RuIo(Wm8lzY*cH$s0z$uF*B55T} z*vmBXy_bgBw`C0=Y0EZR7jLV6E!KBvfxXlntqnGk|K7YDK5w^Y?)b5%$HWx2rjofh zvRU(v>>lX|NUuPW6MeI>bB(8gh4C8uYQm!5|Mk$i18t{5S|ax+z7D{3>y6Aigv#ds zyT4_e#X{vqb%_9T;UPP+pE}C z5M^@9vhrtvZ+rGml{m5Zm%h`cE8MkiQ{G?9qrx z)@ajGNIJ#`_Gge~k`s=)pMH+s)>QI`;F3{i>x8%}7M3F0YL;d^#e*lGp2ynH@aOUX z3I-3!#f_CORY&44184*cgtqiJTC&aH_)ez7uZRu-TO)fN_|a{eOKRof-VGy;Rw)Xe zg-P(WAQPy)U}>}U5%I{@KzD!uxoO}RZ%4(!;r_Z!78#zH#8fFez!A-xV&6v8%uvdp z*cGZRr>?S5&bO6wAq;({eb<&$!8tI*A7chWx}J}gp4mIfhu`mU#N)S@`13!VDNtFu z);EG5_=7lr7Sz`g-`CZagzOUmiM^v{j0#u0BExmk9pEwf13#8zz<2CW7t3H zCZby+)DKmDy!#vH40bzX{z3fpXyyK9M|+JIQ>*j9gOCTok|$0PWU<8JVCNYR6vIzT zr^GUOeV*uFytBfHc1fI8CHPex#`Kr0mw3!1dj`NSD|6h4Om~$-N|(h}y6c6Q6nvOi zzS2X)46#YT{W6LIIO_d3?s$VS&2NnFc>csNZom4yN-r$n)xBdqIe*8$!3pr6QkYqR zPltx%@?+wc(6X{Hd#XINT8?ODkKg56?OVYa2Oqr6?|aP<=D+kYIuaqQo(~R@Y9(4^ zv7Bb<{u+penm~Hl*mvGCx`KQEVzhm%d#lt%%`kQ@OX9_CD{1t&+bll%W%)g0c$ljWTj^RK{8nFUE?msV!b`5ZDqU@S&!KY$k_;Tui1~vA zE>zZ2(ZaxVt#$5BouIpVVT@5VxZK~JfhIQjiQl~3!c zx%Gea0{vJz_fO5ryF7n0?&|O5fLFfKfA8i=%?7O;6cqMO0v#8JHui)=dLK+JznyK4 zH(P`E15@KCeeM#CY5hJaurXTbp&`Z?t5u%h8ZTvTyZA}py$PtDJ2gl@avFg-6N%~F z&LcgYN+&yOb>Y241MwO7t$NN;oR6p4W>`gP`a4Hn zuFR^o-CxvsbKQ68gb_utU1vAzcFR-N26c;6RGBmD8KJ*nL-Qr*m zyCLAS%YW|?qgoRtl?%X*A-MbT?Jvs=(pQ7lKvk^v5pE!zO`XEXyahIo=~u_7pkw9J z5BTY2<{$Cw_$^!68XC!T0H>h)GiXy69R34U5t@u+GBbQgNa}CXNmto{AIFQ!JFrgx z56AgBr*&|zaTN;$c2)6UT6{BzcZ^GAXjj701QAbs(So7?by@}pAw<5vfJZl}>L zvQL7wfHU3AitseY;lA>v)}g*>;x@X~b0)1a3>h!flSGY1*B25qAaOECMg71ew`KN*uA_cwWdg*?Sunm8;2e3^_dzRi+PBlIfE3a^A%1wj~f4{{;g zHiscU|EDK5*p%LBiD%$z=GLVPVu2$;RUt-;3a$-1C8VEFTxgIHe%b@lVY}*|?nDho zP1FuC1+QF&|H4d|>|B-dew!zMDY&@=SMuC@LjM+_N{$jnf32QXCWjZd*}2gb2XoC> z=VMCyQGq8PT5R(NJym-q6RG;If?aX4Dqja&J`lyj&779`qs?8X0mU@h+eJ*!`ub~r z-Dj9C!6DO(+}A*1Em0X^?n*1aU9krE`*J1fUol=36DEBF63y?fWHe)9xKZVhgT;#| zExWG|0Iu5j_?54t%7yW2NMX)B@7cVXVfRt95|+dX)tf-0L=xa^tY%Ba^|Mu2c1h$n z8(Ppu+z^R{O5a}kWXKi2Q@geSyl0SQnvo6_(VWO=V zoOYHQ7Bajf$EH-iLd66rIg7Z0!_R@%Ug}Vq>L3UWI73^n3nvkut))D_RMuP-*v0CwQ9^ zvTsnX(0Kz?$QOlU{9Y|cc!KJVM&t*n3#b?2cB~OBpcsX@`2{}oIsc#_`9F)!B@NB< zs)H5`RW6oBAE3O-Rj&c=PFo=@<+Xscw|I+1Wb@-qGQ-c2#&@&)e5jXMQm_j=n{0w{ zcd>=PK*$^J?WcS}X*EFiD?|@CIKA}y?_H3;O~JMH{E1bjrG25`DzbB5yyG9E0dn5` zQ=GHJkOd0jddl}>KryW!A#yj$$nGNV9+~b;*jp{378|aT9Z{z_@v}ajt5pD8ek(hA z`#e$!7Y1D|^*k)BV!F%2oj;llv&F}As*o`S;OpwK&D2lkzu5y&nj7Wza^jhoat&qO zt0;C{O0jbDmjJ%eq)I9y@5j)_VH&$DXeuDkNZIKRlL}X&O54*dY6EsqY-?z}ni-_o zU9b=0Tt8uuk&Z}gpIzt#-Z^V$iGJ_m0MZYKEQ6?5!wvpg;&%PScf?01OR}=K{rueO za`M-Np9dT``m%30k7F$3-NNnor(62pTi?^~XG$6Ej@2vuAf46y2BZ_Gy#FI)qZFh6 zLbxmV9=G7r_!31odaSM%25x*^gg@A2emXN*C}U(G+!eWNGLA4^H7NU>jR<$Uj}&=l zLZ?|v2&8Xc)fZuC>>Z0Nc0g*G%KJW}q0LDZk>u0+nGK@SJAliqC1dX7Y?)H# z$xyq2D5tBvwo`g0r>v4vkBDvXb6+Up?Dgxp9Sn1!EF{rX-5s5BQV{Wa{`&5hF+J0& z8QAT#hSmH;bi}%cu;Z1!nN1cnN|GDRq^Sgz%064?amc;~)IMF=B}AHmG=qhQS@n3d zdd*QWgH20iRf{7o7Ui<;*#~eK6{9Rdv+8ySh1SluFv!7hB)4=PF#-)sL!TIi(H1G<@ndI)r%zHv<$f^=tWhp%2i^ghD?Ogc;Op z*d-6;Fz2GE-b92??0}cy78y*P6?}t6(?s)+>hncr9!y=Dl+>^2w^u~SyjIlUHux?K z{3p(fo2w|<^?YAmwxpjFA$(_5fkeg-=k$)y4dCbA#%`R@EtWJ8^lNid##gP7#B*2r z;}F6pH16tDOj`^vy*@KH+ORW6dsJ?u25OK(u8`J_*XLoLXznAupL&Xzf6+4g!f_p`Jvu)umeL8;Bl>H+Z?+OEW!JJHTOSOe*N-`SeGF# znZCvS?@a=5_~5tdcat!!gzf2n@qL$A)nT{8lu&{_voc73fuxpGw_XlxYNT{k_xF*mTKA)1lDl!<5j@v$d!XiLkQ2 zCk{vZhj?eewf3?7PjVrrYMsw1ixP1@!wXbMZQZVT3E@2ct~n?vrr=26*sHZ~U8UCf zNAw0!7XmjkKb5LY5av{$?RhuM?_(8M`^PMf0D+W<>`Ym;VcenAL({jl*hVRQ3yt5b zsqsFv^+4_ExQg>FV*TF;m}`T&&2Q8{6k6BPbr>se&2!2Vbd7@TOYW)iNX+^Az=2~T zsSaf)oK`4ouA(r$v1;ViAMrVSUO@WYV+J;{I@j)qI0d__xui#F2uIKl@5P{E*`(^(|1PwFlDEj}P;o&dE64m2Av($O+FB zp^{m-V}zNToWesVOD{D5-j-YCWVD7ic%A3dhAQrMj)mEpuhs$IIY5|N-9NYq_Vi@c z*lCqL=X1Jh8vKIQmsPzJ@y|Q!qdsKv6`~r`I}ZWr=)WoBE72fo0(td=Y$F|)XI`XJ z8~G<|e9M)KVgmxeyK`pOMko8kIEAcRimQHdENrtKh<7-Q<=T|d1lo-cGD8FDU$Wppuq?S`Nd>!H$Nl|F@dvMTp@Rc;V(_)0Uk#ousW;@^o;D{@Uq?sh{Nl-^VGKV|>n?OHXB9VkF!*Wc{i+5m>w9#kq=uLrWHz4RFu!HYR~ef4n0^ zb4FF>*u*BSaoa05KK4ElBYU?pwjh9uZXpUgFm~Nn5~4!I3=}K4=fQ<@=}_o0THZ6< zjCBYC+%pmzTdX+IUF~5!cSY826W3vX{B%*{#jMv4&jGId3E(C2jEOYapZVq|Vx;j# zo^-LzG5%b5K6<3DKOyct%J~C)4fVaz--D=cp`5i*)7^>^QAc}hBq8NLuqw)}(>}t2 z`yQWc52V|^w6$bfhd{~&l)#{=hk%B9cgitY-z%os~Fx_*#0PSKe>n--S4$ zFLzNMTec1&rWc6~q!x2;0-Vz0S=vJXJedlUf!j7cf2nJhk4a7t>1IItOGh2K{6~O) z@aNF~6OlfY(oH^E`u)f4e>bg6vyZXp13W%PhmFDb zISoIEAHTD|v(2j!`vu-}C7Q;-4Xyl>MjGeN0K=s8J!Nw2qz24?Zyg~;HKfsQ1Ahdt z*{PY;-oeP`tX+h-uvPn28D(Bf89jW;4B~+|^i<$Ns0apDfJEdaGhkE`yO?Q+Z&wY+ zxXGM8h)YS535F+h9;m%pr5R<=`rl&(UNSJ(IRYZayn*z#7|+~4^( zZBDXEojC)6YBesKOIPry-}smhKl9l|>wi7v9Ix2vHc#;HC7TVlysxZ?+|&edS_9?; z>Pu(cd|M%bF;M&B^k;YnOjxXpoZdYf{fz^9rC%4y&4rX31sAaPe9hMYcU_!Glo1tD zV}2odm)krzN6fcF;GoKBO?76e_od5+8sG>~J)#n96YAaC_o3nvl6lW9R%fe|6@I_T8LuWr}E3=V* z5p}f^L$1oT64jJj{{5na)$sSu;0DtD(Oy#>*;e<_`5rn}MfB3f6+3~ea6)pcxKzDj zjlwRFE@b!0r=YaDg%bf^shc-EqH^t5P4Cacb1mYdKG5|1g?n>g_s zLM@cfTogeo2Z#@BpAKDBelh`kYPy&xJc3`UjJZpDk?}U=B#)D}pN*QQe1(J)*8K7p zz?&npsXD_f0yM&Iwfp8{VbCR}t~EtoaBH8=LYQh&9086Re+JDIi6ZwYbYf<=xf_{{ zh2k_ICT|4&gig@54E`M8MhVj23k~C$uloXF4abcIE*Ity%WMW^MAR_x8n{xx3*|Ts zN^oP~jek15==mne_xNb#E~7(3Y|{MrR)HaS!b%`rEClgb^H8;-jaDbaLOCR!h;(cG zM#r&usgyj!baOff;3}?>wF#_te=?0_mm~6}yvneuw;kk_Ca;hUP!6CIA&&$&SN?-?y};1Zps9G(tzLFp6>fSz1VcZba0Tke{Y(ip3W+-+UxoLy`>+rnWRUm3 zv#It-={4Y9BdYPM<>!+w=F)82Ui%)Q28u|B~T#^`DY8Y9*s3ch+dZMzC&2|$1JRW>{z=Y zfdRX2R7vy!>;zaDaW^RYd@XNt{7#SDXL99xtCpHMuznDQKrzo)4$L`c@76wh#{cZI z`^NvGtYAU!Bi6whHss|z<+=^<+{>MJYQCRbbZ6eBc?nNq`(^e@`>c%B>n6=lxx5R$ z0(fAg9-hgJYx62^k~`1+G%kSG{7~eVq+-!7NR#50oc&uh zkv)6)p|60>W|~EIN_-GZ=h+|F#Sp8sXeNz%NPH>N2!bO?X)jI~3gzUaWzRUj0n+`# zi!_LxI%bDq+^%0f$G-4B_Hg|7xK$_Vsaw@yzhn!5$0ez&DLc0^IJzrb0@SH#y*95q2$=_yez@K5G5E5BqdwgR%{doh`t#)%!zE z%I1+McXaM*wuA1q5plK#w;+o=%%i9-e?5USj$y(7L)Kk|Rn>jr0;f~DySuv^1Zj~D z=~BA8yStGN>5>MKZX~6dg|Ym1{@AP#Q6|mc1VuU2JL?r@F$f{)uiCm>vx=wB0imvaQ34w9os z6R!P+(7NVAaV0cWX@@)>#jM%)TEtB39wZt@?!BlAn0 zF(nitvQGl%PZ+=pDY%dKJ$DC}u~kNs8%bq~UdP%qS#0H(+r*hFe_ZTeNZ`u&(kC~Z zaLVs~@x;6n&gp-0(qTGr(K3;Pw8P&FRlP?cB$FZhFW z!KMxK9^b0r9~nO)I7T5}wK`l!-n?4*L-K9 z>sPr+VcV=Mk01I4q3bmqZEWtH55P@6SwoQpK-Inv)4-ZySM*IAMPE-9RHKp&%`q>* z<(KP-(cC0FUDkW2TvfxcNZL9?2-; z*MqzM@t#(Qr$J34M2o?|1QXz2%K!vX0g=RxjFTpZty$Amhl{(S`R z2$@(R`}&@IdHff7`)xCKHbnm^zjAzeLW*-xEmr>mrw2&?asT{GhlE!!rMh~sP_$@f z(G^w$+jX=LF)7(#7}?hk@YwH0-=FPsUW8;|KZ?cEJaxxl?5s)EV~|`IXwF2PfeQyu z3z7TK4d<9?SbnCB0A%L!1nzN#tGyInp~r(VcMJ}Yeu?`fx$N7d!v}V8ca~VRxc=aU zW@Y8M++ch`)3HH)Re+P&TRS;>ii@KlSAYFcLB5Foou*%>^CelqsLDSg;yn?-ySp0G zTt{YYUf6l_Mz9&SBYxcX1bXQ1o)GbgQa_qG1N`VUXvv^?A3DM`*cNJy+NTj}mWR#K zyZR}{H5PK^B>>>^%*nXoZ&1UHN| z9MhB8t^_eNZLp}FRbu(eUTF-|ybe0@1;9U1r7eAE9$lbv!dji#(+c(V*gVW8`Ni<| z(M=?GPXn9-dx<6#OsGq$Pyb;lN_J%xX3@1$;1eHuD>vnduy=C-+n>@+foi5h_Bv<5 zi%gxkzwir=XS>)*r{4qqq?J_`R0aXXXisaEd~Ul!ghs8s`eNwv(TsFrCZY@$-<$Y% z4AsK4J-{gkl;~&05L-uUJ&=;qKf--ee)xGl(K?G2j6punoh1%%WK}}r|Gpz{jz--h z!8Jbrz7ArAs=E|gC*B${&hYO9_?pS;GQ%n>YjF5ioQPZ1>l*7P8d4jqwf?!?!@W;WqJq4|?tJTWO9J zzSlOc6|7y|VzwJ3j>5Z-C>}0x&e$no9CWJX0;J0ZxZqGtXIA2{8$q2o@(eMiCLSR4 z2{H@IN)MhOp{)XZkExJU|7wfQm|dGGr8YQ#MpRq*b0lA9SfsbE0#PT}kh5g>ZYb(1 zKoaLk{Nh|6t0t;GCaZ{II!4iS3u{XDT>{d@kS5%04w~(I9|%;$idx*Z7Ov6V12gJb z##oBzjs@@lF8;bA8|1|nDU`~N*_YGQJoD$^J5H1P2PYUUvuv%`RZLo@a&bqsLNm4vi?JV3w7V z1-T``lZ~lPF!9UQPqNsV(KH81!9#Rm&t;)u^(A<9{5lTFGby0a5tcvR8M@C^l{UJ|8(vU}?WW$H0V%Bu{BI)ZGZ&O5%eyI*;vlc`q98))6sb3BPe+C&5|CTOHytXUP#AJ_T>WaK}Sk zrEYwA4tB~AVfmqy#WB!TGp|nKE`1*>H0HJiUiYIjgPiW<^ooE9RK+I=$eE-pTN&!K z>9$(9XJ@FV@gkrY4wzVIHS-X9w^T(f>)aHCWxiL(0GQwO6;kdf#;(7?x5wBd;Zt&4 zW%1ntiI7yCks}dae~ow8K4&Z3Xn6|pCvZu<4$?3zF{$c+X=Jf#@jMKwzg!;)SRlxtx@x%6KU!3gpw@O5gp*qDUGRr_=UF; z7$Lukhvh(^6DYI|f4ZaD?C#K6%=w>R9@lUX#B=uyZ`RV!0bZ@q!4mlFu+-wRT=uKv8z7WsziXUHOg;D8^d!B#5JeM5){e zPOI-6w`tDVKuPF#I{Cm?0@GP!W^jzgoHuIshu$1J?LKcpJ>@UTZz9221E=GX?T0EX z%e*0QlTUKRGUuQW#uO>7{PqU9GIIUZEfIS9Q^^xT?^dxSL;_F@+M?{+2;|;Kks@)y zm*79!m*jig#~mu?!j_jq+t^d!HthL{IJ~U459N%;`6rzp^(gi22r>P;Y#GWcJLGD= zxIQ2qC3J=5i4tK6HwIQAtZXgha`pq!Xn588_LIBsxY6)nbCm)6(aeByGNvHLSSr)> zX1y$Iy;Z@h{Q1^^sMwc+%?L=pj$lDJ_<#xh%>%8ul3$H%x>|8ybSa%#|GgX;y2j8B zz?;NhJ7p1Pm`5;?T75aI7})tsZ5sdk=Mz!H?o1(*m;nEn3wwvg(u*BuAhN&f_=Cxv zKSFL!X1osZ&1f7k8r>h@b)J|iU6EWL=-yFC-{9I0NyBUZcDLwJ#;yG5Y)ty>PoAycr1byoN1r+Q|;%OCgPQ0L~z;g;{^5 zOk>+Sw4Tj(o<{u{;&I`j63)9m5Jz0}u?pag#ij;hqx)GSCF^w4rxZvqFg{P+oDm4ubo>9$zptQ~!e|*IQ1QkaKYWG`I!wF`e)ZI|4mhyb6j!&8CIQle!&6Y;RHO`f zyP3UoNu{hfHpTLDibB4qCr|Aq7=P*nIK%l{=+cRTY=3?{T%Y`m)_I$Z+%%=U=O}~K zMokO{D!`XJSoBfn&}VEUe>nt)7Ipr{8}VHwt}lGNjJ2M<=O!oX0!WE3;<8N#W(*~$v@At%sD^=&CnXZ zI_Ks{ToXQ?jty0Y-U7a6Og{X9nKW>tP86L_ZJTgH=N2_#HB0CBm#{+9x#N=v0n$Tt zEvc}xMNR+vv`4dPQf@S4R!2}$Jl2AAG^{@FdtR`QMAGTWi(8P0-m8~qmCMxrQb4b2 z9@OD7%cq$gws4&@0i@UI5t30qBm)(-+Z&h7>FQEfC*Lf+N zalAthtTnSa<8rIz!B5BI0!PdT&*T0YTI>0JfDeC4zA;5vfb!T){A^ouJW8lw!Ff&M zwz3IVvBMJo_7&hs+pUfT7-WK+p%C&tFI^uF1dv<4JNMJC;VGDibMtGy48YJ+owHODUAnI{Ji`7%Ikgf78 zRZMzb1Z$&98%iPI<2bT&({k@*c?NLRLumcaD0w?A_+LMq$mgGyXGAQQg+N*iKhOQJ z-=WF_IFTm`toYi;haYWT7_DKrsot29RL)sE%J{GTk48D{VC^U^pUjBKA?MgmVHF?o zT2xyQsGl#`xDx$)2048!x6FX_ox+s+8$yC?$s5g4gP{Ptw>}ihuikh9jMAPe_8c4F zg|v7MlWD*-YYM7GeMFHs9P-V6^q#Iol5`3Ao?pZ|ZUm(3(6@~l6-}l^Uf9!Ox*ih$ zAYbERUKVtT4IF4b&5RERcr8-;8PAh&eZkO?8S4n2`}Rh;LtujNvK>)r`CJ#@I=~Bc z1(r)Ne~-;7C61F3vsiV!XjtEtSwyCbFgu|U_k&y6$I{u_24-Uf%MJUnIPwNtxr%(ZgsD;of~=$_by*9XncP6qko+~b?5>3ol4R> zJ&%NAtu6(9wJ!3b<~HjS3}(TkPE>*G@w5bEfO9f(WgMQSn<5(Z;Jg6GxTv>1WYX%vS?Ck+!i7r~u0lYPIHrNBqES)vQ69CLag-4;vTo@|2t zjbeN52a9CiS~YxzLii%t_SZG9k#rV)IDj{-yHyZ;7;P>p=oq$#B4!B7RbocNGvht1 zIuoOcff4|?&wBMGvL%Pzp__#=p-){@fgh)_IM<@hNeh9vJl7}ibU;%7S;%_2jbhhh_j5|zTw4xhM@S&uU2Qsf50|*4wZh}Kr}*ZQt>v=Z?L*1!hggU@ z;pF0GfM1vxOV^4~l0wmqS0oU$>~C?xUttV#j18-LLs}oRF9ZCkN6Bt(+wLaC6jy^1 z{qM9zvjMxw9-Hr9=TU@W^HA`=$zow4e|}Ek?v7lpXw9Q#43oox23@B>s+>l29$VoY zdvDl}318ZN3c2R)ACz)+eG@qCR8x;8vRK>04oH#nXc`Hx zhCPu&7lQvi?ZwDno))D_2Gssm_AFtfR^=@1d+i#w8|TUUw7zEDW;Or)XeaZHZIBD# z#(RP1I$HANRll09j~`**J~l%S|43dH`8%h}1#`SM4)7ryIaUOkYND~e^RuiV>pI0F zI#=Sj3oc_ zjR-dnG{XAnFfQ-}q>sUFq(x>P3wSq*c+pQqucx2E;hi=x>r1>*%neqmmjE0M_qVl4 zcc#krYlpT6{9%Zoe$o)Id;Z zB&MTiS2C}=1vm+9tfk8+%zQ4TsTqwq&e6G6HZD1`&Bogf9D7*Zumr%fL$>f}4%_&C zSrLgQQXCLAtCzzD`;)^&%tK*y~Cxcnv|C2VL*3Yj}~UCyAXER^#*>k+$*{mwnJ zbSDl9c7VH|OOO208D~@~x#LS`dS-}Z>?8U9IGVq%W}WTV7zu8};Ud&M6bAvCVhG7y z*>NZa!)O{m5x0_p48fA5X%QBZW=d&Ii#$*=cl_M)V*6+UwbH6qLN zRJsCO8@B=x+Ul7rxrC3O=7)PATkq~=_s|!tFrhm^Lgng7fKP0f`#xcIC6(7M6qk-S|O**->7+N#!;DUTb7y$#jhsX1+ zV41ypOSeb-sZtsS;4GZckF7SIsaAp?@hzp1wU3e;>Pp_tILJix6vgXVy8&EVO96sx zZ%_S*c9bF|y0n12A{XJ0&$Q-jlb1xOSnU?TNi$kSFg8O%&%9aHf;8|`%3hm(`agU6 zw8qHHkn;3I13ZMfsr&GZ3FAb^@|D}>UNKt)pAg4TzI)Z%DPvW0Z=0Vhj9@JWbyg*-%oaY5vAp2NqNLFg+^ZIvuvjGst1Z0{83pV#Fl)pt?(*QKjt=-B2<5-!>HG$@-$mG zyH!dB@DUgkRhMlRv5xj`i*$>_*0Pw*3ALxF&+nYI&zG0xz_<3m;J^HnTZx3rl}Z@* z5|w-3OwII~tVzrtHxmrO%-G;43R0g!4(T1j;mzZh?ipyTS}(c4$vg-%`*3;_JT6u> z@Mf?4Vvssa(5}|{q?O)vl164N8%AXb<`cd>>OVY9oN2J_d?`TsWwr>(@m_+_%;71t z#)V(!?5|j|OUgS8WI>sEuo%VNd-y&sJ=59=k`R1^*Ma()I1eV}{W*ja?ZcNa6EWb* zj3V;|1v8T_r1>D2sz%bBntdKmXsJ|~L7qo~6R{R326#?&p2)4bZttCx4>wF!F|OaL z|Mq6Kpye;|>t?xHLl1zn3~DUxMr9bW(KehO9~+l;@dzK;*dT8=7ePJUh*gFGd|R~g zuw-fB$M_V>?DXgc9gAQ(63?d|WLGx&lkK!bHtW@F6n|od?k)E;c!54xe906Hv@28qQ|B zZ3~NyVfAlhTKEYFwnUVd&*bg8n`fv+2(#z_f0Nhu8-pCkB4YX!i}#Uumw=(fO8%Xm z%f8tx-tbKhI3X{KN9f({`GzItjq9w)c|C9>sv%Kua63l9>g=^=MX9@ z_20CRzdqHmqwhXue-`s!I-dAWv^Ay}xadXaPPxT4?m)Di_{u1Me)sX&4Jql;U#HYT z6fZ_Gva<_F_j3AuZH0fH0vB=7GF0lVPT9meBp@sSw{9Ksiif<#1n~Q&s}48&pQ|wO z7#_FSipGD%nUe4Z8aTK9A|3c;@__5ib|QR~_6D@`3Jm2g#Y|;mPy1dpoN=h~be$~#(gn?dMd8RurycQXTgfTzbp+5+NW@m`kVi*ti< zjwhSv-4WLJzQW7SxbBD{fJ65L%hGvaL@+AXdW}6ou<|PKttas-=edcDg$IeqgGWSf z+I`wfl_9GWeaGZ73_a3K#xdQmWp>dwxB(qqbDQAv@2|T@b)$LF?-E74G(E;J4^Z|R zjN~!482Hvn`@QE#z?I;Uy;fkfIw`)CWp4rJq6byY<5`Bx`Dt89x#B_fKGhVcUF)}H z7NaPRN)?H3Kswc6ff#LAhILpC_r#NQCL;!kD!?Q1%yVpqUU*wH#Lz<+G*b@rq08xn z>5tM0AnGX#G#mgv>F>hmKxb1I%%S2dXc|aAA($whHIYqrMYOh%)9?niZtEf?X?<5^ zq(y33S$%y<_|*$0|L{5qSmX4dmB!=SMSygTwvCvfoBX*cg8TEdA5mQb6JFCjEV+_m zJSkU2+kOlHw-Jb9Z-Km5K1}DEP!+_2V>8Cf3UFS9qpZ@uoVnCr zf^E*H5mc!wvm6_%oZ+GDEJ{cI`<5<%8zt%qPD{=G_baDuW0?(cYoq1;WMNUlGM%lB zouM_{;9xgyMOuzORXUYBjcMiS;Az0<(o$dQlt3QgSz`Zl>kIf2OHRyW@U?@W{+6Aj zKtS+ARi)|`PPE&x?8Z z;sMnFw|ETB7d>~QP!da2`j<>0uJ4V?9e3=JAK(J`soTCOE|hvKduY5) zb~Pi6fmbF^w?$DcLsgLFa+9Tv!u(qHPo8 zxsuLL4;L^;0pFMZK8{rqz1M5mm17ZeFLN@g!hDI30n)iznPE!oJ}ZCA(ybV6?K@Si z33c&XT17+5E4!jy2{!<^Xe^?&wzd0k#k)>qzstWtWMUb(u5ws?*e^Fv91#C=Zi;nI z2^L~3=wi2=m8?l&{3J1RscZ?if!d#FBeyu<1HQzdc1}nn;5>H*VK!}W>(H2ro2I^S z@9`(!45lR~l^%n=7|pjr*<<&9{@R9jp*3OHoGQ#b^)6T>*hHlwqUH!n}QN+ zQQK>EYDlZ<`kI?sd`M>_?)OnZdd-}`m3nariNY59f;AT2{kp_XNmS$H^4n^=c__sb zEWq#C;uLj7hmNr$*!6yTu8cle=^&fJ*qyc6hQgkmiOmAsj@|Ii>PU>R5~r>pR_9uM zsvwXhR__x6SJ-d#wG^!@fPYi|G{QGi?Ql)-((Y64zx(0%Yc}z5o^EkFIqtv;AkOedExnwt8@C*@clid`x^zobu(7-V+-<#7B1oe|nnsk?Njh1UU5Sef zw=@*x>3K@|VD}YW1K{OsA+L+St*dTLPoQN7#tyayzwR??TrTX|?rux$8-lmNKYeyB z6Tguoe<7wmS51GOel(>vF+C~_;H2e8nHxDS1=7uP?&LM=y7*ch)sK|JcjE9TQx|{c zYiVX4<^73eRXqauM_v^`dZC8L%NL5jX*_BnUAd)HR)%%=Jqd*&ME|`Tosu7_P5}<}Y1;a6Zx4W@++PMU*hMn`VqW{283< zug)SDWkbZG7EFgCAw3b)hkWJ*_>fY17b6=oU4e;oHs9(QAOEhY$9*fSqR2vIOIR$c zJ-{z^AuiAM9XTYw_t-Z%1drm`-XdlvVgC#1HidwCkpmm@;@FfYF*s{oXx>BaD_XU` zDzk1-o@=nVnwrOqutd1XKsx8*7n6!V%e#8ol>#v{Y!0uTOf^z+b9l>j?g0uE)()D!Uvc$)B zSYhps*huz0Miy6mJkY_{+Xgw03<|4l_0m)f0qi)so~30JPs@BWMy!|GmBN&@;K|jb zO=Y~2ZIz1KRrD!lN+eb!f``o*tfJ5oaN8YSn z)*R z`O#6Y(8ca>7~tA4W#5wV*(7e!sl?pc4(Dj?R5OglNwDe6Z_Ujhr;PzV{cBf;Yr*37 zhc*sL1E!4c(0(bqw!yf4NHb%Dn9%HJfIlb}mdv<^TOGLZUf9om{8YAFxR1#4-&4WG zELFc?HNiV^7JbuvQN@k{^%s!?7t0coc~N4AztcXeRWhY`_N>o?BS7(ocMul#dD|j7 zd*ls@NQ)m=i1R%$1}(m@Oml2ItAg@}PLP#PV5&IEM2swcNk!=*lTcSK4sRQ^^#cwv%JLn0Ciy6&y zhxxUN-?oN!f1Mj*SH65!CRFuX06C{qC;zNEyq`_8-gqPKP%*T^v+}&7x0)pymh623 zxDCIcxbZqXQuqb!t|@T%xlCes*myOv^Hy{HLk=wr_>Bsrds~0N5joy|NB?8bmpp~u zcxr)acrmqWDx~De27< zlzR-*p$f8unQ2-_HvxY5;N6YYiyFIUV~3fKq}DchRqzcdj0fd_brq-im<@buPb9CE zpD_*cDKeBGs#mRYVkf~9La)gpTq}+JaHX#TSFv&5q2B|q_Y!V1>d$5&yHIKu7cg*5 zn2DaeIn=#@Z{Q~XtF5j<4_Qz2frS=D5O27!yhpo4vu%VEVNf&d4^%2XPM`7gjI!Q@`PSfyNmRV_9-DfOki#sn*CD+hpCc=pCrUEHW#l1`v=XRB;)^ zv7+O{a02{pP>aIR8JR`)!1=b(BKB2UdjE>$ce}}5fZVUhWghT|2t)XOcKEPw1qUD5 zvk*cpuKCAEZ|6+kZ%oK6Z5c9#M<9I(Kl5mxt*aGLX2l>)FFwM_QW=VNg61FfsSGuq zMhf^~22#KwwXy4tSqWAH1(8PD^jvbsRZZ8DsMO-iW&3on9gv2xFi`7)4Kwl?%-yl3?&n&%IDDsGewuZ z0RG<{?M-2JrD7yvY6$-#Rx-{}&8YH+YKhNtw9K0v3~~VfcPC<&PAAz!WsG_uVj`kY zO4@ZDy;25yXIJZ_v?uBZ@KkFp1Ku5uF#{x`6}VR^G$R4r%hlRDG^fYqH>GMMXMpq6 z1uGDG41`0Q@#lt^m;1{07_w3esN~`=qPh|vV-Nv+%Zxw(c@eQ;CqlP)V!oZ}>Ev@@ zLVQ<{{kxNJRYjHzfIDG&PFd2fA3P1kSVitYKhrr?FK}u+NH=wgPfzhEccxF?W zRYN7s>QN0*HYhjH<$dt&m4SNRB=iSIE(`FjJs-T;oUqb9SDSBh@8=rN94f>=TNw&T zyPA7D(M7T$4WuK)->IU9s+WkUwKeohi=|%cqr&4{mrar*Tzgn}(t~{@4fab_fpQ0a zg2I{~WoIErs**jTE~b|)`ye(iGd3x>ul~0_F3@1LuvJc~4y#KKkxLltd;NkdcE+(c zQuber20xpX)0b#Y!UDsis|`s~0L!)JiNq5?!i&9mD`jBux>^s805!yRpn^tXU{zF2 zBcbOB^Qu3Zv-JKBorF8y>*VLI$OZn?f(eTHzOW;opVEtzE@JYy$zP)FUJTn^9Gw4g zb~4JR1Kj&a2bbbv!vyw_kl`+7MZT1nd`(&VwPE=)iLgk++ZTXe7=I^o!WuB5=0kq_ zs`9MeF?$TPVA9N5h~r(Lo>Hg>a3<+19nuB7n5gezea{HBvV8Pt1=y(7KGBu#s7ie| zV27>9D*VqI=ER?rANVz z<2U4K9R&m%Is&}n6aHj2uC`VPtr>a<;n`n*Gy->HeIOmGNatNvAy+=i?jDIqPJZkH z#@0%80@EQ+s3*q3+O!A2pV%NTv%K619Svh!e`E4zmyHEFrl9xHKdVYiMfB~jX*wYNfnokh*VJdpdB^073TD=^j);D3 zM@Wo~8DjCW?k6I8fL~p^FAxo{7I7VQlaU!9|2`%>K1Z`{?)*3+(>#6uk_qqy+8Rw1 z342x7tapm$Dxv35n7lXQtv+P!|M1AJsb-Y{&LfB4*Su;~)UbM?lBoXS3E|9>A{zlSYnJ9hAxR(*sCTz?VqrNHP)yT~n7l0NG27$&mOIk^i>gD8feB}UV7~0p zUy?3AzX<@G$WlMqgsGcbr(PxLl4Wd(M#A#uSZyO&v!>j1k64)x;2jTsacUEHC~TWP zg7yaA>TErZR!F_si$35&QtXzSmjrUqtM zLJYJ!ktHM+=-A)M6W93{$W)aFZr>i9CT=n3z>_@U-Dk}Ti!lHDI&1%Wn+ljdQdi2^ z3aZLiEr&s$*yRl%J^fE?zlXNlZbPcdS-1jS+Pm*7eo$f-Qnyzmktzo?;OW4`g^Tdo zyD(Is>51dJMu~QvvR2PllIoPnzfahDmjU3uTI~Hm(VyL$8bQ}Zv=*uyQQ=kT&UfFo zDG&Qq^fx6E7ElZk&Nu%JeS7$5|1_ynks$m<{R~de;HiB?;|UXN#-L4rdqQbR<_bF0 zM*gu`m)x13+4G7xMYr6)0^Fi6apc%a>OMT; zYQZ8bdOt)q7cN2{aXkB2>ay7=pab9#0(`t!7eVUA3L@gLlhO4}U-eeA#@yC3*!9~9 z6#Q)fu8!+$XWJ{@!kt|7w6^H@jxJ8-+?;i)cG)`C%No(xf<#xtf>GVyq7B4*{?-?5JWo%Ec(q z_4fOsrEu^euk5Kfa)*qp#%JYqT<3k$HBgKa6Ls|zWnj|h%+)K}!WHH&v45B3v!WAb z*@p79s7Va~PuejSiOAr^KlKS~DYQ968PSJaQz4}mw38k^f_S$Lu3|BPX#z4{;@!)) zkB>y-AF4~wmX=6OicUAJ>@+#2Q^BzU*53=rf@Y$GOG{#!2HOy=TQ2mq@%ZEZg7Qyl z16)2eKrxVgCKvUR3z0#4th}=2nVx}SM&3qZjg0Yu5R-LvPcHz+7jBPv{a#%_Vwm{) z--j#ixbWyr?}z_YsJp(^T^pdB1DqK`Z6snhtG6YR+1+V+++_$cLU5p=8h*EXH1&g0 zuL{6_lF$15A&^>E%OpCI@s-#yD-^2vfxVyA8l)UqkO=6G$E27wd=7}uHeW$ zdS}^NAze!qE&LFHW3?z-x&x%6`l#)~U9wE4#TR?~3D?s-;x8y-J@U+|m!(r_BD5L; zJo>os;WW5=;})v~$==a=0ufiMjnMKN1xpH}JWcZd{9_%4;F2+n`q{C)j)8Xth#Q~h8JKXV?0!Bqk*ZzDrQq%&{Ny`XO z%ZQ~N_+>Ruu<9jNi110?b#E8YXF;CVh(y6$0=$)Hg3Jk>DlwXs?@wo`telgQ#$#%y zqA%q8-pg97y=s83e5}Q%{_Ab>d(#-zH`YF`#g%r8Ov2tLL{cpx**?4*;0D$#2WoX9 z+kJ%R40`u=6BT@FE&eKNKkuk}5r0x{3IcoydLH90CRvj0pB*!-{mo|&N%3U1hNiI6 z<~7ABF|$#CvqJPrj{I#?gR?ZrZq2oB&l~4R7JZTUHHX$PBIMM=4RD8en|q0aUr-^^ z=+%y{Nl>0d){lhc4Dm>|mE2>@R3`vOL5#F!xwWTT?G(GsnlI7JG=Hcp5{;7zPF-?= z5yzPYcrKpV!j$fB7uFTg?$caLCSpfs-e+*D`{{E!%0T+%eX4y+7Evw+Fo^*2h!S(+A zl6psjR3%Fla4wd% zGe^h_;dP>RdI6tY;6^dC$(s=7w^PUS?$hJEr|Ark{!UqiH;M}#iD8uM=hwnbDa1T- z;SOjH;sRK|ANmYf;0w5Y9-XC=w>3Q_m9+1t%t!itPFLaB0-n*Ue9B7Z*2WMZz3IWe z`l1%jHM3^TT&eUW6t{DX!1n>Zsn^CEFNc)Z=zFryPvfXRU8TIz+cnHMVDjv;_+ zj`#^%wPA)-vkA5kCt?vtd!%dg$?eyVMr;FQUp&i8*o?%5yfaYaS6>LhrdBe!ENYC` z@ausw{ZF=Ox4m9R?o@IF*5A^lIar1J4)#Fp?u&kyQ`wrHTFwU)AyZY@5P3zH+Ylod zdd1LMw=YCv0AEA)X&gWswVX=dwlwMYUeYWIOqpozgXZV>a4GLU4c>_xLWkFYLx>uT zdu%IFWeq;eAAx;TWe9Q$LPmND{WT8W_ps*5x=}Xs-YI!A#DHw2F%wiA`Ch&Hn?UKH zT{f9N@c-8G|37iZA|31A#wBW<-^P{z(<9vwdYg-n4SAYpA>Wio^X~!Fu}?cAdT<8q;Uym};W!{p^qT1pvoMpE6yXhjs{O zYdG5d={NOt+(qe;*fN-BU>f(4We2>gGWuINTs@TZJav5679 z+A01^1t49>c{cC8d%rs8F?|lkG#aLmI`@)Qba~d(T)AwP9As8XLaF^Xh9PE7@OS)yvOZ zY+%QM=vn>YOA*(s?Iub?hf2Hi8O5iocK6EbSjE#nOzyVeMrpy)yw^*#iV&+1WPp*N zJGb+edAdXVSBwK{a*)Zt2b_zIzU&4DRF5uk7}Xs@c zYL}hlo5L`0D8ozje^Of<&#XVj8@~QGU`ci%7{qMP9Abszh^K98q zgM+hQaQ6HQ?}V;wB#_B+?-ssl@4Ct*8QTK91G!JKl!`7xDFzk)qH=&O&Qp_M%E#5h zLxR1wJEt%d;N z0SAn{vD1rw0`@03^v64=lj$}W@*K>c74=}fRKH2n3OhalwNEQe4j6>wNsudl(@a$y z4&Uev_herDN7sXAW+y}%tO#%$RMmHeXRb`7ruKq2Ucb9K?IDBCbxhKr$=YHd+|I%2 zPsZ(9ZdQtOYz#909z1;2&)v*2U0J?w>?=;!7il!>;G}kyz@gt{_i_-!)RczDR6kn> zt4kob1=kW5y?q;|EinoxhOHD;%|G+_o?dCy*s6ROMZt^S0fKhriL(D)UieDJ0Kk{$ z`&BAl>Wn??1eLJys(u(CE)g12b6IEhzfevJg!lsd2;rbNVD)6El68av7G;k9LXWAS zTg`Uap+1t_Qg9j_;MZ_desVTEeXr^mGJ?467)5-+ckWHjpKu!4ZceEYz>$b(0k5f< z$DWEBC;1mF*YX+&9uhc;k&)mYvK^F<8%*FzfP$r!X%1&!u*eF7et~m@(G(+CJpkJ! zh_?0ViNt9QOn-Wqkwo~cy!X~3bJ_XFdC72<>A$Xw0DJ{@mugFD;l1HR zS-kx#{>7U@%R$aH{finaEtN@B55>_&05Ba%Z)q?d5iQle^#v@ftr zQqki9{7#`oDPvp34f`i&ZK%~p*>YM2A~$4n*uCYVmGFNm;LxH5n$S>+M&i3%1+0=u z^{>HpML~RSjo0mTG{Yb(B?5RL{htkG6RPZo)mWZ9UKtJeTVqZLxT<7-&k`tk$>y(x z;1TiSLabyVlXVa>zOkIT$hgjoyz1`dC?IJxg7cK7=^DI{$5#KK$eHN#k?dtMe&!&f z^uP?_cq>{idm=A!>T!I!0*aY^$8MPjHCx|)p&T2B(k8B&)8R!X7qmmW+fegG1PQ$E zR$Cl8co>0r)UfC?e^7nB8#Z^+SZS+>lMM$yzAr@D1ky_{MUqVB#E1+lC?U3HF2*y* zd<-I2#f-P*ioCYPK8(}XVHsHm8!Luu>| zpu7bi!;M)?s5-@4LuJz}!Yo}XoeH-x+f-c60bC%2W@X%{=Uubx-Zr&Ql##z@LAJ~0 z`b?)k$qM#`H`o)PGpt)z4{u-I$M7cdDY&lmhEWgLR=@xB^E1-(FR|V@ApINu0_2~1 z5&e^CDV@2{ix$SdFBuRQqV+U2LG_xYmf+cAd$1S{cGs2C?d!~m0@A99`hg@<#d}HB ziMw;|8sBnnAf0rqDg;-_JS%jeb;y`{n}YMG;42D=nzpr9`o2pXIyeW;l6f}#2g{|q z$~M~VOe5M_d=153^!F?)w%vpZSN-D1I~GP7Y06<-p~yR2A#TZvE1z`(Y39 z+sYu+mmHv&+8*u)en~wV_9{(2+i#aFrYsm#I)cdtd}9u^8695o0KdKyIB29j{bG;I z7>45XSxPmf2hkyZ!c~{{gWY}#A$YPGCb4>7A6RZuhrh5>raTsxh8^4De)75BgrW-} zQ{b5ZNJoFKOtE{MPsV0pRcIYe|JSes;w<+K+x~T*VKj3tLl58|7c!SI(EDw8$=wLy zJBEGB(QP)yT=|p69X;RtGEE*ZRN=CT!lN5m=tIGOdUX;GG5>dtia&Qhh1 zb|=LySp_e7VLK%YGT^g6(6D&IJr-E{zRt}!I|~gTKaHqk z|6>tax(1F3#3Sx2knUihPb2uo!a2J3fp%HCnXU@zix}}vi{k`_c4*%~_j-V`F{OnXE$bJt`m>tKU64`tZn7IRz@^UVKOyo^ ze;035aup*t@Bd8dn}SJ8{m4{^SQews01oN63!dDLUOm>EM<9dld9n+)stl{vwvD|@ z@>SKI&RvCp^r|}6dWB8v&~&U6bY@Pw38wghI72goz_V?-tmQEuR)F^pD*bfaF$hWe zuyes9-+y+okr0y2O})@+BlT>B^$}cBX$+Cr$T{qw7)6R9G~^j}lM7oY6!x?KxOB7K zyfU(k0_k-SVn51W-hJ4|wYRzo;|f`IY#F&KLd3P9)Ry&FbOz6>&&gaX`pV6t5ME^% zrz=e(ZyOAMj+oi8E(GPT)~?P-fOLxbvy@c!OP@GG9qcs(%Y)s{=eE)l++S6ZK|kzH zNx(Os1|Ei^!wNk{ru~f%>A!fo;lwHrHPMCco1+JaZnv{0AYEYhu5COfolIdf0IBxK zbo`F=1-HJ(+%mmj;j7q}zu>a;C#Qrye}AL8Ny*ZL2_AC!h;j-g0a~S3%E~FI9={s~ zNQa;j-?@F592+Fzy8I*WaENJ}<=+nd0JZ%_OT>oQ26os4R5cIsrrN$6k*1TR*xR$} zo#p;h;?-9F-6>30&S0kk(law2bZ4ZeCtdb0hTmrnATAe8Bvt2d-wf&A&p$vciv!$R z#bP<_Fu-x@%`|r9DdG4=RSECZvR)^}A=$!cG@=aPn9*T#E?P_$J00v-svSz+H7Txb zUlUB3Yk7}UHGfXQ0i2L3E*fR6V3_+8O$hcuzBM}QWzLL!XE2Thx+Qcrng+ln-V+Qp zh?^iflXtwL%@y9_lUHeIr{sz?*gmgF8E1mKHcvZV?`Sm1$g^o@Gn|Ew_KT|#nMqUX zBJU6nQjKn^E|3mk$zvP)vfBT{YS;5ls3Fgw7}dSQjZ}+!1*1QioZ%n9NAr78>NuR0 zEyCqvJt zB~veboog)9AGQ^z#Jey*AH>1B79FSxf}^PrNC0@WZzQy)3(iuIbP$~snt)5Vw(s1J ze|`8t3#!e2`7b!%*2mIJM*yI%9NGz5kN5xRuxE`$y$_t zWUs=|Is|;$>wyrN3!$xs75q+u-($f&J@PEbbo<}TL{<#D`lz2?fRt$6uSIO zlVQWV#c3%lcKs+=EeX%`gx|;oPEg?W6q(JGTDYuMRbi42nmm z`uh>W)@C5}llk2Tm^vr-e^%h`&%O+NM!pEdd^!4&Sd7^h9lAse)MM$n$36duwm-T5 zO||~NzyEog0(67(dSHr+BGF9mc1u1RWaUH71X}bqFTn27U^uSXDaT4D?(r6) z>kBIME9Fhj_w>_?66g+T%WFA3aqMpVi?BzSa(%i80Ou$SB&3;sx3kyaJ029sa$LP6 zC;f8C)fd#fJyr4TOESQZRK4d~Vo+}!FxGknQ7yT){QZl_6nmh}ttEXu*C&<%-qBl+ zuV(wERIcbjOW7%xSNZt?EBliV?9=pX@KL-k*dn3r_2ROTs2t1c8*#Glks->7HGh%9 zid~5KLL~gugA%HNIyl$Nb(|5+&0BJC>NcZ%5sGRu zru>6b@`}@Sf&VPX`Q=~WG3(!L5`?XnTUE12SYF2Kpt#+SsUJ~u?t z71to;(#*&KJ}NufKiW{7reosd!PTS?lw?J7reK}HwFt=PBWCz#O*DWzg%PJ!mZ7DO zEZnr=Wxdj)>C4A4mXjo7;!5GdSr0-2+)`ywn0L3@RJWDU4>IY$m#Jz~P zukucg{F{>CMH7YH-iwUGx*`g|UsVUMjU`9UPc!%O zb?HeB@si}m{57##Y`1h=3)7P`0WQ42PMA&TBN2$?^*cAM_;_Q2^$zD&JeGv6*PM+7$rHE5p zcyAO%ek3F7AAZIIf3H%_3a$<^9$O|+y^GO{oUifpf-Oy?lHDg6qtPWs3G`3weT2a) zGd=5ed2LNUgSBCn$4@m-Re(>2_S56t9mUUg9kcpX4nXZ2nmFt0?C9!UIQSJVmB~+f(}oekKi|nC$)dH%xS~TX<(!CnoD5iAjjc z=YZ;nE@r9Q_{ggybAY!?E(rz8Ld0n{V+ZNKm;GM6(Q7<({QOOnCJL_pN6lA&n>#xe z2-7S$W#SHs-+Z0V=MdtVXUDmTU#@TtTi*T%j(pc~5TE#*TR&1#yiw+u`;3(&Ya^T(p5I54!r^C*J+!LspsESc1xL&x)w;okPFvrB=wno5fl$6(qAs80i0zrFvo5= zbg$;e55KM-HX|LW1tVvtNO;>&aul2NTMYmoXy19ZeQPIs_o3*Ld-jioP4iIu6a~z9 zx+w`{Qrl}8!0Y7k&yuul6WF0CgmyD>x{J;m5KA5LcV#`pc+ekgO98(2_f{B}cc9%L z!45W1?h7Gp)u*dtie!Z;UxMn?aU5_DJ9r_P?bD8TSv5cOlmhWwc?}J{LF7pjUS>|* z)b%HKu*25AicIC7+(j;4S%qf#q(cLpBgXm3!I<}7ZN=VaZws)!r|(8@rPkc+e-t>0 z@>1{n4C!^7G_O^GfHq?0MBZM_4%DtTFX2$faE}`K9-5#23O(`6S02@V$LCJ-^Nt^~=5!q;5oQ6W|h?|sV^0@CLuOk>j6GKw9zPy69i zY=6g7bu31-{Jz&uQh_5*dc>@xZ#&ylE?jF*@C4I z$MKsf-PN^**p?s%aWUcyz%iHBtQ@WlAj zhLbpPaB ze$~j7qc2PW?x5TX%KsyL4zo#b%&2l+-Mg}tKlt~(w;t!Q-gL{#N#Ybp=lSEv+i`cw zPH!MT*XpJdJ=37i@&P^K*4k|5pR*kM4ZxkhoDq|)i)39+h2t)gre{8cFK~`+H9#ex z^YUzN3swSrjovxfqJyVze9IQO)=(01WYqKhBzJG7In@`GE~OVwfa5=5mcGq2YVl(} z)ZhMsC2F2LyZ(MBeEXt(QuJc*t{LE8(=N2>AHFuj2`Y|~^J=A`r~in)SXuY`Sg0Yx z^!Efj2G^N03_GegRYul9SSu0Ryf;^!h8+yzJhQ%vzWM{>{SSg>9F=H0u#1ud`F;Hsht`6OrwP!!XM8>;+@z zHNYuh3Z$k8eiSbqbYx%t?R(?o!yR~m{k=`p+(@z}~XW#69;~AD- z5y6*Bf*9sH>pM8y+KSeF055Z*x}Fh>j7o~nq)qk9V{o11Ir`A)V8YN>DH+2;(GKw0 z&Qis>Mq2`;t)@JDV+M~+`~|J__*SdA@RaDjJO=Q5^^LHGl;Wqrfesyys?UVa6CxE( zAEj5Og-*V_J3)6KxZ(1SUw=Hhl!H_^2?En2Xt$TNp?Kn{&B*b6$wh*Gu1qXYOdSEH zYB+o&FXN@&`#X-G%Mqx;7vbj(vU&8XKfJ=fQ2`vb%os^j@|RZ`woa2cETlUo?r3oI zKxYs`yhXHnS1c~TV}~4I?J`^H8VgJfozbdcQm;|trf;;6CB!RKYR?4H0nWAW6G2iY z0`W?xtG!=WSTP*q3NA|Xc@m)@y2REF$awygW{eCK2wudyW zputPi-nD@Zn96HCMBqyo{M4#LZh%4yMWX`BMUnKRsCQ76OqXQzUm$(O&4_mWh?mIz z;bXkJkMH;Vhz4m6{qYSd8}6caEzv&#&cL4=a4SWMzTr{06cT5iN~RN+^XR6~n!Lrw z0rN>D8{qIe*c!A9y3TNW|@5Oq)saAggY$Y|G%fb`N2`QxKiv*}C+QH}=P*(zB^$aCs!mpeXh1??b=)MiMcYS<(Eiv>2USejP%wOz} zhlU|k;e~K=TVjQ6Y?h4T|9>t2`w-PHN0~g z;Kch^sl-I}wOH^w0w*0q2cv#sRRI5do1&ExWLLlmO~vLRY)wjk z@}bEKAGa@vx@vVK*2f3n=8MPt{>I->wf~#2eP4N)GyKMLkrq3!7ZnT9-WKoxPWOxX zS5)5LhPXt0G%@8{N(BqUn=s0Wbl;rKU=4vjk*a=UD3BnZW`f2J*j#}5A+Yl0f$Y0)*f$1!axmd}8q zp6XT~mga-mLo&wmP{3NUJD-qQwD7X@0i2}@T2Xcs!QI=M?KDE%)j04yYyZZ=*v|-L zx1=VVA3g@RykBTsek;hphOUZSBWB|8h{CY49RGg*-WR)RJEs-X{tHn1M9CZ~omgLM zhSi!#{g*WpJg=q^XX9`+g#nTWLFttmfcLEZ3GYny$OzPwb^iR0%%6}<80*+XKULPe+%Gj>tT(*JV#4{y0RUZETNdlAzOvmZ{oMTz4SO?@BQ)tt}023$$!L{_`SoZ zwG^3Gd>I1w>c;2fvJ2xR_&z}#3*ZfCXrB1g4J?P4SmI2xDSHqTbX(UylfoVAZ-TNg zy`BO7GK+jxs(*CB4kNloD`Bhj_OLwrBHQ||GE-JgSy&wsj?xjM_6K9X8$=}mhulc~$PXgf0 z_tKA{Z!6BVy7f>n)_Q;S!>+2@ddsHv)u_ui*wD6b8%Pg);fPQ7phtGDO`~6dyNZ7( znSLlZc$)HfOFYeZd}sss{oCb?fyg_N)n>Cj6gWNE)Q`;lUHEqrhNTm4zez@00DiKi zSuihy4>-bKarh9aqSlK<3Rf0%$)a5 zTJ*b%?WgYtylaRtwV&-}O8fCEq+tJz@7h=a{B)*yA$-Lb=WOKhMtWqR`Dn%FS%I!S z$>9ng{=Rz#Yy>{O|LoSrhQ|7qQJ#rY8?SPGdLR5!3_UE9 zS2D{`MEE83Uj3oYpN5Dh z&KC#o6&jW`@69w_PiG4h$ycxuK#T6c3empC!Tr%C-!SjXzo>jK-$nx!i#{eF?_LU- z2^6#Sqrk5dMtR*z`3GA5Gpg8u;rA8e+MZmbXsnLMZtq}#2PYYJn$}w>R_+j$R%%UE zhVGP;_x9kO^UcH9`(Y6U0sK&1u09HT#gk8-qk6>5x;*hoQ^{+F5#nfFHt9ax;UB=; z(A#6D0`Id(PeM*%R(8TZ-`^deQT+M3#8@5d;2H{E8IMe7|9|t+vHd%xj{B`LbgL(U zQIKTkH^_b|YzLNEFhF{<*Rr!Jt8^4ouFUB|^KK-*9{eD*axBHkb^P7yt&{@5|N92a zM+Qztt|cU*U*ov}UBY-hZua$0H1oM3T0{ElbO5jRwqf7JxZj-pdeN2~tC;+W`(ggi zF^QJdRbxYL2s`+EWb?daX{0fOZWo59KoxbRo{UGQuA z6LV*J$p(Q`5G=#|~8Ntfv)I_itDbMwpw1}OuqGx7syM>3G9a$ zNR#RaYI=m=c0Hxs(MQvO@fut)>fEsA&b-(2T{O43>3{;9V}Y>7S#Xzm?;}ytOYg)< zt=-C|*YunM3>l^_GlsTMVCE*qLM3?VWJHDx=Hc#IKddGibXHVm*dh z1dnm_YT&+@GzFfoWcBzpiJaQXIHGpmp8`0Cirhj>`3iI9j%Jh2@ znJ!SwkoK~-DE+yhAyWbEQDRaGl$~|bwgq}&{&=E?XRQr52PWIYRn{b>7ja`npqU|r z8!&Cwb-R3Jh2ycQOtaE+V+GQo8s(9`Ypi~TC4u&6}2I8Q8V6bnqxqJp^ zdSz!2w$wg7aOF2No14BY^ZGpE@^?!*D;CFp1PR=Y<9d3<{i@K8nc?=eN56oPdCWEa|QCyQuoZivCVbn2=O@ zsd^#((6g;VqJ-;5@IvaZ%?%fjufiSMn)1BaV=pvO#Ck3pj8V+Tyo}+hya&fs)A22b zR18muG)``ejt%U-$Zt=F?fdW|n@r9+I7Q?~Krw?*re;q{?Ck>bXF>8)l*_`c2G^rNLVc>=Av%Ag2{M&dR75MXd#S@-vAA{+JKxHC{p3$*dU!PhrYhWOnhUYUmp2cFy!1I+E8 zfudJ7YxxA=X3_pv7~e;XzjA+QbgY}tNA6*pNi733$)!f*KPQ(VQ-HgjbXC<bH2{XFY$y`GqOz5+WWHo!QXNFQU`N#TYKiY zw$u|0qQRTbGbY3q|LbZM&**gbn+mzU5f3BTKiBAIgX$5-ds=7;;G>${BF)B`1br#< zGKiRN{zv|b!4$(j24fJ48-cW|{y+bv|6M#Y2z0nV8VtB+T{?NdPy7s3=poX)P3G zU08z8;O93qRMW!O{gX!52H~#0jRvk)hZsr}*U#~}Uj|z7i<)b{vzu)+%TMH^HLN^LpBV0NO)f+Bl&56R>egY zY+^0uBh+4qgo=&oXie~r?B+8StN(2=VL_6id>wrdfB;vNDBY|KxnBBTpd--nxx!T2 z;Xg;1WV$Y5k~d{}F*X67AF!ZQGB zzZ%@G;v0(c5sMoR#B>4$|6-%86S5K`$5 zZ#WC~A9^XsmmW2~aJB<{4r&NJzveTAwDC8r9ewT3iAsYOT7|*gmq;HL9H1K`0B!{- z0e3~1i*+aNc`)S$4bKCurepb~QF65yGOLNk5?sks=Fg1nWnmObF~YOZw;n=pc8HO? zk+?>nUeYDY5d?Vw=~W{dvoxP{{mW0LBgvFPnVR(ErKkpjwP;;EVGsXJ;s9K{H<@b- zmx5M;zyxAmCeJiN}*(hdF8 zp^SPl`7hC*03Q638_|rJ=EfVMXW)}DLcN^9jVol#R=LmDX&z%_X!9lb&B{<&Z=3UB{%YrNuq&IbY;=+ccmph!Nz`*xNMz0Cvgo#*Tj@_Bd{nC z`Z7JV*9;W1H$dQ~NyWP4bDA$XUb41dAJR7l_bbo-wZ${4v7faR;6B~EDzz7FQgVFd z9ax`Yo_pr}uQ|mic#99cYa<1$!6VI-kfUgwp+pOJW*RcA4k1DFUk&a0}3(v1_DgglS~ZlcrCA zBP9n(!{gzi>)~zJlD36r|KF&p^pA3c_cw7W*tfO&Yx&&OmMfuEHaV<%*D z;C0tzy1eNqx*w@+YoC}AM~nY_({}6p5MtQHbJ37F{oNNxCl$f_o)KlOgu1}PM}CO7 zx~R*%reAwN9ny3!E%eCa2JpmxudD>$;^Zw$zU`cAZpme)u8CKcQleBmdDu|dkAqhx zgzf5>PMGSNqKRE%isnZt`H3HbfiWd-zIRs&57Hsn6U>RA6w8Uo|MXwx3tICYuzUPN zjJWPOUY!^hzuH`krw!+L-Qa@;19_9{Hn_Q{#rxUl>C3 z??;##=3F!C2HYaR=LLqGnc5uJYcW>P#R&7}F&)qEu??JN2Og>rOl=Op)d2-}ZQp}+ zsdWmR=*xoEq_n@oaf?@_WNC1YErHivP%@A{Aq!I(ZQH>!7{n$XKbWtaxO@>lqm?R! zOwCY27D)6F;Jz1;FoYb>QpX&ormrVxpho{-PGbZFZ$= zEKY#4^L9nm5PvD9knj2=8}TJnmsFSTU!PI7{;N8|<(9}Wzyje%b9ZhULMO=6i^wz37!q{E67GoZ_axp} zm*3gg@rWO1eg-p~21S9jdqO3RBNy6N-h5V<+!!`filr16@Jgre(5ZrlD@T_HPe5zV z)V0?czA%QMwHW0TKbFp&vwdiJ6h(D-V%#dJ+k^s&sSxuCX(N}fQi_qjmG){T$MP&H zVNoX`_J}6cLOj9W26!DrkFh>&%^Xx2@@vy`Jd4eP*x=o7rk+a60vOstFGYY?zNV|; zV$1W&757nojyIZrbkEi9OgLQAw6w30u>Bkda39MDVZ6r7%lW$&l$dPGo#2<^DWS6L zB#WI*SGeFI%vca4EsPIM zD!mu1^PBXXPf6~}FNYsjX7B-+b~?Cq-9Rw|r*Mqc)yy&ovOhas-9$yh)Dj10iYyk_ zGRii`ZY;qTNl%G>sS&cB7~JP{*5etqNe3l6ava9E&227w;QO_H7)V!G)T5-4j2!6N z_8%1IDjcm_3r?9r7ouYIW1-IrSN;QV#X0$3{I98j8TEPOPKDK6eB$4CRQ}i)@)g$c zvknVC13Uxfmj+q!co97DEJde0zH==B2~M>b+ZfenVH@E$(ysuY-VApWH>iHahEjCZ zoA9w{q7r$PJkxtelsIfLB8Z;zj06ex!b2a!a)(>$8V~Ki@>M3+6 zOQqZ_udRAc()-W*Oi6%u!;`TE*ZmeV86~icSy2&OSFU`{&{%N(m88f7IZihPa4jMv z_h?QxVG`Fv)9=acGmJ2{P))EuuQE02=a(5_V*p-otU~c!Sge0sUF=wjd%&{E^vUCQXR*=l3<+^>|1kzEVi$5_ezA|*U63OSj1W2*puL~ZUMl;d(`t-3Biy|#&P%CXaiEYxO% zF-P8W39rip@GAeAZb)sU4mr`pfavRO&UZg$j!;bN78h9j5r}3VDgci5i+Z5vC;bq? z^?_kt_*J=pN|$M?7Ar~^FLa(a1d0K`w0oOH7UISvZIBW=E|5!~E8Z@=J{Zu|RpOmc<76d0PJQZvAT? z(uWsH^%kD&y*k(y2IFi79tIQ@{Ebd+CDLhxf4HEi>waf_$MWl@?~_K8RQ=7!BP%#I zA?6kI5{F(OqbgqsCea`7Rs8iT6!_2x$85%wPr~{Wp71O z{^q}h23fMB_-_BWGGttUhYBuU$M1TuDld1GB_t1&|I;tggr%$%i7Gl-V$W1Q2lzNU zcB1m@AWuTw5_kXY+r&;27JbQ|W$s2x26;G)^c{fHQMD@n@prA5KETqBgZ+*#C2Z@R z=`wWZYEeKo1f!$?@W|UEnS!;3Vu<-#ZF81ELmCv^5+8W0E4ELw48cfWm;pWtNgS06 zrKJhW_%S^aMGIs1&9{I z#P);VBk(iMlt6kt+$U3GClQH?{LdU6T*l)5H^1JzDikUX$!*ewu#Ca}{V#)OMwo0T zWf5CN*mJdHlVQUO=QEj$1U=USb=IH9&p>*nyr%%lt0~Ue>=o*JrRebn!pbmN;&Ar8 zKqBF#ho7nd=f;4o%kG42`qCu<>zIag)~=1gni%fAQ$~`^bLBRH32^nbAeKR$uw-dG zC(rO)Rj-c*On7mGI%zwDaJ3L8|DXZxcr+mpPJJ5wu|H4JqR>syq)&bX*EHgO&$94@ zo#?;<;6JOl4lhHf$g?SbcM12T4!gNByZD-7Wt=q@4tEwWHvt@-3s=qb+o`O?ZJx?) z^G#-II^{UD{o+SylTpQ&X9IAlB4U~*z(T9tu3We%aq&A@YvE|XWGnx6n+1?;=zcW~Xl)_z-Xrp5k0C?i~J98U}=0#p|ew*;TKJ=;- z%)t4ozH4;*T!RBN5i)>x2Aj?=spK=UEqn-DY}!+P^0_tNX!nCtp+lalb-f3-0E_-M z7HeG%pW+mf_zL*0w&WM;8Y42GnXisYpXkcVItC>ZCHpY zEU1r{kLX2S58#kmQEPtqM<+{Zjj#G0mJv<0T+V+!)!JxhlXeIb355Whem(5uEDblQu40^rd8Iur_$V+C3q^AqRw+&MpAy=^;0K9D=o#dsoG` z(~Y^arm_a?6c&lUxj#9#<6w=38BFM6#U z8+bPb{(3#8eMa`$kMd{K`oLf*ec9E8TKtRB5S9#A{3720NH6bgwi>NDce5U-8%0Rx z^Id;9{9vWpRm1zg#XdL+2Tia#^yL#u_)HPFJ8sFFV&l=QtAge`L#peHB; z>7j#vkBhnfy}|SCsR-asZOvg#pci;h251`=2=g_*yJzV1+<#yLcK z7$Np4Rn3p;@eR%&=9vRX4<~0|%;#Q*Rf+mzr4pLCpZ`#?pUHQG^1jtA8F8>N7vKYB zvWjKz>Btr;qBOZn!i|L8;d3^n&Zis$-?4kU5r7MS8lB=^EaFk^G!bb866wZ@o#fPQJV66mezo+e!8vi^?e$TZ1CsXl5f6Z0FRYy z$PC5&ryF^D=_=qd80EtTqn6|C8GweSE1ob59Sm@Zh!jq4!DRIpUn@d2-)vzN;*=G| z(l#77IHL=~fbc|sGizmYQ5{!$qhDWlj*!#gyMDrYaj~jthst()bSixhj@pp{e-5Z9 z7svu2FN+4vRaOOpy^Y-ts`D2tA^2Wsc<+Jq$i?^g1$Rc!INS5@*iM+r+SeW0bSYa{ zudG-WvZ^x00gk=I`b-0{vFLsnwy(i-?_?M4O8DoN?+}s%*@QNjiwfXZB&>4e_|-D$ zt*i93&Kk&l%aXxy@t+Lod$(hoQCPwvAsnzFwjy+Ziz>|cJLdFh za~j~uS=eM&MpGYn!mzl86ML`5Xn7OPhX^uYW}hh))PIBHDt{5@(J+mQP^iZX1-x_D zAM@kDhiu2kkI^N<3si*g(Lg%x^Wy^Q2V)VB=7xc0pTeo)eN+G6TBwi`TjZWjSv+HH85EB9JVqPI9`laHWoGhPKOn>0_9GQ|ycO>mqyE_D%-#X%#KFT~ zMZZ8U2g;)j#LhqYEkqs6w9j+VY43!Yudh@f0vrb;CUoB}#v)+v`K2TAy9|FfV=uJ$ z>U)%*SS6+5Eerr}uip5i_cQ1+YKK8*PQRTX_I?XLXDXULv3q~_+XmSZz{}fP{JS_) z-lc0JsdMGdz1I}U0>(h?f$WcL=4gtm?UMhmAyoMuA#c<$?8$=v_vU29X?9AgRs*D^)5 zM29V1h8?38*-HqqJ#w?@$OUSWNKruT@@MzOj|~^k7=q6@Kb+Q46&^!6SlR>jO=i5t zzP>q)0K7)AQU*DulRX8;xo>?Ik}ea$awNupql_exLuX*xjTzu>1_X4>cpu7tRR!^x zb*=3vejNJDwM6G$YEn?hu7U9#;AGP2u01;Mx)8hWNdjugO^FSe_r+k`ST=O0O%IYQ z!KL}%w#fROD%irY0uyyE{1s7q+XDPiwaWX+f{u6ZSA@O*>EvUN&9X|q_9^f+0ywn3 z4227xnw67cNR>pQ^{L4Bj{q-ll*rPJ@ou(6_CbQ#QdMznMG**h8&4sRbzi7|asWF$ zbl-g#X=JYwh5@*RbK`#Q{<{vjhNERU-^NCBxCXWMZm(a!N4e(<- z{ovzqeXTL7z)C0*ck!}lO0w)1CpE~K25?v2`N;I}is7chgK=xGLDDJAvdyO`C<(P# zOyo7KN^sYWHzeK|njFdhGTP76Ycq$CqE8g_#uz0A8;;O^@4KHckbb~r(os%8Ut60- z2F(zOA$S)V*#(pJ5=006W+>qR^$KtgWgT~1?J_+>WiN!1CN+Q0m1<6L^kF@Z@lr1@ZW?|Xt~Q+#26zw>CcLb zW_f@)dtgW46*`t8JE_a?S#TF9rdYan-8e^qVMZ|`EIU5=ThbZzlL%{>~svSMJB`iA$U9K z5yhJ#l7xR?jdj=+NIps02JpF(i+z&;E+V}$a?ZKq&n1GCs*~$6GQ9_8*~1$=i(u^? zgoF_$#jh!*UY5OreP5k1cOm^8g6?G`g*yKBJqd%;&P|va&Qqs87--==?>8#T*V!H) z!nZ*`q2(I_wfLz2^CQtj7ndF8R~Bi8;a!9}7Px6eP3c#rUGsC~M!&9HGZDefQB^$J zwmuFEEZw`_98bdKZ(GSyyUXF{6VnEbA1qUj2Y`>7;(Mm(2B*)tO-z;rsX2 z)2vR7Jrg%If=cEWz#nUiohBcUOE=86c37Gve*I(Ja^xdr{$}oL_ctL$$^hVLL%z7D zVGJ6WxF!syxsjhv@Wfs_YCc=XrKOq9m%xI196usm;!7@j`C94S;=CR8Z%wjtIHMp6 z=8`@xxcRU%fa7XxSth%fnDtxy3$mSiYy(m{!TjM-_Ao_RTlIuW6FqqInM?#$eAbJ} zX}5I3B&a_TPwPGG9<)Lw|994~KRVC}4)S9h++zd#cTFJ<6^2jdS(ERw>^3y|CusYg zkr0>A{(?8(6r%6V^eExX*tcWh6n52Jsbqnun$`Y-NQ8czQ2#w}|NUB+m@_Hnh~r%* z=1?Mq~U%fw71fLH7#%d-cd02}gZSjb!&Irn1Vw z=Gvqo0XQbR69rKD2dUfrV*g(Z4;r_^WF>(6^6D-<^;hC}G#-1L zlwh2)&?BodtBISx+YFXuWDpz&I7%T)jYql=pIDO(v3!8s*@xe68wJl#QAUrdEWve< z763;TY?so~&|r2!Y!-KaDLn9LOqZvrsc=JgYhvTdSf&8D$JtCPb**8AU4ef+K}u+k zdpEYog4j(CL957A$X)O5ce`%_$H)je36!|Gpe-yBGX8~%j7!}-}Gx{uc zQ^Ej)n}T7-cs=ZOE+(<`CbOw_;B*%aaFQ6lhw^#kxQnA1N`J_@1jHLO%jf@od}+;x zRcz>$-4fv271@5jmw)V~nn}`iJ0J)2FVvV8~GVe@6@LgGN}6AD)(jr3=z zZI{51+0wkkAeV(5X%R;pgWC!wx&xLHaMkO&H{$wqtu}ovnjBuVwR&|-KkgRUPgvK1 zE5p;`r@pI~2;WB8pdtAcv!X*}xvCYiF~1$HRTF=|51gRL&6{~;itJ?xu*^>#pzLvSqx(jOfJez8p_(x(c`hsK3h)02qr!41g2i^`iQX2s}A!UA}G z8{R|>Iz97P)*WUlj9d%p4z|M0>shjD%bRt4X2=b|`EG3{k&z{3QB`XTr|J|_Ihp_1I`YlHa;DYi4UfB-fvO4NKx;hWitMMeBu+3dgJKM9k5^bnG z;N28DCWSa_<;y7&ba5!`3RgL&5u}wRmyp-cDQ?*3wVVZ{i%>*&eW^ue*h*dhaV&SV z;i`yS?LNz2{X6e#ZT7RyB*4GmlnuxG#4aCemrCIH`p5JD;&KX|iyNaA-uJ$@02JY~3= zqbldv^SgBUQw4S$uI!5ckeAtuSGKLDvA&H};-4KDiu$kA6Pv@vN zp3jn%=l>2VgN-Dq7F&%OZ2w4EJt{xa;SUtU>>hDT_>Ovwx{ki?lP#smhIvh~y=gN_ zlM7_#7tVeyfNSn#=;E}ET@Mhws+bW*4!GIPWLyU^8Xw-)7sVxYf`{zNF)%eSLjq4L zdpb{0yoJ~;K^_L)Ogg3>{(A4<-ebQ3>GFNB%tl}4u1g*KWa^n+hKsvt|)i;AV%YZS%Tmsb&tQ- z_QR-taY2{dfHXf))Z!xD@cav;Gl@VuRtN_b94IF}3r*f%&g4Tm|7@#^x+Qy3@iQ0S z0=S2<{gIUbf-K8HfTD7AH&zI(U#U2hH(|*Z-=^A+pU(i_dp?GoyxPzz7DwsvkP+&= zmYfQ2TX8-t$$>hIyZAp}wu-b(SIucm`_M0Q^l8Z?3L=+N@)>4edlD@px}6V=q6$bS z^>6*ii60W+hUT^T-Lx&Tr&aPr;eDVsK4;POs&fVsz_lHoh^ub(YHkF0!Y4Hdbo~(m z0(_vQZP+6=h_cu5zwMZ;_v_czXUvn#WK8$reeMDV(}X5@op8TGa7tT=cKE}6pQ z3WsvC(*8zfwnGgLqPfl zccA`t-M695sD}-xy+e(0S#{zC=Qxcqv;pFktBsDBVq{bID52g zJVx1(_M#uS=9@HAHSygQo)tsU8798dNnYMV$_}h{%$-kyr$j+T@*=_>oWx6A*^Cx9v^)diM%wN zd04zJI9uAjd{Rn^bBq)8PS~fW; z8*c;Yn@}tUw&5P!xVvR93>8jo;ptR%eM-n&h_q?2agy2K^ha*|yUZ(-Q3YSO%<4gL z+c2h)B}~O{eDvSgIO59u)8|0CI92{1!#4Y{^f5HA(UBJj!W?7YbL(ThpZGC0!#gEl z|9;z5sLG1{o<#~jfrfmA-Re((V41(qSjo|m44@ewD9-@?il zV-RmtLs?h2YN7%iU&cxWDCWy8{Yq%Q4hai(c{Fj+M}SZ3Tl20~ z#2KhXhk84+)Se{QHgVJZ4w2Jg$a+tnmJQCZA-eyHW_|5{vrK;sR3a2_&pI!;s}_k6 zF(}}?7e3qv8-a)hV{PK_bjgRUA7~*qf88nT?9~5#4aNC3#j2ryX=MNu6Ec54i77dx zIQlOZ5)M;2Wd1$$svIBNkJ{{7q32%-;4sW|<&fmfeeK`%Vr$d@Ekc|>rK{TUcO9dQ zIC#J9avprVO!VX2Yk1isinX4wgUFg&OUzGt%NC{z^}tv`l0ceY;G;r1upb(bXg28% zzV5h>5Wym6Pnx-y@~;eK#bCkllPswLwU4UaWA2J@GWYy@|NK(?lt?^qiups+pT|rk z+{-GX(gWaCpQ^v~Dd^3Glww`R59qQ9op&k~F1LK6>43^BoDO^eINf~%7Rd-JiK}%J zFWhQ~9}etI7RN2mu%g$3eTNAiUICjqF?QTna34E{Un2uigdNFD+)Cl1;q5C4IO9nDLLA`tT!+eYqu^W{ zG-Y)3TBF#t^d4_lp<|1Pr#%-)=a4omKGKerlAcOmFZQ!WR*zn;3yBcst8MA0o{9Yl zPTkCepZFN)MI9O_ttNGH=#|&nFjfxJ8*_uuQxFY3uZ4khRcI4gP4x-bjI95rx133b z8n|4meUQFYc8nU}YlPS{wBkL}ss%qPCVFS|L-3`(u-HjqGUDDm1 z(%s!9-Q6G{(j8KQbeD8}&lr2}@5lY}`xxiA)?&`P*POi0bKI?jvT*fTru1Q~Y4>|( zCoYLLU^*kLf{b+%M0a(<0jgOB9l5Jfc_M7Ov{QK`&NdyPx*<@^dcR5&nHWrO;Bs)P z0PzpR%s+%!#W{S8oTxN9V`lK20N)sxB!7Uyf<~Lgj3!AfyLP?BOPt^voIp%Xxtw%3 zX8^dY$CPR0KY1Y}2EH~P#wn{~Kxgpd5h0sKi%vq;oga+w5kvqNX5;-3M& zj8ycPUspeP{&O_9+Nq`o>|7dv(VmzEi-1%L>6){0+(q5N-EguvSeO#>ZiQDAN`w z_uZgS-Q38&yI}&-af3g&hcz%PU$Re~9N!BpF!>((Tb_K?JxBG}cby~zSFY%iUnMLy z=ipjZR399M z;(tc4={Ayq4Yu?ZTbkZ2s!dx%d1)6VD_oXAz&CRnMEw>5aya7h*cBjMTj(onGlbnp zBHD$Ep+rq}#CAP8O2+9EGp+u>(Oz>mV%8Op!^dn!`AKjzQ=tP)th`rEL4pOiUAn ztxa_WgojHWoxy*P&_&Fw>GOh-D&Q5la|ZLeIm=_Z+yO;sAA!W&WUOmAToeF-c#M;6 zE#Kb^q<<=G+_o#nz;%rp_b~dX>%$^mR+nV($5zh7_KwrL1>E--WuK_G^uh9t9e-{h z+4yVIw^s!Lr9I616~ZS2ZHkfzNH1h6b|tKybBk(k3JvT+WXDBt7Uea4{(32WuaNJN zkp}S0n9db_f;SW6WDOoh|H*FqfQ81bq_ouaEtRY0AN?l)$5r>q_0xT!YW#({BNurs zd`-!m_1_cA|2|l1)&?_deg!za8GLtBG)KGw3LOK^-g;QRW1aTUJlFmHIOn`ewlugD zwF5^oYahVal+E%FnQzn@mzr_^P#rEH+VdCugsk2NLm=IGKndOiN+YQ;poUw*fZ>|b zLe~OiMkwbrv!#MX@9eBnuVXvxn}5IQq{d*Lrz>)NMTBKw+8Pf9(-b7xTlA) zC;C0j<{Y#>UY>L&GuNXfnMZ$81MGnBKze)z4ceq93IXI$BK2ivMEZVf)S%FIqe@k+ zi?XWyHMorS<3a11c878Qs*4;hI6)&f;b@q2alY}1|I%dW!q)y6NEb*7{gnSf4JAV^ zq~^ynR-;nm_u@qyW=0KDTORpau`7UE&gW9Tl`;vS_bEfFMe7#7^Me=O3Qa@I6)$HN zFc#_uxNc+(cfoF>2&EZ(&Z~YA#&(?=-J#>qq~b=eol*&z3c&HA+f{B8h$6&YQ!<(v zDyDnoVcwty2`Ma*qg2M05WzX$mv5SFy-p^lYYu08BofHmsqQZe0)GVU-$V%G36B~5 zfb=gTYtzFS3VF^7!FuVfA5R3o2~fOCPSMJV&MH9(fmzsz*K>EIf^!EkDT)ieoB2@pJDz|uf zj;&%W#kk6ixGmx3B_)8*Nd+(ouVIg-PepFIT?$RP5PpuY`}Is=q1+zx&8QySxQjh4 z*nii_DRf3lKN#ln_P$I$)HB`almyW$MzdCumIg?NeOFiWHR>NdB!7^vH~Yt1!UdNyC%` z6rp8D>N=R{x9G#Ebk3~TBYC#8+m%%$3s5=&{IF^9q(CKE8B&nEEXD#sqC5&^w-PbE zd+}(&DPcvp1>lw4F$>mcew-|A(v*D&Cnp@JCDOi4#13bH5ef%IQQ#?&B5KH7*x$Re zPo;QkVK>+4^%*=t?!b(Zkc@LAK|#-Eh9xU?ael~N$AJ8AD~15vHRl~iht}Esxh03} z{OzY|^4p%lx3;MjaW&dQtJM z$%hmCH@*E69Wk|xn#xid$ThWixGAC(fOeg3B3OnMC zdSG|(K|kMpcp%nfR0IK0BKD>@@u|>=X9sq{I*`wuKI_jkP)r6=^U!2lF|RT5y7`$6 zqeOzvq7O&nG0g8L@5Z+gaj+X6&Vn@%dg~mW)WTHi@uueUa%sCz%8i@VJ&@BEe}@T7DX|;0FG;4 zPtaa_HGU_H)nq_w?ul||?~Zs;^3<_=w_PTR19oNF%7knDA8z0*eUe0eFOtR`iXw4) ztuQo9&U3+tBzb@hcGGnpSs;nt_j0tV&-crpZ$z+g-7qDPO6^sO8@hdoiNkd< z(JNLr-82U{lx>xboBqig+4=5bXe`&|j!3tBDt`TrF2Er-{N=c;cGit2z~^(qT<@Z#0ie?pzWqD0+u zh^{#nFYzRE%<#(Flp;7awY--3;AuXuBK2qlA(L} zbpa^mzwg=FLdpA@QgYFTWK$0gidu#CRnwp%h`$?p;tGWp;CelAwFj|0tyE0wAAc_0 zJP*7dayZ=epSa=8#`wPUP6FU*?73xyi{ccu1g=E0x|!J?HJi<}_n`z-j7t)RqRk+e z=V~NJ9`Yf`YVhi6YFv18{{9lIfK!#)%e&{08M2}Xq_3E{aCX!QTD4*P6@);tE~cfD z`>i*KOUvCzQJ(SH{SM$9t73(}m@pyK|9ewXz7Lm!2jvmt7r3dv-o~knn|&DR0FVD~ zQQ>K^K6@~{_a`I*mqaJE9LWe0``xqE-?SaKzTW^h3KSzS{nb21!!JLVJ%O&pknz*< z#R)M~??MZ!(H*eUJOnt?51~?)QnLFZ-5t;+^8uu_(<>@W^TK$}o_Q4g2F5 z6T)}ZTY|q|dgPEbNqLi^yW$#2kRj=>nz#ViV9O>DFh}iSdf{B>ynFJ5L4+oKpxyPZ zJ;4+Ro~0Pokpj|*myDL6$ZJfTg4wggZNDw_-w!zta5lN?Y@~2{Zj-?Qe3uSQII)w| zf_y$fw6#&IrO?2#^5vS!UWZ6n0|GY?72q6Jlg+2PR!GsdS674~+01V)rHf0Pw}+hg zJj08@+hF<^KW6G2bY_R!+1Rf&AQ zQ%%Z)1Hl7#>}wK}#vQu{+uXywLx96!`>R#iTlYS#d11#N94=)SZ901_VfVwyY`4&T z4p#>F)f(=P^@tfvDCt$vM0*fRCkQSh`ajVa)KC$L=+& zOhGHu-3LoDvmU2>qaAZT2FJjGA|gBsvbelx5Vaf5i;A|tXKl@wle#w%+b-Mei!8za zD%zrQRko5v|76f-!{ZGx=Ij3VY{&266Hb|!`$W}(!InU&W-@W$Ucbk%m!=4r!}?CBUiE z0>7v8A9q0_O`>y8JxjhMlGW-sJ_#aoO=QtM)|UW$kY{~~GwJlu;3VnlX_n`_3_%ku zE2T7U5Yvidk<7am;6Mg;E5RB+6`s{b& ze8kSRFWDmBbUY$s~F(emrEjni|a95^Ejz6G@LxjQinx zWim!P2NV-yinq|c-u8W;wAZneeU-iQ_7~>Q`t8UtwIMx3TR9eh!#?YV=X%)d*!*Vs zg~}bye7*&J>?IB&&VCwRK zV&dVZq;n=BsD(koOJjH{<%Wlnt2+s~r_H&UV&nG?n{{CDJneN?eMi5*fbo6@RDbD5)X@|~#x>}(jI z!jRlIPTZ|CrSd8y%CEH{S+^PF&;Lf+L(kst;)C5V0*R6o929iKvfK#WS?TyaDfMU* ztJ#)2E3RaJJocCoP>jYI>DdaJL+|6CEF1on^9b;Kt_O2*y#m@=rSf9C`ts>U8ObdYaK2Q-A4KpAB5c?-E>> zu=S71o$qCtegM4o#*Qfb)PD2kFzL1`?x%Ipjhyw^0@ZaSn_WmiH7$5W!h1O$mC%mc zA8noTHEBdE&@$*CSgkcWwuw-HU|fUd|xLX>B@Yt9qB0r3=Y&qUG2WzDksf%%?=I7Q9B0 zXPFA{Q_RaE*H2lqF9*s>q#Kv{oR1=Sw)b?K|F-_VzLCmVlbJ$C5U*I?zUPuV9c=UaV~t1_JOjcO8UOzJ>T1@E36zrq6fgy zjRIlyR&SY#q2oLKze0xOpg(r68+4kV3BQ@=Sm=Nkf!dz`U_6Yp)t$P4>FEBwYdk5w zG|er9qi2hY_GlyFVPWP@dDsU@H879>|o z(-En=(L{yDzSU9z=`Ck1K5KjZr`kC>wH!H_8?C!S`cC?qTi%=Xwfoff;P=kbYIESj zu+2GM!M5|Dx##S$#-H6^)VfiR#zyZ!jAaO<@AIrkjC`uybkYB#?S3-E7ZEj3MPkys=f^2JjV2p_k9yV5-2qzf2#xWS92+<~*QJIc!@$CQt* zBSw_-AsZXGygE_ms$L%=?Y@eQJ=BYV?fYTtSvR)jBK(UhkL!}b7NnrH-SA(QFT!P| z!^P?+E8tec*xyqkSJm3v#U}>_J2kB2;TTUu77<<%V3caE;7~vc$wG317t4o zAMssFA)D?n?~Vu@k{T)TA`+sl(Eh$zM}WIvPZos0z4Ht8zuNk>XsClISZ1m8jYW}b zRF@V18nzJNz3vTjl6_TOnDXs`oz4V}{g1fxx(~wy#EC0bZEHM{=MTL!frK zeM0H%wRTP@s@Ptf)#1V1Gy=@vDzl`OX^l%coTTbcL1_%}N~%93^+K&aU)$c9Xq`14 z$U_3@GZX*4QV^AUD>$?DEL9lR#EvXTK~`&9OiVnM_jJe`+>Q-JEgfOnt55qQbFRh- z5iXN=DqQqbA2d4A6|FBT2&WCCQ=`ZJmSI}<&`y0@hwIX6w^E`^!@CM{>N3ymF2d66 z1o%jor8pkPlJoV8c`q;^vzbC1Xj|U@+RXF*(LZm3B?N&MfwVPGR_0`-~+v^&laNb7^ks>8) znFQ7Bf~*H_7>IG`<`YP&76ER6t+iY}I7oNW_WNHwH@!w?K1~DV zvYwxcRiMuW&IhowL9od~$SHtu?ZuuR407$t=+6x%O(t%35dOkgAtKlTuDU^f#JoHI zDS67yB>0UBWOf`ByP-;~=Q9_R=Rz7-@U03>==#3>D zuA6OZmXyc;OcBY#(Wjh?iN87*vD~RD{M?MLhO?BXYBc`*SBJy$n2G>Mce8Fr|7~Mj zhD`dgag=sxJjIFXy8{6-qi4+H6j#k@KX6uIX7j<2chsP|9>u-gWcuF>`uQCloK@1;-|7u;2@nm<(vGDyye5lm zLyybnP3yoAPMwSAFO(6FOit&hKG-+CI7!LW9d%G)__8@mL9$6OTr)7far&|=SN8>R zIRDS99mq?}Al`?4vO;dA5o-xj>87iO&(R+s-gcy>cg$au2A4!mhC=geV*;J}Q=zm+ z{vAh1$UptUrLo!XgQwKxuD|#Rd{l1etfjJOPcqzxJRA&9B8u;!UYMTAqFskiNXK_` zcu4>cP>?e`sM*Zod)T^pQkG18c$|1wT%m+Xt`lHrsS7<0aDJEs!%t0`?Of(E*_f?T z=UodN_A#?AW}ji7q(i;JFacgKhNFGMma`NnBg31{V^(_}#Q=FR@O6&9dxnHfzz3X~ zZ@D(|Se$6SN3PMhk>NY*S8kr5aVQ2Txht+?ZPwks>-!CnpZ_$o6Cal6t!4b#s-UEtr+2>+0=47Z z-L@=vUZ0%^35V~snsOw2tr0C1N4Tp~e&%btumo@I(D7S#j8UHVm^HZ`Oo7IQVvj2* zA+(NEDAEIEq|EkDK>7K8}wA#ngXqg+he05RWSlhsHf^J88cAr_KcMM5fcJ zUuQ1IdGznQESV>i*UI)!TY`v2wMjl?_buW+06d&sy|9PcBiX|sdGI;jNNUTluc&B; zL{<#VxHBV=)dk=I*7aXHKe5yxa0&2NieR5NUE*LjvbIINe7{ZsB>dH}RRvVbh2$SZz3kS^FcoHleh;&$;+ zNsy}M%SsWjh?Zy3?vZAi}C^%frUSKQ}vtI3rkC!z+EP0 zTKu2mWt{`OfBuM~wJye5enkGLAdqz0%PHYubDPH>pkUif2lm=Bn|~XY%lNa_!k8l~ zk~~c71j0@A`L%SruC#qLEX`nm+Q~X!!eeNVzHkag3FXL_*(*UGwB^o2t&|hG&&FY< zg#!FH2jkC7`m!*|*zbRE3L-0-xWfEp==SwLbZ{2DcsPRnYB9v!W*p*T6Rd-6K6UX% zBF)XIm8XROL_ATB(dvmec)jabOE)ltg-c@}syJt1F(M;{WQpr2dZY_gdxW44Ixr5;ju>!xY45U#$j=2AD2}gkx{k+9YDs zL*9^&>eQZAz_XpB>a_`(yXcQFa+&6f!Ug%M*gIItUIi-IxG}ZKp*G)v^rscb*``+q zOXfp0i^1>NXM<2PUyy^yE0oDzpI4g)!Mmw*)R?i9K^+^(4%e_EoDE@Sp-Fcf_Te*@ zG(Git#Q{5z?!=x^+8$xC$vJ3>TWO(_RD*;mrRgM|^E)DI>48fp3*ZR-$(;!=IHY6= zu(xN5$;?5uyMK#H!v!c{_u%m{%y|KB%QRx~eY}cBSR@=TGlfcNC$K!tBk|cuzxJV# z(syqL;O~O*#f#Ka`WV*39Ay`AG_d~iVxgB{GHIwboeM~IyaD|5)6}phf5TA+!a~20UYz+B`pCwOV?03j@b_iCD(>OF%_qM<<>S3|A61S zD&c?6W-k&v%^+du=SwP&LA4a(o%CN|y?XVb6AK*yTd}gB>YK(379%H~YM; zKbn|++n7YT0X&kE%Cox4T{4CJ)i=b1FHx>>u;#zfs?N#n$?I?)lq_tl*dcfc{~T5Ki?3~E3`rN@AuK3J-W6}$@yh*t zkdK3{$+PQ=pD-4Yc2M~pYqE*JVdpxE|E6{Tv~2Kh{DY(y?s;v<5JMS}{|q_(+~>Rt z84Mu3bPF+Vw|aZHgSa*1#e#VoJ#pJi)n(-$Ir$eo>pRP@05@UMJVGwn%9|*649v~4 zcQHD<#_26||HFqCTXXtas|avLWXQ4JPA+PpY;P8hzv}Pcp3f(5j7~T5Gv5d>FeJVK z+-j7jnb#9#FA@LKWQ3lOE3%u*1ba>Se%eHB828WJC4d)oVX0ayW~r6czBia>B4#vL z#&6GL{jmh>lWaU2Xn zcj$Fr(?20-Wi-LeJw>NgEv1>lq;-U+3Ieh)sv-yAZ|Nk;6 zjh(&4=+h6W5JPM{haXwvAp)$eQOJC0`)802i<45tfb_h?2e)MYIX|;~C>n^Jdx%vT zd~%rMf1w5~qFw?hr2_z;xxu0TXr_yZCd~hFO-E3gE@EU^K~94H=I@NX=-w~zo5|p3 zmHF?9-5JDDNF7E#M&GQ+#fuUI&qnX0h9c8h77BoL&383@2~k))j0BfYh$EXQ$FjT< zIycJDRv+^i4DATr0S@QdwC{voT6tg28ZIoLG}VW;&lg&u9jlyUk6rxFGhy!k}?{(EWdN6m3$Rv+JxG;nKLIY;G{UxsU6Xk;Sx;$P$lX7~Pa3eL5CpI@xy4if58 z^A=SVQfwdsbmt}(1gg@1V)Rct1igSAr3*HEOk2W&2>+i%c~!R&c{z%06qRH`M3jP% z>XK{*@aKQBU1J#fM|&CTO*{6!C$}4enaZw7jU_NF-v7OL$Q~QKBIP@(;82kTLN^)1 zS4Z@I+=u2hLDcTgP!93co}mZJ8Ur7-(b<3Tb`TYZTV4R-U=t<_ud4*lzPvG~1jh)< z*Qi+s;JWqlM(cymrz7tMQHQ**i}jBycT(zCxTa8}qUo9;%mAKm8{{&TDH-c7-D^^9Hu6KNLLb(P9jSQtCxbBEob<0r%h9bb=nYeZ zfOOHewp$YUJIUp)3l3c(Kcvb4vkafmuEktkG_--mK+d7M6_l_@)tc-!WEOAfvwEZI!q2`~!-a zN?mzs2_zHlp14-{Ifl&EpmW`k5t@?fgSTf&ZD=T+83T zz{gAzLMrp#B-Rz7SVC5sj%F16nT3>$nLH;>0n+_UO-TGz2V`v;^W5T}5THNsSFMql z&n*7ets&96F7^T(x8SzpG3h#o6epP}yjv`gwtjK@rI9hv;j7=GAu%+i{&0qh!>IIqcELVWF zt{O;pJz~=zLuO3#YotN2O%vsRA&b=_@)eeaZW__pRJR1vSy9KtDoI;=u^y&2l(Hd+ z#ol^0)A(Iv2=zNR4FR-&*FOO<6}O(|CgySK_BxFli(o8*r#lFvUeOWFNC*3m)| z%}*$|G)uzVK*%m3AnyZ^o+4c}3il_rz@NT1wSfJ60-k@I>bumRG*aCk6P{+fF#vxT zwCG#fJ3sWofBcalEWSVNFUp#s)=G6kvMaUY>ksfi%y3u;shsp5{Y%Qqf804t5N~AW ztwbjQBv{fqstoL|H9&gGNcKfQS+1M(nfY6=?dOCG{8{g4ffyL6dXd-`!2Y9vZ(4zIq z4+$5k)kqaN;*-4VhwS~wY{3`Xx(`0;dSEx)c|5jVUd*b%x?2a!d^TnOHftQFNRDtb z)0vu_J%DsHi$Qcb+rtmD&7DCgQQ;n6tBoaXbV~9i$jQ6Ta8$sv5MyPQZ3uYT z@girBWMXVss2@LuhnO#Bh<@heQV;i{#Rbweh&8jl?;c#`SQZpMBb-=>c(O7ZjAaCL zZ1NH~27U(H83uR$vFahoa|xz+J~J$_S*3Yv)--wI7TqofMiDQ5u$@t0WFrpJsr=M8 zp6F!L!M(|b^7?V1PWVd#gkdDag`_J`Ow7!d>vWmkvr@23lM0o+s~vCN=R~_Wx360D z1ds1o!JDt=V>7k2;D67^xw`TSXZgBAMBIL2MBBVw?{RIKLnRmrq+^y!CQl&C;vtG# z6tOGDhbqi3qKOmmbZ-aS7<|l4)&jUYD`eS*Yno_Wk^vcS$}#H|O{=Q(O!G*Md%569 z8uL8BLj}|()7zCbI0uCX%DcQqlbB=MxE{p)l3tPZe`17O0$lVaa=>X`8yg1>Ml`%9 zTJ6dF$4;0+tI3yurC&@1=wASyZqnmkCc=hS^_0a?`kgVj2Vuce+7$m~n(omKYqAqu zv9}MJR&>lR{7R*KP3u{w-B$pGcjLg( zrVIi%jFRq2rlR)mU4yq5{4dubIlIZ)6Waf6Ka{Eh=?V;3AwdS^X1Oz2nT|Rd&rM5) zxC_q_{^jkD=<7XY`m5kW{^JA9Jj{<}Zu8)Ud8uB7eZ&8RnzevqFmzeWpioZbrQ zW+~JbHsw47Q;jEmjDpViq!9{-2Zn2-B&a`v0M8Zc%r%Yi;)x$y8CcYT!%F;8Y}Zz9 z;7W|ppBvcGuv!81mTfVoF`#c0kEE5-DNK)~D%w)?H> zcP%71fOCJ*V|EC(XbC#kgKJ3=S$TwvYv__c*$E6^WG_;q@&Y&sT9xoM{E~YLGs+cX zIvw4m%7$BkebHhUtBgnQ#uo#C3$Z#VteEk-sqF6Vex}W0R21NLQpGgNn9lk+zw+M; zRsmiWskr|_LZ|534$tKF`yr7-+_eLS(7>YLLe>a|W6}}e=A(HB8R0JC{RPyR}3_1{&<2@w31D2^1L=1`TQDV?0gNA&JY!#|TgLyn zSs694hjrpSP4dh*!-F%*+OOiI68K3_rN7`PUss;VwpM<3&+aF5b@}b0H!L<50qHHB z(QY~8Vx*c)NaNEYKT#Fw>VMeag?9d-8sHUKTspr!WGj1oS^KYT*!CIMBRW~>#7ePYH|;nN8w32 z!A@W7%U9_NWq=!=S?LJOzy>?c%B#ART`pA5k#wMt_`m_EA!YtO=FYF4PVQ+kfY`wZe9*#-RE$xlK?{?#dZ&+5rAV>SPV`CKfqPudxdS ziC)$`&20>+8H$FmJ7qjG9|Bx9#u;d_3dGHd78!_FeEMoG#w4son<^XQiGLPNJ#l6t z4y3Op{=rSS`|me;RWv%EQ(GK=Ry?~W zcAW7>w%?amcrY%JLVJxBEGC@6amo@CzvA8}a+mB=A!4~GJT{~29c7xz-k%$*%S0eO zw^a03?>~0CTOpis0#$Yn3duF)&_b@C`#i8 z;UMA{9#6c|U~h1I{`CXtX00^xTMqOdzE$$>XA`c$mqMZeB^r%HI{JLDL!>rX0N3@o zW)wyfzndLPo_P8T$HCKlQ7*h@-_Nsa%t$!>p$FhZv;nlzl+wQB4Fz~~*Mi9W5m>*Z zkRRodq!1&MMytS%vU#s_ZJ2{*D*Z5%@7zT`yIb)_4dK;9;%5yJQtf0;G>}f28eyx3 z!9h#`&otNG`z0w)0o}BMa)7CNaOn555h^&2tXO#=pn8DvLQvN+KXk^-b9hQy39|2R zQA{}-M{3e_0n*vCmhtGV`Lm$8eSL#Nw9I>V$t~5*IaKw`*V(EwdOiZ2XdV^O$oKm% z1KZNt2jQZMQbKPu6J7VG~oDJ9~Ef;L?)EE-DlQS_01=-~I zSwSdEfZcEyKa-eDW*E=NysNO` zRj}&9w2z`@akE|5?Ko?f3f@h{+A#ITVMdyKxSs6{%Ed?L-mO|Hl|;jIl7YJsSZU5c zF_Cn4=4!%v58R;(-g%5U2q-K{qnF$59RZT8D1*^OQvh!%B>66*sBTC8$Hjh1+7ydg zOUUm<&3dK=qcEz}vk>f?DDG>1Fui?YxFko-D-d^WMe~snx6c;PD}c*NPyVq0u8^n)}1W+c?dAoW1`DgEMipiqh zAasQkQ!*B^jr-WVf!epkGc|mUlJ=c2Z@H0eQfkR3$4fQVf;wE9mF2h~6?Fg}STdb3 zrC+JU;I>%)r8V^Zd6Ssw&L4};1oBjoy;ZV9fJgnBrl)zbcO%AZt2jh){Bn4VLPv`3 zE+yqOI|s{|WDf9eXijMj{A@Q8B@Z-nBh^WAwAWl%`ghB|`Gyr<7AgV9n?9ytJKxj4Aj$xrd*%D5w{75~78MFHljd?7(e$e6`5v_GwF)nO^$;RsF!=;k)_vjx326+!`ULqtON}*VflA-L{o&!c-=3r8xDnP%!IMpAHl=)2XNd z2}cw*9HC0e!ml!b$z~QAY^Z^%L@>jQ8&(9KTWaXMzFY6>$h3!LWH=^qLG*%xi=_*{ zP7)VyVI*0k0vkOOrj?D>kj0ouUh*WpLQ5?IOiVL^TGvA+TeGl!*AOb8m|qG__#t&; z&Wh9H0d(HH55~DtM|EVo+_buqM1hCJV86;j*Fpu6GDJvD6FRO+pBNV<1{6EsE&|+w zfIRio*X`%W)^Q`EGYLM@16XHc$PR!E;a*r&&52bLI z>eYcmIfw=3M%0q;9RrUIpyH2lzWss*`0gVnOk=qtT{NINv@4TjtlH^Irw9{ z3}3*~D#BE0VB0=5GS6V9Qf|j|1Ek}csQY_UYRJRC50R8sRh8v4S9_@MGB1wF*3|ebLs}+_yjWGXuN(Kqn6U|Rm*4t zobsnb7LoJZObB}uP>}p^n>+^{*OAaoi^$z2HLoAv={2_9`aD?Zmb<1z)4*hJv>JWQ+^J*h^&`y!nXq zU0X9178S#dMSQ#TcN*E`>SGxRi)5(Y&k|yn^Rff!^~cco1f(_up>TTX6VcFI$Hv6} zM5($hIWe+%(RaOd0ZwS(Kh%By?#z0iwSwOted|p!RkT(g=@9mNVXkXpAREB#J32pQ zw2sO3%V(LI_gbf*d})evnWP)DMH&2{pG#v1a5mh3lF%jsh+i@K5|!{(9uLFJVS1vm z%c;IXkMT_{fD=%>>LnA*nCXGuUN3AXC!#r5k=b|v<4 zPs+QsG*N)RsZ9<$+|s(V!L_C>w-%ulbI%lPFeMl9J^TLjHS-XkDJcw0*^x90v&331?o)azWlY^xKM953z4^OgO6K%LIugT0XoEIA zTUQX4-e&RxDUj|)5#SWL?fZAvQs!7U(qzE1o15@YfW|Bqqefb?Tst_u{qcV2%{Qgh z+__}qCPOx~ZRp=>6%OBz??#W_kLvZVEkHUiiWJG|yM7m!U%SvY2#9R@txsXWLYzT$ z6RLzEMPhKgifI1lvlleuj`tpBqa`>CM}N4Mcq{>LQ;F@S%2y)4BoIQOPw zpNJmX+<eFY2Iu=9|D?{o5+%2mX`@j(^s#m*vB;CS|v6g zF8Hu2fKON?HMS{IdL5kG3(Z~f8g*LXs~4O4T*zf4ZZxSAfW!S?*E9CdNQ=yiOKHB4 zANBCG^v27_uoFwIc|Q#1K@HUb>CyU~uqYNivn%71^ced_^c|RrUl3 zDFL1!6`@y?`K?{}46peCZU9MK4jW%F?})q4&QmGgS-KwJ;a0dx(YHU;Ognc}#k%;5 zdUI%#TP@y6?P7>S>U6t;`+O5z6Jjmg-wYdmgxi`=B!(z^9A-WcbT(eC{KyPrg=zrO zHJ-1EmTa;uQpcBjeCCh;Ui4@@Z~U+|k3%R-+@tm^1^E7tG{1C27N=!|#jkpugJ0_I zJP7@ws~KU>=UJ-#-wOd;t<(Oj7Usthoa5v-o^ft!(#7)#2dSRVC8oS8r7(g3JRsc9`n&nI( z!pZ84edGC>#nW8{xi<0XgNZd;kP0)&F&xT8_meYa=ApP<0F1qJk(sBCFK++FJ4PS;^bJp6AShz%& zC4_7rOq2j_owV-XcIGG?h>A3XYP!Yropm}PNlwzU0}hos>qDwP!0TbveJ$bY=bUn` zJ+uq0UM;`mDY<4(X@_d$?NXQ9NCRBkA3^PNg|^p=9HIsqwS@EtV)XD!0#mRrOd{pz zWla;nkD5vK$kia37C*f68q0EN3fdS;qBO4-6nDX6%xAKL1NdiBLyyGklEg}twb9Ul zalcbBK@l-Rb(6d|Slvy(k$r$?t@#}#mfn_`G-{jQC1PoJI2742;Ii-F;_xaxr#gQJ zxK201!G+a_2qOmVrO77J`)|699t4ANuJfg=G=FaXumHUMhhSIUJNc|XY?BI>rv;jV z!Ae#kIBR*CM(3?#6mT2>rwld<-pE60>Sh)q7FmFA&+bQ0%JoREMqw_F@idLH130f_ z8JrG*i3Nrj+0V)=S5i~yKt%Z7_UUS3w%9*k&A@v#%Bz$vIO0#Y7RukXxQT<1ji}=i zDDBfuLN7k@Dn5w|AYI&>%l`2HBkL~1s(9KkfYaUGEh0#Rq;z+Oba%IOcZYOJN_R;k zA)V6QA)Ny6|MR@xf85t|_Uz8iJhNxXp(5kWj%62NhA{LZcTwU&PSnD5yWn__I|m;3 zzU#ZhdJTD7N@L>uKJuXoYuND5hAdCpfU7U2YXA3*%l|c zTU^7L==OmuYew8Pva*>XOB(MkFzSyEEmB>8bY>O^25McSjce<HCDASx<-C zc4ZSuYu@`&w?ZINytiMg5iK(9^aRq^T{MqhQ{x5FIAzP zH6T6wxQN{tTh{<>#E1Go#=Q%4P6>BCrjAkv(4nn-+1E*--Xb*%YJuPJuQiv9htMNxWoYO~n2?aYjiyyEH&L zX`KB)yejo-i@ci*THWrsR|@aV^>%`#isMUxNcCwCzzM<$hjDbM7PZ*R3xBUF?Nhc^ zb=7ze8V~$?$4TYuiV1LP1(Mcp1g+F6DRt6wuOfL)MP_?N>3P;%*hcrLnI1m$gk--GH70W| zjM-7CkPGLYHzU9^S?cROB8gNA>Au_;BcYsc)B3^aG4|pONp>Z!um6G>+=XzHF++8r3&*!XHQ4hLKT{>^^uXpJo z6qnB4N1az;gK{N8@LRn=!5v6%KXYt09omC4G^td3`P7S|*6u$=F>!_UL=0XY@#DrB zpXTrO)3Y%+)GKkcAyp4wI<#mTRR{Th45hBN0>wz~tZ8N>`{~ZlBFV-{V0?&~nNqIp zLConum_x|_G@}gg_jlBTmhp(_>x9ecbO9ImR8IDXwGS-(a80{$G7VA30MFbcdpDhT z6+I)_409rmc5S>qk6b$v7Ei3F^Gs;bZ36I)N82v8ys~p5QNgzyv0}vTJ|1S7d5$nw z^QXLihDmjRBahg#!qHX~u6;Bclip?W5&iGRpcA1k;7hq0wC(5ke|u#)2JGJx;`U5c zyE;glel{*|Ay`(G#8!tN5IfYhynyKk=P3K#G>pb_bg>!!4OYJ0Fk(|A>WfNOG_~5& z#9X#OF_IRML{9B%J4g%DQ6FRwXyKYolyX1N`&ZORB?;EBA_4rpjcMgJ(~X>1R{$M? zmtlbJx%IbL_Q~d?Um+uYS4iLp%nnD;>ll~+ynEV-7K(@eCT_CyN-Aq4#H^h>Z{HaK zuA6d97DKx6NpS_E%!ROj@zOOmJviVCq5j17Q)llEi~wu@bhUwB^^ngMT=aUk?co;q zdt8|fUwBfp>j>pu8OLB0sNEcS4BP8~_~5$Gu<47t^tBtl$Z^6zu1}`5t*p_NCpcSb ztU+q;fE#!I)R?r=8Kb-Fm?5p6pYV>es54=*!n1)4NPiNWz;<)nYv2&0M>wfN@HS+V z6@t+C;dtirG_c7B4Q|{~&&x2f8_skSkj~OuoX)_(pXUst@>g=19=GH7&;D=qrrji(<+*GlC%XXm6Gi{` z$a`)}g7ZOHylE&q^EPqkh!JK#%XQRRJ$bYW;PN$D%%uwSQ2QsOX9HW@zjlx~t+g0+ zJf%x*Khlshn*;odM_zHrI0yI8%osX^Q~f*m{bVaqnPby!8K|g+083wh&uKv7S6tU) zq^Sr~{IHBq@hA@rZ#9&+`DI7r9OrNhKHFJ$VKS+eG}GK1hsS2}-zs-$-|Id0Wpq8C zgMwd??UyYe-AGzXh56`W(j}uFr*A8VAhNSZH0BOhqv&I5Y?%8L*h}5VhYhpgvc+E- zYx!v6$x108*XSbho}{rfTD`#3Dzg_z=eIgS&|kj&3l|(4g-5x&Nv>njzxr=s+2K$1 z0p#2YxC6Rtc^%>C_~kowKb!YkxEqt7R?SB!#lfZsJ{i>>MQTYPJ$*#_`J_35(t5v* zOak_V*gqeA_~1CiDU>@&N!2kH93utJKEIByZPMm`?(Sihq=z*!IAKkxir^XSWfUYW z+61qraWX6dne0G*K}R`V@9~$VI>JmUY1qJ3uD&&J2UKtU@{4>T_Z2cnn$>T3 zn3vboKg7{lHVt!={n`3KG2o+dq)8sFuTYPYMC3P`bXI{-XOisUU zfsfjT^51{|Fj8wt;8$1fb(yH5vg(Y`s;JDEtz=jY`_utWe@5#cn?%^t!j|>vG~;ir zcPCpGu#`Shth8UMut?tNzyj%7SFsTc4^**7zd}qOlUvi@isKqQpvJJSUjC?O{9>F3 zxIltBx8mCtWs>Q@$V@i3-;vL!xq?8OP`?CEVs<;c5P(y$O*lr6@!H#Ts^xaseJtb( zD~>0wwL6Z(48M#~R?q`@d`sV7ZNW_|PNZT*{>Azo-~?<(IJJB>k+YWO(Mypco`_$O_BbY6xGW`)K)VFpTOR|B}K^QcPT=&nNBw zw^;Qbs@`_K0p~MQlzF^SPmqP0=CkVl+<&pr+uiXpzRhR^-wc08n#+F4!SsQ~;Fit}!iu%b4T|4vAJRkc z+I&A8mICR#9=jD4+`7LiuR7PRAsHOhRZWzzjbWa*IN-PHCAD|}j=q*i((wpA8 z*_U?N#v>`z^mnp{(fOCfRtVm|H-IlChFsb1;02LQcE;&J+jDxcjZ`^?nHQ@M5ZsDV zOvwP;NvI(%jHE&tSrXRNR_t861PYN1!_58fIX`}gW_aZRz+vgf+PzHu?;ocaef1&u z@8v&u$~h5j$hPvcmz-}Rfivv*VFUD9F)ofhXF@j@l~A7AgpOFB{q}rbQY}&B^*$XS zJw4^@d^EZFbpIBn&PhnGs*~=dX9fA15;0vWdirRsAK-K^^d*}yv(E#uv?f(_jVd>7 z%jbHUhkQZBvO5&DzTilJh@o=+y%xLhH&=?PxJ=*c=dI-v+CLA{?LX&D8O0;zf%MUW z+fplb75*R66`sz0aX%i6#CTC$uq87Q{I+v__z?gOQOa1mao++igi4TSMh8RohR*E-F|)d34c~sNr#Yjb@FQX>L5&IfffE!Ncwu3& zK1H-0T@^C6PCvZ4A|jb9e#YY_8|gZoIp`liF^*FgpOY;ICCggA9P(V^S&rgw_wwIS zqXyHh-;Wsm6$1EFmV7sXyu=PB40>?Yw}=p@Qi9h5ZP6pmErc>Ws>xV@^DYfDYY4Fw zscC#z{7E*tM}MzRFQc1)!&noM-#B6h-Y8K9QA!(HGu6uYQ&r>;blKBhy0q!z+!sDj zpioG$yMxQDjPS22X>GD|zuFaaIq*_!Y2`n|3T-7IV)phn#1ox>waXWTdcb@~nnm5J zlR|@fv`LgxfiR70{rrUp1;d{!O8}_-FMi=4$xnR{5|)M$ws2&SN(dCM#qXe`difXX zowV5-0FFc!_YEfoqMu*Kfzy6FD8TQNbB6T$-#3KDyBr4^wct1dC4hE(N(WJdSbTj; zu*_!d73N>~4@XMPN#E@LYtAC-4j(oaV>luMaHmZUBLwWHx71{1$ZtP&)i(2UKn zDm#*FiSDxVR-Kt5DE-@HiUc^P8-9*020O|^W zCs3TCn_%BOd0-k_5}+b|vd)i3*+<$9~BDLwW97d(-VPbk!4Hss1A_^7{**rh1)@V{@Ej-JCF`gFts9(NmE z&m;;SGXslO>NN<6>D9$`JQaPN*mxFL9)wd z{hQq)CSeBuT9b$|3LBk3- zCJfDwk{GoL72xFtYn$nihOSU|Pzbp?Gb@+>$j6mYG}_Pg-STB=Y@p_4 z;g^h_-Y9_MqcxvWkX5crw%+o{(-v~ockvw{K46Y&;i@xtRr!JEJL7sDR3=LS5ynkL zTNb}Mg%B~Kvq+#v4`=4M;$DUzI3ee-LPh3Pe)|$5>4!9h;!`z7Tsz9jU`o*d9a>5oJa78NePb|yE97*WZT2Kd2cIjm`_s&nLxyI-f^#1+g>#0j}oRL^05D0RV7{QsM! zcK%3+T{PI0?(37C*A*7=de1N(Rw$`b_mB9(q_xurNEba}8qS%sU`4;RtAw^mgB9lP z$ndJ-VtRlkS1Y4^zydfGYoXTMo!Joe2hW&?6#wpkB~L=gi2hPTV^rA2HF@x^T_qGD zcsAcwpIw3z4EJ0jytH^9-jfh8b?_E&@Z}x_ygVc}@D<4#?#88}q4k6Od9oF=f)w-S zSIaXbfAE(Kje|>-w6Y1_h$>ZPi5NMmjnpe8sVDbWygh}jJaP3Ke$F&-iCER@wU<@j zW6E0Opl~<%G9DQ~kV^1q_}SjdL7{{<0DPu4lG|$Mbm_}YZ?M*sgUUagj>Sw`{U(S| zGGZ^|Ao~+K;K;OvSycZKd-tQB$$aF(ve#x?(zURc_g9ChlPfy*Ec82owovFYKMW(F|?R!e&Y7zu&+FFAs}+ACDhst-I0D4#LFD_Pabt3+b|gAu@_Y zzLt~n+8RK5{))pWDe{QsfvUs5MRT%T0=4qec2@Jj4GQxrrD|GmSLHfxe%UBzUY4AM z$_n#aG_ooo<`IR9L2W_l_j$qik)*m}g#uS6U|5fU9 zCaB+21&SFaiGQT!E#5@0DMLQac@Y=jOQAgIxBCBANb*#)bdfh zCJeWXq?$U`>_kFPtIQLnZvyEmRD>3l<7N|H-?T|aAZ?ZK4-#pMhTxk|#0KwM&)ZJ` zo^d&OiZ4Nu_p9DFXahzZvfX&mX(RN%&Im1pj{q(o2f)MGUAwO(6J_mPwXh;29(cm3 zRZmmIy_DaM-PdBbm)!vlFWLh&aC(#^{r%GgyKB9olh|)21B&&izDDmiCyW+wByfTI zS2o+qA)&(P*2yyMR8?&6#r?xJI#a_q*w&A@j1WjCh<7gII(rx)Q4w!her@7=&AHQK zx|sO_NsHCwpXUV+@bg}!cv<^HhqY!Kl5pYt>G|lMv>wKAirdUkIwW#CuxY_hqPne{ zLiV?ExX*5r`eUk)ZyM7@I8;H`{a&V+It}*%;Cjw zY@iX~0P{=%PJdKHR-~A;f3s#{;D_DS!Xq`+a`}G2>z;q8kyw#)T?EG&BYx9L-=EEm z!Z#|+=*L8+hsHF|ea-@5?{4?Aw|kmjfRDOS@pR4aV23SBk-vh|vP6Ji_g3*ks20;Y zE5#zj=+iU6DPPxa1$(E-g6hpDqR6^N!>XMFNtjl1KVzI$Ddur*0Q_}}ssx^N+UtYd zbn&hd&8TMT#n&vnM;bQAzcukLm39DE7$Lhr{C0}4>clLcSJa&5pz1H0It;H(Pu6dT zbqi4iaJr7f8m2!5cy>~nICR~$u!>A~oRGe~JNyHr2gKhSM*&`>L{@PnTU3X6C`AA1 z=hTVDy}=a>d$ZZ1;cp+9KkSA8r!Pj|g?xQmQIX{O>T1LiH8y)=yFB`x>MDE1Q(5g| z7~p9K;(PTgD7_=3ZvuqwhS0@Aw)6SXb020qi|Jp|^cVns5g`(%It%sFf2YcN@T*^J zzqAm(f(?rICGNxeb&xs83sR)Na&C#giwSS>*S-xdMj{zy=^kbZln(OInMzwr)g_9$hYf&fTA?WTVI z_kxmbW^owyd+xkAg)`Q0mT~RjnUM+w^#eIL5(p$1o`&%(U8*RMR&};#`c+j+*y52$ zlLfgA)~#T3g5PTJ%EiCzkn_08d0wX%QolVyAFDUk4g_x^wl8i z!JV9ydh?3{>G(FNmo>P5@fx4T*5AhKeabGC0$3iES=IdDQ?sIFkOA%*PeiV@?mKf7 z0r7c_Z%v=_KI&8ixod0t^rrj*HtaXRZ)(THx)()>EG5eaH}w*qiC5n*^6U7xpcf>$ zJQ1pn0Njx?NPS_>^Xbo5E(i5PmO-=8#XxS|>6yMYsPHVjM7X1ZaaTz`xUDQ+PdOmfK}NrgKwl z7@uwYh?(m3d=Jo7-gfWrEP!-dZhyV>o2;`W!_%H7L48b8cE3RLpp52{>{Z>Yb&YCE@hCEauL$>dGQ~5H&}jX?9ids46?_|7Av1@VcXtDSD~Bv| z5YLe2)!m!dqPkcAWitcmtP{v1o)9T zvTc2R0INuX^-YnRsaf(hl|YCUJ2bXHrq_3?x;}u<^}O`IqC5Ybc9Qi^X=$t?A^)d_ zBPBFmdFO6gpg`LRaH~8a(aAaKx0h9j(1b>hDp-ZIDE!=Y#w-TYdW+{OuoZ>J=fJWO z_YsFLJ@Jl*`0u~v?5Y?kMeB+85R2#q3Q#sc`oJM%twUeUxjdHCF z!Pi3G2HmLuaN!UA_-PWxuh3b*!uW@_`R5GkH#*_y@AJ&63fU^e2#pG`-vAu9?(SE|Il|M7zn6s!nt|lp0xoGeTGhR) zC&{0_2-ZV@$Kpvd;6^)-;(O{%EqJ2j)}PO~IVDUIFR-@c;9h!xmj`t7#~wYrdjnx) z<=d+rncA#f#AJuP?mx|sR5<&%|M&8z@E<ij7?lw(B*H17s`BsHr=I9x#5PMq#*P?y2(ap4UmnwjIbO zn~VeL3vtjfPIp+GqJleVP}hV@lW9S}3Wh@G*rdX^i4Newr=r%w%AbUTch!Wrq0jxO zNo7)}7nev7dZca>QXRe8jO}>~4+@$J@Hc?JvMx z`-qqII<$Ni$^#fkl7{fU#w$l~K8g&tVU^$hX$%ho_#~Iuu#&coYFa~xn2pk0DlQ0vSIVcpIj|u@+oDoWJUl-P+Xdo))up`}Vaj z=9MqdhkH`saDej}Tz9DeL1y{HtO&^E7Atuye{pzXk1(@kbqY(uJKAzbpqSH-CMOwO zcx8f}4{UawPbV4S(inXst?}Q*W~9UnnG6ALZeuvGB!c}kd~VSIL|U96&7Wv7LN{I9p1#n7=qr|d*alr!wEmR z@A+BAcmV%Ht8s8N6ze%PEvI^LKD!rsoj5qNhu*K$hA4GJl?6_jKi_((jmzg&hE`UD zu_&L;??zy374^?yah@_b5b)N3yXGU=L(6E;Li7RBtnBc8%uLbGzo*d=zvdewlD5*7 z>VO*=|LlRKiVr+%mnMiAJfiyaH%Ld95vV<;_1TwmgA-2SO51eC zs{lrZeJPelgF~c?{(|{LhSnP3-wzQ<`QT`K{8s~qql2NImJyL09?#BgGm+NmC~M-t zh0r3d(c1-Ulz{!>eM0vsRM*xL<8eeFSLMWRQV;E^BG}X0PGq$s!k3V&At0EE%6f@7I(cC?L6TtJ{tY6Vj@I%h`3e9N#Xg^cb!hxQ>UGVNv zO>Lx&^|!0yMgT)D#m*cW>6`REnMc^;KF5M2kUp{{=_%_R)^~2A@c=W7`XPzW zYX+0u+HlfQ_a7YV;Woe>BPreaoFVzm-dCL8NYilebPT`;#vMe{Z5qG&^}j38jO)wyYR_`D zYNU_RIA+8@if4!ecu4q*K}|zsNkXTBWwJSYb^5vudKhb^y+ZW9#jx9 zh|Ep!53P>BKWp+zXq{--cHd%nKNSFuktl22^=WdPQS;H35`LjwaV4D(e~GZqpwa$b zVnW(ufhU1YIYjiqCD}G7wTU2&DGfP0-tqoVl&1EQ6zVU=0yGLhG3WYdBHN2dFi7ng z4-U4YgoPm@Uq}k^<@6 zf;3{>VF^(9_d3=;qed@0*s@&OH(`SuZtNQkgQ#5q?%(p+gs4r-*HFoE(NxhFq1{Vx z3~uoCXac4Jw(BhwoI>oCz~o@&vv@ZiYFw##QA}JLR~2-TJ;h!n^%7JT!+~3xWR!Bp z&}0n5>``j2zDEeupUuBcVIPILHfK(yyC^T80L9>}j5I`PG{)`9RrJ;5!$Y;=KOmr5 z=l3q>_-q-|dw?xKqWz%!qEL1IOU(|QKVNu!C-aL{UCMPK;y%fn-u+uB0MgBzkjKO* zD9(C<7&1?!pXB7z+e^3@2dGA*pf)qMWPAbMLz5nA=43xO@m6j8Js16zd1WC7|3$Ne zKdBOClu+ysz++YMdG_-T(8Cf7VZTLdB>RtvkzbQKB_olT2r~@H8Unnbq-snSe&wH2 z)0M~s%z#hQ7DH_=R5CH^%nEeMuH0JmO-nkqc|%NDr1Mf%tqAaa8#e#tg#s8~h$kQ`q~ z1h%~S_A8v6qBeIwwpLbw z+G#Epana-@R*&vG82$-denj1AdNio(f{hS{7){>zRt<0%2Ielh=`E4QUo6$0NLZJ= z>we-cDg{;?oMZUB$REJk1MC+sO6GWd(3^tpIJg#FV?TUEYofUyhP+zO4cpjN2hwv_ z#|@QH#TY%GPJcTYc`2|65FLrla3ntU?M=Pk8v+;p>qvYvpY$Bn+~cM&wFZ%%E}Aj+ zk-e8NX51t;)&`mo=7Q!3{szde!xJlr5;;IIECD%x z=6UYX)5~Z4RV?qt1G}gLD?0eR9jI(=p4d+D0siDppswmvzM-ORJGhlY$o%TFvL{r2 z%W;Htp)Km#37!O-Gfg&RwLGhfmTZhumLrJhNQGH@!a2~aadn4KUt>Ce^zlwq(frYg z)PAS)MBEZYlq@i@`VhpwT z`CB{Is4%Je%R1P8`r8rD+n5GFgn~!LPagZalst!ZkTXH!)M)KzPe3#KJzpUPL#%v{^XMKcZV1~Qz zdn-Lrw!ra9#y4P$RpAHuxSgbl`{Ec8e_@c~sAh3;xHYXZudko!b0Ad$azP`&=Lr3O z!W%rb-sfMBg$<}XvC#gKV3BfBA4QKSM@bw6r=8Yno4c%tbvtB5q#8s9r@;ag0g63q zMYskzLa9Y~JmB82b(|P>$d(lEI|8~sKG79EXG+lWeZ3eigPuA@BrV#m|YCtdyw5*-7UL;*x?HojP>qZtK4k zZ(3U~Zg*S((x*nreC1&Ux~Gzg>RN4}V!qWDR#n*8==)3VRD_^}l@` z%rr(e|HgYIE*k#@CP>2iS!BB#Br34CJ)$jC;{t~}WK-ug!mUsa?3Xt0 zlh9#X&Vh81dm@U+{Zg5u1YJm|_9Th5Y${`8eIl_MF*u|er3F2JtH%F*dNtgJS6C-V zEalMq88wMJGyN>AQLkBpjUUz~2JiwLU({lY`zy4&Fa=EGb5Sv-N1|f#4M}UQ<5X@` zK1zTaLDa5GLVR6pi{3rtjsDsJkFw)F08LHm(ffiVuz#!z@QN<)Q#}gtSnGzbgm^|8 zKdST(l9P8EyH8Xqu1qdc@&W$qCJ^N}=~x8LTp6bPDFvGRV_gdA@w%p3%6-wW%BTmx zsbK!(Y>hWQd^-5c_EW2558`iq*T|ps4o0%%uK&H2JnYM^^3E@S3K<5f$CC^2Q9db1He0nNOmP zXv^U3{7KyghD!G`YBtEv9XilIWAsofg3B!W@mcgk0TIUb?5?h}Z)w&FMm5e}5l4IQ zirmL1+yD12K#EXhqL%`q#7S8Zcb`34)Q)|HWK+(e$-H+)r*|WaTR`od>^S$HONW$q zLVeU;{v`7!JhIqhxozLoA zdjmL6*O2bd15*;t@YeTdmSe??-Eq#esIaA#bl$nu@ijOAHx8_1>5lkj;k@Q<#u6@I zwk1~VvQ(eFKK+Yy@837FUjUCHohDLOquShMY-s4&Wjzqq?1o(4fu}JJg_eBybPk>b zOMSuH1ucz2wc8l((R+oy4CV$Qxz4p!v%evrCH$cwfpm7FhZH{J2IWjd?={w>2*WW~ zI9s|ZNc(W*1#rM-3_8e@qb4ZJO@36_ihK~9j_b5K7wj6L4c3TNNU3%Q(nYM0 znLl2bMttDGw@8O~+lUr|=054mIIiTkMQAOrdjR-a!Oph1TnP@{R4^QinPIwZ)mjl7 zOVfY9TzH?Ar6mqF7-hQjvfGl{3wDG3^&ge$kh-b7=NJRrLkkqRx|cmyz;WiiJnw&Z*x^b;&853)_57(%9+t=aPcTn6eEKEHQ--o%23>p4g) zDC8pc3Wc$|V3+wpyJ^8bptnXzGZi}e(~==`uVIA5e{ZSfciQ;3Bh9q~q*KrqQ6C?y zsVZF1>%-}ITErKmYxg4tdv;9|nxI*H2iuoPINcOVmb}#LLF&wg1LpSrozh+GY7LI} z?B*FK99)V(`VD3M`Q3=@47qAVdJMK9ks+L5&*`$n4^%n%DLcB4xd0a-DX*bUS$r1> z(bxz7(;k!Ko3RDLEux?*&d9bDlW_sSCwlL21tx!d%!%>Lhr~v;HcSE0Dj>fzjC}!ST*&6j4a&+fy%H$pyaa<_FY?|;i=k`{#;e-FU z!!*D*QPZ$sXAaBLcL#feud+Y&dkw%TXk=PevXHdZm;`YG{8vMe??~_}s&-}L$oe#$ z-DxMPx>PRH{jv-c439KC*j5m~AM+n{o#fPFVo2i{VGCyh?Qa*y8V$WixU0${-k(-&5D5Mf_n8}S^8Y}9K7@8)$rxCY9!IrT>QhQQ$C<}9|zM3<>H_@2J(`QcXndP zwO@ItCTfjGTT^|<1s8hA0FJ2nF(`5nt}#4m2mwJ*+AWr>7-74d3Uf!*osr~o4%mOU z?~>1>U#qZ2yRm*!hbi&jufY;*ckatmM+mujzvuz($y;iEXlOKp>o&WY6XIruVd+|i zqRs3fd%l8GtI!Yc0vn7d!y<9^lw;c|M%_3Y9~$SSl=Zap!*Y`r-|VG&o_xSAGbXHq zN4qw(kvma++z`a@F?CRHSkd>hwYED#?Y9LQYKv}{h6z0>UPqW z`AD^=1_y9$orZ7$PKc+;lCVp!7JEHLrKQD`JW6&y_<<(2#(kxDkG*{iy!dFZrUDPe zPyD~DZL3#4ki2ti+*gOKaCl#xGreNma}f)q-+JW=*Qe!sU#pK+IW*sDnjuUaOiYF3 zU3^k7OY9os26#V22ImI_Ut1v`e<#9IIUa$lGmpWV3R{H3P@}#ySOtKiX(`}uRp2j@ zsgYko1|KCtF&x(hvj<$p41aQSrlI!)xJQ7bs-litO!#WYr=GWE2EUWbuRkW)RF0W{ z!?K|3(*PVnYi(cK*na1)sK?{aRHg6k@WTbIh-*qG=ZW5-aG#$6&YX281=(eOe&%^c z4ylwINtrJQd2R1RlIcBwz_s@eoQq))P0gE1aENcVpp=T{OA{J|66EwF65Yh#W5px; zd8h;FBR)jXw+0%<^=0f;vp;`|5hIPm!isolVqTCMv~2CXx9R!KbXpfHe*L0^$zPo-juyQh^-kZiBCmTEDT^&;0gK+^Ev({hI3 zOixytjBRzju?TsV>DS1r?v?X|H3jAx9i|I%e~tI#ngNiWTu0=RQPYjmN(nWErvmTv z@-6D!KC1x4H~i%iXTIbPfcpv8_K>^Al^!~UXcY5x6Mxdt?zcF_obz0s;&)T-8UT0> zca15HEgKWf`38Sj&VO$!$PRB#P&uGh@@67P#FK~ycnhJ4`6Qc;iXR0#%W+QCNzs19 z@z+Gx54O-;JV~3)@c_SbeDW%iE8NcDrZK?ILBgkqg}zL{`n32BhjYQ|z>pr`*7E{K zLal@0Ar!TauKX6Sa#%J~Z09?hV%=3-@98ol|i&RzvmG*E&I&}kr zUiec@ms+I9gB8FVS_s75{`>E795OOLi2cWJU5mYRf~0Q>+IxC355fdk0X`Y2KA-vy z2FhWYPP?n~XLt)YA*-89ik_$Aw|A;}vY`Msa>f4h`emW|Q%nVXX1{Z)fb<_~8gW{a z?vHq_h-8W_0RN^UN(}>Pr25bPov2+p6jKi*#w3P(8_yV(jR8&Z7jUCGw7wZi9_BB? zhWME6SZe>k-YWH`Zm|aPj~0m+s%~+ss8xYU(YiUc z1*Kfx2kg%nkfa|%T%WTK8T1rKv>+PdHnnMbu+-a>COnEFF4H~*A`>+ zxO0UdlaorzBbo;5i_b#6j^9rCP#JF-S(5>x=X{LO9N??CC>^mGTtoN^V;@6;nY#^BqV{W^ zR^qoRJ9xD6t$F~SE-xdbU0B|M67tJEGtPv8qNlmQ=y-AYmx=d`RyHAu{LGI;;4lNa^2Njw*nECG-sb8R6u%Yp;vW zNKG7^Dg54tRIre2>Z!g>nLj=U;A)%|9e zsRVdealEaPomBX&BVXEf)uHI`vB4N|vXU2?6q-CnlzJV2nfOikwukL##LdXlJf z#`zJ|5eT-;InlEV{DW5_0(gF4CLC!&2mhn5cn>d8hFSE6BU8%#2Rn-G{vg`dMzC#s zf703sSx3i-y0%q7@-K?go{v`=zN`w8<#gTQzgK&K4Mw^^0+lkxw9~lL0$PcOeVJtJ znsV}(aW9{>c4G*gi%y^z4~|OFrOS2LuF^<(#^Hw;H}y zCK>tVtI< z-}+Io&MFDQbRCrB6uVBKRwF zibhfnf&ky?VsGk)a?E43^?60*Ok=}j6T+2Pz^dKXCjI5FBmq9h@x5;)C_DM~d+PY# z`at+k`;M{B*aAP3(I|``ypT%pUx9R%tev+-eI9uZ`jp_ZekGB%=7Mr>GwQD?h82I5 z=48OtaFDh3iuJ!AtnLwCFy9%tG4%10yb#yMmR|(hOp>YoqyW-oHr#@BaJP9iy$HXz zyEl5Duv{>S=c5TVG{g8E9 z_@wkIhTz1ok~8lH>z=}ATkA!%kTWG%Z2eIG6LAJHbs`}koijd`c6>NglW%-eLgt%J zB3CtHqRWBz;=gfuEhig@zW_IY9h{JITK-0-^A*pY-+OKPNjHp+zIh(mI`18d;3zJ@ zzxk*mLlDZjkIYc0-s7XW!)D8A$n4nbEk2honRl~c09yp`J+AX`NSJik5i} zt)TvDl4nq$R%vet@GWefX2GCQ9oK|kuDSKY>55)_j0ma>3Gw}!?h`H`iG^hV70gN)xcGmH7%-Xjxb)m zZnsE3?B4+&qf5zGmJf*5A`%{VAJPNtfpm_7qV4YpuYZw-$=Wh|g@1>ZA1&s(ZD^qd zZw;FB?vMg}Sv=&vCRaqzMh8zEXyT zeDXW!G`GvTFPe2{NP$d)kom1fNda)FF8?tHjxvsuT!mPT0}`8vdoH*zEa(W4sLH0K zwKQ-@&D*&a^KJ|-ZJ&_KzM#TJelCiJFELv9OdRmD06IS(9G1)rS=7@}u$k%I;b@CL zm?htc2V_5>kSEG)0RUGSXgp5SU7ioKZT_|U6$i_PyO z$nlRGPUIk9@0-r8;L+tcke>XbeI?9es{I$#FcJ)bs&cH|G-kVKMg=VE{C@N7`%8d3 z|57L(9r%fIu@fwO$4D0_!q%(x8_uS9kSD@hfI=D(;F`%nMn)y~Beu!t#xkq}bC%xA zc$uL~W&J;~Qd44x0s-DD2up6Vk%X*?P0S`5(XcH;%y2!=-qS2kU_t7w!~rgzcjbri zlx{a05Jvyrzss;nVN9THw5aVk7ty&UO!6E6Pq8ADmgHu%)RZwq1up0Fm4AZo$Sp4s znjmv=#{Ea5=T3oQG`d^B@U1eOD*COeo2F*eP0f)mIOr zXVWQqN`Sv!Yu;B#C>KbbMX=d9eTiHa)q_z~c;OeGktuRs&Afr8agIn?z9YKIYROXM`?_id~?j59TQ zk(D>4>mobD)_4n$WFOYV0=F7MiOTjpSv)B1u`!k7LR1GOqz{V*w`}o0zHJYrJFbA= zs`+NP><#R~9!6b2oGqkvb*beQ3lFB~_PU0TF+-~rxEj{pQB^(?=f|rg<{P4m=Qa#Z8Ul=iofL5;Ga__o@n z4Hf5k5S#d>VDxbY;N}MXFOz&O(lstlhz0C(-ukCC2V{}RyRU6xOgeIo%>d8%)pF3$ zlnsT+1*1lo+wtEY(5Pz)qonDR9duc7Ux2G&&Alk(x^-EX{)1nWmgb6)w_c{uE)08v zRL4%p(wjKoaX+Y^SF7@ii#vr5J}-QsSYKv`hbl!~8hXN5t#T-z29FH%dg<(o?Vi3J zW}q4hzo)GLK}u*^4ad8xt`uH}ny=vYlyX_?MM`bT>i~rQx6BaJj?kPF23g;l6ooE9 z8>h)ia^R!hVUul%*k^m18@Z$;O8ZLgg!NTYFtmLwW{*HJg)p!IxbXgbavDtpt9y-)V&?N{Ne(t!ajJsuC82TSsXBAaP6Rv68T>=Dx2X}XOm*6hJ-Q5xh z?(T#jA-Dy1x8Uv)+#LeUKWpaP)Y;e1de^(VtLu}h>c(8X&s2~3I2fS><}+JAiCpxb zdO8f!t)Sjr(hi25JD5aMSWt{A2^UXYJJSGW2>Qy)c=N*Uv6We@k7NS0hU3TPT?@`G zP^K^6>Pr{EzE~lItW79?U*kjB#T6-}91huU9+~g(=z-=#gfH%nwqVDwDb;)J&-Y{a zM(&U3Fe*$)QzOrXogcV(c8@!(1O>1b05jZN--Y0Y==KHcvmA+F&^W$P2>4#f6By>e zgbCt5;Dfh`?3N()(8#5rLZ{EA=iw@udEs7fEwSmRjNo09T;KgIpzbi#ex3Ivm5V-w zY~>ZR2<>|>>=(I{#I?`czPE_u3^4$H1Oanix%ATg`;M@U<`wzITh*L~;WZUAYC(%{ zm1q7Gz!CFLm+8NSeo8ZpoOS5mb?rT^JXetO8VOY|<293H|Nk_^|9oE?*5|1%>Tlwp zY!lkV-&oRb6>fO<+R2`H@5s(1)dI$Y0QGeCd8q3hwUp;9^OS{HG6@y3=glid2pQ=- zCi8Rgu3`Y!C@#`!J7q3>l|e**+K0DESmd>@y?w1$;=w$Zay$gn{qb&yA#O2E>$M{v z@$bTPKe|mjYR<9DS~Q0vh(hjh!9nog*D#z4MI%bUUmv;m#gUWobDeadFAo9jktD>y zNtiES=Dl#x)PSYb3d$Il{Fs$`($^KpQ^#4=p(N6{vVE?EO>b zyXMIo#-7ze zzb*5o!Nr+T;o|J!mOfTkG(93-=Z4O)R)LHWP`9Qf*Xm-k6(f$zAycwPJ>nygy)bJ1%_g6*ar>N=na*Qr?fN|kD%Hc38=`=740gsG3IjSt0i~l8!28=P-jA$LKNr{tBgac|PK20b+x!~{ zG1BI~)zyj&2CodUu|zxn!CqaQYL)dUVIky{Vi*;TR~IC0KHkvaSXexu9{R_&I%+|c zV2xs331yp;kL{{{Aj~_4#UQ_LpI-jf6TlhHAz$M;dfaACEr=upa&T-PL$Gdx{;5rO zntVl{_TdEZqN2b*#n^#4YgwUR9_En-Zl|L;F#KJw_J(46+4haV@$MQNk=J=}nMi(M zzX$bx#=&kW1NnQQOct#%_VwMBAlOTl)D~LIHAPLS{X&z#azzr|3jqX<<%6j z+#67D%P^cxsK2y>j7f)a_3mdB(pC$0zC_?HWi&$wx`%=Ta9;hTNutXq&wD&>%mZ1d zAdwik%iEFEFq-L;I-3(_uqo}fX{S=kgvK&Y$$Oji+>G%X(f#=+b;*Eu<65?Eae5V? zE`Gd?H%5tBBqK!EM`y(Mj#NtorVX&`@6P$%im$hukjQuJj}WwaTOUM@O-gRWD6I{=R0k{k;O^kF? zoRk3-i%OB~uSLvhRGr0a6@{4KQFKGy3nBmy)E+yn89Id(EoA(L)CD=tVUS@l+*Qhs zNH&TUUp zebkU)tsN>n@4HnFgw@cPR9Ye0k^Ta`A~^Kt&bJc4EijUa5>8L?H7%YE zP?5;2)a&5Y4cc_S2nakC3~?&{0`L!X_0_JXi>VLd!!a5udFqp^s$z)xXMaz<)lJtkGG9M26Hm$9t)6HhN@nv0=U7Je1ES$p#}1E>cOYPvg58Mk%Y4znM6V!C2?;n|el)?BxGG8FClOh{5&1OVI!?Z@yx3Dlaz(+*Lb=`#_g z3geZ;wtmsw*EN^Z*Cp&7RjkV?J?VFxM6BR)Q6@R5iO)z!)u`Fgw{iPA(NR#z!?R9CxT^z^$ zzYXVf6o-2i-OuYhfci81#z549Uw&0SQkyjuxsZHx6?Oytpp?EinwqSBUW@U16M z=UOADy0bzX#^;le`xZzScDV@lRM)s*Ee`4pOl?a8Yd6;s7n64Y;BrH*3)nxf_r`M1 zj(9U=?6qddWQg4!7yf%1kH(d{!FEn@vPq&wSSCSq9#ff99W<^UC$aWc3j8~)t89p~ zKfK_?VN!EQU>GcM1A|n=OYwdm;nr~_pwf3x;b;{5-OO6H7hq;a2({9p9(n98n0Ef{ zRvZtV`+y>vF;yaIvc)x(B^gYAqI^VH+N|*3ZbaFqrEZS1XTKHb*@er$9MG-XUN=jC zlU~m)Y)(|i@|Yvx9(M*Y>Zp^A+72Qc!PnSLe8=oI-#KhdC~)~bfH zm|FSdf*}}0R=w!|+Ya*$@c!lGz2Ll#*sOi|2V`IOsQH~?3u<^{hRd~M_9$Ve#e4vt zB(x6~(~T8co8wH+4u#^+Zk_>;%#4nWz1r7Sxm6n*3TvysWsYP7h{Jg?HeVM9;JC zs2*qa*2FH;4e4Ut`)Xt@sXA-fQpBT0gG~>{Rlp1~V|22EcTI4qh2S^XKvkA^?x;AK zXLBf1i6krDAC~I?e2(@`I>mrMg5PK`@!Yh_KVYVrvVURcig;<3N$)p%kY_}Vle>R#0u>>J;Xk&H+>YM>ek}bL#!@F2 zhJJ;UBQMgN--uamyza@E?3Xiy-TfOO*q^ye;<7_nqo6UmatW_S@cjGirCb8Q4W*Xv{vr3x ztsCYy06t7j8Y_JstWG@nvEL&hM@bl|4l;ctc+DC{RZ94$F4(CpB={_0Q7dH&z;e`@Uj=b};S{+*2SbOIYTt(VYlgIe0mC8SwA z(+Yxz2(&o>hmE#Ipp}`Jdsu~G52DXT!uPJbwyOO;+Tg#1r{=*37I7m1m};{)ojne$ zF&93L=L33I!5nZ8%WPbn&4eUURAB89!_IwMrQFy5pfx#;{ql=u)SgYml#2Yz;cIRe z(}O6O&yYfrdRwct9~$d9OWby!-yc#1zSxq$+AOFw;@Rj0k^$ZWqS{EDbKKPymqOeO zR^kiVrG>3Ku$O8n8#7O`*^e-o~%%;V|2r;z=(@=fShW$U<(bnbf>_bme0q>P0yH^eYZvn5r)tU_8{Ewd= zh21pzOJ!-XLK6Pek0t|nLziw)^TzjbU(+F_Z%t~5bB?l0)*Uu}aa~;aSwm3^03P_S z^3&Ir)e2$4g^J+1T$S2MUKde&q!Q*1ctS#>Ik4uFvG`p;#Nc=#d6Y&fXyhws=jNWY zU`#m<)uIF=PPYuEKSi8@sWvCAwsIoJnG{8N$=3#H1PY3s*sL;DD&HJYT{MFi~yy~)0Cz|_$$8d9+*PBbdYn3_*<^_^THBJG@(h%iC}P(n%ghqk<~*c zdp&^(x%9Pc{g&L1N*ETg7v0hNDYuWlb`SeK_bhaMBZiZ$;Dt>2_s`HWdkncS*?lkh zKA?GS?2|GiBePFm*r$ItD8&1Kck<8E_?ph*yQ|m2mkA6_8je^YSAk{*cB&K{tyQC? zBLM!u5!`1})wEJFNS@0&#~0Vo=zqcjgUv;JJ<7!`O(q23%~66}LrGl!ecuJIZ)&uD z2-UMx9cm`Ya=luo%X?8%9l(D+&zydW3)akcn2_Ht1W)CDZB!F{4I%VU-f2nmx~A95 z<7EhwS=x|wEJFdj6Z!<-S@JB9zK{T zVh=;Yd{=WhfU8LV^z?2-su?_gR&kVA?N^~*?&WK967ffn7DjKsr!T zi2?6{SZ{y0<7xyPUaqyy%BQ-i0yw4kZcZD??~42m?lQp<359?6kusd6be5!v*sNc~ zho--_y6%=J31!@!bfD502~gMj7V?~QkvceX8O0pDdlTW+Qf0q}hvY3ih-%$fjDro} zsALoDgBo#FBC!zSxSzRY1_w0A%}HI)^;BO)2bIMd0lXm|k){CckukahW5m@46%sPa z-y^A$2Z_8$z%+;Y1GxCrqcWJW(wetX74z3;hK^{gmdYo{2H8-Dn>017#jNBBP=A6k zPu)I~to{h4^CE^x-R2iS{cz<%Lzsty7u1~p3WnhUXnsh4t;*_^^bdt<%LUjF2G|xf zt>?UKkJZDPTtXi$x?J zSJRS(;ui0#18(p?SW0ex`I9$V1$aFoEO@Yp3(ec6#uPcBr!Y0Rqajy+t$2PI@W+wC zhw3gik{c>v2h{EC-dh@(Ggp4)%H-mA#!{n9U+m<-qnvI`$M1m-`OOUAkxvSKV)VCN zV@^i#4#<~x*cJx}lCBXdQ)Il)(! zO(S8^cwlUT%Sq4wv`O+d)bP76=0pOgYgjIlZn03BG4JIPM9EVEcsWi)Y=Fr6Gv-hpOmBu+a99;I#Dz(R(}9LmGmk__ zEP!juTJ|w`1)@X92(&0Y-q?(|8lpcnoCcOA%`|kHK!F3eR`1!Kea-h4r@pdX(BK1{ z=&_>!*(8>z^sS9Uh)FSsv)G_e*vr$^OxHe44PjcldAX|IcvQQW$1o-fs)+^ z;W!+%EGCCexX#0kJeR)H##Lf7@+F(pE3 zKRvf-WiCU3lL2rfktGi}bMwfYp#35n*RBMbvCrfqr9<+}5o8J_Uz9WeTyhb49FoJO zJ;g5~&FFT8q#_I=J%SKVDetOh3&6iS$^G>*&Qn~A=@%xyd_KqKIEoCzJ-^|q zk#}8+d*KK0W+k@PaEU_s{oq@BmcuPIv$DvsRz<61zQ*_VbNdQl9;x@lH0|InLOtwC zE%vw1MgI%Va3SApT`YoP7kX;NJ~-alX@ZNFtHUQASiIWpUtp*oZQ@&HWTYt`t!C0v z$WOqvGJ3l26+F)0-?^2^I5;3ppX7^@`m!<-_+ItANufxqf!R_wnQ@inTpX?6YE zH_Jnch}R5cZ2_ubzbF4h9l#wCXLw z8Cb;G5^1vf_x%*kk+Vq^zK^Lv>Z=y@flin>w=?*>r$_>3sd4u_gSdMUP7L%xz04wz zuBXOXKUBRmk|0N9PSb18%>grgZ@$yF^bGE>V(aJiUF(41 zU_!m~YufsoAs_q&q#>lP$@iGPOEPya?nGK>1t&-7JwP3m?G!N#6SIDjDyhn6Ri<@+ z*(es~XFi_AQ-OZTU<24eao`vyk?`^JxG7UikEIV1q7+H1LDvr^6Qj$gtMx~0N{4j@-@HfPAKjXgb%9s|41DnQgr{$Q#$;F>ZPRMcAE#_`oD0h zj9hltw}q^?Q^)^I^P#^-)gKgKwI`T(74iy|0PrcD+htqMnC*o{+gSbzwr}1Yu>(sL zAA%2lV!$u(lYx2UKqGb0u)6FGQsB{IVbGo5`6#wbwjNTU~pfk>Og0%=Jc%6ciJW zI9Zm6K=y47z}3iF8>h2(X2QLo?S!{{++I8dFG>lx_16DTj@CScy$5hxIQk)X->+lj zSE1yjY8dtutdbq=dX$STh4#8XYoH7PJQ~KlaR$QSK~pIES7=apCq-YPepudjYN29{ zW6hR~djJnG4uNP}T-LZ*m!0WN_mx!Sp~Pg5XF{tJklK&qBX{>*{{!H|Oq%f7q4-40@2l*j7-#<4hZ#P3IydzM=zQli68i23 z;8mPP5S0-EBs6WjsaI$nDGs65Sl`lO&XB)srIkmZL;^Tz%wAJ64~$thXKXj^FYcu; z)&l3Q&|Qu3d2Ol7LrwDl-fxrnS$Y`rjUUd?kT*0xUfK@MC@-`X`v0D^5Vc4eh@ zo7C>bBe%p`R%B&V0G>y&MJ4Z;8Ao!Qz~;q(=t_6^y&>ijmqu0aTaA459T+H&QL`FE zy5fHb!}(POKwKWIoC&A=qmWTVP93XFP(3#V)D2Z(&hq__F8n+?IwxpFP)J}Bnb(G2SF+MW4x;3EsZ#i3|QAu`{ z8vLyA1Q_UxVtFla?|H&cbH@Era2ncU(8eg~vdgJ#Z!o;1TKgRn$I`o9uS;L+?Dyj(4neOCQsMcNSg(2d2u8 zy8%4$^1I^v>xWc2Cg#}>89Ix0Dm*`3Dre{&;1wb_f+)a;@8cM8&BwLKFR_Hf0pTV# z^*@@AigJV=lo*3Oi<7H~mI3vznVKr^3qHtYRCZ3aj0w7Tjw6!_C(*X$@>D$dyJaSI?1z=pe$xPH>kX z7>}gA@`nrc9*(H%+8IX9q=nKk8$ zi#rkDn8Nd`{_MOYa{ThWwza?Kub^LfjmxQEut8lz@9m&)9tuI1H-0^9LzklDuN_9A zTi>TiYAw=V(E`-P(SJ97_@JcT+19Q)FD-ZU8x=|-{7A&oH z2MZ#dFfyBcuRUyIApOv!O|XCJAg_(f1LAkqj>PAs1

+2Mw|EA?X-W@ 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

;yOTFI6BQX*x+y3rL4(lX#kHx5UCIKo6al8{dkP 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%0A6C(@V`8eHjAZ*^F}E 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%0A)cXr7LDX1`aDFU- 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

;*{wZUf{%TGCDj6R#- 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�S#Ny9tOZ z<$gz3$x+#%?T4-pWc5X~uvV6FZykEtpnNjHoF6cht-rtevJSg1R@IdhRG8uBEB8j8a~560f1S0_N#n zj{o#Z6C8#o#Abw5Q)?0k7*zFos|Cu$|Fv-*-k+CZ-kXi+{dM&y>HE623+_=Wnmd+F1fVP;ocK3-D7yr23v)5uWMdwtrX4s6~Ba_Gys)+G{)zGW6WAbK)1k z@6f%WtK(2PL}7801vGESrt(hq_OclEVI312KWpHH06h1yUpA-HR%Lt-;Q_VdX~lk; z$L5ZQPYUH}f+#$~5?rbE?((c?-t2>Zb)v2xVs!N7b5n;5|Mh7nIMZ<3S+@qfBIh~f z-@(s|PX#FFWM}cqBKF0kovb)zG@Bl)(_m-( >ThSRGQ_No(B*%@`q&gD~hva?;+ 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

+2Mw|EA?X-W@ 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

sS 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 z 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 XtG^UXaoP5kor`CQSIPeW$oc;PW+Pk- literal 0 HcmV?d00001 diff --git a/src/vit-servicing-station-f10/docker/master/database.db b/src/vit-servicing-station-f10/docker/master/database.db new file mode 100644 index 0000000000000000000000000000000000000000..f9cee38b1643467681ea86ae212a9e6726343cd8 GIT binary patch literal 35840 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 2.7 to remove this warning!"; + in rec { + packages = + workspace + // { + default = workspace.vit-servicing-station-server; + }; + + devShells.default = pkgs.mkShell { + PROTOC = "${pkgs.protobuf}/bin/protoc"; + PROTOC_INCLUDE = "${pkgs.protobuf}/include"; + buildInputs = + [rust] + ++ (with pkgs; [ + pkg-config + openssl + protobuf + ]); + shellHook = + pre-commit.shellHook + + '' + echo "=== vit-servicing-station development shell ===" + echo "Info: Git hooks can be installed using \`pre-commit install\`" + ''; + }; + + checks.pre-commit = pre-commit; + + hydraJobs = packages; + + defaultPackage = warnToUpdateNix packages.default; + devShell = warnToUpdateNix devShells.default; + } + ); +} diff --git a/src/vit-servicing-station-f10/resources/snapshot/snapshot.json b/src/vit-servicing-station-f10/resources/snapshot/snapshot.json new file mode 100644 index 0000000000..d53da0455b --- /dev/null +++ b/src/vit-servicing-station-f10/resources/snapshot/snapshot.json @@ -0,0 +1,18 @@ +[ + { + "voting_key": "ed25519_pk19t8y8xl43uy99ywngpfcfsaklw76h48m965y5cszt5phmj2uv4psucdev9", + "voting_power": "1", + "group": "g1" + }, + { + "voting_key": "ed25519_pk158t34dk8qmjs0mcwgsa5hg75qrg00wl2mejgt45vkelhf22d0wwqf22u0v", + "voting_power": "3", + "group": "g1" + }, + { + "voting_key": "ed25519_pk1fht207rmf0wqfdx59n4fa4dskvqq0w88rh2hgnava0g825lspcmsctw8t2", + "voting_power": "4", + "group": "g1" + } +] + diff --git a/src/vit-servicing-station-f10/resources/tests/block0.bin b/src/vit-servicing-station-f10/resources/tests/block0.bin new file mode 100644 index 0000000000000000000000000000000000000000..0e520a00e8a2918bcff88ec8c1041ab71d9f3c44 GIT binary patch literal 1177049 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

;yOTFI6BQX*x+y3rL4(lX#kHx5UCIKo6al8{dkP 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%0A6C(@V`8eHjAZ*^F}E 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%0A)cXr7LDX1`aDFU- zUvdCGxaeU?Rss|nrs0yRmLTXTuv<+%{NN9c*6{o(y{AH;FrYc`vCkt7 z_Y9}QG!@>m zT&EhA%Ex=o4m#`vWO@K~U!LVgLN0;!%rwMQIQ8eAS9s1y?=;&I=XMa4g+f6L*(Ikq?Ra$F7Ck zBOL8;ds4>}>4gV?dJ;X2nMLIxq+Cg1jz&Zkjgr8f|9UXD2#sq%xwmi$ILK&~fDUvIPUwegGkyp zvfixk|L0mBe9y)=;Ga1R@2iEYHN}|KKp(n}sl+<+MSuTtQ5g-sZY)@9FOSo)1lH2! zX?SJHx}zkxC2;HEHPluNKkgaH>_{~B0%pPrsb1Ao{y9VrmgRW}?Ng>*{`f$YnFpDx z*JY!GD8vll-1=JsiU|)D0a@^jH847;PcZ#v6EDxiEy|14@QRen08Ruyl`r*yZE33s zk7MS8rsnB!_3wk>&#x<^(0{e{>A?Pb!FI?Cx%rx{^VvsrHI;gI&QNt51R4Kdc`0jG z=vBmE7h=Dodn41uNp5!Ry~r<%%~|UK+ae^Q8<(Vm_g@Z>e8EYap|IIgQG8NS#>q9i z4y0Ly_2pw>{Ir#&v)qjR`79;ag{U_ChF0hqXkH+e z3Kssho8zf*IUZuQHIDe}kT49LS#mq`J&xqGGMc?gX5L`H7Au4C()fH<<52MGroeIB zbHgiCl3Z|x!)ok`%48#i1Dr@|n(w#oYsM&F8`SkATF9C$^Ni6PJ59^*o>Np+d>O%P zX{4jw70sN+diQ-EPVB8>{y#}lk(NGoR+I=*kC^myuwzL27lJKT`67r8S@2f{BcX8s z8MTR*C5OhqIn9qu#Beaqtly9(<9_BJ&K)TtsPl5PU4O(zz8a2fU}n zYufyLKe28aUquej?d+UFr(F2)r}L4P&b?|KlKnpbr-qav#8}*zxA`RPNCA75r(^Tw zae)v2`n_w`FH0sRspGT18{l|vffVaOXSq8XTpJFk6Y|Er zt~dMp&W70}Smu<6vcLtWUWwm}4_U7=|F!Ll25_}cba4$2te=k!sFb6)+jUN;gAZaw(?)J>^$&W;b2= zis9={$%8#`fY*~wKpG)S)m7!dpbT;Zj!)KxgRhjHCO zu6wQhZE!4vmzYa+{@0oD*$(OTA%G7$2GKExlE-$I92qM)Qes}%s7Kv<5n{W-vTG6M z{uu>u%lEW_`C*ioI?DF(Wo_CjNvuCJd3t`W4k)fQTk%PHU2L5ESW z`}14fs9SNT%53G}GogR=+x3#xvnG@ia*YO-h2Ak1G!|fnLsuiKpx<1Hz(J26A3p6= zL)jOr((S*UEq|%fA!dI8qjY!r18AhyIb2O*VG@X)~T^ z45Vij7j1)k*UA(>NdSj*O){QqC4VTd7#CpD72IxdaEq~QKdo6C*N)wuQ3KPTxCFhq ziqdnZ$aRNvgPx0@MI|m5O<46{txbg&^qbzN?|c7_YVYPz$3pq#v`%J{ zuCrCa%jO7&6u35R#qO;>%xuV78Im%&`%~9+30Dn6y2#pRy*=QYzRw14v7Z~k5V{V~ z%@v2sC4`G~`m88Kn&xC{y$7#r`XS8^rNE)WpoiQ|jIJQQ4}%_-NQrnU z<#`1?dx(N3IsW6HFY0a2z||_&FgiSd52_Apm8erkmJx5Y)Iem($iY zaP_k-^I?$qWPDSlfZoW5F8H{90GBUQ6MbL%A?Ib2F#zso>}v74!bZT|q50wc9><|t zHu!kt*}D3`7Gk;TkEDp8r(Z~S-u^Y2A5&Yh#@glHw)@uts9RDIMRS|+cFRAZ`sQx; zBwEAeP@4-xK#U0bXHRR*fGgj$L$KOaXf^X7MnTmtEsePmlYPup>Gx77E0C$5hmpYU zkCV)D*r0f@i4_zc?lx=1qQhW%`!9sIMXKLXeLttCW&ty0Kbu_91qOq*@%AXgYAAUE z5wA!cj+9z0*TNcc>?-pBoIT{Oejxe*H?;nYZJ;bw`PTv(A1j$TP5q3aR%J!Z7=SO0 zu)`F*;K!C}qBKzJE}&GiCKcnNW5SA;rtd*Je=7#?5hdPK=$?;$&?kG*iaqF+w8e`) zlcE{MA0K2e&#bP&K5$!gYWTP~x#OCDP#c~%b>m(^J*T~7BoxV?Rm18^7;vjl+G;%X zy_Mij=(8a|Tmvn6WYXe1wM1fK_*W?*?929Mz)V)E(4=x>9yK?S-e|DR;lVtGrf{y( z=08n>oZcR$|Jhk|c;2wAB*hS(txd-T{l`@N08yERmldv7De+`wpZzcRYD6x%d34aUZ!lFg7bd+Ms( z+0mWbgY#9abcrX4I88180Lf16{VA1y%A~6+*foT)RP|1ZKE~i>+U~`(AUsjNQ+L9M zi%_0eTo~Zd+Bi)R+%YBjMVyww1ejrAt-QOOPTb66{1flg)AjjW^CBBo0OvY+63R}u zU4j6>A8X!Gk8VT#&HYY7C74i=;dNY?IP|6RuQ02|zcyC)ZvgHy2&H>VqA^R56Br7Q zEvV{afhNt2YZbu#o`pRXy@?IL8H%PB3)s3gh-S03i7vM2c}}gTe$2P7cvt(YFY$b% z1n@N{4G#B^+V6=Ob1~hj(C+?$ngs~{3zLgKCsrpO8Nn#V#4kudrHd=g7pKIuU8yxK zz;r97Sj)iW?=~*6v&ZLF_NzJtJosGsSs#FEQJA+&0g=b(Y`lyW2Fq52MQJ9fB zYLRBSyFw7X#Sv!~cmwx_h8GxwxRn`fbcwSQ5`5H6t))ae)WdYiAm*q6>KorweZvhzJtBUJrhr+%P2B^T2UjDUJujh^cZ+HZ?ve-$Jt06#YWZ#NGs zCZ#-*hL5D;0T;C6yHT{o%OFa*>v$~BJ+Nc=4ExMtk8fy|aYrebzF4n0pR$6cgJH;! zpTlFvm;no>KQeTw9-;^(@_3f{>Jveuzt7C-vmQA*%Zc_FIu;T8zyXr}Uum|9slhZ~ z;Y*fE!*h6MRVR-R#Q1B_+zW@p;nv{X15F0|O{Q~q{I4@k%G@8`>roVRmS>qXJUmSN zL<=R08Q@U)h$`5_LXzW9F}R0DcO`Z(6Fs84@J-1GZ`RbBzjFTuaIsH?U6_cGUKT8E zYyJ@L+-EFONeC1Z)%BvfbhIo!I|8`(Jwr| z<`Hmv*+BKIiiQ5?#$&DU&9!I41Em8AdJZhzj#4Mz(LG;ken34*Hqcy5Pgisf7P&>Z zI}k!aedvcte}x8?PLi_6lr31VR!nOrJ-(hH7R3&~<8;9Lb`Sm5V0Gy(s^vuASN;VD z>@8862j>_$^bWlwz^vGEx$^gjU$+RSeie4xv$;PNrD+GuXj1myBn2^!KgORH(-jbd`8yT~1-2(dozK5+J3Qg%`*QOayWucDn3I{SawUvLC8KkiW>rUP{e4lTuMadv_7kc-604Gq8?~G zL@%1H$k^_wI8=Z5pKmMRf5bFt2zih;%M|swQa&*s5c0`OMdNj!zS@CV&uRdThN(y_4|t+Y&Akj zTVM5KBAlz*{ts{%a9r7EPe@5ELS;UU=Z;O|^4>JJj*4}Jmj}n%z zXqWR}M_I&;V35CkML*4|;0joy42X(^0`Ow%;`~WfcsZE!pL;>)iH34d+gp~%O$L=M zl~Pb9>}~*_1tIbR(^h#}UzwK{dFEmB(jkI}5x#ECbF8RW&WQt7^6%T5*E|?08+Q?u zEpZwJyV_P0dQd?sekWDVy2_T-p4&G zACdfWNYKy4CEwBb)7q+{;|NBvk8L~^6fInz<~|TW{`yp1glFKI2}!D3T3l9|5&RGr z2B`DIn0OwyFV@Am2$~suym1r!__)yi(h?J^g(V~yr2Pco$^Pnv{8~vG{Qa3_Q%=rl z3pKQ6=W;u6PfWOVP4U`U06rMpf8Tgr9JKUg#H&b*xK%-Ct1Eayp7mE<)5PMo5{!{& zl9Cmji#vIxR98NnI*_k9mP)BgGXh`6p>izJM)@WH_1sO`V@LeQ*l9~|{v^1At1m)# zTJop)OhMb&HjM>wNC2KYq_b02fPeh5Wd# z)O#it^nO2Et}?GL=S@q_BD zcRJD0I756hJ>NM>vLAYVYUG@1q*o9D9O09%LS%~7RAS{JTaG)45>j3*UjYU+b7BL( z!(}EixM~ktY6_x~eD{V!*<;{}bst_yG4wVku&9>c@SS|t7-9vA6C90Ry;LQq; z?t3^%Gj85>aD?XO-=%5ByCMJX0&oNF``UH{{ot#e>g{*tjYQ-8x(LD>$gYLjj_&X) zQeX~Db2J(Hy8Fv1$&kQ8=;yMpnBNbr|FRnE8r0$9D^fpsKs_dL*RTav4l{(VIauvx zdXU?I%r>hp4$INJX8hd*=MsQFWLJ%!zPD+Lf2&RYH1pMUh`9kz`7y4b$~~}@?E}>( z03YxSV4QTnlQ&yXI{GHC81JeXOut6hB|LbmR!gVE3Jc&F&ss9Xg~yp0ZTjMZqau~A z9}A^eT+7Ql6MS2^Wi5{ZT%|jg^lruLxO~+pZ~n*ojSR%wZu^t%ClrSfufrDtaG_+9 zHg=bjHXA`aw-3yiRDkUt)cao9e~nKqlZ=dWq6p69H%hU$-wu?eZhm%1uoWGZt}vi3 zxGQ#B;Io_{7|R$@17-vi6^-;J)+O#oWIRg5)CBn6xOUeOUSB$h#axKu`LqC>i%hQ* zsTT5hTC9HS6F2SOA}xdMux$eRV^1%;s@u6L0QZ~V`El56>m63m5VqJ z``5LMrMnP|%_@LfjvqPORtVPPzr3ky)U>%2a`EMUmV!Hva@q7|e%_udfbg&2fUK0Pj!C*5wjAFVEoECkn>C5a9F`iY+?oHw@i|s8Jdw}Cx7Cul=Zj`g!8I}Jr!_}-o3eS61gh3(j1kB$*L3oY~%DGw3FK z#s}a@LnwNR$Vij=@rEn0*OqAp6#Ym?1XYR7LZa`;FIc_;I7xAj7dqAFR8)-neHMeV zs0uM%A|$Q^lcSTQ%;G9baOG=g{rp@cXMH)vrI`xnRz55^Vj3mOtci7|D^~0N%?8|( zNNNSCz0h#KCDl_dsHiEfph?g?<#^yy7S%fR>{8S<2$;c6C+~W-$Ya~=v=}zNdU)IS31KQu98n{HyGeg{|VcGw^X97ff( z7A-0%Zx)h76v|D4kpNZ~-#c4SK{EJB>3#U+v$$-o9G%SvQg#yTkR%G&J8G29(4 z=;G+bwFfQk$pQ6Eu6YY6mn8YgN_!sh+zV<}_-jL$JK_Psg;&*^{D(55yx_yxS59(_A86@=J^&uw9%zX#N1^$V zM4$bhpgC_Z#Q|a2a|>rhpJQ}cIu%SIJX=?iV}E-fd4A%uk5Bof%6lcF{z1`Fd4|PX-3n=e{6%%CAYSu4sRy0`Pp|DmUcTZgv!%8tsFjfseOukYSM=!$RI2LYA23 zoUZ_W!A%<)b#Oitk5F7KYOYP8)MP5O(}1BE0?n77F&hjHVc=zzg?Bw{LyAL5K789H z>t<$Lg+xg}mze(A2~9L?X9B2G;pkWdp`<+8Z^EmY_sIzPjC{-S*DG2oNDBaecN)#d z9vP~cm{M(5&+}{n+2Y94et&9qaufk8@Z1;*;I^D*>W(=LjVGq4Mi;-jcW>W1EZmQ+ zH#5_GwtGq*z?*>UD3mX?>{-~2EiljRy@+LeHf&fQx4}XA*Nqb<0V6PQ2r4QPY1^R< zk3WX4Jx-g%BMHu;_dmiMS~&#iB(=U;17_C057Wg7Cr?J*#U;>T!L7hRa3q9D?z7<$ zu`f$ACV_)$wLPz>*t=mu38>lDj-RO8L+`0;d!j7g_Sy@j{}DTu0qS z2E)H-{)Natw))2^nyK7ui27GjGuB^ujKk=qmxwiXV8-EFRK)|?pJ2ambBRDxrt8wW z!1Cg-p0(sXm{1v?BCrmaF)ob{ROws38EWM|7@)Ls-)kVL*Ya?tL*jT6SEwcp0B|bj z;(2GCf1id#Q7=(aWLGA-r8|ojxD@N9YRRg&E@ok&UeJrnl{-4t!)?TZoPp z%Prz6f94I-OWQdrdQOrDDcNA9s zD4Q+Dz8eY}Q2;m7BnUIc)6pw0%R}}m&)UGa)^ol0UJU&}@GQ3i#|i`ByKdk74Lh2{ zk4B&#v_eji{XXr^Rbk`{xuW|2w7&KC1n>e}+JF8Y0>@|w!lHBAXGomNn0;`c6t7#v zf*W8Bn!rgM@l@0FWFZz+8%}wGYEnAa3;OPtaL8JP-RcMk=!Y(Fzu50$vkwX)91HXX z`SrzL5vFKR5nYLZRjlI$Z!}JiQ-0lm1y5?fQL0W25`y|e}i7@jO>uMBKgl*A`k)9(=NuO`ce;Sxb^mZuCV|f5cBVAkDH(&fM?plz6dSq(CM!ijGAiYD{n-%Vg#zS%|(Yp#^y2e zfR9Jr?#K`4N}KK#ifd|Xv8?5ui%vfNNl}~7x_`bR$9&*~kHfI=gvO<)KhNd#60L)N{&G>X@n-Ozuv(Cx>aaIhvIJY5>PN2l}e8-y! zCAyJSYDxHqH8|f`Ne^avm6L*7+&}`y~qw=mvy~FcdEDxEfZ$UTU$p z?p1Mutl|Yn(wevmD$Pb?)V#{oa*aP@@2V>i0@zE1V1O`n4IUjDmEl}wg5jmWhr(Pp zl)q(HtV;=lJpKSiu|NeVd}2In%kzN!e41Pd1MD&9Xv$1G)g5Tnu-yO}JK#`N-n9tC z(?&ZwhGfjr9zAfEKO6}1D0OV)3EieSJ9~o}_MtGZvB*u_J=V`x>#c>&K3^7iL)`rM zF=tN5k_<%V1wfrI3sMH@<8YG>RLE_$08-Kdq7zoXuAcij{u8MRKO{JWxpH{UYd0#~ zsKik%+KeO@J(Qs=Y}+^5%4;IHD2%gT1JoZPh!V_n(N@1ud`Wnw?Y?Y$UD&et`B+kr z5z(9#TU}$q6o1YD0ej3nK|ztRd7BWMVyq+qq9YNIyU>{DA_0LR4f_MbvdWb4)-|BU_Jr9Z6c`+;C}Nd^Z$Np@KF z16Z0DIj9}iKj%Q97v|Bh4HVMa#g%Kj*@kc{W**nuD3W*j{6lnDkm)}585=9{IAM+YAN~UBlD)xM6~4Uvu(rz`Lm}v|aVk0L zPFKuv=~?uh?8eO|0N$CY#_Zho#T#a_ydAb0o~eUM+0Z0XJ^H)0qFq*T>I;A);t&zn zm5^Hp4@^1_zqv<*smvZJ4+an?gl>HF==z_aCrC`O`q2L3P`aP0R(1Y+G6(j0GZ;ZO z^w*FI!%f8pa8P|R)LES;D$!tK8Qzk|xziWuc`jVYAt_OXTKe)i9iJO8^UigK<*urQ z=?#so7xp^)VKy@5R`>UUUl-dq^llnLIsmVUDMvCWQ9SPAei9Ay^h%WtX<$ZX7VRQB zoNCDYu$lzmn~4}FeKiW93l!SB^_Ju#_UkYsS0&o*_FLVwU)edpIKze9gZZ6qO>+FL zSqx#bt!+8zSRw>MLxA^4(Un>BNhY+RDiw;dl`D3jDBH~(IGi3}6i`j5;H zF8!GI(KBW=rf%EW)<(kFdIHR#4aj{N^b->&38Hd*K&~5(tW@nPzFBOYCHkVk+Rqyg z;NlD1gvWgq_(K`e8BJU{^3^<>alfobnXil?4zVRABwc7H*e95< zZjvC=$weGO@XlEZt!B|cTe0Vp_3yS@4KR3@Zruc^?>FPURcx-YGC)t)$ec*#FvV!| zWZ}C?lH>QcntbR3OO>HA5v^jLx_QHK$wHZEim~P zHx8!*@orza@eqKscF;a)lcIRv`AU={()wLp5aVR8l6$8_EKWQ=%}*x+xWv1H4CxSL z&HOP%MKX%6GvT5%%jl8y@uyhr8l$x0p8#$hyu2+v{Ou(DVIwqZ;B!yqU(!u`PmVl{ z%*VitqpzC)uD3c0J;&Xl_9?N+^Yo8Y{(l?m&JQ*9V3O8}eYXc61OR-o`F7a0E2oPs zFe$(S!=&PU?r8%|irSwf<~cR*VlgnzOcGAbWKr73$ts&4#5k>LG-*Mh(DCV==cFo@ zI_6p)0P1HN#I{yHE+uONYT6htjbnzHHXE8=dxbsAC9>rxM!+G=(*grc=W3EE9P!3^e}srPJ`<*Z4q3Zd1Sy+(OFEsx{qpXLKWj-D9Kr~xvg+f1bm5o_k~Qm&_5z^RJ4 zxOXtUSF^*1HzQ8Im>aDIk4e!*<;s06uU;d#bty4G9ZR}k6MMobG{nb%;#Mn;v}-Wu ztPr~IN%$(GYMS7(6Tsn5zVNJIZy047SJRf3%OSF3)07UL4twsi;$Bbwah_Fx`$<>8&?ovLtoJb`#*@}<>6GPV3VB_$r40Ud(8OuWS->lc~b?H0H z5a?0=kP_i$)h_~O*05E*%hcxm9p>+5h`(j&9WIGM%Bu{h$Eqto_`p(u*^=DpFioyq zn~J@ge_erDCBC(h?QD_DWWR{8+h^^qVK9$WYMs5({jS?g902|C`U{#%>PMMN&8t^rqx8zL(*XX1%$$^v+FGZyXzyb!ii;)yfAjWge?w4a)kGPO{F-%6IVJ(`PYo z{bn;}%{4cQnnW9c04C%lc9+wl#Yhz8T#P8F-s!q2qz%O_WUz)kKWv*ViE+VAB^r{a zBidD8D7C8gRT2rjL{A@fnIesEW#K;>y1%x+-v_++btyPGQSH2=rWuo9WWKDCOTBbi zUGRaOsxx87EVXz1KV;oiSXNEAH*gRTq`SM6?(XjHE=lPQ>F$#5knT=tq#L9`x*G)~ zzW3nU`(XC@@A_Z!EY_O2=bpv$0NlptP1Bv6KI0tMCD**V2KL|=GvbR(m5pNcHuT06 zWf#D$Ar3$Eu{+KMcYh~)wPkqfmLr&{iN51M5?&jGoVEl@h=SwA`6Ur0e-@7hKbFVVjA{4R{*%ofQnV%}1*$%g7aAVcQ5dV$%+OAi= zd93$u@wwp(z;_YtQyU@SoJX;BmX>NKR71^ZzmHNe>5&cibT9aBrvSW;b7Mqi-vUQS zrbq+oczUPEJZ3ziYsvbMk{GI`(+n)GO#F+c;93OB@fUYRE(3|ztb*Nnm)n2xV`UhI zd}uPZ0@APdvgWQfES_0e7bDD%|J0)@BoECq%?&)eGD1|>Ygz+5aKD|ND2gYFTA`fL z>*BW5(OiLGgwcmh-9+w|re&=V;Jn5n)qC2p{$dlKm~-7@?jV~NLMGjX+*wFc+Dbp_ zeF8YuI9DD-UMe8{LKC5?O6PC>|6U{0mMI6r`_Xs^alYNJVj)eUonqS!k8B*r)?}!9-zOnG$H>it?8~tRUo}D%sv97 zTZOYJ!4*Zu;ugGnOqE9DvU9{6M7cLow&OPm-Y&kt19)xD!0pLcLQ2Ic8C&+T8}!SZ z`=*yPZdZ*J6p@jiSR24oXF~Vc#`OA*b~W99vj^ioN>BgdcuDxo7pT4P5kH$0;3Ol> zGtvguhUCf4cK?F1{0{U>Il7yWx4);{&kIzF(*k_M$@YsFGlYQQD$$&qGjCBaneNM| z&BJLtI{sy#wIKL-V5v`=noD*g`MVFoFWTVJh&>KJ3RbtX5u19;mJbGko9Dwx>;YFQ z7E>F8#jM~^^`eODs&5+xS>9{(OXF+~hhRbeA^&R;j<97ZvcUfEakaa@y41MkAK8hN z)bFyb_Xj5rz}VF&MVX-=FoM&=-ysg<6NPlSPl-$;)fcTOX9hy=dAtL7@8*hW2^VrF zWge*|C2p=%eXyTkNb=XJYORQ`^t)t(0rEW>9$`0}bH!2b-{Sy1!b=*q2s` zmzi(P$v>zeNlt8-|9w5_X#NHMRkigAi#ol1p6@~)2FU^hcS_)Npqk#>h^`tT_9r%V zfXjh1Eyanwkgwq?^H~sw1o1TUQPmd1A^+tII_lHU1o|;xFbd+>3`v-r$!$ns?YqI> zJ3T2#7f`=d$FC$~Q$QewzEqVzw`; z5SC|cO7nd_d>`Ymbj%H}-h0vS_-Ld3;mCIzJOo59CzU|)^YIQy)L`8TRnJ-E%tp(I?y`q4qP^K;PHchHs|nZDp*?h)ORCK zy@9j`Za^jD|B6*!pzHOV(KXCe%u+J$g~)6fC>8sSI2(^eIzLN|TAb{Y_Z#-x1{qJXiP!r?jwfs~R&ewj;f`6tcWzhj&)4tywofwL5IZW_c zA+D#X#VYV>_9uq3SKQ#679zvGwG8`^-12)HzKlDBoH{-*3|mnQ4s;ICBO#A1;Q1TSMVpN zCjS=seP})p;hEJ6yx)=0FlJv0SF1?!TGD&QtzWQ>|j7Y6T$_q4A-5- z=p9^anY1KTo9fy&VJ70rdku7l<)+%f-6m`!@DK(c?va#4!4%qmuLwD?$1>hTa!)1# z6SFJhJ>xPh{0k3$w82&yUxX2ito48H*Z>I5AolZ z&F#2Dp3%aY0Nj2kLnU~5C7jUvvf&OCVQ)U z7r&$}R`O*Ab$ONZ@UUeus`~qYy>Yj0Rw*!;Gk9%eeeU6KuhB?>zvuA&~0B3Ui?7fzeVRoqEr+2gNP0Q;rwft>7LE2Jc%}V{Q2CO4PISB^GR;CkE zX*SEgv3lACdnK%kSC+I7sRlXBw0{F@f=hLy?}OuXU$TorpBR6hD%ad*XH`Vfrkbiu z!FLMKf-S(T=vG|Fu9y)zhA?@-8(W74y5v<7*BnRU-XzxS;!{^(?D1GU3*+)Z+uH{7 z)M%0xIS1BWf4AS>C2E;|2`({aIRW?`MPj9re_tR0+N;_1hnT1F-}ld*EKUD1D?(Qi z+`PbJ@ISJr54#lhQIhApAJ(Yug-?Sb*@Q-Ogy@FOyAE2nLV$F-ypF3d7Fa85Wr0Gk z-T%Hta7Ob+Aul7&&Hvq_U*8ohz`5!A#TCd``%ua`U@33%f2Vgx{Y=nq(6YSG8xk70 zZU?wsbssF$2}FA~*^hoj-HfufRug)?cmI8_5p5)gG2qJ{aH35+52jRLJiLNyPvwj)=;`c5Nw9-xf~n7 z{ixX8n!kkNLrpW;_J4TdMLA!KG4iDTEbT9zM9cX}8sL>u)JYS4KRl1uENZ^8&DDvJ z8$@;`4UgYD!x;qo!~K8#zxTWCvT!wu-RbZU`{nht?Jse<(zcT=nHh+4w&n%)=94ZU zo#o0#@CC!x`Jl(-Ha+wtF&}%Vn@mZU>et0P9&>{}1AxO92eqL_wOgL8tIMK5^dQmy zj6_aC!n-q}rI6?~`D6%iC`Zj%GJ$V2xl=aSitYgjY1ZFRse8lE=n;=Z@O3pm%@-zw+8hzU@2H-to)~V#cGdiL>x+X!L23@VG$^%8( zxOA!4_x$r^S}7C@NH60W``drX#7>gEqW7g35+|$gRwQ(W@xON2a{#=dZ3e)R_gnw_ zZj!~WQt0e&p?bkd4)UiVbLp_0d9}Agziaxz!!K%N$j4DO{eLjT!JnZh+A!tf4P z?U&!S-tidwD1i4&$aP7xt^82*fa@i`vtHs{EYgRM8&}AXH-x4~GJg)hnn12Vz&0=Q ztQn?7iy6iMf6Jh0w8mHcW?{B9w;9(C8eI80^GSBOzSqVWn2juo(qamh{&DuCNaliU z-X$FQ&QdQ1eAM#{O)l1Hl4S^t7cKswnsKxdBG#2XwvV60lRH|5`{e+RvP-ryLw(7H4gD=DwmPnxf_*?JuEu?J6nqxZT%VsXyQx){x7|}Z(u{@47ms94*R1Gz#*m}^W+C<{~`O6kM?@~XvZ9n5_}OM^ucQoPtSxh zQv~?CpF1C(2!DNkkt9$yF`ibFTDW*!a7LZ!kTzB=pPpg`xcz6V_Z_2q*xJABIVvtl zs+nwTrfU@1O0Y!_|2utNr2@F@90T>Xbn&2M2p>}m0VB1xn1y^Tha_!4|6J50(SR1f zpI*YV6br#YJ;VCtGuBij9Gk|X=@ugzNUpjxLw znoIUp-Q$b=+h0^IFN^ooD|C#Tti6KeUH2);dteu$R7}$Hr?nb#_&t|Y$_riEd&~HL z84O?MR`pF5P5)_t4Mt2oN}XmKb-c%eJLb^@BEM>ZhICc?5I6s{G%F1;PYK|oQcdX( ze~ik8TsD&uA5r?%cJufBH;<8*^+FKlt zXHP6g|NKq_P8`pI(;Eg0$2Eyh_9QFQ-*ANYW7e>(s<86W-5+{s2K0fkJ9Ph}PA}!B z5)^S6KBmbmpoH5b7ub3f3X(5{ao%zU-?T`{8Zgg2jz}p%-8+gVqlDpJn@he!w8W@Yb*H zXXtKtsdvS@-RdPjANI2f()U~@Yh7lB?R`l=`hXgb;AGP!C*d73hteJO!JMq+oGN`? zcO1$7S1YMf@Q!4uPMdV!QnH~HwA$0Yzbb3bQ7oK>FIXHX&ZE zKDqpSEous+OX_!ul|_W^^P>p)YRIW~$;A}q?+6aAphpzfsSNzZ0l01Up?++rzK{r) z(Yy@1Mb(c#El=sndXrP@mvuNM2896E@Irheyj0Azf7C@R5+{aJnu6hle5G&O?^i#DHCwXI@9|YqHbQFM0)zQs z5Q2Hbtk@Fopp-JGl2X>)Pq8_CoKURkGJ#k0INt$q)KXE}dIGQFQlzSSiBqy)5U z9kD_|F7ti(v}6G@fQO1%BcbQrbYS>HMk{-!=F#kTPG&=1nx3hwBGr{mMFO1Mqw>G+ zTCZEC&&pLP8#i#%KXv1)A4fsvhk3^iKUyOL@Lo7oFW0+PN1jcnb|J{J^vkQAX5xO^z*9CS<#c%`SK0+U|g1_P}RopPLFMjFbkZP`o;p27Cm=R z2+`CG-s6P-_oJZZCp_mrPr0;ywollSf_uKDw{{aEa_`ci!RH0s8Z$eT7s}KH`$nZ; z#s3bvS(b}|!NkBHuPh_$Z!Wee1?VMw-=u4X->C9;&M)|cY5UqU2R^Hh7wL?vm*ZX! z70zuJR77G?HZ#aw+oHZhO*Q!mYdS7Kx~((i&4R@BhLesT8(%O}Ee>IGi#jGs5pjz5 z5Ax4~HvoSyN3gAs{%tsJZQv2}7U|hB+N@WW`mCB4lUkfYSjP$QP%;V4#TrPt%LmE8 zq1Nw#NJsiv-`PVfJRQR9PzJ8SKCsCL5+&MHWS>RpRhy*l4ZYQks5kb7I-=}nwl zOHUyEeD}W}bkrnggM1(MJ$mlR<3^=MXXK`PVvp+sp<(u44}gCftq>#f^)_F4|9O9B zu6vnW@qAClRz&%VnTe=lc?I06FsE}Uj1GL2?eh3dD90~vO3*vj?IeF%b5QTvy`mxk z4u;Ox!I<%$xwP0(a-851*VyS4{p_z=2&$=4U+;`Y@RkYo-z&e`#GN&*-y&-^n<0wq*4VO{K9j`Fr_~0{DSI2hf&0}7 zQmS(o-%Kh!jZ1;)v0ieo6_|EbF=U3ZqG9yCV7pV`$|&$$VdyKoM9UmH?f+Z5iq5$h znv)9@*b&epq3G*G2P^D%Z~Q6^49a-i&9a)x0`F*CDwCGuEHQ4L z_f2oSek;JwF}*~E+np887Mgn2(oy>sRo$g3Tn0zO-Smv)t^~oY3Mb(wVJ_b_k9Oxb zVpV~bU^*Tj)Z)JLAH5o%eCxF1Nr3dhZ_*Q#$lV_mPx?lAk;wE>?9OY?KN;^U+R2}4 z%Q@Qu98wF)!*jI-i7F0exyK$ZiN@-)7i0|5BEXwloU987T=d&VXtAH< zpK!=C{!w+us1&;kNzLWZe&hoWG~`z@b44=Aq*nHW7G`X1l~O&MVCg8n3h+H_ ziV|~TMjd&4q)UftL7hsKIP#cDIpMZs2}w=D%3TTtAU$=-ZXxlgeU*4P8UJG+@yrcO zV>DH@oBqDZS|(vwB@@66I=#dqNc{_LZ|SSw zD4H$)%vJC6kmWRXse47~c>knMn-FS-Elf;KOaam>5d6i&+*-J*o;L@7JtE4~cxB3a z{hn=>kqsEn!%PA@S11?TOSL8&E$>Wtd_ESBbp^cgK4};~i+XO1henOSJOb&#n&zZZ zIZmppIy4cf8(EoH_xy)H{83HQDwvx(T+@pHUax$cCUC$fTJ!iDZn2I;N!6hQq5aOX zL1Fn2CI#9DEcfGJE5(mVP!v&oEQnF85|wcEg#tu6Aci9-To5aSa(jVvBjQumb$v);l9H6|voKf{>sjDI>9bV{IQ`DguAx$_VCzYMcUCF4$L zi!*B18Sq(cXznCtx=m-WD)Qo0j5H9vGMOxmIQ?=bXS|P#$7<^g42CmDHK7fKu`a;G ze<#o6SE5_1VSFV1oesr8^D?IXCb(6pA%o}o#aFrhB5APo?R`gwCbSo=>>oXco7E?q zPhoao{r-$ak_%fk_&kW<9hB^7?Rhad;FLE{ki{xYD)Y7K+6oviXGW+Rd9Bh^mo8D%( zcQ+gwo?rG#DPrs6YLW?SoSe_LCY&YS9)2kjru3@>)6X)0Uucc$`Wn8^K0HRqSo@|I zeKZl}TZxuwLrL0rWC^5)?iIzgT`xkvWNgn#Fvv{TlWRz9+W9%AeQU53L4sTYxLe^5 zAIpI0FA*VMi=7Sx+U8H5rMx_LkxT#mHfz-S5D)N;w}k=}`su{^)|nAw{LKDE`Egmt zpN*@*Vj4_+pE8~Sj&C91rji$I5&pD1oT3re=ff+7-6A_c)I`FYVQ8T}3GiZPVWk-> zfi1qU-ztkdTo1~IZM}9Y=dpj3s9}1cN%;Y;w)+>^Q?8Y6*zh8re-y*oI)*7l!o3sn zDE1@2$e*eIum87cG5&C-%zYK^TJ<42W6tOzP=cPs4KZKiQ6o9#-NEZ2I4#WwenNE= zuKpsFBAyZwsd>e(OqysN5#;rAs*s|eu=q1D7>aunzjH74gvRoOBasrLlA_C+pI&#Z zZ9Ft7J4F99l>t7d#2~>Sd~(?0P8G+OKM;vL4}8At~3hVDeRU}7&6 znoSfcl)p;te#e)CQ9o)*?*x2OV;TQ}uTEH>Dsd#oAHaTP8M*H+b3x#iEh{lRwqN9y zlOvyYX)^}Wg>WtchVmRx-S*oWh;K?l^#t>b`u1Sg}ldfBbCi1GKPH}%nng?;W^_me%Zp@`cUscMew17?r%~uULalD{Dy1X^NqmGilL?r z^>-vZ;r<4$6S^L~EKqY4#Oy+q-#xd`$Ij zX-ehHhEWT{jR{U)Lh^Ru0j|10SCHWT^C2f|FB~Bdr@C%BvG~X`gsyDq5yG?r3T(ZS zbv@B%h~7Ip;iK)BaPBJLKJz{lGutgTP;jF{_Iv@`3IvnUPL$bv@-E57<;~PmT?J4$ z1wC5ipP3FX0xg+Lrh&mQ>Zxx~z(4%+(J|Vzzh%KX;Cd|6UtknUzh@%-YwHX4^q%6- zJP;b8*$e~BnS$n2-*+t#Gy4R}Vsh%^o_{mW1Ix~m=K8!nI{Czy{wIhlQVyt)REItu zPVO}x#+qf}IcBgA{2*d#6aOk#(3%Dr@#ECJnA#t;)89^`{LJV`+K~wcY`8!o7nNXj zkekNyLvDV0OUKj_na0ben5H&cDkiQd>9GJlssZ;-8@7dtE5C*~eSL$$iMOMi$BK&; zV|VW~w0!6g*kB}8_{vzY*hkjP-=HP$vE1nLJ$@sG+H1fV!Tfc11t}0n$Gh5^E9Ei9 zyfa+0hOmEM(cqf!{HX@*VFL%@%lpyE0f2jMP^cIkH@*}f&3JN-3t^SdvNDroFgq1E zt`#7V6oRGOrLaa5)1i04ow@$UmZj4|a`zUdmQKW1UZ!2TnOo5cAf5bllt zG){ix2Si{s(Jpqc35`zz9is8@1^8$qFqtbj9B;BNW>$C^4YLY0rw}ng86}ZO3C7j- zBl3y^>90Bu@IQ29zpYU_b^c-{S>kQPB*QEVE`Q$oQ>RXl&IoX?^iYVEgq^1kf(7+7 zD`Uz%RX_AMaRctZ$I@W!mnEYB9BJ%NRjPytWpzi(zn~AeYVc~?L4Pc&{uz6(5BdaC zhyZ+&De`p`Wp-FrS2dA6{r-H7u)nijomqC`{pZnckF|P$`*DO%rXv&OYx+G4wwSDI znZ$KvoZw*eH$AKj*LQ6H1h^a7UxiiFz(&_4$YFf>8Fed}SNiM3RK)b22#8O1Uy%Ur z&_5)HFqff8()F=Ux?VaDnW>ZR5j( zVql2>^(MwbE7&$>f4N(Xa|wK7E_ORu&u(oOEh0DQU5kzNg(BCgd{qbQ$n3_R8|B4N zUEIlKnJZCM61Gv^NrY)hg;QdZ*~E^ad0;U6E{b2sY`#zL!8r29hVfYXp_A4%5}P{- z%{C0iaq&?DyzNM(dA=NDJrcS-n9ndsf$6iQWhiyHoTeoS#76IhD< zU=mmlo|+pF@{Th|2k|%uq;RrSDt%VHca-sSr)1E<*AH5#+4ko+vGwz7|9ZH-8fiCOMNjxH zM27)arpOiccugSho5TYFG#3;S$8QQ_7rH3BD6t^>SEE#-H-P`boJ7x2ZHj0ZZx<=- zt+F8~HZ9kb@Xc?nuqdAt^=C#$1UsJogg+;Y0&043)WmOd(;X{z#PFtK`|OcDQ;!9)ftADcr_Sn9-fX_Z~<; z%Q<rNh&aTp<04(FyuE!8ii@TF1p!9PD$Qu~PUCbmm-TZY*7 zC{=Tz($gW-&{}Clz+IW}TeOqGwxF&22CRoc%K|?A(5r&9EjE#r6wb`H4HVc`xUq?O z`le{PQ{a|xtcbBzk{-6=YB3_7rUAi;wnfS301RfLLdt-dZC?q*_UUF^sxr3%_W^#MJu3|1g zhctd1Tgbz7%u0;8U+|RzcTpUddzcyEn30=SNGdwv{fX@f45Y9|{_cy-C(=Yg^+*;| z7|w0B0B2lAU6v2vADM(PVDq_+T(juOjtd2lp^oZu~>RlZo+X4o-^%&BZE9>q9!reK>Ez z1E`GQr)wgT6RP|uO0aG0TSkbW9|7ghJnc55tA2N*%2MoywWd524KCJc4BSJ*ee>r1tuO3~Z>|6zY-NX!ji2aO>=}ND@FVwF(=^ z$uwEbUqGW}qlSJ5F68-EE6-5iHce!;8fn=kKk*D*9^KgmaK5y^U-e=TH>`AHuHTJXPqcnx?az)s zEJGKynnpZ31uJa+cD0K80wkN|LM%t&Lpodr%@-1%o4ux|Sk_v#<~*DTY=8*URg&7?PIMFk*u)Xv`ASu|xhJ~g@L(lij_jI6B^QI13v!=sw zf#g$nw#esD$1@5B??|i6My-x7I&#a;xcfLeg^75!d`3Kh$a{{O8Ag_ah+x_2r#Es2 z#q+1`g979QdB(nhQe9n6nS8?J9EFumlt>l0YOf|vpe0gx5NAhxwM50h`efK=i`N8; zr!gi=(kWhHQvh6TA5%bR8TFBj97XKr#?DY1kTXq@7 zB5G%66O>ay8u~Ml?hx*6M>#`J0Ip4lujC`r__K@5NMi>xgOifhB=zlZ&etBU z!!sHq&R4j=V6gPHcg7d%eQRIBm5k@Z(WVzDO{$8Rc0c;m<#ZdSgC#`jK2~RX%pQby zpVQ8^#=HOi+e@c+QO&y8=GgF6D9JPsNYCArPW~kJ1-j#53?9d)#@LQr839kP;{+-fvq`!?8Q`HD=yy1;a-3NtC-t(EDRe5Pb+&nWNxz$0f)lIWBa<@0 z{;RR_6J}30+MZCwo|XSmwfTf^8`!g9#uqYPSw={c_E_s>~|T3iwY3up2fPM?vXG_)dVznz+lE0 zRVkEJko|m5Yu_IuL*n<9-yFgyPV`kl4~Vg3BWeR2k*AJqVBU4{Uf;(BYWbvOi)HQ^ z`|+0yN>91VZ&@`GfDg*?79YkyQ5;lr&R-_yQgQ4xU*Gl{w33n2>BW9#BLFzQ5O=0p zOkuq@f*av=M~T?$PJOLa4HMpjTv)ZHRjUiYKY#HOOlNlUcd{Y-9kCLrYX_GIomo4K zBiLPMBg3H)5AbG`D>w90(czLG%UqNX*xcBWiA{v9w`6XSvB^f>p34AdgKvWR=5G!4 zTW;JUX<0fgs3MVmQ#Mt+^&qT9mfe71L@%}N%Uia;C?Gu5ff zdW+=zKQG>S^7Z$``4W9qRkLU_v~9G{)=WVNbA*7D41L}n57W~E(wR8j@~Dfa+DkQ& zec)i9qv=ZQRyAyCl|HfgyG84k_X8a9TV0jaw}=Ni%6lEZ{ zs9|7V?D7tghkve`K41YQK-ajGiaXv`4~85ue4)*W{>tU+4DxE%i4| zXlo+tV6vsswEghEMJ*qx$;Q9}1y8Vh69Rqy8!Uskp8t?pNdukoG~#&5N|=$~Jj$Ah z50GwnnRZGflflKZE(On^@PH?vl~neY;WJ74wcZ}@=;9r~r;tQfvEHGgjlbTH$N1>v z_DJDe)bI*i!D%6yuTuXF0(fl!iS}g6=9oVzMdy^vQnYkoe|zg{{@l(W9$f2#iY~xi zKhGUf)(s&F)qel_IgsYMwi*Sw3C%tY+0AmR5J9IL;A`XlWJJsZ*X4O7Q$h)rCR9{? zSIEejIvz6TB29K z{&6Qd)Rmz`u5_ALP|z5NGRn)I`gDQRO7#E?rZOTRETED1OR9llWi49}H`-se%i~IeDjVzzJO#HTed-KKN5t1&} zrW7SGc9R%8H7~(H_TW%e(hrNZ7U!pu>BpwBSf$21h4U3~PXI@fT7-;qW>=dLM4mO` zL0GKJ)W3Mn<~oYqohtl?iw-U}-_#Vz_kEfwJQl03`^f^>O3S&3^pG)%ztYswP`TuQ zA9Z<$OE0jczj66li@y2ZViITCO|Sq>-~1Ul!};Kg4A|ZGr)6%RpnEF*CMY!1vb}z| zy7z%kknbJt{lQnd1%m(ci@=8q4uz7Y9oIG@@(@YczxIq_>!2CPGc<3fdU04jMuU&` z`Hc88Wi0)05r@n|(P}#f& zpUL#JDvxp{nKnfl0gjf$l%rP1XkN40NUz~v@xZ#Rswh@U$}L9bXX>H7bq?^%=`0J1 z@4X)<6@|i06GD=pg+sBv%o6NJP75+9aaw>g!8e_7Ht~X(U(!P?`LDPBm-&H6j+X?4 zDC_Q=F&_qLeSvh?Y9GrPGFhS@EIR4-WjJj~k>&&+YRDQ;xXb&IO-hUa-kv4Qwz=o` zW1y-$b5ju(0hd5dIDkb%++K_3#PzpB7QiWaE3M1yt`a{A<0?%k^98Czis;#hB@(2e z*O0nEd4LVZ-@7{c_MDlmn{xY1MeFvP#yGG(>`rpZ_FLo)$CyJW`aQV-eXLs9!JcTG>gV1wN}sNl^ov*BM@9!+tQ? zsi=9zhK5uA+^jWK>5diS&)a)I`rR#h-k$U!Ws26#3okM`fp8ttXIAKnaJ!n;VO%B| zdVp8v3^Yt(Xp-z|KEEp`HuPbt96HF(LMS=LhSn(VB?NDRJ(=g=l&NBcL6-KZDCI89 zQ)-Wslor}wP#@t9;S6)gf%NR{T3R2|{+bBOMc;_}pKe_OaO!+UvQ-D#!@xE}TEOb2u&?;2ivZJ1}DIJ9)>@dBK5NM|Y!z z-M=1gPe@q)CASAZ)&M+N{vTt6zkHzHxD6X)UYrC<(w7WmYKg>;$CwsNV-H}JdX2s; zRx#ut@5%!unSB)l)AC4uwF}Mp$8*bD+rR}6oW{(0MlQ>phuSB9e$d!q2iFHx<(fVglctfUyhKO)>GZ zOxiLn(!9YpiIIB7V&$Cq6*K-kSSbGY)kY8C`d7K~-2)*==F{68$12J$(8C$ZXMZfM zzn1lTcJEYb0Q@l;#h;ZE6TTsy4nhpc&6G9KKjH#%nn%`NC$H`wq94Ft+a93#oFXFE zy?KAvQ~FAW)P17*wST==bc+Z-(HZd<;K!EnO^oiw=$~ctc-&^-aFO=0Py=J9fG!)r&Rr zSnwlb8tNcsRi90lAxG0yh6Q*-MkQ>k`~9UYQIl(t%TIyiB{e)pxKDC9D}@+V`x{#TJ<5lh0%VzejYaT_87lE}lnS2Bbe* zu;dP&FrD74X`#{lq%Ug^JQ~U4(f<%*zOm=H>`nu4v6+`i70AZ}Bj>gq3`plU&1j*j z2w4A%VnrzLmZ4pAfGg-phV5g?G5@tm3N-$KUGvhTM7^GYF|~qrG*FL zM}A*u#LrfTH$iXRuIjm|`0mD}xqAQ8=lb6lk$h^u!flZxcGaXbR%(5-KFXeKDaSK| zWxEhyo`HnVBnHwqeq*b~mU7f^-K*oNu){qxKCv;3v_JVPoDP+io1g{&9GZ5Nk~)jp zf;M1)s_D-y26$15m8uk91A{UB zA}dQqG3~U$1_s=>UvvJj_C`DJWLp3pua@aXZuDq@C{ud$l6o;mw~8nqK90X3 zFvmMp&WP%@7`T_?I5LnOl1m3}vl2FyA97Z3D>3L2!as!;O z5gu8ZVV`#YF_*|R2?zJ?J?x6(Bj1uqA+oMYaecf@1JVbElw57l-MfsEI-uwSR2^8yRzIKHq=q^r>R&ibD%}_gC`*+?moIZILJ~HVpp9$R4S%)W3S7=W@AB zarP4PA)BT$a9xd`jn;DCK{0+hy$(3uviRN4CqEXX5qoaVk!#B!HeCgzYl+z+wAigb zUi#2|w_)U4h;ga+eQ)2{jViI4*cKXQ1Mp7~_TEPR?~HT?YpHLPXyDp&PU(lb=bd`4 zx@s%X8Nrgd^Mqb!70v8YKWm5g{aia~zH=KnU*-OGk+uWRK~RGV-@$klxxs)FRcaJ$ww$4jvq@|2tx@8%S3p}im>%~j-K4#;W z^0@i8Q=)pf6q~}y?L5D}0qObYRTi|aJNe(XZ@mQqjN7X|SCS&E};ROLs ztk_%6w>Xw2mMMg0AIEvrGWGs&y4L$uLdj_M$vDIr;E~Upf75ItWCeb1yO@et9!Wz@ z_N=Cb32sdj`1o^j76RPSTWnggnvwg)S&)gWEN{)~sF(}2On9Lq=6k+@59#Jl9CY%@F(;O4CJrUyCzu_zpwkf=ivewozieAk{YfSX=R9o!0YZl&*JHO zg7>fEdG;yPt!btZqS8xw;O7nAboMIWKmj;*GN)uD@(<*$ux|{P7c3<2M!z+jBFIAx0?TyceGyx>!J>f=XaewMW@X z*R#OCe~XacIZ;bHcJrkx)LdgDDtHH+-*X`&&qNu|88OV}=%skxkxTMXKZnG;1kgqB zNn-t!lK|3>jy}Ox3R5HsemP7br_t7@MUK}URd<#@aQH0XmD+L!a3ZmI+<9{?siLe7 z>tWILc*z6qc_01rU^`OBL0p`nZGf|X7o`itT`F8jS(;e zTTz)1^JtD<`S_fZV{o{Lx;%7$&I?YcV}tmtJqhokkBotITlnoO*Z_&Ro^oPRH38`R z`S)Ep=EyXJSt&$ZlCvX*08bCsE%n!VKV0_T*X?h*>lE&qh9|n4C}X?3*8eG=Wl8`z z@4inf^!|eT@qA%q(vYzrv6F`&Bzbbxl8Z1jC+VLKfQKrz5hCj%@`?U;B(=t96ZvxS zRXAGgm4TT^I{d@TBG{=Nyhg0pJF8ZXzvBC_&cMb{l=9o(Xy82^{g*ii!*-l|AU#SE zvDfPihJ!HO(|lVc{faid>sLNm?-1lkyhi0%7I;Sa47oANhfGHXnWG+o+xXzJZR0vE zCjim)D|{OH4Dk%Sfsf^>V{Xs%unyj7#+_a?pso>lXJC?&wEXVujS^;>9|H#S6c|c2 zaQp8N)AlNmnqbZk=7zQUH;fX`haLXfW{aOc06wg4K;Pl46th$Py@n6-vmHInzqT-H zk+|$Ijlv`97;x2|%n`JR`w;c(huzuC_n-O6ctd(2GNt3q`@=BU%ZdHvK>7kiuwQq? zghaB7N%Pa(mcyM$xV&kDNIMokfpI32YB0e2mt!c&{_ZbQ6`XL;T76pKh>5<9)EgVg z(N?hcOGnuPI0N1}bp69^KGpfXO1~$+Z>G+~6sN!T##M{kAwv@`*o7!wH-}27t;Vf$ zr8k7AU2)H9xZqVegEuR3OVqybt;++_@qe+0xo6HZwRbVgU`x7xXoWe$EC~}Dx8dwp zzu8Cr1MnWGqM|ox%Mq4uBTC0PlyJg2rqvH{9+Ma3T~!u`Ne2M`e6gLwRBtAc?Md2Z z67LrqTI?N;M{ZWpvR^#@+Aezwa49V4<40DMF?7^C#4-k^62}YDIF#B+rJy;ECq4TC zaODf_pCsP6cv_5F{DcP)$GR~x|GfXsmhI6Bk0qD0r{E4qN9SC=c>9c*Lk>4(uQ7}7 z62fSAzeD+bp;ZrUn_4QX1mNP6mmd>_7HVE)6^J`gxMCp{4!17~7u=9B<01_Al)H(;LvxvFKPD3ri|I}?6jr0 zc>NY|#X zc;uwNZsi)it3frB)c;7E4E(t9uw^a416FIuR}TKR1%q$&@u+_}JrKADms z)bNtnu0mCBmm^q0Krd_QMyR4ZxX@(&e!rq%!)=@FkOe;&oDVY>9@g5U4x}qe>5$&; zt@6N(Dh^6T%ut{`P$xk*p7eS$7Gy53|3Cpajd7vOd|8RA%OuD!s>F0ZQQs%TsK9!wnN%RS+0$NBY5(=UO>?@qfM?BuE6QlR?nY_p z?nY8Nq>=8HZg_udz2D~V=WE^T;keJ9d1hws0~RCD%P~guLA?f^k>b+RG<=;Wde&g0 zp(oW)vlsFb5*gsP-*)y_Eafh`=4ApKfbikIqn5y};4okJjVKI;F)s0-*LdIeX>J-~JKm z%|p!y(d0VRtxQe=KePiF#X`0#o8`dtQ})KhoK+6bV1}|>GA_HdIg!?f!8CJy&lkNT zZVx4WAYG2;oa#(7iJTST6=`%Qq;=08eizZqbgeb)Rg zv`5Oxdr*2{lx{-w4#(Og#KkQN;1u5rjX4CXSf@#w(SAvC6}pZ;YLJ^>e55sFt9Y-> zmIQF2c8KPbHkK)jpjpf(bJ=DwwxIod{3S`- zN+A@@@pY!?>hU?^|Geu}eci1LDhC@G zE?F1~_OfGI1bp}<3Hm1P<^~PqI4>eypQPBpZ_^qTWD3DAC4$PrOHwpjLrLOD8yztcrJwuz$3^6z_DDrr#lxUYmi72=I=NI00n{ z?aCq|rZQP3v^I%o`6HIM{lxKjxJw&CxYPhApp4F>+?16hr@INyc~N~aPIJhI_QvvD z=op{)+4v0{`6|+QIc|x+Q9M?6AFbTsn!Y5EVE$s+SFd7?8LZo`6a&(=-Aqrrjlb_1 zG0#9}keoZMh8fxU@Fc! zdBKmRIsliOQK|CFI4^CjUh3N)Y{DHF8Pjlq{r6;dj#v~Q7-b3YSKo3Ij;v#0#G|i)JrJN}Yx5)Xx z^y8iL>56eh$-!usu^X>X`-58V@Z_&I(>eH*?#RA|0z7@;VL1AIreOv{S8nZ$0)@eP za4tN>dJmB^1g^_>JNL}#yhI) z*>C627MMn|M0&v=01g$0{z8hUX-G%>g<6Q{M*1(L`woVnyzLGowEKRf8706=8PrY) z)N1QlkHVJ_$S4zSiy6niFOZJsVmLN_j}B%8_&1#QO2ingXcgOlDwU!75u7QlU%LMy)bS(5)u>W{}cdnCPbudY+Jk+N43 z&o30gYX$F-F$6tiWxs6|TeE^Y;PG{}|9j#JR%tHjbV+C18uK?X5|Hl0FiiKC?_LMl!^6c70B z{c(ZxmqX3dq%-(btrH(gN+j6K1X9m|8l(+w<2F7Gkp&g-PSC{vF4P~ca~eC~f=R#M ztf#!hdO~A|`sdNlPDhfbLrx&wIHtGQG0Y6(Ddf6=bWQl>U%mZLx}q#Pya|tj6a!1} z9EVONkv3k`kqAbvPOtn&O=8nR*y%;> z%3%AmfgktAQF+0Ih{gfZ0B4FEH-kySzZxOGITV43U1BO~O@Hq-4JMCxPXMw>;-mN$bPWdNLp_>&!q0;J>;f^@!{2xB2u zv$E9@8TY4Hcj#_Xb)Xm#WZqTsem)_pIaLRo8RABFJ2=X)G*4;S4lh>@#dL57RL9cY z7UpI~$=GdMdEV!AO4Qd(2j`Fbf`cA0RzF_1pm^+!WZ zM2n$6x^NSBYi<=CZ_mU1r-WfA+8f0CYgVwc>5#J-4yF#QJF`FerFQ*6;^CWL;iH8zD zIhXn9j<+Ii?=Ulhi>{K&i%U{fnPL>u7yPre!kGT-8WP!}ilqr)4@ui7hnKgK9-gfX8)p<8fBVJj*GC z$SKFzO{VCnLksjh?hjOf3gWe&IM73t_!a*aE@Vj0 z<*1RP2bpbp0F|V&8w~Ip8l#ftLOn)*_Uv=xbo5K(5Y7p-}xk0>l1u|!OQ2;gK%dd$|=e-KU_YJQiWE5;K)>_0Ou^-tK%Q% zTRPiTLkt}e%pT3YbE?_+`lO#(-^upru^!;?p6Qkal?ida-@iRFlA;~+ByB*-Qr(=% zS!prWM_7PI)m^d;;LbVQ%=r^M{S5&xdha`N3k+_#b)cdKkv}?1aA;ct3*et%l%9FKpLKbUbw7 z+zXhNh{F@MQGh0kA9LvM3B1d6K2)>+WUl z;Ef8bkUg$viWQ39b^Pc3yk#JLf%oZRO@shD$pUFSskq$g2Mk8AA}iClL-{PhsN>=g zz%$kpSs?wq`OSo>eLbQ3WkU;R*taMJ6yU@@TqF#0lmVOtqiRzmOi&1??^;k`VnX7q zsPx8`{6;MAyX3%s57dDpUrj=OV&nJAs?STlt*F^qJ$D4GzcI)jng07R40RX*J8;1T z{U2ktQgy;xqo&2n(GIr(qP-($!__wpb2=$&M5YFC9w}Zf2nPU4pIm002tG0W^-pKr6A*0x*;uGHkN^GhZfakBb z`!a^J5ZNhG1|-wi_F-PuNy^S)wa1V5d_=jS5CXWPd#eSv1S68hvaCFM`N3k-&byuJ zAQ~k}XGKW1@)%fvcl_*#N}I$pUR8blu$!epliB8d#(JZ}Kyz2vj2VAP4DhCBhS6?? zx;(NoQ8Z>fS-J%HJAC0BmlYvPHjK(rvp)boZM=3U?}{chz+`4D`ur!NNV&z;$^nJG zyq{G=F&q-yJD7?jj%qOoAF>=mReX=p;^aZ}Nq0Ev-66AWrxNRxI2MrZ^l5TQf$Qn3 zJe;41dv!U%2BPU)3Ci>tR;RpwX*nMF0Ee-)Bx68S8%p$PMhn3@PNioFVR(1IHE|ii z?h$(-CwR7VLG(EA^Q6ju4^q-y?vg(UoFF~#UARXTCL;=6QQXpjcd;DF2PNiVs)C$Ia0qK=tzb>U@q>YjO@y;eaJ0kr!J{>_eF~LhWJsT|cO9#(F z5W4U-{(A(@KUhgg;?Wp;}TTuhU4MOR>Z8iGx znwuL1P?i%^jg#=9*5HoNmSOGIc-562-w3pnYRtwr>C6bv78+Zj==fBt;$2L3p!Vc7 zmQf^>hy%{H*ZbWSIV8BrY~3%n2+xB|F=tqB3H$)xyu88as7u`TaVaJ+PLld||Ho%a z*s9p$Lx1N!duRt%T&qkhPA3En-vLP0Jh3ks9$Ve`D?!A3F5M%6N5_yD@*o zRKr`VXK)Af^3VEi%6&&HpGjo>O8{~8iwBYoY>nhvv#Jx8RvNqsPz;hz!_;365sKN0 z}tH7^uyHU6yabyJ592^Q!=NLN{k1oaB|k>(?lZk$lezQ!rW`ab-BUFo!^a z^)G!L;PXGNMdwpP_jcr6P`1L2+EC}KJ^Z6MC8iNmx$*D}LT}w50Q3 zjAQ3o%Smm3*jmf;E90PoEVT~cpPN%@-o^1=CQ)ruJAEv3Ok2RSW=zb>wxjrk{2K29 z_8x};Fy9Pv7E8KdVuvB-BDwk3D@foJ^^NrBOBFFFQNbDZUk?aTT3pfnSd~UWBa|eX zUj9c+WTb&m1dT;VBb`<7ruTz69rlC1N zW?YZ#>~eo995v3Ja^gC@Kuz7Q{ox?##~QX~K3XDhpd|5xn$6Xz?s|$O_|~O`sYbm= z5ta)JU1mQMtZFRs6I}i2ZZ+4Z`B%?xT6Cp@zF@&w$8IaexBC!4xp&*`v(Lu@6tmy4 z@#?H_h@y~H@9D0BNyd1}b6v2m3Ad8HOLFo4<_Ew%J?%%o|F{_{7HBFFKPdUPmK|r} z!uNLl$0N(On2!@&pGod1ixGSCHhs(J%BC*GKrN$1YEu3qZ9LX=iv2O7IU7jly_iQl z(Cq1m5+#-TQw|03LgrK*Y?drspAC8a54P6};P&Fwx~)5`QQZpFJBsfwxS%2F=s3K3 zg1r@FkV1bI%>!H~(;?c>aRCc4gVa9Qq>Wwjy&RYFZ>|=?#cLH&2--D(yCL+5yRg1+ zL!VF1rrTeceM9}LY?+55dBI=R&12~Ut}RVzyY_q^Gp2e$WU`at;Ot3*{ei`|@%#n@ zvADZn6$u{uh@nzuA1KnAWL3t z%U(;bNCkcI8wwN1&h)z#bTS)&hxL3{g*5r;cnnW|%JX2`*EQIB%&imvN#2Gl-r#SC z1Mqa3UIQpgXXD0g+*e5J#S0%|RisryW~UB0`GtMis3w5FHy=)yO7~-XmU+i;UhrKFoxpQX{Fy7C!ZO64V_>WU@%DD48w%Y8E-T1$ z@#3QuG}P3sTVlrjuvdXt!oOh(PQjV+cU@cL^Z;ji4(#0lnL)}mh621s|DA?3_iA)& zS$exFW%yZ)bpKZ#ye<7%7V+suf^b2=65U`qrya(HGWnpogfw3DNG*i3L)-z>{w!8N z>?_hsCusjO-B&;3=|b@I)@WG2QEHkVQ6DV^9JQkow(zzB3FHZBO|M!#9OE4<0+yS` z`k|vLU{^>}BpreDoA$hCVZ?Txm(OH=p)$|5x$7j5Ggdads35C~=g!DQiMx)%Vw$uU){#yFCYJML0#LKC`OYE z-76qyP~`9f(l_jvlf-y?H4EAzvOkC)h#uh_5#@IK7M%-UN$3uJBL_HA4c}lxU*apB zU;3bUo2PJw;ZF!ogA8VJcVit=e=Jsjvm_=Y_ovp3sMK<^wER%k)R|RqfefUSgZ*`z zQK8fQ3h*d<$TU9;J~*peihalKUp)6z%nDzi7AnPfDbqE~N5CcyZ>LKZCz?H&ZI?2m zlQg?8j(&0Du9O6FoxDJ*!~${@NH1S!l-lL%n} ziR~mfB_B`= z(}VzC{&ed|-E=jFATDjvp3yir@i*;=`z7#BaAeKk-rj?NXH2PnoFnq4jJ0*vx=r-c z2)aD+anN5A4XC{^vu{|gvmfgFZf56LFzN>g2E&kW^N`_rrttdTG`C3rr-?pr>F$R2 z=71|;+?_zNBeQ1A61!frBo3g3m8IMR_b4-pcZ+X4uM9#V(<+sYJ}M8s@Y7#GCz|ZA zuY?DGO9!WJ$sZ#YVb*VjJJrLLp&3idO(4gaCI%*UqdCiaB-{{HfnxHN`>|6cs;IK@ zwfQRN*;#BE(Zjj=X-?-RyF`RFKYRpu>4Or|PkFO<4H0U6j--Z5l$dOB3PW3@3z+8m z0_v#Xf0Nmj1;*-+*wU}^+eF9AydRxNJHBwHkQ_@=GMZu-Wq|{wZ$T`B9)3@f-Ko8l+3frJ4lb1zdfQXRVyn`iEgS^rl{*h7D2d-u6i}`-K0|DnpC5 zmjtN&sdL;+Dt&Z6y+{^%xh7lFSSznum0AOA^0I_F;({!<3h9}Z?&88G*gk?LNU(l-r{lMFLn(l%p~3;W?NE@ao=0KSUL z#dwqYo+7Au$EL4+iw8fYM4E4Nv053O(j#p@b_3v%5UNb^JD*587|-s*EKZU5oI6=9 z?61xTl%nnHN8U35eDcRZPlNvy@jnMLm9BX?T=pgFTIA$w2dM}z={(1aAb@++^k9qE zd?kB}QyRK?;}0h6;?_AA6EG=DK3~ogbplsv9iV0Aa1khUD#)8Y^7qfdOvb0hFLW~6 zMn_S6D9;H27mLosoSZ*ZYaep&=Tg|L^@nxLYY3Z!E%8=I!X3Lu(|!Vq=@u`q`LoNI zP)m=abkyr0)z?ro-FmaLM)G?2{w87`{A&MP+nm(z*bM6vb`n~kn(@r%CUD6+=S!(- zi?3oV+oT23Kaq<69sieG3>DNxE?7sPA104T_OH!9Q2*d0ImWCGyo<>x8y#|0l%Nr= z@xym>xco$g?5z=Rtw|7yHYNg5LH}4yv%;b%J6;ZvxWwM+YF?a!U6vWm|78DHJ*} z-&rTG@Dbl0k_$wArrgd)Zg@j*k1`6{kZ1TD#*nd|>tc<_Z1oGd?{~Nvw)pPj!d{`Y z_h2z4ivCUB_GUaBnu`fA0?2CFon7KGOHJ)bk3VaIs{+r=F83<{|NG00&A{ zC6>B=tc;xmYt|`jA>XrS>mLg$NXsu(7@EiVRE=O~WAfAussBDG!?u>th^5D7pw*~9 z%_sKfKI+n-uH^lsI8Y4SeX)(OwIn~C%Dnm3EpmafQot1M#T=^#eq@|1oeg-OVer=< z_~wg60{J$YF}e_*Vws4>N9Hi0%i*4xlZV#;P9dIVK5%X!ic|&v@YNA}vm1JTFbkq4 zOO?5QjfkCYv= zXYP)ZPB;F88sLiJnl~iFF6YFmv#C=$Gv@r!{QOxmYO?+g8w;C9v7`V;Ruc{mct@!; zyArmMx7YPJoEN|%vX3D+W$;$@Sgr-$fsul(wHl>@DI0||*H%PuEFKIPFfRW4Szv30 z(;M!OUSQA1D*A4zKAyB7ggsb#N4Ls=JH1>3ISz+WYe3GquAska7CSc(2gho=mQ5vZO0Le(|XJph{?_NP?)R&WRF)|YXtPiHSm2I6#< z%lyv(M_;J?*q>o^|B#)nr4&DE;h6jYFTv54G`dp7KxYpPHgV57bsWM5#HMaO40#J~ z5v(w%ub%Udcm&c^@y&LSp@~2`gUQ&A}+U@w;Sn<6NF|;D!hdusu=U;a?k0mWlv3v{M!#RNOJ{l!^!{ytJBHsU7H6IL9 zfs{~mdtK<$E`&{EQ`vt2xDSfkJrA)n^d$%Vb^h*8dh;Y=)*(uc_Fk8x5{2rcUVt|d zzFi%J6|$_2M`LR}`9-Q2cIeEoX4y1N_`jOavVkkLHP(X*8uLrp^qZN@iZAUM^7NsB z?2qTmk%nI)1StRN0qKT@XY05Q8~uD+?>`|1aXdbG2ap=-{k^D6#kxpJ&=v%EPV4CS zb{@M*FZFZ25lpZ*ddW{NVzj5%%lE|WMDl20R|Y}%VnGq|B=%CvOQ`f|*s0EZcw6)f zTg>xamDQM+&K8g^@^8of-8ffsiUWj`xQKQll|CV?EfZIUzCTupq zk7?Wxm5b=&uw(Vt70i6eiFC8cUW~4?Y6Ezn=W>xNg2xd*wLv+?w{=%hp)0CKa&s

;*{wZUf{%TGCDj6R#- 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�S#Ny9tOZ z<$gz3$x+#%?T4-pWc5X~uvV6FZykEtpnNjHoF6cht-rtevJSg1R@IdhRG8uBEB8j8a~560f1S0_N#n zj{o#Z6C8#o#Abw5Q)?0k7*zFos|Cu$|Fv-*-k+CZ-kXi+{dM&y>HE623+_=Wnmd+F1fVP;ocK3-D7yr23v)5uWMdwtrX4s6~Ba_Gys)+G{)zGW6WAbK)1k z@6f%WtK(2PL}7801vGESrt(hq_OclEVI312KWpHH06h1yUpA-HR%Lt-;Q_VdX~lk; z$L5ZQPYUH}f+#$~5?rbE?((c?-t2>Zb)v2xVs!N7b5n;5|Mh7nIMZ<3S+@qfBIh~f z-@(s|PX#FFWM}cqBKF0kovb)zG@Bl)(_m-( >ThSRGQ_No(B*%@`q&gD~hva?;+ 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 z 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 XtG^UXaoP5kor`CQSIPeW$oc;PW+Pk- literal 0 HcmV?d00001 diff --git a/src/vit-servicing-station-f10/resources/tests/csvs/challenges.csv b/src/vit-servicing-station-f10/resources/tests/csvs/challenges.csv new file mode 100644 index 0000000000..839a451eb0 --- /dev/null +++ b/src/vit-servicing-station-f10/resources/tests/csvs/challenges.csv @@ -0,0 +1,4 @@ +id,title,description,rewards_total,fund_id,challenge_url +1,Challenge 1,Something,9000,-1,http://example.com/challenges/1 +2,Challenge 2,Hey hey hey,100500,-1,http://example.com/challenges/2 +3,Challenge 3,Another one,420000,-1,http://example.com/challenges/3 \ No newline at end of file diff --git a/src/vit-servicing-station-f10/resources/tests/csvs/funds.csv b/src/vit-servicing-station-f10/resources/tests/csvs/funds.csv new file mode 100644 index 0000000000..fd66fecc88 --- /dev/null +++ b/src/vit-servicing-station-f10/resources/tests/csvs/funds.csv @@ -0,0 +1,2 @@ +id,fund_name,fund_goal,voting_power_threshold,rewards_info,fund_start_time,fund_end_time,next_fund_start_time +-1,Fund1,Fund the future of Cardano,8000000000,2020-08-18T14:00:00Z,2020-08-10T14:18:12Z,2020-08-16T00:00:00Z,2020-08-19T00:00:00Z diff --git a/src/vit-servicing-station-f10/resources/tests/csvs/proposals.csv b/src/vit-servicing-station-f10/resources/tests/csvs/proposals.csv new file mode 100644 index 0000000000..1c37e6bb47 --- /dev/null +++ b/src/vit-servicing-station-f10/resources/tests/csvs/proposals.csv @@ -0,0 +1,21 @@ +internal_id,proposal_id,category_name,proposal_title,proposal_summary,proposal_problem,proposal_solution,proposal_public_key,proposal_funds,proposal_url,proposal_files_url,proposer_name,proposer_email,proposer_url,chain_proposal_id,chain_proposal_index,chain_vote_options,chain_voteplan_id,proposal_impact_score,proposer_relevant_experience,challenge_id +-1,16444246,Fund0 Development,Test proposal 16444246,To test the proposal process 16444246,We haven't tested proposal integration yet 16444246,Test the proposal integration process 16444246,Ae2tdPwUPEYwrazXRJVK4NgHSZCjP9kLSMrx2awgYiBH61zT8kz6u33Sije,1000246,https://iohk.submittable.com/submissions/16444246,https://iohk.submittable.com/submissions/16444246/file/0,IOHK 16444246,iohk_16444246@iohk.io,https://iohk.io,5db05d3c7bfc37f2059d24966aa6ef05cfa25b6a478dedb3b93f5dca5c57c24a,0,"blank,yes,no",c983969a99106853cd32f972c471a01a73a22ea20a030bb4491aecfc676e9a8c,100,1 +-1,16444247,Fund0 Development,Test proposal 16444247,To test the proposal process 16444247,We haven't tested proposal integration yet 16444247,Test the proposal integration process 16444247,Ae2tdPwUPEYwrazXRJVK4NgHSZCjP9kLSMrx2awgYiBH61zT8kz6u33Sije,1000247,https://iohk.submittable.com/submissions/16444247,https://iohk.submittable.com/submissions/16444247/file/0,IOHK 16444247,iohk_16444247@iohk.io,https://iohk.io,f78a5e1b0cc558529be705d58479602ce8fe7af1b11e8d383e0b112d2d58d3fe,1,"blank,yes,no",c983969a99106853cd32f972c471a01a73a22ea20a030bb4491aecfc676e9a8c,110,1 +-1,16444248,Fund0 Development,Test proposal 16444248,To test the proposal process 16444248,We haven't tested proposal integration yet 16444248,Test the proposal integration process 16444248,Ae2tdPwUPEYwrazXRJVK4NgHSZCjP9kLSMrx2awgYiBH61zT8kz6u33Sije,1000248,https://iohk.submittable.com/submissions/16444248,https://iohk.submittable.com/submissions/16444248/file/0,IOHK 16444248,iohk_16444248@iohk.io,https://iohk.io,72a6cc91c00e87ca769e343f81332ce1e9ea294f8451e5402c1b22fd242f983d,2,"blank,yes,no",c983969a99106853cd32f972c471a01a73a22ea20a030bb4491aecfc676e9a8c,200,1 +-1,16444249,Fund0 Development,Test proposal 16444249,To test the proposal process 16444249,We haven't tested proposal integration yet 16444249,Test the proposal integration process 16444249,Ae2tdPwUPEYwrazXRJVK4NgHSZCjP9kLSMrx2awgYiBH61zT8kz6u33Sije,1000249,https://iohk.submittable.com/submissions/16444249,https://iohk.submittable.com/submissions/16444249/file/0,IOHK 16444249,iohk_16444249@iohk.io,https://iohk.io,62686eba02fd32a9d9c2116eea44aebe21c058f9974bd675eb379c69b565d762,3,"blank,yes,no",c983969a99106853cd32f972c471a01a73a22ea20a030bb4491aecfc676e9a8c,150,1 +-1,16444250,Fund0 Development,Test proposal 16444250,To test the proposal process 16444250,We haven't tested proposal integration yet 16444250,Test the proposal integration process 16444250,Ae2tdPwUPEYwrazXRJVK4NgHSZCjP9kLSMrx2awgYiBH61zT8kz6u33Sije,1000250,https://iohk.submittable.com/submissions/16444250,https://iohk.submittable.com/submissions/16444250/file/0,IOHK 16444250,iohk_16444250@iohk.io,https://iohk.io,8ad198af5e4be530b9cd40811fdf65e00b81860664372df5918a792450db90df,4,"blank,yes,no",c983969a99106853cd32f972c471a01a73a22ea20a030bb4491aecfc676e9a8c,250,1 +-1,16444251,Fund0 Development,Test proposal 16444251,To test the proposal process 16444251,We haven't tested proposal integration yet 16444251,Test the proposal integration process 16444251,Ae2tdPwUPEYwrazXRJVK4NgHSZCjP9kLSMrx2awgYiBH61zT8kz6u33Sije,1000251,https://iohk.submittable.com/submissions/16444251,https://iohk.submittable.com/submissions/16444251/file/0,IOHK 16444251,iohk_16444251@iohk.io,https://iohk.io,96b112275153277f0e20b240b64f5e4269a8875b3bb0f3a119ef1270024e51ae,5,"blank,yes,no",c983969a99106853cd32f972c471a01a73a22ea20a030bb4491aecfc676e9a8c,300,1 +-1,16444252,Fund0 Development,Test proposal 16444252,To test the proposal process 16444252,We haven't tested proposal integration yet 16444252,Test the proposal integration process 16444252,Ae2tdPwUPEYwrazXRJVK4NgHSZCjP9kLSMrx2awgYiBH61zT8kz6u33Sije,1000252,https://iohk.submittable.com/submissions/16444252,https://iohk.submittable.com/submissions/16444252/file/0,IOHK 16444252,iohk_16444252@iohk.io,https://iohk.io,58b60d9c4d803c508aa34efb4c5f20582b2651d917da7d9440a294a3bd762798,6,"blank,yes,no",c983969a99106853cd32f972c471a01a73a22ea20a030bb4491aecfc676e9a8c,350,1 +-1,16444253,Fund0 Development,Test proposal 16444253,To test the proposal process 16444253,We haven't tested proposal integration yet 16444253,Test the proposal integration process 16444253,Ae2tdPwUPEYwrazXRJVK4NgHSZCjP9kLSMrx2awgYiBH61zT8kz6u33Sije,1000253,https://iohk.submittable.com/submissions/16444253,https://iohk.submittable.com/submissions/16444253/file/0,IOHK 16444253,iohk_16444253@iohk.io,https://iohk.io,6c8ea72dadb0d4a7de6b20626f310efae5f6b6001a4a841968108d6e36f7894e,7,"blank,yes,no",c983969a99106853cd32f972c471a01a73a22ea20a030bb4491aecfc676e9a8c,450,1 +-1,16444254,Fund0 Development,Test proposal 16444254,To test the proposal process 16444254,We haven't tested proposal integration yet 16444254,Test the proposal integration process 16444254,Ae2tdPwUPEYwrazXRJVK4NgHSZCjP9kLSMrx2awgYiBH61zT8kz6u33Sije,1000254,https://iohk.submittable.com/submissions/16444254,https://iohk.submittable.com/submissions/16444254/file/0,IOHK 16444254,iohk_16444254@iohk.io,https://iohk.io,a5282b087184d8125dbb0fadbdff24fcc61aec71f725f8fc887d02cf292091ec,8,"blank,yes,no",c983969a99106853cd32f972c471a01a73a22ea20a030bb4491aecfc676e9a8c,500,1 +-1,16444255,Fund0 Development,Test proposal 16444255,To test the proposal process 16444255,We haven't tested proposal integration yet 16444255,Test the proposal integration process 16444255,Ae2tdPwUPEYwrazXRJVK4NgHSZCjP9kLSMrx2awgYiBH61zT8kz6u33Sije,1000255,https://iohk.submittable.com/submissions/16444255,https://iohk.submittable.com/submissions/16444255/file/0,IOHK 16444255,iohk_16444255@iohk.io,https://iohk.io,9a9f5535c61f49f339a1fb8f0d82962692d7f97905c3b06415d63e1477da5677,9,"blank,yes,no",c983969a99106853cd32f972c471a01a73a22ea20a030bb4491aecfc676e9a8c,400,2 +-1,16444256,Fund0 Development,Test proposal 16444256,To test the proposal process 16444256,We haven't tested proposal integration yet 16444256,Test the proposal integration process 16444256,Ae2tdPwUPEYwrazXRJVK4NgHSZCjP9kLSMrx2awgYiBH61zT8kz6u33Sije,1000256,https://iohk.submittable.com/submissions/16444256,https://iohk.submittable.com/submissions/16444256/file/0,IOHK 16444256,iohk_16444256@iohk.io,https://iohk.io,df2596ad616577c9047d23f106371258c98c329a662432c1e57d80092ae74e44,0,"blank,yes,no",ebcb5af4bc2823fa2a66f4a364c41d44e6cf118f8f3d32fa0920ed32df4632ae,430,2 +-1,16444257,Fund0 Development,Test proposal 16444257,To test the proposal process 16444257,We haven't tested proposal integration yet 16444257,Test the proposal integration process 16444257,Ae2tdPwUPEYwrazXRJVK4NgHSZCjP9kLSMrx2awgYiBH61zT8kz6u33Sije,1000257,https://iohk.submittable.com/submissions/16444257,https://iohk.submittable.com/submissions/16444257/file/0,IOHK 16444257,iohk_16444257@iohk.io,https://iohk.io,d9d3544bad57f2597f55fce907adfe4ad5afe1aedc3d5480a3745a200b153708,1,"blank,yes,no",ebcb5af4bc2823fa2a66f4a364c41d44e6cf118f8f3d32fa0920ed32df4632ae,420,2 +-1,16444258,Fund0 Development,Test proposal 16444258,To test the proposal process 16444258,We haven't tested proposal integration yet 16444258,Test the proposal integration process 16444258,Ae2tdPwUPEYwrazXRJVK4NgHSZCjP9kLSMrx2awgYiBH61zT8kz6u33Sije,1000258,https://iohk.submittable.com/submissions/16444258,https://iohk.submittable.com/submissions/16444258/file/0,IOHK 16444258,iohk_16444258@iohk.io,https://iohk.io,21381dd53499d6bd18362fcc442fb619cb10a4e52f64f42cea3b71c36aaad52e,2,"blank,yes,no",ebcb5af4bc2823fa2a66f4a364c41d44e6cf118f8f3d32fa0920ed32df4632ae,50,2 +-1,16444259,Fund0 Development,Test proposal 16444259,To test the proposal process 16444259,We haven't tested proposal integration yet 16444259,Test the proposal integration process 16444259,Ae2tdPwUPEYwrazXRJVK4NgHSZCjP9kLSMrx2awgYiBH61zT8kz6u33Sije,1000259,https://iohk.submittable.com/submissions/16444259,https://iohk.submittable.com/submissions/16444259/file/0,IOHK 16444259,iohk_16444259@iohk.io,https://iohk.io,fafb0aa86365f86b9dbb68299b0ae4fe4b3701b323b91789ea003d0a906de094,3,"blank,yes,no",ebcb5af4bc2823fa2a66f4a364c41d44e6cf118f8f3d32fa0920ed32df4632ae,90,2 +-1,16444260,Fund0 Development,Test proposal 16444260,To test the proposal process 16444260,We haven't tested proposal integration yet 16444260,Test the proposal integration process 16444260,Ae2tdPwUPEYwrazXRJVK4NgHSZCjP9kLSMrx2awgYiBH61zT8kz6u33Sije,1000260,https://iohk.submittable.com/submissions/16444260,https://iohk.submittable.com/submissions/16444260/file/0,IOHK 16444260,iohk_16444260@iohk.io,https://iohk.io,a0d9b97b69e1260c7ceea48634393aa8d86d60b4e4853806d296c49bcb294b61,4,"blank,yes,no",ebcb5af4bc2823fa2a66f4a364c41d44e6cf118f8f3d32fa0920ed32df4632ae,55,2 +-1,16444261,Fund0 Development,Test proposal 16444261,To test the proposal process 16444261,We haven't tested proposal integration yet 16444261,Test the proposal integration process 16444261,Ae2tdPwUPEYwrazXRJVK4NgHSZCjP9kLSMrx2awgYiBH61zT8kz6u33Sije,1000261,https://iohk.submittable.com/submissions/16444261,https://iohk.submittable.com/submissions/16444261/file/0,IOHK 16444261,iohk_16444261@iohk.io,https://iohk.io,f918dc9d9218990307140e266e94c4e84c13a07699869f4941f578d21b5b607a,5,"blank,yes,no",ebcb5af4bc2823fa2a66f4a364c41d44e6cf118f8f3d32fa0920ed32df4632ae,355,2 +-1,16444262,Fund0 Development,Test proposal 16444262,To test the proposal process 16444262,We haven't tested proposal integration yet 16444262,Test the proposal integration process 16444262,Ae2tdPwUPEYwrazXRJVK4NgHSZCjP9kLSMrx2awgYiBH61zT8kz6u33Sije,1000262,https://iohk.submittable.com/submissions/16444262,https://iohk.submittable.com/submissions/16444262/file/0,IOHK 16444262,iohk_16444262@iohk.io,https://iohk.io,ff1215018c8dcd91dcc544ff7239bd40697431fcc203ef0162d4c6a04eebe814,6,"blank,yes,no",ebcb5af4bc2823fa2a66f4a364c41d44e6cf118f8f3d32fa0920ed32df4632ae,245,3 +-1,16444263,Fund0 Development,Test proposal 16444263,To test the proposal process 16444263,We haven't tested proposal integration yet 16444263,Test the proposal integration process 16444263,Ae2tdPwUPEYwrazXRJVK4NgHSZCjP9kLSMrx2awgYiBH61zT8kz6u33Sije,1000263,https://iohk.submittable.com/submissions/16444263,https://iohk.submittable.com/submissions/16444263/file/0,IOHK 16444263,iohk_16444263@iohk.io,https://iohk.io,a5e04844875843fbd4d7914718048716174829acf5618370b6f0b6af983392a9,7,"blank,yes,no",ebcb5af4bc2823fa2a66f4a364c41d44e6cf118f8f3d32fa0920ed32df4632ae,154,3 +-1,16444264,Fund0 Development,Test proposal 16444264,To test the proposal process 16444264,We haven't tested proposal integration yet 16444264,Test the proposal integration process 16444264,Ae2tdPwUPEYwrazXRJVK4NgHSZCjP9kLSMrx2awgYiBH61zT8kz6u33Sije,1000264,https://iohk.submittable.com/submissions/16444264,https://iohk.submittable.com/submissions/16444264/file/0,IOHK 16444264,iohk_16444264@iohk.io,https://iohk.io,417d930f57ac00c9aaafd2100a3425ff3aa26c1f36540ba270ea0d007f9715b2,8,"blank,yes,no",ebcb5af4bc2823fa2a66f4a364c41d44e6cf118f8f3d32fa0920ed32df4632ae,234,3 +-1,16444265,Fund0 Development,Test proposal 16444265,To test the proposal process 16444265,We haven't tested proposal integration yet 16444265,Test the proposal integration process 16444265,Ae2tdPwUPEYwrazXRJVK4NgHSZCjP9kLSMrx2awgYiBH61zT8kz6u33Sije,1000265,https://iohk.submittable.com/submissions/16444265,https://iohk.submittable.com/submissions/16444265/file/0,IOHK 16444265,iohk_16444265@iohk.io,https://iohk.io,31a4ecb01eeae808323a11621173f684f64cd35b76b5fe876abfaf694095fee9,9,"blank,yes,no",ebcb5af4bc2823fa2a66f4a364c41d44e6cf118f8f3d32fa0920ed32df4632ae,123,3 diff --git a/src/vit-servicing-station-f10/resources/tests/csvs/voteplans.csv b/src/vit-servicing-station-f10/resources/tests/csvs/voteplans.csv new file mode 100644 index 0000000000..d1b9fa982e --- /dev/null +++ b/src/vit-servicing-station-f10/resources/tests/csvs/voteplans.csv @@ -0,0 +1,3 @@ +id,chain_voteplan_id,chain_vote_start_time,chain_vote_end_time,chain_committee_end_time,chain_voteplan_payload,chain_vote_encryption_key,fund_id +-1,c983969a99106853cd32f972c471a01a73a22ea20a030bb4491aecfc676e9a8c,2020-08-10T14:18:12Z,2020-08-16T00:00:00Z,2020-08-19T00:00:00Z,public,,-1 +-1,ebcb5af4bc2823fa2a66f4a364c41d44e6cf118f8f3d32fa0920ed32df4632ae,2020-08-10T14:18:12Z,2020-08-16T00:00:00Z,2020-08-19T00:00:00Z,public,,-1 diff --git a/src/vit-servicing-station-f10/shell.nix b/src/vit-servicing-station-f10/shell.nix new file mode 100644 index 0000000000..e6d917316e --- /dev/null +++ b/src/vit-servicing-station-f10/shell.nix @@ -0,0 +1,14 @@ +( + import + ( + let + lock = builtins.fromJSON (builtins.readFile ./flake.lock); + in + fetchTarball { + url = "https://github.com/edolstra/flake-compat/archive/${lock.nodes.flake-compat.locked.rev}.tar.gz"; + sha256 = lock.nodes.flake-compat.locked.narHash; + } + ) + {src = ./.;} +) +.shellNix diff --git a/src/vit-servicing-station-f10/vit-servicing-station-cli-f10/Cargo.toml b/src/vit-servicing-station-f10/vit-servicing-station-cli-f10/Cargo.toml new file mode 100644 index 0000000000..4abf74fdd8 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-cli-f10/Cargo.toml @@ -0,0 +1,26 @@ +[package] +name = "vit-servicing-station-cli-f10" +version = "0.5.0" +authors = ["danielsanchezq "] +edition = "2018" +license = "MIT OR Apache-2.0" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +base64 = "0.12.1" +time = "0.3" +csv = "1.1" +diesel = "1.4" +rand = "0.7.3" +r2d2 = "0.8" +structopt = "0.3.14" +serde = { version = "1.0", features = ["derive"] } +serde_json = "1" +tempfile = "3.1.0" +thiserror = "1.0" +vit-servicing-station-lib-f10 = { path = "../vit-servicing-station-lib-f10" } + +[dev-dependencies] +diesel = { version = "1.4.5", features = ["sqlite", "r2d2"] } +diesel_migrations = "1.4.0" diff --git a/src/vit-servicing-station-f10/vit-servicing-station-cli-f10/src/api_token.rs b/src/vit-servicing-station-f10/vit-servicing-station-cli-f10/src/api_token.rs new file mode 100644 index 0000000000..75515fc3b6 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-cli-f10/src/api_token.rs @@ -0,0 +1,203 @@ +use crate::db_utils::{backup_db_file, restore_db_file}; +use crate::{db_utils::db_file_exists, task::ExecTask}; +use rand::Rng; +use std::collections::HashSet; +use std::io; +use structopt::StructOpt; +use thiserror::Error; +use time::{Duration, OffsetDateTime}; +use vit_servicing_station_lib_f10::{ + db::{ + load_db_connection_pool, models::api_tokens::ApiTokenData, + queries::api_tokens::insert_token_data, DbConnection, Error as DbPoolError, + }, + v0::api_token::ApiToken, +}; + +#[derive(Error, Debug)] +pub enum Error { + #[error("base64 encoded token `{token}` is not valid")] + Base64Decode { + #[source] + source: base64::DecodeError, + token: String, + }, + + #[error("Error with database")] + Db(#[from] diesel::result::Error), + + #[error("Error connecting db pool")] + DbPool(#[from] DbPoolError), + + #[error("Error connecting to db")] + DbConnection(#[from] r2d2::Error), + + #[error(transparent)] + Io(#[from] std::io::Error), +} + +#[derive(Debug, PartialEq, StructOpt)] +pub enum ApiTokenCmd { + /// Add provided tokens to database. If --tokens is not provided the binary will read them from the `stdin` + Add { + /// List of tokens in URL safe base64. If --tokens is not provided the binary will read them from the `stdin` + #[structopt(long = "tokens")] + tokens: Option>, + + /// URL of the vit-servicing-station database to interact with + #[structopt(long = "db-url")] + db_url: String, + }, + + /// Generate API tokens, URL safe base64 encoded. + Generate { + /// Number of tokens to generate + #[structopt(long = "n", default_value = "1")] + n: usize, + + /// Size of the token + #[structopt(long = "size", default_value = "10")] + size: usize, + }, +} + +impl ApiTokenCmd { + fn generate(n: usize, size: usize) -> Vec { + (0..n) + .map(|_| { + let random_bytes: Vec = + (0..size).map(|_| rand::thread_rng().gen::()).collect(); + base64::encode_config(random_bytes, base64::URL_SAFE_NO_PAD) + }) + .collect() + } + + fn add_tokens_from_stream(db_conn: &DbConnection) -> Result<(), Error> { + let mut base64_tokens: Vec = Vec::new(); + let mut input = String::new(); + while let Ok(n) = io::stdin().read_line(&mut input) { + if n == 0 { + break; + } + // pop the trailing `\n` + input.pop(); + base64_tokens.push(input.clone()); + } + ApiTokenCmd::add_tokens(&base64_tokens, db_conn) + } + + fn add_tokens(base64_tokens: &[String], db_conn: &DbConnection) -> Result<(), Error> { + // filter duplicated tokens + let base64_tokens: HashSet = base64_tokens.iter().cloned().collect(); + for base64_token in base64_tokens { + let token = + base64::decode_config(&base64_token, base64::URL_SAFE_NO_PAD).map_err(|e| { + Error::Base64Decode { + source: e, + token: base64_token, + } + })?; + let api_token_data = ApiTokenData { + token: ApiToken::new(token), + creation_time: OffsetDateTime::now_utc().unix_timestamp(), + expire_time: (OffsetDateTime::now_utc() + Duration::days(365)).unix_timestamp(), + }; + insert_token_data(api_token_data, db_conn).map_err(Error::Db)?; + } + Ok(()) + } + + fn handle_api_token_add(tokens: &Option>, db_url: &str) -> Result<(), Error> { + // check if db file exists + db_file_exists(db_url)?; + + let pool = load_db_connection_pool(db_url).map_err(Error::DbPool)?; + let db_conn = pool.get()?; + + match tokens { + // if not tokens are provided then listen to stdin for input ones + None => ApiTokenCmd::add_tokens_from_stream(&db_conn), + // process the provided tokens + Some(tokens) => ApiTokenCmd::add_tokens(tokens, &db_conn), + } + } + + fn handle_api_token_add_whith_db_backup( + tokens: &Option>, + db_url: &str, + ) -> Result<(), Error> { + let backup_file = backup_db_file(db_url)?; + if let Err(e) = Self::handle_api_token_add(tokens, db_url) { + restore_db_file(backup_file, db_url)?; + Err(e) + } else { + Ok(()) + } + } + + fn handle_generate(n: usize, size: usize) { + let tokens = ApiTokenCmd::generate(n, size); + for token in tokens { + println!("{}", token); + } + } +} + +impl ExecTask for ApiTokenCmd { + type ResultValue = (); + type Error = Error; + + fn exec(&self) -> Result<(), Error> { + match self { + ApiTokenCmd::Add { tokens, db_url } => { + ApiTokenCmd::handle_api_token_add_whith_db_backup(tokens, db_url) + } + ApiTokenCmd::Generate { n, size } => { + ApiTokenCmd::handle_generate(*n, *size); + Ok(()) + } + } + } +} + +#[cfg(test)] +mod test { + use super::*; + use vit_servicing_station_lib_f10::db::{ + load_db_connection_pool, migrations::initialize_db_with_migration, + queries::api_tokens::query_token_data_by_token, + }; + + #[test] + fn generate_token() { + let size = 10; + let n = 10; + let tokens = ApiTokenCmd::generate(n, size); + assert_eq!(tokens.len(), n); + tokens.iter().for_each(|token| { + assert_eq!( + base64::decode_config(token, base64::URL_SAFE_NO_PAD) + .unwrap() + .len(), + size + ) + }) + } + + #[test] + fn add_token() { + let tokens = ApiTokenCmd::generate(10, 10); + let connection_pool = load_db_connection_pool("").unwrap(); + initialize_db_with_migration(&connection_pool.get().unwrap()); + let db_conn = connection_pool.get().unwrap(); + ApiTokenCmd::add_tokens(&tokens, &db_conn).unwrap(); + for token in tokens + .iter() + .map(|t| base64::decode_config(t, base64::URL_SAFE_NO_PAD).unwrap()) + { + assert!(query_token_data_by_token(token.as_ref(), &db_conn) + .unwrap() + .is_some()); + } + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-cli-f10/src/app.rs b/src/vit-servicing-station-f10/vit-servicing-station-cli-f10/src/app.rs new file mode 100644 index 0000000000..48e8a0a84c --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-cli-f10/src/app.rs @@ -0,0 +1,39 @@ +use crate::api_token::{ApiTokenCmd, Error as ApiTokenError}; +use crate::csv::loaders::{CsvDataCmd, Error as CsvDataError}; +use crate::init_db::{Db, Error as DbError}; +use crate::task::ExecTask; +use structopt::StructOpt; +use thiserror::Error; + +#[derive(Error, Debug)] +pub enum Error { + #[error(transparent)] + ApiTokenCmd(#[from] ApiTokenError), + #[error(transparent)] + CsvData(#[from] CsvDataError), + #[error(transparent)] + Db(#[from] DbError), +} + +#[derive(StructOpt)] +pub enum CliApp { + /// API token related operations + ApiToken(ApiTokenCmd), + /// CSV data loaders + CsvData(CsvDataCmd), + /// DB related operations + Db(Db), +} + +impl ExecTask for CliApp { + type ResultValue = (); + type Error = Error; + fn exec(&self) -> Result { + match self { + CliApp::ApiToken(api_token) => api_token.exec()?, + CliApp::CsvData(csv_data) => csv_data.exec()?, + CliApp::Db(db_cmd) => db_cmd.exec()?, + }; + Ok(()) + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-cli-f10/src/csv/loaders.rs b/src/vit-servicing-station-f10/vit-servicing-station-cli-f10/src/csv/loaders.rs new file mode 100644 index 0000000000..8c848503c0 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-cli-f10/src/csv/loaders.rs @@ -0,0 +1,277 @@ +use crate::db_utils::{backup_db_file, restore_db_file}; +use crate::{db_utils::db_file_exists, task::ExecTask}; +use csv::Trim; +use serde::de::DeserializeOwned; +use std::convert::TryInto; +use std::io; +use std::path::{Path, PathBuf}; +use structopt::StructOpt; +use thiserror::Error; +use vit_servicing_station_lib_f10::db::models::goals::InsertGoal; +use vit_servicing_station_lib_f10::db::models::proposals::{ + community_choice, simple, ProposalChallengeInfo, +}; +use vit_servicing_station_lib_f10::db::{ + load_db_connection_pool, + models::{funds::Fund, proposals::Proposal, voteplans::Voteplan}, +}; + +#[derive(Error, Debug)] +pub enum Error { + #[error(transparent)] + IoError(#[from] std::io::Error), + + #[error("Invalid Fund Data: {0}")] + InvalidFundData(String), +} + +#[derive(Debug, PartialEq, StructOpt)] +pub enum CsvDataCmd { + /// Load Funds, Voteplans and Proposals information into a SQLite3 ready file DB. + Load { + /// URL of the vit-servicing-station database to interact with + #[structopt(long = "db-url")] + db_url: String, + + /// Path to the csv containing funds information + /// At the moment, it's required these are ordered. + /// + /// Also the first fund being the current one, which means previous funds should not be + /// included. This restriction may be lifted in the future. + #[structopt(long = "funds")] + funds: PathBuf, + + /// Path to the csv containing voteplans information + #[structopt(long = "voteplans")] + voteplans: PathBuf, + + /// Path to the csv containing proposals information + #[structopt(long = "proposals")] + proposals: PathBuf, + + /// Path to the csv containing challenges information + #[structopt(long = "challenges")] + challenges: PathBuf, + + /// Path to the csv containing advisor reviews information + #[structopt(long = "reviews")] + reviews: PathBuf, + + /// Path to the csv containing goals information + #[structopt(long = "goals")] + goals: PathBuf, + }, +} + +impl CsvDataCmd { + fn load_from_csv(csv_path: &Path) -> io::Result> { + let mut reader = csv::ReaderBuilder::new() + .flexible(true) + .has_headers(true) + .quoting(true) + .quote(b'"') + .trim(Trim::All) + .from_path(csv_path)?; + let mut results = Vec::new(); + for record in reader.deserialize() { + match record { + Ok(data) => { + results.push(data); + } + Err(e) => { + return Err(io::Error::new( + io::ErrorKind::InvalidInput, + format!( + "Error in file {}.\nCause:\n\t{}", + csv_path.to_string_lossy(), + e + ), + )) + } + } + } + Ok(results) + } + + fn handle_load( + db_url: &str, + funds_path: &Path, + voteplans_path: &Path, + proposals_path: &Path, + challenges_path: &Path, + reviews_path: &Path, + goals_path: &Path, + ) -> Result<(), Error> { + db_file_exists(db_url)?; + let funds = CsvDataCmd::load_from_csv::(funds_path)?; + + let mut voteplans = CsvDataCmd::load_from_csv::(voteplans_path)?; + let mut challenges = + CsvDataCmd::load_from_csv::(challenges_path)?; + let csv_proposals = CsvDataCmd::load_from_csv::(proposals_path)?; + let reviews = CsvDataCmd::load_from_csv::(reviews_path)? + .into_iter() + .map(TryInto::try_into) + .collect::, _>>()?; + let mut goals: Vec = CsvDataCmd::load_from_csv::(goals_path)?; + + let mut proposals: Vec = Vec::new(); + let mut simple_proposals_data: Vec = Vec::new(); + let mut community_proposals_data: Vec = Vec::new(); + + for proposal in csv_proposals { + let challenge_type = challenges + .iter() + .find(|c| proposal.challenge_id == c.id) + .ok_or_else(|| { + std::io::Error::new( + std::io::ErrorKind::InvalidData, + format!("Challenge with id {} not found", proposal.challenge_id), + ) + })? + .challenge_type + .clone(); + let (proposal, challenge_info) = + proposal.into_db_proposal_and_challenge_info(challenge_type)?; + match challenge_info { + ProposalChallengeInfo::Simple(simple) => simple_proposals_data + .push(simple.to_sql_values_with_proposal_id(&proposal.proposal_id)), + ProposalChallengeInfo::CommunityChoice(community_choice) => { + community_proposals_data.push( + community_choice.to_sql_values_with_proposal_id(&proposal.proposal_id), + ) + } + }; + } + + // start db connection + let pool = load_db_connection_pool(db_url) + .map_err(|e| io::Error::new(io::ErrorKind::InvalidInput, format!("{}", e)))?; + let db_conn = pool + .get() + .map_err(|e| io::Error::new(io::ErrorKind::NotConnected, format!("{}", e)))?; + + let mut funds_iter = funds.into_iter(); + + // insert fund and retrieve fund with id + let fund = vit_servicing_station_lib_f10::db::queries::funds::insert_fund( + funds_iter + .next() + .ok_or_else(|| Error::InvalidFundData(funds_path.to_string_lossy().to_string()))?, + &db_conn, + ) + .map_err(|e| io::Error::new(io::ErrorKind::Other, format!("{}", e)))?; + + for fund in funds_iter { + vit_servicing_station_lib_f10::db::queries::funds::insert_fund(fund, &db_conn) + .map_err(|e| io::Error::new(io::ErrorKind::Other, format!("{}", e)))?; + } + + // apply fund id in voteplans + for voteplan in voteplans.iter_mut() { + voteplan.fund_id = fund.id; + } + + // apply fund id in proposals + for proposal in proposals.iter_mut() { + proposal.fund_id = fund.id; + } + + // apply fund id to challenges + for challenge in challenges.iter_mut() { + challenge.fund_id = fund.id; + } + + for goal in goals.iter_mut() { + goal.fund_id = fund.id; + } + + vit_servicing_station_lib_f10::db::queries::voteplans::batch_insert_voteplans( + &voteplans, &db_conn, + ) + .map_err(|e| io::Error::new(io::ErrorKind::Other, format!("{}", e)))?; + + vit_servicing_station_lib_f10::db::queries::proposals::batch_insert_proposals( + &proposals, &db_conn, + ) + .map_err(|e| io::Error::new(io::ErrorKind::Other, format!("{}", e)))?; + + vit_servicing_station_lib_f10::db::queries::proposals::batch_insert_simple_challenge_data( + &simple_proposals_data, + &db_conn, + ) + .map_err(|e| io::Error::new(io::ErrorKind::Other, format!("{}", e)))?; + + vit_servicing_station_lib_f10::db::queries::proposals::batch_insert_community_choice_challenge_data( + &community_proposals_data, + &db_conn, + ) + .map_err(|e| io::Error::new(io::ErrorKind::Other, format!("{}", e)))?; + + vit_servicing_station_lib_f10::db::queries::challenges::batch_insert_challenges( + &challenges + .into_iter() + .map(|c| c.into_db_challenge_values()) + .collect::>(), + &db_conn, + ) + .map_err(|e| io::Error::new(io::ErrorKind::Other, format!("{}", e)))?; + + vit_servicing_station_lib_f10::db::queries::community_advisors_reviews::batch_insert_advisor_reviews(&reviews, &db_conn) + .map_err(|e| io::Error::new(io::ErrorKind::Other, format!("{}", e)))?; + + vit_servicing_station_lib_f10::db::queries::goals::batch_insert(goals, &db_conn) + .map_err(|e| io::Error::new(io::ErrorKind::Other, format!("{}", e)))?; + + Ok(()) + } + + fn handle_load_with_db_backup( + db_url: &str, + funds_path: &Path, + voteplans_path: &Path, + proposals_path: &Path, + challenges_path: &Path, + reviews: &Path, + goals: &Path, + ) -> Result<(), Error> { + let backup_file = backup_db_file(db_url)?; + if let Err(e) = Self::handle_load( + db_url, + funds_path, + voteplans_path, + proposals_path, + challenges_path, + reviews, + goals, + ) { + restore_db_file(backup_file, db_url)?; + Err(e) + } else { + Ok(()) + } + } +} + +impl ExecTask for CsvDataCmd { + type ResultValue = (); + type Error = Error; + fn exec(&self) -> Result<(), Error> { + match self { + CsvDataCmd::Load { + db_url, + funds, + voteplans, + proposals, + challenges, + reviews, + goals, + } => Self::handle_load_with_db_backup( + db_url, funds, voteplans, proposals, challenges, reviews, goals, + ), + } + } +} + +#[cfg(test)] +mod test {} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-cli-f10/src/csv/mod.rs b/src/vit-servicing-station-f10/vit-servicing-station-cli-f10/src/csv/mod.rs new file mode 100644 index 0000000000..34a5d4fda4 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-cli-f10/src/csv/mod.rs @@ -0,0 +1,2 @@ +pub mod loaders; +mod models; diff --git a/src/vit-servicing-station-f10/vit-servicing-station-cli-f10/src/csv/models.rs b/src/vit-servicing-station-f10/vit-servicing-station-cli-f10/src/csv/models.rs new file mode 100644 index 0000000000..7e100bbf33 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-cli-f10/src/csv/models.rs @@ -0,0 +1,297 @@ +use diesel::{ExpressionMethods, Insertable}; +use serde::Deserialize; +use std::convert::TryInto; +use vit_servicing_station_lib_f10::db::models::challenges::{ + Challenge as DbChallenge, ChallengeHighlights, +}; +use vit_servicing_station_lib_f10::db::models::community_advisors_reviews::{self, ReviewRanking}; +use vit_servicing_station_lib_f10::db::models::proposals::{ + self, community_choice, simple, Category, ChallengeType, ProposalChallengeInfo, Proposer, +}; +use vit_servicing_station_lib_f10::db::models::vote_options::VoteOptions; +use vit_servicing_station_lib_f10::db::schema::challenges; + +#[derive(Deserialize, Clone, Debug, PartialEq, Eq)] +pub struct Challenge { + pub id: i32, + #[serde(alias = "challengeType")] + pub challenge_type: ChallengeType, + pub title: String, + pub description: String, + #[serde(alias = "rewardsTotal")] + pub rewards_total: i64, + #[serde(alias = "proposersRewards")] + pub proposers_rewards: i64, + #[serde(alias = "fundId")] + pub fund_id: i32, + #[serde(alias = "challengeUrl")] + pub challenge_url: String, + pub highlights: Option, +} + +#[derive(Deserialize, PartialEq, Eq, Debug, Clone)] +pub struct Proposal { + #[serde(alias = "internalId")] + pub internal_id: i32, + #[serde(alias = "proposalId")] + pub proposal_id: String, + #[serde(alias = "categoryId", default = "Default::default")] + pub category_id: String, + #[serde(alias = "categoryName")] + pub category_name: String, + #[serde(alias = "categoryDescription", default = "Default::default")] + pub category_description: String, + #[serde(alias = "proposalTitle")] + pub proposal_title: String, + #[serde(alias = "proposalSummary")] + pub proposal_summary: String, + #[serde(alias = "proposalPublicKey")] + pub proposal_public_key: String, + #[serde(alias = "proposalFunds")] + pub proposal_funds: i64, + #[serde(alias = "proposalUrl")] + pub proposal_url: String, + #[serde(alias = "proposalFilesUrl")] + pub proposal_files_url: String, + #[serde(alias = "proposalImpactScore")] + pub proposal_impact_score: i64, + #[serde(alias = "proposerName")] + pub proposer_name: String, + #[serde(alias = "proposerEmail")] + pub proposer_email: String, + #[serde(alias = "proposerUrl")] + pub proposer_url: String, + #[serde(alias = "proposerRelevantExperience")] + pub proposer_relevant_experience: String, + #[serde(alias = "chainProposalId")] + #[serde(serialize_with = "vit_servicing_station_lib_f10::utils::serde::serialize_bin_as_str")] + #[serde( + deserialize_with = "vit_servicing_station_lib_f10::utils::serde::deserialize_string_as_bytes" + )] + pub chain_proposal_id: Vec, + #[serde(alias = "chainProposalIndex")] + pub chain_proposal_index: i64, + #[serde(alias = "chainVoteOptions")] + pub chain_vote_options: String, + #[serde(alias = "chainVoteplanId")] + pub chain_voteplan_id: String, + #[serde(alias = "chainVoteStartTime", default = "Default::default")] + #[serde( + serialize_with = "vit_servicing_station_lib_f10::utils::serde::serialize_unix_timestamp_as_rfc3339" + )] + #[serde( + deserialize_with = "vit_servicing_station_lib_f10::utils::serde::deserialize_unix_timestamp_from_rfc3339" + )] + pub chain_vote_start_time: i64, + #[serde(alias = "chainVoteEndTime", default = "Default::default")] + #[serde( + serialize_with = "vit_servicing_station_lib_f10::utils::serde::serialize_unix_timestamp_as_rfc3339" + )] + #[serde( + deserialize_with = "vit_servicing_station_lib_f10::utils::serde::deserialize_unix_timestamp_from_rfc3339" + )] + pub chain_vote_end_time: i64, + #[serde(alias = "chainCommitteeEndTime", default = "Default::default")] + #[serde( + serialize_with = "vit_servicing_station_lib_f10::utils::serde::serialize_unix_timestamp_as_rfc3339" + )] + #[serde( + deserialize_with = "vit_servicing_station_lib_f10::utils::serde::deserialize_unix_timestamp_from_rfc3339" + )] + pub chain_committee_end_time: i64, + #[serde(alias = "chainVoteplanPayload", default = "Default::default")] + pub chain_voteplan_payload: String, + #[serde(alias = "chainVoteEncryptionKey", default = "Default::default")] + pub chain_vote_encryption_key: String, + #[serde(alias = "fundId", default = "default_fund_id")] + pub fund_id: i32, + #[serde(alias = "challengeId", default = "default_challenge_id")] + pub challenge_id: i32, + #[serde(alias = "proposalSolution", default)] + proposal_solution: Option, + #[serde(alias = "proposalBrief", default)] + proposal_brief: Option, + #[serde(alias = "proposalImportance", default)] + proposal_importance: Option, + #[serde(alias = "proposalGoal", default)] + proposal_goal: Option, + #[serde(alias = "proposalMetrics", default)] + proposal_metrics: Option, +} + +fn default_fund_id() -> i32 { + -1 +} + +fn default_challenge_id() -> i32 { + -1 +} + +impl Challenge { + pub fn into_db_challenge_values( + self, + ) -> >::Values { + ( + challenges::id.eq(self.id), + challenges::challenge_type.eq(self.challenge_type.to_string()), + challenges::title.eq(self.title), + challenges::description.eq(self.description), + challenges::rewards_total.eq(self.rewards_total), + challenges::proposers_rewards.eq(self.proposers_rewards), + challenges::fund_id.eq(self.fund_id), + challenges::challenge_url.eq(self.challenge_url), + // This should always be a valid json + challenges::highlights.eq(serde_json::to_string(&self.highlights).ok()), + ) + } +} + +impl Proposal { + pub fn into_db_proposal_and_challenge_info( + self, + challenge_type: ChallengeType, + ) -> Result<(proposals::Proposal, proposals::ProposalChallengeInfo), std::io::Error> { + let proposal = proposals::Proposal { + internal_id: self.internal_id, + proposal_id: self.proposal_id, + proposal_category: Category { + category_id: self.category_id, + category_name: self.category_name, + category_description: self.category_description, + }, + proposal_title: self.proposal_title, + proposal_summary: self.proposal_summary, + proposal_public_key: self.proposal_public_key, + proposal_funds: self.proposal_funds, + proposal_url: self.proposal_url, + proposal_files_url: self.proposal_files_url, + proposal_impact_score: self.proposal_impact_score, + reviews_count: 0, + proposer: Proposer { + proposer_name: self.proposer_name, + proposer_email: self.proposer_email, + proposer_url: self.proposer_url, + proposer_relevant_experience: self.proposer_relevant_experience, + }, + chain_proposal_id: self.chain_proposal_id, + chain_proposal_index: self.chain_proposal_index, + chain_vote_options: VoteOptions::parse_coma_separated_value(&self.chain_vote_options), + chain_voteplan_id: self.chain_voteplan_id, + chain_vote_start_time: self.chain_vote_start_time, + chain_vote_end_time: self.chain_vote_end_time, + chain_committee_end_time: self.chain_committee_end_time, + chain_voteplan_payload: self.chain_voteplan_payload, + chain_vote_encryption_key: self.chain_vote_encryption_key, + fund_id: self.fund_id, + challenge_id: self.challenge_id, + }; + + let challenge_info = match challenge_type { + ChallengeType::Simple | ChallengeType::Native => match self.proposal_solution { + Some(proposal_solution) => { + ProposalChallengeInfo::Simple(simple::ChallengeInfo { proposal_solution }) + } + None => { + return Err(std::io::Error::new( + std::io::ErrorKind::InvalidData, + "cannot match simple proposal's challenge information fields:\ + expected a value in `proposal_solution` column, found none", + )); + } + }, + ChallengeType::CommunityChoice => { + match ( + self.proposal_brief, + self.proposal_importance, + self.proposal_goal, + self.proposal_metrics, + ) { + ( + Some(proposal_brief), + Some(proposal_importance), + Some(proposal_goal), + Some(proposal_metrics), + ) => ProposalChallengeInfo::CommunityChoice(community_choice::ChallengeInfo { + proposal_brief, + proposal_importance, + proposal_goal, + proposal_metrics, + }), + values => { + return Err(std::io::Error::new( + std::io::ErrorKind::InvalidData, + format!( + "cannot match community choice proposal's challenge information fields:\ + expected values in columns `proposal_brief`, `proposal_importance`, `proposal_goal`, `proposal_metrics`, found: {:?}", + values + ), + )); + } + } + } + }; + Ok((proposal, challenge_info)) + } +} + +#[derive(Deserialize)] +pub struct AdvisorReview { + id: i32, + proposal_id: i32, + assessor: String, + impact_alignment_rating_given: i32, + impact_alignment_note: String, + feasibility_rating_given: i32, + feasibility_note: String, + auditability_rating_given: i32, + auditability_note: String, + #[serde( + alias = "Excellent", + deserialize_with = "vit_servicing_station_lib_f10::utils::serde::deserialize_truthy_falsy" + )] + excellent: bool, + #[serde( + alias = "Good", + deserialize_with = "vit_servicing_station_lib_f10::utils::serde::deserialize_truthy_falsy" + )] + good: bool, + #[serde( + default, + alias = "Filtered Out", + deserialize_with = "vit_servicing_station_lib_f10::utils::serde::deserialize_truthy_falsy" + )] + filtered_out: bool, +} + +impl TryInto for AdvisorReview { + type Error = std::io::Error; + + fn try_into(self) -> Result { + Ok(community_advisors_reviews::AdvisorReview { + id: self.id, + proposal_id: self.proposal_id, + assessor: self.assessor, + feasibility_note: self.feasibility_note, + feasibility_rating_given: self.feasibility_rating_given, + impact_alignment_note: self.impact_alignment_note, + impact_alignment_rating_given: self.impact_alignment_rating_given, + auditability_note: self.auditability_note, + auditability_rating_given: self.auditability_rating_given, + ranking: match (self.excellent, self.good, self.filtered_out) { + (true, false, false) => ReviewRanking::Excellent, + (false, true, false) => ReviewRanking::Good, + (false, false, true) => ReviewRanking::FilteredOut, + (false, false, false) => ReviewRanking::NA, + _ => { + return Err(std::io::Error::new( + std::io::ErrorKind::InvalidData, + format!( + "expected one-hot encoding, found {}-{}-{}", + self.excellent, self.good, self.filtered_out + ), + )) + } + }, + }) + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-cli-f10/src/db_utils.rs b/src/vit-servicing-station-f10/vit-servicing-station-cli-f10/src/db_utils.rs new file mode 100644 index 0000000000..324173250f --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-cli-f10/src/db_utils.rs @@ -0,0 +1,60 @@ +use std::fs; +use std::io; +use std::io::{Read, Write}; + +pub fn db_file_exists(db_url: &str) -> io::Result<()> { + // check if db file exists + if !std::path::Path::new(db_url).exists() { + return Err(io::Error::new( + io::ErrorKind::InvalidInput, + format!("{} url does not exists", db_url), + )); + } + Ok(()) +} + +pub fn backup_db_file(db_url: &str) -> io::Result { + db_file_exists(db_url)?; + let mut tmp_file = tempfile::NamedTempFile::new()?; + let content = fs::read(db_url)?; + tmp_file.write_all(&content)?; + Ok(tmp_file) +} + +pub fn restore_db_file(backup_file: tempfile::NamedTempFile, db_url: &str) -> io::Result<()> { + let mut backup_file = backup_file.reopen()?; + let mut buff = Vec::new(); + backup_file.read_to_end(&mut buff)?; + fs::write(db_url, &buff) +} + +#[cfg(test)] +mod test { + use crate::db_utils::{backup_db_file, restore_db_file}; + use std::{fs, io}; + + #[test] + fn backup_file() -> io::Result<()> { + let file_path = "./tmp_db.db"; + let content = b"foo bar"; + let content_vec = content.to_vec(); + // create a file with some content + fs::write(file_path, content)?; + + // backup the file + let tmp_file = backup_db_file(file_path)?; + + // write nonsense in old file + fs::write(file_path, b"bar foo")?; + + // restore file and read content, hopefully is the old one + restore_db_file(tmp_file, file_path)?; + let backup_content = fs::read(file_path)?; + fs::remove_file(file_path)?; + + // check written and actual content + assert_eq!(&content_vec, &backup_content); + + Ok(()) + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-cli-f10/src/init_db.rs b/src/vit-servicing-station-f10/vit-servicing-station-cli-f10/src/init_db.rs new file mode 100644 index 0000000000..13b7a2c02e --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-cli-f10/src/init_db.rs @@ -0,0 +1,44 @@ +use crate::task::ExecTask; +use structopt::StructOpt; +use thiserror::Error; +use vit_servicing_station_lib_f10::db::{ + load_db_connection_pool, migrations::initialize_db_with_migration, Error as DbPoolError, +}; + +#[derive(Error, Debug)] +pub enum Error { + #[error("Error connecting db pool")] + DbPoolError(#[from] DbPoolError), + + #[error("Error connecting to db")] + DbConnectionError(#[from] r2d2::Error), +} + +#[derive(Debug, PartialEq, StructOpt)] +pub enum Db { + /// Initialize a DB with the proper migrations, DB file is created if not exists. + Init { + /// URL of the vit-servicing-station database to interact with + #[structopt(long = "db-url")] + db_url: String, + }, +} + +impl Db { + fn init_with_migrations(db_url: &str) -> Result<(), Error> { + let pool = load_db_connection_pool(db_url)?; + let db_conn = pool.get()?; + initialize_db_with_migration(&db_conn); + Ok(()) + } +} + +impl ExecTask for Db { + type ResultValue = (); + type Error = Error; + fn exec(&self) -> Result { + match self { + Db::Init { db_url } => Db::init_with_migrations(db_url), + } + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-cli-f10/src/main.rs b/src/vit-servicing-station-f10/vit-servicing-station-cli-f10/src/main.rs new file mode 100644 index 0000000000..06addc9b13 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-cli-f10/src/main.rs @@ -0,0 +1,21 @@ +mod api_token; +mod app; +mod csv; +mod db_utils; +mod init_db; +mod task; + +use app::*; +use structopt::StructOpt; +use task::ExecTask; + +fn main() { + let app = CliApp::from_args(); + match app.exec() { + Ok(()) => (), + Err(e) => { + println!("Error: {}", e); + std::process::exit(1); + } + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-cli-f10/src/task.rs b/src/vit-servicing-station-f10/vit-servicing-station-cli-f10/src/task.rs new file mode 100644 index 0000000000..a536f5f0ba --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-cli-f10/src/task.rs @@ -0,0 +1,5 @@ +pub trait ExecTask { + type ResultValue; + type Error; + fn exec(&self) -> Result<::ResultValue, ::Error>; +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/Cargo.toml b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/Cargo.toml new file mode 100644 index 0000000000..9d377d23c2 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/Cargo.toml @@ -0,0 +1,43 @@ +[package] +name = "vit-servicing-station-lib-f10" +version = "0.5.0" +authors = ["danielsanchezq "] +edition = "2018" +license = "MIT OR Apache-2.0" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +async-trait = "0.1.33" +base64 = "0.12.1" +time = { version = "0.3", features = ["parsing", "formatting"] } +diesel = { version = "1.4.5", features = ["sqlite", "r2d2"] } +diesel_migrations = "1.4.0" +dotenv = "0.15" +itertools = "0.9.0" +log = { version = "0.4.11", features = ["serde"] } +serde = { version = "1.0", features = ["derive"] } +serde_json = "1.0.53" +strum = "0.21.0" +strum_macros = "0.21.1" +simplelog = "0.8.0" +structopt = "0.3.14" +thiserror = "1.0" +tokio = { version = "^1.0", features = ["macros", "signal", "rt", "fs", "sync"] } +tracing = "0.1" +tracing-futures = "0.2.4" +tracing-subscriber = "0.3" +warp = { version = "0.3", features = ["tls"] } +eccoxide = { git = "https://github.com/eugene-babichenko/eccoxide.git", branch = "fast-u64-scalar-mul", features = ["fast-u64-scalar-mul"], optional = true } +http-zipkin = "0.3.0" +notify = "5" + +# This solves building on windows when sqlite3lib is not installed or missing in the `$PATH` +# as it happens with the github actions pipeline associated to this project. +[target.'cfg(windows)'.dependencies] +libsqlite3-sys = { version = "0.9.3", features = ["bundled"] } + +[dev-dependencies] +tempfile = "3" +rand = "0.8" +jormungandr-lib = { workspace = true } diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/migrations/2020-05-22-112032_setup_db/down.sql b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/migrations/2020-05-22-112032_setup_db/down.sql new file mode 100644 index 0000000000..e9304bf326 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/migrations/2020-05-22-112032_setup_db/down.sql @@ -0,0 +1,11 @@ +-- This file should undo anything in `up.sql` +DROP TABLE IF EXISTS proposals; +DROP TABLE IF EXISTS funds; +DROP TABLE IF EXISTS voteplans; +DROP TABLE IF EXISTS api_tokens; +DROP TABLE IF EXISTS challenges; +DROP TABLE IF EXISTS proposal_simple_challenge; +DROP TABLE IF EXISTS proposal_community_choice_challenge; +DROP TABLE IF EXISTS community_advisors_reviews; +DROP VIEW IF EXISTS full_proposals_info; +DROP TABLE IF EXISTS goals; diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/migrations/2020-05-22-112032_setup_db/up.sql b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/migrations/2020-05-22-112032_setup_db/up.sql new file mode 100644 index 0000000000..c2170a28ad --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/migrations/2020-05-22-112032_setup_db/up.sql @@ -0,0 +1,150 @@ +create table funds +( + id INTEGER NOT NULL + primary key autoincrement, + fund_name VARCHAR NOT NULL, + fund_goal VARCHAR NOT NULL, + registration_snapshot_time BIGINT NOT NULL, + next_registration_snapshot_time BIGINT NOT NULL, + voting_power_threshold BIGINT NOT NULL, + fund_start_time BIGINT NOT NULL, + fund_end_time BIGINT NOT NULL, + next_fund_start_time BIGINT NOT NULL, + insight_sharing_start BIGINT NOT NULL, + proposal_submission_start BIGINT NOT NULL, + refine_proposals_start BIGINT NOT NULL, + finalize_proposals_start BIGINT NOT NULL, + proposal_assessment_start BIGINT NOT NULL, + assessment_qa_start BIGINT NOT NULL, + snapshot_start BIGINT NOT NULL, + voting_start BIGINT NOT NULL, + voting_end BIGINT NOT NULL, + tallying_end BIGINT NOT NULL, + results_url VARCHAR NOT NULL, + survey_url VARCHAR NOT NULL +); + +create table proposals +( + id INTEGER NOT NULL + primary key autoincrement, + proposal_id VARCHAR NOT NULL, + proposal_category VARCHAR NOT NULL, + proposal_title VARCHAR NOT NULL, + proposal_summary VARCHAR NOT NULL, + proposal_public_key VARCHAR NOT NULL, + proposal_funds BIGINT NOT NULL, + proposal_url VARCHAR NOT NULL, + proposal_files_url VARCHAR NOT NULL, + proposal_impact_score BIGINT NOT NULL, + proposer_name VARCHAR NOT NULL, + proposer_contact VARCHAR NOT NULL, + proposer_url VARCHAR NOT NULL, + proposer_relevant_experience VARCHAR NOT NULL, + chain_proposal_id BLOB NOT NULL, + chain_proposal_index BIGINT NOT NULL, + chain_vote_options VARCHAR NOT NULL, + chain_voteplan_id VARCHAR NOT NULL, + challenge_id INTEGER NOT NULL +); + +create table proposal_simple_challenge ( + proposal_id VARCHAR NOT NULL primary key, + proposal_solution VARCHAR +); + +create table proposal_community_choice_challenge ( + proposal_id VARCHAR NOT NULL primary key, + proposal_brief VARCHAR, + proposal_importance VARCHAR, + proposal_goal VARCHAR, + proposal_metrics VARCHAR +); + +create table voteplans +( + id INTEGER NOT NULL + primary key autoincrement, + chain_voteplan_id VARCHAR NOT NULL + unique, + chain_vote_start_time BIGINT NOT NULL, + chain_vote_end_time BIGINT NOT NULL, + chain_committee_end_time BIGINT NOT NULL, + chain_voteplan_payload VARCHAR NOT NULL, + chain_vote_encryption_key VARCHAR NOT NULL, + fund_id INTEGER NOT NULL +); + +create table api_tokens +( + token BLOB NOT NULL UNIQUE PRIMARY KEY , + creation_time BIGINT NOT NULL, + expire_time BIGINT NOT NULL +); + +create table challenges +( + internal_id INTEGER NOT NULL + primary key autoincrement, + id INTEGER NOT NULL UNIQUE, + challenge_type VARCHAR NOT NULL, + title VARCHAR NOT NULL, + description VARCHAR NOT NULL, + rewards_total BIGINT NOT NULL, + proposers_rewards BIGINT NOT NULL, + fund_id INTEGER NOT NULL, + challenge_url VARCHAR NOT NULL, + highlights VARCHAR +); + +create table community_advisors_reviews ( + id INTEGER NOT NULL primary key autoincrement, + proposal_id INTEGER NOT NULL, + assessor VARCHAR NOT NULL, + impact_alignment_rating_given INTEGER NOT NULL, + impact_alignment_note VARCHAR NOT NULL, + feasibility_rating_given INTEGER NOT NULL, + feasibility_note VARCHAR NOT NULL, + auditability_rating_given INTEGER NOT NULL, + auditability_note VARCHAR NOT NULL, + ranking INTEGER NOT NULL +); + +create table goals +( + id INTEGER NOT NULL + primary key autoincrement, + goal_name VARCHAR NOT NULL, + fund_id INTEGER NOT NULL, + FOREIGN KEY(fund_id) REFERENCES funds(id) +); + +CREATE VIEW full_proposals_info +AS +SELECT + proposals.*, + ifnull(reviews_count, 0) as reviews_count, + proposal_simple_challenge.proposal_solution, + proposal_community_choice_challenge.proposal_brief, + proposal_community_choice_challenge.proposal_importance, + proposal_community_choice_challenge.proposal_goal, + proposal_community_choice_challenge.proposal_metrics, + voteplans.chain_vote_start_time, + voteplans.chain_vote_end_time, + voteplans.chain_committee_end_time, + voteplans.chain_voteplan_payload, + voteplans.chain_vote_encryption_key, + voteplans.fund_id, + challenges.challenge_type +FROM + proposals + INNER JOIN voteplans ON proposals.chain_voteplan_id = voteplans.chain_voteplan_id + INNER JOIN challenges on challenges.id = proposals.challenge_id + LEFT JOIN proposal_simple_challenge + on proposals.proposal_id = proposal_simple_challenge.proposal_id + and (challenges.challenge_type = 'simple' or challenges.challenge_type = 'native') + LEFT JOIN proposal_community_choice_challenge + on proposals.proposal_id = proposal_community_choice_challenge.proposal_id + and challenges.challenge_type = 'community-choice' + LEFT JOIN (SELECT proposal_id as review_proposal_id, COUNT (DISTINCT assessor) as reviews_count FROM community_advisors_reviews GROUP BY proposal_id) + on proposals.proposal_id = review_proposal_id; diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/migrations.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/migrations.rs new file mode 100644 index 0000000000..ca462202d6 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/migrations.rs @@ -0,0 +1,7 @@ +use crate::db::DbConnection; + +embed_migrations!("./migrations"); + +pub fn initialize_db_with_migration(db_conn: &DbConnection) { + embedded_migrations::run(db_conn).unwrap(); +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/mod.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/mod.rs new file mode 100644 index 0000000000..500cc51ba1 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/mod.rs @@ -0,0 +1,37 @@ +pub mod migrations; +pub mod models; +pub mod queries; +pub mod schema; +pub mod views_schema; + +use diesel::r2d2::{ConnectionManager, Pool}; +use diesel::sqlite::SqliteConnection; +use diesel::Connection; + +pub type DbConnectionPool = Pool>; +pub type Error = Box; +// TODO: Right now this is forced as the current backend. But it should be abstracted so it works for any diesel::Backend +type Db = diesel::sqlite::Sqlite; +pub type DbConnection = SqliteConnection; + +// ⚠ WARNING ⚠ : This query is sqlite specific, would need to be changed if backend changes +const TEST_CONN_QUERY: &str = " +SELECT + name +FROM + sqlite_master +WHERE + type ='table' AND + name NOT LIKE 'sqlite_%'; +"; + +pub fn load_db_connection_pool(db_url: &str) -> Result { + let manager = ConnectionManager::::new(db_url); + let pool = Pool::builder().build(manager)?; + + // test db connection or bubble up error + let conn = pool.get()?; + conn.execute(TEST_CONN_QUERY)?; + + Ok(pool) +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/models/api_tokens.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/models/api_tokens.rs new file mode 100644 index 0000000000..618fddcdd7 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/models/api_tokens.rs @@ -0,0 +1,48 @@ +use crate::db::{schema::api_tokens, Db}; +use crate::v0::api_token::ApiToken; +use diesel::{ExpressionMethods, Insertable, Queryable}; + +#[derive(Debug, Clone)] +pub struct ApiTokenData { + pub token: ApiToken, + pub creation_time: i64, + pub expire_time: i64, +} + +impl Queryable for ApiTokenData { + type Row = ( + // 0 -> token + Vec, + // 1 -> creation_time + i64, + // 2-> expire_time + i64, + ); + + fn build(row: Self::Row) -> Self { + Self { + token: ApiToken::new(row.0), + creation_time: row.1, + expire_time: row.2, + } + } +} + +// This warning is disabled here. Values is only referenced as a type here. It should be ok not to +// split the types definitions. +#[allow(clippy::type_complexity)] +impl Insertable for ApiTokenData { + type Values = ( + diesel::dsl::Eq>, + diesel::dsl::Eq, + diesel::dsl::Eq, + ); + + fn values(self) -> Self::Values { + ( + api_tokens::token.eq(self.token.as_ref().to_vec()), + api_tokens::creation_time.eq(self.creation_time), + api_tokens::expire_time.eq(self.expire_time), + ) + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/models/challenges.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/models/challenges.rs new file mode 100644 index 0000000000..45432f8c73 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/models/challenges.rs @@ -0,0 +1,134 @@ +use crate::db::models::proposals::ChallengeType; +use crate::db::{schema::challenges, Db}; +use diesel::{ExpressionMethods, Insertable, Queryable}; +use serde::{Deserialize, Serialize}; + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq)] +pub struct ChallengeHighlights { + pub sponsor: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq)] +pub struct Challenge { + #[serde(alias = "internalId")] + // this is used only to retain the original insert order + pub internal_id: i32, + pub id: i32, + #[serde(alias = "challengeType")] + pub challenge_type: ChallengeType, + pub title: String, + pub description: String, + #[serde(alias = "rewardsTotal")] + pub rewards_total: i64, + #[serde(alias = "proposersRewards")] + pub proposers_rewards: i64, + #[serde(alias = "fundId")] + pub fund_id: i32, + #[serde(alias = "challengeUrl")] + pub challenge_url: String, + pub highlights: Option, +} + +impl Queryable for Challenge { + type Row = ( + // 0 -> internal_id + i32, + // 1 -> id + i32, + // 2 -> challenge_type + String, + // 3 -> title + String, + // 4 -> description + String, + // 5 -> rewards_total + i64, + // 6 -> proposers_rewards + i64, + // 7 -> fund_id + i32, + // 8 -> fund_url + String, + // 9 -> challenge_highlights + Option, + ); + + fn build(row: Self::Row) -> Self { + Challenge { + internal_id: row.0, + id: row.1, + challenge_type: row.2.parse().unwrap(), + title: row.3, + description: row.4, + rewards_total: row.5, + proposers_rewards: row.6, + fund_id: row.7, + challenge_url: row.8, + // It should be ensured that the content is valid json + highlights: row.9.and_then(|v| serde_json::from_str(&v).ok()), + } + } +} + +impl Insertable for Challenge { + #[allow(clippy::type_complexity)] + type Values = ( + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq>, + ); + + fn values(self) -> Self::Values { + ( + challenges::id.eq(self.id), + challenges::challenge_type.eq(self.challenge_type.to_string()), + challenges::title.eq(self.title), + challenges::description.eq(self.description), + challenges::rewards_total.eq(self.rewards_total), + challenges::proposers_rewards.eq(self.proposers_rewards), + challenges::fund_id.eq(self.fund_id), + challenges::challenge_url.eq(self.challenge_url), + // This should always be a valid json + challenges::highlights.eq(serde_json::to_string(&self.highlights).ok()), + ) + } +} + +#[cfg(test)] +pub mod test { + use super::*; + use crate::db::DbConnectionPool; + use diesel::RunQueryDsl; + + pub fn get_test_challenge_with_fund_id(fund_id: i32) -> Challenge { + const CHALLENGE_ID: i32 = 9001; + const REWARDS_TOTAL: i64 = 100500; + Challenge { + internal_id: 1, + id: CHALLENGE_ID, + challenge_type: ChallengeType::CommunityChoice, + title: "challenge title".to_string(), + description: "challenge description".to_string(), + rewards_total: REWARDS_TOTAL, + proposers_rewards: REWARDS_TOTAL, + fund_id, + challenge_url: "http://example.com/".to_string(), + highlights: None, + } + } + + pub fn populate_db_with_challenge(challenge: &Challenge, pool: &DbConnectionPool) { + let connection = pool.get().unwrap(); + + diesel::insert_into(challenges::table) + .values(challenge.clone().values()) + .execute(&connection) + .unwrap(); + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/models/community_advisors_reviews.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/models/community_advisors_reviews.rs new file mode 100644 index 0000000000..88956bbdd3 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/models/community_advisors_reviews.rs @@ -0,0 +1,109 @@ +use crate::db::schema::community_advisors_reviews; + +use diesel::prelude::*; +use diesel::{ + backend::Backend, + deserialize::{self, FromSql}, + sql_types::Integer, + FromSqlRow, Insertable, Queryable, +}; +use serde::{Deserialize, Serialize}; + +#[derive(Copy, Clone, PartialEq, Eq, Debug, Serialize, FromSqlRow, Deserialize)] +pub enum ReviewRanking { + Excellent = 0, + Good = 1, + FilteredOut = 2, + NA = 3, // not reviewed by vCAs +} + +impl FromSql for ReviewRanking +where + DB: Backend, + i32: FromSql, +{ + fn from_sql(bytes: Option<&DB::RawValue>) -> deserialize::Result { + match i32::from_sql(bytes)? { + 0 => Ok(ReviewRanking::Excellent), + 1 => Ok(ReviewRanking::Good), + 2 => Ok(ReviewRanking::FilteredOut), + 3 => Ok(ReviewRanking::NA), + x => Err(format!("Unrecognized variant {}", x).into()), + } + } +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, Queryable)] +pub struct AdvisorReview { + pub id: i32, + pub proposal_id: i32, + pub assessor: String, + pub impact_alignment_rating_given: i32, + pub impact_alignment_note: String, + pub feasibility_rating_given: i32, + pub feasibility_note: String, + pub auditability_rating_given: i32, + pub auditability_note: String, + pub ranking: ReviewRanking, +} + +impl Insertable for AdvisorReview { + #[allow(clippy::type_complexity)] + type Values = ( + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + ); + + fn values(self) -> Self::Values { + ( + community_advisors_reviews::proposal_id.eq(self.proposal_id), + community_advisors_reviews::assessor.eq(self.assessor), + community_advisors_reviews::impact_alignment_rating_given + .eq(self.impact_alignment_rating_given), + community_advisors_reviews::impact_alignment_note.eq(self.impact_alignment_note), + community_advisors_reviews::feasibility_rating_given.eq(self.feasibility_rating_given), + community_advisors_reviews::feasibility_note.eq(self.feasibility_note), + community_advisors_reviews::auditability_rating_given + .eq(self.auditability_rating_given), + community_advisors_reviews::auditability_note.eq(self.auditability_note), + community_advisors_reviews::ranking.eq(self.ranking as i32), + ) + } +} + +#[cfg(test)] +pub mod test { + use super::*; + use crate::db::DbConnectionPool; + use diesel::RunQueryDsl; + + pub fn get_test_advisor_review_with_proposal_id(proposal_id: i32) -> AdvisorReview { + AdvisorReview { + id: 0, + proposal_id, + assessor: "foo bar".to_string(), + impact_alignment_rating_given: 0, + impact_alignment_note: "impact note".to_string(), + feasibility_rating_given: 0, + feasibility_note: "feasibility note".to_string(), + auditability_rating_given: 0, + auditability_note: "auditability".to_string(), + ranking: ReviewRanking::Good, + } + } + + pub fn populate_db_with_advisor_review(review: &AdvisorReview, pool: &DbConnectionPool) { + let connection = pool.get().unwrap(); + diesel::insert_into(community_advisors_reviews::table) + .values(review.clone().values()) + .execute(&connection) + .unwrap(); + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/models/funds.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/models/funds.rs new file mode 100644 index 0000000000..3016ec4f0c --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/models/funds.rs @@ -0,0 +1,350 @@ +use crate::db::{ + models::{challenges::Challenge, goals::Goal, voteplans::Voteplan}, + schema::funds, + Db, +}; +use diesel::{ExpressionMethods, Insertable, Queryable}; +use serde::{Deserialize, Serialize}; + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq)] +pub struct Fund { + #[serde(default = "Default::default")] + pub id: i32, + #[serde(alias = "fundName")] + pub fund_name: String, + #[serde(alias = "fundGoal")] + pub fund_goal: String, + #[serde(alias = "votingPowerThreshold")] + pub voting_power_threshold: i64, + #[serde(alias = "fundStartTime")] + #[serde(deserialize_with = "crate::utils::serde::deserialize_unix_timestamp_from_rfc3339")] + #[serde(serialize_with = "crate::utils::serde::serialize_unix_timestamp_as_rfc3339")] + pub fund_start_time: i64, + #[serde(alias = "fundEndTime")] + #[serde(deserialize_with = "crate::utils::serde::deserialize_unix_timestamp_from_rfc3339")] + #[serde(serialize_with = "crate::utils::serde::serialize_unix_timestamp_as_rfc3339")] + pub fund_end_time: i64, + #[serde(alias = "nextFundStartTime")] + #[serde(deserialize_with = "crate::utils::serde::deserialize_unix_timestamp_from_rfc3339")] + #[serde(serialize_with = "crate::utils::serde::serialize_unix_timestamp_as_rfc3339")] + pub next_fund_start_time: i64, + #[serde(alias = "registrationSnapshotTime")] + #[serde(deserialize_with = "crate::utils::serde::deserialize_unix_timestamp_from_rfc3339")] + #[serde(serialize_with = "crate::utils::serde::serialize_unix_timestamp_as_rfc3339")] + pub registration_snapshot_time: i64, + #[serde(deserialize_with = "crate::utils::serde::deserialize_unix_timestamp_from_rfc3339")] + #[serde(serialize_with = "crate::utils::serde::serialize_unix_timestamp_as_rfc3339")] + pub next_registration_snapshot_time: i64, + #[serde(alias = "chainVotePlans", default = "Vec::new")] + pub chain_vote_plans: Vec, + #[serde(default = "Vec::new")] + pub challenges: Vec, + #[serde(alias = "stageDates", flatten)] + pub stage_dates: FundStageDates, + #[serde(default = "Vec::new")] + pub goals: Vec, + #[serde(alias = "resultsUrl")] + pub results_url: String, + #[serde(alias = "surveyUrl")] + pub survey_url: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq)] +pub struct FundStageDates { + #[serde(deserialize_with = "crate::utils::serde::deserialize_unix_timestamp_from_rfc3339")] + #[serde(serialize_with = "crate::utils::serde::serialize_unix_timestamp_as_rfc3339")] + pub insight_sharing_start: i64, + #[serde(deserialize_with = "crate::utils::serde::deserialize_unix_timestamp_from_rfc3339")] + #[serde(serialize_with = "crate::utils::serde::serialize_unix_timestamp_as_rfc3339")] + pub proposal_submission_start: i64, + #[serde(deserialize_with = "crate::utils::serde::deserialize_unix_timestamp_from_rfc3339")] + #[serde(serialize_with = "crate::utils::serde::serialize_unix_timestamp_as_rfc3339")] + pub refine_proposals_start: i64, + #[serde(deserialize_with = "crate::utils::serde::deserialize_unix_timestamp_from_rfc3339")] + #[serde(serialize_with = "crate::utils::serde::serialize_unix_timestamp_as_rfc3339")] + pub finalize_proposals_start: i64, + #[serde(deserialize_with = "crate::utils::serde::deserialize_unix_timestamp_from_rfc3339")] + #[serde(serialize_with = "crate::utils::serde::serialize_unix_timestamp_as_rfc3339")] + pub proposal_assessment_start: i64, + #[serde(deserialize_with = "crate::utils::serde::deserialize_unix_timestamp_from_rfc3339")] + #[serde(serialize_with = "crate::utils::serde::serialize_unix_timestamp_as_rfc3339")] + pub assessment_qa_start: i64, + #[serde(deserialize_with = "crate::utils::serde::deserialize_unix_timestamp_from_rfc3339")] + #[serde(serialize_with = "crate::utils::serde::serialize_unix_timestamp_as_rfc3339")] + pub snapshot_start: i64, + #[serde(deserialize_with = "crate::utils::serde::deserialize_unix_timestamp_from_rfc3339")] + #[serde(serialize_with = "crate::utils::serde::serialize_unix_timestamp_as_rfc3339")] + pub voting_start: i64, + #[serde(deserialize_with = "crate::utils::serde::deserialize_unix_timestamp_from_rfc3339")] + #[serde(serialize_with = "crate::utils::serde::serialize_unix_timestamp_as_rfc3339")] + pub voting_end: i64, + #[serde(deserialize_with = "crate::utils::serde::deserialize_unix_timestamp_from_rfc3339")] + #[serde(serialize_with = "crate::utils::serde::serialize_unix_timestamp_as_rfc3339")] + pub tallying_end: i64, +} + +#[derive(Serialize)] +struct FundWithLegacyFields { + id: i32, + fund_name: String, + fund_goal: String, + voting_power_threshold: i64, + #[serde(serialize_with = "crate::utils::serde::serialize_unix_timestamp_as_rfc3339")] + fund_start_time: i64, + #[serde(serialize_with = "crate::utils::serde::serialize_unix_timestamp_as_rfc3339")] + fund_end_time: i64, + #[serde(serialize_with = "crate::utils::serde::serialize_unix_timestamp_as_rfc3339")] + next_fund_start_time: i64, + #[serde(serialize_with = "crate::utils::serde::serialize_unix_timestamp_as_rfc3339")] + registration_snapshot_time: i64, + #[serde(serialize_with = "crate::utils::serde::serialize_unix_timestamp_as_rfc3339")] + next_registration_snapshot_time: i64, + chain_vote_plans: Vec, + challenges: Vec, +} + +impl From for FundWithLegacyFields { + fn from(fund: Fund) -> Self { + FundWithLegacyFields { + id: fund.id, + fund_name: fund.fund_name, + fund_goal: fund.fund_goal, + voting_power_threshold: fund.voting_power_threshold, + fund_start_time: fund.fund_start_time, + fund_end_time: fund.fund_end_time, + next_fund_start_time: fund.next_fund_start_time, + registration_snapshot_time: fund.registration_snapshot_time, + next_registration_snapshot_time: fund.next_registration_snapshot_time, + chain_vote_plans: fund.chain_vote_plans, + challenges: fund.challenges, + } + } +} + +impl Queryable for Fund { + type Row = ( + // 0 -> id + i32, + // 1 -> fund_name + String, + // 2 -> fund_goal + String, + // 3 -> registration_snapshot_time + i64, + // 4 -> next_registration_snapshot_time + i64, + // 5 -> voting_power_threshold + i64, + // 6 -> fund_start_time + i64, + // 7 -> fund_end_time + i64, + // 8 -> next_fund_start_time + i64, + // insight_sharing_start + i64, + // proposal_submission_start + i64, + // refine_proposals_start + i64, + // finalize_proposals_start + i64, + // proposal_assessment_start + i64, + // assessment_qa_start + i64, + // snapshot_start + i64, + // voting_start + i64, + // voting_end + i64, + // tallying_end + i64, + // results_url + String, + // survey_url + String, + ); + + fn build(row: Self::Row) -> Self { + Fund { + id: row.0, + fund_name: row.1, + fund_goal: row.2, + registration_snapshot_time: row.3, + next_registration_snapshot_time: row.4, + voting_power_threshold: row.5, + fund_start_time: row.6, + fund_end_time: row.7, + next_fund_start_time: row.8, + chain_vote_plans: vec![], + challenges: vec![], + stage_dates: FundStageDates { + insight_sharing_start: row.9, + proposal_submission_start: row.10, + refine_proposals_start: row.11, + finalize_proposals_start: row.12, + proposal_assessment_start: row.13, + assessment_qa_start: row.14, + snapshot_start: row.15, + voting_start: row.16, + voting_end: row.17, + tallying_end: row.18, + }, + goals: vec![], + results_url: row.19, + survey_url: row.20, + } + } +} + +// This warning is disabled here. Values is only referenced as a type here. It should be ok not to +// split the types definitions. +#[allow(clippy::type_complexity)] +impl Insertable for Fund { + type Values = ( + Option>, + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + ); + + fn values(self) -> Self::Values { + let id_item = if self.id == 0 { + None + } else { + Some(funds::id.eq(self.id)) + }; + ( + id_item, + funds::fund_name.eq(self.fund_name), + funds::fund_goal.eq(self.fund_goal), + funds::registration_snapshot_time.eq(self.registration_snapshot_time), + funds::next_registration_snapshot_time.eq(self.next_registration_snapshot_time), + funds::voting_power_threshold.eq(self.voting_power_threshold), + funds::fund_start_time.eq(self.fund_start_time), + funds::fund_end_time.eq(self.fund_end_time), + funds::next_fund_start_time.eq(self.next_fund_start_time), + funds::insight_sharing_start.eq(self.stage_dates.insight_sharing_start), + funds::proposal_submission_start.eq(self.stage_dates.proposal_submission_start), + funds::refine_proposals_start.eq(self.stage_dates.refine_proposals_start), + funds::finalize_proposals_start.eq(self.stage_dates.finalize_proposals_start), + funds::proposal_assessment_start.eq(self.stage_dates.proposal_assessment_start), + funds::assessment_qa_start.eq(self.stage_dates.assessment_qa_start), + funds::snapshot_start.eq(self.stage_dates.snapshot_start), + funds::voting_start.eq(self.stage_dates.voting_start), + funds::voting_end.eq(self.stage_dates.voting_end), + funds::tallying_end.eq(self.stage_dates.tallying_end), + funds::results_url.eq(self.results_url), + funds::survey_url.eq(self.survey_url), + ) + } +} + +#[cfg(test)] +pub mod test { + use crate::db::{ + models::{ + challenges::test as challenges_testing, + funds::{Fund, FundStageDates}, + goals::{Goal, InsertGoal}, + voteplans::test as voteplans_testing, + }, + schema::{funds, goals}, + DbConnectionPool, + }; + + use diesel::{Insertable, RunQueryDsl}; + use time::{Duration, OffsetDateTime}; + + pub fn get_test_fund(fund_id: Option) -> Fund { + const FUND_ID: i32 = 42; + let fund_id = fund_id.unwrap_or(FUND_ID); + + Fund { + id: fund_id, + fund_name: "hey oh let's go".to_string(), + fund_goal: "test this endpoint".to_string(), + registration_snapshot_time: (OffsetDateTime::now_utc() + Duration::days(3)) + .unix_timestamp(), + next_registration_snapshot_time: (OffsetDateTime::now_utc() + Duration::days(30)) + .unix_timestamp(), + voting_power_threshold: 100, + fund_start_time: OffsetDateTime::now_utc().unix_timestamp(), + fund_end_time: OffsetDateTime::now_utc().unix_timestamp(), + next_fund_start_time: OffsetDateTime::now_utc().unix_timestamp(), + chain_vote_plans: vec![voteplans_testing::get_test_voteplan_with_fund_id(fund_id)], + challenges: vec![challenges_testing::get_test_challenge_with_fund_id(fund_id)], + stage_dates: FundStageDates { + insight_sharing_start: OffsetDateTime::now_utc().unix_timestamp(), + proposal_submission_start: OffsetDateTime::now_utc().unix_timestamp(), + refine_proposals_start: OffsetDateTime::now_utc().unix_timestamp(), + finalize_proposals_start: OffsetDateTime::now_utc().unix_timestamp(), + proposal_assessment_start: OffsetDateTime::now_utc().unix_timestamp(), + assessment_qa_start: OffsetDateTime::now_utc().unix_timestamp(), + snapshot_start: OffsetDateTime::now_utc().unix_timestamp(), + voting_start: OffsetDateTime::now_utc().unix_timestamp(), + voting_end: OffsetDateTime::now_utc().unix_timestamp(), + tallying_end: OffsetDateTime::now_utc().unix_timestamp(), + }, + goals: vec![Goal { + id: 1, + goal_name: "goal1".into(), + fund_id, + }], + results_url: format!("http://localhost/fund/{FUND_ID}/results/"), + survey_url: format!("http://localhost/fund/{FUND_ID}/survey/"), + } + } + + pub fn populate_db_with_fund(fund: &Fund, pool: &DbConnectionPool) { + let values = fund.clone().values(); + + // Warning! mind this scope: r2d2 pooled connection behaviour depend of the scope. Looks like + // if the connection is not out of scope, when giving the reference to the next function + // call below it creates a wrong connection (where there are not tables even if they were loaded). + { + let connection = pool.get().unwrap(); + diesel::insert_into(funds::table) + .values(values) + .execute(&connection) + .unwrap(); + } + + for voteplan in &fund.chain_vote_plans { + voteplans_testing::populate_db_with_voteplan(voteplan, pool); + } + + for challenge in &fund.challenges { + challenges_testing::populate_db_with_challenge(challenge, pool); + } + + { + let connection = pool.get().unwrap(); + for goal in &fund.goals { + diesel::insert_into(goals::table) + .values(InsertGoal::from(goal)) + .execute(&connection) + .unwrap(); + } + } + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/models/goals.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/models/goals.rs new file mode 100644 index 0000000000..6c51c76e33 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/models/goals.rs @@ -0,0 +1,37 @@ +use crate::db::schema::goals; +use diesel::{Insertable, Queryable}; +use serde::{Deserialize, Serialize}; + +pub use goals_impl::InsertGoal; + +#[derive(Serialize, Deserialize, Queryable, Clone, Debug, PartialEq, Eq)] +#[diesel(table_name = goals)] +pub struct Goal { + pub id: i32, + #[serde(alias = "goalName")] + pub goal_name: String, + #[serde(alias = "fundId")] + pub fund_id: i32, +} + +mod goals_impl { + #![allow(clippy::extra_unused_lifetimes)] + + use super::*; + + #[derive(Deserialize, Insertable, Clone, Debug)] + #[table_name = "goals"] + pub struct InsertGoal { + pub goal_name: String, + pub fund_id: i32, + } +} + +impl From<&Goal> for InsertGoal { + fn from(g: &Goal) -> Self { + Self { + goal_name: g.goal_name.clone(), + fund_id: g.fund_id, + } + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/models/mod.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/models/mod.rs new file mode 100644 index 0000000000..91e360617a --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/models/mod.rs @@ -0,0 +1,8 @@ +pub mod api_tokens; +pub mod challenges; +pub mod community_advisors_reviews; +pub mod funds; +pub mod goals; +pub mod proposals; +pub mod vote_options; +pub mod voteplans; diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/models/proposals.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/models/proposals.rs new file mode 100644 index 0000000000..b5d7d2b50d --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/models/proposals.rs @@ -0,0 +1,534 @@ +use super::vote_options; +use crate::db::models::vote_options::VoteOptions; +use crate::db::{schema::proposals, views_schema::full_proposals_info, Db}; +use diesel::{ExpressionMethods, Insertable, Queryable}; +use serde::{de::Error, Deserialize, Deserializer, Serialize, Serializer}; +use std::convert::{TryFrom, TryInto}; + +pub mod community_choice; +pub mod simple; + +#[derive(Serialize, Deserialize, PartialEq, Eq, Debug, Clone)] +pub struct Category { + #[serde(alias = "categoryId", default = "Default::default")] + pub category_id: String, + #[serde(alias = "categoryName")] + pub category_name: String, + #[serde(alias = "categoryDescription", default = "Default::default")] + pub category_description: String, +} + +#[derive(Serialize, Deserialize, PartialEq, Eq, Debug, Clone)] +pub struct Proposer { + #[serde(alias = "proposerName")] + pub proposer_name: String, + #[serde(alias = "proposerEmail")] + pub proposer_email: String, + #[serde(alias = "proposerUrl")] + pub proposer_url: String, + #[serde(alias = "proposerRelevantExperience")] + pub proposer_relevant_experience: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq)] +#[serde(rename_all = "kebab-case")] +pub enum ChallengeType { + Simple, + CommunityChoice, + Native, +} + +impl std::str::FromStr for ChallengeType { + type Err = std::io::Error; + + fn from_str(s: &str) -> Result { + match s { + "simple" => Ok(ChallengeType::Simple), + "community-choice" => Ok(ChallengeType::CommunityChoice), + "native" => Ok(ChallengeType::Native), + s => Err(std::io::Error::new( + std::io::ErrorKind::InvalidData, + format!( + "Expected any of [simple | community-choice | native], found: {}", + s + ), + )), + } + } +} + +impl std::fmt::Display for ChallengeType { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + // should be implemented and safe to unwrap here + let repr = serde_json::to_string(&self).unwrap(); + write!(f, "{}", repr.trim_matches('"')) + } +} + +#[derive(Serialize, Deserialize, PartialEq, Eq, Debug, Clone)] +pub struct Proposal { + #[serde(alias = "internalId")] + pub internal_id: i32, + #[serde(alias = "proposalId")] + pub proposal_id: String, + #[serde(alias = "category")] + pub proposal_category: Category, + #[serde(alias = "proposalTitle")] + pub proposal_title: String, + #[serde(alias = "proposalSummary")] + pub proposal_summary: String, + #[serde(alias = "proposalPublicKey")] + pub proposal_public_key: String, + #[serde(alias = "proposalFunds")] + pub proposal_funds: i64, + #[serde(alias = "proposalUrl")] + pub proposal_url: String, + #[serde(alias = "proposalFilesUrl")] + pub proposal_files_url: String, + #[serde(alias = "proposalImpactScore")] + pub proposal_impact_score: i64, + pub proposer: Proposer, + #[serde(alias = "chainProposalId")] + #[serde(serialize_with = "crate::utils::serde::serialize_bin_as_str")] + #[serde(deserialize_with = "crate::utils::serde::deserialize_string_as_bytes")] + pub chain_proposal_id: Vec, + #[serde(alias = "chainProposalIndex")] + pub chain_proposal_index: i64, + #[serde(alias = "chainVoteOptions")] + pub chain_vote_options: VoteOptions, + #[serde(alias = "chainVoteplanId")] + pub chain_voteplan_id: String, + #[serde(alias = "chainVoteStartTime", default = "Default::default")] + #[serde(serialize_with = "crate::utils::serde::serialize_unix_timestamp_as_rfc3339")] + #[serde(deserialize_with = "crate::utils::serde::deserialize_unix_timestamp_from_rfc3339")] + pub chain_vote_start_time: i64, + #[serde(alias = "chainVoteEndTime", default = "Default::default")] + #[serde(serialize_with = "crate::utils::serde::serialize_unix_timestamp_as_rfc3339")] + #[serde(deserialize_with = "crate::utils::serde::deserialize_unix_timestamp_from_rfc3339")] + pub chain_vote_end_time: i64, + #[serde(alias = "chainCommitteeEndTime", default = "Default::default")] + #[serde(serialize_with = "crate::utils::serde::serialize_unix_timestamp_as_rfc3339")] + #[serde(deserialize_with = "crate::utils::serde::deserialize_unix_timestamp_from_rfc3339")] + pub chain_committee_end_time: i64, + #[serde(alias = "chainVoteplanPayload")] + pub chain_voteplan_payload: String, + #[serde(alias = "chainVoteEncryptionKey")] + pub chain_vote_encryption_key: String, + #[serde(alias = "fundId")] + pub fund_id: i32, + #[serde(alias = "challengeId")] + pub challenge_id: i32, + #[serde(alias = "reviewsCount")] + pub reviews_count: i32, +} + +#[derive(PartialEq, Eq, Debug, Clone)] +pub enum ProposalChallengeInfo { + Simple(simple::ChallengeInfo), + CommunityChoice(community_choice::ChallengeInfo), +} + +#[derive(Serialize, Deserialize)] +struct SerdeProposalChallengeInfo { + #[serde(flatten, default, skip_serializing_if = "Option::is_none")] + simple: Option, + #[serde(flatten, default, skip_serializing_if = "Option::is_none")] + community: Option, +} + +#[derive(Serialize, Deserialize, PartialEq, Eq, Debug, Clone)] +pub struct FullProposalInfo { + #[serde(flatten)] + pub proposal: Proposal, + #[serde(flatten)] + pub challenge_info: ProposalChallengeInfo, + #[serde(alias = "challengeType")] + pub challenge_type: ChallengeType, +} + +impl Serialize for ProposalChallengeInfo { + fn serialize(&self, serializer: S) -> Result<::Ok, ::Error> + where + S: Serializer, + { + let serde_data: SerdeProposalChallengeInfo = self.clone().into(); + serde_data.serialize(serializer) + } +} + +impl<'de> Deserialize<'de> for ProposalChallengeInfo { + fn deserialize(deserializer: D) -> Result>::Error> + where + D: Deserializer<'de>, + { + let serde_data: SerdeProposalChallengeInfo = + SerdeProposalChallengeInfo::deserialize(deserializer)?; + serde_data.try_into().map_err(|_| { + >::Error::custom("Invalid data for ProposalChallengeInfo") + }) + } +} + +type FullProposalsInfoRow = ( + // 0 ->id + i32, + // 1 -> proposal_id + String, + // 2-> category_name + String, + // 3 -> proposal_title + String, + // 4 -> proposal_summary + String, + // 5 -> proposal_public_key + String, + // 6 -> proposal_funds + i64, + // 7 -> proposal_url + String, + // 8 -> proposal_files_url, + String, + // 9 -> proposal_impact_score + i64, + // 10 -> proposer_name + String, + // 11 -> proposer_contact + String, + // 12 -> proposer_url + String, + // 13 -> proposer_relevant_experience + String, + // 14 -> chain_proposal_id + Vec, + // 15 -> chain_proposal_index + i64, + // 16 -> chain_vote_options + String, + // 17 -> chain_voteplan_id + String, + // 18 -> chain_vote_starttime + i64, + // 19 -> chain_vote_endtime + i64, + // 20 -> chain_committee_end_time + i64, + // 21 -> chain_voteplan_payload + String, + // 22 -> chain_vote_encryption_key + String, + // 23 -> fund_id + i32, + // 24 -> challenge_id + i32, + // 25 -> reviews_count + i32, + // 26 -> challenge_type + String, + // 27 -> proposal_solution + Option, + // 28 -> proposal_brief + Option, + // 29 -> proposal_importance + Option, + // 30 -> proposal_goal + Option, + // 31 -> proposal_metrics + Option, +); + +impl Queryable for Proposal { + type Row = FullProposalsInfoRow; + + fn build(row: Self::Row) -> Self { + Proposal { + internal_id: row.0, + proposal_id: row.1, + proposal_category: Category { + category_id: "".to_string(), + category_name: row.2, + category_description: "".to_string(), + }, + proposal_title: row.3, + proposal_summary: row.4, + proposal_public_key: row.5, + proposal_funds: row.6, + proposal_url: row.7, + proposal_files_url: row.8, + proposal_impact_score: row.9, + proposer: Proposer { + proposer_name: row.10, + proposer_email: row.11, + proposer_url: row.12, + proposer_relevant_experience: row.13, + }, + chain_proposal_id: row.14, + chain_proposal_index: row.15, + chain_vote_options: vote_options::VoteOptions::parse_coma_separated_value(&row.16), + chain_voteplan_id: row.17, + chain_vote_start_time: row.18, + chain_vote_end_time: row.19, + chain_committee_end_time: row.20, + chain_voteplan_payload: row.21, + chain_vote_encryption_key: row.22, + fund_id: row.23, + challenge_id: row.24, + reviews_count: row.25, + } + } +} + +impl Queryable for FullProposalInfo { + type Row = FullProposalsInfoRow; + + fn build(row: Self::Row) -> Self { + let challenge_type = row.26.parse().unwrap(); + // It should be safe to unwrap this values here if DB is sanitized and hence tables have data + // relative to the challenge type. + let challenge_info = match challenge_type { + ChallengeType::Simple | ChallengeType::Native => { + ProposalChallengeInfo::Simple(simple::ChallengeInfo { + proposal_solution: row.27.clone().unwrap(), + }) + } + ChallengeType::CommunityChoice => { + ProposalChallengeInfo::CommunityChoice(community_choice::ChallengeInfo { + proposal_brief: row.28.clone().unwrap(), + proposal_importance: row.29.clone().unwrap(), + proposal_goal: row.30.clone().unwrap(), + proposal_metrics: row.31.clone().unwrap(), + }) + } + }; + FullProposalInfo { + proposal: Proposal::build(row), + challenge_info, + challenge_type, + } + } +} + +// This warning is disabled here. Values is only referenced as a type here. It should be ok not to +// split the types definitions. +#[allow(clippy::type_complexity)] +impl Insertable for Proposal { + type Values = ( + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq>, + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + ); + + fn values(self) -> Self::Values { + ( + proposals::proposal_id.eq(self.proposal_id), + proposals::proposal_category.eq(self.proposal_category.category_name), + proposals::proposal_title.eq(self.proposal_title), + proposals::proposal_summary.eq(self.proposal_summary), + proposals::proposal_public_key.eq(self.proposal_public_key), + proposals::proposal_funds.eq(self.proposal_funds), + proposals::proposal_url.eq(self.proposal_url), + proposals::proposal_files_url.eq(self.proposal_files_url), + proposals::proposal_impact_score.eq(self.proposal_impact_score), + proposals::proposer_name.eq(self.proposer.proposer_name), + proposals::proposer_contact.eq(self.proposer.proposer_email), + proposals::proposer_url.eq(self.proposer.proposer_url), + proposals::proposer_relevant_experience.eq(self.proposer.proposer_relevant_experience), + proposals::chain_proposal_id.eq(self.chain_proposal_id), + proposals::chain_proposal_index.eq(self.chain_proposal_index), + proposals::chain_vote_options.eq(self.chain_vote_options.as_csv_string()), + proposals::chain_voteplan_id.eq(self.chain_voteplan_id), + proposals::challenge_id.eq(self.challenge_id), + ) + } +} + +struct SerdeToProposalChallengeInfoError; + +impl TryFrom for ProposalChallengeInfo { + type Error = SerdeToProposalChallengeInfoError; + + fn try_from(data: SerdeProposalChallengeInfo) -> Result { + let SerdeProposalChallengeInfo { simple, community } = data; + match (simple, community) { + (None, None) | (Some(_), Some(_)) => Err(SerdeToProposalChallengeInfoError), + (Some(simple), None) => Ok(ProposalChallengeInfo::Simple(simple)), + (None, Some(community_challenge)) => { + Ok(ProposalChallengeInfo::CommunityChoice(community_challenge)) + } + } + } +} + +impl From for SerdeProposalChallengeInfo { + fn from(data: ProposalChallengeInfo) -> Self { + match data { + ProposalChallengeInfo::Simple(simple) => SerdeProposalChallengeInfo { + simple: Some(simple), + community: None, + }, + ProposalChallengeInfo::CommunityChoice(community) => SerdeProposalChallengeInfo { + simple: None, + community: Some(community), + }, + } + } +} + +#[cfg(test)] +pub mod test { + use super::*; + use crate::db::{ + models::vote_options::VoteOptions, + schema::{ + proposal_community_choice_challenge, proposal_simple_challenge, proposals, voteplans, + }, + DbConnectionPool, + }; + use diesel::{ExpressionMethods, RunQueryDsl}; + use time::OffsetDateTime; + + pub fn get_test_proposal() -> FullProposalInfo { + const CHALLENGE_ID: i32 = 9001; + + FullProposalInfo { + proposal: Proposal { + internal_id: 1, + proposal_id: "1".to_string(), + proposal_category: Category { + category_id: "".to_string(), + category_name: "foo_category_name".to_string(), + category_description: "".to_string(), + }, + proposal_title: "the proposal".to_string(), + proposal_summary: "the proposal summary".to_string(), + proposal_public_key: "pubkey".to_string(), + proposal_funds: 10000, + proposal_url: "http://foo.bar".to_string(), + proposal_files_url: "http://foo.bar/files".to_string(), + proposal_impact_score: 100, + reviews_count: 0, + proposer: Proposer { + proposer_name: "tester".to_string(), + proposer_email: "tester@tester.tester".to_string(), + proposer_url: "http://tester.tester".to_string(), + proposer_relevant_experience: "ilumination".to_string(), + }, + chain_proposal_id: b"foobar".to_vec(), + chain_proposal_index: 0, + chain_vote_options: VoteOptions::parse_coma_separated_value("b,a,r"), + chain_voteplan_id: "voteplain_id".to_string(), + chain_vote_start_time: OffsetDateTime::now_utc().unix_timestamp(), + chain_vote_end_time: OffsetDateTime::now_utc().unix_timestamp(), + chain_committee_end_time: OffsetDateTime::now_utc().unix_timestamp(), + chain_voteplan_payload: "none".to_string(), + chain_vote_encryption_key: "none".to_string(), + fund_id: 1, + challenge_id: CHALLENGE_ID, + }, + challenge_info: ProposalChallengeInfo::CommunityChoice( + community_choice::ChallengeInfo { + proposal_brief: "A for ADA".to_string(), + proposal_importance: "We need to get them while they're young.".to_string(), + proposal_goal: "Nebulous".to_string(), + proposal_metrics: + "\\- Number of people engaged into the creation of Cryptoalphabet" + .to_string(), + }, + ), + challenge_type: ChallengeType::CommunityChoice, + } + } + + pub fn populate_db_with_proposal(full_proposal: &FullProposalInfo, pool: &DbConnectionPool) { + let connection = pool.get().unwrap(); + let proposal = &full_proposal.proposal; + // insert the proposal information + let values = ( + proposals::proposal_id.eq(proposal.proposal_id.clone()), + proposals::proposal_category.eq(proposal.proposal_category.category_name.clone()), + proposals::proposal_title.eq(proposal.proposal_title.clone()), + proposals::proposal_summary.eq(proposal.proposal_summary.clone()), + proposals::proposal_public_key.eq(proposal.proposal_public_key.clone()), + proposals::proposal_funds.eq(proposal.proposal_funds), + proposals::proposal_url.eq(proposal.proposal_url.clone()), + proposals::proposal_files_url.eq(proposal.proposal_files_url.clone()), + proposals::proposal_impact_score.eq(proposal.proposal_impact_score), + proposals::proposer_name.eq(proposal.proposer.proposer_name.clone()), + proposals::proposer_contact.eq(proposal.proposer.proposer_email.clone()), + proposals::proposer_url.eq(proposal.proposer.proposer_url.clone()), + proposals::proposer_relevant_experience + .eq(proposal.proposer.proposer_relevant_experience.clone()), + proposals::chain_proposal_id.eq(proposal.chain_proposal_id.clone()), + proposals::chain_proposal_index.eq(proposal.chain_proposal_index), + proposals::chain_vote_options.eq(proposal.chain_vote_options.as_csv_string()), + proposals::chain_voteplan_id.eq(proposal.chain_voteplan_id.clone()), + proposals::challenge_id.eq(proposal.challenge_id), + ); + + diesel::insert_into(proposals::table) + .values(values) + .execute(&connection) + .unwrap(); + + // insert the related fund voteplan information + let voteplan_values = ( + voteplans::chain_voteplan_id.eq(proposal.chain_voteplan_id.clone()), + voteplans::chain_vote_start_time.eq(proposal.chain_vote_start_time), + voteplans::chain_vote_end_time.eq(proposal.chain_vote_end_time), + voteplans::chain_committee_end_time.eq(proposal.chain_committee_end_time), + voteplans::chain_voteplan_payload.eq(proposal.chain_voteplan_payload.clone()), + voteplans::chain_vote_encryption_key.eq(proposal.chain_vote_encryption_key.clone()), + voteplans::fund_id.eq(proposal.fund_id), + ); + + diesel::insert_into(voteplans::table) + .values(voteplan_values) + .execute(&connection) + .unwrap(); + + match &full_proposal.challenge_info { + ProposalChallengeInfo::Simple(data) => { + let simple_values = ( + proposal_simple_challenge::proposal_id.eq(proposal.proposal_id.clone()), + proposal_simple_challenge::proposal_solution.eq(data.proposal_solution.clone()), + ); + diesel::insert_into(proposal_simple_challenge::table) + .values(simple_values) + .execute(&connection) + .unwrap(); + } + ProposalChallengeInfo::CommunityChoice(data) => { + let community_values = ( + proposal_community_choice_challenge::proposal_id + .eq(proposal.proposal_id.clone()), + proposal_community_choice_challenge::proposal_brief + .eq(data.proposal_brief.clone()), + proposal_community_choice_challenge::proposal_importance + .eq(data.proposal_importance.clone()), + proposal_community_choice_challenge::proposal_goal + .eq(data.proposal_goal.clone()), + proposal_community_choice_challenge::proposal_metrics + .eq(data.proposal_metrics.clone()), + ); + diesel::insert_into(proposal_community_choice_challenge::table) + .values(community_values) + .execute(&connection) + .unwrap(); + } + }; + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/models/proposals/community_choice.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/models/proposals/community_choice.rs new file mode 100644 index 0000000000..df2a3bdf49 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/models/proposals/community_choice.rs @@ -0,0 +1,36 @@ +use crate::db::schema::proposal_community_choice_challenge; +use diesel::ExpressionMethods; +use serde::{Deserialize, Serialize}; + +#[derive(Serialize, Deserialize, PartialEq, Eq, Debug, Clone)] +pub struct ChallengeInfo { + #[serde(alias = "proposalBrief")] + pub proposal_brief: String, + #[serde(alias = "proposalImportance")] + pub proposal_importance: String, + #[serde(alias = "proposalGoal")] + pub proposal_goal: String, + #[serde(alias = "proposalMetrics")] + pub proposal_metrics: String, +} + +pub type ChallengeSqlValues = ( + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, +); + +impl ChallengeInfo { + pub fn to_sql_values_with_proposal_id(&self, proposal_id: &str) -> ChallengeSqlValues { + ( + proposal_community_choice_challenge::proposal_id.eq(proposal_id.to_string()), + proposal_community_choice_challenge::proposal_brief.eq(self.proposal_brief.clone()), + proposal_community_choice_challenge::proposal_importance + .eq(self.proposal_importance.clone()), + proposal_community_choice_challenge::proposal_goal.eq(self.proposal_goal.clone()), + proposal_community_choice_challenge::proposal_metrics.eq(self.proposal_metrics.clone()), + ) + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/models/proposals/simple.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/models/proposals/simple.rs new file mode 100644 index 0000000000..ed24d5f61b --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/models/proposals/simple.rs @@ -0,0 +1,23 @@ +use crate::db::schema::proposal_simple_challenge; +use diesel::ExpressionMethods; +use serde::{Deserialize, Serialize}; + +#[derive(Serialize, Deserialize, PartialEq, Eq, Debug, Clone)] +pub struct ChallengeInfo { + #[serde(alias = "proposalSolution")] + pub proposal_solution: String, +} + +pub type ChallengeSqlValues = ( + diesel::dsl::Eq, + diesel::dsl::Eq, +); + +impl ChallengeInfo { + pub fn to_sql_values_with_proposal_id(&self, proposal_id: &str) -> ChallengeSqlValues { + ( + proposal_simple_challenge::proposal_id.eq(proposal_id.to_string()), + proposal_simple_challenge::proposal_solution.eq(self.proposal_solution.clone()), + ) + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/models/vote_options.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/models/vote_options.rs new file mode 100644 index 0000000000..aed58f7bd3 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/models/vote_options.rs @@ -0,0 +1,22 @@ +use itertools::Itertools; +use serde::{Deserialize, Serialize}; +use std::collections::HashMap; + +pub type VoteOptionsMap = HashMap; + +#[derive(Serialize, Deserialize, Clone, PartialEq, Eq, Debug)] +pub struct VoteOptions(pub VoteOptionsMap); + +impl VoteOptions { + pub fn parse_coma_separated_value(csv: &str) -> VoteOptions { + VoteOptions(csv.split(',').map(str::to_string).zip(0..).collect()) + } + + pub fn as_csv_string(&self) -> String { + self.0 + .iter() + .sorted_by_key(|(_, &i)| i) + .map(|(v, _)| v) + .join(",") + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/models/voteplans.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/models/voteplans.rs new file mode 100644 index 0000000000..f24ac0908d --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/models/voteplans.rs @@ -0,0 +1,92 @@ +use crate::db::schema::voteplans; +use diesel::{ExpressionMethods, Insertable, Queryable}; +use serde::{Deserialize, Serialize}; + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, Queryable)] +pub struct Voteplan { + pub id: i32, + #[serde(alias = "chainVoteplanId")] + pub chain_voteplan_id: String, + #[serde(alias = "chainVoteStartTime")] + #[serde(serialize_with = "crate::utils::serde::serialize_unix_timestamp_as_rfc3339")] + #[serde(deserialize_with = "crate::utils::serde::deserialize_unix_timestamp_from_rfc3339")] + pub chain_vote_start_time: i64, + #[serde(alias = "chainVoteEndTime")] + #[serde(serialize_with = "crate::utils::serde::serialize_unix_timestamp_as_rfc3339")] + #[serde(deserialize_with = "crate::utils::serde::deserialize_unix_timestamp_from_rfc3339")] + pub chain_vote_end_time: i64, + #[serde(alias = "chainCommitteeEndTime")] + #[serde(serialize_with = "crate::utils::serde::serialize_unix_timestamp_as_rfc3339")] + #[serde(deserialize_with = "crate::utils::serde::deserialize_unix_timestamp_from_rfc3339")] + pub chain_committee_end_time: i64, + #[serde(alias = "chainVoteplanPayload")] + pub chain_voteplan_payload: String, + #[serde(alias = "chainVoteEncryptionKey")] + pub chain_vote_encryption_key: String, + #[serde(alias = "fundId")] + pub fund_id: i32, +} + +// This warning is disabled here. Values is only referenced as a type here. It should be ok not to +// split the types definitions. +#[allow(clippy::type_complexity)] +impl Insertable for Voteplan { + type Values = ( + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + diesel::dsl::Eq, + ); + + fn values(self) -> Self::Values { + ( + voteplans::chain_voteplan_id.eq(self.chain_voteplan_id), + voteplans::chain_vote_start_time.eq(self.chain_vote_start_time), + voteplans::chain_vote_end_time.eq(self.chain_vote_end_time), + voteplans::chain_committee_end_time.eq(self.chain_committee_end_time), + voteplans::chain_voteplan_payload.eq(self.chain_voteplan_payload), + voteplans::chain_vote_encryption_key.eq(self.chain_vote_encryption_key), + voteplans::fund_id.eq(self.fund_id), + ) + } +} + +#[cfg(test)] +pub mod test { + use crate::db::{models::voteplans::Voteplan, schema::voteplans, DbConnectionPool}; + use diesel::{ExpressionMethods, RunQueryDsl}; + use time::OffsetDateTime; + + pub fn get_test_voteplan_with_fund_id(fund_id: i32) -> Voteplan { + Voteplan { + id: 1, + chain_voteplan_id: format!("test_vote_plan{fund_id}"), + chain_vote_start_time: OffsetDateTime::now_utc().unix_timestamp(), + chain_vote_end_time: OffsetDateTime::now_utc().unix_timestamp(), + chain_committee_end_time: OffsetDateTime::now_utc().unix_timestamp(), + chain_voteplan_payload: "foopayload".to_string(), + chain_vote_encryption_key: "enckey".to_string(), + fund_id, + } + } + + pub fn populate_db_with_voteplan(voteplan: &Voteplan, pool: &DbConnectionPool) { + let connection = pool.get().unwrap(); + let values = ( + voteplans::chain_voteplan_id.eq(voteplan.chain_voteplan_id.clone()), + voteplans::chain_vote_start_time.eq(voteplan.chain_vote_start_time), + voteplans::chain_vote_end_time.eq(voteplan.chain_vote_end_time), + voteplans::chain_committee_end_time.eq(voteplan.chain_committee_end_time), + voteplans::chain_voteplan_payload.eq(voteplan.chain_voteplan_payload.clone()), + voteplans::chain_vote_encryption_key.eq(voteplan.chain_vote_encryption_key.clone()), + voteplans::fund_id.eq(voteplan.fund_id), + ); + diesel::insert_into(voteplans::table) + .values(values) + .execute(&connection) + .unwrap(); + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/queries/api_tokens.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/queries/api_tokens.rs new file mode 100644 index 0000000000..1b4fa1d5bb --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/queries/api_tokens.rs @@ -0,0 +1,96 @@ +use crate::db::models::api_tokens::ApiTokenData; +use crate::db::{ + models::api_tokens as api_token_model, + schema::{api_tokens, api_tokens::dsl::api_tokens as api_tokens_dsl}, + DbConnection, DbConnectionPool, +}; +use crate::v0::api_token::ApiToken; +use crate::v0::errors::HandleError; +use diesel::query_dsl::RunQueryDsl; +use diesel::{ExpressionMethods, Insertable, OptionalExtension, QueryDsl, QueryResult}; +use time::{Duration, OffsetDateTime}; + +pub async fn query_token( + token: ApiToken, + pool: &DbConnectionPool, +) -> Result, HandleError> { + let db_conn = pool.get().map_err(HandleError::DatabaseError)?; + tokio::task::spawn_blocking(move || { + query_token_data_by_token(token.as_ref(), &db_conn) + .map_err(|e| HandleError::InternalError(e.to_string())) + }) + .await + .map_err(|_| HandleError::InternalError("Error executing request".to_string()))? +} + +/// Insert a token asynchronously. This method is a wrapper over `insert_data_token` that uses the same +/// approach synchronously for a complete formed APITokenData object related to the database model. +pub async fn insert_token(token: &ApiToken, pool: &DbConnectionPool) -> Result<(), HandleError> { + let db_conn = pool.get().map_err(HandleError::DatabaseError)?; + + let api_token_data = ApiTokenData { + token: token.clone(), + creation_time: OffsetDateTime::now_utc().unix_timestamp(), + expire_time: (OffsetDateTime::now_utc() + Duration::days(365)).unix_timestamp(), + }; + + tokio::task::spawn_blocking(move || { + insert_token_data(api_token_data, &db_conn) + .map(|_| ()) + .map_err(|e| HandleError::InternalError(e.to_string())) + }) + .await + .map_err(|_| HandleError::InternalError("Error executing request".to_string()))? +} + +pub fn query_token_data_by_token( + raw_token: &[u8], + db_conn: &DbConnection, +) -> Result, diesel::result::Error> { + api_tokens_dsl + .filter(api_tokens::token.eq(raw_token)) + .first::(db_conn) + .optional() +} + +pub fn insert_token_data(token_data: ApiTokenData, db_conn: &DbConnection) -> QueryResult { + diesel::insert_into(api_tokens::table) + .values(token_data.values()) + .execute(db_conn) +} + +pub fn batch_insert_token_data( + tokens_data: &[ApiTokenData], + db_conn: &DbConnection, +) -> QueryResult { + diesel::insert_into(api_tokens::table) + .values( + tokens_data + .iter() + .map(|t| t.clone().values()) + .collect::>(), + ) + .execute(db_conn) +} + +#[cfg(test)] +mod test { + use super::*; + use crate::db::{ + load_db_connection_pool, migrations as db_testing, models::api_tokens::ApiTokenData, + DbConnectionPool, + }; + + #[tokio::test] + async fn api_token_insert_and_retrieve() { + // initialize db + let pool: DbConnectionPool = load_db_connection_pool("").unwrap(); + db_testing::initialize_db_with_migration(&pool.get().unwrap()); + + // checks + let token = ApiToken::new(b"foo_bar_zen".to_vec()); + insert_token(&token, &pool).await.unwrap(); + let token_data: ApiTokenData = query_token(token.clone(), &pool).await.unwrap().unwrap(); + assert_eq!(token_data.token, token); + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/queries/challenges.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/queries/challenges.rs new file mode 100644 index 0000000000..3c776a2f07 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/queries/challenges.rs @@ -0,0 +1,82 @@ +use crate::{ + db::{ + models::{challenges::Challenge, proposals::Proposal}, + schema::challenges::{self, dsl as challenges_dsl}, + views_schema::full_proposals_info::dsl as proposals_dsl, + DbConnection, DbConnectionPool, + }, + v0::errors::HandleError, +}; +use diesel::{ExpressionMethods, Insertable, QueryDsl, QueryResult, RunQueryDsl}; + +pub async fn query_all_challenges(pool: &DbConnectionPool) -> Result, HandleError> { + let db_conn = pool.get().map_err(HandleError::DatabaseError)?; + tokio::task::spawn_blocking(move || { + diesel::QueryDsl::order_by( + challenges_dsl::challenges, + challenges::dsl::internal_id.asc(), + ) + .load::(&db_conn) + .map_err(|_| HandleError::InternalError("Error retrieving challenges".to_string())) + }) + .await + .map_err(|_e| HandleError::InternalError("Error executing request".to_string()))? +} + +pub async fn query_challenge_by_id( + id: i32, + pool: &DbConnectionPool, +) -> Result { + let db_conn = pool.get().map_err(HandleError::DatabaseError)?; + tokio::task::spawn_blocking(move || { + diesel::QueryDsl::filter(challenges_dsl::challenges, challenges_dsl::id.eq(id)) + .first::(&db_conn) + .map_err(|_e| HandleError::NotFound("Error loading challenge".to_string())) + }) + .await + .map_err(|_e| HandleError::InternalError("Error executing request".to_string()))? +} + +pub async fn query_challenges_by_fund_id( + fund_id: i32, + pool: &DbConnectionPool, +) -> Result, HandleError> { + let db_conn = pool.get().map_err(HandleError::DatabaseError)?; + tokio::task::spawn_blocking(move || { + diesel::QueryDsl::filter( + challenges_dsl::challenges, + challenges_dsl::fund_id.eq(fund_id), + ) + .order_by(challenges::dsl::internal_id.asc()) + .load::(&db_conn) + .map_err(|_e| HandleError::NotFound("Error loading challenges for fund id".to_string())) + }) + .await + .map_err(|_e| HandleError::InternalError("Error executing request".to_string()))? +} + +pub async fn query_challenge_proposals_by_id( + id: i32, + pool: &DbConnectionPool, +) -> Result, HandleError> { + let db_conn = pool.get().map_err(HandleError::DatabaseError)?; + tokio::task::spawn_blocking(move || { + diesel::QueryDsl::filter( + proposals_dsl::full_proposals_info, + proposals_dsl::challenge_id.eq(id), + ) + .load::(&db_conn) + .map_err(|_e| HandleError::NotFound("Error loading challenge".to_string())) + }) + .await + .map_err(|_e| HandleError::InternalError("Error executing request".to_string()))? +} + +pub fn batch_insert_challenges( + challenges: &[>::Values], + db_conn: &DbConnection, +) -> QueryResult { + diesel::insert_into(challenges::table) + .values(challenges) + .execute(db_conn) +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/queries/community_advisors_reviews.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/queries/community_advisors_reviews.rs new file mode 100644 index 0000000000..4c18465eef --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/queries/community_advisors_reviews.rs @@ -0,0 +1,40 @@ +use crate::db::{ + models::community_advisors_reviews::AdvisorReview, + schema::community_advisors_reviews::{self, dsl as reviews_dsl}, + DbConnection, DbConnectionPool, +}; +use crate::v0::errors::HandleError; + +use diesel::{ExpressionMethods, Insertable, QueryDsl, QueryResult, RunQueryDsl}; + +pub async fn query_reviews_by_fund_id( + id: i32, + pool: &DbConnectionPool, +) -> Result, HandleError> { + let db_conn = pool.get().map_err(HandleError::DatabaseError)?; + tokio::task::spawn_blocking(move || { + reviews_dsl::community_advisors_reviews + .filter(reviews_dsl::proposal_id.eq(id)) + .load::(&db_conn) + .map_err(|_e| { + HandleError::NotFound("Error loading community advisors reviews".to_string()) + }) + }) + .await + .map_err(|_e| HandleError::InternalError("Error executing request".to_string()))? +} + +pub fn batch_insert_advisor_reviews( + reviews: &[AdvisorReview], + db_conn: &DbConnection, +) -> QueryResult { + diesel::insert_into(community_advisors_reviews::table) + .values( + reviews + .iter() + .cloned() + .map(|r| r.values()) + .collect::>(), + ) + .execute(db_conn) +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/queries/funds.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/queries/funds.rs new file mode 100644 index 0000000000..6ca0e238ba --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/queries/funds.rs @@ -0,0 +1,142 @@ +use crate::db::{ + models::{ + challenges::Challenge, + funds::{Fund, FundStageDates}, + goals::Goal, + voteplans::Voteplan, + }, + schema::{ + challenges::dsl as challenges_dsl, funds, funds::dsl as fund_dsl, goals::dsl as goals_dsl, + voteplans::dsl as voteplans_dsl, + }, + DbConnection, DbConnectionPool, +}; +use crate::v0::errors::HandleError; +use diesel::{ + r2d2::{ConnectionManager, PooledConnection}, + ExpressionMethods, Insertable, QueryDsl, QueryResult, RunQueryDsl, SqliteConnection, +}; +use serde::{Deserialize, Serialize}; + +fn join_fund( + mut fund: Fund, + db_conn: &PooledConnection>, +) -> Result { + let id = fund.id; + + fund.chain_vote_plans = voteplans_dsl::voteplans + .filter(voteplans_dsl::fund_id.eq(id)) + .load::(db_conn) + .map_err(|_e| HandleError::NotFound("Error loading voteplans".to_string()))?; + + fund.challenges = challenges_dsl::challenges + .filter(challenges_dsl::fund_id.eq(id)) + .load::(db_conn) + .map_err(|_e| HandleError::NotFound("Error loading challenges".to_string()))?; + + fund.goals = goals_dsl::goals + .filter(goals_dsl::fund_id.eq(id)) + .load::(db_conn) + .map_err(|_e| HandleError::NotFound("Error loading goals".to_string()))?; + + Ok(fund) +} + +pub async fn query_fund_by_id(id: i32, pool: &DbConnectionPool) -> Result { + let db_conn = pool.get().map_err(HandleError::DatabaseError)?; + tokio::task::spawn_blocking(move || { + let fund = fund_dsl::funds + .filter(fund_dsl::id.eq(id)) + .first::(&db_conn) + .map_err(|_e| HandleError::NotFound("fund".to_string()))?; + + join_fund(fund, &db_conn) + }) + .await + .map_err(|_e| HandleError::InternalError("Error executing request".to_string()))? +} + +#[derive(Serialize, Deserialize, Debug)] +pub struct FundWithNext { + #[serde(flatten)] + pub fund: Fund, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub next: Option, +} + +#[derive(Serialize, Deserialize, Debug)] +pub struct FundNextInfo { + pub id: i32, + pub fund_name: String, + #[serde(flatten)] + pub stage_dates: FundStageDates, +} + +pub async fn query_current_fund(pool: &DbConnectionPool) -> Result { + let db_conn = pool.get().map_err(HandleError::DatabaseError)?; + tokio::task::spawn_blocking(move || { + let funds: Vec = fund_dsl::funds + // TODO: Not sure if sorting by the PK is actually necessary + // + // this assumes that the next will be the second inserted + // and that the current is the first. + .order(fund_dsl::id) + .limit(2) + .load(&db_conn) + .map_err(|_e| HandleError::NotFound("fund".to_string()))?; + + let mut funds = funds.into_iter(); + let current = funds + .next() + .ok_or_else(|| HandleError::NotFound("current found not found".to_string()))?; + + let next = funds.next(); + + let current = join_fund(current, &db_conn)?; + + Ok(FundWithNext { + fund: current, + next: next.map(|f| FundNextInfo { + id: f.id, + fund_name: f.fund_name, + stage_dates: f.stage_dates, + }), + }) + }) + .await + .map_err(|_e| HandleError::InternalError("Error executing request".to_string()))? +} + +pub async fn query_all_funds(pool: &DbConnectionPool) -> Result, HandleError> { + let db_conn = pool.get().map_err(HandleError::DatabaseError)?; + tokio::task::spawn_blocking(move || { + fund_dsl::funds + .select(fund_dsl::id) + .load::(&db_conn) + .map_err(|_| HandleError::InternalError("Error retrieving funds".to_string())) + }) + .await + .map_err(|_e| HandleError::InternalError("Error executing request".to_string()))? +} + +pub fn insert_fund(fund: Fund, db_conn: &DbConnection) -> QueryResult { + diesel::insert_into(funds::table) + .values(fund.values()) + .execute(db_conn)?; + // This can be done in a single query if we move to postgres or any DB that supports `get_result` + // instead of `execute` in the previous insert + funds::table.order(fund_dsl::id.desc()).first(db_conn) +} + +pub async fn put_fund(fund: Fund, pool: &DbConnectionPool) -> Result<(), HandleError> { + let db_conn = pool.get().map_err(HandleError::DatabaseError)?; + diesel::replace_into(funds::table) + .values(fund.values()) + .execute(&db_conn) + .map_err(|_e| HandleError::InternalError("Error executing request".to_string()))?; + + // TODO: + // replace the voteplan and challenges too? + + Ok(()) +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/queries/goals.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/queries/goals.rs new file mode 100644 index 0000000000..504736f8b7 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/queries/goals.rs @@ -0,0 +1,8 @@ +use crate::db::{models::goals::InsertGoal, schema::goals, DbConnection}; +use diesel::{QueryResult, RunQueryDsl}; + +pub fn batch_insert(goals: Vec, db_conn: &DbConnection) -> QueryResult { + diesel::insert_into(goals::table) + .values(goals) + .execute(db_conn) +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/queries/mod.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/queries/mod.rs new file mode 100644 index 0000000000..f20eb9c1b7 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/queries/mod.rs @@ -0,0 +1,7 @@ +pub mod api_tokens; +pub mod challenges; +pub mod community_advisors_reviews; +pub mod funds; +pub mod goals; +pub mod proposals; +pub mod voteplans; diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/queries/proposals.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/queries/proposals.rs new file mode 100644 index 0000000000..4413d672f6 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/queries/proposals.rs @@ -0,0 +1,103 @@ +use crate::db::models::proposals::{community_choice, simple, FullProposalInfo, Proposal}; +use crate::db::schema::proposals; +use crate::db::{ + schema::{ + proposal_community_choice_challenge as community_choice_proposal_dsl, + proposal_simple_challenge as simple_proposal_dsl, + }, + views_schema::full_proposals_info::dsl as full_proposal_dsl, + views_schema::full_proposals_info::dsl::full_proposals_info, + DbConnection, DbConnectionPool, +}; +use crate::v0::errors::HandleError; +use diesel::query_dsl::filter_dsl::FilterDsl; +use diesel::{ExpressionMethods, Insertable, QueryResult, RunQueryDsl}; + +pub async fn query_all_proposals( + pool: &DbConnectionPool, +) -> Result, HandleError> { + let db_conn = pool.get().map_err(HandleError::DatabaseError)?; + tokio::task::spawn_blocking(move || { + full_proposals_info + .load::(&db_conn) + .map_err(|_e| HandleError::NotFound("proposals".to_string())) + }) + .await + .map_err(|_e| HandleError::InternalError("Error executing request".to_string()))? +} + +pub async fn query_proposal_by_id( + id: i32, + pool: &DbConnectionPool, +) -> Result { + let db_conn = pool.get().map_err(HandleError::DatabaseError)?; + tokio::task::spawn_blocking(move || { + full_proposals_info + .filter(full_proposal_dsl::id.eq(id)) + .first::(&db_conn) + .map_err(|_e| HandleError::NotFound(format!("proposal with id {}", id))) + }) + .await + .map_err(|_e| HandleError::InternalError("Error executing request".to_string()))? +} + +pub async fn query_proposals_by_voteplan_id_and_indexes( + voteplan_id: String, + indexes: Vec, + pool: DbConnectionPool, +) -> Result, HandleError> { + let db_conn = pool.get().map_err(HandleError::DatabaseError)?; + tokio::task::spawn_blocking(move || { + full_proposals_info + .filter(full_proposal_dsl::chain_voteplan_id.eq(voteplan_id.clone())) + .filter(full_proposal_dsl::chain_proposal_index.eq_any(&indexes)) + .load::(&db_conn) + .map_err(|_e| { + HandleError::NotFound(format!( + "proposal with voteplan id {} and indexes {:?}", + voteplan_id, indexes + )) + }) + }) + .await + .map_err(|_e| HandleError::InternalError("Error executing request".to_string()))? +} + +pub fn insert_proposal(proposal: Proposal, db_conn: &DbConnection) -> QueryResult { + diesel::insert_into(proposals::table) + .values(proposal.values()) + .execute(db_conn) +} + +pub fn batch_insert_proposals( + proposals_slice: &[Proposal], + db_conn: &DbConnection, +) -> QueryResult { + diesel::insert_into(proposals::table) + .values( + proposals_slice + .iter() + .cloned() + .map(|proposal| proposal.values()) + .collect::>(), + ) + .execute(db_conn) +} + +pub fn batch_insert_community_choice_challenge_data( + values: &[community_choice::ChallengeSqlValues], + db_conn: &DbConnection, +) -> QueryResult { + diesel::insert_into(community_choice_proposal_dsl::table) + .values(values) + .execute(db_conn) +} + +pub fn batch_insert_simple_challenge_data( + values: &[simple::ChallengeSqlValues], + db_conn: &DbConnection, +) -> QueryResult { + diesel::insert_into(simple_proposal_dsl::table) + .values(values) + .execute(db_conn) +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/queries/voteplans.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/queries/voteplans.rs new file mode 100644 index 0000000000..2aa38a95e4 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/queries/voteplans.rs @@ -0,0 +1,58 @@ +use crate::db::{ + models::voteplans::Voteplan, schema::voteplans, schema::voteplans::dsl as voteplans_dsl, + DbConnection, DbConnectionPool, +}; +use crate::v0::errors::HandleError; +use diesel::{ExpressionMethods, Insertable, QueryDsl, QueryResult, RunQueryDsl}; + +pub async fn query_voteplan_by_id( + id: i32, + pool: &DbConnectionPool, +) -> Result, HandleError> { + let db_conn = pool.get().map_err(HandleError::DatabaseError)?; + tokio::task::spawn_blocking(move || { + diesel::QueryDsl::filter(voteplans_dsl::voteplans, voteplans_dsl::fund_id.eq(id)) + .load::(&db_conn) + .map_err(|_e| HandleError::NotFound(format!("voteplan with id {}", id))) + }) + .await + .map_err(|_e| HandleError::InternalError("Error executing request".to_string()))? +} + +pub fn insert_voteplan(voteplan: Voteplan, db_conn: &DbConnection) -> QueryResult { + diesel::insert_into(voteplans::table) + .values(voteplan.values()) + .execute(db_conn)?; + + // This can be done in a single query if we move to postgres or any DB that supports `get_result` + // instead of `execute` in the previous insert + voteplans::table.order(voteplans::id.desc()).first(db_conn) +} + +pub fn batch_insert_voteplans( + voteplans_slice: &[Voteplan], + db_conn: &DbConnection, +) -> QueryResult> { + let len = voteplans_slice.len(); + + diesel::insert_into(voteplans::table) + .values( + voteplans_slice + .iter() + .cloned() + .map(|voteplan| voteplan.values()) + .collect::>(), + ) + .execute(db_conn)?; + + // This can be done in a single query if we move to postgres or any DB that supports `get_result` + // instead of `execute` in the previous insert + Ok(voteplans::table + .order(voteplans::id.desc()) + .limit(len as i64) + .load(db_conn)? + .iter() + .cloned() + .rev() + .collect()) +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/schema.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/schema.rs new file mode 100644 index 0000000000..615b010578 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/schema.rs @@ -0,0 +1,139 @@ +table! { + api_tokens (token) { + token -> Binary, + creation_time -> BigInt, + expire_time -> BigInt, + } +} + +table! { + challenges (id) { + internal_id -> Integer, + id -> Integer, + challenge_type -> Text, + title -> Text, + description -> Text, + rewards_total -> BigInt, + proposers_rewards -> BigInt, + fund_id -> Integer, + challenge_url -> Text, + highlights -> Nullable, + } +} + +table! { + community_advisors_reviews (id) { + id -> Integer, + proposal_id -> Integer, + assessor -> Text, + impact_alignment_rating_given -> Integer, + impact_alignment_note -> Text, + feasibility_rating_given -> Integer, + feasibility_note -> Text, + auditability_rating_given -> Integer, + auditability_note -> Text, + ranking -> Integer, + } +} + +table! { + funds (id) { + id -> Integer, + fund_name -> Text, + fund_goal -> Text, + registration_snapshot_time -> BigInt, + next_registration_snapshot_time -> BigInt, + voting_power_threshold -> BigInt, + fund_start_time -> BigInt, + fund_end_time -> BigInt, + next_fund_start_time -> BigInt, + insight_sharing_start -> BigInt, + proposal_submission_start -> BigInt, + refine_proposals_start -> BigInt, + finalize_proposals_start -> BigInt, + proposal_assessment_start -> BigInt, + assessment_qa_start -> BigInt, + snapshot_start -> BigInt, + voting_start -> BigInt, + voting_end -> BigInt, + tallying_end -> BigInt, + results_url -> Text, + survey_url -> Text, + } +} + +table! { + goals (id) { + id -> Integer, + goal_name -> Text, + fund_id -> Integer, + } +} + +table! { + proposal_community_choice_challenge (proposal_id) { + proposal_id -> Text, + proposal_brief -> Nullable, + proposal_importance -> Nullable, + proposal_goal -> Nullable, + proposal_metrics -> Nullable, + } +} + +table! { + proposal_simple_challenge (proposal_id) { + proposal_id -> Text, + proposal_solution -> Nullable, + } +} + +table! { + proposals (id) { + id -> Integer, + proposal_id -> Text, + proposal_category -> Text, + proposal_title -> Text, + proposal_summary -> Text, + proposal_public_key -> Text, + proposal_funds -> BigInt, + proposal_url -> Text, + proposal_files_url -> Text, + proposal_impact_score -> BigInt, + proposer_name -> Text, + proposer_contact -> Text, + proposer_url -> Text, + proposer_relevant_experience -> Text, + chain_proposal_id -> Binary, + chain_proposal_index -> BigInt, + chain_vote_options -> Text, + chain_voteplan_id -> Text, + challenge_id -> Integer, + } +} + +table! { + voteplans (id) { + id -> Integer, + chain_voteplan_id -> Text, + chain_vote_start_time -> BigInt, + chain_vote_end_time -> BigInt, + chain_committee_end_time -> BigInt, + chain_voteplan_payload -> Text, + chain_vote_encryption_key -> Text, + fund_id -> Integer, + } +} + +joinable!(goals -> funds (fund_id)); + +allow_tables_to_appear_in_same_query!( + api_tokens, + challenges, + community_advisors_reviews, + funds, + goals, + proposal_community_choice_challenge, + proposal_simple_challenge, + proposals, + voteplans, +); diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/views_schema.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/views_schema.rs new file mode 100644 index 0000000000..528afb64f6 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/db/views_schema.rs @@ -0,0 +1,38 @@ +use diesel::table; + +table! { + full_proposals_info { + id -> Integer, + proposal_id -> Text, + proposal_category -> Text, + proposal_title -> Text, + proposal_summary -> Text, + proposal_public_key -> Text, + proposal_funds -> BigInt, + proposal_url -> Text, + proposal_files_url -> Text, + proposal_impact_score -> BigInt, + proposer_name -> Text, + proposer_contact -> Text, + proposer_url -> Text, + proposer_relevant_experience -> Text, + chain_proposal_id -> Binary, + chain_proposal_index -> BigInt, + chain_vote_options -> Text, + chain_voteplan_id -> Text, + chain_vote_start_time -> BigInt, + chain_vote_end_time -> BigInt, + chain_committee_end_time -> BigInt, + chain_voteplan_payload -> Text, + chain_vote_encryption_key -> Text, + fund_id -> Integer, + challenge_id -> Integer, + reviews_count -> Integer, + challenge_type -> Text, + proposal_solution -> Nullable, + proposal_brief -> Nullable, + proposal_importance -> Nullable, + proposal_goal -> Nullable, + proposal_metrics -> Nullable, + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/lib.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/lib.rs new file mode 100644 index 0000000000..587ecf60b0 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/lib.rs @@ -0,0 +1,12 @@ +#[macro_use] +extern crate diesel; +#[macro_use] +extern crate structopt; + +#[macro_use] +extern crate diesel_migrations; + +pub mod db; +pub mod server; +pub mod utils; +pub mod v0; diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/server/bootstrapping.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/server/bootstrapping.rs new file mode 100644 index 0000000000..195855dc6d --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/server/bootstrapping.rs @@ -0,0 +1,77 @@ +use super::settings::{Cors, ServiceSettings, Tls}; + +use std::time::Duration; +use warp::filters::cors::Builder as CorsBuilder; +use warp::{Filter, TlsServer}; + +fn setup_cors(cors_config: Cors) -> CorsBuilder { + let mut cors: CorsBuilder = if let Some(allowed_origins) = cors_config.allowed_origins { + let allowed_origins: Vec<&str> = allowed_origins.iter().map(AsRef::as_ref).collect(); + warp::cors().allow_origins(allowed_origins) + } else { + warp::cors().allow_any_origin() + }; + + if let Some(max_age) = cors_config.max_age_secs { + cors = cors.max_age(Duration::from_secs(max_age)); + } + cors +} + +fn setup_tls(app: App, tls_config: Tls) -> TlsServer +where + App: Filter + Clone + Send + Sync + 'static, + App::Extract: warp::Reply, +{ + assert!( + tls_config.is_loaded(), + "Tls config should be filled before calling setup" + ); + let (cert_file, priv_key_file) = ( + tls_config.cert_file.unwrap(), + tls_config.priv_key_file.unwrap(), + ); + warp::serve(app) + .tls() + .cert_path(cert_file) + .key_path(priv_key_file) +} + +async fn start_server_with_config(app: App, settings: ServiceSettings) +where + App: Filter + Clone + Send + Sync + 'static, + App::Extract: warp::Reply, +{ + let app = app.with(setup_cors(settings.cors)); + + if settings.tls.is_loaded() { + let (_, server) = setup_tls(app, settings.tls).bind_with_graceful_shutdown( + settings.address, + super::signals::watch_signal_for_shutdown(), + ); + server.await + } else { + let (_, server) = warp::serve(app).bind_with_graceful_shutdown( + settings.address, + super::signals::watch_signal_for_shutdown(), + ); + server.await + }; +} + +pub async fn start_server(app: App, settings: Option) +where + App: Filter + Clone + Send + Sync + 'static, + App::Extract: warp::Reply, +{ + if let Some(settings) = settings { + start_server_with_config(app, settings).await + } else { + // easy way of starting a local debug server + let (_, server) = warp::serve(app).bind_with_graceful_shutdown( + ([127, 0, 0, 1], 3030), + super::signals::watch_signal_for_shutdown(), + ); + server.await + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/server/exit_codes.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/server/exit_codes.rs new file mode 100644 index 0000000000..131ff57478 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/server/exit_codes.rs @@ -0,0 +1,30 @@ +#[derive(PartialEq, Eq, Debug)] +pub enum ApplicationExitCode { + WriteSettingsError = 10, + LoadSettingsError, + DbConnectionError, + ServiceVersionError, + SnapshotWatcherError, +} + +impl ApplicationExitCode { + // TODO: this method can be generalize once std::num new features is stabilized. + // https://doc.rust-lang.org/0.12.0/std/num/trait.Num.html + // https://doc.rust-lang.org/0.12.0/std/num/trait.FromPrimitive.html + pub fn from_i32(n: i32) -> Option { + match n { + 10 => Some(Self::WriteSettingsError), + 11 => Some(Self::LoadSettingsError), + 12 => Some(Self::DbConnectionError), + 13 => Some(Self::ServiceVersionError), + 14 => Some(Self::SnapshotWatcherError), + _ => None, + } + } +} + +impl From for i32 { + fn from(exit_code: ApplicationExitCode) -> Self { + exit_code as i32 + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/server/mod.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/server/mod.rs new file mode 100644 index 0000000000..899070ea85 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/server/mod.rs @@ -0,0 +1,6 @@ +pub mod bootstrapping; +pub mod exit_codes; +pub mod settings; +pub mod signals; + +pub use bootstrapping::start_server; diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/server/settings/config.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/server/settings/config.rs new file mode 100644 index 0000000000..c83bc5dfb2 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/server/settings/config.rs @@ -0,0 +1,544 @@ +use serde::{de::Visitor, Deserialize, Deserializer, Serialize}; +use simplelog::LevelFilter; +use std::io::ErrorKind; +use std::net::SocketAddr; +use std::ops::Deref; +use std::path::PathBuf; +use std::str::FromStr; +use std::{fmt, fs}; + +/// Settings environment variables names +const DATABASE_URL: &str = "DATABASE_URL"; +const TLS_CERT_FILE: &str = "TLS_CERT_FILE"; +const TLS_PRIVATE_KEY_FILE: &str = "TLS_PK_FILE"; +const CORS_ALLOWED_ORIGINS: &str = "CORS_ALLOWED_ORIGINS"; +const VIT_SERVICE_VERSION_ENV_VARIABLE: &str = "SERVICE_VERSION"; + +pub(crate) const ADDRESS_DEFAULT: &str = "0.0.0.0:3030"; +pub(crate) const DB_URL_DEFAULT: &str = "./db/database.sqlite3"; +pub(crate) const BLOCK0_PATH_DEFAULT: &str = "./resources/v0/block0.bin"; + +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, StructOpt)] +#[serde(deny_unknown_fields)] +#[structopt(rename_all = "kebab-case")] +pub struct ServiceSettings { + /// Load settings from file + #[serde(skip)] + #[structopt(long)] + pub in_settings_file: Option, + + /// Dump current settings to file + #[serde(skip)] + #[structopt(long)] + pub out_settings_file: Option, + + /// Server binding address + #[structopt(long, default_value = ADDRESS_DEFAULT)] + pub address: SocketAddr, + + #[serde(default)] + #[structopt(flatten)] + pub tls: Tls, + + #[serde(default)] + #[structopt(flatten)] + pub cors: Cors, + + /// Database url + #[structopt(long, env = DATABASE_URL, default_value = DB_URL_DEFAULT)] + pub db_url: String, + + /// block0 static file path + #[structopt(long, default_value = BLOCK0_PATH_DEFAULT)] + pub block0_path: String, + + /// Enable API Tokens feature + #[serde(default)] + #[structopt(long)] + pub enable_api_tokens: bool, + + #[serde(default)] + #[structopt(flatten)] + pub log: Log, + + #[structopt(long, env = VIT_SERVICE_VERSION_ENV_VARIABLE)] + pub service_version: String, +} + +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, StructOpt, Default)] +#[serde(deny_unknown_fields)] +#[structopt(rename_all = "kebab-case")] +pub struct Tls { + /// Path to server X.509 certificate chain file, must be PEM-encoded and contain at least 1 item + #[structopt(long, env = TLS_CERT_FILE)] + pub cert_file: Option, + + /// Path to server private key file, must be PKCS8 with single PEM-encoded, unencrypted key + #[structopt(long, env = TLS_PRIVATE_KEY_FILE)] + pub priv_key_file: Option, +} + +#[derive(Debug, Clone, Default, Serialize, PartialEq, Eq)] +pub struct CorsOrigin(String); + +#[derive(Debug, Default, Clone, Serialize, Deserialize, PartialEq, Eq)] +pub struct AllowedOrigins(Vec); + +#[derive(Debug, Clone, Default, Serialize, Deserialize, PartialEq, Eq, StructOpt)] +#[serde(deny_unknown_fields)] +#[structopt(rename_all = "kebab-case")] +pub struct Cors { + /// If none provided, echos request origin + #[serde(default)] + #[structopt(long, env = CORS_ALLOWED_ORIGINS, parse(try_from_str = parse_allowed_origins))] + pub allowed_origins: Option, + /// If none provided, CORS responses won't be cached + #[structopt(long)] + pub max_age_secs: Option, +} + +#[derive(Debug, Copy, Clone, Serialize, Deserialize, PartialEq, Eq)] +#[serde(rename_all = "lowercase")] +#[derive(Default)] +pub enum LogLevel { + #[default] + Disabled, + Error, + Warn, + Info, + Debug, + Trace, +} + +#[derive(Debug, Default, Clone, Serialize, Deserialize, PartialEq, Eq, StructOpt)] +#[serde(deny_unknown_fields)] +#[structopt(rename_all = "kebab-case")] +pub struct Log { + /// Output log file path + #[structopt(long)] + pub log_output_path: Option, + + /// Application logging level + #[structopt(long)] + pub log_level: Option, +} + +fn parse_allowed_origins(arg: &str) -> Result { + let mut res: Vec = Vec::new(); + for origin_str in arg.split(';') { + res.push(CorsOrigin::from_str(origin_str)?); + } + Ok(AllowedOrigins(res)) +} + +impl ServiceSettings { + pub fn override_from(&self, other_settings: &ServiceSettings) -> Self { + let mut return_settings = self.clone(); + + if let Some(in_file) = &other_settings.in_settings_file { + return_settings.in_settings_file = Some(in_file.clone()); + } + + if let Some(out_file) = &other_settings.out_settings_file { + return_settings.out_settings_file = Some(out_file.clone()); + } + + if other_settings.address != SocketAddr::from_str(ADDRESS_DEFAULT).unwrap() { + return_settings.address = other_settings.address; + } + + if other_settings.tls.is_loaded() { + return_settings.tls = other_settings.tls.clone(); + } + + if other_settings.cors.allowed_origins.is_some() { + return_settings.cors.allowed_origins = other_settings.cors.allowed_origins.clone(); + } + + if other_settings.cors.max_age_secs.is_some() { + return_settings.cors.max_age_secs = other_settings.cors.max_age_secs + } + + if other_settings.db_url != DB_URL_DEFAULT { + return_settings.db_url = other_settings.db_url.clone(); + } + + if other_settings.block0_path != BLOCK0_PATH_DEFAULT { + return_settings.block0_path = other_settings.block0_path.clone(); + } + + if other_settings.log.log_level.is_some() { + return_settings.log.log_level = other_settings.log.log_level; + } + + if other_settings.log.log_output_path.is_some() { + return_settings.log.log_output_path = other_settings.log.log_output_path.clone(); + } + + if !other_settings.service_version.is_empty() { + return_settings.service_version = other_settings.service_version.clone(); + } + + return_settings.enable_api_tokens = other_settings.enable_api_tokens; + + return_settings + } +} + +impl Tls { + pub fn is_loaded(&self) -> bool { + self.priv_key_file.is_some() && self.cert_file.is_some() + } +} + +impl<'de> Deserialize<'de> for CorsOrigin { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct CorsOriginVisitor; + impl<'de> Visitor<'de> for CorsOriginVisitor { + type Value = CorsOrigin; + + fn expecting(&self, fmt: &mut fmt::Formatter) -> fmt::Result { + write!(fmt, "an origin in format http[s]://example.com[:3000]",) + } + + fn visit_str(self, v: &str) -> std::result::Result + where + E: serde::de::Error, + { + CorsOrigin::from_str(v).map_err(E::custom) + } + } + deserializer.deserialize_str(CorsOriginVisitor) + } +} + +impl FromStr for CorsOrigin { + type Err = std::io::Error; + + fn from_str(origin: &str) -> Result { + let uri = warp::http::uri::Uri::from_str(origin).map_err(|invalid_uri| { + std::io::Error::new( + ErrorKind::InvalidInput, + format!("Invalid uri: {}.\n{}", origin, invalid_uri), + ) + })?; + if let Some(s) = uri.scheme_str() { + if s != "http" && s != "https" { + return Err(std::io::Error::new( + ErrorKind::InvalidInput, + format!( + "Cors origin invalid schema {}, only [http] and [https] are supported: ", + uri.scheme_str().unwrap() + ), + )); + } + } else { + return Err(std::io::Error::new( + ErrorKind::InvalidInput, + "Cors origin missing schema, only [http] or [https] are supported", + )); + } + + if let Some(p) = uri.path_and_query() { + if p.as_str() != "/" { + return Err(std::io::Error::new( + ErrorKind::InvalidInput, + format!("Invalid value {} in cors schema.", p.as_str()), + )); + } + } + Ok(CorsOrigin(origin.trim_end_matches('/').to_owned())) + } +} + +impl AsRef for CorsOrigin { + fn as_ref(&self) -> &str { + &self.0 + } +} + +impl Deref for AllowedOrigins { + type Target = Vec; + + fn deref(&self) -> &Self::Target { + &self.0 + } +} + +impl From for LevelFilter { + fn from(level: LogLevel) -> Self { + match level { + LogLevel::Disabled => LevelFilter::Off, + LogLevel::Error => LevelFilter::Error, + LogLevel::Warn => LevelFilter::Warn, + LogLevel::Info => LevelFilter::Info, + LogLevel::Debug => LevelFilter::Debug, + LogLevel::Trace => LevelFilter::Trace, + } + } +} + +impl From for tracing_subscriber::filter::LevelFilter { + fn from(level: LogLevel) -> Self { + match level { + LogLevel::Disabled => tracing_subscriber::filter::LevelFilter::OFF, + LogLevel::Error => tracing_subscriber::filter::LevelFilter::ERROR, + LogLevel::Warn => tracing_subscriber::filter::LevelFilter::WARN, + LogLevel::Info => tracing_subscriber::filter::LevelFilter::INFO, + LogLevel::Debug => tracing_subscriber::filter::LevelFilter::DEBUG, + LogLevel::Trace => tracing_subscriber::filter::LevelFilter::TRACE, + } + } +} + +impl FromStr for LogLevel { + type Err = std::io::Error; + + fn from_str(s: &str) -> Result { + match s.to_lowercase().as_str() { + "disabled" => Ok(Self::Disabled), + "error" => Ok(Self::Error), + "warn" => Ok(Self::Warn), + "info" => Ok(Self::Info), + "debug" => Ok(Self::Debug), + "trace" => Ok(Self::Trace), + _ => Err(std::io::Error::new( + std::io::ErrorKind::InvalidData, + format!("{} is not a valid log level", s), + )), + } + } +} + +impl fmt::Display for LogLevel { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + match *self { + Self::Disabled => write!(f, "disabled"), + Self::Error => write!(f, "error"), + Self::Warn => write!(f, "warn"), + Self::Info => write!(f, "info"), + Self::Debug => write!(f, "debug"), + Self::Trace => write!(f, "trace"), + } + } +} + +pub fn load_settings_from_file(file_path: &str) -> Result { + let f = fs::File::open(file_path)?; + serde_json::from_reader(&f) + .map_err(|e| std::io::Error::new(std::io::ErrorKind::InvalidInput, e.to_string())) +} + +pub fn dump_settings_to_file( + file_path: &str, + settings: &ServiceSettings, +) -> Result<(), impl std::error::Error> { + let f = fs::File::create(file_path)?; + serde_json::to_writer_pretty(&f, settings) + .map_err(|e| std::io::Error::new(std::io::ErrorKind::Other, e.to_string())) +} + +#[cfg(test)] +mod test { + use super::*; + use std::net::SocketAddr; + use std::str::FromStr; + use structopt::StructOpt; + use tempfile; + + #[test] + fn cors_origin_from_str() { + let s = "https://foo.test"; + CorsOrigin::from_str(s).unwrap(); + } + + #[test] + fn parse_allowed_origins_from_str() { + let s = "https://foo.test;https://test.foo:5050"; + let res = parse_allowed_origins(s).unwrap(); + assert_eq!(res.len(), 2); + assert_eq!(res[0], CorsOrigin::from_str("https://foo.test").unwrap()); + assert_eq!( + res[1], + CorsOrigin::from_str("https://test.foo:5050").unwrap() + ); + } + + #[test] + fn load_json_configuration() { + let raw_config = r#" + { + "address" : "127.0.0.1:3030", + "tls" : { + "cert_file" : "./foo/bar.pem", + "priv_key_file" : "./bar/foo.pem" + }, + "cors" : { + "allowed_origins" : ["https://foo.test"], + "max_age_secs" : 60 + }, + "db_url": "", + "block0_path": "./test/bin.test", + "enable_api_tokens" : true, + "log" : { + "log_output_path" : "./server.log", + "log_level" : "error" + }, + "service_version" : "v0.2.0" + } + "#; + + let config: ServiceSettings = serde_json::from_str(raw_config).unwrap(); + assert_eq!( + config.address, + SocketAddr::from_str("127.0.0.1:3030").unwrap() + ); + assert_eq!(config.block0_path, "./test/bin.test"); + assert!(config.enable_api_tokens); + assert_eq!( + config.log.log_output_path.unwrap(), + std::path::PathBuf::from_str("./server.log").unwrap() + ); + assert_eq!(config.log.log_level, Some(LogLevel::Error)); + assert_eq!(config.service_version, "v0.2.0"); + let tls_config = config.tls; + let cors_config = config.cors; + assert_eq!(tls_config.cert_file.unwrap(), "./foo/bar.pem"); + assert_eq!(tls_config.priv_key_file.unwrap(), "./bar/foo.pem"); + assert_eq!( + cors_config.allowed_origins.unwrap()[0], + CorsOrigin("https://foo.test".to_string()) + ); + assert_eq!(cors_config.max_age_secs.unwrap(), 60); + } + + #[test] + fn dump_and_load_settings_to_file() { + let temp_file_path = tempfile::NamedTempFile::new().unwrap().into_temp_path(); + let settings = ServiceSettings::default(); + let file_path = temp_file_path.to_str().unwrap(); + dump_settings_to_file(file_path, &settings).unwrap(); + let loaded_settings = load_settings_from_file(file_path).unwrap(); + assert_eq!(settings, loaded_settings); + } + + #[test] + fn load_settings_from_cli() { + let settings: ServiceSettings = ServiceSettings::from_iter(&[ + "test", + "--address", + "127.0.0.1:3030", + "--cert-file", + "foo.bar", + "--priv-key-file", + "bar.foo", + "--db-url", + "database.sqlite3", + "--max-age-secs", + "60", + "--allowed-origins", + "https://foo.test;https://test.foo:5050", + "--log-output-path", + "./log.log", + "--log-level", + "error", + "--enable-api-tokens", + "--service-version", + "v0.2.0", + ]); + + assert_eq!( + settings.address, + SocketAddr::from_str("127.0.0.1:3030").unwrap() + ); + + assert!(settings.tls.is_loaded()); + assert!(settings.enable_api_tokens); + assert_eq!(settings.tls.cert_file.unwrap(), "foo.bar"); + assert_eq!(settings.tls.priv_key_file.unwrap(), "bar.foo"); + assert_eq!(settings.db_url, "database.sqlite3"); + assert_eq!(settings.cors.max_age_secs.unwrap(), 60); + assert_eq!(settings.service_version, "v0.2.0"); + let allowed_origins = settings.cors.allowed_origins.unwrap(); + assert_eq!(allowed_origins.len(), 2); + assert_eq!( + allowed_origins[0], + CorsOrigin("https://foo.test".to_string()) + ); + assert_eq!( + settings.log.log_output_path.unwrap(), + std::path::PathBuf::from_str("./log.log").unwrap() + ); + assert_eq!(settings.log.log_level, Some(LogLevel::Error)); + } + + #[test] + fn load_settings_from_env() { + use std::env::set_var; + set_var(DATABASE_URL, "database.sqlite3"); + set_var(TLS_CERT_FILE, "foo.bar"); + set_var(TLS_PRIVATE_KEY_FILE, "bar.foo"); + set_var( + CORS_ALLOWED_ORIGINS, + "https://foo.test;https://test.foo:5050", + ); + set_var(VIT_SERVICE_VERSION_ENV_VARIABLE, "v0.2.0"); + + let settings: ServiceSettings = ServiceSettings::from_iter(&[ + "test", + "--address", + "127.0.0.1:3030", + "--max-age-secs", + "60", + ]); + + assert_eq!( + settings.address, + SocketAddr::from_str("127.0.0.1:3030").unwrap() + ); + + assert!(settings.tls.is_loaded()); + assert_eq!(settings.tls.cert_file.unwrap(), "foo.bar"); + assert_eq!(settings.tls.priv_key_file.unwrap(), "bar.foo"); + assert_eq!(settings.db_url, "database.sqlite3"); + assert_eq!(settings.cors.max_age_secs.unwrap(), 60); + assert_eq!(settings.service_version, "v0.2.0"); + let allowed_origins = settings.cors.allowed_origins.unwrap(); + assert_eq!(allowed_origins.len(), 2); + assert_eq!( + allowed_origins[0], + CorsOrigin("https://foo.test".to_string()) + ); + } + + #[test] + fn merge_settings() { + let default = ServiceSettings::default(); + let other_settings = ServiceSettings::from_iter(&[ + "test", + "--address", + "127.0.0.1:8080", + "--cert-file", + "foo.bar", + "--priv-key-file", + "bar.foo", + "--db-url", + "database.sqlite3", + "--max-age-secs", + "60", + "--allowed-origins", + "https://foo.test;https://test.foo:5050", + "--block0-path", + "block0.bin", + "--enable-api-tokens", + "--service-version", + "v0.2.0", + ]); + + let merged_settings = default.override_from(&other_settings); + assert_eq!(merged_settings, other_settings); + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/server/settings/default.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/server/settings/default.rs new file mode 100644 index 0000000000..4dec7e7b4b --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/server/settings/default.rs @@ -0,0 +1,21 @@ +use super::config::ServiceSettings; +use super::config::{Cors, Log, Tls, ADDRESS_DEFAULT, BLOCK0_PATH_DEFAULT, DB_URL_DEFAULT}; +use std::net::SocketAddr; +use std::str::FromStr; + +impl Default for ServiceSettings { + fn default() -> Self { + Self { + in_settings_file: None, + out_settings_file: None, + address: SocketAddr::from_str(ADDRESS_DEFAULT).unwrap(), + tls: Tls::default(), + cors: Cors::default(), + db_url: DB_URL_DEFAULT.to_string(), + block0_path: BLOCK0_PATH_DEFAULT.to_string(), + enable_api_tokens: false, + log: Log::default(), + service_version: "".to_string(), + } + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/server/settings/mod.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/server/settings/mod.rs new file mode 100644 index 0000000000..b27e01d11e --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/server/settings/mod.rs @@ -0,0 +1,7 @@ +mod config; +mod default; + +pub use config::{ + dump_settings_to_file, load_settings_from_file, Cors, CorsOrigin, LogLevel, ServiceSettings, + Tls, +}; diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/server/signals.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/server/signals.rs new file mode 100644 index 0000000000..e6e940f83c --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/server/signals.rs @@ -0,0 +1,25 @@ +use tokio::signal; + +#[cfg(target_os = "unix")] +pub async fn watch_signal_for_shutdown() { + let mut interrupt_signal = signal::unix::signal(signal::unix::SignalKind::interrupt()) + .expect("Error setting up interrupt signal"); + + let mut terminate_signal = signal::unix::signal(signal::unix::SignalKind::terminate()) + .expect("Error setting up terminate signal"); + + let mut quit_signal = signal::unix::signal(signal::unix::SignalKind::quit()) + .expect("Error setting up quit signal"); + + tokio::select! { + _ = signal::ctrl_c() => (), + _ = interrupt_stream.recv() => (), + _ = terminate_signal.recv() => (), + _ = quit_signal.recv() => (), + } +} + +#[cfg(not(target_os = "unix"))] +pub async fn watch_signal_for_shutdown() { + signal::ctrl_c().await.ok(); +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/utils/datetime.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/utils/datetime.rs new file mode 100644 index 0000000000..eb22952bd9 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/utils/datetime.rs @@ -0,0 +1,5 @@ +use time::OffsetDateTime; + +pub fn unix_timestamp_to_datetime(timestamp: i64) -> OffsetDateTime { + OffsetDateTime::from_unix_timestamp(timestamp).expect("invalid timestamp") +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/utils/mod.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/utils/mod.rs new file mode 100644 index 0000000000..c52741d6dd --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/utils/mod.rs @@ -0,0 +1,2 @@ +pub mod datetime; +pub mod serde; diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/utils/serde.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/utils/serde.rs new file mode 100644 index 0000000000..28f73f1a5c --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/utils/serde.rs @@ -0,0 +1,145 @@ +use crate::db::models::vote_options::VoteOptions; +use crate::utils::datetime::unix_timestamp_to_datetime; +use serde::de::Visitor; +use serde::{ser::Error, Deserialize, Deserializer, Serializer}; +use std::fmt; +use time::{format_description::well_known::Rfc3339, OffsetDateTime}; + +// this warning should be disable here since the interface for this function requires +// the first argument to be passed by value +#[allow(clippy::trivially_copy_pass_by_ref)] +pub fn serialize_unix_timestamp_as_rfc3339( + timestamp: &i64, + serializer: S, +) -> Result { + let datetime = unix_timestamp_to_datetime(*timestamp); + serializer.serialize_str( + &datetime + .format(&Rfc3339) + .map_err(|e| S::Error::custom(format!("Could not serialize date: {}", e)))?, + ) +} + +pub fn deserialize_unix_timestamp_from_rfc3339<'de, D>(deserializer: D) -> Result +where + D: Deserializer<'de>, +{ + struct Rfc3339Deserializer(); + + impl<'de> Visitor<'de> for Rfc3339Deserializer { + type Value = OffsetDateTime; + + fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result { + formatter.write_str("An rfc3339 compatible string is needed") + } + + fn visit_str(self, value: &str) -> Result + where + E: serde::de::Error, + { + OffsetDateTime::parse(value, &Rfc3339).map_err(|e| E::custom(format!("{}", e))) + } + } + + deserializer + .deserialize_str(Rfc3339Deserializer()) + .map(|datetime| datetime.unix_timestamp()) +} + +pub fn serialize_bin_as_str(data: &[u8], serializer: S) -> Result { + serializer.serialize_str(&String::from_utf8(data.to_vec()).unwrap()) +} + +pub fn deserialize_string_as_bytes<'de, D>(deserializer: D) -> Result, D::Error> +where + D: Deserializer<'de>, +{ + struct VecU8Deserializer(); + + impl<'de> Visitor<'de> for VecU8Deserializer { + type Value = Vec; + + fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result { + formatter.write_str("A compatible utf8 string is needed") + } + + fn visit_str(self, value: &str) -> Result, E> + where + E: serde::de::Error, + { + let vec = value.as_bytes().to_vec(); + Ok(vec) + } + } + + deserializer.deserialize_str(VecU8Deserializer()) +} + +// this warning should be disable here since the interface for this function requires +// the first argument to be passed by value +#[allow(clippy::trivially_copy_pass_by_ref)] +pub fn serialize_i64_as_str(data: &i64, serializer: S) -> Result { + serializer.serialize_str(&data.to_string()) +} + +pub fn deserialize_i64_from_str<'de, D>(deserializer: D) -> Result +where + D: Deserializer<'de>, +{ + struct I64Deserializer(); + + impl<'de> Visitor<'de> for I64Deserializer { + type Value = i64; + + fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result { + formatter.write_str("a compatible i64 number or string with i64 format") + } + + fn visit_str(self, value: &str) -> Result + where + E: serde::de::Error, + { + value + .parse() + .map_err(|e| E::custom(format!("Error parsing {} to i64: {}", value, e))) + } + } + deserializer.deserialize_str(I64Deserializer()) +} + +pub fn deserialize_vote_options_from_string<'de, D>( + deserializer: D, +) -> Result +where + D: Deserializer<'de>, +{ + struct VoteOptionsDeserializer(); + + impl<'de> Visitor<'de> for VoteOptionsDeserializer { + type Value = VoteOptions; + + fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result { + formatter.write_str("A coma separated values are needed") + } + + fn visit_str(self, value: &str) -> Result + where + E: serde::de::Error, + { + Ok(VoteOptions::parse_coma_separated_value(value)) + } + } + + deserializer.deserialize_str(VoteOptionsDeserializer()) +} + +pub fn deserialize_truthy_falsy<'de, D>(deserializer: D) -> Result +where + D: Deserializer<'de>, +{ + let truthy_value = <&str>::deserialize(deserializer)?; + Ok(matches!( + truthy_value.to_lowercase().as_ref(), + "x" | "1" | "true" + )) +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/api_token.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/api_token.rs new file mode 100644 index 0000000000..f91ae8bd5b --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/api_token.rs @@ -0,0 +1,167 @@ +use crate::db::{queries::api_tokens as api_tokens_queries, DbConnectionPool}; +use crate::v0::{context::SharedContext, errors::HandleError}; +use warp::{Filter, Rejection}; + +/// Header where token should be present in requests +pub const API_TOKEN_HEADER: &str = "API-Token"; + +/// API Token wrapper type +#[derive(PartialEq, Eq, Debug, Clone)] +pub struct ApiToken(Vec); + +/// API token manager is an abstraction on the API tokens for the service +/// The main idea is to keep the service agnostic of what kind of backend we are using such task. +/// Right now we rely on a SQLlite connection. But in the future it maybe be something else like a +/// REDIS, or some other hybrid system. +pub struct ApiTokenManager { + connection_pool: DbConnectionPool, +} + +impl From<&[u8]> for ApiToken { + fn from(data: &[u8]) -> Self { + Self(data.to_vec()) + } +} + +impl AsRef<[u8]> for ApiToken { + fn as_ref(&self) -> &[u8] { + self.0.as_slice() + } +} + +impl ApiToken { + pub fn new(data: Vec) -> Self { + Self(data) + } +} + +impl ApiTokenManager { + fn new(connection_pool: DbConnectionPool) -> Self { + Self { connection_pool } + } + + async fn is_token_valid(&self, token: ApiToken) -> Result { + match api_tokens_queries::query_token(token, &self.connection_pool).await { + Ok(Some(_)) => Ok(true), + Ok(None) => Ok(false), + Err(e) => Err(HandleError::InternalError(format!( + "Error retrieving token: {}", + e + ))), + } + } + + #[allow(dead_code)] + async fn revoke_token(&self, _token: ApiToken) -> Result<(), ()> { + Ok(()) + } +} + +async fn authorize_token(token: String, context: SharedContext) -> Result<(), Rejection> { + let manager = ApiTokenManager::new(context.read().await.db_connection_pool.clone()); + + let mut token_vec: Vec = Vec::new(); + base64::decode_config_buf(token.clone(), base64::URL_SAFE, &mut token_vec).map_err(|_err| { + warp::reject::custom(HandleError::InvalidHeader( + API_TOKEN_HEADER, + "header should be base64 url safe decodable", + )) + })?; + + let api_token = ApiToken(token_vec); + + match manager.is_token_valid(api_token).await { + Ok(true) => Ok(()), + Ok(false) => { + tracing::event!( + tracing::Level::INFO, + "Unauthorized token received: {}", + token + ); + Err(warp::reject::custom(HandleError::UnauthorizedToken)) + } + Err(e) => Err(warp::reject::custom(e)), + } +} + +/// A warp filter that checks authorization through API tokens. +/// The header `API_TOKEN_HEADER` should be present and valid otherwise the request is rejected. +pub async fn api_token_filter( + context: SharedContext, +) -> impl Filter + Clone { + let with_context = warp::any().map(move || context.clone()); + warp::header::header(API_TOKEN_HEADER) + .and(with_context) + .and_then(authorize_token) + .and(warp::any()) + .untuple_one() +} + +#[cfg(test)] +mod test { + use crate::db::{ + migrations as db_testing, models::api_tokens as api_token_model, + models::api_tokens::ApiTokenData, schema::api_tokens, DbConnectionPool, + }; + use crate::v0::api_token::{api_token_filter, ApiToken, API_TOKEN_HEADER}; + use crate::v0::context::test::new_in_memmory_db_test_shared_context; + use diesel::{ExpressionMethods, RunQueryDsl}; + use time::OffsetDateTime; + + pub fn get_testing_token() -> (api_token_model::ApiTokenData, String) { + let data = b"ffffffffffffffffffffffffffffffff".to_vec(); + let token_data = ApiTokenData { + token: ApiToken(data.clone()), + creation_time: OffsetDateTime::now_utc().unix_timestamp(), + expire_time: OffsetDateTime::now_utc().unix_timestamp(), + }; + ( + token_data, + base64::encode_config(data, base64::URL_SAFE_NO_PAD), + ) + } + + pub fn insert_token_to_db(token: ApiTokenData, db: &DbConnectionPool) { + let conn = db.get().unwrap(); + let values = ( + api_tokens::dsl::token.eq(token.token.0.clone()), + api_tokens::dsl::creation_time.eq(token.creation_time), + api_tokens::dsl::expire_time.eq(token.expire_time), + ); + diesel::insert_into(api_tokens::table) + .values(values) + .execute(&conn) + .unwrap(); + } + + #[tokio::test] + async fn api_token_filter_reject() { + let shared_context = new_in_memmory_db_test_shared_context(); + let filter = api_token_filter(shared_context).await; + + assert!(warp::test::request() + .header(API_TOKEN_HEADER, "foobar") + .filter(&filter) + .await + .is_err()); + } + + #[tokio::test] + async fn api_token_filter_accepted() { + let shared_context = new_in_memmory_db_test_shared_context(); + + // initialize db + let pool = &shared_context.read().await.db_connection_pool; + db_testing::initialize_db_with_migration(&pool.get().unwrap()); + let (token, base64_token) = get_testing_token(); + insert_token_to_db(token, pool); + + let filter = api_token_filter(shared_context.clone()).await; + + assert!(warp::test::request() + .header(API_TOKEN_HEADER, base64_token) + .filter(&filter) + .await + .is_ok()); + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/context.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/context.rs new file mode 100644 index 0000000000..97265c6658 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/context.rs @@ -0,0 +1,74 @@ +use crate::db; +use std::sync::Arc; +use tokio::sync::RwLock; + +pub type SharedContext = Arc>; + +#[derive(Clone)] +pub struct Context { + pub db_connection_pool: db::DbConnectionPool, + pub block0_path: String, + pub block0: Vec, + pub versioning: String, +} + +impl Context { + pub fn new( + db_connection_pool: db::DbConnectionPool, + block0_path: &str, + block0: Vec, + versioning: String, + ) -> Self { + Self { + db_connection_pool, + block0_path: block0_path.to_string(), + block0, + versioning, + } + } +} + +pub fn new_shared_context( + db_connection_pool: db::DbConnectionPool, + block0_path: &str, + versioning: &str, +) -> SharedContext { + let block0 = std::fs::read(block0_path).unwrap_or_default(); + let context = Context::new( + db_connection_pool, + block0_path, + block0, + versioning.to_string(), + ); + Arc::new(RwLock::new(context)) +} + +#[cfg(test)] +pub mod test { + use rand::{distributions::Alphanumeric, thread_rng, Rng}; + + use super::*; + use crate::db; + + pub fn new_in_memmory_db_test_shared_context() -> SharedContext { + let name: String = thread_rng() + .sample_iter(Alphanumeric) + .take(5) + .map(char::from) + .collect(); + let db_url = format!("file:{}?mode=memory&cache=shared", name); + let pool = db::load_db_connection_pool(&db_url).unwrap(); + let block0: Vec = vec![1, 2, 3, 4, 5]; + Arc::new(RwLock::new(Context::new( + pool, + "", + block0, + "2.0".to_string(), + ))) + } + + pub fn new_test_shared_context(db_url: &str, block0_path: &str) -> SharedContext { + let pool = db::load_db_connection_pool(db_url).unwrap(); + new_shared_context(pool, block0_path, "2.0") + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/advisor_reviews/handlers.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/advisor_reviews/handlers.rs new file mode 100644 index 0000000000..6bfc1e6b33 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/advisor_reviews/handlers.rs @@ -0,0 +1,12 @@ +use super::logic; +use crate::v0::{context::SharedContext, result::HandlerResult}; +use warp::{Rejection, Reply}; + +pub async fn get_reviews_with_proposal_id( + id: i32, + context: SharedContext, +) -> Result { + Ok(HandlerResult( + logic::get_advisor_reviews_with_proposal_id(id, context).await, + )) +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/advisor_reviews/logic.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/advisor_reviews/logic.rs new file mode 100644 index 0000000000..f18972ea51 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/advisor_reviews/logic.rs @@ -0,0 +1,25 @@ +use crate::db::{ + models::community_advisors_reviews::AdvisorReview, + queries::community_advisors_reviews as advisor_reviews_queries, +}; +use crate::v0::context::SharedContext; +use crate::v0::endpoints::advisor_reviews::schemas::GroupedReviews; +use crate::v0::errors::HandleError; +use std::collections::HashMap; + +pub async fn get_advisor_reviews_with_proposal_id( + id: i32, + context: SharedContext, +) -> Result { + let pool = &context.read().await.db_connection_pool; + let reviews = advisor_reviews_queries::query_reviews_by_fund_id(id, pool).await?; + Ok(group_reviews_by_assessor(reviews)) +} + +fn group_reviews_by_assessor(reviews: Vec) -> GroupedReviews { + let mut map: HashMap> = HashMap::new(); + for review in reviews { + map.entry(review.assessor.clone()).or_default().push(review); + } + GroupedReviews(map) +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/advisor_reviews/mod.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/advisor_reviews/mod.rs new file mode 100644 index 0000000000..63e82d1d35 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/advisor_reviews/mod.rs @@ -0,0 +1,6 @@ +mod handlers; +mod logic; +mod routes; +mod schemas; + +pub use routes::filter; diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/advisor_reviews/routes.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/advisor_reviews/routes.rs new file mode 100644 index 0000000000..cc67254984 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/advisor_reviews/routes.rs @@ -0,0 +1,18 @@ +use super::handlers::*; +use crate::v0::context::SharedContext; +use warp::filters::BoxedFilter; +use warp::{Filter, Rejection, Reply}; + +pub async fn filter( + root: BoxedFilter<()>, + context: SharedContext, +) -> impl Filter + Clone { + let with_context = warp::any().map(move || context.clone()); + + let reviews = warp::path!(i32) + .and(warp::get()) + .and(with_context) + .and_then(get_reviews_with_proposal_id); + + root.and(reviews) +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/advisor_reviews/schemas.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/advisor_reviews/schemas.rs new file mode 100644 index 0000000000..5007c9d618 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/advisor_reviews/schemas.rs @@ -0,0 +1,8 @@ +use crate::db::models::community_advisors_reviews::AdvisorReview; + +use serde::{Deserialize, Serialize}; + +use std::collections::HashMap; + +#[derive(Serialize, Deserialize)] +pub struct GroupedReviews(pub HashMap>); diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/challenges/handlers.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/challenges/handlers.rs new file mode 100644 index 0000000000..caaeb8f51b --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/challenges/handlers.rs @@ -0,0 +1,11 @@ +use super::logic; +use crate::v0::{context::SharedContext, result::HandlerResult}; +use warp::{Rejection, Reply}; + +pub async fn get_challenges(context: SharedContext) -> Result { + Ok(HandlerResult(logic::get_all_challenges(context).await)) +} + +pub async fn get_challenge_by_id(id: i32, context: SharedContext) -> Result { + Ok(HandlerResult(logic::get_challenge_by_id(id, context).await)) +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/challenges/logic.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/challenges/logic.rs new file mode 100644 index 0000000000..e7f857fb0f --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/challenges/logic.rs @@ -0,0 +1,22 @@ +use super::schemas::ChallengeWithProposals; +use crate::db::{models::challenges::Challenge, queries::challenges as challenges_queries}; +use crate::v0::context::SharedContext; +use crate::v0::errors::HandleError; + +pub async fn get_all_challenges(context: SharedContext) -> Result, HandleError> { + let pool = &context.read().await.db_connection_pool; + challenges_queries::query_all_challenges(pool).await +} + +pub async fn get_challenge_by_id( + id: i32, + context: SharedContext, +) -> Result { + let pool = &context.read().await.db_connection_pool; + let challenge = challenges_queries::query_challenge_by_id(id, pool).await?; + let proposals = challenges_queries::query_challenge_proposals_by_id(id, pool).await?; + Ok(ChallengeWithProposals { + challenge, + proposals, + }) +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/challenges/mod.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/challenges/mod.rs new file mode 100644 index 0000000000..63e82d1d35 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/challenges/mod.rs @@ -0,0 +1,6 @@ +mod handlers; +mod logic; +mod routes; +mod schemas; + +pub use routes::filter; diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/challenges/routes.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/challenges/routes.rs new file mode 100644 index 0000000000..4afa0fcabb --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/challenges/routes.rs @@ -0,0 +1,23 @@ +use super::handlers::*; +use crate::v0::context::SharedContext; +use warp::filters::BoxedFilter; +use warp::{Filter, Rejection, Reply}; + +pub async fn filter( + root: BoxedFilter<()>, + context: SharedContext, +) -> impl Filter + Clone { + let with_context = warp::any().map(move || context.clone()); + + let challenges = warp::path::end() + .and(warp::get()) + .and(with_context.clone()) + .and_then(get_challenges); + + let challenge_by_id = warp::path!(i32) + .and(warp::get()) + .and(with_context) + .and_then(get_challenge_by_id); + + root.and(challenge_by_id.or(challenges)) +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/challenges/schemas.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/challenges/schemas.rs new file mode 100644 index 0000000000..d6f9358ad9 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/challenges/schemas.rs @@ -0,0 +1,9 @@ +use crate::db::models::{challenges::Challenge, proposals::Proposal}; +use serde::{Deserialize, Serialize}; + +#[derive(Serialize, Deserialize)] +pub struct ChallengeWithProposals { + #[serde(flatten)] + pub challenge: Challenge, + pub proposals: Vec, +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/funds/handlers.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/funds/handlers.rs new file mode 100644 index 0000000000..27b782fd4b --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/funds/handlers.rs @@ -0,0 +1,218 @@ +use super::logic; +use crate::v0::result::HandlerResult; +use crate::{db::models::funds::Fund, v0::context::SharedContext}; +use warp::{Rejection, Reply}; + +pub async fn get_fund_by_id(id: i32, context: SharedContext) -> Result { + Ok(HandlerResult(logic::get_fund_by_id(id, context).await)) +} + +pub async fn get_fund(context: SharedContext) -> Result { + Ok(HandlerResult(logic::get_current_fund(context).await)) +} + +pub async fn get_all_funds(context: SharedContext) -> Result { + Ok(HandlerResult(logic::get_all_funds(context).await)) +} + +pub async fn put_fund(fund: Fund, context: SharedContext) -> Result { + Ok(HandlerResult(logic::put_fund(fund, context).await)) +} + +#[cfg(test)] +pub mod test { + use super::*; + use crate::db::{ + migrations as db_testing, + models::funds::{test as funds_testing, Fund}, + queries::funds::FundWithNext, + }; + use crate::v0::context::test::new_in_memmory_db_test_shared_context; + use warp::Filter; + + #[tokio::test] + async fn get_fund_handler() { + // build context + let shared_context = new_in_memmory_db_test_shared_context(); + let filter_context = shared_context.clone(); + let with_context = warp::any().map(move || filter_context.clone()); + + // initialize db + let pool = &shared_context.read().await.db_connection_pool; + db_testing::initialize_db_with_migration(&pool.get().unwrap()); + let fund: Fund = funds_testing::get_test_fund(Some(1)); + let mut next_fund: Fund = funds_testing::get_test_fund(Some(2)); + + next_fund.challenges = Vec::new(); + next_fund.chain_vote_plans = Vec::new(); + + funds_testing::populate_db_with_fund(&fund, pool); + funds_testing::populate_db_with_fund(&next_fund, pool); + + // build filter + let filter = warp::any() + .and(warp::get()) + .and(with_context) + .and_then(get_fund); + + let result = warp::test::request().method("GET").reply(&filter).await; + assert_eq!(result.status(), warp::http::StatusCode::OK); + let result_fund: FundWithNext = + serde_json::from_str(&String::from_utf8(result.body().to_vec()).unwrap()).unwrap(); + assert_eq!(fund, result_fund.fund); + + let next = result_fund.next.unwrap(); + assert_eq!(next_fund.id, next.id); + assert_eq!(next_fund.fund_name, next.fund_name); + assert_eq!(next_fund.stage_dates, next.stage_dates); + } + + #[tokio::test] + async fn get_fund_by_id_handler() { + // build context + let shared_context = new_in_memmory_db_test_shared_context(); + let filter_context = shared_context.clone(); + let with_context = warp::any().map(move || filter_context.clone()); + + // initialize db + let pool = &shared_context.read().await.db_connection_pool; + db_testing::initialize_db_with_migration(&pool.get().unwrap()); + let fund: Fund = funds_testing::get_test_fund(None); + funds_testing::populate_db_with_fund(&fund, pool); + + // build filter + let filter = warp::path!(i32) + .and(warp::get()) + .and(with_context) + .and_then(get_fund_by_id); + + let result = warp::test::request() + .method("GET") + .path(&format!("/{}", fund.id)) + .reply(&filter) + .await; + assert_eq!(result.status(), warp::http::StatusCode::OK); + let result_fund: Fund = + serde_json::from_str(&String::from_utf8(result.body().to_vec()).unwrap()).unwrap(); + assert_eq!(fund, result_fund); + } + + #[tokio::test] + async fn get_all_funds_handler() { + let shared_context = new_in_memmory_db_test_shared_context(); + let filter_context = shared_context.clone(); + let with_context = warp::any().map(move || filter_context.clone()); + + let pool = &shared_context.read().await.db_connection_pool; + db_testing::initialize_db_with_migration(&pool.get().unwrap()); + + let fund1: Fund = funds_testing::get_test_fund(Some(1)); + let mut fund2: Fund = funds_testing::get_test_fund(Some(2)); + + fund2.challenges = vec![]; + fund2.chain_vote_plans = vec![]; + + funds_testing::populate_db_with_fund(&fund1, pool); + funds_testing::populate_db_with_fund(&fund2, pool); + + let filter = warp::any() + .and(warp::get()) + .and(with_context) + .and_then(get_all_funds); + + let result = warp::test::request().method("GET").reply(&filter).await; + assert_eq!(result.status(), warp::http::StatusCode::OK); + let result_funds: Vec = + serde_json::from_str(&String::from_utf8(result.body().to_vec()).unwrap()).unwrap(); + + assert_eq!(vec![fund1.id, fund2.id], result_funds); + } + + #[tokio::test] + async fn put_fund_handler() { + let shared_context = new_in_memmory_db_test_shared_context(); + let filter_context = shared_context.clone(); + let with_context = warp::any().map(move || filter_context.clone()); + + let pool = &shared_context.read().await.db_connection_pool; + db_testing::initialize_db_with_migration(&pool.get().unwrap()); + + let fund1: Fund = funds_testing::get_test_fund(Some(1)); + let mut fund2: Fund = funds_testing::get_test_fund(Some(2)); + let mut fund3: Fund = funds_testing::get_test_fund(Some(3)); + + fund2.challenges = vec![]; + fund2.chain_vote_plans = vec![]; + fund2.goals = vec![]; + + fund3.challenges = vec![]; + fund3.chain_vote_plans = vec![]; + fund3.goals = vec![]; + + funds_testing::populate_db_with_fund(&fund1, pool); + funds_testing::populate_db_with_fund(&fund2, pool); + + let filter = warp::any() + .and(warp::put()) + .and(warp::body::json()) + .and(with_context.clone()) + .and_then(put_fund); + + let mut updated_fund = fund2.clone(); + updated_fund.fund_name = "modified fund name".into(); + + let result = warp::test::request() + .method("PUT") + .body(serde_json::to_string(&updated_fund).unwrap()) + .reply(&filter) + .await; + + assert_eq!(result.status(), warp::http::StatusCode::OK); + + let result_fund = test_get_fund(fund2.id, shared_context.clone()).await; + assert_eq!(updated_fund, result_fund); + + let result_fund = test_get_fund(fund1.id, shared_context.clone()).await; + assert_eq!(fund1, result_fund); + + assert_eq!( + warp::test::request() + .method("PUT") + .body(serde_json::to_string(&fund3).unwrap()) + .reply(&filter) + .await + .status(), + warp::http::StatusCode::OK + ); + + let result_fund = test_get_fund(fund3.id, shared_context.clone()).await; + assert_eq!(fund3, result_fund); + + let result_fund = test_get_fund(fund2.id, shared_context.clone()).await; + assert_eq!(updated_fund.clone(), result_fund.clone()); + // just to be extra sure + assert_ne!(fund2, updated_fund); + + let result_fund = test_get_fund(fund1.id, shared_context.clone()).await; + assert_eq!(fund1, result_fund); + } + + async fn test_get_fund(id: i32, context: SharedContext) -> Fund { + let with_context = warp::any().map(move || context.clone()); + + let get_filter = warp::path!(i32) + .and(warp::get()) + .and(with_context) + .and_then(get_fund_by_id); + + let result = warp::test::request() + .method("GET") + .path(&format!("/{}", id)) + .reply(&get_filter) + .await; + + assert_eq!(result.status(), warp::http::StatusCode::OK); + + serde_json::from_str(&String::from_utf8(result.body().to_vec()).unwrap()).unwrap() + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/funds/logic.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/funds/logic.rs new file mode 100644 index 0000000000..651fa9dac8 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/funds/logic.rs @@ -0,0 +1,24 @@ +use crate::db::queries::funds::FundWithNext; +use crate::db::{models::funds::Fund, queries::funds as funds_queries}; +use crate::v0::context::SharedContext; +use crate::v0::errors::HandleError; + +pub async fn get_fund_by_id(id: i32, context: SharedContext) -> Result { + let pool = &context.read().await.db_connection_pool; + funds_queries::query_fund_by_id(id, pool).await +} + +pub async fn get_current_fund(context: SharedContext) -> Result { + let pool = &context.read().await.db_connection_pool; + funds_queries::query_current_fund(pool).await +} + +pub async fn get_all_funds(context: SharedContext) -> Result, HandleError> { + let pool = &context.read().await.db_connection_pool; + funds_queries::query_all_funds(pool).await +} + +pub async fn put_fund(fund: Fund, context: SharedContext) -> Result<(), HandleError> { + let pool = &context.read().await.db_connection_pool; + funds_queries::put_fund(fund, pool).await +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/funds/mod.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/funds/mod.rs new file mode 100644 index 0000000000..ababeebab2 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/funds/mod.rs @@ -0,0 +1,5 @@ +mod handlers; +mod logic; +mod routes; + +pub use routes::{admin_filter, filter}; diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/funds/routes.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/funds/routes.rs new file mode 100644 index 0000000000..d91c536e27 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/funds/routes.rs @@ -0,0 +1,44 @@ +use super::handlers::*; +use crate::v0::context::SharedContext; +use warp::filters::BoxedFilter; +use warp::{Filter, Rejection, Reply}; + +pub async fn filter( + root: BoxedFilter<()>, + context: SharedContext, +) -> impl Filter + Clone { + let with_context = warp::any().map(move || context.clone()); + + let fund = warp::path::end() + .and(warp::get()) + .and(with_context.clone()) + .and_then(get_fund) + .boxed(); + + let fund_by_id = warp::path!(i32) + .and(warp::get()) + .and(with_context.clone()) + .and_then(get_fund_by_id) + .boxed(); + + let all_funds = warp::path::end() + .and(warp::get()) + .and(with_context) + .and_then(get_all_funds) + .boxed(); + + // fund_by_id need to be checked first otherwise requests are swallowed by the fund::any + root.and(fund_by_id.or(fund).or(all_funds)).boxed() +} + +pub fn admin_filter( + context: SharedContext, +) -> impl Filter + Clone { + let with_context = warp::any().map(move || context.clone()); + + warp::path::end() + .and(warp::put()) + .and(warp::body::json()) + .and(with_context) + .and_then(put_fund) +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/genesis/handlers.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/genesis/handlers.rs new file mode 100644 index 0000000000..66656a9b01 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/genesis/handlers.rs @@ -0,0 +1,60 @@ +use crate::v0::context::SharedContext; +use warp::{http::Response, Rejection, Reply}; + +pub async fn get_genesis(context: SharedContext) -> Result { + let mut response: Vec = context.read().await.block0.clone(); + + // check if block0 is not loaded and try to load it again + if response.is_empty() { + let block0_path = context.read().await.block0_path.clone(); + response = tokio::fs::read(block0_path).await.unwrap_or_default(); + if !response.is_empty() { + context.write().await.block0 = response.clone(); + } + } + + // if we have no block0 + if response.is_empty() { + Ok(Response::builder() + .status(warp::http::status::StatusCode::NO_CONTENT) + .header("Content-Type", "application/octet-stream") + .body(response) + .unwrap()) + // if we have a block0 + } else { + Ok(Response::builder() + .header("Content-Type", "application/octet-stream") + .body(response) + .unwrap()) + } +} + +#[cfg(test)] +mod test { + use super::*; + use crate::v0::context::test::new_test_shared_context; + use warp::Filter; + + #[tokio::test] + async fn get_block0_succeed() { + // build context + let block0_path = "../resources/tests/block0.bin"; + let shared_context = new_test_shared_context("", block0_path); + let block0 = std::fs::read(block0_path).unwrap(); + + let with_context = warp::any().map(move || shared_context.clone()); + + // build filter + let filter = warp::any() + .and(warp::get()) + .and(with_context) + .and_then(get_genesis); + + // check status code and block0 data + let result = warp::test::request().method("GET").reply(&filter).await; + + assert_eq!(result.status(), warp::http::StatusCode::OK); + let body = result.body().to_vec(); + assert_eq!(block0, body); + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/genesis/mod.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/genesis/mod.rs new file mode 100644 index 0000000000..2a6c75df57 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/genesis/mod.rs @@ -0,0 +1,4 @@ +mod handlers; +mod routes; + +pub use routes::filter; diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/genesis/routes.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/genesis/routes.rs new file mode 100644 index 0000000000..7a2be680b9 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/genesis/routes.rs @@ -0,0 +1,19 @@ +use super::handlers::get_genesis; +use crate::v0::context::SharedContext; +use warp::filters::BoxedFilter; +use warp::{Filter, Rejection, Reply}; + +pub fn filter( + root: BoxedFilter<()>, + context: SharedContext, +) -> impl Filter + Clone { + let with_context = warp::any().map(move || context.clone()); + + let block0 = warp::path::end() + .and(warp::get()) + .and(with_context) + .and_then(get_genesis) + .boxed(); + + root.and(block0).boxed() +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/health/handlers.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/health/handlers.rs new file mode 100644 index 0000000000..b0e5c60a22 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/health/handlers.rs @@ -0,0 +1,35 @@ +use crate::v0::context::SharedContext; +use warp::{Rejection, Reply}; + +pub async fn check_health(_context: SharedContext) -> Result { + Ok(warp::reply()) +} + +#[cfg(test)] +pub mod test { + use super::*; + use crate::v0::context::test::new_in_memmory_db_test_shared_context; + use warp::Filter; + + #[tokio::test] + async fn get_proposal_by_id_handler() { + // build context + let shared_context = new_in_memmory_db_test_shared_context(); + let filter_context = shared_context.clone(); + let with_context = warp::any().map(move || filter_context.clone()); + + // build filter + let filter = warp::path!("health" / ..) + .and(warp::get()) + .and(with_context) + .and_then(check_health); + + let result = warp::test::request() + .method("GET") + .path("/health") + .reply(&filter) + .await; + + assert_eq!(result.status(), warp::http::StatusCode::OK); + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/health/mod.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/health/mod.rs new file mode 100644 index 0000000000..2a6c75df57 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/health/mod.rs @@ -0,0 +1,4 @@ +mod handlers; +mod routes; + +pub use routes::filter; diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/health/routes.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/health/routes.rs new file mode 100644 index 0000000000..7953f20b97 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/health/routes.rs @@ -0,0 +1,19 @@ +use super::handlers::*; +use crate::v0::context::SharedContext; +use warp::filters::BoxedFilter; +use warp::{Filter, Rejection, Reply}; + +pub async fn filter( + root: BoxedFilter<()>, + context: SharedContext, +) -> impl Filter + Clone { + let with_context = warp::any().map(move || context.clone()); + + let health_filter = warp::path::end() + .and(warp::get()) + .and(with_context) + .and_then(check_health) + .boxed(); + + root.and(health_filter).boxed() +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/mod.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/mod.rs new file mode 100644 index 0000000000..d27052b270 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/mod.rs @@ -0,0 +1,69 @@ +mod advisor_reviews; +mod challenges; +mod funds; +mod genesis; +mod health; +pub mod proposals; +pub mod service_version; + +use crate::v0::context::SharedContext; + +use crate::v0::api_token; +use warp::filters::BoxedFilter; +use warp::{Filter, Rejection, Reply}; + +pub async fn filter( + root: BoxedFilter<()>, + context: SharedContext, + enable_api_tokens: bool, +) -> impl Filter + Clone { + // mount health endpoint + let health_root = warp::path!("health" / ..); + let health_filter = health::filter(health_root.boxed(), context.clone()).await; + + // mount chain-data endpoint + let chain_data_root = warp::path!("proposals" / ..); + let chain_data_filter = proposals::filter(chain_data_root.boxed(), context.clone()).await; + + // mount funds endpoint + let funds_root = warp::path!("fund" / ..); + let funds_filter = funds::filter(funds_root.boxed(), context.clone()).await; + + // mount challenges endpoint + let challenges_root = warp::path!("challenges" / ..); + let challenges_filter = challenges::filter(challenges_root.boxed(), context.clone()).await; + + // mount genesis endpoint + let genesis_root = warp::path!("block0" / ..); + let genesis_filter = genesis::filter(genesis_root.boxed(), context.clone()); + + let reviews_root = warp::path!("reviews" / ..); + let reviews_filter = advisor_reviews::filter(reviews_root.boxed(), context.clone()).await; + + let admin_filter = { + let base = warp::path!("admin" / ..); + + let fund_filter = warp::path!("fund" / ..).and(funds::admin_filter(context.clone())); + + base.and(fund_filter) + }; + + let api_token_filter = if enable_api_tokens { + api_token::api_token_filter(context).await.boxed() + } else { + warp::any().boxed() + }; + + root.and( + api_token_filter.and( + health_filter + .or(genesis_filter) + .or(chain_data_filter) + .or(funds_filter) + .or(challenges_filter) + .or(reviews_filter) + .or(admin_filter), + ), + ) + .boxed() +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/proposals/handlers.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/proposals/handlers.rs new file mode 100644 index 0000000000..1ba1331589 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/proposals/handlers.rs @@ -0,0 +1,143 @@ +use super::logic; +use crate::v0::endpoints::proposals::requests::ProposalsByVoteplanIdAndIndex; +use crate::v0::{context::SharedContext, result::HandlerResult}; +use warp::{Rejection, Reply}; + +pub async fn get_proposal(id: i32, context: SharedContext) -> Result { + Ok(HandlerResult(logic::get_proposal(id, context).await)) +} + +pub async fn get_all_proposals(context: SharedContext) -> Result { + Ok(HandlerResult(logic::get_all_proposals(context).await)) +} + +pub async fn get_proposals_by_voteplan_id_and_index( + body: ProposalsByVoteplanIdAndIndex, + context: SharedContext, +) -> Result { + Ok(HandlerResult( + logic::get_proposals_by_voteplan_id_and_index(body, context).await, + )) +} + +#[cfg(test)] +pub mod test { + use super::*; + use crate::db::{ + migrations as db_testing, + models::{ + challenges::{test as challenges_testing, Challenge}, + community_advisors_reviews::test as reviews_testing, + proposals::{test as proposals_testing, *}, + }, + }; + use crate::v0::context::test::new_in_memmory_db_test_shared_context; + use crate::v0::endpoints::proposals::requests::ProposalVoteplanIdAndIndexes; + use warp::Filter; + + #[tokio::test] + async fn get_proposal_by_id_handler() { + // build context + let shared_context = new_in_memmory_db_test_shared_context(); + let filter_context = shared_context.clone(); + let with_context = warp::any().map(move || filter_context.clone()); + + // initialize db + let pool = &shared_context.read().await.db_connection_pool; + db_testing::initialize_db_with_migration(&pool.get().unwrap()); + let mut proposal: FullProposalInfo = proposals_testing::get_test_proposal(); + proposals_testing::populate_db_with_proposal(&proposal, pool); + let challenge: Challenge = + challenges_testing::get_test_challenge_with_fund_id(proposal.proposal.fund_id); + challenges_testing::populate_db_with_challenge(&challenge, pool); + + let review = reviews_testing::get_test_advisor_review_with_proposal_id( + proposal.proposal.proposal_id.parse().unwrap(), + ); + reviews_testing::populate_db_with_advisor_review(&review, pool); + proposal.proposal.reviews_count = 1; + // build filter + let filter = warp::path!(i32) + .and(warp::get()) + .and(with_context) + .and_then(get_proposal); + + let result = warp::test::request() + .method("GET") + .path("/1") + .reply(&filter) + .await; + assert_eq!(result.status(), warp::http::StatusCode::OK); + println!("{}", String::from_utf8(result.body().to_vec()).unwrap()); + let result_proposal: FullProposalInfo = + serde_json::from_str(&String::from_utf8(result.body().to_vec()).unwrap()).unwrap(); + assert_eq!(proposal, result_proposal); + } + + #[tokio::test] + async fn get_all_proposals_handler() { + // build context + let shared_context = new_in_memmory_db_test_shared_context(); + let filter_context = shared_context.clone(); + let with_context = warp::any().map(move || filter_context.clone()); + + // initialize db + let pool = &shared_context.read().await.db_connection_pool; + db_testing::initialize_db_with_migration(&pool.get().unwrap()); + let proposal: FullProposalInfo = proposals_testing::get_test_proposal(); + proposals_testing::populate_db_with_proposal(&proposal, pool); + let challenge: Challenge = + challenges_testing::get_test_challenge_with_fund_id(proposal.proposal.fund_id); + challenges_testing::populate_db_with_challenge(&challenge, pool); + // build filter + let filter = warp::any() + .and(warp::get()) + .and(with_context) + .and_then(get_all_proposals); + + let result = warp::test::request().method("GET").reply(&filter).await; + assert_eq!(result.status(), warp::http::StatusCode::OK); + let result_proposals: Vec = + serde_json::from_str(&String::from_utf8(result.body().to_vec()).unwrap()).unwrap(); + assert_eq!(vec![proposal], result_proposals); + } + + #[tokio::test] + async fn get_proposal_by_voteplan_id_and_index() { + // build context + let shared_context = new_in_memmory_db_test_shared_context(); + let filter_context = shared_context.clone(); + let with_context = warp::any().map(move || filter_context.clone()); + + // initialize db + let pool = &shared_context.read().await.db_connection_pool; + db_testing::initialize_db_with_migration(&pool.get().unwrap()); + let proposal: FullProposalInfo = proposals_testing::get_test_proposal(); + proposals_testing::populate_db_with_proposal(&proposal, pool); + let challenge: Challenge = + challenges_testing::get_test_challenge_with_fund_id(proposal.proposal.fund_id); + challenges_testing::populate_db_with_challenge(&challenge, pool); + // build filter + let filter = warp::any() + .and(warp::post()) + .and(warp::body::json()) + .and(with_context) + .and_then(get_proposals_by_voteplan_id_and_index); + + let request = ProposalVoteplanIdAndIndexes { + vote_plan_id: proposal.proposal.chain_voteplan_id.clone(), + indexes: vec![proposal.proposal.chain_proposal_index], + }; + + let result = warp::test::request() + .method("POST") + .json(&vec![request]) + .reply(&filter) + .await; + + assert_eq!(result.status(), warp::http::StatusCode::OK); + let result_proposals: Vec = + serde_json::from_str(&String::from_utf8(result.body().to_vec()).unwrap()).unwrap(); + assert_eq!(vec![proposal], result_proposals); + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/proposals/logic.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/proposals/logic.rs new file mode 100644 index 0000000000..a6fd5f6467 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/proposals/logic.rs @@ -0,0 +1,51 @@ +use crate::db::{models::proposals::FullProposalInfo, queries::proposals as proposals_queries}; +use crate::v0::endpoints::proposals::requests::ProposalsByVoteplanIdAndIndex; +use crate::v0::{context::SharedContext, errors::HandleError}; + +pub async fn get_all_proposals( + context: SharedContext, +) -> Result, HandleError> { + let pool = &context.read().await.db_connection_pool; + proposals_queries::query_all_proposals(pool).await +} + +pub async fn get_proposal( + id: i32, + context: SharedContext, +) -> Result { + let pool = &context.read().await.db_connection_pool; + proposals_queries::query_proposal_by_id(id, pool).await +} + +pub async fn get_proposals_by_voteplan_id_and_index( + query_data: ProposalsByVoteplanIdAndIndex, + context: SharedContext, +) -> Result, HandleError> { + let pool = context.read().await.db_connection_pool.clone(); + let tasks: Vec<_> = query_data + .into_iter() + .map(|proposal_query| { + tokio::spawn( + proposals_queries::query_proposals_by_voteplan_id_and_indexes( + proposal_query.vote_plan_id, + proposal_query.indexes, + pool.clone(), + ), + ) + }) + .collect(); + let mut results = Vec::new(); + + for task in tasks { + results.push( + task.await.map_err(|e| { + HandleError::InternalError(format!("Error executing task: {:?}", e)) + })??, + ); + } + + Ok(results + .into_iter() + .flat_map(IntoIterator::into_iter) + .collect()) +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/proposals/mod.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/proposals/mod.rs new file mode 100644 index 0000000000..44c76efc80 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/proposals/mod.rs @@ -0,0 +1,7 @@ +mod handlers; +mod logic; +mod requests; +mod routes; + +pub use requests::{ProposalVoteplanIdAndIndexes, ProposalsByVoteplanIdAndIndex}; +pub use routes::filter; diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/proposals/requests.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/proposals/requests.rs new file mode 100644 index 0000000000..0159ec3400 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/proposals/requests.rs @@ -0,0 +1,9 @@ +use serde::{Deserialize, Serialize}; + +#[derive(Serialize, Deserialize, Debug)] +pub struct ProposalVoteplanIdAndIndexes { + pub vote_plan_id: String, + pub indexes: Vec, +} + +pub type ProposalsByVoteplanIdAndIndex = Vec; diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/proposals/routes.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/proposals/routes.rs new file mode 100644 index 0000000000..5f128171b0 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/proposals/routes.rs @@ -0,0 +1,32 @@ +use super::handlers::*; +use crate::v0::context::SharedContext; +use warp::filters::BoxedFilter; +use warp::{Filter, Rejection, Reply}; + +pub async fn filter( + root: BoxedFilter<()>, + context: SharedContext, +) -> impl Filter + Clone { + let with_context = warp::any().map(move || context.clone()); + + let from_id = warp::path!(i32) + .and(warp::get()) + .and(with_context.clone()) + .and_then(get_proposal) + .boxed(); + + let proposals = warp::path::end() + .and(warp::get()) + .and(with_context.clone()) + .and_then(get_all_proposals) + .boxed(); + + let from_voteplan_id_and_indexes = warp::path::end() + .and(warp::post()) + .and(warp::body::json()) + .and(with_context) + .and_then(get_proposals_by_voteplan_id_and_index); + + root.and(from_id.or(proposals).or(from_voteplan_id_and_indexes)) + .boxed() +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/service_version/handlers.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/service_version/handlers.rs new file mode 100644 index 0000000000..a7e20a1a31 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/service_version/handlers.rs @@ -0,0 +1,37 @@ +use super::logic; +use crate::v0::{context::SharedContext, result::HandlerResult}; +use warp::{Rejection, Reply}; + +pub async fn service_version(context: SharedContext) -> Result { + Ok(HandlerResult(logic::service_version(context).await)) +} + +#[cfg(test)] +pub mod test { + use super::*; + + use crate::v0::context::test::new_in_memmory_db_test_shared_context; + use crate::v0::endpoints::service_version::schemas::ServiceVersion; + use warp::Filter; + + #[tokio::test] + async fn get_proposal_by_id_handler() { + // build context + let shared_context = new_in_memmory_db_test_shared_context(); + let filter_context = shared_context.clone(); + let with_context = warp::any().map(move || filter_context.clone()); + + // build filter + let filter = warp::path::end() + .and(warp::get()) + .and(with_context) + .and_then(service_version); + + let result = warp::test::request().method("GET").reply(&filter).await; + assert_eq!(result.status(), warp::http::StatusCode::OK); + println!("{}", String::from_utf8(result.body().to_vec()).unwrap()); + let service_version_result: ServiceVersion = + serde_json::from_str(&String::from_utf8(result.body().to_vec()).unwrap()).unwrap(); + assert_eq!(service_version_result.service_version, "2.0".to_string()); + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/service_version/logic.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/service_version/logic.rs new file mode 100644 index 0000000000..baf3fcd8f8 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/service_version/logic.rs @@ -0,0 +1,6 @@ +use super::schemas::ServiceVersion; +use crate::v0::{context::SharedContext, errors::HandleError}; +pub async fn service_version(context: SharedContext) -> Result { + let service_version = context.read().await.versioning.clone(); + Ok(ServiceVersion { service_version }) +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/service_version/mod.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/service_version/mod.rs new file mode 100644 index 0000000000..a7f7da0564 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/service_version/mod.rs @@ -0,0 +1,7 @@ +mod handlers; +mod logic; +mod routes; +pub mod schemas; + +pub use routes::filter; +pub use schemas::ServiceVersion; diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/service_version/routes.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/service_version/routes.rs new file mode 100644 index 0000000000..c718d5048f --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/service_version/routes.rs @@ -0,0 +1,19 @@ +use super::handlers::service_version; +use crate::v0::context::SharedContext; +use warp::filters::BoxedFilter; +use warp::{Filter, Rejection, Reply}; + +pub async fn filter( + root: BoxedFilter<()>, + context: SharedContext, +) -> impl Filter + Clone { + let with_context = warp::any().map(move || context.clone()); + + let service_version_filter = warp::path::end() + .and(warp::get()) + .and(with_context) + .and_then(service_version) + .boxed(); + + root.and(service_version_filter).boxed() +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/service_version/schemas.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/service_version/schemas.rs new file mode 100644 index 0000000000..ee9b9a165a --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/endpoints/service_version/schemas.rs @@ -0,0 +1,6 @@ +use serde::{Deserialize, Serialize}; + +#[derive(Serialize, Deserialize)] +pub struct ServiceVersion { + pub service_version: String, +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/errors.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/errors.rs new file mode 100644 index 0000000000..381e7015e5 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/errors.rs @@ -0,0 +1,61 @@ +use thiserror::Error; +use warp::{reply::Response, Rejection, Reply}; + +#[derive(Error, Debug)] +pub enum HandleError { + #[error("The data requested data for `{0}` is not available")] + NotFound(String), + + #[error("Internal error")] + DatabaseError(#[from] diesel::r2d2::PoolError), + + #[error("Unauthorized token")] + UnauthorizedToken, + + #[error("Internal error, cause: {0}")] + InternalError(String), + + #[error("Invalid header {0}, cause: {1}")] + InvalidHeader(&'static str, &'static str), +} + +impl HandleError { + fn to_status_code(&self) -> warp::http::StatusCode { + match self { + HandleError::NotFound(_) => warp::http::StatusCode::NOT_FOUND, + HandleError::DatabaseError(_) => warp::http::StatusCode::SERVICE_UNAVAILABLE, + HandleError::InternalError(_) => warp::http::StatusCode::INTERNAL_SERVER_ERROR, + HandleError::UnauthorizedToken => warp::http::StatusCode::UNAUTHORIZED, + HandleError::InvalidHeader(_, _) => warp::http::StatusCode::BAD_REQUEST, + } + } + + fn to_message(&self) -> String { + format!("{}", self) + } + + fn to_response(&self) -> Response { + let status_code = self.to_status_code(); + warp::reply::with_status(warp::reply::json(&self.to_json()), status_code).into_response() + } + + fn to_json(&self) -> serde_json::Value { + serde_json::json!({"code": self.to_status_code().as_u16(), "message" : self.to_message()}) + } +} + +impl warp::Reply for HandleError { + fn into_response(self) -> Response { + self.to_response() + } +} + +impl warp::reject::Reject for HandleError {} + +pub async fn handle_rejection(err: Rejection) -> Result { + if let Some(handle_error) = err.find::() { + return Ok(handle_error.to_response()); + } + + Err(err) +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/mod.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/mod.rs new file mode 100644 index 0000000000..56dc014f58 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/mod.rs @@ -0,0 +1,57 @@ +pub mod api_token; +pub mod context; +pub mod endpoints; +pub mod errors; +pub mod result; + +use warp::{Filter, Rejection, Reply}; + +const V0_REQUEST_TRACE_NAME: &str = "v0_request"; + +pub async fn filter( + ctx: context::SharedContext, + enable_api_tokens: bool, +) -> impl Filter + Clone { + let api_root = warp::path!("api" / ..); + + let v0_root = warp::path!("v0" / ..); + let service_version_root = warp::path!("vit-version" / ..); + // log request statistics + let log = warp::filters::trace::trace(|info| { + use http_zipkin::get_trace_context; + use tracing::field::Empty; + let span = tracing::span!( + tracing::Level::DEBUG, + "rest_api_request", + method = %info.method(), + path = info.path(), + version = ?info.version(), + remote_addr = Empty, + trace_id = Empty, + span_id = Empty, + parent_span_id = Empty, + ); + if let Some(remote_addr) = info.remote_addr() { + span.record("remote_addr", remote_addr.to_string().as_str()); + } + if let Some(trace_context) = get_trace_context(info.request_headers()) { + span.record("trace_id", trace_context.trace_id().to_string().as_str()); + span.record("span_id", trace_context.span_id().to_string().as_str()); + if let Some(parent_span_id) = trace_context.parent_id() { + span.record("parent_span_id", parent_span_id.to_string().as_str()); + } + } + span + }); + + let v0 = endpoints::filter(v0_root.boxed(), ctx.clone(), enable_api_tokens).await; + + let service_version = + endpoints::service_version::filter(service_version_root.boxed(), ctx).await; + + api_root + .and(v0.or(service_version)) + .with(warp::trace::named(V0_REQUEST_TRACE_NAME)) + .recover(errors::handle_rejection) + .with(log) +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/result.rs b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/result.rs new file mode 100644 index 0000000000..696a2f31a6 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-lib-f10/src/v0/result.rs @@ -0,0 +1,15 @@ +use super::errors::HandleError; +use serde::Serialize; +use warp::reply::Response; +use warp::Reply; + +pub struct HandlerResult(pub Result); + +impl Reply for HandlerResult { + fn into_response(self) -> Response { + match self.0 { + Ok(res) => warp::reply::json(&res).into_response(), + Err(error) => error.into_response(), + } + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-server-f10/Cargo.toml b/src/vit-servicing-station-f10/vit-servicing-station-server-f10/Cargo.toml new file mode 100644 index 0000000000..7a7b2193df --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-server-f10/Cargo.toml @@ -0,0 +1,18 @@ +[package] +name = "vit-servicing-station-server-f10" +version = "0.5.0" +authors = ["danielsanchezq "] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +log = "0.4.11" +structopt = "0.3.14" +tokio = { version = "^1.0", features = ["macros", "rt-multi-thread"] } +tracing = "0.1.21" +tracing-futures = "0.2.4" +tracing-subscriber = { version = "0.3", features=["fmt"] } +tracing-appender = "0.2" +vit-servicing-station-lib-f10 = { path = "../vit-servicing-station-lib-f10" } +#snapshot-service = { path = "../snapshot-service" } diff --git a/src/vit-servicing-station-f10/vit-servicing-station-server-f10/src/main.rs b/src/vit-servicing-station-f10/vit-servicing-station-server-f10/src/main.rs new file mode 100644 index 0000000000..9889669fa3 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-server-f10/src/main.rs @@ -0,0 +1,126 @@ +use std::path::{Path, PathBuf}; +use structopt::StructOpt; + +use tracing::{error, info}; +use tracing_appender::non_blocking::WorkerGuard; +use vit_servicing_station_lib_f10::{ + db, server, server::exit_codes::ApplicationExitCode, server::settings as server_settings, + server::settings::ServiceSettings, v0, +}; + +fn check_and_build_proper_path(path: &Path) -> std::io::Result<()> { + use std::fs; + // create parent dirs if not exists + fs::create_dir_all(path.parent().ok_or_else(|| { + std::io::Error::new( + std::io::ErrorKind::InvalidData, + format!("Cannot create path tree {}", path.to_str().unwrap()), + ) + })?)?; + fs::OpenOptions::new().create(true).write(true).open(path)?; + Ok(()) +} + +fn config_tracing( + level: server_settings::LogLevel, + pathbuf: Option, +) -> Result { + if let Some(path) = pathbuf { + // check path integrity + // we try opening the file since tracing appender would just panic instead of + // returning an error + check_and_build_proper_path(&path)?; + + let file_appender = tracing_appender::rolling::never( + path.parent().ok_or_else(|| { + std::io::Error::new( + std::io::ErrorKind::InvalidInput, + format!("Log file path `{}` is invalid.", path.display()), + ) + })?, + path.file_name().ok_or_else(|| { + std::io::Error::new( + std::io::ErrorKind::InvalidInput, + format!( + "Log file path `{}` doesn't contain a valid file name.", + path.display() + ), + ) + })?, + ); + + let (non_blocking, guard) = tracing_appender::non_blocking(file_appender); + tracing_subscriber::fmt() + .with_writer(non_blocking) + .with_max_level(level) + .init(); + Ok(guard) + } else { + let (non_blocking, guard) = tracing_appender::non_blocking(std::io::stdout()); + tracing_subscriber::fmt() + .with_writer(non_blocking) + .with_max_level(level) + .init(); + Ok(guard) + } +} + +#[tokio::main] +async fn main() { + // load settings from command line (defaults to env variables) + let mut settings: ServiceSettings = ServiceSettings::from_args(); + + // load settings from file if specified + if let Some(settings_file) = &settings.in_settings_file { + let in_file_settings = server_settings::load_settings_from_file(settings_file) + .unwrap_or_else(|e| { + error!("Error loading settings from file {}, {}", settings_file, e); + std::process::exit(ApplicationExitCode::LoadSettingsError.into()) + }); + // merge input file settings override by cli arguments + settings = in_file_settings.override_from(&settings); + } + + // dump settings and exit if specified + if let Some(settings_file) = &settings.out_settings_file { + server_settings::dump_settings_to_file(settings_file, &settings).unwrap_or_else(|e| { + error!("Error writing settings to file {}: {}", settings_file, e); + std::process::exit(ApplicationExitCode::WriteSettingsError.into()) + }); + std::process::exit(0); + } + + // setup logging + let _guard = config_tracing( + settings.log.log_level.unwrap_or_default(), + settings.log.log_output_path.clone(), + ) + .unwrap_or_else(|e| { + error!("Error setting up logging: {}", e); + std::process::exit(ApplicationExitCode::LoadSettingsError.into()) + }); + + // Check db file exists (should be here only for current sqlite db backend) + if !std::path::Path::new(&settings.db_url).exists() { + error!("DB file {} not found.", &settings.db_url); + std::process::exit(ApplicationExitCode::DbConnectionError.into()) + } + // load db pool + let db_pool = db::load_db_connection_pool(&settings.db_url).unwrap_or_else(|e| { + error!("Error connecting to database: {}", e); + std::process::exit(ApplicationExitCode::DbConnectionError.into()) + }); + + let context = + v0::context::new_shared_context(db_pool, &settings.block0_path, &settings.service_version); + + let app = v0::filter(context, settings.enable_api_tokens).await; + + info!( + "Running server at {}, database located at {}", + settings.address, settings.db_url + ); + + // run server with settings + server::start_server(app, Some(settings)).await +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/Cargo.toml b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/Cargo.toml new file mode 100644 index 0000000000..11e3e3a125 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/Cargo.toml @@ -0,0 +1,53 @@ +[package] +name = "vit-servicing-station-tests-f10" +version = "0.5.0" +authors = ["dkijania "] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +base64 = "0.12.1" +cfg-if = "0.1" +time = { version = "0.3", features = ["formatting", "parsing", "macros"] } +diesel = { version = "1.4.4", features = ["sqlite", "r2d2"] } +serde = { version = "1.0", features = ["derive"] } +serde_json = "1.0.53" +structopt = "0.3.14" +thiserror = "1.0" +tokio = { version = "1.0", features = ["macros", "sync", "fs"] } +diesel_migrations = "1.4.0" +tempfile = "3" +rand_core = "0.5" +assert_fs = "1.0.0" +assert_cmd = "2" +hyper = "0.14.2" +vit-servicing-station-lib-f10 = {path= "../vit-servicing-station-lib-f10"} +lazy_static = "1.4" +rand = "0.7" +url = "2.2" +quickcheck = { version = "0.9" } +quickcheck_macros = { version = "0.9" } +predicates = { version = "2.0", default-features = false, features = ["diff"] } +jortestkit = { path = "../../jortestkit" } +chain-impl-mockchain = { workspace = true, features = [ "property-test-api" ] } +chain-addr = { path = "../../chain-libs/chain-addr", features = [ "property-test-api" ] } +chain-crypto = { path = "../../chain-libs/chain-crypto", features = [ "property-test-api" ] } +fake = { version = "2.2", features=['http']} +pretty_assertions = "0.6" +dyn-clone = "1.0.4" +itertools = "0.10.3" + +reqwest = { workspace = true } + +# This solves building on windows when sqlite3lib is not installed or missing in the `$PATH` +# as it happens with the github actions pipeline associated to this project. +[target.'cfg(windows)'.dependencies] +libsqlite3-sys = { version = "0.9.3", features = ["bundled"] } + +[features] +test-api = [] +# feature for excluding performance tests from standard cargo test run +non-functional = [] +# sub category of non-functional tests +soak = [] diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/build.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/build.rs new file mode 100644 index 0000000000..990e91ed81 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/build.rs @@ -0,0 +1,9 @@ +fn main() { + let vit_bin_name = option_env!("VIT_BIN_NAME").unwrap_or("vit-servicing-station-server"); + println!("cargo:rustc-env=VIT_BIN_NAME={}", vit_bin_name); + + let vit_cli_name = option_env!("VIT_CLI_NAME").unwrap_or("vit-servicing-station-cli"); + println!("cargo:rustc-env=VIT_CLI_NAME={}", vit_cli_name); + + println!("cargo:rustc-env=RUST_BACKTRACE=full"); +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/cli/commands/csv_data/load.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/cli/commands/csv_data/load.rs new file mode 100644 index 0000000000..16d52551ad --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/cli/commands/csv_data/load.rs @@ -0,0 +1,50 @@ +use std::path::Path; +use std::process::Command; +pub struct LoadCsvCommand { + command: Command, +} + +impl LoadCsvCommand { + pub fn new(command: Command) -> Self { + Self { command } + } + + pub fn db_url>(mut self, db_url: P) -> Self { + self.command.arg("--db-url").arg(db_url.as_ref()); + self + } + + pub fn funds>(mut self, funds: P) -> Self { + self.command.arg("--funds").arg(funds.as_ref()); + self + } + + pub fn proposals>(mut self, proposals: P) -> Self { + self.command.arg("--proposals").arg(proposals.as_ref()); + self + } + + pub fn voteplans>(mut self, voteplans: P) -> Self { + self.command.arg("--voteplans").arg(voteplans.as_ref()); + self + } + + pub fn challenges>(mut self, challenges: P) -> Self { + self.command.arg("--challenges").arg(challenges.as_ref()); + self + } + + pub fn advisor_reviews>(mut self, reviews: P) -> Self { + self.command.arg("--reviews").arg(reviews.as_ref()); + self + } + + pub fn goals>(mut self, goals: P) -> Self { + self.command.arg("--goals").arg(goals.as_ref()); + self + } + + pub fn build(self) -> Command { + self.command + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/cli/commands/csv_data/mod.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/cli/commands/csv_data/mod.rs new file mode 100644 index 0000000000..78622e494e --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/cli/commands/csv_data/mod.rs @@ -0,0 +1,19 @@ +mod load; + +pub use load::LoadCsvCommand; +use std::process::Command; + +pub struct CsvDataCommand { + command: Command, +} + +impl CsvDataCommand { + pub fn new(command: Command) -> Self { + Self { command } + } + + pub fn load(mut self) -> LoadCsvCommand { + self.command.arg("load"); + LoadCsvCommand::new(self.command) + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/cli/commands/db/init.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/cli/commands/db/init.rs new file mode 100644 index 0000000000..eaf600655d --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/cli/commands/db/init.rs @@ -0,0 +1,20 @@ +use std::path::Path; +use std::process::Command; +pub struct InitDbCommand { + command: Command, +} + +impl InitDbCommand { + pub fn new(command: Command) -> Self { + Self { command } + } + + pub fn db_url>(mut self, db_url: P) -> Self { + self.command.arg("--db-url").arg(db_url.as_ref()); + self + } + + pub fn build(self) -> Command { + self.command + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/cli/commands/db/mod.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/cli/commands/db/mod.rs new file mode 100644 index 0000000000..5bd7d1f5a6 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/cli/commands/db/mod.rs @@ -0,0 +1,19 @@ +mod init; + +pub use init::InitDbCommand; +use std::process::Command; + +pub struct DbCommand { + command: Command, +} + +impl DbCommand { + pub fn new(command: Command) -> Self { + Self { command } + } + + pub fn init(mut self) -> InitDbCommand { + self.command.arg("init"); + InitDbCommand::new(self.command) + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/cli/commands/mod.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/cli/commands/mod.rs new file mode 100644 index 0000000000..25ca791979 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/cli/commands/mod.rs @@ -0,0 +1,44 @@ +mod csv_data; +mod db; +mod token; + +use csv_data::CsvDataCommand; +use db::DbCommand; +use token::ApiTokenCommand; + +use crate::common::startup::get_cli_exe; +use std::{path::PathBuf, process::Command}; + +pub struct VitCliCommand { + exe: PathBuf, +} + +impl Default for VitCliCommand { + fn default() -> Self { + Self::new(get_cli_exe()) + } +} + +impl VitCliCommand { + pub fn new(exe: PathBuf) -> Self { + Self { exe } + } + + pub fn api_token(self) -> ApiTokenCommand { + let mut command = Command::new(self.exe); + command.arg("api-token"); + ApiTokenCommand::new(command) + } + + pub fn db(self) -> DbCommand { + let mut command = Command::new(self.exe); + command.arg("db"); + DbCommand::new(command) + } + + pub fn csv_data(self) -> CsvDataCommand { + let mut command = Command::new(self.exe); + command.arg("csv-data"); + CsvDataCommand::new(command) + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/cli/commands/token/add.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/cli/commands/token/add.rs new file mode 100644 index 0000000000..fbda95a5e8 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/cli/commands/token/add.rs @@ -0,0 +1,30 @@ +use std::process::Command; + +pub struct ApiTokenAddCommand { + command: Command, +} + +impl ApiTokenAddCommand { + pub fn new(command: Command) -> Self { + Self { command } + } + + pub fn db_url>(mut self, db_url: S) -> Self { + self.command.arg("--db-url").arg(db_url.into()); + self + } + + pub fn tokens(mut self, tokens: &[String]) -> Self { + self = self.tokens_as_str(&tokens.join(",")); + self + } + + pub fn tokens_as_str(mut self, tokens: &str) -> Self { + self.command.arg("--tokens").arg(tokens); + self + } + + pub fn build(self) -> Command { + self.command + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/cli/commands/token/generate.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/cli/commands/token/generate.rs new file mode 100644 index 0000000000..bc45ede99a --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/cli/commands/token/generate.rs @@ -0,0 +1,25 @@ +use std::process::Command; + +pub struct ApiTokenGenerateCommand { + command: Command, +} + +impl ApiTokenGenerateCommand { + pub fn new(command: Command) -> Self { + Self { command } + } + + pub fn n(mut self, n: u32) -> Self { + self.command.arg("--n").arg(n.to_string()); + self + } + + pub fn size(mut self, size: u32) -> Self { + self.command.arg("--size").arg(size.to_string()); + self + } + + pub fn build(self) -> Command { + self.command + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/cli/commands/token/mod.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/cli/commands/token/mod.rs new file mode 100644 index 0000000000..343c96f8e2 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/cli/commands/token/mod.rs @@ -0,0 +1,26 @@ +mod add; +mod generate; + +pub use add::ApiTokenAddCommand; +pub use generate::ApiTokenGenerateCommand; +use std::process::Command; + +pub struct ApiTokenCommand { + command: Command, +} + +impl ApiTokenCommand { + pub fn new(command: Command) -> Self { + Self { command } + } + + pub fn generate(mut self) -> ApiTokenGenerateCommand { + self.command.arg("generate"); + ApiTokenGenerateCommand::new(self.command) + } + + pub fn add(mut self) -> ApiTokenAddCommand { + self.command.arg("add"); + ApiTokenAddCommand::new(self.command) + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/cli/mod.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/cli/mod.rs new file mode 100644 index 0000000000..b44e8146d5 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/cli/mod.rs @@ -0,0 +1,33 @@ +use super::startup::get_cli_exe; +use assert_cmd::assert::OutputAssertExt; +mod commands; +pub use commands::VitCliCommand; +use jortestkit::process::output_extensions::ProcessOutput; +use std::path::PathBuf; +pub struct VitCli { + exe: PathBuf, +} + +impl Default for VitCli { + fn default() -> Self { + Self::new(get_cli_exe()) + } +} + +impl VitCli { + pub fn new(exe: PathBuf) -> Self { + Self { exe } + } + + pub fn generate_tokens(&self, n: u32) -> Vec { + let vit_command: VitCliCommand = VitCliCommand::new(self.exe.clone()); + vit_command + .api_token() + .generate() + .n(n) + .build() + .assert() + .get_output() + .as_multi_line() + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/clients/mod.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/clients/mod.rs new file mode 100644 index 0000000000..c708334460 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/clients/mod.rs @@ -0,0 +1,3 @@ +pub mod rest; + +pub use rest::{Error as RestError, RawRestClient, RestClient}; diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/clients/rest/logger.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/clients/rest/logger.rs new file mode 100644 index 0000000000..b5fd2aa4d2 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/clients/rest/logger.rs @@ -0,0 +1,48 @@ +#[derive(Debug, Clone)] +pub struct RestClientLogger { + enabled: bool, +} + +impl Default for RestClientLogger { + fn default() -> Self { + Self { enabled: true } + } +} + +impl RestClientLogger { + pub fn log_request(&self, request: &str) { + if !self.is_enabled() { + return; + } + println!("Request: {:#?}", request); + } + + pub fn log_response(&self, response: &reqwest::blocking::Response) { + if !self.is_enabled() { + return; + } + println!("Response: {:#?}", response); + } + + pub fn log_text(&self, content: &str) { + if !self.is_enabled() { + return; + } + println!("Text: {:#?}", content); + } + + pub fn log_post_body(&self, content: &str) { + if !self.is_enabled() { + return; + } + println!("Post Body: {}", content); + } + + pub fn is_enabled(&self) -> bool { + self.enabled + } + + pub fn set_enabled(&mut self, enabled: bool) { + self.enabled = enabled + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/clients/rest/mod.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/clients/rest/mod.rs new file mode 100644 index 0000000000..58c2381d94 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/clients/rest/mod.rs @@ -0,0 +1,198 @@ +mod logger; +mod path; +mod raw; + +use crate::common::clients::rest::path::RestPathBuilder; +use hyper::StatusCode; +use logger::RestClientLogger; +pub use raw::RestClient as RawRestClient; +use reqwest::blocking::Response; +use std::collections::HashMap; +use thiserror::Error; +use url::Url; +use vit_servicing_station_lib_f10::db::models::challenges::Challenge; +use vit_servicing_station_lib_f10::db::models::community_advisors_reviews::AdvisorReview; +use vit_servicing_station_lib_f10::db::models::proposals::FullProposalInfo; +use vit_servicing_station_lib_f10::server::settings::ServiceSettings; +use vit_servicing_station_lib_f10::{ + db::models::{funds::Fund, proposals::Proposal}, + v0::endpoints::{proposals::ProposalVoteplanIdAndIndexes, service_version::ServiceVersion}, +}; + +#[derive(Debug, Clone)] +pub struct RestClient { + raw: RawRestClient, +} + +impl From<&ServiceSettings> for RestClient { + fn from(settings: &ServiceSettings) -> Self { + let url = { + let scheme = { + if settings.tls.cert_file.is_some() { + "https" + } else { + "http" + } + }; + //we accepted ServiceSettings struct in constructor, so address should be proper + //SockerAddr struct, therefore we won't have any problems with parsing result + format!("{}://{}", scheme, settings.address) + .parse() + .unwrap() + }; + Self::new(url) + } +} + +#[allow(clippy::from_over_into)] +impl Into for RestClient { + fn into(self) -> RawRestClient { + self.raw + } +} + +impl RestClient { + pub fn new(url: Url) -> Self { + Self { + raw: RawRestClient::new(url), + } + } + + pub fn health(&self) -> Result<(), Error> { + self.verify_status_code(&self.raw.health()?) + .map_err(|_| Error::ServerIsNotUp) + } + + pub fn funds(&self) -> Result { + let response = self.raw.funds()?; + self.verify_status_code(&response)?; + let content = response.text()?; + self.raw.log_text(&content); + serde_json::from_str(&content).map_err(|e| Error::CannotDeserializeResponse { + source: e, + text: content.clone(), + }) + } + + pub fn path_builder(&self) -> &RestPathBuilder { + self.raw.path_builder() + } + + pub fn proposal(&self, id: &str) -> Result { + let response = self.raw.proposal(id)?; + self.verify_status_code(&response)?; + let content = response.text()?; + self.raw.log_text(&content); + serde_json::from_str(&content).map_err(|e| Error::CannotDeserializeResponse { + source: e, + text: content.clone(), + }) + } + + pub fn proposals(&self) -> Result, Error> { + let response = self.raw.proposals()?; + self.verify_status_code(&response)?; + let content = response.text()?; + self.raw.log_text(&content); + if content.is_empty() { + return Ok(vec![]); + } + serde_json::from_str(&content).map_err(|e| Error::CannotDeserializeResponse { + source: e, + text: content.clone(), + }) + } + + pub fn fund(&self, id: &str) -> Result { + let response = self.raw.fund(id)?; + self.verify_status_code(&response)?; + let content = response.text()?; + self.raw.log_text(&content); + serde_json::from_str(&content).map_err(Error::CannotDeserialize) + } + + pub fn proposals_by_voteplan_id_and_index( + &self, + request: &[ProposalVoteplanIdAndIndexes], + ) -> Result, Error> { + let request_as_string = serde_json::to_string(&request)?; + serde_json::from_str( + &self + .raw + .proposals_by_voteplan_id_and_index(&request_as_string)? + .text()?, + ) + .map_err(Error::CannotDeserialize) + } + + pub fn challenges(&self) -> Result, Error> { + let response = self.raw.challenges()?; + self.verify_status_code(&response)?; + let content = response.text()?; + self.raw.log_text(&content); + serde_json::from_str(&content).map_err(Error::CannotDeserialize) + } + + pub fn genesis(&self) -> Result, Error> { + Ok(self.raw.genesis()?.bytes()?.to_vec()) + } + + pub fn service_version(&self) -> Result { + let response = self.raw.service_version()?; + self.verify_status_code(&response)?; + let content = response.text()?; + self.raw.log_text(&content); + serde_json::from_str(&content).map_err(Error::CannotDeserialize) + } + + pub fn advisor_reviews( + &self, + proposal_id: &str, + ) -> Result>, Error> { + let response = self.raw.advisor_reviews(proposal_id)?; + self.verify_status_code(&response)?; + let content = response.text()?; + self.raw.log_text(&content); + serde_json::from_str(&content).map_err(Error::CannotDeserialize) + } + + fn verify_status_code(&self, response: &Response) -> Result<(), Error> { + if !response.status().is_success() { + return Err(Error::ErrorStatusCode(response.status())); + } + Ok(()) + } + + pub fn disable_log(&mut self) { + self.raw.disable_log(); + } + + pub fn enable_log(&mut self) { + self.raw.enable_log(); + } + + pub fn set_api_token(&mut self, token: String) { + self.raw.set_api_token(token); + } + + pub fn set_origin>(&mut self, origin: S) { + self.raw.set_origin(origin); + } +} + +#[derive(Debug, Error)] +pub enum Error { + #[error("could not deserialize response {text}, due to: {source}")] + CannotDeserializeResponse { + source: serde_json::Error, + text: String, + }, + #[error("could not deserialize response")] + CannotDeserialize(#[from] serde_json::Error), + #[error("could not send reqeuest")] + RequestError(#[from] reqwest::Error), + #[error("server is not up")] + ServerIsNotUp, + #[error("Error code recieved: {0}")] + ErrorStatusCode(StatusCode), +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/clients/rest/path.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/clients/rest/path.rs new file mode 100644 index 0000000000..8e84eca10b --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/clients/rest/path.rs @@ -0,0 +1,75 @@ +use url::Url; + +#[derive(Debug, Clone)] +pub struct RestPathBuilder { + address: Url, + root: String, +} + +impl RestPathBuilder { + pub fn new(address: Url) -> Self { + RestPathBuilder { + root: "api/v0/".to_string(), + address, + } + } + + pub fn admin(self) -> Self { + Self { + address: self.address, + root: self.root + "admin/", + } + } + + pub fn proposals(&self) -> String { + self.path("proposals") + } + + pub fn funds(&self) -> String { + self.path("fund") + } + + pub fn challenges(&self) -> String { + self.path("challenges") + } + + pub fn snapshot(&self, tag: &str) -> String { + self.path(&format!("snapshot/{}", tag)) + } + + pub fn snapshot_tags(&self) -> String { + self.path("snapshot") + } + + pub fn snapshot_voting_power(&self, tag: &str, key: &str) -> String { + self.path(&format!("snapshot/{}/{}", tag, key)) + } + + pub fn proposal(&self, id: &str) -> String { + self.path(&format!("proposals/{}", id)) + } + + pub fn fund(&self, id: &str) -> String { + self.path(&format!("fund/{}", id)) + } + + pub fn advisor_reviews(&self, id: &str) -> String { + self.path(&format!("reviews/{}", id)) + } + + pub fn genesis(&self) -> String { + self.path("block0") + } + + pub fn health(&self) -> String { + self.path("health") + } + + pub fn service_version(&self) -> String { + format!("{}{}{}", self.address, "api/", "vit-version") + } + + pub fn path(&self, path: &str) -> String { + format!("{}{}{}", self.address, self.root, path) + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/clients/rest/raw.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/clients/rest/raw.rs new file mode 100644 index 0000000000..c2a8077f34 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/clients/rest/raw.rs @@ -0,0 +1,179 @@ +use reqwest::blocking::Response; + +use super::Error; +use super::{RestClientLogger, RestPathBuilder}; +use url::Url; +use vit_servicing_station_lib_f10::v0::api_token::API_TOKEN_HEADER; + +#[derive(Debug, Clone)] +pub struct RestClient { + path_builder: RestPathBuilder, + api_token: Option, + logger: RestClientLogger, + origin: Option, +} + +const ORIGIN: &str = "Origin"; + +impl RestClient { + pub fn new(url: Url) -> Self { + Self { + api_token: None, + path_builder: RestPathBuilder::new(url), + logger: RestClientLogger::default(), + origin: None, + } + } + + pub fn health(&self) -> Result { + self.get(&self.path_builder.health()) + .map_err(Error::RequestError) + } + + pub fn funds(&self) -> Result { + self.get(&self.path_builder.funds()) + .map_err(Error::RequestError) + } + + pub fn proposals(&self) -> Result { + self.get(&self.path_builder.proposals()) + .map_err(Error::RequestError) + } + + pub fn put_snapshot(&self, tag: &str, content: String) -> Result { + self.put(&self.path_builder.clone().admin().snapshot(tag), content) + .map_err(Error::RequestError) + } + + pub fn snapshot_tags(&self) -> Result { + self.get(&self.path_builder.snapshot_tags()) + .map_err(Error::RequestError) + } + + pub fn voting_power(&self, tag: &str, key: &str) -> Result { + self.get(&self.path_builder.snapshot_voting_power(tag, key)) + .map_err(Error::RequestError) + } + + pub fn proposal(&self, id: &str) -> Result { + self.get(&self.path_builder().proposal(id)) + .map_err(Error::RequestError) + } + + pub fn proposals_by_voteplan_id_and_index( + &self, + request_as_string: &str, + ) -> Result { + self.post( + &self.path_builder().proposals(), + request_as_string.to_string(), + ) + .map_err(Error::RequestError) + } + + pub fn fund(&self, id: &str) -> Result { + self.get(&self.path_builder().fund(id)) + .map_err(Error::RequestError) + } + + pub fn challenges(&self) -> Result { + self.get(&self.path_builder().challenges()) + .map_err(Error::RequestError) + } + + pub fn genesis(&self) -> Result { + self.get(&self.path_builder.genesis()) + .map_err(Error::RequestError) + } + + pub fn service_version(&self) -> Result { + self.get(&self.path_builder.service_version()) + .map_err(Error::RequestError) + } + + pub fn advisor_reviews(&self, proposal_id: &str) -> Result { + self.get(&self.path_builder.advisor_reviews(proposal_id)) + .map_err(Error::RequestError) + } + + pub fn client(&self) -> Result { + reqwest::blocking::Client::builder() + .danger_accept_invalid_certs(true) + .build() + .map_err(Into::into) + } + + pub fn set_api_token(&mut self, token: String) { + self.api_token = Some(token); + } + + pub fn set_origin>(&mut self, origin: S) { + self.origin = Some(origin.into()); + } + + pub fn disable_log(&mut self) { + self.logger.set_enabled(false); + } + + pub fn enable_log(&mut self) { + self.logger.set_enabled(true); + } + + pub fn log_response(&self, response: &Response) { + self.logger.log_response(response); + } + + pub fn log_text(&self, content: &str) { + self.logger.log_text(content); + } + + pub fn path_builder(&self) -> &RestPathBuilder { + &self.path_builder + } + + fn post( + &self, + path: &str, + data: String, + ) -> Result { + self.logger.log_post_body(&data); + + let mut res = self.client()?.post(path).body(String::into_bytes(data)); + + if let Some(api_token) = &self.api_token { + res = res.header(API_TOKEN_HEADER, api_token.to_string()); + } + let response = res.send()?; + Ok(response) + } + + fn get(&self, path: &str) -> Result { + self.logger.log_request(path); + let mut res = self.client()?.get(path); + + if let Some(api_token) = &self.api_token { + res = res.header(API_TOKEN_HEADER, api_token.to_string()); + } + if let Some(origin) = &self.origin { + res = res.header(ORIGIN, origin.to_string()); + } + let response = res.send()?; + self.logger.log_response(&response); + Ok(response) + } + + fn put(&self, path: &str, body: String) -> Result { + self.logger.log_request(path); + let mut res = self.client()?.put(path).body(body); + + if let Some(api_token) = &self.api_token { + res = res.header(API_TOKEN_HEADER, api_token.to_string()); + } + if let Some(origin) = &self.origin { + res = res.header(ORIGIN, origin.to_string()); + } + let response = res.send()?; + self.logger.log_response(&response); + Ok(response) + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/csv_converter.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/csv_converter.rs new file mode 100644 index 0000000000..8e1cfe471b --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/csv_converter.rs @@ -0,0 +1,331 @@ +use jortestkit::csv::CsvFileBuilder; +use std::path::Path; +use thiserror::Error; +use time::format_description::well_known::Rfc3339; +use vit_servicing_station_lib_f10::db::models::community_advisors_reviews::AdvisorReview; +use vit_servicing_station_lib_f10::db::models::goals::InsertGoal; +use vit_servicing_station_lib_f10::db::models::proposals::{ + FullProposalInfo, ProposalChallengeInfo, +}; +use vit_servicing_station_lib_f10::{ + db::models::{challenges::Challenge, funds::Fund, voteplans::Voteplan}, + utils::datetime::unix_timestamp_to_datetime, +}; + +#[derive(Debug, Error)] +pub enum Error { + #[error("Cannot format csv file with funds due to : {0}")] + CannotBuildCsvWithFunds(String), +} + +pub struct CsvConverter; + +impl CsvConverter { + pub fn funds>(&self, funds: Vec, path: P) -> Result<(), Error> { + let headers = vec![ + "id", + "fund_name", + "voting_power_threshold", + "fund_goal", + "fund_start_time", + "fund_end_time", + "next_fund_start_time", + "registration_snapshot_time", + "next_registration_snapshot_time", + "insight_sharing_start", + "proposal_submission_start", + "refine_proposals_start", + "finalize_proposals_start", + "proposal_assessment_start", + "assessment_qa_start", + "snapshot_start", + "voting_start", + "voting_end", + "tallying_end", + "results_url", + "survey_url", + ]; + let content: Vec> = funds.iter().map(convert_fund).collect(); + self.build_file(headers, content, path) + } + + pub fn voteplans>( + &self, + voteplans: Vec, + path: P, + ) -> Result<(), Error> { + let headers = vec![ + "id", + "chain_voteplan_id", + "chain_vote_start_time", + "chain_vote_end_time", + "chain_committee_end_time", + "chain_voteplan_payload", + "chain_vote_encryption_key", + "fund_id", + ]; + let content: Vec> = voteplans.iter().map(convert_voteplan).collect(); + self.build_file(headers, content, path) + } + + pub fn proposals>( + &self, + proposals: Vec, + path: P, + ) -> Result<(), Error> { + let headers = vec![ + "internal_id", + "category_name", + "proposal_id", + "proposal_title", + "proposal_summary", + "proposal_url", + "proposal_files_url", + "proposal_public_key", + "proposal_funds", + "proposal_impact_score", + "proposer_email", + "proposer_name", + "proposer_url", + "proposer_relevant_experience", + "chain_proposal_id", + "chain_proposal_index", + "chain_vote_options", + "chain_vote_type", + "chain_vote_action", + "id", + "chain_voteplan_id", + "chain_vote_start_time", + "chain_vote_end_time", + "chain_committe", + "challenge_id", + "proposal_solution", + "proposal_brief", + "proposal_importance", + "proposal_goal", + "proposal_metrics", + ]; + + let content: Vec> = proposals.iter().map(convert_proposal).collect(); + self.build_file(headers, content, path) + } + + pub fn challenges>( + &self, + challenges: Vec, + path: P, + ) -> Result<(), Error> { + let headers = vec![ + "id", + "challenge_type", + "title", + "description", + "rewards_total", + "proposers_rewards", + "fund_id", + "challenge_url", + ]; + + let content: Vec> = challenges.iter().map(convert_challenge).collect(); + self.build_file(headers, content, path) + } + + pub fn advisor_reviews>( + &self, + challenges: Vec, + path: P, + ) -> Result<(), Error> { + let headers = vec![ + "id", + "proposal_id", + "assessor", + "impact_alignment_rating_given", + "impact_alignment_note", + "feasibility_rating_given", + "feasibility_note", + "auditability_rating_given", + "auditability_note", + "excellent", + "good", + ]; + + let content: Vec> = challenges.iter().map(convert_advisor_review).collect(); + self.build_file(headers, content, path) + } + + pub fn goals>(&self, goals: Vec, path: P) -> Result<(), Error> { + let headers = vec!["goal_name", "fund_id"]; + + let content: Vec> = goals.iter().map(convert_goals).collect(); + self.build_file(headers, content, path) + } + + fn build_file>( + &self, + headers: Vec<&str>, + content: Vec>, + path: P, + ) -> Result<(), Error> { + let mut csv_loader: CsvFileBuilder = CsvFileBuilder::from_path(path); + csv_loader + .with_header(headers) + .with_contents(content) + .build() + .map_err(|e| Error::CannotBuildCsvWithFunds(e.to_string())) + } +} + +fn convert_proposal(proposal: &FullProposalInfo) -> Vec { + let (solution, brief, importance, goal, metrics) = match &proposal.challenge_info { + ProposalChallengeInfo::Simple(data) => ( + data.proposal_solution.clone(), + "".to_string(), + "".to_string(), + "".to_string(), + "".to_string(), + ), + ProposalChallengeInfo::CommunityChoice(data) => ( + "".to_string(), + data.proposal_brief.clone(), + data.proposal_importance.clone(), + data.proposal_goal.clone(), + data.proposal_metrics.clone(), + ), + }; + let proposal = &proposal.proposal; + + vec![ + proposal.internal_id.to_string(), + proposal.proposal_category.category_name.to_string(), + proposal.proposal_id.to_string(), + proposal.proposal_title.to_string(), + proposal.proposal_summary.to_string(), + proposal.proposal_url.to_string(), + proposal.proposal_files_url.to_string(), + proposal.proposal_public_key.to_string(), + proposal.proposal_funds.to_string(), + proposal.proposal_impact_score.to_string(), + proposal.proposer.proposer_email.to_string(), + proposal.proposer.proposer_name.to_string(), + proposal.proposer.proposer_url.to_string(), + proposal.proposer.proposer_relevant_experience.to_string(), + std::str::from_utf8(&proposal.chain_proposal_id) + .unwrap() + .to_string(), + proposal.chain_proposal_index.to_string(), + proposal.chain_vote_options.as_csv_string(), + proposal.chain_voteplan_payload.to_string(), + "off_chain".to_string(), + proposal.proposal_id.to_string(), + proposal.chain_voteplan_id.to_string(), + unix_timestamp_to_rfc3339(proposal.chain_vote_start_time), + unix_timestamp_to_rfc3339(proposal.chain_vote_end_time), + unix_timestamp_to_rfc3339(proposal.chain_committee_end_time), + proposal.challenge_id.to_string(), + solution, + brief, + importance, + goal, + metrics, + ] +} + +fn convert_fund(fund: &Fund) -> Vec { + // destructure the object to get a compile-time exhaustivity check, even if we already have + // tests for this, it's easier to keep it up-to-date + let Fund { + id, + fund_name, + fund_goal, + voting_power_threshold, + fund_start_time, + fund_end_time, + next_fund_start_time, + registration_snapshot_time, + next_registration_snapshot_time, + chain_vote_plans: _, + challenges: _, + stage_dates, + goals: _, + results_url, + survey_url, + } = fund; + + // TODO: can we leverage serde to build these vectors? + vec![ + id.to_string(), + fund_name.to_string(), + voting_power_threshold.to_string(), + fund_goal.to_string(), + unix_timestamp_to_rfc3339(*fund_start_time), + unix_timestamp_to_rfc3339(*fund_end_time), + unix_timestamp_to_rfc3339(*next_fund_start_time), + unix_timestamp_to_rfc3339(*registration_snapshot_time), + unix_timestamp_to_rfc3339(*next_registration_snapshot_time), + unix_timestamp_to_rfc3339(stage_dates.insight_sharing_start), + unix_timestamp_to_rfc3339(stage_dates.proposal_submission_start), + unix_timestamp_to_rfc3339(stage_dates.refine_proposals_start), + unix_timestamp_to_rfc3339(stage_dates.finalize_proposals_start), + unix_timestamp_to_rfc3339(stage_dates.proposal_assessment_start), + unix_timestamp_to_rfc3339(stage_dates.assessment_qa_start), + unix_timestamp_to_rfc3339(stage_dates.snapshot_start), + unix_timestamp_to_rfc3339(stage_dates.voting_start), + unix_timestamp_to_rfc3339(stage_dates.voting_end), + unix_timestamp_to_rfc3339(stage_dates.tallying_end), + results_url.to_string(), + survey_url.to_string(), + ] +} + +fn convert_voteplan(voteplan: &Voteplan) -> Vec { + vec![ + voteplan.id.to_string(), + voteplan.chain_voteplan_id.to_string(), + unix_timestamp_to_rfc3339(voteplan.chain_vote_start_time), + unix_timestamp_to_rfc3339(voteplan.chain_vote_end_time), + unix_timestamp_to_rfc3339(voteplan.chain_committee_end_time), + voteplan.chain_voteplan_payload.to_string(), + voteplan.chain_vote_encryption_key.to_string(), + voteplan.fund_id.to_string(), + ] +} + +fn convert_challenge(challenge: &Challenge) -> Vec { + vec![ + challenge.id.to_string(), + challenge.challenge_type.to_string(), + challenge.title.clone(), + challenge.description.clone(), + challenge.rewards_total.to_string(), + challenge.proposers_rewards.to_string(), + challenge.fund_id.to_string(), + challenge.challenge_url.clone(), + ] +} + +fn convert_advisor_review(review: &AdvisorReview) -> Vec { + vec![ + review.id.to_string(), + review.proposal_id.to_string(), + review.assessor.to_string(), + review.impact_alignment_rating_given.to_string(), + review.impact_alignment_note.to_string(), + review.feasibility_rating_given.to_string(), + review.feasibility_note.to_string(), + review.auditability_rating_given.to_string(), + review.auditability_note.to_string(), + (review.ranking as u8 == 0).to_string(), + (review.ranking as u8 == 1).to_string(), + ] +} + +fn convert_goals(goal: &InsertGoal) -> Vec { + let InsertGoal { goal_name, fund_id } = goal; + vec![goal_name.to_string(), fund_id.to_string()] +} + +fn unix_timestamp_to_rfc3339(timestamp: i64) -> String { + unix_timestamp_to_datetime(timestamp) + .format(&Rfc3339) + .unwrap() +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/arbitrary/generator.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/arbitrary/generator.rs new file mode 100644 index 0000000000..ea3f519501 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/arbitrary/generator.rs @@ -0,0 +1,116 @@ +use crate::common::data::{CurrentFund, ValidVotePlanParameters}; +use chain_impl_mockchain::testing::scenario::template::ProposalDefBuilder; +use chain_impl_mockchain::testing::scenario::template::VotePlanDef; +use chain_impl_mockchain::testing::scenario::template::VotePlanDefBuilder; +use fake::faker::name::en::Name; +use fake::Fake; +use rand::{rngs::OsRng, RngCore}; +use std::{collections::HashMap, iter}; +use time::{Duration, OffsetDateTime}; +use vit_servicing_station_lib_f10::{ + db::models::api_tokens::ApiTokenData, v0::api_token::ApiToken, +}; + +#[derive(Clone)] +pub struct ArbitraryGenerator { + id_generator: OsRng, +} + +impl Default for ArbitraryGenerator { + fn default() -> Self { + ArbitraryGenerator::new() + } +} + +impl ArbitraryGenerator { + pub fn new() -> Self { + Self { + id_generator: OsRng, + } + } + + pub fn random_index(&mut self, limit: usize) -> usize { + (self.id_generator.next_u32() as usize) % limit + } + + pub fn random_size(&mut self) -> usize { + (self.id_generator.next_u32() as usize) % 100 + 1 + } + + pub fn bytes(&mut self) -> [u8; 32] { + let mut random_bytes: [u8; 32] = [0; 32]; + self.id_generator.fill_bytes(&mut random_bytes); + random_bytes + } + + pub fn next_u32(&mut self) -> u32 { + self.id_generator.next_u32() + } + + pub fn next_u64(&mut self) -> u64 { + self.id_generator.next_u64() + } + + pub fn token_hash(&mut self) -> String { + base64::encode_config(self.bytes(), base64::URL_SAFE_NO_PAD) + } + + pub fn id(&mut self) -> i32 { + self.id_generator.next_u32() as i32 + } + + pub fn token(&mut self) -> (String, ApiTokenData) { + let data = self.bytes().to_vec(); + let token_creation_time = OffsetDateTime::now_utc() - Duration::days(1); + let toket_expiry_time = OffsetDateTime::now_utc() + Duration::days(1); + + let token_data = ApiTokenData { + token: ApiToken::new(data.clone()), + creation_time: token_creation_time.unix_timestamp(), + expire_time: toket_expiry_time.unix_timestamp(), + }; + ( + base64::encode_config(data, base64::URL_SAFE_NO_PAD), + token_data, + ) + } + + pub fn tokens(&mut self) -> HashMap { + let size = self.random_size() % 10 + 2; + iter::from_fn(|| Some(self.token())).take(size).collect() + } + + pub fn hash(&mut self) -> String { + let mut hash = [0u8; 32]; + self.id_generator.fill_bytes(&mut hash); + base64::encode(hash) + } + + pub fn vote_plan_def(&mut self) -> VotePlanDef { + let mut vote_plan_builder = VotePlanDefBuilder::new("fund_x"); + vote_plan_builder.owner(&Name().fake::()); + vote_plan_builder.vote_phases(1, 2, 3); + + for _ in 0..(self.next_u32() % 245 + 10) { + let mut proposal_builder = ProposalDefBuilder::new( + chain_impl_mockchain::testing::VoteTestGen::external_proposal_id(), + ); + proposal_builder.options(3); + proposal_builder.action_off_chain(); + vote_plan_builder.with_proposal(&mut proposal_builder); + } + + vote_plan_builder.build() + } + + pub fn vote_plan_def_collection(&mut self) -> Vec { + let len = (self.next_u32() % 10 + 1) as usize; + std::iter::from_fn(|| Some(self.vote_plan_def())) + .take(len) + .collect() + } + + pub fn valid_vote_plan_parameters(&mut self) -> ValidVotePlanParameters { + CurrentFund::new(self.vote_plan_def_collection(), Default::default()).into() + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/arbitrary/mod.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/arbitrary/mod.rs new file mode 100644 index 0000000000..e76fc8fddd --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/arbitrary/mod.rs @@ -0,0 +1,5 @@ +mod generator; +mod snapshot_generator; + +pub use generator::ArbitraryGenerator; +pub use snapshot_generator::ArbitrarySnapshotGenerator; diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/arbitrary/snapshot_generator.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/arbitrary/snapshot_generator.rs new file mode 100644 index 0000000000..c613fb7802 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/arbitrary/snapshot_generator.rs @@ -0,0 +1,370 @@ +use crate::common::data::ArbitraryGenerator; +use crate::common::data::ArbitraryValidVotingTemplateGenerator; +use crate::common::data::{Snapshot, ValidVotingTemplateGenerator}; +use std::iter; +use time::{Duration, OffsetDateTime}; +use vit_servicing_station_lib_f10::db::models::funds::FundStageDates; +use vit_servicing_station_lib_f10::db::models::goals::Goal; +use vit_servicing_station_lib_f10::db::models::{ + api_tokens::ApiTokenData, + challenges::Challenge, + funds::Fund, + proposals::{ChallengeType, Proposal}, + voteplans::Voteplan, +}; + +use vit_servicing_station_lib_f10::db::models::community_advisors_reviews::AdvisorReview; +use vit_servicing_station_lib_f10::db::models::proposals::FullProposalInfo; + +struct FundDateTimes { + start: OffsetDateTime, + end: OffsetDateTime, + next: OffsetDateTime, + snapshot: OffsetDateTime, + next_snapshot: OffsetDateTime, + insight_sharing_start: OffsetDateTime, + proposal_submission_start: OffsetDateTime, + refine_proposals_start: OffsetDateTime, + finalize_proposals_start: OffsetDateTime, + proposal_assessment_start: OffsetDateTime, + assessment_qa_start: OffsetDateTime, + snapshot_start: OffsetDateTime, + voting_start: OffsetDateTime, + voting_end: OffsetDateTime, + tallying_end: OffsetDateTime, +} + +struct VoteplanDateTimes { + start: OffsetDateTime, + end: OffsetDateTime, + tally: OffsetDateTime, +} + +#[derive(Clone)] +pub struct ArbitrarySnapshotGenerator { + id_generator: ArbitraryGenerator, + template_generator: ArbitraryValidVotingTemplateGenerator, +} + +impl Default for ArbitrarySnapshotGenerator { + fn default() -> Self { + Self { + id_generator: ArbitraryGenerator::new(), + template_generator: ArbitraryValidVotingTemplateGenerator::new(), + } + } +} + +impl ArbitrarySnapshotGenerator { + pub fn funds(&mut self) -> Vec { + let size = self.id_generator.random_size(); + iter::from_fn(|| Some(self.gen_single_fund())) + .take(size) + .collect() + } + + fn gen_single_fund(&mut self) -> Fund { + let id = self.id_generator.id().abs(); + let dates = self.fund_date_times(); + let fund = ValidVotingTemplateGenerator::next_fund(&mut self.template_generator); + + Fund { + id, + fund_name: format!("Fund{}", id), + fund_goal: fund.goal, + fund_start_time: dates.start.unix_timestamp(), + voting_power_threshold: fund.threshold.unwrap().into(), + fund_end_time: dates.end.unix_timestamp(), + next_fund_start_time: dates.next.unix_timestamp(), + registration_snapshot_time: dates.snapshot.unix_timestamp(), + next_registration_snapshot_time: dates.next_snapshot.unix_timestamp(), + chain_vote_plans: vec![self.voteplan_with_fund_id(id.abs())], + challenges: self.challenges_with_fund_id(id.abs()), + stage_dates: FundStageDates { + insight_sharing_start: dates.insight_sharing_start.unix_timestamp(), + proposal_submission_start: dates.proposal_submission_start.unix_timestamp(), + refine_proposals_start: dates.refine_proposals_start.unix_timestamp(), + finalize_proposals_start: dates.finalize_proposals_start.unix_timestamp(), + proposal_assessment_start: dates.proposal_assessment_start.unix_timestamp(), + assessment_qa_start: dates.assessment_qa_start.unix_timestamp(), + snapshot_start: dates.snapshot_start.unix_timestamp(), + voting_start: dates.voting_start.unix_timestamp(), + voting_end: dates.voting_end.unix_timestamp(), + tallying_end: dates.tallying_end.unix_timestamp(), + }, + goals: vec![Goal { + id: 1, + goal_name: "goal1".into(), + fund_id: id.abs(), + }], + results_url: format!("http://localhost/fund/{id}/results/"), + survey_url: format!("http://localhost/fund/{id}/survey/"), + } + } + + fn gen_single_proposal(&mut self, fund: &Fund) -> FullProposalInfo { + let id = self.id_generator.next_u32() as i32; + let proposal = ValidVotingTemplateGenerator::next_proposal(&mut self.template_generator); + let voteplan = fund.chain_vote_plans.first().unwrap(); + let challenge = fund.challenges.first().unwrap(); + let challenge_id = challenge.id; + let challenge_info = self + .template_generator + .proposals_challenge_info(&challenge.challenge_type); + let proposal = Proposal { + internal_id: id.abs(), + proposal_id: id.abs().to_string(), + proposal_category: self.template_generator.proposal_category(), + proposal_title: proposal.proposal_title, + proposal_summary: proposal.proposal_summary, + proposal_public_key: self.id_generator.hash(), + proposal_funds: proposal.proposal_funds.parse().unwrap(), + proposal_url: proposal.proposal_url, + proposal_impact_score: proposal.proposal_impact_score.parse().unwrap(), + reviews_count: 0, + proposal_files_url: proposal.files_url, + proposer: self.template_generator.proposer(), + chain_proposal_id: self.id_generator.hash().as_bytes().to_vec(), + chain_proposal_index: self.id_generator.next_u32() as i64, + chain_vote_options: proposal.chain_vote_options, + chain_voteplan_id: fund + .chain_vote_plans + .get(0) + .unwrap() + .chain_voteplan_id + .clone(), + chain_vote_start_time: voteplan.chain_vote_start_time, + chain_vote_end_time: voteplan.chain_vote_end_time, + chain_committee_end_time: voteplan.chain_committee_end_time, + chain_voteplan_payload: voteplan.chain_voteplan_payload.clone(), + chain_vote_encryption_key: voteplan.chain_vote_encryption_key.clone(), + fund_id: fund.id, + challenge_id, + }; + + FullProposalInfo { + proposal, + challenge_info, + challenge_type: challenge.challenge_type.clone(), + } + } + + fn fund_date_times(&self) -> FundDateTimes { + let range_start_time = OffsetDateTime::now_utc() - Duration::days(10); + let range_end_time = OffsetDateTime::now_utc() + Duration::days(10); + let range_next_start_time = range_end_time + Duration::days(10); + let start = rand_datetime_in_range(range_start_time, OffsetDateTime::now_utc()); + let end = rand_datetime_in_range(OffsetDateTime::now_utc(), range_end_time); + let next = rand_datetime_in_range(range_end_time, range_next_start_time); + let snapshot = rand_datetime_in_range(start, end); + let next_snapshot = rand_datetime_in_range(end, end + Duration::days(30)); + + let insight_sharing_start = rand_datetime_in_range(start, end); + let proposal_submission_start = rand_datetime_in_range(insight_sharing_start, end); + let refine_proposals_start = rand_datetime_in_range(proposal_submission_start, end); + let finalize_proposals_start = rand_datetime_in_range(refine_proposals_start, end); + let proposal_assessment_start = rand_datetime_in_range(finalize_proposals_start, end); + let assessment_qa_start = rand_datetime_in_range(finalize_proposals_start, end); + let snapshot_start = rand_datetime_in_range(assessment_qa_start, end); + let voting_start = rand_datetime_in_range(snapshot_start, end); + let voting_end = rand_datetime_in_range(voting_start, end); + let tallying_end = rand_datetime_in_range(voting_end, end); + + FundDateTimes { + start, + end, + next, + snapshot, + next_snapshot, + insight_sharing_start, + proposal_submission_start, + refine_proposals_start, + finalize_proposals_start, + proposal_assessment_start, + assessment_qa_start, + snapshot_start, + voting_start, + voting_end, + tallying_end, + } + } + + fn voteplan_date_times(&self) -> VoteplanDateTimes { + let range_start_time = OffsetDateTime::now_utc() - Duration::days(10); + let range_end_time = OffsetDateTime::now_utc() + Duration::days(10); + let range_tally_time = range_end_time + Duration::days(10); + let start = rand_datetime_in_range(range_start_time, OffsetDateTime::now_utc()); + let end = rand_datetime_in_range(OffsetDateTime::now_utc(), range_end_time); + let tally = rand_datetime_in_range(range_end_time, range_tally_time); + VoteplanDateTimes { start, end, tally } + } + + pub fn voteplans(&mut self, funds: &[Fund]) -> Vec { + funds + .iter() + .map(|x| self.voteplan_with_fund_id(x.id)) + .collect() + } + + pub fn challenges(&mut self, funds: &[Fund]) -> Vec { + funds + .iter() + .map(|x| x.challenges.first().unwrap()) + .cloned() + .collect() + } + + pub fn token(&mut self) -> (String, ApiTokenData) { + self.id_generator.token() + } + + pub fn proposals(&mut self, funds: &[Fund]) -> Vec { + funds.iter().map(|x| self.gen_single_proposal(x)).collect() + } + + pub fn advisor_reviews(&mut self, funds: &[FullProposalInfo]) -> Vec { + funds + .iter() + .map(|x| self.review_with_proposal_id(x.proposal.internal_id)) + .collect() + } + + pub fn goals(&mut self, funds: &[Fund]) -> Vec { + funds + .iter() + .enumerate() + .map(|(i, f)| Goal { + id: i as i32, + goal_name: format!("goal{i}"), + fund_id: f.id, + }) + .collect() + } + + pub fn voteplan_with_fund_id(&mut self, fund_id: i32) -> Voteplan { + let id = self.id_generator.next_u32() as i32; + let dates = self.voteplan_date_times(); + + Voteplan { + id: id.abs(), + chain_voteplan_id: self.id_generator.hash(), + chain_vote_start_time: dates.start.unix_timestamp(), + chain_vote_end_time: dates.end.unix_timestamp(), + chain_committee_end_time: dates.tally.unix_timestamp(), + chain_voteplan_payload: "public".to_string(), + chain_vote_encryption_key: "".to_string(), + fund_id, + } + } + + pub fn challenges_with_fund_id(&mut self, fund_id: i32) -> Vec { + let simple_id = self.id_generator.next_u32() as i32; + let community_choice_id = self.id_generator.next_u32() as i32; + + let first_challenge = self.template_generator.next_challenge(); + let second_challenge = self.template_generator.next_challenge(); + + vec![ + Challenge { + internal_id: first_challenge.internal_id, + id: simple_id.abs(), + challenge_type: ChallengeType::Simple, + title: first_challenge.title, + description: first_challenge.description, + rewards_total: first_challenge.rewards_total.parse().unwrap(), + proposers_rewards: first_challenge.proposers_rewards.parse().unwrap(), + fund_id, + challenge_url: self.template_generator.gen_http_address(), + highlights: self.template_generator.gen_highlights(), + }, + Challenge { + internal_id: second_challenge.internal_id, + id: community_choice_id.abs(), + challenge_type: ChallengeType::CommunityChoice, + title: second_challenge.title, + description: second_challenge.description, + rewards_total: second_challenge.rewards_total.parse().unwrap(), + proposers_rewards: second_challenge.proposers_rewards.parse().unwrap(), + fund_id, + challenge_url: self.template_generator.gen_http_address(), + highlights: self.template_generator.gen_highlights(), + }, + ] + } + + pub fn challenge_with_fund_id(&mut self, fund_id: i32) -> Challenge { + let id = self.id_generator.next_u32() as i32; + let challenge = self.template_generator.next_challenge(); + + Challenge { + internal_id: challenge.internal_id, + id: id.abs(), + challenge_type: ChallengeType::CommunityChoice, + title: challenge.title, + description: challenge.description, + rewards_total: challenge.rewards_total.parse().unwrap(), + proposers_rewards: challenge.proposers_rewards.parse().unwrap(), + fund_id, + challenge_url: self.template_generator.gen_http_address(), + highlights: challenge.highlight, + } + } + + pub fn goals_with_fund_id(&mut self, fund_id: i32) -> Vec { + let id = (self.id_generator.next_u32() % (i32::MAX as u32)) as i32; + + vec![ + Goal { + fund_id, + id, + goal_name: "goal1".into(), + }, + Goal { + fund_id, + id, + goal_name: "goal2".into(), + }, + ] + } + + pub fn review_with_proposal_id(&mut self, proposal_id: i32) -> AdvisorReview { + let id = self.id_generator.next_u32() as i32; + let review = (self.template_generator).next_review(); + AdvisorReview { + id, + proposal_id, + assessor: review.assessor, + impact_alignment_rating_given: review.impact_alignment_rating_given, + impact_alignment_note: review.impact_alignment_note, + feasibility_rating_given: review.feasibility_rating_given, + feasibility_note: review.feasibility_note, + auditability_rating_given: review.auditability_rating_given, + auditability_note: review.auditability_note, + ranking: review.ranking, + } + } + + pub fn snapshot(&mut self) -> Snapshot { + let funds = self.funds(); + let voteplans = self.voteplans(&funds); + let challenges = self.challenges(&funds); + let proposals = self.proposals(&funds); + let reviews = self.advisor_reviews(&proposals); + let goals = self.goals(&funds); + let tokens = self.id_generator.tokens(); + + Snapshot::new( + funds, proposals, challenges, tokens, voteplans, reviews, goals, + ) + } +} + +fn rand_datetime_in_range(left: OffsetDateTime, right: OffsetDateTime) -> OffsetDateTime { + use rand::Rng; + let left_timestamp = left.unix_timestamp(); + let right_timestamp = right.unix_timestamp(); + OffsetDateTime::from_unix_timestamp( + rand::thread_rng().gen_range(left_timestamp, right_timestamp), + ) + .unwrap() +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/mod.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/mod.rs new file mode 100644 index 0000000000..79eae88b20 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/mod.rs @@ -0,0 +1,7 @@ +mod arbitrary; +mod snapshot; +mod voting; + +pub use arbitrary::{ArbitraryGenerator, ArbitrarySnapshotGenerator}; +pub use snapshot::Snapshot; +pub use voting::*; diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/snapshot.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/snapshot.rs new file mode 100644 index 0000000000..794d889381 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/snapshot.rs @@ -0,0 +1,107 @@ +use std::collections::HashMap; +use vit_servicing_station_lib_f10::db::models::community_advisors_reviews::AdvisorReview; +use vit_servicing_station_lib_f10::db::models::goals::Goal; +use vit_servicing_station_lib_f10::db::models::proposals::FullProposalInfo; +use vit_servicing_station_lib_f10::db::models::{ + api_tokens::ApiTokenData, challenges::Challenge, funds::Fund, voteplans::Voteplan, +}; + +#[derive(Debug, Clone)] +pub struct Snapshot { + funds: Vec, + proposals: Vec, + challenges: Vec, + tokens: HashMap, + voteplans: Vec, + reviews: Vec, + goals: Vec, +} + +impl Snapshot { + pub fn new( + funds: Vec, + proposals: Vec, + challenges: Vec, + tokens: HashMap, + voteplans: Vec, + reviews: Vec, + goals: Vec, + ) -> Self { + Self { + funds, + proposals, + challenges, + tokens, + voteplans, + reviews, + goals, + } + } + + pub fn funds(&self) -> Vec { + self.funds.clone() + } + + pub fn proposals(&self) -> Vec { + self.proposals.clone() + } + + pub fn tokens(&self) -> HashMap { + self.tokens.clone() + } + + pub fn voteplans(&self) -> Vec { + self.voteplans.clone() + } + + pub fn funds_mut(&mut self) -> &mut Vec { + &mut self.funds + } + + pub fn proposals_mut(&mut self) -> &mut Vec { + &mut self.proposals + } + + pub fn voteplans_mut(&mut self) -> &mut Vec { + &mut self.voteplans + } + + pub fn proposal_by_id(&self, id: &str) -> Option<&FullProposalInfo> { + self.proposals + .iter() + .find(|x| x.proposal.proposal_id.eq(id)) + } + + pub fn fund_by_id(&self, id: i32) -> Option<&Fund> { + self.funds.iter().find(|x| x.id == id) + } + + pub fn any_token(&self) -> (String, ApiTokenData) { + let (hash, token) = self.tokens.iter().next().unwrap(); + (hash.to_string(), token.clone()) + } + + pub fn token_hash(&self) -> String { + self.any_token().0 + } + + pub fn challenges(&self) -> Vec { + self.challenges.clone() + } + + pub fn challenges_mut(&mut self) -> &mut Vec { + &mut self.challenges + } + + pub fn advisor_reviews(&self) -> Vec { + self.reviews.clone() + } + + pub fn advisor_reviews_mut(&mut self) -> &mut Vec { + &mut self.reviews + } + + pub fn goals(&self) -> Vec { + self.goals.clone() + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/builder/challenge.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/builder/challenge.rs new file mode 100644 index 0000000000..53ff4bf440 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/builder/challenge.rs @@ -0,0 +1,35 @@ +use super::ProposalConfig; +use std::collections::VecDeque; + +#[derive(Debug, Clone, Default)] +pub struct ChallengeConfig { + pub(crate) proposals: VecDeque, + pub(crate) rewards_total: Option, + pub(crate) proposers_rewards: Option, +} + +impl ChallengeConfig { + pub fn proposals(mut self, proposals: Vec) -> Self { + self.proposals = VecDeque::from(proposals); + self + } + + pub fn proposals_len(&self) -> usize { + self.proposals.len() + } + + pub fn proposal(mut self, proposal: ProposalConfig) -> Self { + self.proposals.push_back(proposal); + self + } + + pub fn rewards_total(mut self, rewards_total: u64) -> Self { + self.rewards_total = Some(rewards_total); + self + } + + pub fn proposers_rewards(mut self, proposers_rewards: u64) -> Self { + self.proposers_rewards = Some(proposers_rewards); + self + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/builder/mod.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/builder/mod.rs new file mode 100644 index 0000000000..e5b2736a2b --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/builder/mod.rs @@ -0,0 +1,139 @@ +mod challenge; +mod proposal; + +use crate::common::data::ArbitraryValidVotingTemplateGenerator; +use crate::common::data::ChallengeTemplate; +use crate::common::data::FundTemplate; +use crate::common::data::ProposalTemplate; +use crate::common::data::ReviewTemplate; +use crate::common::data::ValidVotingTemplateGenerator; +pub use challenge::ChallengeConfig; +pub use proposal::ProposalConfig; + +#[derive(Clone, Default)] +pub struct ArbitraryValidVotePlanConfig { + template_generator: ArbitraryValidVotingTemplateGenerator, + challenges: Vec, +} + +impl ArbitraryValidVotePlanConfig { + pub fn challenges(mut self, challenges: Vec) -> Self { + for challenge in challenges.into_iter() { + self = self.challenge(challenge); + } + self + } + + pub fn get_challenges(&self) -> &[ChallengeConfig] { + &self.challenges + } + + pub fn challenge(mut self, mut challenge: ChallengeConfig) -> Self { + challenge + .proposals + .iter_mut() + .enumerate() + .for_each(|(i, p)| { + p.challenge_id = Some(i); + }); + self.challenges.push(challenge); + self + } + + pub fn pop_proposal(&mut self) -> ProposalConfig { + for challenge in self.challenges.iter_mut() { + if let Some(proposal) = challenge.proposals.pop_front() { + return proposal; + } + } + panic!("no more proposals"); + } +} + +impl ValidVotingTemplateGenerator for ArbitraryValidVotePlanConfig { + fn next_proposal(&mut self) -> ProposalTemplate { + let proposals_builder = self.pop_proposal(); + let challenge = self + .template_generator + .challenges + .get( + proposals_builder + .challenge_id + .expect("internal error: no challenge id set for proposal"), + ) + .unwrap() + .clone(); + + let funds = proposals_builder + .funds + .unwrap_or_else(|| self.template_generator.proposal_fund()); + let proposal_template = self.template_generator.proposal(challenge, funds); + self.template_generator + .proposals + .push(proposal_template.clone()); + proposal_template + } + + fn next_challenge(&mut self) -> ChallengeTemplate { + let challenge_builder = self + .challenges + .get((self.template_generator.next_challenge_id - 1) as usize) + .expect("no more challenges"); + let mut challenge = self.template_generator.next_challenge(); + if let Some(rewards_total) = challenge_builder.rewards_total { + challenge.rewards_total = rewards_total.to_string(); + } + if let Some(proposers_rewards) = challenge_builder.proposers_rewards { + challenge.proposers_rewards = proposers_rewards.to_string(); + } + challenge + } + + fn next_fund(&mut self) -> FundTemplate { + self.template_generator.next_fund() + } + + fn next_review(&mut self) -> ReviewTemplate { + self.template_generator.next_review() + } +} + +#[cfg(test)] +mod test { + use super::*; + use crate::common::data::ArbitraryGenerator; + use crate::common::data::ValidVotePlanGenerator; + use chain_impl_mockchain::testing::scenario::template::ProposalDefBuilder; + use chain_impl_mockchain::testing::scenario::template::VotePlanDefBuilder; + use fake::faker::name::en::Name; + use fake::Fake; + + #[test] + pub fn valid_vote_plan_template_builder() { + let mut vote_plan_parameters = ArbitraryGenerator::default().valid_vote_plan_parameters(); + + let mut vote_plan_builder = VotePlanDefBuilder::new("fund_x"); + vote_plan_builder.owner(&Name().fake::()); + vote_plan_builder.vote_phases(1, 2, 3); + + let mut proposal_builder = ProposalDefBuilder::new( + chain_impl_mockchain::testing::VoteTestGen::external_proposal_id(), + ); + proposal_builder.options(2); + proposal_builder.action_off_chain(); + vote_plan_builder.with_proposal(&mut proposal_builder); + vote_plan_parameters.current_fund.vote_plans = vec![vote_plan_builder.build().into()]; + vote_plan_parameters.current_fund.challenges_count = 1; + + let mut template = ArbitraryValidVotePlanConfig::default().challenge( + ChallengeConfig::default() + .rewards_total(1000) + .proposers_rewards(1000) + .proposal(ProposalConfig::default().funds(100)), + ); + let mut generator = ValidVotePlanGenerator::new(vote_plan_parameters); + let snapshot = generator.build(&mut template); + + println!("{:?}", snapshot); + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/builder/proposal.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/builder/proposal.rs new file mode 100644 index 0000000000..13fa04b5f6 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/builder/proposal.rs @@ -0,0 +1,12 @@ +#[derive(Debug, Clone, Default)] +pub struct ProposalConfig { + pub(crate) funds: Option, + pub(crate) challenge_id: Option, +} + +impl ProposalConfig { + pub fn funds(mut self, funds: i64) -> Self { + self.funds = Some(funds); + self + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/generator.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/generator.rs new file mode 100644 index 0000000000..c1ab00223b --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/generator.rs @@ -0,0 +1,209 @@ +use super::parameters::SingleVotePlanParameters; +use crate::common::data::generator::{ArbitraryGenerator, Snapshot, ValidVotingTemplateGenerator}; +use crate::common::data::ValidVotePlanParameters; +use chain_impl_mockchain::certificate::VotePlan; +use vit_servicing_station_lib_f10::db::models::community_advisors_reviews::AdvisorReview; +use vit_servicing_station_lib_f10::db::models::proposals::FullProposalInfo; +use vit_servicing_station_lib_f10::db::models::{ + challenges::Challenge, + funds::Fund, + proposals::{Category, Proposal, Proposer}, + voteplans::Voteplan, +}; + +pub struct ValidVotePlanGenerator { + parameters: ValidVotePlanParameters, +} + +impl ValidVotePlanGenerator { + pub fn new(parameters: ValidVotePlanParameters) -> Self { + Self { parameters } + } + + fn convert_to_vote_plan(single_vote_plan: &SingleVotePlanParameters) -> VotePlan { + single_vote_plan.vote_plan().into() + } + + pub fn build(&mut self, template_generator: &mut dyn ValidVotingTemplateGenerator) -> Snapshot { + let mut generator = ArbitraryGenerator::new(); + + let fund_template = template_generator.next_fund(); + self.parameters.current_fund.info.fund_goal = fund_template.goal; + + let vote_plans: Vec = self + .parameters + .current_fund + .vote_plans + .iter() + .map(|single_vote_plan| { + let vote_plan = Self::convert_to_vote_plan(single_vote_plan); + + let payload_type = match vote_plan.payload_type() { + chain_impl_mockchain::vote::PayloadType::Public => "public", + chain_impl_mockchain::vote::PayloadType::Private => "private", + }; + + Voteplan { + id: generator.id(), + chain_voteplan_id: vote_plan.to_id().to_string(), + chain_vote_start_time: self.parameters.current_fund.info.dates.voting_start, + chain_vote_end_time: self.parameters.current_fund.info.dates.voting_tally_start, + chain_committee_end_time: self + .parameters + .current_fund + .info + .dates + .voting_tally_end, + chain_voteplan_payload: payload_type.to_string(), + chain_vote_encryption_key: single_vote_plan + .vote_encryption_key() + .unwrap_or_default(), + fund_id: self.parameters.current_fund.info.fund_id, + } + }) + .collect(); + + let challenges: Vec = std::iter::from_fn(|| { + let challenge_data = template_generator.next_challenge(); + Some(Challenge { + internal_id: challenge_data.internal_id, + id: challenge_data.id.parse().unwrap(), + challenge_type: challenge_data.challenge_type, + title: challenge_data.title, + description: challenge_data.description, + rewards_total: challenge_data.rewards_total.parse().unwrap(), + proposers_rewards: challenge_data.proposers_rewards.parse().unwrap(), + fund_id: self.parameters.current_fund.info.fund_id, + challenge_url: challenge_data.challenge_url, + highlights: challenge_data.highlight, + }) + }) + .take(self.parameters.current_fund.challenges_count) + .collect(); + + let mut fund = self + .parameters + .current_fund + .to_fund(vote_plans.clone(), challenges); + + let mut proposals = vec![]; + + for (index, vote_plan) in vote_plans.iter().enumerate() { + for (index, proposal) in self.parameters.current_fund.vote_plans[index] + .proposals() + .iter() + .enumerate() + { + let proposal_template = template_generator.next_proposal(); + let challenge_idx: i32 = proposal_template.challenge_id.unwrap().parse().unwrap(); + let challenge = fund + .challenges + .iter_mut() + .find(|x| x.id == challenge_idx) + .unwrap_or_else(|| { + panic!( + "Cannot find challenge with id: {}. Please set more challenges", + challenge_idx + ) + }); + let proposal_funds = proposal_template.proposal_funds.parse().unwrap(); + + if self + .parameters + .current_fund + .calculate_challenges_total_funds + { + challenge.rewards_total += proposal_funds; + } + + let proposal = Proposal { + internal_id: proposal_template.internal_id.parse().unwrap(), + proposal_id: proposal_template.proposal_id.to_string(), + proposal_category: Category { + category_id: "".to_string(), + category_name: proposal_template.category_name, + category_description: "".to_string(), + }, + proposal_title: proposal_template.proposal_title, + proposal_summary: proposal_template.proposal_summary, + proposal_public_key: generator.hash(), + proposal_funds, + proposal_url: proposal_template.proposal_url.clone(), + proposal_impact_score: proposal_template.proposal_impact_score.parse().unwrap(), + reviews_count: 0, + proposal_files_url: proposal_template.files_url, + proposer: Proposer { + proposer_name: proposal_template.proposer_name, + proposer_email: "".to_string(), + proposer_url: proposal_template.proposer_url, + proposer_relevant_experience: proposal_template + .proposer_relevant_experience, + }, + chain_proposal_id: proposal.id().to_string().as_bytes().to_vec(), + chain_proposal_index: index as i64, + chain_vote_options: self.parameters.current_fund.vote_options.clone(), + chain_voteplan_id: vote_plan.chain_voteplan_id.clone(), + chain_vote_start_time: vote_plan.chain_vote_start_time, + chain_vote_end_time: vote_plan.chain_vote_end_time, + chain_committee_end_time: vote_plan.chain_committee_end_time, + chain_voteplan_payload: vote_plan.chain_voteplan_payload.clone(), + chain_vote_encryption_key: vote_plan.chain_vote_encryption_key.clone(), + fund_id: fund.id, + challenge_id: challenge.id, + }; + + proposals.push(FullProposalInfo { + proposal, + challenge_info: proposal_template.proposal_challenge_info, + challenge_type: challenge.challenge_type.clone(), + }); + } + } + let challenges = fund.challenges.clone(); + + let reviews: Vec = std::iter::from_fn(|| { + let review_data = template_generator.next_review(); + + Some(AdvisorReview { + id: review_data + .id + .unwrap_or_else(|| 0i32.to_string()) + .parse() + .unwrap(), + proposal_id: review_data.proposal_id.parse().unwrap(), + assessor: review_data.assessor, + impact_alignment_rating_given: review_data.impact_alignment_rating_given, + impact_alignment_note: review_data.impact_alignment_note, + feasibility_rating_given: review_data.feasibility_rating_given, + feasibility_note: review_data.feasibility_note, + auditability_rating_given: review_data.auditability_rating_given, + auditability_note: review_data.auditability_note, + ranking: review_data.ranking, + }) + }) + .take(self.parameters.current_fund.reviews_count) + .collect(); + + let goals = fund.goals.clone(); + + let mut funds = vec![fund]; + let next_funds: Vec = self + .parameters + .next_funds + .iter() + .cloned() + .map(Into::into) + .collect(); + funds.extend(next_funds); + + Snapshot::new( + funds, + proposals, + challenges, + generator.tokens(), + vote_plans, + reviews, + goals, + ) + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/mod.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/mod.rs new file mode 100644 index 0000000000..b9d7f16fa4 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/mod.rs @@ -0,0 +1,15 @@ +mod builder; +mod generator; +mod parameters; +mod template; + +pub use builder::{ArbitraryValidVotePlanConfig, ChallengeConfig, ProposalConfig}; +pub use generator::ValidVotePlanGenerator; +pub use parameters::{ + CurrentFund, FundDates, FundInfo, SingleVotePlanParameters, ValidVotePlanParameters, +}; +pub use template::{ + parse_challenges, parse_funds, parse_proposals, parse_reviews, + ArbitraryValidVotingTemplateGenerator, ChallengeTemplate, ExternalValidVotingTemplateGenerator, + FundTemplate, ProposalTemplate, ReviewTemplate, TemplateLoad, ValidVotingTemplateGenerator, +}; diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/parameters/fund/current.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/parameters/fund/current.rs new file mode 100644 index 0000000000..01f4472426 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/parameters/fund/current.rs @@ -0,0 +1,63 @@ +use super::FundInfo; +use crate::common::data::SingleVotePlanParameters; +use chain_impl_mockchain::testing::scenario::template::VotePlanDef; +use vit_servicing_station_lib_f10::db::models::challenges::Challenge; +use vit_servicing_station_lib_f10::db::models::funds::Fund; +use vit_servicing_station_lib_f10::db::models::vote_options::VoteOptions; + +use vit_servicing_station_lib_f10::db::models::voteplans::Voteplan; + +pub struct CurrentFund { + pub vote_plans: Vec, + pub vote_options: VoteOptions, + pub challenges_count: usize, + pub reviews_count: usize, + pub calculate_challenges_total_funds: bool, + pub info: FundInfo, +} + +impl CurrentFund { + pub fn from_single(vote_plan: VotePlanDef, info: FundInfo) -> Self { + Self::new(vec![vote_plan], info) + } + + pub fn new(vote_plans: Vec, info: FundInfo) -> Self { + Self { + vote_plans: vote_plans.into_iter().map(Into::into).collect(), + info, + vote_options: VoteOptions::parse_coma_separated_value("yes,no"), + challenges_count: 4, + reviews_count: 1, + calculate_challenges_total_funds: false, + } + } + + pub fn set_vote_encryption_key(&mut self, vote_encryption_key: String, alias: &str) { + let vote_plan = self + .vote_plans + .iter_mut() + .find(|x| x.alias() == alias) + .unwrap(); + vote_plan.set_vote_encryption_key(vote_encryption_key); + } + + pub fn to_fund(&self, vote_plans: Vec, challenges: Vec) -> Fund { + Fund { + id: self.info.fund_id, + fund_name: self.info.fund_name.clone(), + fund_goal: self.info.fund_goal.clone(), + voting_power_threshold: self.info.voting_power_threshold, + fund_start_time: self.info.dates.voting_start, + fund_end_time: self.info.dates.voting_tally_start, + next_fund_start_time: self.info.dates.next_fund_start_time, + registration_snapshot_time: self.info.dates.registration_snapshot_time, + next_registration_snapshot_time: self.info.dates.next_registration_snapshot_time, + chain_vote_plans: vote_plans, + challenges, + stage_dates: self.info.dates.clone().into(), + goals: self.info.goals.clone(), + results_url: self.info.results_url.clone(), + survey_url: self.info.survey_url.clone(), + } + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/parameters/fund/dates.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/parameters/fund/dates.rs new file mode 100644 index 0000000000..57bd382196 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/parameters/fund/dates.rs @@ -0,0 +1,60 @@ +use crate::common::data::generator::voting::parameters::FundStageDates; +use time::{ext::NumericalDuration, OffsetDateTime}; + +#[derive(Debug, Clone)] +pub struct FundDates { + pub voting_start: i64, + pub voting_tally_start: i64, + pub voting_tally_end: i64, + pub next_fund_start_time: i64, + pub registration_snapshot_time: i64, + pub next_registration_snapshot_time: i64, + pub insight_sharing_start: i64, + pub proposal_submission_start: i64, + pub refine_proposals_start: i64, + pub finalize_proposals_start: i64, + pub proposal_assessment_start: i64, + pub assessment_qa_start: i64, +} + +impl Default for FundDates { + fn default() -> Self { + let now = OffsetDateTime::now_utc(); + Self { + proposal_submission_start: as_timestamp(now - 10.days()), + insight_sharing_start: as_timestamp(now - 9.days()), + refine_proposals_start: as_timestamp(now - 8.days()), + finalize_proposals_start: as_timestamp(now - 7.days()), + proposal_assessment_start: as_timestamp(now - 6.days()), + assessment_qa_start: as_timestamp(now - 5.days()), + registration_snapshot_time: as_timestamp(now - 4.days()), + voting_start: as_timestamp(now + 1.days()), + voting_tally_start: as_timestamp(now + 2.days()), + voting_tally_end: as_timestamp(now + 3.days()), + next_registration_snapshot_time: as_timestamp(now + 7.days()), + next_fund_start_time: as_timestamp(now + 10.days()), + } + } +} + +fn as_timestamp(date: OffsetDateTime) -> i64 { + date.unix_timestamp() +} + +#[allow(clippy::from_over_into)] +impl Into for FundDates { + fn into(self) -> FundStageDates { + FundStageDates { + insight_sharing_start: self.insight_sharing_start, + proposal_submission_start: self.proposal_submission_start, + refine_proposals_start: self.refine_proposals_start, + finalize_proposals_start: self.finalize_proposals_start, + proposal_assessment_start: self.proposal_assessment_start, + assessment_qa_start: self.assessment_qa_start, + snapshot_start: self.registration_snapshot_time, + voting_start: self.voting_start, + voting_end: self.voting_tally_start, + tallying_end: self.voting_tally_end, + } + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/parameters/fund/info.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/parameters/fund/info.rs new file mode 100644 index 0000000000..d758079138 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/parameters/fund/info.rs @@ -0,0 +1,65 @@ +use super::dates::FundDates; +use vit_servicing_station_lib_f10::db::models::{funds::Fund, goals::Goal}; + +#[derive(Debug, Clone)] +pub struct FundInfo { + pub fund_name: String, + pub fund_goal: String, + pub fund_id: i32, + pub voting_power_threshold: i64, + pub dates: FundDates, + pub goals: Vec, + pub results_url: String, + pub survey_url: String, +} + +impl From for FundInfo { + fn from(dates: FundDates) -> Self { + FundInfo { + dates, + ..Default::default() + } + } +} + +#[allow(clippy::from_over_into)] +impl Into for FundInfo { + fn into(self) -> Fund { + Fund { + id: self.fund_id, + fund_name: self.fund_name, + fund_goal: self.fund_goal, + voting_power_threshold: self.voting_power_threshold, + fund_start_time: self.dates.voting_start, + fund_end_time: self.dates.voting_tally_start, + next_fund_start_time: self.dates.next_fund_start_time, + registration_snapshot_time: self.dates.registration_snapshot_time, + next_registration_snapshot_time: self.dates.next_registration_snapshot_time, + chain_vote_plans: vec![], + challenges: vec![], + stage_dates: self.dates.into(), + goals: self.goals, + results_url: self.results_url, + survey_url: self.survey_url, + } + } +} + +impl Default for FundInfo { + fn default() -> Self { + Self { + fund_name: "fund1".to_string(), + fund_id: 1, + fund_goal: "".to_string(), + voting_power_threshold: 500, + dates: Default::default(), + goals: vec![Goal { + id: 1, + goal_name: "goal1".to_string(), + fund_id: 1, + }], + results_url: "http://localhost/fund/1/results/".to_string(), + survey_url: "http://localhost/fund/1/survey/".to_string(), + } + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/parameters/fund/mod.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/parameters/fund/mod.rs new file mode 100644 index 0000000000..59faeb8159 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/parameters/fund/mod.rs @@ -0,0 +1,7 @@ +mod current; +mod dates; +mod info; + +pub use current::CurrentFund; +pub use dates::FundDates; +pub use info::FundInfo; diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/parameters/mod.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/parameters/mod.rs new file mode 100644 index 0000000000..f5267cf69c --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/parameters/mod.rs @@ -0,0 +1,20 @@ +mod fund; +mod vote_plan; + +pub use fund::{CurrentFund, FundDates, FundInfo}; +use vit_servicing_station_lib_f10::db::models::funds::FundStageDates; +pub use vote_plan::SingleVotePlanParameters; + +pub struct ValidVotePlanParameters { + pub current_fund: CurrentFund, + pub next_funds: Vec, +} + +impl From for ValidVotePlanParameters { + fn from(current_fund: CurrentFund) -> Self { + Self { + current_fund, + next_funds: Vec::new(), + } + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/parameters/vote_plan.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/parameters/vote_plan.rs new file mode 100644 index 0000000000..9f2b23dece --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/parameters/vote_plan.rs @@ -0,0 +1,37 @@ +use chain_impl_mockchain::testing::scenario::template::{ProposalDef, VotePlanDef}; + +pub struct SingleVotePlanParameters { + vote_plan: VotePlanDef, + vote_encryption_key: Option, +} + +impl SingleVotePlanParameters { + pub fn proposals(&self) -> Vec { + self.vote_plan.proposals() + } + + pub fn alias(&self) -> String { + self.vote_plan.alias() + } + + pub fn vote_plan(&self) -> VotePlanDef { + self.vote_plan.clone() + } + + pub fn vote_encryption_key(&self) -> Option { + self.vote_encryption_key.clone() + } + + pub fn set_vote_encryption_key(&mut self, vote_encryption_key: String) { + self.vote_encryption_key = Some(vote_encryption_key); + } +} + +impl From for SingleVotePlanParameters { + fn from(vote_plan: VotePlanDef) -> Self { + Self { + vote_plan, + vote_encryption_key: None, + } + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/template/arbitrary.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/template/arbitrary.rs new file mode 100644 index 0000000000..bab6c200a7 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/template/arbitrary.rs @@ -0,0 +1,247 @@ +use super::{ + ChallengeTemplate, FundTemplate, ProposalTemplate, ReviewTemplate, ValidVotingTemplateGenerator, +}; +use crate::common::data::ArbitraryGenerator; +use fake::faker::company::en::CompanyName; +use fake::faker::internet::en::DomainSuffix; +use fake::faker::internet::en::SafeEmail; +use fake::{ + faker::lorem::en::*, + faker::{ + company::en::{Buzzword, CatchPhase, Industry}, + name::en::Name, + }, + Fake, +}; +use vit_servicing_station_lib_f10::db::models::challenges::ChallengeHighlights; +use vit_servicing_station_lib_f10::db::models::community_advisors_reviews::ReviewRanking; +use vit_servicing_station_lib_f10::db::models::proposals::community_choice::ChallengeInfo as CommunityChoiceChallengeInfo; +use vit_servicing_station_lib_f10::db::models::proposals::simple::ChallengeInfo as SimpleChallengeInfo; +use vit_servicing_station_lib_f10::db::models::proposals::Category; +use vit_servicing_station_lib_f10::db::models::proposals::ChallengeType; +use vit_servicing_station_lib_f10::db::models::proposals::ProposalChallengeInfo; +use vit_servicing_station_lib_f10::db::models::proposals::Proposer; +use vit_servicing_station_lib_f10::db::models::vote_options::VoteOptions; + +#[derive(Clone)] +pub struct ArbitraryValidVotingTemplateGenerator { + pub(crate) generator: ArbitraryGenerator, + pub(crate) funds: Vec, + pub(crate) challenges: Vec, + pub(crate) proposals: Vec, + pub(crate) reviews: Vec, + pub(crate) next_proposal_id: i32, + pub(crate) next_challenge_id: i32, + pub(crate) next_review_id: i32, +} + +impl Default for ArbitraryValidVotingTemplateGenerator { + fn default() -> Self { + Self::new() + } +} + +impl ArbitraryValidVotingTemplateGenerator { + pub fn new() -> Self { + Self { + generator: ArbitraryGenerator::new(), + next_proposal_id: 1, + next_challenge_id: 1, + next_review_id: 1, + funds: Vec::new(), + challenges: Vec::new(), + proposals: Vec::new(), + reviews: Vec::new(), + } + } + + pub fn next_challenge_id(&mut self) -> i32 { + let ret = self.next_challenge_id; + self.next_challenge_id = ret + 1; + ret + } + + pub fn next_proposal_id(&mut self) -> i32 { + let ret = self.next_proposal_id; + self.next_proposal_id = ret + 1; + ret + } + + pub fn next_review_id(&mut self) -> i32 { + let ret = self.next_review_id; + self.next_review_id = ret + 1; + ret + } + + pub fn gen_http_address(&self) -> String { + format!( + "http://{}.{}", + CompanyName() + .fake::() + .to_lowercase() + .replace(' ', "-"), + DomainSuffix().fake::() + ) + } + + pub fn gen_highlights(&mut self) -> Option { + match self.generator.next_u32() % 2 { + 0 => None, + _ => Some(ChallengeHighlights { + sponsor: CompanyName().fake::(), + }), + } + } + + pub fn proposer(&mut self) -> Proposer { + Proposer { + proposer_relevant_experience: Buzzword().fake::(), + proposer_name: Name().fake::(), + proposer_email: SafeEmail().fake::(), + proposer_url: self.gen_http_address(), + } + } + // impact score [1.00-4.99] + pub fn impact_score(&mut self) -> i64 { + (self.generator.next_u64() % 400 + 100) as i64 + } + + pub fn proposal_category(&mut self) -> Category { + Category { + category_id: "".to_string(), + category_name: Industry().fake::(), + category_description: "".to_string(), + } + } + + pub fn proposal_fund(&mut self) -> i64 { + (self.generator.next_u64() % 200_000 + 5000) as i64 + } + + pub fn challenge_type(&mut self) -> ChallengeType { + match self.generator.next_u32() % 3 { + 0 => ChallengeType::Simple, + 1 => ChallengeType::CommunityChoice, + 2 => ChallengeType::Native, + _ => unreachable!(), + } + } + + pub fn proposals_challenge_info( + &mut self, + challenge_type: &ChallengeType, + ) -> ProposalChallengeInfo { + match challenge_type { + ChallengeType::Simple | ChallengeType::Native => { + ProposalChallengeInfo::Simple(SimpleChallengeInfo { + proposal_solution: CatchPhase().fake::(), + }) + } + ChallengeType::CommunityChoice => { + ProposalChallengeInfo::CommunityChoice(CommunityChoiceChallengeInfo { + proposal_brief: CatchPhase().fake::(), + proposal_importance: CatchPhase().fake::(), + proposal_goal: CatchPhase().fake::(), + proposal_metrics: CatchPhase().fake::(), + }) + } + } + } + + pub fn proposal(&mut self, challenge: ChallengeTemplate, funds: i64) -> ProposalTemplate { + let proposal_url = self.gen_http_address(); + let challenge_type = challenge.challenge_type.clone(); + let proposal_challenge_info = self.proposals_challenge_info(&challenge_type); + ProposalTemplate { + proposal_id: self.next_proposal_id().to_string(), + internal_id: self.generator.id().to_string(), + category_name: Industry().fake::(), + proposal_title: CatchPhase().fake::(), + proposal_summary: CatchPhase().fake::(), + + proposal_funds: funds.to_string(), + proposal_url: proposal_url.to_string(), + proposal_impact_score: self.impact_score().to_string(), + files_url: format!("{}/files", proposal_url), + proposer_relevant_experience: self.proposer().proposer_relevant_experience, + chain_vote_options: VoteOptions::parse_coma_separated_value("yes,no"), + proposer_name: Name().fake::(), + proposer_url: self.gen_http_address(), + chain_vote_type: "public".to_string(), + challenge_id: Some(challenge.id), + challenge_type, + proposal_challenge_info, + } + } +} + +impl ValidVotingTemplateGenerator for ArbitraryValidVotingTemplateGenerator { + fn next_proposal(&mut self) -> ProposalTemplate { + let challenge = self + .challenges + .get(self.generator.random_index(self.challenges.len())) + .unwrap() + .clone(); + + let funds = self.proposal_fund(); + let proposal_template = self.proposal(challenge, funds); + self.proposals.push(proposal_template.clone()); + proposal_template + } + + fn next_challenge(&mut self) -> ChallengeTemplate { + let challenge = ChallengeTemplate { + internal_id: self.next_challenge_id(), + id: self.generator.id().to_string(), + challenge_type: self.challenge_type(), + title: CatchPhase().fake::(), + description: Buzzword().fake::(), + rewards_total: (self.generator.next_u32() % 10000).to_string(), + proposers_rewards: (self.generator.next_u32() % 10000).to_string(), + challenge_url: self.gen_http_address(), + fund_id: None, + highlight: self.gen_highlights(), + }; + self.challenges.push(challenge.clone()); + challenge + } + + fn next_fund(&mut self) -> FundTemplate { + let fund = FundTemplate { + id: self.generator.id().abs(), + goal: "How will we encourage developers and entrepreneurs to build Dapps and businesses on top of Cardano in the next 6 months?".to_string(), + rewards_info: Sentence(3..5).fake::(), + threshold: Some(self.generator.next_u32()), + }; + self.funds.push(fund.clone()); + fund + } + + fn next_review(&mut self) -> ReviewTemplate { + let proposal_id = self + .proposals + .get(self.generator.random_index(self.proposals.len())) + .map(|proposal| proposal.proposal_id.clone()) + .unwrap(); + let ranking = match self.generator.next_u32() % 2 { + 0 => ReviewRanking::Excellent, + 1 => ReviewRanking::Good, + _ => unreachable!("do not generate other review types for now"), + }; + + let review = ReviewTemplate { + id: Some(self.next_review_id().to_string()), + proposal_id, + assessor: Name().fake::(), + impact_alignment_rating_given: (self.generator.next_u32() % 5) as i32, + impact_alignment_note: fake::faker::lorem::en::Sentence(0..100).fake::(), + feasibility_rating_given: (self.generator.next_u32() % 5) as i32, + feasibility_note: fake::faker::lorem::en::Sentence(0..100).fake::(), + auditability_rating_given: (self.generator.next_u32() % 5) as i32, + auditability_note: fake::faker::lorem::en::Sentence(0..100).fake::(), + ranking, + }; + self.reviews.push(review.clone()); + review + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/template/external.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/template/external.rs new file mode 100644 index 0000000000..ff7d20db1b --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/template/external.rs @@ -0,0 +1,99 @@ +use super::{ + ChallengeTemplate, FundTemplate, ProposalTemplate, ReviewTemplate, ValidVotingTemplateGenerator, +}; +use std::{collections::LinkedList, path::PathBuf}; +use thiserror::Error; + +impl ValidVotingTemplateGenerator for ExternalValidVotingTemplateGenerator { + fn next_proposal(&mut self) -> ProposalTemplate { + self.proposals + .pop_front() + .unwrap_or_else(|| panic!("no more proposals")) + } + + fn next_challenge(&mut self) -> ChallengeTemplate { + self.challenges + .pop_front() + .unwrap_or_else(|| panic!("no more challenges")) + } + + fn next_fund(&mut self) -> FundTemplate { + self.funds + .pop_front() + .unwrap_or_else(|| panic!("no more funds")) + } + + fn next_review(&mut self) -> ReviewTemplate { + self.reviews + .pop_front() + .unwrap_or_else(|| panic!("no more reviews")) + } +} + +#[derive(Clone)] +pub struct ExternalValidVotingTemplateGenerator { + proposals: LinkedList, + challenges: LinkedList, + funds: LinkedList, + reviews: LinkedList, +} + +impl ExternalValidVotingTemplateGenerator { + pub fn new( + proposals: PathBuf, + challenges: PathBuf, + funds: PathBuf, + reviews: PathBuf, + ) -> Result { + Ok(Self { + proposals: parse_proposals(proposals)?, + challenges: parse_challenges(challenges)?, + funds: parse_funds(funds)?, + reviews: parse_reviews(reviews)?, + }) + } + + pub fn proposals_count(&self) -> usize { + self.proposals.len() + } + + pub fn challenges_count(&self) -> usize { + self.challenges.len() + } +} + +pub fn parse_proposals(proposals: PathBuf) -> Result, TemplateLoad> { + serde_json::from_str(&std::fs::read_to_string(proposals)?) + .map_err(|err| TemplateLoad::Proposal(err.to_string())) +} + +pub fn parse_challenges( + challenges: PathBuf, +) -> Result, TemplateLoad> { + serde_json::from_str(&std::fs::read_to_string(challenges)?) + .map_err(|err| TemplateLoad::Challenge(err.to_string())) +} + +pub fn parse_funds(funds: PathBuf) -> Result, TemplateLoad> { + serde_json::from_str(&std::fs::read_to_string(funds)?) + .map_err(|err| TemplateLoad::Fund(err.to_string())) +} + +pub fn parse_reviews(reviews: PathBuf) -> Result, TemplateLoad> { + serde_json::from_str(&std::fs::read_to_string(reviews)?) + .map_err(|err| TemplateLoad::Review(err.to_string())) +} + +#[derive(Debug, Error)] +pub enum TemplateLoad { + #[error("cannot parse proposals, due to {0}")] + Proposal(String), + #[error("cannot parse challenges, due to: {0}")] + Challenge(String), + #[error("cannot parse funds, due to: {0}")] + Fund(String), + #[error("cannot parse reviews, due to: {0}")] + Review(String), + #[error(transparent)] + Io(#[from] std::io::Error), +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/template/mod.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/template/mod.rs new file mode 100644 index 0000000000..f7b6d017c1 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/generator/voting/template/mod.rs @@ -0,0 +1,89 @@ +mod arbitrary; +mod external; + +pub use arbitrary::ArbitraryValidVotingTemplateGenerator; +pub use external::{ + parse_challenges, parse_funds, parse_proposals, parse_reviews, + ExternalValidVotingTemplateGenerator, TemplateLoad, +}; +use serde::{Deserialize, Serialize}; +use vit_servicing_station_lib_f10::db::models::challenges::ChallengeHighlights; +use vit_servicing_station_lib_f10::db::models::community_advisors_reviews::ReviewRanking; +use vit_servicing_station_lib_f10::db::models::proposals::{ChallengeType, ProposalChallengeInfo}; +use vit_servicing_station_lib_f10::db::models::vote_options::VoteOptions; + +#[derive(Serialize, Deserialize, Clone)] +pub struct FundTemplate { + pub id: i32, + pub goal: String, + pub rewards_info: String, + pub threshold: Option, +} +#[derive(Serialize, Deserialize, Clone)] +pub struct ProposalTemplate { + pub internal_id: String, + pub category_name: String, + pub proposal_id: String, + pub proposal_title: String, + #[serde(default)] + pub proposal_summary: String, + pub proposal_funds: String, + pub proposal_url: String, + pub proposal_impact_score: String, + #[serde(default)] + pub files_url: String, + pub proposer_name: String, + #[serde(default)] + pub proposer_url: String, + #[serde(default)] + pub proposer_relevant_experience: String, + #[serde( + deserialize_with = "vit_servicing_station_lib_f10::utils::serde::deserialize_vote_options_from_string" + )] + pub chain_vote_options: VoteOptions, + pub chain_vote_type: String, + pub challenge_id: Option, + pub challenge_type: ChallengeType, + #[serde(flatten)] + pub proposal_challenge_info: ProposalChallengeInfo, +} + +#[derive(Serialize, Deserialize, Clone)] +pub struct ChallengeTemplate { + pub internal_id: i32, + pub id: String, + pub challenge_type: ChallengeType, + pub title: String, + pub description: String, + pub rewards_total: String, + pub proposers_rewards: String, + pub challenge_url: String, + pub fund_id: Option, + pub highlight: Option, +} + +#[derive(Serialize, Deserialize, Clone)] +pub struct ReviewTemplate { + pub id: Option, + pub proposal_id: String, + pub assessor: String, + pub impact_alignment_rating_given: i32, + pub impact_alignment_note: String, + pub feasibility_rating_given: i32, + pub feasibility_note: String, + pub auditability_rating_given: i32, + pub auditability_note: String, + pub ranking: ReviewRanking, +} + +#[derive(Serialize, Deserialize, Clone)] +pub struct ProposalChallengeInfoTemplate { + pub id: i32, +} + +pub trait ValidVotingTemplateGenerator { + fn next_proposal(&mut self) -> ProposalTemplate; + fn next_challenge(&mut self) -> ChallengeTemplate; + fn next_fund(&mut self) -> FundTemplate; + fn next_review(&mut self) -> ReviewTemplate; +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/mod.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/mod.rs new file mode 100644 index 0000000000..ed36586048 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/data/mod.rs @@ -0,0 +1,46 @@ +use vit_servicing_station_lib_f10::db::models::{ + api_tokens::ApiTokenData, challenges::Challenge, funds::Fund, proposals::FullProposalInfo, + voteplans::Voteplan, +}; +mod csv_converter; +mod generator; + +pub use csv_converter::CsvConverter; +pub use generator::*; + +pub fn token() -> (String, ApiTokenData) { + ArbitrarySnapshotGenerator::default().token() +} + +pub fn token_hash() -> String { + token().0 +} + +pub fn proposals() -> Vec { + let mut gen = ArbitrarySnapshotGenerator::default(); + let funds = gen.funds(); + gen.proposals(&funds) +} + +pub fn funds() -> Vec { + ArbitrarySnapshotGenerator::default().funds() +} + +pub fn voteplans() -> Vec { + let mut gen = ArbitrarySnapshotGenerator::default(); + let funds = gen.funds(); + gen.voteplans(&funds) +} + +pub fn challenges() -> Vec { + let mut gen = ArbitrarySnapshotGenerator::default(); + let funds = gen.funds(); + gen.challenges(&funds) +} + +pub fn multivoteplan_snapshot() -> Snapshot { + let mut template = ArbitraryValidVotingTemplateGenerator::new(); + let mut generator = + ValidVotePlanGenerator::new(ArbitraryGenerator::default().valid_vote_plan_parameters()); + generator.build(&mut template) +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/db/mod.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/db/mod.rs new file mode 100644 index 0000000000..8e3cbec363 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/db/mod.rs @@ -0,0 +1,204 @@ +use diesel::expression_methods::ExpressionMethods; +use diesel::query_dsl::RunQueryDsl; +use diesel::{Insertable, SqliteConnection}; +use thiserror::Error; +use vit_servicing_station_lib_f10::db::models::community_advisors_reviews::AdvisorReview; +use vit_servicing_station_lib_f10::db::models::goals::InsertGoal; +use vit_servicing_station_lib_f10::db::schema::goals; +use vit_servicing_station_lib_f10::db::{ + models::{ + api_tokens::ApiTokenData, + challenges::Challenge, + funds::Fund, + proposals::{FullProposalInfo, ProposalChallengeInfo}, + }, + schema::{ + api_tokens, challenges, community_advisors_reviews, funds, + proposal_community_choice_challenge, proposal_simple_challenge, proposals, voteplans, + }, +}; + +pub struct DbInserter<'a> { + connection: &'a SqliteConnection, +} + +impl<'a> DbInserter<'a> { + pub fn new(connection: &'a SqliteConnection) -> Self { + Self { connection } + } + + pub fn insert_token(&self, token_data: &ApiTokenData) -> Result<(), DbInserterError> { + let values = ( + api_tokens::dsl::token.eq(token_data.token.as_ref()), + api_tokens::dsl::creation_time.eq(token_data.creation_time), + api_tokens::dsl::expire_time.eq(token_data.expire_time), + ); + + diesel::insert_into(api_tokens::table) + .values(values) + .execute(self.connection) + .map_err(DbInserterError::DieselError)?; + + Ok(()) + } + + pub fn insert_tokens(&self, tokens_data: &[ApiTokenData]) -> Result<(), DbInserterError> { + for token_data in tokens_data { + self.insert_token(token_data)?; + } + Ok(()) + } + + pub fn insert_proposals(&self, proposals: &[FullProposalInfo]) -> Result<(), DbInserterError> { + for proposal in proposals { + let values = ( + proposals::id.eq(proposal.proposal.internal_id), + proposals::proposal_id.eq(proposal.proposal.proposal_id.clone()), + proposals::proposal_category.eq(proposal + .proposal + .proposal_category + .category_name + .clone()), + proposals::proposal_title.eq(proposal.proposal.proposal_title.clone()), + proposals::proposal_summary.eq(proposal.proposal.proposal_summary.clone()), + proposals::proposal_public_key.eq(proposal.proposal.proposal_public_key.clone()), + proposals::proposal_funds.eq(proposal.proposal.proposal_funds), + proposals::proposal_url.eq(proposal.proposal.proposal_url.clone()), + proposals::proposal_files_url.eq(proposal.proposal.proposal_files_url.clone()), + proposals::proposer_name.eq(proposal.proposal.proposer.proposer_name.clone()), + proposals::proposer_contact.eq(proposal.proposal.proposer.proposer_email.clone()), + proposals::proposer_url.eq(proposal.proposal.proposer.proposer_url.clone()), + proposals::proposal_impact_score.eq(proposal.proposal.proposal_impact_score), + proposals::proposer_relevant_experience.eq(proposal + .proposal + .proposer + .proposer_relevant_experience + .clone()), + proposals::chain_proposal_id.eq(proposal.proposal.chain_proposal_id.clone()), + proposals::chain_proposal_index.eq(proposal.proposal.chain_proposal_index), + proposals::chain_vote_options + .eq(proposal.proposal.chain_vote_options.as_csv_string()), + proposals::chain_voteplan_id.eq(proposal.proposal.chain_voteplan_id.clone()), + proposals::challenge_id.eq(proposal.proposal.challenge_id), + ); + diesel::insert_into(proposals::table) + .values(values) + .execute(self.connection) + .map_err(DbInserterError::DieselError)?; + + let voteplan_values = ( + voteplans::chain_voteplan_id.eq(proposal.proposal.chain_voteplan_id.clone()), + voteplans::chain_vote_start_time.eq(proposal.proposal.chain_vote_start_time), + voteplans::chain_vote_end_time.eq(proposal.proposal.chain_vote_end_time), + voteplans::chain_committee_end_time.eq(proposal.proposal.chain_committee_end_time), + voteplans::chain_voteplan_payload + .eq(proposal.proposal.chain_voteplan_payload.clone()), + voteplans::chain_vote_encryption_key + .eq(proposal.proposal.chain_vote_encryption_key.clone()), + voteplans::fund_id.eq(proposal.proposal.fund_id), + ); + + diesel::insert_or_ignore_into(voteplans::table) + .values(voteplan_values) + .execute(self.connection) + .map_err(DbInserterError::DieselError)?; + + match &proposal.challenge_info { + ProposalChallengeInfo::Simple(data) => { + let simple_values = ( + proposal_simple_challenge::proposal_id + .eq(proposal.proposal.proposal_id.clone()), + proposal_simple_challenge::proposal_solution + .eq(data.proposal_solution.clone()), + ); + diesel::insert_into(proposal_simple_challenge::table) + .values(simple_values) + .execute(self.connection) + .map_err(DbInserterError::DieselError)?; + } + ProposalChallengeInfo::CommunityChoice(data) => { + let community_values = ( + proposal_community_choice_challenge::proposal_id + .eq(proposal.proposal.proposal_id.clone()), + proposal_community_choice_challenge::proposal_brief + .eq(data.proposal_brief.clone()), + proposal_community_choice_challenge::proposal_importance + .eq(data.proposal_importance.clone()), + proposal_community_choice_challenge::proposal_goal + .eq(data.proposal_goal.clone()), + proposal_community_choice_challenge::proposal_metrics + .eq(data.proposal_metrics.clone()), + ); + diesel::insert_into(proposal_community_choice_challenge::table) + .values(community_values) + .execute(self.connection) + .map_err(DbInserterError::DieselError)?; + } + }; + } + Ok(()) + } + + pub fn insert_funds(&self, funds: &[Fund]) -> Result<(), DbInserterError> { + for fund in funds { + let values = fund.clone().values(); + + diesel::insert_into(funds::table) + .values(values) + .execute(self.connection) + .map_err(DbInserterError::DieselError)?; + + for voteplan in &fund.chain_vote_plans { + let values = ( + voteplans::id.eq(voteplan.id), + voteplans::chain_voteplan_id.eq(voteplan.chain_voteplan_id.clone()), + voteplans::chain_vote_start_time.eq(voteplan.chain_vote_start_time), + voteplans::chain_vote_end_time.eq(voteplan.chain_vote_end_time), + voteplans::chain_committee_end_time.eq(voteplan.chain_committee_end_time), + voteplans::chain_voteplan_payload.eq(voteplan.chain_voteplan_payload.clone()), + voteplans::chain_vote_encryption_key + .eq(voteplan.chain_vote_encryption_key.clone()), + voteplans::fund_id.eq(voteplan.fund_id), + ); + diesel::insert_or_ignore_into(voteplans::table) + .values(values) + .execute(self.connection) + .map_err(DbInserterError::DieselError)?; + } + + for goal in &fund.goals { + diesel::insert_or_ignore_into(goals::table) + .values(InsertGoal::from(goal)) + .execute(self.connection) + .map_err(DbInserterError::DieselError)?; + } + } + Ok(()) + } + + pub fn insert_challenges(&self, challenges: &[Challenge]) -> Result<(), DbInserterError> { + for challenge in challenges { + diesel::insert_or_ignore_into(challenges::table) + .values(challenge.clone().values()) + .execute(self.connection) + .map_err(DbInserterError::DieselError)?; + } + Ok(()) + } + + pub fn insert_advisor_reviews(&self, reviews: &[AdvisorReview]) -> Result<(), DbInserterError> { + for review in reviews { + diesel::insert_or_ignore_into(community_advisors_reviews::table) + .values(review.clone().values()) + .execute(self.connection) + .map_err(DbInserterError::DieselError)?; + } + Ok(()) + } +} + +#[derive(Error, Debug)] +pub enum DbInserterError { + #[error("internal diesel error")] + DieselError(#[from] diesel::result::Error), +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/load/mod.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/load/mod.rs new file mode 100644 index 0000000000..981cd0f4a3 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/load/mod.rs @@ -0,0 +1,43 @@ +mod rest; + +use crate::common::data::Snapshot as Data; +use rand::rngs::OsRng; +use rand::RngCore; +pub use rest::VitRestRequestGenerator; + +#[derive(Clone, Debug)] +struct SnapshotRandomizer { + snapshot: Data, + random: OsRng, +} + +impl SnapshotRandomizer { + pub fn new(snapshot: Data) -> Self { + Self { + snapshot, + random: OsRng, + } + } + + pub fn random_token(&mut self) -> String { + let tokens = self.snapshot.tokens(); + let random_idx = self.random_usize() % tokens.len(); + tokens.keys().nth(random_idx).cloned().unwrap() + } + + pub fn random_usize(&mut self) -> usize { + self.random.next_u32() as usize + } + + pub fn random_proposal_id(&mut self) -> i32 { + let proposals = self.snapshot.proposals(); + let random_idx = self.random_usize() % proposals.len(); + proposals.get(random_idx).unwrap().proposal.internal_id + } + + pub fn random_fund_id(&mut self) -> i32 { + let funds = self.snapshot.funds(); + let random_idx = self.random_usize() % funds.len(); + funds.get(random_idx).unwrap().id + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/load/rest.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/load/rest.rs new file mode 100644 index 0000000000..6a95ef85c8 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/load/rest.rs @@ -0,0 +1,69 @@ +use crate::common::clients::RestClient; +use crate::common::data::Snapshot as Data; +use crate::common::load::SnapshotRandomizer; +use jortestkit::load::{Request, RequestFailure, RequestGenerator}; +use std::time::Duration; + +#[derive(Clone, Debug)] +pub struct VitRestRequestGenerator { + rest_client: RestClient, + snapshot_randomizer: SnapshotRandomizer, +} + +impl VitRestRequestGenerator { + pub fn new(snapshot: Data, mut rest_client: RestClient) -> Self { + rest_client.disable_log(); + + Self { + snapshot_randomizer: SnapshotRandomizer::new(snapshot), + rest_client, + } + } +} + +impl RequestGenerator for VitRestRequestGenerator { + fn next(&mut self) -> std::result::Result { + self.rest_client + .set_api_token(self.snapshot_randomizer.random_token()); + + match self.snapshot_randomizer.random_usize() % 3 { + 0 => self + .rest_client + .health() + .map(|_| Request { + ids: vec![Option::None], + duration: Duration::ZERO, + }) + .map_err(|e| RequestFailure::General(format!("Health: {}", e))), + 1 => self + .rest_client + .proposals() + .map(|_| Request { + ids: vec![Option::None], + duration: Duration::ZERO, + }) + .map_err(|e| RequestFailure::General(format!("Proposals: {}", e))), + 2 => self + .rest_client + .proposal(&self.snapshot_randomizer.random_proposal_id().to_string()) + .map(|_| Request { + ids: vec![Option::None], + duration: Duration::ZERO, + }) + .map_err(|e| RequestFailure::General(format!("Proposals by id: {}", e))), + 3 => self + .rest_client + .fund(&self.snapshot_randomizer.random_fund_id().to_string()) + .map(|_| Request { + ids: vec![Option::None], + duration: Duration::ZERO, + }) + .map_err(|e| RequestFailure::General(format!("Funds by id: {}", e))), + _ => unreachable!(), + } + } + + fn split(self) -> (Self, Option) { + todo!() + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/logger.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/logger.rs new file mode 100644 index 0000000000..4c25d14aaf --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/logger.rs @@ -0,0 +1,29 @@ +use std::{ + fs::File, + io::{prelude::*, BufReader}, + path::PathBuf, +}; + +pub struct Logger { + log_file: PathBuf, +} + +impl Logger { + pub fn new(log_file: PathBuf) -> Self { + Self { log_file } + } + + pub fn log_file(&self) -> &PathBuf { + &self.log_file + } + + fn log_lines(&self) -> Vec { + let file = File::open(self.log_file()).expect("logger file not found"); + let buf = BufReader::new(file); + buf.lines().map(|l| l.unwrap()).collect() + } + + pub fn any_error(&self) -> bool { + self.log_lines().iter().any(|x| x.contains("[ERROR]")) + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/mod.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/mod.rs new file mode 100644 index 0000000000..15663dfc15 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/mod.rs @@ -0,0 +1,9 @@ +pub mod cli; +pub mod clients; +pub mod data; +pub mod db; +pub mod load; +pub mod logger; +pub mod paths; +pub mod server; +pub mod startup; diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/paths.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/paths.rs new file mode 100644 index 0000000000..6e090589c6 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/paths.rs @@ -0,0 +1,2 @@ +pub const MIGRATION_DIR: &str = "../vit-servicing-station-lib/migrations"; +pub const BLOCK0_BIN: &str = "../resources/tests/block0.bin"; diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/server.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/server.rs new file mode 100644 index 0000000000..775428128e --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/server.rs @@ -0,0 +1,54 @@ +use super::clients::RestClient; +use super::logger::Logger; +use std::path::PathBuf; +use std::process::Child; +use vit_servicing_station_lib_f10::server::settings::ServiceSettings; + +pub struct Server { + process: Child, + settings: ServiceSettings, + log_file: PathBuf, +} + +impl Server { + pub fn new(process: Child, settings: ServiceSettings, log_file: PathBuf) -> Self { + Self { + process, + settings, + log_file, + } + } + + pub fn rest_client(&self) -> RestClient { + RestClient::from(&self.settings) + } + + pub fn settings(&self) -> ServiceSettings { + self.settings.clone() + } + + pub fn rest_client_with_token(&self, token: &str) -> RestClient { + let mut rest_client = self.rest_client(); + rest_client.set_api_token(token.to_string()); + rest_client + } + + pub fn logger(&self) -> Logger { + Logger::new(self.log_file.clone()) + } + + pub fn is_token_valid(&self, token: &str) -> bool { + self.is_up(token) + } + + pub fn is_up(&self, token: &str) -> bool { + self.rest_client_with_token(token).health().is_ok() + } +} + +impl Drop for Server { + fn drop(&mut self) { + let _ = self.process.kill(); + self.process.wait().unwrap(); + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/startup/db.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/startup/db.rs new file mode 100644 index 0000000000..77710e60d0 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/startup/db.rs @@ -0,0 +1,186 @@ +use assert_fs::{fixture::PathChild, TempDir}; +use diesel::{connection::Connection, prelude::*}; +use std::io; +use std::path::Path; +use std::path::PathBuf; +use std::str::FromStr; +use thiserror::Error; +use vit_servicing_station_lib_f10::db::models::{ + api_tokens::ApiTokenData, challenges::Challenge, funds::Fund, +}; + +use crate::common::{ + data::Snapshot, + db::{DbInserter, DbInserterError}, + paths::MIGRATION_DIR, +}; +use vit_servicing_station_lib_f10::db::models::community_advisors_reviews::AdvisorReview; +use vit_servicing_station_lib_f10::db::models::proposals::FullProposalInfo; + +const VIT_STATION_DB: &str = "vit_station.db"; + +pub struct DbBuilder { + migrations_folder: Option, + tokens: Option>, + proposals: Option>, + funds: Option>, + challenges: Option>, + advisor_reviews: Option>, +} + +impl DbBuilder { + pub fn new() -> Self { + Self { + migrations_folder: Some(PathBuf::from_str(MIGRATION_DIR).unwrap()), + tokens: None, + proposals: None, + funds: None, + challenges: None, + advisor_reviews: None, + } + } + + pub fn with_tokens(&mut self, tokens: Vec) -> &mut Self { + self.tokens = Some(tokens); + self + } + + pub fn with_token(&mut self, token: ApiTokenData) -> &mut Self { + self.with_tokens(vec![token]); + self + } + + pub fn with_proposals(&mut self, proposals: Vec) -> &mut Self { + self.proposals = Some(proposals); + self + } + + pub fn with_challenges(&mut self, challenges: Vec) -> &mut Self { + self.challenges = Some(challenges); + self + } + + pub fn with_snapshot(&mut self, snapshot: &Snapshot) -> &mut Self { + self.with_proposals(snapshot.proposals()); + self.with_tokens(snapshot.tokens().values().cloned().collect()); + self.with_funds(snapshot.funds()); + self.with_challenges(snapshot.challenges()); + self.with_advisor_reviews(snapshot.advisor_reviews()); + self + } + + pub fn with_funds(&mut self, funds: Vec) -> &mut Self { + self.funds = Some(funds); + self + } + + pub fn with_advisor_reviews(&mut self, reviews: Vec) -> &mut Self { + self.advisor_reviews = Some(reviews); + self + } + + pub fn disable_migrations(&mut self) -> &mut Self { + self.migrations_folder = None; + self + } + + pub fn with_migrations_from>(&mut self, migrations_folder: P) -> &mut Self { + self.migrations_folder = Some(migrations_folder.as_ref().into()); + self + } + + fn do_migration( + &self, + connection: &SqliteConnection, + migration_folder: &Path, + ) -> Result<(), DbBuilderError> { + let stdout = io::stdout(); + let mut handle = stdout.lock(); + diesel_migrations::run_pending_migrations_in_directory( + connection, + migration_folder, + &mut handle, + ) + .map_err(DbBuilderError::MigrationsError) + } + + fn try_do_migration(&self, connection: &SqliteConnection) -> Result<(), DbBuilderError> { + if let Some(migrations_folder) = &self.migrations_folder { + self.do_migration(connection, migrations_folder)?; + } + Ok(()) + } + + fn try_insert_tokens(&self, connection: &SqliteConnection) -> Result<(), DbBuilderError> { + if let Some(tokens) = &self.tokens { + DbInserter::new(connection).insert_tokens(tokens)?; + } + Ok(()) + } + + fn try_insert_funds(&self, connection: &SqliteConnection) -> Result<(), DbBuilderError> { + if let Some(funds) = &self.funds { + DbInserter::new(connection).insert_funds(funds)?; + } + Ok(()) + } + + fn try_insert_proposals(&self, connection: &SqliteConnection) -> Result<(), DbBuilderError> { + if let Some(proposals) = &self.proposals { + DbInserter::new(connection).insert_proposals(proposals)?; + } + Ok(()) + } + + fn try_insert_challenges(&self, connection: &SqliteConnection) -> Result<(), DbBuilderError> { + if let Some(challenges) = &self.challenges { + DbInserter::new(connection).insert_challenges(challenges)?; + } + + Ok(()) + } + + fn try_insert_reviews(&self, connection: &SqliteConnection) -> Result<(), DbBuilderError> { + if let Some(reviews) = &self.advisor_reviews { + DbInserter::new(connection).insert_advisor_reviews(reviews)?; + } + Ok(()) + } + + pub fn build(&self, temp_dir: &TempDir) -> Result { + self.build_into_path(temp_dir.child(VIT_STATION_DB).path()) + } + + pub fn build_into_path>(&self, path: P) -> Result { + let path = path.as_ref(); + let db_path = path.to_str().ok_or(DbBuilderError::CannotExtractTempPath)?; + println!("Building db in {:?}...", db_path); + + let connection = SqliteConnection::establish(db_path)?; + self.try_do_migration(&connection)?; + self.try_insert_tokens(&connection)?; + self.try_insert_funds(&connection)?; + self.try_insert_proposals(&connection)?; + self.try_insert_challenges(&connection)?; + self.try_insert_reviews(&connection)?; + Ok(path.to_path_buf()) + } +} + +impl Default for DbBuilder { + fn default() -> Self { + Self::new() + } +} + +#[derive(Error, Debug)] +pub enum DbBuilderError { + #[error("cannot insert data")] + DbInserterError(#[from] DbInserterError), + #[error("Cannot open or create database")] + CannotCreateDatabase(#[from] diesel::ConnectionError), + #[error("Cannot initialize on temp directory")] + CannotExtractTempPath, + #[error("migration errors")] + MigrationsError(#[from] diesel::migration::RunMigrationsError), +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/startup/mod.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/startup/mod.rs new file mode 100644 index 0000000000..2f7b540a93 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/startup/mod.rs @@ -0,0 +1,93 @@ +pub mod db; +pub mod server; + +use assert_fs::TempDir; +use lazy_static::lazy_static; +use rand::Rng; +use std::env; +use std::path::PathBuf; +use std::sync::atomic::{AtomicU32, Ordering}; + +use self::{db::DbBuilder, server::ServerBootstrapper}; +use crate::common::data::ArbitrarySnapshotGenerator; +use crate::common::{data, server::Server}; +use data::Snapshot; +use server::ServerBootstrapperError; + +pub fn get_exe() -> PathBuf { + const VIT_BIN_NAME: &str = env!("VIT_BIN_NAME"); + let mut path = get_working_directory(); + path.push(VIT_BIN_NAME); + if cfg!(windows) { + path.set_extension("exe"); + } + assert!( + path.is_file(), + "File does not exist: {:?}, pwd: {:?}", + path, + env::current_dir() + ); + path +} + +pub fn get_cli_exe() -> PathBuf { + const VIT_BIN_NAME: &str = env!("VIT_CLI_NAME"); + let mut path = get_working_directory(); + path.push(VIT_BIN_NAME); + if cfg!(windows) { + path.set_extension("exe"); + } + assert!( + path.is_file(), + "File does not exist: {:?}, pwd: {:?}", + path, + env::current_dir() + ); + path +} + +/// Gets working directory +/// Uses std::env::current_exe() for this purpose. +/// Current exe directory is ./target/{profile}/deps/{app_name}.exe +/// Function returns ./target/{profile} +fn get_working_directory() -> PathBuf { + let mut output_directory: PathBuf = std::env::current_exe().unwrap(); + + output_directory.pop(); + + if output_directory.ends_with("deps") { + output_directory.pop(); + } + output_directory +} + +lazy_static! { + static ref NEXT_AVAILABLE_PORT_NUMBER: AtomicU32 = { + let initial_port = rand::thread_rng().gen_range(6000, 10999); + AtomicU32::new(initial_port) + }; +} + +pub fn get_available_port() -> u32 { + NEXT_AVAILABLE_PORT_NUMBER.fetch_add(1, Ordering::SeqCst) +} + +pub fn quick_start(temp_dir: &TempDir) -> Result<(Server, Snapshot), ServerBootstrapperError> { + let snapshot = ArbitrarySnapshotGenerator::default().snapshot(); + + let db_path = DbBuilder::new().with_snapshot(&snapshot).build(temp_dir)?; + + let server = ServerBootstrapper::new() + .with_db_path(db_path.to_str().unwrap()) + .start(temp_dir)?; + + if !server.is_up(&snapshot.token_hash()) { + return Err(ServerBootstrapperError::FailToBootstrap); + } + + Ok((server, snapshot)) +} + +pub fn empty_db(temp_dir: &TempDir) -> PathBuf { + DbBuilder::new().build(temp_dir).unwrap() +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/startup/server/bootstrap.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/startup/server/bootstrap.rs new file mode 100644 index 0000000000..81d5d8103d --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/startup/server/bootstrap.rs @@ -0,0 +1,123 @@ +use super::{BootstrapCommandBuilder, ServerSettingsBuilder}; +use crate::common::{ + paths::BLOCK0_BIN, + server::Server, + startup::{db::DbBuilderError, get_exe}, +}; +use assert_fs::fixture::PathChild; +use assert_fs::TempDir; +use std::path::PathBuf; +use std::process::Stdio; +use thiserror::Error; +use vit_servicing_station_lib_f10::server::settings::LogLevel; + +pub struct ServerBootstrapper { + settings_builder: ServerSettingsBuilder, + allowed_origins: Option, + service_version: String, +} + +impl ServerBootstrapper { + pub fn new() -> Self { + let mut settings_builder: ServerSettingsBuilder = Default::default(); + settings_builder + .with_random_localhost_address() + .with_block0_path(BLOCK0_BIN.to_string()); + + Self { + settings_builder, + allowed_origins: None, + service_version: Default::default(), + } + } + + pub fn with_localhost_address(&mut self, port: u32) -> &mut Self { + self.settings_builder.with_localhost_address(port); + self + } + + pub fn with_log_level(&mut self, log_level: LogLevel) -> &mut Self { + self.settings_builder.with_log_level(log_level); + self + } + + pub fn with_db_path>(&mut self, db_url: S) -> &mut Self { + self.settings_builder.with_db_path(db_url.into()); + self + } + + pub fn with_block0_path>(&mut self, block0_path: S) -> &mut Self { + self.settings_builder.with_block0_path(block0_path.into()); + self + } + + pub fn with_allowed_origins>(&mut self, allowed_origins: S) -> &mut Self { + self.allowed_origins = Some(allowed_origins.into()); + self + } + + pub fn with_api_tokens(&mut self, enabled: bool) -> &mut Self { + self.settings_builder.with_api_tokens(enabled); + self + } + + pub fn with_service_version(&mut self, service_version: String) -> &mut Self { + self.service_version = service_version; + self + } + + pub fn start_with_exe( + &self, + temp_dir: &TempDir, + exe: PathBuf, + ) -> Result { + let settings = self.settings_builder.build(); + let logger_file: PathBuf = temp_dir.child("log.log").path().into(); + let mut command_builder = BootstrapCommandBuilder::new(exe); + + command_builder + .address(&settings.address.to_string()) + .db_url(&settings.db_url) + .log_file(&logger_file) + .enable_api_tokens(settings.enable_api_tokens) + .block0_path(&settings.block0_path) + .service_version(&self.service_version); + + if let Some(allowed_origins) = self.allowed_origins.as_ref() { + command_builder.allowed_origins(allowed_origins); + } + + if let Some(log_level) = &settings.log.log_level { + command_builder.log_level(&serde_json::to_string(&log_level).unwrap()); + } + + let mut command = command_builder.build(); + println!("{:?}", command); + let child = command.stdout(Stdio::inherit()).spawn()?; + + std::thread::sleep(std::time::Duration::from_secs(1)); + Ok(Server::new(child, settings, logger_file)) + } + + pub fn start(&self, temp_dir: &TempDir) -> Result { + self.start_with_exe(temp_dir, get_exe()) + } +} + +impl Default for ServerBootstrapper { + fn default() -> Self { + Self::new() + } +} + +#[derive(Debug, Error)] +pub enum ServerBootstrapperError { + #[error("cannot spawn process")] + ProcessSpawnError(#[from] std::io::Error), + #[error("cannot find binary (0)")] + CargoError(#[from] assert_cmd::cargo::CargoError), + #[error("failed to bootstrap")] + FailToBootstrap, + #[error("database builder error")] + DbBuilderError(#[from] DbBuilderError), +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/startup/server/command.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/startup/server/command.rs new file mode 100644 index 0000000000..1442a6a559 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/startup/server/command.rs @@ -0,0 +1,181 @@ +use crate::common::startup::get_exe; +use std::path::Path; +use std::{path::PathBuf, process::Command}; + +/// In order to test robustness of server bootstrapper we need to be able +/// to provide some +pub struct BootstrapCommandBuilder { + exe: PathBuf, + address: Option, + allowed_origins: Option, + block0_path: Option, + cert_file: Option, + db_url: Option, + enable_api_tokens: bool, + in_settings_file: Option, + max_age_secs: Option, + out_settings_file: Option, + priv_key_file: Option, + log_file: Option, + log_level: Option, + service_version: Option, +} + +impl Default for BootstrapCommandBuilder { + fn default() -> Self { + Self::new(get_exe()) + } +} + +impl BootstrapCommandBuilder { + pub fn new(exe: PathBuf) -> Self { + Self { + exe, + address: None, + allowed_origins: None, + block0_path: None, + cert_file: None, + db_url: None, + enable_api_tokens: false, + in_settings_file: None, + max_age_secs: None, + out_settings_file: None, + priv_key_file: None, + log_file: None, + log_level: None, + service_version: None, + } + } + + pub fn address>(&mut self, address: S) -> &mut Self { + self.address = Some(address.into()); + self + } + + pub fn allowed_origins>(&mut self, allowed_origins: S) -> &mut Self { + self.allowed_origins = Some(allowed_origins.into()); + self + } + + pub fn block0_path>(&mut self, block0_path: S) -> &mut Self { + self.block0_path = Some(block0_path.into()); + self + } + + pub fn cert_file(&mut self, cert_file: &Path) -> &mut Self { + self.cert_file = Some(cert_file.to_path_buf()); + self + } + + pub fn db_url>(&mut self, db_url: S) -> &mut Self { + self.db_url = Some(db_url.into()); + self + } + + pub fn enable_api_tokens(&mut self, enabled: bool) -> &mut Self { + self.enable_api_tokens = enabled; + self + } + + pub fn in_settings_file(&mut self, in_settings_file: &Path) -> &mut Self { + self.in_settings_file = Some(in_settings_file.to_path_buf()); + self + } + pub fn max_age_secs(&mut self, max_age_secs: u32) -> &mut Self { + self.max_age_secs = Some(max_age_secs); + self + } + pub fn out_settings_file(&mut self, out_settings_file: &Path) -> &mut Self { + self.out_settings_file = Some(out_settings_file.to_path_buf()); + self + } + + pub fn priv_key_file(&mut self, priv_key_file: &Path) -> &mut Self { + self.priv_key_file = Some(priv_key_file.to_path_buf()); + self + } + + pub fn log_file(&mut self, log_file: &Path) -> &mut Self { + self.log_file = Some(log_file.to_path_buf()); + self + } + + pub fn log_level(&mut self, log_level: &str) -> &mut Self { + self.log_level = Some(log_level.to_string()); + self + } + + pub fn service_version>(&mut self, service_version: S) -> &mut Self { + self.service_version = Some(service_version.into()); + self + } + + pub fn build(&self) -> Command { + let mut command = Command::new(self.exe.clone()); + + let service_version = if let Some(service_version) = &self.service_version { + service_version.clone() + } else { + Default::default() + }; + command.arg("--service-version").arg(service_version); + + if let Some(address) = &self.address { + command.arg("--address").arg(address); + } + + if let Some(allowed_origins) = &self.allowed_origins { + command.arg("--allowed-origins").arg(allowed_origins); + } + + if let Some(block0_path) = &self.block0_path { + command.arg("--block0-path").arg(block0_path); + } + + if let Some(cert_file) = &self.cert_file { + command.arg("--cert-file").arg(cert_file.to_str().unwrap()); + } + + if let Some(db_url) = &self.db_url { + command.arg("--db-url").arg(db_url); + } + + if let Some(in_settings_file) = &self.in_settings_file { + command + .arg("--in-settings-file") + .arg(in_settings_file.to_str().unwrap()); + } + + if let Some(max_age_secs) = &self.max_age_secs { + command.arg("--max-age-secs").arg(max_age_secs.to_string()); + } + + if let Some(out_settings_file) = &self.out_settings_file { + command + .arg("--out-settings-file") + .arg(out_settings_file.to_str().unwrap()); + } + + if let Some(priv_key_file) = &self.priv_key_file { + command + .arg("--priv-key-file") + .arg(priv_key_file.to_str().unwrap()); + } + + if self.enable_api_tokens { + command.arg("--enable-api-tokens"); + } + + if let Some(log_file) = &self.log_file { + command + .arg("--log-output-path") + .arg(log_file.to_str().unwrap()); + } + + if let Some(log_level) = &self.log_level { + command.arg("--log-level").arg(log_level); + } + + command + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/startup/server/mod.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/startup/server/mod.rs new file mode 100644 index 0000000000..ca818101f0 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/startup/server/mod.rs @@ -0,0 +1,7 @@ +mod bootstrap; +mod command; +mod settings; + +pub use bootstrap::{ServerBootstrapper, ServerBootstrapperError}; +pub use command::BootstrapCommandBuilder; +pub use settings::{dump_settings, load_settings, ServerSettingsBuilder}; diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/startup/server/settings.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/startup/server/settings.rs new file mode 100644 index 0000000000..d2ef8097b2 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/common/startup/server/settings.rs @@ -0,0 +1,77 @@ +use crate::common::startup::get_available_port; +use assert_fs::{fixture::PathChild, TempDir}; +use std::{ + net::SocketAddr, + path::{Path, PathBuf}, +}; +use vit_servicing_station_lib_f10::server::settings::{ + dump_settings_to_file, load_settings_from_file, Cors, LogLevel, ServiceSettings, +}; + +#[derive(Default)] +pub struct ServerSettingsBuilder { + settings: ServiceSettings, + cors: Option, +} + +impl ServerSettingsBuilder { + pub fn with_random_localhost_address(&mut self) -> &mut Self { + self.with_localhost_address(get_available_port()); + self + } + + pub fn with_localhost_address(&mut self, port: u32) -> &mut Self { + self.settings.address = Self::format_localhost_address(port); + self + } + + fn format_localhost_address(port: u32) -> SocketAddr { + format!("127.0.0.1:{}", port).parse().unwrap() + } + + pub fn with_db_path>(&mut self, db_url: S) -> &mut Self { + self.settings.db_url = db_url.into(); + self + } + + pub fn with_block0_path>(&mut self, block0_path: S) -> &mut Self { + self.settings.block0_path = block0_path.into(); + self + } + + pub fn with_cors(&mut self, cors: Cors) -> &mut Self { + self.cors = Some(cors); + self + } + + pub fn with_api_tokens(&mut self, enabled: bool) -> &mut Self { + self.settings.enable_api_tokens = enabled; + self + } + + pub fn with_log_output_path(&mut self, path: PathBuf) -> &mut Self { + self.settings.log.log_output_path = Some(path); + self + } + + pub fn with_log_level(&mut self, log_level: LogLevel) -> &mut Self { + self.settings.log.log_level = Some(log_level); + self + } + + pub fn build(&self) -> ServiceSettings { + self.settings.clone() + } +} + +///todo: add error mapping +pub fn dump_settings(temp_dir: &TempDir, settings: &ServiceSettings) -> PathBuf { + let child_path = temp_dir.child("settings.json"); + dump_settings_to_file(child_path.path().to_str().unwrap(), settings).unwrap(); + child_path.path().into() +} + +///todo: add error mapping +pub fn load_settings>(path: P) -> ServiceSettings { + load_settings_from_file(path.as_ref().to_str().unwrap()).unwrap() +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/lib.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/lib.rs new file mode 100644 index 0000000000..8bd5ba3819 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/lib.rs @@ -0,0 +1,7 @@ +pub mod common; + +#[cfg(test)] +pub mod tests; + +#[cfg(test)] +extern crate lazy_static; diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/bootstrap/arguments/address.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/bootstrap/arguments/address.rs new file mode 100644 index 0000000000..5d072877bf --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/bootstrap/arguments/address.rs @@ -0,0 +1,43 @@ +use crate::common::startup::{quick_start, server::BootstrapCommandBuilder}; +use assert_cmd::assert::OutputAssertExt; +use assert_fs::TempDir; + +#[test] +pub fn address_with_schema() { + let mut command_builder: BootstrapCommandBuilder = Default::default(); + command_builder + .address("http://127.0.0.1:8080") + .build() + .assert() + .failure() + .code(1); +} + +#[test] +pub fn address_with_domain() { + let mut command_builder: BootstrapCommandBuilder = Default::default(); + command_builder + .address("http://localhost:8080") + .build() + .assert() + .failure() + .code(1); +} + +#[test] +pub fn port_already_in_use() -> Result<(), Box> { + let temp_dir = TempDir::new().unwrap(); + let (server, _) = quick_start(&temp_dir)?; + + let settings = server.settings(); + let mut command_builder: BootstrapCommandBuilder = Default::default(); + command_builder + .address(settings.address.to_string()) + .db_url(settings.db_url) + .block0_path(settings.block0_path) + .build() + .assert() + .failure() + .code(101); + Ok(()) +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/bootstrap/arguments/block0.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/bootstrap/arguments/block0.rs new file mode 100644 index 0000000000..e3dc4b1290 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/bootstrap/arguments/block0.rs @@ -0,0 +1,50 @@ +use crate::common::{ + data, + startup::{db::DbBuilder, server::ServerBootstrapper}, +}; +use assert_fs::TempDir; + +#[test] +pub fn non_existing_block0_file() -> Result<(), Box> { + let temp_dir = TempDir::new().unwrap(); + let snapshot = data::ArbitrarySnapshotGenerator::default().snapshot(); + let db_path = DbBuilder::new().with_snapshot(&snapshot).build(&temp_dir)?; + + let server = ServerBootstrapper::new() + .with_db_path(db_path.to_str().unwrap()) + .start(&temp_dir)?; + + assert!(server.is_up(&snapshot.any_token().0)); + Ok(()) +} + +#[test] +pub fn malformed_path() -> Result<(), Box> { + let temp_dir = TempDir::new().unwrap(); + let snapshot = data::ArbitrarySnapshotGenerator::default().snapshot(); + let db_path = DbBuilder::new().with_snapshot(&snapshot).build(&temp_dir)?; + + let server = ServerBootstrapper::new() + .with_db_path(db_path.to_str().unwrap()) + .with_block0_path("C:/tmp/a:/block0.bin") + .start(&temp_dir)?; + + assert!(server.is_up(&snapshot.any_token().0)); + Ok(()) +} + +#[test] +#[cfg(not(windows))] +pub fn network_path() -> Result<(), Box> { + let temp_dir = TempDir::new().unwrap(); + let snapshot = data::ArbitrarySnapshotGenerator::default().snapshot(); + let db_path = DbBuilder::new().with_snapshot(&snapshot).build(&temp_dir)?; + + let server = ServerBootstrapper::new() + .with_db_path(db_path.to_str().unwrap()) + .with_block0_path("//tmp/block0.bin") + .start(&temp_dir)?; + + assert!(server.is_up(&snapshot.any_token().0)); + Ok(()) +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/bootstrap/arguments/db_url.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/bootstrap/arguments/db_url.rs new file mode 100644 index 0000000000..f28d6254c1 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/bootstrap/arguments/db_url.rs @@ -0,0 +1,25 @@ +use crate::common::startup::server::BootstrapCommandBuilder; +use assert_cmd::assert::OutputAssertExt; +use vit_servicing_station_lib_f10::server::exit_codes::ApplicationExitCode; + +#[test] +pub fn malformed_path() { + let mut command_builder: BootstrapCommandBuilder = Default::default(); + command_builder + .db_url("C:/tmp/a:/databse.db") + .build() + .assert() + .failure() + .code(ApplicationExitCode::DbConnectionError as i32); +} + +#[test] +pub fn path_doesnt_exist() { + let mut command_builder: BootstrapCommandBuilder = Default::default(); + command_builder + .db_url("C:/foo.db") + .build() + .assert() + .failure() + .code(ApplicationExitCode::DbConnectionError as i32); +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/bootstrap/arguments/in_settings.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/bootstrap/arguments/in_settings.rs new file mode 100644 index 0000000000..eb970f5a81 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/bootstrap/arguments/in_settings.rs @@ -0,0 +1,110 @@ +use crate::common::{ + data, + paths::BLOCK0_BIN, + startup::{ + db::DbBuilder, + empty_db, + server::{dump_settings, BootstrapCommandBuilder, ServerSettingsBuilder}, + }, +}; +use assert_cmd::assert::OutputAssertExt; +use assert_fs::TempDir; +use std::{ + fs::{self, File}, + io::Read, + path::{Path, PathBuf}, + str::FromStr, +}; +use vit_servicing_station_lib_f10::server::exit_codes::ApplicationExitCode; + +#[test] +pub fn no_in_settings_provided() { + let command_builder: BootstrapCommandBuilder = Default::default(); + command_builder + .build() + .assert() + .failure() + .code(ApplicationExitCode::DbConnectionError as i32); +} + +#[test] +pub fn in_settings_file_does_not_exist() { + let mut command_builder: BootstrapCommandBuilder = Default::default(); + + let non_existing_file = PathBuf::from_str("settings.json").unwrap(); + + command_builder + .in_settings_file(&non_existing_file) + .build() + .assert() + .failure() + .code(ApplicationExitCode::LoadSettingsError as i32); +} + +#[test] +pub fn in_settings_file_malformed() { + let temp_dir = TempDir::new().unwrap(); + + let mut settings_builder: ServerSettingsBuilder = Default::default(); + let settings = settings_builder + .with_random_localhost_address() + .with_db_path(empty_db(&temp_dir).to_str().unwrap()) + .with_block0_path(BLOCK0_BIN) + .build(); + + let settings_file = dump_settings(&temp_dir, &settings); + remove_first_char_in_file(&settings_file); + + let mut command_builder: BootstrapCommandBuilder = Default::default(); + command_builder + .in_settings_file(&settings_file) + .build() + .assert() + .failure() + .code(ApplicationExitCode::LoadSettingsError as i32); +} + +pub fn remove_first_char_in_file(settings_file: &Path) { + let mut file = File::open(settings_file).unwrap(); + let mut contents = String::new(); + file.read_to_string(&mut contents).unwrap(); + drop(file); + contents.remove(0); + fs::write(settings_file, contents).expect("Unable to write file"); +} + +#[test] +pub fn in_settings_file_with_malformed_path() { + let mut command_builder: BootstrapCommandBuilder = Default::default(); + + let non_existing_file = PathBuf::from_str("/tmp/a/c:/settings.json").unwrap(); + + command_builder + .in_settings_file(&non_existing_file) + .build() + .assert() + .failure() + .code(ApplicationExitCode::LoadSettingsError as i32); +} + +#[test] +pub fn db_url_and_block0_replaced() -> Result<(), Box> { + let temp_dir = TempDir::new().unwrap(); + + let (_, token) = data::token(); + + let db_path = DbBuilder::new() + .with_token(token) + .with_proposals(data::proposals()) + .build(&temp_dir)?; + + let mut command_builder: BootstrapCommandBuilder = Default::default(); + command_builder + .block0_path(db_path.to_str().unwrap()) + .db_url(BLOCK0_BIN) + .build() + .assert() + .failure() + .code(ApplicationExitCode::DbConnectionError as i32); + Ok(()) +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/bootstrap/arguments/logger.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/bootstrap/arguments/logger.rs new file mode 100644 index 0000000000..bfc21f9b17 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/bootstrap/arguments/logger.rs @@ -0,0 +1,64 @@ +use crate::common::startup::server::BootstrapCommandBuilder; +use assert_cmd::assert::OutputAssertExt; + +#[cfg(windows)] +use crate::common::{ + paths::BLOCK0_BIN, + startup::{ + empty_db, + server::{dump_settings, ServerSettingsBuilder}, + }, +}; +#[cfg(windows)] +use assert_fs::TempDir; +#[cfg(windows)] +use std::path::PathBuf; +#[cfg(windows)] +use vit_servicing_station_lib_f10::server::exit_codes::ApplicationExitCode; + +#[test] +pub fn wrong_log_level_provided() { + let mut command_builder: BootstrapCommandBuilder = Default::default(); + command_builder + .log_level("traceble") + .build() + .assert() + .failure() + .code(1); +} + +#[test] +#[cfg(windows)] +pub fn malformed_logger_path_provided() { + let mut command_builder: BootstrapCommandBuilder = Default::default(); + command_builder + .log_file(&PathBuf::from("c:\\a\\d:\\logger")) + .build() + .assert() + .failure() + .code(ApplicationExitCode::LoadSettingsError as i32); +} + +#[test] +#[cfg(windows)] +pub fn in_settings_file_malformed_log_output_path() { + let temp_dir = TempDir::new().unwrap(); + + let mut settings_builder: ServerSettingsBuilder = Default::default(); + let settings = settings_builder + .with_random_localhost_address() + .with_db_path(empty_db(&temp_dir).to_str().unwrap()) + .with_block0_path(BLOCK0_BIN) + .with_log_output_path(PathBuf::from("c:\\a\\d:\\logger")) + .build(); + + let settings_file = dump_settings(&temp_dir, &settings); + let mut command_builder: BootstrapCommandBuilder = Default::default(); + + command_builder + .in_settings_file(&settings_file) + .build() + .assert() + .failure() + .code(ApplicationExitCode::LoadSettingsError as i32); +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/bootstrap/arguments/mod.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/bootstrap/arguments/mod.rs new file mode 100644 index 0000000000..e9121d61a9 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/bootstrap/arguments/mod.rs @@ -0,0 +1,6 @@ +pub mod address; +pub mod block0; +pub mod db_url; +pub mod in_settings; +pub mod logger; +pub mod out_settings; diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/bootstrap/arguments/out_settings.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/bootstrap/arguments/out_settings.rs new file mode 100644 index 0000000000..2fd74c97f0 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/bootstrap/arguments/out_settings.rs @@ -0,0 +1,80 @@ +use crate::common::{ + paths::BLOCK0_BIN, + startup::{ + empty_db, + server::{dump_settings, load_settings, BootstrapCommandBuilder, ServerSettingsBuilder}, + }, +}; +use assert_cmd::assert::OutputAssertExt; +use assert_fs::{fixture::PathChild, TempDir}; +use std::path::PathBuf; +use vit_servicing_station_lib_f10::server::settings::LogLevel; +use vit_servicing_station_lib_f10::server::settings::ServiceSettings; + +#[test] +pub fn out_settings_provided() { + let temp_dir = TempDir::new().unwrap(); + + let (in_settings_file, settings) = example_settings_file(&temp_dir); + let out_settings_file = temp_dir.child("out_settings.json"); + + let mut command_builder: BootstrapCommandBuilder = Default::default(); + command_builder + .in_settings_file(&in_settings_file) + .out_settings_file(out_settings_file.path()) + .build() + .assert() + .success(); + + let actual_settings = load_settings(&out_settings_file.path()); + assert_eq!(settings, actual_settings); +} + +#[test] +pub fn out_settings_file_override() { + let temp_dir = TempDir::new().unwrap(); + let mut command_builder: BootstrapCommandBuilder = Default::default(); + + let (in_settings_file, _) = example_settings_file(&temp_dir); + + command_builder + .in_settings_file(&in_settings_file) + .out_settings_file(&in_settings_file) + .build() + .assert() + .success(); +} + +#[test] +#[ignore = "issue in comment for https://github.com/input-output-hk/vit-servicing-station/pull/75"] +pub fn out_settings_file_from_cmdline() { + let temp_dir = TempDir::new().unwrap().into_persistent(); + let (_, settings) = example_settings_file(&temp_dir); + let out_settings_file = temp_dir.child("settings.json"); + + let mut command_builder: BootstrapCommandBuilder = Default::default(); + command_builder + .db_url(&settings.db_url) + .block0_path(&settings.block0_path) + .address(settings.address.to_string()) + .out_settings_file(out_settings_file.path()) + .build() + .assert() + .success(); + + let actual_settings = load_settings(&out_settings_file.path()); + assert_eq!(settings, actual_settings); +} + +fn example_settings_file(temp_dir: &TempDir) -> (PathBuf, ServiceSettings) { + let mut settings_builder: ServerSettingsBuilder = Default::default(); + let settings = settings_builder + .with_random_localhost_address() + .with_db_path(empty_db(temp_dir).to_str().unwrap()) + .with_block0_path(BLOCK0_BIN) + .with_log_level(LogLevel::Info) + .with_log_output_path(temp_dir.child("logger.log").path().into()) + .build(); + let settings_file = dump_settings(temp_dir, &settings); + (settings_file, settings) +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/bootstrap/mod.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/bootstrap/mod.rs new file mode 100644 index 0000000000..deeac03611 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/bootstrap/mod.rs @@ -0,0 +1,22 @@ +use crate::common::{ + data, + startup::{db::DbBuilder, server::ServerBootstrapper}, +}; +use assert_fs::TempDir; + +pub mod arguments; + +#[test] +pub fn bootstrap_with_random_data() -> Result<(), Box> { + let temp_dir = TempDir::new().unwrap().into_persistent(); + let snapshot = data::ArbitrarySnapshotGenerator::default().snapshot(); + let db_path = DbBuilder::new().with_snapshot(&snapshot).build(&temp_dir)?; + + let server = ServerBootstrapper::new() + .with_db_path(db_path.to_str().unwrap()) + .start(&temp_dir)?; + + std::thread::sleep(std::time::Duration::from_secs(1)); + assert!(server.is_up(&snapshot.any_token().0)); + Ok(()) +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/cli/db.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/cli/db.rs new file mode 100644 index 0000000000..cf19d33b95 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/cli/db.rs @@ -0,0 +1,29 @@ +use crate::common::cli::VitCliCommand; +use crate::common::startup::server::ServerBootstrapper; +use assert_cmd::assert::OutputAssertExt; +use assert_fs::assert::PathAssert; +use assert_fs::{fixture::PathChild, TempDir}; +use jortestkit::prelude::file_exists_and_not_empty; +#[test] +pub fn genereate_empty_db() { + let temp_dir = TempDir::new().unwrap(); + let db_file = temp_dir.child("db.sqlite"); + let vit_cli: VitCliCommand = Default::default(); + vit_cli + .db() + .init() + .db_url(db_file.path()) + .build() + .assert() + .success(); + + db_file.assert(file_exists_and_not_empty()); + + let server = ServerBootstrapper::new() + .with_db_path(db_file.path().to_str().unwrap()) + .start(&temp_dir) + .unwrap(); + + std::thread::sleep(std::time::Duration::from_secs(1)); + assert!(server.rest_client().health().is_ok()); +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/cli/load.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/cli/load.rs new file mode 100644 index 0000000000..8a75c8cadd --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/cli/load.rs @@ -0,0 +1,97 @@ +use crate::common::data::{multivoteplan_snapshot, ArbitrarySnapshotGenerator}; +use crate::common::{ + cli::VitCliCommand, + data::CsvConverter, + startup::{db::DbBuilder, server::ServerBootstrapper}, +}; +use assert_cmd::assert::OutputAssertExt; +use assert_fs::{fixture::PathChild, TempDir}; + +#[test] +pub fn load_data_test() { + let temp_dir = TempDir::new().unwrap(); + let db_file = temp_dir.child("db.sqlite"); + let snapshot = ArbitrarySnapshotGenerator::default().snapshot(); + + let csv_converter = CsvConverter; + + let funds = temp_dir.child("funds.csv"); + csv_converter.funds(snapshot.funds(), funds.path()).unwrap(); + + let proposals = temp_dir.child("proposals.csv"); + csv_converter + .proposals( + snapshot.proposals().iter().take(1).cloned().collect(), + proposals.path(), + ) + .unwrap(); + + let voteplans = temp_dir.child("voteplans.csv"); + csv_converter + .voteplans( + snapshot.voteplans().iter().take(1).cloned().collect(), + voteplans.path(), + ) + .unwrap(); + + let challenges = temp_dir.child("challenges.csv"); + csv_converter + .challenges( + snapshot.challenges().iter().take(1).cloned().collect(), + challenges.path(), + ) + .unwrap(); + + let reviews = temp_dir.child("reviews.csv"); + csv_converter + .advisor_reviews(snapshot.advisor_reviews(), reviews.path()) + .unwrap(); + + let goals = temp_dir.child("goals.csv"); + csv_converter + .goals( + snapshot.goals().iter().map(From::from).collect(), + goals.path(), + ) + .unwrap(); + + let vit_cli: VitCliCommand = Default::default(); + vit_cli + .db() + .init() + .db_url(db_file.path()) + .build() + .assert() + .success(); + + let vit_cli: VitCliCommand = Default::default(); + vit_cli + .csv_data() + .load() + .db_url(db_file.path()) + .funds(funds.path()) + .proposals(proposals.path()) + .voteplans(voteplans.path()) + .challenges(challenges.path()) + .advisor_reviews(reviews.path()) + .goals(goals.path()) + .build() + .assert() + .success(); + + let server = ServerBootstrapper::new() + .with_db_path(db_file.path().to_str().unwrap()) + .start(&temp_dir) + .unwrap(); + + std::thread::sleep(std::time::Duration::from_secs(1)); + assert!(server.rest_client().health().is_ok()); +} + +#[test] +pub fn voting_snapshot_build() { + let temp_dir = TempDir::new().unwrap().into_persistent(); + let mut db_builder = DbBuilder::new(); + db_builder.with_snapshot(&multivoteplan_snapshot()); + db_builder.build(&temp_dir).unwrap(); +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/cli/mod.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/cli/mod.rs new file mode 100644 index 0000000000..4c82364f95 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/cli/mod.rs @@ -0,0 +1,3 @@ +pub mod db; +pub mod load; +pub mod token; diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/cli/token.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/cli/token.rs new file mode 100644 index 0000000000..a429e4e5a6 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/cli/token.rs @@ -0,0 +1,116 @@ +use crate::common::{ + cli::{VitCli, VitCliCommand}, + clients::RawRestClient, + startup::quick_start, +}; +use assert_cmd::assert::OutputAssertExt; +use assert_fs::{fixture::PathChild, TempDir}; +use hyper::StatusCode; +use jortestkit::process::output_extensions::ProcessOutput; +use std::error::Error; + +#[test] +pub fn generate_token() { + let vit_cli: VitCliCommand = Default::default(); + let output = vit_cli + .api_token() + .generate() + .n(2) + .build() + .assert() + .success() + .get_output() + .as_multi_line(); + + assert_eq!(2, output.len()); + + for line in output { + assert_eq!(14, line.len()) + } +} + +#[test] +pub fn generate_token_for_given_size_and_n() { + let vit_cli: VitCliCommand = Default::default(); + let output = vit_cli + .api_token() + .generate() + .n(3) + .size(15) + .build() + .assert() + .success() + .get_output() + .as_multi_line(); + + assert_eq!(3, output.len()); + + for line in output { + assert_eq!(20, line.len()) + } +} + +#[test] +pub fn add_generated_token_to_db() -> Result<(), Box> { + let temp_dir = TempDir::new().unwrap(); + let (server, _snapshot) = quick_start(&temp_dir).unwrap(); + + let vit_cli: VitCli = Default::default(); + let tokens = vit_cli.generate_tokens(1); + + let vit_cli: VitCliCommand = Default::default(); + vit_cli + .api_token() + .add() + .db_url(server.settings().db_url) + .tokens(&tokens) + .build() + .assert() + .success(); + + let first_token = tokens.get(0).unwrap(); + let raw: RawRestClient = server.rest_client_with_token(first_token).into(); + + assert_eq!(raw.health()?.status(), StatusCode::OK); + Ok(()) +} + +#[test] +pub fn add_generated_token_to_db_negative() -> Result<(), Box> { + let temp_dir = TempDir::new().unwrap().into_persistent(); + let (server, _snapshot) = quick_start(&temp_dir).unwrap(); + + let vit_cli: VitCli = Default::default(); + let tokens = vit_cli.generate_tokens(1); + + let vit_cli: VitCliCommand = Default::default(); + vit_cli + .api_token() + .add() + .db_url(temp_dir.child("fake.db").path().to_str().unwrap()) + .tokens(&tokens) + .build() + .assert() + .failure(); + + let vit_cli: VitCliCommand = Default::default(); + vit_cli + .api_token() + .add() + .db_url(server.settings().db_url) + .tokens_as_str("some_random_token") + .build() + .assert() + .failure(); + + let vit_cli: VitCliCommand = Default::default(); + vit_cli + .api_token() + .add() + .db_url(server.settings().db_url) + .tokens_as_str("randomtoken1;randomtoken2") + .build() + .assert() + .failure(); + Ok(()) +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/data/mod.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/data/mod.rs new file mode 100644 index 0000000000..102ad04ce2 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/data/mod.rs @@ -0,0 +1,36 @@ +use crate::common::data::{ + ArbitraryValidVotingTemplateGenerator, CurrentFund, ValidVotePlanGenerator, + ValidVotePlanParameters, +}; +use crate::common::startup::{db::DbBuilder, server::ServerBootstrapper}; +use assert_fs::TempDir; +use chain_impl_mockchain::testing::scenario::template::VotePlanDef; +use chain_impl_mockchain::testing::VoteTestGen; + +#[test] +pub fn bootstrap_with_valid_data() -> Result<(), Box> { + let temp_dir = TempDir::new().unwrap().into_persistent(); + let vote_plan = ValidVotePlanParameters::from(CurrentFund::from_single( + VotePlanDef::from_vote_plan( + "test", + Some("owner"), + &VoteTestGen::vote_plan_with_proposals(30), + ), + Default::default(), + )); + let snapshot = ValidVotePlanGenerator::new(vote_plan) + .build(&mut ArbitraryValidVotingTemplateGenerator::new()); + let db_path = DbBuilder::new().with_snapshot(&snapshot).build(&temp_dir)?; + + let server = ServerBootstrapper::new() + .with_db_path(db_path.to_str().unwrap()) + .start(&temp_dir)?; + std::thread::sleep(std::time::Duration::from_secs(1)); + assert!(server.is_up(&snapshot.any_token().0)); + + let rest_client = server.rest_client_with_token(&snapshot.token_hash()); + assert!(rest_client.proposals().is_ok()); + assert!(rest_client.challenges().is_ok()); + assert!(rest_client.funds().is_ok()); + Ok(()) +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/mod.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/mod.rs new file mode 100644 index 0000000000..b86078b4dc --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/mod.rs @@ -0,0 +1,6 @@ +pub mod bootstrap; +pub mod cli; +pub mod data; +#[cfg(feature = "non-functional")] +pub mod non_functional; +pub mod rest; diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/non_functional/mod.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/non_functional/mod.rs new file mode 100644 index 0000000000..3f1e667d2e --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/non_functional/mod.rs @@ -0,0 +1,16 @@ +use jortestkit::load::{Id, RequestStatusProvider, Status}; +use std::time::Duration; + +mod short; +#[cfg(feature = "soak")] +mod soak; + +struct MockStatusProvider; + +impl RequestStatusProvider for MockStatusProvider { + fn get_statuses(&self, ids: &[Id]) -> Vec { + ids.iter() + .map(|id| Status::new_success(Duration::from_millis(10), id.clone())) + .collect() + } +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/non_functional/short.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/non_functional/short.rs new file mode 100644 index 0000000000..8565e290e8 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/non_functional/short.rs @@ -0,0 +1,85 @@ +use super::MockStatusProvider; +use crate::common::{ + load::{VitRestRequestGenerator, VotingPowerRequestGenerator}, + snapshot::{SnapshotBuilder, SnapshotUpdater}, + startup::quick_start, +}; +use assert_fs::TempDir; +use jortestkit::load::{self, ConfigurationBuilder, Monitor}; +use std::time::Duration; + +#[test] +pub fn update_snapshot_during_the_load_quick() { + let temp_dir = TempDir::new().unwrap(); + let (server, data) = quick_start(&temp_dir).unwrap(); + let rest_client = server.rest_client_with_token(&data.token_hash()); + + let snapshot = SnapshotBuilder::default() + .with_entries_count(10_000) + .build(); + + rest_client.put_snapshot(&snapshot).unwrap(); + + let request = VotingPowerRequestGenerator::new(snapshot.clone(), rest_client.clone()); + let config = ConfigurationBuilder::duration(Duration::from_secs(40)) + .thread_no(10) + .step_delay(Duration::from_millis(500)) + .monitor(Monitor::Progress(100)) + .build(); + + let load_run = load::start_background_async( + request, + MockStatusProvider, + config, + "Vit station snapshot service rest", + ); + + std::thread::sleep(std::time::Duration::from_secs(10)); + + let new_snapshot = SnapshotUpdater::from(snapshot) + .update_voting_power() + .add_new_arbitrary_voters() + .build(); + + rest_client.put_snapshot(&new_snapshot).unwrap(); + + let stats = load_run.wait_for_finish(); + assert!((stats.calculate_passrate() as u32) > 95); +} + +#[test] +pub fn rest_snapshot_load_quick() { + let temp_dir = TempDir::new().unwrap(); + let (server, data) = quick_start(&temp_dir).unwrap(); + let rest_client = server.rest_client_with_token(&data.token_hash()); + + let snapshot = SnapshotBuilder::default() + .with_entries_count(10_000) + .build(); + + let request = VotingPowerRequestGenerator::new(snapshot, rest_client); + let config = ConfigurationBuilder::duration(Duration::from_secs(40)) + .thread_no(10) + .step_delay(Duration::from_millis(500)) + .monitor(Monitor::Progress(100)) + .build(); + let stats = load::start_sync(request, config, "Vit station snapshot service rest"); + assert!((stats.calculate_passrate() as u32) > 95); +} + +#[test] +pub fn rest_load_quick() { + let temp_dir = TempDir::new().unwrap(); + let (server, snapshot) = quick_start(&temp_dir).unwrap(); + + let rest_client = server.rest_client(); + + let request = VitRestRequestGenerator::new(snapshot, rest_client); + let config = ConfigurationBuilder::duration(Duration::from_secs(40)) + .thread_no(10) + .step_delay(Duration::from_millis(500)) + .monitor(Monitor::Progress(100)) + .build(); + let stats = load::start_sync(request, config, "Vit station service rest"); + assert!((stats.calculate_passrate() as u32) > 95); +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/non_functional/soak.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/non_functional/soak.rs new file mode 100644 index 0000000000..06003dddc2 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/non_functional/soak.rs @@ -0,0 +1,47 @@ +use crate::common::{ + load::{VitRestRequestGenerator, VotingPowerRequestGenerator}, + snapshot::SnapshotBuilder, + startup::quick_start, +}; +use assert_fs::TempDir; +use jortestkit::load::{self, ConfigurationBuilder, Monitor}; +use std::time::Duration; + +#[test] +#[cfg(feature = "soak")] +pub fn rest_snapshot_load_long() { + let temp_dir = TempDir::new().unwrap(); + let (server, data) = quick_start(&temp_dir).unwrap(); + let rest_client = server.rest_client_with_token(&data.token_hash()); + + let snapshot = SnapshotBuilder::default() + .with_entries_count(10_000) + .build(); + + let request = VotingPowerRequestGenerator::new(snapshot, rest_client); + let config = ConfigurationBuilder::duration(Duration::from_secs(18_000)) + .thread_no(3) + .step_delay(Duration::from_secs(1)) + .monitor(Monitor::Progress(10_000)) + .build(); + let stats = load::start_sync(request, config, "Vit station snapshot service rest"); + assert!((stats.calculate_passrate() as u32) > 95); +} + +#[test] +#[cfg(feature = "soak")] +pub fn rest_load_long() { + let temp_dir = TempDir::new().unwrap(); + let (server, snapshot) = quick_start(&temp_dir).unwrap(); + + let rest_client = server.rest_client(); + + let request = VitRestRequestGenerator::new(snapshot, rest_client); + let config = ConfigurationBuilder::duration(Duration::from_secs(18_000)) + .thread_no(3) + .step_delay(Duration::from_secs(1)) + .monitor(Monitor::Progress(10_000)) + .build(); + let stats = load::start_sync(request, config, "Vit station service rest"); + assert!((stats.calculate_passrate() as u32) > 95); +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/rest/advisor_reviews.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/rest/advisor_reviews.rs new file mode 100644 index 0000000000..c04c965997 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/rest/advisor_reviews.rs @@ -0,0 +1,66 @@ +use crate::common::{ + clients::RawRestClient, + data, + startup::{db::DbBuilder, server::ServerBootstrapper}, +}; +use assert_fs::TempDir; +use reqwest::StatusCode; +use vit_servicing_station_lib_f10::db::models::community_advisors_reviews::{ + AdvisorReview, ReviewRanking, +}; + +#[test] +pub fn get_advisor_reviews() -> Result<(), Box> { + use pretty_assertions::assert_eq; + let temp_dir = TempDir::new().unwrap().into_persistent(); + let proposal_id = 1234; + let expected_review = AdvisorReview { + id: 1, + proposal_id, + assessor: "za_foo_bar".to_string(), + impact_alignment_rating_given: 0, + impact_alignment_note: "impact note".to_string(), + feasibility_rating_given: 0, + feasibility_note: "feasibility note".to_string(), + auditability_rating_given: 0, + auditability_note: "auditability note".to_string(), + ranking: ReviewRanking::Good, + }; + let (hash, token) = data::token(); + + let db_path = DbBuilder::new() + .with_token(token) + .with_advisor_reviews(vec![expected_review.clone()]) + .build(&temp_dir)?; + + let server = ServerBootstrapper::new() + .with_db_path(db_path.to_str().unwrap()) + .start(&temp_dir)?; + + let rest_client = server.rest_client_with_token(&hash); + + let actual_review = rest_client.advisor_reviews(&expected_review.proposal_id.to_string())?; + assert_eq!( + expected_review, + actual_review.get(&expected_review.assessor).unwrap()[0] + ); + + // non existing + let empty_reviews = rest_client.advisor_reviews("0")?; + assert!(empty_reviews.is_empty()); + + let rest_client: RawRestClient = server.rest_client_with_token(&hash).into(); + + // malformed index + assert_eq!( + rest_client.advisor_reviews("a")?.status(), + StatusCode::NOT_FOUND + ); + // overflow index + assert_eq!( + rest_client.fund("3147483647999")?.status(), + StatusCode::NOT_FOUND + ); + + Ok(()) +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/rest/cors.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/rest/cors.rs new file mode 100644 index 0000000000..91c2cf7df7 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/rest/cors.rs @@ -0,0 +1,153 @@ +use crate::common::{ + clients::RawRestClient, + data::ArbitrarySnapshotGenerator, + startup::{ + db::DbBuilder, + server::{BootstrapCommandBuilder, ServerBootstrapper}, + }, +}; +use assert_cmd::assert::OutputAssertExt; +use assert_fs::TempDir; + +#[test] +pub fn cors_illegal_domain() -> Result<(), Box> { + let temp_dir = TempDir::new().unwrap(); + let snapshot = ArbitrarySnapshotGenerator::default().snapshot(); + let db_path = DbBuilder::new().with_snapshot(&snapshot).build(&temp_dir)?; + + let server = ServerBootstrapper::new() + .with_db_path(db_path.to_str().unwrap()) + .with_allowed_origins("http://domain.com") + .start(&temp_dir)?; + + let mut rest_client = server.rest_client_with_token(&snapshot.token_hash()); + rest_client.set_origin("http://other_domain.com"); + + assert_request_failed_due_to_cors(&rest_client.into())?; + Ok(()) +} + +fn assert_request_failed_due_to_cors( + rest_client: &RawRestClient, +) -> Result<(), Box> { + assert_eq!( + rest_client.funds()?.text()?, + "CORS request forbidden: origin not allowed" + ); + Ok(()) +} + +#[test] +pub fn cors_malformed_domain_no_http() -> Result<(), Box> { + let temp_dir = TempDir::new().unwrap(); + let snapshot = ArbitrarySnapshotGenerator::default().snapshot(); + let db_path = DbBuilder::new().with_snapshot(&snapshot).build(&temp_dir)?; + + let mut command_builder: BootstrapCommandBuilder = Default::default(); + command_builder + .db_url(db_path.to_str().unwrap()) + .allowed_origins("domain.com") + .build() + .assert() + .failure(); + Ok(()) +} + +#[test] +pub fn cors_ip_versus_domain() -> Result<(), Box> { + let temp_dir = TempDir::new().unwrap(); + let snapshot = ArbitrarySnapshotGenerator::default().snapshot(); + let db_path = DbBuilder::new().with_snapshot(&snapshot).build(&temp_dir)?; + + let server = ServerBootstrapper::new() + .with_db_path(db_path.to_str().unwrap()) + .with_allowed_origins("http://127.0.0.1") + .start(&temp_dir)?; + + let mut rest_client = server.rest_client_with_token(&snapshot.token_hash()); + rest_client.set_origin("http://localhost"); + + assert_request_failed_due_to_cors(&rest_client.into())?; + + Ok(()) +} + +#[test] +pub fn cors_wrong_delimiter() -> Result<(), Box> { + let temp_dir = TempDir::new().unwrap(); + let snapshot = ArbitrarySnapshotGenerator::default().snapshot(); + let db_path = DbBuilder::new().with_snapshot(&snapshot).build(&temp_dir)?; + + let mut command_builder: BootstrapCommandBuilder = Default::default(); + command_builder + .db_url(db_path.to_str().unwrap()) + .allowed_origins("http://domain.com,http://other_domain.com") + .build() + .assert() + .failure(); + Ok(()) +} + +#[test] +pub fn cors_single_domain() -> Result<(), Box> { + let temp_dir = TempDir::new().unwrap(); + let snapshot = ArbitrarySnapshotGenerator::default().snapshot(); + let db_path = DbBuilder::new().with_snapshot(&snapshot).build(&temp_dir)?; + + let server = ServerBootstrapper::new() + .with_db_path(db_path.to_str().unwrap()) + .with_allowed_origins("http://domain.com") + .start(&temp_dir)?; + + let mut rest_client: RawRestClient = + server.rest_client_with_token(&snapshot.token_hash()).into(); + rest_client.set_origin("http://domain.com"); + + assert!(rest_client.funds()?.status().is_success()); + + Ok(()) +} + +#[test] +pub fn cors_https() -> Result<(), Box> { + let temp_dir = TempDir::new().unwrap(); + let snapshot = ArbitrarySnapshotGenerator::default().snapshot(); + let db_path = DbBuilder::new().with_snapshot(&snapshot).build(&temp_dir)?; + + let server = ServerBootstrapper::new() + .with_db_path(db_path.to_str().unwrap()) + .with_allowed_origins("https://domain.com") + .start(&temp_dir)?; + + let mut rest_client: RawRestClient = + server.rest_client_with_token(&snapshot.token_hash()).into(); + rest_client.set_origin("https://domain.com"); + + assert!(rest_client.funds()?.status().is_success()); + + Ok(()) +} + +#[test] +pub fn cors_multi_domain() -> Result<(), Box> { + let temp_dir = TempDir::new().unwrap().into_persistent(); + let snapshot = ArbitrarySnapshotGenerator::default().snapshot(); + let db_path = DbBuilder::new().with_snapshot(&snapshot).build(&temp_dir)?; + + let server = ServerBootstrapper::new() + .with_db_path(db_path.to_str().unwrap()) + .with_allowed_origins("http://domain.com;http://other_domain.com") + .start(&temp_dir)?; + + let mut rest_client: RawRestClient = + server.rest_client_with_token(&snapshot.token_hash()).into(); + rest_client.set_origin("http://other_domain.com"); + assert!(rest_client.funds()?.status().is_success()); + + rest_client.set_origin("http://domain.com"); + assert!(rest_client.funds()?.status().is_success()); + + assert!(!server.logger().any_error()); + + Ok(()) +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/rest/funds.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/rest/funds.rs new file mode 100644 index 0000000000..fcc8aeedd9 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/rest/funds.rs @@ -0,0 +1,55 @@ +use crate::common::{ + clients::RawRestClient, + data, + startup::{db::DbBuilder, quick_start, server::ServerBootstrapper}, +}; +use assert_fs::TempDir; +use reqwest::StatusCode; + +#[test] +pub fn get_funds_list_is_not_empty() -> Result<(), Box> { + let temp_dir = TempDir::new().unwrap(); + let (server, snapshot) = quick_start(&temp_dir)?; + server + .rest_client_with_token(&snapshot.token_hash()) + .funds() + .expect("cannot get funds"); + Ok(()) +} + +#[test] +pub fn get_funds_by_id() -> Result<(), Box> { + use pretty_assertions::assert_eq; + let temp_dir = TempDir::new().unwrap().into_persistent(); + let mut expected_fund = data::funds().first().unwrap().clone(); + let (hash, token) = data::token(); + + let db_path = DbBuilder::new() + .with_token(token) + .with_funds(vec![expected_fund.clone()]) + .with_challenges(expected_fund.challenges.clone()) + .build(&temp_dir)?; + + let server = ServerBootstrapper::new() + .with_db_path(db_path.to_str().unwrap()) + .start(&temp_dir)?; + + let rest_client = server.rest_client_with_token(&hash); + + let actual_fund = rest_client.fund(&expected_fund.id.to_string())?; + expected_fund.challenges.sort_by_key(|c| c.internal_id); + assert_eq!(expected_fund, actual_fund); + + let rest_client: RawRestClient = server.rest_client_with_token(&hash).into(); + // non existing + assert_eq!(rest_client.fund("2")?.status(), StatusCode::NOT_FOUND); + // malformed index + assert_eq!(rest_client.fund("a")?.status(), StatusCode::NOT_FOUND); + // overflow index + assert_eq!( + rest_client.fund("3147483647")?.status(), + StatusCode::NOT_FOUND + ); + + Ok(()) +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/rest/genesis.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/rest/genesis.rs new file mode 100644 index 0000000000..440f8b67b4 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/rest/genesis.rs @@ -0,0 +1,51 @@ +use crate::common::{ + clients::RawRestClient, + data, + startup::{db::DbBuilder, server::ServerBootstrapper}, +}; +use assert_fs::TempDir; + +use crate::common::paths::BLOCK0_BIN; +use hyper::StatusCode; + +#[test] +pub fn genesis_deserialize_bijection() -> Result<(), Box> { + let temp_dir = TempDir::new().unwrap(); + let (hash, token) = data::token(); + + let db_path = DbBuilder::new().with_token(token).build(&temp_dir).unwrap(); + + let server = ServerBootstrapper::new() + .with_db_path(db_path.to_str().unwrap()) + .with_block0_path(BLOCK0_BIN) + .start(&temp_dir) + .unwrap(); + + let expected = std::fs::read(BLOCK0_BIN).unwrap(); + + let genesis_as_bytes = server + .rest_client_with_token(&hash) + .genesis() + .expect("cannot get genesis block bytes"); + + assert_eq!(expected, genesis_as_bytes); + Ok(()) +} + +#[test] +pub fn non_existing_block0() { + let temp_dir = TempDir::new().unwrap(); + let (hash, token) = data::token(); + + let db_path = DbBuilder::new().with_token(token).build(&temp_dir).unwrap(); + + let server = ServerBootstrapper::new() + .with_db_path(db_path.to_str().unwrap()) + .with_block0_path("non/existing/path") + .start(&temp_dir) + .unwrap(); + + let rest_raw: RawRestClient = server.rest_client_with_token(&hash).into(); + + assert_eq!(rest_raw.genesis().unwrap().status(), StatusCode::NO_CONTENT); +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/rest/mod.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/rest/mod.rs new file mode 100644 index 0000000000..34446ee82b --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/rest/mod.rs @@ -0,0 +1,8 @@ +pub mod advisor_reviews; +pub mod cors; +pub mod funds; +pub mod genesis; +pub mod proposals; +mod service_version; +pub mod token; +pub mod voteplan_id; diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/rest/proposals.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/rest/proposals.rs new file mode 100644 index 0000000000..0f1650ad41 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/rest/proposals.rs @@ -0,0 +1,59 @@ +use crate::common::{ + clients::RawRestClient, + data, + startup::{db::DbBuilder, quick_start, server::ServerBootstrapper}, +}; + +use assert_fs::TempDir; +use reqwest::StatusCode; + +#[test] +pub fn get_proposals_list_is_not_empty() { + let temp_dir = TempDir::new().unwrap(); + let (server, snapshot) = quick_start(&temp_dir).unwrap(); + let proposals = server + .rest_client_with_token(&snapshot.token_hash()) + .proposals() + .expect("cannot get proposals"); + assert!(!proposals.is_empty()); +} + +#[test] +pub fn get_proposal_by_id() -> Result<(), Box> { + let temp_dir = TempDir::new().unwrap().into_persistent(); + let mut expected_proposal = data::proposals().first().unwrap().clone(); + let mut expected_challenge = data::challenges().first().unwrap().clone(); + expected_proposal.proposal.challenge_id = expected_challenge.id; + expected_challenge.challenge_type = expected_proposal.challenge_type.clone(); + + let (hash, token) = data::token(); + + let db_path = DbBuilder::new() + .with_token(token) + .with_proposals(vec![expected_proposal.clone()]) + .with_challenges(vec![expected_challenge]) + .build(&temp_dir)?; + + let server = ServerBootstrapper::new() + .with_db_path(db_path.to_str().unwrap()) + .start(&temp_dir) + .unwrap(); + + let rest_client = server.rest_client_with_token(&hash); + + let actual_proposal = + rest_client.proposal(&expected_proposal.proposal.internal_id.to_string())?; + assert_eq!(actual_proposal, expected_proposal.proposal); + let rest_client: RawRestClient = rest_client.into(); + // non existing + assert_eq!(rest_client.proposal("2")?.status(), StatusCode::NOT_FOUND); + // malformed index + assert_eq!(rest_client.proposal("a")?.status(), StatusCode::NOT_FOUND); + // overflow index + assert_eq!( + rest_client.proposal("3147483647")?.status(), + StatusCode::NOT_FOUND + ); + + Ok(()) +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/rest/service_version.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/rest/service_version.rs new file mode 100644 index 0000000000..6104827613 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/rest/service_version.rs @@ -0,0 +1,29 @@ +use crate::common::{ + data, + startup::{db::DbBuilder, server::ServerBootstrapper}, +}; +use assert_fs::TempDir; + +#[test] +pub fn service_version() { + let temp_dir = TempDir::new().unwrap(); + let (hash, token) = data::token(); + + let db_path = DbBuilder::new().with_token(token).build(&temp_dir).unwrap(); + let version = "TestV1".to_string(); + let server = ServerBootstrapper::new() + .with_db_path(db_path.to_str().unwrap()) + .with_block0_path("non/existing/path") + .with_service_version(version.clone()) + .start(&temp_dir) + .unwrap(); + + assert_eq!( + server + .rest_client_with_token(&hash) + .service_version() + .unwrap() + .service_version, + version + ); +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/rest/token.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/rest/token.rs new file mode 100644 index 0000000000..472183cc7c --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/rest/token.rs @@ -0,0 +1,38 @@ +use crate::common::{ + clients::RawRestClient, + data, + startup::{db::DbBuilder, server::ServerBootstrapper}, +}; +use assert_fs::TempDir; +use reqwest::StatusCode; + +#[test] +pub fn token_validation() -> Result<(), Box> { + let temp_dir = TempDir::new().unwrap(); + let (hash, token) = data::token(); + + let db_path = DbBuilder::new().with_token(token).build(&temp_dir).unwrap(); + + let server = ServerBootstrapper::new() + .with_db_path(db_path.to_str().unwrap()) + .with_api_tokens(true) + .start(&temp_dir) + .unwrap(); + + let invalid_token = data::token_hash(); + + let rest_client: RawRestClient = server.rest_client_with_token(&hash).into(); + assert_eq!(rest_client.health()?.status(), StatusCode::OK); + + let rest_client: RawRestClient = server.rest_client_with_token(&invalid_token).into(); + assert_eq!(rest_client.health()?.status(), StatusCode::UNAUTHORIZED); + assert_eq!(rest_client.fund("1")?.status(), StatusCode::UNAUTHORIZED); + assert_eq!(rest_client.funds()?.status(), StatusCode::UNAUTHORIZED); + assert_eq!( + rest_client.proposal("1")?.status(), + StatusCode::UNAUTHORIZED + ); + assert_eq!(rest_client.proposals()?.status(), StatusCode::UNAUTHORIZED); + assert_eq!(rest_client.genesis()?.status(), StatusCode::UNAUTHORIZED); + Ok(()) +} diff --git a/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/rest/voteplan_id.rs b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/rest/voteplan_id.rs new file mode 100644 index 0000000000..704ad9b119 --- /dev/null +++ b/src/vit-servicing-station-f10/vit-servicing-station-tests-f10/src/tests/rest/voteplan_id.rs @@ -0,0 +1,50 @@ +use crate::common::data::multivoteplan_snapshot; +use crate::common::startup::{db::DbBuilder, server::ServerBootstrapper}; +use assert_fs::TempDir; +use vit_servicing_station_lib_f10::db::models::proposals::Proposal; +use vit_servicing_station_lib_f10::v0::endpoints::proposals::ProposalVoteplanIdAndIndexes; +#[test] +pub fn get_proposals_by_voteplan_id_and_index() { + let temp_dir = TempDir::new().unwrap().into_persistent(); + let snapshot = multivoteplan_snapshot(); + + let db_path = DbBuilder::new() + .with_snapshot(&snapshot) + .build(&temp_dir) + .unwrap(); + + let server = ServerBootstrapper::new() + .with_db_path(db_path.to_str().unwrap()) + .start(&temp_dir) + .unwrap(); + + let rest_client = server.rest_client_with_token(&snapshot.token_hash()); + let mut expected_proposals = rest_client.proposals().unwrap(); + + let vote_plan_id: String = snapshot.voteplans()[0].chain_voteplan_id.clone(); + let indexes: Vec = expected_proposals + .iter() + .filter(|x| x.chain_voteplan_id == vote_plan_id) + .map(|p| p.chain_proposal_index) + .collect(); + + expected_proposals = expected_proposals + .into_iter() + .filter(|x| x.chain_voteplan_id == vote_plan_id) + .filter(|x| indexes.contains(&x.chain_proposal_index)) + .collect(); + + let mut actual_proposals: Vec = rest_client + .proposals_by_voteplan_id_and_index(&[ProposalVoteplanIdAndIndexes { + vote_plan_id, + indexes, + }]) + .unwrap() + .into_iter() + .map(|proposal| proposal.proposal) + .collect(); + + expected_proposals.sort_by(|a, b| a.internal_id.cmp(&b.internal_id)); + actual_proposals.sort_by(|a, b| a.internal_id.cmp(&b.internal_id)); + assert_eq!(actual_proposals, expected_proposals); +} diff --git a/src/vit-testing/valgrind/src/bin/valgrind.rs b/src/vit-testing/valgrind/src/bin/valgrind.rs index edc149ed85..0574a30e43 100644 --- a/src/vit-testing/valgrind/src/bin/valgrind.rs +++ b/src/vit-testing/valgrind/src/bin/valgrind.rs @@ -75,7 +75,7 @@ async fn main() { let block0_content = server_stub.block0(); - let block0 = warp::path!("block0").map(move || Ok(block0_content.clone())); + let block0 = warp::path!("block0").map(move || block0_content.clone()); root.and( proposals diff --git a/src/vit-testing/vitup/src/mode/mock/rest/mod.rs b/src/vit-testing/vitup/src/mode/mock/rest/mod.rs index f979f8d372..c5ed6f8376 100644 --- a/src/vit-testing/vitup/src/mode/mock/rest/mod.rs +++ b/src/vit-testing/vitup/src/mode/mock/rest/mod.rs @@ -225,7 +225,9 @@ pub async fn start_rest_server(context: ContextLock) -> Result<(), Error> { let span = span!(Level::INFO, "rest api call received"); let _enter = span.enter(); tracing::info!("get block0"); - Ok(context.read().unwrap().block0_bin()) + //unwrapping is ok because this is a test module + let context_result = context.read().unwrap(); + context_result.block0_bin() }) .with(warp::reply::with::headers(default_headers()));

sS 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