From 5d271ec87e270e389ae0f947d94daa558a777c7b Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Wed, 6 May 2026 17:53:23 +0000 Subject: [PATCH] Initial import --- .gitignore | 19 + LICENSE | 21 + README.md | 21 + build_linux.sh | 65 ++ docs/benchmark_report.html | 1031 +++++++++++++++++++++++++++++++ docs/images/compact.png | Bin 0 -> 10629 bytes docs/images/graph.png | Bin 0 -> 35118 bytes docs/images/hero-screenshot.png | Bin 0 -> 37926 bytes docs/images/icon.ico | Bin 0 -> 11140 bytes docs/images/statistics.png | Bin 0 -> 16121 bytes docs/index.html | 638 +++++++++++++++++++ src/algorithm.py | 506 +++++++++++++++ src/daniel.py | 841 +++++++++++++++++++++++++ src/graph_fast.py | 250 ++++++++ src/msd.exe | Bin 0 -> 396288 bytes src/msd_converter.py | 108 ++++ src/osu_file_parser.py | 66 ++ 17 files changed, 3566 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 README.md create mode 100644 build_linux.sh create mode 100644 docs/benchmark_report.html create mode 100644 docs/images/compact.png create mode 100644 docs/images/graph.png create mode 100644 docs/images/hero-screenshot.png create mode 100644 docs/images/icon.ico create mode 100644 docs/images/statistics.png create mode 100644 docs/index.html create mode 100644 src/algorithm.py create mode 100644 src/daniel.py create mode 100644 src/graph_fast.py create mode 100644 src/msd.exe create mode 100644 src/msd_converter.py create mode 100644 src/osu_file_parser.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1950276 --- /dev/null +++ b/.gitignore @@ -0,0 +1,19 @@ +# Python +__pycache__/ +*.pyc +*.pyo +*.egg-info/ +dist/ +build/ + +# PyInstaller +*.spec + +# IDE stuff +.vscode/ +.idea/ + +# OS junk +.DS_Store +Thumbs.db +/.venv-linux-build diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..2d02eba --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 TheBagelOfMan + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..f3cef9b --- /dev/null +++ b/README.md @@ -0,0 +1,21 @@ +# Daniel + +A real-time rice difficulty calculator for 4k osu!mania must which must be run alongside [tosu](https://tosu.app). + +**[Website](https://thebagelofman.github.io/Daniel/)** · **[Download](https://github.com/TheBagelOfMan/Daniel/releases/latest)** + +## Linux build + +Use `build_linux.sh` to create a Linux binary: + +```bash +./build_linux.sh +``` + +This script installs dependencies using python venv and outputs `dist/Daniel-linux`. If `src/msd` is missing, set `MSD_BIN_PATH` at runtime to a Linux-compatible `msd` executable. + +On Linux/macOS, it will use Wine if only `src/msd.exe` is available. + +## License + +[MIT](LICENSE) diff --git a/build_linux.sh b/build_linux.sh new file mode 100644 index 0000000..1a28ec8 --- /dev/null +++ b/build_linux.sh @@ -0,0 +1,65 @@ +#!/usr/bin/env bash +set -euo pipefail + +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +cd "$ROOT_DIR" + +if [[ "$(uname -s)" != "Linux" ]]; then + echo "This script is for Linux only." + exit 1 +fi + +if ! command -v python3 >/dev/null 2>&1; then + echo "python3 is required" + exit 1 +fi + +VENV_DIR=".venv-linux-build" +PYTHON_BIN="$VENV_DIR/bin/python" +PYINSTALLER_BIN="$VENV_DIR/bin/pyinstaller" + +if [[ ! -x "$PYTHON_BIN" ]]; then + rm -rf "$VENV_DIR" + python3 -m venv "$VENV_DIR" +fi + +if [[ ! -x "$PYTHON_BIN" ]]; then + echo "Failed to create virtualenv python at $PYTHON_BIN" + echo "Install the venv package for your distro (example: sudo apt install python3-venv) and rerun." + exit 1 +fi + +"$PYTHON_BIN" -m ensurepip --upgrade >/dev/null 2>&1 || true +"$PYTHON_BIN" -m pip install --upgrade pip +"$PYTHON_BIN" -m pip install pyinstaller numpy pillow websocket-client + +ADD_DATA_ARGS=() + +if [[ -f src/icon.png ]]; then + ADD_DATA_ARGS+=(--add-data "src/icon.png:.") +fi +if [[ -f src/icon.ico ]]; then + ADD_DATA_ARGS+=(--add-data "src/icon.ico:.") +fi +if [[ -f src/msd ]]; then + chmod +x src/msd + ADD_DATA_ARGS+=(--add-data "src/msd:.") +else + echo "Warning: src/msd not found. Build will succeed, but MSD will require MSD_BIN_PATH at runtime." +fi +if [[ -f src/msd.exe ]]; then + ADD_DATA_ARGS+=(--add-data "src/msd.exe:.") +fi + +"$PYINSTALLER_BIN" \ + --noconfirm \ + --clean \ + --onefile \ + --name Daniel-linux \ + --collect-all numpy \ + --collect-all PIL \ + --hidden-import websocket \ + "${ADD_DATA_ARGS[@]}" \ + src/daniel.py + +echo "Build complete: dist/Daniel-linux" diff --git a/docs/benchmark_report.html b/docs/benchmark_report.html new file mode 100644 index 0000000..6f14e63 --- /dev/null +++ b/docs/benchmark_report.html @@ -0,0 +1,1031 @@ + + + + + + +Daniel Benchmark Report + + + + +
+ + + + + +
+

Benchmark Report

+

145 maps · 0 errors · 2026-03-29 09:47

+ +
+
+ 52.4% +
Exact ±0.165
+
Predicted the correct dan level and tier
+
+
+ 37.2% +
Adjacent ±0.495
+
Off by one tier (e.g. Mid predicted as High)
+
+
+ 9.0% +
Within ±1.0
+
Within one full dan level of the expected tier
+
+
+ 1.4% +
Miss >1.0
+
More than one full dan level away from expected tier
+
+
+ 145 +
Total Maps
+
Number of beatmaps processed in this benchmark run
+
+
+ +
+
+ 0.215 +
MAE
+
Mean Absolute Error - average size of all errors ignoring direction
+
+
+ 0.150 +
Median AE
+
Median absolute error
+
+
+ 0.304 +
Std Dev
+
Standard deviation of errors
+
+
+ -0.003 +
Bias
+
Average signed error
+
+
+ +0.900 +
Max Overrate
+
Largest single overestimation (predicted too hard)
+
+
+ -1.380 +
Max Underrate
+
Largest single underestimation (predicted too easy)
+
+
+
+ + +
+

Charts — Overall

+
+ +
+
Accuracy breakdown
+
+
+ +
+
Per-dan accuracy % (stacked)
+
+
+ +
+
Δ numeric vs difficulty
+
+
+ +
+
Expected vs Predicted
+
+
+ +
+
Cumulative accuracy curve
+
+
+ +
+
Per-dan bias & MAE
+
+
+ +
+
+ + +
+

Charts — By Skillset

+
+ +
+
Per-skillset accuracy % (stacked)
+
+
+ +
+
Per-skillset bias & MAE
+
+
+ +
+
Scatter — Jack
+
+
+ +
+
Scatter — Tech
+
+
+ +
+
Scatter — Speed
+
+
+ +
+
Scatter — Stamina
+
+
+ +
+
+ + +
+

Per-Dan Breakdown

+
+ + + + + + + + + + + + + + +
DanNExact%Adjacent%Within%Miss%MAEBias
Alpha1070.0%20.0%10.0%0.0%0.185+0.091
Beta1241.7%50.0%8.3%0.0%0.264-0.104
Gamma2544.0%36.0%20.0%0.0%0.250+0.013
Delta3568.6%31.4%0.0%0.0%0.133-0.029
Epsilon3351.5%39.4%9.1%0.0%0.201+0.034
Zeta2231.8%45.5%13.6%9.1%0.333-0.039
Eta862.5%37.5%0.0%0.0%0.164+0.046
+
+
+ + +
+

Per-Skillset Breakdown

+
+ + + + + + + + + + + +
SkillsetNExact%Adjacent%Within%Miss%MAEBias
Jack6163.9%23.0%9.8%3.3%0.207-0.021
Tech2748.1%48.1%3.7%0.0%0.187+0.007
Speed3135.5%45.2%19.4%0.0%0.282+0.098
Stamina2650.0%50.0%0.0%0.0%0.182-0.092
+
+
+ + +
+

Map Results

+
+ + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Song ▾ExpectedGotSkillsetSRNumericΔFlag
Dark SambalandAlpha MidAlpha Midjack6.59211.58+0.08
Air (0.915x)Alpha MidBeta Midspeed6.93712.40+0.90
MakibaAlpha MidAlpha Midspeed6.56811.52+0.02
Babel (1.3x)Alpha MidAlpha Midstamina6.51411.38-0.12
Lazorbeamz (1.0x)Alpha MidAlpha Midstamina6.54211.45-0.05
Odoru (1.1x)Alpha MidAlpha Midtech6.55111.47-0.03
Yasashisa No RiyuuAlpha Mid/HighBeta Lowspeed6.78212.05+0.38~
Yell (0.975x)Alpha HighAlpha Highspeed6.68911.82-0.01
Angel'S SaladAlpha HighAlpha Midtech6.61511.64-0.19~
Bismuth NebulaAlpha HighAlpha Hightech6.66311.76-0.07
Paradigm ShiftBeta MidBeta Midjack6.93712.40-0.10
5Oul On D!SplayBeta MidBeta Lowspeed6.86112.23-0.27~
Amber StarlightBeta MidAlpha Highspeed6.72211.90-0.60
Hideho (0.875x)Beta MidBeta Midspeed6.94612.41-0.09
Uso No Hibana (0.9x)Beta MidBeta Lowspeed6.89712.31-0.19~
Cycle Hit (1.4x)Beta MidBeta Highstamina7.18612.95+0.45~
Time To Say Goodbye (1.0x)Beta MidBeta Midstamina7.04212.63+0.13
Blue PlanetBeta MidBeta Hightech7.12612.82+0.32~
Psychology (1.15x)Beta MidBeta Lowtech6.78612.06-0.44~
Pastel Subliminal (0.9x)Beta Mid/HighBeta Lowspeed6.87212.25-0.42~
Crystal World FractureBeta HighBeta Highspeed7.15912.89+0.06
Observation (1.2x)Beta HighBeta Highstamina7.08912.73-0.10
Hiasobi (1.1x)Gamma LowGamma Lowjack7.27913.14-0.03
Reflect (1.05x)Gamma LowGamma Lowjack7.21213.01-0.16
HustlerGamma LowGamma Lowjack7.27513.14-0.03
Anomaly (1.2x)Gamma LowBeta Highstamina7.18112.94-0.23~
TornadoGamma LowBeta Midtech6.99912.53-0.64
SunnyshinyringGamma Low/MidGamma Highspeed7.61513.83+0.50
Break (1.1x)Gamma MidGamma Highjack7.53913.67+0.17~
Captain Jack (1.2x)Gamma MidBeta Highjack7.11512.79-0.71
Do It To It (1.2x)Gamma MidGamma Midjack7.39413.38-0.12
Everything BlackGamma MidGamma Highjack7.60013.80+0.30~
Credens (0.9x)Gamma MidDelta Lowspeed7.76114.08+0.58
P8107 (1.4x)Gamma MidGamma Midspeed7.53513.67+0.17~
Reflec StreamzGamma MidGamma Highspeed7.56213.72+0.22~
Cyber Inductance (1.4x)Gamma MidGamma Midstamina7.50413.60+0.10
Phosphor (1.05x)Gamma MidGamma Lowstamina7.23913.06-0.44~
Shinbatsu O Tadori (1.05x)Gamma MidGamma Highstamina7.64913.90+0.40~
Icicle Stinger (1.1x)Gamma MidGamma Hightech7.55313.70+0.20~
Matusa Bomber (1.05x)Gamma MidGamma Midtech7.49413.58+0.08
ChildhoodfriendGamma Mid/HighDelta Lowspeed7.87214.21+0.54
Pureruby (1.08x)Gamma Mid/HighGamma Highspeed7.54813.69+0.02
Amen Katagiri Generation (1.05x)Gamma HighGamma Midstamina7.52813.65-0.18~
Livestream (1.2x)Gamma HighGamma Highstamina7.55013.70-0.13
Nuclear Star (1.3x)Gamma HighGamma Highstamina7.53813.67-0.16
NhelvGamma HighGamma Hightech7.60713.81-0.02
Playing With Ruby (1.2x)Gamma HighGamma Hightech7.56013.72-0.11
Dat PhonkDelta LowDelta Lowjack7.96214.32+0.15
Nijiiro Kekkai Signicial,Delta LowDelta Lowjack7.93014.28+0.11
Australia (1.3x)Delta LowDelta Lowspeed7.77514.09-0.08
White Hair Little Swords GirlDelta LowDelta Lowspeed7.95914.32+0.15
Fractal VertexDelta LowDelta Midtech7.97414.34+0.17~
KimiyoDelta LowDelta Lowtech7.89214.24+0.07
Shadows Of Cats (1.2x)Delta LowDelta Lowtech7.79514.12-0.05
Still Into You (1.2x)Delta LowDelta Lowtech7.95814.32+0.15
Nijuu (1.16x)Delta Low/MidDelta Midspeed7.97514.34+0.01
Drop It Like It'S HotDelta MidDelta Midjack8.05914.44-0.06
Aquaris (1.3x)Delta MidDelta Lowjack7.81014.14-0.36~
Cant Give It Up (1.1x)Delta MidDelta Midjack8.10714.50+0.00
Give It To DemDelta MidDelta Highjack8.26414.69+0.19~
Sakazuki (1.1x)Delta MidDelta Midjack8.14614.55+0.05
BookmakerDelta MidDelta Midjack8.03114.41-0.09
Darling DanceDelta MidDelta Midjack8.13214.53+0.03
Enough (1.1x)Delta MidDelta Midjack8.19614.61+0.11
Land Of Fire (1.1x)Delta MidDelta Midjack7.99314.36-0.14
The Island Of AlbatrossDelta MidDelta Midjack8.18014.59+0.09
VolcanicDelta MidDelta Lowspeed7.75614.07-0.43~
Excuse My Rudeness (1.05x)Delta MidDelta Lowstamina7.95214.31-0.19~
Future Dominators (1.3x)Delta MidDelta Midstamina8.05714.44-0.06
Pacific Girls (1.4x)Delta MidDelta Lowstamina7.96014.32-0.18~
The Fool (1.3x)Delta MidDelta Midstamina8.02014.39-0.11
Villain Virus (1.05x)Delta MidDelta Lowstamina7.94714.30-0.20~
Walk This Way (1.1x)Delta MidDelta Lowstamina7.87914.22-0.28~
Crescent Moon Island (1.05x)Delta MidDelta Midtech8.17314.58+0.08
Gottasadae (1.25x)Delta MidDelta Midtech8.15214.55+0.05
Thinkofyou (1.15x)Delta Mid/HighDelta Highspeed8.51114.99+0.32~
Heart Chrome (1.3x)Delta HighDelta Highjack8.38414.84+0.01
Please ChiDelta HighDelta Highjack8.32614.77-0.06
ApoplexyDelta HighDelta Highspeed8.26814.70-0.13
K.Y.A.F.A (1.25x)Delta HighDelta Midstamina8.19514.61-0.22~
Bismuth SupernovaDelta HighDelta Midtech8.22414.64-0.19~
Dimension WarsDelta HighDelta Hightech8.43814.90+0.07
Ghost NovaEpsilon LowEpsilon Lowjack8.68915.22+0.05
UnmeironEpsilon LowEpsilon Lowjack8.61815.13-0.04
Paradigmshift (1.15x)Epsilon LowEpsilon Lowspeed8.72515.27+0.10
Quadraphinix (1.6x)Epsilon LowEpsilon Lowstamina8.63215.15-0.02
Bismuth SingularityEpsilon LowEpsilon Midtech8.78515.35+0.18~
Looking For Edge Of Ground (1.15x)Epsilon LowDelta Hightech8.42414.89-0.28~
The Poetic EddaEpsilon LowEpsilon Midtech8.89615.49+0.32~
Cyber Inductance (1.1x)Epsilon Low/MidEpsilon Midspeed8.90615.51+0.18~
Darling Dance (1.1x)Epsilon MidEpsilon Midjack8.95315.57+0.07
GoodtekEpsilon MidEpsilon Lowjack8.52015.00-0.50
Rose Quartz (1.3x)Epsilon MidEpsilon Lowjack8.76715.33-0.17~
Satellite (1.1x)Epsilon MidEpsilon Midjack8.87115.46-0.04
Bad CycleEpsilon MidEpsilon Midjack8.81215.39-0.11
Break (1.3x)Epsilon MidEpsilon Highjack9.05515.70+0.20~
Gengaozo Noize Of NocentEpsilon MidEpsilon Lowjack8.74115.29-0.21~
I Love It (1.3x)Epsilon MidEpsilon Midjack8.99915.63+0.13
Pam (1.3x)Epsilon MidEpsilon Highjack9.22115.92+0.42~
Psychology (1.1x)Epsilon MidEpsilon Midjack8.95915.58+0.08
Rigid Paradise (1.05x)Epsilon MidEpsilon Midjack8.97715.60+0.10
Sakazuki (1.2x)Epsilon MidEpsilon Midjack8.93715.55+0.05
StrongerEpsilon MidDelta Highjack8.43114.89-0.61
Trouble Kuroneko (1.5x)Epsilon MidEpsilon Midjack8.88115.47-0.03
Full ThrottleEpsilon MidZeta Midspeed9.47416.36+0.86
Mario PaintEpsilon MidEpsilon Highspeed9.15815.84+0.34~
The Empress (1.15x)Epsilon MidEpsilon Midstamina8.88115.47-0.03
The Fate Of Remix (1.1x)Epsilon MidEpsilon Midstamina8.96715.59+0.09
The Hypocrisy (1.2x)Epsilon MidEpsilon Lowstamina8.70315.24-0.26~
Yuudachi No Ribbon (1.2x)Epsilon MidEpsilon Midstamina8.79515.36-0.14
Forgotten (1.4x)Epsilon MidEpsilon Hightech9.21815.91+0.41~
Celestial ExploringEpsilon HighEpsilon Highjack9.10815.77-0.06
Quevedo (1.3x)Epsilon HighEpsilon Highjack9.19315.88+0.05
Sentimental Crisis (1.55x)Epsilon HighEpsilon Midspeed8.95815.58-0.25~
Dancer In The Smoke (1.3x)Epsilon HighZeta Lowtech9.32416.08+0.25~
Angel DustZeta LowZeta Lowjack9.35216.13-0.04
I Love It (1.4x)Zeta MidZeta Midjack9.60916.61+0.11
MutwaZeta MidZeta Highjack9.76716.91+0.41~
Observation (0.95x)Zeta MidEpsilon Highjack9.16315.84-0.66
Promise (1.22x)Zeta MidEta Lowjack9.82917.02+0.52
The Island Of Albatross (1.2x)Zeta MidEta Lowjack9.84917.05+0.55
Truth Never Spoken (1.3x)Zeta MidEpsilon Midjack8.85515.44-1.06
Vertex BetaZeta MidEpsilon Lowjack8.61115.12-1.38
Cg901B (1.3x)Zeta MidZeta Highjack9.64816.68+0.18~
Dark Sambaland Omega (1.2x)Zeta MidZeta Midjack9.51516.43-0.07
Exile (1.1x)Zeta MidZeta Highjack9.64616.68+0.18~
]-[34#!Zeta MidZeta Lowspeed9.42416.26-0.24~
FinixeZeta MidZeta Highspeed9.65416.69+0.19~
Nijuu (1.0x)Zeta MidZeta Midstamina9.46216.33-0.17~
Apocalyptic Premonition (1.05x)Zeta MidZeta Midtech9.56716.53+0.03
Weird Autumn (1.4x)Zeta MidZeta Lowtech9.33216.09-0.41~
Twilightofthegods (1.3x)Zeta Mid/HighEta Lowspeed9.83417.03+0.36~
Anhedonia GeminiZeta HighZeta Highjack9.79316.95+0.12
Darling Dance (1.2x)Zeta HighZeta Highjack9.69316.77-0.06
Day By DayZeta HighZeta Highjack9.75616.88+0.05
Decoy OmegaZeta HighEta Lowjack9.87617.09+0.26~
Melody Blooming In The Earth (1.5x)Zeta HighEta Lowjack9.88117.10+0.27~
Deep Down (1.35x)Eta LowEta Lowjack10.03417.33+0.16
Sendan Life Frawog (1.5x)Eta LowEta Lowjack9.97417.24+0.07
Code Name BravoEta LowEta Lowtech9.98017.25+0.08
Torment PaybackEta MidEta Highjack10.38217.86+0.36~
Intersect ThunderboltEta MidEta Midspeed10.05317.36-0.14
Collapse Of EgoEta MidEta Lowstamina9.95917.22-0.28~
ExitiumEta MidEta Hightech10.25517.67+0.17~
Rip Me ApartEta HighEta Highjack10.33117.78-0.05
+
+
+ + + + +
+

Daniel Benchmark Report

+

2026-03-29 09:47

+
+ +
+ + + + \ No newline at end of file diff --git a/docs/images/compact.png b/docs/images/compact.png new file mode 100644 index 0000000000000000000000000000000000000000..39fe9e33e29ab84e7316d026cafaf59dce4b3c61 GIT binary patch literal 10629 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 BJk9_B literal 0 HcmV?d00001 diff --git a/docs/images/graph.png b/docs/images/graph.png new file mode 100644 index 0000000000000000000000000000000000000000..d6de91d4dc381d91714f63d996d31462604b4b3f GIT binary patch literal 35118 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 z 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 O$bGa^3;q9ErT+&C>jHfM literal 0 HcmV?d00001 diff --git a/docs/images/statistics.png b/docs/images/statistics.png new file mode 100644 index 0000000000000000000000000000000000000000..56d1b1877751fb66022d04022caf66ce7d12b8fe GIT binary patch literal 16121 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 + + + + + + + + + + + + +Daniel + + + +
+ + + + + +
+
+

Daniel

+

+ Difficulty Analysis of Notechart Intensity for Estimated Levels +

+

+ A real-time rice difficulty calculator for 4k osu!mania. Daniel links up to tosu to read + your currently selected beatmap displaying its dan referenced level and its tier (Low/Mid/High) from Alpha through to Theta. It breaks it down further using a live strain graph and individual MSD skillsets. +

+ +
+
+ 52.4% +
Within Exact Tier
+
+
+ 89.6% +
Within Adjacent Tiers
+
+
+ 98.7% +
Within one full dan Level
+
+
+ 145 +
Beatmaps tested
+
+
+
+ + +
+

How it works!

+
+

Real-time Detection

+

Daniel reads map data live in real-time using tosu. This means that whenever you change beatmap Daniel will update instantly!

+
+
+

Modified Sunny Rework Algorithm

+

The numerical dan rating is calculated using a modified version of the Sunny Rework algorithm which is optimised for high-level rice. Long notes and OD are not factored into the calculation. The numerical dan ratings are based of individual maps which leads to marathons usually displaying the 'High' tier within that dan level.

+
+
+

Skillset Detection via MSD

+

Individual skillsets are calculated using MSD (MinaCalc Skill Difficulty). Overall rating is also calculated and jackspeed is used to determine whether a beatmap is primarily vibro based.

+
+
+

Mod Support

+

HT and DT are both supported as the rating adjusts automatically based on the selected mod.

+
+ +

Overlay views

+

You can press Tab to cycle between the overlay views.

+
+
+
+

Compact

+

A minimalistic display showing only the estimated dan plus the numerical rating.

+
+ Compact view +
+
+
+

Statistics

+

The compact view with added MSD skillset calculations for skillsets and overall MSD rating.

+
+ Statistics view +
+
+
+

Graph

+

The statistics view with an added straintime graph that + updates in real-time based on drain time in the beatmap. Red vertical lines indicate pauses in gameplay.

+
+ Graph view +
+
+
+ + +
+

Download

+
+
+

Daniel.exe

+
Loading...
+

Requirements:

+
+ Windows 10 / 11 + osu! / osu!(stable) + tosu +
+
+
+ ↓ Download .exe + ... downloads +
+
+ +
+
+
01
+
+

Install tosu

+

Download and install tosu.

+
+
+
+
02
+
+

Download Daniel

+

Save Daniel.exe anywhere on your system.

+
+
+
+
03
+
+

Launch tosu and Daniel

+

Run both tosu and Daniel alongside your osu! client.

+
+
+
+
04
+
+

Have fun danning with Daniel

+

Boy do I love me some dans.

+
+
+
+
+ + +
+

Changelog

+
+
Loading...
+
+
+ + +
+

FAQ

+ +
+ +

It will refuse to calculate vibro maps altogether and will just list them as 'VIBRO'. To my knowledge this doesn't affect any maps other than just straight vibro.

+
+ +
+ +

All calculations are done when the beatmap is first selected so any performance hits would only be in the song select menu.

+
+ +
+ +

The graph is based on the same modified Sunny Rework algorithm that's used for the numerical dan values. This means that it represents that actual difficulty of that point in the beatmap rather than the density.

+
+ +
+ +

Source code is available here!

+
+ +
+ +

It's bad at quite a few different skillsets in particular. It heavily underrates speedjack (Vertex Beta Zeta) and awkward speed (Volcanic). It overrates in epsilon+ anchorjack and may also overrate some high bpm speed(Finixe Zeta). There are more patterns it struggles with occasionally but these are the most consistent ones.

+
+ +
+ +

No. It used to in testing versions but all LNs are converted to rice for the calculations now.

+
+ +
+ +

No. It used to in testing versions but now all maps are calculated as if they are OD9.

+
+ +
+ +

Maybe but not confirmed.

+
+
+ + +
+

Credits

+
+
Developer
+
+

TheBagelOfMan

+
+
+
+ +
+

[Crz]sunnyxxy, Natelytle, vernonlim, ChlorieHCl, Imperial Wolf

+
+
+
+ +
+

MinaciousGrace

+
+
+
+ +
+

KotRik, Cherry

+
+
+
+ + +
+

Daniel Daniel Daniel Daniel Daniel

+ +
+ +
+ + + + + \ No newline at end of file diff --git a/src/algorithm.py b/src/algorithm.py new file mode 100644 index 0000000..729e424 --- /dev/null +++ b/src/algorithm.py @@ -0,0 +1,506 @@ +import math +from collections import defaultdict + +import numpy as np +import osu_file_parser as osu_parser + +# --- Constants --- + +BREAK_ZERO_THRESHOLD_MS = 400 +GRAPH_RESAMPLE_INTERVAL_MS = 100 +SMOOTH_SIGMA_MS = 800 + + +# --- Helper Functions --- + +def gaussian_filter1d(data, sigma, mode="constant", cval=0.0): + kernel_radius = int(4 * sigma + 0.5) + x = np.arange(-kernel_radius, kernel_radius + 1) + kernel = np.exp(-0.5 * (x / sigma) ** 2) + kernel /= kernel.sum() + if mode == "constant": + padded = np.pad(data, kernel_radius, mode="constant", constant_values=cval) + else: + padded = np.pad(data, kernel_radius, mode=mode) + return np.convolve(padded, kernel, mode="valid") + + +def cumulative_sum(x, f): + """Vectorised exact cumulative integral of piecewise-constant f on sorted x.""" + F = np.zeros(len(x)) + F[1:] = np.cumsum(f[:-1] * np.diff(x)) + return F + + +def smooth_on_corners(x, f, window, scale=1.0, mode="sum"): + """Vectorised sliding-window integral of piecewise-constant f.""" + x = np.asarray(x, dtype=float) + f = np.asarray(f, dtype=float) + F = cumulative_sum(x, f) + + a = np.clip(x - window, x[0], x[-1]) + b = np.clip(x + window, x[0], x[-1]) + + def _query_vec(q_arr): + idx = np.searchsorted(x, q_arr) - 1 + idx = np.clip(idx, 0, len(x) - 2) + return F[idx] + f[idx] * (q_arr - x[idx]) + + val = _query_vec(b) - _query_vec(a) + + if mode == "avg": + span = b - a + return np.where(span > 0, val / span, 0.0) + return scale * val + + +def interp_values(new_x, old_x, old_vals): + return np.interp(new_x, old_x, old_vals) + + +def step_interp(new_x, old_x, old_vals): + indices = np.searchsorted(old_x, new_x, side="right") - 1 + indices = np.clip(indices, 0, len(old_vals) - 1) + return old_vals[indices] + + +def rescale_high(sr): + if sr <= 9: + return sr + return 9 + (sr - 9) / 1.2 + + +# --- Preprocessing --- + +def preprocess_file(file_path, mod): + p_obj = osu_parser.parser(file_path) + p_obj.process() + p = p_obj.get_parsed_data() + + note_seq = [] + for i in range(len(p[1])): + k = p[1][i] + h = p[2][i] + if mod == "DT": + h = int(math.floor(h * 2 / 3)) + elif mod == "HT": + h = int(math.floor(h * 4 / 3)) + note_seq.append((k, h)) + + x = 0.3 * ((64.5 - math.ceil(p[5] * 3)) / 500) ** 0.5 + x = min(x, 0.6 * (x - 0.09) + 0.09) + note_seq.sort(key=lambda tup: (tup[1], tup[0])) + + note_dict = defaultdict(list) + for tup in note_seq: + note_dict[tup[0]].append(tup) + note_seq_by_column = sorted(note_dict.values(), key=lambda lst: lst[0][0]) + + K = p[0] + T = max(n[1] for n in note_seq) + 1 + + return x, K, T, note_seq, note_seq_by_column + + +# --- Corner Computation --- + +def get_corners(T, note_seq): + corners_base = set() + for _, h in note_seq: + corners_base.update([h, h + 501, h - 499, h + 1]) + corners_base.update([0, T]) + corners_base = sorted(s for s in corners_base if 0 <= s <= T) + + corners_A = set() + for _, h in note_seq: + corners_A.update([h, h + 1000, h - 1000]) + corners_A.update([0, T]) + corners_A = sorted(s for s in corners_A if 0 <= s <= T) + + all_corners = sorted(set(corners_base) | set(corners_A)) + return ( + np.array(all_corners, dtype=float), + np.array(corners_base, dtype=float), + np.array(corners_A, dtype=float), + ) + + +# --- Key Usage --- + +def get_key_usage(K, T, note_seq, base_corners): + key_usage = {k: np.zeros(len(base_corners), dtype=bool) for k in range(K)} + for k, h in note_seq: + start = max(h - 150, 0) + end = min(h + 150, T - 1) + li = np.searchsorted(base_corners, start, side="left") + ri = np.searchsorted(base_corners, end, side="left") + key_usage[k][li:ri] = True + return key_usage + + +def get_key_usage_400(K, T, note_seq, base_corners): + key_usage_400 = {k: np.zeros(len(base_corners), dtype=float) for k in range(K)} + for k, h in note_seq: + start = max(h, 0) + li = np.searchsorted(base_corners, start - 400, side="left") + ri = np.searchsorted(base_corners, start + 400, side="left") + mid = np.searchsorted(base_corners, start, side="left") + + key_usage_400[k][mid] += 3.75 + for idx_range in [np.arange(li, mid), np.arange(mid + 1, ri)]: + key_usage_400[k][idx_range] += 3.75 - 3.75 / 400 ** 2 * (base_corners[idx_range] - start) ** 2 + return key_usage_400 + + +# --- Difficulty Components --- + +def compute_anchor(K, key_usage_400, base_corners): + counts = np.stack([key_usage_400[k] for k in range(K)], axis=1) + counts = np.sort(counts, axis=1)[:, ::-1] + + nonzero_mask = counts > 0 + n_nz = nonzero_mask.sum(axis=1) + + c0 = counts[:, :-1] + c1 = counts[:, 1:] + safe_c0 = np.where(c0 > 0, c0, 1.0) + ratio = np.where(c0 > 0, c1 / safe_c0, 0.0) + weight = 1 - 4 * (0.5 - ratio) ** 2 + + pair_valid = nonzero_mask[:, :-1] & nonzero_mask[:, 1:] + walk = np.sum(np.where(pair_valid, c0 * weight, 0.0), axis=1) + max_walk = np.sum(np.where(pair_valid, c0, 0.0), axis=1) + + raw_anchor = np.where(n_nz > 1, walk / np.maximum(max_walk, 1e-9), 0.0) + return 1 + np.minimum(raw_anchor - 0.18, 5 * (raw_anchor - 0.22) ** 3) + + +def compute_Jbar(K, T, x, note_seq_by_column, base_corners): + def jack_nerfer(delta): + return 1 - 7e-5 * (0.15 + np.abs(delta - 0.08)) ** (-4) + + J_ks = {k: np.zeros(len(base_corners)) for k in range(K)} + delta_ks = {k: np.full(len(base_corners), 1e9) for k in range(K)} + + for k in range(K): + notes = note_seq_by_column[k] + if len(notes) < 2: + continue + starts = np.array([n[1] for n in notes[:-1]], dtype=float) + ends = np.array([n[1] for n in notes[1:]], dtype=float) + deltas = 0.001 * (ends - starts) + vals = deltas ** -1 * (deltas + 0.11 * x ** 0.25) ** -1 * jack_nerfer(deltas) + + for start, end, delta, val in zip(starts, ends, deltas, vals): + li = np.searchsorted(base_corners, start, side="left") + ri = np.searchsorted(base_corners, end, side="left") + if ri > li: + J_ks[k][li:ri] = val + delta_ks[k][li:ri] = delta + + Jbar_ks = { + k: smooth_on_corners(base_corners, J_ks[k], window=500, scale=0.001, mode="sum") + for k in range(K) + } + + Jbar_stack = np.stack([Jbar_ks[k] for k in range(K)], axis=0) + delta_stack = np.stack([delta_ks[k] for k in range(K)], axis=0) + weights = 1.0 / delta_stack + num = np.sum(np.maximum(Jbar_stack, 0) ** 5 * weights, axis=0) + den = np.sum(weights, axis=0) + Jbar = (num / np.maximum(den, 1e-9)) ** 0.2 + + return delta_ks, Jbar + + +def compute_Xbar(K, T, x, note_seq_by_column, active_columns, base_corners): + cross_matrix = [ + [-1], + [0.075, 0.075], + [0.125, 0.05, 0.125], + [0.125, 0.125, 0.125, 0.125], + [0.175, 0.25, 0.05, 0.25, 0.175], + [0.175, 0.25, 0.175, 0.175, 0.25, 0.175], + [0.225, 0.35, 0.25, 0.05, 0.25, 0.35, 0.225], + [0.225, 0.35, 0.25, 0.225, 0.225, 0.25, 0.35, 0.225], + [0.275, 0.45, 0.35, 0.25, 0.05, 0.25, 0.35, 0.45, 0.275], + [0.275, 0.45, 0.35, 0.25, 0.275, 0.275, 0.25, 0.35, 0.45, 0.275], + [0.325, 0.55, 0.45, 0.35, 0.25, 0.05, 0.25, 0.35, 0.45, 0.55, 0.325], + ] + cross_coeff = cross_matrix[K] + X_ks = {k: np.zeros(len(base_corners)) for k in range(K + 1)} + fast_cross = {k: np.zeros(len(base_corners)) for k in range(K + 1)} + + for k in range(K + 1): + if k == 0: + notes_in_pair = note_seq_by_column[0] + elif k == K: + notes_in_pair = note_seq_by_column[K - 1] + else: + notes_in_pair = sorted( + note_seq_by_column[k - 1] + note_seq_by_column[k], key=lambda t: t[1] + ) + + for i in range(1, len(notes_in_pair)): + start = notes_in_pair[i - 1][1] + end = notes_in_pair[i][1] + li = np.searchsorted(base_corners, start, side="left") + ri = np.searchsorted(base_corners, end, side="left") + if ri <= li: + continue + + delta = 0.001 * (notes_in_pair[i][1] - notes_in_pair[i - 1][1]) + val = 0.16 * max(x, delta) ** -2 + + left_inactive = (k - 1) not in active_columns[li] and (k - 1) not in active_columns[ri] + right_inactive = k not in active_columns[li] and k not in active_columns[ri] + if left_inactive or right_inactive: + val *= 1 - cross_coeff[k] + + X_ks[k][li:ri] = val + fast_cross[k][li:ri] = max(0, 0.4 * max(delta, 0.06, 0.75 * x) ** -2 - 80) + + X_base = np.array([ + sum(X_ks[k][i] * cross_coeff[k] for k in range(K + 1)) + + sum( + np.sqrt(fast_cross[k][i] * cross_coeff[k] * fast_cross[k + 1][i] * cross_coeff[k + 1]) + for k in range(K) + ) + for i in range(len(base_corners)) + ]) + + return smooth_on_corners(base_corners, X_base, window=500, scale=0.001, mode="sum") + + +def compute_Pbar(K, T, x, note_seq, anchor, base_corners): + def stream_booster(delta): + bpm = np.clip(7.5 / delta, 0, 420) + primary = 0.10 / (1 + np.exp(-0.06 * (bpm - 175))) + secondary = np.where( + (bpm >= 200) & (bpm <= 350), + 0.30 * (1 - np.exp(-0.02 * (bpm - 200))), + 0.0, + ) + return 1 + primary + secondary + + P_step = np.zeros(len(base_corners)) + + for i in range(len(note_seq) - 1): + h_l = note_seq[i][1] + h_r = note_seq[i + 1][1] + delta_time = h_r - h_l + + if delta_time < 1e-9: + spike = 1000 * (0.02 * (4 / x - 24)) ** 0.25 + li = np.searchsorted(base_corners, h_l, side="left") + ri = np.searchsorted(base_corners, h_l, side="right") + if ri > li: + P_step[li:ri] += spike + continue + + li = np.searchsorted(base_corners, h_l, side="left") + ri = np.searchsorted(base_corners, h_r, side="left") + if ri <= li: + continue + + delta = 0.001 * delta_time + b_val = stream_booster(delta) + base_inc = (0.08 * x ** -1 * (1 - 24 * x ** -1 * (x / 6) ** 2)) ** 0.25 + + if delta < 2 * x / 3: + inc = delta ** -1 * (0.08 * x ** -1 * (1 - 24 * x ** -1 * (delta - x / 2) ** 2)) ** 0.25 * max(b_val, 1) + else: + inc = delta ** -1 * base_inc * max(b_val, 1) + + seg_anchor = anchor[li:ri] + P_step[li:ri] += np.minimum(inc * seg_anchor, np.maximum(inc, inc * 2 - 10)) + + return smooth_on_corners(base_corners, P_step, window=500, scale=0.001, mode="sum") + + +def compute_Abar(K, T, x, note_seq_by_column, active_columns, delta_ks, A_corners, base_corners): + dks = {k: np.zeros(len(base_corners)) for k in range(K - 1)} + for i in range(len(base_corners)): + cols = active_columns[i] + for j in range(len(cols) - 1): + k0, k1 = cols[j], cols[j + 1] + dks[k0][i] = abs(delta_ks[k0][i] - delta_ks[k1][i]) + 0.4 * max( + 0, max(delta_ks[k0][i], delta_ks[k1][i]) - 0.11 + ) + + A_step = np.ones(len(A_corners)) + bc_idx = np.clip(np.searchsorted(base_corners, A_corners), 0, len(base_corners) - 1) + + for i in range(len(A_corners)): + idx = bc_idx[i] + cols = active_columns[idx] + for j in range(len(cols) - 1): + k0, k1 = cols[j], cols[j + 1] + d_val = dks[k0][idx] + dk0, dk1 = delta_ks[k0][idx], delta_ks[k1][idx] + if d_val < 0.02: + A_step[i] *= min(0.75 + 0.5 * max(dk0, dk1), 1) + elif d_val < 0.07: + A_step[i] *= min(0.65 + 5 * d_val + 0.5 * max(dk0, dk1), 1) + + return smooth_on_corners(A_corners, A_step, window=250, mode="avg") + + +def compute_C_and_Ks(K, T, note_seq, key_usage, base_corners): + note_hit_times = np.array(sorted(n[1] for n in note_seq), dtype=float) + + lo = np.searchsorted(note_hit_times, base_corners - 500, side="left") + hi = np.searchsorted(note_hit_times, base_corners + 500, side="left") + C_step = (hi - lo).astype(float) + + Ks_step = np.maximum( + np.stack([key_usage[k] for k in range(K)], axis=0).sum(axis=0), 1 + ).astype(float) + + return C_step, Ks_step + + +# --- Graph Post-Processing --- + +def _apply_proximity_envelope(all_corners, D_all, note_seq): + if not note_seq: + return D_all.copy() + + note_times = np.sort(np.array([float(h) for _, h in note_seq])) + PROXIMITY_FADE_MS = 500.0 + + idx = np.searchsorted(note_times, all_corners) + d_after = np.abs(note_times[np.clip(idx, 0, len(note_times) - 1)] - all_corners) + d_before = np.abs(note_times[np.clip(idx - 1, 0, len(note_times) - 1)] - all_corners) + d = np.minimum(d_after, d_before) + + envelope = 0.5 * (1.0 + np.cos(np.pi * np.clip(d / PROXIMITY_FADE_MS, 0.0, 1.0))) + return D_all * envelope + + +def smooth_D_for_graph(all_corners, D_all, note_seq): + note_times = np.array(sorted(float(h) for _, h in note_seq), dtype=float) + + t_start = float(all_corners[0]) + t_end = float(all_corners[-1]) + uniform_t = np.arange(t_start, t_end + GRAPH_RESAMPLE_INTERVAL_MS, GRAPH_RESAMPLE_INTERVAL_MS, dtype=float) + + if len(note_times) > 0: + idx = np.searchsorted(note_times, uniform_t) + idx_after = np.clip(idx, 0, len(note_times) - 1) + idx_before = np.clip(idx - 1, 0, len(note_times) - 1) + dist = np.minimum(np.abs(uniform_t - note_times[idx_before]), np.abs(uniform_t - note_times[idx_after])) + break_mask = dist > BREAK_ZERO_THRESHOLD_MS + else: + break_mask = np.zeros(len(uniform_t), dtype=bool) + + uniform_D = np.interp(uniform_t, all_corners, D_all) + uniform_D[break_mask] = 0.0 + + sigma_samples = SMOOTH_SIGMA_MS / GRAPH_RESAMPLE_INTERVAL_MS + uniform_result = gaussian_filter1d(uniform_D, sigma=sigma_samples, mode="constant", cval=0.0) + uniform_result[break_mask] = 0.0 + + return np.interp(all_corners, uniform_t, uniform_result) + + +# --- Main Entry Points --- + +def calculate(file_path, mod): + x, K, T, note_seq, note_seq_by_column = preprocess_file(file_path, mod) + all_corners, base_corners, A_corners = get_corners(T, note_seq) + + key_usage = get_key_usage(K, T, note_seq, base_corners) + active_columns = [[k for k in range(K) if key_usage[k][i]] for i in range(len(base_corners))] + key_usage_400 = get_key_usage_400(K, T, note_seq, base_corners) + anchor = compute_anchor(K, key_usage_400, base_corners) + + delta_ks, Jbar = compute_Jbar(K, T, x, note_seq_by_column, base_corners) + Jbar = interp_values(all_corners, base_corners, Jbar) + + Xbar = compute_Xbar(K, T, x, note_seq_by_column, active_columns, base_corners) + Xbar = interp_values(all_corners, base_corners, Xbar) + + Pbar = compute_Pbar(K, T, x, note_seq, anchor, base_corners) + Pbar = interp_values(all_corners, base_corners, Pbar) + + Abar = compute_Abar(K, T, x, note_seq_by_column, active_columns, delta_ks, A_corners, base_corners) + Abar = interp_values(all_corners, A_corners, Abar) + + C_step, Ks_step = compute_C_and_Ks(K, T, note_seq, key_usage, base_corners) + C_arr = step_interp(all_corners, base_corners, C_step) + Ks_arr = step_interp(all_corners, base_corners, Ks_step) + + S_all = ( + (0.4 * (Abar ** (3 / Ks_arr) * np.minimum(Jbar, 8 + 0.85 * Jbar)) ** 1.5) + + (0.6 * (Abar ** (2 / 3) * (0.8 * Pbar)) ** 1.5) + ) ** (2 / 3) + T_all = (Abar ** (3 / Ks_arr) * Xbar) / (Xbar + S_all + 1) + D_all = 2.7 * (S_all ** 0.5) * (T_all ** 1.5) + S_all * 0.27 + + gaps = np.empty_like(all_corners, dtype=float) + gaps[0] = (all_corners[1] - all_corners[0]) / 2.0 + gaps[-1] = (all_corners[-1] - all_corners[-2]) / 2.0 + gaps[1:-1] = (all_corners[2:] - all_corners[:-2]) / 2.0 + + effective_weights = C_arr * gaps + sorted_indices = np.argsort(D_all) + D_sorted = D_all[sorted_indices] + w_sorted = effective_weights[sorted_indices] + + cum_weights = np.cumsum(w_sorted) + norm_cum_weights = cum_weights / cum_weights[-1] + + target_percentiles = np.array([0.945, 0.935, 0.925, 0.915, 0.845, 0.835, 0.825, 0.815]) + indices = np.searchsorted(norm_cum_weights, target_percentiles, side="left") + + percentile_93 = np.mean(D_sorted[indices[:4]]) + percentile_83 = np.mean(D_sorted[indices[4:8]]) + weighted_mean = (np.sum(D_sorted ** 5 * w_sorted) / np.sum(w_sorted)) ** 0.2 + + SR = 0.88 * percentile_93 * 0.25 + 0.94 * percentile_83 * 0.2 + weighted_mean * 0.55 + total_notes = len(note_seq) + SR *= total_notes / (total_notes + 60) + SR = rescale_high(SR) * 0.975 + + D_pre = _apply_proximity_envelope(all_corners, D_all, note_seq) + D_graph = smooth_D_for_graph(all_corners, D_pre, note_seq) + + return ( + SR, + all_corners, + D_graph, + { + "Pressing Intensity": Pbar, + "Unevenness": Abar, + "Same-Column Pressure": Jbar, + "Cross-Column Pressure": Xbar, + }, + ) + + +def factor_averages(times, factors): + times = np.asarray(times, dtype=float) + names = list(factors.keys()) + matrix = np.stack([factors[n] for n in names], axis=0) + integrals = np.trapezoid(matrix, times, axis=1) + duration = times[-1] - times[0] + return {n: float(integrals[i] / duration) for i, n in enumerate(names)} + + +def parse_hitobjects(file_path, mod="NM"): + p_obj = osu_parser.parser(file_path) + p_obj.process() + p = p_obj.get_parsed_data() + + hitobjects = [] + for i in range(len(p[1])): + x = p[1][i] + time = p[2][i] + if mod == "DT": + time *= 2 / 3 + elif mod == "HT": + time *= 4 / 3 + hitobjects.append({"x": x, "time": time}) + + return hitobjects \ No newline at end of file diff --git a/src/daniel.py b/src/daniel.py new file mode 100644 index 0000000..0330128 --- /dev/null +++ b/src/daniel.py @@ -0,0 +1,841 @@ +import os +import sys +import json +import time +import threading +import ctypes +import tkinter as tk + +import numpy as np +import websocket + +import algorithm +import msd_converter +from graph_fast import FastGraph + + +def resource_path(relative_path): + """Get absolute path to resource — works for dev and when compiled with PyInstaller.""" + base_path = getattr(sys, "_MEIPASS", os.path.dirname(os.path.abspath(__file__))) + return os.path.join(base_path, relative_path) + + +# --- Constants --- + +TOSU_WS = "ws://localhost:24050/ws" + +BREAK_ZERO_THRESHOLD_MS = 400 +TIME_JUMP_THRESHOLD_MS = 2000 +_OSU_TIMEOUT = 1.0 + +MODE_COMPACT = 0 +MODE_STATISTICS = 1 +MODE_FULL = 2 +MODE_NAMES = ["compact", "statistics", "full"] + +GRAPH_HEIGHT = 250 +BAR_HEIGHT = 120 +WINDOW_WIDTH = 650 + +COMPACT_HEIGHT = 65 +STATISTICS_HEIGHT = 120 +FULL_HEIGHT = GRAPH_HEIGHT + BAR_HEIGHT + +COMPACT_WIDTH = 550 +STATISTICS_WIDTH = 650 +FULL_WIDTH = 650 + +MODE_HEIGHTS = { + MODE_COMPACT: COMPACT_HEIGHT, + MODE_STATISTICS: STATISTICS_HEIGHT, + MODE_FULL: FULL_HEIGHT, +} +MODE_WIDTHS = { + MODE_COMPACT: COMPACT_WIDTH, + MODE_STATISTICS: STATISTICS_WIDTH, + MODE_FULL: FULL_WIDTH, +} + +BG_COLOR = "#000000" +PREFIX_FILL = "#FFFFFF" +DOT_RED = "#FF3B3B" +DOT_GREEN = "#00E676" + +FONT_SCALE = float(os.environ.get("DANIEL_FONT_SCALE", "1.0" if os.name == "nt" else "0.67")) + + +def _font_size(size): + return max(8, int(round(size * FONT_SCALE))) + + +FONT_PREFIX = ("Segoe UI Semibold", _font_size(30)) +FONT_DAN = ("Segoe UI Bold", _font_size(45)) +FONT_MSD_SKILL = ("Segoe UI Semibold", _font_size(29)) +FONT_CONNECTION = ("Segoe UI Semibold", _font_size(18)) + +PREFIX_Y_OFFSET = 4.1 +MSD_RELEVANCE_FRACTION = 0.15 +VIBRO_JACKSPEED_THRESHOLD = 0.90 + +DAN_COLORS = { + "Alpha": "#ff5a5a", + "Beta": "#ffd84d", + "Gamma": "#00ffd5", + "Delta": "#ff7b00", + "Epsilon": "#ff7a9e", + "Zeta": "#D7F7FF", + "Eta": "#ff2b2b", + "Theta": "#CC00FF", +} + +DAN_MEANS = { + "Alpha": 6.562, + "Beta": 6.957, + "Gamma": 7.459, + "Delta": 7.939, + "Epsilon": 9.095, + "Zeta": 9.473, + "Eta": 10.162, + "Theta": 10.782, +} +ORDER = list(DAN_MEANS.keys()) +DAN_ORDER_START = 11 + + +# --- State --- + +lock = threading.Lock() + +current_map = None +current_mod = "NM" +last_state = None +current_song_time_ms = 0 + +_ws_receive_time = 0.0 +_ws_song_time_ms = 0 +_prev_song_time_ms = 0 +_prev_receive_time = 0.0 +_last_message_time = 0.0 + +_paused = False +_pause_time_ms = 0 +_frozen_interp_ms = 0.0 + +loading = False +loading_step = 0 +_last_loading_dot = 0.0 + +current_strain_data = None +current_msd_data = None +connection_phase = "connecting" + +_last_dan_label = "." +_last_dan_numeric = "" +current_mode = MODE_FULL + + +# --- Window setup --- + +if os.name == "nt" and hasattr(ctypes, "windll"): + try: + ctypes.windll.user32.SetProcessDPIAware() + except Exception: + pass + +root = tk.Tk() +root.tk.call("tk", "scaling", 1.0) +root.title("Daniel by TheBagelOfMan") +root.geometry(f"{WINDOW_WIDTH}x{FULL_HEIGHT}") +root.resizable(False, False) +root.configure(bg=BG_COLOR) +root.attributes("-topmost", True) + + +def _set_dark_title_bar(window): + try: + hwnd = ctypes.windll.user32.GetParent(window.winfo_id()) + value = ctypes.c_int(1) + ctypes.windll.dwmapi.DwmSetWindowAttribute(hwnd, 20, ctypes.byref(value), ctypes.sizeof(value)) + except Exception: + pass + try: + hwnd = ctypes.windll.user32.GetParent(window.winfo_id()) + value = ctypes.c_int(1) + ctypes.windll.dwmapi.DwmSetWindowAttribute(hwnd, 19, ctypes.byref(value), ctypes.sizeof(value)) + except Exception: + pass + + +root.update_idletasks() +_set_dark_title_bar(root) + +_icon_path = resource_path("icon.ico") +if os.path.exists(_icon_path): + try: + root.iconbitmap(_icon_path) + except Exception: + pass + +_icon_png_path = resource_path("icon.png") +if os.path.exists(_icon_png_path): + try: + _icon_img = tk.PhotoImage(file=_icon_png_path) + root.iconphoto(True, _icon_img) + except Exception: + pass + +canvas = tk.Canvas(root, width=WINDOW_WIDTH, height=FULL_HEIGHT, bg=BG_COLOR, highlightthickness=0) +canvas.pack(expand=True, fill="both") + +graph = FastGraph(canvas, GRAPH_HEIGHT, WINDOW_WIDTH) + +text_items = [] +msd_items = [] +accent_bar = None +current_bar_color = "#333333" +_connection_items = [] +_pulse_job = None + + +# --- Drawing helpers --- + +def rgb(hex_color): + r, g, b = root.winfo_rgb(hex_color) + return r // 256, g // 256, b // 256 + + +def lerp_color(c1, c2, t): + r1, g1, b1 = rgb(c1) + r2, g2, b2 = rgb(c2) + r = int(r1 + (r2 - r1) * t) + g = int(g1 + (g2 - g1) * t) + b = int(b1 + (b2 - b1) * t) + return f"#{r:02x}{g:02x}{b:02x}" + + +def draw_text(x, y, text, fill, font, anchor="w"): + return [canvas.create_text(x, y, text=text, fill=fill, font=font, anchor=anchor)] + + +def draw_outline_text(x, y, text, fill, outline, font): + items = [] + for ox, oy in [(-1, 0), (1, 0), (0, -1), (0, 1), (-1, -1), (-1, 1), (1, -1), (1, 1)]: + items.append(canvas.create_text(x + ox, y + oy, text=text, fill=outline, font=font, anchor="w")) + items.append(canvas.create_text(x, y, text=text, fill=fill, font=font, anchor="w")) + return items + + +def is_loading_text(text): + return text in (".", "..", "...") + + +def _get_text_y_offset(): + return GRAPH_HEIGHT if current_mode == MODE_FULL else 0 + + +# --- Connection screen --- + +def _draw_connection_screen(): + global _connection_items, _pulse_job + + if _pulse_job is not None: + root.after_cancel(_pulse_job) + _pulse_job = None + + for item in _connection_items: + canvas.delete(item) + _connection_items.clear() + + if connection_phase == "ready": + return + + cy = MODE_HEIGHTS[current_mode] // 2 + + if connection_phase == "connecting": + label = "Waiting for tosu connection..." + dot_color = DOT_RED + else: + label = "tosu connected - waiting for map data" + dot_color = DOT_GREEN + + dot_r = 6 + dot_cx = 20 + inner = canvas.create_oval( + dot_cx - dot_r, cy - dot_r, + dot_cx + dot_r, cy + dot_r, + fill=dot_color, outline="", + ) + title = canvas.create_text( + dot_cx + dot_r + 10, cy, + text=label, fill="#AAAAAA", + font=FONT_CONNECTION, anchor="w", + ) + _connection_items += [inner, title] + _pulse_connection(inner, dot_color, 0) + + +def _pulse_connection(inner, dot_color, step): + global _pulse_job + + if connection_phase == "ready": + _pulse_job = None + return + + phase = (step % 40) / 40 + alpha = 0.4 + 0.6 * abs(1 - 2 * phase) + pulsed = lerp_color("#000000", dot_color, alpha) + canvas.itemconfig(inner, fill=pulsed) + _pulse_job = root.after(50, lambda: _pulse_connection(inner, dot_color, step + 1)) + + +def _clear_connection_screen(): + global _connection_items, _pulse_job + + if _pulse_job is not None: + root.after_cancel(_pulse_job) + _pulse_job = None + + for item in _connection_items: + canvas.delete(item) + _connection_items.clear() + + if current_mode == MODE_FULL and _last_dan_label not in ("Invalid Beatmap", ".", "..", "..."): + graph.show() + + +def _clear_normal_ui(): + global text_items, msd_items, accent_bar + + for item in text_items: + canvas.delete(item) + text_items.clear() + + for item in msd_items: + canvas.delete(item) + msd_items.clear() + + if accent_bar: + canvas.delete(accent_bar) + accent_bar = None + + graph.hide() + + +def _clear_invalid_ui(): + global msd_items + for item in msd_items: + canvas.delete(item) + msd_items.clear() + graph.hide() + + +# --- UI components --- + +def get_relevant_skillsets(msd_result): + overall = msd_result.get("overall", 0) + threshold = overall * MSD_RELEVANCE_FRACTION + relevant = {k: v for k, v in msd_result.items() if k != "overall" and (overall - v) <= threshold} + top3 = sorted(relevant.items(), key=lambda x: x[1], reverse=True)[:3] + jackspeed = msd_result.get("jackspeed", 0) + is_vibro = (overall > 0) and (jackspeed / overall >= VIBRO_JACKSPEED_THRESHOLD) + return overall, top3, is_vibro + + +def draw_msd(msd_result, color): + global msd_items + for item in msd_items: + canvas.delete(item) + msd_items.clear() + + if current_mode == MODE_COMPACT: + return + + if msd_result is None: + y = _get_text_y_offset() + 80 + msd_items += draw_text(14, y, "MSD Error", "#FF4444", FONT_MSD_SKILL) + return + + overall, top3, _ = get_relevant_skillsets(msd_result) + if not top3: + return + + skillset_str = ", ".join(key.capitalize() for key, _ in top3) + y = _get_text_y_offset() + 80 + msd_items += draw_text(14, y, f"{skillset_str} {overall:.2f}MSD", "#FFFFFF", FONT_MSD_SKILL) + + +def draw_accent_bar(): + global accent_bar + if accent_bar: + canvas.delete(accent_bar) + h = MODE_HEIGHTS[current_mode] + accent_bar = canvas.create_rectangle(0, 0, 6, h, fill=current_bar_color, outline="") + return accent_bar + + +def fade_items(text_item, bar_item, start_color, end_color, steps=14): + global current_bar_color + + def _step(i): + global current_bar_color + if i < steps: + color = lerp_color(start_color, end_color, i / steps) + canvas.itemconfig(text_item, fill=color) + canvas.itemconfig(bar_item, fill=color) + current_bar_color = color + root.after(15, lambda: _step(i + 1)) + else: + canvas.itemconfig(text_item, fill=end_color) + canvas.itemconfig(bar_item, fill=end_color) + current_bar_color = end_color + if current_mode == MODE_FULL: + graph.set_color(end_color) + + _step(0) + + +def update_dan_text(dan_label, dan_numeric): + global text_items, current_bar_color + + if connection_phase != "ready": + return + + for item in text_items: + canvas.delete(item) + text_items.clear() + + if is_loading_text(dan_label): + fill = "#888888" + new_bar_color = "#333333" + else: + if dan_label.startswith("<"): + fill = "#7DF0FF" + new_bar_color = fill + else: + base = dan_label.split()[0] + fill = DAN_COLORS.get(base, "#FFFFFF") + new_bar_color = fill + + bar = draw_accent_bar() + y_off = _get_text_y_offset() + y = y_off + 28 + prefix_y = y + PREFIX_Y_OFFSET + + prefix = draw_text(14, prefix_y, "Est. Dan:", PREFIX_FILL, FONT_PREFIX) + text_items.extend(prefix) + + bbox = canvas.bbox(prefix[-1]) + pw = bbox[2] - bbox[0] if bbox else 0 + xpos = 14 + pw + 8 + + is_vibro = False + if ( + not is_loading_text(dan_label) + and dan_label not in ("Invalid Beatmap", "? ? ? ? ?") + and current_msd_data is not None + ): + _, _, is_vibro = get_relevant_skillsets(current_msd_data) + + if dan_label == "? ? ? ? ?": + dan_items = draw_outline_text(xpos, y, dan_label, fill="#000000", outline="#FFFFFF", font=FONT_DAN) + new_bar_color = "#FFFFFF" + elif is_vibro: + dan_items = draw_text(xpos, y, "VIBRO", "#FFFFFF", FONT_DAN) + new_bar_color = "#FFFFFF" + else: + dan_items = draw_text(xpos, y, dan_label, current_bar_color, FONT_DAN) + + text_items.extend(dan_items) + + if not is_loading_text(dan_label) and dan_numeric: + dan_bbox = canvas.bbox(dan_items[-1]) + numeric_x = (dan_bbox[2] if dan_bbox else xpos) + 10 + display_numeric = "N/A" if is_vibro else f"({dan_numeric})" + text_items.extend(draw_text(numeric_x, prefix_y, display_numeric, "#FFFFFF", FONT_PREFIX)) + + if current_mode != MODE_COMPACT: + draw_msd(current_msd_data, new_bar_color if not is_loading_text(dan_label) else "#333333") + else: + for item in msd_items: + canvas.delete(item) + msd_items.clear() + + if current_mode == MODE_FULL: + graph.set_color( + new_bar_color if (is_loading_text(dan_label) or dan_label == "? ? ? ? ?") else current_bar_color + ) + + if not is_loading_text(dan_label) and dan_label != "? ? ? ? ?": + fade_items(dan_items[-1], bar, current_bar_color, new_bar_color) + else: + canvas.itemconfig(bar, fill=new_bar_color) + current_bar_color = new_bar_color + if dan_label != "? ? ? ? ?": + canvas.itemconfig(dan_items[-1], fill=fill) + + +def set_dan_text(label, numeric): + root.after(0, lambda: update_dan_text(label, numeric)) + + +# --- Mode switching --- + +def _apply_mode(): + h = MODE_HEIGHTS[current_mode] + w = MODE_WIDTHS[current_mode] + root.geometry(f"{w}x{h}") + canvas.configure(width=w, height=h) + + if current_mode == MODE_FULL: + graph.show() + else: + graph.hide() + + if connection_phase != "ready": + _draw_connection_screen() + else: + update_dan_text(_last_dan_label, _last_dan_numeric) + + +def cycle_mode(event=None): + global current_mode + current_mode = (current_mode + 1) % 3 + _apply_mode() + print(f"[Mode] Switched to {MODE_NAMES[current_mode]}") + + +root.bind("", cycle_mode) + + +# --- Tick loop --- + +def _tick(): + global loading_step, _last_loading_dot + + if connection_phase != "ready": + root.after(16, _tick) + return + + now = time.monotonic() + + if loading and now - _last_loading_dot >= 0.4: + dots = [".", "..", "..."] + update_dan_text(dots[loading_step % 3], "") + loading_step += 1 + _last_loading_dot = now + + if current_mode == MODE_FULL: + with lock: + ws_time = _ws_song_time_ms + ws_recv = _ws_receive_time + prev_time = _prev_song_time_ms + prev_recv = _prev_receive_time + md = current_mod + paused = _paused + frozen_ms = _frozen_interp_ms + + if paused: + graph.update_position(frozen_ms, md) + else: + real_dt = ws_recv - prev_recv + rate = (ws_time - prev_time) / real_dt if real_dt > 0.01 and ws_time > prev_time else 1000.0 + rate = max(0.0, min(rate, 5000.0)) + interpolated_ms = ws_time + rate * (now - ws_recv) + graph.update_position(interpolated_ms, md) + + root.after(16, _tick) + + +# --- WebSocket callbacks --- + +def on_open(ws_app): + global connection_phase, last_state + print("[WS] Connected to tosu.") + last_state = None + connection_phase = "waiting_map" + root.after(0, _draw_connection_screen) + + +def on_message(ws_app, msg): + global current_map, current_mod, current_song_time_ms + global _ws_receive_time, _ws_song_time_ms, _prev_song_time_ms, _prev_receive_time + global connection_phase, last_state, _last_message_time + global _paused, _pause_time_ms, _frozen_interp_ms + + _last_message_time = time.monotonic() + + try: + d = json.loads(msg) + bm = d.get("menu", {}).get("bm") + if not bm: + return + + folder = bm["path"]["folder"] + file = bm["path"]["file"] + + if not folder or not file: + if connection_phase == "ready": + print("[WS] osu closed — no map data.") + last_state = None + connection_phase = "waiting_map" + root.after(0, _clear_normal_ui) + root.after(0, _draw_connection_screen) + return + + songs = d["settings"]["folders"]["songs"] + new_map = os.path.join(songs, folder, file) + new_mod = get_rate_mod(read_mods(d)) + new_time = bm.get("time", {}).get("current", 0) + now = time.monotonic() + + with lock: + prev_ws_time = _ws_song_time_ms + current_map = new_map + current_mod = new_mod + current_song_time_ms = new_time + _prev_song_time_ms = _ws_song_time_ms + _prev_receive_time = _ws_receive_time + _ws_song_time_ms = new_time + _ws_receive_time = now + + sd = current_strain_data + t_max_ms = float(sd[0][-1]) if (sd is not None and len(sd[0]) > 0) else None + at_end = (t_max_ms is not None) and (new_time >= t_max_ms - 500) + + time_delta = new_time - prev_ws_time + jumped = abs(time_delta) > TIME_JUMP_THRESHOLD_MS and not (0 < time_delta < TIME_JUMP_THRESHOLD_MS) + + if jumped and not at_end: + if _paused: + _paused = False + _pause_time_ms = 0 + print(f"[Jump] Time jumped {time_delta:+.0f} ms — clearing pause markers") + root.after(0, graph.clear_all_pause_markers) + + elif new_time == prev_ws_time and not at_end: + if not _paused: + _paused = True + _pause_time_ms = new_time + _frozen_interp_ms = float(new_time) + print(f"[Pause] Detected at {new_time} ms") + root.after(0, lambda t=new_time, m=new_mod: graph.add_pause_marker(t, m)) + + else: + if _paused: + _paused = False + _pause_time_ms = 0 + print(f"[Pause] Resumed at {new_time} ms") + + if connection_phase != "ready": + connection_phase = "ready" + print("[WS] Map data received. Entering normal operation.") + root.after(0, _clear_connection_screen) + + except Exception: + pass + + +def on_close(ws_app, close_status_code, close_msg): + global connection_phase, last_state, _paused + print(f"[WS] Disconnected from tosu (code={close_status_code}).") + last_state = None + _paused = False + connection_phase = "connecting" + root.after(0, _clear_normal_ui) + root.after(0, _draw_connection_screen) + + +def on_error(ws_app, error): + print(f"[WS] Error: {error}") + + +def read_mods(d): + return ( + d.get("gameplay", {}).get("mods", {}).get("str") + or d.get("menu", {}).get("mods", {}).get("str") + or "" + ) + + +def get_rate_mod(m): + if "DT" in m or "NC" in m: + return "DT" + if "HT" in m: + return "HT" + return "NM" + + +# --- Calculation loop --- + +def calculation_loop(): + global last_state, loading, loading_step + global current_strain_data, current_msd_data + global _last_dan_label, _last_dan_numeric + + while True: + if connection_phase != "ready": + time.sleep(0.1) + continue + + with lock: + state = (current_map, current_mod) + + mp, mod = state + + if not mp or not os.path.exists(mp): + time.sleep(0.1) + continue + + if state == last_state: + time.sleep(0.1) + continue + + try: + loading = True + loading_step = 0 + + import osu_file_parser as osu_parser + _p = osu_parser.parser(mp) + _p.process() + if _p.get_parsed_data()[0] != 4: + raise ValueError(f"Not a 4k map (keycount={_p.get_parsed_data()[0]})") + + SR, times, strain, factors = algorithm.calculate(mp, mod) + + t_arr = np.asarray(times, dtype=float) + d_arr = np.asarray(strain, dtype=float) + current_strain_data = (t_arr, d_arr) + + try: + hitobjects = msd_converter.parse_hitobjects(mp, mod) + etterna_rows = msd_converter.osu_to_etterna_rows(hitobjects) + msd_result = msd_converter.calculate_msd(etterna_rows) + print("\n[MSD Skillsets]") + for k, v in msd_result.items(): + print(f"{k:<10}: {v:.2f}") + except Exception as msd_e: + print(f"[MSD] Error calculating MSD, skipping: {msd_e}") + msd_result = None + + with lock: + current_msd_data = msd_result + + averages = algorithm.factor_averages(times, factors) + dan_label, dan_numeric = get_dan_from_diff(SR) + + _last_dan_label = dan_label + _last_dan_numeric = dan_numeric + + print(f"\n[Map Factors] {os.path.basename(mp)} [{mod}]") + for k, v in averages.items(): + print(f"{k:<6}: {v:.4f}") + print(f"SR : {SR:.4f}★") + print(f"Dan : {dan_label} ({dan_numeric})\n") + + loading = False + last_state = state + + if current_mode == MODE_FULL: + root.after(0, lambda _t=t_arr, _d=d_arr: graph.set_data(_t, _d)) + root.after(0, lambda: graph.set_color(current_bar_color)) + root.after(0, graph.show) + set_dan_text(dan_label, dan_numeric) + + except Exception as e: + loading = False + last_state = state + print("Calculation error:", e) + _last_dan_label = "Invalid Beatmap" + _last_dan_numeric = "" + with lock: + current_msd_data = None + current_strain_data = None + root.after(0, _clear_invalid_ui) + set_dan_text("Invalid Beatmap", "") + + time.sleep(0.1) + + +# --- Dan boundary tables --- + +def _precompute_dan_boundaries(): + means = [DAN_MEANS[d] for d in ORDER] + boundaries = [] + for i in range(len(ORDER)): + mean = means[i] + lower = (means[i - 1] + mean) / 2 if i > 0 else mean - ((means[1] + mean) / 2 - mean) + upper = (mean + means[i + 1]) / 2 if i < len(means) - 1 else mean + (mean - means[i - 1]) / 2 + boundaries.append((lower, upper)) + return boundaries + + +_DAN_BOUNDARIES = _precompute_dan_boundaries() + + +def get_dan_from_diff(diff): + if diff < _DAN_BOUNDARIES[0][0]: + return f"<{ORDER[0]} Low", "N/A" + if diff >= _DAN_BOUNDARIES[-1][1]: + return "? ? ? ? ?", "N/A" + + for i, dan in enumerate(ORDER): + lower, upper = _DAN_BOUNDARIES[i] + if lower <= diff < upper: + t = max(0.0, min((diff - lower) / (upper - lower), 1.0)) + numeric = round(DAN_ORDER_START + i + t, 2) + if t < 1 / 3: + label = f"{dan} Low" + elif t < 2 / 3: + label = f"{dan} Mid" + else: + label = f"{dan} High" + return label, numeric + + return "? ? ? ? ?", "N/A" + + +# --- Boot --- + +root.after(100, _draw_connection_screen) + + +def _ws_loop(): + global connection_phase + while True: + print("[WS] Attempting to connect to tosu...") + ws = websocket.WebSocketApp( + TOSU_WS, + on_open=on_open, + on_message=on_message, + on_close=on_close, + on_error=on_error, + ) + ws.run_forever() + if connection_phase == "ready": + connection_phase = "connecting" + root.after(0, _draw_connection_screen) + print("[WS] Retrying in 3 seconds...") + time.sleep(3) + + +def _message_timeout_watcher(): + global connection_phase, last_state + while True: + time.sleep(1) + if connection_phase != "ready": + continue + elapsed = time.monotonic() - _last_message_time + if elapsed > _OSU_TIMEOUT: + print(f"[Watcher] No message for {elapsed:.1f}s — osu likely closed.") + last_state = None + connection_phase = "waiting_map" + root.after(0, _clear_normal_ui) + root.after(0, _draw_connection_screen) + + +threading.Thread(target=calculation_loop, daemon=True).start() +threading.Thread(target=_ws_loop, daemon=True).start() +threading.Thread(target=_message_timeout_watcher, daemon=True).start() + +root.after(16, _tick) +root.mainloop() \ No newline at end of file diff --git a/src/graph_fast.py b/src/graph_fast.py new file mode 100644 index 0000000..7754e45 --- /dev/null +++ b/src/graph_fast.py @@ -0,0 +1,250 @@ +import tkinter as tk + +import numpy as np +from PIL import Image, ImageDraw + +PAD_X = 6 +PAD_Y_TOP = 8 +PAD_Y_BOT = 6 +BG_COLOR_RGB = (0, 0, 0) +UNPLAYED_FILL_RGB = (17, 17, 17) +UNPLAYED_STROKE_RGB = (42, 42, 42) +LINE_WIDTH = 5 # Width at 2x render resolution +LINE_BASELINE_INSET = 4 +MAX_GRAPH_POINTS = 300 # Lower cap for smoother curves +SUPERSAMPLE = 2 # Render at 2x then downscale for anti-aliased lines +MIN_BREAK_MS = 2000 # Breaks shorter than this get interpolated through + +PAUSE_LINE_COLOR = "#FF3B3B" +PAUSE_LINE_WIDTH = 2 + + +def _hex_to_rgb(h): + h = h.lstrip("#") + return (int(h[0:2], 16), int(h[2:4], 16), int(h[4:6], 16)) + + +def _lerp_rgb(c1, c2, t): + return tuple(int(c1[i] + (c2[i] - c1[i]) * t) for i in range(3)) + + +class FastGraph: + def __init__(self, canvas, graph_height, window_width): + self.canvas = canvas + self.graph_height = graph_height + self.window_width = window_width + + self._w = window_width + self._h = graph_height + self._plot_w = self._w - PAD_X + self._plot_h = self._h - PAD_Y_TOP - PAD_Y_BOT + self._bottom_y = self._h - PAD_Y_BOT + self._poly_bottom_y = self._bottom_y + 1 + + self._times = None + self._strain = None + self._t_min = 0.0 + self._t_max = 1.0 + self._poly_data = None + + self._played_rgb = None + self._unplayed_rgb = None + self._composite_rgb = None + + self._color_rgb = (255, 90, 90) + self._played_fill_rgb = _lerp_rgb(BG_COLOR_RGB, (255, 90, 90), 0.45) + self._played_stroke_rgb = _lerp_rgb(BG_COLOR_RGB, (255, 90, 90), 0.85) + + self._ppm_header = b"P6\n%d %d\n255\n" % (self._w, self._h) + self._tk_photo = tk.PhotoImage(width=self._w, height=self._h) + self._tk_photo.put("#000000", to=(0, 0, self._w, self._h)) + + self._canvas_item = self.canvas.create_image(0, 0, image=self._tk_photo, anchor="nw") + self.canvas.tag_lower(self._canvas_item) + + self._last_split_px = -1 + self._visible = True + self._pause_line_items = [] + + # --- Public API --- + + def set_data(self, times, strain): + self._times = np.asarray(times, dtype=float) + self._strain = np.asarray(strain, dtype=float) + + nonzero = np.where(self._strain > 0)[0] + if len(nonzero) == 0: + nonzero = np.arange(len(self._times)) + crop_start = max(nonzero[0] - 1, 0) + crop_end = min(nonzero[-1] + 2, len(self._times)) + self._times = self._times[crop_start:crop_end] + self._strain = self._strain[crop_start:crop_end] + + if len(self._times) < 2: + self._poly_data = None + return + + self._t_min = float(self._times[0]) + self._t_max = float(self._times[-1]) + self._poly_data = self._build_polygon() + self._rebuild_images() + self._last_split_px = -1 + self.clear_all_pause_markers() + + def set_color(self, hex_color): + self._color_rgb = _hex_to_rgb(hex_color) + self._played_fill_rgb = _lerp_rgb(BG_COLOR_RGB, self._color_rgb, 0.45) + self._played_stroke_rgb = _lerp_rgb(BG_COLOR_RGB, self._color_rgb, 0.85) + + if self._poly_data is not None: + self._rebuild_images() + self._last_split_px = -1 + + def hide(self): + if self._visible and self._canvas_item is not None: + self.canvas.itemconfigure(self._canvas_item, state="hidden") + self._visible = False + self.clear_all_pause_markers() + + def show(self): + if not self._visible and self._canvas_item is not None: + self.canvas.itemconfigure(self._canvas_item, state="normal") + self._visible = True + self._last_split_px = -1 + + def update_position(self, song_time_ms, mod="NM"): + if not self._visible or self._played_rgb is None or self._unplayed_rgb is None: + return + + scale = {"DT": 2 / 3, "HT": 4 / 3}.get(mod, 1.0) + adj_time = song_time_ms * scale + duration = self._t_max - self._t_min + frac = max(0.0, min((adj_time - self._t_min) / duration, 1.0)) if duration > 0 else 0.0 + split_px = max(0, min(round(PAD_X + frac * self._plot_w), self._w)) + + if split_px == self._last_split_px: + return + self._last_split_px = split_px + + buf = self._composite_rgb + if split_px > 0: + buf[:, :split_px, :] = self._played_rgb[:, :split_px, :] + if split_px < self._w: + buf[:, split_px:, :] = self._unplayed_rgb[:, split_px:, :] + + self._tk_photo.configure(data=self._ppm_header + buf.tobytes()) + + def add_pause_marker(self, song_time_ms, mod="NM"): + """Add a red vertical line at the given song time. Call from main thread only.""" + if not self._visible or self._t_max <= self._t_min: + return + + scale = {"DT": 2 / 3, "HT": 4 / 3}.get(mod, 1.0) + adj_time = song_time_ms * scale + duration = self._t_max - self._t_min + frac = max(0.0, min((adj_time - self._t_min) / duration, 1.0)) + x = max(PAD_X, min(round(PAD_X + frac * self._plot_w), self._w - 1)) + + if x <= PAD_X: + return + + hw = max(1, PAUSE_LINE_WIDTH // 2) + item = self.canvas.create_rectangle( + x - hw, PAD_Y_TOP, x + hw, self._bottom_y, + fill=PAUSE_LINE_COLOR, outline="", tags="pause_marker", + ) + self.canvas.tag_raise(item, self._canvas_item) + self._pause_line_items.append(item) + + def clear_all_pause_markers(self): + """Remove every pause marker line. Call from main thread only.""" + for item in self._pause_line_items: + self.canvas.delete(item) + self._pause_line_items.clear() + + def destroy(self): + self.clear_all_pause_markers() + if self._canvas_item is not None: + self.canvas.delete(self._canvas_item) + self._canvas_item = None + self._tk_photo = None + self._played_rgb = None + self._unplayed_rgb = None + self._composite_rgb = None + self._poly_data = None + self._last_split_px = -1 + + # --- Internal --- + + def _build_polygon(self): + t = self._times.copy() + d = self._strain.copy() + + is_zero = (d == 0).astype(np.int8) + transitions = np.diff(is_zero, prepend=0, append=0) + gap_starts = np.where(transitions == 1)[0] + gap_ends = np.where(transitions == -1)[0] + + for gs, ge in zip(gap_starts, gap_ends): + gap_duration = t[min(ge, len(t) - 1)] - t[max(gs - 1, 0)] + if gap_duration < MIN_BREAK_MS and gs > 0 and ge < len(d): + val_before = d[gs - 1] + val_after = d[ge] if ge < len(d) else 0 + n_gap = ge - gs + if n_gap > 0: + d[gs:ge] = np.linspace(val_before, val_after, n_gap + 2)[1:-1] + + d_max = max(d.max(), 1.0) + px_x = PAD_X + (t - self._t_min) / (self._t_max - self._t_min) * self._plot_w + px_y = self._h - PAD_Y_BOT - d / d_max * self._plot_h + + n = len(d) + if n > MAX_GRAPH_POINTS: + is_zero = (d == 0).astype(np.int8) + transitions = np.abs(np.diff(is_zero)) + critical = set(np.where(transitions == 1)[0].tolist()) + critical |= set((np.where(transitions == 1)[0] + 1).tolist()) + critical = {i for i in critical if 0 <= i < n} + base = set(np.round(np.linspace(0, n - 1, MAX_GRAPH_POINTS)).astype(int).tolist()) + keep = sorted(base | critical) + idx = np.array(keep) + px_x = px_x[idx] + px_y = px_y[idx] + + x0 = float(px_x[0]) + x1 = float(px_x[-1]) + poly_bottom = float(self._poly_bottom_y) + line_bottom = float(self._bottom_y - LINE_BASELINE_INSET) + + pts = [(float(x), float(y)) for x, y in zip(px_x, px_y)] + poly = [(x0, poly_bottom)] + pts + [(x1, poly_bottom)] + line = [(x0, line_bottom)] + pts + [(x1, line_bottom)] + + return [poly], [line] + + def _rebuild_images(self): + if self._poly_data is None: + return + self._unplayed_rgb = self._render_to_numpy(UNPLAYED_FILL_RGB, UNPLAYED_STROKE_RGB) + self._played_rgb = self._render_to_numpy(self._played_fill_rgb, self._played_stroke_rgb) + self._composite_rgb = np.empty_like(self._unplayed_rgb) + + def _render_to_numpy(self, fill_rgb, stroke_rgb): + ss = SUPERSAMPLE + sw, sh = self._w * ss, self._h * ss + + img = Image.new("RGB", (sw, sh), BG_COLOR_RGB) + draw = ImageDraw.Draw(img) + + polys, lines = self._poly_data + + for seg_poly in polys: + if len(seg_poly) >= 3: + draw.polygon([(x * ss, y * ss) for x, y in seg_poly], fill=fill_rgb) + + for seg_line in lines: + if len(seg_line) >= 2: + draw.line([(x * ss, y * ss) for x, y in seg_line], fill=stroke_rgb, width=LINE_WIDTH) + + img = img.resize((self._w, self._h), Image.LANCZOS) + return np.frombuffer(img.tobytes(), dtype=np.uint8).reshape((self._h, self._w, 3)).copy() \ No newline at end of file diff --git a/src/msd.exe b/src/msd.exe new file mode 100644 index 0000000000000000000000000000000000000000..1210907320e6789381b9ceab681fd142c0d9a90a GIT binary patch literal 396288 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�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

%lVXHzvj+}d=*X_hJ4nW9?4Fu|z@WoCzw zfa%#`xZqu;gkY{Xh!>D!Gw79$)Ym?u16elNG0^hV3$THNTUy?Wb;N5=i9J?_9wNw4 z_&BS(M=cL9FRbQm&z?4HqeI24gQX1Z?zg1aUAMIBGF#eKaZhh)*KsyE@FuNjtb5x` z1IT!6ga!N+`t`rmVv75dLfEtpDrzyYWemh#_Oh=;4!%Bt)(lK4}O3I(%~crhrf0y))pG ze_Ei^f6)TX{!yp1voabhE?Wi%)XKeO`_|9^wKk%ZTd@lOuu{A z_X5-Jlt$zVM>94eLIR%CBCJJty<1{tP3T@DU3#Pndgw!Xy@Gfz^xwf-36;!@{0thM zU63tR8O)Lyhq39I*>wP;0_PjQV64l0NIRHaso-rQ%tDKm4zug@LjUMnjnpWkJZoa+ z_)Jt^E7*NvT^%}}G$=JRNJ@?A)vlB4v$vSZwQr^@Cf&@Asz{l(Q!E zJ`j>(5aa6uHbxE^N!f>{%Z{QoMln(>!lgG_<FFP5+q+Z+%6YD#p0d>B#||+~ZV(yMU3392bh#~7Wty(D zHMoM;%uhhgKm;uW7&})I_#1v|2KJ0h;flp7sicFIPI^m23s9!z$7Nd1fDGjUrbf>g z9Mtzfhq75Cx4P2Fqkq1srvHci(tX%Wtoo1)`k+*SGV?NttdKqzZEg!sXfvSUNg&WL zgjzQMHb#!5)?sT)$;nphHdBDv=cJ1=yb|OS_;1{7x_B#j7`*MIGdM9W%SY+S?t_jn z1#rn_|3#!Ue^O;t)@ z`=~TWs$&L?N*bV1Ec_Cwd#ZnqCtLj!Ktc7>dRJdV_P|K4KG*Z;CvP&$^xtGjw{i~g z>i4D6aOtqp1s(Q!)mYIu2OYJ%ntnCef|nD}ua!1fMc{wK6d#&JK1=&b1HzQ1hdh-u zL!RSEE53yx@E+g+@}!>G^u&@V6*iNBp0p6CCz}cV2Y=Gtt!6Jpf2J0q)uE3haZL?1y=&-Ho`Gf?mo9DRi6D#F!9SOJ82lFU*)I92rM*FEbU@dl zN=Y+ax+AEKF0BduoCirG`g9339+DpRJaSMY6Rqh}q3Y_o(O~D2OkMUZ{>sv4>7i2D zK2h=%TXH@n&!Oal(j}MLl1CHJ3D*V_34G6#A1ca}uQUu||JS76wKpiO^a((v&vYn< z3;~Yt7unx-h{1dx5b;U_7Se!2=}tA-KtUA&=V5p)!hMvG4IbiX^+uDu;SxQq4n3$6 z8ZK3?RH9y0BQJRpn&%Kg@1{)l;4f1S?P>mHIgsfr@CwBaY-l9#@8avPRQE&5w5U?7 zy7yte>7MeLGu7=4%9iO~T3M=zJ@KlV4JH`?^lQ3$+Km=K-k#unk~XwF&ehpBDR<$ z15HL-gskNhkw-uge+`OQX^J?2NLtZkTT#f97y3<5g7VoCbZju$fNH4%yr6*jrhrjI zQh?Mfp+G5Zo{4&qY;XzKcM0-LA{542)GNk&l2%L&Rmy~oJ9wGTqh6lF%f1q=fQX-)=I)zyS*soJMnI;Ae863guf z%pulId73P}&;xygyo*E0<9^Q1iPA>_(8BI%(R*&XNZzBFoj`N9+n(4$5aO>r(aA6C z3PrvifFyexkl-U5d~O4s?;)}u!G#scdj=7SIgofQE{>Np^QPPY)qO_^Y}4RDD!b=DHLCl>H)>s%N>q^t)dXtY5S0d+1Xuyw8g z3hLBmt3XoU1xRqO4eqzWLpFGnK>d80kP+k8*7;%pk*^bwK(heBHiGuVcJo^MFR9Jo zNn1`?T$CtVVkfnJz1`Q${SrNw9;N+txOD}M&`q8E-)~cD@|*G0X)blf`LbU;b*#SE z42Z$}#2=gYmlxneO-vzw#r&1>H=4gNe=dJ~Jo0ir@pySPe>MDJ61sdrJo%@3GeCcm z?BYqngFqZau)+r7Af8qcaR1w^lhzgk`KOn${N>(_)7ry%X6VEH7zS?K$k)K=h9eF^ zaMOkjhS;Fc3~jhbK|DFSiwi94sGt>$kxSQS=|$hGj%<6>i=_Hg_*io z22{K^XZO0|v-UgFo7`Sqkvt<0n9B!p^*l$*(-a~tNqM*@yvco@AI^sIDvdH&sz>K2H={OfXSNJ=T4YZFOk1hP1Ir>E(+P`Yw2_pj zDrHp1M@E^1W;3S*kb1P4qk%e-N9@mGbC4X9AF`#_T?UBg$`y9^rE(Q-I_&gi7s!K7{%*rl;CGTU{rrdb*w z3AVoB&-{|qtbx_QP9FUWuCptPm-aJrxEjZDV)2d)LKinEof(_F_2GQ;RW-9bWyY7p zmC`Ktlr_*vRVwA9-xd%_L4^crU@4*h zP=i?}3{`=wTG?E_EL2Kk#VJsDI0wrA&YBR5~LlIKILR)~I>}gyt^aqn-?_OIJ z@ROi`t8D?Av1x&x8XLIy9-XJWMnj-UU%mJ;*J@(Rl~Be{vrNRvF091X30TMmtX2}h z^$j?JXaf6n4PkJM7XP&-n`32=j2x>1aDBs_K*B%^p{n0ZsDXO(Q${~Eet{SICy?3p zN&6t9L`rj04z2oVStlTE^g`k@`#qJ6;r{@U@`77oRZn|PLe_{UkKQY{R#biSEyRWF`5B1@S1#WU} zy-H24l~8k&XXmYt)Nn!9T8$;aavQ9$futdkt8CD0gBBZf*kH2_w%DN42EGkU`;%)m zOq8NABFM8rK0$JAfqA%Qh>a_@L8*dkT1ON3x9|l4)`3 zE`gaQQ#VbsF%y-H9Pw158c>WdU)pTSn{6I#R)oVv#7fMqh2k$vCc?_MIy8mY#>5#s za6+-1pgp^xYamCOtU5u#MhW@jxTB;Voc5s=e?O&+Wb{r-9ifl7T=0k>mkdBFR$Z9z^o)yC$iKs|-;M^IvEbk`Mq-T40mE z!2);sEdX9Z0}o>+6Qi(`LO1*}j)MrGr2>NXL?ORc5ENyg;s64xCuAZ=1L;9{eGNSy zyjJrJTEhe+ok#$&^5Ul1Hl|ANiGhD>05u(~K&*o0TJvbLdZC+$6bbyEVv`A%ceFB2 zuvctf!V8P-IR@&D?cwjFv3(3sfbGKpEw&F*` z*P{B4474(Uz~5bIFy(as`tKB|K5ya?z&9cj?5(WFaE?&6p&{**wW5U!S94|magz)B z@i&OSAzfS?jrn9e>QuQg#vJh1A`<&WWVMC7j2`nf3qc<%Um%N4P{=FFnyS3jfBd(M zivxyIA8deKcL=t(Q0e){sR-m9mAF5 zq`|($qcm8lan=#N_qA)g`-AA7wK+01UGsL6YVtzA8<4gO)l-5vYrEDB@}rV)#{nw1 zAt!J+{juKSZ=3eTmFShvZQ3Y=QA7HddP+(V8VUbefrk!N=a1V=O(!`cu!fAUtJ7ywFSvF$NqgHS){7bF0;#PA8t~ zF}N7bpvN!w$0SIba_WKMGIN0fdFR^4PHW1!$Ubol&zN(j@hA!MiD6Os=juCpyp;8% zOQ1|R8pAtKBc-r)QnS54;eW;NmKyR@owQat`SBdwTbc0#R(sE(Y1SDEA7C$Z7LV3a z69a0*py!1q0ja@hn-6{qbT2|I-J3@DMw_HFc3DZ*GyY~J$vmO2iXwv3mX%(9yS>dT zfxa1BMK;rzSNwLdQL3`azy4Yg95*jCSRl_|Xn{_Dt_7O?|Fl4p{{sWa(dyg)3j38n z|BF7oDbrz?uI^aNbmF0}IQ_AweRekw-xJx0GDg{Gb$d4QEo&y( zAus%+YmEu1|MyvrbEe}2-G{DoP;UD;<6f$BP{4&U_vj)M(0&G?GwU;f8(45 z5xJ~4%MB?&(~Op3xDgZWL0F(Ud_@W2z^2;c;bfLQh;D0ptw+5P_u&=)s^JlsEa1N3 zZ&)U2HO#UX?(0W_H23uZmLU}i-0@G#h?eu-<0;^}H|z@;QQhX*7hQOvuGJH7xyfi} zhU5CsCmr~R@7>)=uW<97-pFBzTbU@0ftB^ANY;2DWiHsMW<`t@iyvB z;u^!`+$@_Lc(!3?C4vG%wgPY|9tt|!nE@DDDx1RP_@1L2;) z01i$8L%5|PW*uY_F{>;{mYs(*G0z+WG5_~lhM0AnDTDKOw~1s#$2aq~XI5$CDLt$7 zP;{T?elNo3}cLH0!_6wRHalu9a`?mFqnd4@TnuhYlLMHBz^c@15Ed@Ewq9$wlD zLEG~hyWN6}ZyQV%kZxX@R;m7V6OFY|Bn_GNgTIN=B=Q6yv<NR?>ezp*$n~2S~7s zmZyZxq_RFbhKT}#e(_fULH}xDK+ykXflmKM3pD$U7HIMp8$bkI7eHbEVnM;(Iw+Lm zW=oq)lk>~Nb|>fFx{!9wcGrh`@0W$GUep3FAdY?#O6x_d=vsTWHGNJkmV8cMI;+hw zIe2LlAF4Gv==(pL|r}x?I)hPsDj~+5krA;=D}dUK5_^* zFNd3tY&fkw;-dV74d;j~!{%DqZAe{aP^mt-sI%;RG3m`#qkdd0yx#Qb;RX9eNB1cP2UL8qYcnS@p;l6rc!CuUGLk z{!OOf&>bpR8)Pb7M=OrCbWlHnP^_8X|3;D++2FEgbhD|Zkj_$*XKE^HoO-P3CsqyP zj7q~QSNPwuEx%Y5m3APqVO$+&n9>4Oa*8Q!P~+6Jk5}C)u@z0mV{-at z|J6&(p2@c|1vX2B--lWQ-F8?XrRe5iw%uOn@Sd{Qga-0pkhD6KXR0}*aq6MA(Oziu zD~5ql8O6XS*(Y6A`#OC*%08AhM&E#_2J<9ddKfN;>qy?081WfNzkFFQdsMK-=m5?~ z8kv(Hdf`>mal1VxeGXRiLXQ#KIQ`AW=}zPHF^$t_8;?Ww)ii`*23f^vdyXxEFlSV@ zxXCEH^2WMnPC}$PHlDnIUHu3rq z;A`H9ui3L(9eRWZSeq?}!HmAq^bjn4BvE7_W^R;Fv1_fFdz?b-SKa~rIn{7t{8`|M!TP+i+;Z)sct7&acB`bAN z(JE2V^`^iX6$tW*#s&H9v~C4rrNta&=vk)Y#KDY|ZN3Ab=?MzzgA)eFXLWn07kcm| zkpW+ofVr#aUf;i4O1hnRP{IpCO3WT4SOBHG^}L9wqG%zc(g}<{bv5~(0|bLBl8FB` zp~p<3=pCea$iCRt82ybG8ft2bb|krXW=-f|o}kN*=o6Q+>HgYjP(>rnl-O^QX;6`i zalc>Ab*|9clonoSYf1?^m4N9%)^uL;5zDBr;UUu^{OK$6X-@&^inTNV4)+|uHPeHH zeF1DF%G1cX$!LKW8ekc#hK!}Q1&a!q{YF#rl!?hGClwdPSqxMosu9-@)Kj*9^o3^n zdI8q3^PzGtkXB;P2evmTnWirZ+ptxOA0V}rzYH?h>K>%~bR}cMZpzS>U?P6eNIw7c z|1u0wl9-~y;a=IB*2vOSOA7`2A{#>dwWoa0Z4wr=nzYbmX(jToeNV%vDvGFF; z4D{Y)G)I+JLq54s9Y+FnOQBgWd7)zfljhEcp(ZkV8+{xE*ckog$QH3plVzI@SZA|Q zF@vQ>y#|T}(xq8a9L1D4PuP72wD|co5eIR@#UpO z|CcE;^b`q$iv~9{yeOG!Z;kOJZjYu9ISJWoNeLb~aVc+=dsNjK1+@GRK#gZ`!e#83 zipC!er4W7ipq{?dHp7LcL;i5vhigf0C0#N|bXn*mI%4gb_Oym1MR3k!R;Jc9p_#y7 zSe2fmN+TSI9vf!Jj<5%#8&;5SAF5~x$CkK9NwVuc!==H6d;j<$SrWS3UWcDKs9DiC zj{%x@34gUn5iz->$oPR)inLfM^3}K5|2yl`4?gKFPsDcB%qsYEGRzmU5}Tl*$OxBM zYD!UBxZuKxK*2wVX&4vH6C_;l{VZj8eqo~OMj>4A+8iz6g1hFJ_DCVqdKjNgqb=q~ z@YXC0v_-8>^UpBLQuEOh+3Lli1l;c$&n#6rPaRDAVL}9g3%NxAB?#i|ZJM_T3rm$& zXv`tai9xo*g0!`?^N4g}%_ESftoQSnSA(Qqq7PW1l4UYQZ|f~excwrKW>F(lAUA}a z5iLgcwnx*VWj>N4xFTkK^p}W+s993_x6Cl2j=3OPw~00E;##4gfhDCsh*gh8fwYXAW62%iDOP%LJ;y5f|v2X$XbP!gGL)D`Gj8iTmtGlkV-_ac|hTd*QoGx+fLKmqwF+S%~7= zOZ+_A@81$XneUB0&&OB`c6VZDKb21*?&d`AjnCUN?m$KHU3KegZ$5hIc2^f0psmMy z-O9VX^fzE}CtI$a-ZlRr{M=x6eXpu9a6WUQf4hx0JHxYVytcjlr8ZtZ0RDIzFXspU zG8-?K4}YYMuNHi+jV~5_gpJ?E=8J#2jb9}=$Hs3)U+|B&@r{DJELZxjc*q01@TBC|85)KB6zNiug2Wy-x|cT zwDr#m;sq}b$`@R2apX{3^i-8{a7S zP8;tEzSzbW3ckU{cS7?1Bpbg{@O&E|7F=fI^90Yd@jCwGA7kTd1dp@vS%MD?;^8=d zgpJ=0m--)Cc)8%`%%>!8CzRJ6>-`||C@Xho{w7=5K;FYU$*9x zsT1<_DNK?nQ)*DyZGA1rz2-AHi2ta-^&;E(-tO^yFWF6O&2tkwhRr`%ay0Q!>5Q#A z`_dahZPAfvc3kd<+(OxH(bwd=2al|zn0d^1I4ZzE>VsuwH#ZLgQs1ls~VKwkd*TfHB zHJT8S@*(Dk%4#pa`;o+F`_2Ckch)*LHF);tpLcu9u5H$)RL&#aug3ToGYRt>pN5ES zj;?cdkDS{7foJ$|xhby;&1}~!Q~UqC=k4K<<_IJ~P2YNofl2j0bZvH4_u$iJn*8}g zi%813sngcj=VPC~#{wso*)sA^K2<4__nOb+_1H6GUfYRoq4p~}CThcMS(@-17B?|CHN{6geg;d<;e@m+X6!OX{$x2Fl@ zFs6WjKw8~|4}okS<}95hCV4r;T(7ePmlTCR)H2Ye*zDRfRP3C@n_sHfllkO&{nstE zze;VSRDB@3iXLv$+M+tmGdk zbedJ%LG~8KJo=$Cvz2ewZ-XoNqWH^o>na;QsXayAtzqdOD|vR8?pAv9Om|}?d@niO z-4!66kAwSf=Nf!Ydpw|)qbeFX7@>1hZimPWN&_eI6%;@Sd(TE1^?QR@_M^1naHVpa?ZX3GrK?FF;1E$xNbXLtYwc^S-p z`tM`*cF4`orJs9XHaCOWo&PpwV=DEJIs3ru7=uq|MEktq2A#)z=uB%5usQX-ug2y> z|2{UKM1%>ON75c}QlOeX`OukO8gWkAh8(M_zA~?FKQPtN)t{DCR)6Sx4+@&v0ZONB zu&9qE9s*yX^I-6JS*O!*Dw9FnvwUq%63}5vn7fUiR{pN)j5@{ToB0{v!q22t{G7Lf zpIJ@(TwKr3J@Ux1-(@l%fj@7$gs!-YGn#?G-S~Y3?jEs!*=y|WiuGTe$@jVa7xa5! z(+fE{Su2CT9fS|`dQQ(Z3N^pv^?W4TYG$+k9`j(x9f_UU&UIHahKZehoQ6*T+|-81^SpTze~wR^@BXUUyvlvfbMwpM zw-!1R_ttn?lV(LNPjHu*orXi7H4Mq(SwCd~=B$bMt5ir0& z$vJ0Shcn^;f=5V@y>$h2exY+|CzH2x-s`0KKg%^t#Sanry<7^4jB?I<67hTXs1KbP zo9W5fVdtbLNO)r-2?-|`6<^t>b^xVOe1_AU{0OVB$Y?625nKw{uZXn$Fc*yLh^4}A z(1uuQVw{|Zsgb$x@xbM_)cmXqBhIC<6P)ul5IfDSNOvGND4>c0c$4o=R#zxy8pZIb zi+E9iw0dQOifki~1`jXVsn^@gfsB0bZBSyZrEMQNf#!W@mMk zB)0eI9r>0b43nBN(#7e9?VS|+yFRl#eAvP-vJ#2>_9yauF?Z2W2HsimF9%?K-yc&oQnwh2t zNMQ1{0Xgi26#j>ZAfCpZMp8sDaUVob`Y(uJTDqXBpdiG>{~r;-rjC6R!F}iMLIlD5 zzmNIqR?$vs@U8cn`D)8wG+&+iJ;|D0^VP3^qlo{@`KrPj$cM|K4Nuk$NSxZI?)=DK z(SP|`&A`~Kti<-d^S@2?3*I$ry{88TYrP0xVU8rT+af3)z+bR3L#RYMBFX(@-iEC| zyAqCQ#$KnU_xqD+`qbYObRT>5+1XibO}9~y{+{IT?%?lc!Zkr$FZRGb7SWEqxjjRU z8_`ovsVnv(1*i0>J<5xOv5Svkn(f=2-K<7*XLq+G%fn?kSLaqFuNtDoO*KrIKeo_0 zDU>a&FiurhM(fJ;y1l%RWn5N!d65F{47qA@Jb4wq3RjKdZw!AfaTCo)!?`I%cO|Z9 z(L}G$;-1&W2+1hG#L;(tO*|Dk`<>6bBi^$5=0Q1Gv7CZ-z1$_paiCg-i@BqF@NpCMa8;pKKEzza&X9Z~aXLDq44#Rrin5&ss0J1M+4k}w8YtN> zj=Co+Yik)#Qa{74$C<@RLzo3?kB&5NRCH?a%Pg;{WT{zux1ObkNo*ipTQy}SH`NGhC7nMo1`IlJoAy}JH% zO?|5TGmE+NE0U*nP46xr-Ca(Zqq@sWyIV}IQDx=1S35LdO5G7<<^2{Pvc7zBwpX5a zN_oZN13-6NW7u^Z*$pr>(!9xz!?UZ+INXF_?jF2$0uSC7(nrHyU#*+*7b=qBXJQX= z+<#C`mj0dy!kvWr%Re|L>$ea{n#RTd*p?<2-pN2>#cK!Yt!9Wci82}T*Dk2ZFt?e{#k}7KI@{{>{ZWU@8Ptgp^13vPowF97RaGD z+Oo4oz9X>zVv2Hx)srDBR`!mQx(Oh$^IJ}$mc)rK0WMZ980S#^3~-9kr1EDu-Y{3xPDTX!2P{*AFjdv5o7xBKB3m#i>#qm1OAHOBuGgBEEhfR&tyt>PP5RpV;l z!ErTRhdCpjn15h*n{qoN9+|&?rie({i_S7^Yq0y0qLnnw3&URHYB+#&v6`cOP3NS| zs3FoM$A$4wzJ&R!0}T}QWBzz5dD2ad!%)Bn98$}QR!{^}^SM%sQ2+-XNP@F8-3NN5 zO~FKhl9<+=zS+f^bLJ(a9*NT~z7m7iaG8PGfn#}n=n`?q4H{bB{DL=rE>RT865+O@ zRaEE{gE*%cTw!4|h$@yc)IP47m(mBS)8E#fIb(X8|Le1RtzQZx@8-DPXUIG6AcX9q zLnu1*Fe?BRFJ_~FIWy50BgLYSY7xamXo1Z#_Bf--KdH$3rjPw2GVqV#|F65m1P8Z5l{#_;pCG%kt`b3<( z4x0%{e=ntr%1*zq!nriDSq}i78Ta!rZ=MHzd`7V0%Ke-rAMo0pb<^t#5}z?D*$7Yy z^R_7lj}_dvE}eaAp1N8@{Lg(8e^VCNWub*7_Jk~4tO$#E0b-%zY37mxk@l<32$ot^ zuhJ??a-FdqDiXbNy;Iyy!kva^iXZ0<%d2HUk7jn*Vra*VSDoUG^zT<6Q8*=5b@0$> zUeBa}8G7{I);nh^ZA^S_zGx>qLv%vA=p?*7gNq;TEvhG*!$$K6p;6g2a{Z6VOW{Y0P`w=5cy@4ljPN3&nh@clecSca326Q}Yu`1&W zY8NE7v%B&Y?HYKKYDT2gFP@y`EV<|lJcGuW)z^^}QqCfCYUn>76rQJwER5Y@YdNX3 z7VAkebN3{LB%xGRW=_K(;7nns?Vj=zEJ*%H_UjSC;YrdhV6;lFBjV*btIKl}JDj?M zmb6&PSzn$jW-C0eZHea89Rr-DFVOtv#)-cIBlaAN`hIcGr#9q=>_+JFC1OT)#-1gJlA6?)i*gMIyhuykEr2PUh^w3?=KS1w8Ov7C-lc?^6bbV%2{I2+J`fP1cAs<#?6D4tF4d!L6 zFYnh4qD`UDZIWM@n;Fm2$c(nc71jIM?G^M7*QinpvC)jR19I@M&43I+x$Pc2c3d{< z!G!Aj_TwdfnaI3C?*d{ciAIo-GrVlw;U1e|8 z9YBx9p0E|WX4WY)s#QGnBt)KPi=S|_Ab9NXs_5VstVc` zzonJ%2hMq)>{@h|EqZ@b^hk>KHkM4NF59?hSS&TR$ledrz0pmDKTqu3&q*w$z?{)# z&oAymz_m*#j@ZV8Ja0dz_;C#W$d>oloxSPCPefGmwiGpva z)<~xYum3q}&51-&qD`jNl$)G+iEu0?4r7FU+ueozjXfKE_L8DPBLgbDYm61ld&|2< zbs}itAhVbHSE|8qKcOXQlO$SeuxESgEQZIZ5ovUf-~l`EI&jT`FPCk|h0l5BPEXE> zCl=K(jl877Q4_>F3LlMKo<;zk9Zb%U)$+hwWov;E7c2!wBgcEH3vS`LAYbcm(eIq7}F z8X1#WIAbz%s>Z`y`Q@mn`kPcL{UdB=PJmsf&Fro`(uUe@G3rl36$Km3+*g>sGhcDj z%o>DEWPj4QUFWw?)@8GCUQABEX{(a9*=a4k5DCKF_9KL;Le6a2MajgprWp4=)1ZXo z-m9@$zV=LyM_CYp<6fI|^u86|r`#jY3+MVRkW<8a*31`izC*-5bgZP+ZQb6- zEnDYYC+DB|to1SU4W@SKe~V0Mmct{P}x{O7%OSZl=2&rN4(q{ zBi-vF$=sXV?sZ;5)kA>`e;oB5hd{4qL5+a8Z0P(mv_1ALeqP5G(aYZQZ+uGCOx`%! z^(r=oVPgG@9yB%s2mQpg{dIfw_j6id z297c9ccU|+!@2HP^bx{tJu}rW=B$1*_ zGia-Ca0qH@#|KW;qaQdYwBl9MV2Y}02lJY zn0N8+Zsd_^?Dato>jQGQ`Y{?b^beTUAPM}<_8cF>)*`H)@wr_zFpF(#k;rO2q;f%1 zybUzP+d$KXOoM;ITZ5h(HK3sA-yg`0dk*Bk9z^CwGd70koMlC*id$b{fc#U-5e)uh z^Lvu{b@ZVmL_qod{|~#i5^QdT$M98Q=f-=D1yWf4eiNAmQKMIAZ53viPKWl8 zpYl}2xtSS|$?z@};EdhO?pwU1BL*2n%UUDehKLjIXxMNyn^{$C+_&W7QIlQwLA0!6 zQ4RHmz93t)q;+HqdO_a8Fe>ZzRzIh^#p?(-IIUlhpE~#bXUhFMbJn8#ijo$z5hcc5 zA-hf&2c#xsf9N{jV5-(SEkAS%)e6o0g}!ItsW^<-A+rM3HU2wQh4EyVX_8&Vq?t4RfDmjycNDFnc)X7EaPr}7BI6D8f*wwL2U9I>LmvPSuCy;U=pj_igMbr{ z2M{06VZ;kYzT+mB6xGu>MJ@0i<`?JF;coIGHncCIXG~+X!x}6YozoVmg4D6k-(<9u zn~PSOmORC)laHe0nD-bGWQ%hiTgFpg@xRAh#VV}f8ob}4-Y<;o^q%oJ=Jr^$;f1Tm z$GqtiE4|99c*#bQMPSd0mu+ya+eVg3FN%jz6kcqxBD2-GZVT~Vu7^a<$!&DITPt!l zN6MaBxKaGMZfzl5k!b_b(jYG;|Ag0w;E)31O6MMm5$Yxy0N+bgs(`L(~~gIKlUpU=Jq7) z=YP&DyssvPdJ^XQPklu~>Cm<>V+Z-a`-+5pdlDA-*N_nR3Pxb;5F;iY_rJtA1NsNJ zxBzMTowbFhF~4+*KLra@KXFDpKJWNUYZdi4Bm102Hk~qDTA!y}{k}#np~z49+{Dhjg^y4IO*P91*L&G5`_x(T06mX7Bi{JYv4Omy z<@6jHmm}{PIfTBsRTDpN`+tkK)U+P*orbxtD)hyV>GAX1%-f-F^WYS-h|51v z9j{S&Cz$ePJi=;`wIrM9EK)bdoN?ry&QMNgdKs8w2DVsjnTt_u2G&`IiX3o|nL&%& zf*e9^rdhX2(ht@B`41rB)V}+TJvp=9rIl4XY3}>B$F&twMmcEOGhgP@&uQ(_V&KPh z-GdK5+4PS|u`Txl=0T#T>1QT-VAcB?i;Ya@6xo8txJj8F^Pj;H=R(X8^P4m(J89I^ zq4Tswn0SZ%BTaBUMD_P~X=l`_dLiz;LBgt6OzLH%2AEmE&%h%MZoZ&HO)>AR{FpaW zTiN-eirlj2@zqV0!{-A>#<=rjYa5C16m-2Vx5SS%QCsyV=OIqPR9CYKU zA7)F1i(!87o^YRd%SD?m>zEg+^tN>!inez^rT1~H?BTdmzOAxso3k`QKD1?-`m+2t zOXQ-qJ?3qq-cc*1|Dqj+(WUZZWn1b(@sf32N3%vD^sl9RCINnpoC@l9gX=w|wDFQQ z|3coyyyq&t$KzO3!j&92@HY8dPs4c)r?`08n@&SNS|9iBDr#bW`D-DS>su0cW1^(a ziR`TubmKKjUQN#I?JX+6bI&*t>x0(L@Q^={6D%@#O5Hs!DH!TlQsbe#EQzLsqh{%LdU_ZEm?GJKet; zbO~W>SAsLQ>@8;r2R(WDVLWvKIQy~>n`8`v`@~i)a>};N3%TAS24@3e-lMUyhg_$; zLu-kpTG4^Z6lK%t4z=C&OM<3?Fz&Mh726_SJe8H~2O2y4r{5-N!wWdurUn^Yr=541 z(aMcCt6Q>#b1LYhJ8|ActWh%k-RK|jcY*8`j!%vGjoCYl<$Qv_t#A}CyT7QOq)tPY zL8nH-V-8-@wt1=ms$DNIbF?Pk8^sa`Rx6x>1JPbI!=U! zE@Iv5E4??gWOhsXYR-o|B}TyL1~G_4lO=9) z5-RMZeE)AJi*DPxVy@T!gOfBj4fZg?`WHrsPYvF5u3mR^4}MqgXsIn^@S81tvi$FT zUuh`NUtmgEV&2MQRSG`xaIVkKRa@{!E$`rGd^10jR`PS+a(-svvS0jrBMNa?m9Ee8 zeN}|kadn3IGR2JP=e7BHW!>G6`q!SUb=@VW3jW0WR_k}Sf2=>I;8NkHYMMDTP)bWa zjn2`If-X83K8JlNf(6a!?ctUDxXbyO*oe@05@5NS1Gf({GsiVjlDRTs4p=y?XbFaN zBjcxrnlMlUZ{XC~a^5c>T&d}aYqz7T46Y_ihI7e7kkxJ|b|rCZG?n zP*cF;{s2A%%AD3Re+wD-#v27|!uWvsVCoZCS7Djr^`?lMD8iWKdP<-s_FyUJWqUbBs@@+c~?v+vcb>K_mt(mW z8jiP-XI&)EoDnTBqg0XhLDrymZzp&s5P=X|gt%tbg0RqPTZOY0R6S$JEC( z8ZYULwSLZo_xarYX-@OjM<~&`u7h9ApE{so>@7Q->wZj}Tej0#T28^53K2y;v!UyK zD9JkN04CtM$k|W3uoQggEX`Nq^lbP%wg-gi$R{gH9zvqTT08qNQ?Br@e^b>Rig2t% zoMl?9>&qre8dfZJ7ktRmsHh&zM=)}mLbeiaUM&#;& z8lTm>j|k&fVT-t;w9<2ELVl$+XT+G#uY1n)o34ykb|we)TQf?$tY!XzvD6S9aB!V7 zUarJZ<%pQ~gqnN%cO?B@uS_0anf#AD{_?wWcy^mDEkF!qTb!jIB5>)zFI2l`hPB6l z`($5Xw@OWCc9goS*D>#DhA}6W1S!0(xUk7t-7g=zPUO^hes|r0+R(0hJK{am6*{6N z(UFZ&vEeNhn;K$fr;$%GLM|;k`VAs;c5a;o;p*%Qt-^#8@g7y5k@BrOnMyx&u6vry z6->g@;@D>@WJjB36~MIq7jahS9>CH$a%#narU5&0>$-Y3pzeTpD%bR_t00zW$%(c4 z%n^@NqP|ul>jwz^oZ0j?_}BkaZCQ*xh^m;6RBts?v<9L&U0+XidEHLKp$w!PWb1sY z+&Vx{4WBqmG=uNnR`m)m~tKMbgpaR7p5%k&6L`$>Cs(d zW!s&lcTflHDSfqvJvl|NJ9~<_mtL;KY4$wzsJ*l2dsvJhl>*D3h2qa=iGn|4sk3OX zc+{UhlD+7{y|Lvg(uysi=)xXmd|&3=y)vUqpD0|+cvb=2SlpW%xAM+?u!oD7GwxAI z;>-37UrN(^rE7QQ94h9d#eVjvfII)A0M;zzuh_C@*(=V{85Gx>DT@lll;a9SoUZyH zs;qHy+Mu8sHI=wx>66~#g5LJ}9{S1KEB)+)Kd*g_>U;Q;V<=zEpO=VkUGe87|7-mD z?yDN%#f4@F0{)y6@aLTW8UFOBVt4+m)##@AlP*p!s{J43&qLL%A;>z)NtuWB~Ekc%|rLjrLj)6uJD^in*U9+th#o3D^!H%{GO<$WDaO;4j$rF)-7 z#iy$=_x0w}g+t8bDH@H#l6hj&1(r=0sI|ml4}eWixBe0Tm;CwK%T(LLpZ{|HTqwGY zi$BdSbC3Pxe{lYsK%3I@XWa1T1@(qKqxC)Y_3rP#KYw<;WV+pJ{){fssHWMI9!^R_#%q}MNF`1) z>zjvVn3Y*Ft?@Sdx3QHN^9JE7jLKV4WOUwZiR;C#kNO9k0J|O)E9u@t)16LI*!9R5 zhKgSNDyJxSRwcu;gWA;s3%gzlG&`pToSnOkAVH>0z!f*!wV_j1g=1VLpPmU55Er*m?Fo%%8|o zv*$2RR@Iqd4)e6@Fl%`BKFnLj^d9DZrkwOJZ_j0`Dx(`R%qwLxnvgo725NqHytnXO zsQH9sFZ%VgnITE5Z1(^0X^jG@N@! zOQcL58Z4X<)f1i7zo=I)Qk57xR#z^l@S<}XxgP>nE0$@i(0}bkYzQPbtYgy1x-${K z4cR*w?VXTz|lr{!fO>=!dq?jv5sE^1v# zt~0&cO7%^yGreV{x}1Y?&-fFxl5D(g9%${{ZvyGI!>3A@C9&8m-Op6qEMrB(d5#BY zrUTXqS9(hx&*z4d7@_XI%WRP1`ZAkzGREcJ6zRq_V@B>xJPpikV#OIPGu8_y#pZdDsMcep`EVC&E+ay@7dp6>Z+WzIhObgsr5cddUakm zkEl}*nTW~e7S@a{aB%}mrDzNa8TjC`?-+!rk}XyaE4*me*RMZa8eJ` zdLeUbjDD&c_Y%?6gRctJk#0ZM&9Bq`T#|jA_9N)OviW>sOp-?OiL;Q`jrl$$%-dp$wRv zGGOYYeR&H%<8{)0(h7dgYm$v}2FL2zM(BFXZ!eT-@`+<*nmq3~{XS!2?l!-_)o=P= zc*>-6d=V`zf~?^j>#>NDC8RK7GLhLRP&Fio%Y!KRIRG zYvIuuey=&sfr<0v=w)ox4Y&SgGI{>9NoLOBOY8<(1^4_7yV=AnE2<}}u~=S18oUdx z{`5lUYB_IAE}CQfD^9zSlqK6QY>GB?*Y($COVGTo1K7`s-k_h`D`ovT`LDn0lNI}P zoouwVTt~8B+?$bCS=LrNJ2vY`dotgF_0#+no5j|{j>DbAyRd|Naogc;4myB*$l{x7 z*k{@_r#GLxKq5;=m}+uAJj0n<@zWa!1`<$5-JfFJ_+zdw&=-@J&8G$Q`+}cG<-?Ny z!&_+|(me8Mi`wQak#?17)1wl^i5-Pb;(kG?+`rpa+_p(P>v~HzS)T22m^;hF-@8fQ zHPQP*g@Ipy-178YEcc?emDGa0ezZgcCil_1i-E^Q0D-`w;>%&PVj19U;TguK%B(y!SJ#f%XnXCHndb|LSQOh+?{e<7DR_jv7hZa5ldR!7OSc*RpHvc#9 zT&&V|b=5jN>9{`6GYON?rMS^mE~P$o0*}NEac{|JO}rW{O}w#^z!Hw<;oZ=&x-h5- zVfxOcffEB4-YAa!By()OHx?Fo*{;Ner^DKQXpo8 zR2Anfhd!#LV>bzHmxabr!&>COt%kS1;jO9WcFcOFnmdSTkN%38o#0MYPJOqlkW)>4 z%1tGUhzaVuQlP1iGqpo&mGs%iZGCG})K^RnD)0YaJecm0YAmUC?OvQ1)4lfSJrI;? z{icd~=s@*SWl-xdVuD(S2sE`8Q{Ev;T1~AK%47E(DxSUE#i3l@5ccm!Xgmbfl#S`{qFJ) znS-Xz@8lwE*e?brE!S11#uuVd#8Q)p<(irf{~r}{KdjALm5l=@XDz+{F~%&Ta=6Lc zit0`4FDa_IFJF*1sAFv>T;k^ZU5Bu%b)V2gFL&U|?7E@s%_MVi%Qnuj#kxr<)&Ckg zI<$I8!M6*=llJ~t79Jh0!zQYpP(Z7``ZZoa`rDcg?BTs=!o+NgZL0@@I=}U zKrc~*Fi9qs@#`fXGVlqAN-t5(Z!+;TzxXLEkYc`~CH)z{c(SG+e_YgABQJ(I`+n;W zI3Ky-Jr+-1T&h(QE2E3eE#I7(zc|bv=jAWv+VhJiSJ3xj{cwYJdcUZ*LHyy&hE?5x z`e<``RkFOgD~}?oD5Ba9$81Wf@&B_Ug_;e<&xLldiT?)zvz^}L?yx-OhMJLa8(3k?^dZFWC>%WeJ4xU87+HnXFbGk1{In1z1@ zf2?jE_m`i@!gxfp9@&7bJ*xM91KtV@ng%YPeis$C>r<*XZ9|P1t+%udvb^tGz3sZtorJJ8vW%)YKnzaFFiPqJLEf?b^S>Uf8q! zE8aKu`pz9}u?In+_f9DAr^?b)+N@`F@aSFE|NH7+VGsU{qP0i=M$^C2uk2sWyy3m* z@=$C4R{s_Z+_itByUw3m4c5Z@?p02@SB5526H5IAW}B{WWQa2DU$d|N;EVl|dT_uGd=tOTU%B6T5;yZEiCZbw6u!N;&8<@t??#njrWuhE2xLpT|zo+ z4q+XZ3C5I5)z0+#6_$Is2Xi**fLLN(uC248?2(1Pz%*XucDIpSsKV2*08joREh?8y z(28X@MD}3tEeTGcZq^6snzUK;KZrgVn)ZplfxDsaKS-QG-{d}fN8kPr?~cCrAKDFl zR}A_}^tF@ztI#)J=-UhaurdpOeS72YwoP_fd-EnOYkOnyH>BPJi;;qTqw$t~p>aQF zSqwDF%bA5t?)gloW&YOJP@r^Oj{B{a!1d5vGollpI3Yq+R^2fkiB=)<-ya}#tIPa; z%#`q`znGDF)ZbxZp3?85kD_Bu;r^a$-tM3S5oh?^j+lqv+wiNJIcgGhhL^9Doh0aJEZyw*83q(C0cFLql||RUxrKJ>{+k#fd0t*D zIoFRRuj<6coSeG_eh!cK?%meRhT-^@Q8GlTm$X0G#~nd ztEJKBA3Mc{CuTEFJP$rrpG)ZWTeiu$jzhfWef%?SaW$3* z`GQWxfHRd_Cpfi)I~^vH85~Th+JuW7&Y}aCnQt4fOF!);!Nj-ozor-ALxb)Qk5m-|^V zcZWt&Lvg0J#0*V(Je2BbQc=L}nIBMNbkD}riqGWZU9lq<$y1_%S1ARAwl2JzD5a6) zq#Co@P$zl*I+i5dZ zXldPI!rO{E33Xekmf)ma zWtoAG>$Z6E@;ujjivZ1%6MJVc$bB@(=4u!ig_}gx7KrEM6sR5Wsa9+&Wcz2u`}+|EXC~ z`s+@T&{K;J;;dqYiQTMLJzt;~?`79vE!23jX+MX9qbQGUoFUDRd2$mT)l#VrF2* ztlCWUt z0K~jToji|u^(zQ6(tw6P!CR)(^PFNVpV((nkZ48jjX3AF*mY6_1=}qpa>$Kl2dvR- z9W3k0$ObstV4>Jx1k0NcB+HvHCd=CjLd~54`wLA*2w-Cq*|asZT>TfJ=!yk8|7cNE z2b@OH6XygdD#rg^C^Df?bQP%#imn9c(J%f5vR-Ah5RAeWWuM5ZyE` zQsLO}j5aML8Ivdc3QqI(iuadbKU3Fsn;&G)BLDL-?|nLjs-;uh2-|PE-XvTEcDZjJ z0T}O&ZKnsn|>oSoaDB?nd|0!;kN#R;3ZdP7IanD zP0k1!Xqvn4R{CG2TiHV-YA;8Zxuhm@>jgt{Sf#fEX9;_oktHCEV=zF_-CL-pA4OZeMEitaeXR$YIewmp= zJN##VO~)DgD&*E|{CL*Klizle6Y_XmtVdvKViFT>%ms70?O-p*ao+hN=(@UEXiofR zNSzBY-glh`I=D6q)vVops#DtxOPBEIrp~}(%&O4EfW+}4C1VL|&i=4oeCkcU?}f|k zpws=Exnm2AjONlCLRl*GZH)a{yt!o?oh6?eM!Ez}c#vcASy)1|+y{<5=IAA_-}b@A z-u5kLbz~sU7E|fgLGh6<#htrfiI3bu>_I)?!2xK3V`h}bAc%O*47`XBj+Z@Ehdy#( zEIB@}>xvk9L4_B|uP6)W*NupK`SG$RYX3j>-aS65>fHZN$V37r?ukt_RcK?0Z7fu& zU<)0rGh`w&FcDC!K_k+JYI>xWN(Qka1}6~4%?MVko}G}NRohwxv6>Lf1VKen zi?pU+`Mp1D@0m=1s^`33-~WDjW%gQo?R9%)O5&RgHZv73nlzMnQY^5&^)qW?c0}t$eIVp-olX$u$n2TKI5K8W#VM5NUNlM4 z2){G=DLMAwAB_ZdSj#~{n8j)~oj6uYLD0yAX|i9?-5_18pHP>~y-<$(xyp1-{++te zj8~&-hf%7ITmFL8-eI6?4sdw`^k)i9bk|BG(;c7}!C0$5ItTa?KQ}-@qtPBB3g>pZ z^T(e!Ku384^psyn5HONNv6r{Pd21OeX~uOj6eZWm>RauiY!|+N;0!eS*cdG{nf=c} z47C=G(XipF>*LI*9H&)b!_R47y3S8CnTFKaDAkFkE|&3@Amd+$;g#b!eWSVX z1beX=DR1GuUb0^XO$*ZP95){2w<%e_VB#`^j$Er#4(H!poPBrN`x=tX+Z&P>_i_gA z)Oni&$_Y0MV^$U;FF(Vavwsos0*;T+5Mum#f*0_W)o#G=*>6meQ!XJ17$!2I%Hhe|l}?fhXQQ z>#zTH^X6)H+ZeQ^vBD*z4^W`~5R&1j_8pM5aA3>^D^<)U&YsHZfmr7m{@f59nm0rP zf3jAbL5fh~LzI_(Q}|x96}dQla#Y+8zP5%`O`FS0I)ZQYMXjq)&R1&NU12PSg+}>m zTE77uKRz?i)q1XuO6`-mDba;=`zv6#q4i-6sZ`~3wIEft>P)GQ`yIz#xGJ<3E~%Li z>gTM4VKS6T*zv_N`^uI+;UtOurSZ-{m$m#l@~KCQmo!q2r?%XgKN)KH0H89dxp@I$olGoeys{XP}3) z9R)R#A_L=rvk{vdgA4dQD)=FAo)5pdg5O&?__eeilZD@0A8bn)JMc4Oy85Pz>P6if z4*+EmM`6{y<91j@MrN8>@DOtQKNlyeUNSzpf540(-Mh=vc(Mcb0I(i3U~^#24cNZhNq(ro`YkH+e;%x#A#pxfPvaze zz`UP(=)wBpZ(Oh*I9N9m{(l^-e`7^-if=vutOJ8pU~Tk9Y~M}rm_(b=1t2D&MG#J6 z&EH+%@nA*m7bEuCu^vO1$1`fKX`_K{){4o*mV%!i5fd6w@RP1zKoG~^*~PbVg)H}6 zAiDAwFH^Uu|$hAP%YqZNx>fF|1knL0h$6ehZsA_%M(^eDZ@ zwFG9x~faSdBcy zc5_HV;-$`yZ-O)fJ58D$1rSp_C=11TE3P3+9%98kWNtN1nA}4Bn;|HNlZ;4c0~5l5 zUkWk1^0;xGeJ}2nDAOShVDtBYJBm_-3wl+H1`pSBTg^JxlOr14Thm5}s7X2|iI`kv z+&c|pt{8VEjxOT!SmWMOGXa-8LD@vSc9F~4x^?V=)7J1ftIg1$rFXmmeu-_)*Wdey zXP0>%YeFi`^Ca^eW}c(W^TT%zAW@t1y*WQZR{Bl_id5kO`pPfiy2r{4L1l^Ws)w7v z-S%6v9)WCUB`T;MpU(9g%3IT>Y`6}ECRI~+HmFZQC!us}o7C2B6L2|aFCn`?njC{@o9#3jNS{H?EckADw8A-hqQ>lWgdz(N zw>IfBR6Ljd&%B_&v^%T6^nLV~lCq;sk#rJt&wr*a?dQXj(f-(k{EX-anNG>LUqHJKhYI0;QuUrTWA*4Wq!(LLM>})BKd}o;|2bxS`ZOH-)N& zm~8o`RpaJV%xLq>nD9oq^-O|XX`#mEdo3p-pjEv1{8^cBHas_Za& zU6QHQx$!7@RLCpR=a3WFM4vs<6T&;jg7@wSX2z!R76flW6l2GD&z<18 zlRP)*xna3s(B&G#riU1Cw!pmdP_U3!p5>K?VVq=LZRX2Ra!h7*BV4E2b!uFv)^*0n zQ8^HA;7g<&uYU&>$F)7WBX(zo)*p*v(B8s&?BpEb6$fKLoj-Fzy2#DY=Q<^>Q|dZ? z*Qt;L%TH?BTsVT9iPwTIHV+N0r+c_}Yb{1wXneNYt(yqr*w8&UmYOkSI;39H7iamV zrYfFt_Zx3Mq0VezZr;kv0psvbn5e6m4E!sMU7t3JqCdaI-VRUXIXGT>qs@hG$q`fX zES20y$s^7iDEawAtVaj!cL$e0xk5q_)ZvASSm3ev4ffD%W6w>TMm5eF!M=Ogh8C)} zel8E}J*rIGhhD*^pc&5Z1yEY=wRi(ja;uS6h677vhp8JwYvW%h-@33{!1;AeWa`b@ z%d@j~!2xOiV$#w@!n1>IkhD(hQtYJbl2;818NS;s1;h9f}$O= z7&(XS)+{eD&-XI&zoRFAhW=`9U1IiiowOoq@7K8v4Dvah7tMUeJR|%nM$Oe!X{IZm z>Pvj1C~DPn;pmr9)bevn>>)Zfw#V65%+esXE#2=|BVh;s@CNWq0#+9*m}}~4)lZ8h zS1`s@*D$N&80|@^$}LwLb6u@hdFHyHeXtS)g&5EgAYzyZ;1I#G^7?t0-UJVrQ8DPner}!Dou;zgnvKoN07mMAYPOlAhpgE-)GT7# z?si7gRm&TRoGpSxGmXZ;$zmc2F=!^2BnxFTBZSsYT~Mnvd@vEkGf-cl923eh3m7#+ z5b{SrFlUQxB2v<}aV;?l;%BPFvWZ^HlqH!AlrF0aCM`*vH`wVvMb<7a`GI}#eV^&9 z1B34?V;5LIMr%x}^75$aQPy*+sF=I|dhmFvLmB(u`Hf=)MVGq2dHD6N-&B5j&yN2? z?swHO-S6#;aoxflU&Cma58slq=%{!SuLmg6heYk=@3d&(S*zpwRE}jEJJEUiT%z_z z(&vJ%p1_AFTl!GSmZ}Uh$>Yw+Z+_H2=&B(a_{i#T+c-&#K|t{dr|Ee}97%-c9@mWo zRLlq(gj1zM-J7yr=f$Bc-hAnM$|RUcluc9?mQZOgjRxMdR{WeVY!XQDbxtgbSDfLg z5^|LoZGkS7Y2i#zG_KQAbriFvbn51JB3F05OUKdmMbT8~1L#FO)46dB z#~c>-5pR;%Ok;tk;tygjb5udA!p4N!7Gr<49#fnsn`$hLBG)*f-kwyf&qlh(s9th>0A}G#>n9~7(k;Xi7QG9#TASs2JD!@~G)Ly2JZhnfFgI>|1_RM65>>g^fh!$nWkCufYe z%R@yo#)gvoFomf8h?mn~6*1m*#%6#?=nJf2-uEg~uchTUrG-m}FR!bL3u?hajgXQ7 zjwU-azrVBX@&yIS(EQe7tSN@(8xv$00D7+kFdEnsn+-@Q$?Y_Yji z9RC92eAzl$&9QQsj!)Vvetx!Dkf?otiO@%Z}xs?$QKlA40gGc5*B=@i+pt6I4&37 zfYg-;1*b()=l?!kzfoJhVk3JdZ@RwQAOU1uy!d2bjYQ;IZvKs2lhxmhszvQY@w<7{ z-!IN8^dZ~~SLh!6JBe{WF?#WHo~Yj_g^F&RGa|HctTR_N;rMctG8SrcMw4dg)ZWDlJ=*_>J=1Jhsc6PU=39$43g1a z6>bNI+3{7@rP@u(6ElJoS|v(Rml6EM-U3X-VqvvT6mM7k?dS-VN$!T*vx2Rmw$o7Y zEaW3%*Iz}^LUb4n^}xEkftT|7G>`M?4jY3`NW09F*jL%`+z35uQu2(N9}Equ9tnzH9J1)R{@ctz0%CfNvGVm2VoG{5{^RE zNBnc#(`6R5jd8(APzE+(mK#cgj~FKWYRq zCp3T=N4IV!Zji9XmCOn->-%+0N)r(qoLe|L|S>?9+C`=F_L|?-OdU5 zIhysQu$;y`b3t~FKpxZC=a!mvWXthqz>H?MGxyJfhK3m=_RLZch$Aq+ z*E)SU-U9rANvDj3-Nl)#K9bCQpwu6vcw*#qR)vIFWXU_k6IF6q@h zK-$ab96(v1zx7de+(hQq8&Br}EL3UjQDzv9}ab&gYd;!>A&Zw(O)>VO^ z1nNfcG9pdFjQB=iKrlwEK1guu5{V?#!Az+xR3_smV7QhPU7+! zID($DQX1vXz7b}^L!c3xF2|T!cS)dUc&R1|qQI9-^I?FK@inblgN%jPUH(bot_mb$ z`Q8KJ!Ceb5$7&X7j;aTn%fh%}4U4aD;YqA3u|#cuT}@A2NkO_!8dU^oSbTay6ABLs zbf&R*rAxsS>fH-3WgZOA7Jw(fj`hW59dH#^L3(Mpo{g&GHGO8cxtlUASle$&?J`0We@VXf0-ingjyIP zN~u5LNK0cbj-)v5kh$rFfhxNQ&;X`$NJJ>F&ti6=bC^_keCZG0g#K{*QTjz3HDVoEzQt7`zC|j;yAm(ED#W|;Rfs<+ef?~YQWhd}O@`6C zaVI6jU(1|?JgfMC#NN34DL1c2mDi@kD{fw!2Ia-Dc+NVJ3muq$OS~?hS5v~y43qfm zm-+k(w?TPrQ#TrVi>`*D4kDI-q8PY%%~5kt%%06;+HW7zF#0(yzkZnUqiD>s&OuOO zQVn1U2VSsN0dBUb=`SG3*W7KR=wqL6Nu(h)uSw1)R`;p+j((KxeKGI z$Ok(3aX>7A3JaMwWy;ObXBk2>DBmBX{HCYz03Vr=@HeUl094b9bf+JHJ>~YsZ020! zGx%SyYTv-?@ayB3F_w(($&6AJM-Ajpe;QV5H(N38H#(frm%K)U{$ZW?Cfzf?W~|t5 z&SABrU}H}4Oz_0nZ}o)<5*&93j_>)F1RGM5furNWu@g8hKd?Rj0-jh@`fKKxkAvT) zC2!kX?Mp^^O7vdS{LuS;c>qF{&CpM0j49nCaJAkRQqv8F%27_ZXf#t)@ONNKrkEY9C z!@g<#=x%nZk|ncsAtE72N4l}D1Mltjg=94IDSL`98A8lG2q~wXI63sj zN_6p(OMkEVatQmX$nK@inyWlSnx-EYhMn(0ur&6r30ZXX$(;gvFpr>aXw)dRPy?JM zh(aVQTTriK+jfH!G+qy$!{{qdtixTz;kt4AJ%tQ_%I8O!z0rKnaAuobIfHbhuL~00 zOE#yT;x}10c4n44=RZBLbs9*!^epxZe-^Yl)B{%+!XaayBxYaVNy&nXhwhACwLdozjAnIA1-43Z3%Z;6hR zkL*ZtX=x5K5Od8rMiLwLe#%+!0rS(@2eY~LaIY@$+rJOKq$=#c{nmA#y)k3~2D;06>Rl3o*xw0x2*my|$X)%F{f|=D)vnGw1 za8m!Kz_V9k?iM?lFT^}F2>LnVvtCDZMVet!R7Z3z`u3FMh(aly>+}VlUGf4jH<6Hl zjt)ecBoc2pS#wR&*z`QPGcyDd2IEhs33FOD=Vm7Oz@b2`rc0f?IFoR(MNoGa4pFlm>zyTD)gw*V}u^nderDqtH&5U#_9nV zMKUx&k4bt2^xd#;XXdhhhy&A10_ z=-G>+A$d^!ud7Y6{~xOV2dEC5_q2Zp$MvU|)riwglpF{Frwu2#a>GjZ?GBvehI_nEZnBjok2O5g%W8S5$n>%?Io~bB zHdtVK**d)93DG_|Hofd#y_(o-bFn4W?1t?_T*p*@S(hKl1LslJ5AcDV_-V=vNYT#y zZjc{Yl}K`<&;9Z>z9ctF&2KtU%2RnbDKD{NV*g!ralwZeibK~Xy=(utmJ7jg>s@=f55wQ zit#5FBki9~RCw@4*Lf#VSx{T2WbxbN;t}a!wRV?uu*P+or2H%$Y?O0haxqq^7LVbF zzPZJd`0+o3gVbEIiE|*gm%#P~IBv0wa~lq@;h9d{!_(C4>lc}tttF;&Gk)59r<>{? zoaDy!da)C`jAQS_L0nG8lesq5X&HzJ7P>Uf!uW?vO_E+WN$00Y@=cQ1iCIdKvSVPN z$;2LB(usF?ntHCjP?G)1?o=#*V0=7v<|za7g!eG;C2f_Aw<=P2kQ z1tm9@njm|<3-aA2rwYQ96W#4Khlqa2cSPrzPK@AbikeL~tCdSUW-wI69YN;qeKPGk z0z!-7K69J*_x$EndfZ@%37{)9R9sY$eEZfGeN47*U5uNVoOT0DzU^D*dl?hDV8Git z;8h|o?h?-{E@iOA_%izYCc>QMJn**>)9IUs-%gBmgLYTx3k>}LZbsUyu<4*V(5HhX zTK3XGv-+ijT0MEI(5jXWR>>h7-I)AulO;C>k0x<)WB6F=Gm%3Xbql*e_YlNb#BL#BkYczu3!VAZO5(Y2mc7l)O&^{0QgPv+{ zjwCUmo@`;wUr=QZ$>a9MQo-F3dw+6)lU%Snl8QL?v)=iG@mr2GF6^S%A7cW^{+Qh} zus)P%eV9_6@kNrCRikzJUT!zxQ2YaqIWI+;FyCCr$=;&2#F`fAYM zQWLVbyX%ekPd$JgnKjrpn7=m5?;1i_FVq6RYpBu8o=}tP%ypf4uG8W=^W})&)hBjd z?u@tR@wmxmAhZ%_~k<@=B%0uubk}u{=X=1vs>QN z+4A&GLEBtM!78OnN2M_SCd7lvbiRszKtENT~b z4w~eN%SRNn&ah{WL654rBPd=0p9aie)Ms|1*g>qO*-c!G{nPsLcFNg_EB$BB^TVBu z!RmX++kr_E6N|l@)ngyHFPF3>qx!|6!MC?Ap_zug3LPJgGV~q6{ zqsYxDla^tG?J5DfSTAmj_w~3&=h(e9>+ojvQZc%u{-aTkxm^Fw;9G(7)?8DSQ_7EE z-9M*uLmPpz`kW+7>|isyOoEmRErjnDMAGdwilGf%{*|~T{M_s~=KOpvb%3jSv9U-z z3sG$-Bc6ht;S!Q;aT1#$6Q&YvB-0#eQ5mdoN)y=G3eDRc?^0=#=!TzkXZ#(kFU#yh zCrMy5mC1*DjCXIC<`%FOOgw+Cb*)e@xKg9bHkatcLylwf%upxxLHRnI{X$nfK5i}0 zFW+8MLK@kyhS#W^Yjq4*s}LEmhMbr+Tm1yIEzEYgrp7Ml7p#nN$(r8)lwx8 zOHE3VBNcnXx%}>rFica*T@c2mWU$(^Rb6{2`G0y_)jm~6x{$UyKe#~NJB@52roQe1 zP}5T5zaC3@En{6ou?xxvoRP5CMzKYX4mfeWkCokKL8u>6(JBK&q|{tbpkc1HN+u5& zMBFs(~l16>&h$;6J+>5~x+5}L(OTnXSUz^3MelD4wGWl?Zv5}7BE_M!-?AfO@e}%aXbiYm)=3CMp z0hty3J%cQ1TOD0wZGii%;A_p{&5YXf9}sa{qNh;W(Viz=C$Ob*shl0J_GcdeeJpTZ zIA1wzrAXPUCWRZknP92**T^;3W$x^hZI@1hvcyaAX=x&hpTFl zan(Qm0dZBnXqH#!H16H5P-oaipjba{CDmUrJ~q!U3>&gpce5|4HF zprE(^NJ8VYfW9y*kJ#(-jvy)`9-5B4{FvM3{*UWJKg%ObDG*(%b;o~FkG82HntG|q zc?Rz+`(u?B#-Y^HzQPY9)zV5Wkn|CkBHB%=DS-PJ0;g4@sfZ3|v@}htaYswp)M4~{ z?UU4uv4nvKs}cX4?TP*&9G1kX=&$U6fkpeoyW9=J2}+y`Fkju{?7D?0H|KMicX2NF|`*Y3opR&^Ro94dt z{R5io`&7*}{2cCmZsHrY*=_0(<)*0}N2;lz-*fLOWQXx*Zy)^`gj>^W;n73FfzB)8jS@;XD8DKObDjlII@{>HtNJDn!vn+?O&7uz)ro-k8==Z5o+FeD8Z~3CR04??vL*jb+-&FHC#fczl zNuj(og5=EALDFof!gwCrw(V5fRu(nMW*5)&lIuOoL)Vz)p_>a2-JL$V1b$i@ir-G* zD2({foD1fhe_nUm1SrS6K-h$Sq|}4DDxN2EH&?M4W$h6xJ~cx%!}pZ!Z4z$>+6F zt$F3JLnSs>aZ1v*C{?n&s621HqEb4syAfSkTHAsV`#M8CLjBpYF5L;l;Kgx{J70v5 zpO`PHYumEH!wIH&_lZCkN!_aZ0AA~AwTNGOJdm^>QW7|p7lG4kb*4V6_~i?0vC`2z zr9`IvI^31G?1E`X+O1vI^hZhBJ=qUhz12CE=zYIn$n@8h^w*UpuBgF4-u1l0yII(G z4IX=_`zcvhlerR(4BqhSbLJ9zTB$yE*>yF^X{Cs#el~GhVe81?gp2*HB=ZGVUhKDr zDrFtFjPcheo)rJ9`S?a)T6OZ`QtOOq)%``uY1IP}SxwWF%EsYmS<_wUP_3r_{0(9D zwJvmSEnwIHg;U;w;lf{to+7(`x!OP4BklUuJw%TSn{@-n^gPM$T6%D#vly_?rQO8=VPSV zklL)o)7)i2=^J9?3fp@`rG-37ljV@kbT38 z6k!MtVz54a;te8^$G;g#{jpPJ+h{AeV6M|lYndMitvHQ%U73>iE&ouZ<4`yUeh@?_VO^)0g&5c;~y_UZajEJZ+i8`C8-zMt!W-vBRJr>3oAX~-7 zfK|S{%~btXjU=l)wZ=F%tTWDk-ea8q>NL)8w&P@1h-Tz(i{r&m7c$2SZR7Zj&@o~? zbxj#g;gZqs_6a6NtS8)!JhE$Oi{YE~_*ZCAiKV8(oEomFWfiJWtaUWR#F9sBCkB#E zS9jiEd}tq)=L`@@eXoj&Sna}qG?m(ajK_{v7_}MXE@O44z-<%1Tov>)ts6jjwRrvJ zBeg~%D|LS7X$(AS+JF?!DZ8F8nG>_|N1FI^im%L%f7?L(*=5aqAsZ$3Pan^ugSl$u zlpnTtTFY4=3wow3K>yMT-OIo>2fK@|3u4XJ?lA%T2{?xUZ=TuZ2+_5(tcXBjwf~Qr z^&SFp;|bB3c_{3Ng-MecEU_G>jXg9>5Vo%{mqpDhl&y)0tP70y<{cU`QOD@qP0VX` zht&59S(_#UlZmjy3EvSon(8XpB;V(5bkUatjpc0pq`Edj4V*iX=_ZkR0f=QSe9Rm# z-<7eRyDMS$BbZF+9^ z?Np>e?J|)xo;$LUR+#(z971AlH_fWkdR%tFxk3xh6-^oN9j-qxg6hf;b|Y$-U1Q4K z1G{rQop0!%QUIkz-k9bv6jG3-MoCc_4A7bSYax4K^ZcfHPSBIP$lu&sWPbm^-NA1c zzX$l${h_Gfe10yz1)>!k_ky`Cj@extzpMFi$q}omvA5>k7Y{S{LDH{bcMseL!Gw?Y z5ZJeZ^P|b&l1ynd*@&;PmERIFs#V6dc#x2UOHMmP?gskMIqLp^{Mv+1%GJ>=Ga{P2 zNdY*kTt~sY2?N32qc578(O6$pVkE`H!!;vIZ{kdZt>Q$6csX{@Kl5^cMu|VwCnGJ9 z)Tz5Z0Mg)4IOe<+Z63yWDY6W@L4QRXQWda*k639+il)x=y8>xeBAH*pl0%dL!>-{g zO-`aDdT36D%5%XA!8;ff{0-IH3Ue$ zulQ0(QIXVApI*w2f7cs7Y#u|k09iUlo@bquUi2+?ETiVWv%j+EXKtM(#D@?te4`ii zy7k{_O7}tjT-&otYmL3C$HC24mM1KSC9L#6z@y*7qLZs-{-sOpKJCJ8K0opDp(S54 z-il4?#EA3HZR$j?M_)591ky)>yKFxePSk3E-FY>_<5a;I+5HI{0 z1Vk754ABV@`_GZUyRGLMcuj`BWni_R+UCxWz^hK$R9t|4NdQCgJO{8F)&bXA40)sl zFD`qq&x++5m*oE!_<1n-GtJYX2pRd=NaB^;h#VcU7kT>ddk|b;rtJItqN5I~^Y18v zIzR42BN8O4bqAbBdlgzPc~;^uyxgHGnyVSQ&}7X}hW4tVOf5P<6K=j-i9!=wLQ>wkUV`71++1DNA>4ql=DEi7wM40R-c zHN(O0yV_7JfKq*6>s5cTPAq#7f}#X`u5crqTVd7iP;SRXk+$i7)LRx8&hrv)UsMF= zetlraRj&{-)o-1Y)M9(tY0|^@jW{B`zo=U4tV|FXZoX}Bds+P8OqefuFUYkz_E(4P*^{J7?s6vX8{y<^90*ngFq_uf zCG~b!D6y*udnbukO09OT#0n5lvD$x&C$zV_)ViSyr^vdYv%Rl2^dPuy9h}&kH$Y?oBHpj+@Y0&JhZUfUd+YYm#NP?y|B-P3X!b(c>#tmQiwo z-S{LLAd+=(D%SBoqxE=ho85fA>gMw%%cUWJGoPw2i1Z&nj4b=>!a%RTZft*DZMsfJ z`(Qbc8TK+s`f+iWT(%hxFtC?J@FbV*?=GE{>%Z z!;Z56J=YKOq3x=Yf_Obu@E>NKG-ZU<@!yKwJl)qbrKB*;X$~+TG-=47A;_1Q(=)XK zZT>l+ME_bcyt<@+iZ9d3B)Lo)(fr@EPWtGw^L2zy{@KvU(z@V_nWC6GYg7WXk9Xvh zt@s};c-8;TAfOMP2rVBPFGJAgJ{G5u&iF2@%$pEp`OERFpJ2#OI3o!6n(b%Y zUT0TwPrHaO zmGq}U{nhQZJi>TFf%RrquNp@wF?(dym$*`~PyH-TEbter{RZMNo{nF|;SP7C+-P%A zw0Vt^(a>Y8#0Z+e_ua5N6NnZQ+t@njP*%dC8OBf&g>4 zwPHAF$+z?xP)zQErSe9+L*>3}U@pMW!V)fox>0%cmw1wDUHwI>Wsh8l!+=9k%wJl6 zWM6Hr+{6X(I8wCVzHklob1RmhaO8%9Q|+crEmQ6ArUg06W)!`euV>h6H);9B(%~j8 zw}^yg<%t&BKHDfgF;#I(;ofn{&$1O-l~tkPu~flN<+53^Y0StXqR@>sLj zsQowrqkFu~tC{PZ0B@7l=;LQF$6~2dfA)6+=2IW*6GSfZ>sw_6j*Q43v&*$PC;TVh zVRU=JtnW7|GUt47f+yf8;_SuWx=twJUnaZgAG2C`uq^kEbK_&uE}uOb77y2&QW}iN zQl-7N*O=!FtnHPRPt18GU0=kWUeY$Pz-m8?tOpW5PbBPz28~fF8SjcL>t5q0tmrxM zA(a{43E?z5ekp#XX-0=e5CMSJ;pUUGk??`+mYeJb>as^!QI~zVZe8RXh<`Tm(eQ8T z-jKRadX}f!t$Rw)Q?w@YKD(|nz<#AMD3@Ys(;T1=RGA#F{Pw_ z+*7gd_1-}@0P`LEwnm$ckwbL7G4>l`;$daJtu54Dv6*u1g}N?2VAkDBeh1DvgeeDR z-Gh`g0FkeH#j8NCe6L(~J<1JJt_q!NO6tOlU||d1{CPe(uS9b)XR;3zhk)Nxl25JI zS!Auz$qob)4{2r>Sl6!RtY%JS?s`&hza4Ad*I>Wm(VqmfgOCmE-}JI;o*o$gfR!3e zZG>z@WR3G*Asg7gSxSmf;v*=Im*9&U<2Rcb$8BQFnxHLJXa*EbGa0~2dqVbzl_7in zN}pYV>I0X)z~@>9^r-Im(1$=63Nn|-FwSxCUJaF<-Ga;<-8&YC?6)(sM78{iIZ2>g z0z)@>u_j0YeyIBmy>BpsD8(0Y2bJPC0CB2pGNY!yvgJB$3Qs*mLksL1#bVDG76}Z%QPhkdCLMuD|z$?+?M+Tl*dc^XdibcQm zu%LC{Bl>Kw*89qi`*?B!>rURN)XO`1c_!~xksJtSJ`C{;%tEY_>k}NnTy98uv-{SkuAJ6P)#9c83OB#Qv$SqLbr7c1coddxNFm?KmZ4r`ux-xS;f99OPTk+#IfZ-Nk?hD)=`L1G3pFfbKD1P^PGoeln zt#2a+$n2iil?YJ1{&o{Xh??mf@Zz-~-MYJU z`vz%ybDt?1wAX{`$!c|+ZiU_MTyp}ic8B^g(i|yC>>t|t6&41l>u=K1{`S?o)y`Z5 zZdLbV2KQd~n+Pfqd$lPqHFEjiaxqyMSnge;7m=hpSdyz%NT|PO00oHlZ|=LBvkC)F zt##_a9+|J>$ta&6sG%8)il`_^e4AoX$Q^ZW1X4F{CPQiE&XVf`e9v77oXE?87Xp** z_SNf2G&$M+r>Aitl>YTEb81 z4hbXaFP9+QA;Bd5fyyWg{W;fhe~j5N;1f>XC^4mwc8JT6$+$DS3xxxBxft?t)NaH? zVif`f7W&MwLPk${7N;TbXRG~AGK{1y;fCWscQHF+nK);GW+OuF3yxK z-d=YT1!MN)U8dO;P+twYTynt1{XS)U?8c3ezNezgIu`(J0jyofs%p3V`wV}xQRWc7 zP(RpOs`%Q!3e;(z!SrI-?OtAnbd`*rY^N}+H>Xehc$_DT zD9vl4_FwZb-o7_>qSn81jWAuyJU@Gbcv_2$|HIV^f7d+UGS7^8{>?o5&GR|)++m)N zndj@~`LcO#)N|lZ^d;zg074T=c-doUJ7&b zihojG=jP{i6H7-fuTkSnUJ7&bI^mP@IwC)>31-xJ^}2to$xC5wUN5n^ery{z5rMIF z{Lfxux}WoRx4HHdh%M7gAV@M4H}^fnkPvSfCj{%uQ_xuSf}%P1h9j6|3u%S9)P3g5x8jb_Ay1$V8IwmMebH~mc zOt#<~fJvA7y=zdv-$jH&0z#Vi4+V(D6yX74iSZ5wL>plM;bQ^Oo{N(Q2v_Io_XUGT zfPn)H?rtR_Fqm)R8yGAwA%X#s%D?Zy;LG_iSf?n>9YHzf^!^B=?PFo^-$Za>pnDwq z9HiDd*0EC(CVhjOb?xzYEfuMVKizS!_E1m)mFYP2Fvsw3*=VdhPpy+J}zbU5G*0 zTau;<;gzdJZwn_^--0u6AAYzIAk+;zw+I7Q?8E3wrguT+^C96lZKs70nDyKe&*fr4 zs&oBr8=5<+$=C(q)lB{Y5N^^i+B9ewT|@*@R`#%d(__2T42r8^HEEzr{i|yr2Qh|U z)dxm*HLotD>vyN?!DS>P*|1xmYWXC0jB#g65M%XtFU&E?1s)N|2TcLM<9OgvY~V5i zhbyjdK6FYB4IP)Av_rMZ)TWKADy2JAZP%x2xjt1)J_ecaDO%T|5?x3&vgCd&q)sJ* zJJ^8JT+#_Tw<&$<#(CzoakXe^f{uWfuHU1=VyXIffY3XF%pG2|JB{l?=w2_Z#kl_p zLVL0Uh*%mqI0o;@aZ>;vt~9guPqu^-Td;q!CGNpT^%8vKy0B2iU7srD`cy6XfX@WH zf{$t^_$-|CF|b*5ylx~~j5wc|5f*!3f)_zsFJz|MR%&B?NY6ok-u{@o|I6_w80}O) zWIq3@jVeV_8}49LFbb-Sm2NDc8~&>%4o<3OJCW+gy&6ki)Dli!G!K2EhR4QAoXpg4 z?dd=btm8$^xVZC}ND;~(N`o;w{5bUvKhB)!%;`<4Bwn_sH&*F9W;7)|L7~pM`bLS| zx(-FSTv)IHO8} zn+)rW-lQ!JCU$}uh?Y{T{Y_l^df`R7<=ce|K~S4hqLFxgPZ0pmy1fpUJAfv_culM~ zub}t{*uJU^x74BwB@{K5{DnX?0QrE3e9iV)1t#{>^$`LFLmzBv3(H}6 z%b>15hIqNI7u&SG`X0fE0e~jSQOt}xc@;JNXr=|M(0>BePp&e*2X!Jq8pLoT-ObB^=MB5#UJ|&&I@uxmxAPB19%{kE$$2Q%g;NNA`*~tJ<*b&a zUk~ga`Rn86jPKaa!yf@N@}|EAYvu@ssXJ$uVredad zFC(_^KM2q&aE)Aec&^4}5Z_=SfIyB#3_ir8MeIh zsyFDpvj1kO->{y|XuZ;?*E)I8+UdUg6Z+`&(u2lp8z--q6mtM}L*2F+_G8mF9hU~T z?a+Pm8t7;ib{i#_;O%wGy#ng?6Ua^L%{hTZmBr>3mPzmto}|WiTh8|)z5*_D z(j7ZJ--W~%4Mt0q>)h))54uh-4pFw_s5x5M_Q`MPHDk#?HxEO+9Mq&Iv<*BlXd93z zmjHa*XJA+I9B%WA&h0(@{aRceq+7yv4@a%=Xe^NSpoY>)-A((YF|pkah?5-8-d7=4zm)!B8Frl_gwWxVqe9QZ>vP{g{WAk8)Y^opmq?(ZZ*c<2Z7^Tt2*$qke$UJe>4+cZ$N4H_tKFwSxVr47#i?7H#xpn>vh zGc;`z!OSg@4hQFd=yl2PmwMD4`;H1X|5z$AomB!BJaSd;vqZVE~7?_7zs1}7{DU^<=wwIf=lh%o}xO^5W@Jr%{;R`L1 zIC{(|!WUe?q|2jAvOHSGet|!1&zy@{u5e&xYuGx2NAkK=8u6idfzV>>jL>3N2PTY? zE#biICB&J%1Onn(;)Ii*4cW`u@P+Kz^8-7rGj@iOhJiHkqZV|4QFifpkGlPuWy|y% zwIn0M1jCY01Av-lPY6NiPWx&Y0!(kjJn7l)7=|b$cfHk~x}<38V*AY2q9-{uh_N{0Z~_@biDPW!LB+L4V7O9)VS6fU?(c<*rn1yM7fwd!Uk;zrJOiG} z_%ni1*&>c?{gsPZo$P6I1JmXqt~oC`t;L?wqUG~Lz+|5@L&vkX@p3$4WE;uU@2Uu=#rJyxzrY&|#L8QpUZX^AMS{^3H^?LQT zeyx|*Nk?RlO(gRQQwaklk~ujW1rT#%sfA0F{er|5^9$_hXmPnjqE>kYx5i^m;fJo& z(-C>)F8RcAW3X?|6`>%%aIN}doqJ&Op?my?X}ry#A*Xz?Pf*#4Fd?JN2u??>(~%NA zjBe{ecS!Ousx}=vJeN#qIS?{$gQAhg=h$Bb4ZMgNa>B(^d2U)TQKsg=%V`wjQr*gw zuLbMX8MMDJ+puYjoTeu=4jGyZNVBMwU++ev1HF~Yh4hXCA+1elY@d%i4l*zPOOMI> zzz)w6MGQRz?iwx#P!@tgz~{Ih0A7zfUwGKvgf}sC)(eHy#gN@AodeV6!u(^U?%)fD zc5}qDH@Wn){w)ou;0Jt7+|JkfB7Z2bMf)*h@Nxnm>YEMQoJyAyQ1lJyD0o9E&sFGe z9_sH8q~k}~bz_o=P72kCX@rSrteA%q8}B4YW$HXaFPx!XNV9WtW`Q`~nfXB^WrT!L zIOoSgM(ZeB8wj=!v)ZSav`uxao#lw5cOr1w8Hc*=FaFBw$`%bYyr2LG5qd^5-8I+H zsl2g3w>@f|RF-;#xb&d9E~IU>z}5P0&W|~L?>{FzcYwTsm&tbc@cAf{!Qk!T7SwhE|HjaIlh#y%mxLq4`ygJ5h7w~Dk1_85_J9=m0P|}@hD35 zfHq;SPmb2Y-lmpN97omM@zT9!?(q zm2D)+6lpsXFm!ciV(M_hnn_F}%;rXJTj@paBywZpSS4wDhnU(C`R!D|P3mHn8s@@m z_D7VLu|N8~-3~SWd0V4D$W9m35`+jGWDb<+5t}%Go}KMT9FFwdF{vCga`2I8;61za z7&n-|_UzBDJ->XwU3&@{MhC1t)7`b_bt(+qCcF0J=qm&3&r8G@wEpM_2T$B!d6vB8 zNPQJ98lv?G110_`VFA^Q5RK?XroeONYQbcuT&=~}xrBOhXwcGS?{xNHi!Xq191-H> z_LMQnj!q)w7O#iB#p}j@wRl|$ncpoIEe$?Mlm zsyfgyE49rF>zC!NU)JFDtD{YE0fV=GP1pK$*?4EheTP`T?(ZbBz&m*Ta?eig`ZZxN z;L-++X6f?w0jFnyR;^Aw5BO8}xcYxwsU}p>+s{YseWPd34cm_*;1mixZ>2s*XBs9t zcs{n$N`!ojNYg07!*;Brwm#5X56v3`PglJJ>NO9^C3k;w<(I5GWhh9t@SSMy#S6 z9-tF|iqQHoov7fss@x8ZK~a5P6uyKe@d?YNp|OKMnUQKvsw_6^$r}h8V|>vC%;;#4 zd9JfUc~qy?5Rhll%${1KWAWP@O$QZb%C$Ga0-T&VkE&;DoG==RPX9p`^2%>9WrQfh zA4M;Rzw+h3xWylI9yvTdj5?UJ!of$9WE-{a&ePvSR?8xAp$H|hqY!l7%O1q6#9!&B z7@CJ&eLFDKmgufIVy`OErLrfp7?m=hM~EqrYTwo1Wiw26XO%c#yW1mrKoxU|HrEj^ z(tPxQ2A`5OUXC~6=CeP@Mxz!p*dKK70_(M#!*o-pqdlI`2K$zB@tsEP_VO7fhi={W zXq2r$6C|T7A+{VEd9!$N>fP<>)l7s13PC&=Nk6wC2(E2Z7)TO;E-XbEN|z6lF_`{( zos`GF|De0_d%Gqm`ka^Pi{pa)@yLV~{2iM$*G;QbeW|R-juDG5Id7Ja3b<*>f zjv_aEj~l!AH{{Cj(eVat2eY|N*-2b3z*d#(PE0Mj2RAah%WKi1X3m|@3(6y|6HLe~ zp+-eK=%ROb5M(=*n!f5aaB+>r1s+{A(u_F|wC*_j^L)+oo#y$rp4-TKX4SY(9F&f#?6OisC7?W8Kk1aM;ZlvW1LME7F)#i$F?i&~51t({+%nb7w(Dx4 z9D)s{>;3c?N7a$XAf3WZD@@k)=#ee^60exDuEo)5^z14fLNSb_C{b&AH-S1dw9O?S zCDCVM5yQ)pn`jf!#G2>D0s>=J?%~CY1V3JqBCQ5^6Uo|5L7+)gTbj#yQ!f5t#8>$y z#u#D@(05(=@*!4Y7fpi42Zb!ViYF&m6|CW6Guq4udykLZd^FVv6Bz$)AZIE|K1*BM68 z2#Ov_%X46>*B~pt>;(XSDCn4mFE)vYsT``Il;z-a2zZ(l5s}mACzIliPm{vQPq7nX z(I=MS&#%??ibJO`6?m18xn3-R!lux+U4)MA9l)mvEMHm0*F}ei(rxl&wR3R`e(U$L z>vVRTl)SI>bM=Ifq|&H{$J^7?g#&CiLXT7HWXSm81f#TYDy z5wVLu1IZyW4rSn27M2Z-vu}^sN#XoPU2I|hjOvJO-@!W?e59m%MzxW%s3k*mR_uw{ zS6&92-M)X;Bbv=J^%0Z%)YG2V$JwWLKc{4AXWK~JbM_jwh@ivnwM=eF-=<{-G5c8`Q7 zelkL-`Ib7Puwir$Is@Psc-Fa!V5}`S*pFa>Swd-F`i{6Yue>Z~f0tgkqQuy!{t2*` znpcs^(LE|fKvp||)r_*1FD4|?ybz`axS|u+`v9~*(W1cA*%)oUoq&S3*)&YNRKwla zwZ8jp_-r0_{u=>vmWD-C9h1{on1&zac8G8S9l29mUozS*X@(f<|c11!dkw39gzGDY{T%{m$lez|XhfX6NCy{(g^N z`uYgikj^`v{*+;qkUM^SK=K3c-_5a*IwTr}Mun|0i4VvXnV;InU6rt$O^x}4gU@?L zKc3`4_bA3}@9WP?Gsbax_*dH}5|U$sKWSigy6CtA2N7@b(a6FluG*5brG z{J49p^Y*$_OJ?ru-%H#Af|TDl*H_>GbGyX6%4EEs_om0e#%V_b#?5o2;l##SWLVI8 zj(xpymhN$gAO7pt@M3h2H(kFLFPNf1vcD{bL^_EThC+K9qt85 zlgze1%L2B|*>0Zy)*|-lr!Ug;ArrD*Pw$WYEvrA$wVhxTNOEO>21$*CPu3S%4oE@5 z%L^k}J&{sGd7$3N1Ipv#f|j$MZrAmMyhej1JT$Jl${c;-|3Uc?2(w}`sb;qcb0t!( zhpSKtQ8*PSQ@~i*K>v|UWBB42jMy~5@0m3iF?oI@IT?*gvE-Ta`N3#*<`QM)G62cv z>QsV7e*mBSLz0tAGDBm@Bg06$M^aOBUDMAy;CBmqE)7fpDxZh0Rsydk=rmPtL{8 zaJ}u~i}MTCCh|H=q=fUjHw*=eP95nOq{8={e-ep?CeVjs-k%`8^GlPb0{f02C&d-* zL^naMZBw_gUuS_n)PLKloaK8PDr)5S*yeQ3La7-;#%+n%Mg5f(%4=L+Tx1=3oo~2tL81X!T4!gwJIT1CiI~~cs0_d}Y?R(?J&Qrt~_tb9-9kGC;k?ga? z80W?av|;s%3kc_4;@E}&7|d!7K^eH)AHSzp*0|m~@FKDM9b&J+oh#S$OEcFjrb8}8 zxsi0!63VQ8E@N>i<+KuyG4dJtFTo$-1?$o3a!h3Ow;tvUrC+x>$LZN8hD5Lb8|)Bb z%jhkBQlf(e>rMA)Fz`KiR=r(?p6pQKulu+G4(%-f+kCS1Gm?~RXrAGFcW12VNsMvC zMm-sA?w)E_K=G*a+YvxnSF$%;SY);Ot^05{>;V^!jOvON^~T0g)|T`7z?6*6w{6=7 z){97>Z2#Y|4dst?b@?xR7i|ggLMS6!{Cz!UzKJL2_+jsm}GKc_xOtGY_(T}z#V*R#k zOdpMU6U)4UDGe*-c@Svt|+=sc%3g<-kW!Sha&M3T@H!#5I zc8m*$wo_kp=q>xX_(e>!%l^$-#xg=pYSG#chh|w1U!4|Cl+1oV?~m)f(Y&{wND1RE zw0=r7w1sP}vr3OlgAJr6G zDc^A5dYH_V8ZcLNyD+-uIp<>5*l|w*m&4m%h!2f)RNl(O*9+ z)Vc405BgbH?#9VBnEvv{UgFeCh|D;9EhBf(Aq0V*qEg?B_m26j!O zm~p~=U4P`=oyT^*yHk{N%`h)d26C!whO(`E<4iiVI06Zipi>F5D^Jsh&Sdd80+U5% zlr;kW(1r=-falw87gzDAF6k@mue^rzq<&d+uR27K!n2FlzQTLbr-8Pd zPp0XVzJDgALl?-m`-RcN>X6X_5ANFPqbpnNvPKf+vj1byv~7HE)Sh%=WO;w<6#Mgu zOyS}$M4GXG(SzLc_;(}d7NA!T>#sa@7L`c6Swf7<`y%!QB{G#!uCuKOPSNCu6C?Kf znLoN75!KP$#F}Sxc`q?mve96!^=@E~lh(#6w~lt@A6b(k_FK8yg&tD%BKH5s-g|&G zwR8)^p#&*n5XFib6%|wzP>~{JU>MBy29jH4{OPEK`kd@(0G|!Wl zg)Iid_ACJBM6+!G>eOKpBvGb}oMX||G_U!9vd)zT0tbUgJtts_x&m~8*bRfjuXXoK zfH?4}WGINhY8dFUfC_<(M%bZ@L4PT*Y?NqJ%>@F^#PpGQ3}HqpQQUqD*)2goY6E9L zRMN32V4h;xh)oe;usDVuNNF@!rgY^7JxK(EQ1xrn1dedVWOEr<`=LU`=IA+P7f;E| zF2*MI3L)=pol5?6Jf%T8wr`D5f4MuZ2(3LFfd;oU_4) zV|n4-dph`c*?eIgvx?DGShaWjAJu_!;4P|Nv}5fQ zoUOsF&NWH29x#ctQ{s~eGh&WW`!gobABm5w<3dpgimW2;~$J&D>& z2qX@@T@|JlL}f+8p70G_8`%x9kfPqxZ^p%@<>W4_Gx z4B)FgOvEI#!@^en@-dCGBs46a`W2mm8w~}^r#68R=s{wZsUSn)X`8ty$WnMC&4LgZ zLcP%1A&G6FhiYNz2&o9I810CN3s-1SXT!(}JOi8_LY)D|x?bQm1q{GZFojK)!uytR zf!&W@5ezu2yB8{>@G}c`(q+6+;;KMAS%@bO!J(r?sG=`bD2Z4b?J!IDAWaJ_rs4=Z z5=#iT#Zae1DY4kfpZQdMFcGag0ZgbBfdmGDk(TkkKX(KKYRISd?(+Ka6j6r+-e|`f z1R6?@sQ8gV?DZ@amKnE{PT5JbO5D1H|r7%N*7XJ~fLTWC=zEl}opqNj+ z1V#||C<5vQFfqT2=sdUB0(w4m4_IMP1CL!`N{4-HWl-)YFtbJ%LaBa0F;^j*X(4|) zp2MgtlPvxi2(%QOV^y8u&47T<^QksqM5To&Gr?Hb3j$3811;m-KyGi0meB}jl~PB8 z3zL>n-H&VCmEJ6-@GcW31yQZq7zst55?iGppzc9^DW*^dj(WkG?_;A?#TAIyRjUBZ zkO=`5P}Lo3Ks9~cCb8wOlPY<&={4~b!Yr~;kSRe;XvN`seODy$%-VzF;4L9uBz z%^Hdb_bLO(?NC$7T^p!jfSh1ul|rE-@vHL;VG&^`EuAbs%kAvbiaNmU1Ao%=IzP)?TTL`u#ZzIB;iZhcnq z@Z4|Dv&n?&oohI9S-CIraxUg}I6um*&nvQp)Su2OW!Wow2wyuT6^hzowm(7u@AZrEa;%Vab29&Xd6*;1{ zflUZ$9J#XE$1uR!fdpgJqY%( ztHB=jL2Tg~I@)RKf;O|;A+2qk&%HK0CI#Wd|YTGlhr<3EAjj)B>bOdx#EW~BDWiv~>rPACOaSbGf;T_jB*;Pj*rL}@K8 z)FvWe)SyLJ!rpOgwDKiaXd`zQ>WRn;ss;zW($v(TYJgiv?mem%YKGZBavUh^P_HBs z|G5bN1vG6j!asQN-y>YZ#{(k#jD8k=g(3 zOAWGy5m@pm}>_Ql_~@b_Z;eF%SV z$KTT|QJS;xw-WxIfWN=tzRkG#BK{WQ?;p6kH*Q{nzb)|hF#Np>f6L%+IsCmJfA_-Q zMEWYYnUB9|_?sx_GCXC%eKu}3#@|EnFhu$za5LdP8q7GwqgR(cN>bVB*v-(*e~erA zh{b5YWMGMY&?oXOTcAnc{(5^cx{fW+vROv_5{{;13(CL@ZDb?H1Xazn4#O!M z*3Z!7riK!sV~HynC`@!@GaQKxR6>V^l(RqDagGMeL~#}^MoPvYj&KQ`BV=pa7(b=O zX23iPYH-l`s9DgiX)4pMeMwwu8MC0-!9&_TV7bk(sxN73Su9D@lSas>Hoi3kPm9aoN`!o8R)khr6bcs0E|NS%uF(3s#EThLPb z5U}w}?Tf*oXYGS&@xW^lwL2sA?^b(0E&d%iy{AT)g^W7m&N~8|NE%-r~bDRs)LgJTm4VB ztw;ZZ&gX!L3kr%>+JM&dP$j{NgrP)g{iz>Nb|m_ME07_oe@-nm` zDJCHs32j=$3gb|IjbwOOKAR*x4}chNP$t?i;OO;?cyDY6KHg|UHaMP{i--}&2u3kz z8VJnLm#c<#NHUNW6SRswAYmkE z0kvea1wSzXtQ34kWD|l;CWAFBz#zH}29$h&P(;+9p@XA#GJ>WDbz3@-Qk&R)bhm-K z7?<*Z#7Zz>U)Zms4tqPPcjQr~Gz(ZD0ZALWgf=c=qP~IqK=OKQD3cxp1B%y^L2ERq z`2<#qm|!O4i6Lr(!2}e33$+;H#!;PFO7Wr17Cgjr1s00~fx=)*P(Mrp(qRQ?l(CTo z?B*&=kWWj>#6a4>pJ+_yDP~+s+a*#IG4Z1@c}jSb=}YSDZ9qS&X+t{?V;>BB57>eV zR6^S^IM(>%>xLkeD_xw36H+U5Ik7tF*9Q|US4=}Z8tA?CT$xqL@hFN z6Il$I+X$O%nq?!~_%oX}`!gme#Ssm(4jlq@4FbVUVs!7-uLy>{PlD-xM(~!AQUo*M zGEyeoSH5VmJ(}noFyRt71Z@=vClwr>M%uc)P#PHi1&<+DD3M%OAp56JUAIH6z%+c140k%{Cr`B>T zr6NlylciJ^#_)og7@)Zc2n3c2fj;KeEyM)QpkalM-AO`d4WEGt+Qb;pHe2ut56YiV zHwq61vpjTjptR0lBOw?O24poLw>o_m?Yf_q0ZSkrLjlRwjPe5b?Bq;FTrLkLK1du^ zKJlRfa%mNh(kA+Y!!jr65RObI=5nTUHbkaUv>@K~Of!@SceWFthVeq=p;`D&$0d#BW&v2y0t3z(=L@VGgW~*T^b*Z8CfBCwpo%<>NB0Wno zJvaxo5{QOK52nU4==JPGTVPD)A`-xK3TW%jpc)+`=54ApO_})y~9T7CVQW-RT*!-UDPT{SpMO^l;<7ZDY z=)?(AtCI{Uyy>-r(9n!pv6B)yLk@(H2zyZ5&#+mcd-^~U5n2Y!#0?Z^Ce)~sc7Pk+ zLt8T9J_6$f;n6aSaFH6OQ--4fL#>%7ulA88s1?;JL|09YE{sm#sL3#+-_Bx2--~7? z_@Ucet<>aLf)**YSPFjN1Vf8ef`Zl-qI99ObTrH|(-4s}$sxB%{2r!Elw;kFU$dsI zhecmlV_BpaBcZ^kK#N@fcF05|R_L9Hs}E}(!3C8ZztMy($*WVvZ6_fEXeL?IOgNU1 zg1(jprC`S7Qnc|#%N12BvjnX%B7(pR6EziMvO!Bi5#%eC_ACkd79Al%@KjW*9$na& z&|6JZ*E{;ntmwPZ365$qq6P&<^!r(i=+bCLLWG(u6D&-yu)rdRkRz|3S-TH759mB_ z)#YdLwvinYa1wNLiUKF-iuy1-qq+5$o>+TnLBeGexk)WH=gkRL3Iz z8?i|h;v3-dmxx{qNW`1A3#IGMLh~Su_U>KzOC46r;42sj-D{#O!DMWqJJ&u$iywd0 zoP)?*YT;I=&W%_kR|S_|z*d2I(0Q}Cvp7P~NL65xtS1}3))oD`eJHu+8yBE&M7+`g~gc|vB6Lv zK$TzQDahESOgwlhF>vBC6clF#3PVS%n>N%I%7WwvR2Z~q0%N)zaseiUnq-EW8!-mp z3j7Hg?h~nd)d^SN>r`1tdk(yuo;VK5fw+|w-FP{K(tjsE`fu|a-z~q-NL`KRho*+# z%7Yrr*CCzjg&N8o%S$@*4hvUo#*7dw%WmVCmeB@Bs&$5)37vvZv52 z42M;lC3H-y z9)`T2t8pzT6n*$i9hl1su`Ny$zzNwBsg#R)rh-W_IXd6F$>-3u#j{};Lda#{T$5Aw zpZI5KCFn?K#|3uK(!$09#Hj**4pO}M%g1)u9|HUq&c|RJ;d~I-mul;0as=fZomU}# zEI}Ddr-GfhMusD|bdaS!TsZ-A6-;BA{Stl47|}nJx$4%5ngcPxQf;;*i(_2QudXwU zZJ)#&9NTUQ2T8Yk^5MWQQf4|j6QnQIPOIk(M5K+i#Xu&Ikrx}j=k=nwsh*vN_Psi) zUd5rd$cv^S`V2Q$Fa;uJ^HUZLD`3X7PJ^K|*xU z1%g;e{4*Q~N}UQ3{*(guk)@yzW?*aRBcCncnhZE?KMeZ}x7c}Mw6&RRa(!76#U3fb z(jX~#8l%|8BHkoR*l+{-!Nt@`kT+}9Gql0dAF_yjZ(149f2q}1I6`Xh-?NbtYXRXKYFL_6ANe zVz?yH8KhdJ&;cB1i#drih5+9L!LV3~4F6S~W^5@vR^rL;4+8{@5+&k6ct38eMau9_ z%ukt0VBQpm{|fVP3U|bT0(=p?pH2f5G z7_0`t@H7R6r+7HjuiNnSOgcP0BZjB8&f)3N%+BGdMSLE1z}GDyh9{KD^gpHY+u1VRjUV?S&2`~u?KvQfQuE>X-4VGfKR6-FyFP;My zwveF)94P*6i(slE>;sr^8kKyZBJ3H@XTu5}TSCdRQUnYk4i%QAowD&`X5l&s%dap( zY6!1FCir%j(@+@knN29VWhFROisya<7OWRI-_rrw!RI4_esC=dozPH2i6jUKbQ}lv zT>?9j*MTV_W_4V1#SxT1lL=+w;53m^goZ??4mfo_dLl5zLbHqGf%*r5@Y7xX0flrU z?P6b^6PizAtK=_fEVwjS0&|L83n35+PK^6L7sqP3QBg+I)8!+9NkIpEDSu(-09=L;m$nyA4^yktdKw2Mmohj11!Sq)5Z7Z@37H6D@G z0M*A+mQV!}ha_2oB0vyace8;b(;|UpR2_94IAVLK5ztGJI0D82Sl;NIzsd2SQ_F%H z4La9K22Sdobyh|uiN-5vBE$&c>Z8tj6FrmcpVFZP7-poi6qL}e$;^=94@}<=v<>S~ za6_~L*n7nnCbDJtjWDxoT$ItzY@}W2gT8La(UUSwiIE`K4)cHO1lL6X&5KU5PIg+~EA0p6Rxi3e+1qnF|q^7o(fG5Wq&%3LP>=^_J^Sj z>gag%F8o7LaH1GMiyH|{i9jSM7=v+wqA?J&Pb6gcT5-IS51Vu4LC=8Jee}CQb?)|G<{)Zq`XZ}P&+dI?W zp2<`!6Z{bS&8PIp4m{( zc(~9ai~qLvI+%Z<5Y?b7fZ;^ydjJ`1$X2|+bD|&{71y5wLBnj(oP`iei{FOoS=L;! zN=yF%;xnW10Yjrv0_#<1c@)Tdxf9wK3+*Pzf=y+Bciuo8GWd2x90uNx4eOX0;LAX% z00qOaqmRL=7oHMgJ4F(WE073KXSY}|ic53Y0-ktxLPA2Ksu59}C8#!9kfiv$I&{`9 ziCIX!c2x##)I+O*And|sK2Yz%ps(r$?jRF`(FR6u3?y&R#tLA3rPe?Jk)%q8P+<@X zB%+hxbV)`$A1+6!yVgB*haRa@X((Bk2oSHGXbCAZ;e2hBGGs*E*e&JZM9N!;lv|*` z)Ma!}`8J&0(!JbNJ~;ek%6i>Wj)Q2Q zGi;^r9=f<#NZkgEUeAeGTN6T~t)$(TTVR7%NiTA@{5eHYYDK=sf)eA7@2vx07 zIvn_*08Qv@VebM=B0%Zn#pt2bpo!4h46rM3NjgtKKNGRdz^cG1tr{ki1xgW)aNZy` z+}X<=Q@6TPA1b6+n6mnI(Bg1mA?>Hc>tUuBb7Us(Hta083Ew7bD$hxj9|GI#I@re9 z+%lL_(TLJHo->7}pxDhrSEax%Ymy(&8qAE12Y%v>n;VQ9~}#pltmiF8kG zA3SMP=U?$p@JFCmK^ma{VwDClTe#8+HzeAK5$m`N9AhKJ_!u|wkMqxImQ9q^8#pQ&F6D5o9fY{+H`3N7^|U5kjIlUv0ER=3D30KA0e+{<9w{9ZY_%-b?wxOLVxX%<6;f|#I`y9DHXA0oXHrQHWQz6I% zaiB#|25&L2m`FCL)3(&FsTIP$0?^@B074P0Bw-5)aV8oQy`x*|7ecwfHJUAWhN|!o zimXl)6`YZUFikYHM{g^TDGQo+hl!q^%z=qR6!?mz|xp}-U`nEo)4zqi0C7x$(?D#f+pe(1+5~Mj)i*%2EZ<6Ouq@6#)sX_ zm{I{BS^?5vh$RR4I08mshF))BB*FCI|*g#O^ZjDe~aC?Xy-&e zQ_zZnQ4}c6WvQ^o_k|47Ew%wxDDo0$ntLdU@WlZUrjUdlb@C9f~4M;_cjXXc27LP`;XdIiSk*vm5N*CmB0pTMDk;Rm?@}tw23|_ATK(F^il*bHK`Y#NHlms&K%Gb zAQZ~7jZ4`y^E^z@j`|3yvMkWBpf$FNA*vdvbYJwoPt1D=s0KBxB>Eq;4b)l_)eH~- zHR}V@CRD2$k^gY^4G0YliTce;w$eSe5^S@6%~pDBqm*l-^q38A!6!s?pmRpyXz?)+ z7KX`65Q@Mg2V~d}(Eyr7!HtvWDKAN0#pKpl@U}iJlHf1mf3!# z3PGko6kBBnDe0oIBN}BTs@B2B6e5A~L;`>i)M*rfL4*y=mSSdeCc-1gW{O4Z+Yk*N zHPlbz9&lh61n#X!;Z4Ff#&`8F*edf=O0IO^LWqbiurY;I0PT#Wq22%Jg8)n)dVCo+ z4SgbjDM3GLf;uyRQ0_?XpqX0IYBRDKDsMxx{3%Ta`nI42$QTn)&CdbHEU4trj<(1U zE=Gh4>};J$I84SJfY_^nOLh1~htZ8+LW4a_0a@Zy#|{ZDhLDUDd=pDWA6!%LZ&Rc* z7XiD)PgE^^fb-*e4}l*ajl%z=cFlBTc=EFh;0GDM@PkTsU}WgpwF9#};{J5O?RVTC zuGs3FQ0)LoWU*j=Csi6qL=cqV`;lzo3&T6N+AKp15wJLeIG}+c=g(GgjSRuV7}RMZ z&StE5bZdLp?xo|TFV5irv5*{&8Xg_-q&UZ;{~T?&!34vRzz0}HD#Gsk4dOSf@k)1b zIB@w_Y-?xTTX7XC)ScvT;A)BAvK4ssfvs4KBxEUDVGS0%*+^B4&=S-!API_%8h%L8 zgZncOlfgi{DRChWsTirr%J5YYEW?6S)$$nHA<?tHUIIs%kih~x zFPj2FO11$^s$QrZ1?9gE1?y@qSU%Sy zS_!lT_Kh|ISz2FME<>t%I532I6XKyIap*HyHiG+NMWFJ(ANxR$*hm3I6c81Fzz-}I z*rTok(*0`)j<%f6MZvm?NEAUvoFI0aJaMT?ikbz){1c4i5kE`;B*yI5T~Fr z_ISFbCf#o!0Avd60gGs}0fF~CxOoi}zD)?(V!@&g2~9)R90iGJ4Mn?;36+FO z;^XC?Xeeq=iNKqusYc)q6*wSa1@#2PV|GkIe9W#sm;X zt2;1I3<8T7JQ)r-ZGp27#-VdHW5uwH*fJty2>MPV_KA@bMQk2|-~Lad=MVaS36W6^(*xg4JPemLp?oh_j% zB(j|bN#;?9!~2)qJL`Y-NLT&Sk@>$>e`qeKKNNwe|3XMmT7P8zbNyA1b<6+ce>Z;$ zp8sAr`BeA)zA)O-QIm!m%XOB%uNcStKkYVFn4M z>2K;`FGm-(!SjxUnIx2kudXNj%Sm{Rga#i8cWJm3(p_rzs3ZIrk#H;tCy{VB3C&5k zoP@R{l%}IaraO^@$|N)=p&bdAlTb{?4<_w-r2PyD`;*X+gb5_9C&Md}_0l3?2`6VKG`(fR2!E*^ zP8Y!A+d0VM@WNsOrjYi=C4}9DglbC(duRN=Fc>Kk={Az^Pr+VO@cj0v5#bzYJ<9c` z2>-5wo&|-XXZdR^aCP(Zq`L=tcv_e^+H*aFxsI-Wo?(uY z++Bmc1091sy?wa6;BZH7u)CvAfQM(;B==xfo+o#bPoS>8@l<1XFC%wDw`p$ErcL*9 zgyqUSJhexm^Pbl(l`h%N2;5Hl== zVmFIupTF`?A^igap_n`$e|QD+-Fb9&KoFm23y$13U;5m*?v56X3ei)!mmH*$<@k zl)_9?8DhNu3;!fT!e1IraV1gTXfj@Ak9--VyEI=9Pp*5gPY};1FhE;}?!%>fcm@S~ zB4Y9|rSrL-be0b{$j>!gR@~Y)+}H8I?&8S1>aBe@D)09mbaBwS=*2}Ng!>~}%NLwp zsT-?M;4UNU@p=38+_fb7I>!lVeJEr->;t&`prF8D$j2hkkMAEKjnD({(s)5;1b(~4 z!+dyi-Bv;`m;*y`r^O;L0O*wq^;v}aj4P^{m8*}Rr-z+uFxQhXc1vZptG}lW4EWug z=6Hr%1o8uT7OsBod_PxSV6X*{epf=afoS05+64!O_;`4Fu!-Jj!{_?A&j-Yj_66>N z!Je}NUHzoVbQXjRfD&Q3@?32^{R4x;nSOqOfc9>Ih>6M)%~M^-k>W!NlSsVGv$TZ!7%ffjtm@)sNdHXUf|povWAdX;+QsSH=5_ok>) z`cP;+eEwd+{=4!2UM~MH)PIHnwD3iz=usFHJBkY>2-wJ^9<7{0xj@OJlu;@vjXiw+ zUXK6W_5VLifcBJC#t*1`{a(=KtU`S*VRNt}N-kN@fLe^ut5?mg{2%hA(cYDcgEesotJ z-49mt>Hpj$k4xlemPgM;9?{R;a2xFSfqpgeH}37=jy^!|8D19p)$hWqfIDo#|5JF> z&*8I;Ke_h@ceLQca3T1gL10FYlrN%?@mbQHK5IR?9e(gI|-KzCdP0b(17m^i9wAq1WSiE2^2RNzok zF#nSUL5#7q9F9S*JjCcq+kH1#9;qI}RDnW)6&}j(+)?}Xbf5ee;gLHE-}3?T!Jibe z{cv{Hl?%EX#ER3saLK_0WMMzANj_X>XoX;BHxLdy0HfLgo}tbllj|tpv9vQ4C*pks zxMAgqphZGr4dRS-D1D?7JTE-R6P$h(;5+4ekn;I|_O_gBMGsv85)3^EBp9R{aD{BR zyx+J7&;xOa=r>+;qS1fngJ&zHLAr~HOP6_~3q3HH?&9=kr^qfR5Q0F9CRIrENNtph zwC*5jx(0blZ2^3LH)wbKO%LSr=z(7JVAlZe&H#MS9DrPgYvbrafuOi^4-DW12l~-b zBe;U{Bbcu3$k&5M7Xf`M9l954nLi9}H)*0Xy_>BPbT=?aI zKiLHlh$hU9q&`=RLD-iNkgez3-y)7uwmD9tsnHH3kiulD-Lo6r-w%-1t z(-su7tu8eVRThj*SHp&#*I?N-RF~HbnZw%l*hZnWF`D(=x+-5*_bThk{-@y#;Vs&(L|+nLl2JJaCP-){ETHe|AQO^~`{metuUPtxF2~Cv2$Fn#1fEys~!i(m5y1 z?5g$clIHZYsaZPHBWKQHm;FsPk*#z5)8qpVy_n2leaWh+sdeXQT=+6v83Cb(tGn;f?Qo7wHgeQx|XY%_Ru!F`=uPizkEHnHNJ zQML6rSaZ5SXl`qk|FS$|QmAcj;~krP+RoUXuz1-VqgidcHTe<$@R0#?ucov62|1j( zef#&RFFzkMcfg*$CyIw&o4ZW%xa`j1y19Gq#8+Rp9BCIddEE0cyX@_p+Z*RKbZoR6 zy5DfS#;Z&_HdYwW4lWR{Je=Wn0gw<^qKUcvaOiw5sXp0|3M==AHGh4cJG z4tG@sQ0C`1O}f2#=+ybf=Q8|*NBPXpU!tQ#^F26!SVg*L?cs;>wQRNT91$umIP3cP z+@^Cg7xa!?{BfWzcfnl8vtp-~6ARogSGe)Nzg#dpDBnpbLw(^Gj`3CDirEV%9o%sE zoO$HJ$n4}XXW5q)I(}^p81&-ZLhh=xjl;KV+Ka6&5BTzYp8erLE-xD9ueUE69`^9` z`y2MN`c3e-8`Naqr(&Af&*CwQ)NNyn%^1rT-Bo*VaIE6iML(1CX6sq!E;2JoTXJ(> z+afQmerewh=`D`_IB+bt$YXJ(cz*-!$DYNTE@pkxnOU~D!D$NjijBO3?=(u%NLOQr zTyx4-pY%Y78#>WO)enz2jGvm4_pG48VHy()>)YOEiAY2NUlTjZeP3pi`exMB zxCxGW?2;WR2Cj|~&zU!{s2z^W=Bs}g^18?|oIB@1&|QktV!KxgHb192`Pb~gD$Q0p z<(zZUJ>!+)#2<3iXmRu-Cw13q1^*PK<)?t<>k*^bnU6U<;CjhVW$*ME{|IL zetN;L%h&k_g^P~Oceyxj!=y8|8=!Y+n=Br6%SCqAlDLp*pIx#$0>?bc8teMC{q7_I ztUiTB&bl?NV5@7nkH3fI?E&Mvfljumf;?YDsOr%*?Hc>u(x4l^Q|`?7F#ST_-6-s_UA6N zeOO`ZS)cz^EpB$Kr?^#L!*g(&r)${SrME|X@-$P~(o+6#lvnSPOV^4M7JF@pajuc9 zO!R8KaO2Z!w=6HC{VPB0YX9!Fo<)5dnK9A(k@e{Fo4>kx3x?G%y|iklcb(RWrr~{x zz59hKE`FFGv*Jl|(L}|%X)9DseoQa&^j(3me!3kPacITT$G6(!y&tc*Xnl6Iw@BIN zyzQAYm1zv0rEX8240_M=X)?K|`kH>qr<|3tLb$Nfr}v@)^K(A^S8nlL{cvy`dnH$4 z2}XY#wNmlubls^9msct$#v94hiC1zOkFOVv8R4t9Nc-#V&;`CXd=2!Y>=S%XDMbBv zweq&_c#pv4cV)l$PBT+6T$?@4Z(Z-r*-lrS{O;!)?afHq=9kx+$Ecl}?>9ZIC26$m z55LjeKTH;lH1MyRYhHNzq?iA@H`{IuSh&wWsKj*I<}3I8duMITx;RoHU`w#>l;NjL z1NL}#yq<5pDj+JReb@Va#{yovwndJVe;zO~^5&=HYPGu(m#Xk4ZtO3F!!>QLqUsV~BV z&TRDRNa?$J(_-CdQzfg_foF|eHVW6Q_VgPaVL1Kb>ZsWhhswvlUA=rs^GM5gL)JXs zWiqX<)NaiKGlA?ox%f3!i4$U9voh9jjM^`%_%^O_R#<(YBwj1x`-VYQ<|md!v@I<4 z6(}Y}7>&=)JFT1(k^hyOwn()#qNORx>x|vxNYh7d{JZ)B8L|Sj9uGxEMpi~vRu27S<>ch0 z;iS;M$1|nJgQB3=i5CEfF;16p9o!R-h~K;G{wlt^wtH_ut;Zzy5hZ z*zP}x(yxC=J=^_3X?K6-zPNe2<6@{}HSI>fePZ#Li%N#gW~HYNo~d29$#v_+&|#b8 z;2yUf`2)39Hl%;s|9DIw>p|I@)vd$MvV66<)H$KKD`VYC>i;mPSGH*Neq;MM#8RtW zMw~V4#J%m!%zdLaK3eoKT=pVC(Ubm&3$t$c4KAw zg5nFao)&+5RyfLWi`H2O@e0YlEi}gE`?q)Od1~l4ee0nSS?NlOYNK^Q-N~9Ae|6&t z1MS|*k50F?N-k^cc~|W>Zmw>$c@2ce7!zQ)5g3^YnGqhta-K+_O*Lj z7(8QG?>Ag@$-QFT%3h3_k8UTeupL#+pF4BI*2D7RfxmPyVSK?jXKaxzS6qW#F;kRO8z=y8_(a z?AB#SxK1To)C+V+nklz$j?zqsTG1B0M`i!bsb23Qf)9>fc~I8)P_%7Mok%i5({{rd z)@+Lng><*8UY8`}j*L3_L}PIO+V<28H_Aat)10e?$Ios#vugjzD`qa)vqA$$MX2q$ zJg_9^;Yb^!D>VDN6aH8jm9k&vJGRor>d=DmYuhW6=f=s3_V}B3+-32eO)?(5+I@_L zex~Ar_Mi5Bx3(o5bh!CxyIEt=xQw-@?Wcubb-zB1A2D|4D~G9*h4!L3hi8n5-8S^X zjRAo&?H^BFJaAX|X>{nQeIH&FiNa56EVptV$Pd}Lb{tLnwTiM0u1_dN= zn`_$~uoXL#zAcM-c0jPwj(^nnyspgh)!}=#B*^VFpI@jD=N}gHt>Q`4*4KV??oM|G3hT?qhhrZyu~U=3 z3NI|~*gVXoZ0s|wrf12fO^ZveIfbjwSm&U4y*< zhy4$~d=Yt9=|^O#)8yonvMNd{8Vj9%aw428rkS=rtUCU7Y~sSU1LysRSj*(D$=R!R zFz7;UTHa8lL;IN5_D;)ul($J!%e%#GPNCcbcbV)KR>zaAA&ftUl{%Tbzp4y3T-0u3 zn5>pnWByIOLu1MAoC&L|EYg!d@85oD;F@KDGnX!__bd9cZ4}ukQ7c*6!bwZ&OlNm8_kozJx7)c&q07zDAcRiH=WioPMIa%A>o_NbUm-#JpcFK#CSo@BYCyn(kL)opTCe{d8!B_X^tRL{z*zJ$&kEc7Gd0a9o zm#?jQxp~y=9#*HCxL|#`xP$ z=P&Y_7bIR5eor`Jo8P!eN#5UI8(6J+>KlD+!Sf>(ni-TYyYB3|SGqpssP=>6K1apT zjgjYnWX7fz+`FU@t$uHmtDn%)pin$|VQ8#mYw62zR!0=v*C^hZsAKOD zbP-LxqDp?)asAO{@NOo_v%q{eKnaq4qtI>?UGlcRlA0{$x#=cq}WHei-p>odh z5q8n;wARj$O$viQJxhGLSm}?KTIFX=3kM!8eU#d=q5N&M@{?nnw>O6+$|*nmev&g{ z1%6stoQ9&HHl1cgcv|dN4G&Fypa{I9)hxwFM zYAe1LXW6IkFAgug^2v*l*ni!sJ9{2)uO4wGM$evsRdAZ}CR6SjJs&slaKuWxrF~M) zrkQ5`PYTA++ZMYyLrjp zjC&71}zN)E#p)E?N(%Z4HIpXW)cS}A^xSt;OZPUz`$$Lv22J5x(ZmfG> zZlJfhzlliZ{D>Kb^H;t(v}xAOi+d89M0>~G&3?yv@%H)&4Vufho#~k^%T3fy>%2PF z_qlr7rJL^?uYJcJY48@&%C`>mdR;g2tjE-4?4f;k6pp!3a?p4C)cV_$r>Yl=+D#jL zvNl+ynVS=F>5&09_fXMBi%-#B}F3itW; z%CDCf(R@6;M}AzAmSFcFZP4e+i3_r4ihNe+aqWX+xpQ}IYVT)~KggUpy!3;uhu!E~ z=i7EGwjS7a|849sw@59&GtZ6hSYNklwtO9Y!l`6u_8dX%_00yGGK9W!`+kdwxN_jM zho`};$tMF84%-JG{=;>B`K_Nn`>a`@ToBLSU@7yX-+Du5=h}%pg^>ns z{rYI5zSzW+6GuAcnMU2ul|MFdy~fh!9PFK0zxalA?W5j5=i2Pv`|X*ts)N_*BN=s- z56WC-iZ0*3uJ&ox&f?UudwNk@6ZJ>ry-ltyy&;(&6veg*ZTj)>5896=*T)B^9B=q2 z{BZ4O!MX(z0U1U4nOl5oCmr+nxyF6PP-UN6trxg?M^=~oFw>nma^7**0sCwf9gp`u zbXy@U(dR9#ZD_We@|V)N>;P`2{kH9iQGMrf=dt?W(QkbGKJNN1sZ!grZ&&W=hHr@?_pig-W+fI~j{R|M zr!V*7rHG5iTej%kN~yW&5n)yK^3`*vvhSB8&eZhzep_|o;f=m0P0Uv}-t*nR?ee6) z*R9XyEhv1j+fTHf73#A3vB&<3>#1vc-N|1i7FtL6QJvj31hdb2JkgxpSJ&x}{Jifb zCrkgRFjKAB{WyH;y6~_of`{2zwux%PB-VFbn&#Y9GmOhHp64(=_;tz8w2#AoCR-fS zPVoG6#dcTL%yB1=o2^bRG5GLP$8D4ucSD*^f>*I-jPv|iOCzT#D5j2`IzC$BeyDkD z>4g_ry^7}RiKe+GD(6(( zoa8x=^-soqao;MN+xPV&&*k9fOhj_=Fux4x~T(SZ}%6@U(O79}Do} zI>-?7^&C^UDvigj~1KQ+hiXgbicWQX+@GE!IB@awe7!&5+Tp#n~`q)E1Q}1kG7pQ%&HvD?wok5z` z!NMnBbt8+Os#@qfrObNwG4BSf9cY@_ZB35kC6qd!Y#G0`WS2YVC_kbEyIS?!=Z}mb zRWom&Utc&>_K#7|=CiU^xb7)AyG-1EIE#5Y$@}r=?DSdYdxERmjty4w&2Y)xHRO?Z z;lT~}UeH|bQft$$-J%zYZfvNfEbM1AbM|O&t&b~AFP*9#Eu*9IW_|CFOvB`np68W= zucfq>{E@n4dk`z#XXdiRJ~fIhSy|h-X`6Pum+x~)Pkormwe)mT>`Umaq%16O`Gn7T z7qwHZhcrH}zw%{>is7|$M#Bx}zoh%AXjfmTO3ZeDmN&+E!N%m#y_O{QIcv0ZEw*p* zbn%(+dhGm#c@=q$`_y5Uq@%h@Ni8!L;4RrFc*AtU+2{2RsVYp-M-RG(eD`&g~< zv2h=wQnlPJ&wjFd^sGJ}37aq09DH!rBxSH_RQ+bbOpVr0pN_VRMPiBL1uC3vI z+~?~Ozq8!N%APZve{^Y?cFy{=u`@VTyH36K+-9>%e#*C0FTFVjpPD^B9kr$`uX@%V z9mdbia;a8tcRKHl3wyrh&XlrS!SeHWzlvziJhtcow}HX(-xBXNbLZK;yT^sNr|w9# zJ{sPS^8V!#(b|g(BGhlpcT#m2l<8uBe$}h}D~3L)J$^+kV0dHNDb-%5-A1k&yG4fn)YK}E4?INy6?oHeDMt<4e)f>|{n_oJ+ zZL`alP|dt1#^8_MmmUsZGX0WKqy3TTleRjGWnL$EP0oE~<>#AMeKW&U-&LrQVrDw$ z%;?dfL;X%}j5IzsL{U|F`L6oY_M`F_e0-7rbfk6CrfIj{@8t6x7xw?4nXquuvruNa z-P#A+xITNdv`*Egmp#6(^7iG1(6a11x@RAGh*@*;Y?tr2V(s>9*NpnOnSE6nOq-V8 za(&rWc5BYK^rs#rlk7W6QI{FP46`jyd*m&@1n+9TsyYUM`7wQWCTwx%5M{ zen2qhR2RMG}CnNv~SH1iu5c}`Z?4DD5(}vVn1Kq@S|fv!k~ctMM7+C z<<{%>c?Tk=+LwA9ULN{vzeC6v1@*lBG2`WaS{v?|m;34AxeYs;3IX)XA)<{8f} zW!Nsc1P-snE2n4UgK=f8JJFR%MfOJ9)>u%O?flD{fEXJUw&4q&Z?( zlA7}OIWp7t(`XfrO4D9wT}j^b<$x$IZb833SLT@an^ct^ctPRwF;DHg33h=>#Wy!S zw4B7czF}7D&r@1=RU~!iu_wkF$9%Rl-+uh@R>{wI&xhJ1EbYVMUfp%; zqa{Ikg?>kgYh2&Z;?rgk8HN*7vwqw(U;XxR@||+dP#^h_Bm=XnK7Qw^x2CVBT@+=p z_s%*#I&SvR*=KT3EEpC%@24KMW%P5+erWo7ZsM*0_1N06`if^X zmwG5aITBF=&~v#02vbbiy# zE`O(R=;m(r+(|bNU+l6ofTL4+)nyk8Rl(DB2X5`(o{z9QUYCWz$;OtoGK;MF7 z?bt8FrTY&yed4rA8Wb`}UE=oSq`X_JmINF>m3Q{^?2xHTGFv|Ee)FHFI26>s(^grm0is=xwhZ3F~m=XzG!cfBdrHiE&}@y&_r`nW+( zzdzr(e`ZpRGmol&QKE1CirpIi@pa?xly@ek-#$1sc)-G?&!5b*>%05C42K)9H=GJ@ zd(`idGNi`b^0n)9SvXZcqd}|KGm6tI^AWv3~c{m~a)4K~OtzzgzP<1$$0!&rh;HAc%IzJ_*QfsE^}5Zi?&G#y8oOl4n$lG^w%oCOcHF8}{mQKRsngtE z@z;(uyf>uTtXcc+j$f1!{q2xRpErv*a-&Ms!sTBbm>8hHy!K#+x~-$We6MM#b1%Oh z{krU>9iKfe{jJl3&{g{j8Zi|w)m8@AK|IF&;j)#*<-1fHHQ~&g; zdTUFZJw8>jd+L%v?b8eTRh1^&?H}>-YVP@ciM4aP1@>6H?#Inb0^YAMZL=byXYC`a z?EAd>^{3J4eKyuscD$Dp7nHLOd->Bf@>{+@ktQT6@nny-n8OYV4} z|EbhZO8;;xpz2Q*n`~1>H96cqG^bZV&HehIMeSCp2Vc)W+^|FW1q0>>y2Y2c6Fav` z|5h)m^xiXLL>KSvN55<;=}UYvP@nZQH~yC)cY~+=sEfM!UEiHaa}HMRe5CY*IYVv^ zxYjr1!LFS{mR8?=_Fmv;pO=}px7@049#nO?{kZe3BYSV$&1-tU{n44F+GqAU_WR=R zs=3AdxT1IPcb{IIye1@Ve7)M4FPfFfE_-|XC*GCL*f)II>$l2F8zgs{-eZ1LM(x_o z-gp1`^CJUyU)_{4VxZ$%j|u66=1kb#{mJa>ZR2M;&o4-IxEts{cjN3UlUMiIKCb2V zT5W%G-Yfkwyh$gPOs`8j-HTpf4Fq~ zYVP(i{qxt{`aN+?$(3K^*}Q-D?yX4~mE!L!&d;22NY^gi>E`-gqo=<1Z8`SR#i3;; zY3#i&-(Tk2VtCh;Wlt`A|6!XB+h^TA_We)SZk(+2gKfs@3ZJEX=3R46{#VYU)?QNY z>v!auD#X}tr{|pTrLJX1f7@ong^}fqZ616y^yZPcxrzD;@uhxEi<($=O_$$?4atuV zoHFEKm(YO^=Fa&d_45S}1Dt*O?D)mC`zl4Aqy53X4Qx;BeEL;nT)lG2MO_ZQdiKYG z{T_yMh9T!WDfX0H_}R<3moC2gEzzw?*TsrPr`zn?tSB4t>gQqW^PAJ0YK5ZR0m<>$gGAjRlG?bqVFS&px}m>53a+n~Z~69bO*T`|ggz z8^)KecH@gH6L01H(01!5{)%;eDL(1@%0I06^LOW#ZywpQcW_(DVRMzcDd+0BocQ&| zw5+o4=a*PIz4Z0{m2S75>Tx0IEC1OC#tf`*DR=Sphz$iLch3&lv9<1uJ`rbssM7c6 zL8l+TKAl?kNtN$>>wMPj+C;~MUQtW0?zmSSDVZ2@zddIh_Qhssu zi-u}1pR~@-7_fCnXyzLA%yG-ZU31%q+VoAne8K5_$jepJlj6!RxG+YoIz4@Q*qP_2 zH??Zkd*tyIA-nd@`*8Z`4@a+G5wdl9&G8Q2-wuD|m-J{^)iP(22Chz-Y>cn@b+Gcm zvD)VxThBaW>s_tdfO~yo8jaX&doy(VufaoqTY6&o-Yv={OYLLlr|8N>EuLyu+CNG4 zlk>zuyT>fQ;1~bFjea$%*T@_9X@m0-p`p88t-Wm1Z$-UDDciqwSvl{*qvpM59oQS* z=)nHfH)hNjK0STnlkb{*yS&xQ7v-yMZCrEU!817O|DgM&HXo|7Vb!!I-)O(@el>RW%JRPs zt-rY3Cj014Uj1ed?m1(@m8b!s^M7&Jyy(@aAs^iPc-NhRTVJ)DY-<>~qx6(sWn91c zbx?f8&O2T6?)ZpaCE9HneEGdw z?KQeX4VHb?ca6*3WtDn-y<~xnoAD2qbL#Um^13drUwL#5b*^#l$}z3%dOtiKTrkzG zen`)qEoZI>Z=bc=wp^1&kFv`(^qBtg#LdWQpN^Y1w$-=x?jQA@_tD6b=eNFY6f-mV zy@`!4`0kqb<;@^#Fxr#ZW}-oIM8 z%0=&TpDnArb+LDOLvp=yvGJemoHuIP=Wai~zIa5HJ!SC6IbSP(YjkjZVT+TygS#2d zN3QxRX02l9g9XdtU-m6M)~-ppii2Ett?9S-=&Q{k6;_V7`*7jxFEZ!udlu5XPS4LG zz8XI#E^z4>U9-6zM&~@c7O~oIXtN_zR=6F^zqG8}hRS_=j$G)l`|*iKuO6Q2>bm&z z;8cC<-`>yJ^X+G|-uq_Vk{j*g7nX_1n6**gX50O0mrE?{-F(dZxsHW3j6Lt%Ue^7X z%|^!+XAh3Klx-~c$)mBSTGje}nf>7%w<5xKUi{YM&iL@udnFx*x!0=a_Ta>gmtUqX zKaf;zipzo?m2$I}OxZRjIQe5m+KcYNccaftpY+Y@6*G5V9QK2M-|lr9Px>R{YWXsQ zpM+ogZdB~d&8;`jZ8LH5-9tH9sWU(MZtK#BgqFR&USCK0^w@zx0ezE?-rCvK{laHn z`GuOnb8N1)tnsM)SwqgIMGs$VsZH{%@ zxwK9Ld1BsS-JvHf zH~cY4b=T|gET03dly!~$yDiS{uTC7&vW0GY^5Wcuqfd;ywJ%n3KGrFz!5;fw`;+W` z{UT>@ez%aA;r@*r-CqnJf8|h*xf#n2ezdOD;{Ds^P21!UG$4BE*w+_&e=_dHs$Gqi zI34}u`H{Y_yES@#=Z_wbTX!n8XY;cWn#b)kO)jqwranZFZr=3T}uL*XqHNaJaa$ z*>9^Ix+`2d?MsRK;HA@v2M*QGc3!E7xcW!iW;v0!e#u@|W=wzWFyFf`SLp;rKU(DKyFA3@MA#zxQYG76uG;DPG~KxRw?}xZ+pN;wYyU}f?@dYl zHeFv5II4V)PRpx2-}2;_RyNnG9G;x8U{!Rf_xv8`9KJPT&GEd7(XIM@RR7HPp5P!=xR?VY z8+3nuZC<~u=^N%<-|)2AEAN4QH(eM$y5zTucU7t3GjUsBS0sUGHK+dgVU_*sOSyD?a7))B>sbTe?dz}STqzgvUcXu^ zI!&uIKWNi~$*U$zj`(BOrg29r>2@FeVpZm>HS6kbG}Kx>a`DZ_dnWd9Zg#$E*5^|j zp1JWu{|W`=XN}X3ojz7S=%b|`Lnd8*v7q42kd@!wem%SL)bB2N^~f3Za%t65`Y&4y zt&vr)`{hRcK8bYm85LD$%#@j9o1E&QYO~q!Xy{V^-;*A1tv7CbgONR#x;&_MbX3FE zYm>9pI2OZ92bI)Dy+tN3%blGI+zZt&c-Tlpff>)c}vcgNC`) z{Z?eS);e>t#EI|%r`Ilul_O3}ta;Do%bRg!djIg*%Aoe%>Hxnd?G9i2==}|Y_nkU= zv4v(|>viXcRlbf3s!W0`0+}2h_J#)P2%4_MFab zb?{Hy7rqRMi}3mV$F0tFz0b@H`l@Yi`HxoQpWbnD#rs1?_ilIS(5lJzLNg}b4=v+a zZF$xQ#+^MLB}Gp3=o?wFu=eqiUdHsh?jsD}_TF`FO7C7HRt+)k4S(fz;Jv5bM;~Xo zFX`TA=(o#1YOytaec&F?QcZrk(d^|I@h*AJh~?y~Oq*)1of zKA+4#;j^&E+?~hLY`fgFAJ%B|?gLWWyLld?wFhEjJO12i>64fFz3Rk#SLdhgA8$W$ z=+%1@wpVk?%vOi>zI{Jyb;{MkL%k{-biAVM zHmKXo19w_GR?YKwesyHlh+iu#+q(7Fh$-(yYfikvvy-|jVYiZX^&Y!#-q&`>@t?|N zO*lTSB^F((_+0E*rR^}+uI_C&b-VTatLuTKuiluwIPS)av%f5@Iq=*i=L)^17=!zG z%uk%$Zoutjx9y#K8Ujx@YC1x({(R{hUG;~KH|TPtgGzgS*yUrr`YatX)b{zb80S`_ z-Ahgw{>RHYUw^GGc-Hun<8=m|`YLYYi{Iy7*qfVW7qEZb+4kqQ)yP>hteby@cA62c z>H80l*;v-0#I#RpOqsjyi(lI3?pjgfLZ`6ofII73Zk{-QL3y8(ce=(bnQpT*%I)!) zVY}`x9O-jn+tSK=_Fs7Xpi>RQ?fqX$b}3V9Y}``nLBF4GJKt!0MADA&?N=k|O!hB_ z9@X_2IV>pQq%@-J;$OpE^U|L*xv}`@Q2XzH`5-hpsb=(qb>sT{xaUfTb@SJK7|^Og z!2K!>o)vC9^VucUXPIqQRQ_ed^a~X~JJx1I-(8>EreGfCzcSd{=H=<_>Er3^*~rt+ z)88||v$2<_mzS5fmyegPS0gV!FMqE9ug2b<-d^6`-ag*G-i^Hdy#2icyc_#?`gr+x zW5d3$Pa_{cAAg?!pT@qPzFxlGzCOObzKwkSeEod`d>c3NY~L-$soZ`8D!y z6ws)#pQoRfpSPcnpRZpdKR-WzzW~3+{+|9`{@(sR{=WW={Qdm>{R8|P2Y3c}1$YPe z1o#Ft3h)c?4+sco+!#@8jNox$Ap|uBQ{%=7KHk|r-uAJ$X+V#g38M2A(ULt~mY9fR z)(k85?68CBEH-1Z<>#t#)HpU52c2UwGh=dbkULAqPFQzg_l)u1I6F^=;preY?jsa; z&86amI1XIPUNVzo(y|2OfEb42J_MYEml5t+VEJY_XMIm$^kjZ7Ly!zT<$DX=J@F0) z?i%?BcZNIz^a30KcoeYQ`2u4GU}wPdpm_r(0`7nLEM6ajOC;IV zl4s#w8Q~50BxEwbd_dO^ zS5lCBRb0v@XgIqsU&~f>r$W9|xfQNeLzYvCkgsYpbFIklYNLbrbn$^6X<*zWy1aSR z5^;r_E){nLyx~Hp^yBC%H*ztFi=*q@NHyYqx6bK0C`oV7Wyp8B;UAO-Srk}lotwB(fa_&|zOGcnYM^^AbcwhD4y>*w)>wVkK)pUq=ZPyo;&oo0 zp73LKN1T}kN{dh_ayr~)7endb_r>Yhbsqdq5q?XBODNrCYIe72zT}8&;i`+PPV-T| zq+fqVS-w_ajD}qRTNAcC?stiRT?xA#cjnl@wub!y_(i~qHwuh-fB}GR37Q}U2}YP#@}NvF3gUHEl6F5$ zg3O@6%~eAJ2bW0;T+?<~VC0nHfo0Z=2_!#`YWD_AS#fUNr{3%)4U{tkj1ZvLr^ z|Ly$az1Cl~(A2Y8mT=xHdPrT+@3psbvut1Dkjt6yZ$OUpXSp1MT&6s3f%_)uZc6Ss$9mYguA0B7A7Z&e?M5~ zTfUrco?4zyE>`&_{J+aTp2x+vN3GEsQJd8APunEYrD&Jv+a>L-tr6~x{Ga*Wd9(li ztM;fTY5{%WbYs1GBKwt&QDTZ&zy80hAJLu^SJp&p!oOm=LnpE5=~|*(k%n^79`G+( z{>6vs1>gyw>ZJOx)V?HQ^hh{wL(&+{9e-)G!@pd!Q8Gol@~-|1jsIEw?}qP7%iOXY zjbK6&IYHm(S@@NSRywvQ2RIf5{U_j`=zFO>r#vJ`y>TYXGaA2|zLnKj{3Y1b~au~#fUPe@G zc0z)lKcc{JTtu28Ob(@; z(nm2PchZ5t+lO-5coR3?77VwP*QH&16{w~9%L!J9xVL84lTxRQH%R+2u`EGk{v zMNp|PQUJfMI*Lu25z19Ch9b}@CXLIb@JzCJ`;rxtVTb}fGnM0{QbsdiA%cYh zJtQQsq5`@_ZF_?*m(w@tyu7|am&^Vebc$pY%Voy#C+_Ci^=3Rxa#+m%L=K87ODCm0 zijr=TP?H|4+6ht+?U0Vuq z6$0^MxG0lFxLmn<;&Sb7bS<`d#Y4P`=%N8&u{Enda^J)2V^OUt>XC~4Q}e_+ARZ$V zoj17by*w<>p*cy9!Xlml@u8lS+C@r-A*!eafrim>#^RBH_$Xe@&G_J*I-a7khij`* zg|J=)*}Nd|J{fFvEfXSIM}=o$^(;=-TUHz^Cq<1#8j1-O96`uTwLqm<-VU;OnoC&i@Wns^#O z6zPD1fP7rtkMLwM?ACtJg&ff&Bk|y1ZEO@)8I#4m{1!Bm8qp3~rb7+{&A;ejcpH@} zU#QR0#40S;cT#quUNmq;nS*#4Qqflw`oQQFF3t01+8F6zyTdQpr(LmR^1unRc<&Vih$--S; zw>5WSS&*HEazQU|Vw9TUVbEupmUfxD@ShZ8NYce-$MpjTTgiv(>b-UR(@UwEOxcy) zOnatg^PdiNggw-J%C4t4Dp(WG_~f;iJ7-P{92;z5Q{okHDKH_ScHpKhUTl3A{DE`l zyboFeTj%xhF$6Bj_?WHt_HT~$-fu<+hAbWz*uVMsz-pr=1pahrBKRhQpVpl5av}`m z!)(Fte7GNCG#u%I+;j48;<_2=M!G^&`2bI$g09+fCkgzWZ zac?O}8L*pS^8&~HaRl%otge+L?SQS^8t1-X4X_(vU$&O=ng-Kaw-ntMlVY{w9 z7~?F{XnmZFz->5Mgxgx-Y%Sf4-`>idzt(7yhv!3>5%R^FxxhS>ctf@Tyk0h_`^`tbkR*s$fY!q!ZGs(50Xe zPWd6+NVnvN@`Un@{EiWSj~o&sT>3`Ng^;BB6yOzdK5peyqHcE9q*D!kbkmqgoz@EvZp{l#D=gFV9& z=iwXUt55K4?4$RI@$wD8L&16z&%9s9batvAV?A0H4_elJYrT1a+j0=AWC_XkZNuQEIDSPwr9SogyEt=~* zDLvm@RtHhq`Vaz>1BB{4C`+o{5$rTZc z#~Uf(xv6dSS$q?tfv|83ER+?+l;lDBo-%8=J|;6RDJ&){iBZ6AMd_NY&&&-?qldL3 zNEhUB<5MB)wJEPcoH7(DKRA#8Sv-q6#}m-t)8$7hD7#ieA& zjth2X;r(J=Jl;{pM?VG=X<2wti*G&Db&qJ%Fo5FG_h%m8 z8ic^`HVyL$Z#)T=rfb%mzY9fGlG-8E8TL*T;TWmn$yrIdeu>Kq=i;QYNI$jbE_Hc2 zMSCdHFLjpFUz@|JbvTTnCI-&~QH!RdM}o5c`eCtwNvJrOkHHIL7;2^Dl2=PDpgoY& z8!E?dtdh6?Z;f9VkI$l-93GY9_cs0vIX$}SoPX_K@K2TH2i4&G5C4K+>caW*YjKz% z^INBDJ@oE{H1e&I)N>5Xq(_?uVx9>*ON%CmGk)Rupz+=*u6b$;4($NWLr=eovyBY7=rD1DqdS*X!l9>?JDeL3q z+DoGK@iA!qkVJY?3jqj>SYig?T`hB=cqT6mllT2lDKe7rPC1W$ObR_NoQsXCcv8)f zjzsW1wFA?$@&0-&p3Fn<2WeXkF%l=SorVn8ObKuBZ!Juf%Cd!oAz?J64fe%Se%o>3QH z_$aYLQzS)4GmR-l52q!kW#BnAHp8mN1dI5RqV2;phQbSC*;%~s57K9*r==Ig%aDOC z$e`Ev!#;9k0sUf|&M6Ff`z)sDc`+6$+v6IOi30+9Lwa^*991Jju097(lCeh$S?U=r z9tt5v#$~1(3=QM;1CqhaQiMdK9AWN|gr&x$NbiEX4n&{2(g(mK7PzjqX*Cv(=*YP#dFfX z&<|n!lblW?9Q;5ecuiaW8*gtq$QADww7)d&E-g1y8OT50=BLZM@{9L32@MJLD>3l{ zFvmhIeKImO1&TIc-+XR5cABFnNX`^ns;%3z5AZ=j;~kU#(DZQfE_^3v8DzizR23-n zk?59_)1z4YBKbU-fi#10+)b{J4|p=!+qe`j>-hFUe088(x98N|@zxwUM@3$i6LgEq ztuEuDT`zWg&p#?Kkl{@M3TYgjipkD^=tQ%DeX*Y7u>wbr^ifRM_XYmu;?2N#j`h>W zn@RYmy3EYtYLkp|`a5Sda!BR*3bC)6NLzi$J>-2Q_HFR!m*!Zav?+<&r)iu4uDt|L7>i#R*LeXXdEz9-f zJ6u0Kd32@WfHbx=i(~yii=$`}X`t%mS68x@Hw3b3!~Prjoq=qYE2S7bOJR3;{Cgk_ zGCN`2V6EwNF%r!m*lT&I(bdUU)zP`-SFVd*3MZOy2ncUb;zL$P4GQ|QxPDp*A4Ud{5a3z&KYQ@cQO@hRvC(TidUfjYcw zLrSh$X+jA@dx^6@G{#3WnXc=ZoYpcdR42ah$4Z)OlAr! z>xbU>-oop<*=gikAMZx195`wPW9{Dw?E>|K$U=G+86^yFuhQrc<46My_3<@`qg3hW z7HL=~j}`Dcts$>k;KlH%DV|zo)6FzRjj>Qh3@wtIo^X|VJ>c< z;`pgS3i_SrYZo~Tk+0VJ-wgL=u*K2qfZo06QEwe4Z}8GF4GAbL13OxnjM61HOKj=^ z(T>-%H+kK8z}9j<2ARsWHGKwX)ZSXt>B73==u<)WD~7)(>J80#Sj*`OI?dOZrH6Ny zP<5y5l&s`dNK-^QEz`Efi^XsFKLWqS#rrDgRDrF-I}RGnL0i*DAs#fIU_FMeX!5X$ zm@{8gkAJ^XpF~D{x4OvlNuKh25-L4TZieF%7Gn!c0Hxq#4yQEJ@pv*m9vaX@Gaq?G zck3P=5!I??>kbj!TDA^po`6@9qgmd?=+KG9rqh8`F{S9Pjf$do*Q4-2Gxi2x;u(v$ z^8BXk!d5q}-3+DqbnJ)j?(QNEx_ld50*(~w0YUDq#n~^^bNBpzKJ$vV)|2G+q~Q}@ z&f79=Nm5lTEKs?%reDPO2~L@(5Y{#1 z=1lrb$FtyBn4?FR@y}aV>Vt$#8qxNX_2K@M>qCrhY9d|@5wCwG#B}t*aySslj3}Q1 zdOGm(E8rqIJ{@KL3xHy*K_uZ%z^Pj9UqIR08+Al$%k^ok9A9hy z3*nK*CT02ewfQM!G=TX|q76jN)5nX-3w~NtA_KKE;}Xi#6TOws1FyA$8QVEMU#7e4 z;yAD0Z>_~%(dgI*Bx4lFrW4pT0+@HAL0^0__AufbB*s*&wQos9Tgy}w?NKPI^B8QI zKHFmkq+`xG0}T(pPt!${R z3k`0fi^U+ECVeomlN5vYOCRs}oYwE_cq|oj<&-gRn{V{|k?TKfznm`zI4sIH z+5M=X=W}xZ(x=m_p_t;{d< z*(yD!S$uAqu4P(oi;7~kQWsCzOV=e}Ez~?Yj$At!!HP8ci0`u^mw`z%m5A9eOc~KG zST4oAXercPE6F7%4n+l`XbhE|MjwjBa=TIYUSvf3Az+3)pZs^Ty=ZL|UvH7<*XZU0 zmh%NX-^KW?Bu7LTds+;=dNKTG!B6y5ROJ>l5k@@47}0*|}xkE=N=4dH9|#d zFT-O>MK;#+oWU5xlm4ygkr*csy>oh28_1q7E1)72Gj2%A~-^5d7v9Uu)AP&pbhF9UjQ)u>WCTsaGKzk10-+HE^RS=PlTi=ApTtv__ZdXX<_nwd>70TW_CB9i5F#wplC+~l;rhA z!6WDb=F9C(_pF2fRJnB8cbXg@#rBM{!Yc3Qwf^q#Mun#FsWrVS=ruv_j42fQns{5d zp7Oe0L}o5uhtFc6=VRXmZM}G-UBWgDR`0CG&+}0)Jiu;EpYay@SkUVi!@vA3^ktwI zRaW@3Zhyj-@c#PmwmM?-2PQVe^gO1I(P~h+%`_w>r}BP#t;ElJ_C_4YP`^#_dRu=S zB*#nSvxql+`;u|ypa_7_L!GD4n!Lax9?deFTwBi!>|8jWLNXTz?5-3+@Q z_8jbO*k`atSmy$xu@Y=8*x4_PMlZk?uk8`z>kr!=wmWPzY$|LH>~PpIup+;#^)KiG3VjIuiF6A6iFqEON1-1< z7f|R|_!DwzoJ@voA_1((Fi8^YOhT^6Z=rV)Kfx#D3Mk?!zWqeLi+zWJPskDFO~hBE zL(qjhK^IV@sQAhA7%l~hL z@n?Bs9{%6?{h!47ujDrW57K0w*MBANpSX)M@@Fza5nqoBxcd)xTK<{cf9}uSi}P#q zAIP=#_X_cN3F`>IH|01<_-$_{OJ(-^8hHMY`GhQ`6@CNwa@1Qb>dJP&JFrgmjm9|G zZ(y6kE__^I+z0y$Ed5>qdmA%#&fX8Vd?j;uvcKyVfQ>QF#ZU88J2$EfPDe$ z@}j`l9JT{&l>9pZa1iWB*w?V?mj%WOu=Kkcpbu<&*!8fRVGqf_PXPV~`x>^gs?gX4 zb_DE~u=6osIsvP7E;KfRo$pa-G%-evg423cCb$BJ6be_aeYKuz&ZvfK5MPVV92|LYTuwb%4t=+I z;kPy27j#++VLQqGgZ-S={=MLz##oL2Qvpq|G@aR`Ndk6zM`h!q)Gc3KSJ#|&stm+p zy*?*{ZEvL6Ja)yamyYIJ8ejtwCMioY#Gu0|ZatQyFirACdLj`Y+Ji$E`jSrs=2ka3 zAlb_=*~dHC&o|l2J0RJB{cYI+*e8gCuD*`0 z*KLixf-wm+`AxHjI*QI4@i~d_;)bBt&^1g*bJI0!p~E41%rj+X>j&!w>vSJC(IMA7 zbF9;G58v_RFFGL=vwrNGKN`CclK8GtY|Ti;jj@JgT6>_4PP8d8M#q`?MkPckx|sNk zfqv*)rw+D*H*0|f!sfb1%|WAY6l*%|b19DQC)3?iQU;{D|7WpEjuov1 z&Xttp@ghBtiG`(aEo*u*XyTg*Ki`;-s`(k8xBt8CV$u9|IvTnJY)GYT)TU@kSLJwy zQQ$C3Vd)$GABSf(pB`4qvKrMsXDIB*$v|GV?+6O z|6WIjrUp~1YSnC+w+vYDPfyiFhl8tQGPWXMjy5%`Wqb@aG-GvuIs~jv#>L>oY`h!= z>+%?m2va+ok)4)Hdr1bfsb(=zoSc}P6_#%3BJaNItWOj_Y06j@$$&_YfG-yCbcE3j z+?dK`dZ5DxMR5%gONY$Abv-5Fw6DOLo&j2wV(6KmReuY;T`_b6Xw=VH%g+Lh=3uPp zv`@0Qa5sQXb2!%g8$l~BKGY9}7Q;UQH0lSfF!8!IH6d9}ZfBV(245 zqkdAfpVt1y$nMtlQOqw}(|Nxc&X=K( zCt$ivA0fkjGF)KApDp9#WH?WTLa$;zk@`R~0t&q)gR%xSDD%3RoXx&(gOD4Z3NN>aP3swk@}gOmzeJB8B0 zUeOTpvXwOy15|3Iy~0Ly0TDoKZAqfi&PJ*!am4WD1NYovJ~CQA%c)J$Oa_j2Ff7?r;tz% zd^H+Xd8FCKS#rc)QcY7^NfD^-ic$p)xGT#`8kLQmozk|d8Y|!aYHvG*lcJnP;VjuI zN;0XMc*P?4X|9&kua%EUJajMFrrJu;c@L%hfBu1l7PV;Cj3o81#@p2na#b9Hj+n-g z*7Px;(>S$g_TYcz;i!gxx5FsiaBdD)arpi#DNIPo^2Yt2qBgx5CAvtVD9lbRdqstZwv7r7Z5tX9 z-Z`doa$16?yQkjMGo+XZS0}&NrN$0qV=LmfHMkzaWj%ZgNad>7KtJ^CjZJ>Bbv*05 z;g8OJkUwjATi!yqfwGI^x0UJo5PidthQ-FhlyqDo2sI#tH^Uu-`a$!tS3)W^R~@PJ z>-PnRUK8Js`{wR1|2kvU#e$Oz?{ab5j>2^Vjn4`$GTiZWzm^ZC_1ICe@H)er6%L*H zRkfp&8Wi4T_=vgPz1$+Zo@i6}gy9>1So+nJ)%_R56c#f4;Dq}%2iBN>dvKu|V=e59 z49^Lg7J6vStU^bI_dL9*cW$X>!`Bs-VYq*ff=+%jTy`BSbY*y#+3f<-Z_k?gYhf*h z?{6~vy@R8&&PcBsF#O4fp#_D?IXKQ^QGUUg*n)}KyPsuO%^@2FQ144?JGd*2;i*zc1?uOb;f^2^wdYo)Bd zu=Q0u!=IgxD$y%p)fcB;r7*nq@4GL5^8DK42d}aizB$jha`{&qH)>yh#PA92KT6R= z#g2LJ^+<+?dw%a5ZQS-l;OmJD?_PWBw27lS&-&o?42EwXQa7X4z!z7tUe9Ovl+8Cb zFWi1*>6F(?7(V0Utg%O;Ry<$vdNsq3%v(O?lZ@akdtPr~c)zmFJD)$a8-L~XHimEV z^3r#IZ|zSnUhiS}>Y;;=?zW zew0Q$+BoJ_obfut?^G%|J>Krdwjsv53_mnBEZzRlwuy6$PZ-`nU-4Qm4A#Ff7BZaj zT*Ad;hmGQk6MM$KJbCk`QGA)kuHJhm=PQ+bYGI`PjORIx1BX>*v%EOxUDo!8!G}N1 z4`939FmDxkd+=fJAydNHYzM9*%Dc5{Nx<<_sd(9nOh}EnbMJYuJ5B&pYL zm6tY1?lirGBA&V5o|I83{=VXT9YqSm+Yfv&cg`27pSMzEF?^K#PJN`}BZiB2;|D56 zGF-glK3y@9;o@EO)ruJm|3-f2e7|Bo!^OMfKP#3nT)YEbs94SLNcmmva>@-17w=?y zDYr5Fn*45cN97)di+7|Gl!q98MSjIQk)({$|S`?~e7%Ec8E~B-dKr zMWn9yeoOY(Oy}mMYt~HX=T)~j|CeO{)^abuh5j*w&|WfYejmi2)}gHFexTDHH*0#z zTj(pm`_}X%<0fBO5!Uin{)xYglp=3$#AB80&syG^Kat1sqrNWQoe8#7u(h18-y&ZN z{T8RM5}+5SFB+s0{cYvL9ZR2d6gmnwYq}xpNmX@ez+=E>WQ=#L9;s~Cg`<_;U5S( z&C^@Up>Z?q9kr$>fKKBtYdW<;HHx8QCZgE*(7E;E;yC~^ilfu`zBqc$Tj+z|Lf-{C zl{4%37l2k=x|E1#ae5f^7Wug{9p2d9>3G1Kn51{XqR^tz3Mr_Svy?Y$wj}-hR3rU3 zx9Rukk4D!7&#(upM}62bwc&j=zE`UC-5Gx`Ano3#%g#S}5qL}0rGlhrG1J|C&K1?G zfU?dW*RyKgeR|}C-9`1D^J{qQEQGDb+`@=COc4RI*cXo_N*;4z$ zF89kwYk$P~?95YX{nyuCo3QVzT7G4#d~l*wGp7h+T)v_Eq4E!2=pVUl>;A|7i+LCC zr9C;4QSB*=SvRkAU_r+^*Ory z+O)kRja}PCn_qO|m{L>RIzmpk7y}2^b@_HWH-08R-=;1d&@V<*IkShD`RmIj#(&)S zSuM6h;oH44mTjrlp^Vc(eU zUDAK3*MwilI>w=5;aC zt<>1sD(&p-m0FF1(n;-tN!e1G(ynC`WtHWX6-&5ks@PS-oOfS!KV_QoYt=gCHsulJ zG380eQ}(BoXO!m^S2aH?e^vaZzNx&gd#HY{e5ol=IM!*}qH~uipMAD)@PtoheZGF{ z=yf)>_I}M<^mu&qn7T{_KmQ&*hpt@n_4Ydh`ICJJ?gl1U$AKL7fY5c|7z>DJvI)GWves^4C%Ub*`c2n*;cGnu#sDsjaGFr_4Lr&BeyfzPh_zy>gXmyOt?$-x+}gm#Ao~wP|Np$3EMkRf~EyO*LAZ zt~Lsdi%R40zMZm4Y}Iyl+PtNGYJ@mwZAz4GVxzSw9`gn%1Eb_2CG?^#9Lrm8C470%uzM$AjdcF5Z^zGGa8 zk)AH)v{UA3hPR!&rOD`h!yDVyQ%Bm=*0#~QX-W@U+azz_hZ^4o9n_6&O9p8iZ0+Zt zuB(eNEPgf2$5~Ou#z}2AY~na|KTQdhy{*fX=)6~|VH<49JC}5BYoFCD@0r$Mmr=IO zpfZkS9DCYV%o{VTt!h*&=dvTis@d4&ovN>CQC*SIP*q8-92QiqWD|{I*wK1ULCX)yfeigF80Q+ttiQq3*7!?5iB+)Ic5Y*h8DQCZI}*25Ng-rIStG z+!5zgB~>Lp>cgjg8XQ z#?IEhq}J7;qGQDpE>4clY8O?hQl;(7DaxxWC@QKd*;iJ$Dyx;#sp=~mI=Cx5)m}<( z#R}z0^(woU$^y-6mC^pIoZJbMKKJa|Yr@2-u9uvgJ9I24boU61>>YJ&&8mcdlcvo>+xH$h8IBvaez)((!$+>)kcuiyQ>rn2;`Jk^&0Fxp z;UgtV)@{->B(&#;eWK#^lcueJkG(%!xqjneiIO3q@%p@x>$mOLdFsr=-$#s^uw?0u zoqP8mIe($u?Cn48JA5RxbC;g)_lX)edCIy?-|qZ=-~KZt%a#8y^4TA+jd`j4FJE!0 zmX_{XCFvQycr zu#Bm4RBKcYHVUV*n$EVBZF^z`se)sey0r=mhU$_w&W=sgRo;uzrKPj{as=U>3>R2Z4iCr_5v#JGF z5$kJ)8%tKO^C;O+Rl}*ebKXSt@VVt2%8s3(@xa=b(y4-d-i{hsj(Mjm4Rg`t{cQi} zGnK#nu*fobo9*&0m1(BZ+636Ov2(P^a;U2MK>fab-iQjW+H&?C)p_G>RxNQXul8E3 z9(KOAt)oUW{2N_88#qi-=j~8cRymjW$9*0yl%Tz4k?gh$x+>Jv@qN^U_j}!`e}d7% z)`zvG)0!CV*`yQvI2_F{;ut`Kv)Ei6-A@WPb0gMq1eEsj^&7z>=mJXnxcfg&E59e9 z=zfW$raXO}CMH`8|N?1D@z(; zqr)Z^d8a92jGH3l3-I{ve4bG2aUIP@Hivb0$9eqL`jiyh_(C_xUhc2H1~b=g%oL-h({`dm45z?6L)g#%Hh>V6Vci zhK*ZPXxs=p7j_|R5^R|-K!**5?F3r^w!=4&zaD2OWVmEwp>Z7S3K`znQD`i`v(V@Y zOTW81zB2ax3)`>6D`POM;EOT)EolD~W)~x~Giao`=khzbiyZj5Ls^{?)NNsUIdk{< zE*!?F43ADV~&mf((F(($C^gfN&WSki+Nh*gV19Wk`U#bGky{G6X0JpUGFMWd9rz z%KdX(A#fQ22>;9t{3;{&=++8WV%Md_z=XC6P;aT#i`Z;8tXWbp^!;WJ27IedmwGr+^=5UB9a-BICr_#6V2-8qi>&v6-I ztCjGtV(CML=l(eaD!X$W^`GN1RGIuUf2jZ5U5424C;R7gg}`Nqono>(hYXd|j}I7@ z|04Z_Q~t~8XAr3HuV(JZa5?=90+ro49r@338LBm=@VS4L?4LvAzwDpm$bXK@P-XJZ z{Gt8l?lQzCJJ~;{D+De>Y$uf6P3f2QuOzYbZjXU{<%ALBg*M#5WD|m zcTUID3CCqfyB!(73;{SULnS^`xI3p~-yp|jh;4#a{$(8dG|3;f-&wj_;iBH#*`o2Y zu|X4zQmE0ODddoTYt(9$H7@AnrdFx&oomT&?QV?=f8-ZiA@Pm&&;0+DeCzN;xD+;a zIbtH7>&ebu>)=?z$=MQfa+cV@MYuXSlWqk@{N&$6A^#?fyIbNWjEBd=7ZQ2+0^|PG z8gtx)nf#l(D^&s$?v}W~1QhA#+#>xP6XDy~ns7=#$M|2Kev><;-_qR@7no)E=Kj?h zOaGR*z|8%d^D9*xGr3#h95dyDNWYyurB7_b)IZ-x3#?xqox{l>Zc($=wp?*qiAmKV*6NH^rBie-lpWC(I3(TY+p8qEQl*8u!EpdUF`#0z3_1`>yxU1mjn7MvA&r5@epY(6;pJSH(&D|;gEz@s_6INXM&BM2`wG7`J zC%=~RDa9s!j+w{LlAo|Q!#DS@)>z87#0j(ZZ_ck&S-V@}qJ=ZhKXZAaG*Iqa)_;zh zct!c(IWG83m~a=m;JCmn!{-=<$Mc_fg@0b-1uigi|NJ-S7yZAc5B|rJsD7+%0jAS%*(PczBe4OaGQQ$1MGu^Yi}S+?`xaIANwd zG^L;VMN|3-BTiHMFL3VHJbgUJg}cDa(@)X_PBAf$5AT0W;qm-8@$>p`!YTi){hQ0@ z{l6)_lERXou;S8hia)uU!sG3~3Fofn@+rk8caE96ldB0Q?9K4a{ZkKb;-~P7xP9!UvK)iOpmp@HSXf%=#FL3ftzXeWE@Q^GKzHleEKXbR{cX4#IbF{NlleJURW>j8& zWWd&gAd=6AqaM6l55vqit(OphV&1KXVI>QCK(ocl9m)@W(Rv1_(|QQG6QFWQ?KxZT z5x5KiSi4N+@7;PB>F?co7-q)bt%qSiLG=bet{?B#!$=?R*28!|E&a>uVLDgW3a%9@ zlp$N8Oc@se>310y7e{Mc(8-O)5`X1x%`g0kamYXQ|5x&@!xQ0JkAK8?${LFCk)T`S zE_Ovb^Y|7ec_77ei}!ytexNeU`$PI-VD($ZIbD1w2>Iln^K&S^15EC6d62^sbX|oC zE)`r{?8s8wEH+COgNS`qZ-;qi=c6%P1mmCCVuG+B(K*2X3zPS|rdZK8{Y6Mw#$`%$ys#5)x- zgfWljaw|Uba5uw`E=eOjx8f0U2vT|iz#~i;ep`o4ZX`>{HV>cVn;XGHw5#y52<|yn zJm&lq{$?}xqxfB1_#{inHV>cVn;XGHG`q)0Kk6j*u$r@2{3iYY@Ceh+>^IR!hA`&g zl3ZcvE+AE&DsLoc0rQOnIhR&TQ_89(hjMC32dk=}mP)~9 z!R~=ATTv}N?4*{~;&P(=Zxj;t+_E=vJt0Gf#v&T-w@?v?XA)qy@ZfOGr!Mzrc39qO z!pG;s?_JQ=rSzm4aL_tFmc1iY4>(ye6eng}Bx!A1TziF=PqRRv@E#%~7+x!$wP}k! zKpb`}WLhe_BqqA5S_%R`=Sxki<>@Ic0xb*&n>h^+X(#v7r{Hid#WAmlH%H3otd>e3 z&YUkd9!^M*nw{BoPmafnW3}kIQVIP8)1kYkXIw&}B@HmQ*4-j%^=jRcc-*XL zMDzrWE;f+)*ztg9OFniNV3Gwbn90kqq%po63tA}S%d?^pajX@sHE2^UX-wX13tC4e z4{fno+B&v^S82H=jl@Z7Eos3-+iXc=VdPuT!dMswENP7Is0A&8@tp;Y$_Lk91mlzR zG%tlRkV*LiN3@-chvBs%C?3>T1XI3p8eOw1p>LJwytqsoke-s2N*PZ5V;P8)>4OFh zijPGWOV3j^To0L9akWBQviL}8=Clu3eC*6=5uDEjG!$pZgx?6xhrW-~vQp?8U&#}A zOI*(D4!jm{^obIk3t;#M+)oZ@?Ye=M!_%67Nh94Q9){PVE0`M+qSZn&#WrqR(9R1&0->Yc1!>O04R%G$XScSUF0?#?RhbQ@1i zhB{hxRp{~~$XArMk(|99Jhd72(RNpD!mM#ork9w-jdExM@OG3y7@^~}HF;XE0tVIK zzkdTHQx`PiYb5hjtX5)FwIn;KvZ}PAwB+dNkfDvX&$m6QxvF|7;+HZ7@vH72RZmh% zWn)Wvx@0&KTQ?v8lqA~Sr9NP>IzY)MYDk{BsGw2*wk2Qn_6h| zYpte;HLbK=LV$$75ow!RTDOXtRcd7O#X6i5> zC{a?E=r)tQSYyceeFj@Vi5CaOMMx(u26}m`No=~%db>%fC~q{0ykGOio}|g)Z6;|i zi#X^z8~h!EoP>uyroYb{1+8z>gRVuif+=PZU!a&Ge*}JL6L8@ z=Q*_Jw7KmBc1WMweE0U*N^~p6pFZ~b1L!bI=lvEa?j7S#AA6UQK3>G#Pi{Pak_z z0i~KC(f=7x+%E&BJcBvjbXk@^GvW?qB(Z5$hGNzVxkl%z(bd_?`$xvOpf$?IvlBAA zT4fJ2x9zjXyLTLVIrS6!P2SjN1F>r<{w1I|yS+rN)Vlb=76xb0^C>e(zX?jbf0*!e zyGO{+DO2LMI%JC7WBAkUoi`$jyy z{`7r=@}|w%c3I1~W;-cs5Py1ou}whvuhTN?L2>UG|LMxwDl*^4#_=?{J^0gY?7bej z$dY<1}lDmis9~(cppC z5&vem*jwz|O`f)sF))EYX#(s%nX1qMA%k6DYOyZ&WYdASE!BPV9&=FK3!wD**Np#q z(uketvo|naY_P|R$*q(r?LJ@uVYU+;%ki5b;N&>rpPH%S=jwUh2QTiUppntC#j?b+lemg@Tcn%n4YO3C0h1Fptws3vve8kR)edV>nCC-8OKZPaXfRq z*X?nQP_CeB@=!IIIA=DxRAF<58rkYrLpmJe{|Jv7!Sx|rKbc7wR;?{zeeG5IRunH<4 zqzX&3Rbk1f2;bpV*(Di%j#5`Sgz+38;u^*}xN49ZhM)U69cLkNtnk5vGnOtSJl~`8 zt8!F+`Cye#SpGt9#8r@^3aau{L3yq!D1~2`pBj-Qd~l{3T*6!%$?#7QS)|J%ov$uK zt%MpkWvL11>h!yEtmhK`Lf;@Y)K#ViC9QkTV1}P@k34*I$_czE@2Q@of}hGzFGKrH zK2EOSgG0qz4o4jnh~oqktdw#qBbQ+W%u{Vjcu=c=q@Im-Kq47CB8 z{B5moe?RS+cq%QPYmi$FS|%k&U+z<@kL9W5RkQu14vzA>@-tNabKb~=Vvj05oTDbuE{2p3QJzw-3I^S(6{`IXc9eE?+@o@i4OUqP zbFJ`M3*9Oz*VItTP1(7o$U|{mk&hxDm6nfd&TuuSJ5OEMF+`o;I#f+<9;VK2^s?7& zxEkR)OWKb=lkt5*agHiJK3Vw=Pf-O2rz&ssT;-`cM+K+5)n`iG>Zm1`HBUc3vPq*z zqe!Djqten8P8_82>B&6%h_iP0XCO=3X-FZn!K)fN2C17{J?iS_!Rq419Cc20u9|qf zK#e?Hi2R8vb%k5qT;^6wzpL9;f4`SaK&%W%uSl;*uSl;*uSl=b((C$U?4rMqqQ6Uh zTJ3NjiG1KlHe%II>H8wg}jV0Y! zWQ|3}*pksF(?*c>Fl487`d#yfs`-ssY9jYFW1}O#t6j8LQ$BRH+UvADHLaPx+2~e9)$FUQ8p>Fer-p5?$129Da>gm*=a(=h zNm&_#yrq=aE-U@ScTa};ER?sIvRdQCAj^LzVMP)~eadyG|I{=d^u6Rujg!RkJ0JI_J9Ly5hP@zwTiStn#XQ;?HF@ zx!>sM^cT(;qRx)4QfF7ysXyCGl=LC0?9y zSI4U%UN!Mn5-)U0JlQ)~IAxF;6D?6=O3zngT<57=yH7AV>T6TEb}rY7PhRtL&Gka2 zdLf#lvg_@+X^7$uCZfl(TorrGt;YN(Wo@HA*aw+s#>IZ&S&XmM6l$Pr)S)wO;W>j< zQFOX0swz=M=vsuXwp~J^t1nB9K+h5ADbEX~Ut4;9JlmQ_a%e-$FA>+6Y&C{?<)lAf z=17Qskx##{+MU&3a%t=I8`|Gk(vDq7TQAB(KE&KvRGOoTN>0{L#5He(n%A14W;MIj zg^ii4fwGvxN2|hpqf#T2!xO{eLn3*h++bm`^uto}oUX=FhM`IBWF0owb6alT+$QZC zeZ8-{)wkckR_&&LJNzyW`weiQms}@~q+d&Hv?AM{qFIV}Z7qH*6RQV{Ak1|;+3TK(v z51Y%Jn7eRLa>6AZbqVDeM%&53wprM=Yn)sC9y)C4L0{s!;=1CxO22M&4{UU+ozP5s zec<$)ILQsnVfVV#0u#sScdR*dn?+`9ty{edRc{p=qr)j-v`I%C*Et?_PL%Z)?O_=0 zfi+jivOnp%&UCAFKDXLs<;C3Z@E4Zms!7pHm~SsulS)6PCb>%c*{tPc-TLS<Jd`n_SPe@J3FXnBCaft?YZ`~C@QFd{#$Jz_cVw_C?P1;4olAXt)#ziB)QH2A z)zE`elqY(Y%EXol>genm>b67c-`~&LguE1aDe_X}rN~PmLy?~%KSh3u{1o}AwESGT z*($fBZ`JP_#+>dNr#$iO;Dmn-RsT9%pk_1)!r2~mc5Akp(9E1&J(xN!Qo(g@ z^(>@zNLkRE>x%1&>*|#2teGA0UE^}pxacr7j&<0$(jjVGy&kz;_j}d-&D=+^PWu|` zw9$+;qc@C5d6PpEd2#ExcF;A7wH?=nv<*)6wE)^^BwIyDmwz}%c@B4QjID`AtjG$}!P&J)CUsN@U`8c0(W27qD*Eb*QahS0z z$-3=j#>AbvuAP3@K9AZ*{}{%YHjJ^2=Z}%X(xK`sW8)&J2ke;d8lxy>T<%U}3<}Z? zCVbSRK6)%)O*%Y^`;*bE@5ZaZdv5ig5JyYuy5PFvy5hPz<+|z@-!-RD&FRTjGrI?I zf8&{ZMI1Ob_;6?s9?9`#aKdoMSMkk zMSMm4ljF-N@tNlx>0OJwY7w$OMp{2kmM*kkP7&yUU0?`27^ zNUun*($c%m8>-H$rjDY+)p+i8#+MIcE*`4JZ?NX#xGOSFMS2IT>LWR7X-}>S@*H3; z&jDue9Kg?WfMT8lOyD`d8O;5Ctytbsp|8pOaE$f7+pR9kbgLui>l*1%BUzu1WQ{no zgc&lKtJiU?7vt+QRLhq#RPkOZ7tQaKFl_6HW1g{@^w}!F*mnaIwbIj19exf0QW+82 zbAdcZ8_ILEAv{Opd72(O&05l}y6((S_kS@%b(lQ*`_YMU#~J3z%Tjr5Jef#j#wGs= zLl|3+OI!A;WMhU}e0zpEA$jp3j(qOHJ=}v!*w-OXm#)A5e%clB)By4N$58RfaegLJ*m$28NW+T79zfXSuaO~;K&mrF#?((>m=T25^Vhh@D^)$A(&Z`99CH7^uV20hxr0%>Lm#OLfGv+Tg;B(1f9x zYAE*V#VL7ip3X<~|1hrH%qhHwGDm!_;hrh{H#^7q-)#DSRY%al{;$eL`#&1>5M!`$ zSVnpAml?kcl;_}yHXYCeCO7M_e}Uoxgh{;lp!Lk$@lHXy9wG9!<=bfM(VV77>i~MF zc1xt{+Jc^t$U6@d7Xd|&Pn&S;H--P}O631K*OsKnuYyQ6(b(;TgW_*uw zoaXYrg<3{ZedD@O%ts3#iOn_~hu7`9$2$b@9_tQ7_Xufl=zSaZEwObz4{<}f( zkJ_ipJ{}bRcfkyzoN4mB$mGfYa}E5b|6KZi`p2cr@?YV?zW4A%chRlr`+d4gStjGJ z*5WODi@e15&=q}!9|tdP0x13uvUel-o$h~eTZfoK2hpYje@uknZ2PH)mGXaI%Y5+% z`q~Llba<~@`}2QjbQ(E$-bnY*dS>#7C&U^$+4s(0<`2+k4D)!&F#pg9_qcKWMu)A- zRIb}j>`{t;h6%8B@&1^(9DPJ|!vTHq4p98O<1ml0>P}}bl)ki9#YVh6R{AQ&_akI^PyJuLlyKXLU1s7>Zzu6Xv=2yR zeFYTPV*HE)Va9<+)5n2UkvG6NFi@D?Ug8d2GLezM9};0WX$K-d^b59Qc4)v3&pGXoe_&uc%p}})Vu!i-)8~h-1pj>?SMvTkytocf{H`I{Q--*$ zw{EPJ-TSRa4u}q?S&y79+_up%hn`}iZJD+Mr^eT84x*5hhN4Wo;;79fWzncuKdI6tb4!4?wo_ zJ+H&;cp)wX2Z+~X!t8jGPtc?dz}v3LgvF^}(f^Z&wVvxharc9w+Y82DO1=_LWQy)0 zM^JQ?@``?fB1_68`3u@>p0A%~jamB$?f5inOncnjNF3XVj7|8P#HcvCPX}J0j*uxj zjz6NWl@KO=TZj8jqr;5&>2)}rZvSq$ltokyA5md-j}MtY#UA95 z4~l9t!D21$q`k!}wl%>PNE)GH;s>k{{o_xv4@lVG>om=vxQ)gy*Cidg&O_IFr>;$+ z%K&pu2jRAp@^;}*UwbxPkf~y&`rWwqKyi75={Di9-ccQq(Kow_9gd4U*|%W7>zeG_ z*H!drf0>iXC(h7>^ zaq!=%gI&ZAkj{3#m-rqtp7@`&F4_3S6@a3fT({~kH?x6f34fGl3EU$MxL2v*F?2i4 zJyL*cwv&1(!*A6+yyP#kQh#O4?bUocyto~pTq_(oIL!UXzJcyXHj3Q$xgR-@Ci@_M z8UMuDvO}*jM!l?My#*V&o=G3 zd+`AF5?zjpE~i;P{JY_{O*4D?${_2-BK%!q6r5cK?g-sLYQuI*$Ln}NT{1lalv9;xmlQ{stv{pmx?I`kbbnbvWc({Q!R`P5wROT=EbomTnmb~=m zARWudTISuLxHpWS=iVpxwejp=9&`Jh(zC3-BXS4WubTN( z|8nQy4_LYOwKeZVm-0=}GXD&Ud(HTn!%zE6aS3_7-yGhQCc7E`j5OJyNiOy@YuV?+ zi@O-K>NTy5agjGb8GF;@r0@rNmy<42`ukGi*iQOP zE&hNBklZC-b(YTG2gZ%8&rQ*?dqCly1tl)e3oc-6US{`V*3WvbF=MCHaa{D$>u0}w zCBbf2y$)TZZKv?3x9yf*JufO5bEy(^3%vMbCoS)0b#Zi8RhuX>r$QL zQcaw$Au^t@PT5fEknyL_hb;~nPFZ5xZig(fZ4dtR@`R@9GI+t@xmsooDDEeqa0gAe zi~q9q?it#{!g1>t^8frbjd`l9d5D_Bf8sNFhyTKEubS2~TunYQ!rD83_5gDf`^z$Hh2L6bpL0`X#%+NadLD4q`#xB(SpFydwaTn=0b3oym zKncGKlr%$0BmQ$u9w*lYmK9m&4zMoiLYLFo^@u}nv1<~42oxvsMP_OyeeM!1e=fYZ za!{_Zt_-s_-HyL$G&uX{0RZ6~@1@Tcn@n4@)1&eqrkCeUAW+z`+@jw4L2 zP5>qR^PuQ{zwtAdT)_R{!h!Aw+eQEPxgR{_&{5WLhw&GK;zXv%3(a+@2zm;?%jo-% z@ejIO>wOm}*WWh&OGqRB!U?(S<-gV3%=Ei6J+GHNhkmj)eV^|!M2KTMX_t-ogFYQ% z>zF8G9G>fBdT0Q- zp&&U!Qr3%v#|4c4{n}i?;rDNI0j}FlWS8MjZ*%_ZU8=>%`lpfYCQNkUet*Ds5GeZ% ztlio&%-XG0^cbL?<7x7H@CS`TQc98GFX#Smk(PHH6qiYuTsz(UbJ4Gm_W|Ra*k9^> zE^%!q^&mBz^4Y7U!~0_MYq%Rvwt_-9-BSS z_mx5BIUoL@40JfV4E~#R8DgNN`6n3PjLwU0)Ma@E6z*+M?7MD>_WuPGTb=m0_IpfT zta!?_5|XZ?@7L&&w)QI{%y!Zbg80*Qi!WvE2U)T}aeItEeSNuZ02#Z|WbDVEzP|L| z>{3aSryE|}U{GYT&N=0NjCDqsXVClXXV9*U3?)0@?dLXQ255skw>#xIDQok7&rNtQ z>y&S15O&J@5A^>Ap7;GReMTXCz-N=TUgHMR%RCDl?RXYwy_YtE`Zv$4t{EU5Ysec| zL$;-_A@g6Lo(EV%+T-p_uG>zyx%kt^p00;o%J)NU|BKku}8H0H$b`O8aa3hYoC(zwGVBp-#vw0mk$h3m-f4Eyix44fBpp=Q^ zqm3@!z0Xh+Tit402hZkthh@m4=6#L0{+^F(5NFZ(vm;p{#~NmBuet2TbQZlyKl z&Zpdi)4m(lFi|PV zQ?6aYd&Q4KSCXfom6lFSdr^hF_nP+ogJhxXDPkXveCI&+9ZY_a`>K!dlhLYN@{V#T z@8I)H%{3~Eeen;gQLb(!`#)WSU3{Yn^sqOw-t4W)m%X0s^DJkdXDMeIj$n_mr7iJ9 z=jrT~@5o^P2YY*)c_*`xJr32xjgBDQaME~XzkJYjeU7@mmAQ;Ia$ciboyB|avOmpa zb@D7-yUq%@(6wAF+TSH_)nT6B_4Q*rhVRtr`JFK#QoW_OzR9q$xGbJFL6D@|504C-PFJEO^oF{qxeH# z*onXLY`2nUNsh4BUgj)D!h8-H>J|D1GMXJ>^Z&-PbHWmiuoZ-zAgsk9x0$eRZAipj~GNXk+3U4VD^A_UiC9gDVW4 zW$<^jS8!?n?7N zZ`$)q2Iag`r~Bip+W)-4?;9+kO*>u8gxg_N^fhre8a&J3c?Mez&M|n4!D|iL`AjzX zPBoZgaE`&C!CMUWn)LO?|Ag`HGMI1hLW9i)Up4VPrd*Q^e%f5W*!V}Ac-01NJxgtQ zY2mddy&dm_X@BEQy=SM@KVP%0yfr-M_Sscc_2D&Z7S*g?SsNzt;>w!nb*oLN<#)uI zU0chO??}zGRcof*RE2H6S8aTk3STAKR4A+J$*XRJHz9y*_RIZ86 ztFN!CS8B>Y(p0`e$s3W2k*el3E)PedHFc|XLF?7dtVQ8yc{OsX7DX$U-+DzuWqsx9 zCQC3y*R5WK-EOR`uc=&C8(yrYSSjjO zuc@mIUsG2_J#3W_*oInTebOgf*lbm0^crfeawW-BTY4<)vDT_VU4PrKO=Z>PI%DEb z$~;*M<#l$|sEX{x^)=D($!KmjvKK|GOtq_zIJCR2AsT6jUe4O+3z^q9gzIk)hU-^| zR;!njK?63bSM#m-x@~A1QElo-R(ZI7Rn2Ou&a^)6akCaiYcH>iL>uZwymcb^a0y#b zS9fbeWPZcyaJJzL1a1;*RA$biTK;`~ zB$M+?s4McQcF$T-+pwnkznu$Z+n+IOIZaGg`t%z=Y$?wV(D$!dbmQg0^GnT0KU7sz zT;A9?zrJ#n8AR%*^PZ$y6<)PGLVvo%;#M&OTq@kEx=)AIWx~-a_^*T1wEwnZ&is$xae@>;xn1xhUs*VL|1FR9wPmBjm(iqzev-jiQ^UsZZi zYp-u8G!E*4BLHCYGJr8RbHq2MVoH7xnQK zVReHFH`Y+nNeWeA%C)X5R$22;CYnYnDnt`3l-1`$uhD3%(~g4EsV`L(_2HE@Yoz2+ zYvQb60Z~~iW~g9*K|%%I+GWh9R_*ID>!?=Du;eS&S{=Tv!cv0vBswgwqiM>VNSl!? zxL&Oa)hbw)D5|udmFiYoqM|adN?Y&K%3N7t<`h1QU$MNNy0LVl7FJm6pOs2XWzACk z)>8G+X;Nddk~-gBNjcYAT(4*Lt63FxMoEi7Lt!Q7jF2va4p&p>jF6Utwv;nMdJfer z<@#NJ*ye2}{l@)#bi&&D`*^hLtPB z^+8s;EQ-|ISvRcK!$IG=jBKbD`Sik~aP+j7yUEQgE$Zs$vqq#x*}2L%^#6|Y-jNw_ zQQYoz2G?tBX;4;ps$OG3D$DZw4E}>eXFhk&tpBd1NAMNVZ1c0QuiApP`V+Vo~^04dKzu z_!tkH*TE;iA>(wo7jzfta5)!;&qAqph$H9ZbVA;*@eCEbxlkk?keu*+TxHn>F$#cscjtcNfz_ zzK$%=cM0!U!wZI>sqlh#Lo?y!42>T_3*h76E6`GSIeTOLO!S18^EhgtweWJr#skn@ z@N&+^Q_v=OIlCkOQrJj~YG! zCU4-~2I2_z@_Z!ke&m7+E7&&;FW=yAhsxmPJN&OfA&CRd3ehhl4wzF(-L#?uxEN}J z4}r1ev}yPx_+}L{;8mD50Es>k@Qd6-oFKdfd;-ea*P!FGZcr~l5+?;d{W;#lfKPzEcVb5g2akPO+dKtce7EL9;Ny^_jogC`zfL{E zs}1A<`QQa#zn4BM;Tx5j24y}#xxi1{Pg&sQ`|8^vKYSNB^qV@47nJXzw-7FvzX@6J z0nqgwZ4)o}?sqlsk16#PsBs@Q2VaKP!Kc7Un-LH12Y&;_;FDle8#aL#d<^P=m+#9Q zgA(v5aM%`fdx&}gg7B&x-Jm7#KJa5uH+%?mbED~Gx%#L2%iMA9>osu@-2oxKyi5aHp4}a(I(;LdktaeD7<_t zVfI0Wryr6(ct5lRUcRUBI23|UfPX^goE!sL!R)mPyYre0xx^_+n{yu zUErS}scYF&-2kB&%SWk4?X8s z=nXG>on@c%40ypk&;s}_@GnpZUiLp1JWu}cvIlxT)C4d4pc|o$@UjJHm&6C}fjn{IgYQ5-c-dE5oTLrG z`@#884}1jN@F)16Qm5dbp=0pzKhyqSqV66=XRs6s!n5XAZIJZYE-(R!Z3Pp5q3sbz z@L;du!PowZu7t~;&e<=c+hdd+EPoaIz{`HiHmC`{3#@!yS$#hO?t&~?;Dv86ryoQI z@WnT&YxpF1_FKFI4=;NUUq3-wc-f0M6*>Sf`vPBio4R`(9l$f*p*--iSMRg$5+7dn z?mY$_fKPx)NXjLcGQ42c>y{E<_T+7bBJi>=?-{5OJ^{WCHNkUugSB5y zY$f~VWdB@>aKX`Dm-0MGdBK^GwBZ2Q07)5}z=iBf3lT^5rwtv2EO^&KiQ>X@Uq9}L1;g`?6>**6zq8j zo3sCBJX8cPdvRt%#qdFJ-q|j77rg9^xd++=FMDP7LHpt3;2$8V3)$Q9FUa#Wd7k4^ zS3pJZK`;hMJ4t|NpG$j!mwhR2_NUYmNA{^KhMM4I@5)A~89o7)mb%n&c-aS1cmeI| z8T16NfXd(_;N2IJ596xry^y^aF~S9xLkA=d_#G$#FMBk83mt<`f=e!@-bot*e*%e~ zaWMZ9%?H3wK~@_BA2ht|pZLQ}^!x>F37m8(a^Ypq!jM@mbpl@YFwBDT+3z6x8omxq zhL3?gP$|6Z6WGljfc@~YZ{YV(0$%nKoIi*51~2;ys-YCTyu-h6E^X{tbO!H+THss2 zPt4P{Z2|M<>oz0r)BmCj|8vL!bFaik@ILTnNa`*GUVRnq5IY3HcdyaB;+=STPhM;* z_$1UK`GBuO?eOw0`*!FAyu9Q743zgv;()J11@Q9z`C@1-yu6S81*ipH-VL9^`{2jm z} zlThBT&<8BO$)%$3@;>t>s1;t`X+92h!K+U&?m<290q{mh>OBM=fI`pHHo(JB6g~;Q z0ZAOS)TKTL$+#!)`aT3@{+jsUVWtv$tQPz>B;$$ThOiD7%w3`D?k4c>wTxrvCis_6>2Sf-4b&ZZ z3ijSXdpN@TPT(_Zu@}7HuFqUv|Pd4 zw$o+^w-8?1Ko2;q13mX;smb8yAJSzJ%=v+~NetZEt!>f;4(EMgv8TK@y!T=H1$oMQ z#IHc=1;!ch%Ri>f@bW(IFQL2O<-OW)oVg8N-m`rO%KHs%4_tgu%MF3YA?eHNahG}v zk~ux{1oQcmW*h*sdeB+MF7U~p5ubb#V8>IM?*f+`(q#;Rk3s7s4mjg!%?H5yAju~N zz6FUa^^8kp|3dR#ut|97FJQ{>f)xpqKbSDQ;H+nLcmV7&d;%QvJbeTmeBjl;(R>hm z_bBlQS1-DFACNkNPlBudMBTwhj?tE1(rw8P-uM@6M0g1N8zf^+3T*f*He@_$0{;NX z9FYREUSYobEw%!$f+Rc$-VI6G7Vy`QwWb2cysE=};O8N!>n89subceA!*6On2~K!R z&rN=?_P=y^1S~qC+pQ1G{)cX#UU1&Knva0@@>I77-D2RqyxTALp)oL@Z?MXEaF>PwK=tp%L7I7817;5NvbBfxn}DCc%`05?JMj3Ndu`Z#C)5FP^m05$ER z9>JkE={R2SUP!`YU^eG>$@38B*Os;Ijv+FePJU?zFVP|qC+&c0UEQU6T4xoKj zoM2mhhDs1F_^mY=>X_&N9)v_z0{lC)i*OZ1ZUf){rY&`W({G~<$FLh{f5Y1OJ!<)W z^_7j(byt>!x4?J93;q)7ffsxMO2P~N9!kMGznAU&_O^VJJM%Lc%10av;b*}6!26&w zc)n>au3!7K|m!YAMbzXkQe3(7aDCEWR~ zYUekwH2k^*(PVVeHZf6Rt0|u&4qWK{U&F^Er8zn zZkC0&!h4D1Jg-g8aeEJ{C0wwObI_XLo#&r9&qk9o(jJ2Rn;9#>qtIM-0ABO3=7Zp>AJYd3kAU~ZH6H^vKa-&jF~4+yUrI2B z5T^zF`>&Z#MgJoiYUdvrtI59$oct1cqo*HywO8k#0)Oy|)-w(krpS}{K5)hxI&A>V zdyDqGm39K&_)i@t1pew@noojr-!pX$uE^jF3fheG+wJmA_opC5+YlV$CJwywd;>Y> z;4t67&zH6hPR()i&2e-F_dqh&bb*iOagG4>n*g63%9&Gl5g&Y>!{RI+yk)qK?>w8x zd2W&OOd~n#=)3uxYll4rJE2YRg5A(Ac)=sk0r({N>S(T^TfZ~$IO|T%x7&#Qo#))i z`FDSY4iheT%UHMSg%5$-I0MY;Uyk#@rer_y4kJn zyT#4_Em{4}M3J*qejlP;kyh}+Wt^o2FE|HU2k$)B$aw~moQ3o!=ul^th3~;9;RVlF zjy~`{@JEoWH{xJrmFAsi!pK=MZ$QTxs|A;a(I2_aGn$-dJIR?(zg|H+@)vv+iogqw zSm{UZ{$;D)=X;5k3VjtLB_NX+Pi>AX$^NfSV291^(3V&hxkA zT&`JbI196bb8Ns{pr!DF8=+eG7`VGZk0D*)PWGG0dZr8f_FC*rzjK~RC+F8q{w(K} z(Y6KmLe21kSAI_Og3~{*dBLj;FIZ!E!A(M>je#q^pyfuum0zSyqJ#4+DLI4cUtgvy zJF+ayY36J`ctJ0;6kc$&3HO23kl4z39-W+1H|i_&9r~}}xljmR@O&sDeH?rOvetfJ z{a3Ypn!x#Y>ADDlEs*qU!GAy!-+Q-PHc3ZsTCi9+M~dXDB4&vxMz+s~~(5 zytd1f9sHr;a;AbIe15IG~NzF&VuBYi==qdR85#pm~5`6Rb)Fa`} zv&7_#u~kqRaRh(#Ds3L#`!~)Re2sE3e>u-Hm9tU*1Bz2#!R!>e!3+KkdKF&K^EyO* zInV!;b3ji(Uh)(i_a=QF-g(BSoc$^1c?Jk~p6e;+eLe(L5ia;F)Civhul|QFdklQ! zZO!}Mp}ha1ZBrKY9^(}xHgukKCTE^~FDp}Z5J&JwP!GJ|PoZ9T!52(;5}cdOw`61t z0S_8J0bay@UAeEE0lo%F`%i(2y~tMGfrW-I0$bUS96ieSM8O@9#MuS*LRMOE2#@jnH}e!8YzE=$z~>>6)eBzD*-_HY7l6%%7d&YAUeGg2+h4HQ@P4og65RwZ z8qIfC$$tj83kt#u&gKi$OW{M{t>ZXn13m&CDauss!gGdOJrsd&0lxt?!pFcDAth^9 zFy~D6+{1gpkrOl3UGP5eW~dcD1bzkD1>XX`1j&0fDRAzjOqB;81n+=+@J-;D$>?w| z`G8-6x;K&*ymkuZhYy0UKoXt;E6>eTufoSc|5WVKN_zmWg^J*V;67;MH;DsIoThm{ z_#`B<65#stGSw#Hw1AI5-4Y+X#*aN|=Rxqm`PhN7#KGzkbS69kUN)UNfDeFm&|C=z z--bj_Rhp?DfaE!+e24lo7r_5COUZYszY9g-_$Kht$B+eXgx-OVf#owYt>@Aq zaPq~P_k(Xh@=R4QcnP|}3+^zyVCGC6?gghq@@%sL>=M3*F%#T(DgE$i$^}ln3_Cu7 z4Z#p({l5cFnuX2>2?u{~_#}8ufc$@fT<`@*(k8*s70_YY0C+nj`3T-?_!#(@;S=CF zWjY@}_!CHM6$kxSnsD$+NdAutf?t5-*?0@M4e>?hRAm%Ih>A0sm_F6j&29;ox5l zp8}U$ug4Sh|K0x{3xxP?0Xg?>No_f?MYVg{3)+j@{p~Z_1MOw)!S*HXP3_I?vG$Jk zuJ#jKz1srYLfcxm#kVE5sqKv&sSedy(CP1-(HZPq(i!Tk?u>Lcb~bf3ceZqPbar+2 zbS65FbS67{J5!w}I@J!(4&RRA9f2KXJAylw>Jc69HE??~?GMc#=WYNuzXiZc$$ z^{o+dZQ9yQ&aGR08X?wo-g;=8(b7w-w|QF{Y>yG3S-wGL1m)7B_x^S70?h1we1TG|pw zQb;M=653L|rLnz*T;uIW+EeY#TRq#n+X}XoZ3}LTY-`-sw5@AfH#JwV-C4qxj;@ZL zjzq_ij$}tK^?9OWNoOlH*WDR+)LVg7Z+`3++*!S|X=m%sBRh+CHSg-(rFNI?t=`+R zw_|S-O*uaRJyonA=8u)dLb1kJ2X-pn9N65_-fCJ=H~RIoC(tq3-iw|m+SOLiR`1q= zt-h_r)bWh10qQxpbqRIdzh+|8d)L-(Q};)<7VHk~Zrt6yyKGNvPxqe0o?a~0vX_(8 zysTYN!xsz2s$)&D)>v2Ugslhd>B#08Z82&pLH+otm)Mq`Er~5hw#-1o1Ue~n>EG6* zMR~UsW6Kbh3~kpfs)<(Dx;?hNV|(}Z`1YRdiS0+Wr?#Kit~xv&1s%SQ;*RE%wydVz z#rGcBt9-2O(9OF!LhEkY9BQjZemC-axA@z;=`X#VK6*yuj+PxAwAUk6?+EQ|+!@E_ zshyr(OK2g!-7|IvcUSLj+TFUlYj@A?f8Y&?Uy_Ru~