From a04eaaa7790cbfeb9a64037c59e32062b81ecb39 Mon Sep 17 00:00:00 2001 From: "B.D. Murphy" <161863146+bdmurphy73@users.noreply.github.com> Date: Fri, 6 Nov 2026 08:03:35 -0800 Subject: [PATCH] house: add multi-platform build infrastructure - Add MANIFEST.in to include utils/ and setup/ in source distributions - Add utils/build_all.py - unified multi-platform build orchestrator (Linux amd64/arm64, macOS amd64/arm64, Windows amd64/arm64) - Add BUILD_LINUX.md - Linux build guide with .deb and AppImage options - Add RELEASE.md - complete release process with versioning (YYYY/MM.####), platform support matrix, and release workflow - Fix .gitignore to exclude UmbraEdit_Projects/, Inner_Demon_1.2a.docm, UmbraEdit_deb_Build_Script.txt, requirements.txt, .DS_Store - All source distributions now include build scripts for Linux packages --- .gitignore | 5 + BUILD_LINUX.md | 149 +++++++++--------- CODE_OF_CONDUCT.md | 0 CREDITS.md | 14 +- MANIFEST.in | 27 ++++ README.md | 49 +++--- RELEASE.md | 157 +++++++++++++++++++ UMBRAEDIT.md | 2 +- UMBRAEDIT_UPDATE_PLAN.md | 4 +- setup/macos/build.sh | 6 +- setup/macos/umbraedit.icns | Bin 0 -> 135559 bytes utils/assets.py | 2 +- utils/build_all.py | 303 +++++++++++++++++++++++++++++++++++++ utils/common.py | 5 +- utils/docs.py | 5 +- 15 files changed, 615 insertions(+), 113 deletions(-) create mode 100644 CODE_OF_CONDUCT.md create mode 100644 MANIFEST.in create mode 100644 RELEASE.md create mode 100644 setup/macos/umbraedit.icns create mode 100644 utils/build_all.py diff --git a/.gitignore b/.gitignore index 7996b811d..271132036 100644 --- a/.gitignore +++ b/.gitignore @@ -80,3 +80,8 @@ GEMINI.md # Added by B.D. Murphy 2026: exclude files accidentally committed during branding transition Splh.jpeg Oldwelcome.webp +.DS_Store +UmbraEdit_Projects/ +Inner_Demon_1.2a.docm +requirements.txt +UmbraEdit_deb_Build_Script.txt diff --git a/BUILD_LINUX.md b/BUILD_LINUX.md index 13f30ef7b..6a0671bc8 100644 --- a/BUILD_LINUX.md +++ b/BUILD_LINUX.md @@ -1,116 +1,129 @@ # UmbraEdit - Linux AMD64 Build Guide -UmbraEdit is built on macOS (darwin/aarch64), so native Linux packages (.deb, .rpm, AppImage) -cannot be built directly from this machine. This document describes how to build -Linux AMD64 install packages from the source artifacts provided here. +UmbraEdit is developed on macOS but builds natively on Linux AMD64 and ARM64. +This guide covers building Linux install packages from source. -## Build Artifacts +## Source Distribution -The following files are in `dist/`: +The source tarball (`umbraedit-2026.11.1.tar.gz`) includes everything needed to +build Linux packages: -| File | Description | Purpose | -|------|-------------|---------| -| `umbraedit-2026.11.1.tar.gz` | Source distribution (sdist) | Source tarball for building on Linux | -| `umbraedit-2026.11.1-py3-none-any.whl` | Pure Python wheel | Installable via pip on any platform | - -## Prerequisites on Linux AMD64 - -Before building, install the required system packages: - -```bash -# Debian/Ubuntu -sudo apt-get update -sudo apt-get install python3 python3-pip python3-pyqt6 python3-pyqt6.qtsvg \ - python3-enchant qt6-image-formats-plugins qt6-svg-plugins \ - dh-python debhelper python3-build python3-setuptools - -# Fedora/RHEL -sudo dnf install python3 python3-pip python3-pyqt6 python3-enchant \ - qt6-qtimageformats qt6-qtsvg python3-build python3-setuptools - -# Arch Linux -sudo pacman -S python python-pip python-pyqt6 python-enchant qt6-imageformats qt6-svg \ - python-build python-setuptools +``` +umbraedit-2026.11.1/ +├── pyproject.toml # Project metadata & dependencies +├── UmbraEdit.py # Application entry point +├── pkgutils.py # Packaging utility +├── run_tests.py # Test runner +├── setup/ # Packaging assets +│ ├── data/ # .desktop file, MIME type XML +│ ├── macos/ # macOS-specific packaging +│ └── windows/ # Windows-specific packaging +├── utils/ # Build scripts +│ ├── build_debian.py # .deb package builder +│ ├── build_appimage.py # AppImage builder +│ ├── build_all.py # Multi-platform build orchestrator +│ └── ... +├── umbraedit/ # Application source code +└── tests/ # Test suite ``` -## Option 1: Install via Wheel (Simplest) +## Prerequisites on Linux -The pure Python wheel can be installed directly on Linux AMD64 with pip: +### Debian/Ubuntu ```bash -# Copy the wheel to your Linux AMD64 machine -scp umbraedit-2026.11.1-py3-none-any.whl user@linux-machine:~/ +sudo apt-get update +sudo apt-get install \ + python3 python3-pip \ + python3-pyqt6 python3-pyqt6.qtsvg \ + python3-enchant \ + qt6-image-formats-plugins qt6-svg-plugins \ + dh-python debhelper python3-build python3-setuptools \ + python3-pytest python3-pytestqt python3-pytest-timeout \ + appimagetool +``` -# On the Linux machine +### Fedora/RHEL + +```bash +sudo dnf install \ + python3 python3-pip \ + python3-pyqt6 python3-enchant \ + qt6-qtimageformats qt6-qtsvg \ + python3-build python3-setuptools \ + dpkg rpm-build appimagetool +``` + +### Arch Linux + +```bash +sudo pacman -S \ + python python-pip \ + python-pyqt6 python-enchant \ + qt6-imageformats qt6-svg \ + python-build python-setuptools \ + dpkg appimagetool +``` + +## Build Options + +### Option 1: Install via Wheel (Simplest) + +The pure Python wheel requires no compilation: + +```bash pip install umbraedit-2026.11.1-py3-none-any.whl - -# Run UmbraEdit umbraedit ``` -This installs the application as a Python package with the `umbraedit` console script -entry point. No compilation is required. - -## Option 2: Build from Source Distribution - -The source tarball contains all source files needed to build native Linux packages: +### Option 2: Install from Source Tarball ```bash -# Copy the source tarball to your Linux AMD64 machine -scp umbraedit-2026.11.1.tar.gz user@linux-machine:~/ - -# On the Linux machine tar xzf umbraedit-2026.11.1.tar.gz cd umbraedit-2026.11.1 - -# Build and install locally pip install . +umbraedit ``` -## Option 3: Build Debian (.deb) Package - -On a Debian/Ubuntu-based Linux AMD64 system: +### Option 3: Build .deb Package ```bash -# Install build dependencies -sudo apt-get install dh-python pybuild-plugin-pyproject python3-build \ - python3-setuptools python3-all debhelper \ - python3-pytest python3-pytestqt python3-pytest-timeout - -# Extract and build tar xzf umbraedit-2026.11.1.tar.gz cd umbraedit-2026.11.1 -# Build .deb package -python3 utils/build_debian.py --distro noble # or trixie, resolute, stonking +# Build for Ubuntu Noble (24.04) +python3 utils/build_debian.py --distro noble --build 1 # The .deb will be in dist_deb/ -sudo dpkg -i dist_deb/umbraedit_*.deb +sudo dpkg -i dist_deb/umbraedit_*_amd64.deb ``` Available distro targets: `bookworm`, `trixie`, `noble`, `resolute`, `stonking`, `wilma` -## Option 4: Build AppImage - -On any Linux AMD64 system: +### Option 4: Build AppImage ```bash -# Install AppImage build tools pip install python-appimage -sudo apt-get install appimagetool # or download from GitHub +sudo apt-get install appimagetool -# Extract and build tar xzf umbraedit-2026.11.1.tar.gz cd umbraedit-2026.11.1 -# Build AppImage python3 utils/build_appimage.py --linux ubuntu --arch amd64 --python 3.12 -# The AppImage will be in dist_appimage/ chmod +x dist_appimage/umbraedit-2026.11-amd64.AppImage ./dist_appimage/umbraedit-2026.11-amd64.AppImage ``` +### Option 5: Build All Linux Packages + +```bash +tar xzf umbraedit-2026.11.1.tar.gz +cd umbraedit-2026.11.1 + +python3 utils/build_all.py --platform linux --arch amd64 +``` + ## Project Storage UmbraEdit projects are stored in plain folders with an `nwProject.nwx` file. @@ -123,7 +136,7 @@ umbraedit # Opens the welcome dialog ## Version -Current development version: **2026.11.0003** +Current development version: **2026.11.0004** ## License diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 000000000..e69de29bb diff --git a/CREDITS.md b/CREDITS.md index dd60a35f1..13fc6522e 100644 --- a/CREDITS.md +++ b/CREDITS.md @@ -1,9 +1,13 @@ # Credits -## Main Developer +## Main Developer novelWriter * Veronica Berglyd Olsen +## Main Product Manager / Developer + +* B.D. Murphy + ## Contributors Larger contributions were made by: @@ -18,7 +22,8 @@ For other contributions, see the project's [Contributors](https://github.com/sag ## Artwork -The artwork on the Welcome dialog was created by Louis Durrant. +The artwork on the Welcome dialog was generated with AI by B.D. Murphy. Reading print options through time. +UmbraEdit icon by B.D. Murphy using AI. ## Translations @@ -49,8 +54,7 @@ Translations of the documentation: * **French:** Jean-Michel Heras (Karduin) -Translations are managed on [Crowdin](https://crowdin.com/project/umbraedit), and more -contributions are listed on the project's Members page. +After the fork to UmbraEdit translations of text in the program are done via AI. ## Libraries @@ -124,6 +128,8 @@ The font used for the main UmbraEdit logo, mimetype and text banners is Pridi. * **Pridi** by Cadson Demak (Open Font License, Version 1.1) +--> Caladea <-- + ## Special Mentions Additional thanks to John Blommers who was an early user and who has provided a lot of very useful diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 000000000..032bee87e --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,27 @@ +include README.md +include LICENSE.md +include CONTRIBUTING.md +include CREDITS.md +include CHANGELOG.md +include AI_POLICY.md +include pyproject.toml +include UmbraEdit.py +include pkgutils.py +include run_tests.py + +include setup/macos/* +include setup/windows/* +include setup/linux/* +include setup/flatpak/* +include setup/data/* +include setup/appimage_launcher.sh + +include utils/*.py +include utils/build_*.py + +recursive-include docs * +recursive-include i18n * +recursive-exclude *.pyc +recursive-exclude __pycache__ +global-exclude .DS_Store +global-exclude .gitkeep diff --git a/README.md b/README.md index 759791bdb..1af88594a 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,5 @@ # UmbraEdit -[![Tests](https://github.com/saga-soft/UmbraEdit/actions/workflows/tests.yml/badge.svg)](https://github.com/saga-soft/UmbraEdit/actions/workflows/tests.yml) -[![Linting](https://github.com/saga-soft/UmbraEdit/actions/workflows/syntax.yml/badge.svg)](https://github.com/saga-soft/UmbraEdit/actions/workflows/syntax.yml) -[![Cloudsmith](https://img.shields.io/badge/OSS%20hosting%20by-cloudsmith-blue?logo=cloudsmith&style=flat&link=https%3A%2F%2Fcloudsmith.com)](https://cloudsmith.com) - UmbraEdit is a plain text editor designed for writing novels assembled from many smaller text @@ -13,34 +9,26 @@ for easy organisation of text and notes, using human readable text files as stor The project format is well suited both for version control software and file synchronisation tools. UmbraEdit is based on novelWrite 2026.02 by Veronica Berglyd Olsen (novelWriter.io) and is -licenced under the same GPL v3.0 license. +licensed under the same GPL v3.0 license. +UmbraEdit is based on novelWrite 2026.02 by Veronica Berglyd Olsen (novelWriter.io) and is licensed under the same GPL v3.0 license. -For more details, and how to install and use UmbraEdit, please see the main website and -documentation. +B.D. Murphy is modifying the original using AI to make it part of his Umbratools publishing system. + +The ideas: + +1) Write the novel. Make it simple while writing. Formatting is later. +2) Have the entire project together. Not the novel text here and metadata you need somewhere else. All together. 2.a) ePub, paperback (print pdf), audio all start with the same story text, but each needs something different. Put everything into one project ISBN, book blurb, search terms, genere/categories BISAC codes, cover, etc +3) With everything together publishing is simpler +4) The goal is to write (human written) a novel, then use AI to help with everything else. At the end of the process there will be ePub, Paperback/Hard cover, audio versions in 10 languages. + +For more details, and how to install and use UmbraEdit, please see the main website and documentation. + +This project is a fork of novelWrite. Taking the great start and extending it. I use AI to help. **Project Links** * Website: [UmbraEdit](https://umbratools.com/umbraedit) * Documentation: [UmbraEdit Docs](https://umbratools.com/umbraedit/docs) -* Internationalisation: [crowdin.com/project/umbraedit](https://crowdin.com/project/umbraedit) -* PyPi Project: [pypi.org/project/UmbraEdit](https://pypi.org/project/UmbraEdit) -* Social Media: [fosstodon.org/@umbraedit](https://fosstodon.org/@umbraedit) - -_This project is developed and maintained with care by actual humans._ - -## Sponsors & Attribution - - - - - - - - - - -
Free code signing on Windows provided by SignPath.io, certificate by SignPath Foundation.
Free package repository hosting is graciously provided by Cloudsmith.
- ## Implementation @@ -76,16 +64,13 @@ to documentation**, they must be made to the `release` branch. ### Translations -New translations are always welcome. This project uses Crowdin to maintain translations, and you -can contribute translations at the [Crowdin project page](https://crowdin.com/project/umbraedit). -If you have any questions, feel free to post them to the -[Translations of UmbraEdit](https://github.com/saga-soft/UmbraEdit/issues/93) issue thread. + ## Licence -This is Open Source software, and UmbraEdit is licenced under GPLv3. See the +This is Open Source software, and UmbraEdit is licensed under GPLv3. See the [GNU General Public License website](https://www.gnu.org/licenses/gpl-3.0.en.html) for more details, or consult the [License](https://github.com/saga-soft/UmbraEdit/blob/main/LICENSE.md) -document. Bundled assets and their licences are listed in the +document. Bundled assets and their licenses are listed in the [Credits](https://github.com/saga-soft/UmbraEdit/blob/main/CREDITS.md) document. diff --git a/RELEASE.md b/RELEASE.md new file mode 100644 index 000000000..ad31cb25b --- /dev/null +++ b/RELEASE.md @@ -0,0 +1,157 @@ +# UmbraEdit - Release Process + +This document describes the release process for UmbraEdit, including versioning, +platform support, build workflows, and publishing. + +## Versioning + +UmbraEdit uses a **YYYY/MM.P####** versioning scheme: + +| Component | Meaning | +|-----------|---------| +| `YYYY` | Release year (e.g., 2026) | +| `MM` | Release month (e.g., 11) | +| `####` | Patch/build sequence (e.g., 0001) | + +Examples: +- `2026.11` - Major monthly release (November 2026) +- `2026.11.0001` - First development build of November 2026 +- `2026.11.0002` - Second development build (e.g., new feature) + +Git tags follow the format: `v2026.11`, `v2026.11.0001`, etc. + +## Supported Platforms + +| Platform | Architecture | Package Format | Build Host | +|----------|-------------|----------------|------------| +| Linux | amd64 | .deb, .rpm, AppImage | Linux | +| Linux | arm64 | .deb, .rpm, AppImage | Linux (ARM64) | +| macOS | arm64 | .dmg, .app | macOS (Apple Silicon) | +| macOS | amd64 | .dmg, .app | macOS (Intel) | +| Windows | amd64 | .msi, .exe | Windows | +| Windows | arm64 | .msi, .exe | Windows (ARM64) | +| iOS/iPadOS | arm64 | **NOT SUPPORTED** | N/A | + +### iOS/iPadOS Support + +UmbraEdit is **not available for iOS/iPadOS**. PyQt6 does not support iOS, +and UmbraEdit requires a full desktop Qt environment with keyboard, mouse, +and file system access. Porting to iOS would require a complete rewrite +using SwiftUI or a different cross-platform framework. + +Users on iPad should use UmbraEdit via a VNC/remote desktop connection to a +desktop machine running UmbraEdit, or use a compatible web-based alternative. + +## Release Workflow + +### 1. Prepare Release + +```bash +# Ensure working tree is clean +git status + +# Update version in umbraedit/__init__.py +# __version__ = "2026.12.0001" + +# Update CHANGELOG.md with new release entry + +# Commit and tag +git add -A +git commit -m "release: prepare v2026.12" +git tag -a v2026.12 -m "Release v2026.12" +git push origin main --tags +``` + +### 2. Build All Platforms + +On each target platform, run: + +```bash +# Clone the tagged release +git clone https://git.umbratools.com/umbragit/UmbraEdit.git +cd UmbraEdit +git checkout v2026.12 + +# Build all packages for this platform +python utils/build_all.py --platform --arch +``` + +Available platforms: `linux`, `macos`, `windows` +Available architectures: `amd64`, `arm64` + +### 3. Publish + +Upload all build artifacts to the release server: + +```bash +# Example: upload to Gitea releases +# Files to upload: +# Linux: dist_deb/umbraedit_*.deb, dist_appimage/*.AppImage +# macOS: dist_macos/umbraedit-*.dmg +# Windows: dist_win/umbraedit-*.exe, dist_win/umbraedit-*.msi +# Source: dist/umbraedit-*.tar.gz, dist/umbraedit-*.whl +``` + +Create a release on Gitea/GitHub and attach all artifacts. + +## Build Artifacts + +Each platform produces the following artifacts: + +### Linux (.deb + AppImage) + +| File | Location | Description | +|------|----------|-------------| +| `umbraedit__amd64.deb` | `dist_deb/` | Debian package | +| `umbraedit--amd64.AppImage` | `dist_appimage/` | Portable AppImage | + +### macOS (.dmg + .app) + +| File | Location | Description | +|------|----------|-------------| +| `umbraedit--arm64.dmg` | `dist_macos/` | macOS disk image | +| `UmbraEdit.app` | inside .dmg | macOS application bundle | + +### Windows (.exe + .msi) + +| File | Location | Description | +|------|----------|-------------| +| `umbraedit--amd64.exe` | `dist_win/` | Windows installer | +| `umbraedit--amd64.msi` | `dist_win/` | Windows MSI installer | + +### Source + +| File | Location | Description | +|------|----------|-------------| +| `umbraedit-.tar.gz` | `dist/` | Source tarball | +| `umbraedit--py3-none-any.whl` | `dist/` | Pure Python wheel | + +## Build Scripts + +| Script | Purpose | +|--------|---------| +| `utils/build_all.py` | Unified build orchestrator for all platforms | +| `utils/build_debian.py` | Debian/Ubuntu .deb package builder | +| `utils/build_appimage.py` | AppImage builder | +| `utils/build_windows.py` | Windows installer builder | +| `setup/macos/build.sh` | macOS .dmg builder | + +## Release Checklist + +- [ ] Update version in `umbraedit/__init__.py` +- [ ] Update `CHANGELOG.md` with release notes +- [ ] Tag release: `git tag -a vYYYY.MM -m "Release vYYYY.MM"` +- [ ] Push tag: `git push origin vYYYY.MM` +- [ ] Build packages for all platforms +- [ ] Test installation on each platform +- [ ] Create release on Gitea/GitHub +- [ ] Attach all build artifacts +- [ ] Publish release notes +- [ ] Announce release + +## Credits + +UmbraEdit is based on novelWrite 2026.02 by Veronica Berglyd Olsen +(novelWriter.io), licenced under the same GPL v3.0 license. + +Current development lead: B.D. Murphy \ No newline at end of file diff --git a/UMBRAEDIT.md b/UMBRAEDIT.md index 368463042..2ca160f6d 100644 --- a/UMBRAEDIT.md +++ b/UMBRAEDIT.md @@ -94,7 +94,7 @@ UmbraEdit/ <- this folder (was novelWriter2) ### Run the application ```bash -cd /Volumes/1TB_APL_Storage/novelWriter2 +cd /Volumes/1TB_APL_Storage/UmbraEdit python3 UmbraEdit.py # or, with the package on PYTHONPATH: python3 -c "import umbraedit; umbraedit.main()" diff --git a/UMBRAEDIT_UPDATE_PLAN.md b/UMBRAEDIT_UPDATE_PLAN.md index 3e2c3f64a..60a45d355 100644 --- a/UMBRAEDIT_UPDATE_PLAN.md +++ b/UMBRAEDIT_UPDATE_PLAN.md @@ -71,7 +71,7 @@ Plan for upgrading UmbraEdit (Python/PyQt6) toolchain and dependencies. Create a fresh virtual environment with the target Python and install the project's runtime deps at their latest compatible versions: ```bash -cd /Volumes/1TB_APL_Storage/novelWriter2 +cd /Volumes/1TB_APL_Storage/UmbraEdit uv venv --python 3.12 uv pip install "pyqt6>=6.4" "pyenchant>=3.3.0" # macOS only: @@ -202,7 +202,7 @@ Also keep the old system Python 3.9.6 available (do not remove `/usr/bin/python3 ## 4. Recommended Command Sequence (copy-paste ready) ```bash -cd /Volumes/1TB_APL_Storage/novelWriter2 +cd /Volumes/1TB_APL_Storage/UmbraEdit # 0. Tag rollback point git tag umbraedit/pre-toolchain-update diff --git a/setup/macos/build.sh b/setup/macos/build.sh index d65b075bb..7a234b7ed 100755 --- a/setup/macos/build.sh +++ b/setup/macos/build.sh @@ -72,10 +72,10 @@ else echo "Missing: umbraedit/assets/manual.pdf" exit 1 fi -if [ -f $SRC_DIR/umbraedit/assets/i18n/nw_en_US.qm ]; then - echo "Found: umbraedit/assets/i18n/nw_en_US.qm" +if [ -f $SRC_DIR/umbraedit/assets/i18n/ue_en_US.qm ]; then + echo "Found: umbraedit/assets/i18n/ue_en_US.qm" else - echo "Missing: umbraedit/assets/i18n/nw_en_US.qm" + echo "Missing: umbraedit/assets/i18n/ue_en_US.qm" exit 1 fi diff --git a/setup/macos/umbraedit.icns b/setup/macos/umbraedit.icns new file mode 100644 index 0000000000000000000000000000000000000000..4aaeef7a6e16e32f2ba8ca08d50503d84eef071b GIT binary patch literal 135559 zcmb??Wmpv9`|j+rz%JdL(j_5C!_ujg($WnQk^;igrGS#s9ZD+Fv2>SGBGO2A_gQ}b zbDjUWu5&(|59h<|?94lFKl8lzeLwHmTROV~V8RG{OMU?Wfbm9YK3BrUqQU|I09Qp> zUK@3WKO9gD)bAI2w|UeFin;dv@auVm;r7Ozua0H43^3urkWf7WMX`n{>&rn(b${qD*6$lP_hxVO!oFjHh+ zk!qN_$*jv*VrJl_ zFxk9UQMAdyH2B{?Csn$SE9Z!MT!Q7lFbYyj1Z%*EomQe42IuSMOs6s#jETr#J2FK` zf_i+m=#PE!SNWml{s-8I#O7yhdGmKn{gms^bnyWni%kYT$G%TPk01#Qed;};yFZrq z{^DuiBz)W_My%d^z=sjwUHuYa1NOe`Y6XXcgC#KcH8(tYajoWGz3WoWpVpy0QL@(j@Vzn z#3XFsoiR?9pDT|xk!{{8(mXE7muu$u#E`;+)3|{@bi^@aV~Y~5q#=z*Q_0dM)WZ?~ zM;hyTVXKZ&S;L|uj?kn{05 z$z9Q)(eVt(pWPUY*(c_c8aXkQIPWQPjAvHlQ}W42VFQ*g(E{q+xlXG2eRiekS56ul z38G{ioyxHkV%C>8Kg6^HZ=QW&7d;XnDs0OyB5U?3c~tV;bxOLL#WpH^A+PD%VaL4p z!Ju^W`}g8KPbHm|C2c6T#m9Ubyk#$wJ8*Vp6IXQK>MeUV93MFY^OqRel6tuGdM@>_o)DlogG)B9D6W*<7Ya#U~a5A4FF zC1&49AN*{4S+>h~Golo9|5pYv>)DsEsq#LVU)>{Sv)!AsUUfH0?}vSy14X~2HM&_M zgTJDPG?bc@5U_T z`XknRhA~F4%FhUCZt~_YId5%-(?$0r1sz|n&uGv+RyO7 z9j)qo7oSk!*OC=ZkSjyS8k*BnaSO}5>dP#!ho>oaL^GpH!XWrL#n)V24z~+;rjayW z2Dc(mrrslJ=wo1yXGpH>DHYWZENb0#oket?rAai#{iM>ecx=SiY2WcNf7oqEXVsYh zyL{ey>x~zjTctdY=?~l*V5F1lTGKvSv&2s9hRdb%k^Sr605Yg~C*pOuSmnuL!qGsa z)yn~|714)klXD{I~NIqMz?;S_n?b{SKtU1`Lg#sy(N2 zX)^}=J#KKmY^7BvdWDVN`BKl!FY-haU8mPPpXhmW;L4by(!>rbZ-d;2d?zH{qZ^aOKX*e8Z)2O~9Ef}m|7lsws^C$}b>iW= z;{WG|)?k(XZq?oXb;sIvP}oL2;Ip4l$(&%Do{Krnv##43(P7kdcU0QdE4w%pVPqd@ z{^Rd^yi;6*mZ^S(+mRp3D*Gzf%-)N&)v@V)t~s_?qhG-o#b_^95wP99nOI-cUSM$O zvvc=y=5$rjUgKc(UsG|yV^DvGHOL7%2IIpSGcnWZk?=pc{EVQ=e6DT`%ryz%qrWv6 zQ*b0G{NgG_UyMoj)$J0vW|%Gnu>%CriO+7Y>NIEL9m({OVR! zmO;I{*@v_SQQC8`nlOk4p+hqe-rYRY7g48dPO@S&h z?G%?uk+P{>f-c&Vw6%(tynuQdtSKRcZPW#DE*E^eStRirie(Q}FtByS`v1y(We_~e zXOx3IAs1{s&I&gv*W^@NbNGAhar|rD!^81b=aPm1(BW9Lsyj8sD%#LOh|k|YfD{#l z=kgV@X2JHBe8K=g)c1dZO9<3si2uN)PAT(2)W!c7xPMvBaJW=!I{lWm$a*XnU@qr|13hb~{_l zq~+XDAbpr2c>ht(;omPYX~f`wtZ+s~N2eSWG`SzF9Gy7Y((ywa`r!}>3mI@ApB#JE zj{s2nzr|D&&rjKBp^8U?Pt?+Q#B|0Q-*Mf!_WZKm8@N=-q5xY&#BLU&@BW3ZvP*<7 z=WatwWZYWdUytjQIfE3x+W%B;bkCWjIXT8R__t49fBUBpKkJ(^b3h{k5C+SirxTRn z+trV9x9?X==rw5;O%=#gZ{|!=8&>|g=L_w&(912}i18sYvwjbxfp^TYxNfN5#5SMV z$z9uac^W}T*x-g|&){BVT~a+)H-{`DGJ=_4qzQtR)#?@HmQC%n`9J4aWVmoHd0 ziv+#*Kb4~I+3X+wg?nS~Y>%qJwRPP&pL72rjFH(}&P|;d`5PR${z{SI*BYCX#G)2B zr;B1fz#L=4GjFAOoUB5TNGg1^0rdJ3&{4bMx#nk`_mPLeM+#X3jBO}<=;ejgm(+UjLWq8;eQ#0X?~eD zJT^8{U{bCyQVw-xL5|FU_3NFUIoh18Sh>NNyA|5UALY(YV^AbLt|wZ&6xOXNO=g70 zxg+doz!K*R3(`DTTh!@GPH%BvOg^pUh^t>LBc-8O#Fx}r&h?Iy&w#Qb5v`IrgiUw9 zYzHO6Z_)CvxV_CJ39v&?nQfiiqem40bU+n9ylvgt9RVo`6)KFN^5NS2*}p>OM9%XMx@* ztl)tULzsooaXOYKMd?_`E~QKtbyl^y5&YumbFPk(C?3&k$7dTbJ8pd>;yU!zE3kZE zI0@>tx!i;U9tt zJs(2XP3{T2_PDIV#+T@jn3Y4}8e99)DtuBv@KMtW?oSOy!DLS#on zo%z7)I4uV|+&9h>lU27!m69(yrhMHWfWoz;_+$#STi;^YyQP)*Gy*i8o`oKH^qX&Q$NQ%52rKk6 zS&HX^O4fxPTeK0oEQk6M!eCAB>;!KJ*^RZKqxHaJ-431OlpiKvPxA?;H!27aHV4Og zYaVuUBa;4Pbf(`($<#-~okg;%$iHE-`k{mBE5Ifu--zZ7PU&Z=Jb9ZBmuwFXe%&K} z|LXZ#L7;8&`;aaYB8IKI?p1QQ)>A~cgll{xiY54>EB}S|F0vdmCwg*HxTEc2C-%HzF0wwy)-X^Bk$~dpyLcq)cZ2%qi6Qldo_crzx*ei=&sL?glLGSILgZ`WPiq! z&SDSm*Jxh;5lpXy3twpyZ#OvKv-`C1ytP7NFbP;Aom9tPoGhjfpKI=ncVFbAz>W=0 z8-(j2IeK@^y=8wSc(%4@bKTH#icJ&EU9YF)xcCap#ZTf_P=9KF8gAF*u~TC!`Gs_X zk=cp)iIO(GORQIz&H#)%CoDFE+XhPYNE)=vlLKWle+As@mb`>mf2s&Y?r}!%9dk}_=jFKDt)H}~}#b&;Ydh?y~eWM|gd50=_@!t~K7*xLZ?oW#Ujpz=q zgu@Tf0x3xAD{uuQRq)ul?@odB7kY-Uqd>gcJdO$Tn&Q&xEyP zH~Iz{`vKs%WZyO#eiG*vXTJ1P>f<<{M)al^&Tm_ z7Jq}_tMr|(sjtlL4v*~y1N%>n3>0VuIX8CStM}{q-=dM^KH>N#!>s3Ct3JjvSh(s^ z0okCV>ljd-mHDh!$p4JN5Jn^Zmh9d3p&ssjHW`ff8LeBl5Bk;iVlF@0ti*k>f+^@X z4ku~f+MJ~_ShQ^6mPssOmd*5yv^xvZ#dcVUjj)FR4#Oj5rtx2@DN>$$;bh((GsvP&C#wq`j*hldG<)5;F9T!#3y>-0+#L$jhVlL zL0%B=)z$AzVgkmoWVWP)i;Xxp;?KeTN}81uKL6N1bs@J?ZjxXTHp50((lnB}7Ly87 zp};g9JZ{@qjb27tZX^(V;cl{=!i1XpoQ4L<`CBXE4NaE!QX~q#h;`l<9%4nF2=$(^1)aTWapKk!ym-9B&jqdG9!d?hvZ zO#|(E82v!8iW#uZEXw*2J?${mq= zz0K@YNqo7~WCoe0GrQ_Ckw6*SF`#&Yd^-HI zq|8EYgcA=Q;O^um{WWvYi3#(PF~-1kuYFv95*a)@T>IM4SrMc{}~KAN6u%H_upzHajs^PKeceON-t(~=VJ z_Sbl>t0CU&XaPhsr1S<_DObxEa1sYM)oh(5 z0m`uFRN_QrD|Ny1rq`rSf8Bx8`!6$?%>FPlmr5>Sum?7F(DJeM!9K4y=n`GRXNP&n zpo->iFB`wN+dSU;%EUNokcT0U&V4Q9Q%|5a(T5Lj?%Wgx*SlN-psq}C0|in?J1VSI zIQ@s%sGXi0^nSPHvd7>#)}VqzotLjL^T!`o!CqD=A1UEI>f=&Y`Rq#i)%p8jTRM(i{JUyH0v`uo6taSiVe#WnD4#kH1`*qibe?5M2yJs5 z)rO!}4PZ@40P(RCgAacxAZ2&4Un(9V`^X0qjB-obFu$W*)9-1uISyWwSLo5PP+L=+ zTt~tQC6pyljip*FeG?*}CvGnb{XWK*7>;)3kpZ0#LfMge27l%7Cten*G+gXqEHV89 zJPL6aj(WTvD_kea4Pt@P4PK=7Q?s|GH)j&4rkQ;ea}?eOM`f%;E|NlBX~9mD2l*Ox zGtp#joQ#WybnrsoXs2BU2B;Y(g=rKSJ*0U2^d{rL8ht5=vaEQkT2t=xE@ zW#QzM&;0p=c8nF|d#TyJ_^-Hzd&6EA0*LE-{J5qMGh<3DH*v{GCqb1@)ukg<_t)op zUza|9{_c$h7Ln`waJ}2)s`8UUhc}$wxZzFnbiFDm#5F(YkK}9-wy=HSTt;0HX`R}N zXNoEzf|F|9^T&z~L*-V--|{>GNPI!W*lsT;H_ietPot3$dGo6QmLq`omU>7slL%I(NlJbb_ONpudt-wNuuxhjtx2Z{df*s!FAQ2 z1iXnVfDzXm_HMZ-#t^)r^x~p>x9S%=(vFfb@*Tx1<@1TY7mU9Q(KR9=AUMm?C9j&~ ztrrWN4yMeyo&A&_?49RF#|Zb6_=Fi3<8qh~Zg#^^L$dpUxQgT^6S3~vUj}=sW|KKW zfEB)xNLH@sE%VbZE>&n&QtZRO<9*+$*ZiZIgZCkFyV!pfDqk|f$-BSl=x#@|*=2sK z%^TB&-jK_0$9A7jwroA9NB^y3@jn3o_SgTXj`a}10|Echv5eo8*gRbQe+c`5fdAI9 z9%=vp+bt>;0AL&apE_11%;&|+$`Z4U?#&RSppfKYLgDMRYw}>B}e8FWN6v=F7cD z&Rd#yTi5QKTLSldD=ez@5g%ZDpm#)k8&76w99fZ&NB|qS$4f=T!m5A`kweifb)-@y z^i$7J)Kdd0460$(FX)Lr=-h7l)I@P_^L(n{-snj3^AI>Fa1LMoIS3;kpIs^-Ij1jF z%+l2-SB9Ssy}N!GIxuZOf9o4#V(_MUjU{Izmx#}8VkZDdjxyuN!R-DNM1Klg^}Txb zwA&03AKIEjQFfxE#jP0P!a;#s{2s%y$l~mk%i+r@tG0We!mp!C+o^CR;saF>@_z3f zkIgT^n?AOsUMWh(p0`w1nsqM@U^s5BM(9tVJq{u5>&+H?|Jb9=zmMZfEnM%pJQuHz z*LV{2oN-YIOd#z$1%xOx;Fb<|TWc!)!hWv`S%_Cop$iEfTcoB)-lV3u`OpsjZFbl{ zd-#u6qru}zYb2~*2JQe-rjwQ)FgEq0@3}WI{`q%tY)=hM6Sy%Z0en*fU70U1LJg(s zaJ=8}^}c~uBW1qlSzV#)**L$u{OGU^Zytt7sK8Z01lGRY-yqyr?{3<&Aj>-~VsKzb zvJu4fD9%D>7!+e6T9TSLWN11VyCZ$;7}SFFe-EokLA(IRi@YJzU8cOl<~k|*A)J?m zx1a(Zn{`}gMEj_NBzv!3X4E&AxG42lc1EtV*N`d49;B?6zGO}`j{eFF_@bV0N%)if&!vUfY zJqlQmV7Zr+_luZ1^vwlk$EX;B zT9q!a*8j%?&cZ8507_+?{>4T#f0Aq+kmP@yO*@cfQZQEr|{!Pp_D_I4r-Qf&MLF?*o+EL%~9tk1IXLo z?pvSg|MnSbB+ct7W^}xdW+63<6~IQsly*LJ=iMvC7NfX)KC4{IY3__@_mvUhfFCc_ zps4<;<38lyyb<7*@+Znj4P1{KOct^Op<@wK6PtlE6##d%3njWI%ZVq%9%~YS+`y~`?t5KSE#@u2 z<;3y20K00t4CtVrKHEXk%g1J6N#|gscsu9Ym!e@;|4*=ukBDhKaMAg5jF5JK?Bv;S z4p!@e)x6`Q^cIZlJ| z1#v+N$bj#^!S}ak#Z{8qd@o+;)+tYnw*A4fj414^x_ieU+Dg6p@09~#I6fapk~qE* z8Xs5+ow~1?-s`Pobr|{h%i_C+YOrtQv^oN2%*gN>4{_I|gPzUwwc_>3H~|^aDm#0& zEx3`1p&XcTyst~~m0WI$=@ilnMVe4Z^*~Nk;f5er)^_$kfx9#9kL+a3OP{1DliOUC zWTDhI7&^<#c)b^}O9fKb>Uu0yF2}+c>^9eR;sZ|5!Rcv`Nx$2eun;WV<|LS3?m8&D zk~dY|M&$E$=699CuJHC@OTW5{wF%+Wr8oAZtN9eGq`HfZ+GQ%tj~4^1pS_E5yg=MN z%!Z=VAB|_xVXczHjJVPl0g?$_y)J^aWz)uWEX1mVr$W62m2sfue7P=xG7U@qzN__D zCa)qI&`HpZqX!&wO3JRjz*kK;L(;^utOwIl>YUZMfb5D39tfrw-OGmaMYoG%CDXT# zR}D0kV{mEcvlHU(h=0QTmTl2_->CXpUf{L8b+kPG)x56&DIf&`hi2<+x~)lF4`wK5 z>YrdfU6Pfyd%6yza3!%;_sP*`XOroMdE>ZXx@j@SM~Z%0-OG)qAjUe>YKJ$7{zXB)ZVo!QY3r?h%uOvV^Y-wLFaD0Sk;l=_E%Z@ zdRUI_T1!qm)&u-sGl5Fc5ou>+Qg?Y2q@0H08jnwV*n2OT$AB_ljN>hZl4Qji$6W7cHrCWk|sE27y^GgZ5hqJH(P3{QP z(?yoIdNp{J8-m(zeLJ``{^Cm#HQH}wTKj%JAh>>3F6ZYRF`aBu85OsX#zu;(d-n&I zuYkO`K`3RawvY_Cy4b(_eF`7eEvGys)%Uo5KlS|B4HL4n2C(9&hpz8^hREEN3wMjv zzmCW%B8ynx&%{}|K89*4!FEt=-@c$3{LA zIj}qAk)t&&_(;GEzIW@T@UdFMcja6V#|&wRF&uaVoH9^LOUO-}-R(`{8~WdHlDvU@ z2{;)i%-u3KsSAN$B&i}lzFRTl(EZkL6BHnIu=AH#(8zexAxj$zu--?zxiyoXI?8U) z9AoXg8SGy6&uMet{r!4gJ%sJMhH>zz-w1pv3M^u@cqt>X#CSKxB?S&>GRxR#{3-*% zGv&Z*qFwO*#SpP{LIEFm1Xq8Ns?25Ue{*SKpI%XMI?}rOr`lgF=0~?8hTMIk-MFK( zx^MGosh5im%i@u#`iWg-t5;hn=Hpb+B4MY#k+2M%9rB-4#fjjYJ7M1T5vf>iA%0y5 z2d5j&)Od@PXdq$l-7nc!)};-5n@v4($~lfgXD{aRf@Jnm`<=q&Y-1LYn}e?ZEIx1a zYM=$$MJDs&EfjgHZINNMEI-O2KjTo|q{Da-a9*G#N4N&2>$w7IS;5*^@YnD1pTt0S zPN$Q*<-^+#K=0(^S8QM3tJQjD3TNi$wSV8ghwwg5`?)D}&Mce#T8i`TI9cRCvu0aa zr}8-!tq7|m$mad#+W6Vcd%AH81W_H9;B7}C32-WXztMh+#Qc7Ni_4R#r+Iy!5EF>E z%Cf;8OT^7RwGWjUIMY7!=EN)7#K~_L{W`UVOrvGX1-0=1nBKU;{cYPVOTYWcpfkrs z+se4$egahyS zaCXu;O;)~p8i^fw7Sx|(aN~J|(~6topcnzBsgva1&)$U_TKr5NlHX^O)cC^EYd`N6 zv;NAvbr#0796aK12Tl%M`Xvx}(h42|cxNejLR~6{Wt56N557`)7r+78MRWbE|tOK?(T54TI-&xQ=uzc-;tY`;%eOQUmx&_=q|44 z1)wpu?@d}6Ny|;`#=gmrF$upvIK-=a6(QPrdMfn0<7@R3b0ciIR%~B0H8g5Oq5>ea z)Hit^GFpMS*wZ4QCWd*6U?3VXQeM6&l`$iTg}(2Z0-hrAYpktHn~eJwmazl>f?oc} zT(N1cooDX3mG)fMuQPckzo0+vHc+1K)84I(jTp%80SVG$!#jg)jh|rs9D6Nd)Jv$J z{T2hyTlO~C6Q_1HgZP%Fq%+}b@<$rn>`s0?-t)BWW?3MuSkce{%x&O`jY2;50nz7@ z%80w`d(Tcr{Q2<)qjC4T9clcDg7q(j=aFwtwJRG(zCsu{B}n!%g>ftBrDKpL*y)I_!GdB*l@ zR%}uKN96NYtJK9dgvo6EHOEEN)$Uq)znA7@mmq@NeWx-eDk9RL(|QQ2W+S8ZR0P z>M1U!#cet^7;h_DVb7pP?c~x(;dC!FPdf8$5wPG%>Ob-w)qHPPJ)rUE_Q!#fy*m(i zHCnj1KP}Qxj)DbuXQ!+eH-EAbb0O895)^cEs@8!2Q zHy5UF*PqNJdn&7=Rh&b1%Pvgojpq&G98N_AzgCO?+w-vAlQ80%R^RNRVyr6 zXM!gB#ZZ{bzscgUT=^{q3e!5KPDmy;Lw+5t$4wz~PO@D8*5|se6cAdZ@oiT%?@EEF zJUN;uFSCQ^@iW-5)(WC?X+W;%T8}O#q8vH=YFjX*$fE}J4Kg^Q#F@Ar!+%tAl4jj@XtmFQw05} zL_Kn^*Cn$g!K@-@WmiM;cY8c$+kFZFX_7jxjDbYTZ$W;s&`%MI>Cl!Oz6T0H&%V6+=EGeb_2q{PlIqf>Qa|Jv%yz_q)tJq#w% zY)Nb^!Rp9lL?SpojfBlO;I>}U=mewY!>3&n=YSQbsu$*c|3yeR&>6Vv4=szFTA7$e zg{&%uwAMG~QT(g#IZCoPX!<#2`tsFwy!0?7Tvu0XlaCwI4D8FqPza381PW}A2c8kd zhGWIiragY1*|pT}gyI-8MDgE9b4qH)sh>G$m%Vl>JIiD0Sd23Li?Pai)6p%5_(cj0waM10-sud+(F$AWS(Qx1>4$`Hqj>n`3*7Wj5WK zuW2|Ubg#E`fI(a(hoV0@_gf1tgWsZvJh8o|>}L2#S!PlZSukZI2t!293(PT-n0+#I z)3zTpx_5i+XC?znpApl9C_`wy`1R!ANawsxT&7VWEF>fC^D)SMJcZ#1tXxD7^x4$4|`9xW({);LhPH0D)7FzEo!nnu6bsDghdm_T;m;x zB6H0TC7B7NFGWc=qhE?}*B4co_#ezCiqMd=j*UOO0aUAUPe9fDAl5~y2d>{SoP<*s0+LE>&x3{P2eP!!S;J?Aah#^edrCkxAy zj6E7}RtD&XDv-z2X*LwEh%b|IhcXZ4ErJ3`7&$pHEOD1Uq@q2%;GBp!vUc4UZxGV_ z8Bya2l(S%of;T@TAl}oaF(%hcgiZw?xv}Q>flU~JRTiHvq~Kw8mefsTm01%^O)fGn zQxv~xTn`~;9{CsH9}n9IMYR#$dasDPhizG{E=@Eo_!yb>Q73*!j?J96mMXq8zGGRy zul<68c#P$tkDV#^w0&%F_x$-F%-GDJp$y9^zk7a>fPY|d$ZNc)^Up|9@J}p+O!aFd zdvCz~zW+D8r#mwd@9rE$f<6PpuEB_1z11#sLzwogQxW|U-pOKz!9n`Vzy1#IL^79EzaR)@q=QB-CjOxo7l;D9jz^fNtp^cABE#Mhbv5R$47?FC7Wd*CA>^a^sZERy833vGWB@!b z4wV!_DxdC5oZ`p?-SKRz&)&u~yb0osF5mgLg6`%jjEf?#+mSlY?#UNk6RTm3K;;{P z?GqH?R{D`pMM+@&d3Izb;(gUoXP}|!m-N?xrcAYoK93th&?MPdUnN1aNV+PbLz+gD zOncG^Mci`%Hr)PD`Z{a0HKG|R*va!qK!XfKlrLAPL>>G{F(zx+{hp{X_0i>Jwul8V zlq!IQQG6cy&w3)bgXq;YUaAORe?EsG1Iujw`SzFeLN=w&z5J_8QA1yla&$}(HGh-z zyCdbC5t%7nJ<~YSpa=y82He|8$JiVrc>;C%$zN0-{`_IO>XGr#2S}3p|E`L?mgmGq z{Amk+T;J}w65fGBGo{w)S3Vs4J75cXvYRYf^>#Yo?>Q{;15UU#cCVZ(!uES(s}#n? z>1c0M~hY>KD7j`bH2tY_Y4KYAPKJp<8+u*3DZ~_y;mgu{Z03v z_AT_)JA*5H8q(P}Ud)`+tUaL}Ia&OC=5V61-dVz@1$x3h_tQ_zbe=z^5z~RPB&~W( zdNuxVPvKhBj`ETe)^hx}Y!u$HbNEjF`J#mz>5E(@1IIr#yyTo;UdI_^r@S>X1li$b zih*B+JPR_79#wlXXaA-+4340TuS+hsv90iU+-q6Q9a}LG0AiC*K-)26;H8#71DfHI*WREc!{d=)2Pa|$|BZ!K$ zejUIi8d#B$eb$CH|C0mtBEg?k{#xe+^8{WyFolLe+WTbeMbzu*-^wWRQ^n6{2I6erW2SW(CF5Rx5po@fKui=$cn9UvFT&&$}T40!?V8if(TqS&u5u-Y| z^p)PbBYgMzByEbug>@_#I=OE2Yl~JYsMn!Zey8NiT&C4%2Wg?2jKw^+P;lAJ&7Ds1LCyIsdBi`RkjB z3BBnthT5-=4vZq~0Fh;W*go=KNQlR$R+?w5W2_Ili`3TT6V^IP8C3pM_%@`V9L-Kr z)ju2+i?M|%XQJgOe`?|#IK#ZS4&wE_fnnhgyaQeUFP6@CHT>ic;gUU$?+EOW7Uri( z?J6&YPT|iwaqCOalD{}mcU50u5Kl~`LlTQzeR#6ixH@H?&pT*i0}bG&<8g9Bk4=_9 z#AeHc&wHv z0GIF4U&Q*j$_VJ;EO!x1`S;GatTBt)Zfp8H0g$d9$ zu1&h_ixo_p4qJUwF0l7ewy%FBHbvmmX&6fNtGr!Pi>NL#2>SBHk+H@5TW6I3#)Z?M zR!-OlSiLH8n+sHm$$$&V69Yfkt`p3s1t_tWp{LJ(J@hsXHMpp0U38k|3EY)~%DBi( z@JBvGzl^{?{{eSrTL}l(y?fOkK4eNdphrgA9Z^}aLFp~PjV!3XhGL*EQ`}p*3RVP; zkGcdG)7KNDz?NrvAB`L97!{~A2AG(>&m^Y{YYu+IKUNIJyndnk(vn!WTwkZ#w5|l2 zUeDI+P0WL~s*w5**US>^%gXQr(Cqlgq-mJ(gLG7i!4NWUc#B(h=bP|7#Z82DG3fyU z`dB--7No-2h~uR&57y5AR4b*!N}e;2WCn+uRU@V>=pFCvN8k@#-64*@+U{#J#){QB5pW~I?!UxVM482$iaQV5$r|w@;((P&zEtE|BMyY z!|-m`?Rj$I>Lgf%MKGlCYVMM5OoY)y!Zr{O!nKswzOm1B8y#T)*aNlkP=R&q@x#Ee zC(Fz<*fKoFf4+M=DY8`wxkXD%dI32zrp6O36 z*^m$q4HV$j96Vj!(J9|yT0pQ^zkun(5Wm8{dhO0I$^uzNm({66>XIW5fm5J>8$2-~ zBvy8EoS@xy;oS=nltX0~$u?yN@aV^std51`5==v3%8IDFIsCwj80mUb4WIq)UKY8L z%0Wnt9DG1RFzI~Sc^0=V)jdS+Q{4U1GY>2xyq6o?q5oy4D4k4UDaNI4c?bECfM%xl zE3X5qL`vZAr&G-jz>fhnaxZfKRO-!pI?FQ@3!y?OXAjfr;Gu}88bZzX0g>3H&wu;! zZVk2Bc?ajFo`*Wx%@}wHxuC)qhQQuuaooN7HLCQP!a`PL!AG>E`9IE~F9YxKq;74# z55Ju^2dn2qAri}hldF^Lw#(iH5*{FpG1WLYfuITn5Y4h5THP1V@>!JRvYup z4L;93F>`k}@>|4SFzUOpYX3l&$Q__^7qeL!})&vPcMZuw{0=Ddss1C36_3=A>DT#F^-A+0eGXNg|B0s?p_Dw}<$;i3s@YDwht{?WbzzYtJw4NVstG-s z`uBJ;zfpj_isgZj^k%!CkesN;hUjG*I1w{lZIlWxj@`8^88~4S{DVJ%=(enPIQxcc@i5 zMdy+>{I$crF92eNKLjh@U|ih{w9OVQi)P%%iNVHC7Q-%wpftSnIib}ap8Q(^r zyyByrcyC%B{pFJ1vp$4u<`8+7U{hsF?2v?%8OSkyEMx(pnQqyfPY-UIuW#Eeb7aen z|3(x)BgXt+eHAx236((E>ohH0_X3pC+)PYO;u&NPo76baO7jO6J%gyuwvg@?XoUO zZaBc_&A{sL2PXfI=N(;I97frfiZD60k!b5-d~vh>;PfR_2ysQwf@MRXIVd3m#m8+R z1+Ov6$|_{y;FrUBmQB}7Dbiq4;(({Gn|ERJC?@`&(lS)qejcf^x3l0HVUZN>-hoHv z;yU?2E=-G)V0hF^6D=Np49LZ`uhFcVe=6b+q}c?pd!s3^LMk2XOuRzP2jYFi@R}v( zyZr(3dnKp=ePy#flci_rL>{?~jvzW-UbB!aW45X=YkOtd`M~Pr~#F_a+kQZQXfD>l&1VoEU95c^zPyCEfMWDl3+8tSQK?HI#G0t>AtlT{!zcodN{oma(Xs(^g2;d*Nabe)-oxGzzH!k3bvO$WobzcB1?d=3 ziL|U@N}pjRsQO z))y@`&vPKA2MCL5E5m~j;gCzXfm!FBW#!}Y$*UNnHhOG?5bnGU%Jr@;1)ixZR9kVf zvJi9sLla*xDf^t}e_gpVhl;JQi@33)K-|Z$bAIYGr+3?}k6b=TVI%5_xO)c)gUAdn zW`Cw;+b;I8)CcYCJs?$ zhja4?HQD1n!bVJKhc5JTfU)5G0XvwJhCT}XRz=D3G$t*+S^cHdt_(5=bVMLjfMAi^ zAG7dNG6X=U)tve5p`N2a*4irO>T-6C&E+{%AeUdk0?L`!=BK4HYHhHAx{{ettK?FG zkn~-wL*Sut46*=hd?G&c*1h-L!E2{nwDv=a*5?(|El^Pv@OogZ1k8lw>cqS!5+HC&nZ}Nbgw+oN3+vzB3zyYGRA&hZLK8( zax)iCshDz9K$?^+v8|pGsXSk+h&Y}}7A5`I0h{q+w{abIFb;mRwkhZPcfR2RP9p=N z1D5*?Wa!)xpkWB_Jjon_(#UE?KwYMT0t zba?k`$ZSQZvH_gC^GxdzdejbqLG(yVA8rH5d4uieBnXU~xB!yB!t_<_$swyBdvYke zodb_k$i=xTZfN!&AZ&?>fa{`vTi#;hXN)J@RS0WVI(*Gh&(+2d2x>xTKim25lR*mp z2YYWB7FE~Aj}8M!DIlnbQYs;>q#!ARgmmYilpvjwGk^jLNO!7qmoy9(EhXL3-9y9t z*No5mocBHFI@kGfKKgB~S+nt1)?zr8mVWc9jgQTm|DE^n}O4P}_}mml57^(<8r zREV70Fm!m@75p;Q>N1XZx7c?>rCCa0*UrCLm_Spcn)30QZs;EP?n<3Pt>o}*o48jl zSj(^3c~4HPr`xhlQ!YJK7Q??N)_g;HyC(hmMS_bm-(*#V*D21xw1Qb`onc&OBfC{YoCV zYHY2x+cGZoph&6&+6B9Rs26fBIZfY7>viV$^xc=mvX9rpZd`09EqIG&TbyMP{5?$E z^>xhuXA7U4#1J&S?aJ@C=g<^c1Pj6Xk$b~z>UBeEKC|-jvs6npZpy%M_=M8}1-nem-)t3*K zm!D6_7lO|sev_3?z@N_-LULCDG^f)GYfSlgL6=1qbRAc;O#882CN zG2M~>bQxfvYd6LxuqJ@Hmd)rUtMKf4u)uUA=;Gg%zRAij>c|Xq%gvgU#^r32OM8;h4SvvxsR3 zYM7b(nL*6K3dD^-XSSlTCCJPSbj1unH)_=HpQP{VRzJ=1(H4|MUxbOklct^Gk0_mQQb#v4rIF_;b85P0-Y1GBK# z*rnj|{j)}}tP8xnqPpg$CfHplE9t*ZNK62`P*PI$ejN{q19#VYq3Ru<;2#g>)pi8U z#kTH&qIgVK%MNruujUl}{?l~@-Lkp(gf(ne-|c_8Y6#FRpN~&iPrzKO2Uqn@T3T;P zSo{XM_}VsLG#N7quAZl=_Zv(@-{GHzirzmB%&M?Mn1*jWZbE!~0@#9zvYvljT=HuO z__!aC1^wjz=UYCZ0G&QSOC&6 zl#MG|HmNDM@MLm2P{x`ik}H|qd#t+kx)E zl5H>Dy>TxuX-#wnWj5f^Fybj<7hzND?pB_fnn4sx$4LrZ!2h9PGSV5j(r6dCY6GDj*hP#yZ=b}*~YI``lG%N(dP0q zV2_AzfLW~do~7Qj+e1wayn3(QFFnProv*dkE5K=G@MCBGn*1~5ZwFeF<}M>Ut^6kw zk5q~^kB-d96q;bAYo!m};v)nsF}$X9g#l8cTX-qiVd7#~@%lBQSGF3`t9IoxOolWt zCEqLi+GKP(6|cNU)Ou$3I0*-|XG#(;dWL!sKM%!&zVs5)eV9>e-4Ufc*<-G{-Fgkf zDoGF=iP4--7JM(dP$n6L>*_1d_f$~|aGgET6!hB^DB^A+XC57!X4SVCI-&v%N^>pK zqlWxz;vV`g(PtwVj(?zrfHZxyO5$5?PNsBM9KsWE3}pK%y^`q@Zhk(4fH3GWY2-E; zXSPu4EL-jt%w2oL$6R>_flvoj=`&FGUxaCH*lqi$ntA4X4f0sHTd9g%MCfOJoY>ZpNrbEUO(31d;M)um@8$`*>s^(STF{0r%18ce?Am<0 zZqh4$5QfoZ0=rvy8c3*JQ@O*@owSjhW-b-CYdRRl-viu`(OQo#U}rfJY23_1H^6nw zejk&-AC?E>B3%96!)xC3sQMoeGK6aZg%DMvEQs=ix4seQ;lPnFjU&|u!#Ms`U|1M4 zY<;5KP|*_?bzsLz#|W0lz@=SF}=63y6B;N6p}Aq zK(}~ODr_xF6Iko04TY%ZH^^jGN}k;jXlCE?G&6B<>Ut+ght~L%TN8dAN@$t^wn{M| zY&_}mt-jFr$$+WIv5-&fbwKv#67sfj)0}t%$da$CaiKnG7H#hWHy$J!l+lDjpb5+p zkZ_6671$ZBx#1bLvV_k^Qf_$$q9M9R5M$i|Cz3Bb9y~HlsX)*i20NOTwJ&N?wx3GU zx*8=1meo-J79AKu=o41vkrMk$c;FL4X13_~W>?s8jgA^T@`^d$e;fYn57tI-(X(;g zndHMj+U{iD)TGDv)E}7|fIK;1?4n~T30Lb49sQk6tD()DIKcp^VWxLr;L7zAI|18U zIo$9!H|k$}YMC``laSdj=93SS&;|=KT+ZqC_}Ng;2$Ujhg;Vi-Lg&ZMeH;l6`S&A> z8EnfQDDlgwkL;husH)&~0nL+Ky0m9|Sh4ECXK@14@IUTc-@A2_0_;IH=%*aP=e*L; zs+HyFv9w3i*ZiXL!pdsp07J{$kR>{K7bB21AC3utolOLKn@%YsP64i7=wWqfWI#~`ePS&Sgp5J1sZ)Hs`i-%(z#g7}$EXNto z(D{N>ATPRKND8ly9n8Am?eP>nE-JD@b-|>M4F@3?zM+t{%lUc-Hwk($x#~ubZxMnJ z0tB8I4tzxyEaAG*(b~&YjfQhO!m-XgIdBQH zWaLvm9NSxuqnnmx&m-eK_BmjU#=pb z;WtHJq-1~)=Br$VESdk9DfwBD2qO509!5`4^ zN3!?twPnM=XlF8n;o|o>O(1NNa$WMi>Q=3@g)3CwWWw;YR(wM=o@o`nT6*unP9i-? z_?-=qj#(N)e&P8JAX-~GqlKWa)X8ci!{#DgfS8&p(>91b2%6@4Jn2sN|eH|NcI`9&`^;TH$ll?|1=5D%||7*3k$k}?9ulY?a z>VBY8)JP%MB`3TJ&IUyeMcgBg(k6mDy}%@d_nbV)ndI5{%emkP)qXZYmaV(a{@1k;Ub{czeh)kvx*0}KBa+Gh!XPp{(n>cma({RxIQ7p zmNtjyS{Lm;J2TU52;m7S*z>=qb88v`Sa!HP5-fk^&HvnYk=VKRO;7wlt@*d&jXakP zR-ybkz|^S!=7T_q1tNQrTZ%67fH@TZi$MYr5Al?8eif)tahP!7ArILTtvrgSw&pJV z+<0)-pUi|K5zqcV8{D}1LUs14MkSdk<4j@ej;A)K&t9d~LF9M01u&@*Mw*z5DIoC| z}`5B(DZ22|h_f1#>N< z&>D3}^v-e>+A8N$_uV&dSRk^uxa96&99tbW``DqR&o34%=r?RES*;U=a1e^@0ncw? z1{t~2_3#36+uqa3ie+{x_(B+VSE6|zVLZvDyX4_FExZ;4)rDu)ie{hLp$&S*u@!LdG=k@&9pzTCvD z!Z!yx4h@o@4IwKl5Bi;~svb=Nt}2Ox;2;`S?iBTznjM+8Hi>Hn0v~&BzK?+{QN$>0J@DQhq=GlhEiTABWfJFp z(j0pIBiEjk>DQbOJU;!#texG#)!a9+el5A|V=&8Q{;2oV;#NTpWXQ}+#pX~Nj@bbP z0>V3iq*u5bjuh3Hsj<721&T95qpzZ{`W}p~VUt~MQA>Y_VY6uTu3hmkL*R8>21{iM zOiVJ)03wtvy`p@(=;FzPlC@EI>u-xk+t?ZVSer}`%l%4{MsM)l9npezaXUT@>fyq2 zw=rB}ngUB;J-`|+3Qib81hgN^$_)ZZJ(?)fvHi! z4fky7$X;jM_fmnAbO#k+>6d(40%H73kzb&SF{Q3?3g$hdaW5tE=u2bW2@lk^2K+gr^4sJVbUwm^J-3>Rm6ctER`au$h3 zO&K|hx~rUg45Tv0?pY%JAuvoEub-ZK1+OgIEkwp8-SKYsz>BipJ@Mak_s0krLV^$H z81gvEp>>}+N`{~Xr$>4aeC_(rT6$6-oRA5kkwYg@vn@q!4no#vEu_A;=u4g}`1*}o z3t2eU&=eF!Nwuub%PKY;o?V|#w=Zf3~i<7>89%};OdBT4z5}F>>t7#=$)XT&jtZ8hSqwv~F z6E9r7(jN%kO|H{ZNSJ+tf?gv}-P{@oeaJPyLk_5w58hA6XzzXsjOn+7w^4umX+R? zqd0?bGLso{2JFfH_0X6rTkzKIG(c)L8k1f}Y9f~DfW2-tKl2znOv3{~u zRHXS@_^G!YHr)bw-GF0=HQqH38-h*sFistf&_7zhlijt9 zFbp7czRIvPMxr^8r~c7OvPYR?O+@ETH#ffpU&qDYvwY5G^h=#c{G|Q4 zyX)`gmM=0E-Qsk-;wgN;)?4=~b1prhTCbm5G?kl5#qTS&_^|CPZTYNdX`5=tsXRj> zMas64JL6C>?^DJGhwjiYg;z?BP2_C$jd|dv2o+88YDp1Nvy%cp#9sEtKyn^$*7?N8 zEb>9oGxo~$Sb-#T*wC$tE4-38{G>5U`WISWuHQe-=w6Mvj4N+8*F?8c>=V;o;*+Un zU~gU&f~U+scW**<=P;L9D82c`uy>A(E3I(ud1|!bN-Sa6vjCOS=T2ZxH?>p>J(BGX ze7~vHtRk!@J}Xz|B0WUYv(C*Vo0OoU?;JTVK?3&KBP>51w^c-Vo8@^d!%(?K&gs2% zd{eI!se4%%ABrM=#d^1xtyfBwnYUcNBQc$3LwK28fI{{RdF^IO0d4R{3w#5^QbU1! zIX^bHbwQtb-sEE1m+yF_Dem4s8gj`H`C4^pMV*7{Dedh=Wm=BohLl(%rXwD>pU)+} zcbRsy1tUd%zUxm+9e()a=DsXbcVG?f0M>)!6k1VH(VjBpEwQgfTUv6(G*n^+nknu6 zmY$|1;#lkq-{MjP`{MhMV?q;}woDuCiARo&mkTaNa2xO{YFUfk4IbR!_w&uV*1RUG zFCDJ>7^sgRj^&Y@!1ei=G`g3La-oO~mALjyyD(_Y!dkE6a_2J{xWC3i%u0nzU|Y>B z!Hwd8EG>8K&x9f;wwW3m;;AbIa`e7IK!h*r_LY}rRdR_^N02~SDeiLeRrwow-bZmS zu69$K)bGs(CR8pp5>qMDTh+6<(#Eh%jo;q15e~P^ZaW$_00P!WtTvIOOKx9+7~zB* zM>HgH(Qpst!p?q&Eegfwc6?N(8PspgHcHy3iDH=?=1?HQtKFNC+69qqXL$%~=1^=w zg!f7+x>A%NgcN?C_PY|{utrm-5~9}qv?#xuCv~W5c{!^>XEtyzaudE|J@9O+L}Y7? zZ6u%B?ztpG3?}O64-Mbv_CZ^}E{qUdZVBC^!D$#!P`=n-Abd${C^;RgHhRB6UE~tf#w3ECi}*U z!g7V=%uguFtoeH{kNdbiznbo%l9tDnGR3ij)+v~e_M}nit+(S3uK3R3McUxRfAT@W z*T3=pSkotJONl`}S@j`HtA6#-fX^o9v>O&jT}4p9eU+(|4={C7{|h8=QJOotV-&hm zScOImwS$LNBi?=ryit60m3{sR*}1e*?``9#L}%^$6b<&Pblda|#`RunAGc=)q=?HN zU%5Vyac(T>^X`CHkPb_{Xgn!n@2im#$yKreL zk}exfm4=jUCKYhg>eShF+wmdkZw*9(x8(LA3wqkJB}Z%+F-F&Hd^>`y{pw=3KqlT| zcfxITjWnEVczvAdX(M4~y(yx4x$luH2@!{X5tona^Ya} zPI*>H#L+L7pvE^n4!vU}Bs&>JlXSnzT{&)U@@l8o9YMI#cpr%_2&SBzG5g><=Xb!p z&3(OAd#g;J3=mPOGqVbUs9Q&6tacfB54p?8ruif<^vTIJE+bmh?M9ytF8AL*=bI@Z z=%ac4jGTMouP)S<_YD8`#~8k8fk}pNE8ikLNKuNoyqMbn-_?Sw+AA9h$iT$F-;HBk zG2Ew)A7~1n8IT`%<3@^`*y1qSUDqaV7$`=A_gcQDp;Vy^5Z@lZebiY6XGZH(Gp_tV z&PsaR{(wH5PZPG~nGB=n&-f)Ezz{C)`@$Pi6wj-+QJ)wLXIuBo^NnwG>llfQn^iCq z$VmABB+jyEIJi5N`B>3%re(E?}jG5c}T4V8ME+=Uh=H(>aTKP(A z(x6ey^dR!KhfW}(B+}7$>kDE}rE=(z2)otzn(6|xYlR4-*ibjW41C6-TS zAxo+_p-;~G4GuV#sd~_MN28a@A9vqr@{{0zo+^Y&w`F*L-Rv$NS4nVgzZCkjZ{Z-= z2a5RN4y`@dZ`trvI*wilrn{{zK0A@mi2TOhef{WX7cvLM2{}7E>1tWzl?eR-lN43y zY2i-18-}Fuc-b@aJfcAnFnpiReNlO-C!3?SFX4SP7P(o2@2Swo7n&imH~2$|4mDYN zfYTPDU19BVM!KYV_uFwy`;w&Se0`h0waW)i)hY;J9*qRykIEJ5#-2CuZFTO+Od27z zD`}0r5PW41dDwjfvPwtaeN9|^sWixx;`u5YsdoWKezf0~Xz5z2_YpN{sPkL0EL?|u?)&l=Fexr znwFytU(Kxf{ByXx@_Y~3aC^Y+1Ectpcl`=e?MvCrqpaGqYX@3Yrpfh7T?nTZvgiW= zTKgSKmHjK2B=GfWlbw-9UeQl3fhlVR9H=$8LW|*ykGMOq1QK-z^zR>DBDF6<*iu(7 zevsY?O)~Egin<_l@c8N7n#O7FF$1Qnb?@5(44;?{eYnx<>v~(kwo*ADw{#!%#(Ab> zl1Hw=nf?+BXIj1K$KN09cmW4tl8%w`?R&B6a;LGy58P~G%fD76Lb;Ttnhw< zNy^^REp0%YYo1KOb(u4(=G*6fZ`6_%cN@a?V6gI*!?C^GY~+%Ul*4-{;r6y+t&VpD(@5+-cS3j`>=@79zgdyddEIY{b=lrI0fZ*KFls z;|hJR{sFC^QElK^h3eVdu~Tzv=lwGqQRoyWm9hpc^nhucB61tX7?;L?BXI)>`TR_D z54GmKSvZocLKHx@!tFM`_a)o}RgC`BLP>V_5rxSQ2k5b-U-kh0cB}%kP|;fHH66F0 z)5V$fojB>FxyLpyg7pe48SBzWFKB7f@fb;+#I(|CKjnw|n*LJ!vF+b);#=NK8lJg_ zFN5)5vBfa$-ckA3h^7D7v*t4@8-4AE4*HoC> zjmdy}#W(mZwq(KG8wYu?kp!ZBmMpcsyR6Z5wvF;W$LNjlzL~G#CeCO->CHltk>+Bh2l zCfC|Esf@GX*dyq1FSqC|WoC}-8;SEsjj4dE`cnGcYp-lSU*gjuJ_v9M{M41HINO$*5^vlm-TZ&-sh> z2|TV)z3HSScT@?CQ5@TE6^H5fJtMK3;3z52W4@yVFZTGpU6*Hh)>NwZB&B<5a{S}@ zrK-FyuloC^QhC+k`tB5QxnmHxk9X94>*|RmZjOa;TSQqUw&K9|9=Oo6o}J1|qD~`|d<^lJ_*suHK-e zhkdoe7p?9cqBmk}d8v+m1!L<*!8UE;;G83|?Hn`mo|CVA9oD2o)R`v6X+ik1Uz!I6kf(=s9ez&a z84SVkQ8YOV4|-;=l`!;hNw74zzU4y?e1iI{wuE&MbSE*<*EmYXQQ4k}H@Byp%+I@N zwZ9A=k~ImGd(E7aO;~i+bZWdTDzNN)g@fFVtL6_T=>Xv&U;?5&NJFA=Cl6%o# zIS3zUN{E*o!i(*kt+r>`s%)2Exy%<;znA;bHA@hed0V&7IUS@6zOmVizE<5y+MMD{ zYgl#!89^tVWmYce2PoRWfc27Mm*?|admPVUo|Z>S9d<4uH@_kzN{4jJH|6Ldf&H6J zJ`Hof=xZN$CE0i@KMxF7eVRnF1pD62J@IT;Em2?O>~T{iZi|_7jf=M%@DtFe(QYTMHi==*vnKvbA*SF3v6DIP5%!78j3jvaBSo!BnCYax6$I zcpytKt-G0TYSd;Qc}C^;ZMR*93|A1Nc2B8(iYwS6w|PvA5Jm5D({8`=Ji6d+@RKmd z;-;x&6A{$*1f;WAI;v=*leiOm8m-!l)XX335d!TJwb3SA1xlb?V`Y82q=(f9RDBV)`T!gx{ z3ip*;F3?Te;kerGwBcp8_$306yRHZd>8GC|pg{GeP7Z$jUDb*wEgzF?Hr#M8t2DwS zJ$E|UgEMP>)TlSOx<`5~5&LGv3gniwU3Ay-wNvMWXmRT{~~Do_^hJLnr@p9|}5WFBDQfyejrY2%LQ-c3(J zPBhYp7+H*e-PPmsv;d9@v19phiN!frz$>}TuYg5Vmf4;eX4@pDg<_nfM3Fq)pEvgvB7vgQlg#(hq5l}(zO z5Y4htk-qYU5l0lt&|&EtWyL4K9!FOJ(P^^_t|x+6t6s7o{_q4sBWj(#eH`SWCn1hT z%HTtVucy0Ahfr=Nv)X55eM!JqmdsVw6QNdikW?b>ddHZ8iC1?=Ke{w6Tz$MfLt%WO zme)Y>=U~@(!Y4X>Q_OxO5?9gX=yRt8L7V#Cxnh=+-tzMwwLQY*`BzRxG$q2It&ZRu zCZfbI<|F4(dI_TLV-gq(7GuA)}dm2|S74(wFRL zbH*EB=V#f-xJ326GSaH&6Le55^vdVJughu`dgE0rN!K6`y=ggENpKKMYuUU5lqaWW zF>aySmJS~}6M1B=btZD~vV>h0l~fT4CZ%g8rDp`WeGoM@mD=gyC+b_`ydW6z$I-1Z zJ$Y{DT~U@imja*ev!2qksa8~M@C80|L3G=t!@=u1j$>!FNoBK5(GF-niBT=dv7Dto^(&#PAx zAxY>qiqEO%t(k|a%e}3gG4}ZZH*K@yTt^>l4TBYv?!mDVjw%rD9A8=9W9A0c83qjS zg~lif9P)dX4STV7VIVnQt%XQx5h(IFdte-qcuR%*XyxdflI3M)?Sh8vTS1$#J7lNZ zX^t7S&GFJ(_WVwTfsj%^OirI%6>RNxF#k=G9jEz7r>u^ChdceI67wIQ5MPAty~6Pb zXwvR)K+msMwhtPfglZr96#S{I^1J{!d&mpk~b^@q)C3Q{}8XwnUx`ph4~zC zB|PwWaropvlVpNP;zV-K?DwNfchX=-8B22B6rfh(k3O7f$t-x{@KMg522+|qkYI9} zd3&l-1npIuwQ^p}Pup_sNXDJU0y%{#%dmJn`;VCP`RA;b>GS;*L2BNEgqViLn0sd9 z_T`axXt8y#i&W{9>G)T@P;Z>fRM3-`od!+N+IgvG(kquGCgjuOz-Lt2{FOzx3vFz8 zp4-D~>^F2jZlVLZhYTGn3&!esy?9r#+az?RU;y==$k9t42})xh~b&_ZV> z2}n2G9vPd<$@up5HU|#Va|7XK$xYHg$wW#UxJp#z#lbW08Lj%*-W7z;!oPb7nP=wD8X?>aS1hX_iNx-A?!5 zk7W3Vpc5c%hRq@VI zQan{hj^r^@JpbQP-RbG~wpwE=QH6Jmf{UH$5?{!kd;LPXDIXowiLrTD{oa=jBPy{u z@ZHxu$5vb!$Tg=s2kxwJc^StxZJY)A$(ezw_0I6KFDRXhdO#ifmjPPXJ|)J#N>tRngJD@(Nio#~)DY zya0++QL}=_H#Vw%ZpJNAz3Cz$=M)8SJ+x_#P6 z@v~i*U%!|nv7*}v4p-J`g3IW0Z$Hfetq9xHdE0DX-&gXctgn#(&c+b_8=EDZ1{GWd z)LZqeIX%@H{YH-|sjt)GS@w~H;4jl`m?%`+t^CHNtv0GDc{c5dXImCw;&)&tz2Ew_ zd%tE-%o}57!_mf6Z~az$&O^;)?0hDyi&-{xHA@RS)G9t7%{TovX{N-rIt zSa5BPonszjAePyiEI|pjdMznEn@qrj4jNbLP>T_PW}+TwxP#{C(d(>`n_N>zr!62` z3)@rq3ak~k_#uii#myAUxrmqG&V2?09;ApFKd)Ks>c(Q23nS{&!TkJ!tfj-V#O~-d zto*HUV5-KW?#I5HLAC)y9Z4&3hh)FD6zW@F=LY`jeC&!n71nF%WD@Uu>*Oa_x1CX? zmT5l|gu5y#WC=0bW#GjFZf6PI32HgPexpWcq}k@RU%decL3k%uJx`l!kAF-xdUtL) zCh(c-d_A&fz{r7wIZ!-0I>jadF&)|BUb)sIHOggPMyzVyxFNx>d~93a7}yO}UD~r) zr}CUg2>TyA1n+WnQjvkNnmpq__3Aa~X-LS#J5g*ooxJrrINgw3c_lo|>L9+uz+^nH zdajH;P&^(PUHQt}?B`6vJn$ zV`I^z^!qU-rIR^>Nuk{+3lI7RyYkWO%EtTEaHp5~$q#fp3j73$?cQOIE(23~HSAN} z(LLO-a({W`k^AyRbThL{uNKvIKo;|?_Z?*ar<_u1Ea7y)LQV0b9{5as`Q!*>Lym!5 z_V!iMe^iPOV1e&;=A)PE$Y>U3>=K!Yuqcx6cK`$}EVk{Wva&KE`F0!jM+WjFkk@(c z#A8zoZ>)TLn%9PG{2&LuQTalzmhm-~r6fc!iRu>#C7UL2&ym*}vd}-|nFE{>xm$kL zOUFOI6^`T0$ikvP++W~pW8*VY;u5#sp@@T}s~SKJhU>vP)Vtev+U^{93+cQET-(8U zFivlD;dheJvfW*uE!kt7RGW5(?2Io@hKxPqmYIygt39P?n}T{93J z@f;L5@W4m$23Exd{kz_)V|C^|bx;+2sz}neGF6w|8P7Lbz0{p7BI6~tv7)1L$@DFl z`vI^wO%9sOJO%Y>$q!#f)-Hv`^?th`ymj#|4|Wp+fJ|CL5*LpaO)WYy?n{M|oY#~y z%NNrz-KY7%h20b3V=7=_Y)zI~j<*|x)LYu>muJlaYKzn2lA@g5NpmF;AY>FZ#drVA)ZH08Z3>uvoeg{;z+<~mrm;Rwd}^Z^4ZwT#x~fp=qpvd)vsVK zlE;+1Pz^?5Av8QqFGdAdeSAP($)$A4++a_;V2lkFs(3B+mM&J~4r>CY`^g{mDYZL| z&ph6tS6ta;j(t@%S%WAsQ9tA3&R+2;Q@&t(D(;g=`7nPhvBz&=1mEKvndT!ENu4T4 zPS^?*zFEz&3-Y;Cro*o&y=N`%l%C7B-OJsvPxjGRj$^n37|vQJ6ogDs z7Dk2~>_gh}Nogd=OZh>!F}(a9(6;2+RRG37Qha@-X=r_;Y2li$dLHiN>}eLu+NLScs~0*Gf?Jrrj>eQiIn@BICp0- z+ToXT_?-DkU&JN%?+nxGcOuHF_0v!CL+ZTyT=$QA#YJBi`-mPcF3$VasDlu|{JY3R zG3oWLB+-#qwBow#c3g(sNOehkDV*#=Vw;%DIEcc$Z?SJmU$RGVmhx1n02VG7j{1z+ z345auqJ6uH&?ELr+h_WC3mRpJ@i$^6hY05m70FalwB_RbXt@Dv5rsZ880oN*d->sT zC|+yhke6ig_AB{`+wtU6oPLK+vq4YE?`|403hC}!TWzW*rV)Lob|95L+OJoPzFbWz zL;t8gM)9Pi2cXw&jJl-WJ`S$v^_azt_xL?{(rx-e4OBVJ` zm3CJPPvS%=a^`ltj<&(13s+Z!)E}I^M);^r@9bK%A;k92=uZX-f@#u4L0P+5h`^N8lUaK5j>M?=TH+cE;@jEGVmpLxjHJp#% zuM}@{Vj+ucflW3&))vUg&AoFhANJ8eNOjEAzfa}0Gp1~#FT#N|674Vc=4afBSsC&{ zK7g-pK76IIM~EoSx#denJ1=H*y>L~FJ3;7a*83%slidxFyNm0(!OYDu@$96`+yke) zyxwtFnsQDXt&_5x-F_quLfIfh->{>Md$f@*s|`rig~9gvB87xj{yZEjk} z@Q;ypY>&#Yq`sT&C^(^+$n$Gm)u4}zi(QZY{E)OGOSC29L+-%#Vl&Y{)?z@?t;oOs|WG3*v`v6 zKa0?t3+@R{kC;>15Ju7;VWnIrVS^Nq@9$!od_1bBbpkG$8~Nhd+t?F=%oy7(waa@i z;M&RJW3QIQAY*RYxrp>WLc&3t5!S--?BMUs0vHYIdmZDCy)JVUoG=ja7?zktMX+BB z@}ZCrKbR8pF4Q;1kPV;#z_pnW zPBLZ4IWnTl|w#Y>=41Rh2Rk@f!{9KISw`IwDjE6Pt z1*Q$`|3F8ybtK&p5_hgCF87&q$ymbe0*y%1Ic3v>*9p%t;bIXm+4jbot0%|ng}7m7 z>t?+Nr!KrmpE3#bKo!}4f^>NVyR^12>Cw}JV>>(AyR9Akevk>b>3ZELX>lHa#K(9E z64eN&EHV;qq1DUyD>swoQev*|{F*v9v^`&eD@f081f7&##`;4OfS}X{Xb|duq~|vM z6YMeoJQsrjQjF?3`GvyoCkS&(M+bEPnTA-5C;6k^+rmmdCHbPjDLu65z7X@fOqTfe@OEn`IN&4 zhMc`%vNSD#ggFy5dHU=H(c~5prN*QR9KMI6-R)BZ|9E;YFm4!<;Kv($xkV#`aBk^0 zM>4{hKi)*n?=qz@6Jb|r+6eK6a1_kSnFO@QKbt3tYg$CLmq?ybh^1m7z zE@@FIoMfjhiy&JU&BtFAWLsosZFL#m#O;C#m1*1iP9g=8z z18B`v;H-oVI3R!w7mrDox_mhc3#pxDlCdcXi99^uwzG{~|1|+$$^p=BogK%rP>Vy7 zon1!u4t7vii%d((uXN7@wEz)1<^C($1;x?GhQmthoN+S|CUQ`9#zaq-Us$3PK6$Xo zqHV0iXb-C@at}Cd`U+rHbw-K(V#f_W?{ac$ehv>79H_S}nIsMD|2kPVnH1NeEvE8L z7MpCnQ@!py`crr!_LqBqZg!kbG7C8SXDPHI9tO7P{q79KGm|yj-tN=5*emUr48p09 z`n><*&ns!fq(d+8>$l@79_@JSKo#0-9>mrBTZu$Cw15a z4Qm*N#f{HHi0~k7h^*~l1m0sooS|Hjw8jmWQ`AdqbxxsUAKTfJpG_zaam~i}C)CKG zfiLR^mM+_4aHgs$60ruwvqUX|n+E|?$f^7);AkW2uuebvxDn}-P`adxeorUP>fJ6M zItLQ?rZQz25f^aIR!>Nf2Jr#Otr*unhyy$b5MfAD{&_{#rKAA&WM9n*?=f7Dq56&; zR*@Ni0{8S*v4ppj`qst0AL8QNg4JEv=Pp1Z5@g!2nDfEPUkzDf!TK8EQ~$S&-fSmX zz2U{{bDg{&`>~w<2PVm8`6umV?1YmFEpf+p(XP+#CvO7ARrTA2MOh=G_ctUmKh#Mb z{)qx`Zb9r1u?7r6)7xLCOQYju|?f@2C z52)|2D+34XQHG%43u4zVrst>Kf`kyi8-E_e4q|Rn2LS)R67RJjNwxU2I1MHIi>Fc1 z^aPmj&h~0Le$&@PZceUf7#vL^!+oBp?jl2WF3ew+MmM2+upoFo$e%n}lz8~fLg8jl z_EVXQ%Xa^xFgS{Yye}gcX58<`eEd+VJF#dNtI#%G7!9vqYlx>E{DT!gDkxPs3FjryS4j2S@5P5 zpj9o44z8|N$#0fXd?JE{9mj1*hjIO52_c{shr~r6<%?$vJt@NyQ6jw@BHAjPRPs+I zD+H8~ntp4FnDo7%7D*3FE+|wl_Ry_zj{|cMjv!B#PUy|wm7=sABYJBi;u;Q2u8GBrfMQGG- z|C3<4o@`073mWR|ECbOE9-~Iy$}log=b5>aRTorWUteMt2qLlbGlLV-QK=Ie(RJ)z zrw5-YX9;eZeVdQx(UV5WCYz(0a&DzG&;hiu)cZ6M*XrmiSFii}lip5DTqeH`{f@OR z2yC8#+Yf+?H{nOu62u%d9to|+LeFjt7i)i?-K;s2x;5qk0SRoJqjoZS;*mdja-e;d zaKjgl(bImqM6gpzRx4YjO3YJT$I&s&jt^S?7+%aHz=`bp#|m9aPVckJAHMu5tFXhQ zj^!>-OdYt?NaiA)@x{@oW)6Q{#XAr}y{!uvA4KA{7{v1QS_qv$iMnmAHv0DprP@>v zhkMNkKy`6|=a^FV6;Ri@C0ZbDOsow}Sd=!*ic zqgtii<4QhKy6;nliU*40{^S7%C&gLc7;0+f>*@PI8Skn5CvSU?OF)UN-}~@SR!9`X zLj|kPQLl_z=BbeI%3nWV@FIQu_Zmaji{GC-@qiEg)DF0ae>yy6bgkHAeN{XUG^+PJ0_a z!KA4VXNL5ALz$Z$)joXP{U_ri`xa0}Ugr)=?dEjvGy%vrJKVWIF!Y}%iG(p3L78>V zhx-9@uHOi{HKR~`9i_9`8K7X2OG95XIW@e*&SGd@u`=LkBd_wyBVc+`E8DXWf$2uR`5YrmZw$_&3?+_rlWo#Tt$ZLEqe)+w+__weOE=?70TCyjjEpy z2>h-@Jq3Bx=ugoSHx@c$X)8PqRA%a@)VVyl?Wf-(bm!(OG+IGhSlVYqd;2SWiY7DU z`G_TP6-47{p>M1VxJm0KK=uSA$ea`^mrl);$SkUJ@HE?$DBW~GfJW9=y!ty$`~^6( z^^(11XCp!Sggc;SD}#0v*>XBnt-oG%D7WR3U2jV@h`fm^(&^=%nvf+o1u{Xsf*NN7 zm8Ino^up6R_d`&4eYYLS;N_!ZXuBe3a@dG2bQqQDQ3IO`+LZTqDKqmBU=;s zT|Qi1o)Uag;3_wb&~=iPoU_grCOqD)<2CS1{BZp~^^;gjWCNZkbto(Wb~`)Gb}W6N zV=?>)=)Pz7yQ-NYzT%;a90M88JI^J_pqmG?xHc`boZq3mS30!_@0TP`<1!}qWu3!b ze9CZdSDn9_E!ROAWAS10kFHYCPq|1npC1=S}=AjsLA6o9~rW5*$8dP)lPXG#Npks7s3(M2Sxs34#vL(e|$`3A#VL zpK&n`8$>6ODySQNv3NLuF+}8&>W}96qGvl;+|dw5f;6D$RYah;4K0Y^-lT~8svjdG zySfsAgPs)L&lhz-R3{A?vbVr1B^bGLN7r7R$m6)TySx94CmRmb%{WWa-KA*^*}Ht# zkx?H7(%zX(_`*H5YDDI2j$Ko{#!fsPnLi0TJIgAIZ3+rw}?oaz>UD4O=#-!yNW9b0Sc_XldO+d+VdFF2TNIL;B(F zVV1b^jd#pePLP%b*~ki{LmqQSax)JoJh#?!t{?Gy;}v!@*8F-s2`UfYUbB8_f{DD) zAyA#A?lAPJdLsq(%w{a)&|h+uQe?l#b$Ejo1aw$2Lrito)WGXeDy-<(<&7k52GDJy zs2KL+!uV=}W>%7ZtAU@-50AWrn8e$TTc%Mw(v~-i)8w{RbLD4SNGIi(uHao<9MpL& ziKww|d)QNG5~+h|KkxE7&jW4K9$YQ9EJ(`=NkS}jmWU(1n)dWMs!SGE>^>4Y2SOLg zphK_CXP;L^oE0W@YQf1lM5c6Uc=s9u3G(j(k$=aZ%T)f(v-tNhf`cM}lJOwo9&$Gl z6jg#|SM!2o_{oW`-Rgnt$ji+v7VVmrXY)$-gw4Nu>uF#zJ5j){XaWz5*T8@q)4R5- z>vu+^3K;!h>n*&)xjB=US~JL#0EW5*v?tUag9&!MtSBHE1U#qxX7y6)1s3cN^*Va!fB62!Nu?-}6CQXyRkWd1|93OHeNIOO3LFo96 zk1kn?^kf!(swKqae81q{Ff#0~^8inUWax01&{qOJ8nqm&T4Hwoc!u=UnwVhG5Fx<9 zmm`2Dr2`WB7`$%xDSO!evHux5lA4}%0JvV>1%Za1}p%YwGu4GQ%Q|4uQ^svHuBEjCt9(SyBb{q#PV;{RdV%*v4kucx5 zDZTQCp1aeA4I3h1PMhMty(A!;fKj8$G4W1pHc+*KMAHYu-H!Y%e3WX)vHez<6ueTg z5dz6EQ?qcNDuqOlmxKQDd>PXoS#rocQu{(lnEBRzMa0;?T8oAJU^7TQ(8eD_ZGI$$ zqu1}B0m%fh$Jk$|l@_pEPn1iRgq7eY4~tAdO3H5Q#QblE?ze7>=R7aPuA-lp2Sc9U z<5$+-E#-gzSmEVSUl_(`_Ei6<3iurR#p3G&*V&=P_#9tpfCn9Sq)-!oi;LW-+xH?T z)&urU${63Tu#a7*E7{(-INLXst#P2*Dzy<5Kz%-wU6_2KhmsJT$Q}Iq(XT@mo5*f> zVI0*~>$S2TxZ}E8AT$h^?r7cH>>&cm?Y|O%lqgcDAEevf919=(*xBARGzj)Nb!~Y| zgO-+2-uWgyO$PaXIDxaNNH>u75hXm<&$2ZO$&lI8hjB_y{4zN6pySl z!@vvgj)^pi1h${R!r?L}s3NVNs5i`e1Nj#)R5oym{lA;}Km25-FZoFE#+%$gK!>7_8qUF7wi?~W zkFwHut!J&j?O7fwN{HN+>lxw7ne|8z39O?3-U75qzNjX5tV9TE-gl4=5L6O5(k6mQ zRQx1@J_*GPx9lDIy4K#bnW6ojd0NIU=rDe9M;-aI74-hshLexrCtdnyn+u*6`kbo? zcRgUM`Xb@TlPKB3=joQr>rvA{dTI;FY6~5mlA!|66IJ>u;SWmKe^CheB$K6x9en8t zw6fWDi9HJ~S*$y?w;E@Xo&+bMKM#gcquj$o8giLR(TL?5xXMIk0T#Lm1kkEH3F)#_ z+ZcFCau@98_D8f=kasVEp|fl3O1YJ%HnfLRXvlNqk$5L(=&a`D#C&yZ8Jql7*qOSA}ks&8JK5yh)vdup;W%*WwD$au9BY0kuh?4)2m z?F7#>;LD)b-4da7P=yUor}09Jinyn+-F+BT+6;v<3i;ZdxG3lfq*ylf`_9$O{t1i4 zhb{Cr&+ZD{y(&T704!O8&*}59ik+wBz|6IwKZxBt74CXJhd-e_$A$Kg*B6`_0-6QZ z<;?5VF|0rU^a*+{&l>D>^g)WrVQ(arM{yPTlW7N(*v$k3-|#5~@Wr-@N=EO{@1w(h zvgO^LX7S&n5$kCi`X zh)%%hcfPiaLJ~>fv#mXJ{}a#nwUQ8GRdjcL43%LoKSuLAp>KzxSTTey(b_RI4U1B% z5S?vbFwk-ZH%h>>z6lyhCF-7cMhM!)n!GxCCg&G40z&0%Qt-6cE3Mk1PL~UOv%6w% z64?3!cTst{^1L5Z)9gk`a)RikM_zYeV*$|~OlO|TPVP!d>A>|{`=>q*{fvb=Tiq0h z7_a4c8q`5ZX8L&QWpALQ_Fm zx~G!%8hgMkT+H}*pHwfHJGp!|YI$;Ip=u-|$QY`@qcGleGFPwJ+;><7>*V=Vjm0bk z!ntt{njW_2Zjb~mc=fNla8lM=6N24*E1A!WNb#VvP`ndaGJ2tQsjEZ-Y=%go zKEfaL1C@*_Wvk??{>X^(LIDC4`PHPFa=^mX;=kB8NGDphDc!}UbhFjYZ?Q2(;ayjfqg`eAJtuA!CT&dlD1PKrLH70NcD%oQ+R>lTCuQJB^uP^Rrb@&Rn&*oI1 z!+I;R&ml`KKA#im0lD(jkpI6_%45fMgcUyT{veQM6NC37!(s}o?peJik!=2N%UynC zKdFlt(+x^HWR`}6pQ3-!KKN`K9q(38)0cy`3mVue^Mats41vJ{#!SdDSHT7i>8 z=Z;&;3(4~4ffb0hiB)@FrCv8<@l{et>VPxiQKOL5VlpgQaw5ENb=YrX-z72+koZz% z)j5!b5gt&wE|Qh>BmI8;>4Dmo>8}WKH4fYKqiR}rD*A%4d$25x+x!K}q$k`t%#%9s zgCXbYTE*ojQ@j zp@y}pf%%lCP@?y8{6hZbrTgSjeYjI8N7TANLk2~eT2}(?^Kv9QACa+=* z&Z=GP>r?5s>zKidzqVXY4GcR8gPKbDr#p1!BJy~L&MVgqed=n?B>HCg!244d2;Ltu zgB1w1$yB()DeGt%x3=Y$k>fT+ghm;YBJdTVu%F%3cT)I@big%9y$}$<)k#ksJzEUI z!`QnDTvt~xd-biip-eRw)QCc4!TrYm#{Ki0?Q*&)TE|@XJZaS1YWU7VueY!qCkBLe zx1Y$|D$p;%m7^`R49*I0$(-3ObRF>Xs$W4^k#6O0I=dI{wpuyAqdR%1W(oQB3PgZQ z8OU|_s*2)DqHrnOM$~Qo(*atkxt!0*NwILz^EHdI8_uZ9FC>(*T@71g+2OS5l5$lTz)KtoL|_XK3_LYd^C|1C22 zp1?Z7gi3{Kl{o0-3j^Ifk*M>z#4F#7FA67s42+M4l0Goj+kQWB!v(Wl_iq2#GS%(G zy6ZtxcX_627HvR}<=^&{U#b@hBz zFWK@Fk*Y};j{&IE^4zWI=DIwQI5k49i!JbohK1TfR%9i zy&|$PfzyozfjOoI_nUjJ6A*=F#ad{G`|YNIiWu;0!IrX>InALv-O6D+$59{0&mPiV zcC6Y-5bqQty~_;O!a2f|H-D!Ne?{j={uti0qE8;YI&}YarBb2SfxN#;EaN-qn()9j zFEW4aQUIUiHPW2XHc%$@fa_)Jd}|sm%X&fF7NyGo?CB534`hOFHQM=`++onO2mES*<$)Z8YR;ZZP@!YDr-QuaMyA`i&oqY|{C@hYced*VM9Zs69x9etI zO2bN9qo34k%I_b}I$Dts2SKuVpEAhA1PZuH z`7Rg;YK)FrYmlY}bmWo^??L{3d$m0(Vt~MZ{!qz<%uh*+!0AE0uO&D{T$fw&+zp} zd<6(soi%Qz&sUbIia8B@rkKeC;_Nl54~IJfGv*&W0YMVJEo4@0VYqR1Vu( zTsY8va^c=r>c0Y5`ty3b-!V5cW%cPZyB529pj;gbin6HOIbI0-c#kxfocXH zT0J+Q(==7@VnuITY`KmCRmgv6v->{P<55s#*uiuh=6^xix-JJ?8Vy4OUY*Ceo-f-7-AJNTXuL&Jz;$yr zyL1Y&TRgIAf#>SOQw=7s<2{aI06$PRT7{2%d7WH)GWUElC6F@cg= zh$1~zctvQVH?+EZ)hoN=-r-AQ;WQE8lJ(%I=<~OfkpT~yhKHV_Kc|srGAC2j+6%`ApqF!mTbJp;BVqU~q zIK}X_FZ%}YV+KBB^mbswvFusmJO<4AGo-)sls*pyhDA1*HWlN`YcPt!hZgLT`pwpP zJw#e;>weWABy9;Iz)!wMR(_j+4!FOUQgmQExr#IO|N01`LecctvbIIb>yLsMZlIC9 zz@;$|-|ON4*H(n1j^b^t!GiZM(Dw&2RC@JWE8vk_mg|Mgo2XWPHY{1uN+ls!TLlt- z;HdZBQ%>$bsGD`AMn(22OJ!pUUWHxMQDMU$I4`P>VZ2h@JShQ^2 zdDc{xsuhG9fH(bv)$a#qf-^1j4F7=wH>wp)$GP19;a%n>u3sdt4(ps`!Aj)OfoJqL z!kj?H7eL{Ay)DH^z*j8(<7>3&0p5INRk0-oM*ZQ>HN*pZ#c%vUus7U&B=zNbks&7| zA&ThmOK{JBaJ@0HY;nIOMo56mXaC3N@@azi%C9kRkel4oLo?rAsYUw^J-~{y{{t(| zr3AR^<~ge1e?I%i55{S1^%9;|RvD4m(}3X-lWKitr*G&BEu5N`GUr*q^Va+G1thR7 z6b-mhn4IE4eVfq6C35QP^R3$z8kJGBwRgdn?f{}V8mCJHtj^?7s5s2$BdRCyHA@lV zYX?cpEP}g3yc;zYpJ(s@ie_5qH1Z{I;=z%`r&E`k$anqr)h}X-aVMFhr)ZH~U)F}c z-}I1TWVw$bit|GD2C{mt;sfIEJjqhw{YO;t@{jw#*09v!yatkTAij4&8Mwuvr|9J1 zwasX1fP)T;(aek|M8*lyKHhpFJEic1(HBG;>J_pC$k>9Q*%l>eXy(-6O_K3=rZkLz zmkjgbdLB*dVMg+&OVYt)7}=4&57w}RQJP}wgF+S`K8$`e6c!4wa|NDnQbJb-Ly5vNshqukckkZu9#aJ9duvYP{BF`a{Mc@z z>zn~INW*OP&<-4RU@hh$fy>M@Z6?F7h}&Goy^BU?l=%62VwZpGmxzJPP3?x6dvJo} z<%JKiDdFI+yla3FSyiWc5kbe?MlX(u2wb^-QPma|#ogTLd9~rwwGaX5yYfK2n>YR_ zc$gQQQ+ceB#0Yr$&6=3C=(Y_uT!T3ephtag zJxW?$%oIG%j=}>JJ}5RLkWm9~sB$HGP#>v{$JUU%r?vGDwe1}{lauC8%MU~Vdz_Mv zND4os{-pZtaS2lP4)c)!7kgFt?ou>1plt4M>H^5xNfr&4SdD`>$Ma$8t=_mPTGLQu z_Wk!v55=+fxI1$pR33Mh#-Fd;n5|JKpGzPnpCvGc(XPot55k)qeCSPsHXtG29-tDU z{klhGcM$W)9r-{Ua5k?S34B%!)_g3MIKJO8mX_z0bS>>+D00DLfISFC;m)PPsNN6Y zmD|Hiz`Z*i&WC~g(`!(nzoD*$&d?)8g9m^m;$E%-8rOd7x7!0M!BNb(PalQ{8P+}$ zQVzB<;nWkNb4I-0nX_T94YQ0yO6I7iQ9(M5T-{DL&aixqpP+i$CU2O?@kvs`G2Z*L zlcxRgTdwi28a=n3nC)HpjrSr1MLpWeQ0pTY+5#LCEj{LAJjw{oNqt80^7Y7k!F^eK zd5iWtIyEois&_kaDjj}W&O}cN$%D@JpC#69ozZ}(BZLd(gADV3Qp?dpq@j0y41(W*oyy$d<3W~73p4&>FSOF6pWm9srgsNN{3b6M=C#7 zy)%-L-R6Haq!*s=-!8GAq8S)rKLj{u$)PaJ&+M+wkN;6^Z=UU{$VxnW$_8Zjy%m~4 zMxj=oUVlnssDO9}Z$#LBJ9?TAR@Llk{V%mnG6n!Ckb4zmUatLF@|xz(>M#w*ESiQT z<0H@%XQs#)=Bw^#msMr(vA;iHs!Q}?c^(VSYtc8rS>Y>tfFP(dtUY{A#%pKWOlCQy zOIFhPz6Rs{cIli2l@NDu7@K+SjVs#{9;G)0d#EFr7_#nbFk|M9oe#Frd=3nuT+`14 zWvEQBhxyVogc%lqq{F1M?1kL`#*V2G+#o^D(4hD$fPC^vQ@1Td7&N#vS}16DJ;bol zPzt`8YyL<~%tOXD*%xEty=@82mRP!gY2zg@2@7h!AlEFU9DUhdB*yjBIp%|U;a2LK zw~2@Bqjn_)Vj2-P0ehTdcSWh`+vw5UNXZJ9QjZ-4QX@6sH`OZ$Z((2^e~b@*Ge7Jf zyB^L*4s2yA*e{kU34o?x(*BldO;o~1*uON1+kKiIq@-$B;FC4Rtn1^p(J6q;YY(Vc1ERAcf! zIg{w@r%hsTf*U?v*yW~M-TB_NH5_Gz@3wjchj_|>H=Wyvhc&DTJo;M4KGT+6wfe5w z60JlJtKxh2dUw9cvj{7^6Mbw@zL-g}n;PI`ux($GX4r+gG*#N|T$NJBp}Bj2dswNh zlH5tdJ4UKM~I$PGvzPw?` z)PRw>&?>X3CXUxfaVJ-arv-&u>ifDlcgadOHe%mzRi#40`SM-A_r!5fskQ8ULVtBrNE;^@pNDXg&V<+i|TZBQ90bg9LAC7^-h6m!Z0IfnZB=I{yawsk%AT| zoPOA7vD{osGqQvdU%r|f`FRYlC6+?^1I)*(oJJyVScV#Lu4Cy?;>7Ykk=WMp&}k%( z4m)S~^VC5^mu;<69%Jh@+2kLyhC?CSSW`S-Y>MM~t+L_;t==x~JL$Ma&9=RIcf{Sy z5LxS3^z80ns=ZLP$k9rl*;PVbQoMi5f zr|nJY<>TFj1Wq-!BwnWF+aF%gMwRP3;+K6+738q7bB8cbiNK@U5eGYUV7V# zSWJo#9J{wl(#%pR%cBCkT=QD)aHCd<>oY}p3gOJ=+-+)ZD1AeIdPOBhGpBEmf^I?a zx=HnoSe-ecfm@raZp13ZaDf5sFk#fcKF3(mO5c_17Ad+4?IWFM)|g-So-7-74kdCA zIxjWh-?i%TAZCl_Y5MWZO{VX{-YIxT8>6EG~wIi=$IV?5!&qGnQ8JVga5LwKh$arQ*uZ3012ws%Yd%yH*HUo-LX{X(0*K1K6ly31>_}LJI|h; zSqNt&W6f=LgB?!4kvAMHVSV$xs2yrcIjmhBegxm^(SEX*?>F1odX(x2_gB*AlVyt* zRybQIZ2K^VHW>B(DipSRD?TstN=mdlO*d<6FzX79UoFUO04ibNHhma+k09Qj!92S~ zZ%$Ywt5}tL{hh%V$Do6tBwjJ$7vIpgmT54wZ{b{C)~6MznbC7OiLguMrvCNNQi58{ zr+vjBj@mE6U;m3y)%{&x_7*_BUfKIaWzeau+Su$dRjr7#Em(2QZ=+2B^(ihbSG#rL zult816bmi%?D5SFB5!bdDo{o2Tdp1Mfetp)wC~s7|6n5n86cy_lCJ&iN$eBupWRRQ zR%k`ox0dzadHE<%P((&DL8EIF5Tce#0i4$6lm!%xUAn+mOg2Wg@^6yW=RR3 z43M&gqtxIexZen$kb=%!jm9;q<03t$^_!}4w(H~BTZDpo^DCv~jvqiiM_*2;ob7+v}$efXD#66I1Yj`BofB&*b6~gkczR(~nmHPwkuUZ??ZL@Y(@7XIea-V{Z z5OCYh{$OL&=k=SAPB`gwuWOE~koBGG)`oL%qRgU*CnED>+=qSO!LF4BUcpLJq1K`D zZkzuYDp)xCD@pD+@i}$I#)L!0?A(D$%oTI9-+dVMcQXS#Kf*nFNY9hb&&XU>vo$}2 zoQ+mAZNHqDPbjfmiwxG6zCv*wVj*RdyzNIV5_LT2>zgV`Gca<{RysUF*qfWm3OP2; zL8ly(kk=#`4gd1|3F(v$VF_zu1V9GjkJO~Sr5vQ8&P&sycITiL3SX-b=47YsR&=4! zOZ*lS);3GDpyW`Ann_g%g5v5Yva5v~K-%BW9{p;4c)vM}9TGd27C%vHejIW{;SI-@MYJtQQ5gt2?BTkAAo*|URHL`@I?J6ADQ<}y#( zJly%e{V(zg)2zt}@=|sEE@NeZ+-H}XRfq?mUo&u3lK zs@G;yAz|C=Z#=e#XvBpsG7F zvyv|_#q&N6u7)pphbj4%WC95e2x}<9y7m&*$?^qPP0UQQ&CYcN*01g#Ga8H2!$xb) zZO6@Rz3nj^+UkVx*+Ol`Iix#d?+;hfKY7rC!0;NGmt&lARNz?^VET$T@D{I(NZYQ| zgG(>)b0K?L*qi;3mgV&0XME;|yOLp-@jc?+Vfg&TOv|q=W~7~a!u?^Rc;+1@OgKqX z*g@l&Y7*Hg&I6p5_iGrtg`?+ZZCs2s+?p95Y==CYJ=Tv>&KqNe8mE9q%ZM20@1@h- z(;zD}o66<5G(whoX}m{laD->YmvGGwaXZEgOa`&ZpCGp)E&mENR0kS*Z_2thUZ$dL z8uSxxBvpFBrq3t6+g(o)1p+EZy}25B^xfB+O-d{g{&3ggYxAaNC)&I`6)m`JHKULks(ufV%_ zg4+KE(LGeUUju(?|KQGbPG|3N&+q=?9|z!PK^pXwkNjvG-_M}$_Mt1~;{H-3RdmuD zF=j1VCpheC7@LE}U~G+clYG|dlW`KExSW^6XHxwJ!5%Wk9`_U-wIw6&{S0Pq6RKGd zIfMKXZZM8PQ)Y`Q*a7wWZup?bs7L#5I^a$=muqRzeYnANz7wc>hnIdgYBJ!t)?<>F zxYcD(qD+>B3{SPjNH@InDV?nYO~G^uo1t}a`q}f-b&A8zjVW#c@;6@A{s?(9|2?7- z@fZeQArLk6YT@ewHa!C4Wb&&`_(^qqv|JD9_gb&o!Z{o{|EdoFN8%rQPH{N%S6sif)>Ph3+8yM%gzduhn17_3cxwbJ@0UnL?m zyL^c}`CP=VC692sX{dFrSt^DFYL>Wr)&@pikrxVx&<=UlxHS)1pT6x;UNF(GSv1_K za!i(fq1-%?t*yI;H%^@xJ09oE zc_Heg!rt6fO`aouT#5>Ow8{q`DMUVb=EH5|3YrEU)lYrdKpw7guC$?Ks8uiB^^Jec z$ZO>%WAYvyi3g-r@gRcs)3^1`5ob<^L!nmL?Y9cb7L;yYgUB)vz=@=P3u-BgtDxuQ z^S9nR-^Qm37Q*Dp{T_ue5E7y-zzyq8xDG$typ=7mv>M=b9JTDTFxc8S(KM>bdYbEh z>8V(9Dmaj&1Mk(?Ser-KobGaJ*KnR0Vt#hKvOTO?*sSTb8+?<`L80+7yQC&K~nZ7BfEFcTscx5F0T?5!x)E$N9UuGPOP+T@m^gs zA+!(m?Z1iXI*v+$J_?%ehS@^q;jU_RHm9?khnxJRbH-8ZtK0SY=S^D0_VDVHbvYN0 ztsCa69Phd%5ZAs9Q0Wk`)HKm0e0+uREAS5LLrau{33+mp)6RB_o?fD>r%Rs$w`1fp zw6^sZqnF$VaFUzYjKoAiFs5}N)ZN7^0)G}$oqTDNOvp0%GV=<%>8Y!{f%V5lWwe!L za+9doap@_xMdzLkt=V|XoT60B4JGVoZaUAZ`}+XpZ+> zk2U7Lc|u~Yn4vQq#7gqHW~q{!mcx$yT54B0khO_t zN~Y32f%EbRd_H&)pz^*Hu{C#j$LKLCM}Ga#zCCd^!MSsS4QucJK$Gw9xp`-4jQKa1JE|~hO5`*au+#3n zxi*4^cK~c6#Eu&6O{XKZjE1WBl34_|tuJ=!m)PRF>zQ#vXfl?5?8dl)bQ)dX#x)MEBt$ z35=O^0=4cJ5|`8ORoMH4-)zu?Q6nF1qi}+y>3T=krOyutRcIcmPW{l^rK(GOM54ha z^d1YAw_71T3A9mJuR~K%jYFw~db%c_2Lt>Zlc~DPYk=6$AG98&vGRPmA6+g+tc)Ip z4)9hinP4Vs4=i8LwHwvw4xDwH4pt<|9na=RiDKKnDb~1RyljqgdUAe)7;DkUd(fxv zVYPimT}bRDGm`rl>B5hnF zH*19kYOVJ)>%XNAY`5nI1Zsj&U9)*HVY7MKVg2o1-_yQgd)Eitm=t(a>;^wM?xKu} z4f`jUJNrL@xw$UD-1{GpVD3Z#4U*2pTVS#j@n2x>!0Rmk8({9UQMcSc%@>br+l7p) z2`{(D-_K~H@ttY)OCT)LO0H}e4M=RrqzbK}Tpw$_Lmwav(>NNVu|b6i_CL@fdpO9A z?u#Py(i;zTKHGb`oh*!2Bq;IgW4$~9nL3*nr4_zeDhB<|x@4*b)Lb%O!O1z=GSgO6 zPz&%V<&(~HCL*_80h!aldtF8gG_o2#S%t6IQ)_GKb z?lu^;-+@lsCAxB;Z%NSrR8B-Qpe%PaU0iHFh0^#>_iI#8H6b6y8)T)2IC@cci(5R| zV0&Qav`ML7PQ9Zg_^Qolx%B$^jL4jfdLU=O^iQUF9ek80$kr%osA4WbV!=Z)yU;3W z))8zzBc0RY-6|1u?RxFv7V7S0pTaD+^R^+Yi2Sd6I|rg~aMliW9j*|fA&k9`KD!(nRBnW1n%K;R+=~deMBWjXBp6FUGBlgVXgmw* zN|J0MUdZumDIcl0B|H%mUrlR?sTHA$n&0<-#zd|AV+P`Vs2#-2EfwIhdZ4F9_J$NmGdcgO+k*~XPox$-3s z6c0d9{#T-Ox6qlRSq*?ZFYoI*+K3QfmD#*M-q^8W!{vYaOdB5TsDWI6g5M=W$+6uA zetJQ{=p$SkR;44)(<)X$an!dajn}Y9K3p{Lks zRqzJ$e#;8CNs-lXFkL#ckW%^OPqb2Wrwx&73QVACt=f16zo6+z3ZLG+g}-z*YN|&5 z(%uTO-EiAR-o2++FOM|;28R=(M_=JUmCNB-8-K|`y9643!GN%br%#69lc}si@&U8P zQLN#QpELXfdsQ~=rzdExckxtStcLaU8bfk?ux?Ozj<-m8q|QwbqU7R`6@L4Sx1LL6 zC>w6G*;#iW5)CrxDKbQL|L|l?#pO#*o5uyz8s_5!;2UM~X-gZu+`0-~=0mmO+nHXq zk6o*1pnlAsCgP!>qjMc~SWW9HQu__1Bsz$zU1yxK1w4Dh z_1c)7+CbQo%yAIJ7*7jH^u7S`8Fk0NM4l9y`*uS`SgZQW>nDfCUCl$DC&3QxWgOWO z{1-R@2m)7@T$SWyAJY?O$UC;u;s%nUD<#(ex0v7dAbRUZ9Vp?qY$J4C#tY>+g^|pN z3)uXpYwnZ%%-&>02Yp%iq7>iG*W2DWBi&)1+;C_-9A#MKalNnlub#-TzBvYoH46SZDaxs>dSwzag%u+yVr-1nHbqP%sB=yN;Mvz?<1XXwJnlDDET;P3p4Rup6=i{$THL z8r$gdt;z0wlWLpUDA#M;JdoTMixy&C=NVmXf@rAgZnKPll_Q&0|LON#v5Qi9A9N@P zJ^?d<^-dJ~XlWp`1?GK#5%*wF>(t;NPnaq#Khl<=KLL6>QOk!JYlyC)sJDjPhfvWM zpq3Toqb{Bj!P|>|DWW}(T^sheU>w;C6Bis0Oq`u(xyWd0#!X6q6rPqk4i>rXj_Xu2PRHs#lmG-TU*%WK-v&5a%Q^cdF4{#@vD^!z!(@-o&W;^qEe6A z%Oc_r@u9~-O$ZzaiT;}o3Sdl&ubjLx5EG-I_d*3`HuHe(7=F_alKf#8@R|ewV=`J8 zl})h(yaKz)adW#dL=eZ)wisS1n`iJ4L_vCgQe7yEKtX`zCexccb|t*fl*?ETPXZQ1muZ^*w{hdO5Mh0dqCYH3<7caekk+l5-+61~$Z!{Sf%Uk)nD%hL~8F7Oj| zOGqmrHjyeanGVoygI1F?8-*h*ZG%=Jx7E3~=)QqgAn1+u13s&t?XYpf27dFNP=r*I z(1edoK9~#g`EX5{PtFJY3Ux3c_%NQlMsV9LcMI7fBUYHxI=Ws@y-}A4fp%;YvgVG1 z=&n6d2h-$iSPj_=*$s@xSBCb_p@BDGaX7@mie7Hu>xFD;ypToc;>b~z?(VE`RDxiW zGX+R*85ovGO=^{BfU!@b6QA7w_A@68Usv6a$DbiSD8xKxf*%$J!vhI1rn|@{vd-qAFl6 zGRS~7u6&L2l@ITfVOz3@d5#FZNm!I|m)EEPd#Sp>&tq}22^yoWbNMgdC;8-sY`apu z+_Wj(j)?h<>lsqjr{hOdCGfBJPy9kSe;`2z-qS*0RNL|LUOn&x+n`hDd9q;j<@0I| z_Om9%KC#faHF;^CSwdfLr9g?+U)DbBg@GN|V^9J>yF7YVSZB&@9x<4zf@sP$X-6y8cJ^?+8Rx$na z6{v*AY4C3R)*^67G`*hHzPJylyv%$JlD(|r7%qD!nF%0wZ4(uKjZ`Ry9`LBN& z8tYWfbg?)GOfxzL7(H>X!1~n{c$-TsIZr8M)?}nKyT-=cla9db2miIXu^k>|scC^( zTA(;nQTF7%1CuXxvopg^k|^2q1zeHFYCVS z70-g@a3>jlcR_)ycYrO@GlTt%$R82uC>UKn+WY>1dgq0>D-mq?(=8SzGys>`)HfXi z#a=y77uR!|yh+xbX{Pzr=_n7(PnguJ8oVwXO^7DAWpeU{f98@LRos->kSQ&!s7dn$ znA*5qcxP-?`MO+)6R@RaVbYx(vqQBvn1)H4ycv%OA58Fy2BB zMoXJU&uF_6xwI(VT+oR0N0Ku@;f)>)k)Lz63cDgFPS^`X?SL6mbmF@I2);KETo;vV zczil@@)^D{t=w}PR-5t$UDzS~*!gi;fo{#SLE9LflESqvH_^femCk#%E{~V+#-h0U zaHA9EB0xTl0e;rBtRSM^$^Hr)C+Oj7HoaZuE7C_F+>T$IjSeZE1ZdjadvmT|^WrOq zxKWNp8`+YQI_cTh!o;5+>T^^)RrDP+EcqGygN6h%+GBLOA8Xf`utvH z?(?CHDPA4?rc3&v>>}_L_rnoY<}aICdge!hyQgto;Ud*4Y+ha!4`Ox4Sl9?hGUb7z zpx;Y1Yu_PhCg*AJP@%G%cWXua9Iy8WRalI!)ACg5qfQayEIm%I@Wp^^B2xWzD$jY# zRMMlVsR<^Fa*D|1KgirEubM6X*T~$8e~`KJT1@{Fnfs)B@^3Qt@HdFe-Ol}9*9A%D zX8eQ9y$q4LEB+>P|E%8n4`goPeo*CpwLNw_cTqfb$BeFvVroo*FA02B4nPt&yR0Gue>#crK}VMRJ=H zMTe@XkEc)~$n^W5YCc*O{x@*+rTF7LMTYdY5Z5$t8Ga;@&sjfZv5_CSy2=v6<@9Bd z9(7)U0?I$gW~K2nC6I+lkr(O~e${eX%?}r>-O2Uq{Y8!R_@Fk7B6I!nEW`D+gcHhx zot?%!Z!qdEWa&B9&k-i-w~id2Hv5>HgWz3a&NnWmogtkL8pkYYRCj24M7r025=e3i zT<=am@xNSlj?RJiI3pSy+Q<<;H?;Y&qSSIBFky)cQT+Y7OV_Lpk(>a<)> z#7A-AzM8W!T}+&9yFhBueF{Fay=y%|mwyM#1Z>msOW*6|J6$DwAVBR))5??8mtIli z@S`aegJQv7o)<_xXhlRX4SDH{r!F?({yx&NfLINSw513EhN77clf4i?IusW;!e=x0 zfVXX_Cvef0Y7_z7%s!U$T(^y@g$ruqpG^=_hkYWGGUnL3&wQ(hsWm&83!{kWS5#xE zF0|!*z+a&5K-_aMf=^QmW8%?^1WXOtz&o!CeCgOAoj}=4q!M9~&UyaIEIso|?dg;k z;qO^9FjOQ}cSG#OW3k>!Qqoy@;C+TX1g@;fp}TA*QX36J1;jQg5CA!Y;a6Nv&f4{N zHeG7C+-=YOf)+%P-uXTb$p1c`fJVKXo&&aF4nHIC%TnT2$m4W=P;JWVd!#CJoiZ4T zc1#WpkF&5Y+Y3p1PY&g>oe@dnN1S=M>NsCQ0%xhG0Ve}S-meD|*W}@^Ze7HBvVe7F zonzHW3_08|AAArX957vY_tRh!GK^G1AoBtj11-DnDAB}xpTl!P>r3aE5QBQPMPfFLa)s30XF zDj=<(fB{GdA}Jv?gmli?_YA1d_de%4=eo}M^LwxN!P)n^WAC-sT6^ua_x>#(kX=c1 zhj7y;E^#8UX5d(B`)B>{H9BD55lak@-Ch2#hAqS9x0JzVrPB|oBC0r8!Svug@ynN6 zIhSN;v#}E5nWQ@={oUJ161HE3UzrJO*s<=K%boA;9=PUU|8+axYUTN7yX}0iILUgf z@Lq4EtR}1TIOTvRALd$y)5m=2neHxifi`L&^`&h`S&EXr*X`c4)x|PYo2-apbGSlJ zd!tyTyynHArN*Y*V1nAIW;jUZ?z*&a^nN>K>3!6@J-f|Otl)iv)fDGOBKnRC9zjm} zSh*Wr-(@TFX50Jw5q5I*{V{a1%=(YUA{D^yGFqo$f3~NQ^+JzXW-4YjRL5R9Eo=IK zC8*6ehE8!nWqDiL6P<^BZZrK_|M|lZJ7y{0a0ju~o4dDKklep@ZLDOEuz!#2RrzRl z$;I7|`q*Gv@%DE^PhPzb(A?4LX}#d%w=2s-mvQ=f1T^ub&F9!v0x6R#T6KkM`C03K zm~z~CbbIT=15xhQbNmvVshrKPFE$uxv_$*D1cD8d{RySaBEbZ#(-fYmOTA1(KM~17 zs2%ew`O~j~H1&zFkMxJOi3C!lz^NC;4lx$ySo9S4$XSokuHM>v^#Re21zgI*?T$NH zjFsjKxgUC6<;LirpRL@LEfNaYE*W3*dy`w9Z_zblIX1LNwC=a+3G^PPrm3?Q!|T1m zqI5E|!(V2o!CvwF`vaAfw?C^SiFLAN1^Ne$8kXd+^OQk;`3W*`5Wt$g*`Y{UhgM)V zE1CRS{My4EG|~kAOYQ9+j}$NCkaA%`H=rq%^|7+rR~WsL z>9rqpwBvuE!tmj>Gs^_d^aO{bmZMJMVCqqPK+<&{siop4AAP3iT$qEo{2=WDuQ+lM z0CjekzLAPcPJVJo+jeT6LKYvhMFGEZkE^fJF=mQ>Khm}YrY%iRY~I$9W2ZjaRho-8 zsO!F{slWC@da2|*ceWZ8{sT=s;Am5(VW;2vY|lTDxyL3>yKBoGAajrZx5(UJX%COg zP4X|u+ygCd{ySvu;ahlQ?)d*i=I-A|=I*OVjyiU>;jJhe9{xHPI;UWIbL&JvPw280 z-+8bntg3zZB#*u}v@sZrKH}GC=VnG;T-QhfMu9x|?ggtuZxy*UE_CbH-NL~DSULk6 z;@7LCGVT6Tes=~;gsuGy`MrkS6G6iG!}E_#n2M{n!w)dw0Km2^Z2p;78~$*^1n5>F zEW%|A$HIBwPrF>Ny@{W;LK~D_HtEq_xQ@X^4+NjBgRsWtqfgxROAscB|_Lh4C0bn#fgoZ|4hx^8QNL<+$IS?HuLpK(BPmZ60K;5M-ndF+UmN_j8 z**e*}ZWv#}AFa^?3X^^L%)9CK3<=HRy^df@q0GICOqGfI1qVpzAR^x&2#){a5Sl@} zr4d+((>1|TGPsckd4dF-u!&PkEsth2=U#4O5atLwOd*q{b(`gI-ctk3JYK)mm$h3D z>sXFWZQLRMIy;k-lOwK?!+{4ky$FFtWO;%VoZ}C_%kq)^ya*6Hs0~S0vgDfeW3`{0 z-R((#mi&fbE997*%>XekFP{j4=(v)Yco(|}G6Ih}iW_?^kRXyVjQynn9k~i|`zlDd zC7u_!5Yaq*^SiP_`7F%x`#iy~L{?dbvVE{pFR~6IFlJ*%LtjwWZSd%H52QPQIeN+p zMnAP>^cX(*Cv+0Pwz$t;_^jw>sfQotqwYKrXidI|i!sgdf*H^;f43q{S{w~Ph3+6Lo2U9%j`>wGG=g=mUi45 zFp>>Qq1b7Z*?4G`tkrQh$?VteHn!b+ykv~%+YE0I%e&CdLgnXMCY&;Aq&Z&gRAc__ zohQBs*P3Akg+48K-{@Yi^-EwVBKPBuQ5p;<$3-y)K!&~8_fkynCL6%0#ir6CRy;Yf*q8KCYd9>PiAQ|Epuo z4Ed-MZxi7$%wce7J?&!CoKSxMRu>%2QY^{;v3HRDAf}=Q z+2FTKQeXUuVh+iH{NGWmQk=i@Ep+mtcpAj)oWDJn)>IE3Gx&PgdvwFc(!a9CH(P_s})3 z9L#btI9wLcL4yE4E8BP{(aQkZaxN;^tNiemD%kO`ZP(p!V!G=^_l+weg055tkzQ!w z8v|m_*7}`ZhJuulX5c)FH_J`>&w z|LwpWu!sJ=(JtX;Za8sy))`#pKQ^4p70G8NN7>>@_uJ&u%N7f*dF-$pML=+ELIV2JTaYOYe*rpx%1 z4Qzdhj3x^-Y~ASj6vY44IWc+IoLBv;L)_P|U7}>39>+5A*e?_i`azr;Q@Kx%Dav{-C$MYr z#F4pP_4(~dN4MVSfduv_#LStVoSyyD`ty`1$0oorlKa0CE#f=*cjOU5>f zXj#geJ-UbzfPw#k-&4J3sV|qPZm;vE^>}O$WtTMvzNYs9m??uQSLk;k+3VMGyOWCs zPsGSA7wFBMrP!I%HMC&c%AuEW8;KXL5!8KuFBXb>1@8=u1Z+irDR5ct`IW;e%?4k6 z3H!a?)`95Ah`p0}9VD_Xo@pI+^_l-{^J~yzhkg9V@Y2oQy5c%jD5w~)wDH2NF*#5G zAafVvk-3$RT!Oz{{1;^InrHO@ncE46%)R&rnR^Eya}O)xkhwPozWoO>H!w>$WNyFT z$lS>|WNv1F%nibw|BB4*h#EF$=dFKnOR>ebhF?p%LIt?aM{&s9R$z~Kbk98ZbnjEuNhQ_Qy; z<>;d@Az8m`rmbu9mjviP$tgm4IbUXLb4RmqS53>wEx0cPW>^9b(4oJMr}*VJJZ^Ia zZV+7uarh`QkBxWLg;%G(BZoHzR?RS1Z>{}0#~=N&dhq^noFKLxw3v@mi669eNIV(vPiw$p#wI+Xb>&+7$qeOx0t_KP|3-Tb-q7F$D{}M%opL z;f3R~*wqMV|EA)hwZspN&2fD1UX%#k=fNLu#4o^_fy&YKtb^?Z=j-E)?RrG9_1-(i zAkEsAb=;^C&b&a_xqUA?p=I93IkVvKG3)dr-#z;ApLbc7u_Isjz6CC(K#2>h7E44Q z9xk2c)fT`##|$krymSNWxzxK?@!K!hXrZKEp?~H20r?(GHQkw~T$+J~H=*e?{i@%U2BuSS$KIk>h31a<7&Mtmic97!ETS-f6RN2}_rTniCyT)^C2JqTU|&c;s44 zGso7u{ZZKquzrvvXA}4&Sr*qX9;1zW@lZ*Hh|rH5fFb=VJtnOq2+pK_*toB#uy&9p zU>`5~jcn+q&uOO+J3;LOnD02+5nhmnSZe>oJ`w1&Go_vQY`8E)D=2dEw=Chc;fyx4 zeaPT4kknfXhJkTmPp>g{S0qEC(nz$PeC76*Dppn|`scQw01G}ht#v8n?^PyI|c_41cDb}PL3j0 zo-tgpl)*$g!6V8+;xv_a#RTsQ$7G*`ABkfYGC2vNgj54NU&}n8!*P58*y)$IS%2+M zUWoy#D7AH7Pge==X@?!1v)_5_>=YeHJOcJ*w2%iZhnQCT#|$hjeT;f6lrE}o;MB)0 zTw8l0@jQz76c}7_Jc!3# zg$C5~txvb5cYjsCiA$uT{}4*{^iTE$Lr@>H>Asy8U>B^;a377pM3m~2+Y1NzQVz(X zgVS1Cblr7PjF-Ot-e=m|Zz(J*>Y3qH7_S*_Rz1uSHEuYWcW3^61rdY{fat>9#Z2nJY31VN!D*OWdac z*8iNu<4`_3b^$@a@nkAN9{owNZw*|?8vX}k`%lCVHjE1k!jaJ4xskVOKNE1%Be4AY zKY-!TdNc%X!8GU+x0KESM@e6vgErcLIBSqvE}gXg1VAWB6qv?sK=CdvRpcYn$GZ7O>0v{ha0J9m8x)>j>H5|=w0)r1VybTKM{a*J9GXpqgsvdjnja($_%*)Uts=yuK3~I*j zXmKU!2w|l+wDSTyEfNOs)KJnn5rC5Y5WQuyAh-@7Pi@~;^cn`i8q8PaZ6TiIk|5I- zWq!&3l-9C5qOq}7asdI`?xo~{_VUb~$YL$xU+5#N=dQ5zc_+N!RHhE+Rh|RYdv5X^ z$82r@@+?|YPVze-lEoaPsj=}eeX>V=0lV{Dv-t~IJ@uVZaCBB`K_9G*hG=3JtbR?zGqEj=<1x_I@`8b)UJ_d7JQ8A8WT9J4?JF7`=n(s zZ|)*|3;Kd(;lpUNpF_Z}*4h4x?NLZd6@WI1x^7wDKaRm8Yo88^<-S$l{^IK9?Fz%H zPw1}CmSASrmROjExqHs}8gLY?^I#eqjF+FM8}x$C%J5&y(}+Kdqnt4VV7vE2vu>-=u8@Uiq}ea?p@k#Kquv1}5`%Pg z4?MuunIiD|@**bEYuDl8ETO*WP%fn`hc$hzyd#n!4%Y8z;1-%eG)Eb1)h^%R{IP1I zE*}$g=h%l+5)=^t8NFt%;b}wd`b=9jn0Qk_Slg7PsW&Iq(zzex$)+-mT1f!txfwzL zysmx#$2IeUn+Q3;jv_-P__By#`UC3H%X_<@ELf?C` z+Vht(mRF26eA$izk$&-5iXTGpb=OsXxZL)U$;jjvzsJJTJtxnJF$VCqtEdlAW|#Ga zcVv$H0X}6i(tb1sP}p!(l!vjz?1$=iW1Fn6{LG`mOHGiVZ-`H}4J%RCEzib^LKz}Z z#}Z{-hI*)Li-P0|EhM^roQX0!2Nc=8!DZ3}pr#u;ColzRLOrKaH6&vFW_5EfiF=T0 z(Pvf1>yXj@T))%bL_fEt$WABf7n-N^5_$I6>PAv6cF{3hK#=wUfTp(vFCft=c#de( z%Xq+IaH=5$8SgT21qmyEwiaKYH>-EX-o34>>)RyF*CNxM7bRkSWiM$+0R}H{eN=*7 zn|yvwi1#Ml(&btbT>YSWg17gW8qCs1zbnMqhgKVgoCBC}mI^X?U(v2J<_*{a?k@7Q zSkntU^03(Q8BBM`Z~{odyjJ0LOw)v<1;8^ofc+4bS6350zuqDxLGBrHNquOt7Uknb zpcC|dk|fUfrY`DURewxu4F#54_0L`Vl=FI3=Eb~$C~1Hq*I@Jb`0>nRa8#$hQU2vr z1E!4Ss0Z^5Dm=EAs89_#psBnC-ZFPBJG1Yj?O8 zG7;>uyz+4gk1<_Mf}zezj>_$Pi?(Yq?J2|M2g-)hiTZ!Npm~8cs54zF{}i%r72BZN-S6ViG_^uLCUIe5#t0XF@1lSDw~w6_Tklq`-Yx5a$b8dLyDpk8ESU_F| zB9i=|iO;&V*qmd2`V9q%e!aNv-7lnf`>@%gxRereJFvG(;M*ow+_2Y;8M4_+qj8dj z<~4QxvL((LRF}tBC*-OpmrCZe{3pi&yNLUsU4nZa-8LlK?bQW=<#MGWY!7etNF#st z`}_VF=#-5!Ih*zI=G}G080Fo2>(})C{OgYYST2r5eJ%8NV>0(%e(pCN$|}sg4V23s zh|K9{1>2urJD~1uv@H=?Kb&chP|g@~U*#+PXiImLfwzhk^*FM5cGb^cN?DqveG)Bc zpJ-S%bQ$}zDv%JdzD2zs^^gQJGi&c6KLE2?_^i0uy63s$z2=1nPv`x$NWHBKX6C+% z4(76GE!UHp>&^Nb)Xqdz7@Dp0ZgTlu(yWuNp7~P3s^ay!71|8i0s*~WeAdIzX4?|X z|DiwiR(wyF<6|WIol4JEp_BJ(%x|AJ`*iMjZeUL#_s*Dk ziF0*?b7=FJUyhekqq^9r*W;@MkSIWaCbkI=?#J3)USG-Zx5XZ7Wz6C}#iv_DxZATs zxaBPOq^E&eJBGtot!G<@R+^?Tm&!MrEnmr!W-p~%0MLEmYJL0mz?R%C|Inc}+zdGu3c9Zt$M45Y%PFS@SnSgt zU&7BrfTAV>MJ=#a#qY|8V7bL%Fyd?SI?4*SVTb50 z-FzL5f+xU^Fy(Dyu{&7o@~6kn(xfpk*vlX+Y$pUuxHI?yt-){?2CIiI+{Gd%UWMs1 zh3=Q{VPVyO{jUF?->@CPlbQoQ0DjHYM47UJ@^grPp;*Gn7ifKc_#N00s>Br>%eQ(S zJ1bG&haEbi;#8TWj*Nxfh7r;;GIR0^B*I|FgP4eqpX3u07ZVp1jR6b72v7bbfJDM5Yj++; zLIq=pWyK`ByFcLwhZzNUWpMbK zweX(;mz2yw;h^iF=l@T?LHCM_gYNyS_eG)JKejI%kT6I938G*R1UB?w2D0@hWJPnDlvNF>rIV4G*!}?51fL*^`m0S?%Me4eHctJBtG9gg8+eAO#S9XJmFdk z2J_m@>n)}dA`pq8+!P@K+J?9iGiGaJeVT+l@6E5D?`%P#E zgd3PyJVEuk(!Uc7y*&P%aQ3>(zZ2wQjP?m{Fg<7+f*Y7QTQsOIy_izSb%0y0VEPJT_0l{$q9&$gU$8+{vI6Ru$Yp(E{<@`)yXLW*J>3(23nKY&=;NZ-~sqQkQ_|} zD21jVl2a0a>}dcGACx0fkjW`258^?SH1tf(HNmB*6j(A49}R0iJE)kFl6E%*h>wO< zr~$q_HPN4%|E}eAMliU3M8iD927i47gLxN(f&X|C1g;ZlT)BM}x{gjE{))kT&U(^` z`GhAJ1)J;>K4E^Qrle$JM)3rLJNr){K4AvXDTp*6B)C^yjkU!;0SNtoka|F{^fCQ+ zfT%v7gm%^qWtA$jM_r=cG9q4ri{At1E0xrCAWvK4?j4i z@F=#F9rC|$PT2k*kU{>|yc0_i-fzP>Z~K1)Q3&+*-xqMc9650;Y!SuNrG)qFaDhME z9~GDj`QI;wzB2-cQ^8oKtW$AEAOHR|32c5ps{7{+(rhS113|_`YJ7YbgwOWB!3J-T z`TJq01!y9q3d}nz-uA>l+XF*z!YcREMgDoiA{s^lBX>Wofj>m|`^_jc61M(dI08ek zP_V&Af;6Ar`3I-KZLzQsmOn4W|7surUzF}>6~n_9AJiEHt7wQp+k%FO4`-Z{tSyqN z7U>r9SCqF13qXxuf-qi{=B>CDz84q}coGU)tk}+geX4-NP$!?=;CC1J#zheHOo4eh#xc!b*g=|Z=>$`4eS*nicO?$Fag7)RvuXD?}bE})T z64^7C9?GRGRZPSL=A7mY(&7E9LsV(l;IT@#3NEl2BSJ-mKWW%&@Y7ptQ_wcDt!DTd zYg=b+`TECh`Im0d>al4D8{leXpv!%kfv=oH0Qo(J!`RrYNU$vTAnTzN`vPpbQ&jwnZvV%rxDfd4fHbBTLZT z{K|x_5Y0WGahsHhY4XIVCCz%n^ZNxJ7coTXm@Sfn4LsJH+0r{_1je% zmG;>HSu{iB-D$DL5at(JTGuNBlPx1U^JS?9Bg^CQ~WeGAO zJe28ctLk_6)cK6SD&Nq+@-1B~*i&aU`v@%;%WizW(a+msL0H$GVoIO5zbUh9cwxQh z$Q`U%=BS^~J1Yxp>3WVX;x|V?yqF{w7SSI0f>J~y%X@3bwJyu~;gyg!y-3$KJ;LM^ zgENGogewHzYYnGn*axoZvZtR3LG47|3d6Eu95sYRL(t6o6IRfT4Qjvu8O-QN0C7*y z%#bs>Rp&!>__J<%&hZ`O;5}w{l zP_y%tZ?e+t%O5f)-r5Nw2)pu3w~=H>fBlO+KP&d@cg=_lhChaGjtj_{`L4X!QTmgq z0ZSs88^V{U*Ug@#x+QHHi4fK{-lsYi;2Urs>9);XX%JbcJ9gpLUian9_6q%4$x;#P zmg*u#-u4o|joDXpy%+bFp&=nVN(XG&NE^q>I2nVX*@W=7PWM#bSJjr z!bl}*^b^@l(O}+8Qo`uXt06+#p>7hs4a(pXq&Lh{?e6WZnhS1v2ck4UfDVH0OwPrLOL z3sk)PjKM7WBG}FghNe91DzTC@EIgh#BM0N-wbVm$85zfaDfb=ow{V#EK2Z-v@bE9L zR0ay*w-uL^B4EiNx0rY_KP89TqFUZx-}e=tZ0|VVNg+6};3v3YCt4-*y$}Y>RF{i~ zXtWC{TJEltC(tg)+!9?TRqDLT`db1}Kmv}=i7AvD-~?25X^`zvM|8o{6ZZB`+zWw5 zH>Ja-3iu235YK|yk!DM!5cCOdv~alx)aK_3?fuIqMXYCN-#K2`{%rTUF0H4rO@yrQ z@f4CQ7B=O9VAF{?u7A#OmL2(cl9qVO`tz5UlkX0*M<~6MJ+Ms;vY^s)UGz$EmO+dB zdtFHxMJ!v+h9$BVPYbj(T!{6OVW5^tpkb?~g=!BS^$IEV@~$9Rxei5j{Nf@X3J~dR zo%=KBtJJ_q&`oK&R&j(|TJ?D+#i!~oMPuqSoVVi#7)kOTB2jOtU}me_io{iMSD;fx zIR3_3f^U!<%B>nF&I|W{V*P>ZCsUY~%u4uV;mM71IVrRIi0lUdiDOl@uky?sDG`IJys&N*Z}Q$LTukws|K z_#{xTQzYo(`QSwgM5c<(NlyE26KUE=)+)#7E#v5sD}Pu4&Y2^@I%>MTA6zCau<(m# zIO&S|OuX|pnxw-GwD+DCOsPtlL4iUw)c-(sLAqQ{SQY$7sVMT0CUzw|_9ZqlB&txa ziMK5x^&~Yr_rJ$5HZh35tCs5#`7EItMTBD_`= z*>5VnT=u-qa>}CTV?*Yp&!B4!o!n&((+Uq+R zrmg>|w-Y6>7)cLTRL-g8wy{1lSlPbkyI5~5{=jforgNdzmYW1d1v@n)mk~xGmK#P_ zyzx0>+p6Ya*Y82+I}qYhe|pL+x|6BiK7oOk7YnIKr(1VBFUhkR00wfxuGSh>ohezS z2=0`zS6m-rp8Ijj^S8#9(}E8FUd%2c*b%s+|1JN4#_*;1?P((HVLgfnFq#2D^peDLb=FdwVk#fBo(d*Y>-D2XNIIl} zM~CsWf_;?d6QG)|q;6;TW!Xpw^pV?Dz6irC_x_yt9`W`3_Brp8iCf6Cz$&r9JC+`* zEH3Duc(iDJoBfs2qbnPHbfO__Z_H30`$FJy5sd^gws*0rA#ote z@4Y0asGmUU5esu^8SJ+u4r*T%-dcQQvM$9L@b!!n25t{BFlW@j(xpVGUV2V)IMr>M zSH6D7T;ViVIsX~5poc&N0MC}In=cuj4r#bFc)k?RB~D1W+y-QfXS?&gvJF&w3^%_H z#}8({ybuo_h<%yX&O$31(!jEdqQO7VrvR8HSoLOC{&2c$Ym;_IZu8bG*IplmN(!!V zB-P*2btx5z)4L3n?&54dIv*&*#fj|Fdx)_9ySbmSPg6%NVpg@Lz0-#&0XhN@AXwqT zspN#=;v}vC7Senl!YJ*~FU6CzD)tsNQ-)p(9;(|naN7gG`%XffI+R2LzV35Hq;D-R z_1TQVN4`gv$SR;Gz~-cxgfw149=^{p+ImRw(cM@E+OW|=Bh#wuj=)pBeMxAHVqe1g z^gv5A&b^<$LaUW2_nBVoq2BPxBd)$C5yRg=ja6W0wvU$Eta$J}uik6YC%()qnpEVy z66R}iL0$Vm#7u#RxsnEmD2|L7?qOAHe_=)S%?lW9bPgeE@zs%BC+~eP&|ym~-{CB9 zNu9btmH6AfW;O_c&&+jF3q@FMbQk_gjZO+zq^f#L`1uiu5bogyu8J~_G)i0IH?cE2 z9$K0UsYP+#DE=sOqp50FC!>grn-wlJ{42=n>CxGDq>z z|E*LxMV`(bxcHY5u3T z_={|CimvFls^v7`i-OgmS-3AA698X)laV~vp`QD>{(KSVX6#+XUFPT`Af+4hh-Le^ z_&i^BFp!v!xZ-9l=n5dx-ql#Yfvun}q3x*DxrO!uSYQmwfnMg2zY;_rZ}?=FAJ> zgbWG|(RlZyp%wIq=GsVw6Y|jKnr!L5d6Q?FA7>}^j&fL%;Vh+tD+g6b2J-9?_8V%p zCUskeUcKLVRj$h8X0Q#U;2wj#s+XVk#!5bDYB-zcUD%27u%)(5A_ENpR$^8I$H}Ps0wUy{$jS7hG zT%t^{v|0XAS7;#TW22rv;j(Wq%fTGkGSaCukm7uo5X%BRR)?1NWD=ouI8GR z$2Tb9qR7jNCzy{UQiyQsvHvK%NV1hAv@s|c{`qA3X}nkhpb#WFu}X-q+I=fWSXHIX z>r(uUyUIADx7bpoDH<;fdT4wdPKjf(I|tA?X11e|w{|dCHJe8lV5RIM0=O@xdo)uO zeS~2L|n{pNJ}Gr)sQ|;8QTEv7KRMj~wWi z?Vkw1Rec~Zxl4hb3`qRD40UKE4YDTA=6s?v<9-jVHGc7@l6p2?3oF&wEM85n#9m1+ zHkr`HCJ)ox$nf31%~Pb%K!Gq^m5PQWLjW2hwg_Se;j} z>ghu>D+N>8souA(kZYkpRIG?#ApcYV=np!y(&=Os7y}myJU@9Vn%uZ8Nyva`pny3K zZN6j*Ds8y5iZv_@oYT)+C*r#;YaHK2W%O&3LsEPcccf`V12kx8Zau}s>@23tamFO9 zEJb)k3F!d*Gr)k)PO5L^*}fr~4cWDq$qcrF%ebc`WsShlLKJ_TVHM{D7zqQt^|ey& z%^HGrVA)Q(yK@i^b>aHSdrKG=t<2^L52I*udiMbE1Z@Q*{Y?2R6?LT=OsoKGI@4u- z1ue-#gZ|{OenJHLI+8(QgsQY~^X1IC04Q?{qlYcen4HdwXe61&n+np5U`i3!~=cF-Vj!{I&Ent~H#y+?+6E z4Zrr2)H=0Yt9X6l8b9(5H?RZf0jPeON5tS;cDQ8)3;RQFoH|FWKO6<;>Pq#pG-|0z z-%vdH(Z`28%wF1^_7(_gP(09?^rkn$$HC3+G^1X*IKw#d(l5!Iaxo94NG#pIB*qL! zQt^Z7+w-A&h0#d#SXC7I9M1f9j3$j3f`f=s z){a;Kz73FG0u54{7|kNUdqNG4Y7t=7JQ}p>Z@RW&{*00+f@Yo$$w%{QgV>_zPMHGU~aE*vpVGPU)C+rWC z=z|bP!n;l|y&4+1LY)dwdyYb`-Qv-gXKw*ZO{QDdgX?%B|Cmd%2x4!wtS&Gc8MRm$ zRjim_PC!J1O&QHVu3Q{?xwu`ZV0T=f(#_%;T{=Ji*c#$UC1~|M-9@l(pwAf89qd&; z^!z@oRGx=Ip#*p5RL_y7cR(>v?O>qkxOuJ^xQUT~VuYMcx~dAR%;Bm1eiU-TYy8%` zAX$5aN@FPFpwU?-Wq3sT#OyPF?AJQ)FD3Is_Kij)B)Dz2h=$M%yKC{l-OE=sZUwyv z1c-6{xCgYY)Rj~ugiTXK6QqNE2>3GfAnkhb2{_OQBsR0L18O?Quh95?HebBisx3)~rUsHzkl(#}oGVPy}NRv%9#_Q=LP!0*e-F z8u-0e6Vb3{ri32Ei|l8?w^tzJzJv&Cxxbi(c%*$^C5p6hQC~o4@P&l?LaltWV8y(H8nMoV4IRm67X5{6enQ^ry0HFLC4Vh zzNUBNgm;ih3%!EoUsSO2N=gz0km}OssBCtmV!?8+%;tC^M&f8%2M~WEAQ-;r$sBdy zfaF&Uelvi&Xu#)s7Z5;HgBvh-Mw%B1i8;*y+kSjLuFpXNQ}&>La{=EOZynzVf%`xg zkm=>WChS(a4Z3m=_+Rqv?60Z7U=j;c39Gt2!wDbBYCF*#fs;a|np1suAeR|zKv5*V z_#~SRDFDRPQtJ5&ejv4TdmO%$P%Sq6a05sz4P+Wqb^4P^_Id_ARPThTf$f*T$3io+ z7l27wp7b$yD9jFGBb6E?P&9lo?r%S-28lAEQ~?@@ww^hcb?bQys=?+B)am(8^ESseHjW}@LTAz9o{99Q3O z*YzE9mQRmCe+L$-vNqiBn=BQq7CHVa8|ML6LOCDqkOYRG$lp=UJT zklzQEOiAZTCN$OoJK4Fb_6#RC#q_|*ovrR0I>HIJT-a0fb?1b|4G|(c)N!x&^&xYW z!q3AD$lRF}Vh@}aW3y8eep;ZX*SDmL>EdA#k&*F^AXo&h9C21xz)y9v&IQqVytSjW z@@a{swJUo=-fewbJ;kB)oWwmZASXbwVpw_LBTLK;gr9jJ<3Lz(N(0v&U~V+0L+%_y z=wFwa_ZqokLf}B$BsdbeO)7+^<5&#+QF+i%(=dN;_xfu@F+e-7%myeH3KJbz~^Y!T{Wl}WgyuLh9 zVjOzQ@4Kdg&?SN=E7nKO3N1l%`xuWipYg}0_itGzVK^cAX?KUUbFlaHWo!Ic&Wp?K z`uim+_fVNt36oN-`KgyPPJpi9l{ue&z!O|}0Hp`FGU#qRwgMuau=ZgD3_o|niyk;i z(VdFUef{Y8%Qt6%Mt27PW6WoRc$CmcltM~A5>m0>wJ$YoaP~Q(Hv)xc?#;^v<2CR%8O0_6 z2+yTl>HbkCQ1yGjaEwgNb3kYP|J)9KT?O-IiZtr$IM?m3mX6#AqES}XS_GDrP4XN# zUCbabrhN3i>x9j(madYP5343-U)54?<2bhe2O9Td4|~igjaUT%kh%w_>rCHA3y{gJ zkPFT8gk3qduBv+FMDG~G4xW|!Pt^i5(ZMe(bRo+N@v}`<->G&+x0XKyI8J}n6YT3x zAz(YisfnN0{-FTiMow7z(Cwy$8}Ry=`rv!>sK1%gAdistKa=-@xW^ws=<{vfo<{H> zIE7<`3Gk&#Z7L`d43S&(lYTk*FYyqo`%I4mgBM%tan$M%ZObQ>_&Zi%KJ@6M-+@RV zHYf$4Tbv1LA1F3dP%*pM&gf)Sg9~Rl|0z)lNTWj{?4R_m5D zAo}=~TkPe|fPj=$Kk~Kr{9(q^E+~cBr>Fn!sl{?2i_YuyvnFy2FI7+5&MhtyU>hFS z@w}3Jw;(s|^&;@pVZ}rA>+z>J4i#oAK8QMgiTk*fNVVpNKVfT#pH&dEL0H&~-Q{}^ zy-H?HddSOn3+t_=^5;+2?L3h@yt1)Zlm0BETZ8MLE${+tuA=@?X;0XR$gj0C$=o@{ zm|NG=+erGpzX@V?D-FEqASn?b_S|Y2@zTH5(y@ zG+~N6_@#nnTQ|wC>6>0Hh*wl7ySs8br1b%b7WJKS4ld6(Hav$(JwF@-L?PA&ae{$O zg-W`I+X7YpHL%x%K3uLfW-^{Q_)+XL)9Uj><~3>n26VF(9`Fy5LHe=-i%#!tdKYbs zcw?#Z)d@g_3S8!LE^Hrt^6DC`hScBnL!*qqa4CsEsL~m|4k+B2+H0P;;piX7@yPe@ z{&jf)vrl^c+RHYL1F6Xi*Sz^Xu_U zS{Y$Dgpcu?iENgTGs&;VOC7{QoPNqb_|{UGx}OVI@?W=rn+L&gIW-g^3ZkS9=WphI z%xz0aE#1n)rExyct{M^?OS3q=8usn2a3ysJQ|-6bkI=vk;4W%fl(`(p z6}NzM1#2IxKA*Gs*j8J%-f%@q&+G~J#d6F5?`4j)jG}f_t-NS?QV9^8Lj-X2L%BFYkTFvQ*!xYN=du8(n z+~U#gt zKSov-HCuW-r5cF?)2YpKAg_12NpYd|1tIwF_A}m?E8Jf}N!YhK*yp9Qp}# zDv1!3#<@s?^Jo8FA_Kz2CInQ$)z!7^JCZ5w^7xmZ=JAqprtIN`_S8c)SihT(OueSR z#li4AOwcI;L!@yiOLMyn<4R;Qn;&qi;oV3FgmnQirI zvEwGPl^?B+{cV}Sq#cBYDPrh;R;gLO=@c*X=pD+gn7(aeUmf)*&pBxP=QR(Xbb`Ny z290_KtjX2HAJV-fQzUzHrH%ttCc$rt4XI8F^S@F|Y5F5y;Me{HnRDkM8K>2!!0a2$ zsi{vi&-B$h2V{Tj!=ZQozP|}9lCud3X?n(^SpuDtF)d%JgcPSOR1jI}$BzCbwrJER zs0L4eC?TIw=h@$wD_ack|5YXZ{vU%a3bz>bT+NjQK}R}u1!m?b_27Oo@!ZUDM^t(DkXCCNTLq60swWp$h*8A1GeHwCGOh zx;~~RH21c8G&gXQZD*t&tNqF`E%w3vAsdHj+aRGB*8_FL58M&@z%O{Flm1gB23~?L`n^^?J^(SI)z%$!p-@MzcdRG2A=hc67;#FW; zC<&8ALzK+SnOA^J@tz75!PVbvnw)q-M zaWdcPm%y+Ot@4f~ihQECqfOZSFY}91uTqn!U-k8|7sMI_}w~8r$er|1U;oxQ2 zTmGkCo)q4>qo?3#^%3CTkM?s*nRcDj51)B^Cpd%1E;~O*rqkxn%JT0mKu&ZgXH3|z zZr>A6U+Io@O8eH|&u!v4k6Duj)r8w4-A*IobeUp*bp}V!rl+uV+zG0kDGG|&bBNtl zX3Cafi1I#u?!fKYpOT;T@YTs;lQfxZPvgy$U2t#xq!QU`*;qdKI3DHzCgxf}H%NlZ z*Rqb~IZ^CRHn6Wwr?B<;Rcb1*`;|xL?fZHS89>?xzLmWEa0nsW82g56*QT>?^t8vV z*B1=}pFVxRZs_#o?yAHM5_aIwXd!jF7lVJiom=GTTorW0xJ})7;%lEZnmvww7@noZ zMKr@?!eRFQ_wsyJGh#_5dZm&{NU32E5$4+`JZ*83BRnbW`l_&DU{Z3T+6CV%!y|!S ztuy9k?I7@EX%U1@B^x&iw)_>bmx1VMB)d0NL1d>H;D_QN_B@`K_?~X)=uF7_qx-@V z0U`iweB?xw5dzvqv4t#)>e;4(qq)gT%rduP$0w}M%f1fxGb|qFdj{)JlonEKAViFg z651UNezSWsrx5w(c_P`_qr#SZaQXq57#y$RWME7%LaW`Mr|KZz-eR{1T#?*{V90l` z$i?+7m-tiIN^V0wLMh5?nY>%3Y7uJU2M!jQ0u-R@TMNq@o|D zJNIS%h^ZUwEmd{5U=HaE|aAJ+P6cs5I9 zntc1d%ih{nc$wX9xk@u% zlbeS7fG5YkIU+FBQaRYkThp-JQ!RTQ}}gL!&jr)~AnYS3te|^cd7*ZzRbfvNC z&);%H?B22IDpWY8LlP82MR25S+cINLTARPR`})FtUy?&U)SPt6Z4mcAfhnM6*a;gb zWa_UN4^ViNC7iwsrg=`ut+y1{5^*)z7Y}d%XP`k9aTcD%3j21JY|44InS9!>voXLm z)4{dDt~`VJ$y$hEXbW*m?Bg2E=G6iU{qR}q<~^owFRL$080r_w#k7p}Kh^wMMgVDZ z);bUnUuP8(7FwXp-#r(|s)}0Z1r^{ZVZpk*j6Wq(Tt-{>i{uw6sqM2MeU_>QDEw3=7A&zLoWo4x8?WRRS!GQ8HV5#VDX$3rSkmWz(Pccu{$wrx95`C&Q$9NY6=zjlcX@ z?32~cnWha|IL8TE!H&3dC%%R=i*;?4f5+Ez&nj@n9}ECMmL^HYeFflIhB6E$1}D3e z=|85E5aeWwe3!mRo{&8p!SHBOwj=Z7wP@lJw&y-tuLK4wwUQkBc?!!}63RW3x>g&C zP#~C?l?-u_q-COwzRzzlqNdg*N5JHT)J{VQ55@{Ni7YihwZlh3iyTnJ={M~jd`dIr z4t>pNe#1?nKaZMk!Y(gl@7CJ0FFIWv0_q^^v6tb(QS7(Q_a6vIriuB0a5RHPxR@qW zmOeme?T(rGY_ujDMfP9R`v4izs}wFb5h$%6UTfoT-1fR3jS_V;oH>(|jClRP_Ct-p zj;(`j{CWGr@eKWH>!mHeD~xZ=f4G5w9Y}P8L>E@Yzi;AjSyVYfj$J~#3IV%g`54Vi z4cnr{l3hQXEZWV#XPX~2ExF`*r!X%HbvIqgReR$}Jba;efJ<2L8(*T`X?dJcodry& z2_W*W+;#S^40hg=8NiAiha=ybu)SM|e;t1)T<$DzwxB+uqVY?VPZ~YRDEhj>W}!Z64#~Or;S!6_j*4a z=h!@|Va}PGi!m!SKR;qooGR4&nVCPP{<*=BQTc5pbZvFi6wt#13EKDdJ4E3!Hhw+#JFpn_$M@daPnwI1B)jw9t`Ru-H6}IS~Mjq^$_g z3}O);(JbyrW}fBiN9i;F7hPW+)^zs=I>wMP5ClXJkZzD}rhw8QNT-N^Al)D_v1kP8 zlnx2$7%+pD?huep>5knqesA#J=iYzz@UVT)_nc4nQLTfb=0&hhAD}9W;#gDS_!NA$ zzwzppo`x@6w&Vd+2V&rUV#iTh-W(h457A7uc~@IhcJU*=E!3ZD6vptPw~%2QF}F6N z>Y22Fb6YK#N{3deVf%&0(?eH}1DgCvq~4G zVh4F`d|Ll9P>Gdh%G_~u5F3E>2eS1UuYL#4WUh4fXl#`5{HBPR4b$ zXleQJxdy2qooaBdSi1!+P4M%XO1b;IOzD<{Qd96v4(y<#CQ?%;#r)4YwX#OuzPZTk z38ij)=sCBwLtA~Y;oJ-R16@jy6zM^A<5$WgR1kOl3FoxY&Y>rV9WGns<)&~-v_zOj zcppe6#R2||$W{GSL5`P^g_$MYQeDc_{<=rHaeaGNc)kptr<5YhcG6>aNqlddax2V@ zZ2Q)eFxhG%ELb8}Y7CarprDgdz{|P7+;g1#U?-B>Y+vZS&D^KCwaDyigfa4`IbUsK zG=B!hiXae+8a1SSSl8q`hhx$5#zI-6XwM>^+V+W0;mf70_E`-Jr6}|Pm;vwvnx%ao z0g&m}ffMlo(j72v-9=45)JaJ%d3q*A39TdQR+KrLPw9*@mTY)zWL#56&Uju^6n+y( z2}~aM9XL`}i$y26?A_4)t=Tg@DM6S1V#HQExbhZ#hB7wmY1_T}h)xMZvQ!8eX2{X} zvlh2P3FW3}()d1z!aX>?Sw?2dP*FTr@I4Ns$TC&vV+Xu9FihidExx7C)=CqJYn-sQpS?H;H5B;vVHFw6{87aSP z139OTP=M>zVfG&%d9WnzPP+Z6(X*{N8Gn63&#(7==e7T2%}Qz70*%T4OuDIU3ai8Z z$L;ZXk@=MdJooCe%#T!+f2W8?-_zKT$7qqQnS_OwM!t6`WhurO!6}BfVJt1S1HH>2 zOG__7D|I%i?AWw}FP|%=p6Tg`@~zn{`O7k{Qb*<4&GljX98O#*oz3HWSlb)&U_>7y zUAc{1^Tq{yOL&Gd>W%{!i8kT^NQ!oa*RBv|WaG>}G_LN6E*ekCB_^I}YhPr=;DQ9I z#Q-62>YI~Vj|KO?N4tLue=w>&RiaBjYupb*h~7bAqN2n1{Llg=(%eMS_i=V&(M7); zt2t@T!tRZq#BGP2ww&WAA7_gfJFB7ySq2aJDyhAb@&Y_&GBL}0II){8Pupns&i*~{ zcf>J;t207=$t7__u zEmNwYe9a$UFW_`bYhX+sgc*pH%VkNrFdLYxzW?fY`fQun$WE0_+;{I|vO$vohHBDb zj-|ay0s9}HoX$Q>Nx5wl`RgN;6^0dwvm?(vk&$Zh{V4{Y)T)s)d?kXO`>PKdPm8W zeBd%bk0xU(1*^ICZT)xi(T%6aJ2$7MKHSp%VjJ{%qF7n0Xp%`R@2VWjjlf)S!*y8; z<(Qy(7425Uu#s{{o6Bn; z#`bLv%-f@ho|HI@5I=5%3Sj*v<#oC5(X2stCh4(ie+P@`!`mcaSP&y77$BXA!gBSU zmshx|Nst4=NZTJOlWSCuw znTT94GNj$TqMRk`kyG=aet**UW6{LR>O`^Qe%tmWaq}wi-ZkAs04+RW?bK|1Kd0== zABv3bY63gCI)vF#l`v7jp?FndoHh)JZ0ozq4~8BRvlAVYJTje06ND*|w6wQIIGHO4 zRwFCP3nGruJ3=CQ`ZU`Dn~B5Jm)p8%JRV%yVPAA*{r1E^=(`gc?9h{z+O!j7^KkKJ zpEWjIPW7=rTDIu_-k>)abp?x=&_KeijOz3AkK~fWv$N(zV33utoS!Cys$ci@C?A5b zD>1A7RCR67RAOYJ%V)prdDY|-zYHp{b?=TS?;7B3x(Rv&70?e z79qSJwFIae0zP^Tq8;BGC_PgIEfKX`aV#1S$q<;Ky$pY4;TUwGZ;xCTUzKLL=zD88 z1-)F6qWPdbsXw|_ZJw06fOBxHA5_a}E4Sol+w~iUp^RK81>$3@#X5~hF}yz8{1_vQ zxK-BdrvGqE?H|r24E+p`__o@KJAz4}#d4s0?L&SBSpd)i&Ad-~2^(aGY%v{meRoZ_jog+=uqeLbLzo@$7<(MCU!s z#+RVKlwmrt33tE+Uzc0EmL(reITKFr7ov)%UmkAFX&?#V?LZS_$|Z@vDKWMZ$NIG8 zsu4C76BYDseqky?Pn z>vDdmk;wMhZxr8&)krjf^w0*x>R!Ge(f#LVFh7MT%Tb2tHSx1Fn18FGpPRqJeVH*} z)ui8^zlpJ}-4TTo5V>mya}R|&qCuqR_T+~jXiJIt2FIDbj7rPngY3Li3OD)y7?%Adnj2V3s>6_ADn^+l$*evX+lMH zOzh>+T8|w;3MugP@AABcTUpV4|AeXDq5Tc5zC90#70HsZ6?QZD zHj{cEw#s0?JKn=_@j z5@zFxL<}Y8BVqrRp@q9}Q0%y68S==MZr_`?iwDsWn37!m=^8q)y_Lxu@8|xarfsoy2WT{om zi*r#8*cAM{bdmzW2uymN5zQ^xog+ zE{LG?*-AUR_-RK$pUk;&@7!%Q)B)9z_6tfndz#U5)^ONdpH^jo_ zQ$cz`p>_0V6WMdC=aENQTIJKq31!Z)mV)8akvs4}v&`&3pE_}U<@(qdQj>B*{r%5! z&nI70n;fZm{Pyn<4EwkNgj*-nP>OLx#L83}3`(>tb*L<_3{Zg%Kcjr4MJ({q|6SOF zb17(_1yA>c9}jG|&l(C;4+#||UpMmUj^n(uEJLsu#a^*?Y&jQbh->w1|Ep-Or~xx> zm|$Da(L6ObdG_SDZt1&QyAiQgtV*ZFBE`lk?u&uR@5UP%?seR_1|ut&L6R`piPTVRsBvraHO%<@*RJ`Mjo>7gTWLPL5=7BG^a zw|YNM6ME0LBG-dG`h{@y+sC_ua1e8&=$CrfbeZkrmuGK&4{+`HRQ$l7%_rq66t(_% z@_TL|Apc`L0G%e_Y=eO${`pwAzSmCNwi7Ski%qLjP=uf^n!5g_SnM=6hGwj8UoHD| z6`0p<_#h<_UL>)Rb+WTpY9=GU<8g0%z)`R75xn73h1J+SUA1ccXxnjSvArQ@aYojL zl??w-S>FlcIx#ALp95}g&hRh(gwMvq>wkwC^?vBkL$s@K$5>4KViCB~F{mZ81attV zceij=>sF@mhv1557MWvoSoRaEtUcd8N*rI6S7a|bl$D*Pg>r$oZh1p?^x;wCFN<~% zFo-D&H2*=D8d-Ow96l6d6Z6J8|69>kv!h{2SC2eGV7UW!>T&ez%I`bS^hJRTgpQtBU0*K$H9!Rjul6XBCz3~B(c7ucpgVdyXr$NF|heubzQ>uYs~d7jEbzCs2b^(E=IxF}+@g=7_k&O4R6N#fw=*`l zvu_|OvKgiE^gc{*JvZ87VvN?VV0dIk{+O89lAC=bZ=QHKFB(*Y+$xfEaF?pKZ?YHh zHo(unveT<+T&Qhd<*ZeGvc6)i#1cXWXhRXu2C{#Q+G^!Pd`(WlZN8V`;`>(p8XOWj z{gv>-1gXj~QLVzU-Zc@7N%@Dw{r7ie$H5=>e%~GVW1ZxtpJ5z@o?*{_b~t~Ue7{?o z3dARA&OY8SZ@1{Y$-1CS(WcK;ha{A|olI!rzep;3?vCi-#MTICv35Frgzxq&;`_1A zv`6k;kx>XVu6JnGOnV2B8LL~3v%ro9X;3kLpQ7hKD zdq;Ug=_0Cd@>b&K$h#i5koz3Qa~M1{PR4W3D3k~BCCBQy1|#*AQ9I@l7djOxDdViS zSUJ9W=l026P_FSlE|4UNsW^Yxq(8h!7`>Cz+#$ILOi4u{L#BnU0Lkr!LZOWMJuj~w zwo>U-abOC>qR`$|BTufA6q0opA<=98%8vP-Rj18qoWCbO1aK6u%hjFiw90OAH+U;n ztd}-Ny!$|3zA%9}bu?4(_#oj=kEw0X1RkxvE8)GkJH zK~)_yK=?VlcHK*p+Pl1WfP`M}>&vCj*R^gaf|iXbb-+VOi)=!t6e~TWyZ)ADh7BqTg?> z3AP)ew*wd7=~f)zjE?&M)?M2*z^}d9-(>9fuqakEPi|*65EDiR(-J{Jz@urZhXkMX z8p_A2`1pEfEhdqgpsZwZZ`@sF9K2*xnxyLY{37 z^JURo9`F_1hVAsaisqIq{p@k#nG&w!XP%{AF(T z=tt7Ht;1VidCiAu!8Jo`%R8}q4aSdH*#~U{mJBeYVTV_S>tAwD!c2u~u#57Fs~Y>H z=A;^WhdU@EGsNz+U{O%w^E5E+B9p9y&jYZztjMa-D5pu}}0=BaaOb3RYHFnre!Na zJLxqmaah^a^w09khZYl5=eA>I_< zHUHOxBav;%-Yy7at(l7|*W4{oVDE?e;~&gjDJ`_3eY)%JOMMpEN9pPEW*z<8@VU*3 zr@N6OUFpLD&-Xu`KUG}2ei`&B`u#m|)df9E70M-CV7^&G^b7r zg3}M-syxm4^Q~)L^MkI3U(*R^PX{>KV}B;=e42nAbY+um?|%wXiIo6@0m%7RLG~>S zcz5>fRYq{B6RERr2^B9E6v`j}Za6){?;#;8IZuk>FH-d6udF4stg_iwt`1EKqc>Cu z&062q**=d*AKM%ZyuI~KTT7(oiWZKq)gh!+LA5;3y$u8n$U&&q{vLDh>pwVWplGSY zXQl9us?rpNr_U=p^a6cv2GdP5Oq{TWMA$$Ylw;GghpxcZx{~#Nd~YDFs$Y#z*dw?Lc#Q0qP>ZDpL&n}!EHqOnJBPDQ3!j8=Z%n@$LtHD32p z($gDTCAxYS01g{wbxV$nDLvtjuWcN%&eVc8FRPOUdem5*lHYoBKj-(|7tDk|pWH;X z(w=}AA2V23IKba{oTC^-;tvs?i?+(s(r!;Rf=+fSRa?;~n<70VH_jpRg`mG*sM(Wk zA&z0=rx)dHH*#!dulULADK$2EZ*@;*+YkZ`xi~wPTsWB9|gCneLav0ySHAf>wJ6U~viV31i#sT}S>mbVIu9nK#V)iLu+4WTKupxi$>{TptAX0l*e6vY3 zE;G7;(kNmw-*Mb|lYf^C5~)>_`|vp-$c6I2P~wUTj^U^Z!{gaxFJDIAvxZ7e3gXlS zDjlSi|4Z#Un~gU#CpGQwe3hdYg|1WeE58PfugrKnFBV~!34QyEA~BNawGbDFj9|6p zFN+3ubA0yYL~z%nSr2~0Cgx_QjR1%-w~y&pRcaDTAY>+`PD{kmN4So2+4C(T*{adw zt3RpPK@DA|W1p*TnQ0xe-lUo;uP`8&<2#S3XjmkWG-J?$W#6a6pUDqq*rPC+k3qO)I=Q+EG+ zDy@1Z%@lT!u!;fg1}^#a^j|7#)~IG7jDV zF#6k1aRlL9p#w!No6EkTq_^diKb(xe=()DkY}8OtSg_LLfA)n}>}*6c;?s=B3FvT} zAnR^V{-Vp=ou*}8y*@%=^zQijPvQTP(F!GHID z<#s%Qa$2>bPT%Em28r@XDD(D0qoY*60{R9;Vff-_M|vY3se%=eBJCAW)rL|dt|Wo` zynXJqw%@va(jHPoh?lLcDVX3f$ok1cBEP9*;=N?xdD5@8OJgw)nexG;>LOT+ZPp)o z92pv&s+!ZpYPuOd%|9CSD%EWisYyIpoD!l=hgah#i$b}bEc{XdFNU2 zMV5`JAoh&%5P34O8sXi2i^(xLU!QT0BXIi}aH^+dfGxvpwZR9)C*C-I>DV5%&|Zd5 zPx6?40CNa%EmF62Cikx@?%q3lB9Eu!3?o61AzM0KNN9DF0rC?klOJY4i=u*XEy~1C zaUiztWNy7#;r;;1yv5k<(=go+224bc{nKgAn%QE?1LrNVBrao809{Xmx!HG+SP(o~ z`x4M{5h-zS1tfey0B!C_aUsBGZL+z_w>^;+a|h9T&8Y%Xv1f`=E+lnLw{REYxQktz zKiN-SW$zSfu*Z$k`8*G4X;+8@6$w`Z6WO`5~WMR6||kaAhu|o?Z(m(NItV@=zx1x`k5% z>RY*HvMOZblHc*Vliqu{I8^-8kMzcBJm)(mIr68N8Yedc?@v1`kwcBTK7eUN3}JFqzwu8W$$=RjmHyzmQ%njysOQdl zlWM`{GxL3JYeR#({S&=FR+Qqsb1qH6LwaM_3QpfRb?1cX}kC?_qHi-p-8yffC#UVisL&kbMR!aPpv_;qCFWFR)eDL zCYV8KBC*`2SnZv<_eR&SF0N=wbW^8a`ww!SE>6Nee2VZPNG0N);q& zXEPL49>A?A^?$wr%uHmT2#$^EXJx(*S6z17dmcGk(Pc!7Q$627^>S+Ck;jRhU7OT| z5y!pyw+b@a>X2Kz;nhZPF1LgN5t{9Evt_JE6aK)0C z9+G#rAO7-QYveWmF}29to|0wz7SZr&RoiHP_Tp*NPCKXgu*+Sid91uA4Y~@&NOYJt>I< z{~oiFOcslA!n{uz)%z<^{J7COd?699&Y2xnu`b32VnbOUW$$#74p$w&uOxwZmn4pP z$N(jj1@tBl_-P^oPfk_JxW}3-ugy2PzHjF8Qhh9}cmQ`inyHS*_cYqmc`OKC{POCL zLnPeT^#d0K$I8gx#S;cF@k_4_o0=hQ>1+${GIR|!;I(^u;9c*|9p)~ncqD7~1al*c z2_>S<=G_YtLIi`V$@=f3SxsC2_~U#L$PU{>&saK4^Dk!Jp4;(+2B%cT=gHgJ#w;Ep z^GIlOgimtK8%qw5*wQiS0R7ij|48=TFA_Dd(9>1nkn`RA5EIAra5+BlrsQ2P|6U$Y zC8j&`m>`kYGv{1hIIDeNy;qWv!Ww)7Q@zO`lUn#ibI zpI^HKu5^oTdD_)*=Ur(34|mdRj5Ncfs}-XvnSDy7X@*(f=1IFGt3Y;ITZ=W^h`=o> z44@wfPTZZ_D+2YDZ@^7CsD1IPd`RRT$@wT2lmntbbD-IG9v8Ml2{D=gjOJB+h>?CD z0f*UQ!|3onkCaJM`z$l+miy?xPG1GaJm9}TR3~=13VxI@3GLKw6v)JTVAEn%QfShe zSOZmE@rU}AVi`p7h*2*Q)a!z(Z5&scoxPvygUg~tJM`rf$yid{>{Cb;dQ%L^0958C z-k5)k6}{tR)pcD6P(XJ%{HbEX;~}qOM3MDvJL=r$mYe3^rEFb7^)7{jFaZ*DCZonq zRac}y{;o9w^oA(9YQ23~^`c-=2gz zC3;P4a6bMKMvOiPYrqQsN(5>CRR#<8YsHWe$UC~>-Pm8DCr=WPz_`tk1C$kSBC!C%yeYzLNkZSDph^n55lnc@OmlAlaq>@Pn?7FR zi7PzcQ_Mun4tF@s0uR#;FRVLdfBSo-3fXTVPPL(aI-HTEcw0c#qoY+sB1X44}+p7+mj1Dg` zxxzfb^v={6KZ8&ZHb>sJPrD?A>Fj7F&DlH%UT+<`Ib+Atp^} z2&CF@xyAeTP3Y~(tC(WR$Db!!+MuE9y0^f?Dj?ciH$t??(mgsj;SiJU0~&vG|73l^ zbH?=E1-!m(OMEbW&4;rzJ2;Xe@rJSlqw80VJ?@;+12TEV*?vO} zOXU_t3{rWnVXA&H)Ke+w)&{}=kWa1>Tv2T`-b<6~~vW+0{unn1-t)+5B%Q@a59q&rUmICGVLhiE8oo^@$pz zsLxHoF+z9m#L6`>mH?~@kC()#euk?ECDTd`0Vv)}%zy%YEClFv(HoonKDY8MC9G-b zT8urfNr}QGv+&Eph(H=pV}hkmSXQ~c)=&Tz`C9IAGO=+O%&?4EfdNdHg_n5w9oevV z_l|msQ%vz)rqDNHvdF=QbtT@tN8ng$Ln-vXF){DUaO)&G6TDKbu_VNQwCnR~%WRd1 z**yHa)Bnd4@I|Qe?pvGRUD#ph$xSm9l|X>WlY4~)Pnm_mSx`aHVD!FeQS;z@YI6+M zERNssACk`dr~<%(E|`IzEg^|PQbb*wOewT^)@Xg%!rA$f+UYaRAcM8 zMF&3o2B1CypFd!P+5cu=sJ3&06zASjS4y(isXH%Rl}<;icktD?Ht zAe#sWLFiwTx-v!ft_$C#P#Z4_`rJ3*3Dm}sWlO3OJiaZ= z(N$kVd%}9VTYJ7Eo*_ljEgD#4UcLSg{_4hpJHl>ag;Tj%$pUCf*23;nVKUsH#$ju* zw5WBV;m|mZ1hm(m8@qpf!09jz4)^0kiQdzy8ESBciJvOGrvIO&INvws<0oe3MLjDc z9Z@L?n5K7A+5`T(h#gpD=RuhD^~FrMvY|h}VEInT4X*$8X4im4y6di6(3<4Jy`M&A z&S?n$eaiFmreeZlG_>Jnh%9qZ*x*R6CUN2WWK5DLz&7iHD;eIK`>t2R{--GZ2U|>6 z2`krg+zvSE3v_Mm-g)tq)1q7m)n_f5-Q(ZOdYJaar(?2H7q@M~4Pd*sd@ar4Jv;?T zMbTXZcP!y$VCIwV?SnSc7ZuojlwQ8$1B$VFuI+ratp}mHTC~%N-nrZS*NXvgJ_D&{ z62&oB^MIC{SrOB_$`pKy?rD2_hBN$=*|Uu1eo2Y1lbEK^-KMpziRpn7@2<1h!Wm5Y z6oxSV_knr=He(*7p3Dvd{l&Z%%kCn_W%7>82iK?hf~m_DnF+Fjxv%-!p6rN}JU^z! zv{THM@5jh{@eHT)R%6V!e-~Q}0RC=rjzfqw4iEve5gvSVf!h{}KDN^M*+??LQLl^{`I=0^2OO;9GS(Ad`AHI8L=siUoh z*+wDqHzZh~Ei!sY9_J!Zr)Q8hJFsZ!z9+l& z3w@T}FT~GS=EHU#LHK*;cK8R#0Rz1tP>(E)OV)b2KM}d{4o#ANGnP6K1 zb2sPTv;GbIQ6m#frRd~jwRGU|zP#sWPg_5`Ne`DWW=bVbY%q!b0(}1QceU_7USs`` zaJw3h!q`zw~5l9G)X})%09pKjd&F;79dCU(? zFh1t^W<_~m#xHqPmjqMD_0lT|y> zw?^rf7_x7(&^1wL;W3z;`}^M+z!-2$0}q}^h=N@B(Uen4GP(9Jh?jlCh zxAp3)M6_@}2o@BE2mUbm3?+s) z{g(&&>E_Rhq)ps)FKrH8e!Cxi2@yePMXe;tecP8-KRgNWFD$AS=qC$Ne5B4i1TFGC zjACp=hlo+XcSBDYtBf?F)re{%oAD$!nrXs7NynAjY)7U2KV*9@-MFv+A-b zUTS?kmuBlQvN+!TiczUY-m!M0<$RZUkH8*pS=1>sA)Oy>Hg4DN*1a<=)82>*%FREPSrxI*v2^29 zR+er54@OfTW8wR$XZE)zp&}Z$1Djs%e^({rObC6I-dr2#IyOG8Q>KLV7g3(SMu9XO z!lJ2AXMo>7*#9H#(CKZ6h~chp`~LoAeL+K9v0BeS*I&I1SZX&OUVM&`P!94@Dbq9= zW?oS#Yq+-IJE8Bk8Zc2`uXJTW$6`|qvb_A3=3&+)+M5^7#LGR^Mz^iOfZD|SxoXMo zIm*|y#-S%@h~s_A9ONpYuGb6~Wx_B}6saDbAV>&_xeG5=5-1hEMY9X#0?M?q$3nZtg|&`s5@ zr(}smZc?Wh)ZC;Q(ug{Kwv2;bI56HvHd-vTypNvM#5n=+X`6$CWZdkYy*J1bOU<5? z@ss-wOrA+U%r16QCi(XqYMkH{1H65jf}Qn|joJe=OPhX6CVJiz5!Y)a>|1U_=%K6^ zh%%J{04XB&aa#f$jaM{aee;R8-_p$m#{4eIFJlX?Yq!4`-1!g2uLF$B$|sHE?}Rzy z!o4?fpzRXfJA>$z!6MetwW%o+@k)>&WC_1`5Ct;uP@F=eIDYU>UPIiPO&mqrid~K4 zj|H^by3~ycXn5QbG2TC~K^Oo~&3YcejFqMqHw#T=@4C5q^^`c0m6Z!Nt0FhEuGfxN zJ#T+M_g{&Y2hfqLzC5R3k^w^@N5FMx(Z)W19^PE>xdg*#_ZoB;9vYr z={Vw|S|hQ)zeT!#O?(m-vpq#=?4XIhvEP5N)!rS;yy8f z{q9|eN9WHyof`ME;%9Th2j7d3Og?Mb6XI6dVUl$MSE(dLtt3b>^8B9-1cDv2DlE^c zn=DLV%gz|N{q_I^nrHGrUlF-Z?!y5dpS)3CE|BiJy;e(2T^>sCA33B6c>FQzt|K## zI&^ATQ7g(ue96>TYOf}yv03V1!o8#YLH(L9OU@4GrO63eES}ll%>Td`3ra%X(n;9E zEJ?;mBbG+1GP;ILTM4DLd(5mvDmbNx!5U7j^(&h|X;Wnm>DbS_Z-F11o zJRekPyK&TTHy~H(@58|TP?mu5((zfl3Q&<6i?wu$d(JB~jPYJ1+cUSnBMElJ3{LihXoX^UT-g=7#07Z?mDVT8AYM-{{YD_sm50 zd=$J0@C_vDpdssJJw6SdnFg&l393n1zl6fzLr%q?VT~&GPjX+rUj*>YNF*E3)+(yys@{iUo4MTH7M`L*>=zKKNe`rjfQDfmcAd-j?;p7EV#_&0mcFAm z8V`P0*tY6fPT#q(T__F%gw0<4%2FfLYmX*SY~6RY5jXp=(i=DI2kzOy%x0#(kdhNa z%>_iH>cN)tpQSeG{(`0)A0;__CnZ-F`-Vc9yqxL8oi38vjapn?j@xsG{reg}_%5Ct zJ96F_Ry+Qjk zDvNV$COzfI>Zhf3z)aFFhq6-k(A(>wPg}cY41ay`n*4+xaypBGXON$$GM$AQW_m@457(mYsYD$) zBJC(+H~a)HLO>P+fgk+0WJGW#^Z*YekK+%JQb*!TE2L1ii9^HW#4tI2#b3 zOK0sP?NpS$k+%)<=%}5bNaTf`O+dwLT0>UW{NabQ%7&xIh^f8T>xCJu+> z6dnqW5|9ad{YDD=9*&TT-G%1&}8q2|T|;m8T+o_s(MZO1+08ebC(K z>NH}=bJOn+{*^rtgejC7i-l=M7?FtoGlh@O;yU3)YN=G%+z}2b0wt@*peek z2IsRZ<@YFB_3`y0CF;WMY(#e7zFG)lZXgfMo|FGoF&M3}+ZS|}@wvX8E70 zaRPQ9*|r9wn~|$+LDP9I`P0eoghJF-9zRl6R{l-7Ptl6w?)i0MFy5d_DCNjw`P*r~ ztfwc!h((oaP(Py1{!78&Ndf(P%CqggT%Pq7Q z070uJgVKitqCh16Uj%@YvB?947Gd6}bMd!;c&-Du(eYfpVB`SyLMUK}F=K?E>;h`Q zgK9Eh5xn642y$9@Y6OtZY|jNl-u&l{csDTS40ML)0$c&F?SRY|Tc9TfxBdRZX(V9fb4E}qf!i57ewr8|X^sfm zotQWi-t}@zTwDv9I6KpLmSotvnZY3vJt#I2*RSlWy0_!x$x)DEbdoI(p}ephOdSg! z;)@GwVhuM+OsSDu_ie>F?v`~oo@^D4HYmPkn32L_FvU#1W+>4r>uGnREs}8WX>(uD zLA}F+Y5sq=1;Y#G0;WLChg+mv#TMvK!w3C?!p^hqj`=U`ocA-10~VF)@2UE(%hxNf zD{=Lz-Ufdw`>f~MlYYNIBdNU@aN0Zwu~33yoS4l`RbL5}tCxe9#G@{9ez*_-B(fvc zomttWec!FQS@P5_IWmR+(Ul8~9{vog2U$dn96|Auj36{C>7ek1v+Dv(xAeYv zpZOW;b&ZP4+E?_#RsgvIf>X+_ug})RSc}isj2Hev0{DXkBkx4YccVBFUtheTzjYB5 zN|`{GK3=v;_%BhIVaSu0_xd-MFn~JaoxQ#0%|FSDB0c)aD!cbD&@AFI;1n|x;@3Pb zP;}Qi+GS^V{~yfpru84eE=S1VXmu z8^?PD3Wjn0l&4-~Uo^=7a$TBqzd)VLE3{XKF9-h%LPRSG;3#oL&g-#ch@eg>3%#QO z)(dMNVyI;3Wk5742sWyhFf+e0)UX(9d=Z{Ji2&dBY@yd%5O8ZJjg#zsq{L^eaQ{|f zx_=e|IPJHfy>tgC=1T~VQnBed?V=zWueIH~LWeIdqT%oOfwW0HPIO8gPhq{Yi$Ub7 zwH8-Ue0==#P`UjJWH_q~>^M6u1!#Z0{1K-0@of1nU&EPTG3owoq z1#FXBI>3v#i%~{Djs)1JoAS9rt-0%XdU4KPTv(VWmIM5@HKPA2!U2yXR*bz6dGP96 z!D&o^A;py|XHitR=^7V6z;X{Y@Bm*fk0@3Nt7}^|E34w-mw!1Fc)=Pbiymi`MMzTY>9{ zJ2+~ABQ$NB=|0>RCddT=D;Gj6lMilU3OKr4Y zxGx5Ls~0&GkEJTTAg|yia&V}L+&5KdHa>?!@`5V&UXcpfralN^<>co}6!25hV7%IW zsUv6c17Pk>Hf5)Qpo<`s1m_iP(~)U_wWVzkL6gcKzY{!a zY-j8%e$+qs4F`=KCUINU?w8222-^kk@$YSP<&g-V0&GPr94?q|c$^s?Uv0t;v*9w> znLKXETKuzAP~*XCashNq55e{wsmdcr5TO(W4g)os4jnZE4vmcDGJq+v=+;GgD8uZ0 z3XAP0_o-jf?J-myj$NPLb*-N^)w zaW`~RHpYLOThigaK>07}%Q8M{kFAm6jg81R3x{DYt}(e5zy1SGcfd%$4XGG;m=HUZrxqz= zw<)PT(~9jTD%daK;x_lcZM(1+qF4nCkM<9^$`Y=sXe~CNdo;l2W5l~A2fWkLnyu|G z{CHL$(CXwi^ARt>&facwx~dJQcyo$m7kXzf>Dj8G_JyAk#l`{|_2VSbkP#XtUd?!R zvVJB|u|8qUNH3^#0f}rtprrPi_q%7wOhpVVG&Q3)>fYF$Hh3&xJFL8YNAI1K@*jrv z0Om+byHWrj2^3Hmd+%w?#AcH_i$~_9P{Y2-xWnYr9;Y-Rl1=*o3p zIX5swwr3-@PxgmEj)r8oe1GcWegXCcfZzo)0J|n4v}BwxBYzJ)v(P}Aaxz`uu=Iv~ z8mNNib}nPe4&@LH$qJ`VJtC>yXl>HHohSs^wM0k9+ZX77=M{iIo^T-BLzDBs&kLs~ z==NytCYP83*71@CpN_yB`Q(L^WgE*)l(GBR3c=l%LLM?xAV?iTQs=Glt9%ciD2E8a zd(x0c@PYU8|8|%PkP5#`(af%u3M9dn&58dT@76SrXWlZYpFT-qG{+Mu?@g2!^~4Qq ze}7VITN40`TWr_OEu_DJ_k3I7vHFoB?&*pbulimVWe9(Sxa0;2er~?(5z?wSw|qSZ zzxB&=b+yu=r-bKIiZB@8)S%&J^(nr`&rseBwga#?vbbhO6pL+ z-uW-hFQ>p=2>BVqh(;91bMjr9WtQ};v?AgDwE=n0YeJ$>im;QSfS7P$_!JIe>7`7n zV70f)+Tp?t*C5<_9%jkwIa-L&id|HGc%`cOk7lbR-#j9`dl|n7{GcTIrDDX?QE9h%hJf&vn73I z7@nE5$zJgM3s^)XOK%W*aQ;YmV$FtKB#!q!pRMcgb8G0z+sGh00m%b}P=7AsTBi_&W9)89(Eyr{|y<3bBHjh^!HU?0e z4vmKH%_^u9F&6Y0#{D2HRbkVdIr^2w!+|~p z`h*kOxA`75oTixoL5SmV=y!j3$HPZH^GdfME=V2@%hES7dRH5e<#lyO)kGASgIOBJ zlcd}mC-hL`DuKeP*;nosTUHH@oK!lSRhQ&a17XqJiMq1sNytxJu{L!dTl@OeGx2_= z3`}34h~kZFx@STKHHr|s%AZYiGYDSu3f*3aWbxS%7;4Vjjt-uC>;i;^8d25axCcYi z9s5u*=B7{c9~HXp%Yy{`zrhtsd@}}q zWP>hW;SLrWcYgNSxRlN+VqXoT33;v~w!4yV8;uD_eywgT?c^JapO#w)*c6!JfReHm zPk+{RnA9MKkc!s5l{Jw8#CYA~1~H2=t>Nmr0C(-r%F|4TTvYbl&Aba z`NGeTb&2|I#^&3!Y8}w$race*;4XmH9xos%cNy?7R$zNkJ;TJt7W>RM(srg#jlBss zscv%AmBhpFX0>SR0v0df`{8#?){qi{q#DEGtilbQO4Ir`5OxRCkN`M7(AkW%x%a1> z5g7R=WZWQGz0trnI@Y$&melztxoYJr^K^onv3Nu`fj40SqmqTah25gOH66d3PuR6*T;V#` z{hJjn68^Fe{e!QIl|A*6q zwbX${J_{4WlqVp%~D(!>Nsc5>G4x@*# z5~gs;V|21mf$9W9M0v{=Mb}E9u#n_oM{{~5+DsCc)(WaY8!l<&Jg{6k{fC(&LIejH z&k(K)XyB(x2&#=U+-EFBatPgK%@q5xND~kg1*HfGNbl05i*zZ1ibxabHADmz5TuAm z7mzBw_kdJIdK0AA(0dKZw_|~DzIp$;Gk5NtdCv?7O!7R>-h1`6erpAMld9u_y&vr7 zi2ZGb6HtZeq6QAkaw+ZYh%A!foiyH+g;#}jD~pwG1UGb{>err)=9UCiK3y+-JCK}B z35rSYu7U-#{qWKL#>Ba9iAm3_;E9O*wq{wShx&f2Lh$lCJ@{r%{dShvUhWgir;Q6# zxfh&VC=spYQ}NsB9KzwY)GW2?4^PncF;1U;^M%ZZM(@griM`p3#JY|)3`e9=Ej zIwtnnupMwjq+7(U&fx(I$A6VGxk5m6U4bL;ENa1V9MOJ}4QRt+pbfoMvPY#)xevhB z?B^0vbA*S}&MD%tLH^DHSP--00fo^M#KgNLb;E|B&XquvSTyP}!kiT#ZQC!Cp62!f zDrUddAKu+_o__z^*Y;j9&gz~h<+z*p9lejxJFW)guyu~D+Isdq786w&2~R{epv>1? ze(mc}dUVBBEzn+}kN80?d^}+9qF>gq4GhF2VG{*{L+R=iPSGTdIpQwqm;u8QK@XIV zhMJyv6Xv66k*fHi1#su zqneZo=zWCKWYh;@_zsxtN`z&d-qpW1`0aO9zzb> zT-2)94_xwZ{Z)AV;$UeNN@6BRydJ;f_QTzj=5!9di^EPv=57ly>?`w`U#b1>@&j)K zq}7ZryR>BJ!jHWQtmj*DrOpa?C?V;XmNPhk*#uV+13W5?rPk*=@nF&)GZUIOQ0JuOZ>)@hdO%=u~O{V zx#+~>%ro-w3U&6Jxaq0l?>V{{9{(~ZHsNG+?(`>NXob6b&S*9Bcw|%F{+4ig6Abn3 zYbGTWc$-*r&=jw0`oq$1((iG-KvP};k{dnE7DdgwxY|1JmXu|v*n2{5E0fH9rMcy6 zj{R0pU(A)`XD-fNpKmC2P2khvi^EKauSdblRg*@-%Y9Q$%PXd1=(j4e zrbX6PH+j`wT;lW;w35E6L2!&A-c{VpoPPZJ%$g^QxB^%A!P-1v#e?KS|=y>ll4>_p=8-Vo-DILYu zAO6}HAae7f&1^$sTrx(Cin+`c(aEleWra|zcCy|Ucws=eX;HouFMPMppbBig2p z)bVY&@ie{S`2KU#-TK^{TJNbIrJr5YNDSWX173`BaIDj z5d8P4ptQ{I2@(7LIiio^04l?p5UHkh0>_A>}j2nv zb5xY)FckspRVVPElzW#;#_&6=`}wZ;t$ubbWfyaOaEUq_#2Z*_Op1a5QJA--rmWsC zr|vp$k+%(V$MZN@jSmwosyaaRyyuOT;RaMpcQ3_!*Q%shuw>5>)yd~jI)2|3>CI)T zxp&R)g`M=2a%9x4!qfI%Iv;6l4x_ooV8BOV zkEPf?o~M#CxXN$mh`{>TT(Fkrn%R9V12>7)M#MKct@YM#VWNf4rsj@U?MAzfV@sJ| zUS2zcv!NtVn=pzPv5z!_uamnQ?re&9i@1woYTkbj);g8R@`e7Lft#tBLI@eM|M-zS zl^kT7hJh0gZs(1bjqTU%6Wc^)HN-pTjj#H(aFpwed{fYr-Yu^@60Ga|O_P2y#&-aj zB*Pu$=Z@mJe7Cw9q$$}rt{lrOvrqyRtSaMrGls*nBAieGj0v-48jB*trWvqFpn2pV z9@5wy8G(n4B>L`I(z6+^Fo$oEJyFapq`)?vD~u09g;R}e`ue7v(RK+e7H<2(7 zvRzcnQJsW}N#ZV!h$@e9S8ox0eoiH5Vw0zNPewpVo)A+Wt0hjFO%?kj4Z#(kXnpu% z%uwHQTZs4m*8*Pe-fjKDO;k-k9%ZIBML`qSkupg=fXr}ea%~WWs$t{zn4!|V?BAl0 zC)j`4y<+68*8O|i*Qr(Oo7%_^vT-004pLHXP;Wzh=&L}7dcH-cxa=(9=`Y)ZhR(8V z2As*IB>uR?LK`A&GmHBc%9lC!p^-%k{+MlM7$vYvo%H^MIH|Hm5KD+pCCho@`x4Is zyk4d47GoXjHQcHa;w;cXsOuz+B?v&TmL0;EDu*iSU+VNMaMD1rX7sv+ekTsS?_u#H zpPLhH?qwi?OrkY}9F8#`>XkS<;KX%gbX|ET4>yS({OGTsigWEl1;8tMYnLuSO(enrq>cio~F1=rK9_=kY z9plu*k&`rS;Nkf)S6%S&`0+X21OQ?lyxQ#wqazQ3%!mn)3|E+%bX`gKlAh%kmQ-Kk z6nTLr9@Jw&X%Uk>?uZNQJE%4L6a8|UtXp9f+xXfZ^6S$(D-jW7^vPr1tqp=@VmKku ziUC7tDy(HRitoX|s3C3d`mZyTJAG1MwzZlXLbfTyb@jH19=W!?3eqi(6+D8R80Gx~& z^&Q(>T?|M%eGIF#zk|aP8${ap*}GG}UaOE5@9b`@_?q|D1q_~u->ZEC&==Q39UQi5 zM-WEq>zgu$m?l8lK#-Q=;^e2&A7nmhAK+*&drD@s+-?#*lvvJ}>iFD=> zk}S6>+Dt!5U;r%m4mR-;sx_`d*%y8PA#5-6mB|wPt2ZWvx2sngU_iQhqj!I{snRQf zdf=}vs?$w5)RydOT6&RPW&u7vrII=d>bh08K&>nxDe3WjDbZ&$Pf)Y49XZeuWp{sC z=*=IxHfAE)>NeZF9WEgM{C2UJF?OAi6cV{*mlGWmY49X@V2!c^DeaJ(JkVC>@+ojS zFuL?LeQBHWoPErU9~@r2p70g|X8|T4rAD4_LLG{f-f~4(Rr!MqT8KL$5J9&(_O;ETX za-qobm%)>y>D#b%=HbV&w6y-2F_r2K!PbQ;Oq7ktq4)RMk_S{P&=cBQZ8;N>%QYp) z9C|mJn6PMJ0jm9D$K)&2hu=|NSUwA=^bkZj42)!#{8x$HrWa+IHpay0s+%Unw#_6j z4LU9eQPJ>OzSUbS7Ml$bA|7&ED_9Aj_mFPCjrd7CUAKh(CN$;_+vaP+IPu%3>+fi+ z{}CP*y%7aR5i+C|C?AURo&@rH!E`X37>ZoLO!n`F=xvJbSv%HpU=|H)HwX9p9LhFP zwkPFZ#FOKqO~s9(po_n4=qksvnZ}jev&O^Kj4MN8+fPtgm|b%&N6m)p{i=o2eD%GR zuGaG^7u7%v03Nu5??Z7@!Bx@vgi374MHgiuk)DsV3XA7q9@Tj@Ig3LzIr#>yXRVH@ zv?|4BW8cqkEEg(yFD&3ZBe1aE7bB&QJp0GQUW)|w=4Xn1C@&x>tWN2x11PegelnwZ z(F4}#=In}Ozcc9N^vpLZZc||ozSDuqp7>`%ZK{mBk30CWW|4sdm~`il*KIUI5h7=; zePwT1z5)1jq4{Eiz1;8POJaL(slt=4)MZNu$a#uq66D(DxU=o_{QB#%gc<_df|_z+ zOF+=OO<)2+^{Ty3n;tp0+d;ldoV9CibzwyZ_59`b4EpwLzGbaj{JFOY%T_$_m<|>uDBO@HmlUYNO(?btRT>yUOS>@$RAy@UN zb=G0eJ+R&yH6M7}((*_4rA$5d7<@$b%`@kys>FwzLRPxVV%deiM-M#+F`!LuHA~jp z_1`pFg}FB^wbHW+uSL@;3{{EPeOab;x{F!gdP=_}utDqe=@O9QKYH@vJ-~PgWQH(G#%haV7~u98C@0HA=&(OkM50qc1ZY z1AIvxjt`3dM>d*DkzLbwkJvmGL5M}31T2XxJLU860bpHEO)KzUo+x`*o10x6Rg}iP z9~BT2L|=Iq6K5(k(4zkw(!e4;BjdW}1TLlpzy1nSlO0)KRxm z$oEUzE`@%3Jn(lgqMLcdDfo=lgaE(Hq8yi+^J%R9p*YR~kX&N|UY270iZ5ljP+7uQ z!xLOsED03=dr$>0=goq`f)4+JiIt^Q#3t1d;Hf>fP}U$!Gsy|%Gq6zufvi(_@G4yd zUxPm3WM>cAfhPi=1xU-3#ht9#c0Qi22Kp)tC@>CAw_JpMHH#l{3TB|Xb1tz7-ZHVZJ`GU!iNmNYoe~Qa9sdz`%mf>EF^13L z-yxM-Vw2lS9U9uR6}v#ktqXgmRYUE_oalJ%%A40xvVjd@OG`1cs`CHgeOa6WJTRA^)%Y+k@mn54KsJH1DJ}vRegh6k2W+l!?91!Fj>JGz|CU42hpRPWA+L7;dBr~AS z0ZwA0-lZ`GLANEc8SjT#@%cH>OMl`F9s9hAWkSYA*C2tJvC*~b@6d`%{Blc@eXyBE z?Z|tvhfIYB{R%YasqbS(yo8_=$f^I;&!637$V&6!ZOM|!%@f8yb=C}vkB#Qvmb6tL z-@af^aUd!Hd3GI$Wl-l+)z5^q0zEo+3KV;HnyUs4cq)C?+h0zoy#&SRczayO1+?LU zh7|5z8J8r)$j1{bb6b@Y?JvD#12lT#{Cy6W1-Bt~Iz0m5_P7xTc=9Ua$Qe&m^Lx35 zOUps9-RD>@k=rz%++egfsJt*MyQoN}_05n?{>*t?)|&traE915rrC1@R%MPRZ+JCu znMeE)F+jHEPWR6IhXMZp<8by1=$HZpR){71p%e~M39HCJ^V{+NTux31RN6_VpCoy# z*$>;xx95g28~iTitUrauXL2(6pZ8B^4ST@mhhW#rj*(E~Jf;K-&-ihVDE}_O1)5nb zgsH}3ii%IPKm#Dz&sX6Kxqo5?Q@c8i)`+N}Nc$g$GzJ^m%F0162};uYB+Tvm~eXKCdZFJqyt zv?2?cFMN(;PKG^A#RVghkv-es;u15RmNNnnq?K6MezZxcXY9=KW2QjzMAzNd)lP-< z?msqce)hj_iY7?DC@n{JQp%AgQOs3&Js??U8pm5u^#;eU!H?|bpCJEE(QpDbr+;;L zF_t_bJy`a9M@3)HK(C?GF9szNY*;bIZCF;Jt??&_`9rIe=Xln5DXU_hPpLcH6B z-_FM?*1>z`2r7q486+_I$s1T?j8rYfQ(WAai>1Ov4%C|F4|=lFpUujhmUun5*WJYY}_ ztSNs)W}x)7;z{@FOnAGll2m~A+T#Wt;%Uw9@YA@NH7v0Bj_qC6S5VMw^zmy7^TpL& zVv*yVHqz{e$DJY!B=TFNI^!-JYnReGY6Kw~0t?5L4i3iX9(-5LJVl%#8T$PL8_V@o z(8gM4qGIh=apH_DrYQt85S{1N)eF{|Eof*CC=4IuVg$DSeU~N$%jY>rS65dpu&ER^ zq{nb%lo~6ejkgI+o)hTmMVzEuWGuj<4BfWrD@h!OFxsd5pXWqX${T406NbOP0-b7^ zbrR*`G@VMlQXTbCUPl-0C5R;0wzD+LHQovK&Y9dROJ>F2$C1}}5@1`WlzrbZ-FRmZ z9+1kTe@GLZ-&xn*bJRVi0^y4%Q;ScqKftmV13?eVllz z#dqD3Afy890od2Vw9P~Pbbvv-49#e=L@`=|7M`s;mD}{G(Z-J&gvuBPWe398A}HxG zU$-bSHrIRT)Qb1wM4V4ua;E*%^{^U?LA5RVrIW8ua6nj4Wd#Ww@r@tO8veyso$-wl z7tDt%923WyL*3^)4FgYH9Jv3Q+5L;rV^{N4D#_IpkZzZ7(UNc}!^}_Ej;g(!uyrYt z*xmDH{XiZ}zPSKA(1xUo3_(@p^UOez z_}{abu$XuoDfWk|Mn-YltjhuR4v#pEk2ugqPqCpxkJeo0mA2kq!~E%XgB`8)+qj1T z%DLb)0+>~1>IimsLFcT6*#&1fBA)pu9yS2n=((`7B*%?s6Hd9R20i zxjQN8gX_l?03&d3z+bD$sZ$!VMazHRE`LrlTJJy2ya%5DNoearpWeN({_i)~{`b4m_&s!Z)#f2$bDx#5l5s&w_2T#^wzSF27@ffOfmrrKO|Rb|nCU zD7W>=ay%(xMUNgeELF8Dk8>n&-*Z&xZz=IUPdK|-+PZBoD-RN=WI%dl zdpQ+KQ0clHqxA~l zPjM>qCr`?bC=^*WT0o7Ao^d)X2x<4NF|ypnVTjdhAYK%1i3o4F@-A~RcJYXXy_W|V zkGIu>{Ox{h)%pU$nLVeuzLxOg1`v-3i^o#^oq2raN%#duRy^g6y6|!Mff|6* z8fR(={r+v~578BqfUE!T>C^wb{4blrhI4*kDV!gn6nIgJN|qX-2#{mvHy{0_&F`q0 zU%*3IuW4vV3AEt2b}qf3i!cD(Qi3*9a$YMhoMKJfO(3}}wgzvX(n67S`&ejL`VAd& zEYyB&x|uEYJr)^JNas49lUzi;*}x}8DZ+e(;7*M?PJjZ>1+p0WR##SsT&`*mv(j6^ zW`J2`#TH7qUI~DC0*S5>JaR>#6~1^YD0ysi?;^m3Ex&w-2$zn=kubzP5Zx+zr`@t; zT>b_s037IA8snBPIfmPmG!IRrq_B+zH8G+$mM5);$qcu9^s#osIGG=(2?PSa4l3s1 z04efNjiF)?qXnB)TJed@jOti^oL^9@f^Jh<>FFINF)ZC!+}>+-XA~@RP0Ck!i{mMX z8}S3Tg-W?D$Cu*CQ;XMPZo{ogJ9QZ3YkT{Gl`t(s8v4BvYbTI}af+B$I>{U!onRA=iG^N>&OVMv{ zaiu4)b8`{lv{J&q0Y*#tRl=LwiQh4ehK=iso#W-@O{R-R2eP&buzFzlJeWGRk9bxG zNbtw_9U9xyKNcGmg_BR@&X!+YK^wa0b@e=E6|iyf7sWZacQCLjRO=^F|I2ML<-SWG z-Cz@{+o^}j{oc!DO;l{<;?*XE!~W#hUcdHE^Jl3DY-2jeK|Q`WJ`F<^7`%C3)0 zesZbWCvksx`zQUIVbl`++v@6S$`>m*Op6B%VE}51=ye1r21uueHJ}8z6;5WSPv3SM zjdZL7lw-oQ9nY{_TUuD&)BEraJ0 zHbjt;*bl%6(R&13C=MOv&ZoId;Ep5axT^Cb+u z%(>|rs$ix;2c;&F<4BY(+s9;{hz(!&!*IVs|7vkxiAAq3jZ4AyeuADc*T*Z_RhSv` zEc(r2uR|&U*yKOhmNVQ>D^|$ZUpCOOF4k>6FJ$)zMviU>G=s0uqnEA68*|#}xwY*V zgZagD6pohfn?M>YoK1e=p)!NMzjfk5Y~^x>TnJ?HR|g+4s^yg^Y4jlQkM?}cZ&3e_ z!vo%lx*A$2RC#0i9hX=&g+Dj&Sr1UdP<*k}8!cXunWYc=icTwNRwg%Y=8w|)fMd~zz#y$?zd!QX6V=;ZV@Qkrb-f&S-@fa1Dwj*G59*K8`ey2 z6tAHh{KDR+Gq^t*S!r1$Ez^UI`jUPp$MKDE=Pi5*D2!h@bLNc9E*sj;8fij^RZ*m0 zu?VOC&QD3jTD9LJJ$}-0`_`A4w8CfRFSwId#-CO+uBNmeBsnH88Q(Xh1gU#Si?hRn zkvo*o1#Vs6`W;Zhmj3=t{~1uDP7`lT{Tw1Qk8vhsY-{_*q~JIpcu-To$x(P?z28XW zdLh>e>4cx>Yq#gq!T{PzW`3*us-Fy-7H)IG=O;prL`1! zQAa#=N@L?lK5rbPDyjIQ$@19RR1Jmk+Pb6PPGer7I`9z)@fCZBj7wy-Dvby3xf$^Q zRnz`5bo#DQqW4B=sVg^clAT0N#fh_&Z_S40KmJc6VBU*^92IuvNY8op$jlce4P{`) zN(bv{znH}TVZSqCI$%YrhOs3Q7w6_#E~wj@n6%$K;vir9H?rbt8wiMbhJ1X+=8l~g zG4mzvXn^>F=Bsm%ItyGn`~xvG2O(Bk#)`W5-Y)whkQc_@R9438^YO_;&ey3O7za>p z!Y1>ss;7oC!$G@&pU;43!sjPH?a1?Q@hNHb?jG6^@whwS*wY@yr(1?M$P^zlYH1E= zwrPIC8WTFR!0zEFK6U&u1CG$&WCiu>pQ)sMxAB1)jGwMu&f1IQWA-BQ?3s%Hx1eoPNQ63j%rlufP}{uj!}?&VF6rVZ3MSPAgjY%ChCVI5{bXSn$N(ik~6dWD6Z% zaHG`78H`P#{GyX%QG4Sooxm;Q5=op*0Zj(Xif^!B$$9LQ3NV1AX!lqAqsbe^W5L8S z^Q(vl|JTSAES^eUk!4cNs55Lq`fKH=uU|r@)h-4#-7@{>vnC}LK$<3)(@QO zh3Z?dvu^%5jhj=Tn(VZmnjtN_M`m4q-N0kxYR>Ght6X4?z>|tpmSVdfzE1l}S^<41 zFiohhWE%0`sV(Q>yLVYqr5LiHXGL}_?iW~fXOCtX;`21gET>g!dV#Us#=yP0_!!}&%Hnf2j-roDAfO z?1P4!RcD!g&jP|RA^sq*!Wr>y^*-?_rlQtikKu%sgsc*eZw)K`G&ceZSX2w3ZG{`(mWXz!Gq|F?TIKyYLQxF22GiTL?JglA1K|p9H zTdLBtxgoR|$OC_Xn?prBB=lckZEBiPqrv~iw!A$xJqCJM-k0>gvHy^X#%v5M#%ePj zX>vwjV~pen+u9$Y$f6m;ofeUj3%@8UowWe0f=!Ey7&i}O0SW{UT|I8|$wP;W$Ki5S z8m(U)CbUgau~|c5uT<-BRH%3W5as7QI+Ao%h@6LNmF2$(mMJmI-XQU6j`Ff+!gU6G zKn{oMc-^OO=eO6jtOF}6(TZmmLE!b;u3hp-T*jmadcc|V?zw&>=LcV|zfF^}uqD}+b9NMM&!zU=TssNq-I_eupVO6lpD+p_8K zbF>)n@Hs4saM~5mi*<%~Ow@YzqTdf1ygDRn8kQe)ANTXWA_t}5H%fYil$#G&6<4a) zgI-o)dadh|s~lVttyzCp_y2`MMrq&-lJ01h;meRZO*FBuj6STc0_}1Ech$LY_x~@^ zL2^xpVZR;|BYUe3JDum2Rln}4Gs_XX5f6w(MsDZPO;oO9jzSuorJ}VMv zxWmYMMCJIifk7QX?x9onM}SAR-`+b+Uk1Koa@t|h&r)c!Hq-rt$=s$0wnsiHPKA?deE3fS}RXsg2fJwPN52C!Ccv94dv#^_3mywe0Klus`1S90VU|v0MnrFi? znX7kk=cb&*vO`=G&yflR2#poNQ^Nhn$vN8kMu@_FV;>&F+1`jV*z)vsx0GA(pWFlK zmW}lahmtBz4&>wB%7oTl+lL!5Vhi}l%ic#a0-;g}k+wWvHguTG#G&cceN)5rVN@d+Zuvv#dpimwg9SK65Z6Q-=u%6sa52}nL30x z@(nzXqD7=aCl;sH&A|BxFtfT$`sf{sCo1QTfxds%`Q*Sn5K_pWnh&&-sNxaGW_OQb z&}rk?ugJ>6tf%ETp`)BYhq|F%Gj3ZmNjM8Qn$+NKD~;c+?7olui1(0?V@=~wWEvW& ze+=}G5U1}M7FcP3R7I@8k0X(^;zy7I32lEGjv$5>@bcz>0cJJm8nsv)8ZxMg!uwb4 zKQrUnevtY!D#a=d1%s-?6UJT@=MOgasJ7=2ANyN_gx>(GL25cxW5JQKDmY-p}0@Of423y_{ z0COL0TkdS;QOcNj!9;R7WpP07;zrN$?~f`5BxpXrw%nM+zEWL<{_p^d-pzP}tuL%z zAyt(-nJ5-gi^$EJVtxbndC+Qu12P3AWS~GA|BN149NxBT-#l^rxJmDjm$yiTl+ly) zjMO*M#8b5;3KXEXYRv?s?d9(>$e+3rOY@71vvvY^oEkN@7(J3mm?{iC5lBm8D+?NV zb8K7TH6GJurpdoKi2WB=HcyFyQFn>LSUhouD_-uVSTjKNm zj?dOZx^OdZ|GM|?euM%PCzGWSsPMWzZ;x5D!K6Mm4^BilgNoeQim_RzZu<{1w(2JB z=rf?<8neTJzFufCOb5Ezr00%$r%nXr1V-i0TfTdXtEepH*M0Pe#DFrx7!18XJsw@P zAscjqU)v%Q)CD|NUs?I0(IItdN3%ynM8Iv9bW?6AMYL98RE(>C>3Hj{bxv;>YIj*n z=tzmVl&5Epi~x@(VA!oUP^PqTZskHNPeRLn3(!sK0SjA7mK zmY)$iT(K7vA9TOSLkYNo*_XR^KDfh%cD7Jt5KzDIs zJ3K6Nhf5Dg$567XAAATaO^3I;mJJZv@fp!Y57qt?iBY8kwV_?t z#mxBzTDC>U(%&zjKtb_8-v}hrivC*4BE$Jgp4IJBDp5I+Wt?Gt=w3MyKG?Wv^t zAl7R*VVkG;8*rDalBqIAg7_Ea=8_Zi+;O}XRXBK;oIlm)o&XeJ*WPneG2-NJjdZak zocBlP0|9*}3@)0q={Zt=AS4Ob1iLbu>=pQrz6%8U&N*sB(nuQ)9IV=fEzt`?oAZHi zxS9bGrv>pDoaKne@!%==f0#<7fL|wda+zz{-mlu7mK;E`Vp;@TCBA5v@&hndN_Onb zLS(Q9FHVs`d;?pu8IGc{ks)wVUawCwEu!4?_qm3f(SFVbDgv}BF>Sb33BV_UeSkh_(0stq z5W;MSE7!o!`a2mESA@YmXtCHTr`4CZIdO0}e`ng_Vi|!HzB2*b@V|$RL!JLU?5_VW zarOwN&~d5SL1Tjs(c3>QdTxkHT#j&6)ikXu^%4=`nL9$AVkD<+UbYw7J;T5EMVVTt zPV7r+v;!*LVOCDav$0Eaeu6%>0G1z?YDpR#wfwE3F@eS5%4JcfE5QvSu8xBYB;}WW z3Tz2)j@z2HOt>ueyYBZ)7fA^Zm$iuEa7CB4I7D@P>iU1Bo16p^`u^sBAbJ1$VO&M^ zzo+s4@@c$X$n}6gXvE}iOWZqZNJ9UYT@Pe>k7)kqlI!p}Z3YI2w)hy)5hAI?5stpu z)yNoAJ4pzUNwvIz`|c@~k>syJ1>AfR;*hqNH*|5qR2h`7FNt=z;6qM;qoxgQIE(AV zsFK0MF)B(d8dKr;_z;s9eC)VR%W;-AVyGwl#jT}>P|vB2E?*oc`AIBdtLTfHo5Eh0 zW!)=A1_(bbyUCGTOT#aFWcFoW$}%>4nik**i4&|)CBnV^E@@vo(NFe$+L>?%B0@-i zw{<#>0~%)rl}2?%^BHb9b%s3>@uDPwoEqw)#(f0mW%zdEM7t2?@$Hb0NmEd$X9S<> z&cS)&6Xt6g$&!8*TH0Q>Z!OeB)SOiihdk51e;n7xi8}{%^`pw_dp^#)r4@fcx=Ye1 zo&ls9J#7C3$@bC2O$WV^!JYhdG&_ z;Bd7MPqi%UdideJ;9*4bigQX;3#}NNP9=Jj?)M(6l4Iw=-bgxAagLWETMnLIQB}-A zF*=n00~13sJ}A2wU5?q*%lcK&xF#4SP68>$?SRD&QOu9VP)ZZ#U)} zD57f7_b%`gt$Lw2V2u|{dWZ8D@t`K;Gu~7e*?rfI#V7{*{02D(2g;E?<}l%&G{qr7 zJUsC^U8`!G<2~lXxTI;57`o#C~a!a#4 zo?fc4CWd{_dL4Gd5YpCBuXpQ!C*eLPg+qGm4P9E%m62;dhP`34jnRWbqV9uvr}eWQ zkzQkGfLv30#Bgu{pgCE#ca`yJHRS@Zv+l*fS)82_KB%TZ4~Ep~Z=v^3ctBr)aXElR zS2bl0m&U;922buhzco-J=Jtd;Uj@*pGDhz(kql2Gv{2!jo?9#vFeH6!(p(y;CA=w~ z^FYerJ+xaQP9EHk$-Yzf@S*qA5ftdBo6;KWWF(OMFQZ|HX(6LVXyNi%>OLgVIx7QY zMytgJhqP?JYG7;KdD5gEEgpsdZKwpCi-LfZ!ww1Y4g5{Z(ZEX%o#uNV+0N$K?sP@# ziD8DADMDR3UziF@c#2DdlP5QOc@t+fw?|U%H56)}A0)~BC`_CuyY#XD`Cf+BVw#-$ zHxRd|03M5dcIME#YXje1woTJ^TY*7U6Rbe<8~-8oH^}=Uhe9#g?5GXPxNk(KB*h_| zgwoT8VY@0FxH!F&_&rHVC{Q5?DuW=C2 zI#C-5_5hhzE#~NAU58s~az(!b8X+zL0eN-h=0U6+_ZUiCxV+>s`*N?yvfM)DN6)AG z;9;lk0kWzpGav8-RgNb+it#uf9UgQ8Sg@`lN0xuFa=yHg3TX`^SFP14X}-XmGIQg_ z7)!qUWeG}zSbD(yl6V9e%(vFZ&rqy!Y@76m>^F^9mf4Iys(`CZ zy#(8N5(HRB`bXitzZZ!U5P&l=QV+fDDb5YH@MAt*<6n52#*}SDj2SZhFyy{Onc1gP zAlVHNh_8R7-48*pp*--fgC1a@84%=RY$I3x$al) zPQ7^{{j)@7EHME%0_vHw+H1TznELH%LCU?LKOBbO1dF0i%CrSsWrPntL(0(W=DV{s zNd$R1bbInQufe~PW_x3v<@*DhD(()bxq<9JNtt>bB*;H&$7933=)j2>vpBd{W+EqBdCz^>$6Fbd(HK# zc575+i#0IL8)ATH;%nehKjx4|TA?0{@07O(yhKv-{vO!Z^ZacT=pU>XUE_dXKtEO9 z@*6JNO+f;=S0-kXW#u7cq_$1snZqZE_j{uw2rQ4hLJmzS@!j7WKX!KOcUybD4$zZR ziyyRIO|{V7CCHW-9=o*KXHtI@4}6qJIHYh{EFVLG=IQQX=QCLQKB|Ol#@?~*3S2v} ztaAJEGfp^pdat|4Aj3?s*V`3ts0Mkspo@<7bJTSWcIz2?B}Mkr3IU=vGi%|1qHto1 zv!BA>ATykP8`eyA)GYy~V|8F9w5r=UELpkeuqT~{44Xu~G|-#R`}hAUj!JG)gy z45JW=TrA&7YcNEUi2ccv?GyFkwZ-bq1?c8H9<(%TUoso4VK3eUZUyie_Wb&w5m$f= zhm@MJgLS8T@}z_CTJ-bZX<`IY%(H&-lr}PnLAVLrykD!ln3s766)t$4Sw;F$(&k289(O2MI zweaEP1|WM}DIojoW>WBbcCoFF4K9vbNn`UDQy;!MzcB}eLhuk-hGb|yxHO?~NI(Tg zg(+a^kI#XUf<4dcAo%G4hrEjsj*W>I3~YGNx3NUnn-K5-^0TLQkmLYXn$JK z2-m3I%%+Zd{oA{`cN^G?AepWle|4>_vXs}O-%~eD=CrFK27qz|Dt`P<(YIizO0o^G zwT5@Ub7J}U3DD?qHtci@FFKSx`I4xsf-ZiS70UZb7z&IhA>^C>bs1h&BiB*^Lr1Vj zUrrj6p2705oD;sMX;zPCcK`8W#IFP8f1Sze4AZmzH2d$a(aYUDk2k98cc{UfXzVt} zix-;(?gG;!`_1zAIM9?l@Yt5YbkzmZ`*!WYB0>Q>ZY)RoQ7kZj-kj&*kEZqAnmdLjP9uAHV4R^uQK91U zzv(ma*|_fse$1Ut3kA${0*&OY5Yq>nGa~AGR#h9{^b z>9{B$l+5DCeMCPJ5z+!D6+{w(GpE!8erl&nO=hKYK?e~XAGLJsI9#s{~W zX1kYSe_bqu3D<7tByvf=M5KT>pq^^_=IkFED9~X%{Wr0^7ze%}%JcDNL2kOB^N*{h zj>gkdc4w#8So9KWE?mWO6wmC7iwnkBpD0I;Z~FV=+{-Oi4wUG22gD!Dsu2R*0MAQs z@DqVC>Y>B8hzzZ|%P9K`?p>b(IbVoluxBrh(NZxF$oH<|%_vm;&5>n*H5RlGRK1vA z6?nchQrA2j{U3#wj{g4iSB{mh`a>_+Q7TGHL#Sm_(ek}#Di4MKl35J!;l4{xu`g^x z9uM|`!a;JJ!c@Wp#7%^ddJocoEQsEAgQ@l7-{e#UBon_n&`}w$tYg3OM(5U!)+L{< z&)udAWZ7d6Ks1IA`C3}YVmCxtxZI#>*9ns}9qWoITiTs}<)QiM!u!A8$vr?YRXEeN zQE9k(Zzd)qz7cav#CFuLbvNK}hgSpLZffv`pjVXnru+tlC%9EOq6Z!m!>+o1zV>G^ z0$?$dy76(&aB_1Fch_saI}9VIF5^=$Vh@^aYL|K~r*Jv21TX22n3_ zn-g`(9s77gAxVxfPpyKzl&Me%4{!Xbd#V;w^w9_bjlex-p`!98fBl=B2@QEiZn}Jg{`_n8LTk<7+~jto!+6ezkbXIQW8k{DgWe1 z#%$w-&#Zozt8Q2>RS0Ixrc8ZlzVi*JVqH=QTVGAp*3Zw5!=Mw&A*@8k|6kE6UmCa+ zVaj@@+73f?4T{qtO99f`a$`;+!4BZc2y#eY&2T_fk>=kXm{WiNoU~e|8O4Z7n&XdG z7(Wrtsi%^Wb7(pH0S~WB5aQHCfi5R2!fK%fzhYY2fAPhW0wCet3q{+Vni+aSb1!#X z@$W}oWIksGxHFCd5BR!2_R>wI|0pfseEx}-WjLPIOH;D{EF16p-pPETT6oPvdC6+7W?WDN|q4)z$L0ZcaqPl1h|w0 zkP4Eo3DO{>WGl^~EGt~*Tg>`E@Rw(Kfp~QRZ-Opb+&{KCEVffbtlmkQv}P&!V<7F| z{NoECx-zmka2>b4*?=Bxi=PK*h^q1^c| z(3fEYo8>A-_FwvKzb?A&lxo-db^2u#C2FV?nM`);O|IuKd+*5ZRT?)6l9dUnD_o2c zT`kUP9`+XVi&kzJ-0!bnt0&p zdH{yo|0WP19t&m8s+eeIvm1&jG%^fUwt3*9xZ%w5>OG0JOU*Y<=h~dBGCd}8&AGxA zZLpi)b1{COY_%GbDxERrj%bBaV$6LJ&A2-U>$L&Ovi_>I0aSj(pD$C)s`d5~J2C@G zNzT<=r7?0E8B|Rjg$T+LX0=QDaAxskf}nb-*KL2YG9jJmH}4){X!2TMkLrS9mD7cD zk7YDoIR8_T_z}PuKhYG+0O>#E0yL{}Yrd4zXS?S-;r-AsTL%|H{M`j}|Iu)DLq5!% z(qV4@iQ?(PWtGqDsGn!=X6TvByP3BJ&x2mdNtNlPmZih?ro#aED=GiRFUK3-r92+6 ztrjI|G-i@l!XNd<(DVrf+fpKT_j? zaZ`Ij_|s9^6MZ$Y4XGTKd&z+kH_hI3zQi%J|n(;&OzTQh? z%abQs-o3^@$jL$L zy!!D{WccFvj2C_IBQjfLtx6*0&RP51`4(ZjO6Ot9EX-zg;HvuJ!pFhF{i{x}FmRrO z+a;82f8(_lN>I0JQ5GV&%bCq_-pSr&4WWY^f;I#uz9vt0%p=)EsoVXiZsKQz?RltUJlY&0@)o`g+h z6mflRnEB--k_$7Po8y@nxE-ne{2q|YZBAG(M#}wB4mYJ>h#4_#(`c6*<0yE^V=ZPN z6SE{mH;wbe#XL)Rp#IRaw^Q)lWza@&LoUyp{LKS!&VC|i2AnrjW_ zqe>gOd5-qOqWto&Eo6bK%brA-Rd_6V%hnKCyt8*+cuVb7U8PuTnYBdNLZf7lLe;0% zye8zJ%~Lb$=PqX9_g#Lq@N>2Ab&tv>VNxox^*#|IQCy31^c9XU3TAX38B=BMh9ABA zx|Yel#9=N+1F(x`!GQ4}Tl|mdGoT!(q%Rqe9^9@_tXqXmN=bdlI7mwUzL73C&L{g< zAqRK;4v_AE({&jkqhPhML2cBZ7!3o{cgE(iqw+Z$D7+0!R4oCI&3 zmY2JI7yM?x{tzAq|F?BDSo1_tPg0U6Wg!R=F}Z`E+SKQ~ z-FMn|f=YVsBvqM3SAp#ZTnOr>^<)Piojzuaygn%-QQhbQWDUW*p^I znswhEQ#m#EYMr-yz5Uu554Q``+^__Wi^rKquS!De?$-7DJf93>joE&1qbh3GJJ(00 z>JFn;imu+x=euW#ix}TOs~b2b2`#l!rNF;N11%g(8)l34(j9!#_v`)_?Olq3^!Di_ zLZao)R_5s|J(o+{qoM}Zq?)~R`_x}D2}9L8^BO0KW6lWjlAL=jT}B!xz1;WJD|&aU zmY7J6iF!q6BA8TYcU52-CDDJH3;!^3G6OIpqeYlZN6YxM%B$ z7+)LS%U4KFUgO{FF_?Gp{NQ3_p5+@?B^g@Ryp74deW$|j6Ka1}r^4esSGai0 zJmY2h_7?3qnUTjHM4vqA#iHrg?AlV{?+_Fx_urP#E-o%DbX74M$i>}DmHbTHgsKTn z_EH8rrnt6$lT7{fxi^^qv*?!g4I%5A{+l_q2;S)Ed~0bot-&*OlW$A(g|y<|zQUhb z#v*kkLl8%%rvJ{9%|D23m$DP)S7kr`r>ah|7Tls zcx|_ugU3(>N~zNcghW8 znU9$_&hnJShd)~P_h3X(P+-mdBip9$voC()ad+G6FTeFA{G%Vti_V=2DnH;QSzcN` zumG}4D#*z!E-^5;!pOwT!pg?Z6`@j=T2!2wpBJf;Sd^TR3FL*Sl;jsgsN^SQr6!jY z1FxcLTM#e6?-%TyTA7;S2vu~EgEOQkKfk1baXB}SxP+vXT&PN3X->{%UOs*SVX<(( zV7=_r%Hk*>4K*lCB{?UtxOkDEPy}hn*e=N{C@MukOaf_)fG|^wWBh_$GLuVy9!V^! zT%@QR;TP-=_5g>Vl!~U2xu;KHaCBluL3LAWduLDIgh|skY~8bW-+`kSZaxE**g(Jt NDxX0>1wz5ePXO?S^-BN% literal 0 HcmV?d00001 diff --git a/utils/assets.py b/utils/assets.py index 460a48735..3ede5ea9c 100644 --- a/utils/assets.py +++ b/utils/assets.py @@ -32,7 +32,7 @@ import urllib.request import xml.etree.ElementTree as ET import zipfile -from datetime import UTC, datetime +from datetime import timezone as UTC, datetime from pathlib import Path from utils.common import ROOT_DIR, apiRequest, getEnvValue, log, writeFile diff --git a/utils/build_all.py b/utils/build_all.py new file mode 100644 index 000000000..b18246a7f --- /dev/null +++ b/utils/build_all.py @@ -0,0 +1,303 @@ +""" +UmbraEdit - Multi-Platform Build Script +======================================= + +Builds install packages for all supported platforms: + + Linux (amd64, arm64) - .deb, .rpm, AppImage + macOS (arm64, amd64) - .dmg, .app + Windows (amd64, arm64) - .msi, .exe + +Usage: + python utils/build_all.py --platform all + python utils/build_all.py --platform linux --arch amd64 + python utils/build_all.py --platform macos --arch arm64 + python utils/build_all.py --platform windows --arch amd64 + +Requirements: + - Python 3.11+ + - pyqt6, pyenchant + - Platform-specific tools (see below) + +Linux Requirements: + - dpkg-buildpackage, rpmbuild, appimagetool, python-appimage + +macOS Requirements: + - Xcode command line tools, create-dmg (brew install create-dmg) + +Windows Requirements: + - NSIS (Nullsoft Scriptable Install System) or Inno Setup + - MinGW-w64 cross-compiler (for cross-compiling from Linux) + +iOS / iPadOS: + NOT SUPPORTED. PyQt6 does not support iOS. UmbraEdit requires a + full desktop Qt environment. iOS would require a complete rewrite + using SwiftUI or a different framework entirely. +""" + +from __future__ import annotations + +import argparse +import platform +import shutil +import subprocess +import sys +from pathlib import Path + +from umbraedit import __version__ + +ROOT = Path(__file__).resolve().parent.parent + + +def run(cmd: list[str], cwd: Path | None = None, check: bool = True) -> subprocess.CompletedProcess: + """Run a command and return the result.""" + print(f"[run] {' '.join(cmd)}") + if cwd: + print(f" in {cwd}") + return subprocess.run(cmd, cwd=cwd, check=check) + + +def check_tool(tool: str) -> bool: + """Check if a tool is available on PATH.""" + return shutil.which(tool) is not None + + +def check_linux_tools() -> list[str]: + """Check for Linux build tools. Returns list of missing tools.""" + missing: list[str] = [] + for tool in ["dpkg-buildpackage", "rpmbuild", "appimagetool", "python3"]: + if not check_tool(tool): + missing.append(tool) + return missing + + +def check_macos_tools() -> list[str]: + """Check for macOS build tools. Returns list of missing tools.""" + missing: list[str] = [] + for tool in ["iconutil", "hdiutil", "codesign", "productbuild"]: + if not check_tool(tool): + missing.append(tool) + return missing + + +def check_windows_tools() -> list[str]: + """Check for Windows build tools. Returns list of missing tools.""" + missing: list[str] = [] + for tool in ["makensis", "makepkg", "osslsigncode"]: + if not check_tool(tool): + missing.append(tool) + return missing + + +def build_linux_amd64() -> None: + """Build .deb and AppImage for Linux AMD64.""" + print("\n" + "=" * 70) + print("Building Linux AMD64 packages") + print("=" * 70) + + missing = check_linux_tools() + if missing: + print(f"Missing tools: {', '.join(missing)}") + print("Install build dependencies first.") + return + + # Build .deb via dpkg-buildpackage + print("\n[1/2] Building .deb package...") + run(["python3", "utils/build_debian.py", "--distro", "noble", "--build", "1"]) + + # Build AppImage + print("\n[2/2] Building AppImage...") + run([ + "python3", "utils/build_appimage.py", + "--linux", "ubuntu", "--arch", "amd64", "--python", "3.12", + ]) + + print("\nLinux AMD64 build complete.") + print(f" .deb: dist_deb/umbraedit_*.deb") + print(f" AppImage: dist_appimage/umbraedit-*-amd64.AppImage") + + +def build_linux_arm64() -> None: + """Build .deb and AppImage for Linux ARM64.""" + print("\n" + "=" * 70) + print("Building Linux ARM64 packages") + print("=" * 70) + + missing = check_linux_tools() + if missing: + print(f"Missing tools: {', '.join(missing)}") + print("Install build dependencies first.") + return + + # Build .deb via dpkg-buildpackage (cross-arch or native on ARM64 host) + print("\n[1/2] Building .deb package (arm64)...") + run(["python3", "utils/build_debian.py", "--distro", "noble", "--build", "1"]) + + # Build AppImage + print("\n[2/2] Building AppImage (arm64)...") + run([ + "python3", "utils/build_appimage.py", + "--linux", "ubuntu", "--arch", "arm64", "--python", "3.12", + ]) + + print("\nLinux ARM64 build complete.") + print(f" .deb: dist_deb/umbraedit_*_arm64.deb") + print(f" AppImage: dist_appimage/umbraedit-*-arm64.AppImage") + + +def build_macos_arm64() -> None: + """Build .dmg and .app for macOS ARM64 (Apple Silicon).""" + print("\n" + "=" * 70) + print("Building macOS ARM64 packages") + print("=" * 70) + + missing = check_macos_tools() + if missing: + print(f"Missing tools: {', '.join(missing)}") + print("Install build dependencies first.") + return + + print("\n[1/1] Building macOS .dmg (arm64)...") + run(["bash", "setup/macos/build.sh", "3.12", "arm64", "arm64"]) + + print("\nmacOS ARM64 build complete.") + print(f" .dmg: dist_macos/umbraedit-2026.11-arm64.dmg") + + +def build_macos_amd64() -> None: + """Build .dmg and .app for macOS AMD64 (Intel).""" + print("\n" + "=" * 70) + print("Building macOS AMD64 packages") + print("=" * 70) + + missing = check_macos_tools() + if missing: + print(f"Missing tools: {', '.join(missing)}") + print("Install build dependencies first.") + return + + print("\n[1/1] Building macOS .dmg (amd64)...") + run(["bash", "setup/macos/build.sh", "3.12", "amd64", "amd64"]) + + print("\nmacOS AMD64 build complete.") + print(f" .dmg: dist_macos/umbraedit-2026.11-amd64.dmg") + + +def build_windows_amd64() -> None: + """Build .msi and .exe for Windows AMD64.""" + print("\n" + "=" * 70) + print("Building Windows AMD64 packages") + print("=" * 70) + + missing = check_windows_tools() + if missing: + print(f"Missing tools: {', '.join(missing)}") + print("Install build dependencies first.") + print("Windows builds typically require a Windows host or cross-compilation.") + return + + print("\n[1/1] Building Windows .exe/.msi (amd64)...") + run(["python", "utils/build_windows.py", "--arch", "amd64"]) + + print("\nWindows AMD64 build complete.") + print(f" .exe: dist_win/umbraedit-*.exe") + print(f" .msi: dist_win/umbraedit-*.msi") + + +def build_windows_arm64() -> None: + """Build .msi and .exe for Windows ARM64.""" + print("\n" + "=" * 70) + print("Building Windows ARM64 packages") + print("=" * 70) + + missing = check_windows_tools() + if missing: + print(f"Missing tools: {', '.join(missing)}") + print("Install build dependencies first.") + return + + print("\n[1/1] Building Windows .exe/.msi (arm64)...") + run(["python", "utils/build_windows.py", "--arch", "arm64"]) + + print("\nWindows ARM64 build complete.") + print(f" .exe: dist_win/umbraedit-*-arm64.exe") + print(f" .msi: dist_win/umbraedit-*-arm64.msi") + + +def build_all_platforms() -> None: + """Build packages for all supported platforms.""" + print("=" * 70) + print("UmbraEdit Multi-Platform Build") + print("=" * 70) + print(f"Version: {__version__}") + print(f"Host: {platform.system()} {platform.machine()}") + print() + + # Build all Linux targets + build_linux_amd64() + build_linux_arm64() + + # Build macOS targets (only on macOS host) + if platform.system() == "Darwin": + build_macos_arm64() + build_macos_amd64() + else: + print("\n[skip] macOS builds require macOS host") + print(" Build macOS packages on a Mac with Xcode command line tools") + + # Build Windows targets (only on Windows host or with cross-tools) + if platform.system() == "Windows": + build_windows_amd64() + build_windows_arm64() + else: + print("\n[skip] Windows builds require Windows host or cross-compilation toolchain") + print(" Build Windows packages on Windows with NSIS/Inno Setup") + + print("\n" + "=" * 70) + print("Multi-platform build complete.") + print("=" * 70) + + +def main() -> None: + """Entry point.""" + parser = argparse.ArgumentParser( + description="Build UmbraEdit install packages for all platforms." + ) + parser.add_argument( + "--platform", + choices=["all", "linux", "macos", "windows"], + default="all", + help="Platform to build (default: all)", + ) + parser.add_argument( + "--arch", + choices=["amd64", "arm64"], + help="Target architecture (default: host architecture)", + ) + + args = parser.parse_args() + + if args.platform == "all": + build_all_platforms() + elif args.platform == "linux": + arch = args.arch or ("arm64" if platform.machine() == "aarch64" else "amd64") + if arch == "amd64": + build_linux_amd64() + else: + build_linux_arm64() + elif args.platform == "macos": + arch = args.arch or ("arm64" if platform.machine() == "arm64" else "amd64") + if arch == "amd64": + build_macos_amd64() + else: + build_macos_arm64() + elif args.platform == "windows": + arch = args.arch or "amd64" + if arch == "amd64": + build_windows_amd64() + else: + build_windows_arm64() + + +if __name__ == "__main__": + main() diff --git a/utils/common.py b/utils/common.py index 25191521e..aca29ff5f 100644 --- a/utils/common.py +++ b/utils/common.py @@ -28,7 +28,10 @@ import os import shutil import subprocess import sys -import tomllib +try: + import tomllib +except ImportError: + import tomli as tomllib import urllib.error import urllib.request diff --git a/utils/docs.py b/utils/docs.py index db1ec7182..804a35115 100644 --- a/utils/docs.py +++ b/utils/docs.py @@ -26,7 +26,10 @@ import argparse import os import shutil import subprocess -import tomllib +try: + import tomllib +except ImportError: + import tomli as tomllib from utils.common import ROOT_DIR, extractVersion, formatVersion, log, splitVersion, systemCall