From a5ee5d7140992dd49e8f6b6135f8731ece67a4c5 Mon Sep 17 00:00:00 2001 From: Anton Afanasyeu Date: Sat, 23 May 2026 12:18:43 +0200 Subject: [PATCH] git flow, infra descriptions, cast flow changes (mobile side) --- .cursor/rules/git-flow.mdc | 46 +++ README.md | 7 + .../com/foxx/androidcast/AppPreferences.java | 18 + .../com/foxx/androidcast/CastSettings.java | 4 +- .../foxx/androidcast/CastSettingsBinder.java | 27 +- .../foxx/androidcast/CastTuningEngine.java | 3 + .../DeveloperSettingsActivity.java | 29 ++ .../diagnostics/CastDiagnosticsLabels.java | 2 + .../sender/SenderResolutionUi.java | 107 +++++ .../sender/SenderResolutionUiMode.java | 15 + .../layout/activity_developer_settings.xml | 28 ++ app/src/main/res/values-ru/strings.xml | 12 + app/src/main/res/values/strings.xml | 12 + .../foxx/androidcast/CastResolutionTest.java | 16 + docs/GIT_FLOW.md | 384 ++++++++++++++++++ docs/GIT_FLOW.pdf | 200 +++++++++ docs/OPEN_API.md | 76 ++++ docs/PRO_AAR.md | 77 ++++ docs/ROADMAP.md | 17 +- docs/_pdf_build/build_git_flow_pdf.py | 298 ++++++++++++++ docs/_pdf_build/git_flow_diagram_branches.mmd | 21 + docs/_pdf_build/git_flow_diagram_branches.png | Bin 0 -> 33171 bytes docs/_pdf_build/git_flow_diagram_feature.mmd | 15 + docs/_pdf_build/git_flow_diagram_feature.png | Bin 0 -> 34173 bytes docs/_pdf_build/git_flow_diagram_hotfix.mmd | 21 + docs/_pdf_build/git_flow_diagram_hotfix.png | Bin 0 -> 43915 bytes docs/_pdf_build/git_flow_diagram_release.mmd | 16 + docs/_pdf_build/git_flow_diagram_release.png | Bin 0 -> 37192 bytes 28 files changed, 1426 insertions(+), 25 deletions(-) create mode 100644 .cursor/rules/git-flow.mdc create mode 100644 app/src/main/java/com/foxx/androidcast/sender/SenderResolutionUi.java create mode 100644 app/src/main/java/com/foxx/androidcast/sender/SenderResolutionUiMode.java create mode 100644 docs/GIT_FLOW.md create mode 100644 docs/GIT_FLOW.pdf create mode 100644 docs/OPEN_API.md create mode 100644 docs/PRO_AAR.md create mode 100644 docs/_pdf_build/build_git_flow_pdf.py create mode 100644 docs/_pdf_build/git_flow_diagram_branches.mmd create mode 100644 docs/_pdf_build/git_flow_diagram_branches.png create mode 100644 docs/_pdf_build/git_flow_diagram_feature.mmd create mode 100644 docs/_pdf_build/git_flow_diagram_feature.png create mode 100644 docs/_pdf_build/git_flow_diagram_hotfix.mmd create mode 100644 docs/_pdf_build/git_flow_diagram_hotfix.png create mode 100644 docs/_pdf_build/git_flow_diagram_release.mmd create mode 100644 docs/_pdf_build/git_flow_diagram_release.png diff --git a/.cursor/rules/git-flow.mdc b/.cursor/rules/git-flow.mdc new file mode 100644 index 0000000..e1936df --- /dev/null +++ b/.cursor/rules/git-flow.mdc @@ -0,0 +1,46 @@ +--- +description: Green-master git flow — branch from next, releases and hotfixes per GIT_FLOW.md +alwaysApply: true +--- + +# Git flow (green master) + +Follow [docs/GIT_FLOW.md](docs/GIT_FLOW.md) and [docs/GIT_FLOW.pdf](docs/GIT_FLOW.pdf). Summary: + +## Branches + +| Branch | Use | +|--------|-----| +| **master** | Always green; **tags** (`vX.Y.Z`); merge only | +| **next** | Integration; all feature work merges here first | +| **feature/***, **fix/*** | Fork **next**; delete after merge | +| **hotfix/*** | Fork **master** for **released** bugs; merge → master → tag → merge master into **next** | + +## Agent rules + +1. **Do not** commit, push, or merge to **master** or **next** unless the user explicitly asks (release, hotfix, or sync step). +2. **Default work:** `git checkout next && git pull`, then `git checkout -b feature/...` or `fix/...`. +3. **Before merge to next:** run relevant tests (`./gradlew :app:testDebugUnitTest` for app changes; backend tests for PHP). +4. **Release:** only after user confirms — merge `next` → `master`, CI green, **tag on master**, then **merge master → next**. +5. **Hotfix (production):** branch from **master**, not next; after tag, **merge master into next**. +6. **Hotfix (next-only bug):** `fix/*` from **next** → merge to **next** only. +7. **Never** force-push `master` or `next`. +8. When working on a named branch, call **SetActiveBranch** with that branch name. + +## Quick commands + +```bash +# Start feature +git fetch && git checkout next && git pull && git checkout -b feature/my-change + +# After hotfix on master +git checkout next && git merge master && git push origin next +``` + +If `next` is missing locally: create from `master` and `git push -u origin next` (maintainer once). + +## Dual remote (private primary) + +- **`origin`** (`git://f0xx.org/...`) = canonical; fetch/pull/push day-to-day work here. +- **`github`** = publish mirror; push `master` + tags (and optionally `next`) after release — do not treat GitHub as sole remote unless user says so. +- Topic branches: `git push -u origin feature/...` only unless user asks to publish to GitHub. diff --git a/README.md b/README.md index b3bbd47..433cb9d 100644 --- a/README.md +++ b/README.md @@ -86,3 +86,10 @@ Activities bind via AIDL (`ICastSenderService` / `ICastReceiverService`) for sta - UDP mode may glitch under load - Audio captures **playback** routed through the system (not microphone); some apps may be silent by policy - Single sender → single receiver + +## Development (git flow) + +We use a **green `master`** plus integration branch **`next`**: features merge to `next` first; releases merge `next` → `master` and are tagged there; production hotfixes branch from `master` and sync back into `next`. + +- Narrative: [docs/GIT_FLOW.md](docs/GIT_FLOW.md) +- PDF (diagrams): [docs/GIT_FLOW.pdf](docs/GIT_FLOW.pdf) — regenerate: `python3 docs/_pdf_build/build_git_flow_pdf.py` diff --git a/app/src/main/java/com/foxx/androidcast/AppPreferences.java b/app/src/main/java/com/foxx/androidcast/AppPreferences.java index 1d5c8a8..2142e21 100644 --- a/app/src/main/java/com/foxx/androidcast/AppPreferences.java +++ b/app/src/main/java/com/foxx/androidcast/AppPreferences.java @@ -20,6 +20,7 @@ import android.text.TextUtils; import com.foxx.androidcast.display.ExternalDisplayCapturePolicy; import com.foxx.androidcast.receiver.av.ReceiverAudioPreset; import com.foxx.androidcast.receiver.av.ReceiverVideoPreset; +import com.foxx.androidcast.sender.SenderResolutionUiMode; /** * Global app preferences: identity, PIN, tray icon, and default sender/receiver cast options. @@ -52,6 +53,7 @@ public final class AppPreferences { private static final String KEY_DEV_WIRED_DISPLAY_HINTS = "dev_wired_display_hints"; private static final String KEY_DEV_USB_TETHER_TRANSPORT = "dev_usb_tether_transport"; + private static final String KEY_DEV_SENDER_RESOLUTION_UI_MODE = "dev_sender_resolution_ui_mode"; private static final String KEY_DEV_EXTERNAL_CAPTURE_POLICY = "dev_external_capture_policy"; private static final String KEY_DEV_COMMERCIAL_ADS = "dev_commercial_ads"; private static final String KEY_DEV_COMMERCIAL_IAP = "dev_commercial_iap"; @@ -330,6 +332,22 @@ public final class AppPreferences { prefs(context).edit().putBoolean(KEY_DEV_USB_TETHER_TRANSPORT, enabled).apply(); } + /** Default: {@link SenderResolutionUiMode#SEPARATED}. */ + public static SenderResolutionUiMode getDevSenderResolutionUiMode(Context context) { + String name = prefs(context).getString( + KEY_DEV_SENDER_RESOLUTION_UI_MODE, SenderResolutionUiMode.SEPARATED.name()); + try { + return SenderResolutionUiMode.valueOf(name); + } catch (IllegalArgumentException e) { + return SenderResolutionUiMode.SEPARATED; + } + } + + public static void setDevSenderResolutionUiMode(Context context, SenderResolutionUiMode mode) { + SenderResolutionUiMode value = mode != null ? mode : SenderResolutionUiMode.SEPARATED; + prefs(context).edit().putString(KEY_DEV_SENDER_RESOLUTION_UI_MODE, value.name()).apply(); + } + public static ExternalDisplayCapturePolicy getExternalDisplayCapturePolicy(Context context) { return ExternalDisplayCapturePolicy.fromName( prefs(context).getString(KEY_DEV_EXTERNAL_CAPTURE_POLICY, null), diff --git a/app/src/main/java/com/foxx/androidcast/CastSettings.java b/app/src/main/java/com/foxx/androidcast/CastSettings.java index 30ca23e..ebe25af 100644 --- a/app/src/main/java/com/foxx/androidcast/CastSettings.java +++ b/app/src/main/java/com/foxx/androidcast/CastSettings.java @@ -102,7 +102,9 @@ public class CastSettings implements Serializable { HD_720P(1.0f, 720, 0), FIXED_1080P(0f, 1080, 1920), FIXED_720P(0f, 720, 1280), - ADAPTIVE(1.0f, 0, 0); + ADAPTIVE(1.0f, 0, 0), + /** Long-edge cap 480p (aspect preserved). */ + SD_480P(1.0f, 480, 0); public final float scale; public final int maxHeight; diff --git a/app/src/main/java/com/foxx/androidcast/CastSettingsBinder.java b/app/src/main/java/com/foxx/androidcast/CastSettingsBinder.java index c860e72..1d473ab 100644 --- a/app/src/main/java/com/foxx/androidcast/CastSettingsBinder.java +++ b/app/src/main/java/com/foxx/androidcast/CastSettingsBinder.java @@ -106,7 +106,7 @@ public final class CastSettingsBinder { bindVideoCodec(activity, settings, R.id.spinner_sender_video_codec); bindBitrate(activity, settings); bindNetworkAdoption(activity, settings, R.id.spinner_sender_network); - bindSenderResolution(activity, settings); + com.foxx.androidcast.sender.SenderResolutionUi.bindSenderResolution(activity, settings); bindCaptureMode(activity, settings); bindStreamProtection(activity, settings); bindAudioSpinner(activity, settings, R.id.spinner_sender_audio); @@ -323,27 +323,8 @@ public final class CastSettingsBinder { readEnumSpinner(activity.findViewById(spinnerId), settings::setNetworkAdoption); } - private static void bindSenderResolution(AppCompatActivity activity, CastSettings settings) { - Spinner spinner = activity.findViewById(R.id.spinner_sender_resolution); - CastSettings.Resolution[] modes = { - CastSettings.Resolution.ADAPTIVE, - CastSettings.Resolution.FIXED_1080P, - CastSettings.Resolution.FIXED_720P, - CastSettings.Resolution.FULL, - CastSettings.Resolution.THREE_QUARTERS - }; - String[] labels = { - activity.getString(R.string.resolution_adaptive), - activity.getString(R.string.resolution_fixed_1080p), - activity.getString(R.string.resolution_fixed_720p), - activity.getString(R.string.resolution_full), - activity.getString(R.string.resolution_75) - }; - bindEnumSpinner(spinner, modes, labels, settings.getResolution(), settings::setResolution); - } - private static void readSenderResolution(AppCompatActivity activity, CastSettings settings) { - readEnumSpinner(activity.findViewById(R.id.spinner_sender_resolution), settings::setResolution); + com.foxx.androidcast.sender.SenderResolutionUi.readSenderResolution(activity, settings); } public static void bindReceiverPip(AppCompatActivity activity) { @@ -551,7 +532,7 @@ public final class CastSettingsBinder { }); } - private static > void bindEnumSpinner(Spinner spinner, T[] values, String[] labels, + public static > void bindEnumSpinner(Spinner spinner, T[] values, String[] labels, T current, java.util.function.Consumer onSelect) { spinner.setTag(R.id.tag_spinner_enum, values); SettingsStringArrayAdapter adapter = new SettingsStringArrayAdapter(spinner.getContext(), labels); @@ -581,7 +562,7 @@ public final class CastSettingsBinder { }); } - private static > void readEnumSpinner(Spinner spinner, + public static > void readEnumSpinner(Spinner spinner, java.util.function.Consumer consumer) { Object tag = spinner.getTag(R.id.tag_spinner_enum); if (tag instanceof Enum[]) { diff --git a/app/src/main/java/com/foxx/androidcast/CastTuningEngine.java b/app/src/main/java/com/foxx/androidcast/CastTuningEngine.java index 74c482a..9740f94 100644 --- a/app/src/main/java/com/foxx/androidcast/CastTuningEngine.java +++ b/app/src/main/java/com/foxx/androidcast/CastTuningEngine.java @@ -54,6 +54,9 @@ public final class CastTuningEngine { case HD_720P: capLong = 720; break; + case SD_480P: + capLong = 480; + break; case FIXED_1080P: boxW = 1920; boxH = 1080; diff --git a/app/src/main/java/com/foxx/androidcast/DeveloperSettingsActivity.java b/app/src/main/java/com/foxx/androidcast/DeveloperSettingsActivity.java index cabcd2b..5e56a22 100644 --- a/app/src/main/java/com/foxx/androidcast/DeveloperSettingsActivity.java +++ b/app/src/main/java/com/foxx/androidcast/DeveloperSettingsActivity.java @@ -34,6 +34,7 @@ import com.foxx.androidcast.ota.OtaUpdateCoordinator; import com.foxx.androidcast.receiver.av.ReceiverAudioPreset; import com.foxx.androidcast.receiver.av.ReceiverAvRuntime; import com.foxx.androidcast.receiver.av.ReceiverVideoPreset; +import com.foxx.androidcast.sender.SenderResolutionUiMode; import com.foxx.androidcast.stats.ui.SessionStatsAnalyzerActivity; import com.google.android.material.textfield.TextInputEditText; @@ -88,6 +89,7 @@ public class DeveloperSettingsActivity extends AppCompatActivity { }); bindAvPresets(); + bindSenderResolutionUiModeSection(); bindWiredDisplaySection(); bindCommercialSection(); } @@ -111,10 +113,37 @@ public class DeveloperSettingsActivity extends AppCompatActivity { findViewById(R.id.edit_ota_manifest_url), findViewById(R.id.check_ota_on_launch)); bindAvPresets(); + bindSenderResolutionUiModeSection(); bindWiredDisplaySection(); bindCommercialSection(); } + private void bindSenderResolutionUiModeSection() { + Spinner spinner = findViewById(R.id.spinner_dev_sender_resolution_ui_mode); + if (spinner == null) { + return; + } + final SenderResolutionUiMode[] modes = SenderResolutionUiMode.values(); + String[] labels = { + getString(R.string.dev_sender_resolution_ui_separated), + getString(R.string.dev_sender_resolution_ui_legacy), + getString(R.string.dev_sender_resolution_ui_combined), + }; + ArrayAdapter adapter = new ArrayAdapter<>(this, + android.R.layout.simple_spinner_item, labels); + adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + spinner.setAdapter(adapter); + spinner.setOnItemSelectedListener(null); + SenderResolutionUiMode current = AppPreferences.getDevSenderResolutionUiMode(this); + spinner.setSelection(current.ordinal(), false); + spinner.setOnItemSelectedListener(simpleSelection(() -> { + int pos = spinner.getSelectedItemPosition(); + if (pos >= 0 && pos < modes.length) { + AppPreferences.setDevSenderResolutionUiMode(this, modes[pos]); + } + })); + } + private void bindWiredDisplaySection() { TextView status = findViewById(R.id.text_wired_display_status); if (status != null) { diff --git a/app/src/main/java/com/foxx/androidcast/diagnostics/CastDiagnosticsLabels.java b/app/src/main/java/com/foxx/androidcast/diagnostics/CastDiagnosticsLabels.java index 7b79c22..f3f740f 100644 --- a/app/src/main/java/com/foxx/androidcast/diagnostics/CastDiagnosticsLabels.java +++ b/app/src/main/java/com/foxx/androidcast/diagnostics/CastDiagnosticsLabels.java @@ -93,6 +93,8 @@ public final class CastDiagnosticsLabels { return "50% display scale"; case HD_720P: return "720p long-edge cap"; + case SD_480P: + return "480p long-edge cap"; case FIXED_1080P: return "Fixed 1080p box"; case FIXED_720P: diff --git a/app/src/main/java/com/foxx/androidcast/sender/SenderResolutionUi.java b/app/src/main/java/com/foxx/androidcast/sender/SenderResolutionUi.java new file mode 100644 index 0000000..19ad957 --- /dev/null +++ b/app/src/main/java/com/foxx/androidcast/sender/SenderResolutionUi.java @@ -0,0 +1,107 @@ +package com.foxx.androidcast.sender; + +import android.content.Context; + +import androidx.appcompat.app.AppCompatActivity; + +import android.widget.Spinner; + +import com.foxx.androidcast.AppPreferences; +import com.foxx.androidcast.CastSettings; +import com.foxx.androidcast.CastSettingsBinder; +import com.foxx.androidcast.R; + +/** Binds {@link R.id#spinner_sender_resolution} per {@link SenderResolutionUiMode}. */ +public final class SenderResolutionUi { + private SenderResolutionUi() {} + + public static SenderResolutionUiMode mode(Context context) { + return AppPreferences.getDevSenderResolutionUiMode(context); + } + + public static void bindSenderResolution(AppCompatActivity activity, CastSettings settings) { + Spinner spinner = activity.findViewById(R.id.spinner_sender_resolution); + if (spinner == null) { + return; + } + switch (mode(activity)) { + case LEGACY: + bindLegacy(activity, settings, spinner); + break; + case COMBINED: + bindCombined(activity, settings, spinner); + break; + case SEPARATED: + default: + bindSeparated(activity, settings, spinner); + break; + } + } + + public static void readSenderResolution(AppCompatActivity activity, CastSettings settings) { + Spinner spinner = activity.findViewById(R.id.spinner_sender_resolution); + if (spinner != null) { + CastSettingsBinder.readEnumSpinner(spinner, settings::setResolution); + } + } + + /** Original / 720p / 480p / Auto. */ + private static void bindSeparated(AppCompatActivity activity, CastSettings settings, Spinner spinner) { + CastSettings.Resolution[] modes = { + CastSettings.Resolution.FULL, + CastSettings.Resolution.HD_720P, + CastSettings.Resolution.SD_480P, + CastSettings.Resolution.ADAPTIVE, + }; + String[] labels = { + activity.getString(R.string.resolution_preset_original), + activity.getString(R.string.resolution_preset_720p), + activity.getString(R.string.resolution_preset_480p), + activity.getString(R.string.resolution_preset_auto), + }; + CastSettingsBinder.bindEnumSpinner(spinner, modes, labels, settings.getResolution(), + settings::setResolution); + } + + /** Fixed 480p + fixed 720p + native original + bandwidth adaptive. */ + private static void bindCombined(AppCompatActivity activity, CastSettings settings, Spinner spinner) { + CastSettings.Resolution[] modes = { + CastSettings.Resolution.SD_480P, + CastSettings.Resolution.HD_720P, + CastSettings.Resolution.FULL, + CastSettings.Resolution.ADAPTIVE, + }; + String[] labels = { + activity.getString(R.string.resolution_preset_480p), + activity.getString(R.string.resolution_preset_720p), + activity.getString(R.string.resolution_combined_original), + activity.getString(R.string.resolution_combined_adaptive), + }; + CastSettingsBinder.bindEnumSpinner(spinner, modes, labels, settings.getResolution(), + settings::setResolution); + } + + /** Pre-refactor sender resolution list (subset previously in CastSettingsBinder). */ + private static void bindLegacy(AppCompatActivity activity, CastSettings settings, Spinner spinner) { + CastSettings.Resolution[] modes = { + CastSettings.Resolution.ADAPTIVE, + CastSettings.Resolution.FIXED_1080P, + CastSettings.Resolution.FIXED_720P, + CastSettings.Resolution.FULL, + CastSettings.Resolution.THREE_QUARTERS, + CastSettings.Resolution.HALF, + CastSettings.Resolution.HD_720P, + }; + String[] labels = { + activity.getString(R.string.resolution_adaptive), + activity.getString(R.string.resolution_fixed_1080p), + activity.getString(R.string.resolution_fixed_720p), + activity.getString(R.string.resolution_full), + activity.getString(R.string.resolution_75), + activity.getString(R.string.resolution_half), + activity.getString(R.string.resolution_720p), + }; + CastSettingsBinder.bindEnumSpinner(spinner, modes, labels, settings.getResolution(), + settings::setResolution); + } +} diff --git a/app/src/main/java/com/foxx/androidcast/sender/SenderResolutionUiMode.java b/app/src/main/java/com/foxx/androidcast/sender/SenderResolutionUiMode.java new file mode 100644 index 0000000..3999a0e --- /dev/null +++ b/app/src/main/java/com/foxx/androidcast/sender/SenderResolutionUiMode.java @@ -0,0 +1,15 @@ +package com.foxx.androidcast.sender; + +/** + * Developer-only: how the sender resolution spinner is presented. + *
    + *
  • {@link #SEPARATED} — Original / 720p / 480p / Auto (default)
  • + *
  • {@link #LEGACY} — full pre-refactor preset list
  • + *
  • {@link #COMBINED} — fixed 480p + fixed 720p + full original + BW adaptive
  • + *
+ */ +public enum SenderResolutionUiMode { + SEPARATED, + LEGACY, + COMBINED +} diff --git a/app/src/main/res/layout/activity_developer_settings.xml b/app/src/main/res/layout/activity_developer_settings.xml index 77dbf2b..425605f 100644 --- a/app/src/main/res/layout/activity_developer_settings.xml +++ b/app/src/main/res/layout/activity_developer_settings.xml @@ -45,6 +45,34 @@ android:layout_marginTop="12dp" android:text="@string/dev_receiver_adaptive_display" /> + + + + + + + + 1080p (1920×1080)
720p (1280×720) Адаптивный (предсказание, в разработке) + Оригинал + 720p + 480p + Авто + Оригинал (нативное) + Адаптивный (оценка канала) Видео кодек Тонкие быстрые настройки Bitrate @@ -188,6 +194,12 @@ Лицензии Не могу найти факл лицензий Для разработчиков + Разрешение отправителя (тест) + Режим списка разрешений + Раздельный (Оригинал / 720p / 480p / Авто) + Старый (полный список) + Комбинированный (480p + 720p + оригинал + адаптив) + Меняет список разрешений в настройках трансляции. По умолчанию: Раздельный. Откройте настройки cast заново. USB-C / HDMI (план D) Монетизация (выкл. по умолчанию) USB-тетер (эксперимент) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 769389f..8fb8613 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -46,6 +46,12 @@ Fixed 1080p (fit in 1920×1080) Fixed 720p (fit in 1280×720) Adaptive (BW estimator, preview) + Original + 720p + 480p + Auto + Original (native) + Adaptive (BW estimator) Video codec Cast adjustment preset Bitrate @@ -199,6 +205,12 @@ Licenses Could not load license text. Developer settings + Sender resolution UI (test) + Resolution preset mode + Separated (Original / 720p / 480p / Auto) + Legacy (full preset list) + Combined (480p + 720p + original + adaptive) + Changes the sender resolution spinner in cast settings. Default: Separated. Re-open cast settings to refresh labels. USB-C / HDMI (roadmap D) Show sender status when external display is plugged in Wired HDMI uses the OS display stack, not the cast protocol. If no second screen appears in system Display settings, adapters cannot be fixed in-app. See docs/USB_HDMI_CAST.md. diff --git a/app/src/test/java/com/foxx/androidcast/CastResolutionTest.java b/app/src/test/java/com/foxx/androidcast/CastResolutionTest.java index 2888ed1..251d701 100644 --- a/app/src/test/java/com/foxx/androidcast/CastResolutionTest.java +++ b/app/src/test/java/com/foxx/androidcast/CastResolutionTest.java @@ -11,6 +11,8 @@ package com.foxx.androidcast; * - Cursor Agent (project assistant) * Digest: SHA256 6839d31665eec94c6c24a1a54c86dfaaef483d19196fe6b6a754eb7156c09b26 **********************************************************************/ +import android.util.DisplayMetrics; + import com.foxx.androidcast.sender.calibration.CalibrationSourceDimensions; import org.junit.Test; @@ -27,4 +29,18 @@ public class CastResolutionTest { assertEquals(400, size.height); assertTrue(size.width > size.height); } + + @Test + public void sd480pCapsLongEdge() { + CastSettings settings = new CastSettings(); + settings.setResolution(CastSettings.Resolution.SD_480P); + DisplayMetrics metrics = new DisplayMetrics(); + metrics.widthPixels = 2000; + metrics.heightPixels = 1200; + metrics.densityDpi = 320; + CastTuningEngine.CaptureLimits limits = CastTuningEngine.resolveCaptureLimits(settings, null); + assertEquals(480, limits.maxHeight); + CastResolution.Size size = CastResolution.compute(metrics, settings, null); + assertEquals(480, Math.max(size.width, size.height)); + } } diff --git a/docs/GIT_FLOW.md b/docs/GIT_FLOW.md new file mode 100644 index 0000000..e0a8476 --- /dev/null +++ b/docs/GIT_FLOW.md @@ -0,0 +1,384 @@ +# Android Cast — Git flow (green `master`) + +**Version:** 1.0 · **Last updated:** 2026-05-21 +**PDF:** regenerate with `python3 docs/_pdf_build/build_git_flow_pdf.py` → `docs/GIT_FLOW.pdf` + +This document defines how we develop, integrate, release, and hotfix. **Cursor agents and humans follow the same rules.** + +--- + +## 1. Goals + +| Goal | How | +|------|-----| +| **Always shippable `master`** | Only merges that passed CI/tests; tagged releases point here | +| **Safe integration** | Day-to-day work lands on `next` first | +| **Simple mental model** | Two long-lived branches + short-lived topic branches | +| **Recoverable hotfixes** | Production fixes branch from what users actually run | + +--- + +## 2. Branches + +| Branch | Role | Direct commits? | +|--------|------|-----------------| +| **`master`** | Production line; **green** (build + tests pass); release tags (`v0.1.2`) | **No** — merge only | +| **`next`** | Integration / release candidate; absorbs features until a release is approved | **No** — merge only | +| **`feature/*`**, **`fix/*`**, **`topic/*`** | Short-lived work; fork **`next`** | Yes (normal dev) | +| **`hotfix/*`** | Urgent fix for **released** code | Yes; merge target **`master`** first | + +**Naming:** `feature/cast-resolution-presets`, `fix/crash-upload-500`, `hotfix/v0.1.1-pin-crash`. + +If `next` does not exist yet on the remote: + +```bash +git checkout master +git pull +git checkout -b next +git push -u origin next +``` + +--- + +## 3. Branch diagram (steady state) + +```mermaid +flowchart LR + subgraph long["Long-lived"] + M[master\nshippable + tagged] + N[next\nintegration] + end + F[feature/*\nfix/*] + H[hotfix/*] + + F -->|PR / merge after CI| N + N -->|release merge after CI| M + H -->|merge after CI| M + M -->|sync after release or hotfix| N +``` + +--- + +## 4. Daily development + +1. **Start from `next`:** `git fetch && git checkout next && git pull` +2. **Create topic branch:** `git checkout -b feature/my-change` +3. **Commit** in small logical chunks on the topic branch. +4. **Before merge:** run project checks (Android: `./gradlew :app:testDebugUnitTest` or CI equivalent; backend: relevant tests/lint). +5. **Merge to `next`:** prefer merge commit or squash per team habit; **do not** merge unfinished work. +6. **Delete** topic branch after merge (local + remote). + +```mermaid +sequenceDiagram + participant Dev as Developer / agent + participant F as feature/* + participant N as next + participant CI as CI / local tests + + Dev->>F: branch from next + Dev->>F: commits + Dev->>CI: test + CI-->>Dev: green + Dev->>N: merge feature → next + Dev->>F: delete branch +``` + +--- + +## 5. Release: `next` → `master` + +**When:** `next` is feature-complete for the version, soak/QA agreed, CI green. + +1. Ensure **`next`** is up to date and **all tests pass**. +2. **Merge `next` → `master`** (merge commit recommended for traceability). +3. On **`master`:** final smoke / CI. +4. **Tag** on `master`: `git tag -a v0.1.2 -m "Release v0.1.2"` then `git push origin master --tags`. +5. **Sync `next` with `master`** so both lines share the release commit and any last-minute release fixes: + + ```bash + git checkout next + git merge master # fast-forward or merge commit + git push origin next + ``` + +6. Continue new work: branch **`feature/*` from `next`** again. + +```mermaid +sequenceDiagram + participant N as next + participant M as master + participant T as tag v0.1.x + + Note over N: CI green, QA ok + N->>M: merge next → master + M->>M: CI / smoke + M->>T: annotated tag + M->>N: merge master → next (sync) +``` + +**Versioning:** tags on `master` only (`vMAJOR.MINOR.PATCH`). Bump per [SemVer](https://semver.org/) conventions you adopt for the app. + +--- + +## 6. Hotfixes — chosen strategy + +### Default: **hotfix from `master` (option 1)** ✓ + +Use when the bug affects **what is already released** (code on `master` / latest tag). + +1. `git checkout master && git pull` +2. `git checkout -b hotfix/v0.1.2-crash-on-stop` +3. Fix + tests +4. Merge **`hotfix/*` → `master`**, CI green +5. **Tag** patch on `master`: e.g. `v0.1.3` +6. **`git checkout next && git merge master`** — bring hotfix into integration (resolve conflicts if `next` diverged) +7. Push `master`, `next`, tags; delete `hotfix/*` + +**Why not hotfix only on `next` (option 2)?** +`next` often contains unreleased features. Fixing there delays shipping the patch and risks dragging unrelated commits into production when you later merge `next` → `master`. + +### Exception: fix only on `next` (option 2) + +Use when the bug **does not exist on `master`** (introduced on `next` only). + +1. `git checkout -b fix/...` from **`next`** +2. Merge to **`next`** only +3. No tag until the normal **release** merge `next` → `master` + +```mermaid +flowchart TD + Q{BUG IN RELEASED\nmaster / tag?} + Q -->|Yes| H[hotfix/* from master] + H --> M[merge → master] + M --> T[tag patch on master] + T --> S[merge master → next] + Q -->|No, next only| F[fix/* from next] + F --> N[merge → next] +``` + +--- + +## 7. Protection rules (CI + policy) + +| Rule | `master` | `next` | topic branches | +|------|----------|--------|----------------| +| Required CI (build + tests) before merge | ✓ | ✓ | ✓ (before PR/merge) | +| No direct pushes of WIP | ✓ | ✓ | — | +| Only maintainers merge to `master` | ✓ | optional | — | +| Tag only on `master` | ✓ | — | — | + +See **[§7.1 How to protect branches](#71-how-to-protect-branches-not-local-hooks-alone)** below. + +### 7.1 How to protect branches (not local hooks alone) + +**Short answer:** use **server-side** rules on `f0xx.org` (or whatever hosts `origin`). **Local git hooks** on your laptop are optional helpers only — they do not stop you or someone else from pushing bad history from another machine. + +| Layer | Where it runs | Stops bad pushes? | Good for | +|-------|----------------|-------------------|----------| +| **Hosting UI / branch protection** | Git server (GitHub, GitLab, Gitea, …) | **Yes** | Most teams; use this if available | +| **Server git hooks** (`pre-receive` / `update`) | Bare repo on server | **Yes** | Self-hosted `git://` / SSH without a web UI | +| **Local hooks** (`.git/hooks/pre-push`) | Your PC only | **No** (easy to skip) | Personal reminders, format/tests before push | +| **CI** (build on push/PR) | CI runner | Indirect | Prove tests passed; pair with “required check” on server | + +#### What to enable on `master` and `next` + +1. **No force-push** (no `git push --force` rewriting history). +2. **No direct push** (optional but strong): changes only via merge from `feature/*` or from PR/MR — you merge locally or on the web, but the server rejects `git push origin master` with a normal commit on top without review (exact option name varies). +3. **Require CI green** before merge (if you have Actions/GitLab CI/Gitea Actions). +4. **Restrict who can push** to you (and CI deploy key if needed). + +`feature/*` branches stay **unprotected** — push freely. + +#### If your host has a web UI (Gitea / GitLab / GitHub) + +Look for **Branch protection** / **Protected branches**: + +- Add rules for `master` and `next`. +- Enable: prevent force-push, require pull request (optional), require status checks. + +No git internals required — the server rejects illegal pushes. + +#### If you only have bare git on a server (`git://` / SSH) + +Ask whoever administers `git://f0xx.org/android_cast` to install **server-side hooks** in the **bare repository** (not in your clone): + +- `hooks/pre-receive` or `hooks/update` — script receives branch name + old/new SHA; **exit 1** to reject (e.g. block direct push to `refs/heads/master` unless user is deploy; block all force-push to `master`/`next`). + +Example policy in words: “reject push if ref is `master` or `next` and user is not in allowlist” or “reject non-fast-forward updates to `master`/`next`”. + +Local clone hooks live in `.git/hooks/` and are **not copied** when others clone — so they are **not** team protection. + +#### Local hooks (optional, for you only) + +Useful on your machine, not security: + +```bash +# .git/hooks/pre-push (chmod +x) — example: warn before pushing to master +protected_regex='^(refs/heads/)?(master|next)$' +while read local_ref local_sha remote_ref remote_sha; do + if echo "$remote_ref" | grep -qE "$protected_regex"; then + echo "Blocked: push to master/next — use feature branch + merge (see docs/GIT_FLOW.md)" + exit 1 + fi +done +``` + +Skip with `git push --no-verify` — another reason server rules matter. + +#### CI without branch UI + +Run tests on every push; you still **choose** not to merge until green. Branch protection + “required check” automates that on modern hosts. + +--- + +## 8. Sync cheat sheet + +| Event | Action | +|-------|--------| +| After **release** (`next` → `master` + tag) | `git checkout next && git merge master && git push` | +| After **hotfix** to `master` + tag | Same: **merge `master` → `next`** | +| Feature finished | merge **topic → `next`** only | +| Started wrong base | rebase topic onto latest `next` (coordinate if already shared) | + +--- + +## 9. Agent / Cursor checklist + +Agents working in this repo **must**: + +1. **Never** commit or push directly to `master` or `next` unless the user explicitly asks for that merge/release step. +2. **Branch from `next`** for features and non-production fixes (`feature/*`, `fix/*`). +3. **Run tests** (or state clearly if not run) before recommending merge to `next`. +4. **Releases:** only describe merging `next` → `master` and tagging after user confirms QA. +5. **Hotfixes on released code:** branch from `master`, merge back to `master`, tag, then **merge `master` into `next`**. +6. **Set active branch** metadata when using a named topic branch (project convention). +7. **Do not** force-push `master` / `next`. + +--- + +## 10. Comparison to classic Git Flow + +| Git Flow | This repo | +|----------|-----------| +| `main` | `master` (green, tagged) | +| `develop` | `next` | +| `feature/*` | same, base = `next` | +| `release/*` | optional short branch; default = test on `next` then merge to `master` | +| `hotfix/*` | from **`master`**, merge to **`master`**, sync to **`next`** | + +We intentionally avoid a permanently divergent `develop` without a green production branch: **`master` is always releasable.** + +--- + +## 11. First-time setup (maintainer) + +```bash +# Ensure next exists and tracks origin +git checkout master && git pull +git checkout -b next 2>/dev/null || git checkout next +git push -u origin next + +# Optional: protect branches on hosting (GitHub example) +# gh api repos/{owner}/{repo}/branches/master/protection ... +``` + +--- + +## 12. Private primary + GitHub publish (dual remote) + +**Canonical repo:** your server — today `origin` → `git://f0xx.org/android_cast`. +**Daily work:** always `git push` / `git pull` against **`origin`** first. +**GitHub:** secondary remote for visibility, issues, and (optional) GitHub Actions — not the source of truth unless you decide otherwise. + +### 12.1 Add GitHub without replacing origin + +```bash +# Create empty repo on GitHub (no README if you already have history) +git remote add github git@github.com:YOUR_USER/android-cast.git +# origin stays: git://f0xx.org/android_cast +git remote -v +``` + +Keep **`origin`** = private server. Name the public remote **`github`** (or `publish`) so commands stay obvious. + +### 12.2 What to push where + +| Ref | Private `origin` | GitHub `github` | +|-----|------------------|-----------------| +| `feature/*`, WIP | ✓ always | optional (omit for cleaner public) | +| `next` | ✓ always | your choice: public integration or keep private | +| `master` + tags | ✓ always | ✓ publish releases you want visible | +| Secrets, `local.properties`, logs | never in either | never | + +**Typical OSS-style:** push everything to **`origin`**; push only **`master`** and **tags** to **`github`** until you are ready to open `next`. + +```bash +# After merge to master on private server +git push origin master --tags +git push github master --tags +``` + +Push `next` to GitHub only when you want public integration: + +```bash +git push origin next +git push github next +``` + +### 12.3 Daily habit + +```bash +git fetch origin +git checkout next && git pull origin next +# ... work on feature/foo ... +git push -u origin feature/foo +# merge to next on origin (PR or local merge + push) +git push origin next + +# When ready to publish a release line to GitHub +git push github master --tags +``` + +Set upstream on topic branches to **origin**, not github: + +```bash +git push -u origin feature/my-change +``` + +### 12.4 Where branch protection lives + +| Server | Protect | +|--------|---------| +| **f0xx.org (`origin`)** | `master`, `next` — server hooks or admin UI (primary enforcement) | +| **GitHub (`github`)** | `master` (and `next` if public) — Settings → Branch protection | + +GitHub rules only affect pushes **to GitHub**. They do not protect your private server unless you also configure **`origin`**. + +### 12.5 One-way mirror (optional automation) + +On the private server (cron or post-receive hook), after a successful push to `origin`: + +```bash +git push --prune github +refs/heads/master:refs/heads/master +refs/tags/*:refs/tags/* +``` + +Or use GitHub’s “mirror repository” importers only for initial import; ongoing sync is usually `git push github …` from CI or hook. + +Avoid `git push github --mirror` unless GitHub is a full duplicate of **private** history — it copies all branches and deletes remote branches you deleted locally. + +### 12.6 Suggested order of operations (your situation) + +1. On **f0xx.org:** create **`next`** from `master`, push `origin next`. +2. On **f0xx.org:** enable server protection for `master` / `next` (admin). +3. Create **GitHub** repo; `git remote add github …`. +4. First publish: `git push github master` and tags you want public. +5. Enable **GitHub branch protection** on `master` (block force-push). +6. Continue feature flow on **`origin`** only; publish to GitHub when you merge/tag on `master`. + +--- + +## Related + +- [ROADMAP.md](ROADMAP.md) — product tracks +- [.cursor/rules/git-flow.mdc](../.cursor/rules/git-flow.mdc) — agent enforcement +- `docs/_pdf_build/build_git_flow_pdf.py` — PDF generator diff --git a/docs/GIT_FLOW.pdf b/docs/GIT_FLOW.pdf new file mode 100644 index 0000000..80f2389 --- /dev/null +++ b/docs/GIT_FLOW.pdf @@ -0,0 +1,200 @@ +%PDF-1.4 +% ReportLab Generated PDF document (opensource) +1 0 obj +<< +/F1 2 0 R /F2 3 0 R /F3 4 0 R +>> +endobj +2 0 obj +<< +/BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font +>> +endobj +3 0 obj +<< +/BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding /Name /F2 /Subtype /Type1 /Type /Font +>> +endobj +4 0 obj +<< +/BaseFont /Symbol /Name /F3 /Subtype /Type1 /Type /Font +>> +endobj +5 0 obj +<< +/BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter [ /ASCII85Decode /FlateDecode ] /Height 620 /Length 35576 /Subtype /Image + /Type /XObject /Width 635 +>> +stream +Gb"-6NF*?3^A%XlSa623PLH%Y*(/:FQF(&.J.I12i=s]ie-[UhM@YCchBId4pcuJ(/?`kn0o/^m3%5B$ro0!rVHPN&Ke4TfQL+$Bc?9_9]?Pau#0*$c#uAZrbies$CmSZZf6h4_oB)LPB#a9Ezzzzzzz!!!"LAE<:@pKap?"Han+rp.>5Pkn_e!!":#huQB;UJ8c+"!oX1\A-IXE8/2CH!$Ed7>XYSW\,ZM3!T>5#"i:ECa9i1hOX^np!'jRM\;4+8DufsE!l@C%$A8ceO;/7&iM^!!$.&i?D/'_?Bq\$4%H1.M+345ZU.[LfAqE!R.+C%=75e$do=TRJ*;?ao@!6>KQ(Qg0Y/c\.;5e)VLJT(ViZ9f2_rqQ5kIsd8%=+:,d_?Bpi3$O2u09pt]^Q3hdjde&e,ROE=AtC@Gf)WYk!6>MHK^2k3qg:r?jNck*+^>!ILas#hie)1N!$M8+\;1[4"TX)J"5tFf#T!I@iX^^#p`NfA!/NiN0&hM&!<=8A5e)U\_?Bpip]KJ!4pVr)!9+NBMteE"!!%g>&2)spDufq]r]muL&&JJMJG96*,!H8K!!)!hKT#UJ>Q=b[57fI,K5^hk+T=X9L_%?+!.ahHi?CGk(B=Hp%tol9+C"mHLd)G'ie)1N!$M8+\;1[4"TX)JP@DD"nG.p7nTL&Ck?CWUYag:+4t'>;mkd-)H8^!@_3p9A5"chJZJR2Y52QEp$NL02'F6Wm_S%kd2sO,/L\232KF7b[IL(-LnPJsCM6+@/iGN*I>Q=ap!TYK\-Q[cbW?F`p`A5AJe4r06nF&U2q=SRs"5=]Gfg6OXJQ31=QO+a`nAK5nC*\b,^;&E=.V,s$-aoDZ/\8Vd#gj=F)m5h(q3`H(.6Z4XS"G"Jb0Mc=-eIpg8Ln\i=a`J$Pe6VR#L/Nc;Q8GIfOe7!M,#NUC5LdMi;s"pQ:<4Ap)&+F,4djVu0!.6[GK(_PJp/m#-FeQd=j_^,]Q=-p:LPA)/s+nXFZd[r(i5;`;L'4?Sbfo.A@8bdZaQU-2M@@CpA,Um$TM_?Bpi/WEGWgH=G-8FFF(I/`4pO.YX^nFkpslTCHK:U8G@9UW5IMU,Z"^onnrc\#t=frTItJu.$;N@A,$'+b%fU?.*P/P^BLi<_*$knDe020RWqe2O!NBc,<8TQ*08jr#sBI%I#:h#*GHMq#CJBci`WifGnq!,QL_,2C&)$V!I1',LSDLYB(NLd0,,$[3e&=IN[p;I:N-,BmZXpeupYB)s1Lnh6V//NnA7:ZIpM&/Qu!fa82elmPlKT&e>VDW%b*P.XI3?/1[HikZ6TqM36H`]79(!([-$,$`iI/>=bd[0uG:::U)eC1Q:(E5Fam9`)dH;n(#c5W=lU[+?2Z7qOa8db/efnJ5>Q=ap!G!BZg;Bb1o0)?r?d]uJ@i"Ij#)#WR@gd,XL=DbD1R9o`)7=DdR'pBET"!I0BP&Vs0ngS9[I'2]c024#gbeOInY<,$f:p?p(c[R]&)dQi5ft2_iRU#'?SuUK?of5'/9d9,cM;HO7(>GKrY8'qK@sL?\ot*"f%DRf>atQ.E^PLQA%!s%U,LJ@c!l7[D\E0^6MR<&VY#pq"8I"m95q&en_bf%R1g$H0->(QQK*oH`Zp>AtO!*U2U3%TrJ3L?.Pt5KSq/!k-A6]c!Je60@]1Vf,RM)XnAuQ1frbe8`jVH@Bq"\!!(["Unhrs7Ns]/\J).[*e3,T42YZ-Od5=ZR!Q8iGZjs+ZG+Bq4LE53+hf>tLl8];q$fdcAleHbbhWm!F!N1]2'piffl$(Jadj?ui\0pY,8!!'7"8MT2D2:j/j$"J:%1LK]F2E_U(!!'qV#Zi:h*l#]sJ&7^uo3,Yq9cNK8lA8(!9'ec+C(!R5e)U\_Hd2Z:!#Z1+A%*&&Kc\R38G"6"hW5n`-#L`aK&&etZg,RG#7,#oaj,Vajh6';6,,#ST]71p7>(F0:u/g=:<>U2%TE']Wei?D/'_F5(N#T"`m&2#/,+PbL[e29KjVO:pUf)!3/f>'3.*P]c9npZA%>AMll,RXEt[GQ,IEb?L^Q*GS?Ga3,\c-<"qqSqt#nSbB\L,i;Y]JT*oJk/WO)5c9#D-gDuKOdN,'P@OVd%=;AXN,#$Q\Oi3.qZM!ecJ&'aT#c_PP\fQnrQ<[G'EFZD\l6E.V;9%;:YPAgp:>l2C>A(GkcuSZ1NVKNodU\DX.(Ha-Z362k@\M5%YL@9<(7e+A%*&&ZGijY#W!7;@RP$q^2J6OinhT[bMfuP)Pg?=8=j^Ns:EKG\I+-e>3'lLQj<-%V/GMhKdKl4ju-I6.EPdBfOEgN'kW@e@G$N$k!$0(M@@'Y'6Mcd`,K:h^/mefQ'6eLfAqEf.(%a*3PdFe@lYWY0.94b,)f-Hcq2,q*Vmh>2jb6Y$8Ek#>a5(7$4ZtdBZ!`Ro]!]GB;W-I[`U4@*8T0,#ST]h5G;'$ZcMm:Z"'/iI4ZTbcEC5WE)mT2K)!n[YM4'D7&b1pg&)s2g[b,aAD9s>?>t?;"=b+"\AcKMb"QgG>j/fHarlN\@qA$P@tJ.\UUA;gr7'o[Rp_N'#h`\rPEA^=1[_.j2nEdD\*0jCdfIO7&iM^Rj-Y-3s/*\A)Y(_T/77l`ce,$:cAZrQ+U7$1jHY[m7X7t/Vhq;JZP9F1m4@$E4<.T!I7CW_Vo;]>NdX0h]]7*VHqc5?:db\+jnOdptaH"8gCAX9"pQbJt$]>CZ].JcGfY3CrgD]k?ABX(`[WBKQF+XubDj/cdhSdaS0j8m+dU^Dd5,UO'T8.m%M7&iM^87DYZJg:B67AL9DM^0V\/k?Tt>XYSW\4C'1iIWXYU5kR=Rg4_W5X)BI*KPNVua/i*j4E#F/.XPM&a!AI9"E']Wei?D/gT#(qdLARC!JLmPhhg9^P9dPF2,aT\T4sW;.1eSZH>1aU4#RicheMZTT3\^N38?[R7/>AHqfoa7@,bT2EMkhmO?7@Qns4WS6l3)Bl-4H/[%i:PZ-U9I'Ol(IJs1]ptcOoj0)maF-^\GU5:C0m%a1RDp#Meu0jOlm'bZD-B:Z+c6\n_Ib_&5AB.*/[u#/Vd$YY!%PK+!%qHcL\I2U]7o7pK_TKR(YYiPhl>8A9&%\D^+r;l(H>/2;L^R+p(>oO2dbf%;f/J&%,ldi!JHA%'c@A1p2GNnj21UnKm-er*ghsnbTMe:]"Km?e`\>_Q@eb#hJ^/X0k9+q\I,WQI9R8K>"(LGmr2L#mFGm`LV(Lt1iI"U'T3tDSds(jKP;[67amI,9tTjRojah)nZ:bma3?N*[^Tb5Jj0Q7(S,>ZDCg+aG5f#ISbIq,,BQ&KDa%!\=#u4^F>VR;p:o]"/842)5Z[-gHpZUIhf`4.rL\%gcsh$V[:N3B+5:_K;JUaE1i:959)gAc&5rP@FntfXj.-2sfs,d508'^2)[I7B.P_]Ufla;H`R=GX_/G&j%c25eg*^C-DHY,b7fu.`4LC`(MS".BS^GlG@>eOAB?,2FGBBl#4(dc:&JrU9k'fh<^T7suD<^o&h/ZIs&,[I-.TJjG+LQc>&ZHsAiTA]o[8^?N0+H&5&[(Br95:4B7Wm+tH7C@F.kdutru?B!UgQF9bnW/R0j@>u&9&o:IGZRl&*C8,$jE_(BH_O[B@cTRi&,,:.:mQ7ORk5&JRp>1.hbq5eJD9Q#W+1=QN0!.@1O;[BSR`a7s\;4+HTl=)d_kk6@pV+\_UchuErg.r@+i:A5.i(?`d2$#hVXo0JiMrX&$b*]W5YKUb/!Ih]8rG]Nh+AA!]n&Q+&a,k\B@$jb&^D^n'/"U@5UJb+LfBM1E6GD'kA^BokA^5/6jr1E:WO"LY0n?M,Sf$#$oY)E4611)`r-nBXOR^1I&/osQFGk"g)ghi]t6i8!8(?pp]I0@r6GIpi#FQs)1g19bMC^F7ko[4Vs?lo?09N.+^C+<5e)VLOeH^r1>9"[psSB'&E,7O#1WP9F&f%1]ZG?qU,MbJ>\^r6a2_Ca)_2W>e']Vk(!eG\iJi?##1Z!@TB:F,Gsc#m;UmT\pp4<>he^0aN?@PKj(N"NVdqp+"eYI?D@+bDcVr99^U44suSo.E&ALIl,f=k^DB.n`tD`$ERhL(DX[m8RWBF#EM(_A;Dgqu*Y9qp&g1FIWlS>Q80S/pJg:B67AL9DM^0V\/k?Tt>XYSW\4C'1iIW[5.i]WiBk&R(C1g&#nS^5"N#k3;_en:8.m%M6jSGRiML-.>`^3r\;1\%(W&ng5e%q.J8c)D&2&X*P(@R*q9&8k)E_?EL4KSp+eE$=#$%"o"O":,eU!oZJU.2`C-,RG#7+p>c:E)SM'/k?Tt>XSjN$fRsn+C(!R5e)U]#T(?Pa[!?Y8Utal+V67@mN2f8H*Od`8Yu@LaKH^kO:4CaL_'jdVf0?HDekP1ddjF/S!Fu7b=G>+k>AG4^K^b(\B'Rn\?b,G^]*oMb`(%O!$EL/>XSjN.k;`I!"o]nM[4lQAHd_p5_=Q+&Kq^gXFP6j82(T-+p>cJ'bDtt#ptpjH[B3n?[.;ZC6g#S]/+h0)h%=/cVN3YM7TdJ\*rk_S\kh!hgDdKS9.ng`Wp'iiLOSY?dIl[4ufn=V9dT0MsNA1M9iX2iI[$ki<#*K;F\/,BDk4s=fmr+q>G@-gm@`Y!k]8;)X_<(gX!g$ef8[s)@oF6Qs]]FioXWkr%[P3Y`[miAtRn@s_TDHLd001u/BX1`pR#Th!LR)=jhC__CeI=6LDpjN4DHR$82cD9>Wke#D/DiNCJYIL)U;=Z7NOuc5I`FI53oG1$(?a(tq^*n:Sa>@CL/5_O90ji=8ZZMjfFn7-tqr0=*;9ITZSr@/%okmca;-SLW/lpWUE&Dq7qF[b6R6fa*f3n3e&l-\;*e4@?KRMDB"WD2!'Ed6b?NZ[cuq82)J;>ac#s4CN:gK\WZMpJ&2ML&:@-#-Y8cZdd01rWmT:KV'Eu'7k$JbsRPakg.o+<0rNU3`"*dWQ-;jDApuU%?2_0T7cd@FCA8:ANPBe)(m"1%4l-G*qB,)>"dSVK?4iuf4]7IlF9(F`k[&PQZ"a=!N/Y&*G3F&f!5e$e>QkU2dTA*.ThluHZ+k>[@ADpR._PM\&,-&(S]C8,2$!.:'NA_\ppf"\ABj[.lmbf\]4I%'B>j>H$P=n!De@a$q>2'Hm_eqdfL+O&P1I@t1cq-la[pSuY!5\o/$\SmQJk8Pmd]aI]]K/K797+0JG.o=Er$:"6A]uh#E+96AI`+E4Dmp8)bYG[dKf_`X0=79*Wu6?YPFEnJ#$QYNehA*&\tL>&@UL$T4bO4&!JChGJk6j=;YTuL.q=X>g3.]0l4ahJS^YoHXJls/f`P=Hnu#M5$9(B"iL't!b/PHX?47W&NS1a2Lt^(eYVtnB&sE-BX(V5Q*fiO1ddX6t!E9U_fN]P(!"quJ#hM9%fh\:Mc+QT4fPXaIZk$jXl]&7R)`[F.;7KTPKOiUJBlDbm_mYT`e%:!>\H[h&O4A^%bhnL37(@ef:t5T[/dWUSS8ckjS',hh2L@m!]hk?iHX[Z2$]M:7Vj#?LG/@cU\6uXnDuiK`.3mW';gtLPT!2CQO.H2A$-B+tq1c%O,EGf%b1=k%4u]/-<*0)&Zs$C>q1bAKLRfNa^c2iBF8hW'`Ehb[9jB'BPU_M(W]FNPVE!1A_PXP(R+EbXXIp$1;0b'^PAQHSdmG?Q>BFKSp+eE+K3+$UB;pE"O6)Y,m.m!D"mU/g:G8Pnai_!!rkH7>*q9Z3%lH+Mg=QL_'hn<^=.p,T$e'&H^q6$4%Gu"9[U,66KN9@5aSu>Q>BCKSp+eE+K3!\,[ck#T"'SiQ;K5(OuXPGi=*1s,TBhIn#ST[O)8]7R4H`,a\]BpY,-j0>E,bDs!o0pWEQq8dg:[5_;S3E"PJDKI\Vc/cZ1^_F:7-KI\Vc/cZ1^_F:7-KI\Vc/cZ1^_F:7-KI\Vc/cZ1^_F:7-KI\Vc/cZ1^_F:7-KI\X0%j.C6SX$bn!+Z4cMb"Qg='Etg"X(WH\;4+8E2<`T"X(WH\;4+8E2<`T"X(WH\;4+8E2<`T"X(WH\;4+8E2<`T"X(WH\;4+8E2<`T"X(WH\;4+8E2<`T"X(WH\;4+8E2<`T"X(WH\;4+8E2<`T"X(WH\;4+8E2@.7hRt^$1K%9TJ;f"t&ZGij8dfsT!$iBe(Qg0YY-^I(!$iBe(Qg0YY-^I(!$iBe(Qg0YY-^I(!$iBe(Qg0YY-^I(!$iBe(Qg0YY-^I(!$iBe(Qg0YY-^I(!$iBe(Qg0YY-^I(!$iBe(Qg0YY-^I(!$iBe(Qg0YY-^I(!$iBe(Qg0YY-]0.E+!9i7d;H'O:`$V,#oajBgE7GJ-5u5,#ST]PnjWAJ-5u5,#ST]PnjWAJ-5u5,#ST]PnjWAJ-5u5,#ST]PnjWAJ-5u5,#ST]PnjWAJ-85n4#qS8Eq4]'8:o=Fq^R7L+V67+$0JS?Y.3:^#U2\i/M>=@r@^FM5e$do!'gU9Dufq=J-5l2!WW3#$)"B$Cj$SLoDnplJG=^;/cYkOO8pD.!!!!A!C4-p!!#7cJ8bMh!.Y1Pi;ruZ!!rYB"TSN&&cdRm!!!!E!!jA@!!#Oi&2!q_!0@1'>Q=a(+9Ci`[h$=Z!!!#Y%=5Ma!!#7cJ8bMh!.Y1Pi;ruZ!!rYB"TSN&&cdRm!!!!E!!jA@!!#Oi&2!q_!0@1'>Q=a(+9>G@<6WY58mMT#!.\&2kF[8'L[7$Gn/rIKe5]%ueA$h?!0H3e4fqfZI.>/l*fihV.O=.pJ,>_b^Pi-mONKhu?3iIiKF7b[ETQ_r_`mRe)ipG-SV@65U`d<1/\O\!@1.UgNj&FS2@Qd';T#q7eNC27TWX(k:e-LYJ,58D$=!!'R76/g6ujKs8S,;%ua\4opcE=hR'>Q4$>eE.+)DAGU!6UQ[Ah%Xj`<=3s1Rs4Nj\,ZL?=/^)?dpBnYgb!gLNn<[k&n?j-KVA;?1&A5M[_7n_eTN[KTj0stF$2[(YJF12k\HL+.k)lS2.!bGIW4$,/[m]A>olA#4<<2*<9j-sZCk+CZ/n.".RQc@@5RUTNi%uTlsBcke@:&H_M96l)4HAql'[$KrHWouq]-GhH+%F\W^69i?]E*LHo`f_['dH#!Y=*o3XG>Y($\!n5KN,ZAl-=oh%"\c9*g*4Cn[Ws*H(X]\e3kc(0(B=Hpb%cUQZD=>8i,J=u*BfEC04Uq4d?-%sPGu!]&5?4496\ue:<)!B](`Y_QF:#P9f3^O_#>h;B:S"ABjaJ-9;uFF@B?d"#ig&,d:Kj8]nWPi4@1#N[17tEG3>S+\(&3PosF@PN>9sM1IO%MPfGl)=Pct\RV/l^R;,ph&pqbY]I5#5*%97O&uMYX8;f$;ZIG=:hDkfo>jCFJEhfJE>uOR0TT1(o?+4dRqRq!o9NhdtI6RDGf)ah3!'jdlNGtq?Znp7Y:G)&*C'ZoQ;pP9#/a4`t3H80V?4Bge*I+3sf]4NU:7:G-p[DZM3r])\3P)_`Z'F@Y0b=3Q*uBt3EXOJdiqmpCF6[K[h##t-BJ$^'l([eGX)oMu='iDRqsAqD,(>2J>du-H1tB/rBPW849t8S/YBNFF_;Bsf2IFMV!T=([5[7HOE4Z09$_fB(hOgj*Iqbi%$gbm8JO?pUH'n^pkG0EBQk&sj=4:NQiEr`f\03^8,Cs!P@9QBCU26"k^rZ_/DOp.f=N6^ORFCI2IFMV!T=([5[7HOE-k2[_$F$N010iFJ[%J(?8#7(?>H4nE7#.p*[*.+P:MG\[nA]8)7kSV?b^PQ]&j&a6#10"Ck3mn,sCWqN\Q<_g`"sIGg!Hb:--kk+c?UDV&WBA0XTHrEk1G7jY]&ened_:6%9A/&mjEj[ut>ab(qKbFQ#^D]\XC^#(IF5gO(#K#DV;Ku>e2K#)b@Z>TjCq@&/EVmGg!r/6PcqQiLbU_l(V#Zn$)u:s"V1)4U6/QVYARN)G\GH+f>n/$dFOnT@+,!!!R3W,QGmN&=a4)D]mm@WdXo9ML0od=g73kLHi6es6rLe_4TB3dSBMF)G;=L8o]O!3h_-!8LnRbN#d=&Jo?P(am.'PG[0im]a-Q?];mPgn\H6>A@?qXdXhkG3/SO(:TW=ngpVlSt7QP9J<.K*aKcB1+cC*h@g`cSB$[g/huEa6&/^#],KYJUhc,O;C^Js,-SA20H+@2FYr&HgUuB6_A1bdlhEL`>Q=b[/,YA[H7$>:Jf6u.4O.a(`)n7)86KT2":rR&dEl2FG?0rc]A?jK\=@)od8A=#AqN22pnWQ?N.7`.*&W\hH/]fXq7s/cYmiQ*gtN1$@((CT9u8QBp5OMoB)(d1KtCE#4ElOT=?hp!m,8,2C+T?3((u:6o9QlXE-G5k=I(,,Grg.Fkb-hX792S,`,Ar_#T!I@ielem$VCVd8%905i;s!E>_-iC?[hesKF?`?!'je?E4tJo#(UXn!$JF0\6]G"!/(^[!:f3^loB@^jR7TuH`='-)#C.seA$h?!!#oe?iTuS1G^gbJ+uBM-^T!p]=Y\O/d_RY!(]DER[Sn)DI-Y@eE$Z1!!&u)mGqklBCjq`]A5)^3<0$Z5g%O1geG7_k4''g(:5m)>ZS_r3U4^8]`KFF$BKpM:DP:!#VsY?oq*Z*-aaIu")Te;"D*eY_\QNtXh?RJ2#&6+?oF"9@C)1(T$G!([M0/gBmP\,_&t!9#+W%tk;j8.6%^,4e(0!._ufi?C#fKF7cN$kP$8o0BecJA_HH+u0[^$NN^+&2#0u5e$fE_uSa?1(T$WPCIuOi2?VD'I'$:rqS3S8c;;KRR"B=bQHhDjN%;pfT.8(Iep\qO[K-)PP,O5OOV$eW]!o_-0#T&VK+P`>L\?ZHp)a>HM7-9&>@fkW3.M-LqJ8c*g#JuH,KIa)g\FB[<9u7]!o_-0#WE'RIHCGLL-W8*$%s62#Zk&XE8q1V]=tXuSEXk3V9VHmq*u-X.W`4rV6TMdgF\[C7mRj.H"l:PbIS\c301H"[dDdALa&BiS3*/q5%Wb%om*'S)K.',]o!u1]_'%VpZ\/og4mZU.RM.e9gUq\2`asMCta?H:=\&hhs[msS0YGHiNR(CfrMKNipC9([T2mXZaBkn`WX/D=m#2D;2lFl:4dM_Y/!Jfkqb^??eA(_4QCWU&cP!gl7ac-f6:FHL&tcER+o]<89X2+KDc'ok3"tEf,p:Iscp`g%Ejo5CPJZO:SoQ58``,TAgb,VN%+Rl)Cl4RMn4+p7/4^mBdncgH6][\13f7/_5D*f\/+egTEOJDG20X=Tu[%*t[l:_@-*jPNi"g,9oqed1:_+aM5r8]Gp7*E;I[OXrlr>7=WTslcZ)PfM?9Ljp=8JHu?g3NQE()/eQs6M^W+lD>#FomNEV,n+q3PBncGHnhQ,cqdu+(1nYaRDe8XBprbOJ9?%Y"?TAC=22fY0KUtg8u-2@bu\q+g1!o_9O&8qDrE7^H,$b,n@k;JJ]\2#Ld7mbAV#>ILo)[V0:'*qZ?JT0WSKY+t"?FY>CLU)bGI,]R'P5_O7r:KEMa/M&NHpgKE4kp$LW`RoH'g=r_o;Rob6X[:O&HC&F/GEKWGN46n@fkW3.M-LqJ8j,,eI2-BGKS0CHA7Rm%G-%nkE`fQ'erV4k'MgC+@:=BZAJi0JDEpddEQCa."HV?YK2m.;OV.ec"2Yo$XEeqGWp3]:(gSRB'[Pb@`%;lHD];RrMWe`WP2>%gWu6Gp(n0`*9aH^(HNWT^fh+dJi_FT3YZ.,Grc`Au3B5CQ,4X%tkmc\-b1\_M?")jc-GUg2U>E5#U4iY25SC,`;MjWmU,;pk-f_rVDR9[5ki*;.QU?[Wc*Qqj)SSk)]@l7b!+d*V:R$]sN!_gcaP\`Qp@?I"^RNmQIZ@59G2@It$d`]j,-_E*90kkWVWkME$]cJ[213sL3\tH'O3>]6h:E:i@\EJ\kBc?9Z]qJda%+ap3!_J=JT)3h#JuHl>_VL4)DYU.S3[iVD$;_V/h]BVbIu8j7=BL@JGn>MF'Te`VRoUfW-"sLF5O[^=Is*iI*Z&AR_CGFgmmnnA=^<%:PdbFeGZo5n%61MiMtG(j06i-ptGZ+CXd7LQ7J1\j;ZLH%kKkI55jbQ*&/8E\+J@#VX#>80>&>gB>dgA5OWZ?W&3a#.On\,O1P+64VdKr]5;^ZWIFg!L!5N-%`1qh+C%=sJT,*3mmG6_NfbmXT[1,S)c_r"q7=rAUWL4K@@<9^l#OkC1@!T(T':;(s"aM6E_PG`fh(t6[B!PM=b#=sSLS')CL&e]B-*%CODRt,r'H[kf7tthWXkW.j='qa0:eD7a5S5s,R;1TA0)"8-A`FSi1OlL>tdtGpcWbAlHJ6YfnIW7SQT^(6E/fW&7X\2Kf^"DR@btC>^t[^[eashR^nUs%#\Pu#(0r5&%X%`1q\+C%=sJT,+^8E&!GANh7nO5HFpqG>8Mm"a)L1Xn\qlLNJ9oV4A$T=&=FgDFbZFU32u>U@TFZdsp\OH;_EWC9J!kGQ1YAq]R'_c$9ViW$<`L5dG!X0`FA`)+Ho%417@),d;-hu@Y$:Ju??+q)48Q<0rRnjcD>@bLRMLC%K8YA$P8jiEOa/))Qm>S>e2:C,/8Co`P\9^H4(!F7]P2#EJ!N0Yg;+4Qb-I;u7NIi?(X<\*H58C)MTZo&UW1e@(2pP:47BmR[6(`,d$?\_4EI%\IGC5fr#R#=BYkKe/rcD`^q3gHs18d"EqdN)q51imeo3S;o,G+?.fN1GlWtQaS)ciELs,t[`[$\`o`m*/Xh8OKVIq@baks)'f+eSCgRbs"QYKR'<7D`M>b>e2*8-TSsF^r_A0\m1#4W(/;[B`gehFKhHcWK+ggePOJh1Dp#YmD`&]nXUBe4X$F2b,C+ssj)HR>hJYRR_P)&fIAG,rD:`)\'^;^YgsMY^.2tKC&8iTg<.72'k45;%C%e(`*$7;[s4f[$,cmuGd1EE/mc+NkcK6R/j0&;MCa\mtd[nH_$Lab!*E:Eg^A[bDoo`luRUXHK+m,FNT2Jmi9?Dt*eY\MM;X0e#Km::UQQ'P9pUJn#4FMN<^GHmHAe%q_AibfW6mC$D_X*\L7:>#l[gcW@&Sak:/%#D9-AK<C&B7@PJ!A1,u)o\:@7=h(!$R@Kj!gfg(/)PR,?6C']n8mS)Ng01h@IcRY&;_K+C,'#$VcB\bOH+L#Dt,WURrE7TEWuV%o>tg]>KG//Y)5p4Kkicb_bU`Fs;8Kq.@]F4p=a9Y?8scYh'FH`MYUAW+&M2_Q;<@Xqq2.I6T;oE3pn16a]s-rp:1/iada`"BDi./1gX04qFIZlo5LM5O9t.TVQ`B6/HG7-0SippX_,AjV[=qT4;QLEn)`YhVHF)0BqXLKV,*R91G-)VT"8Yo>V!WE\C,TcoiC;Q3,3pF:.9biPh'8Ge5@/LfcJ`YH+C&%Q_MoYZ,@%f!%hW[qm7cWnB="DAmEc(_Sbf,+Jj)L*:$(0ob@)(o,7WCp]sP7;Rl[%:..4NTOu-JY,#-H))0Da>o^TabJO@duJls^S3jL@;&/@f+IbOSG>N%F])K[H"H=,F`nR_1\B9Ve==#_8bqIL>g2-A?#l!5H\'6N@KO\([hHZYgq("j'@lQS)UV"0U7";("P"i?O)+PcaS4MhQri>-q0gd]]r]1q8\#gq>9VbRDZUYhn4P"C"b[^-XmF=(5"b9.d#(26BSXlX6M[\HoV#>gEO_gXe\:Dh!GQ*ZdmiVfTc8B&]fbeo_1N(Q(>)D5:k=$\lQ_8-E?Jjh#'Y&HhS9iQ-TWkA\IocJd27FuFb]@X32PmC*;SJa2S7GJKN.+Fd@Y&Ak']ji8FkQbr9'Of%p#Sm"0J'Pohf6?!.>escDEcJ`?dN/V:ZmO^PgF7s.di5gf\_hD=dWKRl\@$&gB\;+^,:YLVDW=b__#@Kof9RYo6T_:T-MuS,I;ARWDK%.jY,D+5W>o7_\jQ?q/LU;`*Ra9npUQbU4Dj"@C\h_#)f5FdA^%$))$n@0VY40'g?$DKZS9kTE8sLZNFp$smbtUu3n%6\V(77d3h'>7Rm6,N3^1123t<&ZX]^/OQAR)*%N@$C2AA).jQNoF`JI8$&alKn:6j,SE\oqJ_CA$b9j2NjXeE)[K2*oL&WuH'Z7[>b6n7Zc^8#9T+Z2crl(l0c\i;j+]+om9AJGJ0IO'tnH'Nc]1)uY,U!EOmmG.3&,7!mY,?MA9=13&Tj*FBN:S%?77g`Dqo'1I-\89@I(Dj$YbrTVM*XV7uMDQV1rER''cp>RjLd&S,0PT8Y;GjM;J(bfI1[SkR+05to2,q)V.[uWN`*7:Z#FQKK.CL2Z#I8KPL6I>.A['Q/M$UTLWKV-O'F"u$B:-,Q_kpfN.YaHTR*P_C&oB^dXGb.FnWgE)3jXl*&2p'pE9Nsdlmd[-[j"Bi>l3kYn#87!BDTts4RU\\'I\gTIX#)<;e8BQaurD]NL?&E#ph,qcUXQi^gr&QtI=Y@_#AiPm-gKKJdQ,\u:a993DhM0mNCqLQWggID(d077q[ohA"(>Z9g6ZVhD5gg5KgEV&=`"iB#Z#Y-.#q+3ZdTm5f9d=F]a2A^-3\g>bpUMW%RjQ"!\/*R6fq[3mYQGiKB=(MQr,hLTWUP!$SjIk:Jb7jD/IRt'_e>+:[I\G9ucK-0-sLN\$PjjsQ0iuO;1,=B!2,H6>h;uBL"ld>(Lgq%I2dP0cVhd0D^S39!>2VZ[PbW:ZcZuU@_A5rII+FC]=DNqE:.;ZWRH9>iHNmNZbMmTN&mm+B;8J:"-59Ebj4$EH.MeDE9\68/Ub$05_P?l#RJBADfumCX$^[,nh&GU3Y^*m#kIDu'T!(g8Ia@,;Ki0R:W8AH*pL`"8pP]6uVeYl#!WJI0ftI8dU0;ZO_9Z`Y]UP`s/Nl:4rhrU@=A=V/EBmWfq-IEr3je&XiMII6-@mb)i&8k1)7(>/$#U-B)FCkjJ\>G!S(G9>3`DBdTbTlDq^.#3*Ga\E3p\Fo;s5f4!UU`u`9d^3JXX5'DFmd<%m#S@?4kq?dfD/j@;R-!F_?8]kN\Ga4rCdqSCqpSQ*G6$O?%mcC=.bLbde/MAgku2g@La)dor,2ERX4^]*Rd-@LB`1QlnGE]tXaa&2TkG/*LbRG>g.7[-2M/XPhEgng84$=%C[LS-dC^,$a)+YFE8]=iP53E-sY;^8<6gFAL_u>H`NIB?4/gW(07c]`FDQMb3C'!NdQXOrcJs7+gfJjF;QZf3]>b5&Zs4>^;Q@g>f2QLjD'@',grR@o7Q5>1asU`^nU!&j*su/T)"CJ5E9t3R:3T8[%OO[^k"Q=5Y+C%=sJT,+^,f3hu&!oo85C8iK8UIti__:\%6\J\DRUXZWd?\.BVXsR,>ZE$n>e7!F\u`pacM[M@j/KES?;i>1Q7*N#%YLO3.q]u07-9&>A!/+S/\B&o_tAqZ_rZXp/T`V;O<"[5V)uUeFss)(B3*g'ITaJHil+09YXBhA0-HNhp]B%k41\]-Pg:BD\_=t84m$6"O+iMIY-/gBmP\1pPfiPREYd7ke$?$JQ-52;O+-G>sgf_R7:&!Z2(mc8$9.9$o@IR9:LaSNe']Vk$Dpfo1PuX7>/k]^%/a'R@^B',_)`7?1qT.<+i4r`)`B\guGZf0pG=4,\VE;KU[9Q\;8?2iPm-7K^0/-S*JY(#e:OeC4raYm6FRN)MB%o+P][b`!7&KQ/WbWq`[W7]._/]&8k1)8%?7(Oo4j'n.VI!4gasSn_2Be7nN7K!XL`65e*;NU_<*l.H_aXU$t_t,[)>GQm@`3Br_(!O1q)0q,#qm:"`&2h0#nKa\"k/nH6Ya`$CUeLHWq"LKakAL<&['`<,#<,cQGi1I$"H)/f#[R;4Y6QR'$46b)Xh_MoF>UCDuYHd5qtYkmAHA:1h.O?7(/WR>?.La$'$C2GeeHhnpMF?Y(1rr"'Y2XYPb7$5bEc5k.9IPC2]``mONr*od4#N$>9.baeWHTHoh=iL/8ZfKjpR02Ef,h[j/`&/*Dr.&`rL=`A]-"i//*t5UO%(=U0A*-p`Sr3*?WM-Y,ccLLMUphArF#TBk&oP)0BU=q:1\59q`Sp0)2er&VI%S,+F@D,"7he@6p9=O4>=20UOn"KnLc6&gIQeJk:'K#UFr!]a%?id`DG20X=Tu[%*tW>6nA7>aUE/)nr&a'gSD0F$_rGkS.0Q`X^2$8sJD:[ZkR_h=5XH]**IH9SKm\O>.N`;046RWT7?Yi-]rjR\)7>Thgh5e+*,KH!,ugmAC41J<(]fn=GVeoZ=d=%M5eh2k"Hd:T.Wm.*,9q=WDlBl,s(_+:L'B_*8pgm+)*QTcGCQ@F]/[N[qQr95g'VBX=3Vo?O[pKTo8XG><'A0BZp5e+*,KH!,ugmABaDU+6UFP=>H4A?BgcOr7+)Npi_V#6nK#p3#=Pqh\FjJ_F_PHL3#Blo+:-(/o/Bfq-gc/2ZURA@04][]B,0nNda_SKV7ZQQa0UW%%`WX/DDheP"X2P[)Vb[3,,D@\>q5VMP1l"-\/%0LDVN)YG[uFYKQ=&=^/RkMaA43%s6C>,s%&kZ+O$@Ir?XgD-R7%d0!&Gf%_MnkT/#tqFnH6X&iTSVAcK-Qi?X*(nOuX(k9H[SC"i?6@&8nM&G0JDk.u-@/o*]"1_MnkT/#tqFnH6X&eJ,IbI;gqHj-*sW_MnkT/#tqFnH6X&eauND_7$BNKGtR1=&slkis16qa?1#O9H[SC"i?6@&2#0u5e&P"E+Kai2h"$%Ls,t[`WX/D4X%tkl8#Zk&XE8q1VMo\!lDG7!Js#u\?e)NfO*:j$a^I#GM!l@B:*XF\O5CYW_e)WBsARXpi/B:l7bE+"K^O@F#03r;oi?C#fKF8tZ1G`Mt)PsS5sui#Yj"E_Ls,t[Jqu\%@+0[G&X`m@"VH<)_57=n+u0[^$R,Z2JkZKe7:[GF(ISDC"e-!TMo\!l/r0dd$T9"2(Qitc>S*%Ng"Ba4qU\VH!E'71(Qitc>S%M>E5ACRi?C#fKF8tjHap8orjpTZJE_uo)ABt<8E`6L0m6V+<2ld?+Y8O>m3bJrd3nEs7;X'-.DbkJ,G3u`P\U+P#ns>A,YJtm'"s>?2pqXPCB1i@+0$Ih/i6[?I^Cbl\-4Urului@r?2P[F\`K\dAGG!8i8&D-C,sO$EUlFWi3NTgOT+J:IEnIo7[/^\m1Hp[@!hrVCZ9lN/28I/j0>-Bh$d.KE"_Sj%T!lDq*\>t%B5gY;VJ/$G$Wr[EBIFTE%,rq**QBsh-DWrO9A)&jOJ,O.`P>m14"6rd5eGB^OG@YLigRpV3'+$4t?uIe0%)5Q+RH.KJ*@4<>#f"Tg^Uo?TY%e`qjB"fVk1Oa7!*pI@_DV60lMc%5;"Ie_k,WN-"a!ri&J^]*4/^VK;fP&oj6Tl7^E6aFVOmmM#RDQb0!>UWrO8^r:,ht%)0OifIG6smc>,BX_$`1^615GYF`J@P*t:HpQB,BX`/1HBp^pr=J+/9M[-XG?*+lCORgWN-"A0)Wo-r6+!trcb?B!1QZ"DXJVHpd_'rM8R4biq"(-X/G3qgo[MICg2&[HWrQPP>eYTr[C'$".T.,i2o/0^:!M#193k!!J8fdkMMd^cQDCYbJ@4p&5Q!gNf1TC<.KeWVP-;UrC2Roal71d!KZhitfi_Zh06J!0XI3S=N]A'hWN/Qm+P_Y?p"*RNrqF0o\r-7aih>?s8Qb&'=-'a/[l1LL6qAIl"18Ha&2sk:PmkCX4Q97VrQJ44Y-#DgJNIc77F_l>a[E;=o6l6C3N2*Ajl^d0NU]4EG5,L'%#f@K:9RBKjGBtfNEHIcj3fhZV#btlI96gP&O.k,n?nb,W71-=diKj5^0naBm270a"(R3EoqePDb-.ZcT@D/fj@3,N!3EAdsl\$iK0VkVCe1p)><`sQunN*]64EFi4Z.?`(VQ&(tDJ_%FZIG=:hDn*Iii$aRjZU#JGns&:WMYA1Wi')h5Mbds/#_j0X`_%9\GEi$N35aUTrKW(&4]Nu_r:)[]2t:R7L`n-/Yu)peQ?JmrDa%_L"?mZP*Q`5_pRLfKK:N/L7#)?iUW>jMTcrTN?W7EO`nT#PbtgGDJErcBmWpJc;\RiaIK"`iehR5(E`hd2h\QF1u(Y&Cdfs_]Qibn/ZGdA2)Zl/&V1$[8[ApL6%XKV,Bc9n1ISYL8-:6Ng\SKBo1UqruG'4^MI\_US'BaqhHf_\>f=PRHpsRp77]T"-I[6WH2DF+;,>L!L=:2;=W#b$P8s18i23Kl>_r\'sF/1;rBkal?b%dnQsFl7/Jjmcg*S\e-(?&F/TIs78JT;sGh4=:b6'q7)rBF4m4*gSlT(;n8$5pKIc%df7d\pXeU1P,5d:9t@=H8DiTalO"Jp6G'Eh=4:MF4*4e-qm:qJG(XlS%G.,ZUpc33jfo63YaU)[32NcI\:N\a%!e6B.^_hUYG&*3-CXJBB8FshY>3o!lX+/I.C)G%gK(tX?j\GkF[6A\(da^64Bj.q),LgiB^CCf:8_2MMe(85i\D?mPNHR]K2eY3i^>Lk)A(t->q-O=h*6!<3E.=M.=,&Hs&'ONWMip97#OdGtXDdd7B*#TR^/iA6:sp;u)0q:/&FAs#)BegPq#MR4$p/Y1A_o(LR4opR,cYqqpH(Y:1?VSt>rDRr>+*+tAb*okS,Y1I`hBh0i:iRkRL@iQ];;Ucl&C'ji#cM.-Y"#pC.6>$S7nn6OlO^3iCC`W/4EtJ#3CVMT-[=A]=<9tJ-Nq"KWb/HH7;.?'H)ZRgKYh"u>)GgAdNY_Hl;Af$;d<7'\DG$*cgSXK?Ks!a,>[9E".!Ll_d9n[75AEcM;`HZ^!Ug4"\0OOYmL'[STb=OdBkW,/CCB^]8<\KYf'^29d]e'ZkU@?N.VC1N1O;JtaadM11Jknc)*[$il.#S:kZ*fgOhgirq[`gbZ7frr0i>3[R]+?/8fO3JOLapFij0Vl.qi1578N=#&P9*$8B-n6EGDr@:08Q-.p0bUKX%;RCOH)F"_$_gU'h2I(-?W:MjoT)k7eFFWhE8f6j?`@Uq@>ug*/1)Be=IYUSg=/ob_U-%%FKBGhmlH+@hHJZ\`D[Fur1pJeYJF1:_UA7l7$]@/7M3,3838!)k.CjtmG)9cKY*1eZG/h=75bMZ2Zt*u:&kjn-6eE-jR3LRAMSSf>fVVCEjm.&?cnJGN]^I+RrCg[RI`2&EoEso*5J^7@D\#iT+.:22rB!=4ZtB>'l,/M?Ip,5I@"bs>mPY\(n:-&Gtmp,oQ$.h[^N'?Wj^DjnkLfu^&5A1]8)U:X+tZ-J[*-n9jN^OUf9^oe"N+aVCG/$S1cT^\09'#OLg=W+hlQ^E5P8+E9HF[`Z=l`EgtUnTuNcL`8,u2&X/Vnp]qpR\I1!]WA!'LV'*hKH4.8??b"Ek#U[(t"T;=%BFXm]qj504Uq4d?-%s'/uYKBY%56V69eMYH.]gX89MO&L&S'q60e0n*\TZ?1@a=l,*PF_#n5e8%GJ&rq0Po_Cl31cJ"\Uk:4dFDlYb6-S"d3q[.hnW,4F)Lp:A:/rdl;]iHnjmV2WZAD3_ePaSR0(Y5W3Bhd/6eKI^;Z;*3oOM*ZAW);XZW/QgVHG?HtJnF*9KG"fF7lg!s0g-/4iPUUi8qQ\09#_,[=XE,]30?YNnKXV_0^pI\[dq&?Uii:MC`=Td^"T#\hAIcHC_,:>1^78h*Stae(nT9*423:Rgbf\k8ntRclRE=%!QArolk\XJ,Hf]DE9YYajH?n\6KO?1]R*S&Ban7i\]+]cJ;"gl=iJ,IXXIaSSPeWY/hlNlU`7)=b3hU+`*$T=*"o;e^(e']2abJ'm'&#pC-[IZ*V@>d=`HU.Jt@NXgQc?=m,(bXS(t'[ubR\FE^me=4b6Lg6rXaBs!D(Ktb;m44/k0E.e1k/20l\@/pnSqCfSX@f4u!,M'E&gYn#`JoCb:VN4%!l>3VB=2/t5XLhK]h9e9,AHK`?J\O!:[(WV5_-;#b.phE(^T@+qFgmHOf6VYoVQi.V_,OknBW3GQ*ddEM/(.0LWk.?(b)ITP4oZ)\^]=%j(RohhcKee#]+OG2s74>d00$ZQYB0BG_\JdHi;t[D[uo.^k:7o,Iqc7OEI@G?"?WfoMD,rWOC>N"T%:I4?f,\7oL;BBX1TH*?ae$$#T%a5]oBtm$T_boI*+h3G*SPd7(H=7c%T?;]ZN>KW8glUIpr9jd3Ip:=I!\DFXK?'bJEktIE$PM.<$icQp3JRnFtH!M*^PMUo^(.MflS$gh5"A[-b7DAV3FfskM\A;`HS+M3b45ZqoY'U]Z+h`*^hE1I;?T"a@<[L.3,jb+CG9LCTEumMK8C]OC/G.d6>&`-%CqL<9PD]?_kEBo\9/p^ToD_11tri@8;h%^L]q9J/$tp]4ti!WgAUHnm%^n6p+1k)d(N/smL"/,n]u9;Aues=e<]jf&jt42Q_'@I.NERi>>+Z1F]["jA9X*GR3:9Thre4lH1_C#Na:s3b$\L:@qfXkIX_:(/"\St'>i!f;Z9k/&,f7Qq9o2\8H<(BmonSs'cc1Y.dXE.H:mna`Y/FOZ(mGQA'\Wk0:T,9RAuFFW&f!XhqbpCSdnL,W844QRbjdG&=$ll]3c5A"Aa4O3Jnk+l(:Pa26XlW0L9Xm`bfr[rU$2fr$ZbAqdj@%h.:/7pT_LAufnF27IJZR[]e1#;b]e&8l)($b*I>cs#,BEMfKXmV5Nlic[b:XDkljN6fgB.]oRnEW&-7^C>[`>XIM0EJ<8MM)XI=)IA`!-#R@o*1/[IjEihg'lpjo/nr2Jg(\GE5+Yt'5e*6(o()AEldtn'+q''nRE37AdVPthG4kKpNkLesW[cm2;94lN2KqqNGhD8gE^]W]ebPKIqVY4;/rb*/?+M:W'_#ESC-V=@@DW10/$Fgr\q!HF/'bT]@?N,KQT!!/pjgTI.q+/&8l)($WjDo/;m<<]3db>gidgo,M&odl_?P[>:\cRI:D(+NMi$*J"E:FF/tDfp%&&VCV@5uR$\LFm)M63*=I1q\]6bcXB^-^,YaphiI:XfVgnQlT@C#1lThrtcCb.7kP=rL^$+`J\=&2j7'+G?*gjd8qDd(IN6d&?>GVr"gt\EHA49Y2Yn+9K-%nA&V9Y'mh.TK/puO/Yl#8UqLILSse3qd&NShYjH\MnCmZ!f+@oL(.GgK$>E95hm[j0\2H.n*=VD(GF4"XU"2^ltgnRiYpSRqb4^>.1diPZ>UZIfYNEm@')F#igfoDHk&P:MO-V+IRr?#$F68G;DZAd]:XlP$"WA!@Y&NF@%GV&[9_Jd:@U_[%ds^`%#AP%V5h7\T5OW\TCMR_#pu2[hCY;o7h!K1]qXqOnWGK>59u=Sjp[5"ZVd=iJA__D0!!C*sn<6X3RGDA?+l)H@4$0Kd$(4Q>#WE;#(^u/nhg]##63,@J(G8scIsSq=;!gUC":04@d(V(QJ@d+1+P]3\nW.>.S2kriXP/@.TMb.6^"_&dFS+eEl02oiCY<8Aghj@(["KlL[q*5]fB;`?(DkEAbc"eQ!*Y/$E*dq^7@21T2`IXX/\;4?]1o5@p\NS&=ht"Om`4BACUIpY!2STPpYUJ_R:dEW)aF5d1UV!!/>1n+k3(pXXodr:X/i;op%?@d+3-BP!&C1/Ocb6I!jC5Q\%hl9m97<^Eq&#'4*U+k>m8k.p\1^o#QS7fcnEUlg!c$Q^?7*"TYcro_%kt3crI/p#6S6fg-krEOf=hQlZCY,_g>mgX_"n0+q:17Siq=Ebc(DkW)"mh?0iF.&r!DKZ.0;,>A?!=8^O$EVGm90JiC*J_o-n-U];b6TuDnl7Zcf\6=$D>>ujQ$\%]MMU.Flga\[;,dCA-t+K1T+!=.OlqEm;IKTFtI*+]_0i[YJ0k5g/W[qI.YfVa,_=GXK9A),60u4DV_nsdRu564F"*>[hj5lAiO_Cq;s32]V9Qa+I1@%dA'3m2E*R)DFOWAQJB#l7hC=U#7d7cG7K7n1R8Cb0!r*sX'Gn=:FHo,/1dm+YK'a5!5QM#hqq3?+>l#6J,$o'e?/tNo(LgVe*f_?k+*k)qj]Qc.Y-\iu;^$gBqn+Wkg=#Miq3r7WQcad:59GI^2:`"ElEkC..X#51NN832nl@STtEYSu*9)eLeJ'hPm/6r#acTBu."pP:UAoiBKrUoL.eZK&U!7n]+oB+`4B8oAjB4iSTr]g,/A(1[C5Q3Y)qqZB!#6tbZ3$?tAmbp+^HrKEiZAl'&rq_U5hOn3oS"#o;YZ_#lB(FJR?dU+KGJF%27/r/ppc#t`NS8Md)p^Yd!7]Hg\TAhG_$%!!#R-PMYR(rlKp7o.?m8XV\p*HQeoB[#L1gkkn*;Du\-RCB#"M!&O]kmY*/uMGX[G1mii0?U;1%!&d*PLmA/%!W\Sgi?DG8KF7cf#)%nJ3=meCJ/JnNU?+YM!!$Ur\;6FQi;s"H!T>5+%YP2i?j;:BBK6VV!.Ypu/u%Gm\,ZM@5e)W9"5s:]QiZ.i=q62n!+6"aMeG*^/c^D>&2'^=5e$doAjEk^Q36(I!13fG,$GJ0$NOQ=KSsM(&2!s5)%\EpjZpfkg`5e$doAjEl<*a-#/%;,EIl[hMaGIN?2lB]l=)_t%_g>Zn,*361Hj4/*N-Ajr4fhW$l2!!$Ur\@Web\@ln"dKoIkhqVA(:OfeZX+]]YK3/ElVu#Mp(>g&FQ\K]l:#^_PR36$R*3Y6LVj%,(l"H0tJ\jp.Wm%E1+17043?H+l#3jKF7cf#)'VS;%Tn&FQ\k6+F94bL]MO&:L+M\A]P3qLVc)+\#oWE8,#=ZR0Ui;2d-HIm38)a*t00UQ-t,.a@_aK7`!Q3;JO"8g%@=!&GbQ?&sSVBa1>1M/Q:Y=0*Xb_Ag/tDK08H'U;A"POYnUlTJD)gXQmWYKoLaoE"OZ,_?Bon"2[L6*!d>\^^LJbd;g@7!!"et>XZbdDufs_J8c)P#JpWE0E]0\ZlB>f!5K!K(X[7G>Q=a[+C%=XJT(Vib^aXE/I0,r!&+Ml7C4$?(BD70$l#j',.5pl:-?=pDG2f'MMD7->CJ7?Q+BJP),K^nG,H3^(MZn9rjZ8:IfDW=Q(RINmnQBJs>B:_t*R!cj65e&"k$NOR*7L=8].d;ihmFCqG?kZQI+XTOod9(=l4Xuj.Vq_/EI(;MPI,:M4HuAc@ZeSG*LUI`Ca@dA-9$WI]*8[A6H4+Y-pX/`e`S)AqpsN3[)L0LZN:@1t@BKM)`OH&f8@eHf[6k1YoRkf(s%q<-T`M6@@m#S@-?_W\?dZR"kYm$X[oo6>#_rh-BeT5`rT.V:,rA0EDSpaL<=7B-8.%)N/JW(9AafA9".i;-8W:%Fbg_ifl;-O[Dq_7XZX"c73dDGQDmEoYhY:IHsYAOB%U43bK.4)M;8Fp93:1!3QaWDdi[_bL:GUZ2Ytrd+C"mH1GVS4e9X1gDY9mDV0sj%+haX;n&/ZZK98T;LPes_nMCa`Q"'YpUs:$_.\IDZ'K9:Pm%p/WpKJ'%?"akjVYTLRnliI90!2rZ2ej\,poUfE;XR70DpHA0bXa(5>N)+D`c4f^HQ]l(68R`JDja]`g7,$LX6fZAe>2Z0<r;J/K4Ng`?*-2]"+6>p^(g8ri6MSg.5EDR6Co`#05$5uY/P*0uO/J*>`;XH^,/Vh[nK,Y$>i'[[u)Y$A5e]=Dmi*5]Bd\-dR*\ZnIWjis.$W1n3eE5aF!oAg7:b.p9P!!$VAP]6$hfJQoRX)#57)(J'l@f6'O+iWt;53kRc6OWXT>W9*'/uZ.DQ8LRj*ZDY/O;)Qbr2UT:e\/rMDKrI,2Qem5k,L/iPqF!A.$K/23[9d"Rb$-.f,dPoZ1H)6+e`>no>qq%=5F%mn]!/co?XHEc'1.O;4F^F'`Sq'X1Zb7/J'N7J/K4Nh"\.cBM^*MIWPD'V.ubIY:@fkqLaCW09<@!CF=1Z^cHM"gaHE]4Wk7MUV5(+LR^0ajQp/0e1FK\Vn&P8s=$+j+EAn[DCMoW[)c&lJV/XDt0NSCD0`Enp9CH6.4%iZ.U1kBq:F^dUp+B[LXlFgMHJp@r&aU1u\"b*2tD@&uWaY>[sW7_?Bon,GToB`m7aF(@)jaLFgFl@pC5+%YP2i?j;:BBK6VV!.Ypu/u%Gm\,ZM@5e)W9"5s:]QiZ.i=q62n!+6"aMeG*^/c^D>&2'^=5e$doAjEkB1)-!EC!^?;@WYb34W.'O)2a1NBkEN%BrR1j<9bN1hYt1:cAna;50R=.5Tj;3!&Ga&2G);0j+Lt*bCIb/+pYsg!&+MlAWuLsFSdXAD+bh?"g8Kk,9TLu*;#TC?Et7W$!l+iHc>idnY0[A:cX[VC(21-'GRJXT"*cAq-/hE_rhiJm6=RUgEmr2Y"Y6Ze3l4qK=HJ/Jo9EiAcWT'75hYB(G*rB[?b^T+Y]BOTV"4^R5jGWGt3K:d,F6mki\JiqAAp9klJCt`,51(h3EmhpUu@7`u[:R7GRKRR](59]j.7YN;5jpRZ70d5>s>#K]b[d)]uM6@@m#S@-?_W\?dZZNDM=mCErVhWc@UPn-US[CnC/oB.+Ua&;qI^eUS3^Wu-!W\Sgi?kHW+q`,J=_h%tl"Xt#G32X@:5\e!gYH8'J(;+q5ORt5'ZGMiJ'P+bQ5\ipjreMT^OMuf@TYCJHs*u%/N6nAR-p3E-R'G=ZD#(u`&hSgU7J_q#g4m7;\C6bS[J9nn*1;fKF7cf#)&HcS$:&a0'ZPSb58j[P2-esi>jqK?>%??.kIPX=h).b_pSh_-/U9>bSaM=&n>U"h0g_RAs7qLgiB`$Ms5m65L6DY%q6hQSEcF[[)B]lGY?.b5Ak_\"MtaM=lYX.gT4MV8B7OFMamI>6sI6'm_5C',c`[-9CLqd?nm^1EoI:JT(Vib^aYrA*nNVI<(jqP*+f9h&DWDX>pICgAJ#Alac=_Bbc<%cr+<&)dgb\-]c7#)"_cG!oX1\QiZ.mVeSOBUaU[(pAQpS.RXXZ@`0q7j?9j(&T1lj;8kl>qP"[WX3aaQeRDdeZp1&TD.6B4JQ;G68hW<2J_h9uTX(oXW;<[BO?g;U!+nL+ae?!r"`(5Ae"(`\fG*Ju?X"u"4/c^D>&8pbF3%EU0j1;m463s2roMenL1Xd*<-!ahnf[@miU<^$JdGEUBU7K4["l[mO01_Do+>K7)3)WUW7#ne+$?qDoS#fePhZQp,0rm)Ednb6]c12j8<8T"98Qrlh&.5+%YP2i?j;:BBK6VV!.Ypu/u%Gm\,ZM@5e)W9"5s:]QiZ.i=q62n!+6"aMeG*^/c^D>&2'^=5e$doAjEk^Q36(I!13fG,$GJ0$NOQ=KSsM(&2!s5)%\EpjZpendstream +endobj +6 0 obj +<< +/Contents 17 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 16 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] /XObject << +/FormXob.46ad3ff7221c13195234f7d073f6c500 5 0 R +>> +>> /Rotate 0 /Trans << + +>> + /Type /Page +>> +endobj +7 0 obj +<< +/BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter [ /ASCII85Decode /FlateDecode ] /Height 534 /Length 39093 /Subtype /Image + /Type /XObject /Width 875 +>> +stream +Gb"-6I?5,oSbG3gX&>t?XVu5\mPFd'RYS"LguVQg:[o,((n.^D1:EZGcl/[4ARsuW[c>DsCs^$g=W;-nU9'?k-HKVjnLfJS;2h8XN!MmE9G8Ci*(QF8QLREN6%1!JbDJ_LVM)ks0TsQ_'=]L2O!*TDI8qId39K7qZ!Ioo#V[zzzzzzzzzzzzzz!&.^8HKG'C&"WOX^=,VGjMbJbT/h&1lqqh`GiSSph`cb1fePSabkO91pWXa:7Z:q+Sj3,hdlRo)As,[`Er)nifqZQC1SYamI!XT?N^BV2h]3W1c=?RHBa69'GBr)\O2Sog(S8bKp?1le/WjE?FF%n6*=E:`_c2p@,',0DD*q*IK+%ZZ4GU$CPL4GinA,Di_iNrRQ[Zb@V9Wf&jG;SU"i)f[uRGZs9?_Gk9E('5!;u)T#eqf?A1TQ3LX'771$AU'o#Lt#apL0rV#_`dlReK+=E1VfKYTXHN^`7hq@YUB_Jar0.#%3kT9D0h`kiK#b!2+\?,Xamo@gu)/1Y:4*(&Z4`?fQLs#PPfAH@EqL[t&K/A\^mjF^Zrg)4^W19JDEq6sXn!`)n8-9_M\\-+8_X%lag-?cb2\8NuZ@P7bHinpfp]^fQ4:oTb%0R=5W0,UZ?68#6nB8_,f2JO8;(n(ONdlYCu%?!&^(@[M=:rW'&ac8AFi&/>;m*a`3OqZ,('KD7/-rfffTheedV`pZ"tPE#i@li&\`f]2@fqrFT[1_//nj?_D`#sKPqupbl`N5h*<(pb6A$)n-oL5i>W&5o0=F&2\8NuZ@P7bHinpfp]^fQ4:oTb%0RA:[_#[#Xrd4%aU;3nBCh!hqA^Mc-R./k@$L%/.W]]">I4,jfA%F&_pR<%OS]fP%I[_$FUntcl0K6+4)g1k&H^WJPlfW'[q!UIXb3+PGPB7?%`e!gH"1?Z1[ugmJXg?KL.;%[Nj07Eb3BO/R_:)UN\5TEhs>uBpDd*BEURGPffPpNGKV4XAbtkh@;Yc$NUmB!at@sQ6Y($"--khVka=$?gAGi.jP\$ncrp^N"`nMbq$[E.WTVp$[WtF"]Ql":);+6$(1dcAiCFDr0X$Rg''UXW]48N^_U,&BNG!;BU2V44mD#qO+(%o1PVpZ]5KsjSmld6m-1c*]og)EZr+>#\;3$#IXAf3Fh?O)icRdZYV=pong@'7`sT:nLmX+pVAGBV1JgFJaT0IH6=.PlRl93iQuiM"e%O&&(b>8IBmUf!#)au=2]%X)gg"Vh'b@)KoZcWh^R?b8i"fH[-u-EmTn-AFRh%NjjpcEVN/a&DSuT3<.HdO234S:NmUCNTc0]P)#/mb[_tp]dO)":`2E;b`ku592FI\@$Dt]=[.;]*INnDl#88mrBhG=0ku%DeQeY_nf)DcqeUjHe7L4Jj@W=HsAm[;]:3?)0E1#X&cWlGE$8Ga6KECO\J3`\YF?Rqs11A6>EWHo!%?s3-7ug_tKgHJc2(grk=ue5&MnHe3E?)-3rZVTqQYP(4n^16kmZE]hK:(@E4q&&H6%*!Rp=4UbTdLq*r<_ZSFX>Mog?a6AA5o8@LoZfOlC`f^_pT$>dXd&3'b(oLXnJsaAl_nr`*!4g)(^hT0(nCbaqAo4qklCZ@g&0:rc<6hMlZV[PZXuSCd5gZg4HE7MB(lGaAW9uDpF1Q]l#_k)M\sZ9-BN>bG7P[\lYu4EZ>O@MU$ho^o,Wi'V0MK_$07Pc%X%76KBi!@%=9(T3U13kV\;u]^T5hgA^(9F3HS4L[mu'.:1mlW+5/CkL-jYl2f.r%bUZur;=$-)>0$P8rS8Yb;r'4-A)Q74(aHl/7,A8Hq^"oG^qan#PW+6'Qrc\EP35$aFhAD]c1Wl3Hf=D2gg_TJ&VpYg#,l2g5R3>be1WhGSD_k\Q/G=9[2lE]@1-!l?2DRC:[.oJRfs"k))sV9W=WigNa'cAa0]$QXZ3GZ=Q3[W!C+9D8?u-85EjYU*]7'FBi`ib*/7emnH'l`>"F[q2dgA4E[^GRW._jh,/m]4#rWbJ=Yhd6HfsNnNbs&GEYn23g?^BJ"S/:^6*fqJP#ZSa4c7=!$?8[Qt,kC@eD=%:;+BB$eX(Y?KIO2AXB>&MfpMda)&#B6gutdB]?PK6+2*NrDTC;$o4L!:VG$DbMjkSkG4hr1NHXJKrFe=*[XN;"(c]-b,QU*d:G/.fnRAP.O?Q;r*<(H]u,)>^;qQDO2ZF#U`WGLJ^?\n,"0G4`!L,6kK=$"Vr?./a9*G4`]4jA`g'qYiIOQ3efUODJ`/\bsn'^ZpSH%+[E"]OR/n.I2*"lKjtAhtomt"AGO>3qNu.h:8+meo7bK[8)_cKb6$[XU^MXemjB.*_)3<3LY?KIOT(30Jj:Pk6hD+_<@a0IVK6*p)Iqs(\:+;:DXkn*2ULP'ZFH!.?3@ioNCWcd1Cd&'8Kdk&HeQ3LfaW1`rUqt\#3^u>sXBm]4f$T-)-gs)G#=bgE.l6;$U47AY+DVsh*.pMb1<'AuI+.G?aBcdZ/@,(rYJW)rC`OQ\Y34Hbj(rgS3N@3^HK_7JW_=Ao44r(s#.'O#,b;4tJ0U>3W_su(4(EKT/34oO^\l4kXDuC.O4$7\^'NugfK6H;ET\4`[lg@q8=l-#L1IJOTB?$qXAFXNRZ#Zeh;>*]l%CEPp&BO!DYZmK8]N'Ak+ctKaTKjEVNEsF8h7Xc,;f:fi4a*phq3P8`8Le#/FJ3Q=0f/EI7'cNl/r>KqD%BsXYbHg%;TQ;jpiHg,-mrZ/7n:#]cTDi_QLSRFTh:#dIjWj?[cPpei;d(K>mH3F7aMV=9&+@@jSVNm+X80ZX`Ub3\mpRY%.%Qlnr!/4b8QVblrY'lEu#R%GJWZ?Y\@UE*IST+%27qW?ZB/^YEPuC^qb'h73'@\4,&,"2IomM?%aO\Zt5!A'nnrGe'1?I6kiUYj7V.m3cIldA!?-mZ:(CIi0eeb'-s?2,6/Ms6b`cn*KX1HDG543^Mo3?ILQF)&tc4Ie]>VTXDc@8VO_A<$htUEi_Tk$p*):,1OKD1+0,!0TH/l]uf$:fV4$,J5%ed,H8;G%Z6++&:Z$FTG?+V[?e9iF[gXA^?<`<$2^CTOVfBFBBZl\+K,c0E(Y8L0Ijt#\,b;p)^!h:bI3ZGlN@)RlC!MD!Z,bd8^2Kft,]0.DtRKa$AO6UO,4G!A/^i>I-ccm-ZH7t%]['fS(;],*ZHPgSDb&@q]88Z]W5CbGNI)9$"Q8gh,X;PX5:CneY0h$=(t]@rcI"*CTVS;o?+[$S_[bA__KfQi1PCh]5MKL`q,&G0l:fXUn_Fcr[iNr>oibRJ6K'4(.e9>E+%n>UT90Y1XnWZs#)G7jB+961)P&>?F;OM4;$2@h.=Sm\g=tj/)r?&:WH!]'*rC,^L0H`"&BO!D]N_'lEu#R%GJWdYIhXaSTY3\eBfd*XkOX4+>aIt<&[A*(M)2.]pf^TT&7NL7ARZYKSWd]O&F`^[+YOV@r(FdXeBekG0_O=c\K_\3O#9)YJ\^4ANnQ43s0i>W%J_D`%Ik(,egNA@5NP>-)tK$]gc>=+JJr>Xo\Aki=5W0,UP&HA@B_%HVh=F]/*4+:Y5TS[mFb[%VJj:NG%0R=&)[I_+2\='mZ+`II[/tnI//nj?_D`#sKPqupbl`N5h*<(pb6A$)n-oL5i>W&5o0=F&2\8NuZ@P7bHinpfp]^fQ4:oTb%0R=5W0,UZ?68#6nB8_,f2JO8;(n(ONdlYCu%?!&^(@[M=:rW'&ac8AFi&/>;m*a`3OqZ,('KD7/-rfffTheedV`pZ"tPE#i@li&\`f]2@fqrFT[1_//nj?_D`#sKPqupbl`N5h*<(pb6A$)n-oL5i>W&5o0=F&2\8NuZ@P7bHinpfp]^fQ4:oTb%0RHlqT9lfVKWNu5lUE8`0%"[5*A&*j3oYEGL#j+5oRgKY?s?[T38Kj:i#[Gf]h95HH5ZE&nrKc+3qT?r4L]-BEgK0qc$JSV&b\?iOs?=$Ouu4b?k,GK/Kh4S7bhSesQZV[K[K.j-F+@kXAPl1[q9\YID64e3J(Y\2^[lM`ReNam%:9N&WPpY^6jrp5!,Ae1L`9Urlq`:gZhrhIrGUs/9UA=?*irk1[[]tNml7kS*F_!DY4K`h?0o$d'"3gP0>oSu88+6ktL5P4*k1[gerHs3-5B.kQlr8mG9;gZ7SAih=8Df:$t?iKu:qu:JY9=X0Sma:(@kcb6p5Qt>OLoSr?:^V`V1rFUb6$*kh`g$7hgCGUk=Q=PFC>@^7kG&jO8T=T>+q1fE'Rbm+B:NIsUdmi9Ou6"FtMf^K$qZF76Tp1qOp(9t5T8"$30"h"-uf%0>k6mObWk6$;nF7C*p7^pO@J#qQGe'(?&+$+L(g"L\I8#qQGe'(?&+$+L(g"L\I8#qQGe'(?&+$+L(g"L\I8#qQGe'(?&+$+L(g"L\I8#qQGe'(?&+$+L(g"L\I8#qQGe'(?&+$+L(g"L\I8#qQGe'(?&+$+L(g"L\I8#qQGe'(?&+$+L(g"L\I8#qQGe'(?&+$+L(g"L\I8#qQGe'(?&+$+L(g"L\I8#qQGe'(?&+$+L(g"L\I8#qQGe'(?&+$+L(g"L\I8#qQGe'(?&+$+L(g"L\I8#qQGe'(?&+$+L(g"L\I8#qQGe'(?&+$+L(g"L\I8#qQGe'(?&+$+L(g"L\I8#qQGe'(?&+$+L(g"L\I8#qQGe'(?&+$+L(g"L\I8#qQGe'(?&+$+L(g"L\I8#qQGe'(?&+$+L(g"L\I8#qQGe'(?&+$+L(g"L\I8#qQGe'(?&+$+L(g"L\I8BgJJm]]Abm7#61Y:!4GNS5/7ES;*3R1a3.P@2GO_cG21cQe&f7::##1,Y_M2$7Ga\eVCq$5Tg)O+HXCI5Tm1`Rb*AV%st*?6HQ&;`Y3^Z3NjQ=q=p24[@oi\^N5hH!nf%g+9?[/OMJ:i+K\*eWO[h\V8LcMfFuGR$%Y?BAbqtH,S8$t!i?+%9%ZR)188#p]YEhs?4c9MLDI5dC,[+!akk'RC2QVI@enVY`d[3;^1emNihAaP_QQDt)R4W+/O=EdR;'8'3PY4EsEg44+"E-1JZ\NWT,0/\LJZb\Ik8;+ji:fe/&d$eRACOsiYgL$)OKAQe&o\'W$#BtPdS_>HGr_Zk6r9Vl9L>Rr6>ape:/Q(iKmeiQpqea0\.SgTd9CX[4/g;T,h5^@RFLdFX^l?lHBAJqJ6Pn1_+6-DokK0p;^7-\BMa^>EQLlPP\@&CFB[511(B[h]JLssE\ueh`'5>iO:KQ+^\+Jb='Yl),/1Re3pBfN;CJZd8F!3tcBPOkpmaZ3&P].OSo@pW;EF0A)[(_."!E\U3tOqj>9K#._k5:\7+>"@a0M-ZGk-]A5(O]uH3L&)'s61mg1ZduNgpM=bDn212+e'!<\Na"kY$].FnW@sAK!D[G\L,"6`I^@\C(uboNPtmi;@WR9nBf1=3WKMG1]3)qCrK&tRlJKZZq9bLGa5j93Ec1oZ%;)Dp2nC#OT#3;l."BNgR)"*r'Sr8(.\bXD(P7=Tn`0[g(pnL4Xm=pSXX!.b:.JNs:k!eI]sAHM+VA>j]`;N]0KEnLj_HroQ'FF$_?CT9"6IW7DCC1*G6br/lHoh:]F'T&'4H^R.mht`bID0,t\IXqj%d8@`[SMMRW!_H`/M7stO+9\tZJ3X2(5TkVpJO!Cu14c5:jK*d7@\k5c(<5/i]6jRn$?A*1\=J`^3'CE!cd=2Sh$"i^*ckLdC&&ci[fPl!N!sa6QZYG7H[?9fbS-V:%6*"b%cX+_7DCu%9IpYem%hZ=9f*Wi!ol&fSU2'pgA>kG\CdSMdQDAhu<$.-&[Ig9:)hf]@Q0:73[jq?[^Jk#25M$JYWY4$7:]*/Gi_1&e@Ci*iH(]NXHY7bSBhDE@%2SBX'h#G6S[(+d#%[cKIM=k+gDgil2&!j>>9K=8YhePr3,0YY9[]:NL7<8ER@W_N4E/2s+>p-1kNq&EA&P0AV\i^$+4AIUO$g7g.%G!t?Ed:#9;:GqFj[3Df+HV+8&4g1B%NdmICtUQGHdm$rSXE0km.Q$HLF8[S\-6JI(8:Q]_QJd4QHmG;o`4:XJHXbZ5_?H-d\TUk[r7n!3pJ8'^0FZj7qV:2<_#c=eLVqKKpGo.0QriJNs;)5Ti@>o?9#:/6]EZ!J.'=p\1:@Fis&&!&I:Iau+h&@RcAC>&m9P[/g=8\-%9bmEPM#lPm0#7Pl#@HOG?ERA"C=JSfs'!q&;r5oZ$0A=Bbn;Z();SC%Ec!.b:GZ=M(?J,f7mYOs1S&4jSW#UF(n,*@\4*'+DJWd\#/AaGNCFP?*K!4Dt2$0l*\_M-J_QS)Qis8D],n\uMZcU&`TG9E!?N>WQMW252sQ^CK:$\cH^!Z;K'Vd:#:>_,.lHI6q>M\e$Q^3o_m^\GdC7uur]66H;Q+HW7UTc_:T3h])81*5ofj*"9\YOMKj@+@3]jg4N[Th0#@ir9)D?PD;C)^-Ef,)fsJ&2`37MJO%$;m/XQsVm&J#/6o]hCu9C6p"/)Df3R_J&TA'rE!HFNg)/j'JXiT&ii=3<[0Ha>l:'TA/R#Mp`JPC_K7fA;9+(e-\-%9bD2e"G(f"!P1RX3TgAu*q";95-d\TU93e$?mTDI!&^/XnaX:Rq<*=*p(A('VKYoHN\W`?+Dh?[LZ+HW7&W&f7`!2]aI"FPbc!q&;rJSfs'!m:Xr"FPbc!q&;rJSfs'!m:Xr"FPbc!q&;rJSfs'!m:Xr"FPbc!q&;rJSfs'!m:Xr"FPbc!q&;rJSfs'!m:Xr"FPbc!q&;rJSfs'!m:Xr"FPbc!q&;rJSfs'!m:Xr"FPbc!q&;rJSfs'!m:Xr"FPbc!q&;rJSfs'!m:Xr"FPbc!q&;rJSfs'!m:Xr"FPbc!q&;rJSf*-JP;t_R[.eu`e:3$0oumW\2T9AWhZQ+jRrmJLjR+\2V&3lr(9rm!X\W'JHXbZ5Q]\LI=_%1F'_/Zo'lqHD&%V$o,"Tf#*!eCL0JNs:k@XWh"`,]0Ng05\P8^0[L/KLGIKS69PM;r_6)Q*K)PDh5_0Ak"H"c@DA>tZiDKJfp<7N&`.636@q5Z0%2kG-u@NcJdoh%(D";:2-!XZ@=JHWEX8V*[$j:8(U,")KM7>V6oZ*;i\'iI_V7$0lcY#Hm59d\MWe5BaaT;!aJE/Y(*7)2AoKt<.'O9kaF==iG>7B+##IYjId3iBN@W_>r]%Af4Z/YCEl>'3\Rc!qOPObaVZ7cK:R#=LnaENaOc+=FYFTG_Q+/qKru?RhUeLD5RNKk/Q'#M:R?+jlr&=5oC0\foI!TuoPmB(BtVJP+FY8Z6`jOfmQlCBSH"(mlM^gfLS1\K,3ta(ccq@EJd%D7m3N8+(4f&qX6U+dkXWClV,_H`1.s_!EWWG2kD7%u6g6bQ%T1/B"MC,DNb>uP\;a5p$<=1Ku?:E16\P^@0/4VL67?WH1;sBMsW-SjUdU5p`c);=I^T';n:o/c//Mq-qJIU2qJa0R8>2<_h$=m<.Q$%[7R.:Va+B>!73GG7IHT7VGLu=8>W8ct3"[X>_`IU8UmQ_nG%@NTNGj2&kp-8'\cY"?ro'Hr03HF3Un`,rh?`n/fPt/h2PmTpWFOmr-0UU?8,3ei5cmaqXdU5p`/q),ikcXQ)\Yo5r/pSX&]c#'hELZ@kQoSZLH<:7OgT!^BTk)5T9B9+H[Is1TgEt^ZlQ5f%,5FRKNZup]?!Lgjq]lRkR#ime?T/]s3OQhVQ9oHgKb2WW+0p_'kG-8>(42E?Gnc3Fs[GPmTpWF9RlI]9W=IV)W&A6`2Jl%D*,sl?=NeW\:Fb_)_>\=1BY7Y-;!%b>0R/qLZPXb$^5T9-bPf7cTBL(X`h_cjE2ctMWBUB^+8q2e,T?NZllqKJ],26EtsL#TM,8QsOt6+!q";:2-!XZ@=JHTi6\T?q%;/A]EI6QQ[f`u\Ciira@b7bgA`"I2JHU@O5Q^@=+@-t,Ek/22U":U#]E.`pQq'tn=X*WU#paDb!Af9j^_SP--j[\Q,tij+i2KYQfWu,[^_[8%i!ol&ZnYKc!9k7i/fF6"15#q@VX\mn0*&eWb)s,Wn`"-'Q>PEenWd0^JNs:N5Tg)O+HW7%.23-/p?7X;4[t$g7g9)/n-&k"\-%9bD%(R%.1\*Ne'le;m^qqV]cEaT@Hr+#STgC!,6IuRp]?!Lgjq_B2Ps;!gjJ_'Y">UmTRb`@!;]q0P0+^[i*=*p(Hd80D[qaHnHL:7:qsH8PiPglOFTD(872\.g$GiMhE$(3]_C90hgbZSZWdn*$Nq+3"Tf"?"+^S5@:E[i(_$-1oGFXhMA7W_J,F;m)[l!B";:2-!XZ@=JHWDjFEI/KLE=%kVOK'cdHu*AqWO^C^%\,OD$0h?#ri$<"PePn!ZQ1Uo&Wh#[Ju)UGWu#OQZ%BKaH7^N^](gtN<8$*+HV+,&4jSW#UHW+B?)XQ_>dUKl3JpG";:2-!XZ@=JHWCb!XUCc";:2-!XZ@=JHWCb!XUCc";:2-!XZ@=JHWCb!XUCc";:2-!XZ@=JHWCb!XUCc";:2-!XZ@=JHWCb!XUCc";:2-!XZ@=JHWCb!XUCc";:2-!XZ@=JHWCb!XUCc";:2-!XZ@=JHWCb!XUCc";:2-!XZ@=JHWCb!XUCc";:2-!XZ@=JHWCb!XUCc";:2-!XZ@=JHWCb!biF4[,r(Yq*\&_Ush=ubF7'/Wr[bSI"=NamQ_nGD1Os@75UdMS=W&&`#a6b3NjQ=q7*u;Z4mj@^_[8%i!ol&fG4ag7I\69?:#crPCYt#^-EeAG9E!_[b+D!o9pGRV^8g=#bkN9i^'c6:XaWuTQro)+LsmkptSb"&Rj-91sIHR'IDu8K\.hjfGBJo7@-Le69phDR#dgQ,Be`-DiIiglOFTD(875Zg-BJC*F,*[<&L%7bU;V\H=P2ri$7T_TP$`><7#C]uWp952l+[TP];&P#_uP4QN!Ij3>4P.]k4tQ73Y@8se&:L/\-5UMe2:eeX*MR^PDDmTdlGYn<+SCZC+,?@CAHjGJODdH@ask(`T&"H=?kJU+!?Yq0+^[i*=*pp/TqfKBN?@0S.%GO0)6ZQN$]*[-7Z?WWIdU06,cKF0@.!Z'lpUX_J)'-X.]7?6TLV.>WqaBr@'23Uuip8'1f7Z.;VdBkG"5`GQtaQ21Rpn^-EeAG9E!_[b+:s^%&an#aJF[rQS&R/JHM^U-B6SLo)Jd(8eu%GQToaiEs<7$+d%9p=5nd%bib4u>WeouP#$(U7#;*,W[`9\DLiKoQV(R'JIE@>eeRmNZrJQOGgU"LV0QA7GUsPf.7BC8Y?:X9*ub63"FPbc!q&;rJK=O9YCf:2kS==7o1HAMnT;V/#n!CP#pek[i>P5eRKNZu\-%9bD,2XH>./8#o^.c\b:U2^O,oddG$n5kOFStq8AH5O,\V,QI.PT%DRcBHHXto\qsEd!>7Ief&4jSQ#UJ=<";8(#_-jK%HXsMR4Z1$t5Tg)7+HV+8&4k0fN/W]H?G*ccJ\:[,>8*&='[S%Ti8%A?.i\$u+oRr:KYmRa?UkUp3(sEUhlFko^j\;Z=M^uDglOFTD(8C5?nr+[BB,U=+eUR=4VA-aHjQ;el@$PtG^lg%c]AdnkUn-&k"\-%9bD+q'1fKQe.ncma]6V`dqUki"A+=']jK:.8$@\l,g>IX#Z^\NkD;qQUZ&4jSW#UF(neurFfeHlt_W9/-=l"J1hI)^`<\+BOe"<J#&qV)g@SOFStq8AH5O,\V*##7$_18=[F!1W4@\4_O78";:2-!XZ@=JHY@7-Bjkg?L1kNHL%]"/mU5Z$\07K5Q\Yb+9?[/OJ)!o[r5UUp:,MGni,EM_sFf6Rf\-DI"=NamQ_nG*S@f;>@$sTe'g*84D]2AJUN)7!kpoB!I#ZJ^a;2:e5O@O9V\q/eLK@"%EntW$2=RQ"PePn!rFZ43r8NQJ)*@7Dn+b\mskB7n%JIefe!AN#6G5,!eCL0JNs:K0g7cBMoE>8n'*fKd^+1dcu]0>[;5_is3jb.IGr$HZWdZ"&I9Z?$Nq)]#6G3JbLs.YFRVL1I,4.D!)O..'(?&+$+L(g"L\I8#qQGe'(?&+$+L(g"L\I8#qQGe'(?&+$+L(g"L\I8#qQGe'(?&+$+L(g"L\I8#qQGe'(?&+$+L(g"L\I8#qQGe'(?&+$+L(g"L\I8#qQGe'(?&+$+L(g"L\I8#qQGe'(?&+$+L(g"L\I8#qQGe'(?&+$+L(g"L\I8#qQGe'(?&+$+L(g"L\I8#qQGe'(?&+$+L(g"L\I8#qV"Z"YuXoBj0'p$Y^P&OFTD(875XEOMJ0S=WkEJS6$9/I,+@JZkF!A^`<\+YUpDW?s2hIOIfS"91Y97a(6F]"9]?V#6G3J$Nq)E(@)?=>189X*;>BJE'b+A!Jr58";/<"W6?U0d0\l9gad&A5+u[c0p#4`/mj8;P"QLP&Ke,V0%LufPH+u=!*)7adn'YHPj">8,03M6;4Kemf"r=J$H+SZo;QE*KiFVk5!U4kG9E!_[QksdASDm1'L`Z-\PfCp2ORD4RXm^:1#N\#)YKrT.9K$CZF#KS#+\.4,["\NJP:cflm]>-+8XGp=4JTuSpcW12+d;u'*5cj8$cNQ:8<'n3>\5G*M.9p[AL;;&4jSW#UHW+&4g23>"'Q6T27R6=Cb$Te;^^mY;;COLfKdHl$fI-dK94m17]a2NG%L=]mc<09gnZ?<*`%s.;]+h&o\'W$#BtP&m1H#&]fW4e1:1u,b9/5!pP_UW%M[[Oj#(kfaRI;,u]mf6#)c1=jh>I=pq;eV+lJ*!q&;rJN^Pcl-aA3m,fr`p!DO[q"VAPblQ`I[%or&AkF1[`CVSZRTD(=Nsm>?6uXY?OklL*lRqPH.;]+h&o\'W$#Bcf`M'!!gMaj?Vl+1ukqGsK]jC0fO$A*`,5r@.q6Zk]WnKtGCePS$kG]C4aEZ!)h(KGh/!5c[LcZ31FQG#PS:[UA_5DsVKW_lN6>B5/'-NBe3tOqj'0c3LK.!:=ZELHm(p\&8\mrd@RGCtQG?RidF.+G%'sC$RM5Zk841u4mKE_Q7>gu2DfIOq+GY0DkY=PeC'hjKQM"k85&e@Ci*iH)NMr2Dc8nhUu4!"b5@gWfZ`@I5m;Iq#ZVR-X@8AH5O,d7C>^]4:c%mF[.N]K"i--`+9>glOFTD(8C63%$k+t)O,Rr1[[Ff4^lCZ&!FHt2J3+<5d)Mm1l"9:EEoW-p]?!Los/u@nlp"Bjl\l.H*%AqOJ%R>#(spEQjC:_fc1Sd7aiXLFgi^%!Y@o<(C2:b(]*j7E8e\"YJ7fTY:gfR<_`XG"Ds+fc.'X[BG!Q=%VM`L!X[SMM2@)DDnit?HOP\IAiCga'F5uB$Nq)]#6G4cT(2@@rr2nCmIBVVn%O2FZIs("2?a-gp]?!Lgjq]l4-7^!DnYhpl.b73pYPfHqsU$1C1(BkOFStq8AH5O,d7Rg',/2iYc"D>=<1JE=Rl1HO.4s-@!<`TJ1hI)^`<\+YSEq.UCTN[cqQIT<2kmq\,4QC++1XQN'.X@j+8/)1N7fBJl4RV`n$cu5I,,bVG$+L(g"L\I8#qUuT">V!@Z%pg=-%Ecb'!7gm:$E(_8p*1Mk)&8+KP9W>j9_h%5p[(5^`<\+YUpDW?s.:lO;+"+^T`"Teu]MqnNaT?ni-C<9jadmS+J(.f\c9Vk[jT^'';O;'!>O?>fqKTIa!\V*6\PQ?=Xk4Sa)s-;aO6RBdr'dd"+F`mQ_nGD1OqRb@1^-oK#Q+)N)NLaV,?pai6I8WG#(CO+i0?Ko!%o'f@RE[:o!Z=VD&di53Hk(K7;41`G2]FmE5o5MUYHSR9)1Ja\'^]>MP(n%S\%frYA7)?GBlQGjU@l'=`(7j*E(.AgSUrR>mbaU1r9%[rL2PtY,iN$pk]dgGVe_;tt1U*L$jlufSV*NKrA,nNVo4Gok(P!j&hFQl\^Ji&i@Mikigs_?nHMkbUp-"5/)@9lKR%JA(e/!^]49$c#,TC1Bdmo=I/Xr89!sI5_93-R$`tH\R'Vngi1.?DnPUpfinHlN%dtWr6&IHEc'M4J.;\pn-&k")F.r)PmCtZ*Qho&7uZloVTajfjll`MJ/l[c6fgORP"5Q\Yb+@3]RnA5R@bYTE-YPJWq<[\PP('nn\ST)E2p:%eJQ"2Yl.f-WV%M')VargWP#?H-Dfk4ILjd0=dPp8eZYY$7+@?mJ`ltS%NJlA>jfb<\NTK$'UBfD?#+RNq;OENggd$KAbkR5[[T0'ckk3IYL\#i[9d\X2U>s>=926mR+"09dLYmP=qX3d0=$Jh"O*CtO-lhI[MVs0XnL^1s`9?Un.jY:Qa$f:#\hpPO'GYR2C,[5sD0['C0P%kIC3FS)koF?Hl:*T=(da#pEL^B.H0Ii#1Qs&)t\>/%-:ns@+%Puh:;KiO)hYmT;iZ-(Y">?QXu_NhmGE0sY(=0TjA^@sckq:<$h`@C_eqnWLZA/0M_]kPqB#s&.Tg&(9c`i<+IO'dpX6;W@p2J-:-1'UdoB09<;kNn#X.2A%RT5kQ-`bVm&$)d9[uOJP?AhhO]^nm!U&-lOfs"leX3a!TX8)XBc#muaE`K2q,c@21hV=G757`a=89Zn,[t4rql/jL\gZheE9tGjiWji6JmT%jg1TX/?@.,>um)!R8rI?/?=0_94)-CWnFIopYC&"b#;)!`@>6lg=KG\IY_AHrK^@X6%DsYm+B-(%mTtGX6e]VRoR2mNGl&Drr)^sjf;be.]XtT_CApgb#_\6(BaWV5'2k^r9$;j.f,Y6RPek_7K;GIs14a"3H<`XAZTq:dNu$fqo.o1c]VjU!]hX.d!8cJ/r`lpnl^[LO]?'6=G=2@p'0XB&F@]i!W:gK6k*&hKs$1UIUILOj_K2,fBg`$<2kFLbZQ:ON8j`]tYtAV!)J^-EeA(QKLt[VabWrRWhC]tM,RhL"^tcT[99f"`Ut+G"*T5Q\Yb+9>iha2^RIXD\$S;m3m)AO!^8J:2r5!m:Xr"FPbc!q,F3ni@djB?sg>]-./ZCES_SZ9TN5?QbG\3tOqj>9K$CZ9TN5?QbG\3tOqj>9K$CZ9TN5?QbG\3tOqj>9K$CZ9TN5?QbG\3tOqj>9K$CZ9TN5?QbG\3tOqj>9K$CZ9TN5?QbG\3tOqj>9K$CZ9TN5?QbG\3tOqj>9K$CZ9TN5?QbG\3tOqj>9K$CZ9TN5?QbG\3tOqj>9K$#):Ic>VIc6(:*cr%7<^p-S6RldaFpE&0oumWRU:ETR(-nX$kPtF*=*pp/J(J"0]%'".gT1XQYWhEBIWTB&_TG'nGPr;a$pu8==oS2VF$RIB8gYs_AT!gfL$-*2nV8I2^c;[j9KN0B3R6\&9LdZL_mWH7u*r3[D]>@l-SZ6GfGU0"OK9JqRlH'Y<\^[Qq[aT6n9P9;h:_k&ZJTq\56/=KO68OQ8DoCAb.BI@7N)[L$hW6Ae1l?&nb&2;Tm=OSbCJUA0"g0HVZCeF@,\cpJ!h/pY1KKXEI1.=V_.)sH0CgNr'dYaMpXtH+dq@c;sdup!J%Jl<@M`)e#eikRFZjj*Cmkp2KmDU<$l#>`2;_eO$(KNu&/.-tO8p\\(7?fuXL6;RWE_D?mbuU/ZblXsT";5YY!XWZN"ObFd?Qc(@iguL"d=`6tL8KnpDV,OOil7ijkX#?oc`-BgtWrpoU!XZ@=JHWCb!bl5C09F]FS2Dq:X):k-QqJR\OO*;)3s@@:#1uiYbGh<&&]i(L.gs<@OD:mBOIkJ%4]6P.;Ep+CY<[EoGrB0o-3m1VmIODkNilhP!a0e6[Hab8OKAQe&o\'W$#BtPd`P6j+R)gX\.\m7^Y>T(ooNT^]nrToDO8ug.8crHXAnIWgKAfsX_6'g/bL/`F[l'IO86CBL-5Y%o/$`FFksOH[h%WcF;OPPRo#%kZq@&4jJ\>+FYPg`fU)J[h^PSrd/!L!h\F[Okf5M+9q\\0?3M`LEa.WodiCUht&T'(jk4n,E3D[lkqm\][LtOK3gO=dJ7QK62Ys?UuA-Y&oFrjX.=g@A83P,,+kM$5&g)JQ;l(e680WP/$U`AaqQ[.0J8/63kO9$jcYbJgZ!?Klq8lm:,*askf5\2$RBM?09TF`_`HM[RsLDj"!0$qj_K6SB-8#t8T]O&mt$_G^'Csfk^lEmDNlOT+g3DaV?Ru:I)Xj=NUM[3/J06eD2Cmu=A'cu/IDUnE!HFNm)+Yn-gnM)%T8cbM\^0a[dDk\F(Vlq>U,u2!Yr<5eaM@_+WC.K(?90Q!N6e?,iB.8'%hlTLCZ%B[`lN.Fdu3>-Bg0r]jO<#'f=#Q$@6!_BK-W_\U5R`eZ[8i3?XF!F1NC&@VkdnrW+jia!kWbQ^p!IqBY/J(X\TB?jkig63=2)ZAYDZR'e&4jSQ#UJ=<";8(#ldr=YbT7YLB_?:`!FSBJ5Q\Yb+9?[/OJ%TTA2;E^,K8cEj17)JGQE?uos/,MP(3G^IiTOMXnjRO&o\'W$/1b;,Z=6\URa)9.TRfJ-e()2>&:g/N!X\.Gm]70W?@:ROf<&Dprf;R,A(e1"8AH5O,\UZl"pV(g@F.S$\V0%'$&#+kmSGB/LpNC4L;RH+[fb7m#UH>bI@%?\iPOoa^]*^$mdH`omQ(5K#UJ=<";8'r9:%95l@d9P'MMD=Pj#lQ!g2:+aZiKt#5pN"p3$Gj!J(CH;Ru8]mHp/aC&e22)?^\s!"_]JXqV4sW^96N0b]bGC,V93j`9%!.V!i5RspkdGSU8Z/.:9^$%gOQdrT9rD$VEF$Nq*L0ia9";M!'34NY5_b$gEoA6=k'o0i)tg&nrlY+5Pt>9@l,mc)3DQS2^[C"&r#q0+!DJ1hI)d)N.j[Ap5?VSfQ%U-K"W7hQM-ZB->0c%D+oi6;2G*<;A_'K2nVZ5m"B:CgIGJ,,F\@J=?n'K4kZ";8'r5+f$Y'1Ub&R7dpjO?c>\k_`tm7$)0jjM$'>bh`h;4!9WX?>?Ga!s/e="+^Sl%!B=b:.W&Q*cU5HWGFJnUpGYhF:IoDZ^`<\+BOgW/]I8XAE]>AT"WNg1";93W?XI/?F_!`[!I#ZJTY9$hF([91q=;]^S%T!@N^+^Q^#X2oK4c?hJ3+<5d,%Gi9WVO3[P<-a[V_Mebm--1!X\W'JHXbZ5_?H-[F\aNmHq%-*cJ[X[YkslG6,ng!X\W'JHXbZ5QX"YO2pRl7o9srSig_1X+>\M5Q\Yb+9?[/OME2R17?I:mW6j^a*[6bkM3UhB"&T/)@0lkS3ML$paMp5ep;G:+.\2$(4+^-^:Hg4&9GlT;"KDNS"?,>k='pqT,%&%`JX^SjF05$U[Vjpt`"PqZo+!s8!ilN<+S5[KQ^=/.2Td@3CY&]n&F,"p>Rk('l1i/.fmWJNtFP"p3Hp&4g25+HXCE5Th!M!f>DG#\7F1+G"B\5Q]+1JSZ//,Z8P'OGs9l"L\I8#qQGeZ=+l;8A0R>2?j9sfG4`9K$CZ9TNO"p0Y2)[Kta5TkVpJNs:[!eG/)#UE;d+HVQ`JHWCb!XUCc"L;GYO@['95W/fL'%ds*,d8g2aG,72,4u-Afbb8k?s=b8^p63J)[6A#e/J[(@mD/fD1OqRb6!62(g[:>ddSL8q&S(-`d4t6GlPFZs**Hoa\o70EkQTQHWmI0^YeQGDEDsp`uA=g"L9a)OMJ:i+G"*T5W0#eJR&#A7ohZ7VIdMic":c7gQ1c0nDF7Xim9/J[;*kW:;>K29Vk#*]*\gS@mD/fD1OqRb6!62(bPk=I_.o+C3[`99f&o?359t8:CSAV]JdH#.?O3,!neD%875XEOMJ.e+RA$KVTkM\+$)*c@.dQUj8]+.ric?3pjjaFq;"^T`m=+?^V+d@?iQ,'nZe\#rqN/lHJ(m?F[(+]:<+a%T3T2Z>PXg1$QPe+:fjdscL-^QO*-\Se^:'RfitEqUZ_BTIc+QR?%4`dnZd5gIr\f-UU5\(1K"8.pk-q`s09N$q"VM)O6sIEDm\k3[Y.dBH?WWo1&VNaH=jpeCW3OHP>rE*QIS2JY%o(aMcr6gG3Jl'3F+-F4YA=*hWAd)@R8VdoH's=3OQGp\?nKf?Z>$D\fBF3nT4_/SFtdH5C%?NMqn$reIUI(kk_+Qh`E11gg>3iC9=tHfef*QqcE[_RFUt3ZfoC]rbnQeDS+>Og08)=OONY9]bCCk:O^1>E:hADF_L)%:!8neS6H1',d8j3875RCOEEhmZ=C>U?rk=AmH^?m0)#>$Z=m"Ra!V?gbhm^f#VDG:nK#@#4cb)Si5?fh>#SDe';chr+WoUf)H``rKVPTcga6g?a0O$*ll=N-eAd-s/KYF>q%ArPC"8iT@eVI?g[X)QWJWR%6IctF[iAZ4a5btl*e@[na/D=qsNZeI.GX$T3q`,md]*rNfRsGYP@)7Tfques%OG=;g%&1)?07,Pn2Y+O3W2SP<-9U'RSaW]u.`lHiF'=c8V\a1>hh3[u0H#n#aMeL)3n/(FUrT_Qm1#X:m,MAh&"F%Mu8`Yk''NlPA0bPCer66a9^YUBOP:bUsCl*q$88Z.NV*'LX]hQfq;Q]!?=@@U*/kI9(\(B0e<&4:)hV'=ujnKcA+1b3bYcMT9k*!H6DN9AlMhW=K]K=+*VDXje?FH3u=>G2q-?/ab1ABWT^18Hn7t4$NJ]tlAP+D)lrcdVrfMFq^J2^P_]bR8d>3h&("qX=%Zp5abDLk&j$X"SsXlRh^S\kBZPaaV`*,Qo]1bndA7%*kZj=hfMomss5Xn/QF$#c>M]>a\UF77r',lM2$k?`?S)Qr'lM!Uu:53Ik>D7ptu=j^`BgE_LnO$7Qi/2Lju4PkF3M0RUDD;f4!:/=EtRA*98I5f;%9p-f@omgMP.,@3*>KU6dOa)_iWc[]>*Xa>SR&CpIqqfnnaH)DFI!=7i,IQ4*RdT^WEo@KB^fC(&%?h#G=Z2I]INP3d9l^OE&$(9#GE4S;,/h2jRDE66J%k+lDdOhlQNE27"k:ZEseIr06Yrq\m;UlB^P+t%p>s8>#qp7.I\j!WONh6$GQO)m0a6E&+>6:403QY#E.J[n0!flH?:5BBp?.$Xl!XX`"#UIbK&BJ]S&]j5b%bg`A`UMa'\V&#*IW.!?5a&8>G6As4(ACN%!_G..2d1D)*hFlr^]/WM=Oo49.$:5/IFT*NqTth/Ol!*.p89B@CNuS4^N!b0O*@%+gC6_k;d;:LJY[AqBp+mrEV7[A@cA*.g&5T2@U)l0e`cHSVa-DW,UW",?S1$agL)?0\c3QRA?ljQ#Od*0]tZ*F=H+qjieH#!D%%PKTP/mA!o3p/g_SBOaCd!4&i$J83`rrtmubZ7k)qLf]%+]bDjK'3+.qOta[eA3]^uVF^-t6OW]4LhF@Q%[jN6Dg#o;VW]glr_c02dO,k[:VR1!(JOI'0?l'A8iG>E:FRHr[1;n]ZCK"l]*;5UA@hjn48VDd1XjTm,WbN>9Kbl;%RB<3-94)5:qY#7SgpctDF.SCs*^@kJ2>Xp`m)CQYJW*.O5cu0>6[i`qAV.PY!Vr=Xquouan54C$E`>'FSk4+BOX%JKJ_\&fj*#rs4lE[(HCLumi>(>bcG5'#27p4i!k8#I$*T\1G;.4%8YL1Ie2d>4fnr2jXdke#732!m/);mdVXUIh)IR2^\3LSH1R#P-d5g:qA]?_b]6qQAXV3e?Ec\,[YiKbPG]`W/2a1-C*jJ[-](Oc(JbKP'1hu3;s_NRAkP)"5P/WsR@?>&$lj_to_uG_`MiS?Ui`4,U&AOb2q`A04G92:cQkTgF8u7W*q&dr"mctI1"rOJ3?&/.,Uch=O?g9?+L_MC+D"2[3:OHRVHXZD4M3k^miHJf^N"Fk@c-3hF%OMQFG>)?`hQ>b69L%9l8`sJ\(kHT9*X32AH!1V5\.7e5ppTbU"!>qlb5B)RA/]"hSY!.Rr0b<93NFM3?6^Zp>FfLLTXEFWH;qIX`]I*69[bDGejH\fIFjXOU(M.gcgb1Nn^;Z_T?;oMN@,$]K>63885N>\l09SpH?Z'DVTOJjJC+`^HbC)+.K3RYcbfi]m+;l[X(F2K`>pE-(Y3A)JH5f:ES,uS.,Q'&elo/8>'00O9NPeDdd"Z9V7b-ht02)1p5]`2`JnNG@[:OhatXAOG*^d"@W\$''L):AAK*R+;`@!Zl[k<^AT,!9dSeVnhB+3:ZU"ng"gdWpW\#UH_35TgF:!XX`"#UIbK&BKHS5U+ql"L9^(OJ$9<5Q]aCJLhW^OOJ^WTAQ/b%RKYZ0^+$P('"IM'J0keTN`P#"`rhMnKUPI*smB,8^$n]G=aW0L)tDHpZCTeXXi"J5TiA?!eCKc"Tf"_EoHpb;Gi)D5M!Ch@-7N@"@W\$''L):,[^u_&hjOl$&TK(,g\+S8AGuH,[_)b&elo/8>'00OFSno8AH2N,Uch=O?g9?+9>[hOFT>&85QZY+G"E]5Q\AZ+9?O+OJ$9<5Q]aCJHTe?5Q^(5+@4BVJHWOf!X[K\JHX2J5_>^6!XWrV";7pB!XY4rJHSCL";9o6#UEdc";3Bn!XX`"#UIbK&4jSP#UEdf";2D#&4iHu+HV+*&4jSV#UCg%+HSjt5Tg)3+HV+6&4fX)5TkVqJNs:F5Tg)K+HW70JNs:m!eCJjJNs;!5TiA?!eCKc"Tf"_!eCKuJO"g]"Tf!P$Nq*H"Tf!t"+^SD$Nq++('l0n$Nq(r#6G3h('l24/J(Ig('l0n%KmCY/J(IG>9K#X/J(Ig*!df<=s/nl[m2&:>9K#X3=n_XZp5abDLk%S[Qkr9F!-R;BRrDMh#`-1Ck4hQk!1%TdBWiWEa9Ar^>QLk&B-NLA4rXFeG%:2f^iA7dLo^:8ce=I+Y0jB/bR^30X")*>kQVI!X[K\JHX2J5_>^6!i^u/\E:-N`:[L=m=@O.!Wi\\!eCKuJO"g]"TkYooD"bM&0R(g!eCJjJNs;!5TiA?@ShX2'ZHY?eF%4_#rZ.S;fFZC"d8XkfD*#7m3+-.h"I.$RsZPD;]rD@kmOX%>M+a$L-+VJV]f8L=0pB/e7Q&?I.d2HaId/:V)AHuMU,[^u_&hjOl$&TLN$=m@S`?mSC5'JD3mctAjJm0!]U.S/Yo>J&VqqFH2:g3/B&.I5T?$8M9$2VRlJ[F0cOgb,^q3dN$))?83f1^[LB7)hgjrY`^)=DIdbES>lD\Ku4D=^El:&^5QY\h\Z,TC50Ck8ad:ajs0)"74p`6ERQ(8i:6oQYt]T[VM":BYq!J*f-&;]q0P/J(Ig*!df<>)Xkk1Rk,slj3ISaWX/_lP0'fMWhE)YKq;:-h`M#phYPl*_I):b*8XK.;\kQ=#BBgo>jRoU9,lkitTGV=h+u)DX%1YDp@[An$&!WB9LH+pUfOR_W5"W464A@XGDJQ1Y^qb)dS\@RI,":^CRH1+5<+Z7QmLUJHTe?5Q^(5+@4Ca7"O]nflRSpc.O`Fa4+lI'5*qS_NfA%$Ef>`#pa(S;+Vnpe#/@S+X1'X1_R=J0=N+[AkNlRkbd"`+1AdEG+6`gG:(q2/u%Ds[stj0/iTY6Y`T+;=+0VNG2G)a%(E@PgpWZ#UEdc";3Bn!XXaAM\e$9,*@G-JY2l$-i`g7[J/Hn]C4T^%mTu2>?b;S&GYIaO0ie4%XauCKTBEMZnGE%M>4Wf>kOFq;j8_"-%VjfT1YtGqL\%=nR`\Fc`H=ESEjDRl&`=6,EQHA-?.pZcrhTstr6e9*1O3o^k10N@1gs<+l1FLlEZp<=MA_&:3N#Y!c/R]MCXo?$2p$\ebAs2_,,)77"2[rOPd[7JYN6U$D[T'rh2U^,,Y0B#Mk7"9=^Kd^%Wp%Ys*=^]/`EWt7h;('l0n%KmF2?lBt'Ess`0_TH\U-a8j2VtuSKpS\&A493kU=4a!ehHbK/5Q\AZ+9?O+OC/;\GmL5'.El\T$;Q(GJ]+<+_:=&QUS9fl5Tg)3+HV+6&4j$XU&5M?@'_GpZ6IqK3<`jd^cjB@!/4>/(BJ1V*8:H[k[_+(]fA-j10e"Tf!t"+^S:)m@ko7Nc^M)I+TP&#b7K!k(?:!HTBF?tU.47WUa&1)o-NrqFa25Hj`A!6#3H'!MN@$((gG"?W1k??i.DHec#EfC@nA[;J&S;BV'O/J(Ig*!df<#+g/+WGU>(5o"3fXm^(5'qoq(WB\cQ_lp)Zo>9K#X3=n_XCn*\;H@1+qkO\ZD5Q@qP]C3(+huE2`%sN,;]_^oohgYI)eu]$>!Wi\\!eCKuJO"g]jfA/:;Z+;sq+n+3!^JdX8AGuH,[_)b&elo/8>'00OFSno8AH2N,Uch=O?g9?+9>[hOFT>&85QZY+G"E]5Q\AZ+9?O+OJ$9<5Q]aCJHTe?5Q^(5+@4BVJHWOf!X[K\JHX2J5_>^6!XWrV";7pB!XY4rJHS!DE'[`TGPt=tCK$!hG#DZEe]Q67Q_4601!Nq>4E!utSbU6.XUF;qE:1In0"h/5ld('XH(VFfpcscPBAd-kR^[rq89)X5f(HBG5C2eB)\Y;MG=OtLlIZ&[=n?5Z&(t(*rr0=VfbdTKKARWfJ;r8qY485YKoWTGd@Rm2m^^,3HNnUf>7@slS)T-+$`'1[Lmo)6=pSU^NP`"8=GJ+``UQ-f"lXionmZMqhRht8&j_fI4*r[s)W0R*k9OkJ"Y)I,?;MLK=EjdCuB;4S.E6B3tMF:LF%]MKi"a!`EJgE:S^8/$n2WbrZ9S1W4Hs4L7*Fe0j.D3NmT$(n8"3idVGe&W_j+iA1+bR*LJ5<:\c%cea-4/'[r/.3QCm4heA1WHAB@oA5sD^-(tsk+.,=OPmik"&bC$8OLQ"0iN[c=t!AOTP+!CL=e5[AJ'M>t)b^n]C'o(GtSnUk&ASqTF(hr^,oX9'6`2XtKZi6hASh$HW,5I/V3Dm`rB@q5(KC_stM>sVPMM\j<=[=+ir-R4?,YQ+.CX.u;$>t!rTm`FM0QG1n^F-$Gibl@LQ:UI9tFT26,:Z%Z;>4^$*$HQuK_GJ:YeeM_3+HXSP";9+!+HQl`5TgZIJO$4?!bpFT+;*E6!f=,j";5,^#c)bhON%_4'%(P=O9jT++;)&55cP%jC"trr&`!WmM6IEl&n)^bUj=/F`XN%`d;:"f#hqTe&[m6UWWrT>gcutoh$*q;YRL^J@2fKJH6Agcutoh$*q;YRL^J@2fKJH6Agcutoh$*q;YRL^J@2fKJH;Xo%*#H0.?7pfJ`7G;1iITR)r:JOlG%=m+Aa``r=n=*u7)Ip5GW_Gg9*h>`ma,[Kd(o88!EWuI0<+;K[Y_slX!^$\8D:U?IZ,O9"d.*1X0fIFT'6ZAjd,2aR.hN+(':J]>_=688qB66hMC5`?/EjUiS_9AEo>Xf7bYR#1NP:UY&i#h?Hr)Se\ZYQPX!]gf+o`X?Lr5dcQ&U@AOCt44&<@oE]WR3bl&LRbJNtQg&/RD5_O[72,XPuoc^?j6X5k@X\pNJBD=:'G(Im](+uA2FBW:5PELb'HdFm40k\[L:G/kC#nuE:jEOQ">))7=6`'G$XB[7SRYAO?1Un.IsMR#c(qNa5"Uu`Q(*p(.RT'+u>K97kG]&)5pOTT7fHJ(Q(J@KVY=4eo$&*#Ig$kSbOG,E]_V=6FhBCZ[r%GHlFiO7U+#,!CZ"Z"r9V`Zoc]ASSa\&P!I=36s%R-a\l^0q)Y3c@B*E.rE*;C88311=Xn4KKhQW9P(TM$jUX2:?(KHWV4uA[`FJ/M;q]`hF'bSphP$]FWBKBa$h&#@a-S$m=3'IA8k1thQ]d\Ml?:dHb2RJpo[]3"BXN*)L:rkT?8?#eKb&=Wb$2\:E15g3q=Fgc"rA@s8?N4"=kU?Q4Em!f^n[,hVJJ-/:*,:L4C:25\'*6^3p18_j\LY@Kk+D+C=u]-Vl)Xgnm7P3d+'"W3N=*b]9g!AO&_$Kp5EcXHB71Kh1_X:aL\'F.p';Ek1T$NBI."($am!KD/(2Tl9j5V;!L0tQDNq>$kWc@@MAu$>A_HR@bt!o+o@IlMWIZA4NlSWEQW)hgK12;ED/EFqePtCVoU$C`e?%,UbGK%dk743SgMSZL!HHY-F:I`@;'nmXsLlQ.],MPnpDu6%A(WB=]`n(a82[MMiO*#ShCIq&j+pj\U9f]XShQaYH)`/j3*2CbfLIQCoru[A#5#$lYZu^,D(-fb*cad`I`UVV'!N"Z!JP.-jU`OV/at2_.HJ-9<-[Z#HnAHSO#ZceS8p.FHA2#q^sn:9l^_r&H'Aa5RGNbP?B61,()(isW7oV7'gEX\B0+;LKt*"\QI>gTm&,M'2qO<(s/S;JMtHCkLnC],RgK6_f[QG55kg`PPHA12ERi\Z\P^2^Is!ftu=#1c#\6j$FPQP&bK:L'ZkWTRT_DRdA-L[Nn1`e1kG"POFq\@4D5U.*3HaAefgA_Q7LhO$+Ek[598=pksgRfj?d3;GqWK-*o;29rT!+^;;b7@3LP$BhqnTON&TE5[$fUm8#ZONm8KV)CnGT*&BK*N-IJkNgK%8>jI@HVW>.a,Dd<9";)^Ms/^&YDVQrU2$DdEl1hHVUs;e`9pF;5TXO?G7>;1/"'$Osq%J*69\29S"HZ7Or*u"e#D]1IG;Tc?\To8&c,P/DSlCCH*<5oLpT3`#BmBkDBH-C16?@Ui^`m*k_T*bbQqDUi\A'X!r44:4Z*@&Gi;WA9_7a=rL<#/SERtBP,T/PlsuG9^oY!*.6J(((+_l=s/pl6eO'PX>e*M$\;iK%L&#%)af_sCJ?=!b*JLEpd3R'0A35H9[8%iBd(ff/SDg5(BS;UkQ34#KhT,?ZY#5KeT14D,,@>u/_s%Z#di*Ho&\`=DS,g>at.6s^mZbY>NBQQZ].4fNNW$<^\l;PesLMbYB6AI/:!7`ldHZ+-f!/2(p#Q6S_aREZ+ZZ']p_*"C\&4\5h]HSaLK(mACaMQCc01,hNgFT594b./C/$KH"lh=Z[ALE6o00:Sfs3D23shJPDLYo`tjE5\>>pMetrTPWBSfD86W][l3`jToXHp5+t6GClKO#<5/^;VFb?:Z&KG*,C!\F`4E15l',il&F(Y=5!jl#Nugo7Ec.fNCB.m3cUp;9@1"#!IgD^F7:OH%`#q1$?3PiJl>3Hf^M;7GZo3TsD,PAaf>=Qc#0)dns:A(J#aoBr<`J5To))RRHCNqGtf+A8.g+/oQuV9+[?lP5a]J:7UE;?He^J3`VDXB$\CO"O])Kg;6oZL)R.QP:d68HnnK+X\B0+;LKt*"a[jngToN+,_cR-;DFR@RI`ri:REV!sj.c;kn]oG27W5K0I(+smVS(H"*Ki1VoS-'[hcX#<1_fG$#AVEKWQBB9R^4s:!h%[a<4+^.#)32QTtt:666P;+RRHCNb#VI-AGHQ8Q^%qSoaQ\:QFhH'NmB&6oM5_f%UO%QhGjdfP)"+3JJP;K%dORr(r1Ld3'tP:;TXg@0hb=(TpD^X_WljXg,d\70&YA=G>+H1!3&(.]HlU^)agW`hIYXUi5Rqdl^t\596f_etrWQWBTt1JmuF@[qrK9M'2qOMTYtGUjJj:6@<.WP319Z6c:q@kj4MNt';(10a+;*E6!f=,j";5,^#c)bhODGSfM,p>+j/VZopNHE9Q*/\YhOOUQ+5U$@OGIcVJOJ,p!f=,j"B%Ao8@FqEM4X-LCZTH*2p6[RC2U-I.U?fmJOFT!#UI8F&4hIk+HYm9^Ha!r!eEa])[I_+2@rE4D'4r*JNt,4&4f3uJNtDq"+`km"p1bF#c)GBJOFT!#UI8F&4hIk+HYl>5T2Qm849q<5U("HJOJ,p!i[4HUi?Kf7!'@R,f2GN8;(h&OQqB^)E/3u7(7_4,&@@47+_\FW?)>@E5T2Qm849q<5U("HJOJ,p!i[4HUi?Kf7!'@R,f2GN8;(h&OQqB^)E/3u7(7_4,&@@47+_\FW?)>@E5T2Qm849q<5U("HJOJ,p!i_d]rn*';k;;(\8-+#![BJGUMJHK`=-:Bb5I(&6^>0V]J!p<,SX7+<\q8B+pYW%b&(/%2O95"P4(nS'jJ:?APg5b^C[_8e/'U-\.3QYq554%i@p2rqYos>BkMR/FDb?gUN;Xq9qtM,4/*JJRlKDl!^Oi#_+nOG9O0>[%C0a-i]_CQT0E:H]brZ.Z+MhEgraYY\eeOFp-Qeq.roog4SV%W<2dZ>ik/^:=J[kuT>sJAdIm%f42^dM_le2$i7Z(rb=m7W-&+i0caAEiSY'r-YqR98A=ocfd"hEN]qUFRks68/g%uPiI\T3meWP^=I]/:.u5A>k)5k(pr?O>$g1]4m_:A,]`$CHA"RJlk=D1iF)k"<"61K:GNOkkm-Y:G2dT`Np@kbuXr83+QHkZ!f=[l?4@nc&XieVTX~>endstream +endobj +8 0 obj +<< +/Contents 18 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 16 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] /XObject << +/FormXob.ae861d54278dd8d5fef0a4d3516a0636 7 0 R +>> +>> /Rotate 0 /Trans << + +>> + /Type /Page +>> +endobj +9 0 obj +<< +/BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter [ /ASCII85Decode /FlateDecode ] /Height 587 /Length 43237 /Subtype /Image + /Type /XObject /Width 963 +>> +stream +Gb"-VJ!F(u$gPpNH^l+.T_7XD-hQ0IkL,j[]_8O5]rnkMBJbMC6qXgcIYPk(Uo^.9?%ps\O\E1bg)j.TB^XZ:(j-^P^im,.[^O8nELX3[G"G&>P)iT1`=+!5)/o>oXp:AiXc5Pt=fmpD^ba\g4l%Ps",g%q&eTDR"#1C,c7j\R\G.<#$]`Je[INuZ:/4(7eR1p4Leo&/!3Gi/)5<>9+N0t*?j7e6V'"RLQH-/%O""7&CN-nKX>iSFA!,fc,^nlRZT[bo_:dE\+C6[dLjnZ4bPX:G6hnPmL[h,%jBcW6V'j?8@S4&dYus)U`$^18<5ugFA!,f/KH"jdR-P]Eef`gj:3=rrXdL04bU1aKQKit+jJ(K6CO#uK_5%,8@S4&daA`U/NnbD,BjE-7d^i9it!9+N0t*?j7e6V'"RLQH-/%O""7&CN-nKX>iSFA!,fc,^nlRZT[bo_:dE\+C6[dLjnZ4bPX:G6hnPmL[h,%jBcW6V'j?8@S4&dYus)U`$^18<5ugFA!,f/KH"jdR-P]Eef`gj:3=rrXdM5qt3qR8:Q-7ni[l0&CT!$[#f1io=oGSBk('>\mtRT7m3D<8,pEhfUjO#$WDJQm7XALpCGe[@F&A1n[b:YdlX'pkL@UK?g"NihD>$hF[bcYac?B"SR[.=&^h<b5qmVm>KI77sTfOeIQZQ;GZr#qjt2]_.)MD)b^QLDpDL6.^=U4m\^TDu;d8/nn=?XL8k[;Oe)1!7oR:.O'MV6c+>\#eK6IsCG7T-kh!g8D)5]\QZ`es*[ehYiWY%U\CXFmIU0?*S"HZCl\Se@:d*Y$ssnO7?^KDnk^>2JcME8m'TTSePTqIJ*<1e*9D@G`V9_]HFV"fo'QgYQ'XS/+L$d1bI18EP3/&,C5-r,WK=\C;8TMe/7R-n92aVrTL@@=g)#l^YOM&V960_B7Bt8rj>q7Aae-:Mo9AZgR[<">5uEFj/.8'qSIA(BD\cRVfVC@)$cB"QbO*sTDsnbN`+tgH8[?m>I^h+ChfsEGHF.I=Z(kSmF2U07\A]!T-nd5Cc(.qCgYo&]C^2SSZpdr=Eh.LRNr=c?"N@i]'_T*j8l1NC#,]5>UUZ!VML`(/RC,Lo!JBZS#\FtcD&Dg\#l)O5.P=_EJnMgabtJsGDQ:U,As']3BXK^e"6N%-SO*cesbsaG4CSkICiS)38?_TI9#aqp@C-@iiNYH1i`(QN#8i+YB7%6b7<`Y=aZ:R!!Z>R:hTDXj<8-i3WIOQtQ8q]p0t)4#[VmF?'.r)lhJg4o_"!*>p$fS*K3%S?i'se/^leG%sCUaesCYk=MF+l].o]hpa*7:7HrAL>'VD9`%aGKQIrU?J8h:^_(3bqq:.ZNLr]lD0OM.!LE7[J\-?ZqYQ'ALq]Fhg&)e@V5LCVUXMk;1,o)*c'Zq%e2,]9S^%u!cgr"8gFc73Ba;+Nn2"`EHMhKrO=lmkRGTGAJ(qT4r*Af[T08U!\)o[kQ!ZJ;[sl*0dAAlDLJ8):IYgIU0-@ff?*R)2>DHG*mc"+Yqe,Fi@mHU\T$QQ!(V._!,Oe[qS-lFc9R42q*AVU\bA^nRu0\oS2a+g\OQ-X=X=9DJsP_Dt!\Jm+\k]o&sA*jEE6/eEJf=$b3tAK0u[J+Y?tmLU?g]U:i@_Zob^7>+J:YcjGad+o8b*fl:uC:\=@\F&u;kmoLhtV_;B)r&5)0kL+X*[!7tgL_fJ'+j5?&-a4DD07m4@*TY[[Hnb&p^uWJ>eG-se2+id?[Mc2q)T^q8&9p'h>EseR-.&9265kIq7;U/(&i@=E;:#Z9Q`>gPb5`JAp`uCs.5JFhh6(dMdAobqAa2JJ?qEsUs*)NGbMQp`JT;Io/rEl^>!Zfg(oRlo%Bq3`E=pD7;q:Ek_8$.5A+3^8nl\jRl7)QpK!n!ZNl<>@$2dPbmb>?Vu9l,IbAahs9I5):qBDs%SohWcQmk/^`XFc"$PcN\5\bC$Ae^Ut>(_SPCcLGfKI53u>'Sk+"PD]#.r=nL4D4=?*Ws96e^=n2SMO0?YL"G4ldAN)Sa@G]S^)3;1eW;p@+7P79@qT8>roI(jsEmSg7?M(S[3L;[S?/EYbh7Jn=*%>U%JS[q&PDY,A!rcuq*c)M@%ZYFg@E.3b;4K*K#2G\4_AaIj22;THL@j!Cp.#:P^i(m#VWl]8H7>UOs_D9rj5p$1ZfjVV6aT$1W(;$RZT[b[$4_N461K9f[KK#SL;Jidc1i]h9nY]91MO^oFTH0g``I`2p&u6<+V&-iN2PF%I:pZR1!(lFga1(M`_Yf#jLl7ODa;+Uno<3>C$Qh7d^i9UROE%Fl3%eWA>>MSSc@gOl*KnK5FtFIOp89*e+I[Q6&@r3^UESLQH-/%O'*<*C>)M+f&=g#\iN/l'C$Qh7d^i9N8,SP`udXZV2(.uNf\/C+f$!d6V'"RLQER,#jIWr6C$Qhkm6O>*^ZofQ6&A]OZS4Q,BjFXnV<3Dkolk!,G\Oi#\ccr&CQNm+f*.#6Fs"KOHtogDWr=?)7`+*1NJ84*e+I[Q6&@r3^UESLQH-/%O'*<*C>)M+f&=g#\iN/l'4@g1%O/S9*gMYHRhFjTE;BO'6f]+86CjTh*$Asq&k;ph@i3E3B^,W`uNURreQ5%=>M@7E2haU_a,q?*coU2!IeEo^X%A'5Am1Q$J@cR0B1hR!%eJn,DKp#i)?:0W0j0r(+kef=U4k`jV1d'tk#QV[V4]l.-SR:SiBD]^BUm]8U)lM/?<6O3<"/O)GC-mnY?6gl,*f=,A/bK48?`qq>P36Wf5q;!-g'E(t(6',o$lGN!R4M9kQj6u,*MXQgt(79_%?iU)p*WMFTDMRV.jum?`/[V7Sf%BIqu;%&ou+,jJPRg]:s:WVm=V#n\*KFV`!mbLC%W>Hq>Ucq.IM;V%N_P9\5?;epS4hk#''GPAHQmkN>MdQ9pt&GfrJBEg^OFo6e?LAC*et8)if"L[q//`q-QbO8I^9"K!#:Joo(mD0S,W6!$bLZ;(+B"'c](A6]Ls"$pF;kI7,*rlR\i*:pljZoq9j5-`f^,6S:\DdLjp3gl!ibo<4b^]4[^Abl#'8VPeSj8j7B]ja1Hl8bTZdIX8!DV^JQ684,!r)U]5GYhY-iY0+NPIJq(oL,%#iOah`Sl*"6,Q-)lmqob3D9Y-oIW5u6;jMXC.o44l`HDrC6,RtNU(Bui_66TROPQJ;&d_Fr0,G\bM=W@&rc<>;"6U.iL<)=rcXEYlCG52rEc:K%C?IX&B4QC-O&T=]l%8Zl\>c71f)=d@fm>*W$5BLL5AmK^[FQHaj*u<%@-[%$JgspT4kM)MjQHZo#aKB*>7%DXgJ*3T0):pN"hIYk5F&tSPpQWk9,hDV4\R]B7^Ts`3ID51H98mXl3\J1GEWnmK82o8]\jrO;qWFDdq&PL(\NS+g2F#NX3juqGW@N;nUrii^@f($14#X2g00]8jkNC!%[oIP%rqqe:Q"rIOPBqF)mS.QFo:+&FdZ,t5S'pH/s5qZ%VUjm-CR]_,g8ARFmb,tL\7idcbG('o=5;94k5$aqa#8b0S$m/#%-OF')s9X3>jA7mJM@"_/(Sf%^Q;Xp\Z/K]YXa)NcgTb9RIOnXYoSkJDqO1fh7M4Yj5/4rP\s[R/%YBE6][d`U0-0[\[:OCTBe5q$u!tNT&d2g0+(#[OI5.HB5+Aq6XAp?K?3-[a;;LJIPs;I7LO*dB-'q0%0?8eS_D_;)7S:RafnHkN?3dqm*,lri4MH-`f^,6S:\DdLjp3>ZF<6QR+V^IiF/aOsXr2c!*eA"WZ:%jIWu\>^fhFo:i\eM\hU-c9LTUhKe^g8dmZY\E4B=c4X-fB3ELM7lnQuR+@n8Ci-0%:Y]6@a!)j!-s!L\=S1gcau`Y+C"ungE4q116Fut&f,fq1hne#LE[IT_YL](M$L.-L/`(tQC!WPmM*(L/Wb8PkH'C5BqDlTmo>QlD,HJ@EH@dB;+Vu:2km2!*Xt$5/mWh'=:>2=D[XZU*Pr\Et"/:$],.arOGI0GX*kGcumtOsqmjbg+-ptT2HK-=o[jhR#Rc][cAGNTt)j[jf7(hhP6JAnaa#(h*HB5+AT:>:gmEldM*NYg^WR@U`7iqMiH/X;+TBkrJ;7a-pmd`EnAiVL^.XrL\V*fZ(o_OJ\?QZKI;0'%iG<-_M^3EMEo9/I$rYm"D_%G+WMi`[8KJY5]o8N;d1E;VN<1Oiq=P^;nMW9lB`DGOf)&hR\#5k.g?R-#<[+=_(Ej7P#\dDD.\oLD3h2Q0/A%_+CdZ7g1t\PC[[A)9lFBV$S5n/LPbPNZ7-U*iPC#`r?,!gG82p@SAi8=>m*D;NQB5I\*\Cs8?>Yg[l#jh$nB*i8()4.MN7gB1)$f(C2ecVR_uOG7"n1o)@l@C`D"(54Y^jkXd68K2RHr3f,o.lR73bJ.FIrHnR6U;=RJq<$#ro\?k^o?;;1J&0?,ipm[(5X-FK&d=Y$6(H_DBuj*6q-86Ft:ZXdW-ThRZ`EjG%64Q.EUg^IYI%ef@7Um$Mhb*?B!WSI`6)O0+snp#9,N(LCEQS&`c@gH9CQ>F4GmF'0M06_g>`KaM=(:3#*c#&er@>]-SlK^[,l4ol#Ctm3I?3,!.`"(Zl%li;sCNE8)I/P@(?;9ji*T`W*^0&#>U2:k440NPsN-+ZP>;`67ml@`:X@k5#I-[,X=1$h6Cr_-mG8Pft]CZHP4`t'SGrQt\B[4Rqb-1N??%2>#LKp,-OH$lYV!VXifNlaG\F.aXZG$TY8,HOugYZ>\Y'):E,2DF%Li5j#[6+">rVDp4U:ZB-1X,12#_Y:0NnWC5*9L+E3qmQVVI$]Jd1fkN@eE;"CCnpUMi`[8KJY7Siesl.Dgd,&f,0JDWP(cIb\"[Y>E'H&)pZSVG!4i(IX[a7Z/kc)I*:[H52[?uhZRj]r+/5,dZBBKL3/)*/4W7#a/Y4R?21[@X`4flE-M!"D2VHO1@:!,E&oXIh0Q@(>p?'l4@0s,&^lc$OG;j&l#Z.>U6&^Pd,pp(^X20GBhO2B"sFGd#\ch"8AfJ$ZlNa$^I.k*)&KkWK_0pf84,!r)U]5GYT+h2e/^joKJ_a6U`ga%%Ef@39\gkf5tF?q65n8ad]a]7c.!b#)MBs.,,?A&+UuU,dS/I?Ud7O=/j^K)&^mm'+jJLW65kM6j((_68q]%^,,?A&+V!)Eld$#rYK%H&'s-7(^_R2ia@/We3^Oah%mh0g,GZJ!+V!ZABtun_Fr0,GYA;+J]#o65jkVdZBKN#4-u(#0[?ea@/We3^Oah%mh0g,GZJ!+V!ZABtunj6BNm%3h7g4dnSC5Bh8+7"i%)&K8Buh4Xh>L&rI\-b#SJK-hdMbmR(AK+f$8%+V!'/+cRh[1V-(rl.O.'f,SKqGJsr=7Cg3!Q*QN%pcOD6DakA`[YOUdr"g&e@1G%71u]&^l2X&CP59Ph&!TQk!,^pgSN`.b717,mk]uEm5=GkIp;XmQ3>;(ZN]omlUAWV:,_7OmZkWh7uEJ84,F))R'`=)GQ0%8=-NT:mH+t`&d]r,-NMc5Nku9kuda1iJ&;N;YM1b0Vk3)kO8s2-5JoddLjoXI1Xh?@Osn#)pO3Zc"3V0PmK3:GM\?Kf94l1=J[d9O&a,b!0s`L@@J.dp9:H&>ZS:]m\7QW!h@FZ.[(q&Ps[$b\Ho8%"sS"X+?>#\h((a,_>"\8gQqfs?s@6r"7$$s:3LY[1=#(N`pj,lK>ARuX@$=a)!g.&rE&K;G&8DFI-NrOST(HF%erpGsYTBhSYZOmr$gE92mL$"pk&[TF=A\NV.L@SBo(^*':",$Bg,H&HFZgSfWg[!fQ+5^OIL`t(a2(lMlLLp3icT$nmXRK'HKI5M/UFupWoe?$9#U1t>U*Nu,A)qlZ,s\X$L&/i-W#__L3/)*0_Sgujd"-:c='b\@G\YBWDq%**='S`eR(3;/eB08km2!2N"$1(/6]Do6ksRKm^h`@H063KG97Y`KJ_a6U`ga%%?.Pg-o?g=2Cr4Lh!3]#`XX.$\Hln?7n<_ll+hiPF6:[aF[unD^A=k[G6/U+KJ_a6U`ga%%?..Omd:I^BOU#FPuccK@#PZF(od?&kDKSe]mKM)]p4\6FG)J)Akns^m;fb+7'^#onu890P%h3s7n:TIT6t,@>lhqH+cVTs&!F83cgL/dr7]c:p?]-3)H\H0*hlF!Hgg`ufe)84,F))Ak90<2t3eX,8["$Cj&N`BOgV=#0]C:n7'FImu'jrR(dMSrU6=5*,[H<-#&CQZ#O9W_Q\%hn/$OgaAcY)pA!6,9fNKFh[X_HKRrR3u2-+&5bL3/)*0UDG#h:qk\k4;1lP?-QI@#PZF(b(Nd;`CBZKJ]JLUk(69#R!V&dC7nOMq,EMN#b5'EY6`]NfXIbfT@CKY.su4;,m2#H1Uauhf&2U"(R+JL0TBgUa)[dZ1lsfYK`Y%H__h@e'hh"NWWdKOG7"n1o)@l!DB4dWGAZIAs`n\dF#4?k>&(%)&R.B1uojV+WV^8=='_Fr0,GYA;+J]#o65jkVdZBKN#4-u(#0[?ea@/We3^Oah%mh0g,GZJ!+V!ZABtun^ARdQ=k>GnO2A&eK7A@)hTb30;_1oL>j)qm8FbMkLS(DJ?GLNmm]74Fks0Rd`HB&+KD@mnPT.Wrpo@I&^lc!OG7k11ghDY1b9ne=nP8^DC(R,pnLDLE@1jW;7T.eCRPkDGVY\/5*IVa\i5ce,ohsK'$3Na&m&%.3oh(B2n;M5[%`7:WfiAG1YI^?S9-2pYqOU?QO%$5!=[V4]+-CQ_>jE%'&S(pt-Uk;jG>p?'f(Ej7P#\h(<#\dBhYNo@ngnQ?]E53EO\5fYm$5keQL3-M0i)UOT'<^.dPFDhl=Gr8qFG)JY++uJP(!@B+*e1u_'b,p&ZcUA\g5q?WF@G_s6a"RIDA8#l^PS&,[0UJ;7nGO.1Vpd-jm)gtuF.g)SOeq)[eKXA=!7`&i5">,"*O%q_9f6qCgH%1E[#IJ;Pi@nW+=fs>=Pe[pYR7S!XT5tJmW@_&5-G3*4?$ho46`i,FlIb,T!Wh$d:*Aq^ci$<^l4Ap.(o3#9-##nUBkSmHf+^le[pkX6V%=Q5tD)iKJZ/,q=M_TTp):J:3qHUjr9rhqiVC@mG8dK.H5+7/38EcO\\uE$Bo85'$)#Gop()RXS#X*Oj'`dc$V9!XOWeG@Ks$diY;lFVY65tD+O;$lLErU+kRTs)#hR^s%#%mKdHl`\'@]ZZ3d^A)*hRr?#T/4l[9`f^E/%N%j1IembgakLaKD(KttWMb\$q>?Yq!PNR;:1MECn%WclH2R3QN?sj^ElMQCA'%4_I:OmSo[-0g-'c+3nA>cGK._87S';jESpTlcA'#hln-59*Fjs$GLfmUEk.,Tia6>.a\=_MA1S>mVAi0o/R)gA62ilr@s7F?-E0*_;L!#*.^j-O?J:08"q7C;sHHe>!(r).rp,`I\JrmuCq0[OH/1PD=;+Ob@:]\k"O9Y(3]RQ%)WMc=kZtRihmLinN65h'`NCM7kKQD3-QS,]B:8!j`dXZc8-c,m?65h(kr:ogJYJ:''6Mg5m+1M)ATTp):J:/!WJ/KMi;2E2#UTWgMDnc%r:Iuah!$Mg(#9aPD&^hMM;l_l0?rA5:J/Qf6M8OCak1FEkD*BA/YlCCAE,,>8:+J]#o65gYXBP8fV8??(,ZKeX3/mc28oB+BDjj=MhL.2JRn%j&K+$$7Qk1f'Ib9%Cs(3$>-F?JEH";t+h+C1,MP%LM$6#09KJe;M^>A^iccoPAAfQa.Z-;*d#80HZCOJ^QAu,)fo.SSF=Ct00@Y@oiqR9f7(6Br@p_@%X'/ROlk/]K/*Pi/b,6YUFlT'2Kmb!o[Tq\C$=rkVFFMN0/mWL0TBgUa)Z9qlk-4B>SQHbt(l:'i-P%0])H@nm.-I(J<"!M^W_I?%_BikUu7Yk/9"Ek$gO7c&C9aGB_K=2Ceac*6]n(E40e7\e5/Yl?]o88ak@R)pr<:L'VM777]d,65m'=4,7o9i\B:HU9Sb#J3R3/.B8uC>[=!PkOOJ:bK#QX9*Ngc24o.aYB\)me9KF]c'8@6Qu'L-k5/bD-7pCP-E/XV?XuEK@+f_?"R/i`aA38'1boG0V2^6Dg*D3B4i_n:CfdeTF$[>.pr*4IA8sRm04sSlh^@\8m)j0,IFIi:p`CC64o8;g-pbh)YJ\!p$r6L0.&^lc!OG7k11ghE-*n'$p7Id6BY0+/g`Nr>`f?La+[cmDZ"9,H:3&I$$g\&le[aTW]bTYei,GFb&VRWtSJ1I#XCSHC+`+N/GqBCo&[HeZr3Z$d]BD-(:='WSamnPdoi?edcE:.9YhIs'>q=H\$0CFo?0T&"lGK32L)6k,I)KHG3(^A]2)ATB[Dr:-:6+5cgB2&V425+/QLL17:_3o\u9?a_7uNk5/a#kp@>]?)G-Dj'?-%HmsBtTpSV5?7R6u.SijYmn+i=R7+-bK^5cc5%1TZd]4h===B;(\[oYS9#;_[t("F*.HID%W+IZ8/GNHBsE(1@_]SUmC4.]D.?c%/iL2VJ")rpC4BqPc!)KHG&eBJ6$mUPuhkY\<2l->_Fr0,G]lFe,1(tK;L&F&RRXbW2O!]elfCqeUtZI;"kBj5C`[l`J]6Gqqi(8OGf3TFG)J)B!U*+UG`U,237d]lV!"=8u@tQ>iA.&Vc"tEmg:1-e[^+aFk;J'Y+4I(1uojV+WV^8N1#_krqOVdYH6Kuaaf[,'GPaf;j9u*(X!7;9)[B9&Dhp:IB2fD+@i2[2A";uMi`[8KJYBKb.j5A4#\ch"8-\#3&%38Bui_66TROPYf+#borSg+FB;PqWDf^rhJ6Lm&^lc!OG7k11glT?SfUVTcC<1\WrD?t5I5ZK!=KIeOGf3TFG)JYTu"R]LE:c_j`8mGBT_!JqQKqQhqrAFD?AB3U`gNt%I".4^iH>JSU0OsQSr^7FSkVjDnPKWhu%fY7mHiI.[<&?ntagJ#$?_DL0TBgUa)Z9qfr(M!V,jX_QJL@3s+%9+UtsfBh1`b"85#O"(m3Cj\Hln?7nD5:=n>iQQR':m,c@_45FG)JY++uIY7S("GY'@dd."jE(+@7!N%mh0g)p=1Ga(WW[b<_+[NU2m?Ko-'R/&Iom;l\^XS(d%0CL4C+t]L4$.5mVh?W(L%0C<0p*TQ%7Id84SX#k)^?#`>(oJ>`)iYMDrKp$cOojgF'GlF)1#2T[D:%9f=Wt0V.S("JUd`=]>3lrpkfE%KF.uG7H"+0!@fUeZGh@OA?tB1c\2-`1V.:.WRQbXDFg&]uu98iebU+Wj/Or3#]d."b-<&M3*I6KJ['YKJ['pQ6@8@(KEn^"[2BDU+6d-p4`1G%I?rW^-jB7ah%C)d>@t6RSCi_I9FN0LjBe5B6lQV?,;b-1DpWI;CT(>i_bqLk&21n6J<7!GuSXbY?NYe=6toW7?YY8JOD7*Lr:%YP7G-=1\eU%(H81#_+ZcI$R]5;>3lXIhSBf[(N1]B%f52TBHS9.H^+rLN4l6Llj"iqk"85#O"(l$\dTq]]W)Ghu0eYBC1D=pNDaq%DWd'ECJFTKiQL>IT;M^82Non8ShH\9;gls8QMRtt7=%,&K69:VS<)l^Pl76ME*ma.)[;.H:WdHe26,0G`K?:-A47C0>H^GF)Bu.r]UUr0Z4Q1*Q47f7fh4pdt]crMc)n0a,X7Fh"+b8Wi@H::EfU6Q1&_0!.ZdIf\5,E\'XE.\2b9o2GhOrPI2dY0)UJ]J`XnE57s1ScLU)o,d1q-7Z9CDLp5*7U,eE(5$+5?kM:B*8-cQVHT1m"Or'h[O8Ca[*Uh9c1Z%P!Qg(9s*[SL+82n)'B0nYX%f8%,%3Z2F#\h(<#\h(nkg6$dT7?js4+HfqcbD[=UW7\-HU%Gt__Lqr,%8CR]V9]cISDJ.ip`S&2F!U7/3R^;1-]L.m84)ne#lM.,SgleNH]B#G:?nagt[06/iTTW0N;7n*S/&,@lCiH5g0K6.-$L,@:Q[*hN\ank2kIe0mq'bLhCT"3c5&#'+#\f5FKJ['YKJY$]kF[7\j`8mGBX:o]^%K0l"4BD[326^@hF'K]*D\/R02_RG^(EIPD7m$B=&Y9e:a20FFbRN/;TtAS.BdJ2^0&[YWd69EqU3jKV^Z@;kXd*7TkM=+p5.n=q_nA39*sib?<:*5/Ef[';h8U[;;IN#QKoS0E\bM@_;[clr_WLD#,.M9F.Ut80'j^6C#l;":H7od\bp"U?@Q<.q!oU6_jY]3NnpehXBqG`eW]SkCD-+X2D=)>#pb`,7%Bq[VV(ON!XC=r">b9gM#;<%uP\jo=F5=$P9[2C_faR:pWbkh=M=TF-%n+N,GYA;+J^a>*'\oM.pr+pkX&GY"9MW]"1/\-)U]5GJ:/!WQtSs/;+HoMqtF-(6TROPYRa&='1t0PD-kUeT/p)q,RVL;+aq6;2ctJm?mEZoEQpAmLn]o!UK+c9dZBKN#4-u(`e9LK-C[uA?W/`56p)/XjE"$^=st*[P//$$Zf6imY.3bsX(K\LIG]JIp%S2"[h@,NNfXJ3K94*+&rX^I[BWq5EiG.u4!!plk7-Z'T7$30TWIkZQofMp.-eG4]'I_:6\I:l,GYA;+J^`c6m@c)@B:qN?c3mSAei9"o-ri3kprpHU<0Nf0RNN[CTkF;OG7k11ghDY1a\H#1g7A6I&^)g`V:6Z+aqg62k<-\g?Q9O].hNfNfK.#YJ0kFhu2tMrpglsXb8O,,GYA;+J^a>GW_Sh[WHSQ8AsdT!?8T?at'[+k*gGYef?o"[.[Ne)U]5GJ:/!WQtROjr:(/okW*_H*&qoQl8o"cq<*8,k9EKW1qJs6L3/)*?lt%Y-CR^prUe)KD]EmjGB\78I1O[s#\ch"8-AQO87M^ImBtP,3]]`-d5Tj"_sud-XknK5&jdMb&^l2X&CQr5Rf$`_7cqsb[t"F,X*5O8L6..3KJ['YKJY$WD;2MDR58KC(#@QrRE9!@hIX&865n8adXZ`Wd[8,(l1C]=Mp>PSX&lKRml`uCUHqF<3^Oah%mh0JgrYa-J,.8pY#qs'm^4$Mf<3r=DkGSWL_`HN6TROPYRa&=0GFkJ='pCK_$s1ik8V%)LctLdCTi0an]+]!'NuP$%I".4^ci$<_!F!E5:XAkrm\tq!/DPI1o)@l!W+"8!Ad%\EY6`]NfXJ3K9-;]#\h@K84,F))R'`=)DED3+Vu:2km2"=4pYl_Fr0,GYA;+J]#o65jkVdZBKN#4-u(#0[?ea@/We3^Oah%mh0g,GZJ!+V!ZABtunOmg_b,^H8-u]9dlU\gce_8I;UVW$0_5Rn8<>H>1_S6.%T_u"JUe=&g*r'l7]>)rXmS?NfXJ3K9-;]-=BB&>#r3lW"I*]h9+V!ZABtunNZ845uNp-D4OAeQkoKikeIp%SXgY%TdOQq^VIf7nB(V^mW`*HG.dF/)i"s%S/'+Us86Btun9+3/j72nq!s_Sn5&KuLTsYK\J:/!WJCt&6l("ogrGhGt$2RqbT)7:.8=MtM04.3iN:j/&T6LUE>>'&CoYF5mRjM**%h&m%IJ;Pi@nW+=fs>=Pe[pYR7S!XT5tD)i'/65_`,\:8mE3J^H8l*boQ>0kNErpr-kjp\/^%Cb/:gVCUTeU*;,6V%=Q5tD)i'/66R76M>X]=`S]eML84qV:mGV"2CM(oA[QHueug?#fc/\">d.dcu6NM]nksq]M[8ZO%Js\8X+7oMS1La!a8XptkbZBD(\f`=UIJI1XhWfl0:S`/,.;[QeF3bEjk(>t#-BkKZ54k`F?h!3Lp9#4-u(#0`NkZq0D?)`NZF)<8D^SYag";-1-`gY`"=eTV(sKTHE)K9-;])MPOhkRAIhFHhXQZ"2a":Otd(DB>j917/Ca97N>+,huI#'R/@jB@!0oD]N<^#\h(<#\h)U2P`S6kbITrs8/O_kK]W&.3Arl&@QWUoP%%KlK5?IX[g(b^TPL?F0b3HTjQ9e%Dp-D4OB',0j$,(fdqCAb^d[\[;1s?;\6DHFK]9RauPKRJEKm^NdYBkdp696$E>('K!1'hU04pYlCY'It%NdlN/.pb@(eY>[4D6:Vn%S[X-2[E'1R;k2[)lFUB?qW/ahnWRCb4i'2Zc80K++N'JdaQZT/4h*"`fclSG8a,'rTdf09=A]lAh86,q<*_`O$MUE:@Hm!k,9r\SBMLegb;V,_HTXX^l++IX8>Ruh3sKYp*lS(UD58N*T4R9BtunCA`_1'hU04pYlWJO9^?1l"hKe9)X*5PcLQD`,K9-;]#\f7Ol-lOPH/t)r>5`Vd@s(AGOPP';_eWR6q@FR5tD)iKJ]JaI/%Y;)I:()q;3d6@F"5"X63dSom55n?iS8!YFIXrb3HZ-CEoVUq]M[81I<"#jo5%;32<)Aaa7(W#f[BA)R'`=)DED3+Vu:2km2"=4pYl_Fr0,GYA;+J]#o65jkVdZBKN#4-u(#0[?ea@/We3^Oah%mh0g,GZJ!+V!ZABtunO5l>9O@+m55tD+O5tD)iKQO9YMAQ2J1Am"Kl2##:6b<)ZRtl)_f*hCTI7Ert%Oj"5+V!'/+UseNd\A-!=ZDOdGstr:DG?+GI/76j\1+QGDCq)JG'a9f7GaENnD7iLaR9(,)f^DQ^idPm2ii3sGkM;@%*fMSTD[\;0cIf5^8_"dM]9Q>Nif>E$`LRENFW7j4h/@>\W`7R998$32XNM\!h&C=6flT@5QW;glW)qcR>k=^,8f(JrMZl967%u1C0(q1#'JqhG7S%<`&drq>R<1V[7?8K5%G1n/%@@aUZ?X7>TQ]I#7jI1P@CL5TW[Q^4)K.OE.@S^c`LDe]N12T^-?j[^Y8VP-hWkNm4&C/"G[>Tn?%_B`ATluA>!sm]>U9Wl9$/+5'gLkJnTBl)`d@-DfSC.OR@:MD>)LC:`)A_)R'`=)DED301;tA#9kVAmF,$7eQeB^13+udnJJ;E9pH3&c#45cjqV+A74[+/g"Ga*2;>#faO`mC:j;m/`\W`6*7`-LH"%'_TPYqu2Xo:qYnMiILa*]9RMQ1McL*H,shNL``H<:^kZ3e[/*hqn1L[W*=4IeEbM!951?3.q>cOCd>al]4$'>fMea1h)rOCn*7S)c_dKF/5n<0L*K($0`k'UPOpDcb8:.1sI*eMLNss:u;et#\%g6oB+;ed:XNX49D/q+OU7c"-G2SU6p8=f:qG[?J!Cpf^&rIV+%so0E%1ZR5]G\d1u'pg;sTp>S\\aJ=OfHob5B(KKYGS@aPH94fe#UM-[;UVjHJR^\l!_pHA2oeHO`:U9_e+cd!oY*g>.JR^hF-B-OVX&s\bKi?BjZHi?RQ@!*&QG$>B&/8loN7$Xp2FJgb'OC5aeU]F:%&8;-mJOgT:.lh9OEE1GCA_j.QP;S/eRGqGmJIhj=*bgH4jBS:h@O/-&7ic5MpFdGA@BR>P?BIu98`]o"H=,uR.?PBne`o$V\6cY^gt?Jml!ja,cMEdXrNAP`V/&jXJ3+V0FQVY?Qe6Vb'I$6`Lbo+S!?qt<3Y:PMESNNK_!Hn'a57Xcdc,f6R+Eh%'jMHm/Z0Z7bNLdK/jR_DM,eSd3Tr;qT(P`%DKm\u2MpH*eduQ;OqH&]B%h;J!_s=F&LbqOCdJt[#Lbo)\QBmg@O8nakrQh$]IerZ^5F8uA.Ut0TF#qKPV^WGk3';XbB2!GC(+7PkWap)Dc$IZ"kk##[#-6L[itC=98)AOqB/B57%6hN[lm)A9-rGMbb7iD^\L-s=cI6LuqgD5#cXO9NOhoPEoc3.7>0'p=*Zq:9jV)@mP'm:bA)+6eG0anp!X[_^n+7,Or-j.2mgfX*Hm8;IdLs1l7$nioZl[mB"a5rg(!$]DYXX$Dg?B^lPuE;+!Kr/)tcC],;jbP\7n]V,g3gd-I1BqnIsjo-2FJ=dIN@Uqml^pHGu&/pPa96q@e-t"33oPcQf!!pV.&tQDct(9Yt=_lLY:5NpF*B;IcNS-s+5BUkZcQFl'?ARpU=1r26YK>K9]lh'0iDFXfBQs(B/$]$V>aoN[q2B`ki?MsZO^V2=Y(27W&]mTX]gr0M56@*;M!(?mM#!b16Uqp['M_Dde5$Wb0M`gk"UN5f(:_OCS5TPY;!6P??:%0OlK+qQ`R6g]6a.Mgq*X;!CRj-QdhkoY.O*G3k]b+hC"n>ieoImHS\&.!9F3C#+GsV!R_W6K56([Z[r%h;9'Quk4G:j;N-J(Y;j+p3H/j2.UR,ABuT/X[sGb@;UZidCrCk!eAhgR1'N5R\]mYUKQ)]Ptd]-d9T!-J:(#4!RXWS+t3GD8GB5bnEW%M3?YW?;8teC9^]O,6*uS>KCF*#5BdZfLM6Ful17mfuYu&8A@Tp?^HW.eKKs5+4Z<7gb&/!6PYJ4P=cZ>\X7HjVG,OTn'25bu5.@rZKcYLaS-d>&2PP'[^iRXdq]oo_%k,9)Fq!6Pq=AVC*2j:%1nY=H)?Ak!OTq;@TqS19]6>')d1$NoiG_oe+p7K=OTsM)+OXXR'+>)7S"&$:kk=`DpYU`3JRX.#"6r.I!Dj7;Bs>^iHM-QEcTPpIfs:Re^:sTfOWtYp>`cRV5fH!a!HfO5!%8).1]S`)=R=hRF8u.K:OLL\UQ[o+oBNB[?Fb)FmQps)"-Ef;JOfm9*$EZ0V";He+-8;%HmkU#1S2p"/$VVdK$'FOTooY8-A-BU]F:%&8;-mJOfmS5bnF'+OU6<#Db2:ks2$F>p.RG3Y6!*PQO;lJ92p^J1_CI5TPY;!6P=s*&lVU]FaDdXX@iB`OC89o=%SkDaechsW>Sh4.5Y1?\eQ%[V*#DmJXfS^V%=7'8$U;%oidX>a>(>8Ettf]s*("O-?tBBo/5lKl2MZAqZ^a!ZJT(iQ_S$L?4-X:D:2Db,")k$(X/AKr^Iqdp7KU4bS&?KZH7pr+!0,P<7H9!@89/]Pd!+>7iS/on#VLdhS0MqGl[@<]H&A3fEVBCuJ"H;SIaX&N3:mMiOs;TCMZi&QEGlo)"L@$c,rFF(8ZkB#>P`>S1tLHgpf.ei*WOou>15So55TFO@.!9J1k,0fAC-65&(EsBK;#5]N_.Ygk['D-SuAiQR'A*/q]ljF/3m[YLFjR%*br'!WSQd_@S:*ZB1+6&]74ZDRYKu:`?3(RB'R="5"ViRkd$=HR[l`gVo@up38B-sKn3!O\3ag^U#YctSL1PdB6C]tae9N5(iOR&/0#H9p4gInIPJFj*R#pH36']9!@"QnOVUS2*:+*[KIq)VJ^YnlSG>';$>Sc5OQHE^LG'2mg3ZO67mpG5nYDI*EX"_o?E:kM4f@mnRRr($]jA1uasU6XJ9iHQN\`9`*-CJZFnTH\*NV@>i].rFN"UdXKr+Wc$J\`Y?AmnB(?Z`S'HOlcAB>/c0)1V@'V%6]u85u#%isd!M5pG..CW/ppjtQQ/`pCi*58&c9S01cUjdi&4d^f643%[6Q&@m2t-Nj,qg`;W?mob:]?W%`>0CXI2hYA7_sCj#u`Bl`Eu,Rd]iECdRX^rKJFARl20\oocs[7.Z*0,(*dq$cb?)Q;kX`p@%Lbtb46lJl,+q9'CfJ&F7`aoi*VTU]52qp+lZaG*R3j.*%0R*4/Fo#4U.D@+5StaEj8rb/g4\S@(O^Vok-/HBcV_e5:H;Po.Fpf,#KA#%=8<[-']8i)-@05cYO\W&^\mgLs)P'0bN\bXc=PCRN,'p%`L!6LDLfd;FK>AEr%:>GSE(3'>3WU9bdQeC0U]GT\dJt\N%23IH(<;i,1Qnjg8n,193N$L"c6UU\]>JOZ\=JO6f>g*KXJb9f3Goi!Z-q/?]0QqK7W]-f:5-aAXM.Ad>ON&6YRZf@g9`j;46ErRm._dN)*1]WB1gZFqO462eeq`BF2f*4_pB:*l\W"GneEJj;S>+dQPq*>,,7d+UiIFI3h>+EnX'\8E:U+N/O1:#SJi#;3"Tdh(Pjo@%R_38jfi/;9t\F*RRk`/@.O2C:63_1[."[dX_c;l,^?)udm*'cqu$Q159(+$M3TaX-.Z":fu1q^#!5Pq@)1akF#mg2Dq5rk*@A,=lZRRPSDN83Y7,72'eIY[CH)%d^9E["A8tm:QqcN`S\8`8+G7RMeoUgVV_8T8=P^hbk&??s_\-aN-pNhdcKOh&a^S,`dZ)Q5<-==nKur2MBY5e?cW?qn#D0:XpT@.*f]Wb/3R6Zl,R`s]Qn55k+&>kkW(!H+1O/ZMGL)gApWrm/`:lqi3r.elThss::Hg6*irJ-C+q:IQOTn'2Cm[cb8R(I"SBr-)3heT'^!GdOVeaTObQr26]/T]A2nOY$,@9X-ge?C+r[:pC?Dhl!9bT=3K@M4?kk\m(-EC(C2]-XAYMGE]d$l.hnBU7iB"a5rg'scV(;>FS'J@fo2]YKZZ>B*@gl8[ftY?C5!c7VcpU^B)V47$.=Gp?[]VTL]^2R%JO!]rM1S\\!'Lrl;/FB\LmlGP>A5(,UX#qfT!r7GM?h/gn*>V"5SqQ=`@;t!C'>20JG1fUH_-W2SCN?qE_U!22f)?pk,_8D@@dM=1U+f#hk?X[0hW,5sp2Mg+PFJ'#H)%oon]&TgZ[),`-[5%9]r"5V1c.&%rqbq>=YR&dJOfn.5bnEW%a#LMBS(F<#0!3`(4Sk9)X*HRKGc0[B5fT`[,d]D_md]+%?=bM3=u_Ur3eZbYmIm>HG5E'-VkMVcme\TflR/jq3s#YfMk,3!HfO5!%8(`MDQ_QU64*Jg^Q]IMp`C>MdQBk]bW2?cTV$8o?KE:YR@+7J4Ke-5bnEW%M3?YfslG*o"FeS>F\4t*0/6gquDfY+q:IQOTn'2X=;T\c_!FHnDHbO$%T4D+pN1#0KhQNpJ(_=!0IK8JOfm9*$dq@.($s&q>/^XIb.kLD1'/"paWdsm94"0@no/spR2_qn9cFM&8(=Q\YR^=P^>WFC4JhWl9M-G:_#KS3ZJWZk<%Q5'jj5fp6B$_QZ@\L&(PDN18M$jM?"T3VF^Uqp+46lH'eO?U&3jd0?Rp:%fMDr897]67b!KA=EKJ.@3a;I.OZNa&%DkafOIKfg!)aLs)h*C-D$FWf*4.#7/E%51trd,*Vc?XF>+#,R+4n!DC2[t+o7-Lsm^Oj;s\e.97nO9-U8Vur.d5WRnprpGCL5'Zk]LNb,^oQQs=GitWA,kT`%ebNZO:1op%BTpO`pO3+m!0IK8JOfm9*2J(Gjm(Bs5P`Dsp?^J=_5.4kX2ADOXP)P`c,l.sjk^<:)BdIY3Y6!*PQQ@Y*,IO/7sD&VhS"8#rqL!6G64]ILbtb76lH'e!0IJTOSeL]^M&c'GW^!_+/fL%1nY=H)?Ak!OTq;:80jq]l\i"2msb#C=0Gqq]D+Wc5bnF'+OU6<#Db4hS@ndjbLt?,9(S$\Hio!^^j:Q&"6r.IJMaXae;#.F!SNin??iaT#GWr4r`]#YCo["&27_$h^q]mFlO=:4"^8:P@Tcf8OLrS!I6aS/FWf*t)P:qti5KWJ'JLaNOPde!p?UnVp#2H?U=YTM?T'[HG!r1[8PM%<9s."[IA+%n.a:G?[([%pXXkUCJ1_CI5TPY;&6[reG0a,fD)9@MC9'1_p1Ab^MS/peh`ZJ@ITWpn]7qnQh0mKEfn6#JN%^/iC%mUZ1"77(aKf#c[:OoaGOnH0][2?o^bB=n&e2bJBC!Ztc)673X2mL-pITj^kgBa[hAnV*]==P[i_b')6cLnO?(t?-j)3,%gKCtdDVLKIU\-YGWqPXrAsJAs%):::n_%ItX/FcRGMLHK>ACNVI0X]RUHRU_EpeiR$)blEhf7"a?q^+=,HQ(#79dc=3g+EnjFb]I+!unGOLj7plU'P/6?XX;-6cu#Ne_WrVAej9dF3i=r@MRKC:A$t4aM>Ll%^d4ge!g=m(R%Vd[jAjZcbgEdHn@:V$X9N)=Jr=fXdhoC>@N%mUioX+59MII6;kg3Qp!"AtY1?_G@J4Kdb5bnF'+OYee(Z?64+)%iL3q[WAVYRO'J,d+G5De50\hq:j\8THuL"M4F0VLkCXsd#MF)oF.o$]?d^j#DBR@dT7_l/`br&D99gJ:\!GkNr=,-Oj:FAM8N'EAMn[l3cGdXWq]Bg<\p1uO(#X;5OgQCmTeH@:64ftUa_qX5jPWAo,j:q3?WM8LU8AUDSffK39"*P$l]FMBr(Fc6PV\#e$*%5g9$@qor,Q;OWHY^QL[M%m<[V5*dG0UN\-B5CPHK).FL.mi`$pI@9Ou<4%r&Q2=,L+J-mrOr!m:c0U8/>99\N[nI\;hW[3\fMNCVGhCM2sMe.:7K%VVs/G#$7UntONh,O$-*+tWjFY*.6UQlZ@X]Q^oJ1_CI5TPY;i.Z.kdn,&YAA#IiKA8?[DG6&'#RBnNjmi4aj$U[.O@_g*31AN3>I.Lh!t1r/*C-o*OhSP8l)#Z[.Bn#Bp6U'$Ubo["X4DS"-Ee8dN@b15>30BI/V&+l/e`RNDts\[Rf;K:H'rTNK9^3@ES@161\/gogn9ED#8/iJ&i7:cUOOX+:f#t5So55TFO@.nB%r^/6b3d;4BR8H:f#!*Vmet/)CmZ@CGPB3j:C7<^NT`3YcQiZiW["GY<++\92J!K\=`sC+Aa=L:qI%i%:q+$^WL].aes%D*E#n:M+^CB((XG$*u4mO>7JVAIgoQ^27G)OnFTR:Il^UFB]\[mjCgAP4";EVt"NXW+u3OJirbXjH@;lJb38]%V#]!u:1)e#2N4%R,!tf"_$$p6=4f)a+SG*G$MfNY9D:6lODU+q:IQOTp2Rm^jClGQl"Y=R(Wo=Z\aj20s_#BV+Crm_/SeEb=sR_/na0`SQnaQG#UX7joX)Q'V!_"OJNG2"6brJoX=HTQpd[cL+t[j*TTI)g(ka'78Y5KIMVpZsQ=7p;:7ikU1hR^EZ)i?BjN2Y$UZo^TrL8$h?/,8Fb`&)JZ"r_\"ug&8B$Pc0o/mQ=Ib0]XIRBC)`jm>PZSH:;"HrIO/<]>K`cUHW_I;>)*>O6JMa5KtSE-lKJ%UTqrtj9Z:g--luB-P0uW(Pjo@%R_4k&8,nJ$#$@(=I-(kde)32q1TB*rEm53ghZeZXS151$&Zb6Y3@WL2l>^,j/hr4nu9A%[tk+d$5@45h7#k:o,_i#Dqd&>a?Fcc955M^@Tfgo4KR4ZRkQklNif9PM:_Aql-J)/oP(bi?GVr8n)#/l4]o,li6[%?)=V\79>2$N>HYnfM6#1p2mA`TaEBY(gP[*t9eq-2V")faCEB?q4D^D"CfAFsq"+lhV2qLXqaX_2^NS@t^'F'?Vs0L,*+X9c&(nuENGq:EgY(EUlP8Z3lR,3/k0V"lc1TI2pHH6JAS\/hl?Ic'RHH/nBssa2_m4]MMjM[[cKG?`1hO5['G6R"1gan!HfO55T5G8;VH[m.iF."TF4.+:^80RUk)&]V&bB!P(?.+\j3%lFWf*t)Mg4Jg4;dF)2L,B$Ubn0#9jVQJOh#^*Jh(cJOfmS5bnF'+OWLnLbr#`JOh:/Lbtb46lJl,+q:?!80arOLpW=r8-?FgU]GT\dQe_,1fE%Y81PR61nY4E)GgY_%A\PG,GcE:[$#u2"1gan!HfO55T5G8;VH[m.iF."TF4.+:^80RU`gr\a&a>We#V@r2B]3:@f+(3DM6lODU+q:IQOTn'2]`-=\3?MTl)j@lV!%7o)1nY4E)GgY_%=iJL8-=q`6lODU+q:IQOTn'25bnEO#9jW@!g*]:JOfm9*$EZ0U]Z_`FFcsbl9M-G:_"%N!7HEh"1gan!HfO5!%8).1]Zc*U]FaDdXX@iB`OA"6lLSt+OYcm&8=BMLbo+S!?qt<3Y6!j(Pjo@%R_38jT(DI+M)+OU7c"-Ee0JOfn.5bnEW%M3=SdXapk\j3%lFWf*4-jPPb!9lbE!F6hrJ3"6U!0dRR)LuoPdXWq]Bg<\p1]YZ!+q6du&8=BGLbtb76lH'e!0II.*JcPF$Ubn0#9jV-Ee$[_O:FYscikU&Vur.dC?1"kQAKJXUAt1ShRQP,@*^oqGKp\?^Fae(kiUP3F+IsfR_/?_g^U/lH"VHf`A8UYI\<\'k==DVB>i.An&erL\p<-g+8TP2rr*YC)bs]T55bNQaG=d_`r890[90tf&$4sc;WS@q104.ttp;X._rQS7eGaTa-MF@/I:_,QgIh)JNo./GRDEEA41TrA?\DI&[EsloX:J=Q4L8Z;i?[_LpU[Pqj_LgRfVZchO8F5R_cb9&,7G3_W;IKJU]_p429;dibrSG:uH\!G/'r9p5jKPRZHnu%g,5BAs`igGkgDE^(jZM`h5a521BoS:nZnlHN'GfBtP*<&1kI5IBR0]&'AiH#A[Sc)[a,E!8&Z,`V3)rU8<9:nHGJ"s=$$rU>^cS%u+W44M[Iegq[`=#aXY8j?o]_1FM^\B7L.4?YEErPW3s80)\/YooSC@J"ik7i-&=#I0FJ*D0PQXi=d89&q;a)fX2AW?,6bpAs-jB^GS"t;/mUgG0CguIZ%h/d]*dFRQ;!o<1J0p,BO$M7d(%#?$\c36%"!Xl45bt@]O]HTIdKnYoU_11h8=(A/BiPB^9c]%sWWSAQkQW5jcj`CSoRKK53Y6#j5bqC#LbqFW&8?f8+O[(k6sA,l85fa;Xm/0I&\1J0p;[4MKl9M-W\q*BsF9@XX4Wr1Q%RcaH&8>,L,)sqY6lMaMeLrYj'/hf<+[rdUEX6WlRXXn*:%CP`Q8i\D=TpB^G*Zs55('ThtfETolVZ(k$Xb_aY;QmG:03#8XF(=ST9?r\9dPfr_ai7u6;_O0UnSG%=TS9b^L")%:+eE-.1V$BE"iP^*G92<8Gfh542+O\cmCa-"Hp7E@][$V5@^?\1[X/h#/C[5CH9ikQ$ps8s-T(q*j`jZU*2VLdXgor*f])hJ?rNUBtYr'sPF`k(E3a0&5p]Z`R/jq`&=[[RgY8*`jcZ22I9uM^A^%6[s`msIoD,iTmf0.6^jc+hog=.WXpN/PImGtPE`Vd&i=1:[^&P+Ajg++%QDToPOeHh9i4Wr2GDAA'47%-0+9r(eFrj)]hcAlIp05%GKFCH)pZa]=MPZf/h(_m&.p466ka+)[?l#M0]H1j'K\d\P,hCFoYe[d&SWQIY?'e-pFVg\M$+lGdk1D<%YY[#:7tK`nSeE]EVQOpEW]'El/WU^i'o6sTEf+tQ6X4jtagkrrOHuk_)]oa)'6AuSn/Tbf/J:YXOj7@p765'#OLX3SL\1_`Z\_qm.`bie/WKGb>92>Pn;QRL](sjYapkE_j83c;neGa&Yq6mY=O_^B=$KXsKG,cn*Mr`]9@X%sRgIU%iFlp)RC>+O\b:VFZV^IdD`!fKWBhFH$,LCT1nJ@t!dM.AjDYRj/+m*DbB$B,NqhVK]Y52'"m#YVjNGWPWLag[HuA<-5V"\kdS9Rl\K-L,n#'`-EVe]\V89/SDY!CAn/%8\_P^3Y%:tQ#)SK35gN[PFP;.D8UE]#=uStcu"6'AZ@BDf-H/o"rf5D3ST)&"\65iDQ74PqKn[BL)@@6TI'>/jHb@.,.)@i9)B2)O9clMT%19SXCZ1SeMUXL8bMLB4f`R`*@$'n72=.\42SLiA#V!A7Kt&BHDjf=P@)ugs#J-+>"deXn5&d(?WjO-FZYMZZeR*/\UoC+kO\W=[_Z=3e[;uF#]uTg%&YT6/rnU.Ap#2lLVfBV2Kq/Vk&+jB`PMQ3ac6H2^/X9"W/g,MKj:"F;44tf0EJP!@-i'(P).MEfb)1SkVQ#&J93.q11Jm5\Nq<\hBm&.[ra,-lLc-iKo*[,>WPC5])Wh?C*1pQQ0`=$=a&*]L%dSn8fKa"h^M(Oq5t84T'lS_iM@6@:dtRi7#I,_Sg;VC"1n5rktpf2e]EBK1!_fQ_Jl:5RT(snke1.UpH7:dLq>Fn90t5am99SeM8VC;U,GL#*L1$s-YNrF9]l"l$O;;Q0Zl`S/XQ%VM.+>\_M[IM1Jk\ah*+AEf7uhV13PP1n1JOPr"Bk\;jOWqA37'F5]N^`%n'iGO:Wg4$!k6/k&B!UjIjN1i_Kt9&V5TOM<.WRSMt]jE0\P/R8,)`Y/f_p_7[0s2@8UJOi^0eKR`e5\M*!S$]AViTX3J"A!ge:f:P>O3JgHXC^^0LFpHR&)Xl6f0.BDZdgY0dSCdY\"tr(XgO.N)n29hIX)ukJk24LV'OIu-g%HI2X^%Tq*AGh8]u@(3Eo'm=4>HfeVf&Mp0B0m&8CF.>,6#Pf;Vba&(P:#D;jHHiH_<5/ie(>I*VF=E?7EAMa2h;/UaTLYasiZ1-7&i$b#>XeC.s]l(@(*o&^SpH.N%Yc9PEm^>9&>/i^^hJdm,ibF'te/(`?LbuUVN--D$'IcGB?"^>i5m+/'n$utitiRqeNdZSP:]C`0RdOX(pDtRI[+O[)V.>`.JEj#*-F)>eIrVTjGZ8J?Tf#kGK#'+WDl%uU6q[;ZGN2nH?C$MX#UmhR+)!8YW9kVW[0d!i8e5j-NR!a)SQT1$KdRBfoOd<^\(>)CQ/X_aSjLC6"#lgE_9E(SR-,WD'4#"V^LR-ta!V-15dM^+_O*"tQOM9Xp#F;okbq2ZdDOYK$YXW7\\_CR19bTP0X52'sWK-0hEqdUh;Br#p&"bfnQj[I`M2^#W^"?aX\UL]'Q-0erFQlXp,#,5m4)KOhL@&`TmI0dO\io`:qKPOja2c8\D7(tKit3/(rdT.*7N11f2OPbf^VN3Ho15llZ[R*gd@$$TBcBuDZ:@4&Oa29'I_BBLUchsP&JI$o[!*Yjisbb)=f]V$c6IXpd(4Cg;@2:okj)s;a:V`9d%k%a6b@%8c3(nn[XHT!t`I=>LJ#r1-%RL51Htqq1^lT7V[s"I5Noc5NT!=YBaCH[AF<,6nr@H-2GL&`R,n5th4\A;Aj2p'%QL7"`V=5_9>]n!l>B>18.X>MCW%Vf&^D+e2D1Q86!l>hd9\sVJ1!OJ!b$!)9/^)idC<$BCPmonTa[b8b"I=6if\#aEo%)csg=1r0SF&Q(H'E`g.52=tm,\)M45V26]Ue+f1*a_J%TdEQq&8'Rb;WQ"b-eWdOnoTt`ogC*`XqACjSF`<]&($P)^`l6[%(f^$:HY@UU="QrI2/X3j*&qBRYHic%1JBbi6cIReI*HmXiTN49nWQjZ(b%U/[M\5R,reYT&3g'3Wc/]1n/j3/]dR\[,daV-e80`fn,)sqY7%-`Z6d%%83%6kso-Oc3](CMDX#^f+l9M.F*JcO=2\>65ih,6]\IM82Xh23Cg[3\Ie6^73o)0cYV@#`&oRKK53Y6#j5bqC#LbqFW&F&103QG@8a")?lZE-On&c'Q-*lZDh^QF(1J0p;[4MKl9M-W\q*BsF9@XX4Wr1Q%RcaH&8>,L,)sqY6lMa,L,#')6[&O4j7d(%#NR/,&](CMDX#^f+l9M.F*JcO=2\9\VDBRB(#=MbGJOi]E,-C,qU_11h80`3YOY/d>d]*dFRQ;!o<2qXK>BjDI@EnEIe+:I"QElnsD0QZHXY^](i@jDIAR4Ep)h2oEhEY**W3pkbXpOo@r>H.X1J56!ej)dZZnC2u(Q"fafo;@/g(ZV-cG%,BlBp]Y,k?o?"g=mj3GFN"GS(jcmH]O9-*dJ+D*MhL54$il6*PY$S[4oWe/9St(9n."=Z/"XY5cFKBukN;MGLB4&g;JcL3_M1,BW$QoE6?U+>):Z"[,T3qTarE#W+'TXU%DE&rc#Oa2KI>a;q[jCN&qMt?*qq9@9AZI]gh@)s'j5,-!mZ4qdKJ,,pRA$T/M;IId5)o"@T=mf;mzzzzzzzzzzzzzzzzzzzzzzzzzz:al>c&GXn/~>endstream +endobj +10 0 obj +<< +/Contents 19 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 16 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] /XObject << +/FormXob.86051cee0f41ed59958ff7513d50fef3 9 0 R +>> +>> /Rotate 0 /Trans << + +>> + /Type /Page +>> +endobj +11 0 obj +<< +/BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter [ /ASCII85Decode /FlateDecode ] /Height 1038 /Length 45124 /Subtype /Image + /Type /XObject /Width 552 +>> +stream +Gb"-VO+1*iTuZ]D5%Nr'@Ac"r0"!'apGI!f^(Z@WYlq[M*Gq!&Ld@XfKkb8h7;pVj^?#8NU#BHn&OW:.MnPHB0'4Yf@[;3[)pEL>)4Yuo#"(u3&)ZX8Lk@3>+Y4:@i@[m85Et=ep[;!;NdE*2srohE5'lb@WU@ejls,&*pW[4-ee$+'C?NXCmiMN`O+2TUc-FnFX\C0dD&aXBq.qSt-cu0_f-f0"+T4YcHS[-Tj`!#DX&c""I^j3fmNM^T\Fouh":5P]]]K^?;\!#D&Bj5,,Xr-@`Kl!*_tR-r!Yr-e1(m(3f/(6`T0-c_9t.t%N6GdI:p%t,D;A`&IIYW-H)HfF,`?VB9u0D>&9ro;9/:W^=,!Pmoj>rU?h4X5BMD3!uZmC<2de$AF?!&1PlT:F]a3[&omD5MRH3B7fM9_KJ7!(M'RqVp)6-_t[Z9pS.0kFTBeV!Rso!/tT(le%+ko0&Z(VfVg9hWLZ>mp5uJQ@F>\m5F]1l'l?bk3X9i*WSa=n&a%m[O]"s'9:$H7u&kCW[b1*Wj'6$(-A/Ok-m-ghWAp\MT,%aN5arXd=nM95Y1h'Pceei=%:.<;BPP_.p'@qSm?R*]f/-?I4#,IJNS;Z==ADHTAFQJPg7R7<_o'a[RG#hK?_sBCu0dXEQ-MgWNY[Um2HKV=hmM@hD`o^>%/.n\unK"hV$pLrPE.V@K6Cp9M^,N[HYi+.+!8fi3L:1(W8Nc@WA;YaJr?3"7@]=D/4XVTiB#U>moN1f60nHW_2^9.=<^.ohO_dVqudReHQ#?]Wl\Wg&%rMk"\P;M"F3Vr*m"9hP*_i6k_G%%U&1A@NJKaYNYYfBW!pSj2tpSLY,4[jLDF;eZUDdbr8Uh)K,Ad,ZVn%ejO617*G\0[\KLd@"or/cpZ1S0)o`]@4(9G9\d$qj,o.MWc;&kZ;Q&d\-?497mQl>N^=([d>hW:p_Q'hcp*''UJL>Nm+DNaA;HH(4+$JRGN;i,uRSmuKG3#AOu"eCtQB%E0YL]ZZMQ(,6o9\Ha+S''O0%#ERLV4.N;`%leq-tY@-O4gnrXkP@c"6n$lCiikO<_EMl\h[g+J)KuI2P=r3XpT]ENDZ_&g\/Y5L<S!Q>!d&cegl,33FhM'2S?EuD+cK./@C?J$$AZ\j)Z(Y*nN$7dKhic/C$j%cpY,-h@YZ\r8FBgm&X@6Wa\K\f/r^"rn6/-pWq>9MJUU*HKRTA4&`HRC&fr@SZSgf:Fp$@RkM$BX?kT^,pjFOYt_t150+IO,2"SrBp*N4Op0-TP&"P#h5J'@Q5g3!(XbC)Jb+`mHG]%WkacASNH;/1EHX1nVt=#=\;jLDEAEE757PPY8R8r;WX4.^ENrLLK>8\@,pD<[U.a^CiJ>/HWL-1TQIIIe2#7iV0WHVa7uSSe+k#lj_%m(4/9%&)#AnaDrCjk2_TG/`c]Df4l;m1!)b$$kgCXmSS.DJqZ^:@Yo2!eFac2ct"%M[]nH2FOOL[_5_T1m:P%e_&Je;o64p!hg3Q@u$d\Y1Pgm&'2Hr]=^EuXj47s[^o7^qXM&#mqMhVKTgoc_L#(mhqugF"(8TARN$$sH[i9u(Ro!FG>P]tW/=JgYOK$3@hU())^4s0LLY=jpP:e%XN4hNn27ge'15W:H/FEmXg+m`hc5s3J2uk0&X0Nset?cKrVfQ/eO8Wuku-t`gg8m@WYLAuGA^6Im8rYF`/P=ff/'tg&`2UuB"[l04P7p170+O3D=/'e$[jXUF)?rMq"3'rLJGt*9*)iT55F^6D/MOF:kTfPE6`e@+"%&=.m*auB3WuJ9&FM>lFbqoDJR]-g%Q`l//m]sI.Oss:S)t6CZuf-`L,8)B=r+o3WLiu+!1I1HgcfX]iY2]"Ho:XN>'(=In]RL#69\4Xpq;#?$GkA5Q"1Np>#FgWFK]/g(X@TRZr5u!Pm^gp)dmqhgEk!c\]HgWT`U8Ui5+LQM9;8Eqc=NG,u]!"oZj$=0h9I!&08V+3nu25:*b@^VBg0o5,-oDk$%J4oNq^Z,;(foPj;,)=m(Ss#=ucLSpb=^MmlS_LK_9W$?daqqG2%n0aoo$bVq:U:CXWrpX0IF_OLlGh-\kp3ul#b@_>Js2i!Q52%G4KD1r7h7[=4:#f_NT?Fs,!5P,]Ic\efp(,+hpNQ?X-:-DAUKc?AaH38ls08[ToBCO+GkS4Uq40VEcdC7]VQP@>q`f18*D,D"B(NW]:Pu=.hD2O7Fo:?]a^b:Ab.^4C!2]2CK+ItWc[V6D$33?%=LW0RIt,6";#gU=`BEtNF6LsofqSNIP`+,Df"_.E0="(K!%8Y!euT15_m2c5!%8Wo5Q(#UA&i,@!WZ%LrpTmdmr*^QS*WuP!6R`GC[9'_M!Rt=!6W:'Pq,?pq>Ft,5`)RFZY"T4>kTQG!9Krd]))'`e$;IE!%8X6;1M:6Z!WZ%LY.su4ZY.V,*X)P:>V'6rr3O^5P]Ynk;#gU=`>;m/Z$Q(XfqSNIP`(%kqqp"3H`cX3!!(0\Vk8EQZe8lM!WZ%LcCI$u>?`V)'EEZ(EVAbPl`\'0p*]n@jWYIue^`3l*X)P:>g1F9f^3k8UAt:YM_f"kcoV5XOqGCVeC5aj'EEZ(naXXAhf-IBZ:=oq-l:9Eo_.$XQTYZU5e.H>ZXUl\fqSNIPRDdB!)Q90J,F;/Fg^R5!!(.Fo,Rfr.FC3WJ5R#nZY%H#fqSNIPRHV8!.Y^7Zt\!MJ,EeF;1AF1ZH!+K0IJU"EB"q1OrsYd8,r=5s!N.u!!(Joie]&^lbEF7Y'7%\m^fmaH;!t)!!&m=qXeL"dlH#A9QgC9H@+eBB=-+_g!>+*0JFVr2uirBS"-"uVE>:s%C4"U!%84Z[VVqAW8O3e!'k7Go#W7Ts7VKq*reS#5QCdqiU*5)_["Hj[XN>pT3o_^$NS!'[*jfMiZ_>4!'jW-V*jnU!-FK43`HUi5UY5WL["m?'OC.TTm?\=7?gU4:d"f/U<()kW#bq(J`^/t<"At:_%p'4<"At:!=C7rWWrMX085`&eH5fm;mArMl2^li;/o6al2^nGTL\6C4TL"koICr^#69iPn'[nU!!%(4;`[kg!$GV%d\1seTZi\8FJp5\-sNuLL["nj1*j>NW#bpe.n1p-WWrOHKQ0V>l2^n61Ks$>4TJl!`[i.1#67H>aJD8s!.`1Erb1rPTm?^S1dpRJH#4.X%b1X]-Et!PL["nj7;XcF%b1X]Mq$`<*NB>E(7iEN3`HUi/0a4)*NB>E('QLZ%b1X]#%tZuTm?^SYfp93<"AsGOL\#>l2^lP.>Q?FH2t`'b,9?[*WV;)ge*@e!<@u!ZZN,e!0EqF98Dd5J.eW!W#bpe)+o\L!J$?,FJp5\-lGX4l2cEuTld4S!%8^WL["njP+cur*WRT+8r)[4JHl2_HoF@^+5o`/Q`dNPFteH;$f>tZO`M`8'S`kib<-[(6igRN.]Z1qUiZ.Mai;\lU3E(KocPYP:**/c>-Na?p``!uC<(di_u?`u$I-Bb[qgnB%E18OY+=DUMiV6rPU:b#t;Y.;`OT2&hkp+^3`:'jBoF-OK[b?sJF>2b/dsEIs+;6!lO4]sT7BtLI(4UCX(ua6ZP&X#QY&?/%ZuN.[6(HKhXAnNqg"IV0/L+"4NlE$m##s@D8tAtWrEWK0EfTZd4TH7p1`n",*0*,2]$X'8g)00nY)L=PoLCO`HNrho-0T-$oFJlLkL33=gI%lOaD&'W4=u+LT?@mEe>iMVC@UK@=]WN$D6=6LK!!m[fB%lY7j=^J8*`FBU4dhS6D:+*7,hJnGOU3a<-1%Mq##R5Y4btr,CP5KRoldbVlMim3\h[9P&9UFfS/DCaY?>kdB7=Mib<<"q=_>Pp5%2*l^hra3>NpdD=gV\5Ol7`!eEV3-`AGY)1*ac/L-_0jrSK?8t`N0+$="Nlu8ssFS>+1CeN&:*i]I\!gN'#CJO?.f4g)\`p8%/DQ>'!9tY]1mYs;nMWDHc.Ar!1ZDhuoff@72Enj\M',_?o.;E-:dl&n.5FYcS6d0tA4%/\:@>NFUBAWOP@K\'X0B&B-)OPE_/)K]Ypf"1YCNZ?/"5/)@=aBNPO4\+7,k4E4ks2SFOf4hn^_AX7B>(*"^BDZ-N01^SRrZ!L[)k@H8Jam5OVE"Yt0V;97$(%`MV;QE]YhirHki`+DBp-EGm:AD3id!mXd(LnY\7CP+lug*F70:%\7K8r;9!Xj$^9tD&P_F&M]0ohP(i2VHZQZC`_h+N9VRed#rl9!<_c-p6R(m[NO5N'kamW-\J;D5&o]>d8LYh(n!^`ZLdiCE76".eWetCeN&.T$f`AW#i`28m+47Fg]a_ORejn2;8L?llGU/h(CUBU%\,t?@):9oXDAX7iP$(n!'Qt"D:s-MS53jm4"CG1!&MV\4rrmk\Z_,=E4b*j'pkT'(M7@#;#@"7Hi=RYY]d'OT1[90iZ$3jC\>%LF2HS/R6o95SP+KTpeR;7.pNKLnYfTIQC`E964tN%jo\R]up;lSH"./c'jVXdAMd!AW^H<-aB-af3@%D1V%jF+r7Ys*jI2Pf3K$q"Im*@H@&q63,n,`k1R)0lhlUG!\R!62THCK=L$iX1ffL_6\31f-Z,Q%USB0oCN&n=.Fu'qIe0+HCDWmQ>m"O[&8ZF,@T,8kff:$ReN0>7]!ll+nMr>3CA+t:M>`DOLQl:GM,0nWqR#Q=c>n3Ld],+s::=@RnPOI2T@9eC3]Hhc"4l3"=uA#db-C"Ij.Uc!jJ2@D1FtHH[>(+O8^>PsITNWj_WoA0OjSAdMNjT*^j,V-&QW7:8+SR!_"&l5%cDFe!)QS5&"1HpDTKD[@l>/i1Z)DUu?J?H!XB"7U=rXLWLHF8bGI$$[O_DDA244B>Tc?_N0cm>"5].S2P:ZE(4hr7.kn%ohl2_Y(8r&c_<"EAUPR]ETW#iaY-lldJ:d'=0;*)YNTm?_!q!PchO]Q&5hG4$,$6^b>_7_Z)*'>nO#mVU3X3\QJI.3BmblT'bAb7'Om"7Rm%^PD.EcN0!6IV?s($//D2\D"`+IiQt7L2HBCgg7")p2clmV,"'@[NTrR;HkoVE'f?5nXS+\DZ..MYL4bsgEt;/0^u@]ReGEhr4!'0BYM6`T^2+<=ic1r,UQ-Y_l9sfD^94#C1LJ*FQ/$YBghr>j3;KW(N_h`?.3ODsVGC8i5=s'oHJV+O99>C^GfNS?73r+!D*$V^t-GR/!_2s+Xop`7EQe2NMa2-/9U3p5UOZQ`o8?D0X%NZF9RbVn'Y,gZ*&'USq2+Qeu3`'+e0Ck\RElq>9G_mBKJs!0P[=UNN51;*qr:U!QVP@S1DFVe=(b[J2j9JO#jN'+i@OTDc`AXYQtYV:/Eb$69uo*Q`PkK+jt->@O;MDfDNH::;n'GBipja-\CA'W!RP\1Z[RNR\o\TN^YJSsoJR&oP<<0*k7i("F>pen"-<\VmkLi`;m*)SEEfa5InUWFF^=OM5IVgJD?O&kbnil?tIp5:>9PEgcRu9:`t?Rp$V&RMRrsj)/XA'j>/oIOR/'1hSGDi;(;d[NGL;C:Z]_`D6lHIXVFIH;luT*MBs`$e689GKTqC?_P27SkOo]"$;s`cW[:S4:(s-U+EAXq%Zt5je5sXZZVDpeJ85lG''b?B`of*<4?g6H/b_a:!fr3,,qHRHk4>%d#fUB+G4Fsj:n+7qV5]fA9#GPDi`4`rd_/>WH9/cZ5$g7iMgI1Qhp3@X7iesY`@Vk`o^ku%=Rs9_JdYmg41uI.]lssnu$b'.!\3V=F$OL(p=dOKZo,:s7f.fE;QcVB?Dtnq5iGpe6GhY,MKR[t4L*km\?XIUnC[E`*PR^M"MH)g7ZgW)tX\,7-K.f2lX_gj]UG1,]?7:O%:?QS$M""VPa3M!hLV*jI2Pf3K$q"Im*@H@&q6306r)pa>&2X"+t23Z5KX9s+LOB*l#W@^2mPA"N/Yo"U4LUIr'jkO=1AUC'I(T@OBl\c[Mt@%]/(AiJ-+59jfV*E3_ap-9(O%Y/gTPn-:'mlk+J)94act4.U&faVns2AOaQQ4($k4oL*?IpnXl'KLM.PY;:2[5F0gYfAoM:/6Th\DN`>H4,m^=L+;r]sF:G&K+9'KqZjJD@(E;T)Bm!:iGKOJ7EV!K]OGLD1Rt#Jb^a4_2C&F9!j#eO()`8d@U)W#d^t:c\R`8+hs+6g4S!(93-p0pE/uihC`iN_hb:oK`)2N1k=nk_JFH.A:h`k`+jNF.m[UPQoZ*@[%@Qd\;'14Hp>+d\D-22O"[O=f@oI%&F%k/l=dX4ZFd:@n93*8dBkYI.[Zn;\l'K!#PskA,9"_!/uZt0l\T^!6.G"Qnjm9!$e7b9GU5*JFQK"V?s($@'QAN9Fsf$^u@]R/F$%m!#?fZB9@qs!O-fG4c:qW%Y2NYl<-NKF9%[1e[$Yjkl5fW1F6m*i"D:!Dj7YI.86-@t[Z>!6PPs,<_8$J9"$M:c\SQ@T3l7!rsW:oh[[L:h!B7V#p]D7eKS=!)Q:_USI-Z2Gu]LQHh;\s&Jdk$il%On])a/E5N-)Aj(I+NgT')9MF5`dnR.:D#f[agMai,(E,ntV70RfDKK*h>nn;dEZl3B9,"]+G#YLUZ/ig[011pTH2s8bM:F3gsie\`Trr^7+Lt!J']gnA,@Er8fRJp:""^:8K2*5C`ZF5Ps-NmM>jWXI5Io]A6f7&uZj78k1Zq2Kn]:2]$N'!.`JpjQ1Rcg16>EIe*d@e\Z!c_3^]MS<2m7uu*G[(!O5gUFBMMZnVDGl7*P?[:`JSJGPoeYDGk\39>s")kpLVG7L(!1iK/Z"*\)mCKHpCoaH:^E!+9?iTukJ,d-`WrRYolKRQd]QnQ)<`Fh(;mN$rFuUI?;c=uE&HEO/nDV9#f<-^YlH6,Q8le!ATDnJ\hgG#ia]8WH$SX=kEpKj:Q?]6;;EZeaF%_iP/`dlO?s_-M4a[/#f1T8Sl)U`SV5$%jil'!).ndW`!6E3aIeBc1^AC[Vg.bg8Z:[XYm^qpOr:%V0ed_]5XB;_O)NDl[K.3ikDWth,p-B8jaOBOch]@VBA<.p#<6t7Ro2Lb_8k5*FYOqpHhMh/da^:NKemk5ud;7OD.2WK9*X.(7pWPG>FE_rP*^qOllu4aal"JYL=VD:#AWHmXq==F]:HeB8lqq<%W2mt+V5&#kS`AbjZ:=qg*51m^)pQXPZ:C&#,-;n2Q]?fm`Wf7c6UO5UqUMc[O5e:t?1f&LFG*FSrR>GcaW:V9132O$)7S?PHPH9Z7+JUl8k3snjN7)\f?53=J9%?`lF5Z".si!%YUHMa&XAC=Xgd/un%S[0Nrjk-kXn@OB@!0IT70u;-ifXflIDrmIJ7%#UKAYVH_YdiM:o?I=2c[TJd68)6:a/l,4l0n("lll6+(uL<3hY?&b+3GXY^.MWnjt7\!p?gUYm+UJ`HL&YnM!Rt==<.&&h>?8s:Wa_IWTdSLj]4D\5$8=;+/)N0WMrJ_.-/aSHHNR9ij0_]]]"SaA<-eBToG+os5Fj0O?Er=MI&GW><83l34rkJ)VLkc?r.Xm?F3fcZ:?'F&Z_hR91SU%9.tQQ*nd:g?plMGXSDSNO(FBh&;j@KPg5dHT6uf3bY4*F4s?EaC2F.55k+PfqVXhY#miO:B!.hh"[d3rCQ]2!0l4)\)/6`6tD?f1!*9UPg4YroJWAtCu2i#%tFA,lqo;t)68P@=dUL.Q@/G_GHs^>TG6%p?AOj2Tl_(:`/,-b2)V[0!C1kt]^sG&[;0?7@W@m<*_N=q]tM)i4nOj&;#ntjbfl%%DO3Kn1\g6nDg-%8IsKd=Z3R]!q0]oC?[c/O-iiIBfs50DnM2+=P(n\q52lX2dVjU+S"iK7arU_JJZ>a-If$86;#i!kYLhOZeKoPV5\BK"s*e6ZSa92R.%3*OGb_+37J8-[>k[R>fA>@:HP?I;i:Q9_e^`3U7fclJqXs1OqYF``!^NG/.Or1-iX=G7!:o,g32WRMA<-f-_DO/,n7uoD6o\4!Yc.*P_H;cRHL%^1m^l9g-ihKGl`\(;D;-u%UAu'=ldi2a5QAC_;#lu=aiR+<97TIuJHm55)B+c%$39m*^3ob#b`(mc!"8P_QX3n4!prI"&j1WMc>N4URiA*dd7Y5Th1r'EGGu?m@@ts8CjTSXc474UM1W?$4[t?[r$^lqmc%`.qk'_cja"ot0\,.shsqnHAspO2iJl'EEU?\`]RMm-Ks"$:$9=h07a\DnRHD'EBa'*#s@eO[irC!moOVf3Ipt='s&j"b6`6`H(M.7G4F9oJJH^FRQp;arU]dp-54/CtZ+j]=V;@."JVSe'kXKo4H[N!(t:L\">[%7eS6\1,UjDZ[DRhfqSO>.M@Rp1c38p"]2(Fq9*+d5CQl2."G3Br:.i%n)#dF'L:@)^4#m=*BRem!g$pVd\Z-PSWc2D_!&Kbf\E5#nW/1tl;t``G[4/.^AI?1_B7*X(`F;*ZQ?Ye."QKbsOZ.#^F`cI(n@<@]/\*o*@b&7*$Ld!G4)T0?BY>.K<*^+UmH?r-Z-bY.!M!&L(d'TgU)VjVJH]0to%^&^[l(P8-*g"c_FS4qLZEFLpT_4>te8J]n:/;DG4\AB)42Udfpm^=(k3/@9?,mo&2IUF:p.ou>Kb2R/nOgg+l-L?L14;:TT\=mC>-Y4jqNrMR#NY+4kg7\k9;:L_@Je"KLZ-`8>YD`ZC4f^1"\RpNT&OEL@k[g0kBXm6J`?gh+'W/BtYa_4).-,f.(o\DcP,ZG`C=>nMT/)es.f\`A0Wb`T_13+1E]MYlj=!Mll7_EiSEcdDm0:a-=cKMDBTf*PI(lbe4N;?I,]Nea3UMX6Q^YY#SpDjF$#EW`(GIj9F[WO`o3S!B9UN=+iI/9Mo?&_lD`Ik*GJMKPILlbN4k6UqYIfC*(LW7-M[M6dhIWVUINmA9X(Rf-_H($kM=V>$RMH6sZlT7a*F=P12_H7.IdZ9>V73MI"c%GdKnb4Obgm=U8OmmeI@MUMfk:HR/%XAkEO#9GsKkg8tS&A<]_bk97)n^>Uc8QF;6O1M$!S%JXNIQgDMNJQ1RNF[2*O2f0eku_^c:J&7nbWIN(p=qf,[K--76.WH#2uCW]5aA?eYO':d!lWl['8.OXkqNlnPaccLSHu7fMVKjk+6"fm*I)]G?/k"iY8SbL+_l"&mKgmWFs\#Z/n2l`SObJFZeF9C)cubbIbs9Z:%ECoj-i'a((if55OIfmB:?l%R)4Gg.`YP0KK#3BpGs]Ff"h-`f"DTC/5r?^/Qgk#K6jIWg@$udQ8kgjPF$`E8%2AV@P"[#`4m5@Tkp>B^9&hj$Vg[g#W.KalTQ]M2'_hGMVo]KCfY4,GfV(VPfca40[S8g=C*U^#RnZVa5-,a1CFTo=";sf85jje),Y3+<0j0aS*(\2Y,$M*DGah=4^X=^.,]ud.D?iq=LBRlOHUk<,H^Rg^7E?'mf'6`H")K[0q1!(R(Uoh$pCXV@U@mU>4X:`cr5$%`Z8El[ZmE91df8CI?g3dOE@NKN';kKFIXP#g"O#WTuELoid,I7:8'miFZk/<)ig=Jm';gR$JD!QCZ5O:O4XE>i4EO":pmBOTgm!u)c2FTdcdkl80]n7NOeiR(@V\R0r@,:CacbLfUpKB\9`[3(`LAfgI"*t1VOkr1:qL`:8kT65af[7Y743+s6Br<=B`bB9NOQZL&8#N]lD2sVRi9XkFY>M3p`rGk\Iqfc21QLQt7C=`il<7?/FX>4NZ.r.BFU,p&b4;>)f@ZOcBDuZ>_Uaubmppc[:LB\4FuP5Hm^VuHMQTr[D+5kP:_>X%K<9KMpS%Q?c^t);p0EYH/6hRV&,rH.#?@6l'i1"Sf'Z7JVT4^?+.^('2RdG7cDE'qf/S&*#DSDHGG]";'"2N)-Lq+gPLHS`GL([V://ELil$\a$ZrRM1DX4=lcQ,LZ9>TCBA5FDE0hq0@d^!@b6MZE<[Z10l8kqKSRO_;CR1SUHU@F3NC@Zta&.dbUN=$Tk0Q1DL]WVF\uP)km"^?p5M03lUSFS_;c@-TU"Yrqc[KhTO^^No$8LH$l,f,::S0hAE[&1!K.*O>`hoXS9g(jif"ob_Vq8?F6@*9=f?f*AX)dS(.U;`#o^tFaI!!WUae9dSekuSA%LOqokNVcCo[E%F(dp[]S]&R\FT9=MCepeEL#,*=k4LhW*?EE"lb2p#%)P!=qj,LI++Kf#Vnq@Zn":6f5>NXS-acb1Un`-A&B=10l.N8T/bYe\V0>alr1BlII^b[#JO(iEh@\)/Z*Crjak*c\*>I_L4C#C8iA\OI9t#+S?N]55q)k7FZeOkSI.;pW;%uFlr=&;po:Q'\i.DQ_*X,paRl>9Rl04s+='.:`!1>/E&9^(ENK.SZ,Z:=p4cI&CW++r$W?qt%32\689*X,q&HY1A@"^k(Y^%@K.j,lJ3^f^;c?W#7g,4+D7A>Er:k9bUB$84WMc=#1EFk)*??0+`r_WlR-tFo&'H!t?kd)H0;^j,Vt9QFe$@!qQr?p^e)13)GM/b,%t*llBU"d*\^bS*1lf&\[dRs(AT=S<,LbGjs0Dk'"ccG74rkarU_8JDMI2*.#ZtkT'c"G=X`LhD%0>a+3@o;U1t[bj%\_qGHhR&%2H:eZXEJHX'+7G=X`LhD)&gCY#:$!qFu[YC5T)G@ZaB$1n]VkKl;&opXIn@EXocm@\RPu8k3u"3#n5I,$[J'OE(iE@q)0GY.aO4X`s3Go1muV_>!.6;U1t[bY?THpLsn]C-*Se(oGEeIm.*3K:LdAjW"BrcKCg+gp-k.aUc*4`+XG^%qggkI%baT3QIN#ZYRIgoNR'3oG$We6LU"V%_Y5#rh4NA.6R54+o-oM+f+VS4+uZ:HA@U!6gkSLJ*7n>$4jg;8H(>lmt>1j`R1A"j2.fENR#[;YWWc6:kD^AMH*k>6p0!g\QF0PinB)u@^2nsdlTq[D,.R?=T#>E=DYtjNn^ZndGE.D0@n^%UqaH<]9U;DW&cs`hO88I:Ka7D]3A>"*CB5q?dJeMP_M(DHhPp7o1ocko6soMA_25[2C[onUp@e3>L6%-h3[8XB]cl+eT'rnYELX(!]8?IEGgP45F9hXE)uQ9m/2iZ3iUkZcBBU@&nkY\G:;CGg?G-T^G#EI<=t<7MC;"tl[WAHG,tkEb!^?UeN[Ma\eN+m[p&^S%C(a_YOFtBfW?*=".L=6/k)ma==p4AG:[oD4*O#-JUKmDLJ(Jr:7K5[jq<0B'hW+[[F<["Wg0tM9>nRgI2?8YM[`2:NGSctXkKd)DJ.L5J!Y>)U]:8IZ.Z7:''g9^&pJT?k>(Y/'JVbu/gdH?Z#F0disO#_P_t=N$c`l9VCAEXM2"+S"r!!8XmUc>egg'ZULH[K6!%Pj]u)_]hiT\bo[TeqUnYW0>m9UB%0STDle>FI6JQIl??`aULt1@TWg;5iWn;9*bo&G3%O(YG>^E;FoZm9kM0NmlO[`PDCcFCuQIW!W\uJ,k,K$3"U-<=]O*I*4I(hbH[QTLOeU.+/%]p`kWm]YT&df.0>PmcE,o0*hbf.$Eko$cV(2n8"+:rA^#.uQi/:+:>Cl6Zo>iuItD>!;A`:cED`7kW;<#/nLDHA7&"[fB>A8cZ`4ek=uj4Z95N6ZhLu9T'&-4LIA2&fH&%da6o%PKIde`YpAVG.Q?$63hD^Xcq[@[_B8MJ1l5jUP>P6ZU=BP#;rm3a0.$e',[n.Boc0d0j])"a[M]eX&m%*4,1riTe\`03bkah"kp\Or')T9nd2us8H('%h?bHE$(]qP`0N+*V4H/+GjTqD_@a'3XUiobQ!XLQ:jC(/gm>'c0"6J^4'nOn$X%`CLaAs8HYom;buV*s:4.(u_7ekJ'iV+:Iq.bMX?^5BRp4WmQtJ2J:@_,Jj!rD;\tXD)@8hooisK+sMWm]N9DV,`\Nat1.OTNqmHP9&p3_2LdS'F-=3@P$1>f'*9G[>8B-el4Y.iT2_FSL:]e_D?oc-t3Cl2frnkQ;[[nP_-S%U$GSS[Pk9>=&>>QoFD=7ctWCs&l(U9j=B3+h'X:Z"]$#0thX9"MZt]_iP_'mdn6M(;2@fTZ.0SO.WmCl25hHIUQ>SX&uUN4#MVo(tKtRrg5`m%*:qo/(Bh73r1HPDfMpn[/3]Hhc"4l3"j>UYgL0F5?Vm0.$1_eT;Pu6u+knT\9qrZS45GNYgdoTnM*V$p0&U.>_ah-U(aVB.Ma&SdVF@GX0_kp+R8,G!0W[LVh7DRrD7E8o+2Nf8dJLT,MB2^C!NRb`$!F'D2cs<(=i]O&*L1>4ipPTZ@pJI3UaR"],)ZAh^Nf*HR''.=QHRHj6TQbKHmh!CVoY!U_#uYZS,O;Rho0'TRM2tZ(^.,eSOJ4,W;'1]8HA@U!;kC[$qSOB"X*70`XMTp3>]e)4eAn;=hBA]aP\9HLrih1LlCAP0X0=!fPb*i+OtD"D*C:*/RJ2^_LHR3LR"qr0+0.*U)UiV^iJGD1*indfa,Op'*4";a<5haNYNYYfBY48L?2':JI5LNdL#+!7S20IPh%"d6i%YaP,sPF=`\jXK'Sf%GMLMYD.ipXtBsm^u/V-0Zb7bGrI/iQl]Wti;N(8:Qo(.Rl+m#6bllH$7HW]2\&%.Ys=G?!T9XuVE3*'JUj$qbP\nKN^`T\Ce>;%QUgN@-n)^1+cjk2`l*VQ_Q@ifA6nZ`GMf9gSWk]*]@*64&/h.^IuIOK2(YKL8fcZn:1*C:N7b-Q8DJs9H@&q630=$KB0>IS@@o4F%OpS*BCG&1fY^%9H)RRXa!sbi@tqJ(MLDSCgc(%&3k'<0gkOfPWjPq'gYB&jOkePOmAQ*/NVn0tGDqj9*+t+A.C\.WUl`qbAkd!"ZUD1I4+uZ:HH3*9c0%u\(4(atr'TpD9`>9.8fXl]b7UliLQ1jE8_IUDm5RblNn9ME+K90a2CBA0mgtY3kT,N%s.E%GNc=(i?;QoEcK6%;^TZME*Xa8X-C"$[90&$aP^Z:Xkr6oI$GAetrh4N]B#+^`8j:*l]l1oQko4g1qq6!0YN^qbe0;FjmgtY3kT,MJf7t`[*T>.*//I4XZ_ZRZ++2^)]m"K:Y:8Kd[7L:jG6l;ToT$lNh`EiYE$Z-Q>Y)LpUf]bPQ*J_0':/:Ia`4tjN8M/gq1mfM,lc4Q&sIh6j>b#AQ=qi+eiT_,2*k;tp/S!\i\6"EIG,2P`\JQI.ECtIka_cBmgtY3kT,N%^NX]$rh4NA.6R54+o-oM+f+VS4+uZ:HA@U!A'Eg*rV\,@]$HH^AU68_LLGr(hsqAm6V)b_@..@uqEP!>ngQ"g>1WW>^tp7!__=f^:4?@@K:LdAjW"Br%Z9S4473q**0`SnquFDtauT*Sl-VQs7.64X%_Z@uoSrt"4/AB6n!G00@mKYr.Hf&>VK_3oGLAQB6gp+W%_Z@ub]aJOhBCu#HH5[A*="6bX!!E/:>\T>fO*O809Qkm@;UgUn=k_eE]!%I+P5Zc0RJ/!Bk)UK54"/K>="6bX!!E.9+J?Br@nA4kUHVa>`!!@N*Kbp>1rd!1l!)/=H%Zl;<%\P=u#=q/L!4nnKJ/%VcTIYJ@#=q/L!4lXR"/PG^HsL#`Z:=q_(;0gG@(la,CAn#%I#]+97dg>g@_Mr?kjIkfiIr(YNrh!eH3[!WHjA"5]`Y('G5to3nA#/(%K_`.n(ta)p?[o)$Ga$9mf4f(mf9qnGCUD"%\P>$D\Pb4_CXB8!)/=H%Zl;<%\P=u#=p!b4$K94p*]piqX&3N9CDl&R-t$d@_Mr?TQ^BA\Qgb5#=ukt$34?dhZ6V/hZ7gfmf4dr?3-_"N>jhIr>d!uo,U(tb]eROb]a%mD;)@Rq$rLFq$s&JjuYhck@_mX"^kO"eudtVXoZ@Yg!=:/r9$9\s1Mm\$JFG@9Od87V;_e-SlXHJF3V"%bI%:m3hQ\arV?Ac,dssAS#HDPJUqIGU(q<:\)W]e=GB*Zej['XLBMME7!8G6-c'@Pb!&af24/$I#8$Xa5^I.4uPr6PCBAG_^A]d,AE2D3hql%NqCmdAfoHLTa8(3jPl=c7n!Fmmot;(bkTBC!\pG%)!l+]jnk)4/P=4(bkTBFS(Ro6gpBH]jnk)44;M<"q81T)YB$j6gmQ9mhdbNNbQj%"q80i*PGsuco\*jmhdbNNcaoR!CQ=C#/+N^co]\'3sH,,@iG!"!CQcoVF?]d"Q2A&-GQVEsYf0_CBIoSrr>n!Fmms?`mt>1j`R1CW:p$J1LA,r0EP&V*g:LLKogZp#6Sl""Pk9Y\3:r5Fkh8*\`>0587ln>1a5p.1h@?`u98h]^'q6'*N5V:\L1l(K*p]s&bquGdfL2A(Ke,4UNbO`NGBf"i2tW,PHM:1MAVnAYPk%+?gH!f_.Kr#-MmAEJLYabF'(cZ0Z2'.2Ofn>ie*'$".#M;-@c>7`0iqc&VGp7]DU?\2pJ!YJ9/PFdD6`*HrJb9SkHg^@\&6$3&@7SGAYkuBMZ'jAA"^5Tm'0t9(*Jb'[-IQ1<3=PhN:S%hXNHQUSHkEUGF+AM8\F.1`C<)%bR$Rm7B#PMd%-QD%7j-:$`ireV:<+-HGG]gs:o"B\^ur:oc"26q%W`%6t>iYGMe[sOFToNpsa`pCJ6LU:2$$rMZ:U)GDNX;:doT"$ir*2NAn\Qhs+dMT.;>f.<`\nQO06moT"$>pJ+qpdb?k1gNu>!1jgS/P9TN>oStG2HELk.eG1KOMX!f_MQ)IgiHODTUmR_&>>dZY;_K3NUI"p!>d:lq%a/hkT&`t'kmPUV8NfE/QpqC.V^P?Gr1@=CG`'m1dRj7>62He^2_#mB%C7^pAhkuU6Hm\!;j#.GX`qijDi$l:`.)ROo.*!R`(Ma`1P7bFEh%0=D!`DXgpW?+J&Yg=6J^@nODMq;UaB*2>:pE7Pd.[eAa\56d^(*V_9=M-1qPW@i>R9Sc#*h=+#I^p*ll^[n>m*l(n&KmmLEcDtZ+jM!9Ccr3rfI='nhGj385Q:P!7VA#2C$$j@8*MT(K:Hg;9EU3PKOJO$Hm)m$O#`J+KS_JPukUSB0oCN&n=.Fu)GjVMFk$d!Q`4[SV)L(S`E0gEXEn!KgD-[H"t>E,X2[IsrWRl`NjGgYU`?Z=M5:p$!@FWoHH1Q0GGM!X$lF<22!>q^L>J&QhD&F%*Rg[*$lF:\3dShsTm'1_hD&F%*U2c.",>Ye%=6'FTm*<-G75=7a#*!#",>ZpNnuKukT/-FG75=77lkt:J>%0\KAJ=jkT/pO*%1_UN[+`HH.l+**YG0js2cl0',iL>FWoHH1Q0GGM!X$lF<22!>q^L>J&QhD&F%*Rg[*$lF:\\ue[ShZ)o.`),,Zn!JgmSaONn97K?lj;`I4*5*RucgRaTOflsH,1;6DXN5iqTK$P\^6\b#.TV#-ri^[@4=P[q7EOLQcH(HJ^^N7c4.glf3SC/-9^@^#mMHo`PW]Ah5j04R=7cuaK&-NM7IL4*p?^J=HhVF2UB!u'j2R)!NZF5!Ko1p!Hc;.#>!hFq0)/Z-$p>VC#+.)^$iZ/T'T;S#/Y`mckZ-m+N<3NHhZm[,C:,TBsk@VnTd#8)=nk6=3Pl='K^L)TQ^D7XBDlah>rcohZ7ipNe0MD*f!7P[sBjj4FOGruFTI].d5RMfBckX4rUnDo3?-t`!$@2s('tj^FkjIm$Es7)C2Jh#2mf:Ismf9q.^&t1(G5tpr4$\\kmV\&K"6cYj[?]Wt"-PCr!Hc;.#>!6*9D0b6e(V$7"7mNU)=nk6=3Pl='YAPUg:;:&lqmb[Fna^9dlTfMju\*rR-t#(R-t$d@_Mr?@(la,MYRaDK&=*CFN*]R""BW+!4lXR")+3"kDs7)Q\kaVl)'q\NsdWJ]A9(V'GLN:UEBH5V56WS\,^4EJ\Y'2qGS\spua02]HV]-J4ZhL^HVI9SKOBbTE"helu<%]rSeX.8:FIlEm$&?7g,37W#/Aga\T1melLIV![JGcS%0u/pl@Z;i=E4a"IR>!%m;aN3ree9s)\,5ES2QXQ;RW9Ck(VY8`6gr5,]gIYlHA@`%kad!mG=\u*muXga]e_>6%OkHB*E'>>GNOV9+iOf%6cq=ZcFhLcUfa=78D/aSR2:1)'J&ec.GN32o0Vo-@YNY^AK,r.?K`D-XO'&)Cd[[8$b\ob'mbY"D[&0g@S/$dCE2aNJ?n.?N3cB\!1`D-lNT.q>*2#f;*?8NB\n=B3o]ISNWl'rqsd,#N+2tG=q`s0!8O3FRW73f!b+V;\u(pqrH\7e'b_RHApq\;\t]<[VWRV6HV0[G7)RfM6N`*+4tl!gaN]9*55:\3k:)>R9OjKI]L'@SPcT_Xh+$m7ISHYY._/QjJ&A,mJm,p\E.#MW?*6ELafDUdha3r5WTY#,(9QkT*snh)il:_hqoQU2J(7dFYd)rqjOf="?o,eV4-l/ER5A8*2s#\FJ8(DH.FHD;gI7.XG`6FR:)ms$]AUDS+/6nC/i>.2C+dWta['Qe)t^A2.53jdh+L'RmdhFH*:;Tm-,G$,*)a]mHZ+hdJrVP1Z_I^IA'AD`"OH^K49sSdpO!JN'@_e^*ZqHMNOnPU/7@^NrsOK@Wj"EQJqI>Lm,/lQa_-Z.eZ\:3gJ]p\%/1If$g9HF;S?jMo`ZghON'>AUa%Uu^)C#*d;!pV$1`)X[/!'B*.S5.BT6qph^pE7<7es1Bf@FkIK=0=@t9[dWX\Fn[LcY?l5)P$K+$X'aM%p$u=QW(ZPb\b)GKGOA)ZrBfGWDn8YJpSHFe>OK8fS^Dt2f'?c^O6dM2.']q?9Ab-gd;5SHa"7rf9^bNMC[^&eqf>32,dslEon\+c'O/OfO,F7eSgSI(/eC-fZ!hG/Wb&qMU0)lYXCBqJla2Dp[\&W:t%Et;GOIg9=u'drDk\QJIM)b[?7^.MDjDle9HeX[S]bI1=cD:c.4g\pWI4*E+=;DEos>FQ+oqH*(cgp[*D$Deq+]:sq73R6k=eacoDQAd%[:U[N>)bb;@]Q3;sP$dt-QN!_4:/!mU=nd;J28-=MHMmMnAtBNHT<-[WT:;W][T@^A#lX#N"7DG=%g?DuK5Qg\5Qr[DT$nf5=rBFmasZ%&W4dYl2E$DH)k6YINK8tem(34#D*/92*+#@ErQ+qt-XQ't%fR6Xm+k\[MILl5F6O*S!7KhVR/ap.hm;]]&D8Q94I4U(jV/'Ul8s4HP`#+^[ZA6g%k3)SUHWQs#;Sgc4tQ:YtS0O\#t'ohqPSHDlHVLd0gh=8%GKs>]STMFZ]IF,a)_c!s/CoXrOV/N2i-=LC^=GlsS*8YRdmoS8`Z/L32OKa)c>C2nQ+U2)Ic'>3`'6U,XrY3>%paNPCjq`+mX=0i-!.9fhmQ^1`5%AY^396n93+1'Id_<^M;Itt,lHQbNM4P!n3pB"r3='fVDcb7>M$KR-`/oX=fYmESTV>`@Bnmof06Z)nPXj\NeO8>.=I7Xo=Ns-MZ(>sQem:>6+#BhGAE2(Z$-6gQYQQ5pW`3Xb0nWe%]?(b0chg4N-W9p>8Y'YDrdF*C)q1kuWJ%#A%n^`s`EQ^Lq[W`@,ZfT;5QJAqG_&L?.Im;sadZ\0Wf`mYg45'g-)rtdk)t!"tD\P.a$$p5mFR:)cYM.im9C)<]e6B,*IIt&rF^&0snCiUu#B!DBIV8[o3"S40l#M`_Bb%&hZgR/_;=D116$?VA4B[!pBdP&C^=VNbCPm0p=u$CG.*(FFV5#U$HD?HuksqePm^//"Al]PVT75A`S]nE9*8P@9HKDu*GH'KE:O;])Y15ffG0DZ1W(*?u8,t_IcdE"Zl$?&B?]fTU:MdasEUt3^LoAfIUXdrnZtdUcaQa$YHtNNaeT[6YMh&njlc`C4/b)0,Z86DL,GjSmm)_@]2d\)0kO9@BoSqDnh7Dt&ouYD&d3L;JGHCF;jJX`7le1g>ldQqqPVmAXGI[";P-&/&hm;9so%>cr8H%[H>1"FGiY#in##bgSU[;$F[Hi&fm_n9d`KO.PMN(c;KhCj\lBaU-38&Q;#S!k(-4P2ZD8ZmaQu8Crs#b;ANaYBe\ZcK9G$4F_$Y$VBa9Z/]unQ&FumkGc(cIb+-3\ni/,mIspJPXo]6USZ-2NO=0^j^b^8GLd0fEJN*i\L7*i\R'D^ds(`.jsq:prV#[+;A)PA*]fa6l1n($3N+_?iB+4fl4h>cffW-O%ZBGL[jK,X-OS'UXk#rTGi$uJ%%=5\Bs&L-o3Bj&]5l"ubRjR^Bj,M1R#)pN0B*VYY>,/h*P-KM9,Y_"48EV]]jo^!n)RiN`k$#'Fj;%6WN5K,CFSQk+A@+QlL:Q]<.XKUpeEd[4Ps#'*#W\e,WdQ#?pKr)b"I[4T"3f>nNM'"EA'JI:SN-bEJ_V.T)"RN:Kt+XUbG2[\0Ua?15-;X0-0.@C"nfk]ps/3HEEgRX3o-QD#EH=[-7_'6sgrj:[l\Sg&f67;d*P/Kn7,TdFprYF-PN1Yh4H23Xc`$bX'RV8j$(gUuHg.LcY@d%OOXTYO`'p+$,s%J6.o"=rOf1lNS[60;ApjFb30h3=-h":;'12c@J92F()eB5=?H/8_5&:g,I@9XaOBI!iK5k%ul^GWE<4)c'"!EOncGb\pRg^"Uij@^`O?^M#@`WtS9KpCkYi[jh!m*^+k(jgq3&9+qq<;o,HiQM>[H1)TcOrp06Jg.@3QaZ*9Of(QT>WDsQXfeJhDSKh2oB%`B6Y0rOLC",P<_+hE.N69I9_0^:f=L_b<+OHRBh%hI)2lP-tej/&e1/#VgBT^^Kmf47Xt0%mu"'=pAe:=hT-SCV/K$)G;?8td?[,!"n2'daLLnIpG1RRPBH'Dq!J4CO3onW4r!`"a;1Oa&omYG4kb)Omp<*2Va&/\[I)$_4%f[@+12D^IQ8h>9BemfZ0XI>?n5X)\C!)*<1(9!Qf\?((-B*.">n5Hd@#85'g2P-H6XDh'?kVX5'5!U(ndj.HJ0Q6PgH1:B8YokiKE/Hdp@HXT#iAI]AS#25!+lB$[p;7mBn$3%FCDRVZdBi/IXXZJ6"'/]4R?ajaD^`a#u2@<9')7!lU/gp^1DZocji[(99k5XaL$$=dY\:/`J43m.T:%4^hM;79Gf%_1Aq:I\k#&Us046n(WT*nh:H:lNBSRYKX+43,BOEd_UE=5cC"lBV.p"1g"h_$G%(S>HBW6s*Bk8#?W6%IDjTFD1@ZS!H@G;M*KU5Y<3#BhO7Q'Gu8,jd\Y]PS>Q-!DSVT,nTW$G38>$C]]!e@62^juTsDr9\=$37pKp^R9i"hk(h)]]q>mHs:g7fbm),+$LAgpt=H'EEduW-84I.]@OkE20>/VlQkVmjJ0l=qh=_(LMR+G8(%1&ZBmR#V)cs!-"^f!T-`S&@L$;e=bY!^_P?\!!F%d3rldaeS6r[%Gt"_&@K;t!,r&5%KJekUne.bVu^i@^&pVs6+mAN)jj,)5Yrm[/&T"$!*hh'"$f]YhuEX^e2mZ?!oF#$W)2CIr:A81NWO_bU9h0>cY!>&GeEqA]=2\6i]@JI_?eXQ!!JR=Jc^kL_KQ[oKFu^XR[]fBNWOa0V6I2NCc:l*"TVs6l5]kVb/&]8iB%%L!oF#$W79DL@[ml-=7Eh?!!JR]U8",9Dt4nP!+?#q*<:[`EH1Ne`!"sp!"_W8G5qmu,pal,*<9>)mssjT!/Oh$bKJj+!4[W,#CrHkPK@^t\A;F";U2`J,]&3q2PN,0ESrj5Yrm_0-;,Pj#[SJ_MHL_cAmnp^7tZNC6?^$,9nF\7fbjlJU.QOTMeWa0g%SBG8(%1&Y0F,NWOa0jnSB+USFT37fbjlJU.QOTQ9hsiPE>r^7tZNN.C?s&6(jknA?bXY4*G8!+?#m'`\eEC2.LB7O-ef!"_Vmh>nat1c7.!S.,I"\fL8\"TVECZ"(g,jg33R>`fWeq6`s"`8n^0iKiMY`;TZkX(m+SkjeT?!&gc7GXbBI1k6lV,FN>TeBJ>9]e)T<0d_<1+;Zg\t83554NRlB5PP;Ac=hKm@[[IP=M!)X$pSTEu>nJqc5iPGgAI),R'iPUHHNWjssUnsoa[C):g-iaMhAnGZ3FF[g*J07.9S`]'H^7t\30L,6c1A!M]0@c;/;t1nu/8J\Z3T'iE5nN;IlpSN#D@C`=G@!GgHg*-c`LuG25MYiNhu='M&8>oq;leGr7fcqIqTb@APNG:A"N@%t_%5F[DE9g>)B0XkNWQipHj>O?_0;Up]j?3^lrh&t!3ZC[JRVdOSZ&HeX6WQ2q@ha`J6.9i5d;m8:=MYsS^XK4o,S!Z"o&QAbC]1N4Wf1OEEuijhbeo*JF>b./GMuie)0'?d*TRP']9_a4&@I9^(^0eo#W8(pgLZ5hgo6>n=?MuBJ_1Q$GN88Y5mI2@Ti2kW+TLG!59+a^iuGR(47LpTtXH*.JhDRSYDSrCLA]47Bra52U>\(AJ@RbC]1N1"k75Y.g*_Oto0`c$*!7"hk)XZJ[fAbjb+@6:-:QG=kM$q2P`^!8i?:=n&!Gk.grn^H'cr^4#mF?[g+@3+)pb%M[*"hXuP"3%QTc$+X4qnN1-ktdpXqI-o2qeMb[q9em,:V=D+gpR"Xq=Q='XE/18Dt.TqNJGi,$T3IBZiB=)X!t\dRbcZgd8t+$Re,"eo1uOTI!t:,^#rH8G\uJR6.^@aG).L%RH-A8q)W'+hoAY<#Am2bP_LfL*1%.[h1trsJMJh>Im?cr.RKZ^UD!M<6#1_`eDEPD_Q_@O.UBeuo]78=ZBVT2Y:$$F@h,!f0(geH=^2n_M;PVXi1t5?u'itZs5[Ku+]khSb0eZkq1$;(afCps#ZZQ`GM]1IZE-l(e;=$C-O$@;+[d%TLHtW=@hUQ/B=FBajQ144qR2X>;].[VH^aNLMrXg6hpXUR*:\q7`8"_h1*hj.CK`W)"DN\ojcOA]eNj#8/Jk>H0s0lS`(W=nWhL&L<7o)3X`;o(?cUc6/=)"^6>:35:2%gZTFG1eG5#4ZA/)<9]=(F34VZ4H2Y]+O0B)`p\up(dZP2alZ1fRX:*]R'6f1m/.8!F(\XfincJ,arG(3*nY"sH/.'g6&QZ^!]PVWZoP[JG+lW%$%hl'4[HoelQu=rZch>7%8\cT%b&DTsV'UNq3\_D;gnmC*k?L`)q%b#A"KPB/8&(h.NmjFX0LBq+[>-M2#;l=;(mO-TOp*4fNjB0l-V@;B`iFUEkr*hYh7r?LNPt`7LYo>Nk&g8e^e[lF=;la]lDJ",quf3r[XT;p=BhNJlmcK_BYfRiK>.]mR=gU:(iJ2]QN5b;EdBp8*h32A*4'C-+*\d-0IA7q#Xo'M4\@m2@f62%'cPHGFnd#?`8(>^su`jYd8M(YJZW4hs$o6^,bj(6DEiulC$"WbLOn^=l_Qg^TPm@43"H,3Qdf"M:_QAT"ZH:SR=sm-Hc8YmkkX)1NnUJuBZ?)O1b8+mM^J-r9H8Z92gC1?]`co]LRN"'8H-^)!"KArkrqOJ$Gr].*opu"roUTi/r@^tDrr?KUS+EV-N-jC;AD3N^b=l^JNh9lG(&56U@RZ(@(d<8qp7[K?49e6?XS70BQd5/B`:E4UHh?>9ZnQJAIT]7$2%pX;C"^p>8^3BLYmI&/J)(_p9lYc/NcUt"rqgoG$+&Xn%3]1JXdA?8JQN-L#QYNEf1"H=*gYT#Q)KkP!K2gRG>t:Nk$b1YGem>17]n/5(,.d;l6cB=dbV,gFZEl.J%,M@SN@aY:R9D+#DbCu)"6Qs%\;n'k*9"AHh7@^3AVAP]Fk0Zf?UiU#ZkAt()LR&=\^Wq>Rg^"Uij@^^Qsj+C"SHZf[Z9kC`'lE*'8nUt07bkBpYQdVkVaE+g>ou\==HQ?X5d?7b;V2NriB@&U/)sX86)-X(%5g-Z4cg(,PBgSP/.QGu5')t^0#.%2j"iGQ^CgG_]APZL@8lJcdTttB?*;,?dmB(JHDfN@Gh-Qpg7tu;phAh(7pfWnTWb8O73![q1J"(>8iB-A"kN%9hUF:;YNTg9.Q;o4nPWZV).k&gV#SJr%14lf:Z$)jQlT5j+`U%,C>.,^>f"58!Q6t%$FeAEsm!36uehm(1(J.fCTsMgCYk[M@m&1*Y1^8Lb4er+,3r1A'@+g7T0+VUID['B;lRB5=XG!%l+T\Bln.<4^pGj4-j^`HV5rST81+S5UOADVNl^>ij/WnL[CpdBtI;Tr-.rkD1:`pfOA6&V;;mejM*L?Y:W+dO/oN(D#$g$Vi:UiFbq9SCr[Fh>;pYHodN[+i?<2Xhf-nDkJ/lc;E%,/%D]-499DpeknXr8jeo6[[6Mb&]jaDUDDB%-J1fT0s-B^\iJK+]bE9cDR"X:m\:IaC_e2PGAP"&nt>fX/bL>T35j"lLLRe>:5an`HdB:oq>$/YHCaVro8GSc>FSA2W2c&4(l($1?L2-&.>lB?:Ir82/oh[*p!rb[BlOmY;J+"hZdY!'j,BRGq1iYG%b?/O]nNO5$o3SZ=YAIZp(G#RhBmNEKQSYOUDjf*G6_;DQ.igPY&>3A]bi&[p(C=[8trIcfdl"g:6Pt,M^6Ihq:\/DQBWD(o^B'8aQ-Sm[a<6]6;Xq;*t^G7OXa@c#Hr4pQ@m7h]/`k+0aLCM1sK4L1BJ%D1pT6/rVTob.),aD"_FclWp2DLYInV2;O?9*P:OU,U0NSe@B?a%YcE;f$b"?!J^JeV!G[S6sX^GLNrnFh+Vod^krT285OkdpRgMFOtF-epkK,I[\QD_:AsWj_e\\OMc.mDAV]`R<<^0KlQL&'aDQP@@_s'WM9f(5eWPj0+7Ln($X4'm^>kC1JFC:/rRI42%m+,,8?GiSpIrqW&Xk%M[*DB]"(tq]_,[4.PBODi$0+-LGu%Nno$9R@d!M;Rt<,D55re32t3_g/j7dMog-Dhf0-Fd?H&DNQW>Tp!WOUdqSBFD"Hh9hF!=,@Z9feU^qp@!-r#Mt`DH;6]iW3M'Id"UpRZ)icTSU3;E;O=QHJSZ+Vo)?3D_X,u.,`@sH2`EJ=Qf@khWpOTuNnlE"QK^qgh6`=X(=H)oC:)19WO667c-S)&Ze9gB((SI\MjPcX[CadVCEI!(<,7NW)ZBGkYCQR/90-[*1ij(o`OZ!K-/B-5EFl!3"km?Co1E$od!(G&ER$`*B18u;j$0-W`T=tJEM5?^aM]gMm=dBO75b@Rqg?X_o:o+2Mp:_:L%st;IR$kDUACCL4,uHkdY$]psd+)d&q"P>b,su=%R[pRhF:i0d\W#[aAULMOE&OEAHQJVIP]>ke=CWN0XIU$(3WX9hm<#AY!"DAoFh/leW`HH=\?ehf52:i+GK]NVt]'UrB"V5gKuG]8r@2GLPY@:>bTQce$r/5O*+^[cosM%KqJV&a_YYTDdPAZB6LL#j"#,8S$1sHc*QbI>"_H<\7h/^8r1LQ7uI]6BUjH^8kp2B:-@(bcJBtG5Orq\L_?uKUGuGo*n%E4#Cbsl@R.TjD^T:3D"[`@7V#fZPk?#a*7H_aL/:FB(F@2,dQ5a=Q,4TeTX.M\c5Cq013WdM`derVhXY*Z)icTSL:i^N@!.@&dur]p;N.UBo\+0/uaI?nZ''^@0F+7U1)"#-X>()%9!Fg*d^!fV]/E;E!7q=SI7_s,YrP[d?s)2rVS/Ou7[.c\g@X)27+X2DHZgD>%mr2/?bN3TRQjFq"qAn#nM[-Iji;TY]5DpTqlI&!*.a+"K(<%>$pB8GA\;MRek-CYtmqS6F4n?Vd'V$mGMs[p-G)d7grchq>\+.6W`#ihYf_7h:VOAX4.sdV;7]4c(?I_CT'GGO1@C@Rf%oqe/G8Qdpf1S:bXL^-b]YAaM:40MBKKmQu49KhIjeut5M6$_/cEcI"W$+X(;:GE8MldCP5(KgN3]>@A4LfL+u*;M53i1EU*]2_QB:kra-3mDMY`@oLq]`k;QHc5kHhqff%6#"qdr=),2IH\O$5_u?I42V)SQm(1:DY`F=C>:nKVC_j=E`F@CILO_RD<4hV*B$cj/bf7N!g9D]H#@Y*D[R`J!.F#[mI6\,[I4[pk7"#C.11Ic;WHfg&*A.5?Vi$5lS!]K;\nY-B,SGTgVW7k:o12D#W1Xm->_a$$>%IKtk=$"XV:H:?u-Q.A>:h!_NPi]GboQMaKF4@9LTJ4p=@V'tgRMHVq4c'N5G":kXGl.k7n:Xl*;nXX7dc>0JE*D\3NX@tN6Ibfsq?,MZ(V);M$rIHk1)3LG8s5ch&^;F*@J.QQX%mQ9oAVpuT\Z/qOGon=CZp%V^ILbmX$CnnU?=2\:LAXGK[cqOE=d"W/X*oT_4/PG>o>Gdn&S4)XAmjd:9^ob$,$31N4-\==q7bGKGY_mI"R4-WZZeY4M3l*p^@V2qG-dI0O7a$b-TC&oO4VEohMJ\Pbt`/+?K2"?t+CG.:=gV/?f2bgU?$c\D?GC4'Z^r@OVofrOAfMP+"u8DE-:i_S+HKU)9&*B$b2PioJU-LiCL8HIb*UB<0GPsA85sk7D/)?aAk(mcHf:8?e=>;TpSi,NNFG4&&rSk^9]8OlGj3fQO8T&Woi.u2/OLq`&Wl>YCG=f^$R:I'ngC%k/LmPp$4$KI#%:9huD5/1AaY,Q_26MT[rl#]2(WKq]LU]ClTK2'$rXO;fa_H/5#J&VFJ"QTkrWc7Y:j)MS+Q54,h.dkM#q7"[b5ERIG5uMdH]Ons&mE#P"YZT.K=.o_;,5S@3`pmmHXln/WpC'udo)EOgA"krlKKkr0YFiM5)/H^]f^EKS-(@&%5,YAd(i&5ZrdZZ[4&@IY7XW7Ahd?<=rMa/+GFhT7T"4)9LV1>#$iThc>JGRQm8LI0X^=3&ir8`,n^5tF54Z:fYA_,&Vt6b^ZF@K#n`h4arSMX&L"H!HmBJ7GC\7;!le_6<%g-"jf,e74i-TIDREqMMIJNf_KAZJg`7>.,"3%QTd!#KJ*V^*YbC]0_&:37r:b3!g"$l($mm+-/p^R:t#JL;ZZJ[eEKHBmu'[)*s!"aJ74&@I9^&pXaJaYk//GK\TTa/:6`NnD`!/)Eg%M[*$G38>$C]]!WW3cX8q,Y!!!R&cCI$%hZ3]W&2I)N!!!!)-0H<<*-7MR\T<-g!<<*B<^=>#!!".+FEM_7*]3otJ<5>.#64`h."Uge!!!9N(hWpN!"_b!mf3=f#USs\!!!"mUtl(/;#gRrL_WbT!!!!)-.I.-S"'56!WW3cXFPU%!!#84JaWR=!!jkk*?CMK!!!!AA>%c[!!!R&i&^o=!(%!`P61db+I&PU!<<*29&Mc2!!#>W='(_`VrKiG!!!#(!pUd+!!&]\X4:rA)SVsH!!!Q\T\]\L!"_c\3rf6\64)ch!!!!)-)c"f!!%\8St7!,o'dY'!!%OO!VHp&!.[mtH3XEM5U\q3!rrQB!!%Q5Uq!r0NAo]:0$or]V58R["TSNF3k9=pc6*&T#?TfV0>IGU9>9Ef!!!SN[_05m8FPo5WA-osP5bnM>JKdbV*<79(p^S!@K'r[Nl+hM9a:`k*J4KpZ"%AO63rhZ0n/Wp_"Q'5&dXgjPOX9c4!0Ib=#Dt(KG6!G@i&abG$,-L,U]]M*,"qDG!$WHY%MW&tmf3p`^iuHm&psq78-cj27@)jn!(8m;*@S2rhZ4kJJaYjd-27rMOUcaDMCcSf!/P`Kl8r;C904pd_e,J2Sbd\+q'dW-o+p33fB-gUI]6i@amf5Gc0A+`\s/F%)7XcFoW&IoS`!N;*<7:ST_a[hAr/2f(XMMl^*D/mhap5=:)"_k4SpC^M&X/fYZVuIS!HrNEX2G:L47\3ZP0tY^&pWr'3*k_-gcTR;ImfWcTgCF&]lV/#T:-okV[^aVq/Onrm1))g=c6TM]o_YIi_\99-j!I!$[u,qG+Ke3?`BY0"TM%?Y\_i8BOLj8CqP^f>'A\Ph.n*-"X91`9g51WD4Pp*3+Y"HqSbETI8!C5S$5cWT@[u_*8Y5(aQBYVT':1@D*B"FI^#a%,72Z7cpnWSQ';`7WpSPJBHKUX#'K9\r>8SQLU`,$@_C\FPPcR2WFnekb#.Df7:9MJ[g=>CYB@n]id?F_O_BdUTf//d%cTh*1lAIGk=bfKMM2i]7;LA9u?G@LFh>.FA>PCNR7)mbobWPbVQ&-Fs;bJ`$ohtXO@9),V'C_BZjgSmGk5hcV-tEW_s__XJo)-9oJ^ZBTeUo("^i_U%6Vg8M&dl1R`?.QJR^gjsn[AZ4H87DlV5rXuE?Z\U]L99-jqi5j!W]_a@&mB%NTM'`#gF68Y$nR\@j^HOp'FjgfMOEGFnmAXsl6+sNrRd'-FcU1ufd)4aHd%j[:IiLuHA=_FDumkY&?FE6@U4oT9=(Fo`_P5j/ZBK_-`^>g9RpNh7'=a:0*jM"AE]gJt>CnpUV$r3rf7VK',3PG7!sP<:>b"Eo9:_!U:7mG;_Y/:Q.qH>^/2]VYA2Io9+p_45b-gS9fK^RQqP?#a^tN;dL4@H'bIBM7CRT(Ub;'aeNF!@t'$%I_9:HNl.jObBJ`-[ZJu>r?8(3Ai!bZ8if)&^UgSlZVOK_ah5a/K('ah>1_>N._gH^M'T_0N\g%uHgF`gB?fYKC)Q[GZKku[au-S=lIUk_SK@02Dn'uVJ!VY/XPG:#9*EqZape,H:A``O_%:u!J4M&4^=20\^HINff_hng^&\*L,S>ZdM\dEP9c>WUut9#mmaUiMRd$RC5bnCF)E1;W$.br,TmB8JYUs*kPD'bYklYA4t)%/PMZW+ka+Q2P$EndiJj0M0-"0kF0LU;sq6*/eHo[L7-POQoU9gP[<8(pYj]s3mW9ldfm;hsJ>:thp:iOk]Cip3knbg!]cgd>LrAuO?VX=Kmf3=h+aC`mm\Qi,/e$l&JHg/RH<1E28DQE2rInm&fe-&\,=JaB*Clt60]*]4-n+[2q7?&k[k_X^Epa:-6VX:FVNVO'Rp2plLM0hZbgq3H,WCBBG&uG.A4-fZ\kjt&*.R?D,L`r#g,gP^;[/?&XSJEJA[P6d\JQ+64#JP>aj#`j5m[@;$PkV`EA@*uHnJ1s%lUM`AaB"3;>5JRrC6rH,S4=i2DP;[N!!"58\Y,4bVhFDZN[@&s,PV`KO\V_INb2lpP]8JY^b/'NZL[@9UjYb(2`X2Z-27rMO\V_IcGc3J]Z(oWZYLBi2gf`;P5!#35g_1Y%KMVdV"bE&EJ!WZ&F$uSTZ@an#Co>M^&pfii&^p,3q+.N[_05m8FPo5WA-osP5bnM>JKdbV*<79(p^S!@K'r[Nl+hM9a:`k*J4KpZ"%AO63rhZ0n/Wp_"Q'5&dXgjPOX9c4!0Ib=#Dt(KG6!G@i&abG$,-L,U]]M*,"qDG!$WHY%MW&tmf3p`d/UtTN;bs/f7-+`7#2nen/VKQRXWMU[`/Mg]$>b44o<&S]S@)aU'E:-s).l;+REcYD/F!$iB%AH!!'8*Hj9WO5U_3P!!!!),s=CS?!U``7f`Si+BCb@!rrci8g?i]#bB1F4@/^]*Q6;B9T2^7F`&!!!!e-Usjc+X)EL8k)8Shf/Ys!/OgaZa8P6ishpNd(f+D2?3^W_;j7WCPdn):>\W997-'EA+uYaLlGfX>W9opm*bG'ro+2ggA_!!"/<3H3olJ,I?:i7:a*!!!sJp92e,3V0cZaMM*UgmRp!<3k2si`T9S7)Bq@Y4LS(\VdrZTC+u5Q5uh=72nPcW?R;[TV#&?ToG*C$>I*qU:LphnMtcX6I=pL6""p!<<+/Pb(eaW#',3>VKIZ]A:1@!_lqq]Cs<.?"qp4#CLGQ!!%Pr@3535\nnP0W%BiLj0%j;gD)Vhl2Ar35NR5f!!!!)3eiC0:$$Fp[smGZFB3PY0>CERlYXSE)ZTk+1BZA"g5[`RlSu&q<6l(u4Q1Xj!!!!)$LN_)k)0&KH]=M`jnCitgA'M`!!!!WR>ZQ@f_-Ia(Ne5kp-[TT+$Jb5%flY1fJGe(C-V=H*:Nmd8#k!?b93Z"!!#9KcmYBSq;MSHk2JmHr/%E2B)4XE?N'Npe&c1`gm!!)L,csfLL]th7R"K8aR[[tqYq;,`a!!"p;8iD$Cr42iDDm:sZoEO_2FbC/Pgmr3EY.*/XL#.#k%6nVXTAt9j!<<,P+Fh)p;]sQA38Z/Y-`sK[/]1GiL<%0-APP1C03pSo%]lT8(@Mp!C1=M$DM.s\!-QhN#MRA=+TL<),KXeTb*bsD64=BI_"30mn'7[WT-_DkJpbW.^SbtHo>=")@fV:0=eBM_tH@.e&DGcWnfchF"5!!'58<2FZ2#5\UPB@4H;'TU@i`4e3K[4`oL`mYf7BW^JVhA#EsaCNAdV1JIQ&Q[BT#?r]PQFiPb6Xg[@2q;u-du#SQ(tW(q@5&*)eenaW3i^iom,*kY0Dp'l%$u2=!$EJ".(4S5>'kRGVsdG.uRjcY,.4W-5s8+TY=o5Uor2r[Um=s-Il8kn(+K",UR/DYhIc7VL!f7Yr.0ErT@gQ`OLI5!!"4+`Y,?FhJXA)*MNCC+n_DF+_gh7R=s4jg0U(3Z>kSc%,1/JhjLS#`P$2qZ[QGbg.q\)hu/Lq3:\Osg54@iAh[TLq+W/fmf3>Q7&$!lc@!/7hm(URFrRBjf^3lsWNr/#Ko^!u,SsA9\`rNDiqcN-n'FLH'/F9:S"*`&auZpAa>hr+[pQ(+iB%#>&qRG,O%fm$O7ahr3?_VS:;#AMJl)(5oa=1:qBM&Dq4#@"(AQaS28.!!'58^45W=,n'%2Hh3Io2J`?d?[V<&!!!!n%Al)!8qu;CAY0A1'1(>B)2D!Nplc">6"X'2M%ar\LZA]]K;#n?.&R8I>@:i"98F0dqC;;INS((RirOV%*ntY!.ZKXm_mH:Z7qhJXY.#1op9%\hEq8C!&g7K55SJg)Ks],QH`-.Ic>_3!!!!)$=A;^9O2iAlcHOV;B5g5J,Ts^K&-It3T#/e!!#7q\c:cp[-H'=nM.eUdrY?t24]HcJ+1-9!!!"PK!lm3BAT+6C;((hitu!m1mQCp/+E%(!!%g,mbRfO[;u7?fj*_1LD*a=$F\d;ZL\l:FmB1f/P0Gm!>FWdt1fXppit$H253t?#kkkb\hl]"q*&"p"Z@?uJ4mG6,f_)"W7sdaq7pW0im<,fIZl^nW*L^apSu&",G8BWFb4cYR!!!94IX(eFpr+<`+&U4+cuF0$[;t]jiH`JYpK.B^5Bh@4rh6$8<8Dcr5sJiYcrRL?=ae*"CiqRMqp9NcK^D[tj3`c\rjMS`hqJA9zzzzzzzzzzzzzzzzzzzzzz!.rDo"6uZOMu~>endstream +endobj +12 0 obj +<< +/Contents 20 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 16 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] /XObject << +/FormXob.398ff7d81a5ce50ad4574107a7764572 11 0 R +>> +>> /Rotate 0 /Trans << + +>> + /Type /Page +>> +endobj +13 0 obj +<< +/Contents 21 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 16 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] +>> /Rotate 0 /Trans << + +>> + /Type /Page +>> +endobj +14 0 obj +<< +/PageMode /UseNone /Pages 16 0 R /Type /Catalog +>> +endobj +15 0 obj +<< +/Author (\(anonymous\)) /CreationDate (D:20260523121223+02'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20260523121223+02'00') /Producer (ReportLab PDF Library - \(opensource\)) + /Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False +>> +endobj +16 0 obj +<< +/Count 5 /Kids [ 6 0 R 8 0 R 10 0 R 12 0 R 13 0 R ] /Type /Pages +>> +endobj +17 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 1392 +>> +stream +GatU3?#uMo'RekGE?@+\>Dn/rTRQ)MG3s8s8K3$2-6:ES0F0<eTO?`6f"ZhOi8#Ab(DJ9MGm'?F%eKGagO/R?6B.gL7!QqN+<=%P-Tq#gQrkuI*?0h%#tqipUr,;i+hsXW9\Q>ZJ17@'5i!mn@oWRR#cF9[,!HNGqDJ_&*J\Ur(F@il-K-^4+\MA6DQ!6>;Al89WVlJ7)jl,/q%9-5L-WbNn?\05p%ka1$Qgd5IrDZj?:136f+b)k4Zul-.acF=AL.K*6)'6H\BFh%=?s%TVd(Oj0,41a#Rap-nIlUJm[*50fJH+'2lm2Yl/F/`->PdR^h^'gq'PR3BPHl<3Nq9>ZoU$=r"AFbFT$JD;mOb=iU#b$5S(+(MV4.^N8_I\i66pU:a3$rc8+Z,$lo#]0r($)PJ9W$MhAe;B%"1=n3!%"a9(^eZ;_==hrH=MZ(?on0Z;;+"<"%C^KG9Ckn/.`p5tej[60X8?17X-HagO8jo0cj\S.lGb/>6k-3'Pp^gF#+Ghm3P17!JRr0kWqk@5qc43lKJ72Xg=YJmb08"rsW(`PcnSMfHFp([F;j6Scb,W\)Eu%aJYL_QgUI"6ZF9FSI>Q)OX01(&p$&S"'=b$8%:Jeb2?9udp]eOc!8@KU$W&1>U/c1,cuSn<,`QJ+Ckpbtdc`B_1\`\=A-Cc>ZTnu#UQi]*LOW)U[@mdF^t==C/,K).q]i-:$OL6R4b1O8gUm,IUIEn?\m"W:b(^X7)$a;M07W]2l[C5:Jrh;@S`/TZRG2GV)1>C-$WJ#hHOr#=\2O@!!mYpY?LhUXa+_\nKbq.Ec%$MIjL5G5`9r[(=@ElX.Ths@R_RkTN@DhUVmQ)+**&b7K4+j58,J.AOleQXJh.r5e;EQ;Ji&fBTpd%)1i7+KGLq#lBPF+FV!TCIm>;>OXcKk5)l4%_g]?kj"=l0fDr6UHJaVYK6+6T$9,8j\5N^Vf5/^F#c+Xk(_E7ZjD(FK.a?!_#$~>endstream +endobj +18 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 670 +>> +stream +GatUp_2b!=&;KY!ME.fEQ/Z0j)q1D4h+"Eo*\)0n+Vt2ITEUi&ZVB>k2C*""VVOcT&d!EIs5T^h;[D/ILO7SPHq7YZTKjA?"ji?aOF2eDa^dK,qaehbN*/gt&eUhBN88\q3uGENHK$^,@oVr)FZmtX=FY^g8os_6#ZTR/7g,>5BLh;`LT0Lg@TN9!ug4'=E.aH6TT3uLIgZ@H)i/6@p/mPGeN>Bj!]KnIh7'K4.hmYdf0XGY#XbJ1i]S"psNqR=L>mIf+kW?86]1lRBPn,d_m>"/&h.)FYL]4>PgS3D]>sf)S"endstream +endobj +19 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 570 +>> +stream +GatUp9lHOU&;KZOMGXl2VUBcR2?o[URl40@p96-(*qhp.9XZC3)Q9*S?XqaTLJf_Paq@$ia6u,3Ns:0IL&RQC!$>*@h'8SCe,Y4SK_,Y"8qZ"%:6CZHOVSiY<\Zr^Bm7kEgrm,7S--Ko-BM9R:cPMl:l)r*&Mj,N^F3k(2N+%'G&RQJ:DYC>j#04mPB,X_(2`G&I!meDo@JtXh.4\^IWscH7%&G8MB4)!j&]RnX-,E0XNhZ6d3]TD>CBc$8(GUBBRO<^;:mIoLSMej\U9&'0maKuY\a?&2>K[HSE/%'%Z@],_^PuH!1T1pKTR$]P7+`aO^j!22WUg]KJ#*"Al+?KUY'oTS[?iBCW$D,Co%^^81E`HNHb8%`4b9<.lRfr*c"b;RK!A#RrH"*D<-[mM0Hm$Y#P%+B5gPUejc)dE8S*`s%pKfK`(+]>#@endstream +endobj +20 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 1165 +>> +stream +Gau0B968iG&AII3m#cHsQiK^.9FdV8@^jhN-&lNbK.[iE8k_[h-)&EZpK[b57HtK_Y/K0.HkA^GlJMNTo5[tGEr(hR)ci0K_hNKb41R:lLM'+Y8)9/@1FQRa(_[LWXR_l_RKFCf4KT+T+5sjLRD6!G8G-G@J5V!5u1fBUEK[-s8OfOffR"'hcXY'MYT5t!71]fA193kukd(AkB/\f=3_+.YigPpbQTV"o[(!sqE4'0gPn%8a)[^dm=Y]a.;DkUog"23;MB@,_1OmPa,DClTj[=mXb"aO+i_K=Gn7ck^L=m/`rpeYBE?uF%c#tB*8HadoTBOn`W3ne2V?B%5`4Z3GPd>nqo0NP[ne#`dH?gBAqe<7NFTR(X`\!:]`_Z"<=.`Y&Q_"e`I$B>g$He]hCm6Z*la`PT&ppD;9L%f(DrH]@s><"2h@6LXL%'DtYB#"Z&:&maG`ZP&tYf,;W]X05alur0+:53MFJPLh]thCh<0@Fg+kug+/S\D(E6mNfmSJHiPqNl`JSej9$9+[QD1YP`@D-*d<2t1OtM/N@t3UK78'`7O4M];e"BXeB'aoZM$ou8m0Z7Q%hGueOK![f$#nd.,tlfOMi\Y^1PbIIu^JiO?0OsLMp(MaW1-'-mD67PNuL='QuEpI)e%M-h0:KGb;iY2Z9%sTBl`$V03r*ralu^S6e]q_r4o]WIfn9N2p;AYCRGg^Ta)$s6+YBhHENX!QmJe*F/D,%A#QB.BOd(\^TlBr/f5EI.^hu->c/BYpY8d9'9G>>9kA]KAEk.8[SQOendstream +endobj +21 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 1034 +>> +stream +GatU2?#S1G'RfGR\;t-/?L/q\4J#qW(ufU9g'^fD,u,CMm,C"ZqX:]\e[2Eb0L]j>SE"[Omu=N'_6Xqqrf[uQeI9a$(bgMD"unjKbW`h3g#U`fG>(U?jb.,O+[_VqDWb0TCLFiC=9UgC7PH?p+L+g>O:Wd`64plYYtUIfd`RBaj@V`i;n0Jd#.#C*4*;^]g1q@f0uQGr.*rNd_BLWWIcpn)3V?JWLkUKefGTfhT'&DtF6#+f_\o]`"_=N3e6O(BHBa""]`<6Eh'@;K2u"J#noroe49Tn-*R`JMP]7$BF"'>aXpZu,jbSL;7beBhSls'u&c-LMn+he92Q\!$M?bqHNbe(>R_RLLXha%`?.#i:f-5oQOX[oT;Wu(CX53-MW"/Sb7&1C$N)'duY.d/9SKnD?FgX>>+ZS&i+X.*<11!SP9PeMlZm\=I#r(mYc_SA]3S$YiP\QhK(8!(ILpJ>WhpQA\DY#\"nj)jGCq$1sgY\%uM?jSV%(l9"[hBImrNLdpc&Qb\!kpP=(9mbi)\GT)4[RO3&o@W["jd\iC]V?V+Bnj1!??i2&fj(C2BE-:D;#sn%!qj;:+%#"0F]][/>TE^5#1V"5kqeubn+.2\l'Hl+^PFg+BaT_B9?8-DhfCNL=)^!2HJ2EFerc4RO7HHbZK?QA6P8V3Y'g:#Vm!]>)TC@-_uoK6AuGlcH!-J\ZBfd.$cb`2!6Nj.a--X$?mmVJh.487Q*LjAHVNsnhMU&Z'H*Llt%1kkoWF;a6j<3!AWW%K2m8Tk%+C,V]5pj@_:oQg=E^.Pa-D4ML-q'%chXAJZ_1liG60'B.2/5u==W-aBfhA0.A3.Of=]UiHFC2K8/qL<09s78P(!bf!uaVdd$".j+N3W~>endstream +endobj +xref +0 22 +0000000000 65535 f +0000000061 00000 n +0000000112 00000 n +0000000219 00000 n +0000000331 00000 n +0000000408 00000 n +0000036176 00000 n +0000036444 00000 n +0000075729 00000 n +0000075997 00000 n +0000119426 00000 n +0000119695 00000 n +0000165013 00000 n +0000165283 00000 n +0000165489 00000 n +0000165559 00000 n +0000165840 00000 n +0000165927 00000 n +0000167411 00000 n +0000168172 00000 n +0000168833 00000 n +0000170090 00000 n +trailer +<< +/ID +[<93c9370969b9413739eafac0fba5efc0><93c9370969b9413739eafac0fba5efc0>] +% ReportLab generated PDF document -- digest (opensource) + +/Info 15 0 R +/Root 14 0 R +/Size 22 +>> +startxref +171216 +%%EOF diff --git a/docs/OPEN_API.md b/docs/OPEN_API.md new file mode 100644 index 0000000..da1c4fc --- /dev/null +++ b/docs/OPEN_API.md @@ -0,0 +1,76 @@ +# Crash console — open ingest API (design) + +Triage **real device crashes** vs **synthetic / bulk test traffic** when exposing upload or query APIs beyond the Android app. Builds on RBAC ([`examples/crash_reporter/backend/README.md`](../examples/crash_reporter/backend/README.md)). + +## Problems + +- Load tests and CI may POST many similar JSON blobs → drown signal in the reports list. +- Third-party integrations need stable auth and filters without console login cookies. +- Similarity grouping already uses payload fingerprints; need **provenance** to exclude known harness traffic. + +## Payload extension (ingest) + +Add optional top-level fields on upload (backward compatible): + +| Field | Type | Meaning | +|-------|------|---------| +| `ingest.source` | string | `device` (default), `open_api`, `ci`, `manual` | +| `ingest.client_id` | string | Stable id per API key or CI job | +| `ingest.run_id` | string | Correlates a burst of reports from one test run | + +Android app omits these (defaults to `device`). Harness sets `open_api` + `run_id`. + +Store in DB: + +- Column `reports.ingest_source` (indexed) **or** JSON path in `payload_json` with generated column later. +- Prefer column for list filters and MariaDB permissions story. + +## Upload API (`POST …/api/upload.php`) + +Phases: + +1. **Phase A (now):** Accept extra JSON fields; persist inside `payload_json`; console search includes `ingest.source` in blob. +2. **Phase B:** API key header `X-Crash-Api-Key` → maps to `company_id` (RBAC); rate limit per key. +3. **Phase C:** Reject or quarantine when `ingest.source=open_api` and fingerprint matches org blocklist. + +## Console / query API (read) + +Thin JSON endpoints (session or API key): + +| Endpoint | Purpose | +|----------|---------| +| `GET /api/reports?ingest_source=device` | Default triage view | +| `GET /api/reports?ingest_source_ne=open_api` | Hide harness | +| `GET /api/reports?group=fingerprint&min_count=N` | Bulk duplicate detector | +| `GET /api/reports/{id}` | Detail (existing shape) | + +UI: filter chips on reports toolbar — **Devices only** / **Include API traffic** / tag `synthetic`. + +## Classifying synthetic traffic (heuristics) + +Mark report or tag `synthetic` when any: + +- `ingest.source` in (`open_api`, `ci`) **and** user has not promoted it. +- Same `ingest.run_id` + fingerprint count > threshold in 10 minutes. +- Identical `report_id` prefix pattern from known test fixture. + +Manual: console **Clear synthetic tag** / **Promote to real** on detail page. + +## Security + +- API keys scoped to `company_id`; no cross-tenant list. +- Separate write-only keys for CI upload vs read keys for dashboards. +- Log upload failures to existing crash event log; no stack traces in response body. + +## Android + +No change required for v1. Optional later: dev setting to set `ingest.source=manual` for dogfood builds. + +## Implementation order + +1. Document fields; parse and store in payload (Phase A). +2. List filter `ingest_source` in `ReportRepository` + UI chip. +3. API keys table + `X-Crash-Api-Key` on upload. +4. Grouped bulk endpoint for duplicate review. + +See also [CRASH_REPORTER.md](CRASH_REPORTER.md) and `examples/crash_reporter/ROADMAP.md`. diff --git a/docs/PRO_AAR.md b/docs/PRO_AAR.md new file mode 100644 index 0000000..2629043 --- /dev/null +++ b/docs/PRO_AAR.md @@ -0,0 +1,77 @@ +# Pro / OSS split (cast-core + cast-pro AAR) + +Design notes for a commercial build without forking the cast protocol. **Not implemented yet** — complements [COMMERCIAL.md](COMMERCIAL.md) (dev-gated Play Billing placeholders). + +## Goals + +- **OSS (`cast-core`)** — protocol, UDP/TCP transport, receiver, sender engine, crash reporter client, settings model. Publishable repo for trust and forks. +- **Closed (`cast-pro` AAR)** — entitlements, license check, optional premium codecs/UI, Play Billing glue. Distributed via private Maven or Play App Bundle module (not on public Maven). +- **Single APK** on Play: `app` depends on `cast-core` + `cast-pro` at compile time; F-Droid / OSS build uses `cast-core` only with stub entitlements. + +## Entitlements API (in core) + +Keep a thin interface in core so free code never imports Play Billing: + +```java +public interface CastEntitlements { + boolean isPro(Context ctx); + int maxReceivers(); + boolean allowsResolution(CastSettings.Resolution r); + boolean allowsStreamProtection(); +} +``` + +- **Default (OSS):** `FreeCastEntitlements` — e.g. max 1 receiver, cap outgoing long edge at 480 unless dev override, FEC/NACK off or dev-only. +- **Pro:** `ProCastEntitlements` in AAR — reads signed license / Play purchase cache, returns higher limits. + +Call sites (minimal first pass): + +| Area | Gate | +|------|------| +| `CastTuningEngine` / sender encode | `allowsResolution()` | +| Multi-receiver connect | `maxReceivers()` | +| Stream protection UI | `allowsStreamProtection()` | +| Developer resolution UI modes | Always allowed when `BuildConfig.DEBUG` or `AppPreferences` dev flags | + +`CommercialFeatures` stays **developer toggles** for ads/IAP/Play review; **pro entitlement** is runtime product state from Billing + AAR. + +## Module layout (Gradle) + +``` +cast-core/ # android library, published OSS +cast-pro/ # android library, proprietary, implementation project OR maven coords +app/ # application +``` + +`app/build.gradle`: + +- `implementation project(':cast-core')` +- `implementation 'com.foxx.androidcast:cast-pro:…'` (release) or `implementation project(':cast-pro')` (internal) +- Optional `ossRelease` flavor: `implementation project(':cast-core')` only + `FreeCastEntitlements` + +**ServiceLoader or manifest meta-data** to bind `CastEntitlements` implementation avoids `compileOnly` reflection hacks. + +## Play Billing flow + +1. User buys SKU (see `InAppPurchaseCoordinator.SKU_PREMIUM`). +2. Pro AAR verifies purchase token, caches entitlement locally (encrypted prefs or Play Library `BillingClient` + acknowledge). +3. `CastEntitlements` refreshes; UI shows unlocked resolutions / receivers. +4. Offline grace period (e.g. 7 days) documented in product terms. + +## Build & release + +- Version **cast-core** and **cast-pro** independently; app pins both in `gradle/libs.versions.toml`. +- CI: OSS job builds `cast-core` + F-Droid APK; private job signs `cast-pro` and release APK. +- Do not embed license secrets in OSS; pro AAR may contain obfuscated verification only. + +## Migration steps (suggested order) + +1. Extract `CastEntitlements` + `FreeCastEntitlements` in app (no module split yet). +2. Wire gates at encode + multi-receiver (behind dev “simulate free tier” toggle). +3. Create `:cast-core` library — move `network/`, `cast/`, shared settings (large refactor). +4. Add `:cast-pro` with `ProCastEntitlements` + Billing bridge. +5. Play Console product + privacy policy ([COMMERCIAL.md](COMMERCIAL.md)). + +## Relation to sender resolution test + +Developer **Sender resolution UI mode** ([`SenderResolutionUi`](../app/src/main/java/com/foxx/androidcast/sender/SenderResolutionUi.java)) is for UX experiments only. Production free tier should still enforce caps in `CastTuningEngine` via entitlements, not by hiding spinner entries alone. diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index 74102cc..c12a216 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -66,7 +66,17 @@ All **off by default**. Enable only in **Developer settings** for internal testi | AdMob / unit IDs / banner layouts in main UI | TODO | | Play Console products + privacy policy | TODO | -See [COMMERCIAL.md](COMMERCIAL.md). +See [COMMERCIAL.md](COMMERCIAL.md). Pro/OSS module split: [PRO_AAR.md](PRO_AAR.md) (design). + +--- + +## Crash console open API + +| Item | Status | +|------|--------| +| `ingest.source` / run metadata in payload | Design — [OPEN_API.md](OPEN_API.md) | +| List filters + synthetic tagging | TODO | +| API key upload auth (per company) | TODO | --- @@ -126,6 +136,8 @@ See [ndk/README.md](../ndk/README.md). | Multi-receiver 1:N | Done (soak or gate for alpha) | | Legacy `ReceiverActivity` in manifest | Orphan — remove or wire | | Immersive A/V presets (dev) | Experimental | +| Sender resolution UI modes (dev: Separated / Legacy / Combined) | Done (test) | +| True dual-stream encode (480p + 720p simultaneous) | Deferred | --- @@ -142,8 +154,11 @@ See [ndk/README.md](../ndk/README.md). ## Related docs +- [GIT_FLOW.md](GIT_FLOW.md) — green `master` / `next` development cycle ([PDF](GIT_FLOW.pdf)) - [README.md](../README.md) — quick start - [USB_HDMI_CAST.md](USB_HDMI_CAST.md) — D & E - [COMMERCIAL.md](COMMERCIAL.md) — ads / IAP / Play +- [PRO_AAR.md](PRO_AAR.md) — cast-core / cast-pro entitlements +- [OPEN_API.md](OPEN_API.md) — crash ingest triage API - [OTA.md](OTA.md) — backend layout v0 - [CRASH_REPORTER.md](CRASH_REPORTER.md) — crash upload diff --git a/docs/_pdf_build/build_git_flow_pdf.py b/docs/_pdf_build/build_git_flow_pdf.py new file mode 100644 index 0000000..4d52601 --- /dev/null +++ b/docs/_pdf_build/build_git_flow_pdf.py @@ -0,0 +1,298 @@ +#!/usr/bin/env python3 +"""Build docs/GIT_FLOW.pdf from structured content and Mermaid diagrams. + +Source of truth for edits: docs/GIT_FLOW.md (narrative) + this script (PDF layout). +Regenerate: python3 docs/_pdf_build/build_git_flow_pdf.py +""" + +from __future__ import annotations + +import subprocess +import sys +from pathlib import Path + +from reportlab.lib import colors +from reportlab.lib.enums import TA_LEFT +from reportlab.lib.pagesizes import A4 +from reportlab.lib.styles import ParagraphStyle, getSampleStyleSheet +from reportlab.lib.units import cm +from reportlab.platypus import ( + Image, + PageBreak, + Paragraph, + SimpleDocTemplate, + Spacer, + Table, + TableStyle, +) + +ROOT = Path(__file__).resolve().parents[2] +BUILD = Path(__file__).resolve().parent +OUT_PDF = ROOT / "docs" / "GIT_FLOW.pdf" + +DIAGRAMS = [ + ("git_flow_diagram_branches.mmd", "git_flow_diagram_branches.png", "Branch model (green master)"), + ("git_flow_diagram_feature.mmd", "git_flow_diagram_feature.png", "Daily development"), + ("git_flow_diagram_release.mmd", "git_flow_diagram_release.png", "Release: next → master"), + ("git_flow_diagram_hotfix.mmd", "git_flow_diagram_hotfix.png", "Hotfix decision and flow"), +] + + +def render_mermaid() -> None: + for mmd, png, _ in DIAGRAMS: + src = BUILD / mmd + dst = BUILD / png + if not src.exists(): + raise FileNotFoundError(src) + subprocess.run( + [ + "npx", + "--yes", + "@mermaid-js/mermaid-cli@11.4.0", + "-i", + str(src), + "-o", + str(dst), + "-b", + "white", + "-w", + "1200", + "-H", + "800", + ], + cwd=str(ROOT), + check=True, + timeout=180, + ) + + +def p(text: str, style) -> Paragraph: + return Paragraph(text.replace("\n", "
"), style) + + +def add_table(story, headers: list[str], rows: list[list[str]], col_widths) -> None: + data = [headers] + rows + t = Table(data, colWidths=col_widths) + t.setStyle( + TableStyle( + [ + ("BACKGROUND", (0, 0), (-1, 0), colors.HexColor("#1565C0")), + ("TEXTCOLOR", (0, 0), (-1, 0), colors.white), + ("FONTNAME", (0, 0), (-1, 0), "Helvetica-Bold"), + ("FONTSIZE", (0, 0), (-1, -1), 9), + ("VALIGN", (0, 0), (-1, -1), "TOP"), + ("GRID", (0, 0), (-1, -1), 0.5, colors.lightgrey), + ("ROWBACKGROUNDS", (0, 1), (-1, -1), [colors.white, colors.HexColor("#F5F5F5")]), + ("LEFTPADDING", (0, 0), (-1, -1), 6), + ("RIGHTPADDING", (0, 0), (-1, -1), 6), + ("TOPPADDING", (0, 0), (-1, -1), 4), + ("BOTTOMPADDING", (0, 0), (-1, -1), 4), + ] + ) + ) + story.append(t) + + +def add_diagram(story, mmd_png: str, caption: str, h2, iw: float = 16 * cm) -> None: + path = BUILD / mmd_png + if path.exists(): + story.append(p(caption, h2)) + story.append(Image(str(path), width=iw, height=iw * 0.55)) + story.append(Spacer(1, 0.35 * cm)) + + +def build_pdf() -> None: + styles = getSampleStyleSheet() + title = ParagraphStyle( + "DocTitle", + parent=styles["Title"], + fontSize=18, + spaceAfter=10, + textColor=colors.HexColor("#1565C0"), + ) + h1 = ParagraphStyle("H1", parent=styles["Heading1"], fontSize=14, spaceBefore=12, spaceAfter=6) + h2 = ParagraphStyle("H2", parent=styles["Heading2"], fontSize=11, spaceBefore=8, spaceAfter=4) + body = ParagraphStyle("Body", parent=styles["Normal"], fontSize=10, leading=14, alignment=TA_LEFT) + small = ParagraphStyle("Small", parent=body, fontSize=9, textColor=colors.grey) + bullet = ParagraphStyle("Bullet", parent=body, leftIndent=14, bulletIndent=6) + + story: list = [] + story.append(p("Android Cast — Git flow (green master)", title)) + story.append( + p( + "Development cycles, branch roles, release and hotfix strategy. " + "Version 1.0 · 2026-05-21. Markdown source: docs/GIT_FLOW.md", + small, + ) + ) + story.append(Spacer(1, 0.3 * cm)) + + # 1 Goals + story.append(p("1. Goals", h1)) + add_table( + story, + ["Goal", "Mechanism"], + [ + ["Always shippable master", "Merge to master only when CI/tests pass"], + ["Safe integration", "Features land on next first"], + ["Clear production line", "Release tags only on master"], + ["Fast production patches", "hotfix/* from master, then sync to next"], + ], + [4.5 * cm, 12 * cm], + ) + story.append(Spacer(1, 0.4 * cm)) + + # 2 Branches + story.append(p("2. Branches", h1)) + add_table( + story, + ["Branch", "Role", "Direct commits?"], + [ + ["master", "Production; green; annotated tags vX.Y.Z", "No — merge only"], + ["next", "Integration / release candidate", "No — merge only"], + ["feature/*, fix/*", "Short-lived work", "Yes; merge → next"], + ["hotfix/*", "Urgent fix for released code", "Yes; merge → master first"], + ], + [3 * cm, 8.5 * cm, 4 * cm], + ) + story.append(Spacer(1, 0.3 * cm)) + add_diagram(story, DIAGRAMS[0][1], DIAGRAMS[0][2], h2) + story.append(PageBreak()) + + # 3 Daily dev + story.append(p("3. Daily development", h1)) + for line in [ + "1. git fetch && git checkout next && git pull", + "2. git checkout -b feature/short-description", + "3. Commit on topic branch; run tests before merge", + "4. Merge topic → next (after CI green)", + "5. Delete topic branch", + ]: + story.append(p(f"• {line}", bullet)) + story.append(Spacer(1, 0.2 * cm)) + story.append( + p( + "Agents: never push directly to master or next unless the user explicitly " + "requests a release or hotfix merge.", + body, + ) + ) + add_diagram(story, DIAGRAMS[1][1], DIAGRAMS[1][2], h2, iw=15 * cm) + story.append(PageBreak()) + + # 4 Release + story.append(p("4. Release (next → master)", h1)) + for line in [ + "Confirm next is QA-ready and CI green", + "Merge next → master", + "Smoke / CI on master", + "Tag on master: git tag -a v0.1.2 -m \"Release v0.1.2\"", + "Sync: git checkout next && git merge master && git push", + "Continue feature branches from updated next", + ]: + story.append(p(f"• {line}", bullet)) + add_diagram(story, DIAGRAMS[2][1], DIAGRAMS[2][2], h2, iw=15 * cm) + story.append(PageBreak()) + + # 5 Hotfix + story.append(p("5. Hotfixes — recommended strategy", h1)) + story.append( + p( + "Default (option 1): branch hotfix/* from master when the bug affects " + "released code. After fix and tests: merge → master, tag patch (e.g. v0.1.3), then " + "merge master → next so integration does not miss the fix.", + body, + ) + ) + story.append(Spacer(1, 0.15 * cm)) + story.append( + p( + "Exception (option 2): bug exists only on next — branch fix/* from next, " + "merge to next only; ships with the next normal release.", + body, + ) + ) + story.append(Spacer(1, 0.15 * cm)) + story.append( + p( + "Why not hotfix only on next? next often contains unreleased features; " + "merging next to master for a patch would ship extra code or block the fix.", + body, + ) + ) + add_diagram(story, DIAGRAMS[3][1], DIAGRAMS[3][2], h2, iw=14 * cm) + + story.append(p("5.1 Sync cheat sheet", h2)) + add_table( + story, + ["Event", "Action"], + [ + ["After release + tag", "merge master → next"], + ["After hotfix + tag", "merge master → next"], + ["Feature done", "merge topic → next only"], + ["Wrong base branch", "rebase topic onto latest next"], + ], + [4.5 * cm, 12 * cm], + ) + story.append(PageBreak()) + + # 6 Protection + agents + story.append(p("6. Branch protection and CI", h1)) + add_table( + story, + ["Rule", "master", "next"], + [ + ["CI required before merge", "yes", "yes"], + ["No WIP direct push", "yes", "yes"], + ["Annotated release tags", "yes", "no"], + ["Force-push", "forbidden", "forbidden"], + ], + [5.5 * cm, 5 * cm, 5 * cm], + ) + story.append(Spacer(1, 0.35 * cm)) + story.append(p("7. Cursor / agent checklist", h1)) + for line in [ + "Branch from next for features and non-production fixes", + "Run tests before recommending merge to next", + "Releases and tags only with explicit user approval", + "Hotfix released code from master; sync master into next after tag", + "Never force-push master or next", + ]: + story.append(p(f"• {line}", bullet)) + story.append(Spacer(1, 0.4 * cm)) + story.append( + p( + "Full narrative and Mermaid sources: docs/GIT_FLOW.md, " + "docs/_pdf_build/git_flow_diagram_*.mmd · " + "Regenerate PDF: python3 docs/_pdf_build/build_git_flow_pdf.py", + small, + ) + ) + + doc = SimpleDocTemplate( + str(OUT_PDF), + pagesize=A4, + leftMargin=2 * cm, + rightMargin=2 * cm, + topMargin=2 * cm, + bottomMargin=2 * cm, + ) + doc.build(story) + print(f"Wrote {OUT_PDF}") + + +def main() -> int: + try: + render_mermaid() + except subprocess.CalledProcessError as e: + print("Mermaid render failed:", e, file=sys.stderr) + return 1 + except FileNotFoundError as e: + print(e, file=sys.stderr) + return 1 + build_pdf() + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/docs/_pdf_build/git_flow_diagram_branches.mmd b/docs/_pdf_build/git_flow_diagram_branches.mmd new file mode 100644 index 0000000..ee7019d --- /dev/null +++ b/docs/_pdf_build/git_flow_diagram_branches.mmd @@ -0,0 +1,21 @@ +flowchart TB + subgraph legend[" "] + direction LR + L1[Long-lived] + L2[Short-lived] + end + + M["master\n(always green, tagged releases)"] + N["next\n(integration / release candidate)"] + F["feature/* fix/*\n(fork next)"] + H["hotfix/*\n(fork master)"] + + F -->|"merge + CI green"| N + N -->|"release: merge + CI green"| M + H -->|"urgent patch + CI green"| M + M -->|"sync after release or hotfix"| N + + style M fill:#c8e6c9,stroke:#2e7d32 + style N fill:#bbdefb,stroke:#1565c0 + style F fill:#fff9c4,stroke:#f9a825 + style H fill:#ffccbc,stroke:#e64a19 diff --git a/docs/_pdf_build/git_flow_diagram_branches.png b/docs/_pdf_build/git_flow_diagram_branches.png new file mode 100644 index 0000000000000000000000000000000000000000..b1dfab7c8ca6fbd1406b436e3f1489a50a837ee6 GIT binary patch literal 33171 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 literal 0 HcmV?d00001 diff --git a/docs/_pdf_build/git_flow_diagram_feature.mmd b/docs/_pdf_build/git_flow_diagram_feature.mmd new file mode 100644 index 0000000..09d2c0f --- /dev/null +++ b/docs/_pdf_build/git_flow_diagram_feature.mmd @@ -0,0 +1,15 @@ +sequenceDiagram + autonumber + participant Dev as Developer or agent + participant Topic as feature/* or fix/* + participant Next as next + participant CI as Tests / CI + + Dev->>Next: fetch, checkout, pull + Dev->>Topic: create branch from next + Dev->>Topic: commits + Dev->>CI: run tests + CI-->>Dev: pass + Dev->>Next: merge topic branch + Note over Next: next stays integration line + Dev->>Topic: delete branch diff --git a/docs/_pdf_build/git_flow_diagram_feature.png b/docs/_pdf_build/git_flow_diagram_feature.png new file mode 100644 index 0000000000000000000000000000000000000000..8e32732137c7eab4337114f88acf4357bcf0b8fe GIT binary patch literal 34173 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 literal 0 HcmV?d00001 diff --git a/docs/_pdf_build/git_flow_diagram_hotfix.mmd b/docs/_pdf_build/git_flow_diagram_hotfix.mmd new file mode 100644 index 0000000..70df4a5 --- /dev/null +++ b/docs/_pdf_build/git_flow_diagram_hotfix.mmd @@ -0,0 +1,21 @@ +flowchart TD + Start([Defect found]) + Q{Affects released code\non master / latest tag?} + + Start --> Q + Q -->|Yes| A[Branch hotfix/* from master] + A --> B[Fix + tests] + B --> C[Merge to master] + C --> D[Tag patch on master e.g. v0.1.3] + D --> E[Merge master into next] + E --> End([Done]) + + Q -->|No, only on next| F[Branch fix/* from next] + F --> G[Fix + tests] + G --> H[Merge to next only] + H --> End2([Ships with next release]) + + style C fill:#c8e6c9 + style D fill:#c8e6c9 + style E fill:#bbdefb + style H fill:#bbdefb diff --git a/docs/_pdf_build/git_flow_diagram_hotfix.png b/docs/_pdf_build/git_flow_diagram_hotfix.png new file mode 100644 index 0000000000000000000000000000000000000000..dad7ff251fa6cc97860cab40407f7acfb5fd3ccf GIT binary patch literal 43915 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 literal 0 HcmV?d00001 diff --git a/docs/_pdf_build/git_flow_diagram_release.mmd b/docs/_pdf_build/git_flow_diagram_release.mmd new file mode 100644 index 0000000..1a1bb47 --- /dev/null +++ b/docs/_pdf_build/git_flow_diagram_release.mmd @@ -0,0 +1,16 @@ +sequenceDiagram + autonumber + participant Next as next + participant Master as master + participant CI as Tests / CI + participant Tag as tag vX.Y.Z + + Note over Next: feature complete, QA ok + Next->>CI: full test suite + CI-->>Next: green + Next->>Master: merge next to master + Master->>CI: smoke on master + CI-->>Master: green + Master->>Tag: annotated tag on master + Master->>Next: merge master into next (sync) + Note over Next: continue features from synced next diff --git a/docs/_pdf_build/git_flow_diagram_release.png b/docs/_pdf_build/git_flow_diagram_release.png new file mode 100644 index 0000000000000000000000000000000000000000..062858a91617c028be7707014240250c4c48e83c GIT binary patch literal 37192 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 literal 0 HcmV?d00001