From 466b24514c3e7953f9c68581a9f975db23097f46 Mon Sep 17 00:00:00 2001 From: Sk Niyaj Ali Date: Sun, 12 Jan 2025 01:28:54 +0530 Subject: [PATCH] ci: Configured GitHub Workflow For Play Store & FAD Publishing (#2738) --- .github/ISSUE_TEMPLATE.md | 2 +- .../actions/create-release-notes/action.yml | 56 --- .../actions/create-release-number/action.yml | 54 --- .github/actions/inflate-secrets/action.yml | 40 -- .github/mock-google-services.json | 55 --- .github/workflows/android-release.yml | 96 +++++ .github/workflows/master_dev_ci.yml | 61 +-- .github/workflows/monthly-release.yaml | 66 ++++ .github/workflows/monthly_release.yaml | 21 -- .github/workflows/promote-to-production.yml | 75 ++++ .../workflows/release_to_internal_or_beta.yml | 162 -------- .github/workflows/release_to_production.yml | 35 -- ...y_release.yaml => tag-weekly-release.yaml} | 2 +- .gitignore | 22 +- .ruby-version | 1 + Gemfile.lock | 73 ++-- androidApp/build.gradle.kts | 13 +- androidApp/google-services.json | 82 ++-- androidApp/src/main/AndroidManifest.xml | 13 +- androidApp/src/main/ic_launcher-playstore.png | Bin 57605 -> 86109 bytes .../src/main/res/drawable/splash_icon.png | Bin 0 -> 13986 bytes .../src/main/res/drawable/splash_icon.xml | 21 -- .../res/mipmap-anydpi-v26/ic_launcher.xml | 2 +- .../mipmap-anydpi-v26/ic_launcher_round.xml | 2 +- .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 3344 -> 2440 bytes .../mipmap-hdpi/ic_launcher_foreground.webp | Bin 6546 -> 5042 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 4884 -> 4188 bytes .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 2478 -> 1518 bytes .../mipmap-mdpi/ic_launcher_foreground.webp | Bin 4212 -> 2800 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 3240 -> 2618 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 4618 -> 3594 bytes .../mipmap-xhdpi/ic_launcher_foreground.webp | Bin 9334 -> 8288 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 6732 -> 6266 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 6652 -> 5712 bytes .../mipmap-xxhdpi/ic_launcher_foreground.webp | Bin 16078 -> 16242 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 10238 -> 10404 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 8784 -> 8870 bytes .../ic_launcher_foreground.webp | Bin 24830 -> 25088 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 14318 -> 15526 bytes .../res/values/ic_launcher_background.xml | 4 +- fastlane/AppFile | 2 +- fastlane/FastFile | 357 +++++++++++++++++- fastlane/Pluginfile | 2 + fastlane/README.md | 93 +++++ .../android/en-US/changelogs/default.txt | 6 + .../release_keystore.keystore | Bin shared/build.gradle.kts | 8 +- 47 files changed, 833 insertions(+), 593 deletions(-) delete mode 100644 .github/actions/create-release-notes/action.yml delete mode 100644 .github/actions/create-release-number/action.yml delete mode 100644 .github/actions/inflate-secrets/action.yml delete mode 100644 .github/mock-google-services.json create mode 100644 .github/workflows/android-release.yml create mode 100644 .github/workflows/monthly-release.yaml delete mode 100644 .github/workflows/monthly_release.yaml create mode 100644 .github/workflows/promote-to-production.yml delete mode 100644 .github/workflows/release_to_internal_or_beta.yml delete mode 100644 .github/workflows/release_to_production.yml rename .github/workflows/{weekly_release.yaml => tag-weekly-release.yaml} (93%) create mode 100644 .ruby-version create mode 100644 androidApp/src/main/res/drawable/splash_icon.png delete mode 100644 androidApp/src/main/res/drawable/splash_icon.xml create mode 100644 fastlane/metadata/android/en-US/changelogs/default.txt rename androidApp/debug_keystore.jks => keystores/release_keystore.keystore (100%) diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index 024a3556e..5c181d333 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -1 +1 @@ -### We're moving towards to use [Jira](https://mifosforge.jira.com/jira/software/c/projects/MM/issues/) for issue tracking, and Join our [slack](https://join.slack.com/t/mifos/shared_invite/zt-2wvi9t82t-DuSBdqdQVOY9fsqsLjkKPA) channel `mifos-mobile` to discuss all things about Mifos Mobile development. and do not cross post your messages in multiple channels. ask your question in the appropriate channel. \ No newline at end of file +#### We are transitioning to [Jira](https://mifosforge.jira.com/jira/software/c/projects/MM/issues/) for issue tracking. Additionally, we encourage you to join our Slack channel #mifos-mobile to discuss all aspects of Mifos Mobile development. Please ensure that your messages are not cross-posted in multiple channels. Kindly direct your questions to the most appropriate channel for efficient communication. \ No newline at end of file diff --git a/.github/actions/create-release-notes/action.yml b/.github/actions/create-release-notes/action.yml deleted file mode 100644 index 6cc1e7464..000000000 --- a/.github/actions/create-release-notes/action.yml +++ /dev/null @@ -1,56 +0,0 @@ -name: 'Create Release Notes' -description: 'Creates the current releases release notes' -inputs: - tag-name: - description: 'Name of the tag that will be used for this release' - required: true - gh-token: - description: 'The GitHub token used to get details from the API' - required: true -runs: - using: 'composite' - steps: - - name: Get Previous Release Tag - uses: actions/github-script@v7 - id: latest-release-tag - with: - github-token: ${{ inputs.gh-token }} - result-encoding: string - script: | - const { data } = await github.rest.repos.getLatestRelease({ - owner: context.repo.owner, - repo: context.repo.repo, - }) - return data.tag_name - - name: Get Generated Release Notes - uses: actions/github-script@v7 - id: generate-notes - with: - github-token: ${{ inputs.gh-token }} - result-encoding: string - script: | - const { data } = await github.rest.repos.generateReleaseNotes({ - owner: context.repo.owner, - repo: context.repo.repo, - tag_name: '${{ inputs.tag-name }}', - target_commitish: 'development', - previous_tag_name: '${{ steps.latest-release-tag.outputs.result }}', - }) - return data.body.replaceAll('`', '\'').replaceAll('"', '\'') - - name: Generate Release Notes - id: version-generator - shell: bash - run: | - mkdir -p ./androidApp/build/outputs/ - - echo "Previous Release Tag:" - echo "${{ steps.latest-release-tag.outputs.result }}" - - echo "Full Changelog:" - CHANGELOG="${{ steps.generate-notes.outputs.result }}" - echo -e "$CHANGELOG" - printf "$CHANGELOG" > ./androidApp/build/outputs/changelogGithub - - echo "Beta Changelog:" - git log --format="* %s" HEAD^..HEAD - git log --format="* %s" HEAD^..HEAD > ./androidApp/build/outputs/changelogBeta diff --git a/.github/actions/create-release-number/action.yml b/.github/actions/create-release-number/action.yml deleted file mode 100644 index 9d35f42b5..000000000 --- a/.github/actions/create-release-number/action.yml +++ /dev/null @@ -1,54 +0,0 @@ -name: 'Create Release Numbers' -description: 'Creates the current release number based on Gradle or Git history' -outputs: - version-code: - description: 'The numeric app version' - value: ${{ steps.version-generator.outputs.version-code }} - version: - description: 'The app version' - value: ${{ steps.version-generator.outputs.version }} -runs: - using: 'composite' - steps: - - name: Set Build Number and Version - id: version-generator - shell: bash - run: | - # Try to get version from Gradle - ./gradlew versionFile - GRADLE_VERSION=$(cat version.txt) - - if [ "$GRADLE_VERSION" = "unspecified" ] || [ -z "$GRADLE_VERSION" ]; then - echo "Gradle version is unspecified or empty. Generating version from Git." - - # Get the latest tag - LATEST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "v0.0.0") - - # Extract major, minor, patch from the tag - IFS='.' read -r MAJOR MINOR PATCH <<< "${LATEST_TAG#v}" - - # Count commits since the last tag - COMMITS_SINCE_TAG=$(git rev-list ${LATEST_TAG}..HEAD --count) - - # Calculate new patch version - NEW_PATCH=$((PATCH + COMMITS_SINCE_TAG)) - - # Generate version name - VERSION="${MAJOR}.${MINOR}.${NEW_PATCH}" - else - echo "Using Gradle-generated version." - VERSION=$GRADLE_VERSION - fi - - # Calculate version code - COMMITS=$(git rev-list --count HEAD) - TAGS=$(git tag | grep -v beta | wc -l) - VC=$((((COMMITS+TAGS) * 3) << 1)) - - echo "Version: $VERSION" - echo "Number of Commits: $COMMITS" - echo "Number of Tags: $TAGS" - echo "Version Code: $VC" - - echo "version-code=$VC" >> $GITHUB_OUTPUT - echo "version=$VERSION" >> $GITHUB_OUTPUT \ No newline at end of file diff --git a/.github/actions/inflate-secrets/action.yml b/.github/actions/inflate-secrets/action.yml deleted file mode 100644 index 5ba553c3a..000000000 --- a/.github/actions/inflate-secrets/action.yml +++ /dev/null @@ -1,40 +0,0 @@ -name: 'Inflate Secrets' -description: 'Inflates the secret values into the appropriate files' -inputs: - keystore: - description: 'The keystore to inflate' - required: true - google-services: - description: 'The google-services.json to inflate' - required: true - playstore-creds: - description: 'The playstore credentials to inflate' - required: true -runs: - using: 'composite' - steps: - - name: Mock debug google-services.json - shell: bash - run: | - cp .github/mock-google-services.json androidApp/google-services.json - - - name: Inflate release_keystore.keystore - shell: bash - env: - KEYSTORE: ${{ inputs.keystore }} - run: | - echo $KEYSTORE | base64 --decode > androidApp/release_keystore.keystore - - - name: Inflate google-services.json - shell: bash - env: - GOOGLE_SERVICES: ${{ inputs.google-services }} - run: | - echo $GOOGLE_SERVICES > androidApp/google-services.json - - - name: Inflate playStorePublishServiceCredentialsFile.json - shell: bash - env: - CREDS: ${{ inputs.playstore-creds }} - run: | - echo $CREDS > androidApp/playStorePublishServiceCredentialsFile.json diff --git a/.github/mock-google-services.json b/.github/mock-google-services.json deleted file mode 100644 index 79c227c1e..000000000 --- a/.github/mock-google-services.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "project_info": { - "project_number": "project_number", - "firebase_url": "firebase_url", - "project_id": "project_id", - "storage_bucket": "storage_bucket" - }, - "client": [ - { - "client_info": { - "mobilesdk_app_id": "mobilesdk_app_id", - "android_client_info": { - "package_name": "org.mifos.mobile" - } - }, - "oauth_client": [ - { - "client_id": "client_id", - "client_type": 1, - "android_info": { - "package_name": "org.mifos.mobile", - "certificate_hash": "2f8ce9c728acf6b9c50750b328742d5391c0b303" - } - }, - { - "client_id": "client_id", - "client_type": 3 - } - ], - "api_key": [ - { - "current_key": "current_key" - } - ], - "services": { - "analytics_service": { - "status": 1 - }, - "appinvite_service": { - "status": 2, - "other_platform_oauth_client": [ - { - "client_id": "client_id", - "client_type": 3 - } - ] - }, - "ads_service": { - "status": 2 - } - } - } - ], - "configuration_version": "1" -} diff --git a/.github/workflows/android-release.yml b/.github/workflows/android-release.yml new file mode 100644 index 000000000..bf4161e95 --- /dev/null +++ b/.github/workflows/android-release.yml @@ -0,0 +1,96 @@ +# GitHub Actions Workflow for Kotlin Android Application Deployment +# +# OVERVIEW: +# This workflow supports building and publishing applications across multiple platforms: +# - Android (APK/AAB) +# +# PREREQUISITES: +# Ensure your project is configured with: +# - Gradle build system +# - Kotlin Multiplatform Project with Android, iOS, Desktop, and Web modules +# - Fastlane for deployment automation +# - Separate modules/package names for each platform +# +# REQUIRED SECRETS: +# Configure the following secrets in GitHub repository settings: +# - ORIGINAL_KEYSTORE_FILE: Base64 encoded Android release keystore +# - ORIGINAL_KEYSTORE_FILE_PASSWORD: Keystore password +# - ORIGINAL_KEYSTORE_ALIAS: Keystore alias +# - ORIGINAL_KEYSTORE_ALIAS_PASSWORD: Keystore alias password + +# - UPLOAD_KEYSTORE_FILE: Base64 encoded Android release keystore +# - UPLOAD_KEYSTORE_FILE_PASSWORD: Keystore password +# - UPLOAD_KEYSTORE_ALIAS: Keystore alias +# - UPLOAD_KEYSTORE_ALIAS_PASSWORD: Keystore alias password + +# - GOOGLESERVICES: Google Services configuration JSON +# - PLAYSTORECREDS: Play Store service account credentials +# - FIREBASECREDS: Firebase distribution credentials + +# WORKFLOW INPUTS: +# - release_type: 'internal' (default) or 'beta' +# - target_branch: Branch to use for release (default: 'dev') +# - android_package_name: Name of Android module + +# USAGE: +# 1. Ensure all required secrets are configured +# 2. Customize package names in workflow inputs +# 3. Toggle platform-specific publishing flags +# 4. Trigger workflow manually or via GitHub Actions UI + +# https://github.com/openMF/mifos-mobile-github-actions/blob/main/.github/workflows/android-build-and-publish.yaml + +# ############################################################################## +# DON'T EDIT THIS FILE UNLESS NECESSARY # +# ############################################################################## +name: Android Build and Publish + +on: + workflow_dispatch: + inputs: + release_type: + type: choice + options: + - internal + - beta + default: internal + description: Release Type + + target_branch: + type: string + default: 'development' + description: 'Target branch for release' + +permissions: + contents: write + id-token: write + pages: write + +concurrency: + group: "reusable" + cancel-in-progress: false + +jobs: + android_build_and_publish: + name: Android Build and Publish + uses: openMF/mifos-mobile-github-actions/.github/workflows/android-build-and-publish.yaml@main + with: + release_type: ${{ inputs.release_type }} + target_branch: ${{ inputs.target_branch }} + android_package_name: 'androidApp' # <-- Change this to your android package name + tester_groups: 'mifos-mobile-testers' # <-- Change this to your Firebase tester group + secrets: + original_keystore_file: ${{ secrets.ORIGINAL_KEYSTORE_FILE }} + original_keystore_file_password: ${{ secrets.ORIGINAL_KEYSTORE_FILE_PASSWORD }} + original_keystore_alias: ${{ secrets.ORIGINAL_KEYSTORE_ALIAS }} + original_keystore_alias_password: ${{ secrets.ORIGINAL_KEYSTORE_ALIAS_PASSWORD }} + + upload_keystore_file: ${{ secrets.UPLOAD_KEYSTORE_FILE }} + upload_keystore_file_password: ${{ secrets.UPLOAD_KEYSTORE_FILE_PASSWORD }} + upload_keystore_alias: ${{ secrets.UPLOAD_KEYSTORE_ALIAS }} + upload_keystore_alias_password: ${{ secrets.UPLOAD_KEYSTORE_ALIAS_PASSWORD }} + + google_services: ${{ secrets.GOOGLESERVICES }} + firebase_creds: ${{ secrets.FIREBASECREDS }} + playstore_creds: ${{ secrets.PLAYSTORECREDS }} + token: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/master_dev_ci.yml b/.github/workflows/master_dev_ci.yml index 4a9e63b96..0b28fe863 100644 --- a/.github/workflows/master_dev_ci.yml +++ b/.github/workflows/master_dev_ci.yml @@ -71,8 +71,7 @@ jobs: **/build/reports/detekt/detekt.md - - + # Dependency Guard is a tool that checks for known vulnerabilities in your dependencies dependency_guard: needs: setup runs-on: ubuntu-latest @@ -109,64 +108,8 @@ jobs: disable_globbing: true commit_message: "๐Ÿค– Updates baselines for Dependency Guard" - tests_and_lint: - needs: setup - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - uses: actions/setup-java@v4 - with: - distribution: 'zulu' - java-version: 17 - - - name: Run tests - run: | - ./gradlew testDebug :lint:test :androidApp:lintRelease :lint:lint - - - name: Upload reports - if: always() - uses: actions/upload-artifact@v4 - with: - name: test-and-lint-reports - path: | - **/build/reports/lint-results-*.html - **/build/test-results/test*UnitTest/**.xml - - - # Add `createDebugUnitTestCoverageReport` if we ever add JVM tests for prod - - name: Generate coverage reports for Debug variants (only API 30) - run: ./gradlew createDebugCombinedCoverageReport - - - name: Upload test reports - if: always() - uses: actions/upload-artifact@v4 - with: - name: test-reports-${{ matrix.api-level }} - path: '**/build/reports/androidTests' - - - name: Display local test coverage (only API 30) - id: jacoco - uses: madrapps/jacoco-report@v1.6.1 - with: - title: Combined test coverage report - min-coverage-overall: 40 - min-coverage-changed-files: 60 - paths: | - ${{ github.workspace }}/**/build/reports/jacoco/**/*Report.xml - token: ${{ secrets.GITHUB_TOKEN }} - - - name: Upload local coverage reports (XML + HTML) (only API 30) - uses: actions/upload-artifact@v4 - with: - name: coverage-reports - if-no-files-found: error - compression-level: 1 - overwrite: false - path: '**/build/reports/jacoco/' - build: - needs: [ checks, dependency_guard, tests_and_lint ] + needs: [ checks, dependency_guard ] runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/monthly-release.yaml b/.github/workflows/monthly-release.yaml new file mode 100644 index 000000000..35abad5de --- /dev/null +++ b/.github/workflows/monthly-release.yaml @@ -0,0 +1,66 @@ +# Automated Monthly Release Versioning Workflow +# ============================================ + +# Purpose: +# - Automatically create consistent monthly version tags +# - Implement a calendar-based versioning strategy +# - Facilitate easy tracking of monthly releases + +# Versioning Strategy: +# - Tag format: YYYY.MM.0 (e.g., 2024.01.0 for January 2024) +# - First digit: Full year +# - Second digit: Month (01-12) +# - Third digit: Patch version (starts at 0, allows for potential updates) + +# Key Features: +# - Runs automatically on the first day of each month at 3:30 AM UTC +# - Can be manually triggered via workflow_dispatch +# - Uses GitHub Actions to generate tags programmatically +# - Provides a predictable and systematic versioning approach + +# Prerequisites: +# - Repository configured with GitHub Actions +# - Permissions to create tags +# - Access to actions/checkout and tag creation actions + +# Workflow Triggers: +# - Scheduled monthly run +# - Manual workflow dispatch +# - Callable from other workflows + +# Actions Used: +# 1. actions/checkout@v4 - Checks out repository code +# 2. josStorer/get-current-time - Retrieves current timestamp +# 3. rickstaa/action-create-tag - Creates Git tags + +# Example Generated Tags: +# - 2024.01.0 (January 2024 initial release) +# - 2024.02.0 (February 2024 initial release) +# - 2024.02.1 (Potential patch for February 2024) + +# https://github.com/openMF/mifos-mobile-github-actions/blob/main/.github/workflows/monthly-version-tag.yaml + +# ############################################################################## +# DON'T EDIT THIS FILE UNLESS NECESSARY # +# ############################################################################## + +name: Tag Monthly Release + +on: + # Allow manual triggering of the workflow + workflow_dispatch: + # Schedule the workflow to run monthly + schedule: + # Runs at 03:30 UTC on the first day of every month + # Cron syntax: minute hour day-of-month month day-of-week + - cron: '30 3 1 * *' + +concurrency: + group: "monthly-release" + cancel-in-progress: false + +jobs: + monthly_release: + name: Tag Monthly Release + uses: openMF/mifos-mobile-github-actions/.github/workflows/monthly-version-tag.yaml@main + secrets: inherit \ No newline at end of file diff --git a/.github/workflows/monthly_release.yaml b/.github/workflows/monthly_release.yaml deleted file mode 100644 index 9f173e9ed..000000000 --- a/.github/workflows/monthly_release.yaml +++ /dev/null @@ -1,21 +0,0 @@ -name: Bump our Calendar Version - -on: - workflow_dispatch: - schedule: - - cron: '30 3 1 * *' -jobs: - tag: - name: Tag Monthly Release - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: Get Current Time - uses: josStorer/get-current-time@v2.1.2 - id: current-time - - - name: Bump Calendar Version - uses: rickstaa/action-create-tag@v1.7.2 - with: - tag: ${{ steps.current-time.outputs.year }}.${{ steps.current-time.outputs.month }}.0 diff --git a/.github/workflows/promote-to-production.yml b/.github/workflows/promote-to-production.yml new file mode 100644 index 000000000..0ebbc4017 --- /dev/null +++ b/.github/workflows/promote-to-production.yml @@ -0,0 +1,75 @@ +# GitHub Actions Workflow for Play Store Release Promotion +# +# PURPOSE: +# This workflow automates the process of promoting a beta release +# to the production track on Google Play Store. +# +# PREREQUISITES: +# 1. Fastlane setup with Android deployment configurations +# 2. Configured Fastlane lanes: +# - `promote_to_production`: Handles beta to production promotion +# +# REQUIRED CONFIGURATION: +# - Secrets: +# PLAYSTORECREDS: Google Play Store service account JSON credentials +# +# INPUTS: +# - android_package_name: Name of the Android project module +# (REQUIRED, must match your project's module structure) +# +# WORKFLOW TRIGGERS: +# - Can be called manually or triggered by other workflows +# - Typically used after beta testing and validation +# +# DEPLOYMENT PROCESS: +# 1. Checks out repository code +# 2. Sets up Ruby and Fastlane environment +# 3. Inflates Play Store credentials +# 4. Runs Fastlane lane to promote beta to production +# +# IMPORTANT NOTES: +# - Requires proper Fastlane configuration in your project +# - Ensures consistent and automated Play Store deployments +# - Configurable retry mechanism for upload stability +# +# RECOMMENDED FASTLANE LANE IMPLEMENTATION: +# ```ruby +# lane :promote_to_production do +# upload_to_play_store( +# track: 'beta', +# track_promote_to: 'production', +# json_key: './playStorePublishServiceCredentialsFile.json' +# ) +# end +# ``` + +# https://github.com/openMF/mifos-mobile-github-actions/blob/main/.github/workflows/promote-to-production.yaml + +# ############################################################################## +# DON'T EDIT THIS FILE UNLESS NECESSARY # +# ############################################################################## + +name: Promote Release to Play Store + +# Workflow triggers: +# 1. Manual trigger with option to publish to Play Store +# 2. Automatic trigger when a GitHub release is published +on: + workflow_dispatch: + release: + types: [ released ] + +concurrency: + group: "production-deploy" + cancel-in-progress: false + +permissions: + contents: write + +jobs: + # Job to promote app from beta to production in Play Store + play_promote_production: + name: Promote Beta to Production Play Store + uses: openMF/mifos-mobile-github-actions/.github/workflows/promote-to-production.yaml@main + secrets: + playstore_creds: ${{ secrets.PLAYSTORECREDS }} \ No newline at end of file diff --git a/.github/workflows/release_to_internal_or_beta.yml b/.github/workflows/release_to_internal_or_beta.yml deleted file mode 100644 index 36eba8093..000000000 --- a/.github/workflows/release_to_internal_or_beta.yml +++ /dev/null @@ -1,162 +0,0 @@ -name: Internal Or Beta Release - -on: - workflow_dispatch: - inputs: - release_type: - required: false - default: 'internal' - description: Please select the release type - type: choice - options: - - internal - - beta - -env: - SUPPLY_UPLOAD_MAX_RETRIES: 5 - -jobs: - app_build: - name: Github Release - runs-on: ubuntu-latest - permissions: - contents: write - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Set up JDK 17 - uses: actions/setup-java@v4.2.2 - with: - distribution: 'temurin' - java-version: '17' - - - uses: ruby/setup-ruby@v1 - with: - ruby-version: '3.2' - bundler-cache: true - - - name: Setup Gradle - uses: gradle/actions/setup-gradle@v4 - - - uses: ./.github/actions/create-release-number - name: Create Release Number - id: rel_number - - - uses: ./.github/actions/inflate-secrets - name: Inflate Secrets - with: - keystore: ${{ secrets.ORIGINAL_KEYSTORE_FILE }} - google-services: ${{ secrets.GOOGLESERVICES }} - playstore-creds: ${{ secrets.PLAYSTORECREDS }} - - - uses: ./.github/actions/create-release-notes - name: Create Release Notes - with: - tag-name: ${{ steps.rel_number.outputs.version }} - gh-token: ${{ secrets.GITHUB_TOKEN }} - - - name: Build Release - env: - KEYSTORE_PATH: ${{ secrets.KEYSTORE_NAME }} - KEYSTORE_PASSWORD: ${{ secrets.ORIGINAL_KEYSTORE_FILE_PASSWORD }} - KEYSTORE_ALIAS: ${{ secrets.ORIGINAL_KEYSTORE_ALIAS }} - KEYSTORE_ALIAS_PASSWORD: ${{ secrets.ORIGINAL_KEYSTORE_ALIAS_PASSWORD }} - VERSION_CODE: ${{ steps.rel_number.outputs.version-code }} - run: | - ./gradlew :androidApp:assembleRelease - - - name: Archive Build - uses: actions/upload-artifact@v4 - with: - path: ./**/*.apk - - - name: Create Version File - if: github.event.inputs.release_type == 'beta' - shell: bash - env: - VERSION_CODE: ${{ steps.rel_number.outputs.version-code }} - run: | - echo $VERSION_CODE > ./androidApp/build/outputs/version_code.txt - - - name: Create Github Pre-Release - if: github.event.inputs.release_type == 'beta' - uses: softprops/action-gh-release@v2.0.8 - with: - tag_name: ${{ steps.rel_number.outputs.version }} - body_path: ./androidApp/build/outputs/changelogGithub - draft: false - prerelease: true - files: | - ./androidApp/build/outputs/apk/release/androidApp-release.apk - ./androidApp/build/outputs/version_code.txt - - - name: Print `git status` - run: git status - - play_publish: - name: Play Publish - runs-on: ubuntu-latest - concurrency: - group: playstore_deploy - permissions: - contents: write - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Set up JDK 17 - uses: actions/setup-java@v4.2.2 - with: - distribution: 'temurin' - java-version: '17' - - - uses: ruby/setup-ruby@v1 - with: - ruby-version: '3.2' - bundler-cache: true - - - name: Install Fastlane - run: | - gem install bundler:2.2.27 - bundle config path vendor/bundle - bundle install --jobs 4 --retry 3 - - - name: Setup Gradle - uses: gradle/actions/setup-gradle@v4 - - - uses: ./.github/actions/create-release-number - name: Create Release Number - id: rel_number - - - uses: ./.github/actions/inflate-secrets - name: Inflate Secrets - with: - keystore: ${{ secrets.UPLOAD_KEYSTORE_FILE }} - google-services: ${{ secrets.GOOGLESERVICES }} - playstore-creds: ${{ secrets.PLAYSTORECREDS }} - - - uses: ./.github/actions/create-release-notes - name: Create Release Notes - with: - tag-name: ${{ steps.rel_number.outputs.version }} - gh-token: ${{ secrets.GITHUB_TOKEN }} - - - name: Build Release - env: - KEYSTORE_PATH: ${{ secrets.KEYSTORE_NAME }} - KEYSTORE_PASSWORD: ${{ secrets.UPLOAD_KEYSTORE_FILE_PASSWORD }} - KEYSTORE_ALIAS: ${{ secrets.UPLOAD_KEYSTORE_ALIAS }} - KEYSTORE_ALIAS_PASSWORD: ${{ secrets.UPLOAD_KEYSTORE_ALIAS_PASSWORD }} - VERSION_CODE: ${{ steps.rel_number.outputs.version-code }} - run: | - ./gradlew :androidApp:bundleRelease - - - name: Deploy to Play Store Internal - run: bundle exec fastlane android deploy_internal - - - name: Promote Internal to Beta - if: github.event.inputs.release_type == 'beta' - run: bundle exec fastlane android promote_to_beta diff --git a/.github/workflows/release_to_production.yml b/.github/workflows/release_to_production.yml deleted file mode 100644 index 51a0cbafe..000000000 --- a/.github/workflows/release_to_production.yml +++ /dev/null @@ -1,35 +0,0 @@ -name: Promote Beta to Production Play Store - -on: - workflow_dispatch: - -env: - SUPPLY_UPLOAD_MAX_RETRIES: 5 - -jobs: - play_promote_production: - name: Play Publish Production - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - uses: ruby/setup-ruby@v1 - with: - ruby-version: '3.2' - bundler-cache: true - - - name: Install Fastlane - run: | - gem install bundler:2.2.27 - bundle config path vendor/bundle - bundle install --jobs 4 --retry 3 - - - uses: ./.github/actions/inflate-secrets - name: Inflate Secrets - with: - keystore: ${{ secrets.ORIGINAL_KEYSTORE_FILE }} - google-services: ${{ secrets.GOOGLESERVICES }} - playstore-creds: ${{ secrets.PLAYSTORECREDS }} - - - name: Promote Beta to Production Play Store - run: bundle exec fastlane android promote_to_production diff --git a/.github/workflows/weekly_release.yaml b/.github/workflows/tag-weekly-release.yaml similarity index 93% rename from .github/workflows/weekly_release.yaml rename to .github/workflows/tag-weekly-release.yaml index d314a1313..8e9d1d62f 100644 --- a/.github/workflows/weekly_release.yaml +++ b/.github/workflows/tag-weekly-release.yaml @@ -31,7 +31,7 @@ jobs: github.rest.actions.createWorkflowDispatch({ owner: context.repo.owner, repo: context.repo.repo, - workflow_id: 'release_to_internal_or_beta.yml', + workflow_id: 'android-release.yml', ref: 'development', inputs: { "release_type": "beta", diff --git a/.gitignore b/.gitignore index 225608487..a3f39954a 100644 --- a/.gitignore +++ b/.gitignore @@ -9,7 +9,6 @@ .externalNativeBuild .idea /*.iml -.kotlin # files for the dex VM *.dex @@ -22,13 +21,25 @@ bin/ gen/ out/ build/ +.externalNativeBuild +.cxx +iosApp/Podfile.lock +iosApp/Pods/* +iosApp/iosApp.xcworkspace/* +iosApp/iosApp.xcodeproj/* +!iosApp/iosApp.xcodeproj/project.pbxproj +mifospay-shared/mifospay-shared.podspec # Eclipse project files .classpath .project +# Windows thumbnail db +.DS_Store + # IDEA/Android Studio project files, because # the project can be imported from settings.gradle.kts +*.iml .idea/* !.idea/copyright # Keep the code styles. @@ -37,7 +48,6 @@ build/ !/.idea/codeStyles/Project.xml !/.idea/codeStyles/codeStyleConfig.xml - # Kotlin .kotlin @@ -48,13 +58,17 @@ captures/ app/app.iml app/manifest-merger-release-report.txt -release_keystore.keystore +# Exclude Google services from prod flavour +androidApp/src/prod/google-services.json -version.txt +#*.keystore +version.txt +fastlane/report.xml firebaseAppDistributionServiceCredentialsFile.json playStorePublishServiceCredentialsFile.json # Ruby stuff we don't care about .bundle/ vendor/ +secrets/ \ No newline at end of file diff --git a/.ruby-version b/.ruby-version new file mode 100644 index 000000000..0163af7e8 --- /dev/null +++ b/.ruby-version @@ -0,0 +1 @@ +3.3.5 \ No newline at end of file diff --git a/Gemfile.lock b/Gemfile.lock index f625ab70e..1a2689ac2 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -10,20 +10,20 @@ GEM artifactory (3.0.17) atomos (0.1.3) aws-eventstream (1.3.0) - aws-partitions (1.979.0) - aws-sdk-core (3.209.1) + aws-partitions (1.1035.0) + aws-sdk-core (3.215.0) aws-eventstream (~> 1, >= 1.3.0) - aws-partitions (~> 1, >= 1.651.0) + aws-partitions (~> 1, >= 1.992.0) aws-sigv4 (~> 1.9) jmespath (~> 1, >= 1.6.1) - aws-sdk-kms (1.94.0) - aws-sdk-core (~> 3, >= 3.207.0) + aws-sdk-kms (1.96.0) + aws-sdk-core (~> 3, >= 3.210.0) aws-sigv4 (~> 1.5) - aws-sdk-s3 (1.166.0) - aws-sdk-core (~> 3, >= 3.207.0) + aws-sdk-s3 (1.177.0) + aws-sdk-core (~> 3, >= 3.210.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.5) - aws-sigv4 (1.10.0) + aws-sigv4 (1.11.0) aws-eventstream (~> 1, >= 1.0.2) babosa (1.0.4) base64 (0.2.0) @@ -38,7 +38,7 @@ GEM domain_name (0.6.20240107) dotenv (2.8.1) emoji_regex (3.2.3) - excon (0.111.0) + excon (0.112.0) faraday (1.10.4) faraday-em_http (~> 1.0) faraday-em_synchrony (~> 1.0) @@ -58,8 +58,8 @@ GEM faraday-em_synchrony (1.0.0) faraday-excon (1.1.0) faraday-httpclient (1.0.1) - faraday-multipart (1.0.4) - multipart-post (~> 2) + faraday-multipart (1.1.0) + multipart-post (~> 2.0) faraday-net_http (1.0.2) faraday-net_http_persistent (1.2.0) faraday-patron (1.0.0) @@ -67,8 +67,8 @@ GEM faraday-retry (1.0.3) faraday_middleware (1.2.1) faraday (~> 1.0) - fastimage (2.3.1) - fastlane (2.222.0) + fastimage (2.4.0) + fastlane (2.226.0) CFPropertyList (>= 2.3, < 4.0.0) addressable (>= 2.8, < 3.0.0) artifactory (~> 3.0) @@ -84,6 +84,7 @@ GEM faraday-cookie_jar (~> 0.0.6) faraday_middleware (~> 1.0) fastimage (>= 2.1.0, < 3.0.0) + fastlane-sirp (>= 1.0.0) gh_inspector (>= 1.1.2, < 2.0.0) google-apis-androidpublisher_v3 (~> 0.3) google-apis-playcustomapp_v1 (~> 0.1) @@ -107,8 +108,14 @@ GEM tty-spinner (>= 0.8.0, < 1.0.0) word_wrap (~> 1.0.0) xcodeproj (>= 1.13.0, < 2.0.0) - xcpretty (~> 0.3.0) + xcpretty (~> 0.4.0) xcpretty-travis-formatter (>= 0.0.3, < 2.0.0) + fastlane-plugin-firebase_app_distribution (0.10.0) + google-apis-firebaseappdistribution_v1 (~> 0.3.0) + google-apis-firebaseappdistribution_v1alpha (~> 0.2.0) + fastlane-plugin-increment_build_number (0.0.4) + fastlane-sirp (1.0.0) + sysrandom (~> 1.0) gh_inspector (1.1.3) google-apis-androidpublisher_v3 (0.54.0) google-apis-core (>= 0.11.0, < 2.a) @@ -120,6 +127,10 @@ GEM representable (~> 3.0) retriable (>= 2.0, < 4.a) rexml + google-apis-firebaseappdistribution_v1 (0.3.0) + google-apis-core (>= 0.11.0, < 2.a) + google-apis-firebaseappdistribution_v1alpha (0.2.0) + google-apis-core (>= 0.11.0, < 2.a) google-apis-iamcredentials_v1 (0.17.0) google-apis-core (>= 0.11.0, < 2.a) google-apis-playcustomapp_v1 (0.13.0) @@ -147,23 +158,23 @@ GEM os (>= 0.9, < 2.0) signet (>= 0.16, < 2.a) highline (2.0.3) - http-cookie (1.0.7) + http-cookie (1.0.8) domain_name (~> 0.5) httpclient (2.8.3) jmespath (1.6.2) - json (2.7.2) - jwt (2.9.1) + json (2.9.1) + jwt (2.10.1) base64 mini_magick (4.13.2) mini_mime (1.1.5) multi_json (1.15.0) multipart-post (2.4.1) - nanaimo (0.3.0) + nanaimo (0.4.0) naturally (2.2.1) nkf (0.2.0) - optparse (0.5.0) + optparse (0.6.0) os (1.1.4) - plist (3.7.1) + plist (3.7.2) public_suffix (6.0.1) rake (13.2.1) representable (3.2.0) @@ -171,10 +182,10 @@ GEM trailblazer-option (>= 0.1.1, < 0.2.0) uber (< 0.2.0) retriable (3.1.2) - rexml (3.3.7) - rouge (2.0.7) + rexml (3.4.0) + rouge (3.28.0) ruby2_keywords (0.0.5) - rubyzip (2.3.2) + rubyzip (2.4.1) security (0.1.5) signet (0.19.0) addressable (~> 2.8) @@ -184,6 +195,7 @@ GEM simctl (1.6.10) CFPropertyList naturally + sysrandom (1.0.5) terminal-notifier (2.0.0) terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) @@ -195,25 +207,26 @@ GEM uber (0.1.0) unicode-display_width (2.6.0) word_wrap (1.0.0) - xcodeproj (1.25.0) + xcodeproj (1.27.0) CFPropertyList (>= 2.3.3, < 4.0) atomos (~> 0.1.3) claide (>= 1.0.2, < 2.0) colored2 (~> 3.1) - nanaimo (~> 0.3.0) - rexml (>= 3.3.2, < 4.0) - xcpretty (0.3.0) - rouge (~> 2.0.7) + nanaimo (~> 0.4.0) + rexml (>= 3.3.6, < 4.0) + xcpretty (0.4.0) + rouge (~> 3.28.0) xcpretty-travis-formatter (1.0.1) xcpretty (~> 0.2, >= 0.0.7) PLATFORMS - arm64-darwin-22 + ruby x64-mingw-ucrt - x86_64-linux DEPENDENCIES fastlane + fastlane-plugin-firebase_app_distribution + fastlane-plugin-increment_build_number BUNDLED WITH 2.5.18 diff --git a/androidApp/build.gradle.kts b/androidApp/build.gradle.kts index c74ac18df..a9a6fb33f 100644 --- a/androidApp/build.gradle.kts +++ b/androidApp/build.gradle.kts @@ -35,7 +35,7 @@ android { signingConfigs { create("release") { - storeFile = file(System.getenv("KEYSTORE_PATH") ?: "debug_keystore.jks") + storeFile = file(System.getenv("KEYSTORE_PATH") ?: "../keystores/release_keystore.keystore") storePassword = System.getenv("KEYSTORE_PASSWORD") ?: "mifos1234" keyAlias = System.getenv("KEYSTORE_ALIAS") ?: "mifos-mobile" keyPassword = System.getenv("KEYSTORE_ALIAS_PASSWORD") ?: "mifos1234" @@ -63,6 +63,17 @@ android { compose = true buildConfig = true } + + lint { + xmlReport = true + checkDependencies = true + abortOnError = false + // Disable this rule until we ship the libraries to some maven. + disable += "ResourceName" + baseline = File("lint-baseline.xml") + explainIssues = true + htmlReport = true + } } dependencyGuard { diff --git a/androidApp/google-services.json b/androidApp/google-services.json index bf28d5179..8c353d3e9 100644 --- a/androidApp/google-services.json +++ b/androidApp/google-services.json @@ -1,54 +1,62 @@ { "project_info": { - "project_number": "622027757397", - "firebase_url": "https://mifosmaps.firebaseio.com", - "project_id": "mifosmaps", - "storage_bucket": "mifosmaps.appspot.com" + "project_number": "project_number", + "firebase_url": "firebase_url", + "project_id": "project_id", + "storage_bucket": "storage_bucket" }, "client": [ { "client_info": { - "mobilesdk_app_id": "1:622027757397:android:29f731fdcd3a65a6", + "mobilesdk_app_id": "mobilesdk_app_id", "android_client_info": { - "package_name": "org.mifos.mobile.demo" + "package_name": "org.mifos.mobile" + } + }, + "api_key": [ + { + "current_key": "current_key" + } + ] + }, + { + "client_info": { + "mobilesdk_app_id": "mobilesdk_app_id", + "android_client_info": { + "package_name": "org.mifos.mobile.demo.debug" } }, - "oauth_client": [ + "api_key": [ { - "client_id": "622027757397-ju1gahmo27fjfc39v5drlnn3838rleiq.apps.googleusercontent.com", - "client_type": 1, - "android_info": { - "package_name": "org.mifos.mobile", - "certificate_hash": "2f8ce9c728acf6b9c50750b328742d5391c0b303" - } - }, + "current_key": "current_key" + } + ] + }, + { + "client_info": { + "mobilesdk_app_id": "mobilesdk_app_id", + "android_client_info": { + "package_name": "org.mifos.mobile.demo" + } + }, + "api_key": [ { - "client_id": "622027757397-k76e8mb3s75ktuj5c011ng0r7mnmbgkr.apps.googleusercontent.com", - "client_type": 3 + "current_key": "current_key" } - ], + ] + }, + { + "client_info": { + "mobilesdk_app_id": "mobilesdk_app_id", + "android_client_info": { + "package_name": "org.mifos.mobile.debug" + } + }, "api_key": [ { - "current_key": "AIzaSyCsoeQjAaAum-1VFKJL9vxOhGN8E9s0Plw" - } - ], - "services": { - "analytics_service": { - "status": 1 - }, - "appinvite_service": { - "status": 2, - "other_platform_oauth_client": [ - { - "client_id": "622027757397-o2k3acan0jdhf7t0uddd9o4fd72bedda.apps.googleusercontent.com", - "client_type": 3 - } - ] - }, - "ads_service": { - "status": 2 - } - } + "current_key": "current_key" + } + ] } ], "configuration_version": "1" diff --git a/androidApp/src/main/AndroidManifest.xml b/androidApp/src/main/AndroidManifest.xml index a7eb8a779..20104c72a 100644 --- a/androidApp/src/main/AndroidManifest.xml +++ b/androidApp/src/main/AndroidManifest.xml @@ -17,22 +17,26 @@ + - - + - + + iT+fOIzu-K~g9455G^p>(GLf(#9kLpgNAP&4z) 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

OD>Ze1b>((=M8B^t$j1&}S*A}Hu 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

I4&|X#q z2?E#Z3;C~_!6RfP;mCbi$$YIp8T&H^=x4r#?SPs5$1^NpU+?s?aUIXg1;*$I@EB2_ zrMlSvnuuv_xKSnYuL|7@{_}eC4+Tf?JPeUb0MKCz<9(|oc9njyQ38Y&w?4c}F^~H6 z_-30d^Jb`HcPB0x2(^`AC_3EIzyr2&+QetTkHB~ja`+1b3}sgI^{k1ypIDPCJ7ujx zUaYwtKkX}f!e9fs2F34DKHbon8YCz19jDmApY(-KYeMb5BB#f>Nu6VGJ${LMcL|%- zlhZM~(hA7_H%}_KC{Bu2h^o4k7~Ikk+>m}oR}GRsB&pw{2>?G1o#iSVP6HUirnjxc zMfkF%+1`vA*+u|l^=ncsq>ae$|7+faHle8hu#S;(3b&hIR2greFL3@;(eGP~ee8>X zDFUB(8?%4vb8}-=feVFm-+8RjF@(iqYYK**`Th)YEH$8fZOqm6d~4LKxak|tnHQLl zMrt7M_gM^6fvz0R*EFdMD!Ls(L}`NVU6vpf!;hN0ajH!7a?l+5hqBxB)l!eRNuM8EiZ;(uQyT$?az zL#(!a*$YGC&4-9YnAlVzcJ4|#;^{Pinnw>`3v3dadp{yt$K*C2-G2|}v%tJRsnCeIW2`&ZgFNP{KI=;9uSDiu*#$aQb-U;pe$`P zZB~vnE}G+blCb}A3}9~`XaYldKiDutoDlwxh>!3y0Q%dp|Mjy=ML5gvYu}b;GtRUD>mf9BLeoVH;N_D4oXbiNt|%PGwe6^EZdan{5`nnqpY@v zS`eN2VVgRL=-s1F{P;yxW{K*=ts$T`z~A&s>!z<pWdEGFioeB2iu~9Zd3x5V7pp27e!c}w7k9fzK!Gp8bX}Pq5R)5_)mw5iCIspg zW;Jj`EHhD4dX&I$2>m2CB5UYhq-Y1R%+9}GRIPJ2`}^$o7l_qo%}d6_UJf&+Q-cHx zek1uSVP_Q^%giVL*{Q8|JaATgG80oGNr-9{X<&egB-G`9{X#AHHKzO)LwkT+OT6LR z^=JPoW9s-u84&T9R#p79a0cF2U7;UYO711Gk86C&hyfmGIPyp#LsE6G&}8I3sFpc} ze1L0EVYgiMII@WL*|@?I3ReimGAPlR%B0{OGXMz z!H}vCGr%JLB{8Z?m=d_Go_!qNt@>d!MF5JnxZn_&=Ha-ap#)gYr~{u*TmKL94YVcZ z(4NA@Mf{KsMtRL8S!+Hh3*Nv1Q9kNKahEEWx#)>D2u-|ivfPL}+CoYVm&fB(9Q@>h zQ!`6gYFGYLn)PqJtCsy`_99l(fIRQbm81uc$MCLP>`4&W@Hh&v|S@_y;o55hmJ-dfo`eqP{6`looN zvElP~MngFA)i$eJ+HUCg8|Zd@Qr>dAB4<|O*S2G?z$k7%I_oiZIyhR2sJbBF?tO4x zic60MBwus9{8_q8Cwt$poXtjAH_1YFK(Zwcs|1qlmpv6A4}&)nfoDPu_U7r3<;CFB zn+{aVvIU4WHAeIjgR@lWyw2*T))lTQ<6*9=iOsr*>Gmr22re<4=5u%Su86VdzPu72 zfqD`0iP0UQ2WNMdA|i`;bsD+ip$22U5)voS zjlYg~)%oQRRN+Ox^JOnfO&YigroLz)`{8px#tTj<6NsOT1!Qo~`Y4VHdvOVYnA=~s zoA&340VC)1ITGfq;gfd%hzc?~$WwqOAs|xBgi9QAOY))Mnaxy2h$r|q=uxv8G1u%z zoSqudemzM?)!vlQy@6U@5NL_x?-mMh>WZjwF|R6rf;bT;&Kl^`^<0vtIb%g0W~r@? z;R^LYs|dNt!DyG{5~4tp`-hL@Geu~&VWi~8HnF$4nezo1WnT#K47*0-dkWP#Zcaav zE=wSSu)4Od*^v@XICzUHS`8A`m2Z~$o`j33x2WhI1W}S5i@Fu<>G+Ql%P=F-E04Or zd5g9da$2w?<*wbf70-LYq%c{@2S;HH3hh57p8*=Ba3!$p7AN_d7P`wZb*2PE{ITH# zezWU}o3o;ZuUe~dt(HT_AHQLm3e3*am{Qtr36?+p@X*TAl?FRZ9|<%9>3X5Xd;7@6 zDs}@K`S(vwvPVxk%r>}ZXR-dl$L1E|dz4<0gmxqmX#!S?$I0baK$gR8uXJjBs*BnEmvCp2D z+>KHY^+wOW{@#?!u2>mi|7qu}5}G6pj!`fIx2~629e%F@AA3`o$js8A?_J!mXeN~| zaa?}05a0t?vNqNQptkB9owu&$01Xq=N>|y(~yiEp79>7NrqNuGB@mH zPEB{howw=AnIzMEFtUPv;)>8r}iuJl4K&e1%sKj``d zEP*L2>GW>x?p0~>brjKLH+xAu@FR;-4&%)qDXWw~5MoLR-Nhu{A;Ph=bGz+!IL)L^ z2xEG~9*iAY5vDof+6ke)eHr$lW0I3>2NOszch+ES;&gIrNdRJPD~d3eg&^OVwN=Snibq%Qy{Ti%A%Iy*HSISh<&nf3+BkQ8(GwT)} z_pRW(!k3`%&S!o9uG!lIUE7E|2F+Pp%l64O2KoatA3nq?08m5P(q=_U0>mu7g=tbKB zVaV~7RY_10!8aY%7S#$*qTEOADm`yeFEyF&Ok#?B9Nl(`kU<+nL}ZXS2%+l^1ukc; zkUmRH~8!aig^vXLGA9=gC5bRoDGd;Jmjyq^MyBcN5}KGdG%?%%w6 zy@_Q1e3_jv+o|Wac*tc;x`ZW;1m6$z!=$|A!6LVA3-ZLqyP#Jd(D%W&65d5!H20)@ z^4W8-FYyNqFoe~+84B&lz@`Bb#Y+js+;bn5-7#Ho1bPaJLDe3SfG`HH>dQC8>| zTYNMA=I650p}h?>)16Alr@l z9{Gj7OJJUx2PoXp(-h5+uR<@HqXBqv=B5V@z{r5*=vJ*Mc^Pz*ok?Uu-H&r%sy;BAeB6k zHglykkb!jSi>`Gb*>~w~zP1C3ds~?lkGOR&A@Ey8zAdTH--{Q-D1Hn}PhBWCJdm_i zh|}r=V6~1oMya*}R(4U9%Ryko!N<~p^RNC!ia>zpzhaD9gt-~8GK>b7P<1*mm2NHp zdLyZs&!^Htj=`A%A*v~6oWJK1IWK3DKHZlyj0z*#=?a4Tbj7i zl$=_?vpfZyhm&#~=d_b&gBb>YF^>5&s0p0!$i-^VIh4@JYO$|6M>1ArDhi)*&EPfW z9mteX6<{cMe{w5|4_9q89=%z1#t(E$S+r0c+%Vn1jMaE}&ToiU;ZD}wYQ4eS==Lvj zm#C;7fgx0*m?BS@UDj*8;ZFKZ3`nMS3y|0n^ED9H3Wi;FYFo`6k_psA>Sz9CaT-Ej z{5vEuMf{JeY++*}6v!z){wo|Jr>^+@8>)rcd_!=Qw(SncYEq=OgrC0)Aaubx4K9RC zuu`33u8GtXYMdC&F`8VK1gWc|rYQRd?JOLJ_f5?ox{)-T)SPPOEw)qhQ9^X?tm@Ay zc6yM2tg0iYqw{hr&z4CG8j`owg(rEjyacNo=kEOH!1d8Rl0V zI}PD}I3a~pHKLaugHPm141B)kf?7>e%nv7Z zKi|Ev6eEF9;2VFyTXtEBkIWUKgt!)HG*)}eSK#650zZ>pTe-}XCX20nKf2HRBr2?! zaSySdZkZz22h8oy0>`oESR-z6RGvk2kI#H9$P7 z$n@q)W@Qu{%S`%TVq4}%Z+0d_y#iU39)DG)qxXu^t+8Q$@~|TzV?f19cso)Ca(7o9 zqWnW}x<2nv*%#a399eGv&{>l_|Hl!`vEde0w67RjHT}&e*ovqjTEuvvlGJlxd(FoS zR>--n(X#fme}Q{?5c&9{epF{cr0YcxZmI`+%HToTM_gC@yVm!Ko;d_7+<{8O^}Ekx zBdRG{9KyHEHG#47FRIa~3UG{I@ak>^c z!s~X7=KeqecDe>DzOmPJd1zyW_FAjv4iPcI9xs|TxN>uuw_HJgg8#G=jQ?`&sjBch zCD3q9o(Ja9LY}vr1=n9VT*odg`Uf?5S^9SDw7;2Z=67!pDD^p8l>XX9ROM5xXKt9U zx(rBK>7~7B8WgOyk+$h`e}39~&rnzE!Jh9_#>cDqyS{fs)z+JY_iw1%eGZl&NQz{Z zADn_IGs3bvD13D1iWCP1{J)UMm-^CZMCaoK0+HSO^vRt9#`nOD zC?7JE|FGPj%wWZl?{e^z_~4TZInJ#v_Uf3d(e`uy_hNzJp@qY;OLtdRD8UiF>td3k zv{Ky+Z4;^Z6Dgaot5vpk@9kMoLO81>hfFy=&!Gg((dLT3S@wm( z;(rDuojUt(U#?dCin&ITN)_q#JHBE6`hi&0{RD1$(07kYQF!c6ofc?F@HU3?4FKqn zs3GO`S*sJ72X;252AxN?aV{FF1}pgQn1}wB@%vr} zQdd7SMbtCtAoZ_XG?30CNuT3pP8#d;N@+Xwfk2Bjr{XJxM~r@C7<{v(5)T{;&OaUL z(Q82vZj#@=p&W$3@d#eJq2asSGnuopzki7IogY83u+A=F-k3cCDffi^ciceyy4bk$ za_Zs3bz)?5&0@ljFafgo>B9-7=rHL&3B~df%&IWAR7C;GCml{R{7W33eWN<*Zx~Xo zTQ)nCCDa)k&P$phsM-9@r}w59{>Jjsca3=N&PQ>D$vG2MUoP@ z?P|kC>C!IK0VecVRV+J}*l7eyD4&L9FZj=&sJuf#2}1aE|FQwN4a$Zgfgw)ZxO=*K zi?P3thgT2NtZpWsI^PkNyHOy0UXeo3Xc|Fl#9wvoD5X%rz!mTr`CWhv=f-95cX4t>Txc=((zI%!2$j<7e|T3D{@B?-gxnd6Q7-O571!{+-% zBuBL^6i2pUO?I*>_&;F^Ba!UNL=Ri58y~D1*nEN`cQ3?4!LFnFhm1(yoNjIFcZT@a zNlp^4&MAcz4Z2S}sE-Vt70;R%`qh6{HJuySzRy-Ny}?(lvQVyhS!-lbxrBby=QW!+ zR+ov)``na3`dVf>C7sCQsD@~R&`impvsC0*0PkQl0Qu&o-cOIWaZ7tQo&XRgyyl${ zYJ3MM0Rm$2EU2Z@(;#gKdh{^pP6`*0hJ6?+d`(En4QQ<1q`eBHj@a?Jcer^INY&2H z3A{{c{lc%qWE%BUMRdySt`eW`*C)v1T#ZcFFY^S@B-1Bt;Oa_?kgtgABKYJ#fecF8c|fhP%R)5uMo+<^9+XW z>WrTPwHuLL$??Gqlu8Qd)kf5|pgCW9SO871GB}Q}S5-_@*fbn1 z)%yaq>Sein4~5tB7Kpxckev_RiOz9atF0tDOe;;fc_OH>oVqabmz(#ahoy{94FE78UiyqctVZSfJG)(# z4c>FS9m$jl2AN%n{1&*~Hx4bt`+*_b=6jmtMA0pA=))9!Qv6rns&U#mU0n9d0;6 zD=MNn?^_AUM1>Z9TXI%X0^SNn=LDamq}>)g=rREc+_XNLn zP!Ex;=kz8E%5ixe{Pxd@9daClHoGE=o!Zke=Wgpz@4|pf-~!!E!20R4YIh^n=aoP2 z9%QSvK8s3Y1a74);GOqO7izxFf zI=~En-vlEFwOU!p!bQ8CL@5CWqlXkgt1$Rd_~6O&(g>|d_tiLz+zuGiaXhm5qwcn` zWwvZr?|a>?+@)R5spL!1~-M}sDP-^h$7VKe>p- z;E#~rok;z@R)Wg~PF4ZFbDux!QuC+DN#AA2H>IWz2B*1F9xwj{(`4zE-m0@y%q|~4 zQP^22cVkoR$YU+zWtwrHe78Ne)$*k{!Op7`n@3?oB|gcfSF$yZa)_YCyHvn8OONkM z>TL1vH(Nt&kB%mUZrQ%l2PM&PrjjV$VMGmYFj`RGKCH7C(hQlmrDCK{C~pYy)qgB! zw{CaYe%4~8*q60$uCF4!G%Z8IB7u>ujEV~GyL#t4-dK<6mZV==`i_~OcL}iT!o-vM z&*N$VYhwUtrW ze6(+Z8P_<7hdsvj?>C`ouH&by7I$>3(p6>j;wE~Er1-Ie{v}kCtUS6=Iw{XpI$5|O56lKq&CkdfVMj+oH!V&#*x;{th^<=Tt4z7)gBQU{XA!}= zG1ghi+;J9mNMg1{5iCzD>D0n#K>z5I7Ljjx@Q)G0G8Pz-s@xOsrSwIY%#*iQEPa3N zwD^$|eKmic)gp#UW+B;&f>b^ z;T=mC|Lu#LoRHP~JoU$HuB2J|1Z=>+_?9mN-LaJ#JJU}i%=itr@7@@dQh0x3*yhi$ zCW#Flet7(8!5n|Iw8`YosMx3m34c#~MR*uvw3&z9F)xLjL}_$tdFkqKb@b_ecZS01 zvZor49^1Iy5WE#^(SGkT%- z?SFh13LPh$8b4pV&hNKOqG;;pv$|v2yw?=nqEt$B`du!8T!6+mpv5VEYQq=yOhTl^ zlkLxnhiucL{mj*p`F2}?sc`1P`f1g^P%CQN3Vqg0()wi*HJRYJOMh0Uo!1#M7pXRR z|6aD-Py&hgI}VgsaIoCuxkn|wMCq=8**j1FAW{PC*CO*4v{<2@nDAKcA9o)zZmBpU zx%7Khe&uJu@CO#bO4i8j&BWvPf|KLy(Jj|}s~4^<#_#MZX_nr+`U933EpriZ-)8^u zUZYm!pCxqhagAk3G@#7Bq-@M#cl6&TdjCm~AXaz>PykQjPH2Ve^f?aDto(d|YqC%4 zgTiu_N4ewWW4grn1Y3=_J^n=EM?gA051vuHU23n&i&yUWq(B*>F6tLjt=b!@pb~kD zx_kJP|6B)Y-O|0aHx#;H&h6StQVYXaFC-oZM6|Nt`J7%Acc_nFwJ_r$l^bypXBU3$ z-ajH^miNVY?6+ zqIM#2hZuCd)t|SMkJ`L$hu>v~Jhw$`Rw9de-!6tBf5^Fjbr)-sZbq?W1+$tV$wwEM z!LtH2qj%MZ>h#ae9w_~j@#0<_3%g!lR|njR3@QBFrll&`o^NZEctExd@3)p+qk8HqW7EuxvMb|r$D>liSEwz)!h*V-mSAA=NSh`hej)`4ptv? zA0ODU>W_&h$7*Biyl% zt}3V7384Gq&G=i0MP<*AGF#1QlhCm7agTeqA@zjg54>%_A+)GI3@u<)vFBgCx>mY# z$5nWZAqe9le{0m~^<#uBqnYyUWG7uSg;;FB8biu%q==2L)1Zz&drYDTXkQ4dP;GqDU+oEmak5vh$RKuxpBUC)?<(nCf0Co zmk-#(V4;o!=W!g{1QcvYf%c)RR^ov5yaiu)r@1s$7ya2iO>$GwbllI0b_Vv1llxNT zA(h*2@9c@!UEQdA#g-CJ57yPpuSe%EL&R^N9CF@X->GiKW^)&}bJ3rRG=SHkwIpkm zr?wp7W0=;#1ncsnH8b(OugXKqO+vTCTtn1rjO^CB>gFsOf+#=_8}WEM>N75a=WgXP z#DaYT zo%@@7bd5^mz07H6<|<1E+a;H4AsPcDsVYn>)3W*i3#&h!f&36#rcTB zF`t_B8yO7+`CL1Dzp=nO#6$Ih2=&wD$5|HT9tOVz=qRwjS&gN)N^Rx@{I8s3`F#)- zvxrA|#H&$Kst6Cw>duM8#&Dyg=T`*c&qLyck4(4;riqTe<7G;v`6XVhP9{n6n>6Rj zwi@ZtHnGgkDyTd|RgUz(LXWd%TEIY_lB@MfwolScuk-5lxI$AA&S>Lg{`~%BtqpEQIAOlVNRLcang)IEKhNCuWpVce6frA#gr0Jvq-JX7 z7cg$2d}S>s{I}_@DxHVVGtEuUX&_`o8iT$&ZU^9-gk(A~C6hEW#na}Cm(^o`iNo*y zdT#p}g86VOH-EZ+A`P1G_@a%}cBO-hI|32% zf;lsP9z#%c78zksH+Ba89YCDht#dyd7eMZc^} zDD~l~2r9n#&_IC)Ij_h%Z|9Ms5`RY)0Y+TX_qCHLV~gQ(Ew3~7{u`@&Xl_gm^Y4s7-(VIImQnW4>DqOV$Rye5oTsRN#bP_NLpqlo=yo8H`Ro2{N&I-{ z0@kR8fC5ptin5)%G2I(k?}LdP?SIWv`T0K0Nl-%w=}4KcOyl$#bk!j#oC=)d zZJ`h9DaN0{=O+?Hf6>^yZ$Vx!i*OGq#I|@fC)d>C;=Y4v5kJ@JJyI!1Z!+hws`^f2 zs}!J5>qW;I%kXG7D%)Lls?Y<-(_cmzyZ%b(Ut^4!`o;CE# z+I5gb6IW)oj2~4{N*tQkm~BtwMVYJNr-j~z&m6XuAN5}PPN<0^N0|skrmWk}?G1sw ztN?WafQDdSY?+W&=uv+os{^hMP+?&TRo-=M#a$EPZix( z;p?{a+FIrrcgrsZ!BR@;O^b84*ngPf@^WE50xdzpXS&iA7>!leGh78&I3y-SF2 z#edXIRwU|1MwlVWb~hb4=@8JyijBtq?CFIwc$B5zY%6n^mkq-tc7JU;#!r8GjK|i$ zO~#>{7Q1evAZ(M2+$L-&^fAKUXK0`xAjj&UJHl0`ST9Y{L?3iP$QYNmslUF(YHU|l z5Z?%b!n+t{T`hq(Gw>8AMk&DxzHZJ8+3F+$cqnG#Y_l%`8*4VR!7Ta9mRyl)mkpOg$A{Ubw2+$jqC=)NM&kI*RiUyT5|c7;!9ZhbUd@-Z3k& z+)*jZUvNbP9VTj?pR*(#j^2g-ahg)Nbfg}|ynNK|Gv4Ix6l6!O?MhY{S@8>5BT>D( zLt>DTqpJ1_#$!!3EH)Qiy5CwtJd+UTHLL%l=*74Bdofn|5;1@;u|aQr!F?p8L&Sp} z@D&eyVE{`hUBEy4L-x$t!j*MI{&UOA20*YSSX`%}KjvUej$KI)g1|D;=$R&70Y`dx z0ZLKpWw=1LDmRuO0xo=sB~5_E_Pg^_7|!51m)oi$eUOSx=8H6HMwJ&%GKcAP@byo4s|rSCmr}lq)>fzeAr*v?@3!>5`^yY!M!b*Q)$n^F zGf3sct<6a$UV|SAON6`rBCxT8ISoj~{%IO@nmMESzHq@OJaj|4soLAruHGAf_eK@u zJcS#~xcG%+X=Cn&ep* zI4$q){6uo=ig${88v!Nc61yhrf)iza!g)}{o0Ng6qZxTu!{AW1GnB_G#~pa1#j z{;kq`M!GWh;!h@11t+W>3yEHG;l>No(f6E;DE1iD0VaVFA*9U@0fOTfTE{c1rHRSU z1CfwUskEQ7`i->&7pTdSq)pS4c=9%dKwaM_-!_{Zs9S5_w^&kAJ%;K3Xd$qDn5|#^ zndbd=L!mIDm@I%;`HZKuJ7(V~jq8trMvE}jf{%dmS%I|8z0$B4MK((=9*G^jJYQV; z?Za`t)nti68!epNXG~87#!6ERyh&S77W)>e0I%YqMX5&HCI_3;_M(!x0(~LJjJnU< zB`KERKUN?xp->@3bCNGoQ*Zlf=LB{E^!D_yzQ^gvYvsyggZB(oGAV`0M?u&5AgT7o zOO3Jb{aMmS(#r_XJ^w#{zVr|>a;@BL5S zs0?pYGnHD2oEa?ciQ=!nl<6@x;(xGpEp_oaI2HQ%GCFDKYDla|D-a&rv zhplua4w=11NC$};$QH9Uw$6v6(r^(JTeMh~^ z>hr(|$#w3of#UdajWjDOUl#B!oV&mJ%F~gtl}Ll85d~27vgf?$alRt_a8b!Bb0_+! zCb5{OGiv$$H#P`F>0Ad47{U4^K$GtZu$sWKRh(1LcYlZF%FZs^bj^uHUi_MZm`%Sq z^huxL>Q+XQ;}xNw%!0<|KmIWe?*iXyPiAUJ=RI(vp?f?T4X^JlYXNT9mc)sdoW9N< zNE8%K#Ra=kNr{?no89uUhDgw_Rb=}*>C|mhvDx@=Vz`zvUbV*(?-Gi?$*8_SOK1)T z;lPd-6t#xljNO;gYiXHYZ)S&v-LYa@Vs)C041WJH*7)-DS}viz(u(3A{vsdX%f@QN z&?Bu*(f5pC)4UnCLw%dmX1bz`Fv)kD{BOBY(&Q;8p@g(vo>k|>M{$F1i~K>8xShHb zSXBsa-zMhBe@5?@ELSk}muJ`0ll@R#9wD1!>)jxq*rx*s91e&vq%j@pR1B?0vPD1} z5?Ga4Ja*T;f11t=5adgcf16j#nMic|Mz%yNt*)UU>|vqNn{H&a02=PSF$42|bl5uh zN`{89fG`|Z^4VLQ!#ML+$Bp^kh0*h0!X4LLpz2T=s}4U_M=O5+aP)LjLpKNg6@l=j zHMBY*2})$KHh!Ao2cdQ|jHeo;<|{2vz^08Tz;Z0WbH zNj{yeC_x50!RM3}=_x0zbx4oJg}YMU1;CS8vDFPQczaSEe#~2b%~r$gF@nOktfk79 zknI=1Mz^sVHsT>(m@jigc%n$0ar4N#j`=k1k-D`!ytyA!8+wwO7);;WZO)#$+~_xV zlO^K$ic5$0^D%jF=n)kdoDtWy-?+I0$lPC{?@?2Tn@_TE>D$q{x=eiRVOsZ|!ZX{A zO(+50;f(7K50OOT4WP-mRfa_1jjRS~e`09eirHS{5=78k@|AN`lRK^71O`TB!?ej1 z9{s(alD9zmF(0vK6(aI7T5TdY^2T8Ac@Zci;T!K@JlxOtJ-V0C!F zeDiQLAahl4w31ry$FAUrugqAogHthVRqpE*QNLe(>7)!&<)e4|h`dWF+R(}zE22sicRaK0Eecz!uuK=(CUQLMchf!F8Zd`Z@5iKWr!c%h$ zlFHg_jBxfpy^GI){lAEj^h|av^*n@7Blkj`QwK@-tBuwrWOkh8e5AFaws`#VW+aH^ zYG`KfD(MsCg?{Qs}tmy8*rYlkdWw&$3@Xto(32O2@ z5Z^BR@7jqf4&l0+K|LHg`rmRg)5W_?kEL%s*7Xiz5-BMD3AE(73KpP46?uUon%<4q z#nK2Wh~Kw6b8G~Q2rsQ9o1i2Pl6e1bsCx@*M9r|Kv$Cx*)gTUo{`XSmNP)>BbQ8~qFm7lf z0$i&iv)${A)~^#TO}~H5#z2qgt+f}M*$YCG_Xqs2)ITATch(;Qb44BJAGqZGmls?a zUCBHBS;EFRdK|&)D~<&DFy?P1Yj-g2nwo2o@5S6Imgq;9z7M~+maeBr`*dZ{=MitB zSGb&q7aF=QD{#^qJdG{bbvCEW>&V_O{V4%`?SDq8r+sr!9QZCx&0nf?EAn2x?;gbJ zJ_ue*U7!pK;cgPb4>bY%ine`ub=AyDx`i9h8->YR508AkFb^DR2g{^vlPy2qCLEa#40AM0YDI$t%v7v|keb?GZ0-IrMCxGd@4t4q#R7&M-MhU zgrAfBx2AtTkI8r+YivDKFcO<{_kMwGtXZ|rj42(l^F1en`Md0OpWH4$N-5iw-cR+J z2NoP-ERwsPMnK{_a@2@*thsMpQuwH0F7I>s8FaGQUpQ4<(1 zWyC!?8W)r^`ouT)kCG9k-#k6Gg5*3WK6Qw8~tvWl)M9J0)FOaP6i0(&fUZEf)> z4R%{&Ylt;pzMQWvCSM=*aB5Tn*;i5#Mi?xsT_qnU#=+aQ*_`s?M(XXvPy(o7RiR|) z@{n{9UMxGVc3cqj-Ne~B)oCL(mN{d@r(3;!79YQ`*^S5FfVxvEnA(hk@rPuV;&FVg z9wSU9lHHoi9bJxlWg*5!aHT`R6}!UZyJjzQ>fKY`90G= zO?`46-=9A&hNEj+pH}%5TPD;&@eN!FyV#RS1y#wZY43(q86ZSHaWbUl;~c5(`N>Af z!mDTw$LeBJ)&F$JN|;x6{chip$f8s~)4cq7-*R9aTaoYdbG3m%X)orjoETwg)FC{a zP&(w+?9r?3vGkDq!;=Ia|K%WsNG=u%;D~Ybkcpf3BDQqaT>b9jG|`+BeeeB;8A0>P zG4k;_FD8gOnS&v< zJ~)aG>niDNrHSCZQC7D5#%H`=&iJ)oUF@mMY<|x#v{n{|%+&^cwZd#Wn=|%4gt*e! zZQ8wB{6NYmUATlMfRQpaETM(`1ACA-t>U#OjcyK-J(5mw;xdIJ)@7gVT^kCE{~(bn z;=(6(Z#Mm8k*>T|nc^#3VUq)mhlhFhe?eC9{!9d&^rEntJLb>}7 zIVULMe11JSV>PGdX~$L=En}NiwC&UA1PJ2hG}ZAM6CEc%?04kddmHQGnaE;zJhzs) z+<)%=bEJAj^0VY8NqGmiSF6-Ilw9h%D?OQ=2O|MTxu}t9odi0%zJE8B42|+f8+5s- z4gF)}$VCFP%2|)Q^!m!iht&-&vLE*o(ZkUUS!HKM!sYb10{vAb7a%C?rz5`(*lhGK zUeNz#ob1m$%EADCw+&-6?&a@q-^?b6ty*qNvN1gy{I!0vBzZ;RzZd0i)*@apksvV~ zOv(}f!|DvtFOD?BM*M>Q!L2MjU&G7CEIa9C&l3LfVwxb}B0%s9e>@{QQW%ijdjR|x zmRe9#uf1YE=JxNM_l=7vwn zB8S(mmVACkSjS{C>ULxytUf?jVLY3l1gTh}3=70%Ry;A#3F>!lB>RmsbKWvnX=Jb5tTp_;!c6KB#TsrZ9iNUIUS9=}D zioKEda3qtSCe!^|>&r|Zo64HioO>x>{#hGJMsKkSMzdsdoqunootzx2N>MKvLG!I& z2cy(8bi`98quLy2d~?6(gd*ZiOS+8m!rb|My!+{Su_3;s%fs13NoQ4UBo!9ix2rgc zeaAXx)f{qcHt^N|-e~Bh zxuOpE*XBkBagE=?>-K2>Wf*u2~1%EV3&O?|w26pI~!&WTf zL>GKo&^q}y-&3|V*w$C>5X#Eg}^zD557lFO+q`-1ydvu(S|S4`rU zt&;L1@19xD$62qa>mb(Z-?=hzNIMM&S6G>>F^{_o-MtXHB?2XUiHMO9>Tfg1mUwfg zxf_}kry%HkR`UK{3l{Z)OD+)glCHS13p3@jrK%O;F!tLihXPhvbT0g#5=x+o;QVIo zgsy&$jmFaB6ZyqeY)kaS*mfaL z1w=)k@2Gk?i4f+20Wu5*2(VOP8u@rjKjpQ?P@VuGM1Tv$Z|$hCli;4|%EGE0=d|*iY+J;)gIOynR|7y&@>p&YLWJcS zE~D^ax^7=Uh=~&v&HJ zHjuB=r7{9mc#ITr6OyhrP$g1kwLqrNTW9*U-pJS3sxIMcu+svmz@hD>Tw`u*w7KKq zVx*5MIvJFV2mQu!qB|xH^WBP4TS9_966N|J|DxvI7QBmY9zJA<^DdD7jC+BKJFqAL z;}H#_iV5F29ul4fg*VD&yboQsQ5?e6{GQ1A;Y**pRDnD~@p8RQsV?qB3_I+uYn*jX zKI=+_Zk+vQ%J`1p5a;wFaPf8cpqRF#+YsLFb1ueGYBz8aR{T77)jeQ2ckM32cZ>&+ zSHDN^+t;YVd07`S`_8C;*7eGnjC8KL>+LMzjU!2dpNt;Olq{DYb609O6i|R;rX8rc zd{|}Hi781at|Ekt>~E9DD)4kGBx_+ue8QwB)C%v8^I0`SrZ^YChJUy1HJdY<9W$r zX9?0LQijF(r|+2T1zlCVY#!2w(C^m_Q(&RFR&Prf#}AwZou%V`2W2FW3^?8d#i?Fp zZqd;#H^y47lU!=Ja^MnTQ(425%f)S0fg~t&^>k#mP5F5m&4n&X`<3xpFRdqN9j5(b zYxN!i(3|TnP$14t9W}#gXEEDg!?d62kj-!*yQIAsCl;ByZ{4}djdJXN&qu|b{1Ki< z>5^li?F=}5*zA72;n-_NK!1_+Bx_`#=``Yd*{xhtppBuLMurHuAS2d3HK3##BOmq$ ze7)Eo>=xo%QMfQd>+u@tt%Z_r!+vl<@)cBcs~$z;-Y|YMJ7d7Gv8eu_ZTpwUn zh1GAq#}s@1nX83VJbDv(B3pSQW0lQ8QKgs;w2<792>|}X1L25XWOwjDR8-3IF;^G0 zgOr!~0dU?xP|`z)^BqhteJr%dsI7xmhRaWz4Qx|$%#sV&26IeZQS5B=@z^P(Zv`2D zI%6LjVlEVt6V!n{J6WRe9wL=6|Fyqi<;u?X+v3&0c47@Ft07D|OFV{rreRPjZt9rdxdVmyK25N zTlymZE(ttp>@)5})e}k|lMZ}{5brq%UuDUwyPV7a zm$kyJ28||GHonY3V_=gTY=9|(9EtlA5E6AVMA5R^qTL&a{ia^XX^&3H`-<=53*Xlr2;qHM z3%DMOflBnU7PQAPl>>U;0OgyS6%bP5G!_{rp(p(trfXD+2S?xn|mhKt}hnob_IF0+rm9Z&; z97Y*r>T#ppHFRdPDahibentz^S{XxNMH4y%{9xi>17vAGPXFTHcjH(5)9uA z#z?+&{Z*5`q_r%3mVb2ASZED52s}#j{tC!y3BBYlI)?R^h2VeM_BjvEe;qn={+t3Z zzqZ9vOyp{+yc5cylZskl*KoJ_c<;3RZPDjI8HdCALQg}vo7O9H*Umd~EcjgHEPh70 zQ`Cc2suwaLNY7oKr@KKm03L-UCu&jpV|)N{Mr2b~H-|kQIE<^!K#f&34CPv3DP2?! z`(un9!-_?|MW^ynK0e`_Lb#Nt3j_AJYHiWYz30V*V2GPG+CeskKRaAfA_^{7< z;(cuniM2mH&MjWOs6Jp(%3)v>jrV2KhjfHRAIU2-dghx^0Gz;1F|>hhENr zgxJ1!NuZplln_1gffjhKizPT@9hTTFPGW=Ir>qLi`1;Lls^oqMC8Rzi)$z$wqu<0qH*Ev2q`B!Jf8$B$ya3m9z>|?2V zGCktnSDJD$wZXz#9Fq3y^1i;0LKImD5b~_jhzDmJ!VN)@zLZ$W z5Q!)Pc8o$!Of4C_ODKY*lw)`jgupT^qmxfqw9mvx#A6_ofI9;LK#ApOAM$cn_g^`y zo-=3xlRrD2`O?+8k$mKff8pX@sB>5!t52s=;)Pu>l11izj+>6x-)+-B;VvxtZd0K0 z1bSbFVe81dz%xkhFu#&|MIaCaj3e;bFw;C~cq|C1buqAY@$%*<(G3YVU{T~IK+uV) z`;v!Nm>(>FpjW#uA)o_^pKLq?MH0%ipr6Hq!%{kO~g-dHic z^idVlT+Rx?_qzpQw1SaZqBSKFZes(^f#5D2c5Fpo?!&xN#ZHj*PbddGTgcXQZ7cBy zda6S8^6ucy(SiR1V!^{p3CL0*9?Ba7ZiY~duG0mhA4tO8-`OEcePI5B=9^(kA!symFeO^(QBA z&PaZCct39P_pLAx{k?4YMXkXY0rGBtPoKzzEAeZc#M`9G|4zXg8}WBDY8vE^}j8FAV} zCGm#9sG=$r`Nibv0-i8P2iGktKom zzZZ+;V|tzRn1>@&6h;Dx*OVg?!(0xwVFd`qG%62!c1ddCBL~tm@>N#4x z>$94P73o6RAnuAu$da{Y#05d+na6}e1LBk#cmVQg|GL0ug(?z=ZFh2l{h+K*=vt@2Z6xH zb@Z=wMdRwXZb)79L^i^>s1GgKf^T9NjCglr?8unUdnRT74tW50Aa_(4ElBw$`<1nj zU_?@GyRv^6)#r7)c2>Pk55p2I$F5FY-l~PYFxyhtZbNPrxine#QbZF$MY4qY3PX5! zf57womFWkptJXp~{yRB>6WinK+J{NZpMR-w?f5L!1*`=1Hqoh@+2QD#2d(d#OPiCG zw+!iC$$Z{8YqpNKYVJd#J7P)4Y+W_pXv)PIIjiN-g;>#o+4Q&cT<16R1w)$CRP3P* zjBp#IoAkCTm-j{mP_x?fg!d;!Y^eV2DRdp8+o|jy%6=G4jAE?k+P3414Y}DIs;T8I1Y$FeBqm<&oLx;UdU_^_m zn}f9Zm~JP%)UgN^78CbO;?+W#TuH$-MVY0RKSBFikodC{0R6PnT#N#xvs~culxt~w>@ISP{m&=>ewqQE^AJSD~?y$HF=l6f*t#rU^|2KUTSi;!*5fMsi3D&^qNfgwI zZtknW26(xx z{zLtsZ!Rx3F{`C2i{v9qRd@?K&?_Z1J|q7wijYJi^a`Lj1#w)B zWKC4{k{u>kY}exJBAYrjFJ$WIcNG%;#rl{Z2J+Zbm1fWzeRtDdOemj)VijfsB}5m5YZT~kQHI6b$MCmQULVDRkRK;3 zl15%*LSlLVdP?E_6F~6YZZK4TP`BK>PU}=d+R%f9te;Cn(k)s6rbY6>=(eJ6Dup(bp9r z7xJD39hUE-BdG-pUvb5Iw;^NMrw$xsN+s%x*uI;K9aAJ)oEL)edX1*$t59*@ccK0? zr8j&{#Nm7;#>Q)N&6H|`c7Fy6ig~1&Ef~tTM>>Tz<2z({%c>n_&18zr zGhc~YV9bb7kziBj>214}a!3b9z>I8exy(l50+kCTx|8Tm3)elxwV*t(+qAokL)Vh0-||xM8y1 zkJ7~o1U)4PMLc_)@934!@-*!Gst%W>%JR#wUJXpSb<zUx9^{WSA{Gn zOFq?J;ub_w1#nZ1@({h;WF{_w0vhJ88b#guDyxNtkS#2z;8y?5QvaPg#)w_%j7j$< z7QdwxjsD?$JuANk01ZW~1P}seqVkxa7P0hu@wYe*l#9-1-+_$7lcMYm&J`4Pfn83B zJmJ+J^PP*YQO+7aXTUs+vCw2bs1FFS!jxhNTfVj51_JEh|}#1$FneT5$-b1=4$yr^B7F#F$Hn#oim z%J6ZxtPWF%B`lX8C6HfAWnJ-4^-?rpq=m(E)t5jX$JvR#K1nEL_Q+`--pwh+xMXzd z#?-LKR4y(;9US1k@)92;djO1eFfli6kGxxaM((M@Fnu#;6QhR5#rkq%DjFj>eEN-P zw|0#~N&L3eNDByjlK*YnA)!4ms8~7#v#3SR{9o12ML86~Z`KZrJYaY$?4SJfOr&S0 zIbs;>)O8FXR!=mfB$eC%A&}Hh1dk;Si1z|0Cggic1nVk=JlORS_(kI(MZnE&2JvUD^uB zMUy+lrvh4RvCyLB)rhZ<#*WXyARy2>=&UyM3rR1=?N%V>I!B>*2I`Ofd zh61({ihpV~7BsBTnouwm#D1~yV;?L!EfB23ks8Oadn}T0Fy$%coJiR0b5ZL)E71i(Zjgcc8S1gU&z5XnS>sa;)b zOez0L5@rx3Ubv!d7J2*4DaY)?x#_K)@8w)*V)nk9{cXu3Qct_J09c@_rx97OL<@?E z0=@pj)uUvQ9Fl`$nJes1$=LFyuh3%F^5RjSxg*SBzSPm-7ZYx=;TpoKWNHfh4NQI{rek~~Izhq5LNp4S zJ{PMAw}z+FAU0zz%ny50CL|$jN?eS8=89RKXO3fC@e9o<7U+4^MAB#iG|pfcKxe#Y zz;|CB*h^{;AQmXTf82&t+eQ$otCra&#HV&)%1pkz_aRB(Zs zk8i?j*J3(K$|O|Ud48>~vlHY|B(+`1);sMe4a8076Iq%YgqJqb?u7ipyBebiBR)wJ zLPV3aj>JtC!&qRhMn4e^g=bN60jT|Uu%r{tt`#Y8b+K7{sC$TuCp1gIT$U#O2!SO zII|yT1v@Pq5Da#oUCq@@7s$2{1T0o1o$2PC=Q6K>)`03acg0Wu{037zv^_%j_9j;{ z@DEbO$jN@8`Ci@Tw-RC(+HQg0j$q9|ggtsBc1-3+#`Ba<@E&8|zxtz?8q$)FiWp76 zRSl4pl!e9w@VnXd5)1FeJ_6#)XghcT0|5Y^>p3ZFZiQn}D_QJSyK3;@N7F1 zrmnJZpPMJH*9Ex%A0Y^#wCDsWiJhevz+B4YMwbNB&>g?zSS97HB#UJUQMx=6lZ038 z&O-R*@oou$i=jUB&E!K~P@e!w6xZ?vgghMZ2mdC*+1Gjh#-YCQgxV7s;Sqn0=xk=| zz|jpqlk~^+&HHsTwC&zGe}~N^8}UZZ?`*D6XoeF|X3W76jL`$N%D>K#FN^(Hs0<8^ zw{g}Xw%we;+mV~Va*mI_Yt+CT3L}I*==vR*V|VZo%Pvi{j<#MV?6>EtMvBi7^tnke zWO*0%j)l$a?3QRR;Eg{1UN6AQ```DaUw?V1Uu}i&@O0K{p@_Zm=CREi35qWyB}sJw zUFa+wVH=&p*G<3Rav4R*h0lU;)eUc&yQIVD68aXAY%@ZypY*K^HxAt#G;s{s8{1<7=Jz$ ze)V|w1`1c9{WwEH#+qnD5 zUE0p-e@upj3Gwn!Q4mICxsb;2y4aUGIfKUKqfYDgDAUZzRT zYsBY*PhN4tJ~i=0dA`%8AiSSjBsAyxwa6jS)V7g{a7y(Ig77`pNWjXD>_?CdEq>hV z-(+PxU2@-{J5H2sUOJAKNJQxgk1uuQmE4oY#8777Z0(FAY?VkPJ!c4I z&eq$l_2TIIHZ8B3ukRN3GpHk-;Nq1Oe*N?7h)YgeAhmY3cY%-} zeksn&WG=C*FcuKp+kfoqoE53K^y{P~wx&>YomlwDLgQ&?HdHc@rp!~g{*wHaZ%5LQ zv+EUwef!t=5aW9U;X{SZtRX`WK+T2pcxzc*A%ou5{CLa!d?-MvjNG15%>RjPnIK;Q zQ4}Wto?Wx%J1W5T1#?w2zPY7T8(~`xDzOzr*PE3ZweQyB)IWIl7+@4~xU4iD2DQEa zu?b&q%ILLy?mTDyt&|rA|BVlxx?2($;tNmGl_%$05Q*HJ*)7p=(U?}3`F@0Cw?-Lh z)|hKZ(;tZnPko&*(X36W{^DHwnqwd``HV#qB{X+WA)eSK#@dt~MJL0>B8*ci!wPeD zDYbsW%czz)kLZKpQ#xuIl;2;fev0WM5cZ1 zQ41j-gNdw$C~)n5<0o5@)h0vX-OP`B7cCX(ooIn5E6_11Kzott0lFV2QQTaoH{`?7 zeF7lQV_28CB&M?#>Z^xk8Lu8pEsNVxi=fw_BtUpl0s{;vBJ|r1*7ru$>ON|uyf;(d zZ=M;b4=I_T!6$}nITpTdL)q=MtY2loH3w)+T=Df%fm z*uq<-&eE|wlx;k!W!{{n*N>M)B4$muZ+w{fLDR*!XW#m&Dyz1S#7lA@v4PQQpV9ia zR#0B=2a9{J+ZAM6`kKozRv-5k#QkI}sAAViul_T$cD7Gpoef#m(P@FaGuL2vwjL;Ea)B~rv+%p3 zS>7b-3Ig*WluUCk@nL^SlDl6U!^OM$B909j16wAQH=Wu25B$mA{KT-&@98dGAp!?z*Wbaim-(m*r6H3Uf)F(uXM1}(gV`c1JLe|fYMZ;Gfpmh2Lb zvUg_GXK>!EHld@7FX@rh;a|0O69}{HLzKNNv>@3c;0R~@OqS9oU(kCdd|h+p9+PWw zp`);lBgdl726EQ_An>Y{)+stvcwAZ2Q-L~yp3$bB=>&DfLT?>uMuUZrH1V*HMip!d zH*|x~#jnh}HP$p3KMAEs1?5pemIT1$MgE$ARIG;k|Mpv@y)tJ1Xcg7(Q1MVd(x{Wq_w zU0o3ySN?ou^~ID3Q8}gqD})}DR)nuyG?}GgGHb&|{TqJ2-`ojr;H|T-eb;d4ubjVA z%z49C8MEXBU+}r$|xuA|wvfj%4obiMEs%69>%Jhhz>mDf|a6JJ_>9blK6~6Y)-QA1;Zd2=83I4LHo)_~`6j z;6_Bg$uCukxc!s8KdwGu|3mfDn)?dZi{wszTivn!e#jBcUoQ&xuVy^YkR+2+z%Jm~ zuY6|$V_%Ag%m*Q-rsOI24tv(T1GbKmLYeMwsM5RlZliy(y2K>)_0y!>LZ2U2VCQFe zWW!o@F7(ihHM|NZ%a~7YTkWwi*0JmE+0Z4I_wBK@cX$25H~+OV$DzlrEDZ`aY!*4O zA7V_;bY~^T#jsyK{Z%8vX-$SxW{C8vOV)v#e`2S_fNRhWy01Fsa!0)3@W*vAjBlq&T|BK4k*|5jUVUPqf6?1;``vQK zquWIP%=li&?qd4){J~H@H+$y1nj<@TG_C7fd%E~1I6j{d`jc;)z)zRNqqj9QYnhim zGuAl&#_eMl+x%?c79EIN9XA-9s9(mlOnlp+KS8!Wr=vVXa-8p-dV4}~o51Xuq1GEz zzbJf~Bx|s={NR+E%%7JjYn-ubTXaVl80f8!nl5XoF~@`yiM6V(Kj^a}cV+h`<0IJy zQ|Im6-9JCQD@NpUwYSgmz)AH&t(EEtr!3q4`0fSnt8|N-)OQECmm<>lxzqC*zE3{v z6k^qmy1H}rbd$qdR>bM{R{UQFi~X9G&%B`Nn$0R=^VYZhY>g7pyVZ4Q`nE+Gg|c07 z>)bC2C1o<7IW3)@5cP1`!N-QS$1C=%yU=QN?sTcflE`Y zdjA@K>>AIxpL6c>sXJCrN1X_t4j%vj5NT?t8UO%5^q)WgE;jn(GHCuD0Du8BRh3=_ zy*_>y7zEzA@<-mDM-gk{vXBOkz`VKf@Gz8NiU|h{%F3|!DcE0q&bq@B!o~R zX-mPjr;N1uoOaEQZ`?P6wO-_o2}`(RvNK`2@=b=#dag9mo_yrOWk5FBUJwtR`LE3C6z6 zy9~X?z3Dsg{=VVU*!1V7i$o34cLQA~-JoP74>k=B4q5u4i}U&SYFz!j#>9`;?|Gc( z9vE`K;BY|fdfFC=W6kTocBCEy|wqNWjQi_wKD}74!=?~@_dV+=UJF2azKbv(RH@lCcDk^XUzY!4Y0HrbDQQr?J8HvBaQ-XRfW@p#j z1?k5-c2r-=wL&tb7w|GXx<*z+I~tp#(CC)txRBUaZL_0VLboR7#sh}o*-`)cxYuj7z5 z1)ETa`WL%ZS`myu)$aG|TYtYp|7C3`zTl@5sPzgOtf3-XVhjfb$um;#WBE$LC;&po zNfZZ2!v=qw$v@W~r7h)6l`*XBYnU04Dpe^4NEYX&dR9-OfkQUE1oW<$~j_>c$48?%ciFb}|LXnm&5Gq@#zw z{w2Sv>Wmsi>WGti`EED0?JcC4YY7;obLU3N!-M+e(4>e=@AgaRf16E)0X&h)EsmKiM zR|7_T0%&N5`CXVLj@~3b>Dw=8eCt-Z|8>x0M^5DFJLBF+bQLuV!>Ai(JbA8-m=yIL z@j8w>denNYh3~U$g4<~FscDF*UE#>TqN^?Z3=ra2TYZ#bVpz` zIm&f^_TrJ?y`WBdB;FY6LKa;^u@uF%v*A&^HlBZGt8Xu<+(+#i%ft>z&qGb*-TbSX1gV=pkkaoA5g=ckqD1V(ag zemc2D4B3-~SV#2TiH)2+ehT=8^UQ_9m_vM%gx<${=vXxmVwP|}J$P5Zwf^C5EazP_ zb*)--_RG=lriZZds7uekD*=b89o}fv}JN1pg$R7#sCTD`UPc8d-l1O-g>+vheT``bB6y{uq~t^L+yZ*N`&Z@nPKiC#oxIo9!LkMT>w5U*O|uLCx{PpZNgNZy zI4eF%w2zOtC+5vm3q^2-1nd2F82(+#$#OW|uj|N(JB4_VL%dU(LWR;jyh@A9JWt#g zmU#&KfbKEa5=g3}>hrMc&@Ad+9?_uuUJx(AY6wC*i)d*xm#8oerija}M`-uwzh~OC z=pB*!Ehg{D`ILE{CBI~Bs3NMM>3gOlhO}Mc{F9m)Pup|q!D{lN)@FQth)m5!h|sp% zcE$l=;c4jeIVPUP&F_ypZT{Z8g0hoNYl_x0y|4mw|6A#dOP#57oWu0-M%wvV@eEj6 zHDya6Q!fZEf1^G|G%}Y)!lQ3{o7@!rLa@cJ1%IIihOw&H*B6LzRmn-=Aeh8`LnZ3i z09hd#SeHAg!Q`3LKaj`4UpuY|hz5%YyyJAeTrq0L!TPN%IZMaC_3n}gk8wk)LG@oBHvG=D%#PX}8(rwzp?uXive`mUK8hTfv*j)a2pbzBxAVVn`C$VPqNCTg1(2Q(Va+A5t! zY)Lm*n&Slt;Ks32wQ$m_bn!F8+<)*UvsiwgieQvpJ|uh?^UNwg_GH;*-|SK-+m&}$ zK0#3IT54o{qwVHiMn35*B9Ty3%NnQ*oyv>)lc=um>O$s^*%iJ$wiVISqwb6=4HV8x z40CkxOEKVWnfn#nmIdM;HycKGfG`}1a=}Tk#l_whtHI)NL{T3+A$(NlUh;Tha*GqY^WC_ zk8vcBg$!^nhll$pa?Zxjzw$xcy{M9vy9;6$-e}5gjSI{8mp%NT_K=ePx{W#=AIDWi zgwL1Jigs{A>gUCc*~XsqFUmwtLoq(XyRB|`^o&#~=I>*8VcWu>IHJH#AF6ECteb># z%Y%gDf}Wv5E>@Ps!}IbW&#K*(6_p9RPvwx*Ur9(#8+!YdUD8UO@jAj#qh{|_1kRlr zT-Nu!<9H)T=|Pz_%(SE+>t;jrzP%p{_=cJJ$7so-BN2U?)EF+iCZ}IdI6OGV>Q>b9 zRnk3mSYn|S8A9a zgey$4&H6b% z!CIRjLU;9!gw4so`nbX5JiBK3w)}uL-MF>wBmwZVg$Df=RDhJ4fbFz@kjxpbV$8O` zKVd>Y0_z(TKlNWfZIh9nqQ11aDnm%L_h^IkM$6U6w z|0(BW-@2ciA19W#Qv=DFKVT&{s$QG|mcMAc^G$hm@!5)A}MC&epdOnbNty!(V9&arOED-L5yC$Q56)C7=G zV@Q51N8pGCDB`(Uoc&}|${fu4S|6p92l67s)L4o(K#B)E_vz`M-O(k^UZ-UB^y!mp zTnI9bxrZvqrA}^(slUUn4#6RC-k2UzzC=xA$+OSz5ALtsVBYudi;-5YMGhm;k2H+* zhzrW9K&j&zaKgTx{ZY3XIyzukTBeP4aFtu>Wd1|Zu8TLC1;{(TZE>LgL@4REWHB&A zWhEoi6;vT6o1n?tHaVO0P69_nz#R>C@*=miSQ0bS>PgBF7qa*{d3DVlQYrbp`|Fik z<}p4e9;H%;A`-=Pwk8hin<=*nTqj3u(FCfz8iKd?cVliFB+djeANT1xP-_fQ-A9b(EOSL>^#?vjXE2c@@Z05ftxHH||j5pM}q zG(DlIMd|k*PCoIZzdhWFcxuT2o;rO<-~FbxJVBp`Q=a_u4(UJ{;)SRpb1Q=C6}q1~ zR-(a+Woo^<9&!P@&5hD(pTmuU$R$nznh77m7rUsEy!R*Xe6!rU%qSODu2}!u2ib#E zP#H>yvKZyqx*I>!o2%Bdt^a{?>jm={0ivyRN@r{Ck!ltMx7-JteyrDBmxGGRax-|4;4ciAc{NjS89V$( zSbs%9462ZZ;i5!~_%o|n?*&F|OAsFG`Au&mth=qH)U;UHB!95Zw-*F6@)_xE8^Y7@Ergk7ApDiTU z%xw<#L1ke*c^ny?P8`BJl5M&Z9Te|{H; zlUPsk#Q!e671_1rf4lIB9}yHRPk%-q+l~~&c!n~Welh&pj^$oT&OZG3RacSddsEr(lTkRaqe~L1NR};ZMDo#Ptf{cP65%5C3UFro5A>4%Qm56 zB3osw5h(tiE{Z-A_*web2mc-HO8$9kmgJ1pk96H#mH`aKbjh|JzkmU7U-CYsDX7x5 z4Y=~@`!A=5g{0SSTEfm2k6PQwUY8G{3H0W06p!-uJLUP2MUiA|^hVwdFGd}6Vjdx~ zBQ+C;n&Hvl@iQCLZYJX73?{uDf!D@%$f2cy6jCVZ0T`xp(+!SGi~l`jB44KgGEd$Z zRzQn>B~aO`X=xk}KP5YvIDe3R3>P+L#`EM1SoccDQmfz|;YnV+m`Et@pl-rPBUDj+ z8dg9a2*hMsV)fhagAtZ1*$Vme`*+9U>NV`favCL`YDon>B|qjOU0m)HJqJ|^?6>}z z;YkN(&_C)#Rqt{(_z%p-aA$WaVStJ>m}Aczh57_ir#C)$DclGJ{(Njd86^nfM`BJ0 zEWZ!6#A5T_e7u}?+0f?#7|gG^x3D(-d5`rB8^NO#?H%cbe7{1{vTj1=5}LLUa1A2^Za9Su$;mDtq@XA5-00jh!aDhGiYuGmkEx~m z*fHnk{Hy426r%H&bbIdEkH*;N@yoFj8~1#FprY){Yp(D2p_V=r&D6hZ_8+tnwl!}j z`0gG8hP8e<3rghO$Ghzew8TrMkD{ldUJxUGZ*=;Dgg*-JiVJ08v^&mzo= z=4uF;K^@c|iQul>;vvuC-`*ysM}=%qD^k25W(xt*IGs}0<71e9+RP-U(Kk+8v1?;! zyv#=%LuPgB2$x67N2qxlqvj!H`61T=2IimDr`=97E9d^N>HjX7CD8A3HId0dCGYQ) zSpksTR9MuEzmr((CzOxym<(lr$wqC$6J^Rfa59pL*!;KO-c0tn+dowO*I=Q;N#1~p zI<&?9*p;r!?9@QY;|k_iJZG-j7QS<+11SAi}mN>aZ%#Go}@_<{J1b- zYdq&(!5?eA9UH1nfW_)Vh4^(y#(z(mX3r*6NbNPGc3hN?+ICITa22CW-L1Ot~9qXtnt@*re1yh2m^4O)c^65OFMmb&(51czgq?;sQ}S8jFxiVikAHi{^@kUFpz zsg(2E< zAlCUYr*E6M@B}n}axT9xpPP6} zf`{l8=C&(AeU%?yxuaJqGe@|nWV~-yLlyC-v$FtN;P1QinGf=jlZg{*nAB>ETQ>!J z>w8TUUP#Kjg?pUAL0SvRr;I3B)9`W+dW)x`&d8%O{WmQ4i=V-dzCcp`w!Pb94MeW!ohN`rKLXQj5@Qn5kGzX`9u9|QqS++-b4iqEKJ!7r5NP54aPX+_x1}C z$po2u(bu{KAO0ljJ2kY5k@tmyRyczK*w<_DV3c>RSbGJ(90npHJmjgW?ST-snG+}{ zGf=T4ytibguh?TgcRzwB8jvzWRGy*R*>|5LF=Xxh`5RA)N>-sD^vey@_)^B^lWmb` z)e^py`ER;PwKEEdd#aXCa5Eo@&&!{ZtM@n>uw=JiQf(oyEaU~K&yIPNs{8vnX|}zL zNxki6py~>rwUIf2NF0&Vgy1K2<=R8pS8ufV`WD!DKg97xMe6{k;s6?{5Y2~j+~~el zgopf-lA%AZ{UK0kDDcrjllS&uKOoe|HsUii_Fb2?kCg0(O6QuH`S+16ML7lCIeb{- zl+6ohnTj)K(os~bo!;6d!D*vrO0t7S5Z9c8AVuAXRzLi^U&$4G2-sXW>;P)hc4PT zl%X1^Sa4Td)ez*bPG-oH@nfEp=aa#jMqDc?MH*_v1!Zv=9oY;V=0f4nyMV~8Wkbk? z+0k4G70`djRhf|UaWQJ7MD9Kh<&Km4AY%vJ{3|R`ZWmZ&x<@LQBmWxSpTkXVr_|#` zi}oLWeUnK^#<{2QW6IjA9VqG$e(7)06hc|KsbDZ)cO!W(5bNHzMelQdu^iiI_D7CV zZ+P?fo#s+jRo3J%M08x4Hfqn=Xh(3>|B|ZbG&?e!Q;`-=PZq~_7eZ^ zttaAmwBi`dd%8eK+C@R?N)!Z4lZSfagDhEt2bKr1f1z^yL8xaYU#JQTeSIY+=EL7C zAlM>c>4v|Zi}{HE<)%)+BDq9+WX8$OrX=@YC77f)^`at5+9i@9)!rO&q=#o`S_c|Q(wT};hudisS|lady0_hi9c`CX2#IvL{j`1|5j4iNp6gQ$z{>WT<@to49bV-Ey2P>BKsAz! zM(Q^qcRH;T6+gZb?At3)lF=V~luGQ2JU9t3-is4tPiv%19{z2@Aj>AG7;ZdM?CS~WLJ>h@T__xO zj!Y-5e2_?wTR94if^#(f4)5C6EB3`t&Hb0;aX;8BQ?F(3*-CQM;|3kqlyaKc* zq(ny&dhEofP$#Txf7K@t{Vgm-?GZrzEz>=-WJZjK0T94b07$x=yMM3%gTOfKEyy_`W=L=S;K5>n5LIl|Xz`aR!5 z4HaXMwnQ))deH$HIbeRul))1$j(jI6`kWocIWqMgl$Qn2yIdPn4V%a@;hwtt(XxW_ zOBsD`1yL-)$`8=Lc;&2y6E$Y9rlZbCQGkY{V8>|ZzXA#K2fZEZhG5q?HQ$1^WFS+{ z9PJ(Co0qBID@%>4qv3ftFT%$j`_<;wkzytx&wa0rgS>*QUXn4}m1m6QjgPQnGQpbU z$ogqX-L>4Yj5Kyc21~KS4BA$8q-UGX0EG&n4`W?ZT2~z&0o5tm;dul=Uo5b;E?}3$ zfAJU>^A_#v+m3JsPcFuK6B5mJQBaGC?pnV)S7ZNHei{1!D!!l9$$J*t%AA+-7l-Wz?3@0X+%7nr4a$9N^0JjqM#x}CAF-*D z!!=ezO!Ydbuw=tQc@DDc86a35^xHbZSHgjx=X7|kp%l&~gX-(U+;GwQF;g_ULQ<&8 zMqb$B&)OlAg*U6m1G~W_WSDI!5rOd5>3xU_5N!*2)}N>-8obE^=eX+hNyKtZ{{)XF zl5yh@bRWL({~QkU<%)d){Y$B#)ADQJYq&c0aRIUOY*6yciWqv-zylK;46cY&1u`au z6u2j6h+=GW#ei-FNe|TlOV6z~bW0|aB8bJZvi)pBL%D|4nzyd?4zEoDw$ausJKX6d z{jUtVpH2aMjZClv*_l_9?zq*-gLySrta$6P7?Ie%$SScViB+_n#9>(`+&*Zz`Y(no zdU~)~YT+RyWw~->u%0);>{C*F#gGVB)umc*xZ>IYVyvOfU!Qly(mF8y1#~;*v10GX zzUWp#`wMRs_Gc)0%svsndLKmu&VTrxH-Sh?M30i-kjw;6PL=#;0YF-{s9;uyz&QKx zTuYheGO)yOB~c8fUUtiZ&PSzwr83^RK<1*j|3% zis99oC}};4@pAqe4?f$e@O{Leh?}#<4zIRS%(^rFVWC}4k!QV%`~M(R`yrNe z;N55B!psJ%gY<+Th^rk_-N?9AJVpbCN{;G((je#U zs3_5z`EDT_Yn^@lq5rFHN86;Q=9CZESvoEY;C^k(1C3z|yRtN{dEq>8rto7pxhpXY zlE+RCuo`*7U3iLe-Qy6^#>A9B&HjQsS+$YP5g6!{D}x(a(Ddg+M&RM8FjZEJ5PeVM zcns}2RbU<$F06UEu45%`x>_qp!HfnzWd%%yg?xW`D_u=sW{y+C=p9>4IQ2p4i41@4 z%JA;|B9;5#b~EW~{98tiMF$@jT;uIJwFq8321xT z^(2XsDuMPK2Lh3M->80?IlYYwvP8IhY>-NJ)|$R!vQU2W}gi|N%)Kw5GyEH<8an0$CT2C@t#@gz>#0Ayl*)R z)R3rj)~2Td)BwM=Bts3WM{+e8ZaL_$2z2&z+r*l&goazTa%IJu1CsfR-xtxA1v-Ta zbZ{8w5o!<}?BPa|z5K5M(s2YDojSONYAz?|L75j2Ww<8C|D>!pH+WZj*aeugZV9m< zA5&pc0aPVl=XhT;6&&r5umRDzn{J^)WpB&dpw+=FEsXKX{eP zoMWcl5_!&Vb7_D@8q}3!wuDso5FMT?K7UBRsBjP4 zAX5M7MlJVyR4Ly zw$~Q}$LX7|EN`inG~mhc_EP5p=OP^C_3l4sTw7&zlB2^SGY-y|OeyRx;~rIwbM0rVFy948pWm_wN_-?d7yc za2wC2*{bicKVp5XP4L$x%|sO{9L=h1LFDiXG+%km!i!}9ZR;gTE~0(bu9Hl$aBq%= ziopXi*tdQ#@hx4bl~FzQ*de9g@6MbWPsN1?rJc{O{c`ef`A+&eLwbY$3ROk~!Lsk@F#d+Y6emF%jXf`~Z@YphL|2+-PWFi_MIgb% z2X9L|0^BR8UWpk6UB?404velY{A2pDc|$BDHC z2C5zzDmPg|E0#ZAG?Z+*Qo6*y3HY>pLrhuXsccp8V{>38P6u&hjfG~|NiS43A3i;X zGT78_tZFtS5O(*J;4V*M>(8lRCj;`qXolGOi(x>Z>vVd<5z)7}>`h3>ijmCd{(UvV zgVIk1L|tb=u6QvLyg?f0oHUZQN`?O414{WwE0cGTK9*P$>~OZ|bSP~i^__SiT6FZF zH@xb6qlBN{ZqF8mDgE6V(-QOdec(#*Oa8d8D$&bhxP@Rw%w+hfQSK+W@h~Cv;{)R; z7+iv<1HcZKQ!xsXHMd~0a4Z${*`Z4X%yvWmQbrE7|9FtmFSF5~5(QVvydOX1HMQ83 z>{S%at;QLub*RyF8eo#z-56hvt(kkekfdP^UAP7=M=kJra6a$S!vG~^05O2n%*_U7Gy-;!08~?WjZKX(M*8d3tQY1gRmihgdjAX$E4M?z+pl(Tl^U zS4JkLh~xxZ&N*M!jm-|XA}yIjKKI`!?yl2ndjW+(2vMy>2$%nV60{|8D(Lnm=*g$p zi%}2pTyw8N$&3>sJqufA|NDx`fiH-b7#H~@HCwS`#*n^w#DS~cW5*wE!GCuTJ)&q( zMSXekxE4)NF}NAN@Da_=BF0V~rq8`S^E^>UsDiHNpjG6i)v$HWZTna z3-h-$4$UkZ=361~{u5zWzIS$XDXjzhg!;Q`mT-yvH23iadMQNi-qM0u%^SFJ%_by# z0$ux_6KUIwt~IIB97VH2kWT>3tdpoB?p($vuX4;dJMSaHt0l`88sElUu|3`!t-k+K zK~`O4v0v<(%_O|=qTLE<@A&B~`CjJM^A?doS5uB^Z+!Pq?+PzbweeMVb&PcBmFovq zH$pvDrTwYZd?WM+EXtSDi%6eQ%sfCImIe>}M!z;Ew@xK>s%n1>aF9|w^_H$6H@#i4 zl`W!qI8f~#?8f~!qPdmO?{|mk`?7i0GuLfIXRRRnLfjS7s%~n~er{{X;eQDlJU!>_ zhG}1~dX4V^LAS34a>L~Pk%6+8w;dw*B&xlWb0}~l1{c6Fwo~~PJR?xF@Yg<2fd1m* zqnI5Vx#Fa+y(QI>Swn6rz^Ao`cxkQBJuLTmD{F~Be62jOcsNtqWmzx^=Wj5IBf`-3 z;<0PvthvochxI@4tjyg3&08;iXmoQo2NsVn#f)LOdZ|b=bgka`{%@fiPR^v-*j=QH zNwt}rmHgxG`0Tc_I|-l+TQphT=3zyv5)+c`+UT0&c4PC*XL( zc&qFrsx2VQ=jYKK3HD1y7Nt^jfLM5TlL^xM{!&o?f+-Qn;5pqlr->R~cmo~O&I5Rj zg7N@_n3YV{7CHEJ98UFhfB99*#@EEu*$eevy`LcZuFw#c z$k^m`fI(kqyb79(fVG}Ly!$mtMM#)%D zw98(7{Hh>h19d0OD`>%$;|(mSZ=&VoDhtd!LztCUn#^D5dd}NAyd*kBXSkT61}`e1 zDTV(=uLul;`Myx|cK^9Cco;I3oZM10HsSd@mWR%-=x%WK+(xUYt%Iy-mDpj!n2_;( zRhwMtCxw3GiZA>cCEC$RCHG5BSRkeMn<<0i+P}%OUqy2)!i$b{*I>mj^B1DF&>`m$ zq|dMJu>O~ScOaA&>=shyADZh583dE%M_E!|x*%5;fG_}|` z*962zEp>75co|K%@WeXXt=lk-k7;}koa>R@Wo~W;#A=>T6U&V0=tXMx#Vlx)s-S4W zW*bWf4IP`M_cz$Y8J7}$x*JC@$8Y?eLgKNI7Wo{$dwzB#QMB4mK9>khA&SB+POLZIeBAUZw0u zAC-SVE&v;-oXo44i0}EOn|w+w+tpJJO1no5#e1-pCd0=Az_=iPd6_~>QKiJZ$X?y$ zXhA{`M(hLSw@>xrU&9aX=3$3R#|^vhf$a5LuzBMt+UUP#M}X)XItFZC5a4 zShahC_|<2O^%Q#au2D+BbMH?dS*fp@jS0wApYiFpqg>F#WR$@6;Qu>d7xWJ8zF3?6 zeXc60S~Ro7et6G!|0R}F@}V6a#vI9raanEW&)2;7*@O7~^p`Waz4#=fnL}wF`-PaG zbIQkw%=@Y%bik>BVLn!v#u%0pZAtfU)W85SC*OJ{{3}P!{VrV1wvSW`@(&*~(mW(& z;qFD)bzw&De>ifi=V9bM8ChpWCq)QiM~(*k%Ou7GUE0bBVP})H_9e@x;3oWw7vI)* zNB8a-I>2BbbQdfE9pc^krcwVFsKJDR^b!pn7g^A$DGfj(HnDSNJ^Uye&Wux zhHe93bZx*Sa){&hm2p16yg{ZrD)s@v%}$Jx66q)q+oF|6X94a}!{~rBgHimwU@reG z>e68)Brj%hdwnQF)9rHl=I73O3IX~ZKU-z^G7!RJZs*4x5>jYKj#ua&T1}up@5iY) zOF^0sB@~wwi2t17mUdC$(3>Xda$W5>8TKC*MddE7rFs)G8eBqWGEC(g1?ktezkPSQ z3BrS+XaPU&aeI&Q)I#;4wCE7j)FG-TS`a7Nq7Sc++jjL0mBQ4aa?&r1+*t`AvrGOF zLoj-PqhX=T@f6|Mz!Q;qhmH||Nos4wnEf7kPIRZZOJ-nIWD9N|b*-A#08uE2L?xN{b^MQrPMd%d(h(Sc}=hAXGjRZ%}~$Up$P->qse$&|?Ul3FEyKET^W$Ws8^v7F|8d1p!G}WkU)Q z0BCuL#q`s+G<%{LX+3JC<#y8Zzo|8zrkXge*PS*2Hdgb~`6zg}<&RjAHm~RWNcdag zSGjKfZ*wkgN>Gl|LYZ~*t;97|zY{x?yW?EZd6z9H_#YM*APm+lzhA^wYicl`=n@%U zg~gi>N|{*=OKqh^+m6EOLNf1S3ALW*534;oCH&kaTX@VkMvNWkT`oKLSv%_Reg2yk z&7_-5lTXETP9LBFT6YwqfdBm~x?SzW$DUb?xFMX;<-~t63H@lv5hN6%AZJmRynX;B zej7;vfS_d*6;?b`{TlViF)WkheZ341;$%#Y{4z9rsnQilp#yPMycgcnb&0r~=3c&Q zQn9*CRGY4xgZe8|Fj}NX#dl4H$saPw{A}sAb*B5pDOo(Zo}zS7kb{(Jn^;=$1OFFf zuKr%Ixd{O`;-DA%J_GOe`;4Spjd0=6=7(1YB^ab6s^g#xzpRam&B+=j7%SA^wq$f| z!}}h|7bnVdSRn#2R}i}~6+qL!aDsBU4k~q6hN8rKW8M_uZOE8p?DQru_74gv&dQX5 ztg~%G<$62Lzj%Glqyv!NCei`e0n8aM{ru!wUp|>}qt<}+>NdX-mZd!LNCml(YV?gG zBx-hbouM4L+lWbG5(D~j|zz%!&}bYnLZg{|NY&uDq>F$>-oyW@$1_M_aa8> z+>vlQcZI(bIf7pwccuzdFxEkeoan^vIS}u*@i!<@K$t!92_Ae&zo=SONuA}@UiEwi zHxk7=-3xfgCCohYW^x6gH|R-@4UB<7y4+x2ECsr*O-Hbw9;*T+iemT z&pj^~WJAqFWFS%KsTW@Htg}@vD6Q)oDqPsYiK1Hw^=qB{2{lyE<#Z9H7m!&jhFvl7 z8+nWLPwVhsUl9@m&m|fyW$pXUB1< z#bdGx4|@H>xAr;sXPkk|jYIg|hR1m8?AF`bK1j5Ewx)c(6J8 zy&JpB1v8dP?TZ|EQJud2^x*}X(CnRY{q%=;`tXOfi(*>swKnh&%5>qV0xBP%z9$%2 z$h{^M_&Fwe58yb15V8X=fG>e~xG4vKb~?*fCHcdM4*2xrj@xj7@tu#E6-v>(^s*#H zx~thz3uS1gMtlZ{Md{t3xbCXaqck-43}4ZA9C}0H12nNI@NP|HxiHwA{j^)CxmbTR z-~Ko?Se1r+teQeU6a?K?{sReAMn67@RPh)RPeaO3CFX|b7ULtzm%1G&`TIRRYH18T z+)6OKFdGDR-(a_v);_HLnUlAazV^YSM^hAaLHl<(ej(MvC2q2gsKz>^a;j*$lQ(Q5E0>Nfcve6g?#wY!C#i)r6)H@Pm zVqy;T)Ew5P+(*D)T4{DRhPQFtCR~!6{Vir~;;P4&do#VEiZ`2^RSh}y5=`C;vZi^A z-VX&#On#imxg({-s*nDtwXpwyuQVlr4uBFr7KAutCufeu@|J6vxhfL$nN2GQtf9WC zog#HajNM&y^tv&}p;WiV&G2rwy*PN~_`SxMA9dR$pQF^j*`sN%!Q&POfVk|xqN$`2 zagxKQ{oI-G)+Osx&%A5aW3__~E|mHp_`wUMIHhly^LddwIj3-T1gDf)*?hyMyI7v8r=TyTXK zT)Z6=aFL9%MY`TPoV86CGfC?hM7rA)>Ntw~l_=tYSXhopSyd-V@)3D@E2$Y8T*>J_DyH`iLH8>{f}igD(A8I60~izT2o{lh zdh*g3xXc=f;Wv2f>u0aY`}}~2w?6k{=spY|LNoPprs@1%A1~rRC1VXimlt4g-Lc&t z)Ftl2g$U;)u1PYz|1Px_-#sBZdA$pQshqEanERORflit5kScSqOS7UQjXyAAXjETs zd(Amu)ASh^vY|Im^Wn1`&nG!377Vu!t>6ZQ1jceBRVJZ5Qg0~}!-91^N#>Bcr=#Cp zo#*}=ojeAV@c`CTG9&-%g3JIV5DW>X|1wa0P6u|Y2QB!)_7Rpb+zXp63`4i*Ytg$V zLF$nQxTlpcEOC)0j0$4-ZHB(Vh?Bo+g8J4)ZB4ew5Q5j9S`P*4=)Q$+H5f@EXf$t- zhaH_;BaC(H*B3jw7Uk7{*W1{Q3;F!HFAqNuIX>`ME#_TsikbfXWN`)}+JIcc%ruI` zDtje-y;O}R?H~}klGYkKfJ1^HeP)aeZE9K&`8r3XlP>6GbH3A4VDW!h1-jn=)%P z`qq8t*<_XQnXhT(gPswPF)^fo2X($*z((4Kr%0;E3V6?z)Upxp!p4Rn2$3=&`Zg2j z9UQEWwn{90#2C%86JPKU^x20|VSYiab@LN-`mUJXudQ*C{U8pJGB!FLXtVW%UqaOT zU=%QBAX#{Bulw*>iTQb%BJh(y1|IzBzYNcpV&!J!S{_6 zlBIjA@XDtREHr40yTTlN>A&HL&Hy|j?DB+20Y1V#Nzp0_w_^!Gp?-y6-pD^^lhCx~r#k2{ z1-R+}#9KwW?$H-Sj4r6Mp5gk^cL7sF2iVvSircj`AsBpo%1HS|6V*#>n_aO{TqRGy ztX@w(Iq0<7A^aqF?p5Kpc00q*qSBK~#x!vcC2PA^&?Fd|X7_(k5oqIk8Kv7Ot6vq^ zKn}AY{+(L?nNgoi&)v(~SB)U7SAm8`H{Q0z!HR2e1A^98ipryZ*|B`>h$oYhu>(|s z3LE{`(<6*%eJ|~M?z7nn(QhV2(FFwd)rcaQlhd#99e6fng&lpYL2nPlb*PBe{L#~1 zO^XI4eKG}J!o}rS-h6ZXfP}>|EPNInru4^V#R$V`tie zby%rY7fZfZBe|kS<~Cb5S9WO;lGm0NOn*^;opn7?bUA^-K(9)yy1_u^hRMHD=r3aa zVp4Mn=j~=VTCTJv4x=QW29t4NATh{bzF0tE4>LMqYG-Tzw{|7^MgD%a0b|&!?=FqP z0srkJ>u_}A#PLNI3D7dlCDn8CstpqG<=xg`6gH`mZM`f!5D$YnKci)xH^85b;Mg zEu5)k!*-e61|-J*Gjf8^Mh;rgFCX%`>eB~RqX=eDJ7SyX-cD4XI^FqIw$2j4Z2AqGI2?$bG$Ll#nJVw#tZFM8yKyf>+U7YvBKg z`pUSdzNqU94Bg$`f^;`3-5}i{APq{_4BaInC@CmN*PoCax+O$P8kBC3o_Q|M`@X;T z%Y41(o;myMz1LoAU5&Dgk0*qj09`niHh_vX{kQ9`_ZK+UCIwMHdHdZftHcZ=?|!QhVRCRI}^6^W#V{nt*4l+q2a z8~y3+tV(D8q)!cg0<#_{Fb&J7t)G5FkPZ#)uG9XF&# z`7gnA4#^p$^PP2vDbuthu9pED2q{ANz+fOslCA7X^rjIznscCxetB=9j*nIB`kH*` zB{(Tt-D=!e_Eh)2dneMQ1IvJYj;y9Xv~LM8~^1#;%W)5o+HB+5Suxai-7Jn*X&f~8cn{TMUJ zt#fYzi7bt#N6GQ=1lJRyWIoQwlN=?lm*h0KO-|*f11T&^|1qIco{{%H?;+$Iuo-*z z@?gZ>L6-8%j~$(iJtU1e<)e8-l}bJ(!7%n?PUHovZ-LiK$Lp-%oM1JXB+tMH(OF8< zY%3g(HOUw4mjN=Oqy*V36UJ+Q`YH0U%3xtl$zSTr)CoSOgntLO(yqUL^UNYEl9EA` zptJd(4g}_jvW2DjSmLTSAPAMq1qC%?#|SX#R#KoItezyq0@6!d9-_7eX1G=>R#CJR z2@8N6UqDdpEmW0mWz~23n_d!BZdz|J4;uq-Ap+onsn{~R z?pR-5tF%4>Y}snNu{qXB1G9_C1awt9eJ?!4*3PKyJONJB(gDegqSM6hY9@3B{E7AC z57(rZNUtPmgp|g^IhbP8y0KvqOyjqyxCZN0UkDz{q2q(yMAh#%6W_!Ob=~cP{?)kg z_i5o8WcMr+a-ODlhb#Pf=UpLG+g009)74YJfeknxSb}sXbaCZ`vj4qv9(xeTyYsHQ zTAYc&Mtk!{Y?nmy+{>%;^_d!}5qZnxkg*9k+e!1dc+3Gn? zs+uu%rGMN1j8X20raw}ee zy{VGmK5?c9lj1?y*507SC}Vqb*#3$)-uTkw(l3kkpZ9Rq^Ehyy}#81JrMD*AOt$~bK z^ONWFNQ!8m`wX-%1UK4=q<1)r(P;9db3e2Opae!Njf#YkkB^IkSzUL2 zVUZ9nr%0`w=$-)Yl6LNHac+fiD5Z9M|MmD;88YJ%tE*g7D}eK@SPrrjl=s^XcR%JW zg@MAM0uh9@&g2?M{F7q-^fE$?+v^R2?2l}xAmO%7N-y$`4Fe>z44PYKF;#v+t5U|y zJ<5k!8}o+BvdG|DiiKpXrgR-~_q!(=oEE1Ac)t=*eGwIRaQ`Yu2GLoAN0YHBJvV5r zJk?b(n0)brMTSIWAIj;43MVE5pI*YW4c-1sk(BDu+w_Fhtcs!k%fs-LueqgL<`JkS z@;Z8DR!lpJkZ~%SM?qZ2Sh#5$e^z#l?q4TvKHZ% z*)Ssa0o*M&AXMC}G^97;6>qYu%|7(&{)SF5=fqyq`tJ`WOB6RUjL1za8W5a$uG`DV z{UA&8E8$On&#*zC#3l^^fZsPIARFrnIKIbmtn5-eyb z`vhyChI@bjb+8(1rl$fXiWo}GsVD&0<(?p3@;6mOxvajG?b? zuo^T&DX!Zt6DA2#v2E;$xNu8M$uzTDEd0Ml_v~-Qq{$>v*03lZHy}y6vS;<@f2uB& zIfx;>p|#w5tKtcjAC+ImlelevT@PPCy1Ns9Adz`n_jjtmCQ&FzOR8G;xoJzeOcGS)Q0><5Uex)8Ck(QrkW4 zI_B?P=9xY%ratAhFS>9>QAZYVE^X3Mme_c^$>t;!9`m6g2|-fo;BO%>VRPhfWZKpm z76@-JvFa`(K_ib7hel$0KSI?!O^oeLZY?SJuy-RC@p5?-huGc~lriJ{`1n8v{R2A) zsUky3k}IO2$W_cIMCQNxOR$z0Mlgo%r0`f+0Ib z$!QIw_#i5W>==*0sJGMCyL_#$zjtMBxPU;v26(u8Ns?XL2(-Ofocz|%y}pMXFb)e( zYTasB_)meJ!Mq@{!jW?W)iZ-BGGYi=Ue$=6K$PN3s+Rq%3+9gXBm9K)Y--wkIJkK< zKk7nz7x}+grhr-WVVRLb>;b&}Q=s2zLtnfZ`Eu4QT$+jfpi9Ot`PLc}T9PJ&`SMxe zJNR^V5LvmVz+y*_VkaY;f>uJxu-q`$t~l!s8_#c#;hwJ2PlXN^vuI+T3UO1!>9 zOr>631Qouesr!1wne~&NZm5?6cz_&^oO+E`SlLy=uuwH}MGb7Wl z2ganA_73q3E*0j2tezrA##0uzT#W_K35i20F-}ibbZcjfogHQ zZFzTowcQ6(1?;@X+h1uWe~U?gz=9t50k&VrhF0}c-Geq%lz?|Uz#9lXcpTA=a17Tc z)aX?`ntMmyBes^W2U)~WzN|EfG@&%}YVU6ss?g4$L(e0~W|^oAr-o@pUyv|)3W@3~ zPY_)?i0rz}TTlL&`S&_uqkebAJ#s7VK|oYN{z?YL{=*krOLbvd_lxFgv0(F z?sQM-mL0U}6$J;=c!0_zSgPw`#6M`pIS+oTfj+Uf~$AT13bqLKbyLAC-JjlZw{Upo$AF~9)%*;Jp z?||DtN}N}R-J%~+1)c2+bO@%p+6E(yawtZhboPK+Xd!$6>`WuT&NNAgA;qPC0EZQ1 zqu%Fri5qGVL~l74ETzRJmImb@FuaC}@i`dS(f|^IRt>K=q=d%IpOs??8VoE7x9*}N z;5*Vk-zqtXW`1q*IQR}Y1bvd0iv9b{v?juW22evZ&n`tkw|IN_ zdk~MQLJ=gKDHC7CR1m+bc-}FL-V6olEi|DrEC89_APCv?^W&UurbWs1%UL@e@W&N! zQh*A7`y6y@BDw7*O;Hyq(7Nr9W8^p$HY^*zFkQN8A-a+S4b)U@iiTq?{bfhp%2lzq zdlcoJt~dYrHfeIpL4EK10-!@h;hHgC|GuT;)xXZ^Ww6!oK%hd9q5vX%ta#2#se1^h z))Y%aFEgFoS*kX7G+*-FgRc(vBT0sThQ)l^Mi4!d?R&T2U_mvd}=UfhGr? zy}GnJQAUppRXSpnJwhgCb{hIGZ-!l^6TC(@$Sg#X2Y8EB++1LY;4g-?Osxb`iKEBK zpDx(aZVUR|pKAtlfXVp588YgZrKvKsb$)JkNel%{$nqd)1Pnpk`vkVQpc*unAQc z))=?umw3&BI(9?INt~^^mnK+=Y3mxJPPcIJ_IhFu+2H|JHuEb)DRtlp^_>BRumKe! z5S=ED+Pa5A|0B!}^^V?^!1T*d?26S!=iV9eO?4@JS+r z@O$6uAAY1r{mu1&#fuNFcR}j+ z&iW4p6u>yo^4JBk>?Tzl3{O^&N5HIVC*PH#Ywws((5S4gH2V8A4pSt%cq#wuK#h@; z;74og!E!3iq<(aR4X>X)WbNM@sDjTHKfV|E+RIIndEPWy~w{=i}%hY?MS zt0@gFqYP+R#EBmok~V_#2#!70#HIa1aj^xYKoTGklMtuf6_#RX%M`yfTEe;ZS*Jnp z%7h-&s=HOD>rbC`uogS{9LHn*M?;r{74m5&N*vN7V#I_B5)Pc$bZM9`e9u;K!vPCP zPT~T(>SqScmJ|#8t(#)0Xw-TAj|$xT`;$#@YJd-;>wXL!U^=ENYeN*vy&lec&JIf7 znk8jb%MU?zVB!gBx9zQz{?}(uY%L_%3B>tSyMIe-oM?s78i;;z19-5nt==;U3rbPu z7LT6OvnZT(T=DAkl0RdEu9LN+fuUs0KuIgu&CQthk~;FW|q0W?DRzF!*Gg&#eld zkq8xGeNd+ddpw5)Sl^;YlL734aI3SxRz#EK8ASiMc>Bw@UwtE-q`l=QcN1^DI~0oe z@QL$3qI`ltrG(Sfh_n9t7>XE02s)z{F3rPI-(=Ndz|AGVHoy)fq-Zj2%Re$|2b^nb zy77t=|C`@(CtLqW&j30mo@TE>`147wL1pO-C480|7rN5IL|${u)tzNp#YIl{Vdd|? zY8rwgH(+6SwLl2%J$Knb?IV!bP~>u&MD%C1lZ`xUT-D|yxi^{(-lMPSPnPm251-r% z>yrXCe3HZGD{x{XTY>^-he<|&5D3VQJVM&M z;wgExulwz7K2gr8Z1}5JY>?-AOI?IU8>PbiDM%YOfMlnwVWv?5Qk|bM=Eqp6ySiPD2@}Pt1U8+Dg ziZwag8~nj(tthqtg+H%08u--j^@pP_$Z;UkFH)dRemwisX``1# z*Z??GA}5#j`eo|^fX+cfh*%a(m0EDR(g1mS6Uf&@Z~ZHKa@X>d$8~!Zt!c&IGfeu( z>{H4)hF4T~%6Yq1#C!ZgcGdqd0&RU{-+?L(#e{%AA*m0x8#6Ff2v^&SP}CWb*O_|! zcv`?qYT8q^ZkK!B_qc$!mlvuRMd1vxSjD{V+qazLdp#enZ4p69s8sf*s}JbSX_33_ z4mk9cqJQ$H5#XxM8EWn+q(Zcrf64REn0IBqm1AT9WF}9XutB$ zTu;8(b%UfmUM=+CA4fcMiByQ9K@K0h((igxbEhG^40>)N?tQUIov}sg3f5zMLb*s! zpap$vMP;Wg{)QABv4*Tgnu*{v+$daEFFD5v(&?)2tiYEQEf)_W#ivbpG89)R)qikc zbadbY$RGWN#`{S1yEekNgAay!ckI7|t{tLM0>b4VxYzaa%s<6$O9)SX0oKou6Dxsm zW5axC?!>mW`*LHIk-17E&XHlGOJhot(f&6h^Je$Pltm-zdPQA@zGPT%VMM~v%0h7L zL0a0Q`!L(h!|H1Aky?+|B;?&vMsPuCL5<>*t*xcE`BztR$HI=7o2j0hYngCVS>wW@ z1rI!`BH+Ir;kEq|Ir^F3IVVc%1j{HV7h2OOxnf~Zd^^(x?E>9?GkqxiCN{1FCfyg2bphCraSUs{1&kWAda}^%QF$>HZ z-1_ew1}(+W$RP1g)L@FISJ9dhUIFsddN#R^Fhvh20ay`OFvZ?UWaICVT8XbHf#cd84Gm|e{54gbqP=i zHc`%C#YPhta~m1F*lK?NQ`iqlhRT8gu~vb={ZIDCzh+YyCvHgv*AzDuHaHIYe#rM8 znotq^D&ZdX&Fr3ifAz`Ei*9Z*)Hbi4T%vn-2cg-6Y6WerHWE}z**v!Xm{m7Rzk}-4 zNMs-XK-5!zoBI#)Jlk_^*TRenZ%`rDFCg%+?Aj(O%1Zw3US`92)9Dx^0$8}OzYASY zPtrO4N70s}DhWEFDIE%Eq9Te{%dKVrZ*Ls@BW};>P}c5zu2u9#48ecWNw)fSy{><$ z*5D%n?YTGH3<;mAGEgR#!^AnZiU&LttLy4oGKcTK3SB$B=}w4`Ejma z4ypEaJV5g)mr5<$c;lvzbrfWxcjB)X!>E9~!o%HnekGfYTiJQ=c0W_j5pW!yAzaFb$9JS=sshyH5qpvvE+G+^YIK~=Et z+(3fkb1akZGd`83#?5-+-EqJwcPA zL8Sh%I{m)ksp~z5P~j0wabc;+)p&KG&jLooC~Fak@{&$@f;-!r2Y>S?y9|>PQSa_C zU(KyIUHNMaLGkRB-Aw9-Wx_YNA)BoZ-mQ&ZK8md6=1K99N&j}v6t7|x4`50D)9pF; zdk04|c7=;ZsktBQmSuMOlTuGq$7GgBZsqf&y=G^nmx};prSNo3u3zXq^I&_1`}PWY z`9X+R(?h|rnEoH%zN4c-cI}+Z?{T??Fv66N4By%&zw`6<%>PkkhiHGKOpu4x($-*7 zGDQ@}<{U_wP7D(%`Nhww0=uH~%sBa86a1BB`^K4;RqP}(ft9JRAK8E5^Vg9?AaBBf9o z+Bp6yP=4O)94@gLEwFTBOJarp`0EA6boE$!YD+!qrdgi8)a0aZF0r=d0q!G zyF1vnP4o;*6Se0z;^=U8CUr&WbQ^|22PJTF0jZj)5Ig__&Jr8?|H6IKo zLo3;&=gLwbQl=#a_>v}}vj0TpFSD&HVvGYV511%3S79n$s)MOc5Ndm8@WyZz93;@sK=DVC&v%WpA6zXsJ!$m%#>Zc zO!Sc5-0(Ekma8ZyKX2aN_;0({=U)piqBEQub}fJo4!d5@ zfezn?2}47hXL^O`;T@)olwZUSlx!SwtN99vZo-ZR-eW4ZueI&Or|#`f@iD_+Ddw@Jnb%0;HeEhtBm=G29QhET z$c`F8^~tT*O17@wwYl&r)cfZ8!%W`YU?Z~NUwWLp?I*i@?U+;Xf6TwRlS^rXepTc@ z(zYV{7psE{q}+tEf#QWs`qxg5dC}w5)%?XpJB6CLJpUEJdAgl=?ni2q>zYo~UB z=HFqQoyEQSd*1sV|FcN$Fey{79`M-Tda(R;pXhH&qS^Y@RJ`Dbg~F=&^sn=#la0+^ zVk(E&svmwYeP;F+(6N1~vA)HLKEW4~oBA3{s4~${Z=2y2x@O<$hA7 z_N}%&8H5x>EgZ*@e{$3X#XmEcCKJeJESC@D(a`_Fe;BQPU5%Ce?U}-yuN&K((dhEG0MK&L#I>6M>NM*a4u;PbBedw#M_i##Q(6g zijn^w={Z$HaO7D?cwbdqtBkz`*H8dc!6a>3Da*i{m?4e~O(lkObD{&!k%X}?S!*ll zs|faEo(Ecv?aVGCW*yeIC!(q1tnnZ- zv7#Ok7G|rAlc6dfDc1-HpraH+==1z6-E|kOs_uw&$=sge_NoNZ)=6yIYid}Pj}jf@ z6hye9A)>7hTNt<9+kWrp)c)Ghfk(qT_7qO=L)3xnHsq=&|6r`?_&2*=#>A$(KkTQA z^E(cvCd7OeB)=xU#(;7|4uiJ zG+$j!E-ty$P9lv$`|R1v)s*5WvP+f19L7$Q8ul^8pC$2fjk$^XsEUq=*~a1LXr~4l zRsHz=!^%Wbm*)qTH zl4c!;5K$htP;Ps+-I+%#dQRISm6U7wz?JfE6!^RsABVj4ae}Otr z+y{Q{|660Dzs-t~?>XsqiZ?_fLtV|;itR1AweKnNT51zQuR$l@!_K&AJbb;kGegdm zr0gtc(@&}F#<)*QO_ii4Q(NV2>q@<`H%)9p9^2TDV)C&Iz2?|7`a8H~yHQ!*&@Ih- z?rW&j?uocMokd9>N(SM?vR{_Af(S)sXDIFx4{6dKudO}uo?bPPc|gGC&!bwb~|&%6QKjSiKhrXbuJX$KzsU~xVFoTc|hkKM=2 ze^Qf2vpNc6ca=2(Ye<^Ir>({)Ih5$e1NH`LSVojbaLn)fr}_h&K|&iD-nia6eIm$S%-R#Kj8Ttt%Pca82v7}NO=F64fgv{|L4)$G|UW+u* z)kP;gZ(kd%SyyKhG(5LaP5Ae?So{ihgE1!jZSUK2ZH>Agf>>4R@Y#B= zO764X*g)Eoy?h-(X$Q&t1Sm1#i}8ViUXJy@Hta+Z`I9QR#s@)ISqCk1>_jG=I~-WI z_ifBHxBON;-J7JSuwiKKMRVOZE%AH73DGLYB||}Mo~m|q9cTk4=Q#Gt_L32iGMb!c zY+VqH9)t6CeV#hJ<+U0aqVtIs=a+iguii3iGr!P`$bQ=O+LsUsIMPvNVutdN{3kHE z0atzgMP`jI%FG-s!E7{r;eBeZT>=JrC&(UdGoA zEl)3~Wm&^j@a6=NHk9XtM?Y2Y#^eiisk;97$$FTkTC8YlrcXk>Njqt4D1oI1>(1|F z{9i?OV&r3r8cXzmm(BBaEbUa3ykgIh5A^>rC1I2ht<`jidsC+9cF8^5fEV(LM|-U> zVb0HrbknH>Wp>C5$aTsk@53Dy8bbvQOW`rJxL@(O0M<}J`ZPrh?8J3f^olFU{)vz? z)p-y`RFKqu6~QYYck7l8?waku|NEs94&9*KED${R^4!A9(hZ<_td+ZPLr}Xe#Zzec z76KW6tcEpL+ev6#$+eJfS{5lLqBltDGuEx;kGn}MuNhaEZ@1r83 zT^|_x8&OjCEHHjJ*bMfcH$50;slPjKqRnkPF-y_?Z});kiIw_7%F~|Od)<} zm3oB(^X+f(G2nLWn=2|@Xl)~v`xi7;!*d}YrWfUNN6JeW4HOt?Gg|z|L)d>wf0Wvk zJ)bsChK=^%`6UVJAMAuV^1H$}=MRaJ3+o*l+iu->?o3Msi#n%7*rzUZo^$cCnw(SH zqoDS8H)SbuV;Z5QvD;+A`YSzs%Qb7eee6LV&#m*<=c3pHWIVztXb##0Xk@5lX;aIN z7p^|F>jPe=^3YJhBmDB2!?5wNZPqI+`j%6ZqW;-3&ZdVjr3jC?5#5TmUa+08ZKCX4 z`>NVbs~2%A7JFCxl*18Q_@VPV#)VxqE@r3D1yUNHD*d&ONb&3nOe&bw#l2%@w+6qp zUFbVAZM^SCDNH*y+po$l_9=+`(3;_W2#nyNM%V?BZesdDHx(*n_IY4feUj~Q1izx|7v-A%hp7;U6D6q+q#e{a!)*fp`wWozZ~7H z<*riCs@dCKJd~s)JvS6CLg|RGTSeduAa6O;QbZh&lqRl>tvj>iI5{$%Ooz`e8kZ>Hemd?b>N>*Iw+wqD^+&&dzRD zw1yNg_TcW1*a{+Rma=SvUNJ754`>wi@;V<(o-gQRlPC4gN4o<~JXl7(GDvxEZ2^Y6 zCurFHS|5_?LZax5sP7Q8#{u?=4>bY$aJv*&`U0PVMj0VX7 zPI<}*r`bbAv%vGT(U!ixJ{eCdR^W%JanhEcX{7GtfD7Cm*d@1n3boL+$U{z8QgNT&YTaO02=BBlszRSMOvRJJA{h&T? zO;xc2fpdpl505cDRyoX)m$lMW=SQNy+lb6o!smX{ToTn@1WCKN=e;(b8}gsb#d1k_ zgKJTrojvF_h6DC#(2nn9KQ~>|ORU~FHH(fScE}b^Ybu9h7JmQRnEx2Q7@mMdG{EAB z4%czQ+)U@6_GPWe=TKk>LtY>9{LX77*@-!HXywGpiIAl>jr4E$L~QQ<+|-=&Qzn(o zdl>O^s~~Hcd)B!4GpUU8o|@CwjNHJAs&69_{&HOZjUh{*YQ! z!qc0LAa84XQ3<P@+Mn_cj!OzB&ud^Ci+or-7Q~2iJlL!=}#c&CPJ>~d&C7x- zNLcdtu@sZqwylnh7|Hx|z#u3_^IbnOLAT`vX_>-*W9?R&=(c8?E~92-A27~BdEC71 zKA+*zVL9F=VDoWd@afvEynf&8jWM)UQ%9R6Z(^yNjT!M{Aosa?feALP2`D;9 zH#<94TYGKbMCorWBL@PVi+th*BM%?Kai^=KKRmTa!+Wt^S61HA57}c9^R$8xtXkh% zWA*YNZn&IxYBevC6UD?K4WxTs9RA4A7jT8zkn4BJUt7%FIT-NDdhVBfuesW&!~Yx( z8A5dui*fywF@0Vtq+s{8PYmRpYk8V1?|GeW&(ZpS*vymF`u5u2fw2wwl0nRhP)V(= zgH#Va`T88Q?KJd{$ga#XeK}JS`^6Xz`zwA6y6``rmA<`hYJ7_t3Y(DM{8$Dyk(MimtF zto6o=y$ofp{PEZda+er!UT}qbeD7Zs$>*l{<-cQ8HaLza@(c+oc?1ax>=R(4)`{I9 zw))N8*F+ic3Qs9Jn%ur$rK+u`?tBR4xZ4ZSxXOqLr&1vIe z@1ZZ2^>>s5GLDFmbP&&8t`7)lY(q^x)P86;R|LE;R258V8F0$z{sVSKa!ng6c~o88$M)Oa-SC!&NH%saSD)xa zLkLh2-bB`1ru8g(ahT8&xNs;Of(OiX84!8>8)5|i*YLC_GPK5t4j+^Ef}8hPuMxWbiUejqC zAv6OH2pftNa3dOHBqVgOQ5&}5tIsP0g*&wwDX%k|Sik;ADWc${IaFq4N!EZ66;H#7 zAa-`e?wi+3ng2$s}!S~QSzJ#?^ z;rVkxZ~2W8@WJ4mx{Cksu|>r!%iyjK&zJ?3V0v%3A{5*%G;x7^Q*sgM(-Jcq>RG8P z=@BPoT!U_5>g}>`G*L!Ah08_w$eSLa3u}|r6!vg*32zT9g7h$C1f}giKq63EfTQZS zy$H&NUH|s#L-Ywu@YBsvK8M9uzfFsz<%eO_BJn5tc-O~dOkMY_s<@~OHA2ueu`V1L z5~Hu9WUB^q!ueENvk={5tTnNi8d7pzopV z@|lc#d&IODr)Tw--8x`OpsGM>0$iM4dG3K5kGMwa`NUxOG|5JS5+noq5CJo_kb zo=R8V@NTyF~0aNIA1!aByfgQm(KDW6R;IT4Q2V=^FvD&eUIvBKw7@J3Vd z@;7HeNt^3#xcnYZ2IQv#A+&$JQ66Z!&dhwHY?6tY*Di(C;Wy~w$4|u1u>9sWA1WQ) zxZHlJeBQR=F2?n z>!%rCWq{~iM1|*dM!=9BI1$1YDj1HKFA>P4_jQybKc_^c7Q1Kr$Jpb__u%;$v3!cJ z=6WccvN}1FD6&CFEGita^n&cV^^g^K{kLd<_t#S;ce79-8PQKFC?RVTmevt>&&q4{ zET4Cb7yU%o_}ue2AHWk%SaPfUlw&ntjar-DqaR02{PX-Uuq$Nzq0LMQ@S>zMx9^1( zyW%qn#X#T+*}rt|8~J2?GU;hDF_dIguy_^QZG$C`aLapy_nfTXFTn^Ka%w*hk#pCeq=i)MGrT9*D~S#Y}LAr=-gwU6I@`d4sosNQ+R5W;r?gpBf?$PZcM}{ zcL$Sqi?AifQg%uxO-)7r-xs>t^oW0ILInPKcVJC|IlSdG??t6X*|a54 z#ROb0FT|(12O-NsGIyUZJtT-v88Zo_!pJeZOzh#g5&Q4CY&^3#S(7)>QWOwEHR#=Y z3}0s#eEulbkzmlpj=e@n739Y9A%E6vo*y2ETGNPv4kR;*jG_hp>*VMnzv7A>J}|q& z^ln*C9L3D$7jp7z*lsdplqn6;ICK4ds;?lYoyVB){1VRixP!f9fXY4}tj(8Fp{Y&m z*>HZawALz|4<@a#c=1x+zhL9=LQ6=bqL~Yaidh0=x#pI?K>7U*>8L^Naa95D{cISZ zjva}vc6rU#Mx8Um!C&3_oU!r9{mstoz{Oov^_S} z=YbxHa=|po9^r1c4ZOu_JTEKcUbR z=B5!6XPE>6odOY*Mn&T4wE_p*OUPp;QyYH%_IxMuXw z-iipZV$4;H&mWF#%Tt>ckM?FciR}4}R+4E{HL#jvqxm`g;YcqCmt>!kX*%S=xlMo& z*z~~y(VZ#}wSG9pv&1sjwXIu6J~?GpYYXz$uT^=u)W<`@K-r2U_=bKC7hd?6%$y3jFP~A{!lIA!srMM zwiA=^^eBU_Cq3NO6y>YO(z10pq{Xf$&)#%+#NHcP;fj$rv(&cJ6KB$^mN(k!6k8Hj z+9OajdUEEs;Zt98W(A8B>L!I%x|5#3iE!@y-|py7h$tuEWYv065=(8^OmE-NV0qRu zV*{VKQK_&4EX$-~!aEPculdH(NHGy!su+f!^93BcrN=Z}{C!wjYl#VK)PHKHqbl?u zBbtlP%{lJu?|Zy>moiH$tSjF@6b8q~E{(YXu>_zN=O{fY-yXx``u&8{1#FoR`Z=mw z&6<3#uW!?sa*gfsvgcBnEW9`mNn;Yv$x^SAkl@S>#1k6{^l zpwWuq1zxvHwqt|Cov~HR8grvFG}*MQ6ljc^wA;<-IqMS{9qG*Qq^uW8rn9elbC{zg zG$ebTb3VodZ8moG_S5*D{kC_#z8Na#)hiP3;(ids3Hwp zXlywzer0(!*Z>{Arwl5+N0$4Lwhywp1O+@3eA+~jXh7q`wvn8K5Rj@<#>V@g_a-}o z(?%z0Jlfstp!Q1`bS_926_&_iEvJks5f!yU zFQpEVxwD-%sF%eR(0+)0{cv-B?j%|>{t!fH0!-c}z;Zb_|8o9{T&F_xuU?{__1b+) z*$i6ZpBfQJb~s%RUJ z-s*rDJf9pWK~9ls@+|&3sx+IcB@`v$z9uMn?L|p|W~5rr}s5rTEI1OTG=3w^$_A;43A4ta8z(+# z7x)>&o;7L;6a`_c0gpo}p*{N6SCR1)o6DWd)|$d>r`bWaAHx@pE<%K+6dZH;{a71{ z$PH$l*1vpbZly1eLZDmsfYpi)?xX>K@7bR1{zXV*3OA4~-B?|Yy>hl`3LH$lP1h6$e-J0$#(wUH3r&L&{_S*(s zt*$D98K)Q>&Sp$pjr358?h^q4RAQ z4rR4uf!~)@Q(l}7(e%Ca-}$6oL6d=;9x*@Jn)@gb=I13p2$I^sERd2z9L3o+^1{V5 zF(oPRc0Pp|OPPK_dMhWwXo(p7ED%vlPc1HBW=#w~($p#IU!h|ilNzIK%G!;=Ys}?5 zLc~6Owe$d`F^=J}N}bZybpbb{j|`CiIIO5Z9Yhdg_zBPhX1L_*M?|r8jhU+UkN@(yu0P??iA$?uAh6`{Ijs>2knPw^4)Ox`g6*VyyqNun-}Qo+09_D)p)3kT^MU^WdPJByjF4~tzOhG z&uNVVh@!d$i%?<8jNO!m;``qYCLa){PhR&gcLi37IZ+nj(t07C$|U?83l9+J1+mGn zA0|ZM+x|3>FqvgEm?HxyTIMxIg~j)?01(@gq!vIRncuad*nA@7uNSJ0bZYomlF9pu zW#n|)Gm92BeLrMGp~Oq?e~IY<+=W2&CH*WBAh0qw-K4#|pDV1ig{44*G4Tx>ps_aE za2~9aFIL^vZG(zQ1+F!a?gCQV7#EKy0Wjo&DSEdUIuRSu>sU6aGDzm^StCLLdjE%~ua2v#d%iyRa_R1F>F$;ekp}7Rk`M$0 zgiCiR-JyhZh%}c*0Rd_0MnFPRB;LdG{e52kznpXSo|(O7X06#Nd}kH~cfr}kJ`b{B zAqqxH1W>^Tp1~!qrVGbbe*GnoIZr1W(qBAL6U<5Qyaeq^mW-1DusnRip8eaf#^-^Q zI}uze?tA`IO*}MY#QOf*mW#XPlkrcA?S1~xHKz<9^U=ytK((7);&(R%QsIqz@RcD{ zMReB;rNCpc3HG~MJ_=M^tOo~z*a$I+9y&pb4}AM%LT!j|9)D&YpX?MIx;9Av{?4O+ z8o0f9Z`)5Kh*+?rhD>~d$v7&a=0{h}ZVrigt37T4P5~(}%8l z7I-KKA^?{Sl5EWfnQ%PrP2Uh+A~aptoc=GSoj5@dSv!0Y2`&HL6Ww~Cu-sqx28FI2 zI6`>U(cv$gRM_0>bAkC!Fhu9$b`4)w0fm?#y>o!9o42@NiV)TVe-FHoygaTINYP$! zR)^p{d5j3LnizmMuJWTFOdmaL+EPi#f4@hz3g+ea`F5){y3|10`uTS{0dS!TRPneD zSU}nNf~vtt%u5ug0c0-pE!}lf7rBK#{g>g{9a<;N3TWsR>xy+^Gko zVA>JY(P80(JQ>ql>V4Xn0d>EVM!j1<`@$y==)GSoF@Q=%fEDfpXmNp>*-Z3&|f(|<@LZxqFYB;`S`JTcP(drYDPU}vScX_6WI_zqYBK5%Y?WhU$+ zdg|m#&TUK((O2qm#Uu5AyuJuJ@#KiMA-;B%gT0|TP^AZ5L%|0^d2Iug0dLCnhpJD) zlAoE8q_Zgs7w=U;N^}>sF2L*5{KFbr*w9HxYb&(=^QE0Qy4Itm(14VL!6Vu_v9>z4 z&luf7TqseRDa+k-SST3qxN2s=^2vF6v-qjKKO-2mVg+VZiNPNsgFk9=yXfw{!BJaG zO`uiBojw~|rp}{7yDI`(l9hq=$I7(|4uA#Gdi)+7GVll9Bx?7Ix#kIR7M^zZBh%8d zWJE+jMkhrAScBJIw(dkjP^to^Y>#^%uZadw$Y-22?{4f>K)_U@7tfLy@p)vU{^@57 zb>XrhWysW{?ez#G7I|9Kfy`&qPC*R`!DqLG;XU#YkG?;C)Uq!1uZ??c9;0lSgQ&Vpmws*miTT&NM@ul-Yac8~@}qZl#CyuVICXs0^eN)q^N+q+J_P$i zKTVb+hq}K_!~{!@--aAiwwDmXiljj^?vWtBl9_gO<;GUb>-@^02vjdmM!-8?Uymq1 z6ZQ8m^l>DD93^Vth2I5?0EEAg3X}TzrtFurAh^aKMyekoa$Dq^?f8}nQ6?=%>?JWF>r4y>j1e5OB{35?%zp3LHw zoR(QR$oL4^SWkr&eB9`7rPm>+LvsW7A9nn)0H6aoV3fWQnmtjil*y~c7y+d1!A5Ii zwDz0ch#O&+P_KPHr?(^^5iq3BEGFa!*Q1&OEmTCH5TJ8-*-7{%;%S(#*DOQrMtk{M*)!H_MKK)>?i`9}#2W>?x>3Ct_dEE5gZ~9@c>EQ9+Q^=yh6XQ zKM3sxO@`muUWAa1ax^Ng95jBl`@8C=h}Hw{bvOKNTV$ zu5$dG3V;GULwg8X@5Dkauoe%uaBIc(jno{xc_$+%p1r&(Ur_(u?Gn?2j-eak)x5n& z(mT|kr)7_hW{#8886?gE8?PGwVe`4#@+~9q?6t63T&0jbB#`kj>h!|F^i10Kfwb-2 z!#m1`&SqSMWy04Gs)%g!$-G-ZU0Y_gS#aWvQ zCg{k8F>{pg93cQBA86J$qN$g)Ag&>@cgJ5LxK zdb?VnjmpPUSTq)M(&4YRoSJ}{uCP(=(y4%`@?)IOf*>P! zgqK4r?;c|2uBzmMp0nkei{kBBj(W?yywm`d7}iFHd_i9%X{57=w_fEcy(?@N0Q+H) z|JfwycH*a+o;&G_k32kAo;aD35=GoGd`MmGsT*D*3Aam=mAoo3&8;MHcP1_K3ux%v ze<3vkbpMsR2Xv5DhI^*7Dyw9ZKc@ku($J*hk20zEd8|3}Z zo;@X?phTj&MQF>ZihC)M-Go~F^;IxFuxhuHB9r*)9j!vz+92`i_2juspoJ!ppb{2l zuc7>Zeg~HNi-Pm-3fk}7)HM9DPcO(FkKb)|7m*Qygwf@4x6d{P`ds&|;?ykTm;+Y) z`i5jB|BDd@fNLvuncK~KjeC?R zK-WW+0yMln;=ko-0(dDOa_hH!B&nnfuE6v3vK69uL47USMg&IbFve13$6f!-O52I$Q;bmJx&~lR1XCswg5H}v0bOfS|FTw9 z?Q7}(M+XcZy(`0&TUCZqQ2Q-LDF-JghBioc1R2gn*RSbNeO0o z#s$)nAjQr)-mAgjjZsn~rZNAyzuoj&$hhvs=*6)*zdd?18eUcCe``F*cN=_~7;vJx zqe|4AUQ*dUa`%>y60+$DL}7ULd#D;=lKkCX?`6_%b3hc;Jdu?>5&X}T$bJ8m=A34n ze4W=JDgAdJmykah$5T(jX?7jQ&7@$~@GvFbV&ukIHaH$?F?{!~IrB=?lSAy<$i&D`+yaap0NeZnHEJp#OLtCAu9X z-p#}X(?TrADyhtE1mS0}hEK+)My6t5??4fkguevxjuNCeg7lzK?4BnvVBDYMbCZ9T zd~`d9>=OAPF{5fY={lG7r}gtoafKsHuuqYfTk`zjcKz>#;Z{M^Y8P=7tp;ZQ6%z$r zJQU2kv&qAU=4=@n8)gWO^B-dr%^=gX!~W0U%HQ{68M%39w++sGFTI5A-A80SG^Da! zHLf0(ToSI}%FuWekkVl@cBCrVAWjVyx70E)v(umqu<#TR~G7Gru-HJy3fXL6h4 zD(h1dM>2ArgrGd9U;X&W+Vw(@5)yqDKPwiYJ`o^jj=CDsnSj%gtd}$*oVNCV@ba~f z=aqZPm!EbW*%}v-UQyES%G`rIXhXQnSN2_AR{z$|Wpe*n!)WgK&5px4vJZ`iLAe%b zytG4m-yS8%jiVTM8y!^SQQmYkcvnaQA;8ANfsSARWJA`9TpAtOKj9q085>ytgR-7w zFNHRVUzbO4Il5DWBeFs_?NOXqrhS!1ENI2JfU;5Cf$HPq!Pq(mTZ7O0^b+1!B)9cS z{ns|)^NMxLF-?C+ItaDn17@To%vjJVyg)_95_LP6f>dI{f9SKUsJQf}nLGweEpmr} zW$6m%`pvsx0@I?Q?IV`lyDDj%g8igTd*t;`b2hxbE;tN-D7~MX6~w|29+9J2tS{@F z*3WOhn}R6<$B)cbiWBUdzP#jqTl#iNB4+T-C6HLbV=te}ScIJfT0w0A}xb z&^ae0{KX4;B5TG}ATFCcZ-pqPL>w4J%W$xNyLv4JbgcchrwPs+f^Mq|gM`G2fAt3A z#MdB0k&$7o%_6L`JM`EJ1Ku5&TGem+zUF&Aj5Etsu|?Ob{TPswmYmPm2S$y%({^I? z`E2cK6CINtHHg;aN(^z9dW*jcdC=e2^^Z@2rsD%UZbD^k*dQ8Q%fRf7;4=a%%4KA~d4YNB)N=d}Pn*U=o&_mr7CBm6B zWPfqQ+cS-EoZ#6%lfcfjC;iQB@b%(|XBz>qTgCBfcMB#;UKCu)3Cl=*w;w2*=Wba>@2yst88i_Bd!ypTu)Aq`wbN{ zb$Y1GUK~9@02&e5tY%7HBOKygl~c#xs* zb}NxZ=eOX(_sEf!d$q4!(#7)c;9qu@L^=0G<6K1mp22kaE(dtI4$n^12H2Rtx!$%+ zw1geYJOU?{bUa|kx?jVGaL(b^QP7dbo+Y0m5d8Lf8pyo~B)f0sN3JCN_L{?tS;VNP zKB4rq>mZ<30SFEfw!rvW(YN$ctmUR!^w!(0jzpaS8VE}8Lf7&P(DPirMjMX=F%NQ=R6j@nOZe}~sBD)KK5H7rE%@cwcD5%rV z!*&4`JRjdrF6B+A$P5jth6#{Ff`^6EwRi==05-KhzO9IyIJpJinX*s`boA0*j`<9U z=0=j(p_?qkCY5*7p|2c>!ivE=!6t*WZ6uI^bd^#TZ{zjPyvQ=u)r6H^CLUAYF>-s@ z;gH;1Iy9tB@WG^6=uT8FBh8(gX+8f>Vue$1IQ3TR_XM6B3rSW=Ip1k%;6*anVMqhvI_XT<6{7YG}#*Rxx;jxO}R2%^%h2KziZM{ya<>mF^9`_aQZTMURW!HswYG$|;h<{v6m%@H*V z4#kzWLWl^$)+n|^L_St));57}u@rE8RiOa2}ooO}v7OQ5n6cHXfEb ze?tLEfImfHy>%}xAc08EdUkjB&WAwP&PjXuG&{=S7kO zq8TGt{QIxHa!!K4v~Q#F`jwQ_QMeerF)Yx1gL^sf83WXY@aco=cOjb*^Q~DO!0+Bk z1X-q?0H~i4mZUZdJDUTS8FV*%h$T1KA^WALHyd|=kZ}S1gJtXmX*A=E+~xCatcOca ze*M9;1HQgefj{d+AvBvmC!CMvte*)yjb$641_L46nViS4K)XkD<#8ynVt!pPSTt>} z1EO`IYvfD-Hy+pzknb&l7S`2J3kch7rnb`Cl$Pes`L%2e351<+FqxKqI=~&NoTL5` zcxQ+Z+(8o+Z=aYrQjqgxTuI`d42|g|!Fl6f)|K>%lh+4KEUnu9^uTG_Yl zCA+)l9hK*~SsK}`G(=F&kMZn|{qGRar9W=PiN#dKB&60WnpXjwel$T(U6ICAlbT{l zo`Z!`p0II!w?-t)_Xnqy>P(`#kI$q?LI-eiv%1(Qr31Ka)sCTKe0`(X*R3~3_jL>q z9^@?>U#IsgkQ{sBvR~)|j0}e*i0`pP(4tmsaR!ewujEnE zcXI^jb-rbDopI)Xla$fnq-j8lw+;ID$88H6w1L83+AWyeM+rdxiRIR#DPoF(@8Y8F5hNY!EO5!e{X4>pi0ct$>$A zCIj!pP9WHS1+}rWF4%`F9k#RCd`0Lv80yivM#cZtad4~Raw0T@4WPN@M1B_UYP9ut z`vvc?{?dLwM+J6^t8T@A2%>}?7)4HA-kg_9f4xy6_1C>=E%fzylT7ZZ9NE!5FS>gK z$uEjG_Cu62&@O81J(t`@guR?335J%OvLDB-5W3q5Zp4nM0)bqQp=5*=6R??FY%SB*yq9n`hCluH+E;W1O3Hyl zDjuYteDv{t`lp(d0UVQhyzdvHia_I{=~Vb6UvM$^#*t34Ru(fPDh&^$@`sZ^R|~dO zNvPJ$F&R-Sf%)NIm$>inn!ac#pHx{!0((jk1ONv}OPWd7xz%}G-)wC{z`tI%>8JSX zuS*MY41v8VloAFdwkIEU^pwFpkjk zIYSYLcjNh|4|mME+7s=kN@Jo(;gIoo0W6^?*wZC}^uH)sC1u-Ct`%d)* z*!BSd+r{EY0u>xW_1LZ;e+{Yg(!{<;oJh;JJ!JsY{KFA?!JpyCn}6o4!TC7u?-Fbv z`PKW#b&H4$P<`y5F*oov%*>yNixT54i9zI7$_6lr6U`mwewQm#{tx|p#o;P|hf0(P z80}uu8?AlM{(9>h#&{VU04hMP`MZ%pA(7?n&wCB9H4s8h46*DepV)2BW&6%A=J{hV zwdehA#0IWA%ic4WkbncN8EcV0NTv)3jKtX~`&h_Rd0`(C*UyZd#fnMv`ORXKBAq$W zQ|4$>L!6Se%!lK2cHwCL~PQo*_G8XIgBNPJ?t>x{sAnrBu#7M_r(9}LyncB z!MoOjkNk`n9F8KF^Ag63au0CJP_1tNr_~*iivzJ@_>J&xmmK1*^rnT+xHmBl%vS38 zK2x0e?rhW~z4tuYK)ZERD)eu@^{xR*kaVOxJTm{17X15+P&Z&zI$iw4g=ao}U^;9BP} z0XPDunjWxJh{&cgdt}z5%6~fl+Z_#N0#uCLz$i5*X#;NYbC0f{MG0wNgG;cF(J5;@ z0=X-ZMT1^@84H1#%%puvKSw3GJNj{)k=!u)`$PV}8VdCqWF7WSR6%^wdUN%S1@NwM z23RDPA_5%B!XEM>dgBJ?IXYZlSw!yJ;%V)Pb8e%?qcf$0&g4C+D*}q#z2Z;0+r#j& zMi-#cxirzIn0*%?dPwj7cn8TSHmV={4cz3kl4+r7an`q626__e4`kTf>~vmlO2mjh zU)B_MuvW>z%+|xjqFHGaAXTzluL&fYHc|sb+wt`mLRc7_Qvue=H-HX09op(xG$z1! zi)%K1w|hnSTAq|To%k|Nj5tYdZAbvgv+L)ZdV!TiX9G%$rSkEvF%-FcpI&`_0SZeR zF+Quh(wW5gSbgeeMj%3Jf2ukd!K1himL|^M+Hb?piLTxJk~D(p)mSR|8SIcjqSo$m z4NS)MGq$Gk+?wfQF~CvD6xciI{+aTYz$7wmTF$41n{EHtGW@RZ-#|mph(O2iV_-tT=GN zOv#T4KK>-t*UvpSMJsjtrlkKO#|^RhqmV|(9EnA(bY_u{u?uInmS^%K9L$o|+sU;d zg?V*1-;}tggzY!`#ps={c*qyzi+0WH$>UtMPCmO2SY^NJ&(W#${$r9;qFGFL-2M-B zy=0aHhQ(*eNpi?yDgVj|6U=%oH^2k^ogXM=U$#reb`RpsYK7MH_duQ!T7-duYeHA2 zF?O1COa9(ohwoE^Aoz0G?BSYx&Q5lK7eps`r~9u z&h5uW5cTWi6B>MdWA9gpsEw8A(Je1}Eh;esXDto!n9tjBb$m+*?MtUkDR6duQC$sE z%3o|hkp`G%@cWAP7aCeum!h8!q+U7Kf@&&0P^CpXj@DaZQOa1+WP}NDNSbt@Brc%%>j4v*1Ymd_fB2;^J%{Bm%o^JmKbkt>oY**aqV?l$GsD3RfnfHrRj*{NcJ z6g4s%tpC!zL!v`*Y3vVY*6+xLU~o(>6Uh;OF*Ku-U^^BAc4G^zBmv&vdE0#pD=1?q zt*bA4`MFFzI4Jf{vqneyEIdx+@tHmR4N#doMo^yaTS>jY?)~K5t;peon3uM=>9UD^ zv&ElRsVg7f;=TBE+-J|t(F{xrsr50~qrn;t6`^iM3k|6@K+DvIl%ytWSAhV|RjqO` z?*4C^-Pyo?*8Rc~9+jOw9@a^#A7&}AHtruqaCW%oBwYIE+{^aqh!9vp;cZ8sd&xog z2)btz#tTb(xUKvn}iX17HOT!1w4z#&%~ay8y}CqNOGIZo8h zwsP$g8k9aCw1CkGfHfC~gWla%uItV3ukv7f|9=(4QSA-SMkjK7mG%4Mn=*Az9~+&k z9r%^XdnmSZzZ%riab9UpeKjSS|7tWdidrasu-85mk zJ5l?Mp!^SQFld7#;7J|U#f{ym_$R$N`;-tF?tPG%!Jfnz^2p_}B7m_@w-U{?DPn7r16)#dsZdh$?e8Uu+au?O^Ne*d$p!2r+UWL zCh`N_N^c|PO8&?4!SPkfIE5I+4*r;-6w0PoKY_Wh=8b5x8cUY(GeB^my{@_i`wHd7 zR~1WHvL}oTz_ncSe6F8Z9RMP1g)b(reOY_=Y`(vi{@bd>1>30{aNf-~P8C_0ETt-^ zhe{q#4;7#0pZY}%apJ$hz7{Pd(yU!9k>7FPiA8AIqpU}>4KjQy39bK$eb$>%0u~EZ zXd?_uDGQ4gmjk+g2ul*_e5B67f)Rut+be(#!govA!jhLSP!cmqz!6_^9;lxp;2U7V z)M8~MnZKG61(vkRUtQqwCL#BuxbJABY7;4S8@^33TP}?ftw!S+?4Gmz6fpKR+)C8` zQ@2}8HHYZ@8xQ#S*VuD47#6pJr+n1Md_o-9h5|yl@6%_SM{`>p137yFUj700*fqNC zY8Gs16wmiO1S1en7>!PBGw?FMNRb8^y)Jk2M68Pw;8A9K%1$e@)znHdti2I)5INL3 z?muuo4LpqV&f`Ip0}%*AmE;*^()V|~L9(JGhu`FbUbfq{L4Js*?#0%w%M=aPN1U%m!^bPCX3<9EEP}(h}$RcOkH803LmHNha!}qE#6@%WOeXm$#nH*6IZH(^z z(gC*9&bltriNx!aV?wYiW(+@&`~aau&ttK}kO}2Fi`PPa*H!J8I)nGal4J-;!oHZ; zi^y|D=?qcG}@@T<`Dpc3NpS9AOolis}d+I*{mrntT7YO_`4o2 z^Lw;vqd)wf%*t_dPDz0dU>V1KAxB5k*nFgD>62FzCL)1BftmAKuG^-^zh9RY-_F3g zP$LH7L;Zow&&r{urk=K&RjylvO6j~49Msqkf69Jhx$;P)&mxR>00%ilN2b95LZd5T za-@*&o(V7?U!PFA!;v}+fE!CKe4}-@VC6YgV~j>uY%7A-xla<(?A~SXR7C@67idHw z9uqD>u4=9PJVAb9Sl@Luax0`Lpr{Yxjag=c4P@|$`RhsW-HfWDU7{g&Ejgy$zu1Wg zN!(u`_Bi9-eE(lTVa@KUg~Ps6Y@XR{ELz&<*Vdk|{^N^0>Ej0GZ+FAW334la`2Cf| zVl`CBp5E-Z)#d*F@_du`?UcFeSotLR+F{Q4a)DAfLYC6KAVmP-IpEVzBD`_%K~=I_ z0M|D-H9jtbEDtrw7IPyeNa`=8l48#=3qiIRFf@+U+ub!RWBshrv%kmX%do?^52E&i z@J8U{DaRVA4osl(J{jgO&oX&+Ufe?+hX$`tXaxlTH;rOFE&7-tuFIPt%2Gs7dqWdd zw5Xw$I`Qet>`B2(=V)%n{_N#6!>x=Y&>{wAKsHCy-y+d$>$NO%K1&4@B_*s(kYyQ% z8=N0m9vYb+A_M9eW~lQF>&wu)S4?A1AF+l6$m~U26$tfECu&IPT-4ICY?fEpbpOkm zh|A*e=+`T8Uisew`I%)3vQ<@fYdL{K2A@t&9_m65Ur`G><-S1Z4iuJUp`JyDah;5I9B1qPJDe)IeFc)W%dqf%`P+VkPI8-07^!Fs11}t z(G1Fq8Q&avEh3p?v&!a4VnjJub!yJfAQLjS36aMVz2F-?dS?%A+~A)&2FW{hX1BK@ z_`5ub{Ylf@c`pmcVxc=;=XY4k(sMls>7nl3VJAq--%bTCIlmv=42qA~hMuvg$0;ZFD(Khw>9h0lj$C6WU(XVfn> zZsXA}NMh?9?e!4D?S*8#-!M$3Ycj-;veLN3|6ca(>8P#dR+o5Wl#g#+i}kcMgvDK5 zF_Ys%b@8y6R4p-3abRseMpXJN`i1%#F@M^sPJ4vePFsuWh<#ytduYHvNQ;D|ES^8O zbC%PhzKqX)tAMls^(e-F;@CYBzc^rtT5@ok=h?LY21RLL`axZpL_--ABUjJjp}WhgW_K;vD*5 zv-=B`%Z#(M{JvXmS!2=%$9TvVlDwrMtZP8H%Gkz2zU;vh$;xYQ8*@<+(FJKR8OlY7 zLDOb|)r%Xn$BsatL>~jNH_egr(vU0cFGH+V}xE8#<4VDx@+ay(5OTQv`ty{!J zKGPOP)d&tX{G+6Rpumh4p>VG@L+8n#qf|z&R!yFHOv^?W^TQr#OJAPb@ZCr7+W6DI z_a!IypeE)uw!EaC=tP}9F6gAAdVYJRZMa(GML5c=oiE&slvvTczM3NR*z>>x<=+z$ zI2Rjs979h%&C-1sOo1+;RMu-OQ^CYMnrILwtnc^|oQ#SD)CpG*v_H>2$4MJc#Q&CF z5|ScF&9o5*fx-O+vcM{EVwbUOzbCA2Y`@hJrUPu^N&HXXCwiP$V2V=10AnI zXLsUJ0$7vZP4gSBe%Y7`)NyEM>9`MV%^N=k9JEM~C9X`GZ;~XjvRJ)a@ci1sBWm3S zBcuRS{(_D>v}sYg`F>s}j|D6lPgQ$j(@#)-C!r)4VBk?YlF2F2WjQ;IX8zovNIO>* z&(;?QPT$P9iFfmtfMj%1MNFl_C47|VaB^BO%h*$-U&^QFJ6V2Q!6jmJMU~_z!f|+P zcO2V-4n>&sG>)V1<2P-UYm0eW``$G^P(Z(tYiasd3G1=)1aeCE^!p;5mA{SpRC2Pe zxb8>^_se{7J8XCoCw^!hxtH`dBlYhl=r&EX#NnCtlY|z}y(R&-m*5J$jQ81-0`>B&! z1&J%zt9(wqcw(%&nCr*biQoOxFcck0^wCYl93coC50IhTatsbG8HnG2P=TXo2Z#Wv zhx@ATe7J~}b_Caft*(CgJ zHT>!~mi9Z(kEasdz@2OA4A>%*!Mhxn#RQm%UaD2j_F3Cr@lc`ppCng`jcHG1@{+}Z z!*>U4EJ|&h9O-WxT~bV@N=a#zGx)-X4Rfo!?hk)AC-Hh%32h3^_;_!e<=Wo{NwkA? zUA%DjO>nt<9cz(E_h0dpxR!T^k%sqJYS3+Y^|Sf1d`Is==23jCsPG0W*U+Tpn9f!e zh&858RLOtQVKpB0nzcOc6+y0UnW^n9hb5Z=vhzHsOu!zzk=^8UD_gDP;Tq5|11Yu! zdhl&W2X3^X1a}t8A2(8d(w|^pO|@;4x&+z@mT}OD&x8cpA@^M6KgwZ`McRMcg)qR^ zN;crYM-OULl}xdIKMVoO-)j zwm=zbUMUiUzeww?Tte+$2H#8yOhJUr2wv^){B&k<9)dM{2$`8%kJt#NInOyV@+8Yl23 z&&LR}&A!G+W*vUR0g2&xCa z2@;=4)Pdp0_|b7=Tf7m&?UpbM$5PQh}G^@0M%*UpgPh60@zBH=P_?+3Bv;3eOa})`%^g-Ra zUPLf$%TSU)1^OHvQx-&`QF3SpI?X>&E{RSZ^;2H>xR%$^@po(HlU?WN5rVm9*s3v|8F^NrQfd(d}4ZS^? zl#KGCPU?PNeZ}?04V7ejEtU&mj%P;`s@;ZIX%2TPiZ>Rk~%ksIX5{?)ZVOxfq zApThOhaZ%pp4hLr&g(7#7)B&vd{ zr=7hY0b9b)3XjV8xcTel-|LZ63RiWP_hoA{Ii`EBZ?>>*LoA))T!HGPzIuBPe1WqN z*$b$!XKg}0L~s$QT=1VZUASxm9tsN>E6vctK5vus6J3rJ_wMqmUE94%qT*Mm2rtuk z{jEHN0Y@BsxwNKGVfI3G4&He477U07x>8Z`)sFW@MMCT0byi(SIFP5ucJN|vTJ^L( zfRuT2GA&DIR4M<{(2D8Dyt=*(Z6#b(2h6&NFV7&nTetFq&ul)h(v^GllWQ@cP=5!q zU4v3{-VXEodo(XcgsI~kR@FcA#N+DkS$%bLQt*qJTu0)w9y$c-;RC?)GA5Id8nyBnJ2ReiR_5{YND3en4uUPk_ z6UNL3 zx=**O#ONXZMqyusyc|^rdw95c(*5Z#-9lzUcr8 z3SzC}+BTd|Q^CG!90%d+zUdpHVFsQs`j4@10|1(O|~?v`=S+8`4ha_ae;sm6}50Nc*Br zk7f*M8RZliPkHer@#22yJ`rTIyNG!It?^<;AkTmqP+>Azg5ya@imRva;af zwkj`K^s*?k!jnKD0sZyCDMd&6Oh^-o07bwuZ~I+?xeR!zH=Sip7IR+E35`Xa zrlV}zCkxjak|eI~R6c+lXLMR1kE7h)@s6TU}pWKxk$|AjdRWCOBcKX(V8Xs zS9|OQk~JUF^@i@Jzv7Ua6+3J=(KB?v?lK{1xPLMUU;RLSI#gxekvSJNUmTRxRV+9Q zx+F%(q*fYN#Y;ce7bH&+?ZNhuB~3);{SW@9#hf&OdXiUQa3(w3JgDR8##|U9X}WB; zx`M4?*O6t8F(b<*bJS0ampDYu8s)g-N!36WzNuWG5-F;PXl3^#TVe z~-2mb3IFrq`14LtgwlOuy1pVTo$pQMpa zMeD;Gt}htxp(PuoI7Kq^21DM9m|OY8#SEvKF&Cq0)kdyK+86KlabT=`I|(q# zDf9NbyTA7OQN&ljS1-Za8_Hml4*RD*Rw50d*6=o4+vn?rZ3peI$`HbhFTqoS@XGj!n9tV7PXAWQN91M;aC5Dhqh(wbT}$Pps*$~gQNQ0 zJcGc__7$=Vk^e`5zh8*#ED2`VwLXMgH_t2HZyG5|;#r6*o)M%Tp@!xXi`CFW`1*&J zKk4hmM{PV&#z@lE_)C#&A$=_n9#mT&gz|g5n(6%N;{yx6OlWKk=8TWlzrBnI!UzA8 zpOdd|6I=2hynE>Ku9IL-ri0RcFxK83|4?fv^zLfmiNhG+HbZM41D8}Vx_?F6lXjJO zBZ*2JyG<2W{NhItk8^~Us~3u;2kx*#Xnums@EOCTq^|9IQeflPc{H_#eH?PPm=<@E zrTp`XpDL)JM2^ zB+K-JGUwX2I`&wca{0>0d$VNxxI3ng+_Kf`g-uAmuj6}VwH6uCBgHE<3qR01azkYY z;-64`M=eT>l9CfWtZDrEGXk4fpOZ_Nv8J5XbKowTNMc+%hMM&wtKL0hW=&xYcv)KF z77MzRpOR>gdkpn&Kdq+F+>bh}3w(BR7pZ_c-j9Ue|MFnpkemuHG_hKE<5?CpT8kH_qjYf$0#VTy)+`Urd%GC8(HZ808!0 zq>f8PxsDg8$LPcvKJ8H6n1C4;VWR0Yxhw4i-XCxChFg;YnNuB0Q;QdI6)i3nLT0QTG>NRAR$+zNhg@0~e zO$HrL6s&u$H)B0~kDbCPT&^%B4W;s{Z87&=RteO;igtk8 z$HyNs|5ynt3Mgu|*q71^U#=sg+FlAPkRZ=V1?Wn6ep;Pc+vs4@80CkE@vyhk|Lz^; zZA>U?mJ=tGFGb`2))#YB#27bcyH4t!YP}GUAgX7ZYz-GjSNV$D*(_LBum17tF8dyt z9t+>0;~*)Pd_e%Yt-qZ7-W;0HjcDGy3VuwChi*Rut9U7egA96#OLrLw1^&~?W4_sA zNpd;$R??!m;1BY&ul6?s??3`LnpFQV{E91 z_RvsZcuGcu^l)QOo{q*>*Ih{2TCGp!YQCT^+QflY+;y@rU)m=}op{-rizRTk@X@p(4?+Gf&EG|LLcFbMfC3wMN#tCB;)uKjD za-LD@`G$KKv5?k1;e5q%!~tC?md0``05I!AXu1)MJD^_+Iwa9U&a znMyQtdgK!j)A8~8b`g+YU;n`h+}@VF4RmKC$uDgS(Rea@QS@_-YUV}Z=hFx9ZC(m5 zhC^k9z^clY_eSG^SE{0Od_$B{77q@9x`kqi_G#LBwQq-FLcYr z9V*>;&mpk=HKJQeE5zF0#6fL zf}=Q%!J+hzn-$ot*S`*!t`|=!s?;6RH)ARq3%{+UmUR7kB430Wni8^}4Vi_yx(bXB z5(D65rh8o*Z|j~4e{$nniIqD6wfRC4+{iA?h;Uy;=FN~yJ;?@sq}BQKB!{cCuiia_ zsrvl}naQhe@_CaHH0`)G$)R$>!p&KBo0#zDst?k?aqiVQ@dUe4`yQ|e^TT}zlamcr z%YKFg6u&#MbY-V8$w_eVA^B$A%SwOaYwNS-{etJuVpX|F>(=R@o|dTW5IrTO3E9Fm zRA!BU$A_J+m}-NI|6v>%jzxH+vP&!e^?mqTkCr)8c4i`L3ohm-vL`u6+pjKxkI)L5 z=-5!o05g6m6_;@FO!hRa>ADu!BSF`$)`U4L;mpxbdpG9NiYWU&+e`B~-o%Xj1kl894RACZ*62&6h& zvSSq^sXlE8KYPFuphQc+DbGV@Kj+KV@S7{Pl_Vm9jUTf1ABWS;XZ~Q&MfNs_fM4V{ z57yz?;cQhIleRsL?&)8X>7pLUBenYx9;t8?f@LmPk4W>5jf1@emJg3FXmb%U2?PMq z4GYLqPyo}79^YnCYwod!T_iYJB)V03qD*vXRJtAAzPHqV{P(r`0Zz#L{JC2R49<_W zMbP%r-1V8u!25%SkKg9HuE`^qyPP2|Wd5b-)K3;Zb@8tdP{1tup z=0~X$6qG0>w1Y8j+;1R!}S3ulDuv4dmi4sd%`{YjXl&J&pVLJuTk$9BYK!fP+SF8l|BNj z!5NFr1Hm+`Ls2A5n@EBpxyV2tZ$=18Qze?O5_19>;Wu8a62)JzmS|kXvb8Hzj%_1|KOwNJfwbZz8WOQkA3b80nD*DD zzRQoWIn}Li<wFN-4$A{> zJffStzW8yeI6jwC*pV9@kM8X_SLw*?lEI^wCP||Xo6r4dnEgdAI!wsWpb33(#AkhM z|4!667^^I2oS~JG*l1adm6xQb>I?Mqj(^j<@yC|EtMk5f-(kHl12m*nIz=2k&q4*< zJ^wlt%c=LBNmSBV#!XX8yGrN3{3V+Nr9??{;{ftVa#|r(m1_9vs&@2L8uK;Mw@5h_ z3ZMp#DHds}U^ieXJIkP8ugGDmWFxy%jNc3Qd&VnmQ*`?Ub6{7&fhQem_3Q|virp|O z<9YMOOzd2J_s&ZychQhWuHBUBdj8&yLMzGGtUb9bZ>zf8lgtPe51bk5 zWG%WBJmX+qh2cfN2HBiMvV&C+tk@n?l98d2bZC_yzQbCTy7Gy@+Kr&W>gB}}!1qo) znG@dKtPXXXmx7p~1Fu?`I_<2Zx^=_@UfmQW<0Y5((zzItDcG`ZSgO$3CW}T>+=!pQ zdBUl}+HX5#rFie`${IvooBF#y|C`9E&u^<-M{%|iw3y#tRgS-={BKZjmk-b~Nd5WI8otYX=al)YUe9fss^P7bP}|xlbcPc~wNCd6T$Z zKlVVqgeNZLgoKGAgIzPC`dbTq7IpU-3C!C$ScKe!tlb7b+ zY{*lQAT?MxR`wIi9vfn5ey{$B>$2f%`!i!Ju=2UeS5PFyIpG;$sEgUu9gzrKc$xn+$GhRqtRlBzRsUuaQhu?S9 z3k|x@2u+1jux;}9a~$x8Jz^Pt<6Q0LY@P9+gvJ^5H@;l$yFq54_Ml((^cLhT5P-WK zJR6>}C%m-uL!gu7{Xc|B3f2h~5?pSZ(7QZw0H@=Sf&pZF`89J^OwUJ;25M23986q5 zX+w;%POvfLP{db~4?zN$_}#GDbBmu&6iv`rLRZv5A}NM9^m z^-0=8yGc6BQ%M^LdQ_w+G_LyWIp!_5lP=ORJfe?-{6Sz2X1=GEdAKDsqj=-}P~(JSf>8&OuU~9ED(kAb$zF zi@5Jd6Y~2WXNbbZB@4L#l>Fj^b5k~p{CVRKG#aJ9T$vz99Wjc(^|``5ABpT#Zd?8B zA`mLKlX5?Kz_*{)PhX|zLM z30MCO3X{~1vMVijvFhY)7@lPF`F_u5&nq}n$SXMd;<_z6Fh}p!PXDuO#q~YKuF~UI zr60XM{ph(h8ky-J#mOY8M61h(>V5aK%|=zL77LTL8scuS_>p9f~hLrTQ&WwA-~=hzYIr9o-!Gwx@9MkoE&$; z9^X5c)E_I(1j4GhEv=?vBJam@B4aRP@HLgL50XF3lY}WL58h*S?jnbBp#59;1s{qA zb^l&H@qV)1{okQM!4WBycIV;cC~NCqV)35H5SoYIk!?n4Jc?NjVI-Y(db@!h&Edpa z!J#GSYZ0VNVtXX)wi2~6c=a=UIwsLukUHC~Gbw}E1`TS8)Z+<&NdpPV`LoDAW^1ix z%yqGjVex43!vGj#NO9sDmm%e+BajfueAI1vxhmOe2O(?!atv#3=<0(a^-t3%l`;7Z|b4Zlzc%#!bSKWO$DSNCx@|%^HYkoy<9lMwt@T>J2vAot-I zV;1dE?2ZTPQ>Ohfsw?fX|41wk?3!C@O?Mzcwx->u*cGBWm$d5hhrkjL; z8}KkE7384^JMReXLE)0{8Tu`jg937F)hf2x^^3oMJ8S@Uwz(?B$g%$JdsNa!E&>d2 zjpiRay{YBe$*Iln7`Zyu$v4X|?bin$yFn&m0qIBMVmFV8fS@V7rgGBEQh|lmIK9Qi zl*u%PXqdYt3rM!BDP_w@;>vs5$7)3;zFj!tAHyUeMYEB{1!A{w{b-Ku)~^=LnYU#r zZyY450he7#C;EeFT4lBEcHg@ zaeu9K_Uo-j9X7q3uJ&u`si2^et=s6GWb5Zf0KZ_M=_ZVSx%Yfi$T1}!P#2Rwx_PpuHF~X?O=2b^elsNfN~%H? zAX5kpq?R1equ)1IDLL3LVeC)g31TF&NSj1Z5y*TKpkzoi2{(qESO~pK8-V3dju%nN zKBPBjY7mJ2pnY*U-Ww#-cdnZaDrj6UJs*W)FVQ<9{E;fHLGT!j8bMLH4)9w8cxqtqz0xdp_*?2cn!Tu)X_=zXJGGoDw- zXl9yodU4&E3CQ~IPHP4d_rLPI2%EG?C=qaR zl>g&*)uB8k;~aMEwpNBV5+}N#(p;eJ4IO-Bp^3-uXOrN54b}y+e)a_Fyh&xprx(rp zzLm4*l)Ait{B!sN%-pl?KSvtAhb!_GU>F&7|10zBeH;fz)^su}NudyMhZN?kaaTwl zNNK@rUcd_qzohIcdi(Hln{h$$AXP`FafdbI?Os#>k|-xa);1Mit&4ZzNFFvrmDN29 zK?suMaNr1O*p_HssU-~ABnSf|;WD$Ih=Kg+kSk%reVq#^_W~TqziZ|B&dT6?t49!t z+pK#^v!-Qg4w2meAkA7R3ok3dmalbWU?457MxbK}`1=uSUwY6|&E>$sin2I`FNPf| z%S5D3HA+%rP5z)8)z2?VPrt*ETEp1Hb(&XOZ#r;dklE^%9FRp^Q3_zRL$HJ=52?Q; zjzxprq{WWsbRIAE89|H?6nx1E5sex@P1^GK%wA9VCKotn0eX_Um%^(K)(@Ms{V?bEZJHdU!__YAz@?oWY^e(n)XEa9Ku z2Ri;t#uu~IaLjFcykak4=ReXFb?h-dH<0!$F!Kf^Q(~k31mI!KGs4U2@AI$m!!JyE zMD+kNM>LjzfNhliV9jT9fBmcfOj`|<)=t?&Oa1=!)s8CCXQJR}yh9zRBgGO!IOkQ# zft~h#{_zYYqo}GX-x|jK;jP^i-TQ9IN9?W*087z5tRi-_0D*WPPy&f_$q|wJK!xKM zjFCho?KfvBHDIO-;lRTXAZG*umJEzezNv)}0a0Y6$iF)4i_Yf3uaHS6^2(?-&h%X$ zHuWfgWu!PTnVQ2@^zMIBbwtz)73(9pq!0-mz5jRQq%pT}<$t^`&%Gum3MgDt}aM(4~$pLkjKbg`}p75bGVbAr*U1iL;$K*^lGS^UpbWG6DI> zfL1BBFGL<_tYte51<)C+_M7}=$sH!@I3(crj1WyexU>B(3m^ymwgp#8A48UX2d{}a z)Yadj`a9bb-%5Q2$67p{Ry2n4yrpEmJ`QJN2ef{}6LMTgsG_KCS zG~;Uvm;^bA01AjiFSJL>*+XTsC^W;e0>AH^?}y3TdPmZ{ym|`KYz4YqK_!)QP5iHv zK*$uUg-_#Pn2I-7$5aBzUg?IQ;;_;U4M3FPID6^WlvcBX{taqg`yy!N*Y$(>Y zdBuYz%A4Fitu*lPN@#|?Wkcw_Gmrb<*}jT^_mNlK3aS5pbw*dwul=N%#rzA69Vutw zDdG)m0$vW5L%br0j&%|vIEPv3?d}5BKQ>GftvEI3ve@$)?w&x%MYw`^}UE5 zFqP52i8bs5sgnU|=%oR5S=Z3TQqgARyU>E=GuxK=Qmr+ukQe|{)i~oIH0j<@MA<5h zc^j_3vgkc|zsCz)*Y zzIcmW@zNc(&at0s;9If-BY$wQZzKl{7!IubAAXq8!%EU(9Tug5w(7Z)E^6%2` z=V~_9hVBi#Sj*#1!cM2dfgbdwhZd(}jHVI12=9h3MiJX)i*urSwG92`1@s$Yz}bNR zSvhmQ#HX1~9CURHkCMNB6JQu}Sr<|cuqf9O8-rg>`@lI@#obFIY@Z!`-N{HGVd-yH z`wIhQ-=2+)`F|8T-s(OtwL39d$@DgY_dElXgAwOzn=%9%5Ci_~&xZzOq1>Xo&dSfYTibk}uZ-x@MNtE{&><2-Bs_Ie>%ybie# zd3-E^zLv|d1YqYa-*gRDgoXwUOlmBsw=B9BJJmNxh)fNHWqy`YB7mHbRV@GoXqHp=sz zr9qb~E2-e%ju4J=AIA*Jo_5EY+k!p(AVr`6Ch?OLJwjh~=8xBMt;)I^sjWq|jFJmW z=Y0f{iInIy(kJc9`}kRv-3(g62>{%bIH&D5hn5QoXy)w@3HhS>8_bS&a(bWTf$@vy zA$xiPOE4f8)XjME`RjDh!^WMn#jS!v?!am4Pt|aXv}f`Icp#L;nQZk{g1h8J0}v;77Mr5c}eR`nFn`4KA(BND3g1_Gw>U4T1hU>(VOrU6$4d)S1u3!wH;{ocHpLt`A`{ zOm~(Asld@OIp8PR_Y8wmP93@JyqAmaDN=e7c@R+&R-950!gHxX^d3HW;b!NqBW5eS z@aH1{!)o!^jZ>ed%o@T^lJi%s@tW$qw5uY3x%#W;N=0^T#DBkXOmBSqi6OE@f_Uq% zYdS)|y)!HOHW5+igIsJYFlu;hS%QRuHd(z8^pQh-m^BaM%`o`4xD9KL;aP?Y&xBcv zQ*w=k9rg01bxrER%AazvS$}G;cLY^iKGqf%vYN-k7xC#mW#oYIBZN@8v#((NtzS$P ziEBhN&0?O9V3;(WCWi+ILE--N>Tl6$F_4KdUL@eVB-kdu1hPBV;ks z-o@W9?3uIxR$QR@5E68TG&MjFIq)8yHkT4w@Um1{oa~-|?wGU$&ffe4vP^q8xFpo~ zMY^sMJjxMZrB4FLbCQAjczO)+)4#)?5NVvX?dtg37~NY{zPE%&J|ob>uiLA^_q20I zyZ0>Hder@b-~}i*o-Y9q;~Qi+eJ)m{gLj6AzVI+N-Su$hnhx~j*~{&n;x0TNs>p`n z)XVp?5jAH2D(V~ufJty>%)XITleU$Xv;LNrBA68?oni8 zGSj+|7iOuhngn|Jz(d}<-Ui!DE9z{ diff --git a/androidApp/src/main/res/drawable/splash_icon.png b/androidApp/src/main/res/drawable/splash_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..2f8e07d9b2e69fecb50da8c33ef4b7e581dec233 GIT binary patch literal 13986 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 literal 0 HcmV?d00001 diff --git a/androidApp/src/main/res/drawable/splash_icon.xml b/androidApp/src/main/res/drawable/splash_icon.xml deleted file mode 100644 index fb9902e0e..000000000 --- a/androidApp/src/main/res/drawable/splash_icon.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/androidApp/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/androidApp/src/main/res/mipmap-anydpi-v26/ic_launcher.xml index b68a884e0..1c76cd711 100644 --- a/androidApp/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +++ b/androidApp/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -1,6 +1,6 @@ IJUk*dt8ERt$Ile5~<~7e22WQ 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 diff --git a/androidApp/src/main/res/values/ic_launcher_background.xml b/androidApp/src/main/res/values/ic_launcher_background.xml index 2c7f96d2a..513fbb680 100644 --- a/androidApp/src/main/res/values/ic_launcher_background.xml +++ b/androidApp/src/main/res/values/ic_launcher_background.xml @@ -1,6 +1,6 @@ - #F6F8F7 + #450951 \ No newline at end of file diff --git a/fastlane/AppFile b/fastlane/AppFile index 24e9344da..b3ba92ccd 100644 --- a/fastlane/AppFile +++ b/fastlane/AppFile @@ -1,2 +1,2 @@ -json_key_file("androidApp/playStorePublishServiceCredentialsFile.json") +json_key_file("secrets/playStorePublishServiceCredentialsFile.json") package_name("org.mifos.mobile") # e.g. org.mifos.mobile \ No newline at end of file diff --git a/fastlane/FastFile b/fastlane/FastFile index 0734cbc16..3f979c127 100644 --- a/fastlane/FastFile +++ b/fastlane/FastFile @@ -1,11 +1,90 @@ default_platform(:android) platform :android do + desc "Assemble debug APKs." + lane :assembleDebugApks do |options| + gradle( + tasks: ["assembleDebug"], + ) + end + + desc "Assemble Release APK" + lane :assembleReleaseApks do |options| + options[:storeFile] ||= "release_keystore.keystore" + options[:storePassword] ||= "mifos1234" + options[:keyAlias] ||= "mifos-mobile" + options[:keyPassword] ||= "mifos1234" + + # Generate version + generateVersion = generateVersion() + + buildAndSignApp( + taskName: "assemble", + buildType: "Release", + storeFile: options[:storeFile], + storePassword: options[:storePassword], + keyAlias: options[:keyAlias], + keyPassword: options[:keyPassword], + ) + end + + desc "Bundle Play Store release" + lane :bundlePlayStoreRelease do |options| + options[:storeFile] ||= "release_keystore.keystore" + options[:storePassword] ||= "mifos1234" + options[:keyAlias] ||= "mifos-mobile" + options[:keyPassword] ||= "mifos1234" + + # Generate version + generateVersion = generateVersion() + + # Generate Release Note + releaseNotes = generateFullReleaseNote() + + # Write the generated release notes to default.txt + buildConfigPath = "metadata/android/en-US/changelogs/default.txt" + + # Create directories if they don't exist + require 'fileutils' + FileUtils.mkdir_p(File.dirname(buildConfigPath)) + + File.write(buildConfigPath, releaseNotes) + + buildAndSignApp( + taskName: "bundle", + buildType: "Release", + storeFile: options[:storeFile], + storePassword: options[:storePassword], + keyAlias: options[:keyAlias], + keyPassword: options[:keyPassword], + ) + end + + desc "Publish Release Play Store artifacts to Firebase App Distribution" + lane :deploy_on_firebase do |options| + options[:apkFile] ||= "androidApp/build/outputs/apk/prod/release/androidApp-prod-release.apk" + options[:serviceCredsFile] ||= "secrets/firebaseAppDistributionServiceCredentialsFile.json" + options[:groups] ||= "mifos-mobile-testers" + + # Generate Release Note + releaseNotes = generateFullReleaseNote() + + firebase_app_distribution( + app: "1:728434912738:android:d853a78f14af0c381a1dbb", + android_artifact_type: "APK", + android_artifact_path: options[:apkFile], + service_credentials_file: options[:serviceCredsFile], + groups: options[:groups], + release_notes: "#{releaseNotes}", + ) + end + desc "Deploy internal tracks to Google Play" - lane :deploy_internal do - supply( + lane :deploy_internal do |options| + options[:aabFile] ||= "androidApp/build/outputs/bundle/prodRelease/androidApp-prod-release.aab" + upload_to_play_store( track: 'internal', - aab: 'androidApp/build/outputs/bundle/release/androidApp-release.aab', + aab: options[:aabFile], skip_upload_metadata: true, skip_upload_images: true, skip_upload_screenshots: true, @@ -14,7 +93,7 @@ platform :android do desc "Promote internal tracks to beta on Google Play" lane :promote_to_beta do - supply( + upload_to_play_store( track: 'internal', track_promote_to: 'beta', skip_upload_changelogs: true, @@ -26,12 +105,278 @@ platform :android do desc "Promote beta tracks to production on Google Play" lane :promote_to_production do - supply( + upload_to_play_store( track: 'beta', track_promote_to: 'production', skip_upload_changelogs: true, - sync_image_upload: true, + skip_upload_metadata: true, + skip_upload_images: true, + skip_upload_screenshots: true, + ) + end + + desc "Generate artifacts for the given [build] signed with the provided [keystore] and credentials." + private_lane :buildAndSignApp do |options| + # Get the project root directory + project_dir = File.expand_path('..', Dir.pwd) + + # Construct the absolute path to the keystore + keystore_path = File.join(project_dir, 'keystores', options[:storeFile]) + + # Check if keystore exists + unless File.exist?(keystore_path) + UI.error "Keystore file not found at: #{keystore_path}" + UI.error "Please ensure the keystore file exists at the correct location" + exit 1 # Exit with error code 1 + end + + gradle( + task: options[:taskName], + build_type: options[:buildType], + properties: { + "android.injected.signing.store.file" => keystore_path, + "android.injected.signing.store.password" => options[:storePassword], + "android.injected.signing.key.alias" => options[:keyAlias], + "android.injected.signing.key.password" => options[:keyPassword], + }, + print_command: false, + ) + end + + desc "Generate Version" + lane :generateVersion do + # Get current version codes from both production and beta + prod_codes = google_play_track_version_codes( + track: 'production', + ) + beta_codes = google_play_track_version_codes( + track: 'beta', + ) + + # Find highest version code + latest_code = (prod_codes + beta_codes).max || 1 + new_version_code = latest_code + 1 + + # Generate version file + gradle(tasks: ["versionFile"]) + + # Set version from file + ENV['VERSION'] = File.read("../version.txt").strip + + # Set it as environment variable or use directly + ENV['VERSION_CODE'] = new_version_code.to_s + + UI.success("Set VERSION=#{ENV['VERSION']} VERSION_CODE=#{ENV['VERSION_CODE']}") + end + + desc "Generate release notes" + lane :generateReleaseNotes do |options| + releaseNotes = changelog_from_git_commits( + commits_count: 1, ) + releaseNotes + end + + desc "Generate release notes from specified tag or latest release tag" + lane :generateFullReleaseNote do |options| + # Platform-independent way to get the latest tag + def get_latest_tag + begin + # Try to get the latest tag without redirection + latest = `git describe --tags --abbrev=0`.strip + return latest unless latest.empty? + rescue + begin + # Alternative approach if the first one fails + latest = `git tag --sort=-creatordate`.split("\n").first + return latest unless latest.nil? || latest.empty? + rescue + return nil + end + end + nil + end + + # Get the tag from options or find the latest tag + from_tag = options[:from_tag] + if from_tag + UI.message "Using specified tag: #{from_tag}" + # Verify the tag exists + unless system("git rev-parse #{from_tag}") + UI.user_error! "Tag #{from_tag} not found!" + return + end + else + from_tag = get_latest_tag + if from_tag && !from_tag.empty? + UI.message "Using latest tag: #{from_tag}" + else + UI.message "No tags found. Getting all commits..." + end + end + + # Get commits since the tag + commits = if from_tag && !from_tag.empty? + `git log #{from_tag}..HEAD --pretty=format:"%B"`.split("\n") + else + `git log --pretty=format:"%B"`.split("\n") + end + + # Process commits to get actual commit messages and remove Co-authored-by lines + processed_commits = [] + current_commit = [] + + commits.each do |line| + # Skip empty lines and Co-authored-by lines + next if line.empty? || line.start_with?("Co-authored-by:") + + if line.start_with?("Merge pull request") + # For merge commits, we want to get the actual commit message + next + elsif current_commit.empty? || !line.start_with?(" ") + # If it's a new commit message, store the previous one (if exists) and start a new one + processed_commits << current_commit.join(" ") unless current_commit.empty? + current_commit = [line] + else + # Continue with current commit message + current_commit << line + end + end + # Add the last commit + processed_commits << current_commit.join(" ") unless current_commit.empty? + + # Remove empty strings and duplicates + processed_commits = processed_commits.reject(&:empty?).uniq + + # Initialize categories + notes = { + "feat" => [], # Features + "fix" => [], # Bug fixes + "perf" => [], # Performance + "refactor" => [], # Refactoring + "style" => [], # Style + "docs" => [], # Documentation + "test" => [], # Tests + "build" => [], # Build + "ci" => [], # CI + "chore" => [], # Maintenance + "breaking" => [], # Breaking changes + "other" => [] # Other + } + + # Categorize commits + processed_commits.each do |commit| + # Handle breaking changes + if commit.include?("BREAKING CHANGE:") || commit.include?("!") + notes["breaking"] << commit.sub(/^[^:]+:\s*/, "") + next + end + + # Match conventional commit format + if commit =~ /^(feat|fix|perf|refactor|style|docs|test|build|ci|chore)(\(.+?\))?:/ + type = $1 + notes[type] << commit.sub(/^[^:]+:\s*/, "") + else + notes["other"] << commit unless commit.start_with?("Merge") + end + end + + # Format release notes + sections = { + "breaking" => "๐Ÿ’ฅ Breaking Changes", + "feat" => "๐Ÿš€ New Features", + "fix" => "๐Ÿ› Bug Fixes", + "perf" => "โšก Performance Improvements", + "refactor" => "โ™ป๏ธ Refactoring", + "style" => "๐Ÿ’… Style Changes", + "docs" => "๐Ÿ“š Documentation", + "test" => "๐Ÿงช Tests", + "build" => "๐Ÿ“ฆ Build System", + "ci" => "๐Ÿ‘ท CI Changes", + "chore" => "๐Ÿ”ง Maintenance", + "other" => "๐Ÿ“ Other Changes" + } + + # Build release notes + release_notes = ["# Release Notes"] + release_notes << "\nRelease date: #{Time.now.strftime('%d-%m-%Y')}" + + sections.each do |type, title| + next if notes[type].empty? + release_notes << "\n## #{title}" + notes[type].each do |commit| + release_notes << "\n- #{commit}" + end + end + + # Print release notes + UI.message "Generated Release Notes:" + UI.message release_notes.join("\n") + + # Return the release notes string + release_notes.join("\n") end end + +platform :ios do + desc "Build iOS application" + lane :build_ios do |options| + # Set default configuration if not provided + options[:configuration] ||= "Debug" + + # automatic code signing + update_code_signing_settings( + use_automatic_signing: true, + path: "mifos-ios/iosApp.xcodeproj" + ) + build_ios_app( + project: "mifos-ios/iosApp.xcodeproj", + scheme: "iosApp", + # Set configuration to debug for now + configuration: options[:configuration], + skip_codesigning: "true", + output_directory: "mifos-ios/build", + skip_archive: "true" + ) + end + + lane :increment_version do |options| + options[:serviceCredsFile] ||= "secrets/firebaseAppDistributionServiceCredentialsFile.json" + + latest_release = firebase_app_distribution_get_latest_release( + app: "1:728434912738:ios:86a7badfaed88b841a1dbb", + service_credentials_file: options[:serviceCredsFile] + ) + increment_build_number( + xcodeproj: "mifos-ios/iosApp.xcodeproj", + build_number: latest_release[:buildVersion].to_i + 1 + ) + end + + desc "Upload iOS application to Firebase App Distribution" + lane :deploy_on_firebase do |options| + options[:serviceCredsFile] ||= "secrets/firebaseAppDistributionServiceCredentialsFile.json" + options[:groups] ||= "mifos-mobile-testers" + + increment_version() + build_ios() + releaseNotes = generateReleaseNotes() + release = firebase_app_distribution( + app: "1:728434912738:ios:86a7badfaed88b841a1dbb", + service_credentials_file: options[:serviceCredsFile], + release_notes_file: "#{releaseNotes}", + groups: options[:groups] + ) + + end + + desc "Generate release notes" + lane :generateReleaseNotes do + branchName = `git rev-parse --abbrev-ref HEAD`.chomp() + releaseNotes = changelog_from_git_commits( + commits_count: 1, + ) + releaseNotes + end +end \ No newline at end of file diff --git a/fastlane/Pluginfile b/fastlane/Pluginfile index 273a6b6f4..c3f69f2b0 100644 --- a/fastlane/Pluginfile +++ b/fastlane/Pluginfile @@ -1,3 +1,5 @@ # Autogenerated by fastlane # # Ensure this file is checked in to source control! +gem 'fastlane-plugin-firebase_app_distribution' +gem 'fastlane-plugin-increment_build_number' diff --git a/fastlane/README.md b/fastlane/README.md index f6333c179..1fa7f0946 100644 --- a/fastlane/README.md +++ b/fastlane/README.md @@ -15,6 +15,38 @@ For _fastlane_ installation instructions, see [Installing _fastlane_](https://do ## Android +### android assembleDebugApks + +```sh +[bundle exec] fastlane android assembleDebugApks +``` + +Assemble debug APKs. + +### android assembleReleaseApks + +```sh +[bundle exec] fastlane android assembleReleaseApks +``` + +Assemble Release APK + +### android bundlePlayStoreRelease + +```sh +[bundle exec] fastlane android bundlePlayStoreRelease +``` + +Bundle Play Store release + +### android deploy_on_firebase + +```sh +[bundle exec] fastlane android deploy_on_firebase +``` + +Publish Release Play Store artifacts to Firebase App Distribution + ### android deploy_internal ```sh @@ -39,6 +71,67 @@ Promote internal tracks to beta on Google Play Promote beta tracks to production on Google Play +### android generateVersion + +```sh +[bundle exec] fastlane android generateVersion +``` + +Generate Version + +### android generateReleaseNotes + +```sh +[bundle exec] fastlane android generateReleaseNotes +``` + +Generate release notes + +### android generateFullReleaseNote + +```sh +[bundle exec] fastlane android generateFullReleaseNote +``` + +Generate release notes from specified tag or latest release tag + +---- + + +## iOS + +### ios build_ios + +```sh +[bundle exec] fastlane ios build_ios +``` + +Build iOS application + +### ios increment_version + +```sh +[bundle exec] fastlane ios increment_version +``` + + + +### ios deploy_on_firebase + +```sh +[bundle exec] fastlane ios deploy_on_firebase +``` + +Upload iOS application to Firebase App Distribution + +### ios generateReleaseNotes + +```sh +[bundle exec] fastlane ios generateReleaseNotes +``` + +Generate release notes + ---- This README.md is auto-generated and will be re-generated every time [_fastlane_](https://fastlane.tools) is run. diff --git a/fastlane/metadata/android/en-US/changelogs/default.txt b/fastlane/metadata/android/en-US/changelogs/default.txt new file mode 100644 index 000000000..4f4b2d8ca --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/default.txt @@ -0,0 +1,6 @@ +fix: API endpoint (#2733) +* MM-102 KMP dependencies setup (#2729) +* fix: API endpoint +--------- +Co-authored-by: Sk Niyaj Ali +Co-authored-by: Pronay Sarker s \ No newline at end of file diff --git a/androidApp/debug_keystore.jks b/keystores/release_keystore.keystore similarity index 100% rename from androidApp/debug_keystore.jks rename to keystores/release_keystore.keystore diff --git a/shared/build.gradle.kts b/shared/build.gradle.kts index a7ba5874b..df6be1a6a 100644 --- a/shared/build.gradle.kts +++ b/shared/build.gradle.kts @@ -1,3 +1,5 @@ +import org.jetbrains.kotlin.gradle.dsl.JvmTarget + plugins { alias(libs.plugins.kotlinMultiplatform) alias(libs.plugins.android.library) @@ -6,7 +8,11 @@ plugins { } kotlin { - androidTarget() + androidTarget() { + compilerOptions { + jvmTarget.set(JvmTarget.JVM_17) + } + } listOf( iosX64(),