From 9bf6597c21063a48e05e98f3865d0d814097e7c4 Mon Sep 17 00:00:00 2001 From: rodinux Date: Sun, 15 Jan 2023 00:02:05 +0100 Subject: [PATCH] new source for paheko replacing garradin --- .github/ISSUE_TEMPLATE.md | 55 ++++ .github/PULL_REQUEST_TEMPLATE.md | 16 ++ .github/workflows/updater.sh | 101 ++++++++ .github/workflows/updater.yml | 49 ++++ README.md | 62 +++++ README_fr.md | 62 +++++ check_process | 23 ++ conf/app.src | 7 + conf/config.local.php | 9 + conf/config.local.user.php | 13 + conf/config.local.yunohost.php | 65 +++++ conf/nginx.conf | 29 +++ conf/php-fpm.conf | 430 +++++++++++++++++++++++++++++++ doc/DESCRIPTION.md | 14 + doc/DESCRIPTION_fr.md | 10 + doc/DISCLAIMER.md | 0 doc/DISCLAIMER_fr.md | 0 doc/screenshots/screenshot.png | Bin 0 -> 181150 bytes manifest.json | 54 ++++ scripts/_common.sh | 26 ++ scripts/backup | 58 +++++ scripts/change_url | 123 +++++++++ scripts/install | 146 +++++++++++ scripts/remove | 70 +++++ scripts/restore | 106 ++++++++ scripts/upgrade | 161 ++++++++++++ 26 files changed, 1689 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE.md create mode 100644 .github/PULL_REQUEST_TEMPLATE.md create mode 100644 .github/workflows/updater.sh create mode 100644 .github/workflows/updater.yml create mode 100644 README.md create mode 100644 README_fr.md create mode 100644 check_process create mode 100644 conf/app.src create mode 100644 conf/config.local.php create mode 100644 conf/config.local.user.php create mode 100644 conf/config.local.yunohost.php create mode 100644 conf/nginx.conf create mode 100644 conf/php-fpm.conf create mode 100644 doc/DESCRIPTION.md create mode 100644 doc/DESCRIPTION_fr.md create mode 100644 doc/DISCLAIMER.md create mode 100644 doc/DISCLAIMER_fr.md create mode 100644 doc/screenshots/screenshot.png create mode 100644 manifest.json create mode 100644 scripts/_common.sh create mode 100644 scripts/backup create mode 100644 scripts/change_url create mode 100644 scripts/install create mode 100644 scripts/remove create mode 100644 scripts/restore create mode 100644 scripts/upgrade diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md new file mode 100644 index 0000000..2729a6b --- /dev/null +++ b/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,55 @@ +--- +name: Bug report +about: When creating a bug report, please use the following template to provide all the relevant information and help debugging efficiently. + +--- + +**How to post a meaningful bug report** +1. *Read this whole template first.* +2. *Determine if you are on the right place:* + - *If you were performing an action on the app from the webadmin or the CLI (install, update, backup, restore, change_url...), you are on the right place!* + - *Otherwise, the issue may be due to the app itself. Refer to its documentation or repository for help.* + - *When in doubt, post here and we will figure it out together.* +3. *Delete the italic comments as you write over them below, and remove this guide.* +--- + +### Describe the bug + +*A clear and concise description of what the bug is.* + +### Context + +- Hardware: *VPS bought online / Old laptop or computer / Raspberry Pi at home / Internet Cube with VPN / Other ARM board / ...* +- YunoHost version: x.x.x +- I have access to my server: *Through SSH | through the webadmin | direct access via keyboard / screen | ...* +- Are you in a special context or did you perform some particular tweaking on your YunoHost instance?: *no / yes* + - If yes, please explain: +- Using, or trying to install package version/branch: +- If upgrading, current package version: *can be found in the admin, or with `yunohost app info $app_id`* + +### Steps to reproduce + +- *If you performed a command from the CLI, the command itself is enough. For example:* + ```sh + sudo yunohost app install the_app + ``` +- *If you used the webadmin, please perform the equivalent command from the CLI first.* +- *If the error occurs in your browser, explain what you did:* + 1. *Go to '...'* + 2. *Click on '...'* + 3. *Scroll down to '...'* + 4. *See error* + +### Expected behavior + +*A clear and concise description of what you expected to happen. You can remove this section if the command above is enough to understand your intent.* + +### Logs + +*When an operation fails, YunoHost provides a simple way to share the logs.* +- *In the webadmin, the error message contains a link to the relevant log page. On that page, you will be able to 'Share with Yunopaste'. If you missed it, the logs of previous operations are also available under Tools > Logs.* +- *In command line, the command to share the logs is displayed at the end of the operation and looks like `yunohost log display [log name] --share`. If you missed it, you can find the log ID of a previous operation using `yunohost log list`.* + +*After sharing the log, please copypaste directly the link provided by YunoHost (to help readability, no need to copypaste the entire content of the log here, just the link is enough...)* + +*If applicable and useful, add screenshots to help explain your problem.* diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..ef70e18 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,16 @@ +## Problem + +- *Description of why you made this PR* + +## Solution + +- *And how do you fix that problem* + +## PR Status + +- [ ] Code finished and ready to be reviewed/tested +- [ ] The fix/enhancement were manually tested (if applicable) + +## Automatic tests + +Automatic tests can be triggered on https://ci-apps-dev.yunohost.org/ *after creating the PR*, by commenting "!testme", "!gogogadgetoci" or "By the power of systemd, I invoke The Great App CI to test this Pull Request!". (N.B. : for this to work you need to be a member of the Yunohost-Apps organization) diff --git a/.github/workflows/updater.sh b/.github/workflows/updater.sh new file mode 100644 index 0000000..0389773 --- /dev/null +++ b/.github/workflows/updater.sh @@ -0,0 +1,101 @@ +#!/bin/bash + +#================================================= +# PACKAGE UPDATING HELPER +#================================================= + +# This script is meant to be run by GitHub Actions +# The YunoHost-Apps organisation offers a template Action to run this script periodically +# Since each app is different, maintainers can adapt its contents so as to perform +# automatic actions when a new upstream release is detected. + +#================================================= +# FETCHING LATEST RELEASE AND ITS ASSETS +#================================================= + +# Fetching information +current_version=$(cat manifest.json | jq -j '.version|split("~")[0]') +# Some jq magic is needed, because the latest upstream release is not always the latest version (e.g. security patches for older versions) +file=$(curl --silent "https://fossil.kd2.org/paheko/juvlist" | jq -r '.[] | select( .name | contains("paheko") and contains(".tar.gz") ) | select( .name | contains(".deb") or contains(".asc") or contains("beta") or contains("alpha") | not ) | .name' | sort -V | tail -1) +assets="https://fossil.kd2.org/paheko/uv/$file" + +version=$(echo ${file/.tar.gz} | cut -d "-" -f2) + +# Setting up the environment variables +echo "Current version: $current_version" +echo "Latest release from upstream: $version" +echo "VERSION=$version" >> $GITHUB_ENV +echo "REPO=$repo" >> $GITHUB_ENV +# For the time being, let's assume the script will fail +echo "PROCEED=false" >> $GITHUB_ENV + +# Proceed only if the retrieved version is greater than the current one +if ! dpkg --compare-versions "$current_version" "lt" "$version" ; then + echo "::warning ::No new version available" + exit 0 +# Proceed only if a PR for this new version does not already exist +elif git ls-remote -q --exit-code --heads https://github.com/$GITHUB_REPOSITORY.git ci-auto-update-v$version ; then + echo "::warning ::A branch already exists for this update" + exit 0 +fi + +#================================================= +# UPDATE SOURCE FILES +#================================================= + +# Let's download source tarball +asset_url=$assets + +echo "Handling asset at $asset_url" + +src="app" + +# Create the temporary directory +tempdir="$(mktemp -d)" + +# Download sources and calculate checksum +filename=${asset_url##*/} +curl --silent -4 -L $asset_url -o "$tempdir/$filename" +checksum=$(sha256sum "$tempdir/$filename" | head -c 64) + +# Delete temporary directory +rm -rf $tempdir + +# Get extension +if [[ $filename == *.tar.gz ]]; then + extension=tar.gz +else + extension=${filename##*.} +fi + +# Rewrite source file +cat < conf/$src.src +SOURCE_URL=$asset_url +SOURCE_SUM=$checksum +SOURCE_SUM_PRG=sha256sum +SOURCE_FORMAT=$extension +SOURCE_IN_SUBDIR=true +SOURCE_FILENAME= +SOURCE_EXTRACT=true +EOT +echo "... conf/$src.src updated" + +#================================================= +# SPECIFIC UPDATE STEPS +#================================================= + +# Any action on the app's source code can be done. +# The GitHub Action workflow takes care of committing all changes after this script ends. + +#================================================= +# GENERIC FINALIZATION +#================================================= + +# Replace new version in manifest +echo "$(jq -s --indent 4 ".[] | .version = \"$version~ynh1\"" manifest.json)" > manifest.json + +# No need to update the README, yunohost-bot takes care of it + +# The Action will proceed only if the PROCEED environment variable is set to true +echo "PROCEED=true" >> $GITHUB_ENV +exit 0 diff --git a/.github/workflows/updater.yml b/.github/workflows/updater.yml new file mode 100644 index 0000000..fb72ba0 --- /dev/null +++ b/.github/workflows/updater.yml @@ -0,0 +1,49 @@ +# This workflow allows GitHub Actions to automagically update your app whenever a new upstream release is detected. +# You need to enable Actions in your repository settings, and fetch this Action from the YunoHost-Apps organization. +# This file should be enough by itself, but feel free to tune it to your needs. +# It calls updater.sh, which is where you should put the app-specific update steps. +name: Check for new upstream releases +on: + # Allow to manually trigger the workflow + workflow_dispatch: + # Run it every day at 6:00 UTC + schedule: + - cron: '0 6 * * *' +jobs: + updater: + runs-on: ubuntu-latest + steps: + - name: Fetch the source code + uses: actions/checkout@v2 + with: + token: ${{ secrets.GITHUB_TOKEN }} + - name: Run the updater script + id: run_updater + run: | + # Setting up Git user + git config --global user.name 'yunohost-bot' + git config --global user.email 'yunohost-bot@users.noreply.github.com' + # Run the updater script + /bin/bash .github/workflows/updater.sh + - name: Commit changes + id: commit + if: ${{ env.PROCEED == 'true' }} + run: | + git commit -am "Upgrade to v$VERSION" + - name: Create Pull Request + id: cpr + if: ${{ env.PROCEED == 'true' }} + uses: peter-evans/create-pull-request@v3 + with: + token: ${{ secrets.GITHUB_TOKEN }} + commit-message: Update to version ${{ env.VERSION }} + committer: 'yunohost-bot ' + author: 'yunohost-bot ' + signoff: false + base: testing + branch: ci-auto-update-v${{ env.VERSION }} + delete-branch: true + title: 'Upgrade to version ${{ env.VERSION }}' + body: | + Upgrade to v${{ env.VERSION }} + draft: false diff --git a/README.md b/README.md new file mode 100644 index 0000000..ee3e6d4 --- /dev/null +++ b/README.md @@ -0,0 +1,62 @@ + + +# Garradin for YunoHost + +[![Integration level](https://dash.yunohost.org/integration/garradin.svg)](https://dash.yunohost.org/appci/app/garradin) ![Working status](https://ci-apps.yunohost.org/ci/badges/garradin.status.svg) ![Maintenance status](https://ci-apps.yunohost.org/ci/badges/garradin.maintain.svg) +[![Install Garradin with YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=garradin) + +*[Lire ce readme en français.](./README_fr.md)* + +> *This package allows you to install Garradin quickly and simply on a YunoHost server. +If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/install) to learn how to install it.* + +## Overview + +Garradin (word meaning money in an aboriginal dialect of northern Australia, pronounced "gar-a-dine" em) is software for associative management. It is the tool of choice for managing an association, a sports club, an NGO, etc. It is designed to meet the needs of a small to medium-sized structure: management of members, accounting, website, note-taking in meetings, archiving and sharing of the association's operating documents, discussion between members, etc. etc. . + +## Garradin becomes Paheko! +### Why change your name? + +It appeared that the pronunciation of "Garradin" in French is sometimes a bit complicated, as is its spelling. + +There is already a commercial software called "Garradin" in Australia, which does finance for large groups. For the moment this was not a problem because our association management solution was only available in French and until then did not have much scope. But we would like to be able to offer the software in other languages in the years to come, and as Garradin (the French project) is starting to be quite well known, it seems necessary to limit the risk of confusion in the future with this commercial solution. + +### What will be the new name? + +We chose the name Paheko, a word from the Māori language meaning "to cooperate", illustrating the purpose of the software: to improve together the daily management of an association:) + +![Logo Paheko](https://master.garradin.eu/garradin-devient-paheko/logo_v3_small-fs8.png) + + +**Shipped version:** 1.2.4~ynh1 + +**Demo:** https://paheko.cloud/essai/ + +## Screenshots + +![Screenshot of Garradin](./doc/screenshots/screenshot.png) + +## Documentation and resources + +* Official app website: +* Official admin documentation: +* Upstream app code repository: +* YunoHost documentation for this app: +* Report a bug: + +## Developer info + +Please send your pull request to the [testing branch](https://github.com/YunoHost-Apps/garradin_ynh/tree/testing). + +To try the testing branch, please proceed like that. + +``` bash +sudo yunohost app install https://github.com/YunoHost-Apps/garradin_ynh/tree/testing --debug +or +sudo yunohost app upgrade garradin -u https://github.com/YunoHost-Apps/garradin_ynh/tree/testing --debug +``` + +**More info regarding app packaging:** diff --git a/README_fr.md b/README_fr.md new file mode 100644 index 0000000..aa65866 --- /dev/null +++ b/README_fr.md @@ -0,0 +1,62 @@ + + +# Garradin pour YunoHost + +[![Niveau d'intégration](https://dash.yunohost.org/integration/garradin.svg)](https://dash.yunohost.org/appci/app/garradin) ![Statut du fonctionnement](https://ci-apps.yunohost.org/ci/badges/garradin.status.svg) ![Statut de maintenance](https://ci-apps.yunohost.org/ci/badges/garradin.maintain.svg) +[![Installer Garradin avec YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=garradin) + +*[Read this readme in english.](./README.md)* + +> *Ce package vous permet d'installer Garradin rapidement et simplement sur un serveur YunoHost. +Si vous n'avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour savoir comment l'installer et en profiter.* + +## Vue d'ensemble + +Garradin (mot signifiant argent dans un dialecte aborigène du nord de l'Australie, prononcé « gar-a-dine »em) est un logiciel de gestion associative. Il est l'outil de prédilection pour gérer une association, un club sportif, une ONG, etc. Il est conçu pour répondre aux besoins d'une structure de petite à moyenne taille : gestion des adhérents, comptabilité, site web, prise de notes en réunion, archivage et partage des documents de fonctionnement de l'association, discussion entre adhérents, etc etc. + +## Garradin devient Paheko ! +### Pourquoi changer de nom ? + + Il est apparu que la prononciation de "Garradin" en français est parfois un peu compliquée, de même que son orthographe. + + Il existe déjà un logiciel commercial nommé "Garradin" en Australie, qui fait de la finance pour de grands groupes. Pour le moment cela ne posait pas de problème car notre solution de gestion d'association n'était disponible qu'en français et jusque là n'avait pas beaucoup de portée. Mais on aimerait bien pouvoir proposer le logiciel dans d'autres langues dans les années à venir, et comme Garradin (le projet français) commence à être assez connu, il semble nécessaire de limiter les risques de confusion à l'avenir avec cette solution commerciale. + +### Quel sera le nouveau nom ? + +Nous avons choisi le nom Paheko, un mot de la langue Māori qui signifie « coopérer », illustrant le but du logiciel : améliorer ensemble le quotidien de la gestion d'une association :) + +![Logo Paheko](https://master.garradin.eu/garradin-devient-paheko/logo_v3_small-fs8.png) + + +**Version incluse :** 1.2.4~ynh1 + +**Démo :** https://paheko.cloud/essai/ + +## Captures d'écran + +![Capture d'écran de Garradin](./doc/screenshots/screenshot.png) + +## Documentations et ressources + +* Site officiel de l'app : +* Documentation officielle de l'admin : +* Dépôt de code officiel de l'app : +* Documentation YunoHost pour cette app : +* Signaler un bug : + +## Informations pour les développeurs + +Merci de faire vos pull request sur la [branche testing](https://github.com/YunoHost-Apps/garradin_ynh/tree/testing). + +Pour essayer la branche testing, procédez comme suit. + +``` bash +sudo yunohost app install https://github.com/YunoHost-Apps/garradin_ynh/tree/testing --debug +ou +sudo yunohost app upgrade garradin -u https://github.com/YunoHost-Apps/garradin_ynh/tree/testing --debug +``` + +**Plus d'infos sur le packaging d'applications :** diff --git a/check_process b/check_process new file mode 100644 index 0000000..7339701 --- /dev/null +++ b/check_process @@ -0,0 +1,23 @@ +; Test complet + ; Manifest + domain="domain.tld" + path="/path" + is_public=1 + ; Checks + pkg_linter=1 + setup_sub_dir=1 + setup_root=1 + setup_nourl=0 + setup_private=1 + setup_public=1 + upgrade=1 + backup_restore=1 + multi_instance=1 + change_url=1 +;;; Options +Email= +Notification=none +;;; Upgrade options + ; commit=7205455e0a806a49c48c6d2f005d80d1b74a3355 + name=Previous version + manifest_arg=domain=DOMAIN&path=PATH&admin=USER&language=fr&is_public=1&password=pass&port=666& diff --git a/conf/app.src b/conf/app.src new file mode 100644 index 0000000..3d5fb91 --- /dev/null +++ b/conf/app.src @@ -0,0 +1,7 @@ +SOURCE_URL=https://fossil.kd2.org/paheko/uv/paheko-1.2.4.tar.gz +SOURCE_SUM=50f0bfe9c05d2ee1664cbb0440602bdca576f23144e85fa5f9e27feeff36494c +SOURCE_SUM_PRG=sha256sum +SOURCE_FORMAT=tar.gz +SOURCE_IN_SUBDIR=true +SOURCE_FILENAME= +SOURCE_EXTRACT=true diff --git a/conf/config.local.php b/conf/config.local.php new file mode 100644 index 0000000..e9b8a71 --- /dev/null +++ b/conf/config.local.php @@ -0,0 +1,9 @@ +}t tag +; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t +; %T: time the log has been written (the request has finished) +; it can accept a strftime(3) format: +; %d/%b/%Y:%H:%M:%S %z (default) +; The strftime(3) format must be encapsuled in a %{}t tag +; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t +; %u: remote user +; +; Default: "%R - %u %t \"%m %r\" %s" +;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" + +; The log file for slow requests +; Default Value: not set +; Note: slowlog is mandatory if request_slowlog_timeout is set +slowlog = /var/log/nginx/__NAMETOCHANGE__.slow.log + +; The timeout for serving a single request after which a PHP backtrace will be +; dumped to the 'slowlog' file. A value of '0s' means 'off'. +; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) +; Default Value: 0 +request_slowlog_timeout = 5s + +; The timeout for serving a single request after which the worker process will +; be killed. This option should be used when the 'max_execution_time' ini option +; does not stop script execution for some reason. A value of '0' means 'off'. +; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) +; Default Value: 0 +request_terminate_timeout = 1d + +; Set open file descriptor rlimit. +; Default Value: system defined value +;rlimit_files = 1024 + +; Set max core size rlimit. +; Possible Values: 'unlimited' or an integer greater or equal to 0 +; Default Value: system defined value +;rlimit_core = 0 + +; Chroot to this directory at the start. This value must be defined as an +; absolute path. When this value is not set, chroot is not used. +; Note: you can prefix with '$prefix' to chroot to the pool prefix or one +; of its subdirectories. If the pool prefix is not set, the global prefix +; will be used instead. +; Note: chrooting is a great security feature and should be used whenever +; possible. However, all PHP paths will be relative to the chroot +; (error_log, sessions.save_path, ...). +; Default Value: not set +;chroot = + +; Chdir to this directory at the start. +; Note: relative path can be used. +; Default Value: current directory or / when chroot +chdir = __FINALPATH__ + +; Redirect worker stdout and stderr into main error log. If not set, stdout and +; stderr will be redirected to /dev/null according to FastCGI specs. +; Note: on highloaded environement, this can cause some delay in the page +; process time (several ms). +; Default Value: no +catch_workers_output = yes + +; Clear environment in FPM workers +; Prevents arbitrary environment variables from reaching FPM worker processes +; by clearing the environment in workers before env vars specified in this +; pool configuration are added. +; Setting to "no" will make all environment variables available to PHP code +; via getenv(), $_ENV and $_SERVER. +; Default Value: yes +;clear_env = no + +; Limits the extensions of the main script FPM will allow to parse. This can +; prevent configuration mistakes on the web server side. You should only limit +; FPM to .php extensions to prevent malicious users to use other extensions to +; execute php code. +; Note: set an empty value to allow all extensions. +; Default Value: .php +;security.limit_extensions = .php .php3 .php4 .php5 .php7 + +; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from +; the current environment. +; Default Value: clean env +;env[HOSTNAME] = $HOSTNAME +;env[PATH] = /usr/local/bin:/usr/bin:/bin +;env[TMP] = /tmp +;env[TMPDIR] = /tmp +;env[TEMP] = /tmp + +; Additional php.ini defines, specific to this pool of workers. These settings +; overwrite the values previously defined in the php.ini. The directives are the +; same as the PHP SAPI: +; php_value/php_flag - you can set classic ini defines which can +; be overwritten from PHP call 'ini_set'. +; php_admin_value/php_admin_flag - these directives won't be overwritten by +; PHP call 'ini_set' +; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. + +; Defining 'extension' will load the corresponding shared extension from +; extension_dir. Defining 'disable_functions' or 'disable_classes' will not +; overwrite previously defined php.ini values, but will append the new value +; instead. + +; Note: path INI options can be relative and will be expanded with the prefix +; (pool, global or /usr) + +; Default Value: nothing is defined by default except the values in php.ini and +; specified at startup with the -d argument +;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com +;php_flag[display_errors] = off +;php_admin_value[error_log] = /var/log/fpm-php.www.log +;php_admin_flag[log_errors] = on +;php_admin_value[memory_limit] = 32M + +; Common values to change to increase file upload limit +; php_admin_value[upload_max_filesize] = 50M +; php_admin_value[post_max_size] = 50M +; php_admin_flag[mail.add_x_header] = Off + +; Other common parameters +; php_admin_value[max_execution_time] = 600 +; php_admin_value[max_input_time] = 300 +; php_admin_value[memory_limit] = 256M +; php_admin_flag[short_open_tag] = On diff --git a/doc/DESCRIPTION.md b/doc/DESCRIPTION.md new file mode 100644 index 0000000..4e77be9 --- /dev/null +++ b/doc/DESCRIPTION.md @@ -0,0 +1,14 @@ +## Paheko + +Paheko (we chose the name Paheko, a word from the Māori language meaning "to cooperate", illustrating the purpose of the software: to improve together the daily management of an association) is software for associative management. + +It is the tool of choice for managing an association, a sports club, an NGO, etc. It is designed to meet the needs of a small to medium-sized structure: management of members, accounting, website, note-taking in meetings, archiving and sharing of the association's operating documents, discussion between members, etc. etc. . + +## Garradin becomes Paheko! +### Why change your name? + +It appeared that the pronunciation of "Garradin" in French is sometimes a bit complicated, as is its spelling. + +There is already a commercial software called "Garradin" in Australia, which does finance for large groups. For the moment this was not a problem because our association management solution was only available in French and until then did not have much scope. But we would like to be able to offer the software in other languages in the years to come, and as Garradin (the French project) is starting to be quite well known, it seems necessary to limit the risk of confusion in the future with this commercial solution. + +![Logo Paheko](https://master.garradin.eu/garradin-devient-paheko/logo_v3_small-fs8.png) diff --git a/doc/DESCRIPTION_fr.md b/doc/DESCRIPTION_fr.md new file mode 100644 index 0000000..ff2bd73 --- /dev/null +++ b/doc/DESCRIPTION_fr.md @@ -0,0 +1,10 @@ +Paheko (Nous avons choisi le nom Paheko, un mot de la langue Māori qui signifie « coopérer », illustrant le but du logiciel : améliorer ensemble le quotidien de la gestion d'une association) est un logiciel de gestion associative. Il est l'outil de prédilection pour gérer une association, un club sportif, une ONG, etc. Il est conçu pour répondre aux besoins d'une structure de petite à moyenne taille : gestion des adhérents, comptabilité, site web, prise de notes en réunion, archivage et partage des documents de fonctionnement de l'association, discussion entre adhérents, etc etc. + +## Garradin devient Paheko ! +### Pourquoi changer de nom ? + + Il est apparu que la prononciation de "Garradin" en français est parfois un peu compliquée, de même que son orthographe. + + Il existe déjà un logiciel commercial nommé "Garradin" en Australie, qui fait de la finance pour de grands groupes. Pour le moment cela ne posait pas de problème car notre solution de gestion d'association n'était disponible qu'en français et jusque là n'avait pas beaucoup de portée. Mais on aimerait bien pouvoir proposer le logiciel dans d'autres langues dans les années à venir, et comme Garradin (le projet français) commence à être assez connu, il semble nécessaire de limiter les risques de confusion à l'avenir avec cette solution commerciale. + +![Logo Paheko](https://master.garradin.eu/garradin-devient-paheko/logo_v3_small-fs8.png) diff --git a/doc/DISCLAIMER.md b/doc/DISCLAIMER.md new file mode 100644 index 0000000..e69de29 diff --git a/doc/DISCLAIMER_fr.md b/doc/DISCLAIMER_fr.md new file mode 100644 index 0000000..e69de29 diff --git a/doc/screenshots/screenshot.png b/doc/screenshots/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..4983a9338d22a71eb036e1bd9846481fcfc1d09b GIT binary patch literal 181150 zcmeFYWmsKJwl0cWZ~_D;xVyW%LvUNb!rk315L|*w2oi$3yF<|6?iSqrERwIgzrJVR zeeQmqd;T@BV9uJOMvWT!R@LOAl7b`>0xkj=7#NbYl$Z(_7}PBo7=$1k45;P6)2svx z3(==R-xs%0Tm?H=wT5ynmY4Zo+ z`kn+y4vCAICEpdRg_5a|jj;EFu{{vIc#XWA8X(uErO5oCHyie=?A_sQS9^GzJ#jPJ zeDZzay%Lz*v>QveFKKW0$U=BT93!&y^=-PjDCcbPYZ|rN9~N?HduD2T$>qP$Ht<8d zl(Py_|GGMBm2-_tb-Rml%r4|t2Xy+reTdcP>)W>S5**+sv1;_x_RD|}`%69g1=NX~ zedqZy>L_c?4;rE zJVMq#o^*~73Hm*>$O>lpA(`8Tw~yfO9CE%q-L321HD=zlJE^np{xWmpHx)@UNcXfm zd+vJ!`yS=SCbhh)z2{`xm%Xhx*OQXkz;&T>*7=9Wq@%9$u#4MLn_yu&9rOLs8^P9W zfu&tbsxA&Vu zyG2`>s!XyCl^e|(XjOhIWZT8qs=WgA3!}?7eBeI)f`f25c zkH{@dXBW`uz*ZPyv5`#8Pj5^*OtIsKN3l*Koq8(cvqy!dr|^Q_HY7e8B?*MaN-JEY zrQf`DGdN7}%Yvzv5<}pAt0Kx8_Z_Z6S&&@avZyfDNQSyF-qP~hZmh8a_ijA2Z)-5R zEKOsgiY#qwD6Um;BNl2^-9ow@xV;>G{iLN;sT;-7rzH=!UFcR6!LD%9D88YhyeI+c zY#g&Rk7TVM*42#dT@aM&`oQUF^;KI{8Q$ZX3x?+7x`*7K3S4Jj6BN0xYNiCMc199r z4BDQ3XO?)ao=s&K>4>y8OY>X8>;n_NX2dZQ5#TTmfk7W7vFhl3TA^|oO10^#+0p{4 zI3}z14Hzzs7H$eS-lR6#d9X4+>v&w8jNs%S3&wHh{d{`w)V_1Xsik9-ZV}Xoqk>0M zgw<5z^tH*lsK)Y#FG`vl-Rj!5wMH24qq!NFaBexn$_!X~mov z-uA7l;}U=VwuEi0is8=>EJ=Jf2bE<`*1E>`EO`Lga{>96u56Z(hNb1*v*iA^)o+a!;MMHFzLTu- znfrY)ysIz{bYX#Nv>whg6UmbJL>WJpHH_;Ut$UctJ0aJ0sn>xL*o^Izk0J5KY;03S z$GYbi{uED8Sce|%`z+SFaIdv7v#@wZ1P-V*ZC6<8uJ}&11l_sO_bnHbZ}|CXHJ{B#oT%oz zct0@ik2L9y+7dRqeVywV7~Rm;rz;G$D3S~%W}T1u${Dv*4R2~DDJe2|?CO_?)t|c< z=(>>-y*r2C2W6Zf{JhkvM3x|*fpLvqi(V)7@us%|*qPX3!=&Su_>#pPADW80b+AHnS^GfC~=dMHA+ZbRJDllQEUcYX@Wwnq8(>P@>lKDOwr}+ z%&jb09>Seu1^TIUk6nQ;#^l6n>WfsgD*Wa8sHoW<-H9fId~h- zUXT>pk$u;1oa-=a+7Ie8Z6q?}BnYL%AfmdLl~RP6<+oAtz9+E>L}l;b=aB~)E_P6` z)wqWvOJ*x8!J<})bW7M#oDwccZrD&98g4i?3;AQ-J4GL1noY{Aa=uS-7_C>v9s-UO zH{mu<78x69jt4TFjgBV@;66~mY@dutslm3OqmWHO#5{iKX`xq%>Hy~E?`2PH2Dr%T z50Dhuv)YO-bE7p@LK{*kq4{U`x%$M<@u_rD|L3QNQaNopyH-7+4}L4)e(bCdCqcp+3$v6dih> zTxlroj(mJjRv-J#q=`)>DXU6Y&&3Y*fu4NIjtxwoQ>;MDH6W-uWg<=Q+Z6oW+N_kWqH2E%Sc~9H z?9fg(4Kme&J$g0;<%?cnexWLae`LIV#?Q@=&dUXlekaaXNog5A5Z^DKZ2WWB3(we& zGo9UxRCBYc%CSiDO|yGfjPpk)=!qs#)7+pTOVy39S7*#}DIb_%z%di1igDsre>#7hMI-|l++OAc)>Uz zBE`MsbbjaGb|W+;HQ4>D=3tK(7Hp2=01Fu5C~gDmY}+8NAj?E4waMCN$(0)|X2Qqj z!{HGeF&dEcc(CWBD~kNkFj^5VA=aw?aT)B2%CG|wnop=ZWUQfsjkXGZ#Fn znPQxuXNp`9r(pyRuaN}NP0ufsJhYO#g30sMSy~{X%r!9CgU62D9eN;ev7W%*8!bo| zcYD`(`1}}peDCfK_9!Z9+u*{MNdO^_>c3osyoE6oKLJdaSRgczaP%iy6N~WbH5N8{ zi{Y{Swa1WI6Mt_sc`BzRoKuA3izce?E&8qQ-I)hPFx+_Gb&l&Esx}tor8zUE1cP0n z!;VOw>}uDR0}H*P0+Z|6VT%k)?o`(~#)Cg~ijb6@n!>fzl7C5n8jZaHKyigl$dHL0 z@V=n96j5JFf2jc%Ds5lMR3FK^tEfqdjBUcQKuD*B{<5pf|9wkz8i2u@ZYaVvNG@v>r5|>mVF%F_uCA;*|2P;Y>@8wONu0Vw`RzQNWqvkLTXw!4_FG;A#XL;N^a5PSSJL@#WAUQO zgq!#Zq&Y09B-C809I%^4iB`1}{kLS3mMYhpta1QI)B~HyZ3_bQtm>#s#-^{a_Fx|i z3bLuX0wZ$jq-f(Rdt)0R8oTcR5-4>6J4xh3r??+FPTLJ|Q6Kb|^wIz}ew;mShT|%u zsF|mu`Z1m#(eO-BWXopgeZ39fy$g}c>-VI7O;R!5=|;H>>AH{Em=kp5{%9C)3q*uk zf<~fDnA&!6!8(`o(n!Xwa@^)}8S-xlsmX+XTzpGKsyXx)RW#n8#|GA}Ya-Duv6jfn zY8t0?e~KVMMtnC=3}Eb(nTppPmMONd>DsaCOLr)lp7UWmNq)!K|62{ysP%+bEyHtg zQ7ADC3yg<(m~_q9^~X%9Y{a#!_cG$v8bwJoU?^!F#lT0a8Q~GCNJ5buC6e#SA9u7w z0|}Vdjd#kqs2qjx$#C)FAp*GRClQ*u(N0vTwP_$O6$u0@)?I=r1EJElowp(gDZzgL z;HfMtSm%)A;|(?U*W~}MP zUQ@w)4iTXID!=CJ6R}>8WakN`k_D@K@NK9#r(qoZ^bJhgL|4&I@r`dVh|ojWYNqmU zf<9Rq(_F?Kx{Fj8^&+L*1(2EUhYJTo927?G>U6nz$wmgI%#}tAQ%t0A{ZcnXTgJ`W%U<7?nNFmk--(`kW!bNDoEfCs1S?9&bV~o_OyQG zBXbW~uwr?v$&2Q&K%-*Q%$xyme3Y6aTs#RqtJ`FzcY4Df`+>k1k0`|_?AM{A0j26T zp=>MmaKToUpqolkzQ$?yE>1YIr9e>oG4#Y8bIhH<#E&00-<~ZCX8HQ~VN=R2+HCg- z`*=*~j?@_Sjb%Es93>=A?#uAL?|%(00=vMcL1PXp9Ym%Pxc#7McWBtjQcrAt(V)Ds zCo7~vB8J1!ApoJq=J4e~XVfXMxXl5eq z%?Dn|G^$2AdFYv68~mAKtVY}Z(nYA$HD8+@;q^w`Bgl|#iGD`Am%zK?q}ki(t=NRU zqZ)WDn$G#86jTu^Nw=IA;fOv-gzqpCelKRB6)Sze(m7(fS>({sW7qjJ#q1t4Yl|S! zPePMncCsclb-*0k9}L*=1N!}%wWljsR`p|qLhS5=p>^UTXZ3IzngH%Y`Ei#+@kEBV?QO9zSJEo6-g-|xfM zM3L;3_cM8412rrKHU6OzEgW%@K$(jSCq-15bnfJgbCP?tj}kj^a^D|9#hWWw{Sy@7 zx>#qKriwl9Rjws(>z^fogJ;LH^%~moM!r$ zD1CP5{@$e~$~UpZBr^vlU^aawkUKqT)i^~9IK=H*)(M~Z7qCbnP{;O3X~OI(rYx1I zroyJdPe+OlmA-w0R}ZMQ$dAUz5${um;W^u_-~Vv#k8oLMm#G0xQz{w!!2bc;0SR?w zC^sCxnPCvI0jBd}AfPPHnO z1YhHeLZ$w=!iXCsn^tad2VWNDIU($Xi>xDAGmSV2`X1_8rz6i&98mtUc9fli%KLE= zs6B}gN1a0Z;e6Eqt=LMOo1uoRMKsYU_e3)BtH`P0QC@eTF)wEyT6SP^kF&6YbQRLj zaV(>}sE-VNP6d3+EWg6+5y9}53l<9eUImPLR@NazO0q%$X|ylr7^G&5GD{VQQ?Q9`{Yj`@sXkfWdwz?#r~5HlGIbt**8QQJ_jODPgYe|7la^&y3N9=t3H zuy?4?%jHQ#9TPbQJE`T*fE#^&xi|R@lHf?mjSrdOdlT|m$5I<*Q$R~f#7IY*Vz4u; zt!`9Zcu>(suy}>lT?Q$9FC-kBi>}ZyUOYI)B#Orh+&$1Vq~{n2vp-C@v@LH>sjHM@ ztM{|si$Uy*UfN>4gCdKyX=Rg}(8$E|^yT~Ys6>&G7!ka<6N>-W2M9|0`@iecAA}~MHZ$|j_h!l@rB%TmtZ$%mgpEWp0wtG&r~*iKal%d z0aLQ(wIM?*JQeU<9D68e??t}iI#xNs9O`4k@$eNgOtrT6UhR1|v}5J)$Y2i2Ca}@C z=8U^QM??A^6J=G$?jl_C-N?LacCy9xC7AS%{^$x-0>`HUIOIb_<-T_gMn>`aY132u z&ddTU@F&HNlUH1tEeB#SSWAr50*ZKKxzGyd_IIVRCe?Ss5`@@s-%L_)n>E|Tglyu6 znQQKygk^LN4z?8WgykSoOuU1>TDVJm(z;oOQyOHMqM~9X6Kg#t9upa4ZH-NZdQWEf zjlt}D0?s|A(%5`v$TUQ-G8VWc*P!`ykz0J?ut1e^v!xV-(3`aqz>k(np~@d#s!^ug z0fe)SSN!m|-7|EKtxGkz_AxRfemkmt$L;1hKaD68j`gb++L+Y|{UWH6>$W_g5SxZN zA|}1vNR~s}3cG@GGWhjUnGuxk@GZUcnxwbt;DQ)(8sF1MH?cm5EtIMRYORTQ1Qj$8 z{i0q0H>|(tKU!<8G^VFJJ;J72{^~+!<%J`=TiLE4Rt_!jNmun2p1f3s| z?d{=ONv^+73x+@D(%@Y$j~;WiNs^T!xCd6?gPEjKjjQXQRb^>55?b5r?QmHIMfewo>hZD?ku|yAi8M zQDU<+YMjP{3f)KP&0#n$oWh}{Fsw|X2ERH{DNX)L?)z^sdjcBf281pLl5XEIDRq+t zK7E5MDwkz-w32r7#G7nzb2A|74NkCZGWSz(aOD$ww`6a z$VGdko*@iFN%Z?&!!+WRrU&sz5I*pQ31CXEyDb9*Z-R*BL)XhIyKfZra{2aL0X zleII;zKE&M;h;ep=4MY6t?0V~7V@lAWZXMM8kWJnB<}L#V8s?rdxxQ_lowU|V z8<8T;96~drH#ZX&C#CrF3sZ6ddW~$DjsriqE&kyWcd3AVM0j6jq7GjsA{|_^n8a%R zWC8RF5^kh7FYe*66hvK2C0`|UV7gR;sbaY+mcdc0{4t@mJkJixJy_l2r>VQGei1AM zxbf@+N*3F%3is+99^Q-S-|ZjnI+7a4)}5U7sg_51&n^tIZtJefA|EJm1zimV)B%E< zdDZTMj=|YqNo%N4niHX_dFs@*9oUMh$0R3X)6AvnuRPSln+uCX8;f`!N_b;n+Fc#m znjgTTHl+5JHc&PShBny+ov&jHK335uN~PUbc=~c+Q>prp!MCx!z+yvBO3(Uc*n@$A zhggV;DoKlq{^LLdbPST=6UQ&rt@JiTQ8k~W78wi8VL&O9E*#6@C(YYjks?fO7bcH= zA~p*t6p3u;nK?X>KPWwlLu*(O{QnlD8KHnp;SDIs#Qa71WG9 zt&F)%NCX8C_}qCw3~YeT0AhC=Yg;ECcYc!Je0f0Eug#1k#J@?Lt@uea<&}sjwYr&Dq<3Uu>jrilbAa@+w(9oy1BVAxUn+WIhrvtb8~Yu zGO;kSu+W1j=$$-lodNFjwoat4EdKBi13DQyTG%^V*x3@l@&p*!xj6Hakbs^O|HT~i z)L7gd)cDr`ulK*%J2{&$N`r3LK=T0+FtRW)anUoe(6ewe{=Glwsl5C@d)qqwrA3fF z8QlT)jLZy7j5ap^*2BqJ-1T4M{g*wQ)IbM?j4D7UI~PY|ptvj0)|vG0gW6lWIQ@N0 z7boCr({H)0O-vaPF3Y+?E@1O3~4UZ4DLf`EqmC;xw={)fJP%ko>VJYsgnF0X@1i}91Z z%FAP7XKZ1@^ZSyG%LHI#%EnD^%EZP-&&Cemq~~HXW~OI0Vly&kVrS+wWdr_=m9(vs zGr-mu_{s{zoWTObhl|UIm5alOncmct%ZMJtkd2<3odrk_Gy-sQ0XUe9fhK=vq3CD< ziUff5-=%tGWddRaWMVU6=VWE32NxtW;RjG4H8OY>?6 z9$_VEei9Z2rhm04Sp%F+?Hq0RN#rbSUEKfmK+VDisOk)ORT?t~CoAZinTwN?nUjNs z`CmlpKu0H#lfUw0W@2Dr`TfMim`4J{5dd;F3mbqLkkQ`O?DvCLv+#f>15zyDH8wz; zf476?!XxSk1UTC{s@d6D^OL;FO8m<5cSsTQ{S_=ca(2eQJN_mHn!Lu_UlAt)Fk}3E z%g6ZN5&v(TRL$+&Z2!OU`4{Owxd=NtyV*HfDLN_|Spton|9d|F74bhgsep2wle43T z^#5T}{|`F8Kkh08>TBod@wf3+fewG}{v;%8i{GjuCjOlScmT$K)b9jv1)BUe0Z5O3 z9vPbhY|Vh6Z2MQJ{iEIDzj9-M2@4k|J17XaO}Ih7*k2<7z(Q}#!fkA1Y{YHK$@a&< z|K#puXX@+*a0CjQfqVdDXHaPUwlgu+Z||f2cUj!bfgm5DWn$)GVj}rtUSdAR*M$0y z>G8d$9C>-3zbk<6H6`&#zj~gki@m+I1<>)|74r{A`G2ANTmQeD^8eKR?__^^i`vty%eiT-zzKWh0~-2ut`rwvrkK;@C~pY`!Cw|I@5 z|BGLLx!eE65kRc}Gsyo)zyDF!f7JCq(!l?S_&?tDA9ekYH1Izn{*QP4|E4a4f32{A zwjiMA23kLheiB>+t-WE4WF^IZufoCZM4SCUSMc^yT25eKZ!lgz;9zMP??8>P&eHPY zu)E;MSiFo$8#Kn`x^ri8JM(lBWzT;%W@GzBkmk}`Tf^L(8f?w zmZu3?Sv(vZXg)=Ft)EFmc!ZwcB`+3k!cV$V9fzR*{JHaPk8}3Zw*V8q6;lGX=v|{< z8{AYv)FDJrJ#s-f1gQlZS>^1D)!aii$J3la>muNSJIQkqy^E-r?}64Dd1X`G>w_PW^JDQR0pZZiuOy;7A@BP;`C)_3$ZVR<@m z7uxOoO_VkFl9*Q%jh@i|ko+2og6uTPWt_XMeW{ za{L*WzM5^b=vWKJl7|`m2h1=dTKq90w{(ImQ8pA_LSqSvDYd0HHKvCHaM8PfG*g%3 z($Q~8aLQ;HZn|e+ki9|-D7Y+j;oe>(NnY|+dN)_D6psXj2Lc)-m+=4a`CnY>53u70 zZeS@g%FcQ#?+CM$KGF%<@ra76AjncvUVz~fHmd|S@_)|X<1x;D*RPG3zTrt&j)cro zU7g^}CoJTX-SRQQr*=_rRwdTa`Y2+C6At|C0whuefsc zC02QiZYJCwfj{a7+z4e6g=F46lD2TyyuGyyp&MozOpdU|AQ%4;N`%s#yM2#()S^qQb_Zd3zWwh$RTOM}!NJ!<+Pl)B=OmI7Nc2jCxs} z?q}TL7#zJOl(0WcRX$0hQEL3I!ruB)bZ^SkbP%ApxZ6fDGngu5y5RD1Z~LVybhvGZ zok&3A*i+aY!=5jOv|M+TsQr4(*tb4}Bx~2hJxg-J!F?l1L+j;y*sG_BE`#^8@k%A* zpgaC>Rd}xv$@w2U{4yQ5$g8N%@(bpSalrS+onjhDinJ!gHDYmSmZ6?>NEf0dPT7FW z=u?XDZv3gXB-^*)yucBFJf(Z28F+L@SGF6&d#;q*p;Q@eqwQR%s#zet6am1I_%QH2 z!+yI3vJ@U7yNYP-PC&d+u1vSD{K$thIttFkg+*VFK;mDz z8_Cn>2E4SR{9_ld(o;7u3@dQ?#%O-7^}A91@S>@8x(P|2 zQrm!`z*qypR87HFqctI6pHN(Qe|RcIEqN~(5Bft3F)KV}7B~br`pW`JKJ>G7E|R;b@}tqc17sqUx;9;Qz~eS#slLr$Q;V`?nno3|-QVaJ31~;BeFa^G z-bH0*4hR@CAqA!CWkP9d^tNWktt=Abf(3!zI+y6M-=Bh1fMl-m=-#T)9K!H~6e=UqVO>o#Y z`vba_;(;nZTuWW;0I!L-7KY$clbUOCgT|q!v}W?96lyTPKY1ip90AU}#b#;KA;a_7 z=XSa`w13s-E@U)D-lfwM&Wk0d7rU7I{>R;{2S44H6V9^*t0%jCz5}SX2z?W(5bRGU zOR_z5*T=`g)a(m#%G4W`GMc?=@VrYF`3@vE`r;#1h(Tp)2!bjXmLXLYc82mO!kEbc zsiDGsb@TOZFxAaX`xQq7I<Nl|kU$}|5uGB{P_Q`A?S8hy%|5UqR zi~a;ffk9zdf*#OE%*~Cn+H9=snGYw+^MIPecBw(sNvqkFzA)RD=NXCyld_9_R=4~4 z;bcq{g}-KM=CJsC*~a-WqurfvuF_hfs=|8P!*TlMT=vW3ZsT#&q3e9D0utiM#0MUf zr-O<5%i9mbvqcyT&h0ih_?FGaAk?rt9c4kqx7z*PTgY{&7cr!mc-&pt!e*PIQVwH^ z=`?7j^~n;trZ}B39*_4IS?1u|RF#iayYY;l9rzjPu&sF1$>`Ex;As_>*t)n=C<;_G zLq7s>-Ua(SD$$^0%A1<7v=t0xkl1Z+KYcrv+=@5<{9 zs_Wck0?OHCU`?#k+2EU0ED+hUh}K}hC4RW$%8yhreQ{EzN-S=G`B0m|4F}qa8Y{Xc z_&Jv>zQkt#=syb!o4UL#%0eg!3*KbvV>$dOU3t-sV+*KuK0cuM4KyQj`5!IToi#=>?p$dY zkY^57Y`_Yxg`W6gce8nH<%Zohx4(EXwA>oCJ=neUF`hJ|tX?#1P0E71Z&dc*rlWZK zV?RHdjXv#3-c15OpFJSq-45k{RvFmk-r_%5UpOo`GcgHne;JV6+uvXBl}~rKKhoYX zes;)JqH}zf6zD?ndo*StAaG>=s0wCeU_{5N2^Z){h6ZpaB^F2V#K1BMxzKb8AE9k!hKoZw-4X8C0Shm!$X zSidFP9o_yC$*_UqcMAyyOW=$uc-x7>gc#I((w4qG{5daiV?B%rW^Mbk!44$REf{0l zElC)mCzasySqyl?{lWLUlb2^Zy5TS75gP7ANUtk~Pf7CeBdXuO! za`1};2W40hsk`H>RT8V?huQLSOVC3m$x&LB}zn>q4 zufwPP9#d9P0LQ=a;izBnq$!fU{fS<%@oMIjk#9KpEJ()|aAh0=SmY3ld{#N@%6{$< z^xMSayH8(b3-VadS)!CDd1VPowG4GOi|U+x zkRVa13o{@(Kq=U4rbMfoG={GW12i8Tvy9G}QXP-&B#nl(z&Gx<>tP;Sagw(~8f}w~ z3fOwiXm7CS*3zuXzG2*e2|Vp9R-697WoTG~ux&o#sIyxgea-p{wN_g7wgikVrw}m$ z_f+%N$!{22V!e(V!}^K*T4+xBZlqMWS-p_~sJ zJjXv>FUEjGj~(7_xESSa1O>@m7j~PHUVpjIk<}8&@k+F+Lw~#c^@0^xhUb3ry6x67-1p*Pw1OGrEk~OKCo@;qcp0)TbS<#bGuoZj z%5_{hy$x06lcq|jfaoEc!sO96dASV}m$a+w-xy|G{FJH{fhCpvVBd|4mBi#U9T2;T z!||i-5MyF#lT+sBKLXO;4Izq;6wBK=pQ$D}KN5Gqdz+d}&Q-n(1+ekY3R#6Z z-qq!gfWT^2;xI76M&|Hl-pv3^LANRx*6&UhjL@Jt*(kT8_2tUoZKQae-C`d=62H@d zGDGQ!|7;u*<#av9x8|NVmt_3Myq8^~3R!~m^ZA^y$9DebxjGv>4SiP})aN%wy}}JQ z0uQI76t2%GPtyj|Pmd#0icX8A_2=!NXl%^+<4+=xc$~IdbH*{yhJ*3s2{emOgNnXg zjCt*_F`qu2779LnjPc$g^}epo1}-Nu)jjRtBZ4sTOuE`ls%1@@Z7!1%_D-Q821M!8`Z z>pa#&uwTXYd)y?NcU$$@KRkpKIkV{wMWWNH3f829=>P$Q;f@Y4tC^DZd9&=&WJqiT z=xFYpcUc}gIBl2tjN+csN$SZZ|oZnSFBuoW-+ z>O0`KJ(L2S0i%+<`8`;$^HU;6}OxO4viIDT!zN^-zqhjQm z;vPO2Uc=>UC;d(PAay9@f)eRr#l_h&N_lV=aB}Ffp)$Z>5uob?G$lR zr;it7ik2BNE^BkU8etNv zRYf<-wfX75OIW_S8UfS6?$>>W&-J|bF7N6$uaiN_>=K?A%e&8hci0Rqry_*zYv7~2 zCwvTzTj-!n5-3%jlBQt4o9X7*35|UUDx>WD1*bDcKd%E9lZWfnN{vFL?I`4xTD2tW z@pNo0abQAKs0tW5ERfh73ZeZE9{_@Ut_Ekt9D}oUMz8A*3TACvY;*ZCwT-AafIc4n z+EswCKEb=S+N1T^??I3)0&G$*=`S;&-zW09{mhT$r|< zMcJW3ffL=2hut2#wGXGUTOCAmx*hB4``!V;vV89?UW;-x-?>!VX$WJ5$sjt1^;}0X zy$%=1v;pJfdme-$`N0Q0?{%C5t|x!sI0n=byabpepA1v%8|0BKAG2VBat6&)TP!;Fo0{hqkG3(ro05$(FZHvS))=PJK|0!4nt>jH9JU4@xrY_3k;&eAr1+!6KWsG)B`Dcb04gEGg5= z;(TT-npB@g^{gI=bM&O@Z8^;GLL>5; zSKpEs4eqxYFSf`0vZ_~Kd_l{B*BZW9@uOex44$LJU~FGDnaOE}ZuDh~QYYH&DT?zv zf6OPENY{-Z)WY%ZeES!>)l9?1bI;2y(MTqzB16ufo!s%{=xAgG!6)a*eYQ}5eK!&( z*y%Q-U+RX_ z-*!y(dz$qtJ{x zT4rYxF}{g;(L52YH!JDYqdbwI2o3{ggJ1?F;I-<}tSAYKQQOhY!rg*i!KhE&Bdm*{PcRq8t=!vCr^#aK?6X(~|w zS=wDQ=c=u0BT`a)nW-A_W%Immz+SaK%|>fvf4}ri-CX83q#G(PJ{F-eyr=^a614O~Q-Uuf+fmY;pi$wJOVL z8o8;Z&9cM%&-z1;cNdL&Um{%xZ~J|3`4m8&P;l}il{GSwQCt0HA+#`S=bHC;WqY^v z<2F zl%AePn@=pCx*;I({t*J&S@aGq=qjqv(lw#k! zg-MIwWmchLS}N%D9z=SWm_KtDwRt#}qKdGjgG2zjMQrFF4#anQ2Z%K4K0&kBc9{#K zuKZek9+l;!*UPZSKojQxHuH-0CTyM9;G8tuUTgC*C8 zvFxy!iv8Zt2X&c(e)`>Gm;rYC@fdhLtwS7duv*fi@UpWxW@o9mkZmJX=1k}$K4%se z%&2<~eK6M!{mx!?B1xj2NA&?|t;k0!VAl(@QM+Cn5KylU?bp#QMcZcF{t56|{9d1vMe>7DH_(X`DbcVT~E%DQ^fvkxhHZA%BG4jrhV%gHQ3 z4tyrKwq&jUIQ}cPmK%$AbG{l^LPV&pFV$R!88QDf2rU0?EkDnPnrsVPXHDruG~3-f zf$k6pQhNMo=HZfg!A}!e$mAn|6@|(UCtAt9%qMf7DfK;)lB{N4XADw6v`2rNW-@u} z&0ohu0F*CU?&A5nuA>=Rbb5{=%ZHKJ1W3XAt!7ycGJ5T8+PU`YabXwZ2a<<Cbh7x|0Py04n4v5N1 zFVm3stwLMXS(hi?G>TUq02Y9-O4|qwy$C5@w5x&=7FwZBi0Dsmdb6lZySC4K+?a_o z!i$S^7C zT&W3%;?2Sh2N008)jHP^M_qveU1G*?KHEkKBotVDsinY)ae8cNq+4(!3M6)4j5xYSoWYAD^;Pre!X9#V&eOE2;T-VxRGN`Qy^lznlF%q!0 zX%=y5_<|}Bx$m`9eL7a+c1IV$&=O56m^_X9=-(`|ojIeH8U1*)dMROuLnsfJNh3bs zZQ%b*YQQj+AdP{S@QhJS2iiw?HxRl=mCv=k7Ib?fNx1FTdLwp6P7i0-<+t?w6esEN z^8U@jBcY0B@(0YenwjbHdeYifSox`v>$N|a9o1EE#cu$@!}l%4(<5tjUfz)_<0trb z|MARv_p=H4`f~cgqvPW;UqSWp>h#OKASFKU67kgIz@SyVn~MT$1LXc)B}mx>+KP_@$qP6)A#g))Ht)lT)(2=mPnFT>pav6A zV#YY#=Z4w$&J$Um&8trf(o!$lnK_hSw^+6RwaL7kKs)+O{Ng?9Hwbc+Z@bxUF&Huv ztL-7v?b@mu5sMN1gfB>q)@A!%#X(hCBLYH@&$Rkbh83qhM*te z;8#6Lw&PJY%v;19+9Wa|Kn+HAAeETtbjv&b92jlZL`FFeBhbRHHI)rK7#v?-#>0m| zEKF5-tnrNK9qkvLPU>o4L)&xnukC@a@o}6E2kQiR+jY3A)G$`o`TNBzs!#uT7eFjf zjgK%N@ep2cD^&KoQm8~!>a37J3^tT=emv5H3x$mwX-4<1f4&41vLl5&*^O2ZZ#xw>H|Uoxi8 z{PexzQ8dDN~v$6N@Wj@ zS&c%|^6Ag1lBOHqYrFSb1m33sE`oLoZ+ReXnza^=0f~LV!&s5zJ0st)NzKNx2E#_V zzXM*ltIf_p5Tc;>p7R4Ci!@$$1?UB5r?C0GL)>BWNg>-}jMr^9o`E@lhaG6Ur0P`X z@q4FKrH}>mxa%ynUE0jXj_4R0d&6& zYLd&3S_Ut|#VRe&DT{b{&q^GbiA`vQlVDIA!kg-&#x!%bqtR5MK7eX%Yem#^KunWr%DIV6z(OI z$6!noG^$1;({E!SfQuSxKUc}MqkxLf6ED5OoEP)SCQsCh7;G5?1AXdtFA{Y*t#^uC zK9pPKv#SS7&)!HH6w!qibKN*E>m;4^Jug|y(|jpZLFm7jWCepnuRXz68F5Nfiq$Gl>W3 zyD1ZxcIjfWcQ`PfpfHuG5Es$kt?~=LOu9_X_TaXJzfV7tASE=w0K?KyiSZO#8yYXn82&#R$&Cc6Au#PoegoFn9kKQ(qa?=C*ZBDNss*;>F#qxVu|$*Wwyn zi@QT{*W&JOMGF*ng1fsGXupT^-uvD2BZDy*2}#!8%jTMMVFfEh00zd+)gO`6#W_de zSGDy~;8GgUNvLGRQ_B!lQ1eC@g1VeZQQ>l6(0Oar5maclz$>0z=gpWiRtwZ&nLeH_ zCaH6C!%;DatA`kR!zOCP4TymzeDW-W#Q@UyjJ7cj z-0GpKOJ&3Scag^bv47;q;NFGe>6f3nY5eUn14;~s9n@&cb`{jEc{}&7D_}y;XU-Wb zems~i6Fz^-kk7IEOdrJAqD9a-i}z?*ki^|s#La1O!Xq&6Gh;@mMB@s0(`>mzKEZTw zFbPdLDUOsxn2(8f)r`;BkvgWS7Y1r$nB-v;p|&kRL+eg}?cwJ?_~42LlNtkvN);z< z*NqtuQ@+EHljIpSM52yi)e8qw#G94*jrv{Q_Zi!5Y$t1cdyqPAn26$}NjwK@JCF3> zHp9~+d-nuJxMmbE7QQiKiJL6bu`N%`-)Y$y*>yPY#7Sdg<>dwH(A1D#79_Mk{?sl)c{|iRQf>Q>;R{)vus3OWQ7z(FqYYFqh0quqQV7Vu4Sh@;?@j zt0X0E@*Bf1gQ0)gY9-euC+*cR@O920XD#Kvw-!2|3`$kA)!(-<6}>Z{#rjT_HTdya zY9H6YUs-1JE%13gz>|FroeuZXRA@H^Gvu_rO0$0}d{&esGw0LKoDrhUbT}Z+a-ZSd zU7nzzywi}svRXc;$FCmc1bHuZV~FA}mh6DKeZCWLqRg8-rMXrtd33M{YzO z5c+)K;bOrXqak?LZZ=lM)33S%y`px)ZYKy`xx~j7MZi5dIGrRDS9@x;7&LXnV-2ER z>U!pZY`x8E9IT_~N#HmXGwQvrcA?F%YSPR%Ml%_z-92ogHmO+xZ))yBxvl zD$e!Jdx4%0pS${p{+{(Az1$HyBj~q2<3a(=O(sy{4?e%_DbprtdCd4uuXmd+SDJVB zq|`{x7|+3sa#=&uPG5?3_HYi0q|_z=DYn4Kfh|2ETs|*7#3M)$4@P_YUHZ5Q5dE-e zupr}>I*hVQPKRSAVQE;Hk4$oZ2u^D?cm+pUm_dO;?{YD^kR|lg*b}b3ax_&XbftIL z5z&WS0K*2c7MZYQNvZ1TG#YJJd6DwXY2&_d8TgGbC-#1T=201jbFeGW zB*pWF!%%e8Lw)#H+#J}Lw9k4_Kdjdn1sZ!>?PQ%LpY6e#*!9JY=;#UliH!}W=06Yn z^iMk;;8pMAg}*+_t+(k)Y6ggfgXG@ws)J!L6d>cJ!g;mLbAnFR)VU>bT0*MHH~v*0 z^)0}pc$lgflM7SQELcQt>PyPu3-3aIri@@KA(YSKR+fA^Bi#zo!u;ObIxAOFwYhd+ zo7CmiY81Bs_YT;+vgRDJw7NP+G8o}GCc?Mu4Z^Bq?+e~D&4U`I-pJEywf4#s3MGa= zl9#at{bD)H$Zbh^WyullMaR+i1(Q+?c#5T_6spiByYwQQ4AI39gLc26Bava z$LzCyqni}u>Q_wUIFaaln~~MJ|IUU0XA^jFYy8`itavM2o(}+V4($HfEOl`qGmQjx<4fqzYL_N1CcU~FFIAQ}=TsUh2>o(yXk~6K+b!*x#NgJt(W5gXZ-N$GCj1}#elBF z3AegN!n}jjm-X7Z6Fm16pL{j+aBIjCsjuH*6{Wc{4XsjDq>>wCV0DD2g(mnW-+y>q z^0}Ik2RX3S%LOcP{yuv9iJTHe1Ryv5H(#~CjphFX6Zz@I^mgCOw06KK+`6kV;A55( z);l6EVwAg~_U%t@8mpd3r?%bOw)53?h!Y3r>%Aj*f6@I+rmH?&x$`Qi!JN1wjqE8M{k%pGZ#!0#K<_>a1lt1b}tc}VJ6+MP4G5<8>&e8*V&ob_2dI7kx-Q? zsR3g`%+R5HF*Dtk3OflWq62){aLJ}u#(-ktDwBnAfhxHH{pMVlUs9I?kaG^Ciprrk zHT%9)ZkW@4PhY`3_`~cKf3?f5h9Zr$~SQ~51`&#z+aCNQe@TpS( zR+AII9r2$+|JBTLctAnmadNq?D&Cd%Bd-X88A)OLayjt^AV659cj;^fgFZL%??Kd7 z0=3`e7^=P{o+W32u^K273bfSLG^2iY?~0?#!WCGPKR@uE>x}=Gwd(h zTStYrD@H?3PqM=!YG#|%H&kTeqC%~k7gE0@25i^xXIOtlev?GOwuNa`G>2m%; zp71_~Z;MIa{j$)Z*^cV$6dtJHfiVQ(F()5Ccwss~(Y}VB&N&uD0-rBX>Z?2qu?qR?h#*Dmib!H;VN}J?XV}eHyiHw<1 z-e5(1tL8M-I8R+U=+ZZLC&`wW&zpqnCLpS$&?EC@z&${hp~x~mQmkvux#%o=gdA;0 zW;aA2teq@f(fKw2s=P>!6AYR2ED_1mH6u2#cv&is+7Ax6QAP9lzv0wte%Y+t0#IVJ zRbz#&!r?~qY#-WJp9E+wW^^Ulfs&CN52U( z-i2N|3k}x->>!XrTVM;0v5qVDP)=K9>4`^T1`KzDm^GSul-REVsw@&)tp{NWhGwP3 z**L!(&S}r;aR{nK(;2Mp$ju)Cm>pg%nkVqr1sX?{9QTwE$~QTUdz(=%kurqjKe(nvt^;4Y3nD6q%wT|Lr!cu1PJ;06u=wysirjNCp5fyneH^I3xLR zJV)@O-$3M__**=mzsV8NDgyyb(X%WSOqxQcgy`kRr{>u1{u9=LZ{2w?E**E#C>BU; z2Y`HkLU2r>L#ss3i$PG_g;C!$=qCB;7n2kvnjv&$RzDktaBjJD;}|r1?_|8<>{2?O zVT-1XOP$MSI+4q{I{FAD%gf|EL!MKUgZcFSj?t>n^LGrRwhS|fDyC!_S+MBvi<1x9 z=&WPO{C|j@rEEv{sO57d*Tk3-jan4RlcZ*EpCWb4c7!TFJE^yig818rVf>ES-SDiw zFr`rG(1I*FY41haS#1903cy%h)Ewv^Le+fr?JwH7Ef3!V$#0(LO?7ec2Z;Ra^NOCg zFHf+e7_@z{^B#2cdl{crA?$V`PCslr85T!|+Z|Txt z&_K5HXJU45QH+`&P5p*mOKQTC;E?a&Jc)gpPln zO1S*MXd}UCx$6An4iFa?)%^||zA-&!RK3;<`bNVo5Dh(1D7EL76ztZ{QnA81}%d7g^SEgWDkk4<573aN`;H+)EU)jMjyB`ZTn{}C`#ipX_>#S^w#gv}M0V`z;`oZx zigw`jIthN!>%pH)rp+EG;?x$@4OP$FJTVgJkt_Cwy>{5swfs4ivgD13fr(i?EOPWS zLe@ajvPt;^j=6qtsz_C5$oRC?hG4h}(Kif-5=h(96kAH^HUp@dtt^{gk}apxiVi94~M~|1XLfy6qGcQq=*I zoJ1LldHy@{a^J?H-)pbnZ8Nw~P@l!pY4EU^EzB*6negweU739May$fKLg2|4$k|kf zXNP+mfygGCsG-c};}u5_+W>RyLo8R6ORQk4PL-t|(w@%gMmbVJja&kFiGE4h6VFUB zsl_=^mOkt&!Vxhax2eUEoV?5wP{Er|55|7o#i5R<>a)-5(Nv?wi0O@ojAT^ycScAU z<4UO98=7`#>8+A)*VZIrVneAgz|IrPxDR(s#t10PKI85^_JD8!$j`NA26XTKq4gfcI!*GLssY*k&Q z+~tm&VI@??8gM1?tu>3U4yW9zgUVAhnnnINNemjlZ<&A8{gN3rpETPFQHGfkM&G_! zp9wNjrX!jB7+@uRRR!NVIn_cj1U{BiEqULLzi!n*Y=QDZDViIYEU)yh0IPR!c2@S} z0Zc(GTTg)mGc_|auqE!h!NxLZqu^xyG z+NGqMXLE1JU+J6FTrp zU{2VaCHZ%cp`yihw?S9bIv-Cx)4I{L#%w3T$(v~6dd0nr z%3E2s%>S=A@>Q8`QBB!8qxDQ(w>uu_Lv^3iOkJLCZk(C9xDb1O-*y*w`?8J-c<74` z+m@;p0U-3(wsr}E;IF@{bf_<)(W{uP3O2f8zT4t0l(ypG6?F>(t)v*R236_&Oq<$ppI7(-m;C>CsFeJ0$xscsM1 z88Bz(gQMCrUD616=oIK3kLF?>2XTsLJG*@PUMC!XtTx^?$lqllYeH2mbi`&5qTfLo z`tmK@1Et1_YEPLlv}Nu2L&2&1IZAPR<tI+VcbK-;CkCqu4OA((Yi_vuN9xWdGh!fwgct?yTkB3_&58l|I;u0AGr5Wo zHQIn&xmUSg-SHf(O)3yWB-AELks2)ujgjS;)dQ^1E?6;>DJ{`3 zvPOMvDF}+&7!A2yp8iCcF7#c$IH($rFYw@~!f&SUrskW2VuYUag{0S?s}|BFf;m?!HZ4LUx%8hHA6bZcs< z{GOBm8zX8UGN!1#z5S5m`aWYcbBPrPAKz-ZxH`$5%lwXBKMbb-FbG!hj$c(37lJ5? z1EfQ6D{6#%r~QH<6>wrThzY5tc`lli2giW+kUEh7VfQL1Q`{~pYU9}NOf`K{xA0Kj z{AWs56GcwUIqCtFtd2{5dPD$=Tp?hfRs1b=8@Bu=T7-EnsPeM`MQ0!aD|wu7z1)-5 z&RTA*eOO>Y7*xDH{PEH!iZOEQ z+_DDsG9A`HKHFNb%u=&|MNXpWYcc-VO`UXVT z_sfxKS$gQ2nJSC-$}n!eWSuK+fb^Elu3taPL& z<{bb-xIO#2#X_v@=ri=aT2G%a4ehp_COEyl+YE&cdX-Dk3sw{}m=leNQ_Qa~P#PW8 zDC54Yujx-;!uX(|pzwU7&DYMA%n~#Fz&D^zkOdIf(iAOs?`&e?lu-dO)s%Cg^7dUC z9S^ijK!mu!Hn;2pWn=yR9RN&Wq9~nusbmB^G#vgRDP-A&)%Rr#Tw! zi!z21rj2c1ZPd=?E9gnTImsmIh5pd(vc<2DZ{fiiRH}roybSOg#&V@Cq~@_*^-5Ik zXQ=nMKuE}Gk^o2*;tSSZfZFzpfI*h*0d;0-F#~EOYV$8W+)QI&CW$-6qrrIIQ2Rn` zLCg37xN@ExkY>C6CW!5J-6$g@&*2}n2|%BvqAwS9Zblbh+`Bn#>FCD9-*G5sk+=g7nXj+!z}dH~p&X-Dh{smlqvP zU>d;!(2!gq+DdjWA;mhj8nj6s2O6=^-X~w){+A12IMD?#6hOC~KL}Efb)=~;U~#D~ zMBZlLVh+EC%&XQmg0Cu;d(Lj6xukZwoh9=Xu|(7zLcqxM?(npbF3F0Qrji|)H|q+X z$eP8ViluM<*4MKTw+K{h^W}=ieimSSh+VfH%s+x@i{3I%BJ2f!z`(7SMLLg1 zrlZFq%(QuUugBoZBZ0mSAOcLO9up>wkqZID@Fh{4l56@2&X~xF}R{;VIxfC`{|itL|2S_ z8!)lLo4CjMX(ozJ7-2%X=K7Ss9W-P-+ga@Lz@9qF9%gvyj_9n&{K)>ReN}^(R{p0M z>8J&b1BEDOraB!-#a2K?A!h=KF+>GzVj0#jk?$jc90*%kCXOMQdOq=JxfWZm6ypc^ zs!0-|A0UQyeB$9fs7XLy<}_erO{8P1crg)WJ<*KHI`uEty$8me!zK6GpB@nR93Q#} z>noqH0QMI^7DDDdVFDyOqO?gOGy@$T*FVkbRS3^tI+YU(O`7Xt>y{@F8s=9t#$@3hN%k!SHT|NGm0VXjIH^qWup6gHg zuSyF6K>xMPg>3M9I;CYV-5Tm4visq~tKO5)=fO~3;L$|AQhQ*!P`2Ed@A?-jzJ1Rd zD6ezR_3c#S7(+l+0ucUi{JOdXx*o^u>TH%+fb|g6uR)rCWm(hAuR<7A-g&8d3 zui$f)@TxJPH|Xlve9i#`9soHVs%OIIuKs=dKWuqJ9%cIEmOULh?Fc8}pb4vVeL(Ch zTZ0+4VA}ClJR2Ae*mfMMbMW1=0TD6nl_&K2JaygXI+7Px8_RQGG-ft%EBFPdZ14uV zey^+BKM}YoK-goBO#2kWsLi0?4tyaoNP(%GD92eo$l!#VpwL%Z^|G&m3{5%s)B z!bkWvEM_EPY!0CG&TV-nZX(okO?=A^odhzmYSa=4;wSRuJn}$ee#v)Lh$ew2>}caG zjRFIRN!n&g%VxlQ2r+#^jImP%DOu+V@>TV6_35M?tnkp$mb7NhCQ^eE!B&Fs=b}K& zh9(j%Eh)ej+kT~#xpLY-24iSx^}ilcoVA||5CQ@Nnm^6V8-TKh2H<4F<#u=H%#~|g z1MK_@g}*lne9sqsx=v&4uObgSuWh{NyXNj)fOtIskhUvzh5!+7KOja3Q;vAmlXzW5 z8dSu*>G)+g?}?)k4C`H22L{GC|y7?M@W@_zO- zGkaPaFAVexHhWu}i^f|!D3Vw*Wg!=(L{{71j}WDCE zQknD4^(Jrgy$;`BCu^&oZg&2jm=|6z6({oCK<%=$y0rcRtQRo;^K$On>^@PTNR5Fo zP$egksng_zX*|x?I0w#gzrwNYs;z@D_{{ZnelmD%p3tGf(~6SJHxXY*=aMAnlH&L8GsC-g z^v?u0bAmGxEw`rl{j#XWUtb9;szoteN6#slZL#3d02@w*^5`6BlE9=Vd5_MG%s}-^ z3q9ayTDggX4Wp7zXX{=?PkS!}Y1H+Dkcgk;XT}SP8Oxv|aI?1@yi|em?4XfqkjT=m z+9pamiWpjWen8q!99~OE;=_w-kSG{y(P)@F1CMk`H+;-TtmP3lnq!U0+BUoY6hVX1 zprXMh!*4;>R2o|$VfzX3BR?H&jZMaH_sm4g)>cySjL2}nR>2~dAXY$;GR}Xmo9({! z{_EYzQVj5z5+w|PKZ!Xr_Bay4!`fu6--Sj0HGr(kicopvs~26U)T@>nT-c8re!}nESaV- z`#if-g3@7xVhQknzj!Te)<$@ZZ0`0`W4Q z>OxIj{R)srhN{SO2h*q&y$UFOo*?UHLt=Tr;YX|{Jzjr`=Q@OW{v%PZBJQE(?->d+ zA@Db+sH3W;hYB1{L!tjhDo&$ReNToF&3O!J3Wt#9y@f4m^q%JQ z@WlR9^q`_%bG4~Iu}_~Uh)sqq&0@s>xIKonBEsfrbTLhC4=;oYqpb&ypT}MEEpg+- z&|<61ohT7VN}R>J+T2%APaRhrK(NeIFiQ(}oK`$zO%}f#x|J3m&6YSIq)KHnA_w_k zQUfg}A#eJ%lj?(km^gyKOlti=bA#`%(QX79j{RSAv z70YZaeIOQ)QV+%wt;=azM+*`6d@}G-vR{2wi>O!YkNrwxeFVJyXoZZ;Va7b$I(_g} zc?!r&6d(5HnH~TYD9~zgBv2`s?fi`E01}1=I1ToUe*#bv+O{21Nu6GLp z0d4O;(ro9$>0r9*4wiGSCEgzBd&Tr3hgU`0UYa=;K>~oOMy+*vqQk?a3V8FR=((n) zn*g^mZ}BvI2)%>Z!7)3sS~Gan;~EPKu~-dbfvlzwM4$G>7|al^%HwG~-B`f3?$8t% z(=0cIL_^Uw3Evd2^BJs_+7yoDj`Y1`gCwqCrgZSA6=Vx{-JEzfrYZTcSV$^da^VA3 z1Ik$+>Y>S+rVP12Y^d$-?#=0Ra8;qHYD(f{aa}-}u7d(bcN~2PSk|jeNfkq`V8%H$ ziad`Jmn{C5#?Yv!aG9)3oncAZF)7q&GIqMe!gRcAq^Azxk9@ui(Nd&I`HWb0P7u={ z#3bG8m0J+^7n3Qv^KYmQ-XX#Z)5^2~c^r|>=|!9O?j?*!GmRCAbzh)X8AkH|iD5B{ zDk^<|U`(^yhaW0~18g*w&OSRk+t3;fc*3i<{&`ye+oZE%eK{{YVgr8)sA^?LqR+6| zEKpd@enEW!{20jG_<%g}RX?`0;tA>t>VCeGeJvG$?FEBCp*_Jogx`0vR9{+AVFGv> z6uo{&ik zeB6wcUcSU0SxJ7W!TTGqj2e;;NUx;kZOTdJ0wSv=#bHURKhjVfTQ%)sI{hrsseaGpE%zxPeF?WnKXMyPg z7p~ABDjCcRZNOoo_r*dx5;GzrUaB}wIi7_9QBPDx*Zh0EfQo6e13fI}CW;PO+h)9m-If&6SY!f|OIo}5Fu zsX9!`_6;fs9tGM`mMstU?p>x;KlkFd1mDly(a2p$k}?_glLo3@5rxYA%F@oD^NWmO zIqP(t28twG;11)fB+58>UQFx4UwgCG z)jw0XKYu4kJH>8?2TR57?(Y3R~bQSJ_Sc7G6O9OG#dI!T-N zXVU@S$LLcrg;GW3Jru8Fbq)X1-PvkJsY&_)6ni$x_9axP!>t4`_!N(EbzK z!dpRu^MEdjTWc2Ah*>7^jU-~?q?T`B^0dSPyNLLTXOXE2dNg;h8Pz(qdD%1vIobms z+$I4$(O8%b!&u5M{7YOolAPE?%Xq0m=~T)~69kY`ue)_VGkN^CiO@V3c`54=HtB*H zz*m$lXI#*ENb8E&yMH$&_N&mKm16LZj9%=JU)*`}CBnYd0-)nqb`sNh)biI8760Sy zk2dh%Z)+Yw`=-#p2U+bGc>C0>+?Kc6c7xg3=5R-w)tR7LUo%Ax64OJ~kbDhmCMHfo z4A!|8`j}zU44KXG<0@MGO^dtB5-?F`Qf{M|$ag$F&m{ zO(0x#pn`>ng;6CpYNX=LUu5d?HC49AMQ@=5KD2JmrCYiq6 za{c4$98{TKC7Hn)3`j^eWp=rgXkK)qGc2trDvUHt22o=}w=tlRSQbq> zBBVO^bMZd@&6J>(?S&m0PL3Z#LMmVwrOBO^&TCC;ZnT78x5=l(qm3-1B15!@IDiv9 zGc{EW5nXzAvm6DIm$|X`+e=le(4hi>xG&xyhFTK@9T_*|=5>CcL?ATa~ zy4TqUo<<+o^H2A4v<(e#Pl5Cc zFe7>vHEqJh>bAZo*7ae!juBu$TqCj)VV`}y+ecd&>5T!savN8@{Pgb`6>4~2Zn($+- zYT5A9yu@qH`;QqS>;jEr2?u(EWxMK2g=2X4JlBsdBg+`$#Cl!EU2Nbj;SSYd?E5Q> zR#AdF1UQ|QiGxEhaxK3qMe4DDr&c8AJ64ShyO1uiY3gg0Ev?g|oCu+1WxPV(#cpQG zPP19s!}iPFF6t^54Wy@6_A9@422Ie^3$3N@3)JQHnczp9b#vwCRarVSFwjt+QA}HM zaI$@4VYrcR7+dD{E=7bbMF@3U&a@}gE2hUTXlo$Xxe`^?vH%% zF*0rgXUgBL;+vznZJpE5sp%1S+CvP;Hv%0SG96(J9+DPU)Z3c=^FCuXb$3iCpqzI2 zr3HHzS*#-O%1cw<`hai)RlN|nuuYOQ?)EXg2}GWqOR5_X4O?fLS6v%XCAPp8ARrj- z4C4o!gm6x5gng=eS<#Y5kzC~1Ez&_Dt}@rSnCNH_@dvBz+7tI(f*H)Wh0X;6IYWW# z#wd4>4;GJCX5K(yS0GoPu$mg}BVBE{!H(FFu6K--#R5_;3Z^)Pp0+o(m59wlzxisY z@~3r3rL@C-8JR$b=DmBTyAyt%ORf9%vy&(G&7*1@(tmG1U=A z3Q(whw>b=BvgjSQ(@@-T;!!-hucuh$<7=VBCBeTjh9{6d-ZC2;prY^?7t)bA+HxrC zHEc^ssV}WUW-b0Enqr?igS?niC*;R%Jt@{}X)WH?y|j#tOc+04@a5tZT+mQ&{Csn1o3T z@##{QLDU-^{kXV+;00U{{iGxtTMOc3x#@0MOsdoN&ml#%?6|vrYn`Qta9Rxx=u;+W zez)upCbqYF6SKIkFj<-`pxCQAv!QX#FBIQ6KwG5^o?W&BYsdvttp|J`-T6Jv>h6q| zu`W$;^WJ+^A~soSEh=+Fv`W!8(^gTk-PiGQUpQBKP=h1)gVEcL*`1Y>cQJUd(%8|u zi(CED4on+U5W^q{fd`9p<94eN zY*dQTbc$ia>|B`^mWFdaj-vEIZ+nHwPIMv5D-NE#WK#EEZbjYoy`c;qpcV`+YXdKA zE4rK&|8zB8UA>j~5&{kW+!ePZzc<^xh!x%jttlTGljbvjbP?Bl)s2tt{ z_=ib9;n)7$swKibi^nE45$t0!s9|D4>nuO;>(h#ieNU%Q{1j=lgav;82g7zMxJ|QS zDR*`t-{R~`EdFH9`DrI-QQ|M%+IV9)QSbpHv+nO7DVim;XcpsPWn?@iKjywrR`4a79HfX6*OHQi zog8ge!ni7}l3A>|(ox5j+QBTR<98qTaiKFphC4r8b|#-aM3g+Pr_OZEB?;|WU*QLe z3M5%9{yj@v-RXN&yL8FV;IsmUViFpPbjr+p;x_$@MUk+4weW<)2C^O>m2>q4@>IDD z7;pU`lm|XSNv}`Pu~oDO|0;X{e=QhGCL)0;Cae)WXVm;Tn&TY<6+_VS5sD-yMKIHq z7Vqe&^}s;EX*--M-#WlLRxpO2mag?CZ9kRIPM}-hOmpN}Aiq?s{*Ep{_>cW>OL!8l z<0;>Z=L)Uov;K1xEchL8iUXacwu9C{9oPoKh{BZNDNt1tL`DqD7aS=HfQB(-ieZ@- zMpO$rqI~1a>9|c|q#j%PJ==vE9^3$ys5d&o<=HPB8Hc5>{rPiq_q|;i2t1I5qE@Cf$-h+a#5UnbB0^cs+k&JhxW~ z)Z7$!v8Q`_H@I+y-5=LoF?xRTPq@=&QJwAHmM;o`5b~U(c&82n!Ln$jY;j_BUusi& zJp(Mc^APO*pK?rez#n0GgaV>$-jV)_^^$1 z*y5X`!I0UZOc5OUgYupxFvr}Sd8FZvG9jWeCNi%`6y6|@@e+%(-hM9sU9Lu&3jTM+ z!KPovyE?z4Kr7ubq*HrIxoRKh(KgF)1Dh}^2@r3Yy$nJl`!eXaIeUIC3|94Oq7mxe9 z4EGyB5zqy{*rZuOTEtRdwt${toTk#Q7TKDJUUm0w60{7k5 zw%PD(EuQz#{IuDkV+{;)kil|1c%>DcInDR;4wGs@0b*zl#b2$EUBbBvg#|;H!V2SU zN~`Ufkc67+lt-Y2hgKocM|a1 z@HHglOwb;r{u;2xK1i1!&9d!STkplwgi0^+-rj6YA#~u<`L0Ci#Z1+H(&GPA15^o- z?AE*|TvW(}azFP6%(3Ot1#>E=7Lgk{8$8|MT#pB>4ZP>fhKd09-)J2o+Hd@%-&04A z7#oW2bMe;4aW@J4N59qP7j{+GDF@tH^E&7Bx@7{D)6Wv62knQ7Y+h@ur)cav#xwbz zeInmqfo>~5y4So|?H-Rmcm2F^TQ@zZF+6A+|L*(vLFE(UP7W~lsXEqmAHcM__)oL3 zER}J#!rwM74XkKu7?9=Kwe#Ii?0(70dA>G)iX!9*Qb=Yj6v*E2^gM@EzM38QR99OS zlQybhFZI_)6)sTMWu?~3^%`_C*O-2LdwY;R_&)I6tDR3)8|j)7y*hpPL+{QdC$5yo z`7VUcaGccZd*N^p$7YOj7$6dD(h%+GLYCGC{Gl8P7cDK;=2TNHwth6Rc!&9gd5#Fr zGuM!+na=!xcp;P-+lCKjLFFAsecY!UuE=6jCX9`Tp&rty5A&BJOw-(jUF8PS?o_ znN0pF6WpQKzLy_-Zt8PN{gwZ()?0kDyt9GVc(0%M?k%676Xo@M2L*8@`d;_!b~>-bt2gO z`nFNBIbJzlE~9{c29pC=z-g@a7Qh+pC(b}shCbQtx;_`%A0FQMRqwYBon4Wg3DKs+QqJM;^}9!8fYc}!(XozjdDbf)MaUP1IU{I$ zx3<{cmfrVtPX*TLV7C*17%`9IIiMUL9l^Wv-7tPO2d1Jo^mN~8F^m9&LFhQR%>Ml<0i^zla1+JI(yWzlY-2P4{gAkB1U}?@-&m1 z4Pkf~vb%%Pp;3(*lWVgWd?r5toAzK5BF)-M`n36C$A-^h80WP#vh2S z@$udm`L+YHz?BqZ%k$OXIX`4?$FPseQ}gPCqYjVOZS01iUks~X1RGzfkMi+8Wf)DsvbfR=Wv#dL83LBb`Q_;TSG5@9%>O<7$)~p9hi& zV1cQA&c_+H*56GK;Jv!rp#FooK*%mS+rN;!*tL`{T`|Y9@st#O)*F%j_{?DUas+1A zeb^Cn8l5Kvkid(K_tjry)5wf|w6$qhy-diC#aurZ*Sr6j(OTO7o6SCo+UmFr2B7Dv z@3hs7HmJh1+g0d`(?xaUa-uA8RP&m!K^gWv3N9@$APXr@K?7S)P;gta=akHPLI3wx z(8bu;+q?eM8RUd-s{gqNY^<%`G%-!EFGr!9X9-W9UbVS^6ja5&rr9n(s9PK38s=35 zG~R_-TSTNzX9M@TjV^c}JD&(GA$vztR7?%#A6Yz8lhvF%Is`s{GH^nQU3ru|^V$km ze=5X-ll?@$k=*@)l(Rme5W|}tH$*s^)Vwy*P2`#Rk+N$bma!eNIuHF~=Yv-h9_g^J(UR~X53{{uHjJMPT45k0B>MHXB)}Pr zm#0mab_M!2cJf5sjeZZ^R93v+;Es!>{YB+?HV|;Bdu!G@xr}AXMYan0q}0~K<2kj)8)Fwi_O3;V(2sxS6HU410FI8#oXj&yy{ z8m9 zM9+_dcpg`c3ndj*W+TVd*BeBCe;NR5fZGYZ6YC-n_Qul(fOq72>9~H_5B%sj>V2=I zt|ZKcws|&0RGeQH;rnuG*YW%LTGwk%&5FgDbd=L>a{_&x6b#XQdYM8zo9dkNmd9lc zi3E0?)7iGYj~(jM`P}_0+<3478;&q`;Nh6)PmiF!Pudr*Ulp+eBjX?b(^HEJtjn4C zXpkd3z1*BCi)&FIa1E!2X`WikH&7=RGT=3HfXnN&C8%cYdGg;^4iJgA6)EW{i!@KO zuz}om=oT6mrdtbs-G#z(SfxVih)nJSNJI}kno)^0u0S90&b89kJ^Ixn{FC>Ruk7=m z3dLPcL_|<->*FnpQT8w1E(@m>%W1Z7$^l z76%vGv6A=h4_~(WIc}@Z{oX8jflQMyZ;05i{iY)vNs(^d5wnC6zS+}|WXr@!6$5__ z!1IEwDK2n-y9Tp18%sD_2uDY?yi-Jlzt|QAtEK+9U=_^(%m5?gNutl zW|%o=pZ(i=t+m(Y2XXx{5Ww1Nkni;W1uk`(S2bUT*nIw6R_;#_opn6Zuyu`j}%P( z@F~DObrM@lhKpj9iZ_MB2y&W|VZT=Iw4VBS2>D|NwAIo~@wit!%ZpcP-XeF4i+D*> zQy7%|(XmTjF9RD)yh616ue+0D>#T6+>upy(0Gq@2@T~s!$43u0Kf?c{R1{<%^L^?`PLr>yCghYn$@7c zl|<8Hz70F|*ZEUv5wUgTtYZxwz~<)k8HXR~?&e1IQmkRgG)|d88RTR?(85m0zZCYeTL# zzX>=G6{R?@HadaGD;YsLm+Gq%a8g)8&JGl!zCNU87A z;Kr0r+#5#cb!H~Qhl2N4#;s#+Ss^a)Ey96tIXX6j$_{4D@xlSkEo`Z#t`B`DU~4ks zSn~cK_-a-c5b2j}lWf;%>~4^wR{W z=5{q5v_?vEor;)YPAN`gFiXOaLc#RG9~OVUmods?F;7<`G`Z^G3Gq*`POzej zuqJlbxD}(466b7Y6t3M4O;l^^jd47t)P1usG-k}Syx_KXLi*x?B}-H#gC1Au-oHzn z`r+qKT?2#p!$*Lc`6)$E_4AhVD^=zLbUrj9+RO1Ea!jx6NTpjMF>xVYdexj{N zIl`uTcRm9o8q&9$nNb`_ek?4y20CSJ>;xiws=cikK;mfJ`xYUa<=bq^bs4XGokMQ_ z_cJ4a{s0IAAMAMWB{f3jQKjkd?SOSa_go!tVBH?I3b;r-Q3Se`X;)d?I3rw=a|c~5 zdD726{%u6-M=~-fug+p6UaXWsB`hmCzwWeOE!pa~i$e~6?M%*kTsz{O2pT~=;C}$O z*?nL~#E@Q1b(cCzTA{_Bc2`kR;`?`T;r(g+Ue5f~x%p;#RcWqkP9Ja$Y<^|7>zqd)~qpyD-0=%+gx1}UqVdR0|WU%eG* zIcxnRK*^_d95HtmSEYttzgQ57xnzt>-wHRD`k==TWRlk>Hz>C)*P_|{e1CvS!%Y?Q z;zY1$)$y@ODZ)B^c)9Ys#`9bA6h+uh%HV-zQ;b+Fcy-(jq$-Uc^Mh$2Ad1^%7R{C! zU3iPfFSFhew_Wh|HGD?!V?H}W{od}t21TO6=*>-$ir+e>cazJy4^vjpqK?Ukn83mt zFInXNOn3e9h(a5>3WZ)1`?j=6s7S0vfqa5O1~OE-(Y{TWXOrOL>o^ia7)Z)rqSQ6L z(As@QlpCX5didkZiyi4|WC4S*b<-p8ly952YR24O04F6{boeIEQm^IYLUdI4Lx5&- zZ;#j6{9?OanYPPZ+nw`xUKmaAN}1c$(ilF_h$@*b+!FloC$rf?v7(p0%_rOE-48J6H&qw`;jwaCx=nWZwp- zx;;OF+O79FO?kn`TRj{?F~~#N8Q_M#+*ixqtUyx{Wu8vq+JifSW=s;=nNnkMvX-E( zX<{(s=CL42L$G!WIoe8Qt$2llK?nL~Y@9keydq|^9q%o%CM$pn zeoe{o3e9jqYa+;kb<#8}cu)u29yp*PeFcn>!L1MOZruM1$e=C8T-+^wqukFjBE7PDw3ZIObccl1M7;h(8`WlpL zY0lsu`|<|Ugss1m;m5bWRL9w(8T%xIdBUI1j5*Kv?QL&@)&*%we8pl@+ES%Ov+TEm z|Aeem`ujKzuF^|RDm=Glrlf_rwRjo!XXIHg&ut_r6uL&SHO8pUC#TjYt!E~9aR|fT zWp!xKBGKkluAF75wFnKqZ;Uscbc!sJ^l? z_zldhgDLbrB$`A8#2 zx7x^wsk&Dg+4R4i{C|GAn}GO`vW6nd4fG5Q0MUb&-Dt`^)F2_!{;qd->i)1OWtJiW zN4>;ryR|fHsXaQC`1~d_pAb^o2-8MV`+`wnigWCZdeaj8poWXz4qFco0GritKjlCw z00jpx>v`Rc>ULzAWJO9YENXdua0_s!{71g=_XAjAN@GgGPiKE8c~wZbqf-~EB&4xw zSF)3tE5v611xrbXlHm>zTT&el&2}E4-ImZV%j=SgiXl#28OWsVSx_zt`9eE-m#(y| zfUE`o2v;)2q1ER9^9>0oL-4MJ(;khQH(II2iqLtJ+07QvIjc+aXd(AO-B|0#jPLO> z4(EyZ<><;CHW-t5L6}BbjH59f%qxiXtk;S=!M8t8-oGZG?EINd#)tCHoA-J|(;obY z$VF;Xv+!JQn}xTsvIss^N?-4^XESE2!R@XBcrE@aU3tSO2Zn0e5mx5LnQHGm7rRU^ zkH%}Zy#YOK@njJw8u~V+op&JIPjRxxl0=sEf5dwKJmYz93CsYksojz`vuKur9oy(4 zKGW%v8|*FqwTi8H%T3p=QY>Lgnaw|nY_HW`*O8Io$xD9fSL2xc1-69=oBE^ zVlG-JVu>0xXrOYG;u8=6Rknet+WY6%#NAE=tKLQGvLJVyvKs*KDpKpx!C@FXgRyjp zfnMp);h$Cl$+GpIE6>DTshYHyYktl85S8#aX={znmay}Vqq>hu#Mp^o!oj#g{X@Cd zYSgj`musa2)*-*E>0#_6aEg+dR@=8mNt)$+WL=xzwa2^r7KRI?Zpn>*?V2Qub0bT z@SZEpuhzlRL>;J_ z$5Oo}0aaO)f$;+;e*0}?t+ms3;N!wsH#NYK`IUV&AdZE%KDzdz`Fr=QwzOMmbRJyo zO_k{}7zN(Se1ss0(;_9?txjP!C$l)ISNUzAd60e?sXqgJEM8b!ZW$Gj* zwc`5CiI7pzuiu})IKF;4nF?T}Ds8tgK!vYj)QB=!e{%((i#Mkx6J;&YkfqE4;xZkV zg%!!=-4*X|eWD%!?;t_#_NrvRotm0MuZy@0wqdu&i(xPE0Md3SGxalK&tWqeZ&X_r zPbsvU_jHvG*<=w8F2-uxckZYsGxDovJ=fDdd$2{Nldnq<+T(RLDcFaLL-&usan%uK z>L3_0-zo?3H_9njORwU9+2^rf7uG{-1q{k*O&>$ZqSdzI{2v5AR){sQ z_CI;t2vbf}P|IU4lyuMAr8vLCMRR_;+}6SyfEdMZyAcdvhEctl)Mxc0zX(~!gFhUm z*QM5v1bri~zRRwEdQ5!z6@jAZ%J}>>s~M1p?w6Tz5V&%imH7c;%UJB@^Fi}|8-QX9 zS@uXG4C~fs-g*X^9W`MGD$7w0?!2UWGqATAX_>Qr+j;Ud*b_EVQs#OmiP?)4hkKYVeB<2PVmJ;>4zzW>nXQLVRkBAEH+5wi z*y(OHB1VzipTf*>k&Ts0D)ODacUYTDcGMzC4Qw?V+q33(jK6Co_;2{F0GBi3Rf3`a zxyENM;j~h8;*;_CqIm{wzm$r}KOs@VMT_nR-EzQ_82}$Pz1dJkVmlByI$Y1GCUL`&-Xz=5O{qC0*Zp^>6FE?@hF+7&YME z*>zI6-L37@-;c>%{ksBL^I_EorgIYz!M`rx(o^ znLfwiLGzSz?bO&RUMaCD9MY2@-_X%|tLP`+OVWmHcNR-((ICF3JESN9`#EclC0<_f z!AKtj=ApG-y_^%^^gy$BP#!#}XziTWiM6?^DlBk*i;ISL?loWOx4K{kv1w~ly}(pS z7l`Eq*25Zrnimh=g-QY98scSYo?vhh!~^lgq%FY>h+U%H*q)>9YOeT0?I*tBCYFC-fp^?|SG4h6*Q~>9R8jw{>)^N07H)jg9uj3CZ$a+XF;n;)!)^%jmNSVd1(g$tD#P28&a+aO(>#78yemn{5hpp7gN|#5AQ8x0_?UNX% zfQVx8(2vMrPW+1|iln)q!od9Lj54!cs~tIjF=UjZdyDNamXn8q3l8L(?ks@ep>=8% zdUJh|h3R^$L?G0;{dP1t9+qB*UhLG&2k3rs+1zYAwI#>s*0V_eHssoRW-^K$4vM*70Ck%Cz|{;do4 zIezIk#qUg(Xe}0@%TxQXHAi~SGw3#cKzwi1JXWMk%ts=NQ=J;3JZ^g4zFK@R=Ww&= zL1ffmvB%G5U4SYdSYtHn3RX(k>w=}aIgrTmkDWX3zgr2 zqto$HvU@xjz@SbxMkZhD?FrP1b9p(7w;j$y2Eb>NabSE|@=N*T|aaK1^QBer^>SN)I_i8>^Mm zp;4{3Be-|$ayjdATeL$?O#VT~_sgMZM=hHbs+j}mP>ERZUNq!(*Wzx`11k0k57izR^UC@hUF>&^7yv9m zHO>%p3Y+)#+`Th=dKjnl&T{^{7mC=#la^W~3+)XIY?O9?2*H@KsmQ-OKU~TxV%1q2 z;?8=wUyHf{7O$o@{II(@@(-9)edo5*)mTb~OsAnWw4B|x9_Mb@@po476TYAijO(0frcP&8Ksbvk$r6b4(k$gCrW-mW%=EKX= z(GyaL0Pm56e!nucnCJInWto}4=>(1J-x>+oUfnlO$o!)P7~;F3UYlYt9TnfEv49BC z@gj**Y1@^pf(6JWwlP%KCo~GKCwm%Z-kLxoq{E!IDxZ7Zf3=pKUrtjjG3`RyhG84~ zP2uhZvHx)@Ek$f!p55F|_xj$>sWGEO?!AFMf z+z7?}79*b5^g?)Cw?*3O+ms8hta$J=iJHw&=COX76QYF`#tk8;{=k;C`lG2f&9Lfe z$$xXD-tOLRdV~*xOWSpjD@#ZNVdtigJZ0~7iiv&wefl1F{-E!7^{=eH*~aBu$@_!6 zuyB6RF))E%Wj)DA<#TQN=z7#D%NGfrnrgYZ-OCiRz(A_E9=a(%^ygb5sqWsP770KVx)Gmf{+M=F%yF%7O zuU2DGD)pt{p_a4|YvKM`OqFcavxBMLwS}iqf*5j8_~{24$ifk~LhPlgS)h#@V0Gh z;UvYMeInQDkBxKz+lw@e>#q% zy+7M2LA>7cyE+-2cPJo#@&5h$dtl=T%9bGK?Zs|yMc+5G)ga{I41rkI{%`A(>f);j zq`ZxXw|heCziM==e1+PZw#at(_HKZkSk4oJOlNS&kwwv-amK|?$=@4h&|qr{7-ZPa zHGWSq@xcuI#4{MtPaTUB^yKsC_4DV??fDueVna__H#axY^X-E2%c`0*E`L#`EMJ}! zBX4GGiA$1L@pBwN$3?)>xV(+8zHwuj1DvlFZKr5q)J{nF%f9%53ewNp zo7d3lZI@Jd(l)N~)mCoF?N?F&o@atVd3y>Xu;ZG}B0$k7O7L-Wu5Q77h@H)(KH9{{ zUr5aRa@hDvtL@3p*I%O8+WE-j>GzV)(TE~2NnW|yedD^NvXlx!t$@w%tQW0~wjmx; z`(X8BQ^}aWR_Iu_KEXZpo-HvDpd#^6i?X}L_{zax+MJYBr?>F@G}BWG#np)Odcc+` zD){(tw~!5;)$Hjv?aGBFDb~rImilUoGUH+v(zfwfs`1`=rdqbzs_N4Y&*1${{N@k?A7A|YGKMl8MeSdK z-^gk4zNluHt~0{j*ciFl73nx4}q*3~9v+&`=o=NGCA65iG za%|X{Q$Xgf%RnLRYkxi^lE8nJysm8 z<2|r&&JEZP35}(O@~!uMS9rxG3aqR#f%*ZvXcN>WM#=@2hdBW@J3#yaB!yxD6ov>U z!`UMSM=jlB50~rT!>FWCBmuq1-_XdDr?%6g7D+%|?{|3smR(K+qXMWX$5St7<8AZa z^)gd-u0y*&l0FU@w)h54GKXG#>kFvF9UJ_9TYmN;z~@*Jm^|&X0T6_~Ld6!4>9d^C z%)#m+lZ_r{|V94)!h^ZWYRbBBIBYAuHH#x{p7YN(t`5wp6> z9X(AZyk<8%f7{edLD$z$S!WCg04l^9BNPeM2G12qIcJ_f&NT5A%`=gL49M` z{LLp@@20%Q4V}G_l=F9);D1nnsx}UM<6OAFiNn)0kh=assmb#MakiNxiODtqbr`j*Z ztv^ajO>gC?s~kI@sZkwlfTMapQuuD?jrg}?lZ#UX?(TlRbagrK07im=iT%RF;Z*S~ z1BW(JS|tCR*o(bsM9?9u2t6q&>D<}nrF$v37z~b?n9#gjbdW&!J6;@M?2GHzrHCzY zsu0M3QB?yF-u+Y_6r7DQiHOf%j8&*pzrZ35;>59<3P10zGV?kKAtrIToc#lX@mh`L z?l-Gj46jrValY(WKXIHH_&)r&&x<9t&lQXV&;bMVF;-e8?T@>x_HHh0bM>mCR8X)8 z;H1$$E(AtuI}(Hxh&ag4ER4mmXP?aeo{FXzqjtpmU@UU$xde1h;(Bc#Q^fnN2mk^b z{`~iZoKPQ4Z5 z+UCd;omnE&PASg6W&Xz$3t%KWwRmuj&!+J#Ho&&tf4nPX!Fm0g=w%PSYyds+P-jY% z5seZX{h@h)u|h<#b>`()>SMUikzG~mf~cpr+J>=x;UfBazgG6Tl5M?7f}!`sftf{9 zv2}Q6qLF{Q1f+%CZ{Lb%ZHc>|DueLq1r`NhJR&LuJ6xQ9b%>bh@pxnCxa0*)S_q|O zzU%dWQj8d@6?I9l)3e*HD7IF~6m41&&JjsoCSZ}d5|Px$P2YP%zM|;rz2a|Y zroTPtlnslOLFs&K^{M_m&yV2Gzl*}?Csy&J5jK74@#5#tl{07-*TQT~o`(aItq#oe z&uh=U@+Zrqmi2&gF@{rvmTE;4VhD6b@<(0Vj zyRE1yq}Cb1p?r0evi4Mx@NY@mWXY8!%D&=d-*7I=>|2Gwjp-ICHncEfT3eVAt}%?+ z!@*j_D#!8pwbxL=uYYl=NUaz>UJHu)(FGwF!MGHU;eM;hdiENN(N{PqI4DTh^pJDG zd%O8Mv)>zo1Ox;KT+TfxZ8-u*KVoO={d~l!C9)S53=aVYw&3&K9%pjNTz&|;^;(sR z=#rTz8DlgxbVZ&j&(N7C=NswsH^4xiC$KuWRHKaOJugp;ZqARSBw0;Oyc{5p>ljl~ zJu5eYxDRKFQzEo4LxXP4tQU(hf#XF+NzuuP+XX%>l)nxV-DA_P&`0jLI@{ttebvk@ zzb3Li-v0-(n1*2_KZ(>lrV##(o|!+t5H#DFx~RpM*zvf; zVWuReQYNNO+))DNlMlaMm~YMTmuHg_2~@n-X7}c^QF1mEO=q;qOzVV6JawsOG>n0G z6P_-2JE?sxxh@)#3R5`M*P}5s6XF{S70nP%(V{$^<~&Rva?th{(P2g}M>4{G14^mv z0IGV2FpuTBcw3MI*3QoHNq;g;qs6x*-2y4(GS!cC8~ee}UzTG)LQ$Qn;sV}izO_Pi zd;GZf-YOZr!ZdK1lRd?7QEkpt*UpXFN_;458uaTb(H?S$#xxj8l`YuqHsVHfm$mh& z%MItSVxT$isxaw`PH3G=^{Kb_f9a$Wn%UVfb?+v#eyr28)7L5S&MI;oaQE#u70R5O zK{1rv7+;Z>%#IF3khiqlu8c& zxdHWe$#+0Rd0ZZ;fBZ=2-=3pm9Pq#ifyz$Pe@%LxF6jDGg%;_gjRbGqY&gFV<8T13X0yYYdjiTq^7*%a?`Wc^)0u5+; zBnuc5JoM|obp@E3C>G{H^V5SW3H56Ca`W;O;}Pd3*{_%|KD>oZb6pt|2(er0Aj zslq`)1C3NiPlCqmt_+MCh$<++Hpz9y8|6p33Fxr~VAkKbEciG|$&%a1TETTrNRkze zVGTLqW;ATP@Ka{te_HR5wIe9HR*4h*CadfBlJ`0$Rc!)wqMVe}Gv#FV0_}sj&v>yx z0+!I#yeJ4&%HE$=Wn$nd>rLF5^m?4Nyz#nmW>ig+N;*F;Ai8=yOcd$r;TTHc^nfw> zpV_5uzYboh&K6s+Bm9bu#e8Ur{xSqnA_Or&w+Xxx*i&NdPQf*=i7ld4o{*`fpP$`< zCxJ0p%NzE1Q$@)xg#uD7aLAZ8^m6BomcCBvzxKWM6(3@HBJh|jkB?VrKNIG0K5SWM zIqki5z0HE1B;sAgTxx<1UX~KF?};(zHO@E}sH$Tx=8IErr@!h{`}8S2*BWm!IRE3G z7!EOdv-*eh_*_Hdo!8spLOfoh0@Wo65zcR8bLBo;}zL*cJWOJESbPxSv!{WMEBmr+8GY{aPp`AH4X8z)LQpQuQiAN=7!S;Z1_cXwQ6OX!8Se#DkYxnB z@?KjvF)4+I@N~sjfD$DBMI@bmI%!W9r-qt7K{>l}z91eDU@N~T3XhE~(HlxWtS>Hm zt7z=oOtlqHK8UK}z{C1(CFSWc<0muoF511Slc5`Bo;u9U)u zIh?WkN^yr9v({Kki-C|u;de?H8eyiJqNe6`e5#fC?6;_do_@Uwr<3?p5}$~q>yJg0 zQ0QQ>O@xQ`M+|F&6|d@@&v>f5-PL=*&AG6pFJwRPf=QymMU#+o{wbfGevS#Vva)sN zUy z+hUvE+=!zf4r4?D1nOJ8W#Ct>QeO2(%g_h2{_hmj&>qNPVJH3*ZL6=Bg&0?OOFrF4 z*DL|c5sR&KK8%COFx{M3J;17Mzi_a{d1NXvDz?CUMBmkK^S$%g*%V|)Fi(7dAdGQ= zWwa{&O!$w|s_vYZ5;Dr&JXgQcXwPLbAy2-6Kpa)qZw))kp1L8?7e1!+XN7BktuJV*lKzwLh!(w-byP_T(EQbky;*x)LhwcptDM<6(NgmJ}I^lRK4^1#!S{i1K7&w!<+f|Mp!#C10o#)5%^#{NWlGVMl>NDfhV%6Z~OLBMHeM^C& zS*FQ?&~87gylg2_cU0&+Zkm$&xK(6e?EBj$fX=6@d)IyAby@16aNY=^@v*1o_9U9H!p zm-D-p7W}S0_#<)MeL|6Psa{onI?exiVWd{7vzM2=AA5~>7{C~mx{{cgs&}tqkh^{$&cg)=g|Ib$itlbg<)m6U$36m%@Q($R9pm>Lw zDKSL5xjnyNFR!huOmEgzR)*0ee4yiiV%XYH>2`jAvFL!+39NCcd{m_*BH)y&_F5?H zyFAt=aXk+)zEDYiEpAu=Y7)Nge?P=;7Nx%-*B@-HPnTgG`a7s|teHVSHI`kw$+mWCzk}zH33jUHv&k8+{#vApbUMdWn@H^!;(Rb753vxu%j& zr8ebiDV4gP9=) z_Jeg|)-O#e*UQi&OFRU{V-hp!f=P+D8sC1AtDx&O_eHQ}2SadoxHnIJg_U;H_=2y| zo~XmV6fPb)14D@L5W9Zv>>10*+kkXNT&YA?Q|*61JGJNjOD%d4K1>nrZlBM_?~(go z9cPWgN{zDSm{qbzWk;6m_!A$+%O#$A=X#`gk)kbJ@h_Y%X+p99=hX<0iB-xoP;Tj~VNCQj(#{af1 zX6>>DToju09J`HWQOA`@0_Cp(=s>V5i7}3f*tkS`B)axpRQ&WbAwn;1l(&72^rtRD z2JK%;d8gg7&j?m$1zO6eu8eK4iVQ52eEbo#613B7Rsmt|uO=91waS@IOgQh~L%g}t z95B=6FjOe|og~zt#RN+7Jxu)YFjrTo{Zr<1kaN6oIdDCmUFYHKT zyUg3lSs;kBvg5#%WChE&Pz^Pn3Tr!R>5pk?Nf6!|8ny51$?+F2c45bQp$wD;gGWtG z_qATU1@_zIv@*f2A$hzOrw34p$r4#~->NF}!@itWce~U^9dX(({#nAB;^JTW+cQz# zl>K7!7LXukW|+S`SZ_TF$ekIb!$lz*HijgNv#008!=F~fPVSe(stldn0tJ?s+3JkF zZwOv2z~NO-L`gFZtU6|UMBje#1}Ru;zAH3ELe^|RVzQna3=)JbdSW?Qw^7}xz0uUV?I9rWw$ zhJK*phl>sK9&J>#t$jg!t^ggzV0~&w#lLpm*98XRFA<+B)%xsB=`eF}Y-NX0-5QK^ z=TrNCxK`%m{@fL;wbtx+x0$jq-!75FqGK_vWAgod$tdk!j!_9#lukJs1bnsZ#S}%% z_F?ICQ{Hu$7%%~kEG=CS|A4^0JH6TOwl@Q@#MZgmmTV2hw4V5-R|o`B;5P3i2O? zG(Y!mOxkMvuG+>2^JSB}RTTDY=RY1H@3wJmzZMv_nQE@bL`{Inw&-URs^1HQ;I1N~IQBTWYngl)Z zCx3%DyO2JthLMCyj*ey-PS!B3Gpgoqkrwqol)Y=>nJiHOFmg`h+{)a*srCo=VY6$e zMPUT(3PVNUf%RH{xOz%<@iIheiz4S+OJO%)CMNFpa@*sv86l(Eb?0t{+J~B^V?3@Y zk5=f!7EkfstW0M#U3`sAbv{~j^|~QsTy_zFwLD;b<=h#)$0Q%9WM7KB_iylrrI>8C zaS%KCKX{+p&IL=F_19Qm*@v10uw(wzUXO?{;kG=OtK`10_vaTgCLd*bx_`ODys3=h z>q6}tcs)b1lyN2I0L|(T0anlG#wr6K*J}U1L}S2$r`*#S|Ib%UXNMyKJm$R)(I%Jl zSB5ibWuw*+j7U!nj<^n^+1=&vdN?&aJE|BpR4q*|VK}AdfJQ{0$C!Xmt4RZnp)**JrmdOZP@kmV7|#`*b)h2z0t^#xrp3S zebNn-gKY%E%`OR;1TESz4;3e=e`;w>DN!x?tQ5(5T*SasbJv0BK7WyHJG?cGbA z+{t)_7Ix&J^l|#%FuH{U@uSqkU$6fYhp*M118CSxm7h<l51IrES9etMDYyl;ZH*ni_2fib;@cIh6SPZ|py7`fs z{@aDKT}A3+{=7p}^Gg+qgnzUEZcPthh;F+(yNyo8R=vpKhntC_`^HbG9!ox)i=3^A z68v^+gYwjyZ~Vm{j@mLtjUYU}GhFE{$&(%cQW4sv+Y*s69c?_nX8q| zZ@#wp>R5mj;!28bypY6ORyba2EOvPP2_%acFyr~VxA%KS4m8#O=~K_X5LjUyr)*DD zz>5bK;~OSNO8Tn5|Ln9*=j?Vk&6VsH?;9^~WBrs6#+|+J9eUI?T)tqTzQJw3!-m&l z!m?-Hb_oJIII52ox7f(^TJVxA`2oL`fl~b%8q8aCkserT%?N|I(OVe^b1XGR1o(p@ zl{5GX^p((b>OKz!EeF6MNoC;@eb{N5d}s!$jJzak;-)}oqp3_k!tL|IA{y%l;)I^Y5$T- zLqcHRWcm^M#Sz~wwb+lU*j&SUMCW=T<>ROFf1apBz26K>S_RtWc$=7HAR3YrQBO8D zy~env8VhdwiC5w|JRyq^cf?B51ARH)Yue@E%t6kflp6m7{bUaP9&8sl&*v^AaWa9J zT|S%BamZ1qL;(@O*kj9?=MKO!Xf<#|!J+U$TIuVn8Ys{2dK#a7z!jLw3dh0ko?Bh? znx?n6_u4gUAxp&TG=$jGZ9^dxpp_dg_xj7|EWfsuw~wWwtFQiBE#9V0J>&b2ko`K-li zhFNlfX4pzpmD!HpX42u~m3%Z!xe}qAYHA0QiEn3viT|MbQ1bUyV4%DGCiL$n4r+3N z(2F$9Hqk3=DwTp_Rj1x6o*OSF3Pd|st%d)UjZSK3>vauIJ8npFZoM0eHyHg*fI3b3f$#W zv2W>xu4DH?4ys4FtY?3(tVnj+aOzc^vuQwo&+VS+1!Y+qtfCrhL^T$5Iq=arD-Fca zknj-)TbsvRpoKAJH~J0WjbG74BVk`)<;fh2RX}Yb&PgU7FqdSgyZkDIh`wk@9fm}d zNTI;YXYnNLTqI*(M_LMMhVtxtw--BwXpgwB@&)&Ayrp|T^AAMUYpvvOOr_p_{OoGc z>7~!rK4Pv74D7l+gZqGjVMFwI{G7PX25!HX-uH*v-?1TuUB5@jZZ6lFtf~qy|1=~G zbf*+qtGTO4{@&Tv>Z8}}NV^9EZ{9AoBEDvMoeQ9$3^B7C`!$FP_`?c%@fj8A_C>tjj~}gOoB7(=Ow`V_%W4h$;pJR?iSV&?GUjo&UlX+3XdbU!tu7mZJ#>X^@unSnkzJEiXu!=Kw{qigl)*0 zYo2+l_q$U4r1{$`d6F0DIKQqB1e%R}x!r(vDS@;7Rk>1<=6nj#SI&J6+TRj$+!{U7 zfL%}P2HxYteofdulpLaZMY5<1MShlN9ev;aL|^24Q|Z3c{QYFPg%*;jQ^A2_iEb$` z+=u^#{?KTwiFaN64kK``&PJ=<-HvDXPZi!5D!HM?``t29$9X#i=B8TpoNg*!=j>s6 zj3mb3mB|SFg2SlTSc%fJ%Mv5kyIR{$Af*6Dzq-A@c+K=L^TA?UasA4;iWdum(u*7x zr;*FAkMC~0hKS@A#!@1wat>O$=-NygmI${Eal5nv*1<;6#x1FXR|_LR%9ObYMv8of zX#W`&Q>I_PvFJrRB?`FEuGU!aJ_4Iif605a=|19T?M|6(C*`5^`FP!=mw7(j zQR_DOiLf@iDrx$=nc6BUpZ?f2 zR6F0f6Fsz@G#c5$RreMeCqUfhwK6YP5xZqbRmhELnRhB(E;h_tf4l=zNTD=mPsQDk z^HaR14$#rmVwl{bT7h^?$7eIAadEs*{o1FBX`wbbxb)*>X+Dgfess1pp~1wg-<>t% zFnL6{IVR~`G9gb#H9z85)+*1hYl$;B`t99wU{5042Q4JZ%*F~j5XnUyM4TFIvh{WdfQEe zOPMzf`3DLkD8UC>K!Bn?n6E!sbAfW71A-l%Pbka&XPBBw(-lTTl_fckTHMO>S74)i_-a_} z&+-JzT$ARPyzzNS`c@#ty=(U04M)!=X*_v;G_|Ad2PtJVnRN9D!=qH?|ka zsx&;`qF2M_H*jP*7=#RxfKw#18%HPN{Z%>~wM*omOqZMFT)3-+_nyIdcU!L>tMBgB z4UUbjCx%St>EWX_$mI@Rw;2xImlytK!4Utxg4m|L2EX$v$YV$2iN>D9#YKbYg_~!9 zPP-V-ZmMzmB_*fo-C^AN|6}Vb!?NtQZV_ovx};mAyFme^K}5Q{yITE@wJ zx=XsdyU${O``!CH=Q=<5;{`tVbFa1LnsbgZ$2h!hA1OOHQYu*m8D)E4&EcF_zwslk z(&h0M)wuYTi)UTq%KB|?Qe{$7vYS2t{T_9EM@h|^GmOoD ze*=?Od>t0h;P`QxUCCmh`)Y40VSDYX{*&N`Bf6LDrZ{$7&AVzs9opd(#`)cqA|Z8W zmoSXGk)kb)_mor;lE{{k$!5Oa>^3NqtyFViU$!?JOQJ^`%pku{q$}d$Og%O@MpN-s zF;K6~6ou22+^lKUNWF(aL)2BAXN{2#M^{s;ewj9SMo6vp#{+);BrmBy`SgavQu31#bpo(a+`-3B1qtRRIzKlRHPy*Ts}ChL zH3kBVi`(`{%f2A4Y6OZ>gj+r-ptNXDoVpTle&%90h_oEkiL{kUI2mpKXk~|ZB!iZ{ zm#TdweR$wN%u-&y&B9`}8dlMM_!8dL_Afhhn|}Xi!nJYNOmpD3CdF%c)aH4|?pGGg z&3z@uEMDLnS84YPm2ezQ)GrWaPvq~5>-O7YmFjvD3-lgrG4kt=@jM#=g}AfYIpQ=B zqg&zxjZ_`Cb|)4_+D!F$*D=S1i|!kHEe;|Nw?Dzd_$7Hiro+NuwL?4Eg*yTxlt~`` zfd(pi)a^Iz?C*}RO*^#Rf^>%koc}mAl$@=VwtQh^koi%;izJxb^3B_k_oz-I-yGD* zk59L_Kj2^6EHzzW9N#4YM;Ar&3DPXRE)1)xd{#uU#LtfIel#mt#|3jI=b*asRAb*7 z>kiY{YclDUX&4ST>@8G}|MitIh~RI{$`cMFuUQmRcfP&I9A|!UU4oY2M%{U()0t1? zUU3YzGU{+7!Jrl2DE~}5r)p{Z%}13JyfrDfTU%Ylt#C}23ke6=N)&BBO`jJ<6~tanyMa|vhu$uvl$YZIc!Mh_FQ!F{0G+PG8OKc z_`1oYAug|*b&*P-D-)R*D=KY4kBB~Nf=!cv+7nJ?+yTcfLjij9bvZe#8}aTx0b9g0 zxJ(h|gUfxX&6P+l^xM~tsH$9{kz`k@3t>20^(l}YD~iEum=aV==4}}YG71fKOOmfL zI+DX)L20Kl4+AxPaGxTG5JcJjwALWdC(Kgue)|BhZ0p5;Xb!VU#ymn2SfDmE+8&4b| zEUJk#H=l^a9&NS>3KXNsMZm01?ZgOAG)f+;kgoJj?aqr;A)_>$c|jC4{Azkj?VM+- zkl2>BeYM2zGflSPnxm-biiGb9;@fQmyYQq;Wt1*9W8rvilN@mMbfulwZS$U-=PZ2k zvw*ei|MOXBiaT{L+w|S{|1hYtKF3nUwt@kh@E~aK6P9XwLZ=@+A2}CsL*%CC?P$>b z%IGAg`U^B893zf{VdFF}I@noqgO->(hQ{+vuO$)jivMZN0EAnC z1gslYus%5pW1io8$4-|ws!A?!2$%|z&~2o7RbwYeS?EV+=tXlRio$NJ{c5GRCrEMV ztRBeN9}U{W;_6m3NB@w6HR*^!|(7zokf>f?m2p75WoNs}OW{Q@3_6s{xWCv4x&k_oL0Y z9k#@BGmf>#$p|xAT7ZuPHdJC6rmHLkRUq(v)d(HuaM5s}8YK`?fJ)Y~^K#InQR;g0 zU#4R)>tF`XwN}fa8epNcb6B@@tjeTt1DC6YR7ac$&lAI>v?{SiXZ^Y62ahV97Ykah zuf7#a#+fKJ@mi*PJ~9!_k+@&kW!9-I%>Hv+{^!y2nJ2@49@>^K&qXDO)l!G4Kuj?g z-f*;+X||X-fU9uZ(rQ}Obx^D4A1ncbvuaLAjg1OrN1$a zj8l&SBV%|%X??O0M`5MqlHlR(y22$6)^U5B@<@de11L}!U2Ih*?00~(EehlqIwuyw z>It`We@eGNz_mJhxNu`IN?xL2^TmHujeTr2)YbaJ0bN+C^fPLo&uB-XbJo7Z?Gu_F!bbByH z+p{Ar!=rCJLGzQI1wE6-Y`_+^TpsA2u_>1t9fYSrcs;3?O0|z_Jn#F1pw2 zN^<`<JL)$d4b&jZyEAkn1<*FTsiud`m8f8{r6xu)c$zuHp@ll#nQ%Esq%u!8z+a zs6BaP;F71J>SD03$&Fzqn(&zVn9M&EtW>m4QKXDXhgPf27_O@LNZfAWA@_e=L>yj7o5|Itak?zY-KYXBu<FTVfV+C_ zU>;=D>t1Eb&;EP;iZVGL^FsB%1Rbnk%)t}PYcI{V2hB!i*DfSDrGtU7eTz>_S_A9u zhtwu`{GcoYbf=J%ztw91|06?#aOzWk^nv24HW%Bl+ii6%LR%IV zO0#lc(UvRf7LU;rLC(Xw7DoNZ(@ya|)GCZ3+2&uibpMK(vivVPmIE#bK&XsK4#kw- zE2bY3sC>=RP*O53KQwo9u}5^}^~~emSbA8;)YGf0FqEP$Rr&DUY!VO1ey~3d$LOL? zHQ<#h4Jd)pI4^v_sSTMZf-^DKiGfGPA$Pnf9Fr~buRJTcP>4*{aMqCyJ3?66~C9TqB5$01gb zW}6}bN?}pw!7!zFuU_@+Ohu#Q?!Df}gmxHo?BN(3(fMI~A3vEz_0E?81_^D?DX*_o`HLMA=X|nhn^=BQ`&7I`% zoz9aO^7bE7(O5Df78V=+B>ZknQp|3il{u%XSe^Ub5>-*d|Bfv94E`C!No7x)A3|2Y%)k zKwWhrkM3aFizzUdTYm!Y%A@dPU(Ms?_V0{`mMP+AWlkEh|pd-!~# zYQ@G?-)qyU+ul;?yzwAKnF~{f`jXj&kfS?YdpG{Wk>u~nDLpw17r+~;=e>VlBC?c| zO)EDxSFt&A|IMOXN3X$X@a`zS^xJagE^$ofhJ45}?R)@ObM#&-_@{&I^ODlf>%D>o~-(AR~#z&HQT9&j6362T|CgSKiI-B}aG6n%QvFicha<8v1 zbLU#$>hST%|5=R(hxdUQMeH+j{mC2uPWCj|VR9A}iIGT{SC}2lzb`U75&T8@(X8kN zyhmC|*b&~0l~~tbB|F7yjMu!WD&F-w2;ZwN;;TBRMi=MXD2;7bLv!-ix|>v$bjURj z=<4lYM!CJ%69ewRH^7w^>e=@+jDX82VPfK|;Qg@(l>aM&PuZWsOy=uYJnt@F?d_cn z3yC4L`MiXOnrZgr!v&q3us0m5`<25+z!u$>+9u&2E`V9PoPs|JzVO-Rpy^~GHux>Q z#GfbJUfgcCU&%qJ~P zmkJrA>`oTS1B6b=>F#%}ol+A;gy$8oF0d~(S2Ci8a=+ZqG91sF2cH)JIrPTv^F3ms z1O8s5YBTh+Fv7J*Gc&TlI6I*0k~f~B zqM^VoJQ(%{9|7Xc!Ugptn`vxR8{3ksFnRsaPvoSERW8s}kB9G(%WOT$AH-J$4B^yi zqoLrxJq4nqP#NB@RaKd7e{R^NB&xVQK=`G$$32x$njh}6tTd&L*-(yg)#E*ag2)my zGl(*nOb}2+R$bi8lc_4}85>nrv(S<^W_HUxVzijFYUgi*CfTL5*+jeprRrAv56ZiE zb=BvIZ0*7#ztKplApAWL2olJ_vRdf4`u+LdRq)|l0k~uK--DU8MF@|8`=!B5neO4^ z{k;dT<8J3hg7y%wF?R(n=PET8_=t#z=U}e!cdh-Ftd`3P?AZADLIrTA_FZgpXVYng zYJPfj2iwW{t11M`@cV3~@!7Lvf=(Os>e?FZyLUg0htmfVS-vxBHk5(!6Ap>z$j(jm zXRal~Qe8^0;{gncz}$Q3q3U-zYvs#^-mQjUYv z3_}1sgJquspz|41)7QdJ@>C3A5`f~d;du-7`Sa&iV7VUdijuN_XVg{N60MYrl>I3} zaJ44SG`(uXSaSIedBiUhuuQ9dsg8&7Z05c!voe0Y^mw~xD^wGUG0q-UQ-@1HASEp= zJ@aY{lJt?;L{%{E1G1pCaM*b)7D#>2nCU~nK%sS)=odVMNGx12pC!5aYnMx0?0B%O zof8G|u#17{HW!n}7t=O_98=93{VUxBy5rP%+#_Rir)OkjZE6u=KN3}X3WqRGkdQx& zr`;i=AR4iBc0!5!exO?`p}>$5Sv^U-Fv!5RBIT2URAM@bH;zpGou{v6Wq-XVj-zF* z9ig$U6zs&+n052B*_2cm^ZcC1_PuDQ&cs&QYUk;svbOEG43~Vt7b?bvZSp+nq;|lg z**^3>?WMtI)`8mSPsleN&wCb85LF*7RV<2EF9k6P0vwCyJ1MM;-~n(t zyg8UsV4K`YqNuXJ)Ux!j^nz4SFdfLo1UyEa-ypz!*R=%ay?wnmX0}`({s_?Bi1?h= z14z7<+u%vS=x4gGFSM4&$wyv??N$&!wx>%;Qn;))gTOR9K!?r7o{JM(VR2cBEF~qJ z*%ZznaT$(Ns#v(#L`utaVa6G*a2X|MBiRwB_fL;K&f|IDWDi^+<3c~vR!e}h`u@Jf zn{-DU5|4Wps8SSy?sL=e5l_K)iiMrW=oIr$GLpEoWboe-^I9v9+g_TIR<4tNCR6Xjdg*j_#BVQe zZcre5j7}SyU%;3BsM&A~zP}w1)v!=$NgvpqM1+C>$&v2Ka}|;E@saQ4 z5hUh36y>Vns_t5Eb#)C9?mOhXk8a|(dcq+P^nrXtj;Gfes8z_vARusGt){-<6uMc} zipY~OiHpNloVV}F_Qj+ic4av6L)&g3cC_unqwV+jw6MS6Zjz`KcAba^=5GMfo0zx0 z2D|_uV$SK?u85jLW`6+Bmlku2&y9WJ*9&D$*jEHVKhXbj!8PA-^lHvJGRYLtMCbvg z(pcSab~aw!>O&UQJ}k7&apq)R8A5P~@NIl2#x|j{hN)iTKGK}ww9}HKhRfiHUNS~U zYz--mMi>))?~gTK_25VPrV#$Bztq{)C-kF8M75e%ld>f%4X}J({YYJi26Hu*C6k(N zZoKLOOOi)3<==tzZ^KVb4-d$mY*Jdo$@thWdufN*e6LX)SjK>y`&jz$pu`82=?tVKkgR2U^$S= z6GJBAe|)_b@iKnS1sIGcaaj{nh=qT}ECEfaV9Za8j}Ola@U>Wlg%ZZ`ps#)_-F;v+ zJ>f>^zBP1b{KjgE-e@3c?XgLt(dg9^ml4Vmlg1yQ*PvSI#(@mjyO+hP9s;hcn1ExW zrm6}N&=Xbh29tI<;J$}NII11UXHrI2=Hrl!t60Bl`8eDTs{c_rY+VV)aq z!5;PF$B)-~dc`e`rOkbJz!}M#*gKW)uptCh@DYy;CIpuOdO3fi|2gjoOJ>*YB(Ns+ z%dGnq7}DUd5>~s&`;#SIT#$q-Jm9b;12Mx}mK1Gy=<%Wc$Oqo#3cSdqxR32*e%)Y- zwNm%N?dr|*R@U%5s6Kq0)^-moR4h8ZSnu`Vb9{#>_>@W&f_rx7|4KTI<-0SW^o6xN z5l2ZVtLW403gpj3)x|d}dqnt5aUmh}=O0!%(o@UB$jSIXX;J?zreT_~A9 zRP^i2F!x_@Qo+VEe4n%Wu2!9?EmU`B)$hy1hWYMm8H_*+iPJ_q@hcCO&ni&(_!ycm zMG&B0(7n#sq+A)HM-~(VclZdq4_f?QiKz;2BC~*S3YPeIj0~4UhaR_9WqaY4(UxOj zY&4#Tr0Uqu(#}`feeU_4RuQ@BwS0#4`Pax%U;I_|QAq?-n?3L1ZA!0!?R@=V!`|~Q zo&ma1M=ei+z^VfG!~`cWoM(Yj zRaFI!_3+=`06gAd`!k@LgOFTeegx8h=gkR)C*%c5ws|gYQ<*CYmGjN2&E{RFHNoY~ zE~DQSjP0;D71nUE%VN6wwNR-@$?UG)esiS4RKZ#O>PF>$E#mO99aQ<#%>uw32Nzc? z`C)#kT!BW9{)(EFjqUgGJFxMA*iU_DjRw=(x0#A5oK%ljW{W>zp-fFpCkhnc%T||o zaW0Vo2~G(3`l0z=*KyZa&%vRYDc7?W6ciXJm0DHHNa;U4KIG)&jMN2TyElUY{7@1; zoU(a|Ip=MihcH23mh`uTwxwr3a9O)+#0$V-SLHDK{8U^SC?(EaOg0ubtVqQ7lF zsrVd?Gd}>z56}R(nND+tM#IDunR7Z&X|}+({96Ou;DETtLj4x;sEW6Gx$o1AwnlOu zKF%6=$(J-&Pn;lvy5>-Jj`yu$R3Bf3(f_R*U3i^Ly=P~ql9A#*CR$x#mFArDKSZ|5 zXrpth#Za(GqqQ|e!-!lEh>`Vq$$>9iRF!3s9ZWU^;?~1E7g9c!I4g8 z-+Kb8JB*+QEJDXFlV(FKfmNN4Ex5mOBrvsHH?W`cfEysVrlO>j21v83ok0M$t*~Aa zd^dyWUt_f(>3EkR(zPQZFOTl88=0Oy^onb~_4#KcOT_hR!C4CXIyC@qYXxSxkFM0< ze0$Vkec<4y&z4Y90s%eU#rsr=OJOlTS- z&Q<`14((@DR^S>?_oCG2U*uk0giYgXT-5@_4?c??jAEf8AGs~+@-5K#JGtFsk%=iv zOZ=KEu=T9i!A#W69!l}%S+N5+di=Uu-LL0Y{Z+auM?P4n?EISqObx0MuH2E_3?H9# zyJB+dbB|rS8Op;*UtI4hOGs?Cg*1X@p@eODl|VKpAT@qvR1UYRDR5HC?X#F`X_*j| zrFy66OX6L%dcdIlda_8}sxcXEFr{O?w@mjX}mhl_eOEpufrDJs*kC~HmLS@yRx`V$~CH}g#wXh#+!_Viv!_DjIU77qT1@OPz z`x$;Pxmv#QOw6f;rpwa``cd}YbETxkk9GGQ7EKb!HHX;* zDFuay%&lp6%hQAPbCpSo21Sa8a=KUAVz-%OOl%7ndv^Br1;)lDck3~7$9E6kE(R|t z`G{pf5jW}gT(z(IG4CNjus4U2I(#4yeZfyDHI_*n_S8Uf;XP?9$?Rr7YIVjcwFM_~bOG!m_vO|+$voWb0Z~(GYBDRCX zcA(7wd$u*+AVYw|pb;1wy}GIg9?)L2$JAv?wOFef>D$rPp#HjqgMPRuxTi#iq>C`z z*en-r6Y86dlzz4PYc|e!9+TqR+T!`6bH=x?>fu=T<=v^i>f5h2Q4@%nHJ^fx1j-9} z3yrS36

7W2JO6+A4o$sQT-+ehy*5`y#x^#-XPl?J4M9Y_eH!jE~&18J9V}KP&TW zq}pAu`Ck3he3z-g^QSL55$^snh1BF5Hu0Cw&5$_NY39r_@h=8FOUQ7f^$;q&wucyz{ubGQy8%T7#MQ4>%vy9GYsgX zz68rWR%@*d)Qi9XItGcyu}|{xIACnL1&a~8`WX!-qZ>aBKTA#$a|eg|2qUDstRey} zt50fbZ&3M5cxfS7SLHK4;aE26ExZ$jJ9#c&5I@dMR6Q)4U_V z{_5L{(A#VMLmnibVFWmyd__9Oy;)3JDw6Owj_utp?2xm|ITX*6u79iRJPO?pEaqZL zB5-7hABjgT7JdDIg^h-tD~=9Br-UUh-{!lG>i)8MECpfA{MU=G$z$%nB*aPU8`G9Z z8f$A4G)Tqeb%?dZtc;C~wu~+>FBh+9Dbx6R6yyYc^lz+I4hv?_5IIMd>a@|l#y$Id zbvTg9@*UjKF)oLxih?%BI&c?9ay?E5buKH=0wkWXh0co-0HzPyour_q_HQ(s?29+T zL`VMsL`V=(QE3DO(omb?S)ZVPUL$u@=Cc0aPD3%DjJ{NShnYqJPZJ%TL`*W=6Oyo8 zA6|kj$8OO&0U*T$H?rkNniTfU`l;W)Zo5+`HS4x(j~cZiqM2BuYe+m-ukL%P!){C$ zc%vCLP-eUv!7x&_2p^nGYHDuWLflA|g=!&AZ@T*UDiPm}0KtcWtELB~*3&rm%aM`u zK~%q3jM}+D=c4K3**?XbynN#Z7aoqV_>DeRh@zCRh%f>oVmXHOJOE>;&i0KY%`RV2lLY`N)j2jSiXD0Run+`|!Q0c}G zuY<&p<{3ryLjsRg56QynJd%N%7klNtTdAa=vL^Gb=r=UMELj%;yA#9p3!~}kjJ%|h z9v@K%{rHxVVowzU`(2HozF(_p^J|$i)mL!vbT2;tgQe8Thia8YKFYkgi}QTk$>%qx z7WxxhR>sU}@mI7QgKC0O>&03E!xngZCB3}WrnAv$d``!EKR-g)%&^qg)^0YYwR^RH zjWFOM^NMj|Hg@*(7&i`Es2?{imcK-uC~o5_nntU2CW+J6#~aCEL2qjdO}*-ObZz^X z{nMquk^skYDJr+snb!Y-pF=0_FUi_eRCGK}+0&nq&xM`cBabn1Jf_{+jcP-h;u{k; zXQEqwUVQ6cTM>mC*QO2gL!HJXgGtUC1>Bj##>#i;QrB_tJZao%vK=%}IQHX%8Enyl zVQ*MJsCzbX+cUJGI$+>jl$lbtLGqSdtOWmVO%|$?>RPY4M^3%H2(^;A^xTM9UmkW zd9<4kHTv*#5kzYi!7CA(9GvmfyjA%cS-y~39kQijEs+DhV77WW>qYHrf{2OV-}6i% z+?H?xdy`p4<$BT!RY}T5gLz6PtL(Ju{z@R1<0AJ3#I)1?Bk!_%)wNf3=Sf-o_mfxXi@IeuVIIS-vs9+TZwIa;2)|?&LO6FbIx` zD)TyR%Oh$!PsgvJv|nnJ@l)7zrgk(kX0^*$ z);s5>ub5BcTh$Pw67nOso=G6BbBQ)BlTw5n?6CQNOqtVH+c90X#qSw&M0m}j>D1KA zR($PdM08XW@A?heXPk^)cWkfOylQw~n~r7JnCyeuqpwjneJwt}^^c~|Pzk%--@lLR z;s4uze`1%Hm+${r3zIyThHt-Fra#B&hvpX$fSE)$ zEmSezs5woi4y|49`vXn5On1qvmip(J67t*oZxixd|1?JJX3&Id&AA}Jt98I1URX#DlH-?+ zn`R>F*>L&tQ~N1kDBW-?g<>R^a`1rKIvhdJYx@K7!>0Pw;jFu2OzP-IE^h-$5jFO! zqRO?Ia&vNOBlt!aV+6s|n!&sjA!AC^>4GqF^Fn3Z?S?2%E`hTT^XoEP59_smmiU4YBccG>+L#Xh!~;h{7@AM1D8=Nv$)uSd<8yn6f)sbON+8 z55s@PicH%brY{OC{ksZ8B?qgP``=E?E}^_ghkJ{e^ro+vul%bp)f4SMa5`7AT31M= z#k5s&EW;Y`fiP3#;F(S|Y;;oSkDoX&o2F%Fj|D~G0?ye~v*d>PqBS^9nmrNOQW6W% zREZGXY{kWFS<881RCn3*^)K4q;{yKH>FU#M4&!Hu&92GJFi@p*zdQPlcbBwF%9uYb zP5&Ty7Js?a5Zrbnv3#dkK_sX4FbnHLXSka;2w~UXxATv%v9D|6o#(2>n8=;QAdjSi~|eK#k()Hw{Zwk>mq@z6)ES{ zsQ1+Meg+8}b7ER0|8z-gzjGpv9(!HxYs}9D^_bP}sOM7gCXrfjCilVH9 z?x}y6Ly;q{@s}^EXII4Uy0MHtSLWSUSrJv%TCJ_$oXsm|^X^?9yhM@TldLQK#z1e~uP`Q2h0sKS=x4UutlwocYegqJ4>V*|tUJ`{X`nQfkRE>aA^KT$W4Z|3)= zNu{I`c&O+(r-r9hFN5mAz?^khCY9-r&l3MitQJcr*N?QZbJh`&Dks%Q9n-Y6E>Vcf zfb>4>XV;ADJGlWGNh9;K75Ez&4a6;WVi~Z;jkEjY`CtwnW8z@=_$yms3jZ`sjuM!* zprF!laJShZCKT?-;t9>c9UB1p(s8EK#7D!7J%)Q}TQU{8<45e)(WtpQ|Ji>}NFQFq z%k;(f8noqq-g795IiMsc9ZVkVT{i%yQ8t3NT0&gb2)uZYDianf&HUjjp<}avOL}*s zw@ibHy??>nic*z$4SdDfHKNh0{Rjp7fD`NwVTOC?El z@MRYxx`o}{t0U}oKLSRxB(ZU(;n}a>YpF~;NthT6JUKmT*`49{mK4L;qTwe zZC=FQUXT&RP*D2aM@1o!UAvq_OEushx!?W%wn2BbpQYOyy*uz9C5?X_<+`Ath=^e) z&HUsNg8t3#@U|wtZd6j_eyv%iSbcH*rQvpiz~SaUh&p&4gM=r)R$TAn5lfC8f=d#e zqh5utL1DQjU$LUH$V`N71O?JMjE5_3THCx+Dc6^0D~snV#nS#C(ij&DPf2D;#qwPO zcUrVvSCDvx$SA+-+cc((WSxIeB>wrx;FLst35nT~e`$`a^mHLZN5G>kOX4EDqTpaK z;?$_rY85Rf?@)-!;%==$7zsd2RJCq;5Ld5ffevzRNh-k24&w^3%sfG?_+Jrl ztl*+g&q^`vsI~A8MC>mbV0NHoFcHY2I30)S3K3W6`a{dG`%x58x}^Rh%UDWF>IS-v zSx|*}u3RkQgSelix*V;a(+`ku3y?-zt3a1%~8=;=hqx5ClYQ5Jm`E(eutgcJZIm`2$L z%OIHkE(KYtr80VItN6QmdA30)9kty*hTG*6Ff^x6w!5{9qi(wKaEd$sGyDX$f(F6A zD4h4lE+|~enh5j6Bds>$7ivSg!KUP8l_j)INvmq4beyIS*yQ$7EoO@~d691|2N`g6 z?A4Jneq^3M)=Mu8^Z`hcA8dd0pz&VQ~jVhmweem`>LPhYJa9!AqH)5iw2s~A#)36pNA@_AeXW^V{+H+!|d8-J$WEmdI8Ilh* zSIY~6RGGzZD_344x$lul*Iy_} zw}1OyHO*GJb6X4t`%;e@^-8n~IAOGAaNmi&Rbh!v!GSji+yO zHlKQ=@HukQ%5R{O(n#=%Yjq~DKcDB3rJ^!^hl+}rr?Lp)CJI+q+rB&7miG!(59mMW zReG?er7eDNMk@zcS$1vi@mYxs4pj$TgB=D3=$74Q;_#pO?8cIccG4SzbSSJBuT^ zw0A<1r>kqM`YxH_z!T<8N|SZt#|#b}ndG0@$I5U1!|m*PwRW5(Vi6ibVePxK8xqRiJti0H;(5j6#JiP~}zA?9;^@ivMn*`YQ-VsDzwt*u@9LMxqzu3s=b zl`mgu6|UlHU807Nw-Z&MVeTBqyKSSXODeI}kxsKvxd)%nqkpiiVxf`2wp6PZW8Qu% zZK}C!nKV85T*xjU;KU%NdmRaxV(?&dJhxw*nSof-3bo(qC{OCbjB8`h+sWpwkQc!~ zlcuJ}Z5M3OeU^L2&GlIb4D5F+GdU+)Ig>H%`LlFpn2|%uPe_a3gr{=-7(}Sq*qK)n za)e=a+o~pFE<2lH#7)q3T(kyRvKOhNOjyn7n%^IGUas}NXKZfZ`9!r#TS7)05wMlv zm0SnR1+LG>`De1>OJ9);ol;2^^Y%m#>39B;=O1a}%ZMQ8$szH2kMN-jG%$dzuWOY$ zm$tVR7cP^QK?jLGkfy3CEN`0d0$$j<8wy};|rpCrwXPe z2|a~&tYlub`Xv4Jd>j?a$<1ZCuHSl8I4iTdFzW`UAwtp_UJAu?5b$ARwM?$r*-8BF zoLy4!5Q7Iksd$5ja3Zfg-ePa>=P|*)>uU=l`*Q;8NSb%Si!b57G&z`ZK3(7%52t3C zH#)`AYNz)p78%taKH(@c9A8+?d=oJq9y=L7nV?sSy)&E0lnufN-JK88$p_@zBc0CF zdWiRvXHNY>Xd+vJ?E-O*N1LxWV(CEgV0sJ8)XN1GJ_- zjLqh~E7GS;cE48vFJ;E>>CXX&ozvNBC@<&d9&ba>cc+m0y+dxNdADYxVXdhdUyax1 zlNjFu06Bc^@#TGuC;WwE{PUv>ELL#nkZ@sI)h;K@e!!wFtkg-5LB@sA)fF721G!XLH+Cjkea0;c|F3Ho&x-c2 z9QV1=WSoCp(#eB9BH5Ud(UIJhD%@Y~2m!$iG}e&bFKHUpYgtI3i?iHa~r}R+!~)czo?-+2$8F-1Ci8R|Da< zNTfP^VG$Uzme16@Jo@;+bmv(s`*7>Q0fPCd*LV0OyR)3VTkr0QlZoCK>HAA{eqvNa z8rkFbcbC#P8@R!XQI7L1kkL{4+Y9BtPWuS0KPJ99J>F~y5qE61JVNViT^_85g>R0R zwmixWZ73pp^gA6GbqWySEo^A50%fJ|KU(DX!dD?Y&ctHFX=~GDawkE9(V1T#J=hr) z{AJg=vrXUd2zvzYN?Fd8d0bg_GpY>~Ze{4aOJ%{uPrwr z!Vw}3RYQsT++&iMHBp7+FZtgl=wHUiZOz^&hIF3B-55H_e52<|km@_pHryeHHy%P* z#CMMpjPNVBX^wF}bX2`lP=FC7xQ(ICFytk0@CzYq*b2&Mi_d^`$=0WL&V4dvIt#l&h zJ>9dN;V`h?K5pPj(HAS`zm|}YAms5#Oq@~SI6(>t2JX2nAHL5tnd3G(?Pnf+dm)V{ zl>R|ZNajv9ZQJ2$VWL1gqs8f9_4;Iuev(R?9o>7sS=oZiEy{jmv7loI>oh zccvT$9)A3nsRFOl;ef)!ZB%^xCo@ST)XVL*Y&rh6+d6JRmpjY8Sh}7ag?yK_H0SHn zv*8ymD{;zD*M~)=GjB+S0fs(7{v3&*zpdv`hLiBc7kF%uc#|$ziGCgt+P%si&9((S zU_##5h$Z)kjS$=zfZ`A;!1LH$GdBSvYH*Ll(kh2XP)kEChuE&EG`q08&X3`jmxl;A z(d(|PD78#VCFFsg`F)c+SEKXc`Uy=2rPtagPV1TXPh=t{uwft18YT?L7N@c3i%ZEE0fuy>(_*;Pn9CF)w4amu17pi5Qc7)2P3sU&hD3&{1S^fAIh?n;t%&}G(BA;%BLa4OXLTNvAc1rR(*vU79 z1|%sw2>l_HwQ)yr)(CjXP6L|3MJ0bCT{_Imov2VPB={Je7u}wM`ssYf7&~1ntq@A_ zjQ8X4Kk_PEUkY3ydL+2H?Cp)=S`V9(z0KX(w7`7wJC39El(S{vw%x~rMZ$q0_4a}G z;`$9jP?^JtUPCft9a&bE(m-@a!0Yns+NJy3TY~{SU`8$X*@oGwHl->Aw-Vzr&|vWx0sN+hDB96i{Da zwqjylUSeas>Dvq=z~}SgkGMMMAEgj;$#i$l10HsvH)pPQVO%zi3*3aSYpiD5?Exd^ zy0lquaetQoenwyVZs}>nk%I4LAD?ae@ehTW&vW6S8%4nyP2Lr3_>M`rBz2?Bh6BW3 z{jRax=YX2`a7&jjmjb1Sa`L?A38sJRUj$=6U+YUiX53=*r-!kZ zlUsdcvSibzuxp)r7s+_W!CMYWSF-+>?#T4sPl?*`-;M|goW-FSTv!<46|(*=Q_DP>EozAm>{4RMmHqJm zem9f)P=;89o%MwoWTJ!taHl}Ol>C)cLc1xO7=0oeP0DM+<*@p*?ddvnPXdmdr3lOy z+%~uDbK!(5O|ZzO^38+8; z+XiWC=%Y_6&#c`xGuvwI$S-MAH!h1m>Mx=@=Pl^3yL!J1grb%;&beRT$B;&2!1CDR zZ+$G+Bli17{?W1DcM#)bf7YyYQ==-x4qwxY%^+uz4NJ}T#9%YgG8rP@oS`*RX8Z@*N%{UTYI zXls#ux|u858x5{$>Rue}dZ#A0sW97SXjpC=(!IOJFS$~fhL37mWuM8K?{?`nhf;&a zcPJSc!g4xAq59(K#By#ZP5}Eh2=sA0ejpWV)P$a5)7c&FtD4O_CaCd0*J>)1G*l;> z+oSvs>oKVU_Hf^neyfdU>WUD~mMw;;HzngZ?y1eameFt9ot(PNbKLu-+QsJi|9oXD{!17VU6I z_(hTvwEY{cAwDDQ0KMVXeZ*5QFjFkD0x=f}hta}9Oe`ibQG6(shgP|q9E!ty+UPJ8 zf9gSt;mn?|Q6Hl9yv4cvQMb+u6vSy=Hw*IduDWnz8RUH-H)m@oi1h|{uYnm;ae=}P zkX7lGkcg#M=>A*l+5tzrvoMF&pvg?3-I-Pf` zxSEV^Q@{Ji8PrM9JRmb$&3tB$9^DR28M4kwhI1}h;ji~xMBL(6f2*y6rjwH2UAqZ0Ys(!!1T#Cw$5;u3U2SKHyzVHJ{hml} z)gp@dB1ZN)?XzHZz0_1=tawy`P?TW}3Z1UMfVq|b5WVIXaVgbU!AT|&PhHHV9H#J$ zKZHxeba(jV^}~`QeSi0`&jz*@IfXkuGsGcgtiJjD%SJbxNI-JZY?9k+A8&*1>v2=5 z@sL5ZYvrb)xd;Dqr4w@0lArqfa2431%vaI2ZH7gIO-9e33O1SDW*;nGFE1;#+UI%V zi4ygzXqM}J@(N{`Da)3h;^T#{Lq!?YpoXDp=U(9{d1x(qTqsJ$zv~(w76>TWi!HAY z;7c8neh@nC#JuM>#Q+urnR6YeML+)4{UG7!izNd$3jbm)Q~TNnOkbhL`YLN8;oCbs9G2_*W?2{nTWqZN{8-7KifSxfCvo_A&@M@o4>D>ONt}M*TmhxY4i>rMc=!NH z!=`@5d6yl)akEa>%-G1dt0S|ONw;{5>g`FT`Juj(%mV| z(A_=oZq7OX^Pcxx-&!mc*9`N_u%Er}xUS!wcP}`gQj%M7BV9V>(&&7DRFJW~*eY14 zT$E`m6TX2~q@aoP^o?Dm@tahxKYcM&)XqI5>%(a&N=QgBsoY-4P!HCg2L8Ao9|jta zUg%C&nbq-=Y9`obng7j(rvw^NsK?bQWb&8!+EW>0^-hM{4KuQ*qdZ5#?eUy>QtZyFV$$t3ciXs3T9|;mMsA z<$WYw>c0s(CgK`Nrw9iPuHQOUDzzvGO+PgEl+w{q__K119Tk2lbj=omYnU$b1D*S@ zxI&f-yUHk6xzQZ~ytu;KBI-jQrZhVP5lODqp-ghChS+my3O%)xJ{0R34i;BmlRP{4 z&J^EvZCx|_C4CQN?UcIBA#Eb2x!|(5)n!N?>f%xIzOn7`qN1;v4fa=^W-dZ}39!tr ze|_KdmUUeWXGM`F7@;Y7M#AHyKLlLc^ELFP--*rY=}7rK6NU3>gA#U>@@;9z{dzpk z%lexL93x4&g)8Ifp}T^-o?LLi9YWS}6LkCyQGi%bTlU(jAIR^`R4em!)DFN@rANp< z^nD75DmuUv-t}WWZJ#~*_KuGF0%<(=tNlLTrRF{&64^i)9lBdES?gPZjxk8M$9~Ha z@ho~Ue!V?kbz_YZ7YCzQtb)<@mun;W+)jV~dn4)E-56lhFqsO)sZ&%!dI%08uHK!> z`O@g@XuU|d2+>=5`(3SBnZAMl6mjveKKRF|!l|g3-4PtR<_WVz%cH z(ao6MeZ*L|9nE#54q^i-o-Nb&%-6Ih-No%YXVgutw&V=8TV&Pf_B^inUuaJ^ztwFF z(+^;(xyEQ{lC5uCO6k4HJ+_Wk6RmVkL1KPgnU_|Y- z&^Ef@pkdVSCvE3^@JK@GN|gJ<$;4A(%K%pOa1K-nEFYjQ_Ui)$!fIO2mW$P-Te~BG zV1|FToYL#=0@8kS#>a1n2!0way}GC$g&5*M%vO9T0!jQ((NNFjexGv&@NaR5ni7KK zD90c#H2y-n+Yla>vL&J;{>zmz1!&7ZsVgGw_DWROk?nc5KNVcc(jMaU$DKvrMW)K0 zrqSll&7*30NdwZY!9lmXw;R)aIx^dYCu5FZhE6ETz^wvB-Y1Foj+aa0 zi8o#A$KQ$kOPTW{&Xt0aQwq$B1>TG8h2J=V1_n2+0H8-lvl~i(Wj*r*y|D`ISS@4O zTQEPlC<$odrr1_&PUa!MFDv}QxtqAO?c8Fpx9x}ZsduoWithSYz269}n@UDUjW#~L z6SEc?AW~^1PBO-@iKH?9N;YvV`@l6BMr(jC!VlBqza7p{3yCQTG1W#BMknd`vVL%b zmtRd%4+xK>A57nAT`O}~*J~FoRwn!w3)QT2N@nxm7&o@c;wFB^inaXmY`REu&SI$) z^BS9`#kW0j(s8EMk;0vI#$Ray(V2_U%UVjL7t2>8;i064!k`6N=|j~^Sz4hXj5_vt zyMW^nI{Kz*zlI?e^c0+QrrVRV)oS3_x4x@hebLDOUr9_Yk_!%Pe-IqPjrEW^JHbp6 zxD;EJ^6dYp3jW=Y>%}7V?t>Dr70TRo3Yw;rr%B8d?+>Y3dHznSZF$$^k&DBKVTtQJ z9)B}~eM2WLw8~r4bDnk)YQJRpQBnW5fBu&Y>dhN7xAsS|n>ddcCqx~7w_iyAFpJ(} zs{~H0W`ai7PmMJ+b^`M>>r(D7N|_4p_umv~om=$|_Pt^0P8o=%3!rNZE95r|in?z9 zSqi_a`ho!ymUu~&iN%2h4M|e#7ReGVD+>uV_}yqg5JO&ubjc#&=s{E+p8&Fu-oV;w zH8ytgt6F)(s!3$sjZ(9IS(Sf8bYNeY!Topl)4u|d&O_<-y~xhZ!LbO%$x6*++aT0+ zEEU5(qBORjR{MXSgNY-i_&?wOtAZL*Z{8SNmiby6I4+fO`mqQI`{PA|UAMzZOXgrq zP`5`MlnToCI+3c?pB@fg`JcbUUVyF$(Rem@#6aw7$dS*A<}Um#yY=%nrJ>~055!RU@}Dc%J5b30(}J2KfVz96+x$T;Zv9<}Kl#Yur+y(m)e4^O~khiOIo zC0oi8Wts01vAEm26XXe_xt0VV`e!}g`n50UmE0u~{Q7MZiv`Dk%Tdb#-Z^Nm1IdPx zNzMOrVO_E^e`tStOu_2pu;e9GdGpVskv-GB4o~_V5n*H-w#nvw1ecoJJ#G?oI)6!0 z=adG^O}TSAw`J*S#uaG4mAwo|z&4{F@~ys8z3KfJInugWJe-ChEWZo!>l20L+twWSP2KrfE7K8=ab>Y{38b;ygV) zYxcCO+X|$25>8lpSD#A7sj{*g$8(i1xw!>Od_0UWKBWBO4Lu#dV$bf=ezcu*iWVN| zP+`Jwx!$r(h2oy@%8mVO;$n+9B0CZ*n-EGK7%G8K%^r`3)$x&v58sIuH~l{^8n{*i z`3>Llme*yh*qMGBbQ{MULii>c-U=2)P|CYF27{i zlCzQjRH(xM701eGjUadgJ0SkzYZ#_n_7rI$j#@`TFVG!Moy6x3^^PDKtNkRhX}OrM z{P}+u3E1T|?51Fs>)uKup}$<4uttyKl!)oj3m(f?(i0C^2xKfm{GPEC@~LHPCrr zRwuvga$3nA2rN_Efvw|DmoaLHot4gwm9!yADPat-QA)gUH2aK+n1jB$c;thUYm-qb za;B>G;QZS1@ecK^uG-3U60%pbv2_|Hn`j!>KTG_n!=U$VjS(f`G0^WnO&y@N%2$uG zEIT@=g^e!-;*PErB~2y8@d-Obz4s3I(eV;9tVo_LU)$fkmCSwXx6|-lLduakDj$D) zlucw3tNq^M2!^gtLGp+8m!X+pX3|%xO_eVLW&0{gK3qflx~Et)#9-DDzc35^)1eIY zflKJ=*loQk^M3Sx+VX((OsVzrM}K0pYB?1yn@zH#ZLGTC68G5+S7j3E#uM`$$uuElMj*+0F9@YMoLjH(b% z*r+)+dH1`E>66D4H_Cx*>DLb*DgS%h+o2LPnleLE*z%1}^vzkUM?D2+8sgLo9%1Cz z;X~(>0&)%iuXZvTKt;bHK8b1@gyEkmt;L&?mB=dN7^5r=9qxRYdn-((?-dE>gCwcO zoJ1n9^23V1tGs9HVH-qC)ghsH+$(|6O4@VoM>P9Y-3<47rj|LsJC2X z1$>+N>J)aMsV?{=@*9WR{w|d=Q7Vyb7&$>Y`j91{{)cV|TOg-jD^+pOiRMJWPN>C8 z^YOC%7@j3ez6Qq2^hsGidEZTbR43N%beL7AyD2MSGT%d+8k5w&E%?6U?;eZZF5PX$Xg#xVojBl>91ns&JV=lX&$=nq2_ly1a+_@gHKW=+AU8E+`vTd5oW)TD- z>x@)daCJUd_z3D;**Q5=hK7Fm`74*g$#x^!$;>gAi;glMaIz*Pru9r~P$hWY>9b4K(bl2FNAjKBR5b$~rGT&v-GgKInV6;5NJgI3) z8k$gGdd2l+Ht1F;*B1jGYSF91Md)oZhZUhP;&6r_dRw_ckLg%8JPw$?Hq3iu*b#(k z-fp8*W3w#R=zQ>Awe0m<>G)i+FkH)}CIVkT*hpqGi#}*cmAja)c-qMy_%|OOz7!Svlp}@H+5-yv_-7Ayo@~yRZO#V3E&7R4;$dr3 zZv$8mO(!<<)oMZSOR>OMc6Yj{FTM4##S%K}56@a`0Wc3a!bvQ10-J@5&4$GmCyDql zptdLyLG#76PNP=3SM5e1`;#8fzkZ?qGLe&$PgA~s|1I0?)RyLk&${+5zG`hCQNh6d9yk8ruay;5 zzP9duc2}x&^N-?7PAp{Hww(zkceYePbcfCBOLhz3zY{6d4%&8^(fX0jAjw63T!$jW zxY4xALi!EAVcaiv#Zow|o^UWW z%@??Z%Ej4$!+}D|muS7%@TpXr9}^Q3CXv+y&1rWs3;Y)_cz&&_Vgr7{o#|pCR3Z+; zTr(28UjqNimOWx(6MM%flTg_~pU$6_A4+z`YrZZi4(#?YM@<*FLqweULTNnH51^5F z@*#m?@|RjnkNag+zaTMd&?V@0@dL*3UX+BStn9^Jt*Z zG0w#rG1e{9;HnR;$NV|yHSBjMsdHnosXu>P9T6N+f_q_T5zgt~ztMjJ2E8lf1g)wi z{P@xK7(wRqF(P|v(S>!VAfxC&jnzc4)Z5GA&eNVH@?!sEF!K&RM`f2z7*2f4z@9v5{8mEivuhKoXXG=(Ypci;BR_Zl|*JmRW z4Q>t=!*Oi|b@`G&y-t!Ow1A9?T1^U;I_P!=V8lxw6%UIg4A}54LjL6J)vjBlalHz~ z_PaX@KHbn8f3w`OqN`dCOX}W>0n2IqT$Z)7-1COqL{3DP*Xu=e3`&?l?R?qGNhgse zhsNj0#+HqX-QJPkSH1UM)b{K(STsPA8LCJJ4wTgys+abgwDB~xdWs-JleG7m7R`?z z&0LBuLTp)bzM0T?j&FY3^OCG2gRCC4r@U>EA%59~y1G4<6F;Q|HW@DcMl*izdoE;L zx-!v*(NP6j<34}{Nd$x`7+~AMc`Fs02~5Yz8VLhkz#JSBe%?hmG~2p%xe_V(klAt& zG%IasS#;qENDtw}+|kt*Gm2Tl@DS?i;W#Q1NO*&DDymg)#@4yO$O9DiR5C*wdoy#b)r zV82)J1!vhY03TI?6-{^duZ)p`#Y8R?hcW$ElW^e6T&*V8DQGDGi*$wIp3INu(P_7& z#!$(_mU+xDc&G9ueX+B%{96~L#p{Au>r6io&tNose>0fOo1otncIK1ewK<~$rcy+t za2T}%es;d48kp+Uhd}1tyNxcO>wi;!JK5&PcXod!lgtvB^%cS4WKAqpNQju%Ih>iy zt8-@AXT*ZBbub3*#qrS9GG%}+w806+G9+?qMl9^7YCTJa*DbX$;y8nLuGm1l=k3kb z93kYw_-`zAmDzl}x7Y2cO&g5)R&$!LPckugfTv+ zCp}Le1~jLry zH@={@Ek}GON7lQd`HjLo=84ta@!pCo4-}HYgBJlGu*Und!|0XMjr6EKRED_{RII)v zFBTx#Z*(O6eY8Rsd|A@Q5~>Ynia!74Y_d*&3Z$FXJ)z#7MC zeSF|W=Re1ITB&zeM_a(pY<#lTrLq7P=xcs{lE|%bq+d@l(`tL*v-j5Cb~K-VVt}W< z10EXimtv!{RVxRrO36A{nslmVFig*djuMK1-&)-Z{1GJhcpn20+0vO0+c}XiB5#O+ z(M?E5XtGo%18krQmBvH9;G_q^cNEw@!6K0au?_^#9AK)Ad1v18aw5QF>L`apemx-dB348%1*7SX$xE-spUoYgMT1 zt2gJZ5;P)3{dVfN3c_oh7SC8ZHB8^_ZBtAvtSCjyT4U7G=6e=lL}1S3az20WTdL*w zFIQKh;Go#nfCLy`&+V|8tGLk*^F*BaCHQFRsWaiU%WewuqnKG+K3_Je-Jv7M?sWZQ zZtVHde1c8OV>$&hGbn?T?MLoQ zcW1WJ<$IPZbRPD7SOw4nRMwRicye>w>g>8Z8eHYR_KNeEfQ9Yab`>WfNc>JEYJDU0tuEzexIJP40{fR;6<~ zFea8Cvd}mah;j^A;byp+;_Z4ivesVALu_uSSiW4MNqzJTC6c$aq?7ngoCQ46#N74) zK>b447E7%}chWfkcnv#aIS5MmGFkQ;{hrsW!GOu2{t@##39mRDO z0>Ea@3xVnnCyL8Q3j z^2V66Gl|dWW&PQDUxQWc@*jtK3?*}#RP5L*XNw|* z;!z9Fy~II8LT)S~SFAl;bgR?gbkr)?1HGI}0b$eRW&W?;Nn~6HS8QiKcl0YQ7!C|J z*eXyZ&y7UQf|kr<*MwIUAkk56si>a9*91);x0drQmVc1YNsAUJ+T;9T*3aZ+^5F zmC8Q*7~o6H9ggp1jkn%sP!?$uCime+84ee*;nw4dIm^V4N8EZF~z0qXd9uaBP(u_F=xn zp)tHbEd&1w#irI*Go!X9BlSA}#9{Tf6YNg((k=r;>jf6xN99AF& z7{vC-7yA0*-clV|lA3_e)i&PXr)oI`SS;&+js)|>_q#vxdCc*K-abJh&d(j6@(B`+ zrhgY;_TRjDv*O(Nq&2jOAnpUf!4qaKk=KPmQOfz~Zx?Mxu+CJZa5d2HfsyK<5e6Eq z2Y_2dGI0aO?s8-!SPkr95P&_IM3V(3Qb$V$v-X0W!5opr5^sp#4 zfz=k%3Wd&A(_LNUc~9yZoPh)rizc9z(B1k@0#l@3AC1I08!su@zJ20PO~%TVhy}ZLIBBggEzPRm|S<-jbIyctCQZ+bP#NB4rTS2=|XX+3)pVeV& z&t{EJ&xx{(R7W8Zrk8^aCa0r7GaGxuG18+K$Z2~ zWP0$AGMb?cLt16rHPc>{Gprgu3o#}**x6Th1NW#}h`ZmV3HhQ?#qpW(?H8%^HNiIM z)$$1VRX=4a0Fp!sP7&A@z@X{uyw)jrCzskAf<;w#wd7G;A#H?31n4h|jV>nb0Z5{v zqQ^s=%RiA?QA56eHwG+F6e5mr@W9C9W83~%>W=n6WNL*>n7hk^fqVD@XDg`$23b)2 z2nh{c1F*dfK(o^YX|Zw|Ac8RgA|fH1sqg$jKFFcezLT@CL^HPDM|&LBBgjs?|MDCA zDTiW62m??jFnpJl)aTv~@Ob1jHB;5uo@$ha`eq#MQAL23efIIAX!4bkiWKw(>Na3m z$P#gMLQcw@JA#S=>l>Whnp|xDR#|>jRmBI+0JonWSF{3~J&^7b5I5c*L$6R;VEslQ z&Prz`jdcZH9=WlecOB?6R^ck`KutyP(2l(REqvW4h6?Vfh20%VCLg8W)eE2mI6GMA zPDjIo1gyOof`TDi!)hCF2*9UB4kP}+& zynXfR)zjGyJ~Y6Hyg81Mf8ZYi9IKAfew)=LfIYU8NAQM1 z9UU)uX8|VU! zw?6hdHy<768)xGKG_b@fR-9(6`&ozAPi*bD1 zCGrO7{Ps_ufOVv`P6}^)eEVwR&EL=OC4&3okdTo(b{v-!g>{4#SxSeJL>lHDx~#sY zp@}k~o9_c;i7y{F2dQi)6_YdLdoo0J`(b^)bTbgzGeL%pmiZJXM z)#J$TM!Uyn=d@LZyv__!fUEo}hSwz@vL5km6_eveFUQXUtjY-2E3y?QV;pmg9#n9tc@Qi zG2$@kT*u0fOIP`P7FkW@rR;PG~i)>}H$h zpN8cly}h{h!<`1GbulE+u3Rnm5)n%uw91^a_i}kszd$GKEDgi8liwP)jEF2SJz4ul zTriT9P>6fIn?TbyaPU`=MMpq!d_1Yzh}NOj3KA1cnrm)Jho{M)IHBcj1@ICwDN=E+ zj}HuNfb{1JZQ(L_LB@X#LsF;=^|>786$mwlc8nw~%D#=oR!4m6sDPp1j`i!MBo^|w zgV4~|Fa1>}_i$)`&c1&r3yYOTp!Sz!%%aWy@TLkwc>CjPqe|YhI|D#3?Rx>M_25{7g^2!B+&{&tG0mH@(@%y63Bx&vpeA^tVq87%_|>G zhL77HjhU*vcta6rpOi4AAt6o2tpuKD+c}=CdT=^LY8EeX#UDN-5`j9eWMj>~pqu|l zeCZ10&clI+5-x=nBhQ1(r-wT^zT1kK`Tb`_eFgQJ8hw6d0d^|SL1^5T`G7He*b5$D-7C+Z5ON7| z#vQ^wanwvsm0syc6T(yBSm0B(YdOPYENs3nsjuI&9y@BMvRJq3IU?%0s@C}7SojTi zmx2`EBW*Gu`oDhqdVHVmeW|9-W+RtRo36REHUHxW1}rQbwc3a1h{Cs{3;TmNClbyF zvqHx1JdCa9n0j5IpLlN9It&(zX7+3vw_nZ#Njr@>LB6*p%oHr7Mf7-eG)Bqj21-L_ znH|2*S{esw%6=WB8+DrDKwjrUNtK&u7y+01!Nq7`ify7|gyeF#YK2u3R;NVuCmWm% zC0Fg23=c84wN1DB1NU7bQoUCRFk8#%!_t>$G=nPgIAy<2O+y%FG&finKmR`7oc{N_ z@PDnTeP8e0km2N1FySeFjCqaH;pseTt#DLLJG9|A2EV*tt)7n3#)+xYE~YY>l7gLw zot&>%uFB^_kBh8aI8`az$^UH7vR+6?7r7Vbnhh1!(v5DHjdi}HOJBF#7yMD3e5b03 z>y3-7s_7KFS+mBf(0|;yGC^08=#`Gr7^H%$xd@3aT$tC~co8%(wPZPBs{uy?x45N~ zZdvb!Cup=je^{a1NiUb&X5k{ar=-p&NN?r*n`Qo8eZR)s#BSgc z@q>!y<=6T>8ctx{@c8G_4osEvSoSX8F?ny$5QNjpbcEuVDd$ya7D(gQ()uBKf{z?y zqoSy?uILaJu1SBx?8VE8+hJJkX{S26WzECd{@$3WX>0_i4$kxpwdG^Pz`AHl*J#`8 zs+F4kvxCA$vcr8M>w=}GRQd3;X-w4Kp+V`AAKQ?3;eLAWMc1&N3t@n-0E^%u{Vb;o z^QsbU*%u-u6S9F%ubleWO|*hrb!^weZdad6GoynVo8`%})bM-NF74v4p$m^z1nn|P zJ&npbtL7v1(By0rWNU|EMm1xQykEu90W#?%IG(~YlI$~Va!gZG_RktZY_Idp-|N6fd=KllX)wMMfTAIL6a=>!}#Q#1M zd_;SR6nLLhp0^N%pT3n+V5gCKA^gwJ1rJ;0dB;s(JnF+*kC``r%@Md79??{^di}@g&yC zo1@+V=j^zgZ2aXdA-d$iqiGvmMa|S@cPVO=jyioffup%+C>h*g{M6JecmH|I|GJof z)*+*h6?!f_eZ4hswmg(yPghq5$+&z2AU$(+k1#nt>h0@3{KGaO!8fLJj745%_>n$$ z{E_SyQbR0xJIoIb53UfWXsOoVWYr2IkJU&NIcL(`vQi~C7 z!EhR6$fI%mIPJ<*tC{fVa$61>WmCRUt>WsneQxSob?Q?Kutx-m?-F3a+hau?5ddxbtPJVtvt<9=xV_TUPvQZx`78t?;RgB z-eczEZ;w8+AuQ6rf2ZwVj5}JOhJO#(ei74twae?_(Iflw>=|1~@tc_)ik@QGh~0$d z#Q}=r;)Ukm$A>x?n1T`qI{q{O?wM#_vf_hwV8iqWODG8NrM`=!jY)%K3X5{Vw35kD z%&)G<7{BY8m{2?I$)LM|$oI#+Uo{itU{&WbgWeCilZZeUhpC(lrk1^&xCl(NJFGxd_XE&6S0qfn=QTWHt)9%YJFc2K;^8%Lr8 z_i&duH%*tMQ=ZgD9eg)JrJE|rf9}E(me#lLP9-Pav0$k9y^Axrv4#doV_sWt?m6a( z4uKEdh?h8($7Q(ETiQ|WNgXWKdbA$b$a`}CnD21B{?Yl(+mnarysBcguk;9L!{AzzJ)`plJjsA-H%=qPHVgAV&wE4z((OuqS9-TzrWc-!7 zN~w5bq`+!?g;CPQpi;P2i+|wt9CX>wyOg}DTy8Ma*ArA~NPi&3> zlDELF7pbW$!WH|^qhDCMP7=U($j`oAUz*PhBxCY#@?j! z$W}+^sg`@7SNF$Xj8XW*S;jJ`#}*@?v)KO;PPd+lE>N%OHF0ufw{4`PP4JI#fr@Xf z&p8x@N1CXdej0Wi((}PaN6j-%8m}r*j`&8A#o2W|dr-fYs9Vi~G@f{H5 z3+XL&+)R>RxsnQv6zV)Ik-j_)$@*v4L-e<0ucL$2Noa7|R;>MQ!Y}YPFfsw!-n8s( zbTdls_){y)1((rS=ICzQSwqX2SWe&RUPr(RG>pIBz#-TUTW?j@pLz8!X;&qpAMJJh zO$aJ?wt?l1BtEIaBO>VAy>6|ee-~t;UftfdvRA#ww?^6)E1Pn2{^xG)bQkfGSXOT; z-IYc{EXwxYwZ(zkcI}N1>Br3h2~y*~`ShkzC$^Aon0vl;x9=JJ1B1o$rYeQtwi`K> zyRv30`W)hdN8f$u$l`d5qFsMyt-U+xSLbz?SZ+jH>cS4+f&xg9Xk^C1%K`u)F6+pb=-?ut$&;v`R`RtY%eEol zgS55{nK;^D}SWfD`g}8x*CZDwgnK0+Zu#S^ifUlS4`Zi`}$!PrjL_y^l@k zb9g^R&eTzt(|v9M)rP9kHEnH6Wn{)08=nr1(=_g4TOO@xw`ZAVFAC&LXC2zi{Z=q+ zc~(1_1KDBxMNsyg#S}8l=I}6db<0=OQIuxkl$btSf5OP9^MLQ3q}`Tt68LifOXQhf zeTs7%+sae77~)l1uNB764A1UR^w0TN*WlS=?&MdJF_6IUWEhHxi-T_?i6CM%yR?LD zYBxi|>v7rRJa#OM2QlJ?5lG_s9w(JVMa5aH9z1E3OFS1NHOhvRf4cV}Aq84b&`g|c z8Z4hc?voRHb6dQco=0eQ2|qh}tVj)Pg^G{dUU=yvEWHOe+|@UaWJSK&pX5$jND9%z zxu<;($sb>}&uO~oWa3h6U$*>I`gkrS)g(AW3o&3H-c6Krk zYsjP|Oe;;|^kINB-sJ~JjYV=$2@M7=EM6}j+^|3@1hm20<*f`)VP|KKufgb#5)mEU z;62@~2FoP#1CIWX9I@bVtW9gzj-x%@+rT@3#O}@(i!J?ZyU;pMqhdT!q9xFNF!~H` zwn`7qqQ-`C(oQ0h_+!YiZ8|a6kJ~SW6$hoQTwc4_%}4dY=Ij>s7K;t=+E*4Jh7RnU zcSqOVoVFTVXgFx#MTbx2@rWPS6O)yu34@oN@U%8=C{ZeLwUf&j_%P$-Sb%l#!eM4H z&U5mt0c^qn!2!po`}JH-Xin?d{9DzvH>V=R{=xjfl<+B&KsG)(}<$tjol=P~F zKV+H>Z8{RFep02&&r1hT2CkQ(S_s-9vZ;{Pyzg&JGB}jG zyEeR$NO*CBY3VP2)-GimYz^}*wF;(y;kuU#4);yY#VEJ3k`U16V)NpG=}}a~pKKMB zh>mu(I5(9~TlTq&0OM-&G-U?GYM0CG3KYzi*uA5y zY~v`QQl_i4-Hlyqj;z>zlw^{|)2OcvzWK0RDE(d+LupC(kdA1tCjG2#PF#$KT74l+ z6Al&@H8db8$&Qt+_FDpxiTs32g60s3$w;6E##y?Ww}~2g<+!%wiUS#|Ph&TH7w;of z;UQ4!)lGm!TXa|0(}V{^bo2r+JG@A>CR`hxZ-tr+fNLZ9Z{FyMg<-aupo_J)zqH%~ zw`*mAyvb^Xk@0*Ou3Kk&Py|s709K5zc8Dg>Qo;FPDOG%??)JKQ8?ig7w>`k91p0Q} zKBq_n3G^Mtm9I!&{V{pG@@cwX3+p`kD+X@2I2x5rh#iE>VH0J9AIb)%uo$ND_P}}F zoo=^2bOB5K^)>X0;If}K9G@o^95H{Fy*Q8VuUg-{p_*v4P&qVRNK~SduYk<8(f$;DV~SL&#*A>%h%R#@&`|I&Kz-({XB>dJNGeg5hXIeEJCo=S0l%!t6i(zWZF%h6_t zNxI%$JiR3_9X}fplrJdJdLmEQG~Kh9OiZ}#)^C|k02yCTIQhwnkUuQkjng~_4;Ui? zq>o(g>xcki1ksp@bark`LuhamG9!evJS1bTu1=P!$7!PrNCI|tj=;^jzgN>Z@Z1N3 zsXV7^nL?h&I|auZ3AqJ%b~>fnTosk&FW_$$kA|HO68Wu?C06dt{=iz>EF^A7C&1bQ zL7_GQOMnuUoNn#B*;qa*Tri5>b*9jh;jUtAY<+!Qfr5|N_jjIDIlDmm6`-hhenlWS zX-AHwQR;SBB-@>i$jp3gZ*Py!ZH^6)8LNLhjyB?XoMu~`Xq7gHn`x|9FlA5QiPTTx zMD`Y#y_XenVARI-0?Db?Ra48@&T<7j`L<4(NDl)2pI@F4VcN)pvr&?#m2FFstmewP#~q2M4YtkPwtxJK)j5ka({ zzWL>&u>J{_@Eiops?9~bz&$TtDoCk)Z4QbO-C!-)Q>eheP~gt@2*5ki$&1X(En7>_ z**>uUBP%aW3B3OZ4Nf^Ch00Brc?UmB{Gb(#ZH zB71+n*QfcsQp)e~bc7{;DNJPc5l}K2$=8%Y0mGO~Ah#ETYE6k^0|^r~UVypE^(QL# z%^{diG>44GVsfGnxI;h&xoUPbwc6q4v@ZDoM$$B}a*CI9nRl62pB@I2oesrPd*1&+ zfVp3;v+GnY8Qd2OQ$0Bwv0SbQ%)n*HRkQ@~>k*TaP@Lz_pD&aND!&9b1)hYvI-$*X z(t}r4Fn?=pCn~DxV#!Z@{(dJI_0MLJ>dKJeAm%!xrMFZWe5`?yzG$J8YcdYG<@dn^_)iQ#1IaU(W239Vbr$r$MI+iIc%!mL7so(S4wfrQ0YkMMJ$IB>PQuKg-dkfTag+`osQ^EhvR*!cY=iO+@M(_3lW zI-i9Grz)%H6zukFGdi`};mQ^#h`6=QB%fawj8lr{>9E5^=iVb>uTnm zuhQ#&d_edBL_t#q2Gkn$6-iVpuo*{M?&nV=7ss8YwDT%98kNFL>iHTs)=0jaTB=Sb=TA&QZ-1YjSGz!eV8UyD+OV8oW}B!h3KU+1oDJl|oRlIb7o9LI>4|r=?f!1c zq`M}e-hM*$yRlv7>KC9p(v?18_O8!%h8e|{i~Mz)qs!2+;;aLcjfj)pe>g2!=gLxXIVG96U)lw z19n0E(O$hn((Y}=3xzDjw=}Nsl!yD^o8y7;ysCyXIatls0QF*Je-U9oipn!B*Y`~- z%CSsu8*d-#E04tnCw9Ji1mP0^;rrD>M@o+P&1BNug#7)(yiJjIx&N@${Aouxf#>Cz z#OD&lK)fJyi5aKgH+EOkn*NSUM^wtCWQ5Jl7(o&ELR1NL+r}5&5uH}EZ53~&uT9TQ zuLpDfI*k#bC)Z#zg>H)n>BpuYY{Q7j=D;x4hZI zqhLmO03P$`+9h`xd=*(3&zBLHpAg&KN#=d*sdJ{nd4yiIMBcdI(>%gGdXc0yE1+$? zu%=zedvyNIW2#WahY5{J0sgV;d!xgrJY5Q;G7X02836+hFKe8E(($>(K z2JUBHmgkYmVKD=a}DekbyFA8r3D8bhpSJT zhcf32^L}v&j|IQLlmrkmvK;qO-ONnLV*%Dp$2(co8b@jZ0s>z%?uNZc!9)Qknp%K- zsRVIaB`*DJy#WH%cM{4PDIA#1q2$1hoi{yklkl&>_chi_C~d&D&N!POE}P5*fR890 zE7b|wYamoc-Wr0;9DqpbH_oHiomE9;CHJcR$SY7-u-2X~R(JZtW1&*|uIIwdnR>Dn zf;L^O8A3^gAR&hqjD>|<ABdZkZ2zmm;!mP4?JhbalQQ2Vjz`yXPcxYLq8#tsE#?Fmq1 z@KXgJgan&uG}HV@NrZ@3To$V3vk_gsgDJCH_NEaNKQ*rP_~R>5AO{kkuYGnY_|xV5 zYL~>Z`Pc4?x1Ls-Ho57a9QWcnik+NBYVJtOSTA!ve9v3Qvqz^=M?~|>eEk)Qr0fW1 zZDY!*W!JoWW7@tR@1{+wqoT=boo3(6A;xDjoRV}Y>_6|eU^P-Z;zobJpyu_Z1Sh-E zXYD(!rgVejUN=ZGw(YJK@3)F;5oy)2eJO*{mAW@VSMz~Tfli|$0N5k4%?N9!e?h2u zqhm!=oDV#A(TSM-O&%{8-+7&(0t}ibpLY|=wXD?BVPd^7dlvR60=*scX@eO_c=V1G zlpFClBnKW9a6&uGr#UPJ^&_Qf8x3M(R-Dc!1^DR?a!2d=_|0PVPaxy^J@xZX*`KdtbhsdY zId@-qR?de5mf7js>EoWU9Em;w7c>pY-naaBU|dP;<<)}76&lHCnjCJr#OI>rGIDeP z$3O?54L>2FSVZ)K9_W?MIrH)@a7z&I#1bgwAFsFh1ul(%>W2pOmd}3KYrA2%K*!Ur z>(-T7=JwWNiIhEbu+qeB^=7NDe4aqin=emaACckHT6Ra5S{WFUw{AF17Kq~r}4xBPUTXK6}3_gT`jw*ulBd#X29tPLMIfJltkp_=5D(A zKV-cHRFz%V{f#sTf^;Jw-Q6JwN|(~z-Q7rccT1@>NSAbXiF6*ik%s@~dEfhfpKp9) zI2?kE!-;+EYwfk>{LRO^IjiiF@FxLsKJ`k&KJog-r=|J_8{LFh zk(qDb&W|j2_~b$Yh?A8@2ITg47wWClgzv#UlZMo20(hsUd`+|2{}V8{^vY3UYKVClz}aibiX%i$m> zdw_f>->T6;=K9`oaIVySqH|gJ(BtrYLl#}Dznkf~wI~#=cA{-)KtZtsO8b>+L-XCz z-!&oA!^1-*!e#`62CUw5s4&`d=W~jK7d`F%FhAy)G?Q@`>P?Nk1e)Vx9JUu5&u5uQ z2%blJ=GtWhuf;_x7S82ddaxN#UVSL%&Ge+>A#RMX)ZeW7?P#1Sj^8M%O42cu6~%>1 zk<+sb2iN+N#%ypZEn;!ZnJsw1V5~J}ZDHjLfwI&Y1RN@~=teZ_jCS{C*wCNvmBz*3 zq`bee-ak0ZfhoJ~t^#(Y9vpNLyKFTVo4=9`AtjylQ^k%9WG_G=hWv_(h2tVVz6EF< zq+#1EBZ0gfE0(R%zz8%{O}79rH(+P0uu6VG38%E?q;3 zBVK~wHADPw=6hcb|4$}Bqg{yHG!>>aNR1zSr+zKr`?r+@5e50H)<}9|Q&7)3w|&@Z zj_6CTWv0B{`FSgTx6qgr#*Mk|uDPBtmzF}V5cwPv)5*B~J?JDl4XlWwwF^VzD^~@k z1loFqwZ`u^D)FxUvhpNP8gor&;f}>vc*%=Dq=ssJl;Jc^<9yq&8`cIF$CGl{yXAGg z_h>4dE2M1fD-_gSLDTa;{ptpT>8LP$u}-1%PthZ)+XJ&qT~6x1V=H5tSXn`P+Wlo2 z_m75pGJR5Oi%;zbhdPOHD`!id*X^H6!jRA)^Zc6ZWlsrCq}=}6A7UOi5Ke@%j@PDi zlXYF8bDH9-I$NU25FuSy<@XJfx8GbEeL18b`P?@Iwv%R2SOQWBB-(Dw756ZYwO;kx zFEFQZvtIUs$~Ie$?91Rbyvq}75%6T%1+kf)5XQCz^bcSrJWZz@3K=dv)n_%X`~ZKeM%o@ov7 z%Ns-sSQGlhKy+~&8{#|eA9U>&AC!Vz7A{qf3{TTP1adRkG5zx%Y4Migyp%PdpLkmr zj}oj^oDnYV!X_`^oE}gtriBh2ayM6_Hs?;9~F%|3m{ zs91L7W**6ujhZZU|2sMhwYkH0Xfb2de}V7SI$ zK^qLd!Q691w=ep&UhN4a&S+ig0LZpvX+LvB_A&*zdaZ<1niDvG%@@2YkA8{>pq8)l znzIRZHIq*>5a)H;!-A62?#tW12k^E85T_f3@R!~GlHhL+4=wvU^!r%u(Nb4vRPJE? zrtjNha%;6Yq?TM=EOvWMmMdD-W3FQp99B3l{}@+C50RdY$v3+jexft}t2w9W*E3|R z9!JP7iW~QT@{a~7t?FN394RT|hBRw+KV;jucBydusQH!!J)$VDc~QTt9AWKE#!TO8 z&yf>UktWHubf%mm=`q4xv(SC$#_q0A--yHJ=8>jf<;jLEe`r)>fqD|1!0b<2@Alht zXHQHcE<{n1M7o`&L(RT**3;&OUdEKv?|b24rf{{EctHf2LmLtd|8u22|Bc%xE~xzh zhqjX#n|{2|hPchEfK;8A*Q?fr*q2Ch`+C0SSJT+FD%|KM zLd@-{ExW+f)RD{TkZJTEEdYN;Q4&3-dI6%~{#^SvxxT{%v|kVP+^ZqfB#=A_)G^H! zV%-XpTRvVnY9MPdqWZt52AglAYjj=^z9rX=6dcc+D(20|Vr19+FFns1U(tp5^k?iRLDBnxa+a~$M$AJD z?bq@-L#xfGH&YVF&-2hrFb^I7>R^oT^p7e5?B+mFbhuED+f+`~<-DbS3t_5uaA5Li zXUE3}LJl;1k^lNp*gTO^Hdxi{r4KRHcRPyE49O9H#*Ul@SN~UF@;{dlL>#uQBoxu* z-wW!C-B!OnpL#vFKOmd*>uKo|sFZ%Jp-ZaLE?}J+@yUAra({1z$+MaKjObM&c){p-cb5NFEiNLmHkmN&AiqblFWuI65bV|Ozq2_-@ZNInJ7_lrYz>&ze z^>tUF1cx#rcq#Q<)b-&qojMp&vBv3pHcU9@yS$!V1muc&v_blKJkAP(SPcT?y2~z! z$Ck3RPV&TE(rC)LGVf&87Glq)FZMDZwP&;ABD9H?x?P$C0=Cii0TGh#Y&O+dPcS%8 zkF(P@0zcq!4snifGR0qM{kvrP0}#EqX+f;6+a4C}ck`P;QE01Aj6gQh^QCA>EiAd7 znu-l90phJ@Fyof*7pe79=xK)RIONxV$!zZk!}Mp zCtYd5iYK5~_t;Jnj+2I&5*;;;E5h1o66Mw+&l%zvd%{vyP#C&tGStHx9MfXdJKDC7 zb2g6-a>u=K?zoKfOX18m*WMv{yFz{(;Msi86eOUq1M;(R(P{p9mNY~muSkqQ7Vvv< ziAj*{%7BC9>nK=hdSwG87hQO! z{tiVn0Y3I68|Lw-D-Xkg9N*hePn8IX3V4tK92bIAJuk38*r)QOoPdL=Gg}TmK z(_*fC#JYZ|cY7qm_?NAy$!Mk|WHhT{{uKNzEg=!C^{kCttFCmL0ASlgu57OZ)+XoO z&ZWaYaamd3Yh(HIHMH0yashnKUda@al94y7FhVyw6zz9W;9tw``(?h1Jf*;E&6LHb z%{^!RcQ}os?ZG8|(T5+&^Gc`Er*X3ITzih1)H70J2ATBkNVuY9y|ElSKmP@f^BxxJ z-t^j92npY@bGu3?+zMyG`;Uk~@k4yh5 z*uTf1!=m<9O>nnK?goRBC(Z{4j8|yem&>k!qUcQhcq#YA2PNf!pAfe?&gioDGfI^6 zajBa%j2v%bRkug;ffla9wK0S^1T7&sX{&z8myeg1#S-UJDdPF|I|=x}!0TE2)FQ+3 zO`O!KRi|-|if+v10h+V;KEBcBU~^iCX5Q-eByP-}ARXMwj5Fr5#+d!r(@Y#a-hWO~ zdh`9Xk-r%=ctxS+pf=9>z~|EH#!ZT7IR$AI$z=`hP8F-S`v`*1G~W?28i~)|tDK#k zEeCu$JIk&7faU;TAZ>d4vt`e517(`rKR$i$9L?evycE7a5p!@D_FT8DXqBk9S;7PK zX^??j===0&wbG^yuify&>!bsL!*)3ny#kF+d(O52ogCakI%n2y-Uajz4_}m4=(cAg z<#_k5=7}+1w=7hDrZ*W*OR&9*#no+D>mAs2dNgDpj3MUlRn_$g1DtnY0{m$UtZOOE z)U!h;RLqq5U)6rJq~XMytY?v?vCFlF$@&YDkHZZ&)hGQL$7eY z`DKtNJ3{cRq$|XNRM&vJHd3XDGAr8`Pys&+^0uv>E~`lwSisP|&o0dK#fulet+;ZK zAU^E$Azg;GP86}+dA$dR?eR$oVimWSf(t&f0y2wj4?;Lz&O=FtU@wIN_qO>Yuf#tS z#`Ce2W46stPRR`Z3Do+XuschHKKHMW+E*AXr+TqkahU7;pi5>n)jDh9<$s>xCd>P; zeTbfHsh(=mRz?jt@2;dDt~#T|*3`xsS=mPcB(u+a?j~s_2LK@Z$ zOs{7u0@#))fJ?Cs^rNTbg-=hq&^!lM+%{0*UlDz*GU)lHT>Q#%w)7N{5}WSRi8(zW zwEzY$CN3_-{ElL-B7P);n;Hxi00zXs=2t_0XHWh<9}GMSu#EU3VraM3H4X>c~OfOR73 zUr<=&@RqjSzSp+>Q7U>#PDF2&vi5FN(^kJ$4e#-6sO9SK!hMSqEg1fnI(rxM0gc&% zpr^yh>N|_sA3fYFzG%Pt40|iBc9j@Z=z--dGK-}Hf>0JdF@ZuLkSf^hdJf6)Wdk|M zT(*n-y$w7%L_(Q1f*y8yPd>q@_@ZDkK88jtRor}Ra?yPJ{IJk4F!R;!>|niZZiZok z^ly8h>fsfBL=*vIN8*J#aoV1O@5*7Jp}Ai3)dGtZq~E`PkG#7-fBE;+!p;)Bkz6)J zkjbg}CTIG-XyT2h-WW(LnlOVxqV-A@1?VmRMf5t~9xVjuX$GC2{a)qr@}}c8V-D-r z_MiuB4wB5fbbZoHZ?CBJk99y}kAj*y1Tlr*?sQz?6&2;_%AAfNh;l|DVDV!!9`Y!^ z6C~zC$HNK)7fx4t^E6gZiM>W(-;|A=#y-i`A|-)V`3)8PQ8SvwY~Xig$02BFy-N$NFUsZQCU|_o z<@x*Ya>b22TE1C23zbDRAC3<|K&y5;HOQ$08TEoXZfkJR(9rz@17!5{5tWsT*I(Ti zaBXblvIQi;{0!`9#!F4k2MhHvV0Z#!H>d4-3e2O*H72qu6*?op1$_f-)A-yrM0()^ zfTg5=bG8*pz!|Qp>y7OPmRB}NJZHCE7LWtrYjADK0un@;fIA!bE;VTEuCD5V3nygB z#uQ|h4`=bGtaXL3yPfDY(mZdJ?nv|+iOA&&Z!`7X4nqAD(?=rYZ^=aOWd%SsP0u?^gnmgbsl@KUxL& z`nxOIi!?6xN;PYO(S#pUCjd&MdrTN%wb38O{j@M8mCq1f3?7Y&p8jRYh>6dv&l!^L z^LV}emTpYo4#2>k1f^)XtQQe~RV>t>PgNUFw_U1GMG}T6g&&kM{He3-YZwz|{zO{A zQDZWkJGJC`?)3C1@NiJ`3>*6Kxn#1&RGw`NvvVUl7*+Cj^PD4UkzBUSF#^d+qVM0` z;zYX7;iS0CCTsDO!`Yk>BN<#(%w+zQ?f0FyAjIX-`_AhRgGvj})6KE(cg+ftoG8*` z$E>1})Q$r%PS)>74@M(K7SU5cf7j7*-(t}7`Sq0u!*w|yvBezu+c$o@nsrJ-EwG?^ zk2^X;9jjcp;be_l^@A$1UG5aDU+#=7Td-?dq?YR_q zdk*O`j7h6FZpH15^k+8(WG_d}MhBA?!3ga5c$vHkD|KbBDUN!zt*lR7{n%NFXBmNA z6=K$HT6oL&rb}hbvd0d(kc=2)tJ7obRdv!mQ=KzS@8n}6u>wb0G3ja zjc!9DE#TFIZO7?&ISYtt{vIy$0WUL@*?8^?C=jmvsZ3+${B}5v9jd##`{eQN*sw~C z$MbKgX}f+`aFxvx-!m^j3{7zJssY>;5cEJ%MkMHw2)6yN`%N*;NzdK5YYIlrq~~?> zTtrP3%fpPfd3&aFTB^|OgQ!}SiCj72u_hpa0@YsjWdkaq+2l{!|IGG3e)@z3#R!zr z+u=7P#KhLYs_OO8U>kOHz582)6C2k-97V8ocl3E|%Nhq8TO7EnUxY?J&%3d^SVA@1 zv**AyRfzS@-yaN0p<|nMjot!q#rtM~Y4ZH9fbvubh;xe$`(;oZ=97T{>jYC2Ti|-Z3-0g(Ia?XW?bK9!=|GJ|vU#npb4B2_NH+`d7El0OiY{#zg02!n+ z!>eQFUjd~15{pY=>BfV(e!wsjd2dhFPDORLv=M`Wjnli7;{~6JBX7!9et=tMs!?y? z7V`I#$4%1yb}$AZwq#-dN1UVUEYOhwhAF^|T3AyyJ+9hV^wiV_U6OpKDud^?;z~ts zPauY4E&x?iBml=iBN`_e8Ih3pgGN;*KZ0RjdIV&f_hq(Qr6M>AYMW4IF=R0D_egwfU zP)4d%8->X~FlyF~*W2ov45zLsyH0!+|7pFDEHam(nK2>(Ml?WGm)9WuATK5LHB#Uwd$eBjS+| zcu3w^3nzZ8`H`e3rO3dOYEdYC>Ny$LzI0SeP7YmX9dNiXQmDl{Wj&WM{pq7Tf@fVL z50Tq6O(B%AiN}og0QX|V0`}Zt)BXV4ewO{L_J=X$K4o05>6$Of`#QngL2CoSmTsmK zGmh4XQ7;=7Zc89luPz3X_a9GAFpf}G3h;$Gb4eXV;b>TMF6g?d5(LQ+ASs({jQ-HT*qT{#&U6o8sbdWQ@3 zQBsnOiwg%VpKKtH1ErQr^TU@r{NRq$jXuHCGb;J)gL(NmXAeMyFV6891RIyYiu%1e z1pK~;%}pb4#+C;lk}dnE=Se86FTiM_gmk?FO4XK!Smjt> zVLGQw%b?BhGS=W1W^f2HQp0PGPY9Fe4PIKy?F&RQYOId&`Q41GsIM<@dU#bzU~)?+ zd_TiY#OECD+T@yVBf~3~E!fu_fm^c~BP@8R5*=*^V{JBy*Y+Txz>m_@e4nl%9~#n zl>H|8;8eEBlZA&D2n$=eUD3)>p@c6>doi?=f~(!a19HRc&K7wG;o;Yv_`Ge5(!h9( z&n{N3)?!hC8yF|Psy9+E*9f(Uc>*akSng+gf>|Gjh7FzuFc%4kWh)u|vUxAB4^ptL zgzWq*3Z>3m>dWzdMKUh*pLm3RS7y3x!Vj1#Uh6=}(`j9_ez*nN({~OIM|IlG!wk*- z{zX3$lTdqrWgY=P4PE8Eer=6{?VnwuyURz{~_>oKE(B&*YSI*h&1JjzI z;y6jVlG!pT2Gc1cw{*EJbJRJ<4&$UdtVsT9TWX(OGc_doi$jiGcE{@s&5jI!KZ*gA zxyc`&>6bx{CfK;(MF1shVxsM;h*r5MHa=by)UW~zi}T$8v9d z*WZKCxd#npByI$7L0s5d?k?0bgX3Vn=he~kUOSjX&+Y)AiP1!oQ$@1gfm>en-i2<5 zwR1ZlIRVrIE!XQ24C>W^aTFh_^*W%zgAI(1{%weG-5K`>Oh^{@Gou_A!2an(6Tbfi z@IcWcCWf7y_iT)y4!A#8KOJJmEv@mGp&KnKe7$`uxQO4y za_ur%@E>6cXy8O%U$xU>;PgHf$-?An)LKN63TFd73XOWvusHr3!QaJbj*#Izqk;H> zCea`$6e5AtcQEkdm)V|RNL;XzAER_tw-Cyt8l5bgfk8|>LX1j?vzNvWaBD9> z#qu?GBiul7Y!w0n2ed5$wfnm0GHo|-|a^Pf8zW_eGUU!ljWpI1d z)6;8XXr5zVz{E^z@IZCxTe)&Xsnh^Nez?o>n#lN|MpCfRPM2FN{G{pb%NXDZPw}fU z9dYw6luEN{ZalWJGW}xWIc(pMUYZ9ana2w|0eLNvkf{^ zccLN}rS&M)bF*oUPIdTQJ%8m9R}Hs}s@C~+<0&d9;~d!^3+%LihE?~h9s^47KW(;Z z4$tj3@V2FV6wm>V)M~jY3Aw83X0Wrox@1c@?Lq)avbRF3=j7EP^ANy=mJ@@$Y`xfc z$n7}G_1gN*1?S-clX57rkw$hs$E9`h;jKNbQh({lLcJ~Xg*~!yhbjk8s0ZuTjo>Z| zrb@X180-oF)^Np=BlnC{65nwfd%evD81TGgSOHURV4E|(O)fj&_sOJA=ceFfPq;)v zf>>{GF)Q|1yXQZ3<&Tld%NNTvngK7Rgo6d0{yTpx)K}yb3qRp&%m~Q12z$N+eAj8h zx*SS@Y&JUHbhoxg6q$qmQKHgL(-F6vAAe=Rj74kS`o&B{*mL7r?F^E0z?0ei-4Vjn z6m>GLu$LH7Bvz)8$Uxw-6a^fOR0&jR$sRBKW0T?W@rx|KE!i-=LMSpR_E*wD;$E~V z*0KK^xhR8E-k3xkP$m!Ya?rU}>ug*yW!_h7(B-*YybIBHnJiKtMteOL=3WvLyx-z* zcyh0KiH~=ba5@Q-AAgRr!swuY&46gS|Dws4Do6{;(^I+R1#UoBf@*mV{T$w>zzT-RL&mSsD zRv`i1Q^j6;e9l>Wh0<}E>4UQYAq_PioCclJ<8>0Ue`bD2K1mAO%?=IP0O{!R;p<+| zdLZJl|8nJd`4;$(hdB4`_B{Np8^V}$GV3@ktFM0Bk7ASm9jZ0Dn!o~n$-R9=G50a#jNmevYBsp0t+7Jyr{XEaIc!NaqhHFaHFCqdb@aUdQepfJ^|8U#u6WZ#e)f-dyXQ3tiQHmulu^_Az!s+g5)u;G8@crP6* z3GPP_bMAY+V*!su4a)U~S|xFx<%TdNV8em@w*Q+gFkm>6!Rr11Z*T@FewQ|B#qSl! z2RtK}<1+)Zd(7)MrmKoHAi$85ZI>?#orLP6WL!ZJL7J187%J}M^rsUy*jFLlCNSUO z3Ii%9_rjsLm-NUOGseA=<0)IuGUnJ6zKj}c)D9k0AZU&Yzp_n%DMKQ(HYUd^MT2V%9=iBDNH#X^Ae`!Lh@^AhJ6slCp_LX*XW35t;-`NjNi(F5EZSMx% zZ^Y);LuOnV9!zcTeO78S;BiA+J-_$SGB8A@gOJ1_4KAD{?yd&sABqp*^`4Tf*H};4 z&}(apE4e}tcDCPMt8ZouBhIISqXhnx(yo+V2gq^$sCk+;x1rUEENpghWT2%Ta(R?R z5eiy2I1qjl#sJ%dRgf8y)%@0le=`OugP5Eg>IEPNj!+|^c1Shp&v&UCWDhfJ!!Znr zU<%zY`2^_>s*jKO{%T5WaF$O_c1#IaD$=i?XA@r&3ztD+_i}}PvGQh0D_OX~NT=*3 z!b4Q8Gp9biC`^XDMOK-cg1JeH;R~fr zF>-4*!uvov1n+2J;ps-xrBkU+)a>WTNGIYF)h_*-i6$xILGcgDOnm7DKQF9$1cTNs z^35gKP>YqnW=N9CWph-Y;4oSsDsW|x4e$EgNCm2PoP`@q;(n43&EBw8I%LG9$KY&NY2B&$fln`xaGZmXEM1pqkik1TfC2Zxq~@pG zFdb4Di{Z(Q`Vrhu8m8FP_y5KxsPR~F*_3@^?Sl>%B`(f@qdd_@0I%VBEz$vr3Xt1} z(SHh6XwC{}WhLTujrIl2+hd9_i(IU^sP!I^IaFM2?U2p4Vop-h>`*rmt8wbd_k5bWnZ!h5NA%S9mr&*rsTtjIZ7eg&<*uwilKg!7A1mi zP_s4;(8`G6O>bFD3OQhTD{yvmf+>_8^xCnLb0LsUOE0OZFY@p|_21&XXt5bM+vfbN z`tKS=?%4v{@qQo^B|iox7%-U$Ek?*7F=K`A2aQlw&i`6tN!|xM_hdH8W|KZKR4`Ki zH{XWIPwIn1KyJ6-zo@VO{9n&jF09c1_gg{h!jTRWtphxE+bHzw8#5yR_v@d3@IGX~ z70EdX7z7ln70Bq`e<<<)_m}(!O?8cykeZmd(ez(A3;+8A*J$~mQOBj6SE!Ft z@(>UaW1;X5(CU9zBCiCJ*Ie3}_*ZkFse>|AQo6CZwBV%qXPrJj2Q7G;n2^gmw93oX zcbs^tY3YEg0un?HxH9dK-AE>`Ihg{gQh#Qa6@a`sEH zlc`psUHWZFuRGO>Dc;?F#(`x*s1JId!j>B^;s-@rIO7LfU}NQ9$yN6^Z~sLUd23QZ z#TcyfkOlQZo3VtJS?jRC{!)yHfpUB4KW{{jv;KZZfYf5M1P7C9^07);8-qVHxKw+$ z26d8LW(;>Y-`ajeyb%>EGxoI~lXm+U%1NsHrX9pt&0%Zzp-*t27WWyNyFrf!{-O^+ zat!LO5RIjyV(gK5Lupn-UL`=ZWuAEbdd?_EN3O8ofE!c4eLvVeW0~4|IYxgL1Yp-6v1JDOKk6KfXNxbmvbYU? zvPyRuf!9EM_g;y3K| zom&{ct)OMu#m!Kz)MHRMCNV|7V5v))rbEe6{8}GPjPthsDE1NM#C0a1n-kxx1M;NP zu`iXmREV)tlrh80$b9PY>gUdR9bHmq@juu6;y4kXTP&*OEc)jL7Fo@@_szjge(PuR zHJ;pYii+`m)Vq&qJ!exSa)l6q^85A zA4E9EJvjslO$O!k0q?t$$CeehN<}f`&4I4sh!hs%E_k2A6*Rv&KIgZ(W;BN-s`*|0 zV>GGMnQ>Q3(jf6#J);sW_Wjn#2Z&-0yQ_$=+*|7NlZI2Mw=LX>Y|O30%dRVHeV2r0 zig^MnrD_ArzBXI=&BsOh^K1o1MkhVhTf+-~afh-=QGQKA;H&O)d>LK}g^cvB)>-dp zlu)^gi9IuqDn`;r{HKabp^B87})7b;EQ-O8kPR}~aUlkD(Y&K5YW{lYw*zQMw= zS#A6I_X`-RH10fuH`THT@*Aw>e6JUuDWV5^7b($ zyS?!iuDJaAB*bK#^UszNwEm~sr~~@;@<)Ls<#q00~?(u&nj7^i z_gJd&khxMh(NRPLRI^hS*XNRx&Y!#YP1b~mC7<&}+<2^oNd^iyE!{yG4JeVZ`0Ovt z?oRvt4oS@?Q~NYIAT#PUyVtukQtxrr6Yh>){MtPo&y_I;5zbPVztudrtnAcbtm}tpql3=Sa@VuCm5UicSLG%JGM}X; z?D`?+DP7q1<7MkGPuamFW3`wgl>Lb;`Q!GKK25HxEK?ga@SonwUJwXEpkk?rPxcX} zPlpF20gl$34-!xLeU}fS?3`(ng;LzT8;DX&25rLAVJ^4KR*bnwaR_rx*(M~F`AUWS5UiYyjow(#`aGlV+Pmv7h{D7%Z)%K+?GLrO*j6{ zMD}QRGRRu99=g*0!K2CbAa$c|ot$FE@0n1!-gG*++L7FVQ0X&5(Drn@Z`BIbI-DVx zp(&MI;JnfMVrruMeQzYuz+AqBapO{I90fkF*EK5lD@y>z&pTRr!t6T$Blvq39|4jW z;0%tow=I?<`uMS7m8*6z2>?^!6H$HkXw&D)vo;=Hfza6fhS~25FZ|ex<)@154YQAy z?!NRrcmPI28+x;%>`-s`e)4)xD7X!|ZVzvLGhdo*@p9jO1lbxjbyi!OH|M3lTSFG; zRg3J}yc%Rq$I3jR4X$UxBMgrR5*St<(4asLkOU^~99as8jwvK~yz776H2q`XS|v-e!y_8%t796u5Bzf^%LqPmG)d1y;>|g?f0Fg=%drz zrS799evBB6^OE(e>Op}R_ht$p{ z_^=*1$>*lxSgqmOjYbe9-e{6YtyHrz!<3WKdWkF11PJzA8gEa3e@4m!zxiaHyCcA@ z^kp2kS(XXsWXfDc6F-NrXK>qWhJbO;AX=mep7L{D%38jB7Gs+dh#ejSB^g#`8B|lwVctP-Y0ebC2KYRM(3Ct zyQ~L_Ds+Fey+^XYg-lf$Fqk+_rF5|j6{n(9qvuU(g1b83CMEA=n-rb0sRZ@zmB zF%I7!a(8y24lOlcP?mZyqY(9%*tYht%L}YodLC&>Ggys(dkrR$L_$uXzZ-ZsPZ~od zSG+$wNJQ=2oOG$E@7GzYR~o>H8yN7otwMpc$r^d#kt6NqaY2%8M(sgY!@jers};;_ zYBW(q3Ey*6@PnmXK){4|w&+O2?~(X(`jf`855H_W=SKe3a=yXVU?!hC5R<$*IYbjy z;NeS$JKttK>q2{nD3wCn)t4`^=EUc&zbX<{R#}}ISh?^AkyE%IZ^R&tCG=U;%LO4{xZj%pJy;$&%Hnsw z7@(eS(TB;Ht$=*@hcRC%e2MV)aAO46O`r3JgwIjR{?r*yhrT9SY|p72SE#f4^Zt%W zo5%5%1MrB}K=6BH4jUX4NXGHb;-}z<0xLdW!RW0sKv0z59aGcNhUpgt{Rz5tt4(7! zgm(oOyCbk6t`+BWa<9Z@CU!5mE(P&Zz<8>uB`++^7NJg2%h$oSt!xkH0dxw3dL@+K zIb`hoEcacekUK{4l;k-OAA*2u=8I$b&gE9Dn5dpD2gUvifp6%TUA;@qH>-#BybZp> zV%grwsRliz8;>G$p~Xr{&k3#C z7PFg|qgiIkg~%|PE29~}98~MZ`Y06NA9fCD1Zd|WXzSf_?Ub3k_E)5NT2A`uNzC$H zY{uV6a4pNEW%xeK81&G-Ru4rW3pye7?&6GiP&kQ+ z++~)dZ99R)E*r_?pM>t!r=isYe1CSa*yJB^$zRtTkU&i05F9@Kmq--hLQMDF6H4P0*ih_W>_AEu)-~Ss=D6~?UjF&k@=;$3+}{KPNxP(tc;hUU7e-5 z-OsA&)6O8Mdlr3YO6im$fKZyPv#HOByl^@bf3IfDDjs2SGplLuSYz4uihyI-YwWYY ztgCO`!*TmfJ0RviXB2&EthV3C%p4BP@iF+5$;)B$ClTqLZBzR_@H7H{7tlVjdLL;e zGiil_=@cM*v;a|JBnf}=;OCOF{e$^TdAaQ%f0#5LW8`)wjrT@IZ%ZDp1DJ)MGCRe? zS)50SeA0LmMnL%3LhyeM`U8@ZErMPRlz*U}Cuk-k8HUX=_G3Ahma~;!yGlOU{3+(` z5535c(JJj%xh0=&6jO zaGdTdVLWQ(G(rUWt6y6Vr;F@kCjipzCFsJyT2=L1HfE^w+vj?wJ4}pHLl(n9tfpn> z6yUGN)kW7XK*TJThuq<_UpsHh)LAX|KL)}U4X1U5PUN#UzJM?*_;rW{+et?ewA`Kc z31v}J231hW87*!OJX5!9U*Q`pdWHmJ;E;?0m}iB0WFL{~gtzys6*y{5<;xM1SWU-n z3=Bj*dgD_7vSHc&MHWlk9G~m@6$JkDEHbS$dPVv$o|36iOqWUb-DLw$oBK7{bJKAl zugguQy-iU%`E35-iuEe((W~vkRW1Wb=*x}MDTdDRVwmo&@Q5Y5DJJpjj#LEC$=w=7 zA|cP@HP=hMp^gBRhf{jh*ICS@$F9c`Y9A3Tuc%ILOX+>t@m}NfS|`yNGq=D^fUvG1 z9I2Yl!7qEZOvcG@&Q!U&N^?=A$c>=|7aZUvtR${jKWgz`37V-L)b4NU51YP*kxVKoeI5=Nto z0_W-m8(3-?f~y(TXB?W8O<{TMXuH3#lkb)!VuVhz*W1EH*}w)`Q5>od^n{C zT$m2q!}!lpr>D9SS1>^4 zf-$UO&`X%{26xAUB0sgCZuX7QF@{3D$FCtJ-wVvLB*E&D8CsfK_jP9Y4{u^|+rfw{4Nj!!06N<^19F75^-*!PRKi z^V5NH0)5?H!`5Kbie27pL;ta|eXnXW)*J?n%&l8S1hfh7i&Ver5rkJt+l47*TgP+d z8+Wz)P&`iCGQXN$Q3%82g7X$=0jzG}vr9Vj-4s4e-QPmEEJ;T~e9f%cP39doOiq&K zp#SoFpPK*$qZK3bVpUhVE!RN+L;Hf~xz9$cd%Lj)WaRft1>YUdCyPpUEvC_e0)_6D zT^TufYV!U9j-{(3zA5>VXynE!D$J6BuyD6Xg=}#RE6{2`oNym(xnd&Yi*Etb+ zqy_exmbjKGf6};m-c8}iaiAW&3hOhZ(brK`&lsr;Ja;Xb;Xqf?GlP;S6*6oVc|As7 zD!C-DIn{Fbu^{J*NvNMsqpPvWYvx~Nx<(q-=Jqd~1DW@&MTlRkQL8Od^lOZ@FKWu? zHK<_G>tuFQeE6o`%ms2)zbn=LIBv@3O&}e~;AGYWZ?-PbkqhcWCzYsd?N8)ON=a46 zzkM#zn)#g9n+Fm=4HQz~2?i(Iq8N}glyd&Q-6xI20e}zmm+gBOH?uOv3mf@v2#r<1bPps-Ot5>$J>;tR{|z(FMl8S*B4FRBjoG8H%jz5 zwXU`ldv5kMrU0DA>Z#jD0f#`em7#mBcA&kL09*C3&#iggSpR&_>dWh#grF^dikJH$ zdFDS4$NlH-4X90no`ya@rPM9sHj7SOTTH&)_hBq)>R>i|5OZ-CerR|6W{#gSC8T5C zvaU0|`ZJub}1^Yb0w9=&jChLGF}-qI*ZfdozaiQA5i0?2rV5@JV8jfrt1 z69XacdP&fOMDs}mx{~^*9lT!&V(!Uv`wf3r2MWcZUGP=jUU}6oCP;>bPNJ1 zq^We|)#fTgcS!AAD5K&RYL6@U)hj^kIG}&$R}jSO|QB-JS9eCv%IL?_$TxotHg4D!3kHt@3_}Xu@Oe4=z;J(R9z0R5RcqOOeL)2Hz46eZ7AVnIscr=Nq!N0ziF2kB_ znZ=%0+n~(%zP+q57}Z7rsm^LahxPisQ1Rd8h z>_PTQR&W}{k?wA|KuLm!=)bT z(RMpI7qj|6yZ`Tqa6LF*I)(%n>l(<$c30Zlx9SLF)Y-GMq5r0b(U;?Zu(blsg*vR5 zh>aoJwnhf~V+np8RnOrT8h>V7at>7e8vM3>B@_HP2}J$tbx6G5UOg7`C}?A!fmzP~ ze^}F#(d)o`s-+aYUsU{3pecA9<=tpL44zGsC|($6%U}xnF>`mi5|H76R{}Fgw>H;)RBE=i-(EYnU!;e3omH@ z`Bb^V0i8k}WU}v?n@fBh$mKqFKilqkjUno$z`)NuCzU&J2u{R78>i2-e>FFrJoj^* z{pp+ex8r9#P|&R9XqoLiSN3;s&spxE0D*5j^XaUCD;Jt9&Z4-rPpD;L7w zXLw;ODD?7SeZwyMH9rz0xU^x5>TTY1GJ9H&|3AL|Iw}jUTjPZhK|#6%qy*`dZjkPf zZltBVySuxkrMnvhL>i>KySvZgefRV1{e5SQ^M_+F@aB$nubOjS^LG_)O0^KWNd&-^ zKuAHUZDT{`C?_$-xO`86N51sA-ficH8d=|lOe?JrF`U+BfD8HGEPZdz_uI1_d?fxL zFMX^fqt%6r1J@kX5ATK3v>!Nz34I8uXXtUxEMRBH3YeDb-%K8Gbmiw5_YyPdsm_Esx5SR35Pb);FiMoL zGc9*CdS~axUEG!-(cX?rP9%||=_vJ|@8Dg}WtL$uDhLTuFVDkw^S0cNE@_L6mIw3- z)jkybqXn>k&@xFNw-$xV}&E#2q0!ng?H_5X-~Js@cb6 z%PPpJDc=2Oq(o0;89HSE_OlQ-ZzvB+9Kv)B41CQLFtIbM>&V3kP|Qp)zgjRGac}1_ z(26!@nKv1yv-#1K^3Qt<*%x_~BT;RChFC6DD}A$0DPJuJ3oMfgBPI;O<|n_vx`7F# zPW-KUcjhpquuII0#k)`MorPD;ZO(?$+VQH9x zr5IzrLtTlBy!mbNLt^w{lleJ*txNkXMyPS6go$sHa29G?@!xv8GG_CT@OqWOca6HR z5AgPBHq%K(gbi(e;8IHc)n_Njjcw6lO(yNz$SIo1H+0rFa@nxmk5k*uDgMbdHQ8HP zVx#7$ns-%y)s7mvEMH5BAcd3~O+e1q8AGPN;fIS`@f)o$ChE9TK!a4Tz*vTENJ((O zwg47q|BM2daMnYzkjwVOo=#ZTe~U%hMrDgj#4B|l+;3pu91mn)=QbQUK{Ew@Dp1FQ z)XZpUyM?P6Zcm(byC2OHy#9IP`0teE&-(5DQ#58e8syj!k*`}8P}S3H#>W1e%>6%w zRZJn(6HT%%TtsnUVZ-J&P+MD*(P%0@0=+nFnbBEqRQ}InL6w15a!lf9F_1(EHgsEe z9@IMX^V1eD#`wP*Ytdk5?)X1153Y01IxL`RalMJ%VNA-&k{tFJVY5y=zNG3^eLWF4 zk{-s7cReRp=SU<*uM&zdORsGLuMXVqrP}V6eV=cA9{bO?CzDJ56BPZc z8)zU;)bFe}w1n(-vCCO??Ius7BY4R^HM!saUjJM&1U}7~MSa;X49Z`wAc^>Ve25Mr zZKUJ2P&E>X6}#r-N@uv^2M)~040bG!Zic+%g?gmpk^69vgv$Mr!R6NE1p6W#YJ7bs zpZ8NIEs2%bZzl+5>0mthE>EKJ+dbk^@;Q|;EheZ%t=A6YQOGxZ270WQ$T{C^#z_F7 zsoO9|a<%KBMdy=2PEMhA6FSS#sM<(=e$~qHp`Ug>bmqSwO%sB z)KCK(C1&{Q$}S@=mwSLXJv{`db>UHvXj7~A_FXRtRO@u_E|yRj#bhcRM-(-sV z-f!<7d+LwtwX!EB^qwqlG3E+zUS)FiENZ)nHSbM+mu+I2U@;$-lWoCAhe6sdYqAf5 zffEq#pAra6YBOd`A&o-q!gT;bpJ<}n^J;GTXlPGMWuwBiruDH)h{Uslw1LO-t&krE z$37S82_De+6sJ2JO>v^m(eN!q`|fbIoV(^%x`(3CjZ%bs;>DRu$5|598eRbb$R3Nx zi3tcZp2Ve6d6t&^FlH$Tsrk@uiaHLx7MOdv3jeOycm6#jux>!JG7B=$;0B(rJB9_y zz|!7a&JX}5b19z4pBS@eT{*)PE-n;Wbva6iZ$1?l-0E8Gpbe=_qaB^susu>jqt5R9 z#6{(Byn6K~o&roIP-ceyk{AFn+QRRgZ?W(TOskvoQJs`Tx)H0b>dh6xqf+fiIs%ud zT3A>Rf1VOWX6nn+xTWvaic)M@<ObW{45kg*YdAc9zR;9u(6+E-`|G)>T3Os}%N~T`rVAp@vp^(G> zXv`Md+)X~0F#yS3zVWRMP-oev(ONHnZ|)Rm==#N2-aoXa(=waNkv4sfEW7b--k*e1 z;k92U)ykk}{Bh7xII*BsNF+6oSfCtB%Ejh@3(6!$&5?HXa1ixJmH1WF9Fc6nzdZ>0`F%_3U;P!j=Z_U03@+W=)3Ji?+TBqnC0oU4@wU>~?Q98rN z2O8eIf1REu@4{VtQRajZesL5wuF9@D8^){CS#V#DivhalF z?KCs|>Y%|c+7cub+l1P1yX5!rxk%bP3YI+>sFcwXQ-$Af1A&-ip@(^y-**-xDFnq| z@xRO4|My11{tduVhK=-3{+7~Ae$y~`ks8LkuF*-9{2A)o1-is?@#eWaiwdiI#G;<} zeY+0TI?u0)7jpK^7CgP?DHU_UNIaa(EZU)s*|5bts?3{M+ZIlx2FK^uWaad z8fPp$w0b!HYvSuR@6x2bhe)I3R!-%Qxi}iQR~+tnG%c(e-7=*y8`7epUtvpI8Deej ztW?ay*!m&kql!0tisPC>=Wkd>-?BnBaa^gGtu$pZ`~Dr=Ck46X1sf6P)Zx6NVo45q@{5jhpsr&8jGl@6u|(aKywMAY>@IgwZ*{bfNmxcYH%vx(CE z5A9U)Z;~y3;6R$(?#}6n&oQ_g7Y8>LKA4*L!MbwcYb~YFnaD;F!N+2!v$0R{#L zs4SiQ;u6|Xd%bjI9trlvk;A{P3C;_>;;E!44tSB+)6(B>+}vm!?TyuLlS#c3;xjT= z3=XMh_+?a9FLNnoRPT~5RIdr)2L!tLN9JXg+w6)plV5AnGz9z>4nvzA3I3w~g@W&U zK1OEdWbXgn`(MeViMFBu)aP9I74vSVw|0vadlQ1P$$jWQ4>(ww`|N@zX{Hyv2uLL{HCE9s zOWGj^_J)jRNg3euh{)gk`236eS;dh*HvbzbwfFe`u<1@nK2wtBH{SL(gZg0{M_K*q zbmY$EWQZ)83AeSv`m)6`4;hUA*@r?(uy{PZZAMxHUJ})G3u8)n1rk6~^nKV4bR*j? zpX@#~X8V%~-@;=K_dm3JEZiK<}o3Zrro_&Ts+u)n1 zNgd8Uc9J_Y0G`s)^?~KUU~*_U-8P&=+l>pI>W%+9?DuX!_B!XRX(50s%w7I->-0wV z>{k84pN-f7L7t0caKca9i%UYJdhisUif576JMhBTe0(HmCef~Y`;5|;!E&c*my4?7 zx8^Elvy6DLImKhuNy>Yl_gdccY|X+-!JH2vBt$E&cTFTE$6JrFOb zmGgy|1Hjt3?tmda$?2U}Hj%G4;U^0`o?Oeg5?>*0&@6~;Ug!rzH z0`3p}*=(R9@EA+3hts@knDm}BVpbhod7$Ow!_R7%1a2fG0{=4o7G+&OOfGBCLXn+z zPjGK)Jh&3oum~Q=!HLD59to0o+tinodo-^#?Y~P(J<6Se-9D^xH7ud|!_^NX5ow}z zdOCoqE*dg&HsRuCZY*y(7p}U!YY;+G7O&l5$X$Y}F5_17;ciPxoXEEdE)))z*S{;Y zZ#~O$xlN%+A=tA0@x2%DJbz(Wn1+Of=>yg>L>Lym&kGO-@E69ajYhocK&x;7vJa?u zzK%*t65XFFZQM*y|EXB~et)`L`E>>yg-XRo5#J-ttAkmAXd)pitxn9S|IADcxUHdd ziB`4Rorz*hP2f>0kjkPD>!C|=;;U8X2M0W>bpRNXmJ>0BQ*W-YnTJDEA zSr^z|+7p3d;n^r+{-RLcSfLz0e1Gzj$4Ex#R3w!e(}eXQcveNKEv~CYQ@VCDyy@}E zN{BQb_Y^?zIT?M8q;b-qO$WG-%!1VBWpw-g@uBSr-l+ zilP#b_zthU+IE_x`}zIZlHKs@=gmvolS^)%xa?+9%F)pTvba`TcOh5)R|P6L~t$TL@#u^}a*2e2ffW+u;aMF0;U@f%QfP+odsffw32@ zTUlKKMmo%(pXt=K+M;u;;TOZK!HPeO8Wy$GkB*OfV%p+iX4wjF%oFYNEeT)G*WD3? z*^e)Hw@+rkB*EGZDU$o#p7sHAtu1)4VzM0$=j`_W2BUluR@sk@jWwRFA_2SzJ@5~h zBTt(xG(-cJ>m~;PMdWli!0HY}Dp0A^Rhk98`{L7On!D5G1fCD4Z{6>&T8S}V^$dZj zzL?Bpj5@-7ou_}^YhQ9wLLW*2(Iv0G9I7j>cV%3gpzK$k=U1%rY}w3-$?@1wRdifUCj7+ z`9ND9P?JP3^|S)BSzJVs4%qG1B>#DH;;#*`G&c`uCNJ5W2*GX+!oNCXmfy)8Qia1C zR7gv-UU$s-xnr8Gw*#!w-y(w`m8HZFVDHP^pYBGJ>9{(SEkX~&M<`XhT|36(`rfcd zv~r*-&~iTV9Ft(!aQv?Q#&xN|!9nT=>}W-@K`$?SmY9U-d2eQSP1t#QgJBi?D>=p~ z^~!5v(Of#`H{RK4Bk9UFeoW6$c;ksm0(a&g`}r4|MaRQdst$@=d$~V_6 zU>X?RoUC#^oOHi3_cUvZH=8QK28E{el}_Kd-$JJ%7^4L;1c2J02kRy${^BbSb_ih; z6UrB04?TS}a5|c+GaneBYnNwf?#n2&}T|gk)e~ zxX}wgrFPy~;X67U^L@O(md`U$Y)k+A%1cH#?Aw?R^vr=nc6K(_We?_*`v)u~Jz!Sy zZF)Ezu%FUBUcagEI8>V|Q|-2;Yxy#Lv^Wa{o#(!9qT}Lzb#(d~FK4~(UUrQH&x!`h zbpeQqg()y9D5{=rr*CU&;L`V$zO?SZiz=jWWrDhz{p03wN8_Oyg`t2P|Y1^uss zshpTz=l%T`o_EH;6NL}FKEdI(+JlB?>wJI7p9eod&stfnox4H) z!GW5RGa?E%Ty~pZRZUb%C0K!v7XP8^JlvksjL}k44~D2#c|Lmpu-n@Xz{R0ZucM|> zzw^Ou)}S4qmmt$h*>`$$R}AQbw(5`j-;fKF*F4mvMwOYBgjF-DBZ88v$0pk$6{FnVQCi>|Z!AhxAqkj!p+BDcv zgaXp?uV6HYgQeO~u~@S6z7%G&g$i$Qz*ZSvns{h8#c6L1=}o1v#{pY`xxq(?knrBN4}!2JxioA)lLyf^ICO0vhJ(@_uR?df(VHq$qV-QC?8JVemE zjZJSuybd%Tm&#hJ06wra4~vG(Utw{m22p3WGzhfK))JR{;Ig|7L-<=%rocXx#f`^M zGU7#7b#*>cb3E!zc6YTIT#%V>vDl;lbkO+RE>Q_7DUYoJzHa~qNDt4Kp#3?+^{9D7 z?RmB!6TDc;1F$o?kXt6CW(%j2e3TKsz6Xv%XYXGsE%m ztkOt<_1c8d(Aq4YuanNnHwYl(fq_FZS{=`u7F_Vv(Cxg|JQfLx2>JoE^^jY(I9d{1 zo}n$Fs@u*&Z3`U@@x?bfi!OIemI0a*EvM@z87uyow;Io~Wj+alm}HQHL8<)Wa`aV;Qkn6bbhF#l?;_?%PL zy=ps)0LQ9fiJ&91HfA3MndQAzyAa!jip%_pBW1JBgk&tLO`&=T3ae}Xw#dlb81qMg zn6@s$t`zX%%D3Ye6GRC_00IpiY^V2;xrvvppFo|Diu%^~(xrv!q-oVFqJ)rN6B#;3c z`U}23lKTn^0<4XXU~>nYiq}zKzXKGCpBjw}pxJ)vN-Meooc`ca^}!3!q$b)uJxGXn_KqK>i(f#D%Lb~W zUURhzs54Ps4`U67AZ&p0sJ|xDbIZTem)&{| zN=`h(<-r=98s4atl|aWw@<5c}=Lj4Fj55{Xt!`UGXIO8m|L_f8lC6!B_?=BA5PN2i)#&KDvcZ()2h*}WH z@>Ck!-_l8@2dGawgC;8%R#S11kXCv)M|$)~`u}h4;O&b%SKE$=qtHk~>+gR_pvtqD z{nDwXZ!pIJ;{T4`$G1-AQ)Y;1JVTN0_(I}rZdcUlrc>XpEA=jtKL_iHi5<9K*2d9MP0-!oOcGwpmLbXog$n5(6 zO7c!4lRm9G^>7@&R+IK`P95{1W3bd3=&AGA1>U)8$w=FD#DMzA&YhkE-UFLUT+0@c zyYTx;bOfqL9gDAvC0|V1K9fNk-{t zeXyt}JaU$yYQ~#zK|IjXkzn=&K}mueL83bWUHPNIAxQ68ultZ|>l{HYAl5HW=+W&#Fj zdU^X3$Bt(>_lgem53o?ERVut9@HhcGM72^Ex)qed8=RL(^8m=?X@%$9{9ay$yXR9R z7r&q&6u0Y@{@&lhy^jCrbNg_4J<@DQBn&CFE55ygdygfId(C?Sp&fyjdU$T>K!4N1 zWcD`*^9|D0BFwPT&2ie@Of+83M_86g`z^`%5SZ8-j#I5aMl@Gz89A}5 zKlvyA!sX&?KH>+zI3TL+KbA;1iPFAFIcUgJW9E6fkf#I&(*#sX6^q9_oPSNBZNq<` z7CY6K$+z24;NM#iJ+qp>Su~k`(XN7qs{myVhn1ef3FEsbD@sh7cU}_H#`3lA=p<8z z%jfIp|C@;yYON1susKEDOQa14osNK;k8e4a7Lgf|EvQe((|C*zk%o_i@F&jjYO3_X z@}OQJGCa?y`^_tJq?9wpbQ6Vwud`Kxe*UM=)guomors|M zG#$4LU=Adlp0-{iC$l1f^jw}9(C8xI41Zeo5CN^0abeVU@{bKY@2N!}`eW0?#rVX7 z`_^HT#u*q?>MeOm-eI&Dd#;%N>QOu2zdl^g1R~2;Tal%vYR0TBq;0=R)9>1c@3r>- zMzbhVGWIhW3>SqzqrOGrKb-5e8{w9%B$CX4udF<|m;i!St`i8i+q`In9CcQ5mC>LH zAPtLlu2=aA42+N;bambK;V>BLC}cY-4yxx7sCb7+X-TVf^K5!&k7)~Grd2eqs z?3W&g_Z3Lks(UJ{?N*<}dUU0eeo>)d@gtcc^wai1)L!;urW$?7|ArzRWJc<#`SnJ1 z$CyV#NH50F2gPpaFTd)*_L4;Wf-;B97#Ja3MoW>52aPgSH?2|N~SQ0;i11Ioi>v4*iV#R@I~9PF|@7(QmM>2wu!V0Q!VT? zDNI?p+AZtfJ}_Gh=D6RDwn^d4)mjWy84UbXt==LzKA-rSlf-OG>gaeZUA;AA+mhaQ zn6LGCw=i3X2H+ptr(~HeChjfh`7-H$qMq-0fy($~Vxu2Ip+qGbSlY;ED^Tc$V73## z&b@cN$_1WZ=oE6qKU$W(UZrt4$I#+&ju&cjK3)I*^tVJY6vP8+OvYW^+^%x%e7?BY zLYqUWi3Nb>FMT+7I<;RualjFPf&vnvq7j1)4z1_!W2Z~EFK639A9v+`dOg;CpLoo~ z1oq6GL(I_kM?|TdKc)6cN>kIJ?gbm zDE;_Y%JZQU$RSQH%_}nIl4>KyHkmE8 zu=km3$-(oavM1G1Yj9aU@8|)!@Y@hb?6xoQFCC%B%?@J~lGsgCWkSb>QpUHPfvP+; zF7r~3_v5xr_A(tpTkXT`4?V^cw+8!}>~}o!tQKoP^T`-bz-FJKPNkS@e0z3bGVb@b zFG6oK<0f^D7!|1LK5*l(tdyxSpE^}xHsCsNIyB=+O;|J$G=TBmna^ei6+`QOBJKYs z*q^J{mNs$!oNpt%DiKBL=BHzxG>SK@$2n?VBF51&(wlI; zpU7&F!K#r#H(~w_PYNp7SHI5XytghkzbA8=fvy<7R?Ay6xZ{N zbFzkQKlRRSVywSJSyRuyWpLWa2X@gUEL2pVfz3Z>v#e_$n$?zm6Ki|>5o79pd477R z13f<%hbBjcLQ&W!@D|ECWFz2H2i{rAhc2j`s% zj95BOqVughVGU|Wh0?psx`pPnGzt%E{{GZykguPBH|3^qCrTMGkR&8b?)fD-u!45{ zFnHycNkwOfXX;ul$#{K?K(Tu0d)a)9fyk_v7bo1@1poe(kXM5dGi?>>Bs{COcA#52 zT-_I9(F!=^+lTGy-)Z~2(){GsGXH2IZdey=pC7p_4OxdmK#1_^-c`1x$&_Z4dGtuG5hVtkRncRJ3 z;W+d)Ql=KfB=m-lZ-}z9*)Y)rcnAm*t{#$3Y`1Th#|^G)J_Q>aU!*aocG9RHXy+GRzY;$4sWoq7F|He9clWK!t+@4H{8vZJ zZ?zrR1i8IGk_{Rf=}3KLNb`#5!ivdN9G8-q&~Tq?jPHIclV2%GtF}X{@3+lyc8i^8 zZL=iyjiFE#x>mBFDyC32@YBQ8*B;C-F(fo;Q*9RUxC;TZT>a7uj6B1%P)TXMBWV+K zskolAno<9}Zz#xcngSv~?-)h&{b)bNhuM#&8Z#cWteNhyG1Sgs&;%CXpO?TWlm*`e%k zqP%v10h1voN27YK+w_Mah8U<(MJPp7At(Kg{1^iki@b_cL;CS!i;L906{V)OMiNeI zB@mbr_rV0@&;R^Z6p|n#W9@e&F0IoR@tjbVZDt=Q2C#M{GS(a3PXX+{C9N!`^yuoPyBY!kbHG27|^lQ>qG;h0S=1LVm3#` zMOSa7@zU=_QAK0?{Nl!VCv;6%!i$PHYKx1ez6wp&35nVX(%fCoy>|(5!kB8 zxFyDZ{l|g68&O=<5r=tVSUiTU{+}W7dFw!+S6#_^MifY=iTZZ^)w$Vf*I#lqD9l)~ z7HLQ4g}pd(kL5o166iL|`C5aMm^{_Fc_rtBvdg_Ohpu1L=MODhsx#{XA0qLomck+V zXq}oH4L(H~{8-xkauva%SQ~0@5}`*?WSbMqW;nfqYfed7lsyN{E{3_KFUAjzTb0Y# zG+;eXqK9;Obzg9ukQ-*MFv-bF`aj3ZN?5Cfta8uT zBOPpV*I#-crwNp!2 zPTN8{kpr7dvNa~}Mt3!vQ%xD{q$>BumMj;yVfCid?~k=Q<^3n~qbzDUq>SHF?K-mM zv6B|FsG6~qgk($A9gqq2a~0m{%PX3NyesmfmPpdae%br_n;4Prb74JVj*2F%?fU&v zhT_h3QH%6!s%Q-_WEK5p{+&_}Z*kk~f;mVef?l5@|CF!##m#w=u{FKRcX;h?eWEEN z`s0=nW7c*Ra)?Ulmtp%Z-gprS0x;8kcH6~^ju8`p7yMLxM zm@|Af+975KZ0-SD7*uOS15C8qh+ZFhLdF}Fq~^jif48{b-#+9S#{J2RyaNil$C373 zdfWHL@2h!)qas;f5GMDGPa7aQgE_g>xcM>so4fM_5?hhlE}uhov%b?BJ>vBq*odZ9Vg0j^k%c~cv9GLz`$Q?J7r|D zT4ZyqJTUmONw7HOr2tJ zQ?Smwh;o-d=hRDo80n`}Oq-Nk-8$U=4(u1J=LR~&woq$p1xcFUV3OFZ_98%pKtbuo z7(BVPQ(4fGj?*YfYewoS-QXKKxDtd8_104<@9H@_=vH zm{p(N`uIcCIM-E8G${kWfo(eG9J%j&;@cx5MLF0$nbB@MJWfqbXF{P{x#}esH?E}1 z8al)M=Z6kvostWeU-eI4s}RgJU&9Bey5Fix|&fk#7|gg&>7XR3&b1 z&(TjVC+FZJT8XQ%l~oNj3LeL1=6|wGgd409hVE6ytdbTXmcsV1JtEs zAV@x0W||PF_s_K8E9l8-hOxfV5o#l(pwbyou?P1$U2 z84Q~%ChQK_C^4vici|I!_Lwk?8J~FNRQCOAgjVAqCLCsU&9(^o#kngH6pxoJ0KGNY z1-CEl9Vk$Dkn=q>Sff!P5#$Thnlv;ta$A!m`WyDOR@CKeNlsbv&W>@b{|STxrCkwp-*RW{-G<=$1!260|d!8{{d{K~$t32meY zstQW9s5R2T=TC$|yx9du^XNA6Llwrxg%6&i`lON#{>Ri?>DAv6OGQ63sGL3n66qVa zD{LK3$MN&(5vRw}`kUnrZ?nZ3v18lEIpzQa0_lR`^x*K|)mVJ)AYcW0s6;~}Bx%RQ z-E9AfgX04o9UbY@6Q@upCK(51NXB9l3I>LMXeeBc=dC~GWKpp16FP&(fyzq{c7KmQ zsB3G1aDpxXzW+2}=P&~A_Tqe`5cK*-=#{B9#@vN}Sl!)CHdyLgY^rqKmJY$78_tfW zvc=W=d%dj3kbL7lPW;5~`J@eME#WwSe<}o5PnRuzedd4lN+Ti^jVuscGq?=R)aoNL zG@D}*65f0XpR2t!9V1$>upMc3nFXom12NI>KjrV2U+RNPT#}?{i!N7#RSV_oz0nyN z!(@;5ymEbnZrjqmk@!Q}q3^lhm(TwJw(J+aNWhg{1*Xbl;iv4WA{1gf1hx$l{0+nXU>jD{DM%su78g;pRH|GrJt65y_>*tVr zvJ*UR;blW9Rrdp|)^|+0z_6hD>Okj`thI8^%&papWLr0Is3!2F<{ksX*lM4!7MQ+&eVkM6=l;Nk6!WH!N3twd>-iHUUPwF{i^GK!KKU zyWZZ0OTWZF^3ypl=RnNunKcXPR^`)|Sg(d$VjuVO@2`AG(W?2MQEl$O;U(96m5|h7pRO{fZ zi~J^ubZU)#(#-zIHk*a`nIS{lXGud&k`ngMv8g#?po>vec>7TolgGGY2g-i8d-LJ! zzA&oVm^SCeJmFgO3Sk!Wuhkx@L9FdbMvtKP$`!y&c-`DMC6sE*RAXxWFh1Xc$Klb) z%#2I=O+}+Vo^5Xm!E-PdpI{E)tH^GT6;^mPWH{JtZ?0uN;w(#wW&|n)O8LENA%vfTT)u ztK9kAg7YXh(=*@jaBlXU8(O}k&UpaB1B1f>p80w^#x*`vNH&Z}(97KRfj^p8#=M5O z3h<}5{e!;rxRW!#bUan299dXxWMuq&5-XF@uzo@A9@*3T>$7PuycrA5*w?RiCX*qz z#Y$guordFGU;FyZR2U-A%+&`lEQNp+-&gd<+t`#qx`H%U#ZYw89<$zj^4z4M8>fc(XICpKlFNu*r@z+rzT)v1 z3K)ZiLp?j&8Rf;F+TiH)80FS+`LB?bS>i3@;zZ15GWWzck@{Q(yFXJVq8OeZEr26T-1)*@z ze?_cnd&X|F$QSV4@PW=i`OP$K%_6NDi>*#r*czT(f)R?#rK-Ua;BrWyuECMfKeCf*nU625`ULPBqU#H7Kc7gw~H~h9noA=7k z-(WUkbANjIROlAd{m$y_#`=)MX6S>yYVXEcS7djf?YCu~>@w|bfJgeNmGhBX8~fG*>%MT@U~r^l0Pl?R zNZu*{ejGGp95_V5P^Q(+SKl7i03is&<{x^CDuArT=FKR@Vb!&3+{v;Ydf|en&x9Z`|DjhlzEynMh1Rdd7FW#AGrR zcB73 z>VO}?*NL*;yXb&J@aD2uc{`9^PZR)}JG@^5yPeOjb4+jC9_=F#Ljt5ytG*B8YObhP z>q3uAmJQ|G?*rhexUOs_&##_dU6xemtgoM3u66~ULEYc;2p3vFpi+hU<}DP2Y}1!l zS0aKZ>#WP*9maTPx(j!{adB0sP`h#KLiGTKTX>y$p+Y0WTi`}H6+=>Q zAH0P0OD0qXJBB+!4)azYTPz_OFSc`xOboRsdnYpU4TnN;FIdmA3gD1%Jhh)^ahoVZ zpi?gT8QL4ki8(Chw=pEZ*UnXAvL;o^p|teKTe>o|%&0-3rm-q2NTf{LpG1RNNU^e& zAH}P(YM2%VHgM^;Vsh4w%3{(n6>7}hGLHe0sv0nD39sS?<^)9x@~5Qnd_RZjFLHu4h5 z)w3X(LG`u!dTG7fc%lIXr+7q0TykTi(N?uV7utSra$TmIZjLlI7+4IAd5(Sr?a1Pd z?=Vyv&9F5=jRBOx7ikpq_TIznHrGd>6{v zY^U?v>s4c!>0KO!-Ts&_G{7A69n5O5d1insfJ%!Cb1{o~wpg{{LQwdSH7_(sN;cv);~#>)3IukJALzgV(?r+ydnXtTB=4DkZd`XJ2*r)rjm>km-SX|_ zp~MJ}`_1JDFZS8(c5Xqzx-J6>8paE%2AkEHffvYAkL{0#8~S6TNrDBgj>B>S5$TO? zZT=+Cjf8<;5(i(@Flm8m`^(ZAW8wL(M6ER_F_bz{u1wctw=Z0~H%Xz{#8lpTM>%zI zfty$?*UAySJ+fckx#oQS{d%wX?!h>gG@8!S<4LV1C>i*e*z}_!9xls(FMLqF(uW?6 z%!Xdx?+fVv-{rLWh(V=n*g*K_BMGoc^nC28VYj{cp-dNmfcsM$&B@87>f2;dAkk5$ zJNy_1*B#qCv!BBIv8^;@LS2MsIt<*WeFY%&Lmih37L)unF&Xc;_t$WzYEvUp=7&e} zc+0aJw{W@o^UQIVCMrG<$#bBHuLrD!tV z-d4F1thYgv0rCr71`2Y@-;^qckQtveRN@uUp%=r+_7%;TLo?#S1!VpRJ2ML6>_etk zO8u#6N!dNj(shItAD+EY@RgAD+j#dBJL1$W#%g}1&tZ2EM3FdhTvNj|oXIH?o2ZpN z;`M4UojsPP)rH=%KgO&NlQ2+*fR>gvER!pF=O;P1{B!}&jhod}%NxBTjf`T|Sg<0& zw8a7Qn21i}$DHj5JB@ao2KyqP+DEpe)GLiTBp)zkgPJ_j!D@vB`gkB&-6mISaY{IB zkUzV-jgE@?0z{_Pj*bP2K$+bV0QfDk)zWx(7khd2(?#-cy@KQm$gw_%KS4tOyzYX7 zZwenMle)ix$Nucay}J5>j&h-E3(CwSumo}|sZ`bigH#rDu-L76iw!xhUea||r1XT| zmckJm)%e^E#v?g%paP!Zxe6`mxUvK{-xy1JHR1#jOIs>zCB-GJIdHUE7f-P z&x3nE+T`wviiQfDQ^I(TJC<7QcBiD8r>yPsT!vC`*`1;Q*8ZayDk&zW36|FWLJ*sC z42rfVf|qVJyT2E&a`BV^cOSuByvxr_0+9d@p{U3aO}cwfMu9h;<#%IP{1k!1+lP=+ zM6S>95nCYyo>{;J(sJjarCO=oz1~7|>tM`d$jZ^ar+YF!m+4U1`{u8L+rpv+XYab> zdI0T(W;^9+e_#fevV_jwG6fW-LQpfI?M4)iSU;-4AJvl+uUx2LxNXVYJTY|gZvtNl zDa1%A#e2;XPOiRwP9+%!wtMMAZ-T{8DGE`y?1m1Fs`-kZG*X$iGeZ2_*?aKUiof$` zO7W>rQ5vwFD8Qx;t!~81qQj=T%b5ji*M)6|a0{x~UKo!kDvmF@2xDfNSe>#jxCo1A zPhBU$^kHymEbT9)TjvO);GlJ{-JUxam?}fOT!tbG<#%sqjT&jS0Td*|^Hk`OXnKAg zM^Vw*+B)mew4B~xO%TGtY(9W`K*2o-)80qK*D?Tpb=_hS1_nM?pge91u0X|^q;^^U`MBbnHO9#h$1d&;r%?6jvcOaTDn{P?}P;0u~#9JVp_HAgY z)a~WUNv;?&Q6PP4m`FRQRTEUU*nIw2p+lX<$vXXr4r&Q}SHF6H$>!;cEgk+9Yd?CW zQg4Ar$80LR8-?6n9cvr(R;V1_XeKVELj7p)<#XVh{5{VF2L&97o zss)H;Wo43p20JT}I1V5@+-ZNsD(DwNaXf46A1dxO4(DoiN4-zw3(okv1JEgys3n#M zc}F>_;hh8i(E?o2uWg7yylnE&_l{+!t_RZfr+hH3%max=`*)Y%P5vmN1cqS-Ln+LE z3l&3&HV4-6(CyS&g^ovfjUM+VTjqfytKqO+igGJJHd-#hf6w~k>Uf+F7RteL^;<I+WfyWl5yzC^9xxKo2YIS@}Fcp#jTz?-isW(7hL42Tx zd*1*vwR%Fth+;wCpenppl>%5cZ~4zQRv*G~79^!eGK-68FW5h;Q{%SSC6gLR>=QsF zrxQkUZVLF!x^I=pt9#Y6T3@xe)B~6yc3t2|D(j~qGrky-{KJKKgRs76szj2MwjZzu zJUo;mO4X-}znOgCidv?J1{aboaOdb4-D;9YW&OFF&4|ec9&G>m>yns3y(w~XDpDCl z#Uzq~dP9D5SJcq(9kF%iJ2rtO1}m!+ZfphT;Q@xDIg9LpZj#w}mu2aDSVvYx$G74k zpTaaGes2FvF_o{imF?0R>`oBVuuaQuWV@|-*PL=G?YPHI>Gnk!vYi@qptPoi>=Y$W z1$L7czgv|#`SN`cnEKRNZpXi;x!Ieyv=1Dg97u$%e3si^(FJNryFEbwnVv4w%Hunn zGlPZG`%Bk8x(&QmdCagtj1g9~y?*Zo&^b@-&+Fy86Q^faTV%~MWKK;xyx)vlp$wfFq=(%=Goz{7OMldDr5KkhWLf=3F)eE4(__72SB*t&4oCQ$1P z{*Hd&cIN%u2j;`jJcea>R$8A8qc*yrxr{ing`0W(tK$;k4zg z0omjaTn2w$&-XU#Y{rnlKkrewxx1@=AHh(`m&7KOO!@-kwJng4N0gF9?tKv@s%>dM z+-^mKBB$qtyLB!?|h?tv~H@16NU#QZ^0D>6f`CM2+XgIk%7klov))r3At`qIb zbS*6{FLBHHdgSx0GcCrw?n--6wk(IIN3VlRI3&mogJRj;kakDf(IU+0z(DPd)7^0D zh!t_|V#d z^}Myeae1+!Bu+{2#2rgjZ^4a1APXvWwDVVoMk8_@+HD$%iX}>0$MYiuI;**Jp1~{` zP-UcOpoe{J;*M@@Z!4gGl35~eu`eB*Xklvgh@q1XG6T&`NjuXe*xo!#T!jEeB)m$b zgoE9-t_XcDoWd66FdKa_usCmklKg_zT_5lM_*$zX0(p>(^iF7|XfY7`Xns@uQvK z0kBO8raVvETBOVWAFj>*L$`xt<d> z@)MhLv*os&Tg^5n2qu&6k74MyCY$7-tQlO^+L{;~ycH$fOkXu_2oI<*P3K$V;Ep!1 zJR*f7q+%6M<_sNKZeuiApyC!4y}h+NAM}q>ZnO?yO1avK5lM)xw#D;$c*JbBhf7x- z569E`Pq4hvm1hc%$4y2;NJu1ea(I3AaTA>pEWHr*H)9%OrqZMs?)3pe zZ0|nz(&OaGWQt_^*EtT~oNn5gl*!FFj{(EQuXv_Qc`5;*s&cHjVQEcwDto9HQdol? z&N7U1sZ>uCHU6RKyK1PA?=-L+RGRDxl8?)mtI)(+;wDc`Wd=8K%|xiD%+trmUG0y5 zC;sYYX6+-Pu;sjh42-QU)pN3E<6rL#7-z*!<-xe^9<}Wr9Un?IHfBQMeYkkm9qBga zh;h;Iua$CB))o0sa=1eub}=Ctt-^+D{k=!yd{!IR9}p!vp@aS@xu5v1_*(QJu&}V8 zBv8#eE`Pjoa(Keg|cuL~+xtkhf%<>kB{wEd?DHmjneYBEbA zLK($_$08+J<8)5ktIN>o{`&GV&X_svBl3xjt=8=-!333pdtu7;rm_*`;}+HXV*y4t zG5R<&bIUg}{H5FN=6eLfJ;dY4ajwI>o$ipkU^Xb>Lgi^Xx<@3e&q(+`QuM^wtqfF$8xy2r3bx^v7No)m&)AUcn37>*U8E8>WR^7 zq`|MY7-3KcOSjE7W((%nl@Ik1M9QMyGnOMG9!SRh@LtPuC)cmNgOK)7jH&$u<$!~^ zZ3+U{jflWK8(l#)T@tmdZteQUTAww4yw@)$=NH+7yN_4`BF;<7h;0aj>)D{?u7?eU z#8Lir5QL_dmi}@9CL|o{TJ^GPH^b+Zq9jML{r$^gNKkP6{|Z=92llSXFjPIeIlmv1 z=f?*pdt2o`i{XNVET5ABdF2ljJ+PF)D^>(;SepIvoL z4k8RU*mt(xA;r;|;*J8qXFok|a&nEMBaeheEmFKI)roVp0aLn~V-(ICZoTffa_oAC zsN!#mW%vEBl>O_4Q|!-$=@QtSZs{YI_I_RSJP+AL*xR2@-yds8NzVnRw8W=(-xTO; zfns-C6)@`nRdh-&r`T#BcL!C6m!M6GFWyXwj@W?(8Jx{uwO$FdmyjwEs$nzBhjuCKIP*tOct@UAH>f5*I}EIF+IP62 z{vWxPU0|&Zy0e$ZF;7-WGY`=jqy!~tDE_ObwLkyo*WSN7g8g#x2o0oG3B4ISHtOLO zG3}Gu-8olYe(2+T5VdP6`M)W*`=Ql9Ys0mqP zI`1@XOBK^U=X^pR5Mb(Gh}?IW7!b3>Txg;Yf?6FZ)gbSwtI5XyGOM>qxesGn^uKP` z5zDs~N8bkdx=89Hm0Ifn4|Ey{*3T`u!=)5*WN0~?8;0^#loTPjsL-M(DFnjdynm(4 zXHKO>cE|5_)}j|b=%Kf1(_b)p$VLlG_xtC)&TB=;4)|^RCq6euTb|83sJ8)Q_MI7d zk44uL!7ShYVUmvU_&s5L&@uBJZs><#n*YRNM>J>&K}mW;W!r6#=Cru9OaZ9rs=47c zb5fyx)4M|~!v$@M7%!RQPI#?1gFd-Xm z59#~$8|Rmqoi%E>dk)TAoH>9p0dbm}OUY&Tu6!^$Get&1-eu#R=|lnV?(16^_G3OH z$?%(v_nh=XHXnY&x*YGzv$UTXr0PH0z?cjO zwNS3E^$vNu*>G?~Kp*;Tku!$@3QbpGB#O&iNf_ik(ux87XtjdWoQyr1sjcmmpz6lr zE<^0%p|i9MoSN~Ykq(eZ?_6y!ekn&Q#TujmM zbbI$=(qXpP`DPkXBw1*RJ)V^wP(}_cmB;YZHwk`mbya+%PaeflBT6ZzQOO!qmrt0Q zpiuZ&KG;{cPI6<@`9qQ_TDf{%73Si!3houTo|fjt)y9R@qj~tM`9=^c1Q6Zf?)YWq z&CbVVWM}xBT7APe1TFeKn-m>HB-?W=E%OQBec9)JgFM?lb?)PKryqj$>B-Dd4?k>6 zhDRJ!L>iAGH<6s39Q{Te)~#c8iJI&#*k)C_+QH?3}=60!z}(;pUQ^7TzY~>F70Hw+5wZ zM7)NZ*L=~`>6^prWY{Z6e`a;lbx$?Hsu^pWCAtkVE$q{IFn{5FH(Vt|( z5F!Y*N@sK4fBc1ugtX+^gbO6KtuoQ(w&tleerp5s)hRt#=79>$Zgl%B5b-#tP6r6! zDEO*nFTMN3eEMw(h{9)G6yd}gqr!g(Ej8TTRq-bhp9x?mh$dz{{~UbRn*jaC&$JQd zPd=p-8zah}7p*R$Fay^8Gru8`2 z?gWI>i=9C3ti|A~hghBb!N-Go(V(%Irl!4=<@f2wsw8d^p=3^lJHo8&bzOS8^+oE9 z%d>CMnN8_s3g`NsO?wTdahwPFaSB$ZY%MeK}6v>$&Yd?4+HHZ601FtO&52f%D3N zLQl@noj4tl++pK*6LfoJb)BTS%){4AiRw~bb7RrN^55nI+)w#(g=s&xhX5GnwKz!L zM;EFF)vJWO=Zt^xTDo3#j`{od^OVud*IvoY4&GjGN1KzVcd%(@e|Q8D+GhWF1>|sE z81}g`q2#Cij$%2qtszz*ZkdN;i7ALrJILvR$xxtjsFx{agZUY3FI&&L6+3NrA@AI1 z`oxV2AtopHx}mX@43_`Rn{wD!v&J5&Ox1@q=-6KLgu-dQi>0wxh^th@r%&iJtoDbW zR=0=CE9Re14ZEjr3Z(?I^`|&YrSNG(A@8p=m=i4F*PRm;93N^TYUIe(xV@|NJ4=`g zF9}n?v(;{q<1htdUG;l9|{Z&st^R=R=~V(1c>N{8mL zB&8UAk_O4YBoLw`1kS>v1xyVafQEiTO4)kDVFRSdRr0pT5? zFyU--agj>BKm@T!j(jP;OrEsH@lxa3AD+w?2o+#oNCJcnxoklX5F}Vy-&O;?P)SLN za<_7sHVhdV+3e8%LM;QJ0AzutYb2wTwe|H~@Fr4IQzI!A!okz&^@gw^+S=NV?(3QX znZq0(26QP9v}89r>;g?0c;(oOewymWZI!a$A0S`9&QYx`8@IabL+uLu)LB!iRjy(J zEal)`-!{LgGMyLLk5O}>R4w1x`JDx%g+L+$_*dfv5(GoDhG-k#Q&-f-5P-2%UE?(_ zYTttWQGGEK!kF5$rVW7tAl*z-$ZZ|6EDu~-KNr_fK&yp@ATjx)60w@9avP3$G6s0% za@bf9u*G#;Sk1}ge!HnXcN)u}^FX7~IKG9OpplB#baS)HQ4Inr@{zNcQzLHF*1u>p z<2lL-L)~3tYjJuQwKj`f$KSKJ^U7~lz6e;^dC7DK(@{7f@y%C3N!LA{lDIZpQ)2~!-qz8^{KmIBMOB#N z9fSIdSY%@SY$A1gMhb;0Ql=_}+8@+3OXH0Z@ngOVe1NOpMTAG>79*NCjRCAbT(jG0jiP@nN(H@z`}5Hap?m$z9kw!@(Cjl{P^)>S~UVD zy(i#j0W6xB&B4qI`ijl&`n_MuQ-MhbtXsC8H=UEuK2#N0bi^gDFDLDRkSaplt&j+tz?I z8)EBl9_dfM@Q}npKWEpvX9AXVZknHBFdoyxVb)lq<7zw7>Ww+6A_}pnr$7+n7aD5O z1SjXpz1m8v6tfQ9MBROV|hYRV|+m^GrDdIEFA&>u~;o@Bf9g_brH zP_{|{WN69d-q`u6M5BFYww%NsG-+CF_5q5O3c9pE8dcu){fY+?2Ac(;N}ZMYC&z+E zxn9uLo(!a<)GBq~SKGWg-CX@aaelfO2LkA?W=b?XxSs(^?PcAzo0W1HNMwt6A*nLn-eM%;ROg!<%iS}u5=->ziSY0Z?F-~cVc>o;#OdGy1_k<>cB@$FvrlDydN zt#^lvpGSzzVBw0|$zwd;U1u*+6q~I+*mEC``*?c3}HnM!{t116mCboyZSEfkbwhC1((3%Jzl>v1Rh#np>l z(1UHD+F#2L$9=GrNJH|5_|9GZp&JeslO60Qi9{J`4N?vcFAYZM31ouW11w0PD z=lS-~=ze<0J2H83*F~kKi;qXRxImF6@O*)s`7>r~GfN~_vG9}Q^?}CbT;&~8H^G+^ z)MpFvqVsD0#4Lpl*6gaE<}CJla~G7(h5l{V`O_zldrYE-;OJ)Npt@dveA%r7?V8EM zjfK2k!37FETNMlOTFB)YcI%csLhrqp3YBxwrB|n=67DE{MZcBK z6C=e+U@-wCoz2sWiwsbbzPZ02uQpXgO2XAc5O;VWg!Ags(md)T+Ud~{=FDBlP-wl@^q^Q=6ffA9$uJj0d|`u zn9UE5k3e(>HcwrcOmvV-Y;8nd+5hRbq7H?C8`xN@&v$_tygQi= zUA{d`0;Gz?-U#jO?H+XL0xv?{jFRbQQ?(b|NE;*^1O}7lTd8c(Od~JY8b^n%Jh_P+ zg@^_hmtQxV=VE`xNNWtRMlSZp zyY&aavz(Z$NO^*A`e~3!_EM)E+u9{iye1-1Q219Lsa0mG4AH>^XEXpRZ2|$#3d;rl zhCw{)Qeoi%#AUw4a3V6ikBR*9QZiA#Ii#TV<6gXKTmQo;u>AS~8?$B-u3cS@Q|E*U zdegR~vM;z-w}-}?engRIy5b;mk37*RK}lsBXsS&YDfS!<^YFz`mzbqa4NsyvIaQn} zbt5V1T6)K3=PC9SomxpA)SiA$Pm$OT&-|sS!Ys<#D<1pCBKT;~q!!+7Xk{rPanWA% zkq}jQaIQP2S2#Rx{;I-8i_%0kPQvz4IF4Dm;qdLX-#0H<^UXd~fS+S4Qm$h{+uVE^hbQOf zZ&tv)MIo0K!oJ831cF1*-|*$jmxjwJrI&v%o6`#@@MWd~gjz5z*AH>=_XL8$8*7~b zL+J5w7BqUnu+6JEY*Bpgm=Ina$@E5Tium=yhJE zo;^b6NSRW$IoBH~c=h3Au8fQf*4p<^x7&CPhoTU2a?_MrFErd-schZ);x5{(fiEJ# zIWW*&YdQiND$zRLKyh+^b=c|mlE}D@1E-n-Sqh+0->NsVSmRG*?+kT&b8Eaefqfii z2|LOZt`a z*vlfebwSryJ~h)N5(HZV$q2ti@4*%x#>0A3wU+DwU=uF~qVEzY>^6ImhH5f0VcN61 z?EJOuu>EC}IPT_;PQz@*irt?+hdpmSCiQMg=6<*%*058jE zxphzLIW#ufW_fzw4w?0PCkH~a^GE&`2#=_1?Fnnx`}4)Cw~dA7mQ**UUyEcf=&^aSZY4H0+9S<03*O zay>-tFnW~+?#To`$(sFyWvQrXBWI(+-bmvGYl*~NvwT`Q^m$W1Fux_Gi-aFWG>Sws zor;$|PtU`z_k{aX<_nei6Y583#SN_ejnuEl4pOi@5gu}82ylv9mRm~~H^ciqU4#RU z%b(fV+E zqqzz{K(}=^`U9Y<5;bNTuxON|h<8$5a%#@};G|M2f8aG#Ap0`-awRi;{rp;oheJS4 zBs?NQ0fctC<+s5!-cnLhxhnO{=+w$9ZC-E}$IEI+a3G*ZM?LH;+?&kr2C?2HRt1Qm zUMn8;(ChTkf&+GetYOhUb5XWn2(EOIa@7!=v8iR3RY|;leq) z0q8f_5=j8zhdd=3$hB=fG)iY98p;+=!HJ3_Gy37oS1(_(8%`JYg9Qfs z-~{~YGbd%B9{fXbZL*C&K=QA8E5{UxKN^L1 zbu~-5-q6NmFiz6eWUiEt$W1^CP2foJ#RxGUkpbc%fc%xD5e337mM!H=^iwa$K*tJ$L zd9stZ_jlidKE-R%FrsijVPuI-Tbw>#VKtm1R+u71kQgFzDNKF;Dl_?(3mPq8u{B0` zLJ~!<^%qie)TrgWhFPtCgu(D)Hhb+Zwii|4I+;Vl9${ZtZpsk^<2%n_89kc|%_y3G*wxiL(po#cS^ZRfM=GPC9{6s?G=d8%YvSk|;{atap4$nKZT;=s8{cx}c z$LE}l3@R!zDpD%QclFI?Z!tOTXhGbP0hZtwNO3aiIEW8=dVHS(9oB)16hG<|g>W_I2 zC2>T=$M=DwRBz?9>d*DAAf#DSkZsystY>*)@D(P~WWLb+zVLaU%o!F-6svMAnZ1@5 zOJEM#FRBj)!9{pNLcbkJ>@7ITys$F?(p9}D^oz22Cu-)9EQjF~rAgzZY&?spsFM>X zXm{Yen$ZH-zx)pPmczM9iZey9t}Er8Gl7E$c#RVMapJiOeLj$j2uR!p$N#M^EYppH z@?l~WSR8uf($DYQ#T}TjzZ+T3RvBZ>Dkw!OR-#_f9 zIXtL$`}%#wGLVh4pS8bqNoq*XgcaLZc$>J-jA8FnaID_#f~HCU*YTSl{2lc(gjgmD zkwV+(aDLR5HUv6NH!fiqf98J1Yrxsj3Df(U&r=a6t4g4&qoQiPpS~NJ9(gZk&-?!E z%NHv^>OI2{)LRFUCot>4y5g}M{XGO1UjFiOI&q>T^_M25oy{sf@x_t#_o8uoF2}R+ z5FUEd*4MZV&n`_0jqxE{gXs>1imvj+b3FdAnZNeR02*8Jnhecp6Q1SkWr>Y(?M+~` zC(@c6F8VvLJEv)OCXz~n{Ky9tb_VCuaQXnJ(^nDT0bcdm(yDUbz<}@1B8~4PwnKcjqgH)gOuhw^j?&<_^DEp-G%zJs7pF0- z+-Ystt6{-L^1%6~58c*F(TQn#HQ=NEG@C~K*9U(8c6G2*^JGs!#bd``yX|k7aY&BM;xZpT)-@~^o8FXje7yCl zUwd0EpI`qwMj2U50alS2R?^uO_gs+TVBuK;HHEXmpF@|>)KYhRK$-xHN zoPyR2e%z|1S5Tite){(c(tK{3RIlLRV!2^-6(S7aMtm>qma~sC@aNNAy zJ)V57;%|)txZ179Wz;@A9~{$Wv{XbIo6}9tW~+@MCPWBPpWB(hvio7CRpgS z{)A`iz2jz83Sd7Y<6t!jmV7T;{W;gKU#>wMgax zA^yKE`oAu{Ss;FOVK;;dpzvSk4sw|zeO8Z$2j$|78rHba|4fmWmrectedRtvU%K!U z2m>##_*Q9egC|upJH9(G^6(Q2|NBz?>kX2I(bw)ICx^8{rwf$XA9FK0PPS*20;w=lnq|U(AX1!}+>DXxxP{76>WG7Scvfoxt!w&7F>14qJS z0yABSPCx!-{A5mRqG_|%wA-78$CPJ>%|XM-3`tG=>BL39N!z6%`|PA2<)4^*8ANJf z5lN;Cga`Yg8Xv1=AAJ(rzQtkuuWJcz^N+(cjuUvL0Y{q|9f{4$@iF;k$Li{0>5W*8 z9Q?lKLTDSER1eMQ=M$)Z}&_2Lt4=kzIWt*MZP5}?02 zc)6DX}XUwzOD>m zlE9=?Mk0{y44wwC_Oe_u!(>f0)9KC{tAf=GfkeK0-M{#53m@Z~#fZ#`Z6 zCefFNeC<$z4a<@+PDu%jSwAd3nz~$~8oDg+MLpZD3qU1~(*IbQk4X^RkJzKrn-E%3 zyu`aRBL^Gn!Gn`P<0*0VHCIX}a@YC(70v@_jJFrO`7Ke6c=%}s-Cj@@&D5##2Qfcu zmc;i0E2h6pp6*v43J;wj3Yios;Q6#L{xJW5LHWD1;oqCCCr^+J7IV0qd`}b(M~^nP zPPE=rR~`Zu($50&;c0#QEmOhmr-r9OYsN5ndHU zAuYUbK>56WJr<=Lm(~1lLGg-65=sFW+fR`n2sSiQ=JD8DxJ>ko142uSWuu(E;feCU z|9k#FQD#voQm!rG^#tnl*ESiV*NW;8l2I2)UsmbrM%NAhq3qUzruflvqh%#`%~=#B zdGO>nbo7Re@?jI*WuY#}IoQ!kSXx+kHBymjcdCL+A62q%a?XnCvOg{^<`xNkt8G?mXeCVu!u9&s|gSE-nbUZ3ztM%HqwyzY#K7$4&PlqWIA(* z7OK=Q6o|;ZE2o@Sq@fWDi!pqU_y+cu6!N>7qDol|O2({mD|fF@wZEY81Vi+Cv_%4&1_5hvjcC4(t164N(_+tnV*T6THbat@V`N z4lt-6k$H2GMR(?%KWG11OHNTI9cY#<&~_?T-Rue%d$amp`;et)P{#9{4JQ}FU$Oy~ zcO5UGfw_77U&-Ha?!5ElG}u*z`;k((V@=%cRqwVtN88apM7d?}*{>xRCsi%jdxoVZ)D;{WJjr&E`cnfe*q zxNVho-L%fH9C-T_x<11FsV5fAP`bZbvN;nbp*z2veieH)z+h!O9c%(BUh5~T63&Cp z&&~!iMZbcPi`2Wp@=C7`p)y~&z95=(v+VjzfvhTeyP2JG)4$SM@q5hkib~0%_s=V* z>p>O>r$z%*kGm@>Yqj&OAtD-@<5&k!c|Az|nZOL+eAb8GO&p9T)}I9ejwUW+F`guQ z%kAjgV;XdttwhApQ?DhvOPQii?9yn_pWn5mv}^XI|fN?{Sk;XP{}x`(wQ$M zrCtdIhh)p0Z!NG~6Ck3XjFjJ!DO>4MBtIOSdt8}whDr#Y_a(6XMtFV{`=iuNJeCpH z$#X~lnTXNJ@s|Fs^jTt z)oWcS{AlZFR2(reCI9!|yBE%nIZhuQx+7QntismsKEtpqWcT?V7%snhRtzZ{kz#k? z{E*K3;o6hOYZjzmo*wUSSH{J5Cu>!qJ5E{`=19q*bHOWm87t&me(ZZm&5u&sZ! zVUB^v?pY=g-I$DHpo8~-OmS)(fuq?t-|X*SSf0pEPBXs0A|xWhVJJS$#&h{h#g(+J zH$ZxIbD1t^*}gLhQNi_S)t36+85)sNW;u!7mY9cUjzeo}zu0npkfnd^<6GVv*_t!JNYDk9$wc6}|mj zT@pI4*F5az{u(|rCqBGw2v|AHb)SAy=1iPwvtXY0FZI_-tkFnX8*}SrEL8GCEF?cU z^|8@S@%$dZe))}&he~K%_lvt%iDL|}O*F4EXGft&lcN%c{fFA6F4JV~D`+rIZF4|tU zy11eG$*twd6Mc*4I0)3VycsZ^bJ;V@*Ex@W9u-txlgF$yUQRA3pafn%lo6^!H`9Tb75dA`8gi<; zkF1BI`RFN>3g0e2F&*F)tbfR1Cwzz2ns`1xl%i+z0 z$$W4ePgQ7i&^}xqe)&_y%@1ui2`20tP7CKN9-Oy3=|i@<7dJdfEX6|3nJ6(TF16Lo zPu0saH5zZWul8itFaYMGKV#m6KwiEl7va;%zDY`^C!aW}o?> z5j4LRt5V)S_|~L@U|kcEiJfQu~!pPoMzXHftYme{nRxrCQoQrdku6<=Id$;xI(e*y;&IX|(W_3A z_15kE7GZ|LUY*y;z_!P26m{;_RM9?Fm?L9hC@SYSbds=s^kZe@Hsn={ zoBupTgPo{Y2%J@V78uat6nB@2v#-1-6jGtdd zR_5t=Jd>5-ax$P8l<9-B$HiV}1;CNC&+0h>&i{MJ+gs@q=OdY72@f!p`ZJ`Il|%pG z0>m&h-EUzjR_jY;G}s7uUoVtV;-=7h)xx2fnG~x+fTEvxqW}U>g|LMt4I(4)3`BwH z0|X;+XAkESLp^_$d=RmFhKOlsklGn%fj%W#MM_kQxojvcb%zBE2Z`Q5)8DU$+=389X$=GU00N(OjFWxfpTvJNs2Zw6MSDq2@3}| zdopjz37k_T9yd3)EEYvrPIt~XO&vs+o(FPLUxHH?%?2AUrs91+R+vR@hJn(L#T1{^H4r;GBj{tHyuvu zj~LGuw6CgZ#st6IlS`#&_PieAxcPj4XIL@ya(Cs$TL!1qj-69d77MYCoi09{o}Rk) zB>DxIux)=wJNohS9tt5xA{Rdb>WV}?cA`MpkGxlS;-|>^{9r<9h3@Jw55w&RFG=Se%=+ zkRL9ZT6N$uT>!PVmkm6+@6H%LLtd#K`1NGJo#a&N#0E|#zwFoi@TXGxZb{ZDOq+x^ z$z||)Y6JuSO00K17`MHp>`&8AV()xXg^5zvPsL%0Ww+ixQ#C(5OLS=?s%U;HcHP{U z$p=M_mHy&pY73{`H2%cVI%~gmn%t1M;%3pw3F*Db;$dNgPbGT8$>H5Q3n+FxQ_iyq z%3|;wss+L1Aqcf=De2CR*WrnY1IJ2LD8fa=pn9bGd$EFS(r{uWe!qwh#JfLEACY)Q zvTaRY9G&*d^`r_NF2j$pewvL2p?(NhaP4#wdrjK@clvhQGMlF2hxv^Phsby!dx#{g z4#uzN>E?!I!_LVdYotrZi`tNl1qYrpUdX;eJx7p@K3+g9p6?W7| zDFbdsISS)zky0KNzfp;~7TXxVkii&C!AoVUg1gghe80i4C8(Lr?)gbqc`cLu8V`&6Pfo-L~c zf-fALEte}yOP>3{PfUhqLq2$tV3EJOINT@NzOgvfG|no6T?hh9puA9+0p8VFkV`jRGd7cOIflF%%MG@-; z#?N!dBA_0jd|HEpU^ZS5vaw;l#A5vGPr!V)om2Ank9oQvgL4-=J#dn}vz2D|}R{N4SWHj!b35Wg>777N^10)i1 zJL-(*D%S(VcrKMy)xav*q*zrjux+$hMTIvM-+81`U$Y;r)Hg8|Bz(PG+_V-sF3Mq` z#i?vwywA36x29UIJ7{+`t0!D2TPVGT`*krw6rYXA3&cVJPjoQ+iq*#bAGaMVN=iay z`eVlT3d(Qp@{30lr9dcoCfSv2GFE_TnDjPLjY_G@kf!M-yU?<9g~De7IBtX6Ud}=j zVqk9myWc;Y2-bsF)^zSyh^`2>8()gq^C4HJtVnb*72Ew#aw4{>N|pO*qeI&01}c>O zZht2K9V_l^nZjs!IhC?(&R>0d-Pn8Lc{IlmuB7f8I^o1|Zm$Zf!9rUU@l^bWswwSm zMC9)B1jWjB>0C{>F?o$m7{?V~yC!)@STBKer!DK`ldYPmxub@^Z8pw7=UHfrAa=-2 ziiGrXgftPRKMfyFm*GElb!}6Wd1}F*iu3QIBqS2#g;5C^6gCiIyPpV-KD)!oS82m| z4DqCJ95=@JN0Glex!)R`$W!6SJ90E_9xTG)sM(@%J?#U$O$kk)3}Fq!DsGIPR&|Nn zh(t-YyHbcdu@C|Yp5x(!?nNM81&2(0GPXGHpigv`QtHyPVkQ$q_W`f0hJlQ24EXu*Chzz%WBs&Y06ko$mm(4;kT+ji3_vd)_ z`GDmxjzwVRYHK&{de!N={bgp%%bVE+j^|=R>MQ){sB!7N*UMsnFvtovqocZORR`giGSmWgGdrK41<_8~2xXLxvfte<9k0*xvsDXbNoI&x&{ne{46f@J)cVSB-K#NdkG z*wA)w{rv27v&v(flz&$(8p$!X9%_xWAZK(7syOk|`8Fd}vZNjJ&$scI6tdyy@a!M? zJz2*ylp?wo7AoP)Pfugb&G{F&gKcf_dRD{4xW9metn7WwpWYkQMxp#rN$RQjAsk{q zVVf*vkoT1i&Mzc5(deF$y7A=h55C^O(vuFRK5kQ@(Q# z(GNhg)agc)_l?;AA7#}W*A48i?yz6tuv1E_?5vh*A00%_t9_u`S|Q!ua?^|#L4{6N$kZo?9=TPe(faf%0m&HuUlLf68{maoGK-P_@GlIeRG@q40gz(Z+mm zfZ8Dy?0(3y0j)wt)w;h;a$Kj}9>VFImXToTB~SfOFQLXLe;vhM>|ad>M;l;VufmXe znJgdFqF;iBpTg$H-D(59I7fAEx@Sdn>&ZF({84jRpt}#8)s>LsQCQWc$A;)DX=YS# z26|LOFs>?NB?Pg5tS!m5S0Bj_v2pkF;-esGY)Gvk_~>qM!1>eb^c4$O z#4Bo@3N=bH*^N9uf#r|9oi9FnzoD4ri#d*b(x2&U7lE#2J9Yr_bzSasf`08vchUSz zY^2@DjUtewfQ7K0#llrx?Z9F&RdMs9OWj4RxI4Krm=$A+gL zYxAdqBffyHx)cWnK&z&Xz!1#DxML>IieY@hwyEeeC9CqYIDWwN>FrS%k+bfN``BCE=%>P3wuGAR4}RUp+ETxW>k?D z68}uX{t7FIg3y6zhSOgb6A~OQvS$~%eG3z+yh%ab-rFJmy}?qVRMej`VZF^oH(@m1 z!GaK1x^cV@GnVe+9;y>Q>$~f4l#J592#6nV^hdHuy~%*k0p)7-C!D_AQe!SjLArQc zXJCGm@98$g{HNyZ%-|57&0#i=R#(c$1$Z;+^@X6EQWu5Xv38AN#9SCvoY(Ef7_;YO zsJj+n_4DnMJX)_I)E~49MY>!GwGut!LC8mPfcqCRVsnL+h(rd8ymXys@kn)28)i}l zh=3pjxFS%2M&-rc)(qd&gN5>R7j61|Ttq_@WLH30^UseT>Ps6&%>Vuq{Kan#3+3v6 zKLESJCai8RP5*>@gLY&*!r$Nh&y(X4405SpmR|@rSj^-oC-tBC8e)6tJhqq)*7N7uCOJ*EZs$(fVOLyK5NSF0Bx;WT-q1=!&~GvXfjkBx z#Mq{iC>qb}4=k^Y`+164UbKBva2uJyg2Pq54g#z>UTOP}-zQnWEx--NVVtY1AC zh~EAd$FbU7k!YeHS|vWTioS1^cux@_DyL3#Oquc(@eTdn;P11AprTSzv?}<5ZNIA&jeYK0d%#Y(R%0JjK*5{gPuOahXfY)2A7v^ zwzkNstU!u^;lQ}H*vS6GI*i>V(KkU7(Vj1pM?n&>e3!O=<>FH3SlDE({38{pNnXw0 zf7BNCYvKF-Ssf)9WveZ?bc)<}6^;ikjEpwM1O?HI)BE`ko+y}h>v@hC>pq)DlKRL} ze><3s^FuFjW5^64z8&{DeFlo~O;B;J`*~GK-Mw6Nq{1hGqZfZi1ws};tZjp*5+vO& zN)XRSY*YRmpj09uG#s8f4X(v&S7t_4j3q<)J#v@!SQ^{McW$7 z=38V_g}_?2oR!-Q zI;vaJY#^8&=sGZSh+NrDmVIT!7w3{ub<2orL+P>qWtD?Fe==N}c~r+;_kuG?#)~}a za)GWKf6Vnz=BgdjRI3jeoxP^ui|LD$ze|>ge<<$9QuA5H{H&buA~&ajcF{M4cK{a~ zm;RNN6Pc1i8z~Dz1fU%CkfwRVLBr#c7P$hsEFy>Umxw{ElA3ipVw7ZLdRSdAj7DpS zsT!VO?KYXX?T}ddJg-Mvquy9MzA}0K!G!9W*l0M(1oF3U_v4(?-%RAD=k8G#SdWAi z7{L+pETJspl_95YB(GE?RX`c!8Sio{m9}rUqac>;l{$+FE!YvqTY0qMTPBO%yfT=P zJ*@n~(5KzeC>2YX6QCt}hUqMq680{HO8rJiXd__Bu0!VUzz@SC@H#_LLdF%=)O-hp z&*`}C3#4|0g#4rstj#8;rImz&Vj^ztWEWt13=-wzqjV$GdTe{7)oRKChQCDMNi$B1 zJzy8B`L?RbrgMW?LVPXx@h%XE+utrahZ}8{sH}Z+%LA47ZNI?+Q)x>LbfuY0>NiMg zcdaIO+(-i^wqm~X{!2j}@Ju`PW=AD$dBm|X?UDC0O`P>Z^Hzew`3YNR9~wLBuv zSGT4tRJRY%Mx31HJvKN&J+nJ#iP9@(7(Sq*Xs;Mr&h0xc*pGuH3G7vfiZ#e%-Ypa`)fc9 zuW=FtowWA|f$f8tA|f8K)N0k=^Q3t_dfb*~51T|nClpj`j8UrYn+;xubDtnc^E^10 z?Z0zdM>%M@T+*|A7elQn@pwAKNn1P%1Zd93{+I~<0_OA8p_-ssHa}MdZvn(Pl8A_i z8GQkd=OxTmsyFKxPD_r7P8z#L`cRqe}G4 z4FQ2P(9A_q0its@zbi+>>viyHFi1w$*4Co-1rMjj)SKGAZLwT#%}k{|>O&G_xGJ3D zVm?H5G&Hh1pdcI1yzT|n5>bA5|9lPSfu>ugaH(Sv4N;N$3w#c~?l5{!uDc6dbtioH zb999g>NWP}xF zkPxPvOTi>(c&#^cU9M`ZRmu^1pZcwo_^V6*m=!~gdAdYr#{?6ST8ACYMkAf=e#PBs z%{O+s(VPrXdhX!GP$J6Lfi-&Jy;V{QZ@)^DlK`#Z#z{Y&5zrQ@dz??g!a%=s+haJq zx;kDn0g1*+8V=}Cx0i>I1-oGbK&>xS*6~W&fIt8o_?ppTt}?e7i1a@j8j_+@&BgQq zakKtthR_5};L3|WPN0JTxj#}Y+2L|-dwni81$0dRKI+?1t*2l*OhPH0~t#BA#FObhXJ?UF`cn;{= zo&j|)a01XtAZ>EHG;H&Gake`hz5!wnE?XXx@9x|W8V-3}FAr!i#X&*Bw$)?}zSbWn z+B$^r<>k4`btkPYPdO_4Diy&|5C{a-dcmEb@sNk-ejODIo~yCzqAHhhQrf01qL1b? zzbOV2PfrR;V2(QU!k=0s^v|GyA%U~ujsnp7G+%O0no!p&GrMbar6(taY>7n29)@=oOCGltn~je= z{jszg*Rh(qb5Ruf1_otjw~nS$`9ij0VrBaew$~f#Joe;|o`>8}OYUp0D6fkTz4y$8 zmz{}0!|@k*mv`K5j4K3>e*#d5d(<0ZzH>MrJoo*@e()QJjr4#-LEXI-?#adhv@$2Ie%4)X^^`>0Ci;0KD8%I(ZDsybNQwMa3vgJgGM$7;111;d zv*n$f)fV#~pR|mEuesNwL*H>Ha2_@?Q96F3`Xh8d^6Ggn5QA}SUeLj4U6XQhCf3*9Du6DH^`yvPhbLFxS z+XG*dF);i9jireA_|K}UINWX*>p)|f4yG@#$4CSh1kTy7Q(QK&Edk?$!+z`Nu^br< z9BKOCRcueGRLk8R z6M@$ag&4(<`KV7SNJas(tNbX0F7EWWn>;Jdep-Wz)q&Crmvv~Dj*Kj@7?RXp`vSH0 zrjJUcUjKzO?=5wI4DH6!=g3;H5nAG~1kWGT`jSc}j^$}^4s9p6z|Ue8;U^ z=6+4s?OfT}^kS{640sk)PJM4Y;L!9uSKKkwm*FJ#{pE`gYB5*6F@AmebVopby#|0d zNHyodpS5rvm_OTqb0Zvz(|EU20PD-o;k5Oe9g@;-6(2wFxW@!2Vj7$d8ItqWnyJwR z3M)emhnwHJ2_V}>spr&8cDA<8yH7sWd2h8qk{)VTsNNJjK?Il#x2$CzSqNs(r-E#SCXw$L>cvN89u}CEBEZWeN;Ie zU>c@3pP{F-J_EVlB0w?uB#s5!{Nv$+|4I8#5^*+A6zmO~w*N=EW!p>gmFBKKW5KHB zUbw-LM6LP~&;q~SoCA1l_#Kq#bnzgtVgX2>6FE7#HgHjaN^(Ex1rFiqRfgMRSqrYa zMN7PRsHmv3CTvYhxa1LN)kyL9n8lx1cRUTao@_j9NxYe@q>O9%7-52fdq%g{voW8`bqsqVn`PEtN%6eX(xR+jxtKDRPU9uY7+#U1_%bE(^_@?<;aLN3>}nulpmn z)1qestCuI{5h#%!(#_PtfhO!Nx;G#)?+pxHT(m5ee&bLq_^A;wjGS|qIG9*lDY=Wf zdfwITYnR%EZ8W3196~ooTMMP60ax}Mi%Mw@+wSp_SExN8B1(VywZHjjVd=Q$pqO-( z34S*{>~u|rTnqTCu=fc~Z#=oOfLh^+1OP&am|RZuftiEzh{HyU33Tm7jGFOWC56+1 zjYw3dv94~$C8rQYC)oM&zz9+B3dLc`umfphE*sH}*PDr&cw$c{ksyQaFnm7&LO}T% z@aXL5xZQxH*6FQ&N^v{xe0%sq+;;R_4;@vMbBbo>KF8z{`dQrFRwn%ZaO%o55^Tne zb@%nuyp=r3CMRRQhD40^{`XNDR-|Vew`9e)`08^E?@ZKf4wDWRxot{RDhwsSSG)sM zgklTNYQdbOZP{a_?qB^WPRDJmQN+?mpYc7h(0co=ElxmdcdDoAUKy+r?IZcR*6{|y zrQ{z~ZQ~+wgJdV7;IDZ+TK5$@sU3=-hGs>f0Rcrujvu$tDP>w2CW}*Jh7Q9N`E5M# zq|q?i9v_UXPB&Y-2>|)I`e?e07?2qX)!?PM;UFn5dG;f_LicA}RRwP^92c6doYms` z2mLh~2+81oM!u&&dHdF4MH;(0D}mAcd`JeTeT3Y=ioD_V_{a}7kK$SgUdTk%?T9fE zyUjNQUyh$qnQS$SJvnSCIJs54KSX|cK|)s>m592l)P}h?d7CcC7K1*VlYcY`EK%R> zag!t7Ns-~8t^EU|>9TYrOnVhAPRA3sz@AcK?Y-R;mMp%;3R_%C_jJ#rvogjfWk5+FMNN#W_;p>Gd`k! zFkn;4lNk;rZ7-&QVSrew2dx^@DKE|4`E#aF=Bah?XDwuyhf_bfGX%rtJ=JdM@My7z zTl3YO9RO?q3Ji|oQOY&Idu9Nn(AnDALC5hpP-?yFa#Fbs!*{t%cA5cu)tY5F+vTTK(&CgGxYY2FpfTRW_*g!1YD%aOE&t4N3DpApDLM zkD>S2nE-H72%HxChfFbaMyGvUCn@AA)VJV_CM%$&$q%hnwEWv;P?|>vk|valL^s;S zn)q>?h}ie@vm3B#ucdGUkzcm}*V>k|0QaK87y*Lx#3e4dWN zB;_mbbrbtRIoUJRmm!cP7HF_Ow!K%e&8rOsu|JRi=l1J-MUp9t<@9IMNCZPb{`xa2 z>JuRK3kJTTI%Q9F1$7^&w5ByZq8SX{T(zaYF{(0Y|Lu9fef0lRl&n7Re_NCs7mOEJ z_*XA8HhVlshg`%0DqU>xSO$mQ*mVpHjO!yrtmoX)mR%j1+@B>xL2x4UII}dlcr(7r z>;j7svVZ!KPF48pIEkI*)SYO`m;#3yn@Ae=&Q5+g#*S{2B(E*)gbR#nb1ME)4asPo zm)>)|&gppk!zXovFjxVO)XQjdR&my+G(e&#ERQYowfNjDb5*;`h2| zhAc4n9>STXN8quhsF^cYhUWk)*Y2o;47=Ce7cKM$^&jlOubkfHf$aO<6idE2IAY!1 zzv(6XKTs!=sZ(zOZSvm#(k5r21?bQhYN*ljWRk4-UPX7q!GJ^fJlP|x-FT5^9uaZ9 zz2VI&$rC{Nj1>HX$Fj5OaX4$B?|CIn7aUCWj3L&jZfyD$6&l?_)JKOG>RepVibL8IWE!XI&PWCO=@Sl!jhI)yu5y*&JWeF%hL z^1*3;PUwF4ouaDm_ib5NUSwM;csC*XC>wA0yGOe?x10T9*qbig$Uz zu)sLHKN(gBNlpz4DQ+N8NpxIPUR1fJKA}d7$!fAwiJ|>zGtCnyZDIG;*xC1@+_|>6 z^iR#+X#-qCW*C=)+NX#57;nwjL#SCq*fv!c$(lm%UZIyQFeQnM!?s5aQ~ujnWPAH7 zJG)$WL+k|aGIPdl0if=yKr-*ZxZHIj@`8CIS;cPiXsu>BBZ`QfJw7;^iXdh~)1^rh z^il<*V{1(`&An@803=7jB}s`Mcgh-_d{Nbek%N)|H&Q( z$%~6Sm9Cgq(CUL_+Q}zgs{?D@*BrF<0eK8a1`V7caQ~G7GbGd)d!r+Z9AMvFLVvaK z@z3IT_gO;XmjUoyyOowNeAj2+LMt!BW251qkv_~UDKY-x4T7@)S$!=T-cbFwAjg=j z7iJ-)$a*?f2hE7e@M~p zQoLd4Njg4^Rb;?WruYf5k8Yq?BUZCq8dP{bT4>moXA9zb^4_9UOwxxQdTioA>oN-`h zZ(ER^G~&PN@R5#q&6ti9LZWM91l=lwMJya7moJL*5-E!wNm0K@MK!Z3tUOpgfM`j< z55&EyXXo*YgbauAr_k9I*{)u!_^(&EXQU)=wMpKrgmt2yN0If-u1)gPEc9IK!l#9> zzcKUQ3O|O_U{u06WqcBGQA7L(G7y;Eo~T6;pEf+%YZGF`7KsNJJ)UPnTqhOCU?uYG z34bJK@lSv6nKQTgor|T|7?ZG&P{Bt#hoV?rhy0m;ux+LyB2rEV!MN0}^5;>E9hjl3 z$^dP0Mnl%fA|3MKDz;TQGk`MKoAIKN?OX?lkD|yhQv{Y+R{qW*PU&uD^C8v!N&B>s zfFA?GA!Zi}l?vKjSz zC^+qZV3H>l_~+4o=097u0QOGsZzmtw5>rJ$G9g7J{P*piUd$S=f`zJJ!l6^>FL3F@ga?<)HL1;*+Eu<%cJffUv}8~25FW(|pYWdaE&R}N88^r{c`C=&VWB-*88h{^_6uEuJ+6O;o{zP? zN|g?=i@(46Y?-e_m#iU>uoljh9+!6H0}v3XTOAc{qOkz^Au6c)4_`IEV>SPmn2fY1 zwH*SS#gCFw85AT6L|?>yIpZP(|9w53?(*0B%J(XcURyocMWXl?>@k*eRaoEgF0Cvz z#OD(qcrS)Hd4f&v+lS+4C9_D+Mqo`aqBLP;KXt(P%#>;1V#suaZD^MHpws2@qLsYj zm*o>ei>7^34~K4Nk{&zq7NIwWy@l5h&=lcdlp-Q7SD5yOo=oP9NEaQ01wCo+H7_MjfS&V<}C{Tyaz4Of7dug&!tjt@M-sWvpu&r zp7|4m?`&|*gUK;?FE$ZNbT*4xWmpyF$X z!%AAEZX3_WbA26rzKb4BX(B-Ad*#e|m@;gnMdtmr?Ql9Sdw*s;EY2_vr@ge@nWeVw zI*O<(EGKI1L@*s6l1xbit3)NkF=v^0V&0HMJN6TkGl;fwz^sN!w`tYYc;jruAJ1LL z#0hR1-T!~|rEE9=8V#6jG~c(C^+1hZYpz<>Uc(^!B;HD6~u?23|JmK&jJ)KDM9Up0m% zcV;gukbW^Bqf%#>;41 ziOfvUSaNxS^ym%A6eU*PSh4$w4C|<^UPij^z901HRzFg)xS_4NHQ^sewHL5 zVNpaDX6T7l?~?ibv&w9?-iVGsV>(=kcDFr|sBia5f!Jro3dtL%6JV!w% zX|$yz?i^*C!-oS%!!Q*I$;m_(H@3_ErY>LZbdPq2pC5*Q z%QWmn+W-91}K2}d2zChvPOr&Qt>;5o%gv@~Ra0Fl0g|N~bJ*XTemiRv8JWCaJs8gtvc&Cb%^yn( z#q}^E*a(8zC4p5;3z=f;{WJKJ10XV_7L$hDNhPm;jpfgl0EvW3n%MVuFJWuzove63 zt3d*wp+VQOe*EZKa$X%s>Gme=bP=M#SA##!^TM5 zl3Jh00>w4nOkw;J&&x!*mh~93V)niLCSa~e9Ppa=AgsO3<+S#pygyjOa+Xl38%_mK zr%Rly>YesPcS$9UK?d0FbTRi92Lv?5C+J%2A+OgrZEa#{?JY+$I_B{Kq+u0~hdo~X zr<CA7rOYhTSzuu|fB!l2}q3){(`&PnpjBw1WDeo9%J>N=e;=1spQ%c_4U(4@b{p zwLGdC?xJoIjz`k?p}0;uP@|}{QXna=l#Y9#o4Qj6 zfij+N<_2e2^SRm|m2*`azhiaoY;5fJ7UF?}6x0#{Q-E|=7zqQ#i!3xNU~J~J;La4z zb^Iya!Duk9wMEM#+QDqv*6i_N!L}R!NyOs@+V%iNb3NZ~m#kUpyQ{OizAPvKZO86e zNQ!vP!J^CEN+6)W-rru>T&D3SEoZ`uW6-Q_lcl_;qYD>Fb^mEM#3?Nm0SW{eYIbm4 zi{)7|w|(eTBk6DY^tRaWgpmlswoe(fkF+&GV6LHbs?_^8e+safpk^v`;)7XK1FY|^ml~8gzedVsiD_Flamp(yus`Z{5MCZDk7OxQX*zG9 zpV--{RGVXSI__yNG#s8Bjih%jX(ziqTub2bri3IB;IshzVrqY$3Ha_p&48X{IIuV^ zE~JL>hDvU5H2D3em5bT>z1ehO`WICk&?M@kpnzh|*G$gB#%{bi8wb~^-{Wy93({vV z8@1*eSOHcDAd3KG+^)}LsRJyrntdjNi52eKay%(q@c^LC^ehCdP(AW)vGrhgK*akl zP_4h=w_)0En;HvuQ*GWGw0(hl%nmHCxj6%QtIfI7HP`A{f)miGYESn${A#zqs7>H; z(Z9%Irut%VI!op$SHP$Hlhi6F!!}utC{&6YBFCb{Cce3WB#L|RO*o4yA{hGfG%IH1nLRk_C?ca8866?fAZAS94Oym zF)elI#{hc~+pVqbmChWqWz(sY(*w}8rHf7GH{P|qbhmzEq(zRUztHi`T)8DBq~38O zhVwxCG+R=AvV@@N_9E-^V!gW4xMT;}hf?$2w-|S4s9^4?J8WlhUCroKTF%F4Jo#<` zkvy1=52qLN3yzTFr-!e3AIQl>Ktaq#zR?$(10t5e_w(Jv3N(z?5UK&K`sg2k0n!l9Y6SGeNkMYKu_+!gfG-}%2?zlA zhkTZ__`trA6NqDF9v`R^cvB&uozuC!-FVaXQhlZXGknpD*O$P>@8%V*ZEqdK_Dd}7 zl|&@|eD(3c)p4O(MZoD?mEO`YuYBegn&RE@z|t(#z^vQM< zh4Ko0tmCe5$d{r81}cTZo_oQ7ql;WwuFIW*VkRc1M^9m|D?;#DLb_EdoK1V)EZv^T z119umQHk}6Jo)h1W8esegwoprsXvL*n5?iC%{bwz65<&^)rx1MDZ-d_fuH#iDOh!~ zu|0OBpOSd9|KgHk+|+Cd*Qnujjrm7sXKSJw_1K=k)Xj3X#ZTDQu9=9&uS&iT0ruiVcm1lc$`~JAcHHGLo=;PzjJKd1`?Hu8+qMVa78-WfKY1ro)d z9N)l5fzAcO$HQ>!_Nd-SfF+Z;9cn^JSxy82AHd2fYSr2ZBcO?8t$z>5%SCF{BL&g~ zDb80qns^L8z@dwfOzb~H6|B5m-0p0bi!NjhPWv!vZkGr4I}6wqu&bIkjV|`PBdy7- zuY65TH|tKtfk~u8gCkY|Kgia|Q_P1NNw+g{AG%@zN%O-8i`1W`jTD8SPhT9o;?uOG zHFECwg^-i#LJCEZm-l4Rcgy8A{0>~0Ms0+SU|*5xYI4hyNr#b?=0^WI1(Z_;V;?SWHRr?dp~V`*MM5YdNg3>W-Z&Z>q*rZvyB+AP z&s&ZE;(sPrpxBN{;5BmYrs;_N1iu2W20}8<#DGxT27nD|4usY$8ZH-H-&dN>$7sdS zGH zV#~YFHpg6^y+Tk5Vq&^ILYOCgm%OE9tThTPL!v>nGvVXe&#^Cc@P06hC~4qoUzuGb zj>Qa;#=zZPVv|3kRG5g%UYnACQ;GJ#wvRCpbafS#lP0Y19Xtw$2d~|Fq6mT~>V+Ir1GlgDOTh0np$V+|mq)6b3 zw;76M`AP@$`%ioIu?qyHXV_?PXR_0a{pea$LW~HE5K4tYgx^zOWsQy@g>OO{D+Wk_ zeVa>TA@E4d0h@CCON@x034OWKntJ11p`Bh2&Xy@eydMGWC6bxzTK~Xpi%{x9At&6) z^M{g{4tb~BT9<5@Tvpui4k(WI0mUu_tfpgrFB&g46K%`E(ZEmFWU`h4tl^NDhkMx- z`T)7Yt9@2ib!+HXxGcJR>%9s<@O5?D2@t%2S{wKlL2{zb=oW-y8SLkaK)OzrY){^~ za&I$v7H3JsyGPlseI`Osw>%xZqjm(ZYSmZVlc|Im^Wa4{A$WzANEh8meSD?1oaw% zsdYR|*Q_gTNjofgPb$1XW%_-Lj~Apf#d7xyZWhOUYd0={D^B@xFJF7)&nxigZWv-6HzNXLVcFRSNKEn88>VOw}roj<|ytdwMTlf)iv zcN0Wb>A}DBy!&B^sSfoUh;*L_4-Pw14z~}>ZifsO7v{|=JjqVH4{?#)ExH)&7oC`= zy)$J{cWg$;Rbyid*4q3~Ghj&ve7(=$jKsNt`e6*OZMbfMgDMV*o_P*6u_-wGYgUm z>0D{Y{%DS+B^~cGm7oZUnv=8fM|tF%7>hZ2t0`)M*7soN1jrcLe2rv-UT z7GOuqy5#H|m9HrN;Q)FfPbvJ@y8e^N&M*v|kZP4h|3W+yG$-cDD%?xs(RvnfOd0_* z$@g!}r0`V#asjmYUyOS(n~wP@N?EQ7okC7m;uyT<9cV!tL39uiUAe)Itl>3YTK;l) zbs^Rdx;IGW?(M?$EGDp@UfLyzTDBOnn3ZZP7P^s;u*Yiz%Ccpu434>EHkf3t-VJR) zkt<2r3HQ?vBiG=&mE7GzyFxw3wZL;7xzsT==J2@p!ku*MTbNBq&MdPba9Q1c#TJ;(48DV>Rqi zq-&5(+%b8S2!K9k)$^7Sz|eq7kJ57EhSo-J&v#4xmNtTp4w#svIB|Sw-Fwm zNlby-mb5k^#_PuOWyFhg&2c=K>R-{3PtW1Ue(U?9%S zyKiR2I`2K)#vdJbFMQPI`!@YDusvzEoP<@=1}?_n_-5XUpvr>_uNjoVkQDcyCma2z zb*S7UwKjTyt06R5$^27J4!NIY6w*g^eNj*X^p5$7&td<>a31RS{ApERuAu{ag1W=~ zdD2`XJD3@@m1?X{i*S6As!lZDk))W^X1e#Y&thW0%=hFhgzmv&x-S2*=S|%_wSS?< z!z|G}q*zljGhgv_eK9&BgHEs9lC)M2G$hvcQ0Nb< z@{q@^%XY&dLO`2HW%IJp3E$YV_8bz4#ef`+LXq< zKIv}+-WBi~pu-j_@~54#$z~DCO5c_}7MaN?JCbOEe3wu8s1ii#=vmmyR8q!!{XC z0Um|@3Hx~;^ZtxOQ5hhq6J+h_Cz4rrcF3Deu6iFV#)B%IK&`qQ@@Azj`e&rcmx|{Q zW=r+_WH+@7!`ND@_i21ocL8lMZDDr?Uh683VZxUgqg$dp-1|Z9@4Sa8=JwRJ9_JgH zarab-%4FF6KPpJjXdDKLmZ8bCund{W3l)`=QFr%ZRg{uvIO5R86pMRwnc(`*D1^uf7=Z(Bx-gw_L2e2J>MzS?E*ri3R7s8$s zJwYDSy*8fA+9n}s=wSh4rbpKjcS~AzQN;G_{%l0X`|BI0%%&c1phsSWD8ezvMbT8d&`we(7f9KeLUWmNu z2|)P|V)XBySy(Sdxm$sQDeLXY=?35b{=X<)Q#@fU;6+Wp^QBk<67cH({ogTkTAHiP zZ!@U=_irI&VcCGs!&=m5rSw+)S%92!%tke~Sb9|37|tv5S7H=VFyd=pQn|ryOU62V zki$YQGqX$iwTJi*(<=#sw5al14sy4wwyhb%{Q(mTl=3#%B6=MQbd?vZ|O+7u84vB?d9&RLfB?SF4|#Y*r=!H4`UPZyo#36Xc*Y>inmCq&w) zH1S`l^sf?{K}0=ddZB`$BaS*1Lwq6BDKJidg#FyObc9?4p#$X=zi$|V_mBHAG==*p zxho_$-sls|yceq~YHA6k)tB?XG00vC*7>A;(N?LZ&r6QB*Z2NA_kG^qh5mz5F?=V= zxW+FklF1AUa&rus0^T{)%*Q+gHauFgq#SCnNNSE+MGPPZADt5YHoz0sB?u<9+DrM9A|Jj)gVDb`{5_Mg7;W~c zu{?^?rZa+}jNvEv2I;rAI$yiD_SbtCXxnGd$gn=^>lGSM#dL;jJuC`QEA2Ssk3+RK3z3DaKx16^I;-3FAbh}@MOcilb9+0QgLzqq6 zJCGa8-BX@4cko)+BA9yoayuPpG}T5B`u)r0YlAgX$NgomjGXgA{jSUVe!7!&Id7RdZ(S@_RK|3C|xgqg-gv!!O3^B0DgsxfGg9NF`oD~XD&1+%QE4cw3Pu0!fD z=|_)TQ^ohU@#jX*PnAkGFDf|4Go+GHZ(L_v2z>Z~GR1Uqui6?58Lt$s>DLFfh571N z7YA?#eCmx|km+hcDT*i^-Q1wBhMZ>tI-y|`4WS6;KXNdXRc9y77duBYFv>P06*B7X8gCPtpp|P5mrCan01O|!^Di(in$biy)CAR z6tdkhkxobImt%0?stj9i9oJ?nZYq7=emo`AcgfLvqFbzN&<|o|={bt2MqJeWC=Gd| z_Rm7<9$qT!qW}1d_=&v&cu7337mp%9sFI2`7{b%|{H*t`?KZ>!W|b}$O=(LX%x`-X z&A)kn*#fK@6X`6Q{A)_;5+2pP@DCTQn>ZzFHw=f^ul1J_*h2s@Ss-1eEWI(yAG76_ zM|hz?wHfcVJ#Q+NTFq+TRMEmkrC2nU?Wn*1R7=*lO49tV7f}0B`NKlM9*p*-Ut8nV z;$_yR@UbGPIHiTSJ=4^D+*q}z+ufL9TbdJT8< z)KMs;<|Z)wAu=;WSYxm-33q8i@AXj-z(YdsVOxQCHNaX~$A3S`X{FTLfWiqeFj{^= zKo1M29V*r250ixZ6~hsGq<0&iNjpWe&dl2k$NY7SxXLeEqVIU66L&{L)@SWH+k-Mk zREj?>p+0Ex+-wmS*RCQu9xQ;)t-~zHJRCSlO2ShG?QGCVQUNJzg9$9etgM(tpds#R zl76h|d2OKSyaEUHlpO+eLoa@Z^FD}zoW&=2i|2Na3FwJ_wpiRIb2t!DQBh?NmQ%Ac zfIY4aW%QShpp?a!-~7YzYuC%Y&sppGnr_=!f=h=|DQrKeZqAp< z>$phR&71Nq#FuHfQo|G|ywx`PF4huQMp}5ORrLc`kqMAJZf1y<@^adSdFORCRTF5C z4rX)$H%LhUOMu(46EXP8Inoa{H0u=^tdh~w0E?ZdRTP_dDfhg!~HQCNXRW?D{wWyfnQlW~+4TEje6__W~7nQ=I~gFFF6Z@3lZ z(~Vdy+xAzi5eW%mfPi@g3>oVlZgv+pq`A-0fWROPvqin zNdO3FBH`v<#J^R9h)d>3CC@ZC(cykHPaArX@{^DJI(D)F=tY3G4E@P|V9%r(&EqAsc@UGkUHIFDzHq_PCHJ*)u9LkArPZ}A( zu?IwjVV+xR5T0WI^7GDs#H?o7GZELa)*Fa!o}w!U;+f)E%rNKxw>8^@5ya8ru*Uf9 zJRNzD^$!>OHzgAhs~&;m7WNtR>grm!@d6~p<$0>f$w+4SNn6G6$-UF^kJQxR@FAys z&8cXu5E9(WeCo@B}0*vWp>t~>2Y%rl_g>Op`4wu7f z(bpmps_P|%EFMd10GRi8%eYoYZT)nZxF$1ABCoqb@x@b{J)p02PxLub959w8k`aG5 zC*eI`@?cfrbc{$%m99A*hNO!SYyg3*(Rse&ugPLbdaMtVHZQ-3Ns-!(lRlhxpcZOW z1b90w3Jt1OEu4BD!(qMwg*yZR+&~G0at#Rytf}nO{syAx1?tCe&0(tBp+xYa^r?I0e)YZ5t|tkU+bCD zMYov!KOt<_)GtfznF+N%$yMy_)F}t-*V?@+LsP}AmVd3@opPbj7Mj;#Mj`#s6eLfl zimha3mCY@ruvqc<5lOK$E$}^_+efP<39#lt=c-hYCUR-1g89=2gq5`*q!Jp)S*!(d zz!wb!3Rb#Zt}FhSwTI2OLBO3C3+ZQUtcc67n?~!gfB7H?Z!#H4gXVp>B0k+5)B`UF zhBExuCvx&@o~y5hg9!{EiR?*tX;#wIl`ESGr6%FI5v>#le4p9_UacK>6ToW&G#bQ^ z`vTIZ4{*Ibs9i$_8o>^b=9H&aLkr+a5SqehwZsJgPoN~$Kl#UNYys$qY~?^j>gOv5 z;BDZEAe|y0Al=<1-3`(RC@S580!nvFcMUkwokQ2q`QLM%bDrmUfB*Hq>vxu} zb!r#XnFb*pSLMWx3B;NitvwTY*O+ z!J0ajH%lqGHH_Gxld^VUn9_4Wp-{6J0o(-O>osu)hw|-eo0&vFf~|)c&rX)>d!LN$ z9R&h37O?-p3LTr5wr!xv=NB+m!>Y&^g<9P9mu~X`X9nXXI{4fmXgk5{$mni4hKTL_ zjNGv^J^v8@8Rua%N1fw=F;&A|01`r$3Z`XODcrH|>(G`LS=3&odl|~iXU}@$el9I4 zV-t#S47mAlTy0x-QS|Yc|3sar*gytM%n&tc^YsNWqV~Vrm<(EiHnSv@mMc=8AIV=` zbboMyWsKBvyh%ZUuTQlbootO3)V17V`fooq>bldfq^N_nVJFpbI&>Mvg%!{%pa zNF;fA=_W!aAj%$1U-VTog8q<85=H1GiSZzz9qO&`h4!M9i8=_CVH6Q(b@O| zj!ntdkGs+jPrlias~bJFZka68(^__|5^Kb8GRF&3;%}Z``Q@+!SmD1*japuMTLj#k zXqD8jlXb_CuGH)TODfpf)0a9TlDzz~?bJXv-|60*e3qy`cnpleigsYMFVytdiU!>J z-#=97&n^IFFCCIC*mS-eot)R#?0+?TLgjZLfj9zybiWr+%=A`0gxt68w?+}NOajy~ zICt7BSb5L8i&@*Os%;K5XW7D|m|%Qv`=-WPx2R6kJ@6dW)=21*5S+aZIS zD|i-;=vPHuGSKUMEgTwma8y{b3_V=g^z9-vx3Yo)hl%G@`?1@elRkSuOV%l+U>Q&u zOjkRCNc66Ki~Xv} zHZxQkD8^%t5qOQ9#ybt~>+=|!4ZSZ#^Y!q;E`^oicc>&r3xo*9+QXHfp<18FGAQt} zB1(Oc@Lbol>i?H_R=9xH}KD06rRHW)rHH9h~RuS2?anJwiQ4+O%R_Nwjo7nk>!)g?x; zX@VZ&Oj1C%pxt6i?ESIM^KG#%5|CuZeHi8tjS#v$6sIvJo;u%TI6u`pUnl2ZBhWkF zp2W>l46C+XI+<8%g6}MozJFh1#=!vz$V^6O$hfajAbxZCDHQ`$yORZw{K#0>mzEv> zy43#;&(JD0<}X@Vj}GmU7IDkOs3oi7oh{QT{*atQ;*cs_R=XX#{Z^@tZI72`8TmNM zGrZD3=vuShWKeo_)ag=SsXp8UhD8vhbS{J-9PWc);F(%SD_|EZ>8gi*23KtQOMd7jI1Yi3=DKu^XsbIZ4-5uC2Z5alb(7An9DWGuzIbbz*Q|%yDVHj8w z=MMe?uQ5h}+Xp^I7(zS+5rty`%lKbrBmkARF77*rD`k>AUk!{hw4G=c;kFv2A;H4K zdZ3e)qGPuJp6&xcjs3J8n({FKt`OiRdW9WvN-1=7VU-0kLa_I!c{a+%Z%&eokYv&t_Pm=@AtY+n*RZ^glp8Y@sBKP>XBold^M~@7(gOt5i!mU=W@iGsJTo@LSkudf9yM$Px`{W*8TY`+;2%O;*8aH6&iRer zX%nti zhBNh|gNXK_TC0eSw=i$@Cj_A_(TKDQVDTKyl_xgzJCtJ9EZVrva0F+?ssH9mteE9Y zjlI6dl!e0#IGSc}MSPAUH}C$aDUFsIiAl#&DY&?}e0E^Yw&S!NFG?;;+y;P6#5G0K z|8k^QkB^Mku6HC`l2p)*5d`JL;3i_`#4o=G`3(rfY_VB54>bOUcxf4rolA6j}lzehp0kZgVE` zz4L<*oVqj4`^`>_ueN#Z>yE$3kLbeZBdDnm)4gXPzE_gUJJbbC_xjEck$8Y{9x?J2 zJlRqywjAnsPGbNqrH*4z$N_HM9e33*B&@nK!w2*3#J|{^lbi0L)h*?v@vjVW%N81> zRSJ0^A~gUQJn{8`f}-Mj$?XkdzV{gYV7le*rq%#fa7!;)bzPq%Ixc!=_j%Vlt@sVY?{s<0XoVWPHPh5 zR5F$w^FJ)w72`j@k~@dXwA<6?r1FIlQL+>;<<4;>O!UM0wqeDevz0xn4IvfQ+75P% z?5`;O=F_0T+4YCcIY)o@_1h0y4{R2kCj<;kXAHf9@?U#6vMOu^SN69(q{Qyn5eFv&?`4w7O12yH$o82{n?axH{itG!@oAc=$H zFd0;vWG!AsS(TW z6i1_Vxaw#-shre_cuttZT#=6=jRVg>rl+@rRVK6Uq^lOUY0^w~{U{}e3rOAjSEu`< z9&^0d@r^E!GPN0(_4+Ox_3$T6AHEqjQg%K!1~faG1%%Z0bh868kfc@{aMM9_rX?i@ zgbg%Evacl6Ki0zCt73KTgQ*owxXI$#mAy)LMbw-7WIriZ;1`O?MjX0-es-vV;FSOF z@S5fRyTdE@({+zhR`Q%SWyJ9CX_4_qNi9}$<7IM9{IWPC4Wy3 zC~Eb+hh7MSf}@K)7ToL?TZ7Iq2););{WCiBIi31bq87nr)~$?qME*TGe1*tmAwezZ z6t5yvY73@dKs2Ob;H+7troU((+cg(%rvmNrA;3UMHp4x^Y_ud1jYL7ta-!5(#K%Xz$Z)hK{k>DMaq zYPZ3Y!AFb_4RIlQrh1Q~=qNs7=;LZ-E)Di{A@@zP3uPJbbigA0rz@nIUrXr@R9un1 znsdV)9dSSPE|_>LBLNbT-c+se%CL5BuAqm9%M?YgZo=0OxCc>Cs8C(E1qzuBdSi*{ zSp~@-+yA>;ivvv3Ae2~0Y+j~i*0wm~HI>?4^qnQZweo+{DBQTw<@zX>ZT$*^a8=-f`UKR+&g{aX3SGiE&eU1z$hukn;yw*1%=CL-Ht@~={ei+ayYJbr+ zqSMG2LMHh3jg`$nX3;XkzgIgBzr^%j+>;j{l4Z8L<8{b^(VC_?7!VGd;5j=xG}mNVYxqE%&y@Txk9tcK!9~ z$Z@S}oU@_<~-*Y0#lb4VWyRbS$a4r)PEw}~c3!auAc%Am^ zhK!dpXO1^0r+KpFiZdzj7jdZ{hcVIxXI2>a3m#GQ6z5Y~8M(>4sCmseFY@=AmKNp*J&DCTQ!RIqJwM~q-&Cf);Lmq9QyqAk z^xpQVn9&kEXaU&6Xj#VBh@6+|RZ5x3)(hB#$AuZH#vhGoa4j{UQu=**V zj^>Q+_G;UohRscL>ng8LQBlqxh2Ux#$kvD6pUBooovL>fDtp+W;ffJ zj_H;f`uk$7q+ZqZx)hc@CT`=g$1&ljn-$C#xOB90yYsKEksfV}$`p zkHkVEn_O4<51sPht0q+og^0?RO~?DfKosVnFjGD7U0)#j{5QV;X%Zyx!2m>>t7$Jz>d?ygMKa1kkiPe9)V+zxRMZcfS}UvVmau`3Ne(lD`a7BtXmM$M3xC95`Iz zv9q{xHcwB1T?xDsB@L^1&)#In&BaAQt~@O}!dWj@Vo8=xZyWbaM}tuZ4Vs%?{bia; zP*bh5Z$;AOecM@acbhcV=;6H9MGURe;Z_t|i7|y-Erg-_Szw{=OxMPet+7m6K7n>} z#w7D`4=0%F21 zq*sD4H6b7DI$#rw3}{)qyl%7J;lJ35cVVBMW?p-hs4`o=K_&Sp|2RD~7vmGfKWX5~ zTfKe5mfMMJVbfYA+CkW1$^my06OMu7Ix(btCCXQnXY;=8lq>@koG~lk%q5dFi@lZ- zw0a>!79gE!XR7q|TU#r0w1 zj{y?3TP|VOBE^;v=aHQG#dGSP8myUqf?1dx505(OAG!%l(EX(N{@?{I!|B+*=S#y7 z50Vm-Ne9t^haHdfFgl#t-81Nj+CBwk^Mr2_)U>i2BCA*#tQK&`^A%~;x2JiOX!sfi zxx93u#DyF+L0H7ezqSv1#Iudt2+te}PYCMz_eL=Wd_2$ZZ2Ct!l=}tT+0^n4MR?6E zyQ}!@r{k45U(eFsZ(b(h^5f5g^t@{e@xJLIP7(1J1UXivmV-#fK%G82UP?_4Hf(2T zUJQu{*}GbqkLIVxo5`ZoU=4c#@{sKDY+8-opU9cL<}@HLHV51(HqZIKqo?xPHC|kv zK$HsN=F0=-1T%e(RZiDdNA5CxH>Q6H(HnV(JxWP=(%A!tR#+g+HNYETy1hPxFunox z8o@gd&oUtN0_< z>QJgH@3_Lm(#;5&c5qclt0$iS+lK!W;R4Bz!10tKe+N49(4VeWgY*PvP5!AyT% z4gmc?7#T*dFN9y%ktm6tQBVtFSM=<)WFd#3!9o1rL1zfgm#nN<2+vfxJ-N~&>fy-I zZ{CNS`4>IAwcMu1)>ygcHhp+V0XLfr-GL{B3aKwvevN)pK}?c*rVJXN+jU0b?XHZP z_kWkgqI@38@k{}sGHw+)8wp$#pQqvu-?FheUtWneI2+U~2Kk)hB4}|yVL6{jQfqE85Se16$dcJ!GyW zYm_>mw{fKh3jUT%vgh~TfyMh)*rLP6&0ZJjeH&SX!k>)+qCJy`iko-(KnTE zD83a>P5Ipna182Ir{2QS6(HQHao}yE3B1bv2;4EPi9-)?a1>V)xA86xp!!7lX^i(2 z9o3PGX$is;T4rF)rc%-8_dh_aFs*%08T%7LfV#j$obh`v1lk$V2CHQG6E69bRs(kP$&qZv4jQ2C zwO2$xvaw2EIxSBB@)Eq%&IPjuLc&1Etp0WLXFdvWkq7}h-s;;2_Cg-_84pFN9?>n& z*MnuU6sLq_4FqxK9<9JmS2r zZc28~^ItLBHw=l=t@Ot4?2%-=Uw`$e)$}ePOl+7v^m7&t$dY+rpRHu3wfM-4xci{T zy8tR3+WcDMkz>Lm1}ZJW$mkDDmW9HxnJ4ti=?v}T0iC!Q33)#@T-TT;v(?puW6(d! zy$}5N{hS;K3LaxeOjUSubBNseWv_w9*=ubx-+S+5BKnsMJ3E@u;4e8`KGIvd*`R*T zjet=p;fq;UG)hQX;}EbLRgEjEh=+_)`@aHDhuJv%lr8ygD6IlyPWTTUe&jCses!*e z|9|n99M>PoJ(zXD)V1|F+4b$cMU9Ok#7@#yBR%UPmSUG@d=`3cO-tKg5!p*^zY6GU z77=_z0a{Ti!tpAX9C30~L3_qkB0oiIJ@!IXqqw*K(7M9dd3UEmAUr>eo)W%e|3F^u zG&D_5cIQPy@{X{Dr0BfMcpXR7@_I4fSuMJb-+GRHFlPUz2*N`G*Q7`~dt+*Z{in#n zB=s?t1dTClJ{mrQ%8i07q&~q}WqTYGI?k-5G1GgJUpC_>dT=2@I;}CZ6EIDza=7)hQGU{yGGgqvQ~fV8xfg+K_hmGA$<&_m87SZ+5; zmzv=*tuoWov9#S6=e^g*z+}`coF!C`LeA$f2$TmuQWK?B-@bj{vAOl9P)60|IXG4G zVHQb*f)2o^dw)kiG@6+8tJF3yA6B6kzW^l!s@Sb|&hB4c9#T>ygqs$pC+1?N#1*Kk zB!FPBbs9Kg{1=flZUU+-x+498j6VU{Q{NleyK zRrY^)e-7?yJ?9Tq;sIzFVki5Jfrj?|x^mPp<7JeN+Xq9`_3snSoO(kt_SFBpFUMIa)THZD-RF+m+hlp{1!?l%ssNa zGp(lMn6hq&o+)s#p5`@Yc5E!+UN>tHjB*K@W%Ye~DOGnzi{tCrcyNK`%)uzM1CL^8$|282Oo%sI ziRhI$tUp*a+@wAf7(88XxJJpGqtsGy8yF)VTyuGZ`>*~>=5%Y z=sC9L&T4q=5f#|4Mt4d0#d!g`%35%<}5DqdVhzqfwvTc%Cyyadm{_l9ImfSy`gyX!aWGuK&XCk$yj(IqdqV{rk&- ziQGKZe4i7#nYV@<@LGqJkocihub7zfQ;9_v{tb25GikS-cLTfKOD;O^`Q%s_Dk{7; zw@VMb{F9m-lb~%IB?j+H9&6 zzTOpsJ>Mh)=Ju|`rtU;goqITwc73y9Xm>30W}JOvif#A$gy7AR0$+zLQNZU)o%Ixl zMv0u9dUmPWqI_0{x{rT?zkgj4d%g_aD-wvcabi+YKS*PClq@A)I2TqYM6^ zSEDSztBGy;@Z5OiS?0#%(wFpnwEgC^KfioaKrFvw^YwF~mb**{F&iD2vfxGgP6*<5 zz1jJanX0=Z+7(<%k@JJu-$8bHPx=wt_OGv@4{rCd^YJ6t3LR{oHM}IiseRjbmuuJj zoi1x&b8$(NO+KNHSg-!KRQ1)_9xDMsf%@oAb=e*m_bZNCJqG6f$bo!Y=@jTg6O-_B zD{RIHdYTOhadY6CH0d6w>{(#>laXjVsx)!)@CC+{2lUs3e)*_ot>^RLd2gdjb8;Tr}QU zNj2QPJ~rh&KtDZ}(omtmrsvNs`DUZrCKzRUe}+|(*}Frxnq;n;r4Z=jv@UTK?}*<& zFL)*8>}sbVI99B;#d`Le8=|k?2xZVvc3)ohUtRsdpAqh~?jf1LEUo%T&CQkn!(iR| zNQK@=$^x5-4st{RT7u+j5B=P)Qq;Vjx&~+pY6s+#gk>AtrYD<0tc|oKzbqeo{7UkU zF)_`-+D`26`sT45jz*z|nVB3$y?}u7>+_$zKN$5L_;6|anBSDdi>u9h-^D5MC#FUf z6oksWdQ3#VjvtFi4KfKOmn z7jU!f@eK9O+IpUiJ&g1#V8i}e|3%qWeC00q>$&gv-791hrTBkWX9|CsHlOii;Yg_j zSIp`5A!#^I)K7FP}{L}`$eC@)pU(MDlr)O`7|wGKyi7MU?hmqx8bktWWKR_~wNb^D7~+tV#^Ax>fE zj;}!MS0;Nz9okTo(el;Y>oZ;>x%&W?Gbk~)v?9>DAlseocoE}KE^3JS`+SW$6qgLf4wsu zR35Cs=$CT*g(A2?Tgcfs!GpqrQZ=&6zOLKeVUhm#B%poFxT9IU;^>HE_UAW>n1R79 z5#OmYj*}cj+*+pQ{*jph_pi*%7#M;C$x+h|23j$)a7>R|Svcw|;jFxK zh69_$lOPEB^NT3Hf4&+g_eqzFPG1WwwC>FZoOA9M8OSu(nn%UVY#J*^oIZK_B>uvA87`qor2fNL zdnYB)H!m`GJKPHf4}w0#miap9aFJ(&jI6A2FAhptHmyb=j;t}JLZHmKE_mxgpl1NR z|9GHC@hnht(8blVb_9xSP`+h*>k}1dv^!%Ll?;x zT)`oong!}#ho_o^XR*=t?+$U9Wu$Wo-ij+T(NhSyp5_2&sb6WV=Xi8qP@f6=@jUg+?@hhkg`E&)w|Ywn>Lgzn=z}X;DWb*TpL4BdE^h^g>F$D zB(70`W^Pc8iRsowdyQ*XwLvKI+(JtZiKcgIp0-0r>OvHR0C_jjGp{axTZ;Ny`z_n6 z^M6c_wn>s`I2Fz-(gi)8BcR7XL5wS=Sa-BD^($>7nZ(r8bk#T=&3Tk9Vh5zaz&TnD zy37JCFK^BcPw$L!GKlH%{}^)2{%vT*t0HL@aYhuYM3(+HSS;V9!qj$xZH&{}!G#|d8Be6o$rhLGI4crR4a3Wj7r4k)0Z!*=2@7;?5jW$6~?|jQA!Pj#z3;aS+T1I zP&7cPM#s+nk=(KAGngL(Wha`roLv7?qqENU_!cza$ZYETght}BO=twG0IQ*n)7 z;`#;#8jTynvI2+QLH%hP_e}gSq7w;;1O=f5kbpV@BDw$O)7z7Nmav+%%ir?X`!Bq3 zv}--sME091|D@MK#BSm>hti-8-ma==yN$*-=cz9+(9!O`$TtO z;0xgbPD`Fn7I{z4XqhJ4vw-URlo>5<^%-4aJ2bOvmdDphhncXa-SaXwbhOCL*S{Yh zs;Yuyt-1@#WS)nj=QN9Q+i=q5v6K29 z?_^?jyOd5OH|po1W|(RtGk=}L)8|kBIx`!LOh71kT&c5};tGAs$(eU=cjxfl?u-iF z+3d&(Aun+#OPdU}f9FrN{K-0JdN9uiF~K3=zjOy6nIiHaARi%^)2p#F0m5AbtSK@Q z9jq0LF(IF0Mzy>*w7k6I%)aX>RvTl5#6U1+0q_!t^#n9+0}>ooMTWmpfrlqqA&nQ8 zib@fP6b0H#Rm{0@D3Ov$Q{f4PGBv8jD<7QSsx6|4R3VH@-LS z;jv`yZD(`XltRw~+k#Qn=w)KrU3)fl8#oXes+9fa=!xw$Alh`>olSAnEct$_z?V_0 z@L_9Ar^1Wt*VQrdB3Pn3v-R+t+9mPS!@U;Q9_)gNA8kAJuF-Rv&?*+9%Qpbc5MHuv zof^JJd^YRA$DYJu-I{VY7&T#QF2EK->@+(x^8K?sV`9G$X2yf52zTone!uf7v!@9w3vmJcI8w)Kh)qa4efJG@7-=Dw&{Vt0?UaV*J zkeP4RDMVu*xCE?#22uE^mtMlZW%*8{0(?in;o@?BV1m~#ajiltZfTi!vV-)PifR~G zYi!wodRq_(Ug>^Q|27*=7XX;2i3;sBP7{w*4`D(82B0FNmgW)naj+TvfB+d~ zCMqV;q6f%Z(ki6_+X=(7XW_-bLI>`r(5&0e5(98u_G2|{N+x^pb_BfTul~ircmeQM z*%kwd>HN;YfP2LW$UeZ9F$nt4Kt%@DqmemS_{V#5X<#*fj*st*A?4Ptw0soDpwzwV z5tp7m_$^kn9|-bfm6Tv$kpMD*^aGFw(EfDwjpehJTtc4T=eJ^aZE;z#LaaMEmp2RV z@tp-JKnr6bS=a_|!SCh;NUSJ2)2qDmIp@SV-s}Jg_x1G>_bmO-X^~15Gx}?d0zY(Y zJ`og5<;zpRyj)`8V*hB;5m9M%<`8hX$qg1(6+lHpFm^daCcXn4ZFz3v#e(kBt}dagFM z?%Ye53THIHbCFp^g#s}9>a8-Dl5Va@dA&Hn^<4+{%eU46Tp(6Xe7rBlw7@2W?fHx$ z&TW9ruhs(7h|S1B#8qFhQ>r%Iq_$IypsQC=x7U0e>i%o6YXNg@@qOGZgF=NPT!hT=?{5?o9z~iL>jCCPIAK=CN{`8cXa^-9-^Ala z7ZC+9njK2yNeF5kcwJ1=h{&y3_YutI1z`_(_4 z4vUD;fdnCaYNyzeGIVSv+BOa&0b6*jh#;-x{ zx8p){)6MCOxw-j$!^Giq6M$_!2K4( zkm(f+d_A02!|9k&zQ*Vy0AyeVMDYmtHduFYX=ww%gF(sz!&1!0RJx@H~{42Fu)FB3a;@@NBt~7kROpNp9Dhn--1Vw z^&YS~FX5?{t3Gvj{f1R}9%!tOTwL$AZ}~txY?NcmTAD_ocDdyT_m;AAy%S0q&h&IAW{&N@7EClHr`&9XKik zVQjZo1A#S;R#UYLzssD>@_t=Bi^>5*1o@;@bMVys(w_0Ezp%UY+iTip&m`fAWC+Jv z8rO5o1(w9)O=v_qJoFOD+IhzQ``(OIMo27}UfnkP7q6AJoRUo#cv40K{#N1Iz{PbX z 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 literal 0 HcmV?d00001 diff --git a/manifest.json b/manifest.json new file mode 100644 index 0000000..4e2934e --- /dev/null +++ b/manifest.json @@ -0,0 +1,54 @@ +{ + "name": "Paheko", + "id": "paheko", + "packaging_format": 1, + "description": { + "en": "Software to manage association", + "fr": "Logiciel libre de gestion d'association" + }, + "version": "1.2.4~ynh1", + "url": "https://paheko.cloud", + "upstream": { + "license": "GPL-3.0-or-later", + "website": "https://paheko.cloud", + "demo": "https://paheko.cloud/essai/", + "admindoc": "https://fossil.kd2.org/paheko/wiki?name=Documentation", + "code": "https://fossil.kd2.org/paheko/dir?ci=tip" + }, + "license": "GPL-3.0-or-later", + "maintainer": { + "name": "rodinux", + "email": "rodnux07@rodinux.fr" + }, + "requirements": { + "yunohost": ">= 11.0.9" + }, + "multi_instance": true, + "services": [ + "nginx", + "php8.0-fpm" + ], + "arguments": { + "install": [ + { + "name": "domain", + "type": "domain" + }, + { + "name": "path", + "type": "path", + "example": "/paheko", + "default": "/paheko" + }, + { + "name": "is_public", + "type": "boolean", + "help": { + "en": "The SSO is not implemented for this app and yunohost is not sure for hundred of users...", + "fr": "Le SSO n'est pas implémenté pour cette application et yunohost n'est pas sûr pour une centaine d'utilisateurs..." + }, + "default": true + } + ] + } +} diff --git a/scripts/_common.sh b/scripts/_common.sh new file mode 100644 index 0000000..b713a49 --- /dev/null +++ b/scripts/_common.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +#================================================= +# COMMON VARIABLES +#================================================= +# PHP APP SPECIFIC +#================================================= + +YNH_PHP_VERSION="8.0" + +php_dependencies="php${YNH_PHP_VERSION} php${YNH_PHP_VERSION}-sqlite3 php${YNH_PHP_VERSION}-gd php${YNH_PHP_VERSION}-intl php${YNH_PHP_VERSION}-cli php${YNH_PHP_VERSION}-gnupg" + +# dependencies used by the app (must be on a single line) +pkg_dependencies="$php_dependencies" + +#================================================= +# PERSONAL HELPERS +#================================================= + +#================================================= +# EXPERIMENTAL HELPERS +#================================================= + +#================================================= +# FUTURE OFFICIAL HELPERS +#================================================= diff --git a/scripts/backup b/scripts/backup new file mode 100644 index 0000000..75ce3e0 --- /dev/null +++ b/scripts/backup @@ -0,0 +1,58 @@ +#!/bin/bash + +#================================================= +# GENERIC START +#================================================= +# IMPORT GENERIC HELPERS +#================================================= + +# Keep this path for calling _common.sh inside the execution's context of backup and restore scripts +source ../settings/scripts/_common.sh +source /usr/share/yunohost/helpers + +#================================================= +# MANAGE SCRIPT FAILURE +#================================================= + +# Exit if an error occurs during the execution of the script +ynh_abort_if_errors + +#================================================= +# LOAD SETTINGS +#================================================= +ynh_print_info --message="Loading installation settings..." + +app=$YNH_APP_INSTANCE_NAME + +final_path=$(ynh_app_setting_get --app=$app --key=final_path) +domain=$(ynh_app_setting_get --app=$app --key=domain) +phpversion=$(ynh_app_setting_get --app=$app --key=phpversion) + +#================================================= +# DECLARE DATA AND CONF FILES TO BACKUP +#================================================= +ynh_print_info --message="Declaring files to be backed up..." + +#================================================= +# BACKUP THE APP MAIN DIR +#================================================= + +ynh_backup --src_path="$final_path" + +#================================================= +# BACKUP THE NGINX CONFIGURATION +#================================================= + +ynh_backup --src_path="/etc/nginx/conf.d/$domain.d/$app.conf" + +#================================================= +# BACKUP THE PHP-FPM CONFIGURATION +#================================================= + +ynh_backup --src_path="/etc/php/$phpversion/fpm/pool.d/$app.conf" + +#================================================= +# END OF SCRIPT +#================================================= + +ynh_print_info --message="Backup script completed for $app. (YunoHost will then actually copy those files to the archive)." diff --git a/scripts/change_url b/scripts/change_url new file mode 100644 index 0000000..3540c90 --- /dev/null +++ b/scripts/change_url @@ -0,0 +1,123 @@ +#!/bin/bash + +#================================================= +# GENERIC STARTING +#================================================= +# IMPORT GENERIC HELPERS +#================================================= + +source _common.sh +source /usr/share/yunohost/helpers + +#================================================= +# RETRIEVE ARGUMENTS +#================================================= + +old_domain=$YNH_APP_OLD_DOMAIN +old_path=$YNH_APP_OLD_PATH + +new_domain=$YNH_APP_NEW_DOMAIN +new_path=$YNH_APP_NEW_PATH + +app=$YNH_APP_INSTANCE_NAME + +#================================================= +# LOAD SETTINGS +#================================================= +ynh_script_progression --message="Loading installation settings..." --weight=1 + +# Needed for helper "ynh_add_nginx_config" +final_path=$(ynh_app_setting_get --app=$app --key=final_path) + +# Add settings here as needed by your application +secret_key=$(ynh_app_setting_get --app=$app --key=secret_key) + +#================================================= +# BACKUP BEFORE CHANGE URL THEN ACTIVE TRAP +#================================================= +ynh_script_progression --message="Backing up the app before changing its URL (may take a while)..." --weight=1 + +# Backup the current version of the app +ynh_backup_before_upgrade +ynh_clean_setup () { + # Remove the new domain config file, the remove script won't do it as it doesn't know yet its location. + ynh_secure_remove --file="/etc/nginx/conf.d/$new_domain.d/$app.conf" + + # Restore it if the upgrade fails + ynh_restore_upgradebackup +} +# Exit if an error occurs during the execution of the script +ynh_abort_if_errors + +#================================================= +# CHECK WHICH PARTS SHOULD BE CHANGED +#================================================= + +change_domain=0 +if [ "$old_domain" != "$new_domain" ] +then + change_domain=1 +fi + +change_path=0 +if [ "$old_path" != "$new_path" ] +then + change_path=1 +fi + +#================================================= +# STANDARD MODIFICATIONS +#================================================= +# MODIFY URL IN NGINX CONF +#================================================= +ynh_script_progression --message="Updating NGINX web server configuration..." --weight=5 + +nginx_conf_path=/etc/nginx/conf.d/$old_domain.d/$app.conf + +# Change the path in the NGINX config file +if [ $change_path -eq 1 ] +then + # Make a backup of the original NGINX config file if modified + ynh_backup_if_checksum_is_different --file="$nginx_conf_path" + # Set global variables for NGINX helper + domain="$old_domain" + path_url="$new_path" + # Create a dedicated NGINX config + ynh_add_nginx_config +fi + +# Change the domain for NGINX +if [ $change_domain -eq 1 ] +then + # Delete file checksum for the old conf file location + ynh_delete_file_checksum --file="$nginx_conf_path" + mv $nginx_conf_path /etc/nginx/conf.d/$new_domain.d/$app.conf + # Store file checksum for the new config file location + ynh_store_file_checksum --file="/etc/nginx/conf.d/$new_domain.d/$app.conf" +fi + +#================================================= +# SPECIFIC MODIFICATIONS +#================================================= +# UPDATE A CONFIG FILE +#================================================= +ynh_script_progression --message="Updating a configuration file..." --weight=1 + +domain=$new_domain +path=$new_path +ynh_add_config --template="config.local.yunohost.php" --destination="$final_path/config.local.yunohost.php" + +#================================================= +# GENERIC FINALISATION +#================================================= +# RELOAD NGINX +#================================================= +ynh_script_progression --message="Reloading NGINX web server..." --weight=2 + +ynh_systemd_action --service_name=nginx --action=reload + +#================================================= +# END OF SCRIPT +#================================================= + +ynh_script_progression --message="Change of URL completed for $app" --last diff --git a/scripts/install b/scripts/install new file mode 100644 index 0000000..c251a96 --- /dev/null +++ b/scripts/install @@ -0,0 +1,146 @@ +#!/bin/bash + +#================================================= +# GENERIC START +#================================================= +# IMPORT GENERIC HELPERS +#================================================= + +source _common.sh +source /usr/share/yunohost/helpers + +#================================================= +# MANAGE SCRIPT FAILURE +#================================================= + +# Exit if an error occurs during the execution of the script +ynh_abort_if_errors + +#================================================= +# RETRIEVE ARGUMENTS FROM THE MANIFEST +#================================================= + +domain=$YNH_APP_ARG_DOMAIN +path_url=$YNH_APP_ARG_PATH +is_public=$YNH_APP_ARG_IS_PUBLIC + +app=$YNH_APP_INSTANCE_NAME + +#================================================= +# CHECK IF THE APP CAN BE INSTALLED WITH THESE ARGS +#================================================= +ynh_script_progression --message="Validating installation parameters..." --weight=1 + +final_path=/var/www/$app +test ! -e "$final_path" || ynh_die --message="This path already contains a folder" + +# Register (book) web path +ynh_webpath_register --app=$app --domain=$domain --path_url=$path_url + +#================================================= +# STORE SETTINGS FROM MANIFEST +#================================================= +ynh_script_progression --message="Storing installation settings..." --weight=1 + +ynh_app_setting_set --app=$app --key=domain --value=$domain +ynh_app_setting_set --app=$app --key=path --value=$path_url + +#================================================= +# STANDARD MODIFICATIONS +#================================================= +# INSTALL DEPENDENCIES +#================================================= +ynh_script_progression --message="Installing dependencies..." --weight=1 + +ynh_install_app_dependencies $pkg_dependencies + +#================================================= +# CREATE DEDICATED USER +#================================================= +ynh_script_progression --message="Configuring system user..." --weight=3 + +# Create a system user +ynh_system_user_create --username=$app --home_dir="$final_path" + +#================================================= +# DOWNLOAD, CHECK AND UNPACK SOURCE +#================================================= +ynh_script_progression --message="Setting up source files..." --weight=4 + +ynh_app_setting_set --app=$app --key=final_path --value=$final_path +# Download, check integrity, uncompress and patch the source from app.src +ynh_setup_source --dest_dir="$final_path" + +chmod 750 "$final_path" +chmod -R o-rwx "$final_path" +chown -R $app:www-data "$final_path" + +#================================================= +# PHP-FPM CONFIGURATION +#================================================= +ynh_script_progression --message="Configuring PHP-FPM..." --weight=5 + +# Create a dedicated PHP-FPM config +ynh_add_fpm_config + +#================================================= +# NGINX CONFIGURATION +#================================================= +ynh_script_progression --message="Configuring NGINX web server..." --weight=2 + +# Create a dedicated NGINX config +ynh_add_nginx_config + +#================================================= +# SPECIFIC SETUP +#================================================= +# ADD A CONFIGURATION +#================================================= +ynh_script_progression --message="Adding a configuration file..." --weight=5 + +# create a key for the secret key CSFR: +secret_key=$(ynh_string_random --length=50) + +# Install configuration files +ynh_add_config --template="config.local.php" --destination="$final_path/config.local.php" +ynh_add_config --template="config.local.yunohost.php" --destination="$final_path/config.local.yunohost.php" +ynh_add_config --template="config.local.user.php" --destination="$final_path/config.local.user.php" + +# Permissions on files and directories +chmod -R o-rwx "$final_path" +chown -R $app:www-data "$final_path" +find "$final_path" -type d -exec chmod 550 {} + +find "$final_path" -type f -exec chmod 440 {} + +find "$final_path/data" -type d -exec chmod 770 {} + +find "$final_path/data" -type f -exec chmod 660 {} + +chmod 440 "$final_path/config.local.php" +chmod 440 "$final_path/config.local.yunohost.php" +chmod 660 "$final_path/config.local.user.php" + +#================================================= +# GENERIC FINALIZATION +#================================================= +# SETUP SSOWAT +#================================================= +ynh_script_progression --message="Configuring permissions..." --weight=8 + +# Make app public if necessary +if [ $is_public -eq 1 ] +then + # Everyone can access the app. + # The "main" permission is automatically created before the install script. + ynh_permission_update --permission="main" --add="visitors" +fi + +#================================================= +# RELOAD NGINX +#================================================= +ynh_script_progression --message="Reloading NGINX web server..." --weight=1 + +ynh_systemd_action --service_name=nginx --action=reload + +#================================================= +# END OF SCRIPT +#================================================= + +ynh_script_progression --message="Installation of $app completed" --last diff --git a/scripts/remove b/scripts/remove new file mode 100644 index 0000000..40ca2ab --- /dev/null +++ b/scripts/remove @@ -0,0 +1,70 @@ +#!/bin/bash + +#================================================= +# GENERIC START +#================================================= +# IMPORT GENERIC HELPERS +#================================================= + +source _common.sh +source /usr/share/yunohost/helpers + +#================================================= +# LOAD SETTINGS +#================================================= +ynh_script_progression --message="Loading installation settings..." --weight=2 + +app=$YNH_APP_INSTANCE_NAME + +domain=$(ynh_app_setting_get --app=$app --key=domain) +final_path=$(ynh_app_setting_get --app=$app --key=final_path) + +#================================================= +# STANDARD REMOVE +#================================================= +# REMOVE APP MAIN DIR +#================================================= +ynh_script_progression --message="Removing app main directory..." --weight=3 + +# Remove the app directory securely +ynh_secure_remove --file="$final_path" + +#================================================= +# REMOVE NGINX CONFIGURATION +#================================================= +ynh_script_progression --message="Removing NGINX web server configuration..." --weight=1 + +# Remove the dedicated NGINX config +ynh_remove_nginx_config + +#================================================= +# REMOVE PHP-FPM CONFIGURATION +#================================================= +ynh_script_progression --message="Removing PHP-FPM configuration..." --weight=2 + +# Remove the dedicated PHP-FPM config +ynh_remove_fpm_config + +#================================================= +# REMOVE DEPENDENCIES +#================================================= +ynh_script_progression --message="Removing dependencies..." --weight=1 + +# Remove metapackage and its dependencies +ynh_remove_app_dependencies + +#================================================= +# GENERIC FINALIZATION +#================================================= +# REMOVE DEDICATED USER +#================================================= +ynh_script_progression --message="Removing the dedicated system user..." --weight=2 + +# Delete a system user +ynh_system_user_delete --username=$app + +#================================================= +# END OF SCRIPT +#================================================= + +ynh_script_progression --message="Removal of $app completed" --last diff --git a/scripts/restore b/scripts/restore new file mode 100644 index 0000000..55a2c33 --- /dev/null +++ b/scripts/restore @@ -0,0 +1,106 @@ +#!/bin/bash + +#================================================= +# GENERIC START +#================================================= +# IMPORT GENERIC HELPERS +#================================================= + +# Keep this path for calling _common.sh inside the execution's context of backup and restore scripts +source ../settings/scripts/_common.sh +source /usr/share/yunohost/helpers + +#================================================= +# MANAGE SCRIPT FAILURE +#================================================= + +# Exit if an error occurs during the execution of the script +ynh_abort_if_errors + +#================================================= +# LOAD SETTINGS +#================================================= +ynh_script_progression --message="Loading installation settings..." --weight=1 + +app=$YNH_APP_INSTANCE_NAME + +domain=$(ynh_app_setting_get --app=$app --key=domain) +path_url=$(ynh_app_setting_get --app=$app --key=path) +final_path=$(ynh_app_setting_get --app=$app --key=final_path) +phpversion=$(ynh_app_setting_get --app=$app --key=phpversion) + +#================================================= +# CHECK IF THE APP CAN BE RESTORED +#================================================= +ynh_script_progression --message="Validating restoration parameters..." --weight=4 + +test ! -d $final_path \ + || ynh_die --message="There is already a directory: $final_path " + +#================================================= +# STANDARD RESTORATION STEPS +#================================================= +# RECREATE THE DEDICATED USER +#================================================= +ynh_script_progression --message="Recreating the dedicated system user..." --weight=3 + +# Create the dedicated user (if not existing) +ynh_system_user_create --username=$app --home_dir="$final_path" + +#================================================= +# RESTORE THE APP MAIN DIR +#================================================= +ynh_script_progression --message="Restoring the app main directory..." --weight=5 + +ynh_restore_file --origin_path="$final_path" + +# Restore permissions on app files +chmod -R o-rwx "$final_path" +chown -R $app:www-data "$final_path" +find "$final_path" -type d -exec chmod 550 {} + +find "$final_path" -type f -exec chmod 440 {} + +find "$final_path/data" -type d -exec chmod 770 {} + +find "$final_path/data" -type f -exec chmod 660 {} + +chmod 440 "$final_path/config.local.php" +chmod 440 "$final_path/config.local.yunohost.php" +chmod 660 "$final_path/config.local.user.php" + +#================================================= +# SPECIFIC RESTORATION +#================================================= +# REINSTALL DEPENDENCIES +#================================================= +ynh_script_progression --message="Reinstalling dependencies..." --weight=1 + +# Define and install dependencies +ynh_install_app_dependencies $pkg_dependencies + +#================================================= +# RESTORE THE PHP-FPM CONFIGURATION +#================================================= +ynh_script_progression --message="Restoring the PHP-FPM configuration..." --weight=6 + +ynh_restore_file --origin_path="/etc/php/$phpversion/fpm/pool.d/$app.conf" + +#================================================= +# RESTORE THE NGINX CONFIGURATION +#================================================= +ynh_script_progression --message="Restoring the NGINX web server configuration..." --weight=1 + +ynh_restore_file --origin_path="/etc/nginx/conf.d/$domain.d/$app.conf" + +#================================================= +# GENERIC FINALIZATION +#================================================= +# RELOAD NGINX AND PHP-FPM +#================================================= +ynh_script_progression --message="Reloading NGINX web server and PHP-FPM..." --weight=1 + +ynh_systemd_action --service_name=php$phpversion-fpm --action=reload +ynh_systemd_action --service_name=nginx --action=reload + +#================================================= +# END OF SCRIPT +#================================================= + +ynh_script_progression --message="Restoration completed for $app" --last diff --git a/scripts/upgrade b/scripts/upgrade new file mode 100644 index 0000000..8b16335 --- /dev/null +++ b/scripts/upgrade @@ -0,0 +1,161 @@ +#!/bin/bash + +#================================================= +# GENERIC START +#================================================= +# IMPORT GENERIC HELPERS +#================================================= + +source _common.sh +source /usr/share/yunohost/helpers + +#================================================= +# LOAD SETTINGS +#================================================= +ynh_script_progression --message="Loading installation settings..." --weight=3 + +app=$YNH_APP_INSTANCE_NAME + +domain=$(ynh_app_setting_get --app=$app --key=domain) +path_url=$(ynh_app_setting_get --app=$app --key=path) +final_path=$(ynh_app_setting_get --app=$app --key=final_path) +phpversion=$(ynh_app_setting_get --app=$app --key=phpversion) +secret_key=$(ynh_app_setting_get --app=$app --key=secret_key) + +#================================================= +# CHECK VERSION +#================================================= +ynh_script_progression --message="Checking version..." --weight=1 + +upgrade_type=$(ynh_check_app_version_changed) + +#================================================= +# BACKUP BEFORE UPGRADE THEN ACTIVE TRAP +#================================================= +ynh_script_progression --message="Backing up the app before upgrading (may take a while)..." --weight=30 + +# Backup the current version of the app +ynh_backup_before_upgrade +ynh_clean_setup () { + # Restore it if the upgrade fails + ynh_restore_upgradebackup +} +# Exit if an error occurs during the execution of the script +ynh_abort_if_errors + +#================================================= +# STANDARD UPGRADE STEPS +#================================================= +# ENSURE DOWNWARD COMPATIBILITY +#================================================= +ynh_script_progression --message="Ensuring downward compatibility..." --weight=1 + +# If final_path doesn't exist, create it +if [ -z "$final_path" ]; then + final_path=/var/www/$app + ynh_app_setting_set --app=$app --key=final_path --value=$final_path +fi + +# Cleaning legacy permissions +if ynh_legacy_permissions_exists; then + ynh_legacy_permissions_delete_all + + ynh_app_setting_delete --app=$app --key=is_public +fi + +#================================================= +# CREATE DEDICATED USER +#================================================= +ynh_script_progression --message="Making sure dedicated system user exists..." --weight=1 + +# Create a dedicated user (if not existing) +ynh_system_user_create --username=$app --home_dir="$final_path" + +#================================================= +# DOWNLOAD, CHECK AND UNPACK SOURCE +#================================================= + +if [ "$upgrade_type" == "UPGRADE_APP" ] +then + ynh_script_progression --message="Upgrading source files..." --weight=5 + + # Download, check integrity, uncompress and patch the source from app.src + ynh_setup_source --dest_dir="$final_path" --keep="association.sqlite squelettes/ data/ skel-dist/ config.local.user.php" +fi + +chmod 750 "$final_path" +chmod -R o-rwx "$final_path" +chown -R $app:www-data "$final_path" + +#================================================= +# UPGRADE DEPENDENCIES +#================================================= +ynh_script_progression --message="Upgrading dependencies..." --weight=1 + +ynh_install_app_dependencies $pkg_dependencies + +#================================================= +# PHP-FPM CONFIGURATION +#================================================= +ynh_script_progression --message="Upgrading PHP-FPM configuration..." --weight=2 + +# Create a dedicated PHP-FPM config +ynh_add_fpm_config + +#================================================= +# NGINX CONFIGURATION +#================================================= +ynh_script_progression --message="Upgrading NGINX web server configuration..." --weight=2 + +# Create a dedicated NGINX config +ynh_add_nginx_config + +#================================================= +# SPECIFIC UPGRADE +#================================================= +# UPDATE A CONFIG FILE +#================================================= +ynh_script_progression --message="Updating a configuration file..." --weight=5 + +if ynh_compare_current_package_version --comparison lt --version 1.1.15~ynh1; then + ynh_add_config --template="config.local.user.php" --destination="$final_path/config.local.user.php" +fi + +ynh_add_config --template="config.local.php" --destination="$final_path/config.local.php" +ynh_add_config --template="config.local.yunohost.php" --destination="$final_path/config.local.yunohost.php" +# NOTE: Don't overwrite config.local.user.php + +# Permissions on files and directories +chmod -R o-rwx "$final_path" +chown -R $app:www-data "$final_path" +find "$final_path" -type d -exec chmod 550 {} + +find "$final_path" -type f -exec chmod 440 {} + +find "$final_path/data" -type d -exec chmod 770 {} + +find "$final_path/data" -type f -exec chmod 660 {} + +chmod 440 "$final_path/config.local.php" +chmod 440 "$final_path/config.local.yunohost.php" +chmod 660 "$final_path/config.local.user.php" + +#================================================= +# FINALISE UPGRADE +#================================================= +ynh_script_progression --message="Finalise upgrade" --weight=1 + +ynh_local_curl "/admin/index.php" +sleep 5 +ynh_local_curl "/index.php" + +#================================================= +# GENERIC FINALIZATION +#================================================= +# RELOAD NGINX +#================================================= +ynh_script_progression --message="Reloading NGINX web server..." --weight=1 + +ynh_systemd_action --service_name=nginx --action=reload + +#================================================= +# END OF SCRIPT +#================================================= + +ynh_script_progression --message="Upgrade of $app completed" --last