From 62e4dbf6cf08902c40ff2d157069a3e790dbbc0a Mon Sep 17 00:00:00 2001 From: Angel <1+angel@noreply.git.olinyx.com> Date: Tue, 22 Sep 2026 21:26:44 -0600 Subject: [PATCH] PixelIMS: build corregido (APIs ocultas con android.jar completo), docs y diagnostico VoLTE Pixel 6 + NeWWW, APK en dist/ --- .gitignore | 16 ++ README.md | 268 +++++------------- app/build.gradle.kts | 13 +- .../java/io/github/pixelims/MainActivity.java | 11 +- build.gradle.kts | 2 +- dist/PixelIMS-1.0.apk | Bin 0 -> 111395 bytes docs/diagnostico-volte-newww.md | 107 +++++++ gradle.properties | 5 +- settings.gradle.kts | 25 +- 9 files changed, 233 insertions(+), 214 deletions(-) create mode 100644 .gitignore create mode 100644 dist/PixelIMS-1.0.apk create mode 100644 docs/diagnostico-volte-newww.md diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..05f167b --- /dev/null +++ b/.gitignore @@ -0,0 +1,16 @@ +# Gradle / Android build artifacts +.gradle/ +build/ +app/build/ +stub/build/ +local.properties +*.iml +.idea/ +captures/ +.externalNativeBuild/ +.cxx/ + +# Local toolchain (workspace-specific, not part of the project) +../local-sdk/ +../gradle-9.4.1/ +../gradle-home/ diff --git a/README.md b/README.md index c9abe9f..6fff72e 100644 --- a/README.md +++ b/README.md @@ -1,220 +1,108 @@ -# ⚡ Pixel IMS +# PixelIMS — VoLTE para Pixel con operadores no certificados -**Enable 5G, VoLTE, VoWiFi and VoNR on Google Pixel devices with unsupported carriers — without root.** +Fork de [vvb2060/Pixel IMS](https://github.com/vvb2060/Ims) (motor de bypass v3.1) con interfaz de [TurboIMS](https://github.com/Turbo1123/TurboIMS), **compilado, corregido y verificado en un Pixel 6 con la red de Altán Redes (MVNO NeWWW, México)**. -Built specifically for users in Sri Lanka (Dialog, Mobitel) and other regions where Google has not officially certified local carriers for 5G/IMS features. Works on any Pixel running Android 12+. +Habilita VoLTE, VoWiFi, 5G NR, VoNR, video llamadas, cross-SIM y servicios UT en Google Pixel (Tensor) cuando el operador no está en la lista certificada de Google — **sin root** (vía Shizuku). ---- +## Estado verificado -## What This Does +- ✅ Compila desde fuente (ver [Construir desde fuente](#construir-desde-fuente)) +- ✅ Instala y aplica la configuración en un **Pixel 6 (oriole) con Android 16, parche 2026-04-05** +- ✅ **VoLTE activo y funcionando** con NeWWW (Red Altán, MCC/MNC 334-140) +- ⚠️ Tras cada reinicio hay que re-aplicar (ver [Comportamiento tras reinicio](#comportamiento-tras-reinicio)) -Google Pixel devices use a carrier whitelist enforced at the modem firmware level. If your carrier (e.g. Dialog Axiata, PLMN 413-02) is not on Google's approved list, your Pixel will refuse to connect to 5G and hide VoLTE settings — even when your carrier's 5G network is physically available. +## Requisitos -This app overrides the `CarrierConfigManager` configuration at runtime using a privileged Instrumentation bypass, unlocking: +- Google Pixel 6 o posterior (chip Tensor) +- Android 12+ (`minSdk 31`) +- [Shizuku](https://play.google.com/store/apps/details?id=moe.shizuku.privileged.api) 13.1.5+ (Play Store, gratis) +- Sin root, sin PC obligatorio (solo para la instalación inicial por adb o para arrancar Shizuku por cable) -- **5G NR** — Both NSA (Non-Standalone, 5G anchored to 4G core) and SA (Standalone, full 5G) -- **VoLTE** — HD voice calls over 4G -- **VoWiFi** — Voice calls over WiFi -- **VoNR** — Voice calls over 5G -- **Video Calling (VT)** -- **Cross-SIM Calling** -- **UT Supplementary Services** — call forwarding, call waiting, etc. +## Instalación ---- +1. **Instalar el APK** (ya compilado en `dist/PixelIMS-1.0.apk`): + ```bash + adb install dist/PixelIMS-1.0.apk + ``` +2. **Instalar Shizuku** desde Play Store y arrancarlo: + - Sin PC: Developer options → *Depuración inalámbrica* → pairing desde Shizuku, o + - Por cable: `adb shell sh /sdcard/Android/data/moe.shizuku.privileged.api/start.sh` +3. **Abrir PixelIMS** → conceder permiso de Shizuku → esperar "✅ Ready". +4. **Pulsar "Apply to All SIMs"** → esperar el diálogo de éxito. +5. **Activar el toggle**: Ajustes → Red e internet → SIMs → NeWWW → **Llamadas 4G (VoLTE)** → ON. +6. **Verificar**: `*#*#4636#*#*` → ⋮ → Estado del servicio IMS → "Voice over LTE: Available". -## Requirements +> Nota: la app hace visibles y editables los toggles de VoLTE/VoWiFi en los ajustes del SIM, pero **no los enciende por sí sola** — el paso 5 es manual (y solo una vez). -| Requirement | Details | -|---|---| -| Device | Google Pixel 6 or later (Tensor chip) | -| Android | 12 (API 31) or higher | -| [Shizuku](https://play.google.com/store/apps/details?id=moe.shizuku.privileged.api) | v13+ — free on Play Store | -| Root | ❌ Not required | -| PC | ❌ Not required | +## Comportamiento tras reinicio ---- +- La app **se auto-aplica sola** cada vez que Shizuku entrega su binder (no hay que pulsar Apply de nuevo); los toggles quedan guardados. +- Pero **Shizuku no sobrevive al reinicio** sin root: la depuración inalámbrica se apaga. Rutina por reinicio (2 toques): activar depuración inalámbrica → abrir Shizuku y Start. La app hace el resto automáticamente. +- Si el dispositivo reporta "Persistent: Yes" en la app, la config sobrevive reinicios por sí sola (en builds recientes de Android 15/16 normalmente reporta "No"). +- **100% automático solo con root (Magisk)**: Shizuku arranca por root al boot y la app se auto-aplica. Costo: desbloquear bootloader (borra datos), Play Integrity, OTA manuales. -## How the Bypass Works +## Construir desde fuente -### Background +El código original **no compila tal cual**: usa ~30 APIs ocultas de Android (`CarrierConfigManager.overrideConfig`, `IActivityManager`, `ITelephony`, `PermissionManager`, etc.) que no existen en el `android.jar` público. Tampoco el upstream (vvb2060/Ims v3.1) compila desde un clon limpio — requiere un `android.jar` completo no versionado en el repo. -Google's carrier whitelist is enforced via `CarrierConfigManager.overrideConfig()`, a privileged Android API that requires the `MODIFY_PHONE_STATE` permission — only granted to system apps. Normal apps and even ADB shell cannot call it directly. +### Correcciones aplicadas a este fork -In October 2025, Google patched **CVE-2025-48617**, which had allowed calling `overrideConfig()` directly from the ADB shell user via Shizuku. That door was closed. +1. `settings.gradle.kts` — eliminado el `versionCatalogs { create("libs") }` duplicado (Gradle auto-importa `gradle/libs.versions.toml` como `libs`). +2. `gradle.properties` — `android.useAndroidX=true` (Shizuku 13.1.5 arrastra `androidx.annotation` transitiva). +3. `MainActivity.java` — `Shizuku.onRequestPermissionsResult()` no existe en Shizuku 13.1.5; reemplazado por `addRequestPermissionResultListener` / `removeRequestPermissionResultListener`. +4. **APIs ocultas** — config migrada a AGP 9.2.0 (plugin `com.android.settings`, DSL en `settings.gradle.kts`) con `compileSdk = release(37)`, y un SDK local cuyo `android.jar` se reemplaza por el **framework completo de Robolectric** (`org.robolectric:android-all:17-robolectric-15733970`, SHA-256 `f6a41ad548bb45cccd3b1d4774cb50d57826dd319b6e5accd6b6269876e12d71`), que sí incluye las clases y métodos ocultos. -### The v3.1 Bypass (Instrumentation trick) - -This app uses the approach from **vvb2060's Pixel IMS v3.1**. Instead of calling `overrideConfig()` from the shell user directly, we route through Android's `Instrumentation` framework: - -1. `ShizukuProvider` receives the Shizuku binder when Shizuku starts -2. It calls `IActivityManager.startInstrumentation()` with flag `INSTR_FLAG_NO_RESTART`, passing our own PID as a security argument -3. The system launches `PrivilegedProcess` (which extends `Instrumentation`) as a runner -4. Inside `PrivilegedProcess`, we call `startDelegateShellPermissionIdentity()` to elevate our UID -5. We call `overrideConfig()` — the system sees it coming from the Instrumentation context, not directly from shell, bypassing the October 2025 restriction -6. We release delegation and exit - -The PID check (`arguments.getInt("pid") == Process.myPid()`) is a security gate ensuring `PrivilegedProcess` only runs when launched by our own provider. - -### Key Innovations from vvb2060 v3.1 - -**`canPersistent()` — Runtime patch-level detection** - -Before calling `overrideConfig()`, the app probes private methods in `com.android.phone`'s `CarrierConfigLoader` class at runtime to determine whether persistent overrides are safe: - -- No `isSystemApp()` method → old build → persistent = ✅ safe -- Has `isSystemApp()` but no `isSdkSandboxUidInternal()` → intermediate → persistent = ✅ safe -- Has both → latest patch → persistent = ❌ blocked, uses session-only - -**`showVoLTE()` — IMS Provisioning layer** - -Some carriers block VoLTE at a second layer: IMS provisioning. Even after `CarrierConfigManager` is overridden, the `KEY_VOIMS_OPT_IN_STATUS` provisioning flag can still be set to disabled. This app fixes that by calling `ITelephony.setImsProvisioningInt()` directly. TurboIMS never touched this layer. - -**Version fingerprinting** - -The app stamps `vvb2060_config_version = VERSION_CODE` into the carrier config bundle. On Shizuku connect, it reads this key back to skip re-applying if the config is already current. - -**SDK Sandbox support (Android 14+)** - -On locked-bootloader devices on Android 14+, the app may run in an isolated SDK sandbox process. A separate Binder callback path handles this case. - ---- - -## Setup Instructions - -### Step 1 — Enable Wireless Debugging - -1. Go to **Settings → About Phone** -2. Tap **Build Number** 7 times to enable Developer Options -3. Go to **Settings → System → Developer Options** -4. Enable **Wireless Debugging** - -### Step 2 — Set Up Shizuku - -1. Install [Shizuku](https://play.google.com/store/apps/details?id=moe.shizuku.privileged.api) from the Play Store -2. Open Shizuku -3. Tap **"Pair using Wireless Debugging"** -4. Follow the pairing dialog (no PC needed) -5. Shizuku status should show **"Running"** - -### Step 3 — Install and Run Pixel IMS - -1. Install `PixelIMS.apk` -2. Open the app -3. When prompted, grant Shizuku permission -4. Shizuku status in the app should show **✅ Ready** -5. (Optional) Toggle off any features you don't need -6. Tap **"Apply to All SIMs"** -7. When the success dialog appears, tap **"Open Network Settings"** -8. Enable 5G and VoLTE toggles in your SIM settings - -### Step 4 — After Each Reboot - -Check the **Config** status in the app. If it shows **⬜ Not yet applied**: -- Open Shizuku, tap Start (Wireless Debugging) -- Open Pixel IMS and tap Apply again - -If **Persistent mode: Yes** is shown, the config survives reboots automatically. - ---- - -## Building from Source - -### Prerequisites - -- Android Studio Hedgehog or newer -- JDK 17 -- Android SDK 35 - -### Build +### Pasos reproducibles ```bash -git clone https://github.com/YOUR_USERNAME/PixelIMS.git -cd PixelIMS -./gradlew assembleRelease +# 1. Prerrequisitos: JDK 17+ y Gradle 9.4.1 +# https://services.gradle.org/distributions/gradle-9.4.1-bin.zip + +# 2. SDK Android (platform-tools, platform android-37.0, build-tools 37.0.0, licencias aceptadas) + +# 3. Crear un SDK local con el android.jar completo: +mkdir -p local-sdk/platforms local-sdk/build-tools +cp -r $ANDROID_HOME/platforms/android-37.0 local-sdk/platforms/ +curl -o android-all-37.jar \ + https://repo1.maven.org/maven2/org/robolectric/android-all/17-robolectric-15733970/android-all-17-robolectric-15733970.jar +cp android-all-37.jar local-sdk/platforms/android-37.0/android.jar # ← reemplazo clave +ln -s $ANDROID_HOME/build-tools/37.0.0 local-sdk/build-tools/37.0.0 +ln -s $ANDROID_HOME/licenses local-sdk/licenses +# y ajustar sdk.dir en local.properties + +# 4. Compilar: +gradle assembleRelease +# APK en app/build/outputs/apk/release/app-release.apk (firmado con debug key) ``` -The signed APK will be at `app/build/outputs/apk/release/app-release.apk`. +¿Por qué un SDK local? `javac` prioriza el `android.jar` del SDK sobre cualquier jar del classpath, así que un módulo de stubs no puede añadir métodos ocultos a clases existentes — la única vía es sustituir el propio `android.jar` por uno completo (el de Robolectric contiene TODO el framework). ---- +## Diagnóstico VoLTE en Pixel 6 + NeWWW (Altán 334-140) -## Project Structure +El detalle completo de la investigación con evidencia de logcat/dumpsys está en **[docs/diagnostico-volte-newww.md](docs/diagnostico-volte-newww.md)**. Resumen de la cadena: -``` -PixelIMS/ -├── app/ -│ └── src/main/ -│ ├── AndroidManifest.xml -│ └── java/io/github/pixelims/ -│ ├── PrivilegedProcess.java ← Core bypass engine (vvb2060 v3.1 logic) -│ ├── ShizukuProvider.java ← Shizuku integration + canPersistent + showVoLTE -│ ├── MainActivity.java ← UI (TurboIMS style + status improvements) -│ ├── SplashActivity.java ← Splash screen -│ └── LocaleHelper.java ← EN/ZH language switching -├── stub/ -│ └── src/main/java/ ← Hidden API stubs for compilation -│ ├── android/app/ -│ │ ├── IActivityManager.java -│ │ ├── ActivityManager.java ← Hidden INSTR_FLAG constants -│ │ ├── UiAutomationConnection.java -│ │ └── ... -│ ├── android/os/ -│ │ └── ServiceManager.java -│ └── com/android/internal/telephony/ -│ └── ITelephony.java -└── README.md -``` +1. La config de operador se aplica con `persistent=true` y el aprovisionamiento IMS queda `PROVISIONING_VALUE_ENABLED`. +2. El APN `ims` ya viene provisionado en la SIM de NeWWW. +3. La red concede voz sobre LTE: `availableServices=[VOICE,SMS,VIDEO]`, `mVoiceRegState=IN_SERVICE`. +4. El toggle "Llamadas 4G" aparece en Ajustes → SIMs tras aplicar la config — hay que encenderlo. +5. El ImsService del módem Shannon (`com.shannon.imsservice`) corre con normalidad. ---- +## VozApp (plan B oficial de Altán) -## Comparison: vvb2060 v3.1 vs TurboIMS v3.0 vs Pixel IMS v1.0 +- **`com.altanredes.altanvoip`** — la app de llamadas VoIP del propio operador (Altán Redes) para equipos sin VoLTE nativo. **No está en Play Store**; se distribuye por los centros de ayuda de los MVNOs (BAIT, VIVA MX) y espejos de APK. +- Espejo verificado en esta investigación: APKCombo, `VozApp_2.1.0.apk`, SHA-256 `75dd0dde4f6184568ea2337c5cf397c6a1b0e28a65bf555588f401cdc4af24ed`, firmada por **Neusoft Mobile Solutions Oy** (plataforma "Silta"). +- ⚠️ **Crash conocido en Android 16**: `ForegroundServiceStartNotAllowedException` en `com.unikie.vm.application.engine.services.AppStatusService` al arrancar un servicio en foreground desde segundo plano. Es un bug de la app (plataforma Unikie), no del teléfono. +- Con VoLTE nativo funcionando (el objetivo de este proyecto), VozApp queda solo como respaldo. -| Feature | vvb2060 v3.1 | TurboIMS v3.0 | **Pixel IMS v1.0** | -|---|:---:|:---:|:---:| -| Oct 2025 patch bypass | ✅ | ❌ Broken | ✅ | -| User interface | ❌ Headless | ✅ | ✅ | -| Per-feature toggles | ❌ | ✅ | ✅ | -| Per-SIM selection | ❌ | ✅ | ✅ | -| Language switching (EN/ZH) | ❌ | ✅ | ✅ | -| `showVoLTE()` IMS provisioning | ✅ | ❌ | ✅ | -| `canPersistent()` detection | ✅ | ❌ | ✅ | -| `needOverride()` fingerprint | ✅ | ❌ | ✅ | -| Config status shown in UI | ❌ | ❌ | ✅ **New** | -| Persistent mode shown in UI | ❌ | ❌ | ✅ **New** | -| Auto-apply on Shizuku connect | ✅ | ❌ | ✅ | -| SDK Sandbox support (Android 14+) | ✅ | ❌ | ✅ | -| 5G NR signal thresholds | ✅ | ✅ | ✅ | -| `KEY_SHOW_IMS_REGISTRATION_STATUS` | ✅ | ❌ | ✅ | -| Default SIM target | All (forced) | SIM 1 | All SIMs | -| Min Android version | API 34 | API 33 | **API 31** | -| Java version | 21 | 17 | 17 | +## Créditos y licencia ---- +- [vvb2060/Ims](https://github.com/vvb2060/Ims) — motor de bypass v3.1 (Instrumentation trick, `canPersistent()`, `showVoLTE()`) +- [Turbo1123/TurboIMS](https://github.com/Turbo1123/TurboIMS) — UI, toggles por feature y por SIM +- [VinujaHerath/PixelIMS](https://github.com/VinujaHerath/PixelIMS) — fork base de este repo +- [RikkaApps/Shizuku](https://github.com/RikkaApps/Shizuku) y [LSPosed/LSPass](https://github.com/LSPosed/LSPass) -## Troubleshooting +El repositorio original no declara licencia. Este proyecto reutiliza ese código con fines de interoperabilidad personal; úsalo bajo tu propio riesgo. -**Shizuku shows "Not Running" after reboot** -Wireless Debugging turns off on reboot. Go to Settings → Developer Options → Wireless Debugging → turn it on, then re-open Shizuku and tap Start. +## Aviso -**Config shows "Not yet applied" after tapping Apply** -Wait 5 seconds and pull down to refresh. The Instrumentation runner takes a moment to complete. If it still shows Not Applied, force-stop the app and try again. - -**5G toggle doesn't appear in SIM settings** -Your carrier plan may not include 5G even after the config is unlocked. Confirm with Dialog that your plan supports 5G. Also ensure you're in a Dialog 5G coverage area (Colombo, Kandy, Galle metro areas as of May 2026). - -**SecurityException in logcat** -The October 2025 or newer patch may have closed the Instrumentation bypass. Check the GitHub issues page — a new bypass method may be available. - ---- - -## Credits - -- **[vvb2060](https://github.com/vvb2060/Ims)** — Original Pixel IMS, v3.1 bypass engine, `canPersistent()`, `showVoLTE()`, SDK sandbox support -- **[Turbo1123](https://github.com/Turbo1123/TurboIMS)** — TurboIMS v3.0 UI, per-feature toggles, per-SIM selection, language switching -- **[Rikka](https://github.com/RikkaApps/Shizuku)** — Shizuku framework -- **[LSPosed](https://github.com/LSPosed/LSPosed)** — LSPass hidden API bypass library - ---- - -## Disclaimer - -This app overrides carrier configuration at the framework level. It does not modify system partitions and is reversible by uninstalling the app. However, overriding carrier config technically violates carrier policies. Use at your own risk. The authors are not responsible for any issues arising from use of this software. +Esta app sobrescribe la configuración del operador a nivel de framework (no toca particiones; se revierte desinstalando). Técnicamente contradice las políticas del operador. Los autores no se hacen responsables del uso que se le dé. diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 088a0ce..bef21cc 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -3,52 +3,43 @@ plugins { } android { + enableKotlin = false namespace = "io.github.pixelims" - compileSdk = 35 - defaultConfig { applicationId = "io.github.pixelims" - minSdk = 31 - targetSdk = 35 versionCode = 1 versionName = "1.0" } - buildTypes { release { isMinifyEnabled = true isShrinkResources = true + vcsInfo.include = false proguardFiles("proguard-rules.pro") signingConfig = signingConfigs["debug"] } } - compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } - buildFeatures { buildConfig = true } - packaging { resources { excludes += "**" } } - lint { checkReleaseBuilds = false } - dependenciesInfo { includeInApk = false } } dependencies { - compileOnly(project(":stub")) implementation(libs.shizuku.provider) implementation(libs.shizuku.api) implementation(libs.hiddenapibypass) diff --git a/app/src/main/java/io/github/pixelims/MainActivity.java b/app/src/main/java/io/github/pixelims/MainActivity.java index 61f4773..8fbf2e4 100644 --- a/app/src/main/java/io/github/pixelims/MainActivity.java +++ b/app/src/main/java/io/github/pixelims/MainActivity.java @@ -70,6 +70,9 @@ public class MainActivity extends Activity { private final Shizuku.OnBinderDeadListener binderDead = () -> runOnUiThread(this::updateShizukuStatus); + private final Shizuku.OnRequestPermissionResultListener permissionResultListener = + (requestCode, grantResult) -> runOnUiThread(this::updateShizukuStatus); + @Override protected void onCreate(Bundle savedInstanceState) { String language = LocaleHelper.getLanguage(this); @@ -89,6 +92,7 @@ public class MainActivity extends Activity { Shizuku.addBinderReceivedListener(binderReceived); Shizuku.addBinderDeadListener(binderDead); + Shizuku.addRequestPermissionResultListener(permissionResultListener); } @Override @@ -103,6 +107,7 @@ public class MainActivity extends Activity { super.onDestroy(); Shizuku.removeBinderReceivedListener(binderReceived); Shizuku.removeBinderDeadListener(binderDead); + Shizuku.removeRequestPermissionResultListener(permissionResultListener); } private void initViews() { @@ -221,11 +226,7 @@ public class MainActivity extends Activity { @Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { - // Shizuku routes its permission result through onRequestPermissionsResult. - // Refresh status whenever any permission result arrives. - if (Shizuku.onRequestPermissionsResult(requestCode, permissions, grantResults)) { - updateShizukuStatus(); - } + // Shizuku delivers its result through OnRequestPermissionResultListener, not here. super.onRequestPermissionsResult(requestCode, permissions, grantResults); } diff --git a/build.gradle.kts b/build.gradle.kts index 693448b..d640b7d 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1 +1 @@ -// Top-level build file +// Root build file — plugin management and SDK configuration live in settings.gradle.kts (AGP 9 settings DSL). diff --git a/dist/PixelIMS-1.0.apk b/dist/PixelIMS-1.0.apk new file mode 100644 index 0000000000000000000000000000000000000000..1279c4e213c5c3c4c094b875a4fabef7f10dffca GIT binary patch literal 111395 zcmeFa34B%6+5fxtIVTB(04E1T2`DEaNKhdmpayXuK!8Y?k^_jKBq0$3;ba6sMXg%3 z&a-IM;(!y>p^kNEowe0gYpp|TTdj7o)~U69-wv<$`&)bMWM{zkz3=`1@BM#1_vkOr z+RvJvH9hND!`>{OAB`D)15Eya{K%3+Z~Mnop31;9u%IGUKCyD)oZ>Yt8;k4G4ec#W z4aN1FnwlGm*S6O+G&dI4wYE;&*w|UuP}f;EskObOwXwaksj*}JK}DY|m{?g=c~E7} z{D}wr@THgUJNUIJ?;rir{0ZNGxvH)B=&J8k4t`<6f|p-9vvTDJBY!`#)iaBoD8`CX zvi+8iZvU$>!XQLh(_Gil(bzGmp>YfUXO~QwW|D<-3pcF0_=kl>#|^yj>DN|{ym#A& z)$e8QR+LtvY*{un0kOY-{Kc4SqCWoza9$f?%%{)+g!nTwwXZQ%5!{8w%+>Ru#&kYp z%+wjiJaMxzPl4})AA@(n@4z2GTC$>0odKDZsc0zL)aZN?^t4(5U?Pz{!YuYm`_ zqu_P$Gw=@hHTVF04069kIlyx86>tZ52D}F%_fgm2D6kxC12=(3z<0r0;1e+5e)=sa z29=-|bbt%MJ>VJeGw=~eJV2Sj(V!We3U+{}!5iR1FycXD4gyDmCU6S41ndIe1+N2- z@l*(o294kfa1VGM{0#gFH~Cu8^H76L+}OI`!V_$C#z+2!K;63m=@JH|&_$&Aa$bQ_I0&p;>1na?h;3}{iJPe)&KL9@kL%%~l;AC(X zxD~tzUIQP1zk#9OWo&^X!E&$xoB}Qbw}IW@5%3212$&}r>tHEZ4_d(mU?+GA`~v(F zjChhZ1+&3MZ~?drybN9i?|_fMXW*~kpCI-W?E&Io1Q-pHpb$&|#o!Py9h8H)U;(HG z$ADE}H8=rm04<;sYz3!+uYrreW#B4sFL)OG6nqQ@J#9=8r~(~eGdLBT4=w`Ng4@7- z;0f>p@D}(r_!RsT415MX0P?|s;4m;BECy@A8Q^B{E$}+{Iruvm@hs&6tHG(@CU75k z96Sqt1l|N6g1>;+bMz@N9vlkF!9uVMG=bB=mEd-8KX?|r34R7X1pfpX&(mkYRFDF- zpc!lhUjttUJHdV6Iq)O!F8B)=_yXe%BtSlx3!1@2U^jRk{1)VVk32vbI0`HQ4d8rm zEw~dr0bT>|fxm;y?;A4=>8u&H-0~o56kHDez3V0iQ1iT+I4}tV;U;>y5jsOe6@t_Ty4z2(5 z@GbBJcoqB%{2F`${tiaG$ru5LgT-Ji=m6WmSHN~~JNPm982kmq-a^-bA}|xwfMdaG zumPL`&HxvKtHBN6ZtxTEEATnU`YCk=_6B3YL~t;e36_9WU_EF9XM_M;CW1r2kzg4(9&7SJc5orM8QcyY0xy7HgUp{(=b!>C z0kxnNoC59!-vO_HUxGh@{{mURpj==S7!M8wb3qMQ1I_>!fg8Z>;0f>s_#^la5c?%{ z0uBU+f}=q#I1!u;O-LkHF{PA0YF6$`6KtJTL()0<~ZZ zxCq<=?g2jm?|=`%KS1WM(Hmf2FaaD2=7AMpJvb4Z0?q*EflI)RU>A54JPUpTehdBz z2L1-y8We-Wz(P<9I>Gti2Cxf!2mAp11bhr)zoiX85jX-=f#X3MoB_@T7lX^dH^A-S zUhp08Ecg+41N;hn4u<`Xb^t}-AaF2P02YH4pb2~hoDX(@UEp!>eegE;82lHA{+|8? zUIm|m$%Z};szD7%fu&#>SPqT>E5NZ}C0GTH1IL5apcd4DdawpGfJSfvSPRyHCa@lC z0L@?{NP`y83fe$B=m4Ey6W9z+1Y5vXa1uBfoC3CiQ^9HAbnq2$1~?O(1-=T-2Iqit z!Pmff;CyfaxDZ?fE(Vu?OTlH}a&QH>5?lqY2HU|k;9Br?a2>cF+yK4-c7PkfP2gs5 z3)l&61-F6Q!5!dEunX)4-voDoyTLu+Uhpk&AGjYp03HMnfrr7j!6V>N@ECX;dt!DQv@ex;5!&>5yUcQfv(&fST7nsc9yyUe*SzD(XUF2|h-^qT_)fWsX>S4@5iGt9dDFmnF~Vdgr%tXsFLCZIxD}=loQ_+0?GN-5 zUv9}D_ju=4m?EH`+!L(JmqG4xclff&eFbiXISA;dbS43%skSbbdxy`LTjf%_%Y8d; z#SQwg+|z-6D(?~C{vCdpqj2k|_LW=htMD^`e)B*Dcw&d&)^fjuTk@#w)t8i}+T+a~ zeq7a&ehMRZ(BIaG$xrDwSeNf^a&Co}J7~N0jxX8TfMin`xfMqJM{e~W@jDz}>2C)5 zDX!c>T)E%h;fI&|L)_{Qa{n2((ve$ZS?SBIi6L+g2)X09gYc*C@ZBd7d>{Db&}~3J z$so66P}|9!B#i1(?jo0t+-gUqDR)VTACy=8puBRI5oU=Czh#G?*Qq=Q<&|4;6-I7_ zQTk_rAkDLJ&mf(0=!HN(xi7LVKfK)1MdDu^;$Mn;o{M{Vh%fhI$G^()75Cau7`fFq zR6nUs+)8tvb4#CBI=A%s(awF$ zjr3*bZopmT+^x75I`@_kf5#5`jN_jLf01*m9hW%wCAb$m_jcSV=iU+GtE~h6?V&LD zgxn8@+)v;>#`DYg0`4HMS8xY;y%}=96LL$R2YLN2#Qy|$kj{UE+%klMG}T5ym;vyE zbmAfRJ|TB96t^hkexLFN>6E~)_WZJx;a=+8vvCLMFAl{$Cgh%qJb`SrA^tyZ=;p73 zALP}FJIHGb?jWzTa0hu^f;&iadx*ay#J@e{z9$ss;Sm3ckoyJPfef#N!oP`onJe!* zq42{)<+AL-r7#^pOY z6h0M_p(wr60Z5MON( z@E?ZX;PO%(mQ!WV0R7~C&boa4{5)>yQt`hR;=knh5iF!O(u(kWGjtR!@MlLahgrak zmd|qm{)N!7W+IS%CNWblzXYkGf!EHePQV=b97YvS!TYYRgNxjbfKe*99?YbY;(M$s~xR%w9e6b zN7q1?vFcxL=`gbuy4;mRROL8^GJea^`y9RB(Z4wQACCT~qpOf#@s4x!ct=+|TI*F8CC zUhU|1N1u1}1xLT<==U9c(a|3}`kJGEbM!DL$LWq<@8~0rzT)Vg96g9~N#2Q$PI9!^ z(Go`|J38Ib!yP@s(It+i96iR-PDeL8dZMG-96i<1(;PkB(K8)A%h9hodbXoiKvzj_ za6IGj7|K&i&(b)ogD2XE#eOLC1V`67+U#iB(Kbgr96iO+tKIm#8p}}Qc{}}6<9RzM zwa=_$pw~D(ag7Uq9jh4Sf4!6AdPbDuqxLNS2KT&!6ylgJOaIq z_Pd*M-9f%_Fr|IuYh!Rxqh;XbQFFU zyP1oue}lQl(uL-2=x*13yOBrjwA=NI-K6sa`~0+d6Z%bd6_xJY&?25i53%%YGm&)e z!B7409(tJipPnCd^e52!od13FKl$HJP6~fN`Re%r_xzxv4Vxfbt{LKJuB8c+urzK)SUSv1fo7TE=34R}z>0My&jZ-itg!SHGY>k*$vuejNzOs+ zKn*6}9LFE*=ulR+%6}-k-UIQEJARy<E#R~s)E?eh@NxmYHm!_4016-)OquUfjm z3?Tk6vzN)S^f)ul(n2%A(gHKd(&J5urK=rXYD(>Mp82Vzqa3}|{D*zM)Ra@6y^!l2 z@)_ae9l`Fgo%n{s5C_X@ix2G~+^Yj5bf09P-;2>unJJ z`?5Q^m!(&jH2g7W$p?5&vXiWIlC+r8Niq&qA4z(sz6(0m`HwZFCT5?fnemo>+kDT`N6Zf`{g&~NXRP^#xg1)^Odab}d|ziJj+dbK&jJwI;g6!WU3KQ^mKcYk))H$ca; zn|uxNi`X$v;xBpybOL(eQurFnZ&><}`PkBf%?|5-ih0da_UkP@&b)5vWb=mef6LNs z<^uAWKs#S(>DlHYOHVNuJN_k>{>WTv>2`A&^Z;|SE%$+rPITkG*wteRCk87>zXbWN zwDbsbm8G6pLHttwo5=GN{I7;i<>cZBsP?C)K@Ty9nQTkXG~a@1pL;U2j1z*0r5jDu zQtmK7r*ZmF4L!`|f4CWFq$fpxZE3cnji#7z;?H$-3-ajsTuZYpJp#+t!~Y0&FK>b# z<@DB3oQPx+?kLUpmNLIMx;JzN|K$>XCgooOouv~L__H9u`G>20d^{Y9QXBYC%g%0Mql60kyD_y^+geQGpNzG_}5LLNFRc`rzZt1&r5p^^< zN$<@!5wj2Z&PTXxH==c^KgqyK%CZlb#simv9Pp3+XIDKmN+nub8Ru ztI?E_uiB+k?d-2=G_K^UMt;dxZBDoHRU?PwtJbL@`Bbxmd!(h5+0h0|=a@!I2bmKr z-Db|U^i{Ln($ma0pf#@jQ(d&q>75%NFA6a^u z$#V5{u%m}Ky3x@#N826kfG)$rQU6`$?2l!nyNUFcxqh^qXZbH@{#Ly&=Op0)OV2aY z3AY@L^fgO;d6%<0d@s+(xOgiZJ=W2cj;?a_I7g3%YTSq_zvJnz%I|pcy~5JFZ2KN> z4z%;~@tkZvZ27Dt$nSVgde>X}y1B;EQ_P{1?|9^yW$86$4s^9ke>Ikz(${k*;a9u* zuB9H7e=YnE;WsirK4|F)=2+r4u@muM#B1WzKz2YAC*nga{n!k(bc2aIT43qhCS~cX zW*Kxn@y~*`y7{_|5&curYa`G3@Y|4B`LuDOauT$Ikt_cWq&f%x4kVNRCKrFRE6-*$ zL>B&=8K3e$(eY2>bXn!u#)e4-xQ~yf{e<~;c zK5cT;PyaMdww3N_oX{Ud{L_d(1A037=ac^FJU|%KO{rW9@zVbDUh~Apcj8=NvSL^!+*HeI)sv%MFCD!~Ytm*1v*(9yMDH z|2%FY)IiU7@h@=nLiE~9!d-|4yAFDhOZOu9HTJpLtbtzav6Xdwm%}19q0$#BE<>nXA%Q$UU{a;2epJktyo8MWw!qUr~9G4^K zQ-r&m8y1p7e8s=o>FMoVbd%Nl+qr2Wy}#X!*X^9#OYdJpIvP*cfVWBS8fOPxOURda zz83#qK(BM*u5;`9>$pWAJ$gMi9@M_qiRL*Q|3tT*-{RKuo6X6{x08HSKcY&1CpR3V z4|W>Qv^(1A=!urDFoQ%hg9`zAZ-S;yJ-e#xx2^fc1~z16k*ZHx!C|7~s^Ao@P_ za~t|d>ww$P3t9)<#t1yaJxk8pu!vu^)L#eO=GFnXyL4|y^W2XA9q#!Kx6Zu7&0lx0 z68;(a$p4p?zG6PKwBG8&JGixTl#PF-nPKVv=4eY_wRXWB>_h#?KA&fPZRsm!5aqgq zm3uSvPM7bU&fdS1+gCp#{X5-y|4we~TuZ!Ngwr_K#RykD>|zA^^j1fIV8_KS>fs#X z?{fM_=daQ$ivM#8%STz&6Zwf-i3bCr7Nm*zsc=0%^%++ zed*P^9RDuXr{dp*UF%bS{d$*Mzuv{p!5HiRsQEAG-7Z~GrF*wlN|wLaOtJJ3bEBn) zT6&Lp%7(j#@Y1LEx_IAm^gecql+JzV`(@P2{oLx(^ZhRT1IVlA2YA*x<3acQp!0vo zrSq_(-*)s7r?($rrjp)%l$lfMJc_^c>|^v~JwL{?^zY;D`EjRzzeBsL9lp!TOY{jR z=M#iiIi7?{o|{O+%XIf8aQ_%T{YHP_Q$6O!eSe)z1^(llKSj3ZGrDi_e#n2i^Pdxn z|6$0#()rKD-;4Fl|9I!Gdo2C=Z*=|(Z|0VM8C;dB||04W@^mVQnr2mNXUmQw5?EeD(Kj*TY?pXAfK5YA|=5LUGPAL74 zUHUo)3;Y!!$bZfsxcf)?DR?xqEq~a575;z5f2s4Q3hXb4e>(nu$A6jQtA6wg{BQlx ze_jqz`h)z(F8}Z2ANkxrKMKqD1wRG-8~y|F*LhKY{s;XL8y$b0ANA*dB>r3R*ZE9; z{#E#&hQH21`t!dZ{}cY=-=*!(|0(?Sy920v3<3KK%Kt(Go&VKJA8ZCXe-6_Bq4U>y zO^|-r{}=dwmGa3BmHdid7>XbJ7zV$u18;xd|Dce+_2kcW@<)Ef*DuIF-^JHCP=Dn= z-1#$PyZony(qHQQVcDO?nSMd~Y3IMga{K0gp7XyE|DgU9G>HFg=YR7a{GW3Ex5yv# zF5ipJf9D?jM}5LthWfpA5B}GDifxVmZ6W`|L*;)HfBkOviM0jf4CLQS7kc^K=@Tno zSU-<<{=4v({3n8N`yP$|hvdK8#aBPkFG&A!7yp|+yHELt{K@yY3({ZxOmhBr@4^2V z=YJ3W{q>Kto&UY^2SNP@`emo{|JEM-?{)t7h0>oLs^7<*|NSBV@c4Y)`9Bcy56^EO zJO2km{^9r;=vMt60{zK9%K1Os%Ri|9@%Vp6`+U2Xe^CCzT>MAmkMdIeRE5en$NB3# zD)0}_@2j2vVo2z2V*M6Ucvy^Z)K1{O@-DPlVDB*WV+~ z|H+Vlxc-0a{3EQ7)c-C(QRYAk&}gmk>9ErA&G_VaE4>S80fo~~;bhZ{jlXEyMRA2{ z6dh&&@h>2LEvzB%<>UJ)PKsGjZJ7aIP@E%pZnJM!5`Mo;>>iC{XCPJGRO=gokT|a()DImJUcoqO3#Yg zo)sC$(^OX-1Z5Ip!FX+MFGuPU#zmvfG_bwsHO^y^?9NX=zIbq~n`-&I$OL z?aQ7tDYz%IL$!xES!G%1q^wM`s`PKPXkySm?K}~cUY-`EMWaO{^I{j<7M+D2 zE{kQGWW_>LM%l7vjfpNaMFR_Bm9|Y|X639waKn8&x94bgV{4`zTZQ&7#jtaSKc~>5 zJcs-I!CzX=)ND!>i6dvvS;dwr)@$q|{lC&i{@5RFB^&kMmLvCnksO)K(t%#A_|p1l zk2j-3bLjo2(*B89Sw@aYB+|((%)jZ9)g~iWlu2vvCyq2HwMU5d)Ou56^=1scc`BnK zG#B@1!CuO5WBGO(R*4wT}_SBePDuwj*epZHk z8P(l&RraNI<=27!E_S11eV;kx|DG)W{@fANhx&1%kM4H8xMxlDm@WRNb4QQ-``Bjx z)BMA2p}na+>#MTZKoj)cqL}m%wq92s&hFiZ@$2rtga60spQE%-WwtK>|^l#S( zeW$yf`qedg;kG(qk8Ra$*AGGebUy|5*m&DUqnMv%7kJh#I5gBod7dv%oLbq!`JJDu z{w}7K62r?f2L(LzU}h9O7%AGz51T4L4@R3*gJ{Ci#n};AGqn+ELaj7>iMT%%@%Oe4 zw6g4r9Nqe^f7`6Pj=K75Y$$e8zZ!2)pm)1V-+x{Bw&8x%g>Ns*9thWk8)vM&dgkxf zhW-Zjz=l2bntxlCd|Ma&&E@CVxqQ!d;$^+;#A}_McrEb?ILY!?t}7#cI(_ZLb8Y$q zY=7|W#3I@%&s-KsGpWNc-YKm(*si!JqKB5cx}8{J`GumK1j!xT5fG*pvh0SL#exF`7B zN9$u>331o?+wcA3HO|P5a!7>tkOHaXWnOS@p5A;qHT! zNH*mZ?9K%Db+&$?=Q37tb7GVxS?o=vG_px2m`nY_$G)0#ZYYc%6oK&TA_?N1Dbj^^wx&pVKN5lyD8NcR>z_B%))dJdZ`yHsdU>yfnuf9a+FG#`Eec8R8`t4>5x?@{p#j z}*0$2KDc`dbi%lx`5>8_G z;i)bDbNq)uf9vQk9sPx)zp|8|+JNRa3=9Q2tH=U<^S_k*FYC%biUg8Zw%cfEb^KED zzl{9ZP%~}G-*9R~{>gV8ea}+77$N%YIiC;7=Z{_aXjG^@R1YJd)$tF>=a1y09jmsI zw@rSOd`dpI6c#HV{rWG%N2L96SK8q^%p*>9{3Fu-*p*?7cRcmC59tjtV?1u6$KUCy zGe3`k#0l@AX%Eb4A@37nsf83W*dI%AKHV073y#`Px%>4Oj`t~kDsfO|`K9;@MO(?Q zxr3!N{h!j*dbiD-$=__-c0oMpclo7D&L>We)2qGv(`VGhpZcwf0^(N3Kcg=GL|v%X z$9Sueyuj7PjcA-Jocku+S6Vm0T-&N2sc!tz`{h?JYctwEx`>lWD%J62V%>a)J?KRc4}(j^m3)XRzHnbVkI zW>NFm%!D6!WvrjuOXhOZHz%4KZL?q9$iW_3hn`gEE14H&I-MD%j&md7xhp|FZSmJA zM-KW!VP|-8tFL1`f8ezxf5N*jxs1L@S6gf3=9xeyX`1%#ly>qB zPUnZv&fW3H!Y|;KS8MVFZw9&R`ylD~L8PA(EAU3+KAJkniL@r?nS5rKO6obC9M9NK z$LGr@nl7p0hOl%|(05f=YP;6B4sE*oruvxWmwe{>rQh1!;kC)%JqEh@Iy~%;PnP}i zKeFL9UeqVlXKcR7570FIrStneg#XZn504RF{!gs@ebfKL9@77vO}}qCpW1ZP2h_*Z zclU+1#?``!PgW!gX`4rRzpAyQJd*TQCimm{G1_WYBxzPA_vPtvo+|890VPv8yVIJ% zbDMdMI>K_#okpLiWuL399y&&z8;{q_uD{iDg7PvZ}r89 zX-Q_#s{*-Ix2l5)#H{6>c{-^Tf^3x8W@X7i@aFd7mB6d$#hV0gb}!yUcyoI3is8-c z#hVQ8&=9Yje3S6Xdhzn%9o5CF^$x>*JvAa(XAx%t{^eide<1!dzr?=?f33az^7l>u z0Q`^m694`2Kk`fb$K!wam-vsv|0q-IwX;I$Fs(EGVWRmeQLVQb&WT-|nQ*Z5BU`&T zGvIW>+0?~30?x5;R(5fYgwqPAt&4LwoCR=9oZsr1rjs@IK!!n&>jewVKErlF~7 zxv^avX`~$|nX$}ZvZR?=Bk7W2&Ce!PItD-bl-bMs;)|l`-Fk3e7kACS5!cs`ys^2x zD9`5Tt+la+v7Sd;1hQpRe}uIl%dx*2iam=ksH) zcWUFE&*naH#yOus*gidFLuT*uNaC~hk~y?uwplTwkn%+-ulkkdgu~Qs*gVvewNE_e z1lF6hTqX4}6jxs4JCOu-=|tQ)k(G(D^rrU--x~k3{i~kU8vnw&Wyxz)dnT3Gk96;5 zG^Y~#;`*jsxdpiH$G7KNNb8uExO!D8u2`?rp;K|i`iWdN)*CjK=2!j4ICHj4%Zx!L zUfOL_XiRFXw8XX6=s7aOV^00P&FD>gt;Yw`7^!5V0_$+{IWu~(LOWKWa@7RhWP3q0lz53SMLb;2ZZ?Q8v%d+5MMnb z;ExaS)h`@>$~eo{-awwGUNJ*fXjE3HEDqJ6^rPx<6jYjCb7!qL9k-oFy)mBV@STR9 zz-aECU43o|sRV0j-)5M}b1kcEjdty8)Ozc!o3~TF+DNr^kCPTCdBN(F>Lt9lo|uxa z6UCy;#Mmj5(OMC&w18ca)?}QM#M)>*vG(GgZ;n?GeS~#+YspcOnpk?qaO0KcWbDPa z`Lq&9m<%t6Q@;`9+jHz{y-)yG>CHf*r8Ygkq$_aex>6r!3L>OGOzF?Wo*pI%W3{xi zpMK2K{_Y5BZHUqSfyR#d!Qs%JaUtDPJ*ANTSKg!lWm(xHwhm84t~@MXUmv%{^Ee;Pj-=LLMbZLg?0wZ{ zoJ87_%rbUiiej}Ht4+~=2D>uS>~k`77IrIkpJJ7$2`#vuZPzcRlSX?}@~t566akk3asn z&3Tw|t|QIJF+tAg(PFbdC(FvY&h}Tnt4n>%pdKb_TzVTPdmGb?&u*I~yw|XeIAQz4 z-)q=L8Di)%_0R6T^J3CW#HU1Ow3Z${&KqV%#C{h|&!{)0siCH2=`kjMRyL>C{=S>D2lxc0{`2P* z-=4~_GWpg<_uj!u#=y$R6tweFLI<{;Kc=L$Qw8KqyS2u302Z(d<}WhCh?9jAm!#W%_gXhG=$XUY0*wpB&B3${XO%&*w+82jmU( zXXLL(vj-InET%kXu*Z^@J&jzKm^-3nSh0ELG2~ssE@YnhZI`P8`QUNWVvci_#h8iB zce+A+x6AdrF4yn7T!+~ll;-)-M18uXnzYKeJCVm))6cDJfSw)=p0e1lV5cXL1M~;OV~%pE>T^zF_KHLL-L4Ilr@+{msybMkBCg#X0$mtll(LH zv*oKZef|8qSX#z--sGymlvnEt?c3}}E~=T)o>qh<*b6z>28Xb>t~GfHx+^C#26tP0 zAeIJo8o!9xIgzr+Urm1Dw3zntKcmEqJUhbXXV4#F*rb1vO*%g_o2Lwu7%^qTSd%|~ z>e{3kyWtr#J1degKWk7%K^E;cU@vN-!aIle^CB6VL9u#hIrbuGxh(S1Zb;H(eXD4C zV*Heo3rzljQ%@cfq?6g5&WP@G(7$_1r|9j1LF5|S+lHP`DHL`-9IZ^};!?hpmG$S< zyrq?YpqD!M{?jCLEN{R$jF4(`W@dWE1*YxkqQZiKq?LWY?Rj?)f1dX}o@o_Q((@c| zE6-WMGbs-=IRn)XFEM2~%&JPKrZD~jb3go&d6Bk(IRn*uzLt?aV9L7DreFX$47?hR zUEyuFDQ+=&Sy7wf7XHrjUa%4qKT8s~nxb)job5g0s8oKKD->qf-~qnu_jSoGSrrNi zv((F42fP`Jc|~W?w+8KP`_?^-(!qoBa`;vn{!a`Vf`;?=#27mCs0{m^=_pz->YaRb z#5?&0&pY|=bTLZTZP(ZE+{XKszHL6h6vX_#9OFKy8wK>Yv#oy{@3|7rEA@t$VUbs| zO7nHcs%MMY9%bezkIaZ_jl$0I-gyy5stZ#ViSwR9W_;?UHs{20QBJ-+7_+)T_hAx@^Jlz7spc0fIkdq9=?YGb zp2e!0>|qaQBy#g2D>-dq#_`5Q^CF)`Mn{Xe3wxR=Og@JlV`nAnb8MtOdKR|Bb5_Us z;fHc!Ih2vg?O6V5?UYH~jf4*7d4K32TfZBpL^hSWKia48_fMq577!-SoWtDjkLeM; z#1p>?HlXH3&6kxn4l^10L*pXx*_3>(`SK!< zGH0Aa+BuPes6V&xrNsDy>RFLt(b-t(4{?hkJC@jMN(#HjJIuC;_Lv5HMcM5$9yW=Z zJXVNmDRKQ3Pnp#rrL^_}N~M*{T;@V)339SJL1F!M=HAH2{8BU&DF))!{Bo@1Wp>G9 zKQ%An&wssT+*>ln3NnT=>nt~|>^lA=QZ^*h3>%zpyf=zs!v+sDMgJ%m;A;uK^E3Fd zh?`fLXRFPdk%H_Ttgrp3^~9h=P9ifgaLd4v)LFscQ;qcIV5=wpX!3^mE3-e^5)3vu zgH_resSZrm;JhKTqta{d4wfyVaisEWtj?r7vJX_AgH#^lmxEr9?(plHlQ8CS?Xo0T zzwg6$Lfs9Hj6`t%+um5#T?O@7a>U+Ly&Pbz^Ng6k_g3KNIhLIHFKlbWB38ifww)wt zPa9h)_1ty!_gd3&Svp!nYyS7smMx}n}PVP{B z#=2Gz)N8Fc<_VKvU$Zh&!nwtOEUh78SVNLskemac1*GVoDK?o4th^ct{DBsa?>88m(hI7W>iB!?PQ6c>`|&i!yNNe*cQ8I~@$wmYL$Q-? zcAQ7MI5#@ZQ;uU8C;IILRF>Xrr4^C)DBJs8Ws=Sb_8)X!t2LC~g}8*CzKj_`Z7Vqy zMsjM8BG20|n)pO|H-TJj@tu?@&l_VkvCp~Ha`Hl)+bm}^HZpgsG?L@DTh6E`qq}6G zOX&{F+n0C&=T10n_Dx)k5tYVoL+#n;c}W+07;=*D#n z+%JpLO7SI%T&Tueprh3mtaDS`@L_b7Wfamw5BGFxD$48|wRdOs8I!TYq-I`WQZ-l5 zO08Zg_COhT)KjxBXRqaQ%S+ieQp@6|lZ!CaXu~I*+|LJCBuI#Co=S9IFj=FQ7Gk9aZAr3kc7N)-QRzr(G@8 zi{=5PCz+3gcCVxJ*hNc~UPe8?CRBfNe;&)Y--vpkn zbx*0u+tJg{U~_kPtVkpK)AlKo^ior`!KoOm?X>JiDJGK~5XS^CD!iylZS zOH4^jW%66PyAQ1LuCitA%fGr`{z~lP{?b|LUDGdrm8bh@ee+%6eckf4d#e7aa%mqz zZOVCZdN zs`n&j!wvSW6S;|qPLnqB=nA-T1mnD(w@k}OOLr7`JHxxp)7u$wGoCQvwzA_ju3Kcju2UMa0d$8T z&%22AM45I+mMSQy`!flsCY+458ijC&2LG~%E zMoA}+r+;E{`#oK-q1sH4`@yPg_v^9?LuzTXm~xFp2#&1{%!p z%*v%Tt95I)Hl@YT_5qkbtoGkm|s$)9h^TaymVV$?5~Wf%egnf z`p0NIuB3)^H<$64afC@#Gak{PdC}W#3rwa>3XxvBSO=1FPE;*f%J;8+K)7*?tGjGC z-EXib=Io5v6Z4X3+y>QJ-^M1D1CfS3&*XHQpW|~%F$LW}gkI{uPpdjPg^+pXWp9o5 zGP;2=u_@1cKcW#V$rI#sJG$_XXhEGH4bv`g#`%${vshU~wL^8dsWFM!=^3SF#4O&^ z>f)t2;TaKS@0{I8t;h>v{z^xE_&{-N9doaZm6&Q<{7TtOtW&fDGjp1?ZyY|!`vOoRW)%s=(zU&=PQfgN<@8vThu7=}s&Qz_|;xmbSil_^ZeSH1Z zPj#X;_4}Pa2dn>l9UZ6MolcraVCw{SkmC4$kuJZm4$^#7;O#lEMl9mA?R9lx8WV6IZ1_Sf5*|5Ley@f7ARxUvTadj;ksTIVSG zvt|unkFoY;|6Bk0Yel^msPxnEBWQVcO_a}!2TTcjSVOTm3p_s!y%(r7{QE4E2P^OX z^S|d`=D+8-_y4!zYQ0jxDyX~c_Yyw`jc^(^Q7(H1y=%bVpP~+i_&UL_zx`AP$seP2 zM*8XH2X)DJbGy=8Nr<8WgCjwjNoqA!@MC5)=^E{Zk?!!m>AvRD<&H*Iy7#$sPe;y` z$=CWx_qAT>27N;P%%Ah)bjhA;Snb0Vn8O&Wm*HxQA8$2R6JHxFz?$F|6VFX{CqZdQ zZ+T`XeJ`KTt??th2(}_6k5+OMMf;O;=smkk((V?lWw(^MffI^}-2OX*J2_W!o?0J$ zh4)lDy|GB*_kZpGQ4hnEexP%Uy3*Hdre0P{Kk9n#)A;Xw!ndS!w|I}-B$zt^;;^j!LguU%y6U4?-N>c>g;5Hs9G!HO`fU>59TDvsqvejAN&LzrrP~E zGsbqf^|V}j@G)&MpCjd;;vW`G z<^BfkxR0$rwVL9qpUDCY;{Vo4uU_cK^=;eVQm^_loYL(--tYR2$M*%}`ZAhqR)4Li z{OmX^k>+L&%1Y70(s8Pa^45Dlqb4>o1L>q^H>cd#Gtk!LUXfC4?=-j3awC#0kWY0~ zz<1|b+&P3>P6(S%yjl5p?eWcy)TcW`+e?h5p9PUKClDk)TbR3&Qh z#+sr}gFOa<+j{rM_r6{ADp}R;em@`W+R3-e)qni5cI|qh|7z(yO?(wrAsF_od|f*vr}j8m}Je?n3zOt$1qh?sy0H6K@Lf*e{Py4aM&s zk7|P;e!?5$a^zMSV=a*HLG-VGKA|s<%JS-#OEyk;|E-5S$!T7xMocJtTl`QbPZ@NO z7bkvrU;BuVJT@MyL`mrDa!0vY;qNtIN%Q`lZeX8cmY7sb@1XN#7}LIZJu`9eT^RT7 zvDNULt+Mj*|7wpn{G{)`$Tsue|2}{o;s4Yp)W7Qa>R+&56O32cgKf!|XitCtA+QzI zHoo5vzQpgvE)LpYE7?Y-M^4PRaL>$ZC?(Rfw+Y7MTv1MPE_(X$hA_Ie4e`9wNO?I3%)-t1ui zrQW-aIqE*nvsz20a;L97xys9DKG=^F#=-m@&zq5&`z1%N)iFUDiLNvXJmPcPdTL~H zMDgiKQQ}i3;zt$V*T8$0;TygT+$;RoGN>*jjrz3K<7@cBuq`KLTtnXq${gqfe+<4t z$ZXg52BV+!h3*_{14)0l^}@*BeRwTj_v^0@uQj*sfq%Q@2Wtn_we(3X=}c2wp#6Ht zm3)@E_18g?NqSBz7|l`s-Ji))PhI8J9+6*O?FscriIZ=?gx$4~_(W@?a9K5;U0L}j z75sTm<4-!FM{4%&X-XFAZ9hm4IfIr%W`G&8e!rG0i)=I*GQs&QaCSRK~+l`$l~t zGL-w~LnDJZZT_iEb9_YWZ|>~Mo+t@yVD%xDJFwifX6)Tho6K#t4a0p!bzBeM-=FPS z!{5VCcBW!!&oo@eU42A#%plh~MYe_ZPG#2=FveVJ*ddg7#t*pTsQ2zNBT1zdDi6V_ zZ(ANMAM8*4MK)ra{a1Rr_t%uZ<(K@>p6h6hV0A|q|7FWpn+r;(7+SzP;;r%XD0-8* zk*6nl(pTP^c-y7G1U7RM+AjQr)(iQef6&$LMrW60>VIFEEbOmaZhb}BUrR_1^%E<1 z^5ttIR*q=9T zJ)$jwe(_`|{d-*cfxYt_e!9~UoC@3|DN62T{UKYkyFJSZQx+{TYoa$p4?==6=2XSf z+eS|qokl04vQlHFXmp!N6JDn%8%4b-alYxq`?1`R9a3*@2;zBuyufy@k2242uaNS2 zDqnKA$`>{JMJZoozo@<=F@^N(nw*okpnU50eaeu$&z3YO=SzLd84t=Cq!Vt32mVDn zXde1^+aat!)wz3&u##u&dC6d`-fpelwN}Uu#~r1(=ooar)iKE+CC1Tq$qLzHoaPd+Fp$bG**J`pA>w9F})KddBXSNBuO|kNEG}uPH45VbMn3I?(q*v?Di- zecM`NZB|qCuWi;I+6O`SNyBMQ+J`btfVw@2Lm8y_bdP`8bJ{<@S^b;6Qiasb4Arm3 zM$*5Xm5}+#{P$`mYvux6abdHuX=fQ2o7!MRtV>k3EJR^y*8gi5z`zh8?-!sV#nqxP-Vd z&=?uM#u&%Ge;vE@MQ?JC>OiM$qE6dnOsUbjvOBKc(ns?=RUeh+>E=7_)jQ3*q)*YN zXdZnVS~F;=ombUYRJOXVvZ-9sZ~wAf+~n)8T(qRGL3_)fa!va3a`|5z=v%Hmrb)SU z_H?r=oj+F`L+Msi9+lEFCG3fG-@97WRnB@(UsvhfhDY|>hGkJkm}}31*gcG&)}7GQc^p4eTy(|ySRo3+J3|@^NxLkn`-XNefP1ctC{OQBNzdx8 z=?}5#dX5LDpRwu!OKylcIGRfu!Si7LZLz(1ex9C_9Zk%b8s)8XKL^zuIap0@EyN%4 z?{}u-Be5#A)1n(aVZAJyLUX<5M7ulXO-^`|=b;I^=j}dYc*c+Zg?{f|`$?bH^KTYt zr*Z~0G=^Q@X(q`^@E7*o8{Gy{EiCgUvumRp1zGW;L4#TCPGUB@3dz{ZK?fy>K`QKO zmRnt|x!TS}k(QBP^+wuulU>wpH*&5PpH2Pf6s?5QE>63IL%{gu`q&Fqz6x!JcCNcA4p{FNHTgLIDCo$n69 z=`M%PPxZGe9HsfWtrOc$*z`JM%;mkgw)h0jr*pEkqCe1kgcOVB49+e(hHp=ZAI+bd z$T+y-a5E<}%DHBZZuMr>4>-$|p2J+jmn5q#NB77jg`fAs+(S>>8=%}nM^0{&5775E z&N0~o$_D6*73JKU&mM43Q93ybF1N_}0u47#`0i%RWNj$QcrzozD|$9-)HMDHkz7(* z?C}O=atUX5+1YLJL#)L0gD4U0GblSZTc_^X_B?MA^(7lr{VRqBJPfK+#YkjBSxZ^8 z^Dq&38iRq}SDfyB>Lz+m`03}&v0tM{0TCmy1I8+%_fOMhls?jZYjZ>bc*`0JUQ9G&RsI7i1j zy3o-jj$Y;HR!32PR-Z{vORt^b=#h@@@2KWV`D_1I^hQT-b`;_?s;~d`te=D(gT~!v zUa<4R80+%W*o>dj+6E|Eh;FlCx4}8x`CV(q+Az1UI#HbG9e*27iYv)f!OvQkpYCYf z@*B)fs{BOt^YfbI=+oF6lJNyASs;sKRz9*D{W3_Jv0ZYFb$oHfSJ+#C($>Exuji+M z=nkO#{jh#|zMFq98@_RMqdmhHfWkKMpJb6+GU(^K*LJyIurm93$Tm}6O+fNC@vk>* zqn4EZX8!Z3pWkNq3OgD2`TNh}3ECSMJsrq@n|aPYUy57&%YpLne`CAcLEUlF$I7Z* zwxTLt@M{^@W z&tu(lKs6@hufFV4zc20Y(j5;~ydvkXx|GbK`uT4EN%1Fe+eG0H0-{Xp=x!HgH+hS% zKJ5383APTErf06O_V`ewQ40;U)|20^Tk-Yt-{JE2>CINU%w$pd;!55R8uw(xwfYOmy<35|eT8+STcHlW)oDj*j+@_SV&%>)IPT z*0nS@bgXVlcdo8$Z?D^G1{}VoxhdV$d8Ela+^61AW<>d{ROOA^!v&yY!dM8bMb&1MW2LIg7uL8kcDC20JL=YSnz8ciQIy3M)e9C- zv#GtEu6+=_HQBPcvAw;ip)r|mY;0(3m}JJxYT4A>fLCX7ZDXhUc*mOdrq<4;mUOb2 zF=2+xt|*_qx~j4!Rk4uXWQOvbny0Q*|{ull7aLnmZ>prIQ;sHFq{m zbk!MTkSwxQZN|;1Yig$A3AebN^qL#jHa0BwtDf40-CEblJ@`r!sjM{7O8&(7qsJ;9 ztHi6Sf>*`g4E?P#`IQT5lFM3})-)y;wRTRdWQ(e~y|J!gYqHUbM*WZM6Qs*4UWqzr zs%vgKiE?jhIxJ}lE7KjF?VC2znsv5?Iy&oAMGVe{4K;P?hWeH*M;PyD6Fs`>Xp=L) zV#VsJ@`ZDkGR%!vWg-YUysC0$b$Rs)#z|=SN2@4Agg6nTj#d#a#vlK$Wl%5*WEm=+ zN>^nvEwTQ`@=&w5j$Rt6I+n0?CDTc#Zn_y!g;>%o#k5s%`I=6uwsY%rli!oy+}PeZ zo3gg7Eu2Yn(U{ZC$UOy_ZpQZTstl4{P?xTw?^q2!-R$?Jfu@^rJ^g#t?Q#t$iP0lwVn+%-4yol-cuso#dcNs#Ksj+SP0 zN&nf{RF>5>Z))raH)D@%wscN6llzG1_kl_hXg{HDO=IDr^sMHlH5;nz?5ym%`%REq zuPD>aK7CSEdTH|O?h!#`-)9aALW%dS{+h=2%?#gJp@u%7Px3YEr0W*9H=fXlqD5C1 zRx~tqw)CH1@38$9sdZy<&<2(16I%Kc3=5(dsZjBo+HGI#uO$>nEw!l~p~5ZEP}f;k zk4`O~wW+;Bg64J=D&5#wytKV(y4kyn)zVQslfW}Kr5l>*H^X{(*m-NZ$?L(?5H566 zWbX(rmEqwC^H36~fN(*{w9;4eg|i#cy!8L3)+XDGJ)*imz2vRz>O#G;uWD&w%IL*h zTt@{pPdA5zW%8MHjmFuH{+!s-UZ}A@tGT74u`=Ddsk5dNZN723IrQI;w`fymC}MYS zrnvoO7;e?BAez+*XOXq-V?El*PeTF1yV9KWM+X{H5;zMu5Mp}Lam)+3#bTRMwV{8`%B z)Qm{oRlW&Eak&imnnn~%_atCFW;b=THrH*%3Tkg!L%c*+*4DeKWo@6dXb0*@Gi0|i z+T7H5V(~Km^i_x5HP#hqy4kBM8_QhI5N$azoYRR-4H$dHGdFd1YU=8qDV&F$PZ*~` zfbR0T05vBzF*}Aeit|tTbIo*9QnjXKV{u?AG)e!b z>za$Z+p#hgG`^eN5B&FI$P{Uiunl$1o0~QiyUw+2LG`9|XOpJFXqEkQf?Tvow2HDt zt5AZ;s-~9WwN0JtHq{rmHf?EaZrX@4lzQ{~p0syAA*x!|)HOHGYiy=1_Yht!3PuiIQ#Ofo$cy9Q0* z(?hk7=wkQO+{1i+b6t9E@ywPMRwxXlc$m4hlk&R!Y_M5O{WXnkn`9z%<=5p?$3BCd zh^-htn}S(w(~DJwNvN;|q3mWU?827LIW3Iakit%c!pv^jWG4n!RGUXAXl^LzoaUA~ zxIICs@DdO%z8y)F-r?4$S;tCP(?@rDm>zbxjqJng zT0ez@r`U3;W9WyQ9$w3dzNs)Fl*-a{*V4PcqJ}Hj?myVNC@$Algfm17L#bgDtKL}o zsoONs|AHzHOCE%>tvTIH>?eWB^k$T*)>^5$c4n_oRps>)+;8=+0(Z~TT1s?PWjC8~ z=7zfE&1#{yyOrJEe)7HeL~xzPddx!yEs%Qb&9rub>mN2`CF9(;++6>*+`eM@b4bq; zkV9cbn$5@QW@t#NJ{kLUjELb-R+2HHXlq*1Zf~eK#Wc8-?FLzmwv$<*PS}*Tb--$* zv7w3Dx3lC1=~AraXceY!e$~d7#$vbU$r`_@*f-jl9y^)gG|;0}sK#g&%a~{t6%?&% z(;qxWR<$>6*ihFM+v$6Mmh0auSP0Hz_f%;gw1*@XrF}72Iy3}vWM%Z9Y7pA3u|qMY z?J-8RGrvj?MD4QmlkOyTVgG@8 z?2xIM`b{dBT2dOOzS2sh5J;k4dF5m?6%xq8Qblwo>JE}H8dAjYmoNhGZ0|+P64C0Hw)vpHw!)8 zo5jG(>y<^T+oe%H1-<+_>@Gu3Lv^42!w@@KMU6zO82r(yP5QH0f3V@BRa^82Z4<3J zX}ZZ-P+qxk^}Ol%3)xt#?y+^wmU-@iiqyPCvscfpNCi8w3CF6bU}Ik! z=0qREI%`v1bCPXAP8XQX)?yW~m07=48@=t5%zg`7k{CtIxIK2IJ2;EM#F=EWyEoO% z@NRc#t2%peb;X<-|A1ql-0rMnu?%_kUCp4tHEC(3nbODHJ}kK@-MFQdc>uXE=-Hu2 zwl=XLU02V1%=F6#u7eTe`!^&{T-TV^Zml-6u{4{SHNj3wmbW)1v92ka_UN6WOS0av zVe2}R?DQu)*p^FbL2{Hy1V=rg;$&4xWfuv%d&XH~5B zk0|zbd(pO1v>%x~!EUabE{_IQb8DGT0*{2N5*;3CqG6ghLme-uVlwm34SHx2Gt3{| zJ;ttyrpo7NcRLG-)z4h?F9Yrsi&g<~cMfDw3&DX+R+n3Pmb}D50nbMF^#VG-&$P zKKI__c|70ye!u@;?mBy~Jx^<|z1BMWIDu^HuX_QuaAsuC_=Wu5Er7texck$^$k=RV zJiFB!^_iVW#uY=tme94+-K%S608va#VF+Q|=KU*7Uw4fOsQX0z9e{K+2D*BncKUaY z8#dbEI;Az3=)V%0nr&RY#+7I!ct2s(Kk{MrA<_~$!_MsQvlA1yq^p2Hl?k-p8?;`5AwK>d)Bsu_ zTEFn}BivB`N1oF@TrEnp0=146QiK37#8?mn^#?qVzQ+pO5CEDG1h-;DD^Q?Vfj-0v zX-WW~6aZ0FJQA)!0Vhge3<&@Y$`Syee6fQ2LbqZpTOm7$ztsp(fF^CleV~~Emodfx z0I8Oc%4sVqaVz|`8Dc`)=v>?MY4Z0ulmCw(`iXM(OdOLR{{zW9UI@>O`428#2K>BOfcZPuy%AkIv4$k#@7iWIAEL(__0D-QBfJ=Vz`wQ6&0rg zlx7A%$nRLnGh!)2EM`_JGu)~(+{~YeTf90d+B7V_{*q!N437WyH~feHYjMg3>l1km?BgqJI!=Itwjal?xmYI#f& z+_}Lg1mng-?E-!5fD6DVGktaeAQHr8O{2hTr}PiMGGrA%A7z+;0n@q(s89eJ1IRHj z(80+~cgF4~@Gq1VeB$G8SQTb+q@;lsAZax;5zi5cyrD-JZa8@&tr|1_jFSikulw-+ zb5q0-Gb6F07@%jLPk&O~9D-@yi_q`@ZS`lEF3|ItVatGtF`_eL(2W}$nVL&0>1!1`-(Gbb2a11Y>s$^hQ0n6XOP#IdB+Gf#&XB7zO!ofweJ6 z>w-W-jBx!t2{9fg2XENd z83sg{v=d!7Vdv!U6A*y1w1Wv^H_Z#$IfAqhlVZm5_GbpUdxEx~Hq#^s*e6`gVaE{2 zKyCqc$b!QzD3G4bd}fSbAJAYjbMmCoLxrY8!N`coi_(L{m_Z>fPXE{Xq44SAL)=~5 z?T|GPJ(D@0Ab0X$aAVU8ADfM%q5oZevpX1z6NpItF+Tk9n>qzx6cGF?FewAl?$EFW z|3WFOo~iJm%RiyxnQCvO&&Fms;p$L)Skdee_|tC({Fi?q#?Qclv}!sgWP}u{c5tK) z3<|*JGQC0g=3?gsGzOnEfM@W9Tns0WmjH|%JV@3NfN>%hs3^6TF2#hMkb(}a$KN_y z@ZgJ+j~<5T4_#pgmBnM50i) zwnL%w!!%?KybyfJ>dnT-iD z34#L#+D9;ZH;8YCbVfq8z17S+=GQ0tHPWaq}ynw1BrJdeRLzq?Ia|iB(6>6vp3BpAo~>zmCamk zCwA zjh^=(I%7PCHU9q4s6e0)Ft||GT2BYp0B9%bpgG_-^a{Yw$cWp4nFq59k2XV(g|VV& zfS*f$()j@WX}bnId_8R^#s%TiyW~9F69{K12D@j);HcP804QYe(L#z$x>W_D~8)qs!TZ||B=Fd@YIf7;9i zuLMKef_JF-8e@0wpit%@qYgvOq4}GlqdT)nXdWU2Ou+76bkfAhMbO9JE?7tw~#n|1w8T1k` z!9E^v8-Tly0$qczz|`Pl!vDri+ierwVbZxX*mYg}T*ToXuo|&Cz*TU&2k5&)b^#lK z4Z_&m1J-!?!dZ{g9k_ZVk_YaZ-5r)A4RPyS$mQ+@d>s%?3i8km>zEr36vL2|nV^XP zd7Dq$abojk`e0h%n*|s}pj_#b3Yc9e7)Ue=tgD+oXX; zO@pi2G@jKVRAnel>AXO4cR+mKAeE=oYV- z-2WU0C;?N*#643W10A}P!4a@{?KFjrirZ@^k|V6cHxCqye88g-yfJR{Cc;K&4031$w=_hHz5Ksn})C_m9B01`0z>W?EaHftJ9XX<7D^fNbl zm{ss51}NNsnMZ0h^g@&HpHXFC9{+wD%GbdkWNO^_gUO@w`qF3~XapIp!6?6{z5(Jq zpk0E$QS^RbQZEcrGxNvKWEczm)K3D{8pi1h3@n3@;AL*t%!N$$^#NHK7lQgUuvUX& zSbga`Eekwd0w8a&ikZQsVbZ<~8KF1Qtpx0?c zJORcBDBL1`dd88!h!^7kz&yerC*ugi4sM*XK<$EXuA7Vgq)%)f@ciar@k|&TB)6Zh zzp`D3gFoWpF&3C={yVYR_yacv!8rh2fM?{dArHoQ^6t*^8fr=|jx=>;RVOty)nzKG zs!r;f4vHFzF0^IK95gjFlvEUzl$;!v(VR6LG}YBKos=DEifYO#PD(UQCnskYj0g6( z-xgFD8}dR)7$q<9fCP~OByidZVjT=3xgzomr$k&v2OJeg8Cthp$oQv?)s0V zJ3TEI`qS4oLz;-*1Ntkikz~Z9_XC{5Hu!j({)4ZhFyfd_?+B=6IO$+e*%=|TPzWqa z$Y%qZj7&dsaS6fOhR9M&H{hQ(WS9VMbTGYP(Y5{<$v?;&Mm5NLqqn6y-S7+J4FFNC zDXbC38w!{RlXalCV;eJEvW>QpNwet0iF1a$ zm51)8Inz(=vzT6xIyxeP5b*nCq4e90zt;vlB`D@`jXU$bDhGIJEf`i0Qzi_#!@*=) z(#!`$3#tMZG**nGEJQ#Um^rv)j-T%R<7mi1$DxxM8*;+?AQ%bGS{S4S@dwkc4OKOe zc}#$2(B&2kX$9`53kT^!0tlZL68v`4g#>^4Wn^(RI(1OT#3%MB%Fwpby$54AMaH$p=iy85S1L&p#T6EQiJTP4HFwD3< zNaP=3zI36hJlY~K$$td;(?Fphk4rhHGg$QZIMa(=9zQ?B?j-ith_ECWvu)+y!`;v; znevFMmS<26^pY_{uO?47K1E|9_}An}FfjkGA7v%Z!T}+#qAc&|9td;Km-*5u_TRN)3=Z@a zu))()^pAY$8yPHNdLP<(``G=S7nsmr(RN+|uGs9~L4kI#G2r~gyuTpv*gVVtwCRK5 zjp+sP22zhm!^DL7X%5r#-_#%15TLn9M$;FAW%!>)FLP1YzYmr`DiD6=aT4P|C@UXh zP$I*UVmO&B?VqwM2^5ZNwCLOjeYG%DJ9H_MEFJ~dWg)QykRUr;#N-ZoK)i`|jt>6x zs4Pf*r-b1TP~svVD9)Urbx7U965vUr`N9Leg$ug@df?)4M6slCFYu|jos+p6&C~Pu zE@=pK8Km($VP8gxe!qGObo);P(?Ck#A9%VdhK^;NW|?IH;YE1_Si@^8m{dTZk1sRi zziPn&du;%2P!4HvrNJ_T4Q4R%xO+9yJi$!>(0<%+X~A?^Szugr9DQ&YiLHDfF*h^7 z+I_7%v=dMITcgU0G(Eu9ctb}zgZ(nZn1L{d-IXftc?!LhB2m1V$nV~J39T4=U%nI~zh23RZoXrl0Y5ENVvzRV3I$O#Y7_3V-8n9yQ z5wik=fh7RVojHBdLkt)_#<2(&*3F)Yv1ah>yn(^y^u@_Y#{md;FI)@H9~f-M&~r|k zCP21~!wpmUh+@H_W|TxfAkFy`$2=fV0R4}($%RlzCZp=0I&3HdI-HQn0gcn9XV4C!AnO0_eX!(6k{a(vp0C?v6wx=$ME7^ zj2AbHj$t+n;|KbuqO9j02+|8+vJtC=5#i*;1`2Sb$;1f37+0`^r!;d%WdlzTZKDgu z#@y_<7!F+W%tDuea?;i1cn)M-6v}}hJxdDiq^tFu>11F&jsgw?8I9QmPqQWTP}X1{ zT!P9)f6{Xyf+UqKm{H5Q!NHEoifW3?v1Znd5Q4FVIJm=0JO0=#h67pR!)sXBTwL?+ z>um=obubgOb9W9!w}oKrA@HII(i~#5nJ&6E#{%DxIB+DcoZ-Wr8+@kUl)$)f4D(Dk z!$UurQkajNjlR)CFLa1P7gM( zh}V=y3RwtXoB<&a6aexdu!PssgS-MHwQzGCIZ05?BKAyDOGQae($|%7u7!mEUr)AB zB0471YvBS%D?l)M9&*=IP*zYj0|$;nbMI(@3YdF!H^n6<#h8@ z=Jo@_!xW^TYiUwQ(d=;h4P4E4gi1I<#iDb`MexO4O8q%>lMRtbDUAZ(>nL;^D1rS5 z^*jM$^qeCU5h(HKJG=ypBZGQ@5FbSzgou!Y6MfZ%or`dhKv(?7_376%WZ9HJ%=;0{kBFMM7C{oN#Ri zM2^=72sa3X{t_aI5CvD66EMEnggXRE;$g`B!$AO1aDgbL^ay})Su5! zP@^s&n2y6sIIP8C2M$MYco?osCnmy;zdYCd#<~B7ue2UkU!ADgYzZ0IF{Tczy>!>0JO7 zH2^vg7`aDiBM?4ZB8U)1Dqt>+-vUqyi3#*+}B;p=?JV}tk5RZR|fkE@hnBy?RrvN^a|3!ZPn==0v=g5pwcXJ$N_|V-^#~5x- zjE((1OhaMjR0J0%`s*V>r+gSBkU8pqLZ5v2Ngxti2cS=?hX6M+47kK!gnklXd=PrP zx*w)>#UO!1NiQXmC`I5Uoc<2D^nSoS9fW3c6T*neL|E3(;TCqtdjuW{)YAYt(qSAE zs1@+#1&*2)G(^>a*iTJ<4Pia4Fc`JSHSz|z+6fs%LSi!z1`;6;4czk%JTbsM)SeE) zX(A#09TZ0(gdd^i6M?p5)e;Jbl(Jf!E=1sTff$X56iyc)YCM4hsL2SCa_IyCZn7mN zKp()g_(kNXJptt&&W3u$=MYATbfR!J8#0FlK@d7fAWWhbjlUyI5h<~yL;@x2JrqO2 zk_bXEBnYWJ36&#M=O8$E5@scVa0rMZ{NG1{sy#hLh$B(@PvHSa=mGI~z-dAP1e}Iu z5=i^eP?UZk93T-|KS0qP9|0Wx1c}JRV?YG>lSnY#K6F91=8|JSqwc5&4|MJ)!ch{T z;uA#A?LwrKkc<;&aHQf6HddAt^wFf>e`%``+3S=m^8?N!y!7q3R3dZ=urxJZaG2uznFNs-1CW(V(nM8!*J|`m> zm4aY84i6tk?$d`5tia(oBuk(spCA%AiV&zpATb-jSpb~%$kmer;BYR0QUsm?;Cv3L zIiDW}Z*m^Wp(YcB;LaW>oZ}Ld$1#o<`WgkDK8a!tB4-EgjE4+3%23qjsQ{AG0Gx&D zaTFm}4Fc)u0HTf(Vd6f8neZnp!ZCE12vd}E98U}`jvkaQ9nx{sAP|2HKrI5*1<2b6 zlYS7UJm)xgIa|*Hs4j$nMCdM#@$)EN5rEi>L?IZ)qUmKky|?^NnD=PJVef$@!*P$m z--*15y@U@WLTN9I?NbDLz5)0Qvx3lryzxB%V4)KTXOXM^8=9tsZ}>FrBlMC8^?e9K zo@8V_MY>Hr{R?8g25_5Njhy4Z2qY3K*Hf4%Kz*9VOqjQ!cm4m`T+n> z5$HhP+=K9aG*lq3WIV1f?iJ@(03IGUZYyPJlkr1FoTfr!mCqWJ-SwnihmE z2q;6?!?DD2GNmXM$9@Lv4TPTN`EGGQJkQ9Y8VzK=*$uOzCA67a`-!faLCh;)VyiFAf0M>@lG-jUA0-92ZK0gw@3L4XwjHU!ua;6Q*A0WJi%5#T`puCqs_0^macz9)uC z1uz={0R-kCFc$&%9%-aAd;lcUSqK4P1Vj*+kANrwVhD&MKt(_T0Z9blHq%IFX#^G^ zun>Vo2*@BHi@;(8mLMR9fII-ySe8gm^#erpB%=C3qB@zVK15VcB&y31#I?mq>PLxW z0(`)gaTT(-xHx%Aj64NETu5Dzq%K5KKLRn-MM&zxB=z|ubup4Uq!J~mQ%UL)Br*$` zM_rPnE=5w8CaEtVsV^j{FCnQfBB{%e)MZKPi%HIzQ&Sj8OiW##Ktj_%y&I-Cx@Q&r zLo){bL(dGj*wYuD5R5&B-*bqB?)n^nA3J=ri44y{_*sZTi{NPt5eKE|-;pvvcy-8! z3U|jsW~w@n7ToB2Zs;C$*io_l;C>DFrxO8>%BnsE2ypAeWBymj6Wr(<1aD9w;6Qa6 zAHp!x^(0g@+z~3lEeyXySM~7i{fR8nuY7H+&|~3X1@HGK&a^kv6WlJQ$eh)J1B3ydfvk}O z8vK~}Y~BR%_?!eY%4Vs`1=*0IDxogCx}_$h#))VU<@a9sSsXd%RFaKe)iTq&E0aXR zmPpnt9D17UcT8pN`I`2zc#Wo$K{n0mwdLVk7nCN*w4b7hD*4z)rH;Kf*cN-zJS{^a z$s^h8$I9En4>DWd^<6voDXNpztNY~5^*0wbfAL`xNxoW3c{Rd%w%h39K*;)@@r-S8 z-Gc5v-ku1tXg+RQ;IzJG>w{uV>(Pou-GV7AzWINY=)BP7d!k2o$-(7yLxP3%#_Pj` zZ+bl(J)ZUvn|E%sptOEXg%nLq>CEK%xIQ+sy==)p&6}k&KXK+CHP1f1c*{oVf>esRIkj(y)vFK>Y!h#L1s^%-N z)ObDn{HoW8NAJ^Rg`I3kMsI_f=LykF)>g|J4a*E`26~D3ugbXirh37bqMO^hg_nO* z8{O<|%prlT}w-ZBS=YQH>{;@!8;L#)256R6( zqy(>CaY}l-bBRc*jqBk3o^g+`>}yw=tb%Wsyy)C%pthsaCgrQkK&3;cyvBf7P*1@H z&!_|1ff+xC_s*Svfvw_g8$XU1H-n>%*A)$l9W!_B!*g zce{+7vOi0F(yUYO>Ng2Y(7fEe{^KHfyJzoKr<(uVEn&K~VE&e<_tvyCRYuC9@t!ir zzI=>-vhm}G$6-m^a&(iPu+YL-{WlyBdc678$-Bil$0MyOvC+}#au;CbZYL* zx-_{kYsIf%+4d}{oJa4LJB)772&=SNJlt~l(ZuU~%@dJ^8*aXkyA-BX@I^s$Z)Zs5 z0lPQaY4b<*(k3}R*d-14Ej;5*8*P8pd);%=|A&Z&=M$~VBdeMwhA&FxJboG3C2zMY zIHh8-5dwsfd2;5Erv1j>Z8w)iu=DwQzg;t;NH0zV#fo{;BfehTfhV z5xWh)8t~s!@NV|ozC_w&Ppqe@$o8Y~0{J_MHN@E2`TFd7d>b7S3eDV)u^E79Y#&SwlyXE_F4$MWK(&3R%jH&-PlCgyUWT0qW%j}M!ht;B?djW8@EC?PdF`|GXU z!wYZRxKaQ3`^n+taC7szGkOhq-xh?O?GV|1=#%jMY%P&(OTMLjdH8N(^lsa$*k=!Y zhquiW5f*k_pD}3PbV5YUrXuj1Eq~^A=BNWKGUm2cLwlb+dzO(B((!ipfmI`Mb-aBIw5nFy!$V%{$%n}? zc{(FDw+-xS?=^E?ZCYOD{&cwP)w-)ZSZVX7DA^3-S3NgAZjIl8*?%&+aJ9=LoGmKN zF=go7`E%n6>?>*&mWKA*ndF`Ucx=GW7Rsqwlouv<|{v*k1P+cNNC|Ni~5e2E0B^|Hqj^d--nPH(!Od?A!|@$TK)A?q3|$4={4 zHGlTA(U13iA(%KK{7r)E?!`k-UQwcsG~67q9sI(jy)(q+jJvx7)y6pNBkKl-~FtjGpq38h49IgLAM9%pNw0Bg9oM}CwGl{+^>x}im>a_-WIl^$~@o|Z_S`lzj?KG4fi z5)uC6c{HiYz&b7Ao?{4h_PU(Mc6Oz%owgZDE(#gOE`{gMw_x$VDyytyf3B50Qfv9# z;yGvgjXIfSE3{Xxyn1C;mUh)HQs`aIU7~VIr`8x2r4a2q?xx<+Z!~y2 z+$Qg{bGF{({i>eI4IXaJZU!DNzDB<*an0O0mfE&0bKCBXSsH%jB_&P5w^sam#=k^) z;(&^)@<8agx9rC_YxWk>>6|;+w=YL9oh2$EA>n<^2jh*qByKG^@o@gntC5k5%P)ynZ?xae5>AH>QA_|npr7Q{ChSMQMMh`MYd zyW*oj2NusS!Lv4nua--r?s%0%&W+ZIVTn>DG0aWvIFBo5(hoz{+JLM#^*wHO%fEOA zAE5eqbv@`E4c=n-<-w1nrr{Rds(Zxy_s#Aej|{&j7|qVS-JdIt#+xUEUTb?O$|GTgssYbuut$fuYO;3i$qXTypcma$CKe>#lsUj zWUPI~rm71qA9ip1+{}q7R)>y+=5-`uaKj&)DxK9@@BJ#X3D>{u*`_Js>nGk4;SCQs>SM`EaE?&*NeFyjQPY^-R^Dsd@f9 z^URJNvxuXMc-!86rnK#Q!Yz46P9$tm-)TGNi3Qs;BF1vkepPP7<`~K@AY4{Zw=r6}_q*nz*$3{`8*v_<`syHYVpV(Owt<)G zD~p|5TWF-UP3JGBY4zTyTJh~mOmE=(o`cQzI{l7kWF!d8ne$UKsWW=?+tK&$SDi6E z?D6$$_Lc^@B`zD-O|N&CzcW_2UN^kLnsaASRaIp00+x#5=q**10{RP{Y8@OHxYseY zh)J{AE7~Wy$*owT?dy~mu%}>fvA6z3J^MXOE}Fha^=TO!%K~$be#|{;t@(fMQTC9L zJ-$c1PY;3bI8pl19u@lP+wt9jmM=~`sH(d4ql-?%EGJZm1 z^O%q9*wbyRY3bsebA}u*JR%<<2fS{(c`4I5%hM>C62-^8^z;g&qnXQ#{p#eer<2%b z6|Gx%tZ{fkk$d&5JyGH9U7l*^ZCXB_SRV3euEO@uky$HeiLDqpZ_Agpq5goH*Q>$% zXY#RM((|;(b6V0K40+}lKdOqhXstVprMJ(ni(<`9&l9r8l63o9!(K%=PiRQKPr90< zJvnl|Goi-Gj8kaeVsfsay~`RSkH_`(#_eybLi%QlzvRp~ccpO07CzQA>0=AbyF{O(O^W%p5s+MdX{rZ!uY;@MM2?C&<&$8x9d z$xZ)CY#P=3{-CZq$+k)9@x6!6S9mu?C-C2DV#`cBb~x-&!keXa&fnXvHe1-(d`l8i zDY~QhXkzD&Pge;#US1bMyDwZf)0gJCtI>1gqL<)W&yMQo3&U@BFU?u$X8Pnu!}6sj zQLF^vS0|KdMxNcxA-{HI4?Q?2GTd8}Fgxay+*-)+Q-G#+T4LtF{f~8NeanAUhb>fy z&$w68UUt#oP)ug(k~vvl7f0kse+_$mU~0Y(SC&8;-yTkuk`IkXw-jIaI>|S##6OCA{yb}JXt__jY3#CwwrUXBYVFM8Kzd z_X%UUsEo%Y4J(KDe|>wa>h#1N_Vs%oj7h{`f#YkRO{fS`cU<53xa?BqUe|qTlFxk~ zH$J-me!ryl&-W#Xsc!;;*71@;bBM`iS5`*5kaelcSMlzlo{RS0+HJO&^YKT2W%j#9 ztZBQm7u_{Y8+Gv23;1#S+}09-JwudDm1Rquue=ng9%mzFyWVMiYAGc={B3Nfm)Ezm zw7OKwK5w_pJ);qG2upMa)mGbOJaqQnGBkc=zkzso;P|uV?+HunKhz%SvKZ>ov?=Qy z?PBjBHq~^=ah*GP$Tjen?BXchOYEUCeJ9r_CA;vIWo2Hw_4%#Vh{@;MG)a-H$MwN( zX_e!;y0f{7(Nm2nB&wOg%W~G$91`i6$+z9^vWC)??DnfoOiU(ItnEbWFuB#MwB6sI zuG`_^5%eT`WzLGMhed;7ku`VL9B8O_nPvBpO*cj2qxh=G7nW%a87hlDH=TLXGk80u z_!C#}vJ#ia!Wcnu<%+(4>h7D@b>ac!li0smE8!y5EDSBY8wa za(QxI$H^Zh#y^H(qdt%2Uc8ue!`hNUk)UjpJ9pv23+$59gQTBtZsc4tlnn}&Xi=*f z-XnqW9l95x?%Dv~ms9h3TXCxJ#;>3!!wTAABmMn&T}f=bl~*r+sqQhnW_W$M8u!8x zjQB}vftu*Rujel*(HXg4mXZ!P>eO-@Vw6!u$KhvXeqW1Oml97WpFDP)gUo*P#G5&k z=yZaJTCAHkVUNs&u7^=m&vpYvf@TyS`O&kd3n}(ntR}--IF7JkPkyZOpF4DUD@AH; zqF}lDo579?sfOlWY(*TaRN{qZvGd2OVeZXt&xH@Z9=O|Dml$4j+1len#`4jF?-Qsx zoO>4a_&kWX_9=z;brfxmjZm#$mejC)8*6oxYGQA_9F|*NUVgrDJF(PNcI)*6QYWiI ze;pU9>}n1SQ{DOf16k(`KjECS|4rG0;oQ|fC#2f9l=0c5Ss)%BFl5&j^E2C$B4XTEp84GSiPyfaon3?9+Cm=X9@kwiGBi0l>q0V3 za9{D&g%bM>Y%1EZbAlVMjNWPaHTdo30?L6~m4PoCIr2C+QuKQIUR~|3(_Gqhtjoqu zM!;L+lwDPb`NI!4ZWfq~Z51qxFpK}y*w}b4r;M1r{p#0W&VqwE#}mcRIm=6`Ub&y_ zDYh-;&YWv|i#N~Z*M}~x3ll#d!#2XW%)89t+ z85d9qZK_`zzZ3|u8S0d=b}jg1^v z<5snjw(wlmf4|k7-6-FTM>MB+d%1GkdF$fyB`fo%wbON>Rz%%I{}riQPp6vB zyqfE(mj3b!``ZW3OJ%yoZv9#p%`bWO{TI74dNuKijjBr5I~=c@#YdYiCLh0ge`Pt* zzrOXPKy$3b{jGDw0&Pm&)(S7YvM0q~R-eJ68yvo)~u9&W4SV9B=BnP{mzZ^DVLtU)cIT9$(1S11idx5RzZnp0j^*^&!*|Mrr1{v* z;b3QMO@f~N^)q?P>^Z5X8u|lQ#+EnUZwSp!YqhZpIn=!?KW_2j<5kZtCuaU8YtT4yV0Tf>DJZk zTcq;Kf`9Rz*;w|ap!@#g%;C)YPWM?dQg45~ReE7U1#?hJyMAC%D#4Rmpjmb=k;JJJ zEo5adTU<0q&OVCIZ66=T;YQOkKaq2BvO4V5wQ$zMt}Z%Mxf@A`Gj7*EEjm)y^+3+% z#`E6osxDVvM!wh@vn3{j@;SGmQ#@?u_sk-y{PgOY_zpflmu&haK{G)YC z_@Rt1>6fE`!FaR1zhmAuPvPn>`)angtUhL?(XQIRtv!zC&PGm!#bgJ)`rCI|c-@=R z=LcL`#lC4VyA4^Fpi!I1xee2I$o;79#9KUeo|JM;ZT_3iC_dIX=QoMhe;AF(5g+eh zivhiCRCjSz<(=UQF3e5R49h%iNYYWT8<|hZE3F7?Xz*&YU92$LV0b3WqB-@U?U5%R z<*_TF_gC%ax)fU;aj4m?k()!WTIZlcu0CJH$5BC#ZDp;hM`-(qr;Pc234bH(E~32) zlpR>| zQCZP>Tz=a%ZZ6AKd9g!Ye)G@d-D-JdyL_E2uZm!HSNO!EB}>JBHm+Z~AY+T_bM+NZ z{XakLzqNZPVsHE%7{3$GO1fUnJz22Kf&IX%IN6WX*S#8{H9s$Du@ATz@`u!T4jv^6 zT~JzLSKT5i(!Rb%X{DWxii&rsmm6#FlD({oRxY!Tx%C#fPA(n2)+eqx_4U@tM0WCp zAh&JJ#He?>dOy~CDyMI4+gjXs{GG;S*DV38R6+ft@vT?By(FII8h!n;xN6|j0rd@K z?yIXNCvxVm3LD|!UD2=eMJa8cLU?bvOH*mK?dMS$fdlM^gq-BL?5@eb&U);S-R*d^ z)84O;{3PFObC%INv${K?FXuzQrf0`@I!jPFMo#oeNx235ESIth7aYz0=*6qPBX%nBcSG6k$ynZI#VQp=t&>XeJvx9<-msd`zH}YFk z-mTGQzmm~he{PI-ep&EXgXjFuDhZ}gXQeN&&&q{dmTrL}K< z>u!6)0P`Pf3X)0E2_A%cbEB&?<(DeKJ+DV=6NOY9A3Qe>y}OU6ZSn5Gk++F@?+k9` z*OWKvSKd-dD1N0jdGAX96>)nf!8;`1LihJc={2TzW6h22xX7=qWvEh*UtH%E89MOF zt8G8MT{EOYJi?T!Ca~)bav{^Jt3*%b6WJ%iY=qZnuAU64}rDxfq9zS?)I=QIn zjCNqR`kA4Oqjl}7E5#nL6mX;oDX2UmYRj+-*zny)AQ3zv;(t<#J%oFE$>)pXYVfHONK9qh6|t7^dDMw zWY@Q=Esw5yw+*d-Ec_+#*UkEIo5dR%3kwT}z7-Zbv6kJvCpufZ#${c~JTG>4mG z8pB4eZ5PuH=5nL0ollP8kiZTR#J_!W<F43&uD-7A7b+PA1ck_j|(Pz@G zNxL#W-m>TB`#xH+{kpf!d0OU@JBpyJno^fuNn zjdh5>PZ}%W(F%Cl2@GZWiou?|smoPgs>8ew^?Af`3z>z~%jRmt_c!tI9HYH1_q*2J zC!G2CeMHN>#d935H*1g&P840%l^wq`?CYcuXE?g2>Y(EA;Qsy3MAW@sj%=d+s$Bi; zjSo>}J*FrvB+b63Ht9hp8C!7fsB7%u!)DZsb>lZWQz$2gJeIkix^~U#foPYD?1%k| z?2lLO7OuMD^OTHh8GG2{La5{WqAevAPK#M9BI9+r?ITP~9v@v9*Vq}^ z8`mi|98<~h>3bO;dv&c+SlZ_&dXMJVJTm)ny=tsi_*K)$<+pjVvhKA}qjh?c4fP_J z&e5>!b=z0hd$(M)QNc{J7u!8+Z1i6saKx)E5{vr!bw>{QO_9(7t*1V7TyNhrNSeR% z%gwg-TRLOEJVgtY7i!7z>}pE=RJihH@SIg&gPtj~`##K72k+!RFU0%E0Zg zL!YUM>GjFl@1)O1jE(l6xLjmWEF-J3qS2Jv@oC#*Oq#?QUeETlz7&cx7hg5CNldi?td#K7ni=^@$S!Cvr`LSfPte;mZlg$csB#u3F=DwRg zG4MdVueJTm+nXVM9wNf#>azFZ*M6(A^eGZE(2u^RV;7)RSk-%T(b{0{a@&!YP4c(( zWU2Pmw5W2OW%^iL)zBruavuu28Aa;lmxfyjY*^*^_c}E`M;Dsq)t7fBP2aV?x9Uu! z9MGR4+E;PKXOQv*k{zRXz2D8Z*wk9T*HcSn?Ub^u`KXn?R_B}&-vu3Aa_dV}k6#=V zyLK!yh=s_f#9m3s3?H-csc&zIIQ2}1LWw8GvrC`VS@BwK&EgTlZPmvlTKQc+qR!Qe~9;e+LQXQ7n4ht zED0f%UG2Z+aCe{Rb?=FJ^GH#A(gw4{cRn%SxbmmryO08tOslL7XO_1G>!ey9-PIAz zCd{c_^|kOkf7>-LnQLB|#wD$pD|ZhyxHlE7F+1nw6+_k2WAB4wR+0SDrPqrqzCW5= z{`IStSaaUp_dvhadOwxPm&TR_eSJQZl9IBTC)aD?v2&U`bPlBele77;b-H5r9xerq z9b-e^ZY7)Ta}dm2WSnlgD*V^rzSTxL+zVHz1hZDWNxPw}?qHgC)jc~&W=g2<%TT7i zy`lgq6m z(tvAHRo%lI4^&Fri4Rs+lj2lL9RzpO#8cXf&lXiE9lo;MUp(xFx6O-O-I$1y9WM$E z&Q;$~RyioTJlMJT?JXCrB$e$(v?VTl(b{&`hw5&}uxXcujeciKs2#gL*EA?7$n)2r zIImbqcx&sb1Hs#`HvPQRWcheQy{)Uv+st4cYG4ATS0qb6L6*wS?zkY})yACi2X0Fu zgRM5@gv7nMdvW%HJIUdqIkYW%CEL40u4Jd#f4Y{JqCCWxK9B6z^5Ydjr#bilRy{ls z-?jT&zJ(%pXZmoeT*SgR>AiD*S><85$4!d3_vCdq7mF94Ru$xyB&zV$dR~9L?OOe+ z-m*^i>Yj?w4I1xaxe5!xvCnR;-oI>9K86-BHX$vV&Yd?TAJOsN`_6<7M z+atytmR1bjS>tp+X~K5#o6yAB>*S6k##39#rVYD4SV=m1?^F>YE2?iPy2=x4BX;V- zZF|<(KHiT@N0h#<&RZTNCc-n(pn2PN@biVaJ5OD4wrTHC`j*gloxQc}MfZyR#~V4N zhlMj@3w0Wb;~YLnFJ<4*{6#ckuktpT2I1;HwEZX}d6Li(b6e!?4uk?~bx5 zxE6CMtO&16;&M_4%1GS@U7#& z%6|NZYk_}KsUvIL@TrIV%l7yMor*Dz9tq<}FMKE2b@4W-v1!A0g?Pcq4yk);!_wP) zrA_ViCHuk;_H0%NU)TCzZ$U+tWkdPfv={Z60xt!GVtqCjjOrTt4bZ-|UALQ;pdb3| zy?Ff=b7d(6~4m0-Mp>mVS3wBizAD4IUm?yJ0l#d*DVN1y;PnU>Gu6=Kt zh}tq7dv}B>`&LJ(wD0P^@apwXJ5wvGYfXM7Rn9KYfm1G7uTcJh18bYLi(sSfwDx6n zG)e6B)@{RYbc_;9jl;Bs?{XAGJMxb%{y>)5upi3=adsNd?rM~|*yT3NS4hCD-Fi|lKTP3(EE@4g1U5fnK{CkfM z)TTsoYu;I&V6NZyfM4`Zp6<%B2JL-nWd#HMTeiaoz zUFOMczVzlwk$gQjtJ7{1lj0byBO0_v$(?U^4!@aq?L~{Y=4&;j>!;aWU#b!3>@T=y z(sgS~<}J;7x5b+TlKe`q*_S5s!3Ic#}yg_WAyP)oZ1In8h#X-T~v6G{ECh6SAK zOO2i5?#R`an-`otTRUMSk*U{v*TAD*JSVxa(BzCfRX~nIPx)nVaoYlZ6G!9xuLonS zbgD+~E!A3TTM^pZ5O|}_ox;Vtfd4Z$N$8&Z_lKiZ@p|3%QB=N3HC>Y`6Ka?V`P3I5 zoe$S_9w!B_I(mwj^GG1dSws0%FzbYW@I-r1r2ndoZ(EF7DVLY7zs;>Lc{%i0&_e@< zi`K7q1baD1@<_fY59kWlvd5(QX=Ba9aTyPjUgeLrT%)y!?(Vt#Q%}%4R8$b;bfVjQ z{N7gVEHG0xEO+*Ff6(|V#!TnqcJHe1kCqJgxt;A(uUGRkSdk>dZYy}ORB;(=l;B=H zcXA#pXXchXJy{Fi5%Y(fbL!u<8|Cr8+nr*Rw^f#0zJK42R}m$19I;d?-`$YJk>@Ab z-tL_6(41IkuFH`aU$pY#CRP3;qc=#aMNce0@%rMt;}<(;z02}3(I@`+bi{0b=96sw zlb4SS9T%$`^U7BDeP5Fh&Z)iqinF0=_pZA?M6O6S|61N#=9EUum_y#vUW9L47+JB&ZyWWKc3)_OQ6U$5hnKKB~^{=3dr$AZaG>;#dN z8V}p3;XPPNw4PMi!@Pomt@CsV?EXJ2BAThJ#>6Z0Cq+vi*~YMMis6&76yN;t%e|_J zj)%pObLVn4y~*47{QWHRDz~up3%^ChAKu|PKj?eNCVu@K8hBtA?x%H3 zGe6%@lUJ@+rh+@Ru`#@0GhxrtnD-x-SiPR=6rUQ|zoo>*D{JNM;PJRLTdk(yifH{j zZHw0hBQ(kHV}oCQxHShIa%KH0BD|1CM9tGZDCp;Go14Kr3pZr7Mn1ffKP+Q4_ed1& zC0F0dv7QvCt)qQY{)9LFb@E=~856ZvE0fbV39Md9*|5#xGaKLSMIDqy2NrFgmnk5n z7i%Uduqm{&dy7NJ2En;X`#CgTDRu+|JYGV&KQDTZVXUqfx3tNQ?E5m->nz6&qfXX! zR!!IssNbMwov+^1kfywK!$xv{$H|jv9^GFf2-Td!gdi9f2#Zr<~D);jU&R=w@wDj(h0eHJ@<4lKPjczX$#?Up6^Uq3sau+0)#M_K;; zPI$Y{EV7OKaj-A+Vu%Zs_MvV+4=<0nrsEB4ne)m%wXUU#Z1$D^M58#U6Rgz>2CUU}3<%rj9_$Eg)7vP) zSGVTU)%wjsBcTmHFW0Bl5;dBx^-ru5P*}oFT!Cq?%O9u|=|Ao5H@Hsl!>9c%Y6P(Z z+Pm(>O{wne>TWOlDCsCTm!dDoeS~Vb+t{J5>cqc`UPjC#!2oG*Iyyd_80Ne?wAIv%0wC>b5Sx1=#?w)2~w1YdWzA6cB~ z1((kn4EHwOPZXMsRd*iJ&IUPoYcfwt%CH2xg2n!4t?8>cHSIRB6QfrxmQ|?qe^F?8 zez>cs#ExvSX%j^hq%-+Ng7emRwdw>|ist?3=IbxHuWCC?Oe{62H`eznQncUmv^G&d zB|chAT9L|sZ%Z&aphUqtX#RMJ6Dw;}-^)D3*<|AbYx?u%Jzd>hqH)uM%%Q8u(s4Wc zx^v@7^Y8Q2#fQTzhsqC!`uVNdw8HO{b1J1y*~rL9t=I3AYlB5SY*nirCV>0UDuFTcStZZ zN<@^6ce%ob%f{nsTVj*+TMGp~l`FjcPV{tTiF&$)uOWW3MoUtz6veiG`*`WIXhH|? zJq~Vxg)3ar$=g#KI$jhVTC{PUqhkwuwT{}$k2f~AxAawiJUkpp=sr3xGVr8th1Bd8 z?VmSE>0a|30we5SZ4B5X_RPAppl7+LpZzw+;R7tME;-!&T$KF&!)Ee5frT7DHbk-9 z*{}27{lV&u4js+<^F9LkA{@4+)z~Li*xFK<|bm#H4Y)iMS>NTqIOBL0%G=8_Q zG-h{}oS6J#&Iu{LhNR7*%ep&1J{D{ECajw)D0%f~WY+h*&d?i{OL_x#r$-F6MoC(W z)*cu!@$S(sn<%c|9ciicUPo%^?q|iuj6qXUHQ!w~1sQX5d5!>^d9sQT0wvG337$3O zY%&unO5;!1{<>4e$>{n0lWO)_)e-%YCfXUos-3+0CwAv`6^xVe># z1DBCgTSm|NS*8n_E#`k*u=d`SAXkHmK|ixXxjAW-oR4qI=7L?qy>aU2OzGS+4ytj_ zxdq9d)|>|>us1x>1J`&sI*ug9aGv9nl{u`;4p@=XcYNFQD3n#-=S1|CxveL5t?_hD zAFzHBN7adb7R_#OocMoed#j+hx~N^ZaShry1PSgI+#!MBF2NmwLvU-{-62SDcXuba zyE_CA?q_}fu3fdO&b~b7g6js>>^a9A<9XhdQ5V_p0jm)4dP!@*-W0!**09rj^Dd=9 z-<*uqDY5H;q89}(y+WuiwW&XicVcY%^7HKCQsFqi3z*HxKdoqWeCG*Wkh0pkYIw1&SE9jv4fN5Ew9Uy!CN9G-E7L z;A~uaOQ7%}f0E!C#CV{Leb5s();xsDV}h#k_*giY%QIa+l|}5uNX6dL|9f17l>D+4 z`O-A6zc`xdgEv_k-SR&>i<0^f1ImaHl+Y?l54^`nMaXF}-1-?A#9)4<>2 zq+wqv3M3>tFWR(*9Qa*Mc@Vm@?;6G#Dw~^!zV(F&W5o>cNhK?bASV0qn@PPNgVe!@ zG<+U6N5hhLC-(v686=2bYgl1X4fAbVZWo+sqVTU$X5|H)C&tn^xJlxnJ%B?rkTcLw zTU`a2c{80JwmJx>HhfwaafwW|u9w+Xeq9>6k|BIYY;Fz0fxKFmo|84tW+@_oojeDBDNe10lQbX|gAGcOkYylPP8Z_2@iyXQVQn30 zyHe|}L!b0Rl2UQAbA7O#qyo5AYN*)|AGX@&vz`~*S%6sd-(EV^y~=f34sLFVxU#4V z#+u-JI8mE@rc7=xI-k#7VBk^R9ET>-IRZrdkqMvDc##b30fJ(SDT7 zpJwRru>Li0-eaWVfdSX>T0YNYug%^X=8|eYR3gO6Vn^cfUV#jTJdi{Udamb43cGn5p;4*BYi75a z;d5LN!YglPVWC`XuUM0)4As3ioG|KgTAcRFZj)8cN$*?j!$WH(e^*CY<@xHDn*OHT zxFcDNZxnt%SLn2At(PZLmwEDG{{sxZu5uE(lGkbXl zP)i?FDRafJ+ok*TvM3lLE2ysuWn7$K!ND$Rr+PSD`&jGgL^&d|9tt1$G?xk;{X z&vdGVDd+O=qF!5wR`6;@&E;rZ6(}xI{$hUE6XlxQkeAQs*NW~#kDZ#wx zdiQyW#hUuOs55I3TU=>AXoj;;lunq{&C|;|HH4vwEmaWNhuN-B`pd%Qn7}PZ)&Ti#uNOvZM?Zh z{CyKsbR14~mJ{vyKVaSh;`Dy)lZVpkH87TpOd)M$51i z;>U@fO&4~TEFzh(0U!Au`fhvsV&{RDWqCl|?=Aezp#x2FHO(NY5%a`Ako?pxbh z{V$rxuDwQ=I`bnEs}y39%;AI`hRTxiWRBOvX5NsYwrpQ9x{3xe(Sn8mkI&07huL`g zd`4Oxu~}9NK!RPX(%<^f?=x<+Iv@T6&i*ywd{|fz3Exjm3#@GtVaVbSUH4=HY#XAX zGW|-ZGcr*ZWCpb`QD9K9 zg*ap}==1x7MaYdZPF(JUp7}XF$J2ee2oY0yIY(&;qmV~#3$QS2v+8(_R(+``qzbCr zT<%?wi)xxSe5{&J+)WWvM0~MghVb%uk0?LglwK`%F_+hViZlPRl;Ibd!28mN!*J1h zUD>9NM#yO~ovQM6Q_ylI|6(GOzo~C=nDqO%LN(jlHnuegIqy#qb z1Y3y`v6(7ifOzstAfm<>V>h9+ew#3SAL53q_gqW?MevZmbhy2ZKs2cP_82v5^oeJX z^Kw=b{1`hzz2&?q`3c5_v&Nv;rs?xrA6}0G*y-B;xi=#IUMsykX}84XY~?kLR_A0X zRyxybR*pOAps1=fU3XK7cx7Ibv9X&~agkFEvnQ00LjUb(x?=TnFu7ii&Y+%j(E4p# z0ui@bcC(q>qXJ&X^+d$GQ{RWOuaSfftK#T_bH}kbQ@}w&gcbH+j0U4%s*9g%db7>W z+FR}5L;(-eeH(>VSU^;x15b+$?}Hz~ zjaJ5rC2s7nMKJC>q4*Jcx?ND9u#^2K1~v}SX@Ym6;?!bAojxgkY@8RFx>lpy?MIqr zDh?>tc^&P)Gl8xp&_u~wyw8Hw01@-&$;$1(Pd+PL`9Q3yX=57SgFOl;2&&j`p_q4p-9Sxk~kERd#_xs)VluB=$&^aS=fWli6K)at^~xP>5af=G6gxzfh-s z)eVaoHe2q*3{$+&V~Q(?Z^7vAyy;9%j@1WjwteK18vIu1hY*hC#+fF8j`gP&n&Xpn zpecLzt`?p{pVaN?+O65j=-(+{GQ5>JOM=&8oVVipsT)-1yz`dYiK_xzTbFlBgWI z3qYCpuCyFxd7hG6`hm7ein5;8c@Hx^S5{=rdVPy#o4J)>IZ_P9suo=cXyLcRrNEnY zHbBuzlrI4cE$5O^Z@50(j3o)_;8c>JyngJ(Rd23j3t)uFTy1K59e3T(x}N-=olKA1 zmtE+QWykrsHKZ1K{BN;R-)329r4EDEt&BN)K?03}07s@R@%R|4-0ay*!Du^xaQUY> z?e`Q?dzzWG?n$QTq{^9(vfB=F53f0&H9IJv(uG#5muqgrxYe0&W(ikp&R^2Q6e`b@ zmzMs8Gk7GY%OMvJe%Kw1YIBr(q>*etc!co{Uk6W#w^S=#6}U7_mA`yCNf&15w!!_rYt|1*+`d%n5Z{p>Y2=t5SyXm%GW z*fd?BNTmn|q~0J@x#Q-b)>o<8ZGepm5FgYq_3w*89d|2M+M}&M1)Kh`kLurey^tmK zdQf4~jNF!lAaP9ydXGsqxArPQ60qekaIyPv3ds6FUih%hlu3i7WFlcC?zi>33e849 zPv`mZs-wl@yXMH2pb+xy?2S)|3yB_un25wujq#AkCVD(2;s6!Zq4aR39H&E=!vHjjS-JTdCQXLwL0o~Tq{OM#1A<9yfHYnc0 zNq@~lVQIH-u+iH8#h`@&1s}F9 zN#ef8;A@xtUxRgpH8T8VgUhD$qx0%n6AOXMOmz!@o_06^tS&mK;MUPSLm8JICN(}{ zp(Qh5wCqTRl%uQunJJKAnB>1`zhcl}&R&jn@NtwGj1o9`D;mrGtOZEa}TWB|(uXlPsM{fX*+I+ZuG6-!{PM_CG5;ZqUY|2R&?ZR;q z=$ABZk?lf+Nof!Fm<oq2>>2XBDIaP~g}hxdj$2Er;)cXa`LDZMy8jl?I$R3H8ab4+Kq?Btf09to88zAJzfd8u=8>V^nzPE@@u3 z%s$I0M`t=1N{EBRfAtvrf#|QR^{QV$obR`&{kP|fm@%MmIBc|8Z5@c%@rF~(PxQyg zRYG(ERu;+P`^%y5yW`8l74!dP^j^al4v5_#&Hq?{|F38B??W#v%Nxpvna5%hz-Row z)ELD7(KmCEy5}DO_q-U8%>VN=|I;^B?Emx1GvhlV=0xxZHzIx(q9S1jlXtsrwW zWJZ_FhCQmnzvy@ilai!Ph6~94NXALI32~AJe@cS&s>Ly( zKp!!flu<4HheV1*x!D3Z%m-fXcmC%bDa^TeF<~_{TXb$PLJ);5{s$-@zl_M5MKt4n zFTNn(^ev3M5O<`x9O3#KBe1zMmO|ezUChJO3udJ*yLyj;$1#g2Y5wQW!rqz|L*>mz zdbR(Oz8~kAKORk7iO%~*tvngoxl9D`^2&_E3`KYb*@Q2%d8gkhJ$PE3UzT?rQ1}K2 z6V|;Xd6#N=(|i7F%F<;(uvXHN9GaW1`Kzg?IJBkz_h|g;<#G4j(}iKud$&cP3HLJU zK-+oj$=U4O$=z<*-}8;=f4fuvYk`DaiVFX?K#u;81)^s4KfwbDY<9CE_`zKf#zW+2 zY>2QhBowLiN>zxIB1RScQ>8`>G|%Ad^rbi_OT^N-TDEEme2jNcP0gp8noEucC^EK& zcKP$a2?=N&M{$!?U0xR_&n6*WPwSLMKST6bbFK36?pR8`lh~uI!QJM^={Nc|!1uVkxgPpF8=N!sdAQuTjCW zw1~l8Sqk%Svefhiwi=s-Vra@=42v%$+wuQcbCc%j{tAB(p;WuF)>=D>a*zLGT}^{b zWh^9dZ7j-wMY6cX%y?xGnKg2Zew{I>>#w^$w!1O}IgE|*LrHKm%ax^Q{={%#Zc!{0O| z>s5lDi5^-!)J-$i-db?~plDwaS!s(yAW&o#VW?XYrlaTA}gp zF`-T7VUo0XMgmR2A&mt$(`4Do>}=)lJFZuvj)KARYu2nN>D8nAXB35|nN*q6W}mM` zc)#NE4%H^j*zL;4Ps=BX%MUW-ix?h%$?P$F-V}1x%ow}1{#rG;F!qvF;5unOF|j!? zvD9ud=u)67TsP5hemvKSo)D*dx&DIizZb~=lIxgo^!6>-K%oDAfSi>7*+J}>{)dG6 zzxdzXz#h~6KOB_unl-}z!9iuZ{!*KtzxTDeP_fM*!1rkIgHys(!eoW|!Wi=z`P-ke zZ>+i0)X5e`oYQQ>#xfkqlo&Pnnj(=*gfh^GxQX;6s(gK8puR+H`PGxx-CwK0qEj?R zl+Vu&zYGt?(md~Ut*UAl^@yha{~@6MKcuQ&QfjRUwA1w0*Cb>5-vWMz7_g-EABd{R zKNd)F!*t)@Ku$>!1z|nShRRgRYGuBz5h*NsYnW!-LM%`&^~F9AF}*djXew+vx8ay5 zz(R>379f0O==MQXnGI-i=1l3h`ciZIU>BP$I13&bgA*Ae>y~fzh^&V`RK<@t3jf4*ior+1xS3Yl)hqEP|UNgGnaWhWpa=XZM zB9r!0-~TUF<^ni12&+(ZCbZ^)W>~N=zzwb=O_dbQ{~RfRQA$h%RUgWy+W;OBmZBSJ z3)W>|=T(cWvg_?B|Kd3S;OMcm8-5IjIPE}rqGII<1tPQpqNp?-ny};A%+4O8**0hi zz zd6$VmOBz%%2p^UdLgC+sdPe}-e~010vJV$Z;rrt5kk@|6Ap#2puRI@fFK~Eznx!{e z<@88I!FF>$&NQnf8QK_|~82g%9pJ89Du5$SmAnY>=! z1-^-)po3@tDqTCY{IQ9kV(3VQft0LVs}6Z5OMkN$_kGq7zi3)dW`p8zjLX&o=Qu(! z%bvj6Z?~!5@wR6n*QWUn$w4P#9p^kjtUP2N^!l>Q6$}5$XHsH{N@=xY;^>Q;==J(4 zXAtfA_G7HKI_G%{Hkxsw5r2T@sM|dvdk_vj;O`QoXgr#ilygCIN$Zw{Ybune90`gj zk)=bl(IKTzTWrDq7&@ho3N(Pm63yXD zDJIG%ZwiQmQQD(q!xW9pX$8c8Z=q`}rRm^C0)+}tHXDdM2( z>F~>N)KFkd<%8=zfk#}*?N3pslK1VI9DZKS9jlONwX8!|rE=u!@e#F) zCNyH6tt$X9C0(4Go4fdWxevey!hfs#(7Q?s8ca2}5E_+{QQQy~-AdLCTnO&9Y`$<~%`Y@9m%z`PHkl5A}GnIB^Ii-jng)66jp6&x5 z98?ng_KO}DUn=at@5{DW(x<-889<+ zq9a3hGU9MZJbrB75ng43J2Fd0It+lY4;CA=fwEJIL{bSlV7pDew6XH7R`R3w&n-Fb z^`F~kO`CeF2ZHs0^6R);IG$m5=e=nJ?n8m^mL|t*cA0SKdN^-)r$GncOa9bHE{cC| z3^Odwzf826bxq9He5*ok%h5>CWYHDC~EAl;z@ZbiSYcTXFJUp53pYx zgHRLy)|y(KEyqosP2$tqlMa2>`B{cV`vO&WGl8 zX+MM&FF~+i_^L*X*tnvP^R)F>_W$Cn@o(81w7%}QI|eR>Ng+9k=Ccwfi=-wBmYNPP zv8c^msucgum5?>!nB}>0yDG!Bty{mbkb+*)fpq9psJYYSbi78zOW74FSYSB7vq>PH00%8v z5IPRi<;k}k0WFhF^`}Ol;}m!6{NZ*s(Vs*M#dAJgZ8z=F88r7kC0>P`D7`nJA6qQA zQ{Bgs3iKoX#Xk!;zl36v-V77N3pTc$l*Vch$K9t;urV!Gc~1(bcrKd#p< z#?m_OfUU62Zng2O%Lpw>OUCKs^1rGG0ZQ}LawO*gHAtB4$6RrChtP8r4Uy})0A*jK zkMho92~SqBlz~5qBq=#2D|w$tvbgIX^I-H~bO4Y?==J633!(QqW9y6XIcM8)xbY6u z4++QeG5b+RkE;bugDCTxBzyY-f{mfNr$OK^qW*G`dGK0uht0wVg&{U2nF@K)^rNkJ zAvN~;;(1R2&8McJ@IG$mGh5GHHN_ga0ARo!HAHZ?{Hm%Gxmc4~TF&18hH3bjbeb=# zyV3dZV1B6U^1Ei?z%SdpBRh0$cub<%)H(8>{)Y9&O)!K% z8<>YkP(V=?G*ZMu58nw(KNg;NpICBqf~RclzD-BRxhq8gTTB_X@;0WeiL^6A!Rt>2 zDGwF?l{kCooBQ1lYjFchy^Z^*){A#PZ_(fXeDHg|GTp|jDlUSw5jq8Qnwf1(70VN2 z!IpfOeA{QC79HkY&r(WsrU#HiNrRX|3z0sE|gtMh6!G15jo`v{Pa&ksp zwV*L#{`)nji>me7eKCYcA?2;#;o!kku3A~d+#5;}UUtJ^J$1qrBw zIW&W(ZMFUZ(s%)cbyfEWMc-HJGEr*jZG+wtgSM`rVSZ!Xv_!Skzt|$?1Kqk1!u_ym zU6x9ECW=2GB-8ZEm3_nhcNkuHE^u%@iVY^i@!~G76(_BdkZW}UkkT&Dq(AYvKkt-7-ab4t z!zk7SNKh}=`{ib@N2tyV4e%m+x1h(pUe_jVH;#svRe$OI;!D2@6g}dD9J^=;3QSAm z?B}z;vl$Yhl44n(ay~|Wr!7~5QZEHDXd1R4S4)>%Zb}=%F_edPHhqWF97it8on%O@ zp+ZDPuad416*3>!c_5q~t4jPat~H;c{_?ND*PCJ+@3(?Z`uwskhJfRq)Kc<3PMIbF zz_bLcIB5eAihuxOGfWbE+gA&%TARRZ5sYn$?vH|G5KLMsZo6gnth6W>>V}7jP%`Y`7J$5L)&x5;H zy-p7G@U;8qFnIKy;$mH$oxcrVEQ>O^G8Qk5=dy`GTMbsmG^ivVD%6<-g!07O*Oc^F zlbCTsV^O}|FF{>=QT%pjqtgUYQT!A9rZ;pN?AMgJM?zxQOi^x#>exe-&dVQN3Pk-mH#G^chD zQ~Sx268;#wEC#G}6D+F^yv{@wp^BEh0XA7)&%{%twc=k(9Jp-!YS^tuflV2gHUam^ z$jA4T8br7l8Rd%hRaZ!8yB`cfC;Zg%V`|TJdpH4yxsdx9+fX}U#K2#UW$VMi!NFO_ z=-Jprs)QI4?uQp3|Knx!8k*34LCg4W zlMR2}Pp!UK$393O{EO*+Z4wzp=fh6Kh4)!@mF}L$hT-34`48ZG zG74C~-0=qOiPH7&p6Zsv>Oy#Au=6e#3pTxgM$C1Aa?$@#Z~mU3Amnb%mB70M#VTaB zjbTYfqE^3u0)1T~D~{L<-CR?EGs!DN3F83u5@WhG+8EV`8a84CjU8BRr{ImTCAZm^ z?er1XT}YN<%n>G%3kh$?=+D8u6NUjcIh5atcHQM`_1$4kV&JY5`Mw3Rzw$2^(;b9i zl|#ASW?u!R(m#6Gm@wr$e#g7}-Eqx!RJj_y@Kf^<;=ns7kzHrkebGKrYpLtFx6ISWHzhY$vHX zvjQh6iJM8U9hkV8pAB3ePV(*?eVW+NYueQ-n7cF@q}7j6OJ68lZ2NicHJ%IHO3%xd zZe|-nSHQhs^Iz(;F4o`x<6f%kvMWkp0i0|kk@k$+!Yw%zv90u6{tl0*6s>Jt0s|Ih zfS)a;eVpkoAxSY%d$hmeb{;GekT;YxIfz7)E7N_rlS3x*mcYv!R%ulpAd{q>t@& zb!BFE27v5&)^Hgx`y?t?^0%u_6uoFh}=6Lqxyhso7t(4w& zGwl6hSu5<-W-aPAd(Zm21?MB;5I!`zTA|`M=zb9x@cHQ8rR&f@w3nbTqUg^edFThy z(cbwh{8l8S9%L3b=1QC4Uh*wU@vZFiNd{4Rvxu^(*zEiJ=0>R1?dSY+3 zBlE$NkWYrRK@O{Zw2fid#qPZp9)K(A+3QAfFqz~sB|2bC)XI+CJ8G^H8tCQ4OzX-u zLy;|Am{hr+D7Cm4GX1d#a^xo%DdVDr$dr&;Zg2WN%;EMjKcAa+)V5f6fdT={5m~Wq zaEPLJt-G&H58vEpnad$E5fN<6z~EK%IiSH$toDe>59$H-g^XYbMJ?&UK_K{}|D|8m zW#$4W7a61q5>|tcmc0Gx?ehsmLY0VFa2fb(Dm8uR7QKO4hxVUWhCow-;Ot{VkMY-n z3snw==8uk|Ls=a4OBQfTpNJN%iE|Q5)yH^dSVeR?nc|9<{%jBYLckM|6n$`93m%1t zcH7NpwO=5FPFH@uaxv*t_P5ui@VlU7l!9JBh-{nDq6K9J_4ACva#YWuS9jlI;$(Cq zOi3aVn*_q8UpIOx;T;+MSTOgW-1g5PNA%;w8({G=>+uaRV69s#$p79Z;;F!uA;_wT zj7yHHD5Jui$fEa&Gokl|?1mPe04oF$sQ_Z?7lWsZ7e;IIRh7~Inu6i7BN=t@yHKz; zJhl0HH5XzxfQt@v#_Y;r7ir=8WIIj&=|0Jd!JMIOkA#H@LFqMuDz{NvI-vboC-Lz8 zx?qO3o*s6H;ayDp&L;$mBLX<1k@*p^dRb4YhlYQu$RRu7a?dn71kL@uJ6mN)QvNnt z8*g~N{x5a;-g~p8xL68X$%Wx6bLZv{9;T9;oiwYqY@cr) z++9{14nrgeO!}Q(78Bzn&ihFkcc4Vy+xbmzea%6ByiDKeTtFPQ*~EMPd5;2DTvc^Z z3Ze|1l0$~onL*(|Hl~7%OaE36l4e_qWzF4xO6!aTfuO#74XR82E@Hwcep!(y zu7C$=gsI6%M*Co;)-4)et~pIQzb{YvzIpLw92=(<9`ndonyc;i`fl9sMu1HI`Ey(M zS0iL(q)QGMUGW6)Ucv}pdT(9}RB1QaDsW6T2V2a2+>N%XY&j?SLF&-%l z)q1IFc0@8Iz1}TMd%51h`Nk+vcV-%D;hq32Y-E$17yrkhY+?j-6Jkar=;mp&`A%gc z(eC08_?86*lImYDe{0lF3*lk7@F1H;8KNlUEj5+eUAViC4}Jf@C8uw_+E{ToageFo zYff!aw;auLeyY6vJ2*I4ewDD%m6sUgS$>l(1q%-4<8) z7+@Pg)BrSXXsGhTcVSAq_=4T$Y`A>CwO)v8St3&ytKJe8oni7 z6p!A&($RmRrB9Qk{%qItlAY-=NFZ!mRja}vGCZcfls4bUVe>892bxSo5!@(@6fuQ= zc9t;0R?Vy^g+)#U$Hn?7q&m-Gu{fgwyCf5?JCv)3^$QX4=-p6Am3(shv2DFnitl=| zs69+g7(c1YE6uTbV_rUPmtxS$gkuac7;mt2s*|mq6%qP-mrGxZ=ig~xfPp26l`o26 zVBi${reS^1%^K;y-vXp!qU$so4aoUy;kmSZ`2uD^5={{+;Rto`1Fee&s;R~|TndoN zBr|vT061G;JxVhrSQ}FO_ns0 zIFShLCzgJW))1$R!$(H87jl4{u}10xaO!x-{9v_A(ggp`EK$Zkr{08KU>MG;Bae*U0!` z<(o2UHnbn{=qNvt{(Qa`CJ?jv!V~8APKYwq;#9=f6Uhh(CWGYv3vP_8E)%z-nx*Li>jcQxd}0XXi~A_5i1P5 ziovui{%PQWR;ixIudM#XRzKO((PW|QyDPGEoh|=1)#<$o@AZz18=5?E8LAMe46AN* z2IY})MlRIx9!_n_y{%8h*!z|PfAe)fJoQA-+Z&u3MP>0Hur%R5Tbn9%`*%*Ka_4%Dzu;0;0cPR&RQtV3_ZRe zcgYS+izD)&?xjx4Ax3h_LHuz1Vm?g&y7ck#Zyb0Is_S2&Pk+#lo{3+tl~;=JE34z)pY;W9xpYp;1RH{Tx9I24i&pfO z=w~VBjLcT+W%dQ+DYW%AS53N57YL-lXZ6kI3$~rVeY&N;s3som%j~`3H?eRe4VoRL znxDgFMSrSXd+^QD@U69Y=4yakn$dMd#LiPm_M*s|Mir%&uxa1;PHXv<$wTx*VFgb~N3ODK<)<0IG&9-;fbpd1Q7OE(5SF$$ ztf5^(_b&DlO*LjN-ZvgD2qD%bl6s79R;$ncQnC3nci3YKTRkub_=Pq3Tkwy54+du| z9ILIOF~Xg#KY-@Tu_;0dJ^H1`kbPhT8FbGf2jl*^b_dA)uMRTz+oKoZ9NYGjn zQt#O??9G%cfFrp_=-Zc^EkQGoutp zo2T3L`>fl>6$oCQld3XmsMjYa2sa?`3`|D_8m+~9Z!bL9-0=T|=-+$Xy;j&@T!OdD zuxaN>wtl)i`laflpdO`vLX34rdPekv-grz5-SFF=&!pwNpAr4NGFVk96RK1-G!CU= zm#NPwCa*^}E&wQdytwkO8#CrO98TNOmvwrwz(8fF@7l9QGB#)1*Lcj$KSsn=%%b>A z=UxFC;G`VKU{byNSaE*al^Ti&XZPEXs7|;MLvK7TWft^Pd_PPHEE)#%SRf4vx^YJO zRsLa4P_MDOGT9Az*r!0hPLmwy?GYOo27x0U{MET|Uw0ueOaN2ZW+9f8f9|JPu`+DD zZl~xFbQrh*$OH+$kbudb*s-qX$Fm%_Uy_}vc6cz=Uc6-n8keE)_H6Z@7bI#a&Sqvi`=j>H-}$n`Uq6kq zRT%r)HDezTQeF2{GHH3;!=)eu7T=1_s78}@g|=sqCIKpi>ImD!8|R=Fr@UQU0TC1;;&LJLYmJ#mOdDvUL;=@nRU%0N%$M#1_l>{JQyKyvaRh!&1Ze+ z!fT59`tMD_t-)ngPj^ir%Y~l<@imZg3vAl%ZAvO$|ITaZxu*h;^>X53)15C(O2`If z%XD#wk|xA$j+w=gFVA*jJ7fO~32~?85L*X(P+NjSWFzGhq8LT_Ze*oteyDv8xkIJR zj-M*A3IoF>6-Tg05J91s_XkKI24G5FYA$?1jWnTnTOe7~x&BksK)!m<#9V2R`188d zstOMSk53N<@P)BK0=}ExC^n;dU{kj(o=P^??cV9JUrWnNKRq`5rNv8)qxt?8yht_^y z;2nA0;Lv`+K@*tz*1tQ;v3!bz3ePZj5JeQS3D68f1sum>b<1vycN^$FmjPNaLQk|9 zxTEwyGpu){*@S&K&LGDL4#7RS@9g1lGx+qj+XNd?~4?& z-*BgkQdV4|X7I_t_~d~iO|~{Dd&T|2(B1aLA=kFUN7H%Pn;T1R*!XH>IV}bIOWYf& z*SeF}#^3@?2KurrLRJG2(KI^gH{e@^EvMGLYb3R>m~y!EiybPh8}&{13-CEL0R?h=2SRLj2EKD<;Pa z%GbfK!hRO5WKNpAA1(3Mr;V8vj~g6~wWp+*6$Gy}hoMX{G1Y@Ze9^#Y5`L~7j=#s( zEh-?29iUY$ceYk?%`Hp*9gOL-kUsDk*cAdW@uq9hanR`)wYix1aT}JX{d0FaoA>^F zih#wB+%)HC&ixz(KVSlNq^RcnT&foHdeOPGnm%kYg2k#@4Pzs37bWkT?|;C7+P4+& zfKtl;(@hCn`zo7tfme91DZq9QKsU_%vhv`v5}9In(0|+ZLhab148IY7^e24)Yul7h zW!)YEaK_VtF_(I_4U+@3&9}Rzu2#3<_%`SQlO9RzUb)me)Rk3n{r3#r9Azql14}@I z@fuBDVe-X5d=fhJNZp+CXE5fPsAE#~-;#KI-HFs=Jf-LV*tUoNNi+~Yh^BM$gTPwC z_>K(=L=IL)v9VNqe!R?w`&cNK{5iiWCb2eFE=K+ph;#VxVL(z-50@0YV?t-Tyf@e7 z`<`+FxFt{F{5j*iA2ZAN!L77y8Y++JzOgTcw?8Ob=e{vqA@ zFeB5{!GE#NP)5(7PMt7(mZrlzJu~MhzVz)benL>db=u4KY^CAQwfx*Z z$R_kN8}z~h)Q=eguaXv|l%mU* z>u8k8_CuqGwy2 zq?9ib$3OXCotnZw5lb2DtAVJrHU*;|Y$!1MzU6b+2{@xCm%N7@EI-2Kp|gJi@SiNu zk9^$crE#sfcn}_l?6AG1*jCCWGa3?ZTnn_BDA~J15qBM}=JJ;Szs{j4|pYM5}_c*@e z`;L3n&$Z6;n$O|d*R|HV*1F`yZ%D~*dHAN+?#SsEE5ehmDZra>URAlLbl1*)-4m~W zMRcEB5?f!ENvGT@O_6YqMM$0Oqa~cel&I`w8!2VD{k-AzL{BZ)o;33`PkB!!#|#&n zvylnxkjuPgu1o1WptN~4`xWkJtJ_M*YvIJTGh@4Z7sHk;&5MPF-lXhjyYKAJ-f>yu zR)3tlwF_E33wKpI@2ZL$p<;z>|YisD{j0IUoyIL%FZSx9}Iq&hXSmfj01clefb{!D^Y$Pi&cJ-FQ za@nso`%XNnJtuMU!CNa$-8BWOM(Q1os(co&a#wK(9m|-gT$7yhQd#WOrwhcMtA+ME zuN9o91qZK+I=SPFqGyMIC(ot|Q^}XzE~`#U2KXxFjj&y{w=ukZpgy7S{L<6X71>E< zIXlcRk-Vo;OGiJrIQD;8;&!Ae*zAefp06na2L5-amG{g%*ee1Ts*@@YWWmoS0Q zl6q|)ktzNu$#S-DoSp1Pm}ij{VFqD!p><&?^0`Yxz3N}pudiQ;-(tX~&$21(aad6( zpKz|qCV4qc^TF^9qJg2Kn>$lp?AI_?vh;Q|S9^EM)cJ6I=3Et1|D|?XkefzR$1$JB+gEtz&FQy>@LsdDoDT$Xa5ZV4s-!=O#`P^(GCZr%E@ZGf%xiL)tGQ0vHq|t><`n~nxRsqMtWpN{ zO5#^m9WWm_I z{e$=R=Z&j5$(_2|e`xY+&%>G^{7ffXOeU>AKJ~GJ?Giryi{HAfudn`7+Su_+zplk8 z`A>J>%+}pLACcI=lh9@9P*xzh^u=9gndfhtg+9iyF?Yx~I9`@iByZhYapP{+w{F?| ziruHq#dA4pUzMV=HKzH`b`(s$HFglYJlQ3d<4~e;W!H_1a(Zff_C@cin)>!t9_U_? z|Kb$Map=<@BPms>o0@BCYWOPB+$z>TN*rqX?xQ0x<@5TxluxssY;)CN?G(2MK{Fk- z?9F2Wv6KfflVNtg`f%rog?8*{iD>#Hd|bTS$3UhBUQrPL;L0h!^pfK>fp0Rp*}ktB z9`fwdj&UpTzq53PvUpdk>7lku7U6y)9G!_g!K7ZHFYW2s_nH^qmlSA;-==%nA)QpS zSf%&%D=wpVFOQ^)epQTq7mxp7!I(`<>$HpF3#FzFfNbWRA$^5NM-ymZ%r- zs-m+7cfU)&vu?0|o0@^K*5@4QIpO;T2dkZ5*6L{z8m=^!{U!N@tUayn7IBS5Z%a zP8nLGetHpW&oa+j({Tc{E0AHNVcH&Pe!n8U2ok)Op^fUN*YVZsyo@Z_m7*y1NhhRS zSvTb9){YgObDujtx;)Wg6MB2RtG0{E=P=%WpKEsf!{I&7qaU`m$*;A2eYSk`Sr=|J zxo7SsY-^Bs;dob0L3Y2e$j2V5e-p;WSQv~5@$KF}qaoET9c?QSC_;@EJYo@wCDl#(3P|nzx znJLFLGOp*^^*?38{WL4bdPIHVPiNRYvm-QmYq?xK-L}s2#^`F!mw1y(`}V@J^0BAV zewz>U-&xG*%**8by89HZ;&EdQExmj8grS1J>5!Ys z@U2$tldV4oJs)z{92s6!cy&?8s_(gqez?MYLXW7W-8`oq21#DKEm>!+In5Fd@b>Hb zy8M-~Y}J#urkm~fOLiHXya*nL|gGtJ=o`;^CAgCD7t+ngB6h?je^{O?8j`nPFl6%c`vX+ap-pS=+<2cUQN? zJS|El9oFMQx=OX|MD{ycsKRTm-sfzd%Q;UULP)vA|WU0r(dY_#YxpD#TVJ;n{)T7rE{-_=a;Ggi@&~Y+)QY8 ze}n{Hzn!DimvH4)psO3Nz1#Sz={KVfW{+!CJb5!{da2JwFI11V|IzJ}!m3F3m(-)> z+4)YAM!LDB`mEVhbJj_@=elZm*^Goq>UFmBf2lA+P^h8KNS5 zQ@QMTM_JSsB0lfBm7H?ZNwGn**orcfOQM3BC(nf{@NQ7%+MMZj)IaJ*_4AJh!#D+n zoL;SALgFXG)R5hOy4b4nxS0t*`}|hpadq3%r|O0#(VX`mHDBcjeSXC}kw@5TOIqA@ z+9MH@2)N$6o*RkkyC;Q+zYjdre3nm*J-__ghc}+;!!fgJ5=Qz$huBF>i1)YaXcDOAnvTU3y6HaxL5Q-x0n{@E?QRgif)yobr-qh?#=Ekry)c1q$CQN&*F$msb* zgNktHG|plrbHq?nLa&cc;17M>sj*80>$)VLuIIebg14N*`RbR5i)Zt!Obb+h{|uf* zT(M@2mNKjAYS{sA1p?)6V}TdZt4po4fb_U$qGcU>Wr<72+{-ZjZ$&ZU8m&%_-7Hs( z)$La(iL+ZSjW{T>*-YlpT8W#jPvmEH6yu6w8myeYS;!uPuShCgmy7$8S&%tXNJUrY z(qMGwm}%P7g@-t3&O*&1JRo z^t~oqQ_~phx0MnEf~3$id?!Tb%leMz&j-X^$^%E+G@rLgxaF04z7UISc=HX0vqJd9 z=glYTQ(P%ao8{OvJG%`IT=)a;l2ai0MB>Hf*zQ$P*7kpHu`h4n!tYrXv7h+H;E+^& z&TZ-LdtGJ6W4CG#>~Cr;d6R2l5aaTAU;8ZFGV^Uz%$wVRj5U=8*zVk^*E2mEoO?Pe zErVhZ`kfXX44Yg^cpcnMh|8;})LqKUTcPLm^7_S-sZFcQtyXIUKWuCaXwEX2`wLdx z{4TtQf={$b-2U(_^keFqB*QqqyniUPHxQh06@IH3L&<(`;wt?pmbl zsU7|{@t&j4ySM1r8|8veOy&4zjb}sQIZxrU z#vjxi?eG6_Yr7+UgG?;Jk~8fT@zBjP9xW2q%1kUcqhkl8KV(mnH|*)|{>;I19w!%R zh2WIpV_9?LM25Ex=6%xAvO^~D)~zxw<@IHRxT7|fD`I*J_gI*u8tkc_dJ+~EmJ(c9 zHQx4e?udG-?t0s$@3-;EOT?yosCT|-WRF{7?zPnYn9)T%DPiMwdDfFn+Id><{FWti z^L(nk<-0!8!KG!BS(fFVfG207AEjt|3O*S+5K?%2wVuz&vqOkk#k(spN%``wYc#O7ZtIpAT2tpH6I*w8cUjpDkA>f?FHDmsk;w;pZ$CK2 zu?4=QI#K$<$ioo zqg_0$WnCPedEn-{Yxsa8jTiy?`s52wZZZhG0+831+Ms{3kdW1f0Z*lkR zEiN{;A_*5x-ketA=*M`K%kP@snX={Y2o+Pv&5T>wtMPK(%S=c3c+tl=c#~hm@#Ete zLT%mTt$8i?{&;+F&|a+Uj`Ng*W;j`!zjk?i&pkW4@{Y1M>V5C265~8yw|ARLeW%Hh z2nh3WQrRZ`N!`Z+cAw2_$5Z^Mer>{UnqV*EZ2S^w_O#tfVwry(`K}1hJs;$M*Z#&Y zAmGK9PahApp7G71U5bO}KnM2y6^c0J=MG5mBi;6CKA*_f!`TIyt?+i`mRp+2WN#s_ zTO~$MDZG6WJma^sL~8bW>g`Dx6V@PagNIw0S>}%Cd{&ar)br={;GQur2jN z^LOvBd!C=!?Ng(ywvm$)S$?-CX@_>cg|$HJqj&ebUa1hyJ-1)VZqNCQKQtf#D?@C z@+g^ab}tVrbJ*Waon1!inAVzQWOr{la_H|aDly*jA!XchbeS}Qpx{U7-#a4v`MMA& ztMR@R7s$tq@X{mURWa}qkY&ga4}v(N<)H^K&!Q37fxhzyE>0mU0h$0KfF)oLzyoj) z5D!QNTm{qu9s?!-Fn>Wd0QLaLfMbA4Kr3Jbz`=|l!T?QxF2D-l0XPDP15^NR0v-UK z0R{k~EC?b4PzUJ4dv5FjR6sN!6>tU60C)hffh%jCfFM8=AO&z0PzHDicn0VKaIr%l z0crqKz+QkK;6C6LUAk>Dzg+vY>?##s`m0c2lKoHc=pCZ?d(61?%wBmxfFt%9>9 zZ?)M7Om}w@*f)rSQ3}1Kixx2mKVLkRNcP5|ZG@7c2OE6J6pAvVha?h|i%3XpWR$9D ziZe68`ICt*1e^;r8I4p>#3G@}-q2*6CD~iqnu_;!#goY11RR{;7Dz-)3`>n>r{Ku` z1Yg`P;wB;@DvCw;6I}`9AEp1OdZAJ*mzF8Q$+?Mur}}{{AW~AMzIbmc&f0?*?C0r+ z^C9?p5h)b3XKqAa3UxKY#J7e-qq+Tf(RF~mlwes zT8+9C&eac3qMNfT!5<8lf-G6G(*|el2L?}oWFX5R@E~Xl8n<}yPEe*Znd*V+fkH2U zZmNiYfUONq-j;5isJkj4f`SYOlLxo3MSVg6O+-e=3-ASuvuKem88vX6JpC`46NIaP zu&{tYkkHW3=-zYLAsY#70*t-)=#+M$j!CQ$J>4aIe+DbJfACONPNuz9L4(FLRp z<}mO60Yn%@AcjE2f!#C2O7}@jo~T9sjZEF~L@-T3QLG{09-utTdk`+3-t?#+qXP#Q zO6?%vU4sxlf!>T`pe`zI2g5KCA(7sKbUG&pngBJ?M-*oE{_?AXXJQaOA^K=KUVRjX zQ$=f|@#y9-~-3cBa0OnFDV)XEZ6T_kBhKe%KYIsEGs)86z z)1jiP!&xOLms=Rs7BIDbV)BbI6b5WmV+&;{S^X!897s$VPECTA z562uwo1K&}oE{42gJ+5dDwAo+`Sj)sVnq(7WDjOUKn8@B8mpNcAz#2{vw?GjJ6LPEk?&awci=)2%Er< z6a!KD!x8xiJMUm@=wNy*W;5)!dlP(!YRm5$YB2Yf$Bv1u;?24 zaWFB7mQy)ieU3ihp#7_h0rAr+>xPOWhKf$3%KBkr&|8QD&C!xehayiv@94P(Vk&6~ z#f*{$Q_2Ptj`mj`owr)L9_h(`sebTm(a`yPsG6afA7;^C2d}_OrKcZ?&+RX-q-*Hd zU{NBd=SQj^#zPCQ7>KE2h=b7-e;LEQ{-z(Ol?utB(Z$j89Zb898u8KM!Sql#p~W5rQ$o{m z2n^lGXD9?S8%{w+TNq6GuNt=mL*(Fcb!p(+znB@f7$XvOyutW<&?zeSq6~zcn;|v2 z64?YW7yIECOV%?ugGZCV`p2uo&<4jIAE^DsAizFAxmu$D#V; z4CelDE)I|fXakr*POcELgT(Mi5J=Pyq>0jA5aR=X@$eU=DZuvyo;OGwEgz+WAQu5B z#`?<&D&0h<=nO;?YahyjyFbWsfCj)AU=2XmaA?_K0Ceqj7LWtD2B-!+0rUf=0YXrg z96$qruEll&Tmim-gMe5-8Xyl)3U~l`2^a;y8-WoKSaZn(v;o@z`vBg6P(Ui+JRlEH z4!8$E*J*D7oUlHV1ZV@y0CoU8fC!)hq5;W(G(Z91FF+Nb0nh??0q6s~1$+g}0k~jI zCjj8$a;ADaqCdVtu+l)!DfD@zBZcS%6IwbWfJk-ma3tZq-Tm1q|g(>nrEItB~szy2sbwork0Lc?vCERkeW`opsNOY9UL5Vh97l4oj;jGB|y9A zY=1K3;o-r~1Bh-!m;*2>671G=7a#3s!!%>pK4=Hp0V%x3B77Uo5c=+qo0 z@sRE(Cak5<=`u|Cflpzq3+4;p;X!#sFGr%c8yWhCccBvfiPRuRFPIC#Eba$Q@gd=1 za)(i6Pu^~ zTwo?larA;esC960E$9|%oY(VwCo$8YU@C$Yo;w-smN#Q@3f9M1oWj}%T@Cpn%*@_o z5b;l%qN|UW_kfSDy5qdoxVe8a+eM4!_2*4SRXjgAU9#kF`Ho%`cQEyZII1JIc7pl+ z-*D;a`S|8zeCg9$e*SqHGdealh8h?lx^_cp7g(`FZy27k;8Hw16#Dv$VPLSo3)Wts zFUBfy-Wov^;3XU!epH4q+1MDa!p%(&8BA7Iy325Jp#g)%&hAg9dkzl|iyZ~~xXd?+9ZkPRpX)B{=oJ%9-S+899q4#0`P;0Oo&RtYmgRy6t-8iwXy zXc$(1q0th4&X4{c{!GJVuwQ7n)b$GuX@8;Na@H?2`r`7R%Y#dgztHIK-Ousp^~axS z{@-YU-)O<#XrbR|R50`9p|-LNXl9TSDuoP`pLhpClpovzkU4N zAJqR)+qe%QD_HAldWfF?-v?A)=zI@tJK7Ik(1Ia^|LHOBbE;5~A;1dY1n>cb0+ImP zfMP&Bpaswam;j)DHb1_qqU`}#0h|CnfKWgZARAB&s0XwFdH@puPzfRkzyVYNh5+6c>h*ceM6 z>(F>?Os20ZP#PO^5iB1IHs&HySbl5_MQ|9c#t0E10fjK;=b zL=K}Bu=Fc18tW(ho)g+Wbc}|OzVZ%1v3S(x(DE_4B3M2abnS(fhoxh|`hj3_U{S~7v5*Dp7k$l!mWRXQF*&hdaznHj zd=^Y@$Qq2s_{ds}#^gd@ccSI3#LCmb;xRoT>o8g#i(ik?*l#AHi_w@|5Iu}W=SgV) z^f4Nf6JmhTm>nX97>&t|elHMh5B57nU!S5hrUzsLmLB^pK};|jmGl3fuLpZTg8$}$ z+8z#o>dFvc1#klR073ytfNVf9pdQcy=mAUs5T^h0zK+?z4`1I5%|dnazw7IkSbEH7 zShis_<`XPiF?!zDEiiiC*Y{yGjuEmLWAwbQV>(1In`POH#n1b?14d&$!h+68(Du*! z`X-E?_w|h!joCDd6-LW5LKYj0p7(WAjGp)P?HE1p>zK_V^S*9}#n1b?Ax6*px-CY} z`#NT`KYShYu^+x}gr)!Q`noojf8N(IAOGR&JF$2y9m@`kp7-@#7(MUnScuH~x;Yj< z@9S9j!`IEQ_<3K)#(*EbZjZ$qGC~$C-49>igT-TZ!GhKM!`HW9@$5Qw`32}%5nr@na7e^(9oP@&ZUA`}gl<=;ZK9KM9E9fSlTz-_IX^a1nQ82O z*-aeX{45l_=YWMm$Gv#n85#6i*bqQ9oVi~$oT-VKiAj}@ooiLJS@ah^CMF&>M0Ks2 zn5rl{%T87nUcUKTWb}KKYJ#f#D4&~`1LLdlsB)nkb`j>C)~dM0eCk?iYU((JUQqjcO~e#SG=5=J<~^FL%Z@* zkDp4vZJixkuO(^tPU_pHgEqVtnz`Z$CP@F)Q%l}TdOlTF*na(Hw6n#wWBhLpAB>m2 zI4WM!%CmKcUaN?->quEv;zfJX>(0+e({EF zLu34{N`E?MCGtmXQ7X{5)^fwaFRweb_smNV{tGc;O6?LQ%io!ARrpeOcyZ>ru&j-_ z?(3_I)7~Hg&mueJj32O^w5t2?ai6E#wiWM>1oXI7Zg2S`i`LM2`Le=+Rf~-tjkYCr zoc(KNn7vox;2AfCmSqAT9!*wAD=bey+Uysb6$==vuepq@S@YzmQu4i;WDcn}_g{TI zypmb>Gsi~HLyOj&?|V?tx}0ERc|qgzg~xv?$ZsC^u%44RRIq55{{gqd2|h`GUS>@` zO?i+DE8YPh|-O#{z*ARKpxr6g|08a4wUgKugeMS`%+M8b9 zE}9r`7!@^pI`Nf9JlA8H zm_wv0>NMZ>m}d8e_T}ZsGu!)ND?kR|J^y&szw{~xZiWQ~5PXd>WBMofM*{yy;2#P6 zBY}S;@Q(!kk-$F^_(uZ&p#~0sD`m;L-lOVyZkS(9RR>HUk8LaVe#rsm}cxQ_&wkFx~*FkgyAAQ;MaT?V9keaUSRA!_&wi!A3j0`4na`-n(xyh zMn1+ig@t^Kj{g4j>xGWiz&;bSKE}7Of6w>(N0Aruz1C*rW9+L~$j6Y&uiwgD$OVrg ztz+b4?4Vf4$7tv8uXI_+nM7jbV{F}6$j7Mf*ZuwrxnN5RJgbHFkFl}i_k6$Z_W3#A dz!7@BpZ5M(nX`eG(TB=-kuLP26ne)B`CsBVC7}QS literal 0 HcmV?d00001 diff --git a/docs/diagnostico-volte-newww.md b/docs/diagnostico-volte-newww.md new file mode 100644 index 0000000..1fc37d7 --- /dev/null +++ b/docs/diagnostico-volte-newww.md @@ -0,0 +1,107 @@ +# Diagnóstico VoLTE — Pixel 6 (oriole) + NeWWW (Altán Redes, MCC/MNC 334-140) + +Fecha: 2026-09-22 · Dispositivo: Google Pixel 6 · Android 16 (CP1A.260405.005), parche de seguridad 2026-04-05 · SIM: NeWWW (334140) + +## Síntoma inicial + +VoLTE no disponible para la SIM de NeWWW (Red Altán) en un Pixel 6: la app PixelIMS parecía cerrarse al aplicar y las llamadas por voz no funcionaban por la red. + +## Cadena de evidencia (logcat + dumpsys, vía adb) + +### 1. La configuración de operador SÍ se aplica + +``` +I PixelIMS: Applying to all 1 SIM(s) +I PixelIMS: ✓ Config applied for subId=4 persistent=true +``` + +El bypass (Instrumentation + delegación de shell vía Shizuku) funciona en Android 16 con parche 2026-04: la config se aplica con `persistent=true` y queda firmada con la versión de la app (`Config is current, no override needed` en arranques posteriores). + +### 2. Aprovisionamiento IMS activo + +``` +I PixelIMS: IMS Voice Opt-In already enabled. +``` + +La flag `KEY_VOIMS_OPT_IN_STATUS` está en `PROVISIONING_VALUE_ENABLED` (la capa de aprovisionamiento no bloquea). + +### 3. APN IMS presente en la SIM + +``` +Row: 11 name=NeWWW, apn=internet.newww.com, type=default, sub_id=4 +Row: 12 name=NeWWW, apn=ims, type=ims, sub_id=4 +``` + +El APN `ims` ya viene provisionado — no hubo que agregarlo manualmente. + +### 4. La red concede voz sobre LTE + +``` +notifyServiceStateForSubscriber: subId=4 ... + mVoiceRegState=0(IN_SERVICE) + domain=CS transportType=WWAN registrationState=HOME accessNetworkTechnology=LTE + availableServices=[VOICE,SMS,VIDEO] rRplmn=334140 +``` + +La red de Altán da servicio de voz por LTE a este equipo — el bloqueo no era de red ni de lista blanca del operador. + +### 5. El toggle de usuario estaba apagado + +El módem Shannon reportaba el toggle de usuario apagado pese a la config aplicada: + +``` +ShannonQNS-0-HC: ... USER0. VoLTE supported: true enabled: false ... +ImsManager [0]: updateVoiceCellFeatureValue: available = true, enabled = false, + provisioned = true, voLteFeatureOn = false +``` + +La override hace el toggle **visible y editable**, pero no lo enciende. Solución: Ajustes → Red e internet → SIMs → NeWWW → **"Llamadas 4G (VoLTE)"** → ON (una sola vez). Confirmado en el dump de UI: + +```xml + + +``` + +Nota: el estado del toggle NO vive en `Settings.Global` (`volte_vt_enabled*` no existía y escribir esas claves no cambió el estado del módem). El cambio efectivo se hace desde la UI de Ajustes, que lo empuja al módem vía el proceso de telefonía. + +### 6. El ImsService del módem corre con normalidad + +``` +cmd phone ims get-ims-service -d → com.shannon.imsservice +ps -A: com.shannon.imsservice (2528), .ShannonImsService (3344) +ServiceRecord com.shannon.imsservice/.ShannonImsService (bound por com.android.phone) +``` + +El stack IMS del módem Exynos 5123 está vivo y enlazado — no requería intervención. + +## Sobre el "la app se cierra" + +PixelIMS no crashea (no hay FATAL en `logcat -b crash` de `io.github.pixelims`). Lo que se observa: + +1. Al pulsar Apply, la Instrumentation lanza `PrivilegedProcess`; en Android 14+ corre en un **proceso de SDK sandbox** (`io.github.pixelims_sdk_sandbox_instr`) que aplica la config por callback de binder y el sistema lo mata al terminar ("finished instr") — comportamiento normal. +2. La UI principal se va a segundo plano durante ~3 s y el fork la relanza sola (START MainActivity con `LAUNCH_MULTIPLE` en logcat). La percepción de "cierre" es ese parpadeo. +3. Dentro del sandbox, `createPackageContext(...)` no puede leer `/data/user/0/io.github.pixelims/shared_prefs` (warnings en logcat) y el código cae al fallback con los toggles por defecto — por eso conviene aplicar con "All SIMs" y valores por defecto. + +### Crash real detectado (otro componente): VozApp en Android 16 + +``` +FATAL EXCEPTION: main Process: com.altanredes.altanvoip +ForegroundServiceStartNotAllowedException: Service.startForeground() not allowed due to + mAllowStartForeground false: com.unikie.vm.application.engine.services.AppStatusService +``` + +La app VoIP oficial de Altán crashea al arrancar un servicio en foreground desde segundo plano (restricción de Android 14+). Bug del proveedor (Unikie), no del dispositivo. Con VoLTE nativo funcionando, VozApp no es necesaria. + +## Conclusiones + +| Componente | Estado | +|---|---| +| Bypass de config (Instrumentation + Shizuku) | ✅ Funciona en Android 16 (2026-04) | +| Aprovisionamiento IMS | ✅ Habilitado | +| APN ims | ✅ Presente en la SIM | +| Voz sobre LTE en la red (Altán 334-140) | ✅ Concedida `[VOICE,SMS,VIDEO]` | +| Toggle "Llamadas 4G" | ⚠️ Manual: visible tras aplicar, hay que encenderlo | +| ImsService Shannon | ✅ Corriendo | +| **VoLTE** | ✅ **Funcionando** | + +Lección principal: con el bypass aplicado, el eslabón que faltaba era **el toggle de usuario en Ajustes del SIM**, no la config del operador ni la red. diff --git a/gradle.properties b/gradle.properties index ed2d02a..8334c71 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,6 @@ org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 -android.useAndroidX=false +org.gradle.configureondemand=true +org.gradle.configuration-cache=true +org.gradle.configuration-cache.parallel=true +android.useAndroidX=true android.nonTransitiveRClass=true diff --git a/settings.gradle.kts b/settings.gradle.kts index d500ecb..2b5bd0f 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -11,9 +11,10 @@ pluginManagement { gradlePluginPortal() } plugins { - val agp = "8.7.0" + val agp = "9.2.0" id("com.android.application") version agp id("com.android.library") version agp + id("com.android.settings") version agp } } @@ -29,15 +30,27 @@ dependencyResolutionManagement { } mavenCentral() } - versionCatalogs { - create("libs") { - from(files("gradle/libs.versions.toml")) - } +} + +plugins { + id("com.android.settings") +} + +android { + compileSdk { + version = release(37) } + minSdk { + version = release(31) + } + targetSdk { + version = release(35) + } + buildToolsVersion = "37.0.0" } enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS") +enableFeaturePreview("STABLE_CONFIGURATION_CACHE") rootProject.name = "PixelIMS" include(":app") -include(":stub")